本讲主要内容
? 数据库的概念
? 数据库管理系统 ( 数据库管理系统的组成,
数据库管理系统的功能 )
? 数据库系统
? 数据模型 ( 数据模型的要素, 数据模型的种
类 )
? 概念模型 (信息世界中的基本概念, 实体型
之间的联系, 概念模型的表示方法, E-R图 )
? 数据库系统的三级模式结构 (模式, 外模式,
内模式 )
? 数据库的二级映象功能与数据独立性 (外模
式/模式映象, 模式/内模式映象 )
第七章


库 (




数据库的概念 (第 7章第 1讲)
数据库( Database,DB),顾名思义就是存放数据的
仓库,只不过这个仓库是计算机存储设备。
数据库是 相互关联 的 数据集合。
数据是现实世界中 实体属性的值,在整个数据世界中,
有些数据是有逻辑关系的,它们组合在一起才能完整地反
映人们所关心的现实世界的某一部分,才能为人们服务。
数据库必须具有如下 特征,
① 数据库是具有 逻辑关系 和 确定意义 的 数据集合。
② 数据库是针对 明确的应用目标 而设计、建立和使用的。
③ 一个数据库表示了现实世界的某些方面 (称为小世界 )。
一个数据库所表示的小世界的 改变 必须 及时地反映 到该 数
据库 中来。
数据库管理系统 (第 7章第 1讲)
数据库管理系统 (Database Management System,
DBMS)是一个 通用的软件系统 。它由一组计算机程序 (叫
做 内核程序,以区别于在其上开发的应用程序 )构成,位于
操作系统和应用程序 (或用户 )之间,每个程序都负责完成
一部分数据库管理工作,通过这一组程序相互之间的协调
工作,共同完成对数据库的全部管理工作,如存储管理、
安全性管理、完整性管理、查询优化、数据操作等。
用户对数据库的所有操作都通过数据库管理系统来实
现,并且一般来说,数据库管理系统都要为用户提供一个
交互性良好的软件工具,使用户能方便快速地建立、维护、
检索、存取和处理数据库中的信息。
数据库管理系统的组成 (第 7章第 1讲)
数据库管理系统由四部分组成,具体如下,
数据库管理系统一般都提供 数据定义语言 (Data Definition Language,
DDL)供用户定义数据库的模式、存储模式、外模式、各级模式间的映射、
有关的约束条件等。用 DDL定义的外模式、模式和存储模式分别称为 源外模
式, 源模式 和 源存储模式 。各种 模式翻译程序 负责将它们翻译成相应的内
部表示,即生成 目标外模式, 目标模式 和 目标存储模式,这些目标模式描
述的是数据库的 框架,而不是数据本身,这些描述存放在数据字典 (也称系
统目录 )中,作为 DBMS存取和管理数据的基本依据,例如,根据这些定义,
数据库管理系统可以从物理记录导出全局逻辑记录,又从全局逻辑记录导
出用户所要检索的记录。
① 数据定义语言 及其翻译处理程序
② 数据操纵语言 及其编译 (或解释 )程序
③ 数据库 运行控制程序
④ 实用程序
DBMS提供了 数据操纵语言 (Data Manipulation Language,DM )实现对
数据库的检索、插入、修改、删除等基本操作。 DML分为 宿主型 DML和 自主
型 DML两类。宿主型 DML本身不能独立使用,必须嵌入主语言中,例如,嵌
入 C,COBOL,FORTRAN等高级语言中。自主型 DML又称为自含型 DML,它们是
交互式命令语言,语法简单,可以独立使用。
提供了一些 系统运行控制程序 负责数据库 运行过程中的控制与管
理,包括系统初启程序、文件读写与维护程序、存取路径管理程序、缓冲
区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管
理程序、运行日志管理程序等,它们在数据库运行过程中监视着对数据库
的所有操作,控制管理数据库资源,处理多用户的并发操作等。
通常还提供一些 实用程序,包括数据初始装入程序、数据转储程
序、数据库恢复程序、性能监测程序、数据库再组织程序、数据转换程序、
通信程序等,数据库用户可以利用 这些实用程序完成数据库的建立与维护,
以及数据格式的转换与通信。
一个设计优良的 DBMS,应该具有 友好的用户界面、比较完备的功能、
较高的运行效率、清晰的系统结构和开放性。 所谓 开放性 是指数据库设计
人员能够根据自己的特殊需要,方便地在一个 DBMS中加入一些新的工具模
块,这些外来的工具模块可以与该 DBMS紧密结合,一起运行。现在人们越
来越重视 DBMS的开放性,因为 DBMS的开放性为建立以它为核心的软件开发
环境或规模较大的应用系统提供了极大的方便,也使 DBMS本身具有更强的
适应性、灵活性、可扩充性。
数据库管理系统的功能 (第 7章第 1讲)
数据库管理系统的主要 功能 包括以下六个方面。
① 数据定义 数据定义包括定义构成 数据库结构的模式, 存储模式 和 外模式,定
义各个外模式与模式之间的 映射,定义模式与存储模式之间的映射,定义有
关的 约束条件 。
② 数据操作 数据操作包括对数据库数据的 检索、插入、修改和删除 等基本操作。
③ 数据库运行管理 数据库运行管理是数据库管理系统的核心部分,包括对数据
库进行 并发控制、安全性检查、完整性约束条件的检查和执行、数据库的内
部维护 (如索引、数据字典的自动维护 )等。
④ 数据组织、存储和管理 数据库中需要存放多种数据,如数据字典、用户数据、
存取路径等,数据库管理系统负责分门别类地组织、存储和管理这些数据,
确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的
联系,以便提高存储空间利用率以及提高数据操作的效率。
⑤ 数据库的建立和维护 建立 数据库包括数据库初始数据的输入与数据转换等,
维护 数据库包括数据库的转储与恢复、数据库的重组织与重构造、性能的监
视与分析等。
⑥ 数据通信接口 提供与其它软件系统进行通信的功能。例如,提供与其它数据
库管理系统或文件系统的接口,从而能够将数据转换为另一个 DBMS或文件
系统能够接受的格式,或者接收其它 DBMS或文件系统的数据。
数据库系统 (第 7章第 1讲)
对于 数据库系统 (Database System, DBS)这个概念,存在着两种
不同的理解。一种是 狭义 的数据库系统,它是由数据库和数据库管理
系统加在一起构成的。另一种是 广义 的数据库系统,它是由数据库、
数据库管理系统、数据库管理员、应用程序和用户构成的如图所示。
从图中可以看出,数据库
管理系统是数据库系统的核心,
无论是普通用户通过应用程序
发出的数据库操作,还是数据
库管理员直接对数据库进行的
操作,都不能直接访问数据库,
必须通过数据库管理系统或操
作系统才能访问存储在物理介
质上的数据库。
数据模型 (第 7章第 1讲)
模型 是现实世界特征的模拟和抽象,数据模
型 (Data Model)是计算机世界对现实世界进行 抽象,
表示 和 处理 的工具,是数据库的基础。
(1) 数据模型的要素
(2) 数据模型的种类
数据模型的要素 (第 7章第 1讲)
从数据模型的 作用 来看,它应该能够 真实地模拟 现实
世界,易于理解和实现,能够反映出所关心的现实世界的
静态特征, 动态特征 和 语义约束 。因此数据模型通常都是
由数据结构、数据操作和完整性约束三个要素组成。
① 数据结构 ③ 完整性约束 ② 数据操作
数据结构用于描述系统的 静态特性 。
数据结构是刻画一个数据模型 性质 最重要的方面,它关
系到数据库系统采用什么样的 底层数据结构 来表达现实世界。
因此在数据库系统中,人们通常按照其 数据结构的类型 来命
名数据模型。例如,层次结构、网状结构和关系结构的数据
模型分别命名为 层次模型, 网状模型 和 关系模型 。
数据操作用于描述系统的 动态特性 。
数据操作 是指数据库中 在数据结构之上的允许执行的操
作的集合,包括操作及有关的操作规则。数据模型必须定义
这些操作的 确切含义, 操作符号, 操作规则 (如优先级 )以及
实现操作的语言 。
数据的完整性约束 是一组 完整性规则 的 集合 。完整性规
则是给定的数据模型中 数据及其联系 所具有的 制约 和 储存规
则,用以限定符合数据模型的 数据库状态 以及 状态的变化,
以保证数据的 正确、有效和相容 。
数据模型应该 反映 和 规定 本数据模型必须 遵守 的基本的
通用的 完整性约束条件,例如,在关系模型中,任何关系必
须满足实体完整性和参照完整性两个条件。
此外,数据模型还应该 提供 定义完整性约束条件的机制,
以反映具体应用所涉及的数据必须遵守的特定的 语义约束条
件 。例如,学生单科成绩必须在 0到 100之间等。
数据模型的种类 (第 7章第 1讲)
? 数据库需要两种模型,逻辑模型 和 物理模型 。
? 数据的逻辑模型 独立于计算机系统,不涉及数据的表示、
物理实现,只需描述组织所关心的信息模型。 逻辑模型是
现实世界中从系统需求到信息世界的 高层抽象 。
? 用于创建逻辑模型的工具是 实体联系( E-R)图。
? 数据的 物理模型 是面向信息模型所采用的 具体数据结构,
是现实世界的 第二层抽象 。数据的物理模型有严格的 形式
化定义,它涉及到计算机系统和数据库管理系统。
? 物理数据结构有 层状、网状、关系模型及面向对象模型。
层状、网状模型是第一代数据库,目前使用较少。关系模
型是第二代数据库,是目前广泛使用的数据库。面向对象
模型是新一代数据库,正在发展中。
概念模型 (第 7章第 1讲)
为了把现实世界中的具体事物抽象、组织为某一数据
库管理系统支持的数据模型,人们常常首先将 现实世界 抽
象 为 信息世界,然后将 信息世界 转换为 机器世界 。也就是
说,首先把现实世界中的 客观对象 抽象为 某一种 信息结构,
这种信息结构 并不依赖于具体的计算机系统,不是某一个
DBMS支持的数据模型,而是 概念级的模型 ;然后再把概念
模型转换为计算机上某一数据库管理系统支持的数据模型。
概念模型又被称为逻辑模型或信息模型。
(1) 信息世界中的基本概念
(2) 概念模型的表示方法
信息世界中的基本概念 (第 7章第 1讲)
信息世界涉及的概念主要有,
① 实体( entity) 客观存在 并 可相互区别的事物 称为实体,实体可以是具
体的人、事、物,也可以是抽象的概念或联系。
② 属性 (attribute) 实体所具有的某一 特性 称为属性。一个实体可以由若干
个属性来刻画。
③ 键 (key) 唯一标识实体的属性集 称为键。
④ 域 (domain) 属性的 取值范围 称为该属性的域。
⑤ 实体型 (entity type) 具有相同属性的实体必然具有共同的特征和性质。
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型 。例如,
学生 (学号、姓名、性别、出生年月、籍贯、系、专业 )就是一个实体型。
⑥ 实体集 (entity set) 同型实体的集合称为实体集 。例如,全体学生就是一
个实体集。
⑦ 联系 (relationship) 在现实世界中,事物内部以及事物之间是有联系的,
这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体
内部的联系通常是指组成实体的各属性之间的联系。
实体型之间的联系 (第 7章第 1讲)
两个实体型之间的联系可以分为三类,
(1) 一对一联系 (1:1) (2) 一对多联系 (1:n) (3) 多对多联系 (m:n)
如果对于实体集 A中的每一个实体,实体集 B中至多有
(也可能没有 )一个实体与之联系,反之亦然,则称实体集
A与实体集 B具有一对一联系。记为 1,1。
例如,在学校里,一个班级只有一个正班长,
而一个班长只在一个班中任职,则班级与班长之间具有一
对一联系。
如果对于实体集 中的每一个实体,实体集 中有 n个
实体 (n≥0) 与之联系,反之,对于实体集 B中的每一个实
体,实体集 A中至多只有 (也可能没有 )一个实体与之联系,
则称实体集 A与实体集 B有一对多联系。记为 1,n。
例如,一个班级中有若干名学生,则班级与学生之间
具有一对多联系。
如果对于实体集 中的每一个实体,实体集 中有 个
与之联系,反之,对于实体集 中的每一个实
体,实体集 中也有 m个实体 (m≥0) 与之联系,则称实体集
A与实体集 B具有多对多联系。记为 m:n。
例如,一门课程同时有若干个学生选修,而一个学生
可以同时选修多门课程,则课程与学生之间具有多对多联
系。
?实际上,一对一联系是一对多联系的特例,而一对多联系又是多对
多联系的特例。
?实体型之间的这种一对一、一对多、多对多联系不仅存在于两个实
体型之间,也存在于两个以上的实体型之间。例如,对于课程、教
师与参考书三个实体型,如果一门课程可以有若干个教师讲授,使
用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只
供一门课程使用,则课程与教师、参考书之间的联系是一对多的。
?同一个实体型内的各实体之间也可以存在一对一、一对多、多对多
的联系。例如,学生实体集内部具有领导与被领导的联系,即某一
学生 (班干部 )“领导, 若干名学生,而一个学生仅被另外一个学生直
接领导,因此这是一对多的联系。
概念模型 是对信息世界建模,所以概念模型应该 能够方
便、准确地表示出上述信息世界中的常用概念 。概念模型的
表示方法很多,其中最为常用的是 P,P,S,Chen于 1976年
提出的 实体 -联系方法 (entity-relationship approach)。该方法
用 E-R图 来描述现实世界的概念模型。
E-R图提供了表示 实体型, 属性 和 联系 的方法。其中,
实体型,用 矩形 表示,矩形框内写明实体名。
属性,用 椭圆形 表示,并用无向边将其与相应的实体连接起
来。
联系,用 菱形 表示,菱形框内写明联系名,并用无向边分别
与有关实体连接起来,同时在无向边旁标上联系的类型 (1:1,
1:n,m:n)。
概念模型的表示方法 (第 7章第 1讲)
E-R图 (第 7章第 1讲)
描述实体型之间的联系的 E-R图
描述两个实
体型之间的
三类联系
3个实体型之
间的一对多
联系
一个实体型
内部的一对
多联系
表示实体型的属性的 E-R图 一个既描述实体型之间关系又表示出实体型
属性的 E-R图实例
实体 -联系方法 (E-R方法 )是抽象和描述现实
世界的有力工具。用 E-R图表示的概念模型
独立于具体的 DBMS所支持的数据模型,它是
各种数据模型的共同基础,因而比数据模型
更一般、更抽象、更接近现实世界。
数据库系统的三级模式结构 (第 7章第 1讲)
数据库系统的三级模式 结构是指数据库系统是由 外模
式, 模式 和 内模式 三级构成,如图所示。
模式 (schema)(第 7章第 1讲)
模式 也称 逻辑模式,是数据库中全体数据的 逻辑结构
和特征的描述,是所有用户的 公共数据视图,它是数据库
系统模式结构的 中间层,不涉及数据的物理存储细节和硬
件环境,与具体的应用程序,与所使用的应用开发工具及
高级程序设计语言无关。
实际上模式是数据库数据在 逻辑级上的视图 。一个数
据库只有一个模式,数据库模式以某一种数据模型为基础,
统一综合地考虑了所有用户的需求,并将这些需求有机地
结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑
结构,例如:数据记录由哪些数据项构成,数据项的名字、
类型、取值范围等,而且要定义与数据有关的安全性、完
整性要求,定义这些数据之间的联系。
外模式 (external schema)(第 7章第 1讲)
外模式 也称 子模式 或 用户模式,它 是数据库用户 (包括
应用程序员和最终用户 )看见和使用的局部数据的逻辑结构
和特征的描述,是数据库用户的数据视图,是与某一应用
有关的 数据的逻辑表示 。
外模式通常是 模式的子集 。一个数据库可以有多个外
模式。由于它是各个用户的数据视图,如果不同的用户在
应用需求、看待数据的方式、对数据保密的要求等方面存
在差异,则他们的外模式描述就是不同的。即使对模式中
同一数据,在外模式中的结构、类型、长度、保密级别等
都可以不同。另一方面,同一外模式也可以为某一用户的
多个应用系统所使用,但一个应用程序只能使用一个外模
式。
内模式 (internal schema)(第 7章第 1讲)
内模式也称 存储模式,它是 数据物理结构
和存储结构的描述,是数据在 数据库内部 的表
示方式。例如,记录的存储方式是顺序存储、
按照 B树结构存储还是按 hash方法存储;索引按
照什么方式组织;数据是否压缩存储,是否加
密;数据的存储记录结构有何规定等。一个数
据库只有一个内模式。
数据库的二级映象功能与数据独立性 (第 7章第 1讲)
数据库系统的 三级模式 是对数据的三 个抽象级
别,它 把数据的具体组织留给 DBMS管理,使用户
能逻辑地抽象地处理数据,而不必关心数据在计
算机中的具体表示方式与存储方式。而为了能够
在内部实现这三个抽象层次的联系和转换,数据
库系统在这三级模式之间提供了 两层映象, 外模
式/模式映象 和 模式/内模式映象 。
正是这两层映象保证了数据库系统中的数据能
够具有较高的 逻辑独立性 和 物理独立性 。
外模式/模式映象 (第 7章第 1讲)
模式 描述的是数据的 全局逻辑结构, 外模
式 描述的是数据的 局部逻辑结构,对应于同一
个模式可以有任意多个外模式。对于每一个外
模式,数据库系统都有一个 外模式/模式映象,
它 定义了该外模式与模式之间的对应关系。 这
些映象定义通常包含在各自外模式的描述中。
当模式改变 (例如,增加新的数据类型、新的数
据项、新的关系等 )时,由数据库管理员对各个
外模式/模式的映象作相应改变,可以使外模
式保持不变,从而应用程序不必修改,保证了
数据的逻辑独立性。
模式/内模式映象 (第 7章第 1讲)
数据库中只有一个模式,也只有一个 内模式,所以 模式/内模式
映象是唯一 的,它定义了 数据全局逻辑结构与存储结构之间的对应关
系 。例如,说明逻辑记录和字段在内部是如何表示的。该映象定义通
常包含在模式描述中。当数据库的存储结构改变了 (例如,采用了更先
进的存储结构 ),由数据库管理员对模式/内模式映象作相应改变,可
以使模式保持不变,从而保证了数据的物理独立性。
两种数据独立性的 本质是把数据定义从应用程序中分离出来。 应
用程序中的数据存取 (即两种映射工作 )由数据库管理系统完成,从而减
化了编制应用程序的工作量,减少了应用程序的维护和修改。值得注
意的是,实际数据库系统的逻辑数据独立性不能保证直接建立在数据
库概念模式上的应用程序与数据的独立。当数据库的概念模式改变时,
这些应用程序仍然需要修改。从这种意义上说,数据库系统提供的逻
辑数据独立性是不完备的。