第 5章 数据库基础知识
5.1 数据库概述
5.2 关系数据模型
5.3 数据库管理系统
5.1 数据库概述
5.1.1 数据库技术的发展
5.1.2 数据库系统的特点与组成
5.1.3 数据库系统的三级模式结构
5.1.4 数据模型返回
5.1.1 数据库技术的发展 1----
人工管理阶段
20世纪 50年代中期以前是人工管理阶段。
在这一阶段中,计算机系统外存只有磁带、
卡片、纸带等设备,没有磁盘等直接存取的存储设备;计算机软件方面,没有操作系统,没有管理数据的软件。所以,计算机主要用于科学计算,所以,这个阶段,
数据管理还停留在人工方式。
人工该阶段数据管理的特点
数据不保存
数据需要由应用程序自己进行管理
没有文件概念
数据不能共享
一组数据对应一个程序,数据是面向应用的。既使两个应用程序涉及某些相同的数据,也必须各自定义,无法互相利用,互相参照。程序与程序之间有大量冗余数据。
人工管理阶段数据与程序的关系
5.1.1 数据库技术的发展 2----
文件系统阶段
文件系统对人工管理阶段进行了极大地改进。在文件系统阶段,
数据可以长期保存;
系统能够通过程序反复对保存在外存储器上的数据进行查询、修改、插入和删除等操作;
软件开始对数据进行管理 ;
程序和数据之间有软件提供存取方法进行转换 ;
文件的逻辑结构与存储结构由系统进行转换,使程序与数据有了一定的独立性。
数据在存储上的改变不一定反映在程序上,从而极大地节省了维护程序的工作量。
文件系统程序与数据的关系文件系统中,文件是为某一特定应用服务的。
文件的逻辑结构对该应用程序来说是优化的。对一个文件通常至少需要 5个管理程序,
·建立文件结构程序;
·输入数据程序;
·删除数据程序;
·修改数据程序;
·显示数据程序;
文件系统的缺点
数据共享性差
数据冗余度大
容易造成数据的不一致性
文件系统数据和程序之间缺乏独立性
5.1.1 数据库技术的发展 3----
数据库系统阶段
数据管理技术使信息系统的研制从围绕加工数据的程序为中心转变到围绕共享的数据库来进行。
数据库系统阶段应用程序与数据之间的对应关系数据库的概念
数据库 是长期存储在计算机内有组织的大量的共享的数据集合。它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性,
由于多种程序并发地使用数据库,为了能有效地及时地处理数据,并提供安全性和完整性,必须有一个软件系统 --数据库管理系统
DBMS(DataBase Management System)在数据库建立、运用和维护时对数据库进行 统一控制,以保证数据的完整性、安全性,同时在多用户使用数据库时进行 并发控制,在发生故障后对系统进行恢复。
返回
5.1.2 数据库系统的特点
数据结构化
数据共享性高、冗余度小、易扩充
数据独立性高
统一的数据管理和控制
数据存储返回统一的数据管理和控制 1----
数据的安全性 (Security)保护
数据的安全性是指保护数据以防止不合法的使用所造成数据的泄密和破坏。使每个用户只能按规定,对某些数据以某些方式进行使用和处理。
例如,系统用检查口令或其他手段来检查用户身分,合格用户才能进入数据库系统。
统一的数据管理和控制 2----
数据的完整性
数据的完整性指数据的正确性、有效性和相容性。
例如,月份是 1~ 12之间的正整数;
研究生性别是男或女;
研究生年龄是大于 15小于 45的整数;
研究生学号是唯一的;
统一的数据管理和控制 3----
数据库恢复
计算机系统的硬件、软件故障、操作员的失误以及人为的攻击和破坏,会影响数据库中数据的正确性,甚至会造成数据库部分或全部数据的丢失。因此数据库管理系统必须能够进行应急处理,将数据库从错误状态恢复到某一已知的正确状态。
统一的数据管理和控制 4----
并发控制
当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果并使数据库完整性遭到破坏,因此必须对多用户的并发操作加以控制、协调。
5.1.2 数据库系统的组成数据库系统环境数据库系统对计算机资源有一定的要求,主要包括:
①具有足够容量的磁盘存储和随机存取设备,用于存放和备份数据库中的数据,并提供对数据随机存取的功能。
②具有一定容量的内存储器空间,以存放操作系统,DBMS核心模块、用户数据工作区和应用程序。
③具有较高的通道能力,便于数据的各种传输。
数据库软件系统
① 数据库管理系统 ( DataBase Management System 简称 DBMS)
这是数据库系统的核心软件,其主要 包括如下功能,
·数据定义功能,提供数据定义语言( DDL),用户通过 DDL 对数据库中的数据对象进行定义。
·数据操纵功能,提供数据操纵语言( DML),用户通过 DML 对数据库中的数据对象进行输入、查询、修改、删除等操作。
·数据库的运行管理,由 DBMS 统一管理数据库的建立、运行和维护。保证数据库的安全性和完整性,实现对数据库并发控制的管理和对数据库在出现故障后进行恢复的功能。
·数据库建立与维护功能,包括对数据库的初始化、数据载入、
功能转换、数据库的转储与恢复、数据库的监控和分析、数据库的重组等。
② 支持 DBMS 运行的操作系统。
③ 以 DBMS 为核心的应用开发工具。
人员
① 数据库管理员 ( DBA,DataBase Administrator)是数据库系统中数据库和软件系统的专职人员,他们的主要职责包括:
·决定数据库中存储信息的内容与结构。
·确定数据库的存储结构和存取策略。
·定义数据库的安全性规则和完整性约束条件。
·监督控制数据库的运行。
·对数据库的性能进行分析和改进。
·定期对数据库进行重新构造。
②用户。 主要有 4类。
·系统分析员,负责应用系统的设计与开发工作,确定系统的硬软件配置,参与数据库系统的总体设计。
·数据库设计人员,进行数据库各级模式的设计。当系统不十分庞大时,通常由数据库管理员兼任。
·应用程序员,负责应用程序的设计、编写、安装和调试。
·终端用户,数据库系统实际应用中的操作人员。 返回
5.1.3 数据库系统的三级模式结构
模式是对数据库全局逻辑结构的描述;
内模式是对数据库物理(存储)结构的描述;
外模式是对数据库用户视图的描述。
数据库三级模式的关系返回
5.1.4 数据模型
数据模型是现实世界数据特征的抽象,构造成一些相关的数据组织的集合。 任何一种数据模型都是严格定义的概念的集合。
这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。因此数据模型通常都是由 数据结构、数据操作和完整性约束 三个要素组成。
数据模型的基本内容现有的数据库系统都是基于某种数据模型的。
数据模型 是数据库系统的数学形式框架,是用来描述数据的一组概念和定义。
数据模型包括以下几方面的内容:
·数据的静态特征,它包括对数据结构和数据间联系的描述。
·数据的动态特征,一组定义在数据上的操作,包括操作的含义、操作符、运算规则及其语言等。
·数据的完整性约束,这是一组规则,数据库中的数据必须满足这组规则。
数据模型三要素 1----数据结构
数据结构是所研究的对象类型( object type)的集合,用于描述系统的静态特性。
数据结构中的对象是数据库的组成成分,它们包括两类,一类是与数据类型、内容、性质有关的对象,
例如,网状模型中的数据项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,例如网状模型中的系型( set type)。
数据结构是刻画一个数据模型性质最重要的方面。
因此在数据库系统中,通常按照其数据结构的类型来命名数据模型。
例如,层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。
数据模型三要素 2----数据操作
数据操作 是指对数据库中各种对象(型)
的实例(值)允许执行的操作的集合(包括操作及有关的操作规则),数据操作用于描述系统的动态特性。
数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。
数据模型三要素 3----数据的约束条件
数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
主要数据模型 1----层次数据模型主要数据模型 2----网状数据模型主要数据模型 3----关系数据模型关系模型与以往的模型不同,它是建立在严格的数据概念的基础上的。在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。
返回
5.2 关系数据模型
5.2.1 关系数据模型的特点
5.2.2 关系数据模型的定义和性质
5.2.3 关系数据的完整性约束返回
5.2.1 关系数据模型的特点 1----
数据结构
关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示,也就是说,关系
(二维表)不仅表示数据的存储,也能够表示数据之间的联系。在用户看来,关系模型中数据的逻辑结构是一张二维表。
5.2.1 关系数据模型的特点 2----
关系操作关系操作采用集合操作方式,即操作的对象和结构都是集合。关系模型给出了关系操作能力。
关系模型中常用的关系操作包括:
选择 (Select)、投影 (Project)、连接 (Join)、除
(Divide)、并 (Union)、交 (Intersction)、差
(Difference)等查询 (Query)操作
插入 (Insert)、删除 (Delete)、修改 (Update)操作等更新操作两部分。
其中查询是最基本的操作。
5.2.1 关系数据模型的特点 3----
关系的三类完整性约束
关系模型提供了丰富的完整性控制机制,
允许定义三类完整性约束,实体完整性、
参照完整性和用户定义的完整性 。
其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
返回
5.2.2 关系数据模型的定义和性质
在关系模型中,无论是实体还是实体之间的联系都是由单一的结构类型即关系 (表 )
来表示。
关系模型是建立在集合代数的基础上,以下讨论从集合论角度给出关系数据结构的形式化定义。
关系的形式化定义
域 (Domain)
定义,域是一组有相同数据类型的值的集合。
例如,自然数、整数、实数、长度小于 25字节的字符串集合,{0,1}、大于等于 0且小于 10的正整数等,都可以是域。
笛卡尔积定义,给定一组域 D1,D2,… Dn,这些域中可以有相同的。 D1,D2,…,Dn的笛卡尔积为:
D1 × D2 … × Dn={(d1,d2,… dn)|di∈ Di,i=1,2,… n}
其中:每一个元素 (d1,d2… dn)
叫作一个 n元组 (n-tuple)或简称元组 (Tuple)。
若,Di(i=1,2,…,n)为有限集,
其基数 (Cardinal number)为 mi(i=1,2,…,n),
则,D1× D2 × … × Dn的基数 M为:
笛卡尔积可表示为一个二维表。
表中每行对应一个元组,表中每列对应一个域。
例如给出三个域:
D 1=导师集合 ={李清,刘涛 }
D 2=专业集合 ={计算机专业,管理工程专业 }
D 3=研究生集合 ={李华,刘颖,杨敏 }
则D 1,D 2,D 3的笛卡尔积为:
D 1× D2 × D3 ={(李清,计算机专业,李华 ),(李清,计算机专业,刘颖 ),(李清,计算机专业,杨敏 ),(李清,信息专业,李华 ),(李清,信息专业,刘颖 ),(李清,信息专业,
杨敏 ),(刘涛,计算机专业,李华 ),(刘涛,计算机专业,
刘颖 ),(刘涛,计算机专业,杨敏 ),(刘涛,信息专业,李华 ),(刘涛,信息专业,刘颖 ),(刘涛,信息专业,杨敏 )
其中,(李清,计算机专业,李华 ),(李清,计算机专业,刘颖 )等都是元组。
李清、计算机专业、李华、刘颖等都是分量。
该笛卡尔积的基数为,2× 2 × 3 =12,也就是说,D 1× D
2 × D3一共有 2× 2 × 3 =12元组。
这 12个元组可列成一张二维表
关系 (Relation)
定义 5.3 给定一组域 D1,D2,… Dn,在这些域上笛卡尔积 D1× D2 × … × Dn上的一个子集,称为一个关系,
表示为 R(D1,D2,… Dn)
这里 R表示关系的名字,n是关系的目或度 (Degree)。
关系中的每个元素是关系中的元组,通常用 t表示。
当 n=1时,称该关系为单元(目)关系 (Unary relation)。
当 n=2时,称该关系为二元(目)关系 (Binary relation).
关系是笛尔积的有限子集,所以关系也是一个二维表,
表的每行对应一个元组,表的列对应一个域。
由于域可以相同,为了加以区分,必须对每列起一个名字,称为 属性 (Attribute)。 n目关系必有 n个属性。
候选码与主码
若关系中的某一属性(或属性组)的值能唯一地标识一个元组,则称该属性组为关系的 候选码 (Candidate key)。
若有一个关系有多个候选码,则选定其中一个为主码 (Primary Key)。包含在任何一个候选码中的属性称为 主属性 (Prime
attribute),不包含任何候选码中的属性称为 非码属性 (Non-key attribute)。
例如:关系,SAP(导师,专业,研究生 )
假设导师与专业是一对一的,即一个导师只有一个专业,导师与研究生是一对多,即一个导师可以带多名研究生,而一名研究生只有一个导师。这样
SAP关系可以包含三个元组,如表所示:
假设研究生不重名,则研究生属性的每一个值都唯一地标识了一个元组,因此可以作为 SAP关系的主码。
关系的三种类型
基本表 是实际存在的表,它是实际存储数据的逻辑表示
查询表 是查询结果对应的表
视图表 是则基本表或其他视图表导出的表,
是虚表,不对应实际存储的数据。
关系的性质
① 列是同质的 (Homogeneous),即每一列中的分量为同一类型的数据,来自同一个域。
②不同的列可出自同一个域,称其中的每列为一个属性,
不同的属性要给予不同的属性名。
③列的顺序无所谓,即列的次序可以任意交换。
由于列的顺序是无义关紧要的,列顺序不同在逻辑上是同一个集合。
④任意两个元组不能完全相同。
⑤行的顺序无所谓,即行的次序可以任意交换。
由于行的顺序是无义关紧要的,行顺序不同在逻辑上是同一个集合
⑥分量必须取原子值,即每一个分量都必须是不可分的数据库。
关系数据库
在一个给定的应用领域中,反映这个应用的所有关系的集合构成一个关系数据库。
要特别注意区分数据库与表的概念,相关的表的集合称为数据库。有时为了方便常常把每个表简称为数据库.
在观念上一定要注意两者的区别返回
5.2.3 关系数据的完整性约束1----
实体完整性实体完整性规则,若属性 A是基本关系 R的主属性,则属性 A不能取空值。
例如 在关系,SAP(导师,专业,研究生 )”中,
,研究生姓名,属性为主码 (假设研究生不会重名 ),则,研究生姓名,不能取空值。
实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。
例如 学生选课关系,选修 (学号,课程号,成绩 )”中,,学号、课程号,为主码,则,学号,
和,课程号,两个属性都不能取空值。
5.2.3 关系数据的完整性约束 2----
参照完整性
现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用
例 1,学生实体和专业实体可以用下面的关系表示,
其中主码用下划线标识:
学生 (学号,姓名,性别,专业号,年龄 )
专业 (专业号,专业名 )
这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码,专业号,。显然,学生关系中的,专业号,值必须是确实存在的专业号,即专业关系中有该专业的记录。这也就是说,
学生关系中的某个属性的取值需要参照专业关系的属性取值。
例 3,学生实体和运动队实体可以用下面的关系表示,其中主码用下划线标识:
学生 (学号,姓名,性别,专业号,运动队号 )
运动队 (运动队号,运动队名 )
在这组关系中,学生可以不参加运动队,这时属性,运动队号,可以取空值;
如果参加运动队就必须取关系,运动队,
已经存在的,运动队号,值。
定义,设 F是基本关系 R的一个或一组属性,
但不是关系 R的码。如果 F与基本关系 S的主码 Ks相对应,则称 F是基本关系 R的外码
(Foreign Key).并称基本关系 R为参照关系
(Referencing,Relation),基本关系 S为被参照关系 (Referenced Relation)或目标关系
(TargetRelation)。
关系 R和 S不一定是不同的关系。
在例 1中,学生关系的,专业号,属性与专业关系的主码,专业号,相对应,因此,专业号,属性是学生关系的外码。这里专业关系是被参照关系,
学生关系为参照关系。
在例 2中,选修关系的,学号,属性与学生关系的主码,学号,相对应,,课程号,属性与课程关系的主码,课程号,相对应,因此,学号,和
,课程号,的属性是修关系的外码。这里学生和课程关系均为被参照关系,选修关系为参照关系。
在例 3中,,运动队号,属性与运动队关系的主码
,运动队号,属性相对应。
参照完整性规则若属性 (或属性组 )F是基本关系 R的外码,
它与基本关系 S的主码 Ks的主码 Ks相对应
(基本关系 R和 S不一定是不同的关系 ),则对于 R中每个元组在 F上的值必须为:
·或者取空值 (F的每个属性值均为空值 );
·或者等于 S中某个元组的主码值。
对于例 1,学生关系中每个元组的,专业号,属性只能取下面两类值:
(1)空值,表示尚未给该学生分配专业;
(2)非空值,这时该值必须是专业关系中某个元组的
,专业号,值,表示该学生不可能分配配到一个不存在的专业中。即被参照关系,专业,中一定存在一个元组,
它的主码值等于该参照关系,学生,中的外码值。
对于例 2,,学号,和,课程号,属性也可以取两类值;
空值或目标关系中已经存在的值。但由于,学号,和
,课程号,是选修关系中的主属性,按照实体完整性规则,它们均不能取空值,所以选修关系中的,学号,和
,课程号,属性实际上只能取应被参照关系中已经存在的主码值。
对于例 3,,运动队号,属性值可以取两类值:
(1)空值,表示该学生未参加任何运动队;
(2)非空值,这时该值必须是运动队关系中某个元组的运动队号值。
例 2,学生、课程、学生与课程之间的多对多联系可以如下三个关系表示:
学生 (学号,姓名,姓别,专业号,年龄 )
课程 (课程号,课程名,学分 )
选修 (学号,课程号,成绩 )
这三个关系这间也存在着属性的引用,即选修关系引用了学生关系的主码,学号,和课程关系的主码,课程号,。同样,选修关系中的,学号,
值必须是确实存在的学生的学号,学生关系中有该学生的记录,选修关系中,课程号,值也必须是确实存在的课程的课程号。换句话说,选修关系中某些属性的取值需要参照其他关系的一取值。
5.2.3 关系数据的完整性约束 2----
用户定义的完整性
任何关系数据库系统都应该支持实体完整性和参照完整性。
例如 某个属性必须取唯一值、某些属性值之间应满足一定的函数关系、某个属性的取值范围在 0~ 200之间等。
返回
5,3 数据库管理系统
数据库管理系统( DBMS)是数据库系统的核心,
是为数据库的建立、使用和维护而配置的软件。
它建立在操作系统的基础上,是位于操作系统与用户之间的一层数据管理软件,负责对数据库进行统一的管理和控制;用户发出的或应用程序中的各种操作数据库中数据的命令,都要通过数据库管理系统来执行。数据库管理系统还承担着数据库的维护工作,能够按照数据库管理员所规定的要求,保证数据库的安全性和完整性。
5.3 数据库管理系统
5.3.1 数据库管理系统的功能
5.3.2 数据库管理系统的组成和结构
5.3.3 应用系统对数据库管理系统的要求与选择返回
5.3.1 数据库管理系统的功能
数据定义
数据操纵
数据库运行管理
数据组织、存储和管理
数据库的建立和维护
数据通信接口返回
5.3.2 数据库管理系统的组成
数据定义语言及其翻译处理程序
数据操纵语言及其编译(或解释)程序
数据库运行控制程序
实用程序
5.3.2 数据库管理系统的结构数据库管理系统的工作过程
① 应用程序 A向 DBMS发出从数据库中读数据记录的命令;
② DBMS对该命令进行语法检查、语义检查,并调用应用程序 A对应的外模式,检查 A的存取权限,决定是否执行该命令。如果拒绝执行,则向用户返回错误信息;
③在决定执行该命令后,DBMS调用模式,依据外模式/
模式映象的定义,确定应读入模式中的哪些记录;
④ DBMS调用物理模式,依据模式/内模式映象的定义,
决定应从哪个文件、用什么存取方式、读入哪个或哪些物理记录;
⑤ DBMS向操作系统发出执行读取所需物理记录的命令;
返回
5.3.3 应用系统对数据库管理系统的要求
·支持分布式系统操作。
·联机事务处理的能力。
·决策支持的能力。
·支持在网络环境下多用户高效联机处理
·支持多媒体、大容量、复杂数据处理的能力。
·兼容性和数据集成的能力。
·异构数据库之间的数据共享和互访的能力。
·对数据安全性、完整性的管理能力。
·联机分析处理的能力。
·从二维数据模型向多维数据模型转换的能力。
5.3.3 应用系统对数据库管理系统的选择在众多关系数据库的数据库管理系统产品中,由于以数据查询为基础的数据操纵功能在理论上已经比较完善,因此在这方面各个软件产品差别并不大,用户的选择主要在数据控制功能方面。
数据完整性
数据安全性的措施
数据库恢复机制
⑤ DBMS向操作系统发出执行读取所需物理记录的命令;
⑥操作系统执行读数据的有关操作;
⑦操作系统将数据从数据库的存储区送至系统缓冲区;
⑧ DBMS依据外模式/模式映象的定义,导出应用程序 A所要读取的记录格式;
⑨ DBMS将数据记录从系统缓冲区送到应用程序 A的用户工作区;
⑩ DBMS向应用程序 A返回命令执行情况的状态信息。 返回