华中科技大学数据库PPT课件第02章关系数据库

上传人:枫** 文档编号:587860351 上传时间:2024-09-06 格式:PPT 页数:68 大小:763KB
返回 下载 相关 举报
华中科技大学数据库PPT课件第02章关系数据库_第1页
第1页 / 共68页
华中科技大学数据库PPT课件第02章关系数据库_第2页
第2页 / 共68页
华中科技大学数据库PPT课件第02章关系数据库_第3页
第3页 / 共68页
华中科技大学数据库PPT课件第02章关系数据库_第4页
第4页 / 共68页
华中科技大学数据库PPT课件第02章关系数据库_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《华中科技大学数据库PPT课件第02章关系数据库》由会员分享,可在线阅读,更多相关《华中科技大学数据库PPT课件第02章关系数据库(68页珍藏版)》请在金锄头文库上搜索。

1、 2011 by1An Introduction to Database System2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 小结第第2章章 关系数据库关系数据库 2011 by2An Introduction to Database System2.1 关系模式概述关系模式概述IBM公司的公司的E.F.Codd于于70年代初提出关系数年代初提出关系数据理论,他因此获得据理论,他因此获得1981年的年的ACM图灵奖图灵奖1970年提出关系数据模型年提出关系数据模型E.F.Codd, “A Relational Model of Dat

2、a for Large Shared Data Banks”, Communication of the ACM,1970之后,提出了关系代数和关系演算的概念之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式年提出了关系的第一、第二、第三范式1974年提出了关系的年提出了关系的BC范式范式关系理论是建立在集合代数理论基础上的,关系理论是建立在集合代数理论基础上的,有着坚实的数学基础有着坚实的数学基础80年年代代后后,关关系系数数据据库库系系统统成成为为最最重重要要、最最流行的数据库系统流行的数据库系统 2011 by3An Introduction to Datab

3、ase System2.1 关系模式概述关系模式概述典型实验系统典型实验系统System R (由由IBM公司研制公司研制)University INGRES(由加州由加州Berkeley分校研制分校研制)典型商用系统典型商用系统ORACLESYBASEINFORMIXDB2Microsoft SQL ServerAccess,Foxpro,Foxbase 2011 by4An Introduction to Database System2.1 关系模式概述关系模式概述关系数据库系统关系数据库系统是支持关系模型的数据库系统是支持关系模型的数据库系统关系模型的组成关系模型的组成关系数据结构关系

4、数据结构关系操作集合关系操作集合关系完整性约束关系完整性约束 2011 by5An Introduction to Database System2.1 关系模式概述关系模式概述1. 关系数据结构关系数据结构单一的数据结构单一的数据结构-关系关系现现实实世世界界的的实实体体以以及及实实体体间间的的各各种种联联系系均均用用关关系来表示系来表示数据的逻辑结构数据的逻辑结构-二维表二维表从从用用户户角角度度,关关系系模模型型中中数数据据的的逻逻辑辑结结构构是是一一张二维表。张二维表。 2011 by6An Introduction to Database System2.1 关系模式概述关系模式概述

5、2. 关系操作集合关系操作集合1) 常用的关系操作常用的关系操作2) 关系操作的特点关系操作的特点3) 关系数据语言的种类关系数据语言的种类4) 关系数据语言的特点关系数据语言的特点 2011 by7An Introduction to Database System2.1 关系模式概述关系模式概述关系操作集合关系操作集合(续续)1) 常用的关系操作常用的关系操作查询查询选择选择(select)、投影、投影(project)、连接、连接(join)除除(divide)、并、并(union)、交、交(intersection)差差(difference)数据更新数据更新插入插入(insert)、

