第1章 绪论 本章要点 本章从数据库基本概念与知识出发,依次介绍了数据库系统的特点、数据模型的三要素及其常见数据模型、数据库系统的内部体系结构等重要概念与知识。本章的另一重点是围绕DBMS介绍其功能、组成与操作,还提到了数据库技术的研究点及其发展变化情况。 1
1.1 数据库系统概述 1.1.1 数据,数据库,数据库管理系统,数据库系统 1.1.2 数据管理技术的产生和发展 1.1.3 数据库系统的特点 2
1.1.1数据,数据库,数据库管理系统,数据库系统 3
数据(Data) 定义 表现形式 与信息的联系 数据是用来记录信息的可识别的符号,是信息的具体表现形式。 表现形式 数据是数据库中存储的基本对象。按广义的理解来说,数据的种类有很多,如文字、图像、声音、等等都可以转化为计算机可以识别的标识,可以以数字化后的二进制形式存入计算机。 在日常生活中人们可以对事务直接用自然语言描述。在计算机中存储和处理时,就要抽出对这些事物感兴趣的特征组成一个记录来描述。 与信息的联系 数据解释的含义称为数据的语义(即信息),数据与其语义是不可分的。可以这样认为:数据是信息的符号表示或载体,信息则是数据的内涵,是对数据的语义解释。 4
5
数据库(DataBase,简称DB) 数据库 数据库具有两个比较突出的特点 从字面意思来说就是存放数据的仓库。具体而言就是长期存放在计算机内的有组织的可共享的数据集合,可供多用户共享,数据库中的数据按一定的数据模型组织、描述和储存,具有尽可能小的冗余度和较高的数据独立性和易扩展性。 数据库具有两个比较突出的特点 ①把在特定的环境中与某应用程序相关的数据及其联系集中在一块并按照一定的结构形式进行存储,即集成性。 ②数据库中的数据能被多个应用程序的用户所使用,即共享性。 6
数据库管理系统(DataBase Management System,简称DBMS) 数据库管理系统是数据库系统的核心组成部分,是对数据进行管理的大型系统软件,用户在数据库系统中的一些操作都是由数据库管理系统来实现的。 功能: 数据定义 DBMS提供数据定义语言(Data Definition Language,简称DDL),用户通过它可以方便地对数据库中的数据对象(包括表、视图、索引、存储过程等)进行定义。定义相关的数据库系统的结构和有关的约束条件。 数据操纵 DBMS提供数据操纵语言(Data Manipulation Language,简称DML),通过DML操纵数据实现对数据库的一些基本操作,如查询,插入,删除和修改等等。其中,数据库标准操作语言——SQL语言就是DML的一种。 7
数据库管理系统(DataBase Management System,简称DBMS) 数据库的运行管理 这一功能是数据库管理系统的核心所在。DBMS通过数据库在建立、运用和维护时统一管理和控制,以保证数据安全、正确、有效的正常运行。DBMS主要通过数据的安全性控制、完整性控制、多用户应用环境的并发性控制和数据库数据的系统备份与恢复四个方面来实现对数据库的统一控制功能的。 数据库的建立和维护功能 数据库的建立和维护功能包括数据库初始数据的输入、转换功能、数据库的转储、恢复功能、重组织功能和性能监视、分析功能等。 8
数据库系统(DataBase System,简称DBS) 数据库系统是指在计算机系统中引入数据库后的系统,主要有数据库(及相关硬件)、数据库管理系统(及开发工具)、应用系统、数据库管理员和用户这几部分。其中,在数据库的建立、使用和维护的过程要有专门的人员来完成,这些人被称为数据库管理员(DataBase Administrator,简称DBA)。 数据库系统可以用图1.1表示。 数据库系统在整个计算机系统中的地位如图1.2所示。 9
图1.1 数据库系统 10
图1.2 数据库在计算机系统中的地位 11
1.1.2 数据管理技术的产生和发展 人工管理阶段 文件系统阶段 数据库系统阶段 结论 谈数据管理技术,先要讲到数据处理,所谓数据处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。数据管理则是数据处理的中心问题,为此,数据管理是指对数据进行分类、组织、编码、存储、检索和维护的管理活动总称。就用计算机来管理数据而言,数据管理是指数据在计算机内的一系列活动的总和。 数据管理技术已经历了人工管理、文件系统及数据库系统三个发展阶段。这三个阶段的特点及其比较如表1.1所示。 人工管理阶段 文件系统阶段 数据库系统阶段 结论 12
表1.1 数据管理三个阶段的比较 13 人工管理阶段 文件系统阶段 数据库系统阶段 应用背景 科学计算 科学计算、管理 大规模管理 背 硬件背景 无直接存取存储设备 磁盘、磁鼓 大容量磁盘 景 软件背景 没有操作系统 有文件系统 有数据库管理系统 处理方式 批处理 联机实时处理、批处理 联机实时处理、分布处理、批处理 数据的管理者 用户(程序员) 文件系统 数据库管理系统 数据面向的对象 某一应用程序 某一应用 现实世界 特 数据的共享程度 无共享,冗余度极大 共享性差,冗余度大 共享性高,冗余度小 数据的独立性 不独立,完全依赖于程序 独立性差 具有高度的物理独立性和一定的逻辑独立性 点 数据的结构化 无结构 记录内有结构、整体无结构 整体结构化,用数据模型描述 数据控制能力 应用程序自己控制 由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 13
人工管理阶段 人工管理数据具有以下几个特点: 数据不保存 应用程序管理数据 数据不共享 20世纪50年代中期以前,计算机主要用于科学计算。硬件设施方面:外存只有纸带、卡片、磁带,没有磁盘等直接存取设备;软件方面:没有操作系统和管理数据的软件;数据处理方式是批处理。 人工管理数据具有以下几个特点: 数据不保存 应用程序管理数据 数据不共享 数据是面向应用的,一组数据只能对应一个程序。如果多个应用程序涉及某些相同的数据,则由于必须各自进行定义,无法进行数据的参照,因此程序间有大量的冗余数据。 数据不具有独立性 数据的独立性包括了数据的逻辑独立性和数据的物理独立性。当数据的逻辑结构或物理结构发生变化时,必须对应用程序做相应的修改。 在人工管理阶段,程序与数据之间的对应关系可用图1.3表示。 14
图1.3 人工管理阶段应用程序与数据之间的对应关系 15
文件系统阶段 特点如下: 数据长期保存 文件系统管理数据 数据共享性差,冗余度大 数据独立性差 20世纪50年代后期到60年代中期,这时计算机已大量用于数据的管理。硬件方面:有了磁盘、磁鼓等直接存取存储设备;软件方面:操作系统中已经有了专门的管理软件,一般称为文件系统;处理方式有批处理、联机实时处理。 特点如下: 数据长期保存 文件系统管理数据 数据共享性差,冗余度大 数据独立性差 在文件系统阶段,程序与数据之间的关系如图1.4所示。 16
图1.4 文件系统阶段应用程序与数据之间的对应关系 17
数据库系统阶段 20世纪60年代后期以来,计算机用于管理的规模更为庞大,数据量急剧增长,硬件已有大容量磁盘,硬件价格下降;软件则价格上升,使得编制、维护软件及应用程序成本相对增加;处理方式上,联机实时处理要求更多,分布处理也在考虑之中。鉴于这种情况,文件系统的数据管理满足不了应用的需求,为解决共享数据的需求,随之从文件系统中分离出了专门软件系统——数据库管理系统,用来统一管理数据。 数据库系统阶段应用程序与数据之间的对应关系可用图1.5表示。 18
图1.5 数据库系统阶段应用程序与数据之间的对应关系 图1.5 数据库系统阶段应用程序与数据之间的对应关系 19
结 论 综上所述,如图1.6所示,随着数据管理技术的不断发展,应用程序不断从底层的、低级的、物理的数据管理工作中解脱出来,能独立的、较高逻辑级别地轻松处理数据。从而极大地提高了应用软件的生产力。目前关系数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最流行的商用数据库系统。 20
1.1.3 数据库系统的特点 主要特点: 数据结构化 数据的共享性高,冗余度低,易扩充 数据独立性高 数据由DBMS统一管理和控制 结论 主要特点: 数据结构化 数据的共享性高,冗余度低,易扩充 数据独立性高 数据由DBMS统一管理和控制 结论 21
数据结构化 数据结构化是数据库系统与文件系统的根本区别。 数据结构化是数据库系统与文件系统的根本区别。 在文件系统中,相互独立的文件的记录内部是有结构的。传统文件的最简单形式是等长同格式的记录集合。例如:一个教师人事记录文件。 每个记录都有如图1.7的记录格式: 图1.7 教师记录格式示例 图1.8(a)主记录——详细记录格式示例 图1.8(b) 教师王名记录示例 22
数据结构化 这样就可以节省许多存储空间,灵活性也相对提高。 但这样建立的文件还有局限性,因为这种结构上的灵活性只是针对一个应用而言。图1.9 教师数据组织 这种数据组织方式为各部分的管理提供了必要的记录,使数据结构化了。这就要求在描述数据时不仅要描述数据本身,还要描述数据之间的联系。 在文件系统中,尽管其记录内已经有了某些结构,但记录之间没有联系。 23
数据结构化 数据库系统实现整体数据的结构化,是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。 在数据库系统中,数据不再针对某一应用,而是面向全组织,是整体结构化的。不仅数据是结构化的,而且存取数据的方式也是很灵活的,可以存取数据库中的某一个数据项(或字段)、一组数据项、一个记录或是一组记录。而在文件系统中,数据的最小单位是记录(一次一记录的读写),粒度不能细到数据项。 24
数据的共享性高,冗余度低,易扩充 数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大的减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。 所谓数据的不一致性是指同一数据不同拷贝的值不一样。采用人工管理或文件系统管理时,由于数据被重复存储,当不同的应用使用和修改不同的拷贝时就容易造成数据的不一致。在数据库中数据共享,减少了由于数据冗余造成的不一致现象。 25
数据的共享性高,冗余度低,易扩充 由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据系统弹性大,易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。 26
数据独立性高 数据独立性包括了数据的物理独立性和数据的逻辑独立性两方面。 物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时,应用程序不用改变。 逻辑独立性是指用户的应用程序与数据库的整体逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不需修改的。 27
数据独立性高 数据独立性是由DBMS的三级模式结构与二级映象功能来保证的。 28
数据由DBMS统一管理和控制 数据库是长期在计算机内有组织的大量的可共享的数据集合 ,数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中的同一块数据。 DBMS提供以下几方面的数据控制功能: (1)数据的安全性控制 (2)数据的完整性约束 (3)并发控制 (4)数据库恢复 29
结 论 目前,数据库已经成为现代信息系统的不可分离的重要组成部分。 结 论 目前,数据库已经成为现代信息系统的不可分离的重要组成部分。 数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。 数据库技术是计算机领域中发展最快的技术之一,数据库技术的发展是沿着数据模型的主线展开的。 30
1.2 数据模型 模型是现实世界特征的模拟和抽象。数据模型也是一种模型,它能实现对现实世界数据特征的抽象。 数据模型应满足三方面的要求:比较真实地模拟现实世界;容易为人所理解;便于在计算机上实现。 根据模型应用的不同目的,分为两类。 第一类模型是概念模型,也称信息模型。一般应具有以下能力: (1)具有对现实世界的抽象与表达能力 (2)完整、精确的语义表达力 (3)易于理解和修改。 (4)易于向DBMS所支持的数据模型转换 31
1.2 数据模型 另一类模型是数据模型,包括层次模型、网状模型、关系模型等,它是按计算机系统对数据建模,主要用于DBMS的实现。 32
1.2 数据模型 为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换(或数据化)为机器世界。这一过程如图1.10所示。 数据模型的组成要素 33
1.2.1 数据模型的组成要素 数据模型描述了系统的三个方面:静态特性、动态特性和完整性约束条件。一般由数据结构、数据操作和完整性约束三部分组成,是严格定义的一组概念的集合。 34
1.2.1 数据模型的组成要素 一、数据结构 数据结构用于描述系统的静态特性,是所研究的对象类型的集合。 二、数据操作 数据操作用于描述系统的动态特性,是指对数据库中各种对象及对象的实例允许执行的操作的集合。 三、数据的约束条件 数据的约束条件是一组完整性规则的集合。数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。数据模型还应该提供自定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。 35
1.2.2概念模型 概念模型是现实世界到机器世界的一个中间层次。 信息世界中的基本概念 概念模型的表示 层次模型概述 36
信息世界中的基本概念 主要有: 实体:实体是指客观存在并可以相互区别的事物。 属性:属性是指实体所具有的某一特性。 码:码是指唯一标识实体的属性集。 域:域是指属性的取值范围,具有相同的数据类型的数据集合。 实体型:具有相同属性的实体必然具有共同的特征和性质。 实体集:实体集是指同型实体的集合。 联系:在现实世界中,事物内部以及事物之间是有关联的。 两个实体型之间的联系有以下三种: 一对一联系;一对多联系;多对多联系。 两个实体型之间的三类联系可以用如图1.11所示来表示。 37
信息世界中的基本概念 例如,对于教师、课程与参考书三个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书三者间的联系是一对多的,如图1.12(a)所示。 要注意的是三个实体型之间多对多联系与三个实体型两两之间的多对多联系(共有三个)的语义及E-R图是不同的。 38
信息世界中的基本概念 同一个实体型对应的实体集内的各实体之间也可以存在一对一、一对多、多对多的联系的(可以把一个实体集逻辑上看成两个与原来一样的实体集来理解)。例如:同学实体集内部同学与同学之间老朋友的关系可能是多对多的(如图1.13所示),这是因为每位同学的老朋友往往有多位。 39
图1.11 两个实体型之间的三类联系 40
图1.12 两个实体型之间的三类联系 41
图1.13 一个实体型实体之间的多对多联系 42
概念模型的表示 最常用的是实体—联系方法。该方法用E-R图来描述现实世界的概念模型。E-R图提供了表示实体型、属性和联系的方法。 实体型:用矩形表示,矩形框内写明实体名。 属性:用椭圆表示,椭圆形内写明属性名。并用无向边将其与相应的实体连接起来。 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。 43
概念模型的表示 如图1.14所示就是一个班级、学生的概念模型(用E-R图表示),班级实体型与学生实体型之间很显然是一对多关系。应用时应针对某实际情况,试着设计反映实际内容的实体及实体联系的E-R图。 44
层次模型概述 在数据库领域中,有四种最常用的数据模型,它们是:被称为非关系模型的层次模型、网状模型、关系模型和面向对象模型。本章简要介绍层次模型、网状模型、关系模型。 层次模型的数据结构 多对多联系在层次模型中的表示 层次模型的数据操纵与约束条件 层次模型的存储结构 层次模型的优缺点 45
层次模型的数据结构 在数据库中,对满足以下两个条件的数据模型称为层次模型。 (1)有且仅有一个节点无双亲,这个节点称为“根节点”。 (2)其他节点有且仅有一个双亲。 一个层次模型在理论上可以包含任意有限个记录型和字段,但任何实际的系统都会因为存储容量或实现复杂度而限制层次模型中包含的记录型个数和字段的个数。 若用图来表示,层次模型是一棵倒立的树。节点层次(Level)从根开始定义,根为第一层,根的子女称为第二层,根称为其子女的双亲,同一双亲的子女称为兄弟。 46
层次模型的数据结构 图1.15给出了一个系的层次模型。 层次模型对具有一对多的层次关系的描述非常自然、直观、容易理解,这是层次数据库的突出优点。 图1.16是图1.15的具体化,成为一个教师-学生层次数据库。 图1.17是图1.16数据模型的一个值。 47
图1.15 一个层次模型的示例 48
图1.16 教师-学生数据库模型 49
图1.17 教师-学生数据库的一个值 50
层次模型的存储结构 层次数据库中不仅要存储数据本身,还要存储数据之间的层次联系。 方法: (1)邻接法 按照层次树前序的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来体现层次顺序。例如对于图1.18(a)的数据库,按邻接法存放图1.18(b)中以记录A1为首的层次记录实例集,则应如图1.19所示存放。 51
层次模型的存储结构 (2)链接法 用指引元来反映数据之间的层次联系。则如图1.20所示,其中图1.20(a)每个记录设两类指引元,分别指向最左边的子女和最近的兄弟,这种链接方法称为子女-兄弟链接法;图1.20(b)按树的前序顺序链接各记录值,这种链接方法称为层次序列链接法。 52
层次模型的优缺点 优点: (1)层次模型本身比较简单 (2)实体间联系是固定的 (3)良好的完整性支持 缺点 : (1)层次模型表示非层次性的方法很笨拙 (2)对插入和删除操作的限制太多 (3)查询子女结点必须通过双亲结点,缺乏快速定位机制。 (4)由于结构严密,层次命令趋于程序化。 53
1.2.4 网状模型 网状数据模型的典型代表是DBTG系统,也称CODASYL系统,它是20世纪70年代数据系统语言研究会CODASYL(Conference On Data Systems Language)下属的数据库任务组(Data Base Task Group,简称DBTG)提出的一个系统方案。 图1.21给出了一个抽象的简单的网状模型。 54
图1.21 简单的网状模型 55
一、网状模型的数据结构 在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型: (1) 允许一个以上的结点无双亲; (1) 允许一个以上的结点无双亲; (2) 一个结点可以有多于一个的双亲。 它去掉了层次模型的两个限制,此外它还许两个结点之间有多种联系。因此网状模型可以更直接地去描述现实世界。 以教师授课为例,看看网状数据库模式是怎样组织数据的。 56
一、网状模型的数据结构 按照常规语义,一个教师可以讲授若干门课程,一门课程可以由多个教师讲授,因此教师与课程之间是多对多联系。这里引进一个教师授课的连结记录,它由两个数据项组成,即教师号、课程号,表示某个教师讲授一门课程。 图1.22为教师授课数据库的网状数据库模式。 57
图1.22 为教师授课数据库的网状数据库模式。 58
二、网状模型的数据操作与完整性约束 DBTG在模式DDL中提供了定义DBTG数据库完整性的若干概念和语句,主要有: (1)支持记录码的概念,码即唯一标识记录的数据项的集合。 (2)保证一个联系中双亲记录和子女记录之间是一对多的联系。 (3) 可以支持双亲记录和子女记录之间某些约束条件。 59
三、网状模型的存储结构 常用的方法是链接法,包括单向链接、双向链接、环状链接、向首链接等,此外其他实现方法,如指引元阵列法、二进制阵列法、索引法等,依具体系统不同而不同。 教师任课数据库中 ,记录之间的联系用单向环状链接法实现,如图1.23所示。 60
图1.23 教师/授课/课程的网状数据库实例 61
四、网状模型的优缺点 优点主要有: (1)能够更为直接地描述现实世界 (2)具有良好的性能,存取效率较高。 缺点主要有: (1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂 . (2)其DDL、DML语言复杂,用户不容易使用。 62
1.2.5 关系模型 关系模型是目前最重要的一种模型。美国IBM公司的研究员E.F.Codd于1970年发表题为“大型共享系统的关系数据库的关系模型”的论文,文中首次提出了数据库系统的关系模型。 数据库领域当前的研究工作都是以关系方法为基础的。 数据模型的三个组成要素,主要体现如下: 一、关系模型的数据结构 二、关系模型的数据操纵与约束条件 三、关系模型的存储结构 63
关系模型的数据结构 关系模型中数据的逻辑结构是一张二维表,它由行和列组成。每一行称为一个元组,每一列称为一个属性(或字段)。 通过图1.24所示的教师登记表,介绍关系模型中的相关的术语。 关系:一个关系对应一张二维表,图1.24表示的就是一张教师登记表。 元组:二维表中的一行称为一个元组。 属性:二维表中的一列称为一个属性,对应每一个属性的名字称为属性名 主码:二维表中的某个属性或是属性组可以唯一确定一个元组,则称为主码,也称为关系键, 64
关系模型的数据结构 域:属性的取值范围称为域 分量:元组中的一个属性值 关系模式:表现为关系名和属性集的集合,是对关系的具体描述。一般表示为: 关系名(属性1,属性2,…,属性N) 关系模型要求关系必须是规范化的,即要求关系必须满足一定规范条件,关系的每一个分量必须是一个不可分的数据项,不允许表中还有表 . 例如:图1.25中出产日期是可分的数据项,出产日期有可以分为年,月,日。因此,图1.25的表就不符合关系模型要求。 65
图1.24 关系模型的数据结构及术语 66
图1.25 表中有表的示例 67
二、关系模型的数据操纵与约束条件 关系模型的操作主要包括查询、插入、删除和修改数据。这些操作必须满足关系的完整性约束条件,即实体完整性、参照完整性和用户定义完整性。 在非关系模型中,操作对象是单个记录,而关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合 .关系模型把对数据的存取路径向用户隐蔽起来,从而大大地提高了数据的独立性。 68
三、关系模型的存储结构 在关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式存储,每一个表通常对应一种文件结构,也有多个表对应一种文件结构。 69
四、关系模型的优缺点 关系模型优点: (1)有较强的数学理论根据。 (2)数据结构简单、清晰,用户易懂易用。 (3)关系模型的存取路径对用户透明,具有更高的数据独立性、更好的安全保密性。 关系模型具有查询效率不如非关系模型效率高缺点。为了提高性能,必须对用户的查询进行优化,增加了开发数据库管理系统的负担。 70
表1.2 层次、网状、关系模型比较表 比较项 层次模型 网状模型 关系模型 创始 1968年IBM公司的IMS系统 1969年CODASYL的DBTG报告(1971年通过) 1970年E.F.Codd提出关系模型 典型产品 IMS IDS/Ⅱ,IMAGE/3000,IDMS等 Oracle,Sybase,DB2,SQL Server等 盛行时期 20世纪70年代 20世纪70年代到80年代中期 20世纪80年代至今 数据结构 复杂(树形结构),要加树形限制 复杂(有向图结构),结构上无需严格限制 简单(二维表),无需严格限制 数据联系 通过指针连接记录型,联系单一 通过指针连接记录型,联系多样,较复杂 通过联系表(含外码),联系多样 查询语言 过程式,一次一记录。查询方式单一(双亲到子女) 过程式,一次一记录。查询方式多样 非过程式,一次一集合。查询方式多样 实现难易 在计算机中实现较方便 在计算机中实现较困难 数学理论基础 树(研究不规范,不透彻) 无向图(研究不规范,不透彻) 关系理论(关系代数、关系演算),研究深入、透彻、 71
表1.3 现实世界、信息世界、机器世界/关系数据库间术语对照表 事物 实体 记录/元组(或行) 若干同类事物 实体集 记录集(即文件)/元组集(即关系) 若干特征刻画的事物 实体型 记录型/二维表框架(即关系模式) 事物的特征 属性 字段(或数据项)/属性(或列) 事物之间的关联 实体型(或实体)之间的联系 记录型之间的联系/联系表(外码) 事物某特征的所有可能值 域 字段类型/域 事物某特征的一个具体值 一个属性值 字段值/分量 可区分同类事物的特征或若干特征 码 关键字段/关系键(或主码) 72
1.3 数据库系统结构 可以有多种不同的层次或不同的角度来考查数据库系统的结构。从数据库管理系统内部系统结构看,数据库系统通常采用三级模式结构。从数据库外部的体系结构看,数据库系统的结构分为集中式结构、分布式结构、客户/服务器和并行结构等。 1.3.1 数据库系统的三级模式结构 1.3.2 数据库的二级映象功能与数据独立性 1.3.3 数据库管理系统的工作过程 73
数据库系统的三级模式结构 数据库系统的三级模式结构是指外模式、模式和内模式。如图1.26 一、外模式(External Schema) 外模式也称子模式(SubSchema)或用户模式,是三级模式的最外层,它是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述。 把普通用户看到和使用的数据库内容称为视图。视图集也称为用户级数据库,它对应于外模式。外模式通常是模式的子集。一个数据库可以有多个外模式。同一外模式也可以为某一用户的多个应用系统所用,但一个应用程序只能使用一个外模式。 74
数据库系统的三级模式结构 二、模式(Schema) 模式又称概念模式,也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,是数据视图的全部。它是数据库系统模式结构的中间层 。 概念模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系、定义与数据有关的安全性、完整性要求。 75
数据库系统的三级模式结构 三、内模式(Internal Schema) 内模式也称为存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。 76
数据库系统三级模式结构概念比较,请参见表1.4 外模式 模式 内模式 定 义 也称子模式或用户模式,还称用户级模式 也称逻辑模式,还称概念级模式 也称存储模式,还称物理级模式 是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述 是数据库中全体数据的逻辑结构和特征的描述,它包括:数据的逻辑结构、数据之间的联系和与数据有关的安全性、完整性要求。 它是数据物理结构和存储方式的描述。 特点1 是各个具体用户所看到的数据视图,是用户与DB的接口。 是所有用户的公共数据视图。一般只有DBA能看到全部 数据在数据库内部的表示方式。 特点2 可以有多个外模式 只有一个模式 只有一个内模式 77
数据库系统三级模式结构概念比较,请参见表1.4 外模式 模式 内模式 特点3 针对不同用户,有不同的外模式描述。每个用户只能看见和访问所对应的外模式中的数据,数据库中其余数据是不可见的。所以外模式是保证数据库安全性的一个有力措施。 数据库模式以某一种数据模型(层状、网状、关系)为基础,统一综合地考虑所有用户的需求,并将这些需求有机地结合成一个逻辑整体。 以前由DBA定义,现基本由DBMS定义。 特点4 面向应用程序或最终用户。 由DBA定义与管理。 由DBA定义或由DBMS预先设置。 DDL DBMS提供三种模式的描述语言(DDL)来严格定义三种模式。如:子模式DDL、模式DDL和内模式DDL。子模式DDL和用户选用的程序设计语言具有相容的语法。如:Cobol子模式DDL。关系数据库三种模式的描述语言统一于SQL语言中。 78
数据库的二级映象功能与数据独立性 这两层映象保证了数据库系统的数据能够具有较高的逻辑独立性和物理独立性。 一、外模式/模式映象 为了能够在内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映象:外模式/模式映象,模式/内模式映象。 这两层映象保证了数据库系统的数据能够具有较高的逻辑独立性和物理独立性。 一、外模式/模式映象 模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系。 当模式改变时,由数据库管理员对各个外模式/模式映象作相应改变,可以使外模式保持不变。 应用程序是依据数据的外模式编写的,保证了数据与程序的逻辑独立性,简称为数据逻辑独立性。 79
数据库的二级映象功能与数据独立性 二、模式/内模式映象 数据库中只有一个模式,也只有一个内模式,所以模式/内模式映象是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称为数据物理独立性。 在数据库的三级模式结构中,数据库模式即全局逻辑结构是数据库的中心与关键,它独立于数据库的其他层次。 80
数据库的二级映象功能与数据独立性 数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图即外模式,也独立于具体的存储设备。 数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于内模式和存储设备。 数据库的二级映象保证了数据库外模式的稳定性,从而根本上保证了应用程序的稳定性,使得数据库系统具有较高的数据与程序的独立性。数据库的三级模式与二级映象使得数据的定义和描述可以从应用程序中分离出去。 81
1.3.3 数据库管理系统的工作过程 数据库管理系统控制的数据操作过程基于数据库系统的三级模式结构与二级映象功能,总体操作过程能从其读或写一个用户记录的过程大体反映出来。 下面就以应用程序从数据库中读取一个用户记录的过程(如图1.27所示)来说明。 按照步骤解释运行过程如下: (1)应用程序A向DBMS发出从数据库中读用户数据记录的命令; (2)DBMS对该命令进行语法检查、语义检查,并调用应用程序A对应的子模式,检查A的存取权限,决定是否执行该命令。如果拒绝执行,则转(10)向用户返回错误信息 82
1.3.3 数据库管理系统的工作过程 (3)在决定执行该命令后,DBMS调用模式,依据子模式/模式映象的定义,确定应读入模式中的哪些记录; 83
1.3.3 数据库管理系统的工作过程 (6)操作系统执行从物理文件中读数据的有关操作; (7)操作系统将数据从数据库的存储区送至系统缓冲区; (8)DBMS依据内模式/模式(模式/内模式映象的反方向看待,并不是另一种新映象,模式/子模式映象也是类似情况)、模式/子模式映象的定义,导出应用程序A所要读取的记录格式; 84
1.3.3 数据库管理系统的工作过程 (9)DBMS将数据记录从系统缓冲区传送到应用程序A的用户工作区; 至此,DBMS就完成了一次读用户数据记录的过程。DBMS向数据库写一个用户数据记录的过程经历的环节类似于读,只是过程基本是相反而已。由DBMS控制的大量用户数据的存取操作,可以理解为就是由许许多多这样的读或写的基本过程组合完成的。 85
1.4 数据库系统的组成 数据库系统是指计算机系统中引入数据库后的整个人机系统。为此,数据库系统应由计算机硬件、数据库、计算机软件及各类人员组成。 一、硬件平台 二、数据库 数据库是存放数据的地方,是存储在计算机内有组织的大量可共享的数据集合,具有尽可能少的冗余和较高的数据独立性,有完整的自我保护能力和数据恢复能力。 86
1.4 数据库系统的组成 三、软件 数据库系统的软件主要包括: (1)支持DBMS运行的操作系统; (2)DBMS:DBMS可以通过操作系统对数据库的数据进行存取、管理和维护; (3)具有与数据库接口的高级语言及其编译系统; (4)以DBMS为核心的应用开发工具,为特定应用环境开发的数据库应用系统。 87
1.4 数据库系统的组成 四、用户 进行管理和维护数据库系统的人员——数据库管理员; 具体职责包括: (1)决定数据库中的信息内容和结构 (2)决定数据库的存储结构和存取策略 (3)定义数据的安全性要求和完整性约束条件 (4)监控数据库的使用和运行 (5)数据库的改进和重组重构 88
1.4 数据库系统的组成 数据库应用系统分析设计的人员——系统分析员和数据库设计人员; 具体开发数据库系统的人员——数据库应用程序员; 使用数据库系统的人员——最终用户。 89
1.5 数据库技术的研究领域及其发展 1.5.1 数据库技术的研究领域 数据库技术的研究领域十分广泛,概括地而言包括以下三方面: 1、DBMS系统软件的研制 2、数据库应用系统设计与开发的研制 3、数据库理论的研究 1.5.2 数据库技术的发展 数据库技术产生于20世纪60年代中期,由于其在商业领域的成功应用,在20世纪80年代后,得到迅速推广,新的应用对数据库技术在数据存储和管理方面提出了更高的要求,从而进一步推动了数据库技术的发展。 90
1.5 数据库技术的研究领域及其发展 1、数据模型的发展和三代数据库系统 数据模型是数据库系统的核心和基础,数据模型的发展带动着数据库系统不断更新换代。 数据模型的发展可以分为三个阶段 : 第一阶段为格式化数据模型,包括层次数据模型和网状数据模型 第二阶段为关系数据模型 第三阶段则是以面向对象数据模型为代表的非传统数据模型 91
1.5 数据库技术的研究领域及其发展 据上述的数据模型三个发展阶段,数据库系统也可以相应地划分为三代 : 第一代数据库系统为层次与网状数据库系统 第二代数据库系统为关系数据库系统 新一代数据库系统(即第三代)的发展呈现百花齐放的局面 92
1.5 数据库技术的研究领域及其发展 2、数据库技术与其他相关技术的结合 将数据库技术与其他相关技术相结合,是当代数据库技术发展的主要特征之一 (1)面向对象数据库系统 面向对象数据库系统是数据库技术与面向对象技术相结合的产物 。 93
1.5 数据库技术的研究领域及其发展 (2)分布式数据库系统 分布式数据库系统是数据库技术与计算机网络技术相结合的产物 。 (3)并行数据库系统 并行数据库系统就是在并行计算机上运行的具有并行处理能力的数据库系统,它是数据库技术与并行计算机技术相结合的产物 。 94
1.5 数据库技术的研究领域及其发展 (4)多媒体数据库系统 多媒体数据库系统是数据库技术与多媒体技术相结合的产物。 (5)主动数据库系统 主动数据库系统是数据库技术与人工智能技术相结合的产物。 (6)模糊数据库系统 模糊数据库系统是数据库技术与模糊技术相结合的产物。 95
1.5 数据库技术的研究领域及其发展 3、数据库技术的新应用 数据库技术在不同领域中的应用,也导致了一些新型数据库系统的出现,这些应用领域往往无法直接使用传统数据库系统来管理和处理其中的数据对象。 (1)数据仓库系统 (2)工程数据库系统 96
1.6 小结 本章概述了数据库的基本概念,介绍了数据管理技术发展的三个阶段及各自的优缺点,说明了数据库系统的优点。 1.6 小结 本章概述了数据库的基本概念,介绍了数据管理技术发展的三个阶段及各自的优缺点,说明了数据库系统的优点。 数据模型是数据库系统的核心和基础。本章介绍了组成数据模型的三要素及其内涵、概念模型和三种主要的数据库模型。 概念模型也称信息模型,用于信息世界的建模,E-R模型是这类模型的典型代表,E-R方法简单、清晰,应用十分广泛。数据模型包括非关系模型(层次模型和网状模型)和关系模型。本章简要地讲解了层次模型、网状模型和关系模型,而关系模型将在后续章节中作更详细的介绍。 97
1.6 小结 数据库系统的结构包括三级模式和两层映象。数据库系统三级模式和两层映象的系统结构保证了数据库系统中能够具有较高的逻辑独立性和物理独立性。数据库系统不仅是一个计算机系统,而且是一个人-机系统,人的作用特别是DBA的作用最为重要。 98