数据库技术是数据管理的最新技术,是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一,它是专门研究如何科学地组织和存储数据、如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源的最先进最常用的技术。因此,数据库课程不仅是计算机科学与技术专业、信息管理与信息系统专业的必修课程,也是许多非计算机专业的必修课程。
随着计算机技术的飞速发展,信息已成为当今社会各种活动的核心资源,通过对这些信息资源的进一步开发利用,可有效降低相应活动的成本,使各种社会资源得到最大限度节约和合理运用,而这其中起着基础和核心作用的就是数据库。
数据库(Database),简单地说就是数据的仓库,即数据存放的地方。我们周围有许多数据库的例子,如通讯录是一个小数据库,图书馆则是一个典型的大型数据库。小数据库尚可用手工管理,而大型数据库必须由计算机进行管理。在计算机三大主要应用领域(科学计算、过程控制和数据处理)中,数据处理所占比例约为70%。20世纪60年代末,数据库技术作为数据处理的最新技术应运而生。
本章首先回顾数据管理技术的三个发展阶段,然后介绍数据库中的相关概念。学习本章后,读者应了解数据库的发展阶段及各阶段的主要特点,掌握数据库中的有关的基本概念、数据库系统的组成及各部分的主要功能,重点掌握实体、属性定义和实体型之间的联系类型及特点,了解三种数据模型的特点及区别,为后续各章的学习打下基础。
1.1 信息、数据、数据处理与数据管理
1.1.1 数据与信息
在数据处理中,最常用到的基本概念就是数据和信息,二者之间既有区别又有联系。
1.信息(Information)
(1)信息的定义。信息是人脑对现实世界事物的存在方式、运动状态以及事物之间联系的抽象反映。信息是客观存在的,人类有意识地对信息进行采集并加工、传递,从而形成了各种消息、情报、指令、数据及信号等。例如,对于学生基本情况来说,某同学的学号是“S1”,姓名是“赵亦”,性别是“女”,年龄是“17岁”,所在系别是“计算机”等,这些都是关于某个同学的具体信息,是该同学当前存在状态的反映。
(2)信息的特征。
① 信息源于物质和能量。信息不可能脱离物质而存在,信息的传递需要物质载体,信息的获取和传递要消耗能量。如信息可以通过报纸、电台、电视和计算机网络进行传递。
② 信息是可以感知的。人类对客观事物的感知,可以通过感觉器官,也可以通过各种仪器仪表和传感器等,不同的信息源有不同的感知形式。如报纸上刊登的信息通过视觉器官感知,电台中广播的信息通过听觉器官感知。
③ 信息是可存储、加工、传递和再生的。人们用大脑存储信息,叫做记忆。计算机存储器、录音、录像等技术的发展,进一步扩大了信息存储的范围。借助计算机,还可对收集到的信息进行整理。
2.数据(Data)
(1)数据的定义。数据是由用来记录信息的可识别的符号组合的,是信息的具体表现形式。例如,上面提到的描述某个同学的信息,可用一组数据“S1、赵亦、女、17、计算机”表示。由于这些符号在此已被赋予了特定的语义,因此,它们就具有传递信息的功能。
可见,数据和它的语义是不可分割的。例如,对于数据:(赵亦,计算机),我们可以赋予它一定的语义,它表示“赵亦”所在系为“计算机”系。如果不了解其语义,则无法对其进行正确解释,甚至解释为“赵亦”学习的课程为“计算机”。
(2)数据的表现形式。可用多种不同的数据形式表示同一信息,而信息不随数据形式的不同而改变。如“2000年硕士研究生将扩招30%”,其中的数据可改为汉字形式“两千年”、“百分之三十”,而表达的信息是一致的。
由于早期的计算机系统主要用于科学计算,因此计算机中处理的数据主要是整数、浮点数等传统数学中的数字。但是,在现代计算机系统中,数据的概念是广义的,数据的概念内涵已被大大地拓宽了,其表现形式不仅包括数字,还包括文字、图形、图像和声音等,它们都可以经过数字化后存储到计算机中。
3.数据与信息的联系
通过前面的分析可以看出,信息与数据之间存在着固有的联系:数据是信息的符号表示或载体,信息则是数据的内涵,是对数据的语义解释。如上例中的数据“2000”、“30%”被赋予了特定的语义,此处的2000表示的是“2000年”,30%表示的是“研究生将扩招30%”,因此,它们就具有了传递信息的功能。
数据表示了信息,而信息只有通过数据形式表示出来才能被人们理解和接受。尽管两者在概念上不尽相同,但通常人们并不严格去区分它们。
1.1.2 数据处理与数据管理
数据处理是将数据转换成信息的过程,包括对数据的收集、管理、加工利用乃至信息输出的演变与推导等一系列活动。其目的之一是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据;目的之二是借助计算机科学地保存和管理大量复杂的数据,以便人们能够方便地充分利用这些信息资源。
在数据处理过程中,数据是原料,是输入,而信息是产出,是输出结果。“信息处理”的真正含义应该是为了产生信息而处理数据。
在数据处理中,通常计算比较简单,而数据的管理比较复杂。数据管理是指数据的收集、分类、组织、编码、存储、维护、检索和传输等操作,这些操作是数据处理业务的必不可少的基本环节。对数据管理部分,应研制出一个通用、高效而又使用方便的管理软件,把数据有效地管理起来,以便最大限度地减轻程序员的负担;至于处理业务中的加工计算,因不同业务各不相同,要靠程序员根据业务情况编写应用程序加以解决。所以,数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。数据库技术正是瞄准这一目标研究、发展并完善起来的专门技术。
1.2 数据库技术的产生、发展
通过前面的学习可知,数据处理的中心问题是数据管理。随着计算机硬件和软件的发展,数据管理经历了人工管理、文件系统和数据库系统三个发展阶段。数据库技术正是应数据管理任务的需要而产生、发展的。
1.人工管理阶段
在20世纪50年代中期以前,计算机主要用于科学计算,当时硬件中的外存只有卡片、纸带和磁带,没有磁盘等直接存取设备。软件只有汇编语言,没有操作系统和管理数据的软件。所以,为了给程序提供完成科学计算和数据处理的数据,必须手工来完成。因此,称这样的数据管理方式为人工管理数据。
人工管理数据有如下几个特点。
(1)数据不保存。因为还没有磁盘这样的可直接存取数据的存储设备,再者,当时计算机主要用于科学计算,对于数据保存的需求尚不迫切。只有在计算某一课题时才将原始数据随程序一起输入内存,运算处理结束后将结果数据输出,随着计算任务的完成,数据和程序一起从内存中被释放;若再计算同一课题时,还需要再次输入原始数据和程序。可见,不仅参加运算的原始数据不保存,运算的结果也不保存。
(2)系统没有专用的软件对数据进行管理。数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。每个应用程序不仅要规定数据的逻辑结构,而且要设计物理结构,包括数据的存储结构、存取方法和输入方式等,因此,程序员的负担也很重。
(3)数据不共享。数据是面向程序的,一组数据只能对应一个程序。即使多个应用程序涉及某些相同的数据时,也必须各自定义,无法互相利用、互相参照,因此,程序之间有大量的冗余数据。
(4)数据不具有独立性。由于以上几个特点,以及没有专门对数据进行管理的软件系统,所以,这个时期的每个程序都要包括数据存取方法、输出/输出方式和数据组织方法等。因为程序是直接面向存储结构的,所以,如果数据的类型、格式或输入/输出方式等逻辑结构或物理结构发生变化,必须对应用程序做出相应的修改,因而,数据与程序不具有独立性,这也进一步加重了程序员的负担。
在人工管理阶段,程序与数据之间是一一对应的关系,其特点可用图1-1表示。
2.文件系统阶段
在20世纪50年代后期至60年代中期,计算机应用范围逐步扩大,不仅用于科学计算,还大量用于信息管理。随着数据量的增加,数据的存储、检索和维护成为紧迫的需要。
此时,在硬件方面,已有了磁盘、磁鼓等直接存取设备;在软件方面,出现了高级语言和操作系统,操作系统中有了专门管理数据的软件。
文件系统阶段数据管理有如下特点。
(1)数据以文件形式长期保存。数据以文件的组织方式,长期保存在计算机的磁盘上,可以被多次反复使用。应用程序可对文件进行查询、修改和增删等处理。
(2)由文件系统管理数据。文件系统提供了文件管理功能和访问文件的存取方法。文件系统把数据组织成内部有一定结构的记录并以文件的形式存储在存储设备上,这样,程序只与存储设备上的文件名打交道,不必关心数据的物理存储(存储位置、存储结构等),而由文件系统提供的存取方法实现数据的存取,从而实现了“按文件名访问,按记录进行存取”的数据管理技术。
(3)程序与数据间有一定独立性。由于文件系统在程序与数据文件之间的存取转换作用,使得程序和数据之间具有“设备独立性”,即当改变存储设备时,不必改变应用程序。程序员也不必过多地考虑数据存储的物理细节,而将精力集中于算法设计上,从而大大减少了维护程序的工作量。
(4)文件的形式已经多样化。由于有了磁盘这样的直接存取存储设备,文件也就不再局限于顺序文件,有了索引文件、链表文件等。因此,对文件的访问既可以是顺序访问,也可以是直接访问。但文件之间是独立的,它们之间的联系需要通过程序去构造,文件的共享性也还比较差。
(5)数据具有一定的共享性。有了文件以后,数据就不再仅仅属于某个特定的程序,而可以由多个程序反复使用。但文件结构的设计仍然是基于特定的用途,程序仍然是基于特定的物理结构和存取方法编制的。因此,数据的存储结构和程序之间的依赖关系并未根本改变。
在文件系统阶段,程序与数据之间的对应关系如图1-2所示。
与人工管理阶段相比,文件系统阶段对数据的管理有了很大的进步,但一些根本性问题仍没有彻底解决,主要表现在以下几方面。
(1)数据共享性差、冗余度大。一个文件基本上对应于一个应用程序,即文件仍然是面向应用的。当不同的应用程序所使用的数据具有共同部分时,也必须分别建立自己的数据文件,数据不能共享。
(2)数据不一致性。这通常是由数据冗余造成的。由于相同数据在不同文件中的重复存储、各自管理,在对数据进行更新操作时,不但浪费磁盘空间,同时也容易造成数据的不一致性。
(3)数据独立性差。在文件系统阶段,尽管程序与数据之间有一定的独立性,但是这种独立性主要是指设备独立性,还未能彻底体现用户观点下的数据逻辑结构独立于数据在外部存储器的物理结构要求。因此,在文件系统中,一旦改变数据的逻辑结构,必须修改相应的应用程序,修改文件结构的定义。而应用程序发生变化,如改用另一种程序设计语言来编写程序,也将引起文件的数据结构的改变。
(4)数据间的联系弱。文件与文件之间是独立的,文件间的联系必须通过程序来构造。因此,文件系统只是一个没有弹性的、无结构的数据集合,不能反映现实世界事物之间的内在联系。
3.数据库系统阶段
从20世纪60年代后期开始,计算机用于管理的规模更加庞大,应用越来越广泛,数据量急剧增加,同时,多种应用、多种语言互相覆盖地共享数据集合的要求也越来越强烈。
在这种情况下,为了提高数据管理的效率,人们开始对文件系统进行扩充,但这样做没能解决问题。而此时,硬件方面出现了大容量、存取快速的磁盘,使计算机联机存取大量数据成为可能,也为数据库技术的产生和发展提供了物质条件。同时,硬件价格下降和软件价格上升,使开发和维护系统软件的成本相对增加。因此,文件系统的数据管理方法已无法适应各种应用的需要。于是为解决多用户、多个应用程序共享数据的需求,数据库技术应运而生,出现了统一管理数据的专门软件系统,即数据库管理系统。
可见,计算机技术的发展、数据管理的需求迫切性共同促进了数据库技术的诞生。
20世纪60年代末期出现的对数据管理技术有着奠基作用的三件大事,标志着以数据库系统为基本手段的数据管理新阶段的开始。
(1)1968年,美国IBM公司推出了商品化的信息管理系统(Information Management System,IMS)。该系统支持层次数据模型,也就是使用层次结构来表示数据与数据之间的联系。
(2)1969年,美国数据系统语言协会(Conference On Data System Language,CODASYL)下属的数据库任务组(DataBase Task Group,DBTG)发布了一系列研究数据库方法的DBTG报告,该报告建立了数据库技术的很多概念、方法和技术。其中,DBTG提出的网状数据模型,可以表示任意数据之间的联系,从而突破了已有层次模型的限制。
(3)1970年起,美国IBM公司的研究员E. F. Codd连续发表文章,提出了数据间的联系用数学上的“关系”来表示,即提出了数据库的关系模型,从而开创了数据库关系方法和关系数据理论的研究,为关系数据库的发展和理论研究奠定了基础,该模型一直沿用至今。
20世纪70年代以来,数据库技术得到迅速发展,开发出了许多产品,并投入运行。数据库系统克服了文件系统的缺陷,提供了对数据更高级、更有效的管理,与人工管理和文件系统相比,数据库系统阶段管理数据的特点有如下几个方面。
(1)结构化的数据及其联系的集合。在数据库系统中,将各种应用的数据按一定的结构形式(即数据模型)组织到一个结构化的数据库中,不仅考虑了某个应用的数据结构,而且考虑了整个组织(即多个应用)的数据结构,也就是说,数据库中的数据不再仅仅针对某个应用,而是面向全组织,不仅数据内部是结构化的,整体也是结构化的;不仅描述了数据本身,也描述了数据间的有机联系,从而较好地反映了现实世界事物间的自然联系。
例如:要建立学生成绩管理系统,系统包含学生(学号、姓名、性别、系别、年龄)、课程(课程号、课程名)、成绩(学号、课程号、成绩)等数据,分别对应三个文件。若采用文件处理方式,因为文件系统只表示记录内部的联系,而不涉及不同文件记录之间的联系,要想查找某个学生的学号、姓名、所选课程的名称和成绩,必须编写一段比较复杂的程序来实现,即不同文件记录间的联系只能写在程序中,在编写程序时考虑和实现。而采用数据库方式,由于数据库系统不仅描述数据本身,还描述数据之间的联系,记录之间的联系可以用参照完整性来表述,上述查询可以非常容易地联机查到。
此外,在数据库系统中,不仅数据是结构化的,而且存取数据的方式也很灵活,可以存取数据库中的某一个数据项、一组数据项、一个记录或一组记录。而在文件系统中,数据的最小存取单位是记录,不能细化到数据项。
(2)数据共享性高、冗余度低。所谓数据共享是指数据库中的一组数据集合可为多个应用和多个用户共同使用。由于数据库系统从整体角度看待和描述数据,数据不再面向某个或某些应用,而是全盘考虑所有用户的数据需求、面向整个应用系统,所有用户的数据都包含在数据库中,因此,不同用户、不同应用可同时存取数据库中的数据,每个用户或应用只使用数据库中的一部分数据,同一数据可供多个用户或应用共享,从而减少了不必要的数据冗余,节约了存储空间,同时也避免了数据之间的不相容性与不一致性,即避免了同一数据在数据库中重复出现且具有不同值的现象。
同时,在数据库系统下,用户或应用不像在文件系统中那样各自建立自己对应的数据文件,而是从数据库中存取其中的数据子集,该数据子集是通过数据库管理系统(DataBase Management System,DBMS)从数据库中经过映射而形成的逻辑文件。同一个数据可能在物理存储上只存一次,但可以把它映射到不同的逻辑文件里,这就是数据库系统提高数据共享、减少数据冗余的根本所在,如图1-3所示。
(3)数据独立性高。所谓数据的独立性是指数据库中的数据与应用程序间相互独立,即数据的逻辑结构、存储结构以及存取方式的改变不影响应用程序。
在数据库系统中,整个数据库的结构可分成三级:用户的逻辑结构、整体逻辑结构和物理结构。数据独立性分两级:物理独立性和逻辑独立性,如图1-4所示。
数据的物理独立性是指当数据的物理结构(如存储结构、存取方式、外部存储设备等)改变时,通过修改映射,使数据库整体逻辑结构不受影响,进而用户的逻辑结构以及应用程序不用改变。 数据的逻辑独立性是指当数据库的整体逻辑结构(如修改数据定义、增加新的数据类型、改变数据间的关系等)发生改变时,通过修改映射,使用户的逻辑结构以及应用程序不用改变。 数据独立性把数据的定义从程序中分离出去,加上数据的存取是由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
(4)有统一的数据管理和控制功能。在数据库系统中,数据由数据库管理系统进行统一管理和控制。数据库可为多个用户和应用程序所共享,不同的应用需求,可以从整个数据库中选取所需要的数据子集。另外,对数据库中数据的存取往往是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。为确保数据库数据的正确、有效和数据库系统的有效运行,数据库管理系统提供下述4个方面的数据控制功能。
① 数据的安全性(Security)控制:防止不合法使用数据库造成数据的泄露和破坏,使每个用户只能按规定对某些数据进行某种或某些操作和处理,保证数据的安全。例如,系统提供口令检查用户身份或用其他手段来验证用户身份,以防止非法用户使用系统。也可以对数据的存取权限进行限制,用户只能按所具有的权限对指定的数据进行相应的操作。
② 数据的完整性(Integrity)控制:系统通过设置一些完整性规则等约束条件,确保数据的正确性、有效性和相容性。
正确性是指数据的合法性,如年龄属于数值型数据,只能含0,1,…,9,不能含字母或特殊符号。
有效性是指数据是否在其定义的有效范围,如月份只能用1~12的正整数表示。
相容性是指表示同一事实的两个数据应相同,否则就不相容,如一个人不能有两个性别。
③ 并发(Concurrency)控制:多个用户同时存取或修改数据库时,系统可防止由于相互干扰而提供给用户不正确的数据,并防止数据库受到破坏。
④ 数据恢复(Recovery):由于计算机系统的硬件故障、软件故障、操作员的误操作及其他故意的破坏等原因,造成数据库中的数据不正确或数据丢失时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。
在数据库系统阶段,程序与数据之间的关系,如图1-5所示。
从文件系统管理发展到数据库系统管理是信息处理领域的一个重大变化。在文件系统阶段,人们关注的是系统功能的设计,因此,程序设计处于主导地位,数据服从于程序设计;而在数据库系统阶段,数据占据了中心位置,数据的结构设计成为信息系统首先关心的问题。
1.3 数据库系统的组成
数据库系统(DataBase System,DBS)是指在计算机系统中引入数据库后的系统。它主要由数据库、数据库用户、计算机硬件系统和计算机软件系统等几部分组成。有时人们常将数据库系统简称为数据库,它可用图1- 6表示。
1.数据库
数据库(DataBase,DB)是存储在计算机内、有组织的、可共享的数据和数据对象(如表、视图、存储过程和触发器等)的集合,这种集合按一定的数据模型(或结构)组织、描述并长期存储,同时能以安全和可靠的方法进行数据的检索和存储。
数据库有如下两个特点。
(1)集成性。将某特定应用环境中的各种应用相关的数据及其数据之间的联系全部集中地并按照一定的结构形式进行存储,或者说,把数据库看成为若干个性质不同的数据文件的联合和统一的数据整体。
(2)共享性。数据库中的数据可为多个不同的用户所共享,即多个不同的用户可使用多种不同的语言,为了不同的应用目的,而同时存取数据库,甚至同时存取数据库中的同一数据。
2.用户
用户是指使用数据库的人,他们可对数据库进行存储、维护和检索等操作。用户分为以下三类。
(1)第一类用户:即最终用户(End User)。最终用户主要是使用数据库的各级管理人员、工程技术人员和科研人员,一般为非计算机专业人员。他们主要利用已编制好的应用程序接口使用数据库。
(2)第二类用户:即应用程序员(Application Programmer)。应用程序员负责为终端用户设计和编制应用程序,并进行调试和安装,以便终端用户利用应用程序对数据库进行存取操作。
(3)第三类用户:即数据库管理员(DataBase Administrator,DBA)。数据库管理员是负责设计、建立、管理和维护数据库以及协调用户对数据库要求的个人或工作团队。DBA应熟悉计算机的软硬件系统,具有较全面的数据处理知识,熟悉本单位的业务、数据及其流程。
可见,DBA不仅要有较高的技术水平和较深的资历,并应具有了解和阐明管理要求的能力。特别对于大型数据库系统,DBA极为重要。常见的微机数据库系统只有一个用户,常常不设DBA,DBA的职责由应用程序员或终端用户代替。而对于大型数据库系统,DBA常常是一个团队。
DBA的主要职责如下:
① 参与数据库设计的全过程,决定整个数据库的结构和信息内容。
② 决定数据库的存储结构和存取策略,以获得较高的存取效率和存储空间利用率。
③ 帮助终端用户使用数据库系统,如培训终端用户、解答终端用户日常使用数据库系统时遇到的问题等。
④ 定义数据的安全性和完整性约束条件,负责分配各个用户对数据库的存取权限、数据的保密级别和完整性约束条件。
⑤ 监控数据库的使用和运行,DBA负责定义和实施适当的数据库后备和恢复策略,当数据库受到破坏时,在最短时间内将数据库恢复到正确状态;当数据库的结构需要改变时,完成对数据结构的修改。
⑥ 改进和重组重构数据库,DBA负责监视数据库系统运行期间的空间利用率、处理效率等性能指标,利用数据库系统提供的监视和分析实用程序等方式对运行情况进行记录、统计分析,并根据实际情况不断改进数据库的设计,不断提高系统的性能;另外,还要不断根据用户需求情况的变化,对数据库进行重新构造。
3.软件(Software)系统
软件系统主要包括数据库管理系统(DBMS)及其开发工具、操作系统(Operating System,OS)和应用系统等。在计算机硬件层之上,由操作系统统一管理计算机资源。这样,DBMS可借助操作系统完成对硬件的访问,并能对数据库的数据进行存取、维护和管理。另外,数据库系统的各类人员、应用程序等对数据库的各种操作请求,都必须通过DBMS完成。DBMS是数据库系统的核心软件。
4.硬件(Hardware)系统
硬件系统指存储和运行数据库系统的硬件设备。包括CPU、内存、大容量的存储设备、输入/输出设备和外部设备等。
数据库系统在整个计算机系统中的地位,如图1-7所示。
由图1-7看出,DBMS在操作系统的支持下工作,应用程序在DBMS支持下才能使用数据库。
1.4 数据库系统的内部体系结构
我们可以从多种角度考查数据库系统的结构。 从数据库管理系统的角度看,数据库系统通常采用三级模式结构,这是数据库管理系统内部的体系结构。
1.4.1 数据库系统的三级模式结构
1.数据库系统模式的概念
我们知道,数据库中的数据是按一定的数据模型(结构)组织起来的,而在数据模型中有“型”(Type)和“值”(Value)的概念。“型”是指对某一类数据的结构和属性的说明,而“值”是“型”的一个具体赋值。例如,在描述学生基本情况的信息时,学生基本情况可用学生记录表示,学生记录定义为(学号,姓名,性别,年龄,系别),称为记录型,而(001101,张立,男,20,计算机)则是该记录型的一个记录值。
模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅涉及型的描述,而不涉及具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。
模式相对稳定不变,而实例则由于数据库中数据的不断更新变化而相对变动。模式反映的是数据的结构及其关系,而实例反映的是数据库某一时刻的状态。
例如,在描述学生基本情况的数据库模式中,包含了学生基本情况记录,则2012级和2013级的所有学生的基本情况就各自形成一个学生基本情况数据库实例。显然,这两个实例的数据库模式是相同的,都是学生基本情况数据库模式,其记录型都是(学号,姓名,性别,年龄,系别);但两个实例是不同的,因为2012级学生的基本情况信息与2013级学生的基本情况信息肯定是不相同的。同时,由于学生在学习过程中出现转系、退学等情况时,以上两个数据库实例也可能随时发生变化,但它们的数据库模式不变。
2.数据库系统的三级模式结构
美国国家标准学会(ANSI)所属标准计划和要求委员会在1975年公布的研究报告中,把数据库系统内部的体系结构从逻辑上分为外模式、模式和内模式三级抽象模式结构和二级映像功能,即ANSI/SPARC体系结构。对用户而言可以对应地分为一般用户级模式、概念级模式和物理级模式,它们分别反映了看待数据库的三个角度。三级模式结构和二级映像功能如图1-8所示。
(1)模式。模式也称为逻辑模式(Logical Schema)或概念模式(Conceptual Schema),是数据库中全体数据的逻辑结构和特征的描述。模式处于三级结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序、所使用的应用开发工具及高级程序设计语言(如C,FORTRAN等)无关。
一个数据库只有一个模式,因为它是整个数据库数据在逻辑上的视图,即是数据库的整体逻辑。也可以认为,模式是对现实世界的一个抽象,是将现实世界某个应用环境(企业或单位)的所有信息按一种数据模型、统一地综合考虑所有用户的需求而形成的一个逻辑整体。
DBMS提供模式定义语言(模式DDL)来定义模式。定义模式时不仅要定义数据的逻辑结构,如数据记录由哪些数据项构成,数据项的名字、数据类型、取值范围等,而且要定义数据间的联系,定义与数据有关的安全性、完整性要求等。
(2)外模式。外模式(External Schema)又称为子模式(Subschema)或用户模式(User Schema),外模式是三级结构的最外层,是数据库用户能看到并允许使用的那部分局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,也是数据库用户的数据视图,即用户视图。
可见,外模式一般是模式的子集,一个数据库可以有多个外模式。由于不同用户的需求可能不同,因此,不同用户对应的外模式的描述也可能不同。另外,同一外模式也可以为某一用户的多个应用系统所使用。
因此,各个用户可根据系统所给的外模式,用查询语言或应用程序去操作数据库中所需要的那部分数据,这样每个用户只能看到和访问所对应的外模式中的数据,数据库中的其余数据对他们来说是不可见的。所以,外模式是保证数据库安全性的一个有力措施。
DBMS提供子模式定义语言(子模式DDL)来定义子模式。
(3)内模式。内模式(Internal Schema)又称存储模式(Storage Schema)或物理模式(Physical Schema),是三级结构中的最内层,也是靠近物理存储的一层,即与实际存储数据方式有关的一层。它是对数据库存储结构的描述,是数据在数据库内部的表示方式。例如,记录以什么存储方式存储(顺序存储、B+树存储等)、索引按照什么方式组织、数据是否压缩、是否加密等。但不涉及任何存储设备的特定约束,如磁盘磁道容量和物理块大小等。
一个数据库只有一个内模式。DBMS提供内模式定义语言(内模式DDL)来定义内模式。
通过对数据库三级模式结构的分析可以看出,对于一个数据库系统来说,实际存在的只是物理级数据库,它是数据访问的基础。概念级数据库只不过是物理级数据库的一种抽象描述,用户级数据库是用户与数据库的接口。用户根据子模式进行的操作,通过子模式到模式的映射与概念级数据库联系起来,又通过模式到存储模式的映射与物理级数据库联系起来。事实上,DBMS的中心工作之一就是完成三级数据库模式间的转换,把用户对数据库的操作转化到物理级去执行。
在数据库系统中,外模式可有多个,而模式、内模式只能各有一个。内模式是整个数据库实际存储的表示,而模式是整个数据库实际存储的抽象表示,外模式是概念模式的某一部分的抽象表示。
1.4.2 数据库系统的二级映像与数据独立性
数据库系统的三级模式是数据的三个抽象级别,它使用户能逻辑地处理数据,而不必关心数据在计算机内部的存储方式,把数据的具体组织交给DBMS管理。为了能够在内部实现这三个抽象层次的联系和转换,DBMS在三级模式之间提供了二级映像功能。正是这两级映像保证了数据库系统中的数据能够具有较高的逻辑独立性与物理独立性。
(1)外模式/模式映像。模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。数据库中的同一模式可以有任意多个外模式,对于每一个外模式,都存在一个外模式/模式映像。它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。例如,在原有的记录型之间增加新的联系,或在某些记录型中增加新的数据项时,由数据库管理员对各个外模式/模式映像作相应改变,这一映像功能保证了数据的局部逻辑结构不变(即外模式保持不变)。由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必修改,从而保证了数据与程序间的逻辑独立性。
(2)模式/内模式映像。数据库中的模式和内模式都只有一个,所以模式/内模式映像是唯一的。它确定了数据的全局逻辑结构与存储结构之间的对应关系。存储结构变化时,如采用了更先进的存储结构,由数据库管理员对模式/内模式映像作相应变化,使其模式仍保持不变,即把存储结构变化的影响限制在模式之下,这使数据的存储结构和存储方法较高地独立于应用程序,通过映像功能保证数据存储结构的变化不影响数据的全局逻辑结构的改变,从而不必修改应用程序,即确保了数据的物理独立性。
1.4.3 数据库系统的三级模式与二级映像的优点
数据库系统的三级模式结构与二级映像使数据库系统具有以下优点。
(1)保证数据的独立性。将模式和内模式分开,保证了数据的物理独立性;将外模式和模式分开,保证了数据的逻辑独立性。
(2)简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库内部的存储结构,方便用户使用系统。
(3)有利于数据共享。在不同的外模式下可有多个用户共享系统中数据,减少了数据冗余。
(4)有利于数据的安全保密。在外模式下根据要求进行操作,只能对限定的数据操作,保证了其他数据的安全。
1.5 数据库系统的外部体系结构
从数据库管理系统角度来看,数据库系统是一个三级模式结构,但数据库的这种模式结构对最终用户和程序员是透明的,他们见到的仅是数据库的外模式和应用程序。从最终用户角度来看,数据库系统分为单用户结构、主从式结构、分布式结构、客户/服务器结构和浏览器/服务器结构。这是数据库系统的外部体系结构。
1.单用户结构的数据库系统
单用户结构的数据库系统又称桌面型数据库系统,其主要特点是将应用程序、DBMS和数据库都装在一台计算机上,由一个用户独占使用,不同计算机间不能共享数据。
DBMS提供较弱的数据库管理和较强的前端开发工具,开发工具与数据库集成为一体,既是数据库管理工具,同时又是数据库应用开发的前端工具。如:在Visual Foxpro 6.0里就集成了应用开发工具,在Access 97和Access 2000里集成了脚本语言等。
因此,桌面型数据库工作在单机环境,侧重在可操作性、易开发和简单管理等方面。适用于未联网用户、个人用户等。
2.主从式结构的数据库系统
主从式结构的数据库系统是大型主机带多终端的多用户结构的系统。在这种结构中,将应用程序、DBMS和数据库都集中存放在大型主机上,所有处理任务由主机来完成,而连于主机上的终端,只是作为主机的输入/输出设备,各个用户通过主机的终端并发地存取数据,共享数据资源。而主机则通过分时轮流为每个终端用户服务。在每个时刻,每个用户都感觉自己独占主机的全部资源。
主从式结构的主要优点是结构简单、易于管理与维护。缺点是所有处理任务由主机完成,对主机的性能要求较高,当终端数量太多时,主机的处理任务过重,易形成瓶颈,使系统性能下降;另外,当主机出现故障时,整个系统无法使用。因此,对系统的可靠性要求较高。
3.分布式结构的数据库系统
分布式结构的数据库系统是指数据库中的数据在逻辑上是一个整体,但在物理上却分布在计算机网络的不同结点上。它有以下主要特点。
(1)数据在物理上是分布的:数据库中的数据不集中存放在一台服务器上,而是分布在不同地域的服务器上,每台服务器被称为结点。
(2)所有数据在逻辑上是一个整体:数据库中的数据在物理上是分布的,但在逻辑上却互相关联,是相互联系的整体。
(3)结点上分布存储的数据相对独立:在普通用户看来,整个数据库系统仍然是集中的整体,用户不关心数据的分片存储,也不关心物理数据的具体分布,完全由网络数据库在网络操作系统的支持下完成。用户既可以存取本地结点上的数据库,也可以存取异地结点上的数据库。
分布式数据库系统是分布式网络技术与数据库技术相结合的产物,是分布在计算机网络上的多个逻辑相关的数据库的集合。
这种数据库系统的优点是满足了办公地点分散的公司、团体和组织对于数据库应用的需求。缺点是数据的分布式存储给数据的处理、管理与维护带来困难。当用户需要经常访问过程数据时,系统效率明显地受到网络流量的制约。
4.客户在/服务器结构的数据库系统
主从式结构的数据库系统中的主机和分布式结构的数据库系统中的结点机,既执行DBMS功能又执行应用程序。随着工作站功能的增强和广泛使用,人们开始把DBMS的功能与应用程序分开,网络上某个(些)结点机专门用于执行DBMS的功能,完成数据的管理功能,称为数据库服务器,其他结点上的计算机安装DBMS的应用开发工具和相关数据库应用程序,称为客户机,这就是客户机/服务器结构(Client/Server,C/S)的数据库系统,如图1-9所示。
在客户机/服务器结构中,DBMS和数据库存放于数据库服务器上,应用程序和相关开发工具存放于客户机上。客户机负责管理用户界面、接收用户数据、处理应用逻辑、生成数据库服务请求,将该请求发送给服务器,数据库服务器进行处理后,将处理结果返回给客户机,并将结果按一定格式显示给用户。因此,这种客户机/服务器模式,又称为胖客户机模式,是一种两层结构。
客户机/服务器结构的数据库系统的主要优点如下。
(1)网络运行效率大大提高,这主要因为服务器只将处理的结果返回到客户机,从而大大降低了网络上的数据传输量。
(2)应用程序的运行和计算处理工作由客户机完成。这样,既减少了与服务器不必要的通信开销,也减轻了服务器的处理工作,从而减轻了服务器的负载。
客户机/服务器结构主要缺点是维护升级很不方便,需要在每个客户机上安装前端客户程序,而且当应用程序修改后,就必须在所有安装应用程序的客户机上重新安装此应用程序。
5.浏览器/服务器结构的数据库系统
浏览器/服务器结构(Browser/Server,B/S)是针对客户机/服务器结构的不足而提出的。
在浏览器/服务器结构中,客户机端仅安装通用的浏览器软件,实现用户的输入/输出,而应用程序不安装在客户机端,而是安装在介于客户机和数据库服务器之间的另外一个称为应用服务器的服务器端,即将客户端运行的应用程序转移到应用服务器上,这样,应用服务器充当了客户机和数据库服务器的中介,架起了用户界面与数据库之间的桥梁。因此,浏览器/服务器模式是瘦客户机模式,是一种三层结构,如图1-10所示。
可见,浏览器/服务器结构有效地克服了客户机/服务器结构的不足,客户机只要能运行浏览器软件即可,其配置与维护也相对很容易。浏览器/服务器结构在Internet中得到了最广泛的应用。此时,Web服务器即为应用服务器。
1.6 数据库管理系统
数据库管理系统是对数据进行管理的大型系统软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新(包括插入、删除和修改)及各种控制,都是通过DBMS进行的。DBMS就是实现把用户意义下的抽象逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来很大的方便。
1.6.1 DBMS的主要功能
1.数据定义功能
DBMS提供数据定义语言(Data Define Language,DDL),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映像,定义有关的约束条件。例如,为保证数据库安全而定义用户口令和存取权限,为保证正确语义而定义完整性规则等。再如,DBMS提供的结构化查询语言(SQL)提供Create、Drop、Alter等语句可分别用来建立、删除和修改数据库。
用DDL定义的各种模式需要通过相应的模式翻译程序转换为机器内部代码表示形式,保存在数据字典(Data Dictionary,DD)(或称为系统目录)中。数据字典是DBMS存取数据的基本依据。因此,DBMS中应包括DDL的编译程序。
2.数据操纵功能
DBMS提供数据操纵语言(Data Manipulation Language,DML)实现对数据库的基本操作,包括检索、更新(包括插入、修改和删除)等。因此,在DBMS中也应包括DML的编译程序或解释程序。DML有两类:一类是自主型的或自含型的,这一类属于交互式命令语言,语法简单,可独立使用;另一类是宿主型的,它把对数据库的存取语句嵌入在高级语言(如Fortran、Pascal、C等)中,不能单独使用。SQL就是DML的一种。
例如,DBMS提供的结构化查询语言SQL提供查询语句(Select)、插入语句(Insert)、修改语句(Update)和删除语句(Delete),可分别实现对数据库中数据记录的查询、插入、修改和删除等操作。
3.数据库运行管理功能
对数据库的运行进行管理是DBMS运行的核心部分。DBMS通过对数据库的控制以确保数据正确有效和数据库系统的正常运行。DBMS对数据库的控制主要通过4个方面实现:数据的安全性控制、数据的完整性控制、多用户环境下的并发控制和数据库的恢复。
4.数据库的建立和维护功能
数据库的建立包括数据库的初始数据的装入与数据转换等,数据库的维护包括数据库的转储、恢复、重组织与重构造、系统性能监视与分析等。这些功能分别由DBMS的各个实用程序来完成。
5.数据通信接口
DBMS提供与其他软件系统进行通信的功能。一般,DBMS提供了与其他DBMS或文件系统的接口,从而使该DBMS能够将数据转换为另一个DBMS或文件系统能够接受的格式,或者可接收其他DBMS或文件系统的数据,实现用户程序与DBMS、DBMS与DBMS、DBMS与文件系统之间的通信。通常这些功能要与操作系统协调完成。
6.数据组织、存储和管理
DBMS负责对数据库中需要存放的各种数据(如数据字典、用户数据、存取路径等)的组织、存储和管理工作,确定以何种文件结构和存取方式物理地组织这些数据,以提高存储空间利用率和对数据库进行增、删、查、改的效率。
1.6.2 DBMS的组成
DBMS是由许多程序所组成的一个大型软件系统,每个程序都有自己的功能,共同完成DBMS的一个或几个工作。一个完整的DBMS通常应由以下部分组成。
1.语言编译处理程序
语言编译处理程序包括以下两个程序。
(1)数据定义语言DDL编译程序。它把用DDL编写的各级源模式编译成各级目标模式。这些目标模式是对数据库结构信息的描述,它们被保存在数据字典中,供以后数据操纵或数据控制时使用。
(2)数据操纵语言DML编译程序。它将应用程序中的DML语句转换成可执行程序,实现对数据库的检索、插入、删除和修改等基本操作。
2.系统运行控制程序
DBMS提供了一系列的运行控制程序,负责数据库系统运行过程中的控制与管理,主要包括以下几部分。
系统总控程序:用于控制和协调各程序的活动,它是DBMS运行程序的核心。
安全性控制程序:防止未被授权的用户存取数据库中的数据。
完整性控制程序:检查完整性约束条件,确保进入数据库中的数据的正确性、有效性和相容性。
并发控制程序:协调多用户、多任务环境下各应用程序对数据库的并发操作,保证数据的一致性。
数据存取和更新程序:实施对数据库数据的检索、插入、修改和删除等操作。
通信控制程序:实现用户程序与DBMS间的通信。
此外,还有文件读写与维护程序、缓冲区管理程序、存取路径管理程序、事务管理程序、运行日志管理程序等。所有这些程序在数据库系统运行过程中协同操作,监视着对数据库的所有操作,控制、管理数据库资源等。
3.系统建立、维护程序
系统建立、维护程序,主要包括以下几部分。
装配程序:完成初始数据库的数据装入。
重组程序:当数据库系统性能降低时(如查询速度变慢),需要重新组织数据库,重新装入数据。
系统恢复程序:当数据库系统受到破坏时,将数据库系统恢复到以前某个正确的状态。
4.数据字典
数据字典(Data Dictionary,DD)用来描述数据库中有关信息的数据目录,包括数据库的三级模式、数据类型、用户名和用户权限等有关数据库系统的信息,起着系统状态的目录表的作用,帮助用户、DBA和DBMS本身使用和管理数据库。
1.6.3 DBMS的数据存取的过程
在数据库系统中,DBMS与操作系统、应用程序、硬件等协同工作,共同完成数据各种存取操作,其中DBMS起着关键的作用,对数据库的一切操作,都要通过DBMS完成。
DBMS对数据的存取通常需要以下几个步骤。
(1)用户使用某种特定的数据操作语言向DBMS发出存取请求;
(2)DBMS接受请求并将该请求解释转换成机器代码指令;
(3)DBMS依次检查外模式、外模式/模式映像、模式、模式/内模式映像及存储结构定义;
(4)DBMS对存储数据库执行必要的存取操作;
(5)从对数据库的存取操作中接受结果;
(6)对得到的结果进行必要的处理,如格式转换等;
(7)将处理的结果返回给用户。
上述存取过程中还包括安全性控制、完整性控制,以确保数据的正确性、有效性和一致性。
DBMS的工作方式和数据存取过程分别如图1-11和图1-12所示。
1.7 数据模型
1.7.1 数据模型的概念及分类
由于计算机不能直接处理现实世界中的具体事物及其联系,为了利用数据库技术管理和处理现实世界中的事物及其联系,人们必须将这些具体事物及其联系转换成计算机能够处理的数据。
数据库是模拟现实世界中某应用环境(一个企业、单位或部门)所涉及的数据的集合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。因此,这个集合或者包含了信息的一部分(用用户视图模拟),或者包含了信息的全部(用概念视图模拟),而这种模拟是通过数据模型来进行的。也就是说,数据模型是数据库的框架,该框架描述了数据及其联系的组织方式、表达方式和存取路径,它是数据库系统的核心和基础,各种机器上实现的DBMS软件都是基于某种数据模型,它的数据结构直接影响到数据库系统的其他部分的性能,也是数据定义和数据操纵语言的基础。因此,数据模型的选择,是设计数据库时的一项首要任务。
因此,数据模型是一种模型,是用来描述数据、组织数据和对数据进行操作的。
1.数据处理的抽象与转换
为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,在实际的数据处理过程中,首先将现实世界的事物及联系抽象成信息世界的概念模型,然后再抽象成计算机世界的数据模型。概念模型并不依赖于具体的计算机系统,不是某一个DBMS所支持的数据模型,它是计算机内部数据的抽象表示;概念模型经过抽象,转换成计算机上某一DBMS支持的数据模型。所以说,数据模型是现实世界的两级抽象的结果。在数据处理中,数据加工经历了现实世界、信息世界和计算机世界三个不同的世界,经历了两级抽象和转换,这一过程如图1-13所示。
2.数据模型的分类
根据模型应用的不同目的,可以将这些模型划分为两类,它们分属于两个不同的抽象级别。
第一类模型是概念模型,也称为信息模型,它是按用户的观点对数据和信息建模,是对现实世界的事物及其联系的第一级抽象,它不依赖于具体的计算机系统,不涉及信息在计算机内如何表示、如何处理等问题,只是用来描述某个特定组织所关心的信息结构。因此,概念模型属于信息世界中的模型,不是一个DBMS支持的数据模型,而是概念级的模型。
第二类模型是逻辑模型(或称数据模型)和物理模型。逻辑模型是属于计算机世界中的模型,这一类模型是按计算机的观点对数据建模,是对现实世界的第二级抽象,有严格的形式化定义,以便于在计算机中实现。任何一个DBMS都是根据某种逻辑模型有针对性地设计出来的,即数据库是按DBMS规定的数据模型组织和建立起来的,因此逻辑模型主要用于DBMS的实现。从概念模型到逻辑模型的转换可以由数据库设计人员完成,也可以用数据设计工具协助设计人员完成。比较成熟地应用在数据库系统中的逻辑模型主要包括层次模型(Hierarchical Model)、网状模型(Network Model)、关系模型(Relational Model)和面向对象模型(Object-oriented Model)等。
物理模型是对数据最底层的抽象,它描述数据在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。物理模型的具体实现是DBMS的任务,用户一般不必考虑物理级细节。从逻辑模型到物理模型的转换是由DBMS自动完成的。
1.7.2 数据模型的组成要素
由于数据模型是现实世界中的事物及其联系的一种模拟和抽象表示,是一种形式化描述数据、数据间联系以及有关语义约束规则的方法,这些规则规定数据如何组织以及允许进行何种操作,因此,数据模型通常由数据结构、数据操作和数据的完整性约束三个要素组成。
1.数据结构
数据结构或数据组织结构,描述了数据库的组成对象以及对象间的联系,也就是说数据结构一方面描述的是数据对象的类型、内容、性质等,另一方面描述了数据对象间的联系。因此,数据结构描述的是数据库的静态特性,是数据模型中最基本的部分,不同的数据模型采用不同的数据结构。
例如,在关系模型中,用字段、记录、关系(二维表)等描述数据对象,并以关系结构的形式进行数据组织。因此,在数据库中,人们通常按照其数据结构的类型来命名数据模型。例如,数据结构有层次结构、网状结构和关系结构三种类型,按照这三种结构命名的数据模型分别称为层次模型、网状模型和关系模型。
2.数据操作
数据操作是指对数据库中的各种数据允许执行的操作的集合,包括操作及相应的操作规则,描述了数据库的动态特性。数据库有查询和更新(包括插入、删除和修改)两类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。
3.数据的完整性约束
数据的完整性约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
一方面,数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。
另一方面,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在学生管理数据库中,学生的年龄不得超过40岁。
1.8 三个世界及其有关概念
1.8.1 现实世界
现实世界,即客观存在的世界。其中存在着各种事物及它们之间的联系,每个事物都有自己的特征或性质。人们总是选用感兴趣的最能表征一个事物的若干特征来描述该事物。例如,要描述一个学生,常选用学号、姓名、性别、年龄、系别等来描述,有了这些特征,就能区分不同的学生。
客观世界中,事物之间是相互联系的,而这种联系可能是多方面的,但人们只选择那些感兴趣的联系,无须选择所有的联系。如在学生管理系统中,可以选择“学生选修课程”这一联系表示学生和课程之间的关系。
1.8.2 信息世界
1.信息世界及其有关概念
信息世界是现实世界在人们头脑中的反映,经过人脑的分析、归纳和抽象,形成信息,人们把这些信息进行记录、整理、归类和格式化后,就构成了信息世界。在信息世界中,常用的主要概念如下。
(1)实体(Entity)。客观存在并且可以相互区别的“事物”称为实体。实体可以是具体的人、事和物,如一个学生、一本书、一辆汽车、一种物资等;也可以是抽象的事件,如一堂课、一次比赛、学生选修课程等。
(2)属性(Attribute)。实体所具有的某一特性称为属性。一个实体可以由若干个属性共同来刻画。如学生实体由学号、姓名、性别、年龄、系等方面的属性组成。属性有“型”和“值”之分。“型”即为属性名,如姓名、年龄、性别都是属性的型;“值”即为属性的具体内容,如学生(990001、张立、20、男、计算机),这些属性值的集合表示了一个学生实体。
(3)实体型(Entity Type)。具有相同属性的实体必然具有共同的特征。所以,用实体名及其属性名集合来抽象和描述同类实体,称为实体型。如学生(学号,姓名,年龄,性别,系)就是一个实体型,它描述的是学生这一类实体。
(4)实体集(Entity Set)。同型实体的集合称为实体集。如所有的学生、所有的课程等。
(5)码(Key)。在实体型中,能唯一标识一个实体的属性或属性集称为实体的码。如学生的学号就是学生实体的码,而学生实体的姓名属性可能有重名,不能作为学生实体的码。
(6)域(Domain)。属性的取值范围称为该属性的域。如学号的域为6位整数、姓名的域为字符串集合、年龄的域为小于40的整数、性别的域为男或女等。
(7)联系(Relationship)。在现实世界中,事物内部以及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来,在信息世界中将被抽象为单个实体型内部的联系和实体型之间的联系。单个实体型内部的联系通常是指组成实体的各属性之间的联系;实体型之间的联系通常是指不同实体集之间的联系,可分为两个实体型之间的联系以及两个以上实体型之间的联系。
2.两个实体型间的联系
两个实体型之间的联系是指两个不同的实体集间的联系,有如下三种类型。
(1)一对一联系(1:1)。实体集A中的一个实体至多与实体集B中的一个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应,则称实体集A与实体集B为一对一的联系,记作1:1。如,班级与班长、观众与座位、病人与床位之间的联系。
(2)一对多联系(1:n)。实体集A中的一个实体与实体集B中的n(n≥0)个实体相联系,反之,实体集B中的一个实体至多与实体集A中的一个实体相联系,记作1:n。例如,班级与学生、公司与职员、省与市之间的联系。
(3)多对多联系(m:n)。实体集A中的一个实体与实体集B中的n(n≥0)个实体相联系,反之,实体集B中的一个实体与实体集A中的m(m≥0)个实体相联系,记作m:n。如,教师与学生、学生与课程、工厂与产品之间的联系。
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。
可以用图形来表示两个实体型之间的这三类联系,如图1-14所示。
3.两个以上实体型间的联系
两个以上的实体型之间也存在着一对一、一对多和多对多的联系。
例如,对于课程、教师与参考书3个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的联系。
4.单个实体型内部的联系
同一个实体集内的各个实体之间存在的联系,也可以有一对一、一对多和多对多的联系。例如,职工实体型内部具有领导与被领导的联系,即某一职工“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此,在职工实体集内部这种联系,就是一对多的联系。
1.8.3 计算机世界
计算机世界是信息世界中信息的数据化,就是将信息用字符和数值等数据表示,便于存储在计算机中并由计算机进行识别和处理。在计算机世界中,常用的主要概念有如下几个。
(1)字段(Field)。标记实体属性的命名单位称为字段,也称为数据项。字段的命名往往和属性名相同。如学生有学号、姓名、年龄、性别和系等字段。
(2)记录(Record)。字段的有序集合称为记录。通常用一个记录描述一个实体,因此,记录也可以定义为能完整地描述一个实体的字段集。如一个学生(990001,张立,20,男,计算机)为一个记录。
(3)文件(File)。同一类记录的集合称为文件。文件是用来描述实体集的。如,所有学生的记录组成了一个学生文件。
(4)关键字(Key)。能唯一标识文件中每个记录的字段或字段集,称为记录的关键字,或简称键。例如,在学生文件中,学号可以唯一标识每一个学生记录,因此,学号可作为学生记录的关键字。
在计算机世界中,信息模型被抽象为数据模型,实体型内部的联系抽象为同一记录内部各字段间的联系,实体型之间的联系抽象为记录与记录之间的联系。
现实世界是信息之源,是设计数据库的出发点,实体模型和数据模型是现实世界事物及其联系的两级抽象。而数据模型是实现数据库系统的根据。通过以上的介绍,我们可总结出三个世界中各术语的对应关系,如图1-15所示。
1.8.4 概念模型的E-R表示方法
通过前面分析可知,概念模型是对现实世界及其联系的抽象表示,是现实世界到计算机世界的一个中间层次,也称作信息模型。
它是数据库设计时用户和数据库设计人员之间交流的工具。从现实世界到概念模型的转换是由数据库设计人员完成的。在概念模型中,比较著名的是由P.P.Chen于1976年提出的实体联系模型(Entity Relationship Model),简称E-R模型。E-R模型是广泛应用于数据库设计工作中的一种概念模型,它利用E-R图来表示实体及其之间的联系。
E-R图的基本成分包含实体型、属性和联系,它们的表示方式如下。
(1)实体型:用矩形框表示,框内标注实体名称,如图1-16(a)所示。
(2)属性:用椭圆形框表示,框内标注属性名称,并用无向边将其与相应的实体相连,如图1-16(b)所示。
(3)联系:联系用菱形框表示,框内标注联系名称,并用无向边与有关实体相连,同时在无向边旁标上联系的类型,即1:1、1:n或m:n,如图1-16(c)所示。
实体之间的联系,有一对一(1:1),一对多(1:n)和多对多(m:n)三种联系类型。例如,系主任领导系、学生属于某个系、学生选修课程、工人生产产品,这里“领导”、“属于”、“选修”、“生产”表示实体间的联系,可以作为联系名称。
现实世界的复杂性,导致实体联系的复杂性。表现在E-R图上可以归结为图1-17所示的几种基本形式。
① 两个实体型之间的联系,如图1-17(a)所示。
② 两个以上实体型间的联系,如图1-17(b)所示。
③ 同一实体集内部各实体之间的联系,例如一个部门内的职工有领导与被领导的联系,即某一职工(干部)领导若干名职工,而一个职工(普通员工)仅被另外一个职工直接领导,这就构成了实体内部的一对多的联系,如图1-17(c)所示。
需要注意的是,因为联系本身也是一种实体型,所以联系也可以有属性。如果一个联系具有属性,则这些联系也要用无向边与该联系的属性连接起来。例如,学生选修的课程有相应的成绩。这里的“成绩”既不是学生的属性,也不是课程的属性,只能是学生选修课程的联系的属性,如图1-17(a)所示。
E-R图的基本思想就是分别用矩形框、椭圆形框和菱形框表示实体型、属性和联系,使用无向边将属性与其相应的实体连接起来,并将联系分别和有关实体相连接,注明联系类型。图1-17所示为几个E-R图的例子,只给出了实体及其E-R图,省略了实体的属性。图1-18为一个描述学生与课程联系的完整的E-R图。
1.9 四种数据模型
目前,在数据库领域中常用的数据模型主要有层次模型(Hierarchical Model)、网状模型(Network Model)和关系模型(Relational Model)三种。
其中,层次模型和网状模型是早期的数据模型,统称为非关系模型。20世纪70年代至80年代初,非关系模型的数据库系统非常流行,在数据库系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代,但在美国等一些国家,由于早期开发的应用系统都是基于层次数据库系统或网状数据库系统,目前层次数据库或网状数据库的系统仍很多。
20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、计算机硬件等各方面都产生了深远的影响,出现了一种新的数据模型—面向对象的数据模型(Object-Oriented Model)。
由于数据模型包括了数据结构、数据操作和数据的完整性约束三个方面的内容,因此,本节就从这三个方面分别介绍层次模型、网状模型和关系模型三种常用的数据模型,同时对面向对象数据模型中的有关概念进行简单介绍。
1.9.1 层次模型
层次模型是数据库系统中最早出现的数据模型,采用层次模型的数据库的典型代表是IBM公司的IMS(Information Management System)数据库管理系统。此系统是IBM公司于1968年推出的第一个大型的商用数据库管理系统,曾经得到广泛的应用。
1.层次模型的数据结构
现实世界中,由于许多实体之间的联系都表现出一种很自然的层次关系,如家族关系、行政机构等,因此,层次模型用树形数据结构(有向树)来表示各类实体以及实体间的联系。
在这种树形结构中,每个结点表示一个记录型,每个记录型可包含若干个字段,记录型描述的是实体,字段描述实体的属性,各个记录型及其字段都必须命名。结点间的带箭头的连线(或边)表示记录型间的联系,连线上端的结点是父结点或双亲结点,连线下端的结点是子结点或子女结点,同一双亲的子女结点称为兄弟结点,没有子女结点的结点称为叶结点,如图1-19所示。
层次模型有如下特点。
(1)每棵树有且仅有一个结点没有双亲,该结点就是根结点。
(2)根结点以外的其他结点有且仅有一个双亲结点。
(3)父子结点之间的联系是一对多(1:n)的联系。父结点中的一个记录值可能对应n个子结点中的记录值,而子结点中的一个记录值只能对应父结点中一个记录值。因此,任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。
以下是一个层次模型的例子,如图1-20所示。
层次模型为TS,它具有4个记录型。记录型D(系)是根结点,由字段D#(系编号)、DN(系名)和DL(系地点)组成,它有两个子女结点R和S。记录型R(教研室)是D的子女结点,同时又是T的双亲结点,它由R#(教研室编号)和RN(教研室名)两个字段组成。记录型S(学生)由S#(学号)、SN(姓名)和SS(成绩)三个字段组成,记录型T(教师)由T#(职工号)、TN(姓名)和TD(研究方向)三个字段组成。S与T是叶结点,它们没有子女结点。由D到R,R到T,由D到S均是一对多的关系。
例如,设对应上述数据模型的一个值,该值是D01系(计算机系)记录值及其所有后代记录值组成的一棵树,D01系有两个教研室子记录值R01、R02和两个学生记录值S9901和S9902。教研室R01有三个教师记录值T1101、T1102和T1103。教研室R02有两个教师记录值T1201和T1202。以教师T1202来说,只能从根结点开始看起,才能知道其全部信息,也就是说,从根结点看起,该教师属于D01系的R02教研室。
2.层次模型的数据操纵与数据完整性约束
层次模型的数据操纵主要有查询、插入、删除和修改,进行插入、删除和修改操作时要满足层次模型的完整性约束条件。
进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值。若新进一名教师,如果没有确定他在哪个教研室,则该教师不能插入到数据库中。
进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除。若删除一个教研室,则该教研室的所有教师都将被删除。
修改操作时,应修改所有相应的记录,以保证数据的一致性。
3.层次模型的优缺点
层次模型的主要优点如下。
(1)层次模型结构比较简单,层次分明,便于在计算机内实现。
(2)结点间联系简单,从根结点到树中任一结点均存在一条唯一的层次路径,当要存取某个结点的记录值时,沿着这条路径很快就能找到该记录值,因此,以该种模型建立的数据库系统查询效率很高。
(3)它提供了良好的数据完整性支持。
层次模型的缺点主要有以下几点。
(1)不能直接表示两个以上的实体型间的复杂联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。
(2)对数据插入和删除的操作限制太多。
(3)查询子女结点必须通过双亲结点。
1.9.2 网状模型
现实世界中事物之间的联系更多的是非层次关系,用层次模型表示这种关系很不直观,网状模型克服了这一弊病,它可以清晰地表示这种非层次关系。20世纪70年代,数据系统语言研究会(Conference On Data System Language,CODASYL)下属的数据库任务组(Data Base Task Group,DBTG)提出了一个系统方案,即DBTG系统,也称CODASYL系统,它是网状模型的代表。
1.网状模型的数据结构
在层次模型中,只能有一个根结点,根结点以外的其他结点有且仅有一个双亲结点,而网状模型中取消了层次模型的这两个限制,它允许多个结点没有双亲结点,允许结点可以有多个双亲结点。因此,网状模型是采用有向图结构表示记录型与记录型之间联系的数据模型,它可以更直接地描述现实世界,层次模型实际上是网状模型的一个特例。
在这种有向图结构中,每个结点表示一个记录型,每个记录型可包含若干个字段,记录型描述的是实体。结点间的带箭头的连线(或有向边)表示记录型间的1:n的父子联系。
网状模型有如下特点。
(1)有一个以上的结点没有双亲结点。
(2)允许结点有多个双亲结点。
(3)允许两个结点之间有多种联系(复合联系)。
如学生和课程间的联系,一个学生可以选修多门课程,一门课程可以有多个学生选修,如图1-21所示。
2.网状模型的数据操纵与完整性约束
网状模型的数据操纵主要包括查询、插入、删除和修改数据。进行插入、删除和修改操作时要满足网状模型的完整性约束条件。
插入数据时,允许插入尚未确定双亲结点值的子女结点值。例如,可增加一名尚未分配到某个教研室的新教师,也可增加一些刚来报到、还未分配宿舍的学生。
删除数据时,允许只删除双亲结点值。如可删除一个教研室,而该教研室所有教师的信息仍保留在数据库中。
修改数据时,可直接表示非树形结构,而无须像层次模型那样增加冗余结点。因此,修改操作时只需更新指定记录即可。
它没有像层次模型那样有严格的完整性约束条件,只提供一定的完整性约束。
3.网状模型的优缺点
网状模型的优点主要有以下两点。
(1)能更为直接地描述客观世界,可表示实体间的多种复杂联系。
(2)具有良好的性能和存储效率。
网状模型的缺点主要有以下几点。
(1)数据结构复杂,并且随着应用环境的扩大,数据库的结构变得越来越复杂,不便于终端用户掌握。
(2)其数据定义语言(DDL)和数据操纵语言(DML)语言极其复杂,不易使用户掌握。
(3)由于记录间的联系本质上是通过存取路径实现的,应用程序在访问数据库时要指定存取路径,即用户需要了解系统结构的细节,加重了编写应用程序的负担。
1.9.3 关系模型
关系模型是发展较晚的一种模型。1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型。他发表了题为《大型共享数据银行数据的关系模型》(A Relation Model of Data for Large Shared Data Banks)的论文。在文中解释了关系模型,定义了某些关系代数运算,研究了数据的函数相关性,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究。为此他获得了1981年的图灵奖。此后许多人把研究方向转到关系方法上,陆续出现了关系数据库系统。1977年IBM公司研制的关系数据库的代表System R开始运行,其后又进行了不断的改进和扩充,出现了基于System R的数据库系统SQL/DB。
20世纪80年代以后,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也都加上了关系接口。数据库领域当前的研究工作也都是以关系方法为基础。关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统Foxpro、Access,大型数据库系统Oracle、SQL Server、Informix和Sybase等都是关系数据库系统。
1.关系模型的数据结构及有关概念
关系模型的数据结构是一张规范化的二维表,它由表名、表头和表体三部分构成。表名即二维表的名称,表头决定了二维表的结构(即表中列数及每列的列名、类型等),表体即二维表中的数据。每个二维表又可称为关系。关系模型与层次模型、网状模型不同,它是建立在严格的数学概念之上的,严格的定义将在第2章给出。图1-22所示为教学数据库的关系模型及其实例,包含5个关系:教师关系T、学生关系S、课程关系C、选课关系SC和授课关系TC,分别对应5张表。下面以图1-22为例,介绍关系模型中所涉及的一些基本概念。
(1)关系(Relation)与关系实例。一个关系实例对应由行和列组成的一张二维表,如图1-22的五张表就分别对应五个关系实例。通常人们仅用“关系”来代表关系实例。每个关系实例都有一个名称,称为关系名,如1-22的S表对应的关系名称为“学生”
(2)元组(Tuple)。元组是二维表格中的一行,如S表中的一个学生记录即为一个元组。
(3)属性(Attribute)。二维表格中的一列,给每一个属性起一个名称即属性名,如S表中有5个属性(学号,姓名,性别,年龄,系别)。属性由名称、类型、长度等构成。
(4)域(Domain)。属性的取值范围,如年龄的域是(14~40),性别的域是(男,女)。
(5)分量。每一行元组对应的列的属性值,即为元组中的一个属性值。
(6)候选健。如果一个属性或若干属性的组合且该属性的组合中不包含多余的属性,能够唯一标识一个关系的元组,则称该属性或属性的组合为候选健。一个关系中可有多个候选健。在最简单的情况下,候选健只包含一个属性。在极端的情况下,候选键由关系中的所有属性组成,此时称为全键。如S表中学号可以唯一确定一个学生,为学生关系的候选键。
(7)主键。当一个关系中有多个候选键时,可以从中选择一个候选键作为主键。一个关系上只能有一个主键。
(8)主属性和非主属性。包含在任意一个候选键中的属性称为主属性。不包含在任意一个候选键中的属性称为非主属性。
(9)关系模式。关系模式是对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n),关系模式是关系模型的“型”,是关系的框架结构。如学生关系S的关系模式可表示为:学生(学号,姓名,性别,年龄,系别)。
在关系模型中,实体是用关系来表示的,如:
学生(学号,姓名,性别,年龄,系别)
课程(课程号,课程名,课时)
实体间的联系也是用关系来表示的,如学生和课程之间的联系可表示为:
选课(学号,课程号,成绩)
(10)关系实例。关系实例是关系模式的“值”,是关系的数据,相当于二维表中的数据。
2.关系模型的数据操纵与完整性约束
关系模型的数据操纵主要包括查询、插入、删除和修改数据,这些操作必须满足关系的完整性约束条件,即满足实体完整性、参照完整性和用户定义的完整性。
在非关系模型中,操作对象是单个记录,而关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合;另外,关系模型把对数据的存取路径隐蔽起来,用户只要指出“干什么”,而不必详细说明“怎么干”,从而大大地提高了数据的独立性,提高了用户操作效率。
3.关系模型的优缺点
关系模型的优点主要有以下三点。
(1)关系模型与非关系模型不同,它有严格的数学理论根据。
(2)数据结构简单、清晰,用户易懂、易用,不仅用关系描述实体,而且用关系描述实体间的联系。此外,对数据的操纵结果也是关系。
(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库建立和开发的工作。
关系模型的缺点是查询效率不如非关系模型。因此,为了提高性能,必须对用户的查询进行优化,增加了开发数据库管理系统的负担。
本书将重点介绍关系模型及关系数据库。
1.9.4 面向对象模型
虽然关系模型比层次、网状模型简单灵活,但是现实世界存在着许多含有复杂数据结构的应用领域,如CAD数据、图形数据等,它们需要更高级的数据库技术表达这类信息。
面向对象的概念最早出现在1968年的Smalltalk语言中,随后迅速渗透到计算机领域的每一个分支,现已使用在数据库技术中。面向对象数据库是面向对象概念与数据库技术相结合的产物。
面向对象模型中最基本的概念是对象和类。
1.对象(Object)和对象标识(Object Identifier,OID)
对象是现实世界中实体的模型化。如一个学生、一门课程以及一次考试记录等都可以看作对象。对象与记录的概念相仿,但远比记录复杂。
每一对象都由唯一的对象标识来识别,用于确定和检索这个对象,它把对象的状态(State)、行为(Behavior)封装(Encapsulate)在一起。其中,对象的状态是该对象属性值的集合,对象的行为是在对象状态上操作的方法集。
对象标识独立于对象的内容和存储位置,是一种逻辑标识符,通常由系统产生,它在整个系统范围内是唯一的。两个对象即使内部状态值和方法都相同,如标识符不同,仍认为是两个相等而不同的对象。如同一型号的两个零件,在设计图上被用在不同的地方,这两个零件是“相等”的,但被视为不同的对象,具有不同的标识符。在这一点上,面向对象的模型与关系模型不同,在关系模型中,如果两个元组的属性值完全相同,则被认为是同一元组。
每个对象都包含一组属性和一组方法。属性用来描述对象的状态、组成和特性,它是对象的静态特征。一个简单对象如一个整数,其值本身就是其状态的完全描述,不再需要其他属性,这样的对象称为原子对象。属性的值也可以是复杂对象。一个复杂对象包含若干个属性,而这些属性作为一种对象,又可能包含多个属性,这样就形成了对象的递归引用,从而组成各种复杂对象。
方法用以描述对象的行为特性。一个方法实际是一段可对对象操作的程序。方法可以改变对象的状态,所以称为对象的动态特征。如一台计算机,它不仅具有描述其静态特征的属性:CPU型号、硬盘大小和内存大小等,还具有开机、关机和睡眠等动态特征。由此可见,每个对象都是属性和方法的统一体。与关系模型的实体概念相比,对象模型中的对象概念更为全面,因为关系模型主要描述对象的属性,而忽视了对象的方法,因此会产生“结构与行为相分离”的缺陷。
2.类(Class)和继承(Inheritance)
具有同样属性和方法集的所有对象构成了一个对象类(简称类),一个对象是某一类的实例(Instance)。如把学生定义一个类,则某个学生(张三、李四等)则是学生类中的对象。类是“型”,对象是某一类的“值”。
类的属性域可以是基本数据类型(如整型、实型、字符型等),也可以是类,或由上述值域组成的记录或集合。也就是说,类可以有嵌套结构。
此外,类的表示具有层次性。在面向对象模型中,可以通过对已有的类定义进行扩充和细化来定义一个新类,从而形成了一种层次结构,有了超类和子类的概念。所谓超类就是可以通过扩充和细化导出其他类的类,而子类是指通过扩展类定义而得到的类。
这种层次结构的重要特点是具有继承性。因为一个类可以有多个子类,也可以有多个超类。因此,一个类可以直接继承多个类,这种继承方式称为多重继承。如在职研究生既属于职工类,又属于学生类,他继承了职工和学生的所有性质。如果一个类至多只有一个超类,则一个类只能从单个超类继承属性和方法,这种继承方式称为单重继承。在多重继承情况下,类的层次结构不再是一棵树,而是一个网络结构。
面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对比较复杂,涉及的知识比较多,因此,面向对象数据库尚未达到关系数据库的普及程度。
1.10 数据库系统的发展
在1.8节已经讲到,数据模型是数据库系统的核心和基础,数据模型的发展经历了格式化数据模型(层次数据模型和网状数据模型的统称)、关系数据模型和面向对象的数据模型三个阶段。如果按照数据模型发展的阶段划分,数据库技术的发展也经历了三个发展阶段。
1.10.1 第一代数据库系统
层次数据库系统和网状数据库系统的数据模型分别为层次模型和网状模型,但从本质上讲层次模型是网状模型的特例,二者从体系结构、数据库语言到数据存储管理上均具有共同的特征,都是格式化模型,属于第一代数据库系统。 第一代数据库系统具有以下特点。
1.支持三级模式的体系结构
层次数据库和网状数据库均支持三级模式结构,即外模式、模式和内模式,并通过外模式与模式、模式与内模式二级映像,保证了数据的物理独立性和逻辑独立性。
2.用存取路经来表示数据之间的联系
数据库不仅存储数据而且存储数据之间的联系。数据之间的联系在层次和网状数据库系统中用存取路径来表示和实现。这一特点是数据库系统和文件系统的主要区别之一。
3.独立的数据定义语言
第一代数据库系统使用独立的数据定义语言来描述数据库的三级模式以及二级映像。格式一经定义就很难修改,这就要求数据库设计时,不仅要充分考虑用户的当前需求,还要了解需求可能的变化和发展。
4.导航的数据操纵语言
导航的含义就是用户使用某种高级语言编写程序,一步一步地引导程序按照数据库中预先定义的存取路径来访问数据库,最终达到要访问的数据目标。在访问数据库时,每次只能存取一条记录值。若该记录值不满足要求就沿着存取路径查找下一条记录值。
1.10.2 第二代数据库系统
第二代数据库系统是指支持关系模型的关系数据库系统(RDBMS)。
关系模型不仅简单、清晰,而且有关系代数作为语言模型,有关系数据理论作为理论基础。所以在关系模型提出后,很快便从实验室走向了社会,20世纪80年代,几乎所有新开发的数据库系统都是关系型数据库系统。这些商用数据库系统的运行,特别是微机RDBMS的使用,使数据库技术日益广泛地应用到企业管理、情报检索和辅助决策等各个方面,成为实现和优化信息系统的基本技术。
关系数据库系统之所以能成为深受广大用户欢迎的数据系统,是因为它具有以下特点。
(1)关系模型的概念单一,实体以及实体之间的联系都用关系来表示;
(2)关系模型以关系代数为基础,形式化基础好;
(3)数据独立性强,数据的物理存取路径对用户隐蔽;
(4)关系数据库语言是非过程化的,它将用户从编程数据库记录的导航式检索中解脱出来,大大降低了用户编程的难度。
一般说来,将第一代数据库和第二代数据库称为传统数据库。由于传统数据库尤其是关系数据库系统具有许多优点,人们纷纷采用数据库技术来进行数据管理,数据库技术被应用到了许多新的领域,如计算机辅助设计/计算机辅助制造(CAD/CAM)、计算机辅助工程(CASE)和图像处理等,这些新领域的应用不仅需要传统数据库所具有的快速检索和修改数据的特点,而且在应用中提出了一些新的数据管理的需求,如要求数据库能够处理声音、图像和视频等多媒体数据。在这些新领域中,传统数据库暴露了其应用的局限性,主要表现在以下几个方面。
(1)面向机器的语法数据模型。传统数据库中采用的数据模型是面向机器的语法数据模型,只强调数据的高度结构化,只能存储离散的数据和有限的数据与数据之间的关系,语义表示能力较差,无法表示客观世界中的复杂对象,如声音、图像和视频等多媒体数据,工程、测绘等领域中的非格式化数据。此外,传统数据模型缺乏数据抽象,无法揭示数据之间的深层含义和内在联系。
(2)数据类型简单、固定。传统的DBMS主要面向事务处理,只能处理简单的数据类型,如整数、实数、字符串和日期等,而不能根据特定的需要定义新的数据类型。如不能定义包含三个实数分量(x,y,z)的数据类型circle来表示圆,而只能分别定义三个实型的字段。这样对于复杂的数据类型只能由用户编写程序来处理,加重了用户的负担,也不能保证数据的一致性。
(3)结构与行为完全分离。从应用程序员的角度来看,在某一应用领域内标识的对象可以包含两方面的内容,即对象的结构和对象的行为。传统的数据库可以采用一定的数据库模式来表示前者,而对于后者,却不能直接存储和处理,必须通过另外的应用程序加以实现。如对于多媒体数据,虽然可以在带有前面所提到的缺陷的情况下以简单的二进制代码形式存储其结构,但却无法存储其行为(如播放声音、显示图像等)。这样,这些多媒体数据必须由相应的应用程序来识别,而对于其他不了解其格式的用户来说,数据库中存储的是没有任何意义的二进制数据。
由此可见,在传统数据库中,对象的结构可以存储在数据库中,而对象的行为必须由应用程序来表示,这样,对象的结构与行为完全分离。
(4)被动响应。传统数据库只能根据用户的命令执行特定的服务,这种服务属于被动响应,用户要求做什么,系统就做什么。而在实际应用中,往往要求一个系统能够管理它本身的状态,在发现异常情况时及时通知用户;能够主动响应某些操作或外部事件,自动采取规定的行动等。例如,一个仓库管理系统除了希望数据库系统能够正确、高效地存储有关物品的数据,还希望数据库系统能够对仓库库存进行监控,当库存太少或太多时主动向用户发出警告。要完成这样的工作,数据库系统必须更加主动、更加智能化,而传统的数据库显然不能适应这一要求。
(5)事务处理能力较差。传统数据库只能支持非嵌套事务,对于较长事务的运行较慢,且事务中途发生故障时恢复比较困难。
由于存在上述种种缺陷,使得传统数据库无法满足新领域的应用需求,数据库技术遇到了挑战,在这种情况下,新一代数据库技术应运而生。
1.10.3 第三代数据库系统
1.第三代数据库系统的特点
第三代数据库系统是指支持面向对象(Object-Oriented,OO)的数据模型的数据库系统。
在数据库面临许多新的应用领域时,1989年9月,一批专门研究面向对象技术的著名学者发表了“面向对象的数据库系统宣言”,提出继第一代(层次、网状)和第二代(关系)数据库系统后,新一代数据库系统将是面向对象的数据库系统(OODBS)。1990年9月,一些长期从事关系数据库理论研究的学者组建了高级数据库管理系统功能委员会,发表了“第三代数据库系统宣言”的文章,提出了第三代数据库管理系统应具有的三个基本特点。
(1)第三代数据库系统应支持面向对象的数据模型。除提供传统的数据管理服务外,第三代数据库系统应支持数据管理、对象管理和知识管理,支持更加丰富的对象结构和规则,以提供更加强大的管理功能,支持更加复杂的数据类型,以便能够处理非传统的数据元素(如超文本、图片和声音等)。20世纪90年代,成功的数据库管理系统都会提供上述服务。
(2)第三代数据库系统必须保持或继承第二代数据库系统的优点。第三代数据库系统不仅能很好地支持对象管理和规则管理,还要更好地支持原有的数据管理,保持第二代数据库系统的非过程化的数据存取方式和数据独立性。
(3)第三代数据库系统必须具有开放性。数据库系统的开放性(Open)是指必须支持当前普遍承认的计算机技术标准,如支持SQL,支持多种网络标准协议,使得任何其他系统或程序只要支持同样的计算机技术标准即可使用第三代数据库系统。开放性还包括系统的可移植性、可连接性、可扩展性和可互操作性等。
2.研究第三代数据库系统的途径
数据库工作者为了给应用建立合适的数据库系统,进行了艰苦的探索,从多方面发展了现行的数据库系统技术,主要有下面一些研究途径和方向。
(1)对传统数据库(主要是关系数据库)进行不同层次上的扩充。
(2)与计算机领域中其他学科的新技术紧密结合,丰富和发展数据库系统的概念、功能和技术。
(3)研究面向应用领域的数据库技术。
其中,前两个途径是立足于数据库已有的成果和技术并加以发展、进化,有人称之为“进化论”的观点和方法。后者是立足于新的应用需求和计算机未来的发展,研究全新的数据库系统,有人称之为“革新论”的观点和方法。
1.11 数据库技术与其他相关技术的结合
数据库技术是计算机软件领域的一个重要分支,经过30多年的发展,已形成相当规模的理论体系和实用技术。但受到相关学科和应用领域(如网络、多媒体等)的影响,数据库技术的研究并没有停滞,仍在不断地发展,数据库技术与其他相关技术的结合是当前数据库技术发展的重要特征。
计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。面对传统数据库技术的不足和缺陷,人们自然而然地想到借鉴其他新兴的计算机技术,从中吸取新的思想、原理和方法,将其与传统的数据库技术相结合,以推出新的数据库模型,从而解决传统数据库存在的问题。通过这种方法,人们研制出了各种各样的新型数据库,例如:
(1)数据库技术与分布处理技术相结合,出现了分布式数据库;
(2)数据库技术与人工智能技术相结合,出现了演绎数据库、主动数据库和知识库等;
(3)数据库技术与多媒体技术相结合,出现了多媒体数据库。
下面我们将对其中的几个新型数据库予以介绍。
1.11.1 分布式数据库
1.集中式系统和分布式系统
所谓集中式数据库就是集中在一个中心场地的计算机上,以统一处理方式所支持的数据库。这类数据库无论是逻辑上还是物理上都是集中存储在一个容量足够大的外存储器上,其基本特点是:
(1)集中控制处理效率高,可靠性好;
(2)数据冗余少,数据独立性高;
(3)易于支持复杂的物理结构去获得对数据的有效访问。
但是随着数据库应用的不断发展,人们逐渐地感觉到过分集中化的系统在处理数据时有许多局限性。例如,不在同一地点的数据无法共享;系统过于庞大、复杂,显得不灵活且安全性较差;存储容量有限,不能完全适应信息资源存储要求等。正是为了克服这种系统的缺点,人们采用数据分散的办法,即把数据库分成多个,建立在多台计算机上,这种系统称为分散式数据库系统。
由于计算机网络技术的发展,才有可能把并排分散在各处的数据库系统通过网络通信技术连接起来,这样形成的系统称为分布式数据库(Distributed Database)系统。近年来,分布式数据库已经成为信息处理中的一个重要领域,它的重要性还将迅速增加。
2.分布式数据库的定义
分布式数据库是一组结构化的数据集合,它们在逻辑上属于同一系统,而在物理上分布在计算机网络的不同结点上。网络中的各个结点(也称为“场地”)一般都是集中式数据库系统,由计算机、数据库和若干终端组成。数据库中的数据不是存储在同一场地,这就是分布式数据库的“分布性”特点,也是与集中式数据库的最大区别。
表面上看,分布式数据库的数据分散在各个场地,但这些数据在逻辑上却是一个整体,如同一个集中式数据库。因而,在分布式数据库中有了全局数据库和局部数据库两个概念。所谓全局数据库就是从系统的角度出发,逻辑上的一组结构化的数据集合或逻辑项集;而局部数据库是从各个场地的角度出发,物理结点上的各个数据库,即子集或物理项集。这是分布式数据库的“逻辑整体性”特点,也是与分散式数据库的区别。
3.分布式数据库的特点
分布式数据库可以建立在以局域网连接的一组工作站上,也可以建立在广域网(或称远程网)的环境中。但分布式数据库系统并不是简单地把集中式数据库安装在不同的场地,而是具有自己的性质和特点。
(1)自治与共享。分布式数据库有集中式数据库的共享性与集成性,但它更强调自治及可控制的共享。这里的自治是指局部数据库可以是专用资源,也可以是共享资源。这种共享资源体现了物理上的分散性,这是由一定的约束条件划分而形成的。因此,要由一定的协调机制来控制以实现共享。
(2)冗余的控制。在研究集中式数据库技术时强调减少冗余,但在研究分布式数据库时允许冗余—物理上的重复。这种冗余(多副本)增加了自治性,即数据可以重复地驻留在常用的结点上以减少通信代价,提供自治基础上的共享。冗余不仅改善系统性能,同时也增加了系统的可用性,即不会由于某个结点的故障而引起全系统的瘫痪。但这无疑增加了存储代价,也增加了副本更新时的一致性代价,特别当有故障时,结点重新恢复后保持多个副本一致性的代价。
(3)分布事务执行的复杂性。逻辑数据项集实际上是由分布在各个结点上的多个关系片段(子集)组成的。一个项可以物理上被划分为不相交(或相交)的片段,也可以有多个相同的副本且存储在不同的结点上。所以,分布式数据库存取的事务是一种全局性事务,它是由许多在不同结点上执行对各局部数据库存取的局部子事务组成的。如果仍保持事务执行的原子性,则必须保证全局事务的原子性;当多个全局事务并发时,则必须保持全局可串行性。也就是说,这种全局事务具有分布执行的特性。分布式数据库的状态一致性和可恢复性是面向全局的。所有子事务提交后全局事务才能提交;不仅要保证子事务的可串行化,而且应该保证全局事务的可串行化。
(4)数据的独立性。数据库技术的一个目标是使数据与应用程序间尽量独立,相互之间影响最小。也就是数据的逻辑和物理存储对用户是透明的。在分布式数据库中,数据的独立性有更丰富的内容。使用分布式数据库时,应该像使用集中式数据库时一样,即系统要提供一种完全透明的性能,具体包括以下内容。
① 逻辑数据透明性。某些用户的逻辑数据文件改变时,或者增加新的应用使全局逻辑结构改变时,对其他用户的应用程序没有或有尽量少的影响。
② 物理数据透明性。数据在结点上的存储格式或组织方式改变时,数据的全局结构与应用程序无需改变。
③ 数据分布透明性。用户不必知道全局数据如何划分。
④ 数据冗余的透明性。用户无须知道数据重复,即数据子集在不同结点上冗余存储的情况。
4.分布式数据库的应用及展望
一个完全分布式数据库系统在实现共享时,其利用率高、有站点自治性、能随意扩充、可靠性和可用性好,有效且灵活,就像使用本地的集中式数据库一样。分布式数据库已广泛应用于企业人事、财务和库存等管理系统,百货公司、销售店的经营信息系统,电子银行、民航订票、铁路订票等在线处理系统,国家政府部门的经济信息系统,大规模数据资源等信息系统。
此外,随着数据库技术深入各应用领域,除了商业性、事务性应用以外,在以计算机作为辅助工具的各个信息领域,如CAD、CAM、CASE、OA、AI以及军事科学等,同样适用分布式数据库技术,而且对数据库的集成共享、安全可靠等特性有更多的要求。为了适应新的应用,一方面要研究克服关系数据模型的局限性,增加更多面向对象的语义模型,研究基于分布式数据库的知识处理技术;另一方面可以研究如何弱化完全分布、完全透明的概念,组成松散的联邦型分布式数据库系统。这种系统不一定保持全局逻辑一致,而仅提供一种协商谈判机制,使各个数据库维持其独立性,但能支持部分有控制的数据共享,这对OA等信息处理领域很有吸引力。
总之,分布式数据库技术有广阔的应用前景。随着计算机软、硬件技术的不断发展和计算机网络技术的发展,分布式数据库技术也将不断地向前发展。
1.11.2 数据仓库与数据挖掘技术
从20世纪80年代初起直到90年代初,联机事务处理(On-line Transaction Processing,OLTP)一直是关系数据库应用的主流。然而,应用需求在不断地变化,当联机事务处理系统应用到一定阶段的时候,企业家们便发现单靠拥有联机事务处理系统已经不足以获得市场竞争的优势,他们需要对其自身业务的运作以及整个市场相关行业的态势进行分析,进而做出有利的决策。这种决策需要对大量的业务数据包括历史业务数据进行分析才能得到。这种基于业务数据的决策分析,我们把它称为联机分析处理(Online Analytical Processing,OLAP)。如果说传统联机事务处理强调的是更新数据库(向数据库中添加信息),那么联机分析处理就是从数据库中获取信息、利用信息。因此,著名的数据仓库专家Ralph Kimball写道:“我们花了20多年的时间将数据放入数据库,如今是该将它们拿出来的时候了。”
可见,数据仓库(Data Warehouse,DW)是近年来信息领域发展起来的数据库新技术,随着企事业单位信息化建设的逐步完善,各单位信息系统将产生越来越多的历史信息数据,如何将各业务系统及其他档案数据中有分析价值的海量数据集中管理起来,在此基础上,建立分析模型,从中挖掘出符合规律的知识并用于未来的预测与决策中,是非常有意义的,这也是数据仓库产生的背景和原因。
1.数据仓库的定义
数据仓库的定义大多依照著名的数据仓库专家W. H. Inmon在其著作Building Data Warehouse中给出的描述:数据仓库就是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,通常用于辅助决策支持(DDS)。
从其定义的描述可以看出,数据仓库有以下几个特点。
(1)面向主题。操作型数据库(如银行柜台存取款、股票交易、商场POS系统等)的数据组织是面向事务处理任务,各个业务系统之间各自分离;而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点领域,一个主题通常与多个操作型业务系统或外部档案数据相关。如一个超市的数据仓库所组织的主题可能为供应商、顾客、商品等,而按应用来组织,则可能是销售子系统、供应子系统和财务子系统等。可见,基于主题组织的数据被划分为各自独立的领域,每个领域都有自己的逻辑内涵而互不交叉。而基于应用的数据组织则完全不同,它的数据只是为处理具体应用而组织在一起的。
(2)集成的。面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据作抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企事业单位一致的全局信息。也就是说存放在数据仓库中的数据应使用一致的命名规则、格式、编码结构和相关特性来定义。
(3)相对稳定的。操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供单位决策分析之用,对所涉及的数据操作主要是数据查询和加载,一旦某个数据加载到数据仓库以后,一般情况下将作为数据档案长期保存,几乎不再做修改和删除操作,也就是说针对数据仓库,通常有大量的查询操作及少量定期的加载(或刷新)操作。
(4)反映历史变化。操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含较久远的历史数据,因此总是包括一个时间维,以便可以研究趋势和变化。数据仓库系统通常记录了一个单位从过去某一时点(如开始启用数据仓库系统的时点)到目前的所有时期的信息,通过这些信息,可以对单位的发展历程和未来趋势做出定量分析和预测。
2.数据仓库的体系结构
数据仓库系统通常是对多个异构数据源的有效集成,集成后按照主题进行重组,包含历史数据。存放在数据仓库中的数据通常不再修改,用于做进一步的分析型数据处理。
数据仓库系统的建立和开发,是以企事业单位的现有业务系统和大量业务数据的积累为基础,数据仓库不是一个静态的概念,只有把信息适时地交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才是有意义的。因此把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务,数据仓库的开发是全生命周期的,通常是一个循环迭代开发过程。
一个典型的数据仓库系统通常包含数据源、数据存储与管理、OLAP服务器以及前端工具与应用4个部分,如图1-23所示。
(1)数据源:是数据仓库系统的基础,即系统的数据来源。通常包括企业(或事业单位)的各种内部信息和外部信息。内部信息,如存于操作型数据库中的各种业务数据和办公自动化系统中包含的各类文档数据;外部信息,如各类法律法规、市场信息、竞争对手的信息,以及各类外部统计数据及其他有关文档等。
(2)数据的存储与管理:是整个数据仓库系统的核心。在现有各业务系统的基础上,对数据进行抽取、清理,并有效集成,按照主题进行重新组织,最终确定数据仓库的物理存储结构。按照数据的覆盖范围和存储规模,数据仓库可以分为企业级数据仓库和部门级数据仓库(也叫“数据集市”,Data Marts)。
(3)OLAP服务器:对需要分析的数据按照多维数据模型进行重组,以支持用户随时从多角度、多层次来分析数据,发现数据规律与趋势。
(4)前端工具与应用:前端工具主要包括各种数据分析工具、报表工具、查询工具、数据挖掘工具以及各种基于数据仓库或数据集市开发的应用。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具既可针对数据仓库,也可针对OLAP服务器。
3.数据挖掘的定义
数据挖掘(Data Mining),就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程,简单地说,数据挖掘就是从大量数据中提取或“挖掘”知识,又被称为数据库中的知识发现(Knowledge Discovery in Database,KDD)。
若将数据仓库比做矿井,那么数据挖掘就是深入矿井采矿的工作。数据挖掘不是一种无中生有的魔术,也不是点石成金的炼金术,若没有足够丰富完整的数据,将很难期待数据挖掘能挖掘出什么有意义的信息。
4.数据挖掘的方法
数据挖掘的分析方法可以分为两类:直接数据挖掘与间接数据挖掘。
直接数据挖掘的目标是利用可用的数据建立一个模型,这个模型对剩余的数据,比如对一个特定的变量进行描述。包括分类(Classification)、估值(Estimation)和预言(Prediction)等分析方法。
而在间接数据挖掘的目标中则没有选出某一具体的变量并用模型进行描述,而是在所有的变量中建立起某种关系,如相关性分组或关联规则(Affinity Grouping or Association Rules)、聚集(Clustering)、描述和可视化(Description and Visualization)及复杂数据类型挖掘(文本、网页、图形图像、音视频和空间数据等)。
1.11.3 多媒体数据库
“多媒体”译自20世纪80年代初产生的英文词“Multimedia”。多媒体是在计算机控制下文字、声音、图形、图像、视频等多种类型数据的有机集成。其中数字、字符等称为格式化数据,文本、声音、图形图像和视频等称为非格式化数据。
数据库从传统的企业管理扩展到CAD、CAM等多种非传统的应用领域。这些领域中要求处理的数据不仅包括一般的格式化数据,还包括大量不同媒体上的非格式化数据。在字符型媒体中,信息是由数字与字母组成的,要按照数字与字母的特征来处理。在图形媒体中,信息用有关的图形描绘,其中包括几何信息与非几何信息,以及描述各几何体之间相互关系的拓扑信息。这些不同媒体上的信息具有不同的性质与特性,因此,为了组织存在于不同媒体上的信息,就要建立多媒体数据库系统(Multimedia Database System,MDBS)。
由于多媒体数据具有数据量大、结构复杂、时序性、数据传输的连续性等特点,因而决定了数据库系统不能采用像格式化数据一样的方式去管理和处理,也不能通过传统数据库的简单扩充满足多媒体应用的需求。多媒体数据库需要有特殊的数据结构、存储技术、查询和处理方式,如支持大对象、基于相似性的检索、连续介质数据的检索等。
所以,多媒体数据库系统是结合数据库技术和多媒体技术,能够有效实现对格式化和非格式化的多媒体数据进行存储、管理和操纵等功能的数据库系统。
多媒体数据库目前有以下三种结构。
第一种结构:由单独一个多媒体数据库管理系统来管理不同媒体的数据库以及对象空间。
第二种结构:主辅DBMS体系结构。每一个媒体数据库由一个辅DBMS管理。另外有一个主DBMS来一体化所有的辅DBMS。用户在DBMS上使用多媒体数据库。对象空间由主DBMS来管理。
第三种结构:协作DBMS体系结构。每个媒体数据库对应一个DBMS,称为成员DBMS,每个成员放到外部软件模型中,外部软件模型提供通信、查询和修改的界面。用户可以在任一点上使用数据库。
多媒体数据库的研究历史不长,但却是计算机科学技术中方兴未艾的一个重要分支。从理论上说,它涉及的内容可以把一切对象装进一个数据库系统,因而所遇到的问题极其复杂,不但有技术问题,也有对现实世界的认识和理解问题。随着对多媒体数据库系统的进一步研究,不同介质集成的进一步实现,商用多媒体数据库管理系统必将蓬勃发展,多媒体数据库领域必将在高科技方面占据越来越重要的地位。
通过上述对数据库系统的介绍,可以得出这样的结论:传统的数据库技术和其他计算机技术相互结合、相互渗透,使数据库中新的技术内容层出不穷;数据库的许多概念、技术内容、应用领域甚至某些原理都有了重大的发展和变化。新的数据库技术不断涌现,这些新的数据库技术,提高了数据库的功能、性能,并使数据库的应用领域得到极大的发展。这些新型的数据库系统共同构成了数据库系统的大家族。
1.11.4 数据库技术的研究领域
随着计算机软、硬件的发展,数据库技术仍需不断向前发展。数据库学科的研究范围十分广泛,主要包括以下三个领域。
1.数据库管理系统软件的研制
DBMS是数据库系统的基础。DBMS的研制包括研制DBMS本身及以DBMS为核心的一组相互联系的软件系统,包括工具软件和中间件。研制的目标是提高系统的性能和提高用户的生产率。
2.数据库设计
数据库设计的研究范围包括数据库的设计方法、设计工具和设计理论的研究,数据模型和数据建模的研究,计算机辅助数据库设计及其软件系统的研究,数据库设计规范和标准的研究等。数据库设计的目的是在DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。
3.数据库理论
数据库理论的研究主要集中于关系规范化理论、关系数据理论等。近年来,随着人工智能与数据库理论的结合以及并行计算技术的发展,数据库逻辑演绎和知识推理、并行算法等都成为新的研究方向。 本书所介绍的数据库系统的基本概念、基本技术和基本知识都是进行上述三个领域研究和开发的基础。
1.12 小 结
本章讲述了信息、数据、数据处理与数据管理的基本概念,介绍了数据管理技术发展的三个阶段及各自的优缺点,说明了数据库系统的特点。
整个数据库系统主要包括数据库、数据库用户、计算机硬件系统和计算机软件系统等几部分。
数据库是存储在计算机内有组织的大量共享数据的集合,可以供用户共享,具有尽可能小的冗余度和较高的数据独立性,使得数据存储最优,数据最容易操作,并且具有完善的自我保护能力和数据恢复能力。
数据库的用户是指使用数据库的人员,其中数据库管理员(DBA)是数据库系统中的核心人员,它可以决定数据库的结构和内容,控制和监督数据库系统的运行等。
计算机硬件系统是数据库系统存在和运行的硬件基础。
在计算机软件系统中,数据库管理系统和操作系统是核心的系统软件。其中数据库管理系统是对数据进行管理的大型系统软件,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的。DBMS就是实现把用户意义下的抽象的逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来很大的方便。当然,数据库管理系统所进行的一系列的操作都要通过操作系统,操作系统负责管理系统中的硬件资源和软件资源。
从数据库管理系统的角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的体系结构;数据库系统的三级模式和二级映像保证了数据库系统的逻辑独立性和物理独立性。
数据库中的数据是按一定的结构和模型进行组织的,通常分为层次模型、网状模型、关系模型和面向对象模型,本章详细介绍了这四种模型各自的优缺点,并重点介绍了关系模型及有关的基本概念。