6、删除、删除(delete)、修改、修改(updated)查询的表达能力是其中最主要的部分查询的表达能力是其中最主要的部分 2011 by8An Introduction to Database System2.1 关系模式概述关系模式概述关系操作集合关系操作集合(续续)2) 关系操作的特点关系操作的特点集合操作方式,即操作的对象和结果都是集集合操作方式,即操作的对象和结果都是集合。合。(set at a time)非关系数据模型的数据操作方式:一次一记录非关系数据模型的数据操作方式:一次一记录 (record at a time)文件系统的数据操作方式文件系统的数据操作方式 2011 by9A

7、n Introduction to Database System2.1 关系模式概述关系模式概述关系操作集合关系操作集合(续续)3) 关系数据语言的种类关系数据语言的种类 关系代数语言 元组关系演算语言关系数据语言 关系演算语言 域关系演算语言 关系代数和关系演算结合的语言 2011 by10An Introduction to Database System2.1 关系模式概述关系模式概述关系操作集合关系操作集合(续续)关系数据语言的种类关系数据语言的种类(续续)关系代数语言关系代数语言 用对关系的运算来表达查询要求用对关系的运算来表达查询要求典型代表:典型代表:ISBL 2011 by1

8、1An Introduction to Database System2.1 关系模式概述关系模式概述关系操作集合关系操作集合(续续)关系数据语言的种类关系数据语言的种类(续续)关系演算语言:用谓词来表达查询要求关系演算语言:用谓词来表达查询要求元组关系演算语言元组关系演算语言谓词变元的基本对象是元组变量谓词变元的基本对象是元组变量典型代表:典型代表:APLHA, QUEL域关系演算语言域关系演算语言 谓词变元的基本对象是域变量谓词变元的基本对象是域变量典型代表:典型代表:QBE具有关系代数和关系演算双重特点的语言具有关系代数和关系演算双重特点的语言典型代表:典型代表:SQL 2011 by1

9、2An Introduction to Database System2.1 关系模式概述关系模式概述关系操作集合关系操作集合(续续)4) 关系数据语言的特点关系数据语言的特点关系语言是一种高度非过程化的语言关系语言是一种高度非过程化的语言存取路径的选择由存取路径的选择由DBMS的优化机制来完成的优化机制来完成用户不必用循环结构就可以完成数据操作用户不必用循环结构就可以完成数据操作能够嵌入高级语言中使用能够嵌入高级语言中使用关关系系代代数数、元元组组关关系系演演算算和和域域关关系系演演算算三三种种语语言在表达能力上完全等价言在表达能力上完全等价 2011 by13An Introduction

10、 to Database System2.1 关系模式概述关系模式概述3. 关系的三类完整性约束关系的三类完整性约束实体完整性实体完整性通常由关系系统自动支持通常由关系系统自动支持参照完整性参照完整性早期系统不支持,目前大型系统能自动支持早期系统不支持,目前大型系统能自动支持用户定义的完整性用户定义的完整性反反映映应应用用领领域域需需要要遵遵循循的的约约束束条条件件,体体现现了了具具体领域中的语义约束体领域中的语义约束用户定义后由系统支持用户定义后由系统支持 2011 by14An Introduction to Database System2.1 关系模型概述2.2 关系数据结构2.3 关

