《关系数据库 》PPT课件.ppt
《《关系数据库 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《关系数据库 》PPT课件.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2006年4月12日1安财信工学院计算机系第二章 关系数据库关系模型概述关系模型概述关系数据结构及形式化定义关系数据结构及形式化定义关系的完整性关系的完整性关系代数关系代数 安财信工学院计算机系关系模型概述关系模型概述关系模型的组成关系模型的组成关系数据结构关系数据结构关系操作集合关系操作集合关系完整性约束关系完整性约束一、单一的数据结构一、单一的数据结构-关系关系关系模型中实体及实体间的联系都用关系表示关系模型中实体及实体间的联系都用关系表示关系就是一张二维表。关系就是一张二维表。2006年4月12日2安财信工学院计算机系关系操作关系操作关系模型中常用的关系操作包括:关系模型中常用的关系操作
2、包括:选择、投影、连接、除、并、交、差等选择、投影、连接、除、并、交、差等增加、删除、修改增加、删除、修改关系操作的关系操作的特点特点集合操作方式集合操作方式即操作的对象和结果都是集合。一次一集合方式。即操作的对象和结果都是集合。一次一集合方式。非关系数据模型的数据操作方式非关系数据模型的数据操作方式为一次一记录的方式。为一次一记录的方式。2006年4月12日3安财信工学院计算机系关系数据语言分类关系数据语言分类早期的关系操作能力早期的关系操作能力用代数方式表示,称为关系代数用代数方式表示,称为关系代数用逻辑方式表示,称为关系演算用逻辑方式表示,称为关系演算关系演算又可按谓词变元的基本对象是元
3、组变量还是域关系演算又可按谓词变元的基本对象是元组变量还是域变量分为变量分为元组关系演算元组关系演算域关系演算。域关系演算。这三种语言在表达能力上是完全等价的。这三种语言在表达能力上是完全等价的。另外还有一种介于关系代数和关系演算之间的语言另外还有一种介于关系代数和关系演算之间的语言SQL(Structurel Query Language)。)。SQL不仅具有丰富的查询功能,而且具有数据定义和数据不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、控制功能,是集查询、DDL、DML和和DCL于一体的关系数于一体的关系数据语言。据语言。它充分体现了关系数据语言的特点和优点,是关系
4、数据库的它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。标准语言。2006年4月12日4安财信工学院计算机系关系数据语言分类:关系数据语言分类:关系数据关系数据语言语言 关系代数语言关系代数语言 例如例如 ISBLISBL 关系演算语言关系演算语言 元组关系演算语言元组关系演算语言 例如例如APLHA,QUEL 具有关系代数和关系演算双重特点的语言例如具有关系代数和关系演算双重特点的语言例如 SQL域关系演算语言域关系演算语言 例如例如QBE 2006年4月12日5安财信工学院计算机系三、关系的三类完整性约束三、关系的三类完整性约束关系模型允许定义三类完整性约束:关系模型允许定义
5、三类完整性约束:实体完整性实体完整性关关系系模模型型必必须须满满足足的的完完整整性性约约束束条条件件,由由关关系系系系统统自动支持自动支持参照完整性参照完整性关关系系模模型型必必须须满满足足的的完完整整性性约约束束条条件件,由由关关系系系系统统自动支持自动支持用户定义的完整性。用户定义的完整性。应用领域需要遵循的约束条件,体现了具体领域中应用领域需要遵循的约束条件,体现了具体领域中的语义约束。的语义约束。2006年4月12日6安财信工学院计算机系关系数据结构及形式化定义关系数据结构及形式化定义域:域:定义定义2.1 域是一组具有相同数据类型的值的集合。域是一组具有相同数据类型的值的集合。如整数
6、的集合、字符串的集合、全体学生的集合。如整数的集合、字符串的集合、全体学生的集合。笛卡儿积笛卡儿积定义定义2.2:给定一组域:给定一组域D1,D2,Dn,这些域中可以有相同的。这些域中可以有相同的。D1,D2,Dn的笛卡儿积为的笛卡儿积为D1D2Dn=(d1,d2,dn)|diDi,i=1,n其中每一个元素其中每一个元素(d1,d2,dn)叫做一个叫做一个n元组元组(n-tuple),),或简或简称元组。称元组。元组中的每一个值元组中的每一个值di叫做一个分量叫做一个分量(component)。若若Di(i=1,2,n)为有限集,其基数为为有限集,其基数为mi(i=1,2,n),),则则D1D
7、2Dn的基数的基数M为:为:mi的积,即的积,即 2006年4月12日7安财信工学院计算机系笛卡儿积的运算过程例子笛卡儿积的运算过程例子笛笛卡卡尔尔积积可可表表示示为为一一个个二二维维表表。表表中中的的每每行行对对应应一一个个元元组组,表表中中的的每每列列对对应应一一个个域域。例如给出三个域:例如给出三个域:D1一导师集合一导师集合SUPERVISOR一张清玫,刘逸一张清玫,刘逸D2一一专专业业集集合合SPECIALITY一一计计算算机机专专业业,信信息息专专业业D3一研究生集合一研究生集合POSTGRADUATE一李勇,刘晨,一李勇,刘晨,王敏王敏则则D1D2D3的笛卡尔积为:的笛卡尔积为:
8、D1D2D3(张清政,计算机专业,李勇)张清政,计算机专业,李勇),(张清政,计算机专业,刘晨),(张清政,计算机专业,刘晨),(张清政,计算机专业,王敏),(张清政,计算机专业,王敏),(张清政,信息专业,李勇),(张清政,信息专业,李勇),(张清政,信息专业,刘晨),(张清政,信息专业,刘晨),(张清政,信息专业,王敏),(张清政,信息专业,王敏),(刘逸,计算机专业,李勇),刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),刘逸,信息专业,李勇),(刘逸,信息专业,刘晨刘逸,信息
9、专业,刘晨),(刘逸,信息专业,王敏)刘逸,信息专业,王敏)其中(张清玫,计算机专业,李勇)其中(张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)张清玫,计算机专业,刘晨)等都是等都是元组元组。张清玫、计算机专业、李勇、张清玫、计算机专业、李勇、刘晨等都是刘晨等都是分量分量。该笛卡尔积的基数为该笛卡尔积的基数为2X2X312,也就是说,也就是说,D1D2D3一共有一共有2X2X312个元组。这个元组。这12个元个元组可列成一张二维表(如表组可列成一张二维表(如表2.1)。)。2006年4月12日8安财信工学院计算机系关系数据结构及形式化定义关系数据结构及形式化定义关系关系定义定义2.3
10、:D1D2Dn的子集叫做在域的子集叫做在域D1,D2,Dn上上的关系,表示为:的关系,表示为:R(D1,D2,Dn)说明:说明:D1D2Dn表示的是域上所有可能的组合,在现实生活中很表示的是域上所有可能的组合,在现实生活中很多元组是无意义的数据,而一个关系肯定包含在多元组是无意义的数据,而一个关系肯定包含在D1D2Dn之中,因此在数学上把关系定义为之中,因此在数学上把关系定义为D1D2Dn的子集。的子集。这里这里R表示关系的名字,表示关系的名字,n是关系的目和度。是关系的目和度。关系中的每个元素是关系中的元组,通常用关系中的每个元素是关系中的元组,通常用t表示。表示。当当n1时,称该关系为单元
11、关系。时,称该关系为单元关系。当当n2时,称该关系为二元关系。时,称该关系为二元关系。关系是笛卡儿积的有限子集,关系是笛卡儿积的有限子集,关系关系 二维表、表的每行二维表、表的每行元组、表的每列元组、表的每列域。域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。属性。N目关系必有目关系必有n个属性个属性2006年4月12日9安财信工学院计算机系关系数据结构及形式化定义关系数据结构及形式化定义候选码候选码若关系中的某一属性组的值能唯一地标识一个元组,若关系中的某一属性组的值能唯一地标识一个元组,则称该数据组为候选码。则称该数
12、据组为候选码。主码主码若一个关系有多个候选码,则选定其中一个为主码。若一个关系有多个候选码,则选定其中一个为主码。主属性主属性主码的诸属性称为主属性。主码的诸属性称为主属性。非码属性非码属性不包含在任何候选码中的属性称为非码属性。不包含在任何候选码中的属性称为非码属性。全码全码关系模式的所有数据组是这个关系模式的候选码,称关系模式的所有数据组是这个关系模式的候选码,称为。为。2006年4月12日10安财信工学院计算机系关系数据结构及形式化定义关系数据结构及形式化定义关系可以有三种类型关系可以有三种类型基本关系基本关系基本表是实际存在的表,它是实际存储数据的逻辑基本表是实际存在的表,它是实际存储
13、数据的逻辑表示。表示。查询表查询表查询表是查询结果对应的表。查询表是查询结果对应的表。视图表视图表。视图表是由基本表或其他视图表导出的表,是虚表,视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。不对应实际存储的数据。2006年4月12日11安财信工学院计算机系关系数据结构及形式化定义关系数据结构及形式化定义对关系数据模型的数据结构对关系数据模型的数据结构“关系关系”的限定和扩充:的限定和扩充:无限关系在数据库系统中时无意义的。因此,限定无限关系在数据库系统中时无意义的。因此,限定关系数据模型中的关系必须是有限集合。关系数据模型中的关系必须是有限集合。通过为关系的每个列附加一
14、个属性名的方法取消关通过为关系的每个列附加一个属性名的方法取消关系元组的有序性。系元组的有序性。例例如如,可可以以在在表表2 2l l的的笛笛卡卡尔尔积积中中取取出出一一个个子子集集来构来构造一造一个关个关系。系。由由于于研研究究生生只只师师从从于于一一个个导导师师,学学习习某某一一个个专专业业,所所以以笛笛卡卡尔尔积积中中的的许许多多元元组组是是无无实实际际意意义义的的,从从中中取取出出有有实实际际意意义义的的元元组组来构来构造造关关系。系。该该关关系的名字系的名字为为SAPSAP,属属性名就取域名,即性名就取域名,即SUPERVISORSUPERVISOR,SPECIALITYSPECIA
15、LITY和和 POSTGRADUATEPOSTGRADUATE。2006年4月12日12安财信工学院计算机系关系数据结构及形式化定义关系数据结构及形式化定义则这个关系可以表示为:则这个关系可以表示为:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假设假设导师与专业是一对一的,即一个导师只有一个专业;导师与专业是一对一的,即一个导师只有一个专业;导导师师与与研研究究生生是是一一对对多多的的,即即一一个个导导师师可可以以带带多多名名研研究生,究生,而一名研究生只有一个导师。而一名研究生只有一个导师。这样这样SAP关系可以包含三个元组,关系可以包含三个元组,参看参看P
16、AGE49表表2.2 SAP关系关系2006年4月12日13安财信工学院计算机系基本关系具有以下六条性质:基本关系具有以下六条性质:1.列是同质的,即每一列中的分量是同一类型的数据,列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。来自同一个域。2.不同的列可以出自同一个域,称其中的每一列为一个不同的列可以出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。属性,不同的属性要给予不同的属性名。3.列的顺序无所谓,即列的次序可以任意交换。列的顺序无所谓,即列的次序可以任意交换。4.任意两个元组不能完全相同。任意两个元组不能完全相同。5.行的顺序无所谓,即行的次序可以任
17、意交换。行的顺序无所谓,即行的次序可以任意交换。6.分量必须取原子值,即每一个分量都必须是不可分的分量必须取原子值,即每一个分量都必须是不可分的数据项。数据项。注意:注意:在许多实际关系数据库产品中,基本表并不完全具有这六条性质,在许多实际关系数据库产品中,基本表并不完全具有这六条性质,例如,例如,有的数据库产品能(如有的数据库产品能(如FoxPro)仍然区分了属性顺序和元组的顺序;仍然区分了属性顺序和元组的顺序;许多关系数据库产品中,例如许多关系数据库产品中,例如Oracle,FoxPro等,它们都允许关等,它们都允许关系表中存在两个完全相同的元组。系表中存在两个完全相同的元组。2006年4
18、月12日14安财信工学院计算机系关系模式关系模式定义定义2.4关系的描述称为关系模式。它可以形式化地表关系的描述称为关系模式。它可以形式化地表示为:示为:R(U,D,dom,F),其中其中R为关系名,为关系名,U为组成该关系的属性名集合,为组成该关系的属性名集合,D为属性组为属性组U中中属性所来自的域,属性所来自的域,dom为属性向域的映象集合,为属性向域的映象集合,F为属性间数据的依赖关系集合。为属性间数据的依赖关系集合。关系模式通常可以简记为:关系模式通常可以简记为:R(U)或或R(A1,A2,An)其中其中R为关系名,为关系名,A1,A2,An为属性名。而为属性名。而域名及属性向域的映象
19、常常直接说明为属性的域名及属性向域的映象常常直接说明为属性的类型、长度。类型、长度。2006年4月12日15安财信工学院计算机系关系数据库中的关系数据库中的型和值型和值的概念的概念在在关关系系模模型型中中,实实体体以以及及实实体体间间的的联联系系也也是是用用关关系来表示的。系来表示的。例如导师实体、研究生实体、导师与研究生之间的一例如导师实体、研究生实体、导师与研究生之间的一对多联系都可以分别用一个关系来表示。对多联系都可以分别用一个关系来表示。在一个给定的应用领域中,所有实体及实体之间联系在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。的关系的集合构成一个关系数
20、据库。型和值型和值关系数据库也有型和值之分。关系数据库也有型和值之分。关系数据库的型关系数据库的型也也称称为为关关系系数数据据库库模模式式,是是对对关关系系数数据据库库的的描描述述,它它包包括括若若干干域的定义以及在这些域上定义的若干关系模式。域的定义以及在这些域上定义的若干关系模式。关系数据库的值关系数据库的值是是这这些些关关系系模模式式在在某某一一时时刻刻对对应应的的关关系系的的集集合合,通通常常就就称称为为关关系数据库。系数据库。2006年4月12日16安财信工学院计算机系关系的完整性关系的完整性关系模型的完整性规则关系模型的完整性规则是对关系的某种约束条件。是对关系的某种约束条件。关系
21、模型中可以有三类完整性约束:关系模型中可以有三类完整性约束:实体完整性、实体完整性、参照完整性参照完整性用户定义的完整性。用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为是足的完整性约束条件,被称为是关系的两个不变关系的两个不变性性,应该由关系系统自动支持。,应该由关系系统自动支持。2006年4月12日17安财信工学院计算机系实体完整性实体完整性规则规则2.1 实体完整性规则:若属性实体完整性规则:若属性A是基本关系是基本关系R的主属性,则属性的主属性,则属性A不能取空值。不能取空值。实体完整性规则规定基本关系的所
22、有主属性都不能取实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。空值,而不仅是主码整体不能取空值。例如例如 学生选课关系学生选课关系 选修(学号,课程号,成绩)中,选修(学号,课程号,成绩)中,“学号、课程号学号、课程号”为主码,则为主码,则“学号学号”和和“课程号课程号”都不能取空值,而都不能取空值,而不是整体不为空。不是整体不为空。2006年4月12日18安财信工学院计算机系实体完整性规则说明如下:实体完整性规则说明如下:实体完整性规则是针对基本关系而言的。一个实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。基本表通常对应现实世界
23、的一个实体集。现实世界中的实体是可区分的,即它们具有某现实世界中的实体是可区分的,即它们具有某种唯一性标识。种唯一性标识。相应地,关系模型中以主码作为唯一标识。相应地,关系模型中以主码作为唯一标识。主码中的属性即主属性不能取空值。所谓空值主码中的属性即主属性不能取空值。所谓空值就是就是“不知道不知道”或或“不确定不确定”的值。的值。实体完整性的引申:主码也不能取重复值。实体完整性的引申:主码也不能取重复值。2006年4月12日19安财信工学院计算机系参照完整性参照完整性为什么需要参照完整性?为什么需要参照完整性?现实世界中的实体之间往往存在某种联系,在关系模型中实体及现实世界中的实体之间往往存
24、在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系域关实体间的联系都是用关系来描述的。这样就自然存在着关系域关系之间的引用。引用的时候,必须取基本表中已经存在的值。由系之间的引用。引用的时候,必须取基本表中已经存在的值。由此引出参照的引用规则。此引出参照的引用规则。参照完整性规则就是定义外码与主码之间的引用规则。参照完整性规则就是定义外码与主码之间的引用规则。实例:实例:学学生生实实体体和和专专业业实实体体可可以以用用下下面面的的关关系系表表示示,其其中中主主码码用用下下划划线线标识:标识:学生(学生(学号学号,姓名,性别,姓名,性别,专业号专业号,年龄),年龄
25、)专业(专业(专业号专业号,专业名),专业名)说说明明:这这两两个个关关系系之之间间存存在在着着属属性性的的引引用用,即即学学生生关关系系引引用用了了专专业业关关系系的的主主码码专专业业号号。显显然然,学学生生关关系系中中的的“专专业业号号”值值必必须须是是确确实实存存在在的的专专业业的的专专业业号号,即即专专业业关关系系中中有有该该专专业业的的记记录录。这这也也就就是是说说,学学生生关关系系中中的的某某个个属属性性的的取取值值需需要要参参照照专专业业关关系系的的属属性性取取值值。2006年4月12日20安财信工学院计算机系参照完整性例参照完整性例2学学生生、课课程程、学学生生与与课课程程之之
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系数据库 关系数据库 PPT课件 关系 数据库 PPT 课件
限制150内