1.什么是数据库
图片来源网络:侵删
1.1我们身边的数据库
大家都有过下面这样的经历吧?
● 收到曾经为自己诊治过的牙医寄来的明信片,上面写着“距上次检查已有
半年,请您再来做个牙齿健康检查”。
● 在生日的前一个月,收到曾入住过的旅店或宾馆发来的“生日当月入住优
惠”的邮件或者明信片。
● 在网上商城购物之后,收到内附“推荐商品列表”的邮件。
这可能是因为牙医、旅店或商城的经营者掌握了顾客上一次的就诊日期、生日和购买历史等信息,并且拥有能够从大量汇总信息中快速获取所需信息(比如你的住址或爱好)的设备(计算机系统)。如果利用人工完成同样的工作,真不知道要多长时间呢。另外,现在所有地区的图书馆都配备了计算机,实现了图书的自动查询。使用该系统,可以通过检索书名或出版年份快速查找出希望借阅的图书的所在位置,以及是否已经借出等信息。正是因为拥有了可以保存图书名称、出版年份以及保管位置和外借情况等信息,并且可以按需查询的设备,才使这一切成为可能。
像这样将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合称为数据库(Database,DB)。
将姓名、住址、电话号码、邮箱地址、爱好和家庭构成等数据保存到数据库中,就可以随时迅速获取想要的信息了。用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS);
系统的使用者通常无法直接接触到数据库。因此,在使用系统的时候往往意识不到数据库的存在。其实大到银行账户的管理,小到手机的电话簿,可以说社会的所有系统中都有数据库的身影。
1.2.为什么DBMS那么重要
那么,为什么要使用专用系统(DBMS)来管理数据呢?我们通过计算机管理数据的时候,通常使用文本文件或者 Excel 那样的电子制表软件就可以完成了,非常简单。
确实,通过文本文件或者电子制表软件来管理数据的方法非常简便,但也有不足。下面就举几个有代表性的例子。
无法多人共享数据
保存在已连接网络的计算机中的文件,可以通过共享设备实现多个用户在线阅读或编辑。但是,当某个用户打开该文件的时候,其他用户就无法进行编辑了。如果是网上商城的话,当某个用户购买商品的时候,其他用户就无法购买了。
无法提供操作大量数据所需的格式
要想瞬间从几十万或者上百万的数据中获取想要的数据,必须把数据保存为适当的式,但是文本文件和 Excel 工作表等无法提供相应的格式。
实现读写自动化需要编程能力
通过编写计算机程序(以下简称程序)可以实现数据读取和编辑自动
化,但这必须以了解数据结构为前提,还需具备一定的计算机编程技术。
无法应对突发事故
当文件被误删、硬盘出现故障等导致无法读取的时候,可能会造成重要数据丢失,同时数据还可能被他人轻易读取或窃用。DBMS 可以克服这些不足,实现多个用户同时安全简单地操作大量数据。这也是我们一定要使用 DBMS 的原因。
多个用户同事安全简单的操作大量数据
2.DBMS的种类
DBMS 主要通过数据保存格式(数据库的种类)来进行分类,现阶段主要有以下 5 种类型。
层次数据库(Hierarchical Database,HDB)
最古老的数据库之一,它把数据通过层次结构(树形结构)的方式表
现出来。层次数据库曾经是数据库的主流,但随着关系数据库的出现和普
及,现在已经很少使用了。
关系数据库(Relational Database,RDB)
关系数据库是现在应用最广泛的数据库。关系数据库在 1969 年诞生,可谓历史悠久。和 Excel 工作表一样,它也采用由行和列组成的二维表来管理数据,所以简单易懂(表1-1)。同时,它还使用专门的 SQL(StructuredQuery Language,结构化查询语言)对数据进行操作。
这种类型的 DBMS 称为关系数据库管理系统(Relational DatabaseManagement System,RDBMS)。比较具有代表性的 RDBMS 有如下 5 种。
● Oracle Database:甲骨文公司的RDBMS
● SQL Server:微软公司的RDBMS
● DB2:IBM公司的RDBMS
● PostgreSQL:开源的RDBMS
● MySQL:开源的RDBMS
另外,Oracle Database 通常简称为 Oracle。
面向对象数据库(Object Oriented Database,OODB)
编程语言当中有一种被称为面向对象语言的语言 。把数据以及对数据的操作集合起来以对象为单位进行管理,因此得名。面向对象数据库就是用来保存这些对象的数据库。
XML数据库(XML Database,XMLDB)
最近几年,XML 作为在网络上进行交互的数据的形式逐渐普及起来。XML 数据库可以对 XML 形式的大量数据进行高速处理。
键值存储系统(Key-Value Store,KVS)
这是一种单纯用来保存查询所使用的主键(Key)和值(Value)的组合的数据库。具有编程语言知识的读者可以把它想象成关联数组或者散列(hash)。近年来,随着键值存储系统被应用到 Google 等需要对大量数据进行超高速查询的 Web 服务当中,它正逐渐为人们所关注。
总结:
● 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。
● 用来管理数据库的计算机系统称为数据库管理系统(DBMS)。
● 通过使用DBMS,多个用户便可安全、简单地操作大量数据。
● 数据库有很多种类,本书将介绍如何使用专门的SQL语言来操作关系数据库。
● 关系数据库通过关系数据库管理系统(RDBMS)进行管理。
<END>