11、系的完整性2.4 关系代数2.5 关系演算2.6 小结第第2章章 关系数据库关系数据库 2011 by15An Introduction to Database System2.2 关系数据结构关系数据结构2.2.1 关系关系2.2.2 关系模式关系模式2.2.3 关系数据库关系数据库 2011 by16An Introduction to Database System2.2.1 关系关系2.2.1 关系关系1. 域(域(Domain)2. 笛卡尔积(笛卡尔积(Cartesian Product)3. 关系(关系(Relation) 2011 by17An Introduction to D

12、atabase System2.2.1 关系关系1. 域(域(Domain)域域是一组具有相同数据类型的值的集合。如:是一组具有相同数据类型的值的集合。如:整数整数实数实数介于某个取值范围的整数介于某个取值范围的整数长度指定长度的字符串集合长度指定长度的字符串集合男男,女女介于某个取值范围的日期介于某个取值范围的日期 2011 by18An Introduction to Database System2.2.1 关系关系2. 笛卡尔积(笛卡尔积(Cartesian Product)1 1)笛卡尔积)笛卡尔积给给定定一一组组域域D1,D2,Dn,这这些些域域中中可可以以有有相相同同的。的。D1

13、,D2,Dn的的笛卡尔积笛卡尔积为:为:D1D2Dn(d1,d2,dn)diDi,i1,2,n所有域的所有取值的一个组合所有域的所有取值的一个组合不能重复不能重复 2011 by19An Introduction to Database System2.2.1 关系关系笛卡尔积(续)笛卡尔积(续)例:设例:设 D1为姓名集合为姓名集合 = 刘德华,王菲刘德华,王菲 D2为性别集合为性别集合 = 男,女男,女 则则D1D2是个二元组集合,元组个数为是个二元组集合,元组个数为22,是所有可能,是所有可能的(姓名,性别)元组集合的(姓名,性别)元组集合姓名姓名性别性别刘德华刘德华男男刘德华刘德华女女

14、王菲王菲男男王菲王菲女女D1D2 = 2011 by20An Introduction to Database System2.2.1 关系关系笛卡尔积(续)笛卡尔积(续)2)元组(元组(Tuple)笛卡尔积中每一个元素(笛卡尔积中每一个元素(d1,d2,dn)叫作一)叫作一个个n元组元组(n-tuple)或简称)或简称元组元组。 3) 分量(分量(Component)笛卡尔积元素(笛卡尔积元素(d1,d2,dn)中的每一个值)中的每一个值di叫作一个叫作一个分量分量。 2011 by21An Introduction to Database System2.2.1 关系关系笛卡尔积(续)笛卡

15、尔积(续)4)基数()基数(Cardinal number)若若Di(i1,2,n)为为有有限限集集,其其基基数数为为mi(i1,2,n),则则D1D2Dn的的基基数数M为:为:在上例中,基数:在上例中,基数:224,即,即D1D2共有共有224个个元组元组 2011 by22An Introduction to Database System2.2.1 关系关系笛卡尔积(续)笛卡尔积(续)基数(续)基数(续)例:设例:设 D1为教师集合(为教师集合(T)= 赵,钱赵,钱 D2为学生集合(为学生集合(S)= s1,s2 ,s3 D3为课程集合(为课程集合(C)= 数据库,操作系统数据库,操作系

16、统 则则D1D2D3是个三元组集合,元组个数为是个三元组集合,元组个数为232,是所有,是所有可能的(教师,学生,课程)元组集合可能的(教师,学生,课程)元组集合在本例中,基数:在本例中,基数:23212,即,即D1D2D3共有共有23212个元组个元组你能列出全部你能列出全部12个元组吗?个元组吗? 2011 by23An Introduction to Database System2.2.1 关系关系笛卡尔积(续)笛卡尔积(续)5) 笛卡尔积的表示方法笛卡尔积的表示方法笛笛卡卡尔尔积积可可表表示示为为一一个个二二维维表表。表表中中的的每每行行对对应应一个元组,表中的每列对应一个域。一个元

17、组,表中的每列对应一个域。在上例中,在上例中,12个元组可列成一张二维表个元组可列成一张二维表 2011 by24An Introduction to Database System教师教师学生学生课程课程赵赵S1数据库数据库赵赵S1操作系统操作系统赵赵S2数据库数据库赵赵S2操作系统操作系统赵赵S3数据库数据库赵赵S3操作系统操作系统钱钱S1数据库数据库钱钱S1操作系统操作系统钱钱S2数据库数据库钱钱S2操作系统操作系统钱钱S3数据库数据库钱钱S3操作系统操作系统 2011 by25An Introduction to Database System2.2.1 关系关系3. 关系(关系(Re

18、lation)1)关系关系D1D2Dn的的子子集集叫叫作作在在域域D1,D2,Dn上上的的关系关系,表示为,表示为 R(D1,D2,Dn) R:关系名关系名 n:关系的关系的目目或或度度(Degree)关系是笛卡尔积中有意义的子集关系也可以表示为二维表 2011 by26An Introduction to Database System2.2.1 关系关系关系(续)关系(续)姓名姓名性别性别刘德华刘德华男男王菲王菲女女教师教师学生学生课程课程赵赵S1数据库数据库赵赵S2数据库数据库钱钱S1操作系统操作系统钱钱S3操作系统操作系统 2011 by27An Introduction to Dat

19、abase System2.2.1 关系关系关系(续)关系(续)2)元组元组关系中的每个元素是关系中的元组,通常用关系中的每个元素是关系中的元组,通常用t表示。表示。3) 单元关系与二元关系单元关系与二元关系当当n=1时,称该关系为时,称该关系为单元单元关系(关系(Unary relation)。)。当当n=2时,称该关系为时,称该关系为二元二元关系(关系(Binary relation)。)。 2011 by28An Introduction to Database System2.2.1 关系关系关系(续)关系(续)4) 关系的表示关系的表示 关关系系也也是是一一个个二二维维表表,表表的的

