1.1.3 数据库系统的组成
1. 数据库系统的几个基本概念
(1)数据库(DataBase,DB)
数据库是存储在计算机存储设备上的、结构化的相关数据的集合,这些数据被数据库管理系统按一定的组织形式存储在各个数据文件中。数据库中的数据具有较小的冗余度、较高的数据独立性和易扩展性,具有完善的自我保护能力和数据恢复能力,并能够提供数据共享。
(2)数据库系统(DataBase System,DBS)
数据库系统是指引入数据库后的计算机系统。它主要由五部分组成:硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户。
(3)数据库管理系统(DataBase Management System,DBMS)
数据库管理系统是数据库系统中对数据进行管理的软件,位于用户与操作系统之间。数据库管理系统可以对数据库的建立、使用和维护进行管理,可以使数据库中的数据具有最小的冗余度,并对数据库中的数据提供安全性和完整性等统一控制机制,方便用户以交互命令方式或程序方式对数据库进行操作。
DBMS是数据库系统的核心组成部分,用户对数据库的定义、查询、更新等各种操作都是通过DBMS进行的。
(4)数据库应用系统(DataBase Application System,DBAS)
数据库应用系统是指系统开发人员利用数据库系统资源开发出来的、面向某一类实际应用问题的应用软件系统。例如,以数据库为基础的教学管理系统、财务管理系统、图书管理系统等。一个数据库应用系统通常由数据库和应用程序组成,它们都是在数据库管理系统支持下设计和开发出来的。
(5)用户
用户是指使用和管理数据库的人,他们可以对数据库进行存储、维护和检索等操作。数据库系统中用户可分为三类。
① 终端用户,主要是指使用数据库的各级管理人员、工程技术人员等。一般来说,他们是非计算机专业人员。
② 应用程序员,负责为终端用户设计和编制应用程序,以便终端用户对数据库进行操作。
③ 数据库管理员,是指对数据库进行设计、维护和管理的专门人员。
2. 数据库系统的特点
(1)实现数据共享,减少数据冗余
在数据库系统中,数据的定义和描述已经从应用程序中分离出来,通过数据库管理系统来统一管理,从而实现数据共享,减少数据冗余。
(2)采用特定的数据模型
数据库中的数据是有结构的,这种结构是由数据库管理系统所支持的数据模型表现出来的。数据库系统不仅可以表示事物内部各数据项之间的联系,而且可以表示事物与事物之间的联系。所以,任何一个数据库管理系统都支持一种抽象的数据模型,以此反映现实世界事物之间的联系。
(3)有统一的数据控制功能
数据库可以被多个用户或应用程序共享,因此存在着并发控制问题。数据库管理系统提供必要的保护措施,不仅包括并发访问控制功能,而且还包括数据安全性控制功能和数据完整性控制功能等。
(4)具有较高的数据独立性
在数据库系统中,由于数据库管理系统可以提供映像功能,使得应用程序对数据的总体逻辑结构与物理存储结构之间具有较高的独立性。这样,用户在操作数据时,不用考虑数据在存储器上的物理位置与结构,只需以简单的逻辑结构来操作数据。
表1.1列出了数据库系统与一般文件应用系统的主要性能差异,通过该表可看出数据库系统的特点。
表1.1 数据库系统与一般文件应用系统的性能对照
3. 数据库系统的发展
经过几十年的发展,数据库系统已走过了第一代的格式化数据库系统、第二代的关系型数据库系统,现正向第三代的对象-关系数据库系统迈进。
(1)格式化数据库系统
格式化数据库系统是对第一代数据库系统的总称,其中又包括层次型数据库系统与网状型数据库系统两种类型,这一代数据库系统具有以下特征。
① 采用“记录”为基本的数据结构。在不同的“记录型”(Record Type)之间,允许存在相互联系。
“层次模型”(Hierarchical Model)总体结构为“树形”,在不同记录型之间只允许存在单线联系;“网状模型”(Network Model),其总体结构呈网形,在两个记录型之间允许存在两种或多于两种的联系。前者适用于管理具有家族形系统结构的数据库,后者则更适于管理在数据之间具有复杂联系的数据库。
② 无论层次模型还是网状模型,一次查询只能访问数据库中的一个记录,存取效率不高。对于具有复杂联系的系统,用户查询时还需详细描述数据的访问路径(存取路径),操作也比较麻烦。因此,自关系型数据库兴起后,格式化数据库系统已逐渐被关系数据库系统所取代,目前仅在一些大中型计算机系统中使用。
(2)关系型数据库系统(Relational DataBase Systems,RDBS)
早在1970年,IBM公司San Jose研究实验室的研究员科德(E.F.Codd)就在一篇论文中提出了“关系模型”(Relational Model)的概念,从而开创了关系数据库理论的研究。
20世纪70年代中期,国外已有商品化的RDBS问世,数据库系统随之进入了第二代。20世纪80年代后,RDBS在包括个人计算机(Personal Computer,PC)在内的各型计算机上实现,目前在PC上使用的数据库系统主要是第二代数据库系统。
与第一代数据库系统相比,RDBS具有下列优点。
① 采用人们习惯使用的表格作为基本的数据结构,通过公共的关键字段来实现不同二维表之间(或“关系”之间)的数据联系。关系模型呈二维表形式,简单明了,使用与学习都很方便。
② 一次查询仅用一条命令或语句,即可访问整个“关系”(或二维表),因而查询效率较高,不像第一代数据库那样每次仅能访问一个记录。在RDBS中,通过多表联合操作,还能对有联系的若干二维表实现“关联”查询。
(3)对象-关系数据库系统(Object-Relational DataBase Systems,ORDBS)
关系型数据库系统管理的信息可包括字符型、数值型、日期型等多种类型,但本质上都属于单一的文本(Text)信息。随着多媒体应用的扩大,人们对数据库提出了新的需求,希望数据库系统能存储图形、声音等复杂的对象,并能实现复杂对象的复杂行为。将数据库技术与面向对象技术相结合,便顺理成章地成为研究数据库技术的新方向,构成第三代数据库系统的基础。
20世纪80年代中期以来,人们对面向对象的数据库系统(Object-Oriented DataBase Systems,OODBS)的研究十分活跃。1989年和1990年,《面向对象数据库系统宣言》和《第三代数据库系统宣言》被相继发表,后者主要介绍对象-关系数据库系统(ORDBS)。一批代表新一代数据库系统的软件产品也陆续推出。由于ORDBS是建立在RDBS技术之上的,可以直接继承RDBS的原有技术和用户基础,所以其发展比OODBS更为顺利,正在成为第三代数据库系统的主流。
根据《第三代数据库系统宣言》提出的原则,第三代数据库系统除应包含第二代数据库系统的功能外,还应支持文本以外的图像、声音等新的数据类型,支持类、继承、函数/方法等丰富的对象机制,并能提供高度集成的、可支持客户机/服务器应用的用户接口。我们可以将ORDBS理解为以关系模型和SQL为基础,扩充了许多面向对象的特征的数据库系统。目前,ORDBS还处在发展过程中,在技术和应用上发展较快,并已显现出良好的发展前景。
4. 数据库系统的分类
1987年,著名的美国数据库专家厄尔曼(J. D. Ullman)教授在一篇题为《数据库理论的过去和未来》的论文中,曾把数据库理论概括为4个分支:关系型数据库理论、分布式数据库理论、演绎数据库理论和面向对象数据库理论。今天,关系型数据库已经得到广泛的应用,并成为当今数据库系统的主流。其余3个分支在过去十余年间也取得了不小的进展,并在理论研究的基础上开发出各种实用的数据库系统。
(1)面向对象数据库
数据库的分代是根据所采用的数据模型划分的。这里所谓的数据模型,首先是指把数据组织起来所采用的数据结构,同时也包含数据操作和数据完整性约束等要素。与第一代数据库常见的层次模型和网状模型相比,关系模型不仅简单易用,理论也比较成熟,但如果用它来存储和检索包括图形、文本、声音、图像在内的多媒体数据,就显得不太方便了。所以,当面向对象技术兴起后,人们就探索用对象模型来组织多媒体数据库,推动并促进了第三代数据库——对象式数据库的诞生。
多媒体数据库是面向对象数据库的重要实例,它管理的数据不仅容量大,而且长短不一,检索方法也从传统数据库的“精确查询”,改变为以“非精确匹配和相似查询”为主的“基于内容”的检索。20世纪90年代,一些著名的第二代数据库如Oracle、Sybase等都在原来关系模型的基础上引入了对象机制,扩展了对多媒体数据的管理功能。1998年,据称是世界上第一个“真正面向对象的”多媒体数据库——Jasmine数据库也已问世。
(2)分布式数据库
如果说多媒体应用促进了面向对象数据库的发展,则网络的应用与普及推动了分布式数据库发展。在早期的数据库中,数据都是集中存放的,即所谓的集中式数据库。分布式数据库则把数据分散地存储在网络的多个结点上,彼此用通信线路连接。例如,一个银行有众多储户,如果他们的数据集中存放在一个数据库中,所有的储户在存取款时都要访问这个数据库,网络通信量必然很大;若改用分布式数据库,将储户的数据分散地存储在离各自住所最近的储蓄所,则大多数时候数据可就近存取,仅有少数时候数据需远程调用,从而大大减少了网络上的数据传输量。现在,在Internet/Intranet上流行的Web数据库就是分布式数据库的实例。它使全城(市)的储户通过同一银行的任何一个储蓄所,都能够实现通存通兑。
分布式数据库也是多用户数据库,可供多个用户同时在网络上使用。但多用户数据库并非总是分布存储的。以飞机订票系统为例,它允许乘客在多个售票点进行订票,但同一航空公司的售票数据通常是集中存放的,而不是分散存放在各个售票点上。
(3)演绎数据库
传统数据库存储的数据都代表已知的事实(Fact),演绎数据库(Deductive Database)则除存储事实外,还能存储用于逻辑推理的规则。例如,某演绎数据库存储有“校长领导院长”的规则。如果库中同时存有“甲是校长”“乙是院长”等数据,它就能推理得出“甲领导乙”的新事实。
由于这类数据库是由“事实+规则”所构成的,所以有时也称为“基于规则的数据库”(Rule-Based Database)或“逻辑数据库”(Logic Database)。它所采用的数据模型则称为逻辑模型(Logic Data Model)或基于逻辑的数据模型。
随着人工智能不断走向实用化,人们对演绎数据库的研究也日趋活跃。演绎数据库与专家系统和知识库(Knowledge Base)一起被称为智能数据库。其关键是逻辑推理,如果推理模式出了问题,
便可能导致荒诞的结果。
5. 数据库系统组成
数据库系统(DBS)是指安装使用了数据库技术的计算机系统。数据库系统由6部分组成:计算机硬件系统、系统软件(Windows)、数据库管理系统(DBMS)、数据库(DB)、数据库应用系统(DBAS)和用户,如图1.4所示。
图1.4 数据库系统组成