20、每每行行对对应应一一个个元元组组,表的每列对应一个域。表的每列对应一个域。5) 属性属性 关关系系中中不不同同列列可可以以对对应应相相同同的的域域,为为了了加加以以区区分分,必须对每列起一个名字,称为属性(必须对每列起一个名字,称为属性(Attribute)。)。n目关系必有目关系必有n个属性。个属性。 2011 by29An Introduction to Database System2.2.1 关系关系关系(续)关系(续)6)码码候选码(候选码(Candidate key) 若关系中的某一属性组的值能唯一地标识一个元若关系中的某一属性组的值能唯一地标识一个元组,组,且去掉这组属性中的任意

21、属性或属性组都不且去掉这组属性中的任意属性或属性组都不能唯一标识元组能唯一标识元组,则称该属性组为候选码。在最,则称该属性组为候选码。在最简单的情况下,候选码只包含一个属性。简单的情况下,候选码只包含一个属性。全码(全码(All-key) 在最极端的情况下,关系模式的所有属性组是这在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(个关系模式的候选码,称为全码(All-key) 2011 by30An Introduction to Database System2.2.1 关系关系关系(续)关系(续)码(续)码(续)主码主码(Primary Key)若一个关系有多个候选码

22、,则选定其中一个若一个关系有多个候选码,则选定其中一个为为主码主码(Primary key)主码的诸属性称为主码的诸属性称为主属性主属性(Prime attribute)。)。不包含在任何侯选码中的属性称为不包含在任何侯选码中的属性称为非码属性非码属性(Non-key attribute)外码外码(Foreign Key)关关系系R的的属属性性组组,跟跟与与R联联系系的的另另一一关关系系S中中的的码码相相对应,则称这个属性组为外码。对应,则称这个属性组为外码。 2011 by31An Introduction to Database System学号学号ID姓名姓名性别性别系别系别01011李

23、李男男CS01022李李男男CS02033赵赵女女MA系号系号系名系名CS计算机计算机EN英语英语MA数学系数学系课号课号课名课名CS145数据库数据库CS148操作系统操作系统CS180数据结构数据结构学号学号课号课号成绩成绩0101CS145880101CS148900102CS180870203CS14578候选码候选码候选码候选码主码主码外码外码主码主码主码主码 2011 by32An Introduction to Database System2.2.1 关系关系关系(续)关系(续)7) 三类关系三类关系基本关系基本关系(基本表或基表)(基本表或基表)实际存在的表,是实际存储数据的

24、逻辑表示实际存在的表,是实际存储数据的逻辑表示查询表查询表查询结果对应的表查询结果对应的表视图表视图表由基本表或其他视图表导出的表,是虚表,不对由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据应实际存储的数据 2011 by33An Introduction to Database System2.2.1 关系关系关系(续)关系(续)8) 关系的基本性质关系的基本性质 列是同质的(列是同质的(Homogeneous)每一列中的分量是同一类型的数据,来自同一个域每一列中的分量是同一类型的数据,来自同一个域 不同的列可出自同一个域不同的列可出自同一个域其其中中的的每每一一列列称称为为一一

25、个个属属性性, 不不同同的的属属性性要要给给予予不不同的属性名同的属性名 列的顺序无所谓列的顺序无所谓 列的次序可以任意交换列的次序可以任意交换 2011 by34An Introduction to Database System2.2.1 关系关系关系(续)关系(续)关系的基本性质关系的基本性质(性质性质) 任意两个元组不能完全相同任意两个元组不能完全相同由笛卡尔积的性质决定由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质。但许多关系数据库产品没有遵循这一性质。例如例如:Oracle,FoxPro等都允许关系表中存在两个完全相同等都允许关系表中存在两个完全相同的元组,除非用户特别定

26、义了相应的约束条件。的元组,除非用户特别定义了相应的约束条件。 2011 by35An Introduction to Database System2.2.1 关系关系关系(续)关系(续)关系的基本性质关系的基本性质(性质性质) 行的顺序无所谓行的顺序无所谓行的次序可以任意交换行的次序可以任意交换 分量必须取原子值分量必须取原子值 每一个分量都必须是不可分的数据项。每一个分量都必须是不可分的数据项。 这是规范条件中最基本的一条这是规范条件中最基本的一条 2011 by36An Introduction to Database System非规范化的关系:非规范化的关系:很容易转化为规范的关系

27、。很容易转化为规范的关系。(怎么转?怎么转?)2.2.1 关系关系 2011 by37An Introduction to Database System2.2.1 关系关系关系(续)关系(续)9) 数据结构数据结构 单一的结构:表单一的结构:表实体,联系均用表来表示实体,联系均用表来表示学生学生课程课程选修选修属于属于系系教师教师教授教授工作工作系系系系( (系代码系代码系代码系代码 , ,系名称系名称系名称系名称) )学生学生学生学生( (学号学号学号学号, ,姓名姓名姓名姓名 , , 性别性别性别性别, , 系别系别系别系别)课程课程课程课程( (课号课号课号课号, ,名称名称名称名称

28、, ,学分学分学分学分) )选课选课选课选课( (学号学号学号学号, ,课号课号课号课号, ,成绩成绩成绩成绩) )教师教师教师教师( (工号工号工号工号, ,姓名姓名姓名姓名, ,系别系别系别系别) )授课授课授课授课( (工号工号工号工号, ,课号课号课号课号) ) 2011 by38An Introduction to Database System2.2 关系数据结构关系数据结构2.2.1 关系关系2.2.2 关系模式关系模式2.2.3 关系数据库关系数据库 2011 by39An Introduction to Database System2.2.2 关系模式关系模式1什么是关系模

29、式什么是关系模式2定义关系模式定义关系模式3. 关系模式与关系关系模式与关系 2011 by40An Introduction to Database System2.2.2 关系模式关系模式1. 什么是关系模式什么是关系模式关系模式(关系模式(Relation Schema)是型)是型关系是值关系是值关系模式是对关系的描述关系模式是对关系的描述元组集合的结构元组集合的结构属性构成属性构成属性来自的域属性来自的域 属性与域之间的映象关系属性与域之间的映象关系元组语义以及完整性约束条件元组语义以及完整性约束条件属性间的数据依赖关系集合属性间的数据依赖关系集合 2011 by41An Introd

30、uction to Database System2.2.2 关系模式关系模式2. 定义关系模式定义关系模式关系模式可以形式化地表示为:关系模式可以形式化地表示为: R(U,D,dom,F)R 关系名关系名U 组成该关系的属性名集合组成该关系的属性名集合D 属性组属性组U中属性所来自的域中属性所来自的域dom 属性向域的映象集合属性向域的映象集合F 属性间的数据依赖关系集合属性间的数据依赖关系集合 2011 by42An Introduction to Database System2.2.2 关系模式关系模式定义关系模式定义关系模式(续续)关系模式通常可以简记为关系模式通常可以简记为 R (

31、U) 或或 R (A1,A2,An) R 关系名关系名A1,A2,An 属性名属性名注:域名及属性向域的映象常常直接说明为注:域名及属性向域的映象常常直接说明为 属性的类型、长度属性的类型、长度 2011 by43An Introduction to Database System2.2.2 关系模式关系模式3. 关系模式与关系关系模式与关系关系模式关系模式对关系的描述对关系的描述静态的、稳定的静态的、稳定的关系关系关系模式在某一时刻的状态或内容关系模式在某一时刻的状态或内容动态的、随时间不断变化的动态的、随时间不断变化的关系模式和关系往往统称为关系关系模式和关系往往统称为关系通过上下文加以区

32、别通过上下文加以区别 2011 by44An Introduction to Database System2.2 关系数据结构关系数据结构2.2.1 关系关系2.2.2 关系模式关系模式2.2.3 关系数据库关系数据库 2011 by45An Introduction to Database System2.2.3 关系数据库关系数据库1. 关系数据库关系数据库2. 关系数据库的型与值关系数据库的型与值 2011 by46An Introduction to Database System2.2.3 关系数据库关系数据库1. 关系数据库关系数据库在一个给定的应用领域中,所有实体及实在一个给定

33、的应用领域中,所有实体及实体之间联系的体之间联系的关系的集合关系的集合构成一个关系数构成一个关系数据库。据库。其型是关系模式的集合,即数据库描述,称作数据库的内涵(Intension)其值是某一时刻关系的集合,称作数据库的外延(Extension) 2011 by47An Introduction to Database System2.2.3 关系数据库关系数据库2. 关系数据库的型与值关系数据库的型与值关系数据库也有型和值之分关系数据库也有型和值之分关关系系数数据据库库的的型型称称为为关关系系数数据据库库模模式式,是是对对关关系系数数据库的描述据库的描述若干域的定义若干域的定义在这些域上定

34、义的若干关系模式在这些域上定义的若干关系模式关关系系数数据据库库的的值值是是这这些些关关系系模模式式在在某某一一时时刻刻对对应应的的关系的集合,通常简称为关系数据库关系的集合,通常简称为关系数据库 2011 by48An Introduction to Database System2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 小结第第2章章 关系数据库关系数据库 2011 by49An Introduction to Database System2.3 关系的完整性关系的完整性关系模型的完整性规则是对关系的某种约束条件。关系模型的完整性

35、规则是对关系的某种约束条件。关系模型中三类完整性约束:关系模型中三类完整性约束:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性实实体体完完整整性性和和参参照照完完整整性性是是关关系系模模型型必必须须满满足足的的完完整整性性约约束束条条件件,被被称称作作是是关关系系的的两两个个不不变变性性,应应该该由由关系系统自动支持。关系系统自动支持。 2011 by50An Introduction to Database System2.3 关系的完整性关系的完整性2.3.1 实体完整性实体完整性2.3.2. 参照完整性参照完整性2.3.3. 用户定义的完整性用户定义的完整性 2

36、011 by51An Introduction to Database System2.3.1 实体完整性实体完整性实体完整性规则(实体完整性规则(Entity Integrity)若属性若属性A是基本关系是基本关系R的主属性,则属性的主属性,则属性A不能取空值不能取空值例例Student(SNO,Sname,Gender,Birthdate,Depart,Addr) SNO属性为主码,则其不能取空值属性为主码,则其不能取空值 2011 by52An Introduction to Database System2.3.1 实体完整性实体完整性关系模型必须遵守实体完整性规则的原因关系模型必须遵

37、守实体完整性规则的原因(1) 实实体体完完整整性性规规则则是是针针对对基基本本关关系系而而言言的的。一一个个基基本本表表通通常常对应现实世界的一个实体集或多对多联系。对应现实世界的一个实体集或多对多联系。(2) 现现实实世世界界中中的的实实体体和和实实体体间间的的联联系系都都是是可可区区分分的的,即即它它们们具有某种唯一性标识。具有某种唯一性标识。(3) 相应地,关系模型中以主码作为唯一性标识。相应地,关系模型中以主码作为唯一性标识。(4) 主码中的属性即主属性不能取空值。主码中的属性即主属性不能取空值。 空值就是空值就是“不知道不知道”或或“无意义无意义”的值。的值。 主主属属性性取取空空值

38、值,就就说说明明存存在在某某个个不不可可标标识识的的实实体体,即即存存在在不不可可区区分分的的实实体体,这这与与第第(2)点点相相矛矛盾盾,因因此此这这个个规规则则称称为为实体完整性。实体完整性。 2011 by53An Introduction to Database System2.3.1 实体完整性实体完整性注意注意实体完整性规则规定基本关系的所有实体完整性规则规定基本关系的所有主属性都不能取空值主属性都不能取空值例例选修(选修(学号,课程号学号,课程号,成绩),成绩)“学号、课程号学号、课程号”为主码,则两个属性都不为主码,则两个属性都不能取空值。能取空值。 2011 by54An I

39、ntroduction to Database System2.3 关系的完整性关系的完整性2.3.1 实体完整性实体完整性2.3.2. 参照完整性参照完整性2.3.3. 用户定义的完整性用户定义的完整性 2011 by55An Introduction to Database System2.3.2 参照完整性参照完整性1. 关系间的引用关系间的引用2. 外码外码3. 参照完整性规则参照完整性规则 2011 by56An Introduction to Database System2.3.2 参照完整性参照完整性1. 关系间的引用关系间的引用在关系模型中实体及实体间的联系都是用在关系模型中

40、实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关关系来描述的,因此可能存在着关系与关系间的引用。系间的引用。例例1 学生实体、系别实体以及系别与学生学生实体、系别实体以及系别与学生 间的一对多联系间的一对多联系 学生(学生(学号学号,姓名,性别,姓名,性别,系别系别,年龄),年龄) 系别(系别(系号系号,系名),系名) 2011 by57An Introduction to Database System2.3.2 参照完整性参照完整性学号学号姓名姓名性别性别系别系别年龄年龄0101张张男男CS180102李李女女CS190203赵赵男男MA17系号系号系名系名CS计算机计算机EN

41、英语英语MA数学系数学系 2011 by58An Introduction to Database System2.3.2 参照完整性参照完整性2. 外码(外码(Foreign Key)设设F是基本关系是基本关系R的一个或一组属性,但不的一个或一组属性,但不是关系是关系R的码。如果的码。如果F与基本关系与基本关系S的主码的主码Ks相对应,则称相对应,则称F是基本关系是基本关系R的的外码外码基本关系基本关系R称称为为参照关系参照关系(Referencing Relation)基本关系基本关系S称称为为被参照关系被参照关系(ReferencedRelation)或)或目标关系目标关系(Target

42、 Relation) 2011 by59An Introduction to Database System2.3.2 参照完整性参照完整性外码(续)外码(续)说明说明关系关系R和和S不一定是不同的关系不一定是不同的关系目标关系目标关系S的主码的主码Ks 和参照关系的外码和参照关系的外码F必必须定义在同一个(或一组)域上须定义在同一个(或一组)域上外码并不一定要与相应的主码同名外码并不一定要与相应的主码同名 当外码与相应的主码属于不同关系时,往往当外码与相应的主码属于不同关系时,往往 取相同的名字,以便于识别取相同的名字,以便于识别 2011 by60An Introduction to Da

43、tabase System2.3.2 参照完整性参照完整性学号学号姓名姓名性别性别系别系别年龄年龄0101张张男男CS180102李李女女CS190203赵赵男男MA17系号系号系名系名CS计算机计算机EN英语英语MA数学系数学系主码主码外码外码主码主码学生学生系别系别参照参照关系关系被参被参照关照关系系外码与主码可外码与主码可以不同名以不同名 2011 by61An Introduction to Database System2.3.2 参照完整性参照完整性3. 参照完整性规则参照完整性规则若属性(或属性组)若属性(或属性组)F是基本关系是基本关系R的外码的外码它与基本关系它与基本关系S的

44、主码的主码Ks相对应(基本关相对应(基本关系系R和和S不一定是不同的关系),则对不一定是不同的关系),则对于于R中每个元组在中每个元组在F上的值必须为:上的值必须为: 或者取空值(或者取空值(F的每个属性值均为空值)的每个属性值均为空值) 或者等于或者等于S中某个元组的主码值。中某个元组的主码值。 2011 by62An Introduction to Database System2.3.2 参照完整性参照完整性参照完整性规则参照完整性规则(续续)学生关系中每个元组的学生关系中每个元组的“系别系别”属性只能属性只能取下面两类值:取下面两类值:(1)空值空值,表示尚未给该学生分配到系,表示尚未

45、给该学生分配到系(2)非非空空值值,这这时时该该值值必必须须是是系系别别关关系系中中某某个个元元组组的的“系系号号”值值,表表示示该该学学生生不不可可能能分分配到一个不存在的系中配到一个不存在的系中 2011 by63An Introduction to Database System2.3.2 参照完整性参照完整性参照完整性规则参照完整性规则(续续)例例2 选修(选修(学号学号,课程号课程号,成绩),成绩)“学号学号”和和“课程号课程号”是选修关系中的主属是选修关系中的主属性性按照实体完整性和参照完整性规则,它们按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码只能取相

46、应被参照关系中已经存在的主码值值 2011 by64An Introduction to Database System2.3.2 参照完整性参照完整性参照完整性规则参照完整性规则(续续)例例3 分组(分组(学号学号,姓名,姓名,搭档搭档) 2011 by65An Introduction to Database System2.3 关系的完整性关系的完整性2.3.1 实体完整性实体完整性2.3.2. 参照完整性参照完整性2.3.3. 用户定义的完整性用户定义的完整性 2011 by66An Introduction to Database System2.3.3 用户定义的完整性用户定义的完

47、整性用用户户定定义义的的完完整整性性是是针针对对某某一一具具体体关关系系数数据据库库的的约约束束条条件件,反反映映某某一一具具体体应应用用所所涉涉及及的的数数据据必必须须满足的语义要求。满足的语义要求。如如SNO要求是要求是8位整数位整数Gender取值为取值为“男男”或或“女女”学分只能在学分只能在(1,2,3,4)中取值中取值关关系系模模型型应应提提供供定定义义和和检检验验这这类类完完整整性性的的机机制制,以以便便用用统统一一的的系系统统的的方方法法处处理理它它们们,而而不不要要由由应应用程序承担这一功能。用程序承担这一功能。 2011 by67An Introduction to Dat

48、abase System2.3 关系的完整性关系的完整性供应商号供应商号供应商名供应商名所在城市所在城市B01红星红星北京北京S10宇宙宇宙上海上海T20黎明黎明天津天津Z01立新立新重庆重庆零件号零件号颜色颜色供应商号供应商号010红红B01312白白S10 201蓝蓝T20今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A. (037,绿,null)B. (null,黄,T20)C. (201,红,T20)D. (105,蓝,B01)E. (101,黄,T11)Null表示为空零件关系P(主码是“零件号”,外码是“供应商号”) 供应商关系S(主码是“供应商号”) 2011 by68An Introduction to Database System2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数2.5 关系演算2.6 小结第第2章章 关系数据库关系数据库

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号