《数据库原理 第三讲 关系运算和完整性约束精.ppt》由会员分享,可在线阅读,更多相关《数据库原理 第三讲 关系运算和完整性约束精.ppt(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库原理 第三讲 关系运算和完整性约束第1页,本讲稿共48页还记得吗?1、ER图属于哪一种数据模型?有何优缺点?概念数据模型 一些复杂关系无法表示,如文件夹与文件的关系是一种递归关系,用ER图无法表示。2、数据库系统的模式结构的特点?三级模式结构:内模式、模式和外模式第2页,本讲稿共48页关系数据库关系数据库1.关系模型概述2.关系数据结构及形式化定义3.关系的完整性4.关系代数5.关系演算第3页,本讲稿共48页关系模型概述关系模型概述关系数据库应用数学方法来处理数据库中的数据。系统而严格地提出关系模型的是美国 IBM公司的E.F.Codd,他从1970年起连续发表了多篇论文,奠定了关系数据
2、库的理论基础。关系数据库系统是支持关系模型的数据库系统。关系模型由数据结构、关系操作集合和完整性约束三部分组成。第4页,本讲稿共48页基本术语基本术语元组:表中的一行即为一个元组;属性:表中的一列即为一个属性;域(Domain):属性的取值范围;分量:元组中的一个属性值;03李四034 01张三001专业号姓名学号例第5页,本讲稿共48页笛卡儿积笛卡儿积定义:设D1、D2、Dn为任意集合,定义D1、D2、Dn的笛卡儿积为 D1D2Dn=(d1,d2,dn)|di Di,i=1,2,n笛卡儿积是一个集合,集合中的每一个元素(d1,d2,dn)叫做一个n元组,简称元组,元组中的每一个di叫做该元组
3、的一个分量。注意:元组不是di的集合,元组中的分量是按序排列的,而集合中的元素是没有排列次序的。如:(a,b,c)(b,a,c)(a,c,b)a,b,c=b,a,c=a,c,b 第6页,本讲稿共48页笛卡儿积笛卡儿积例:D1=0,1,D2=a,b,c,求D1和D2的笛卡儿积。01abc D1 D2 0 a 0 b 0 c 1 a 1 b 1 cD1D2D1D2=(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)第7页,本讲稿共48页关系关系定义:笛卡儿积D1D2Dn的任意一个子集称为D1、D2、Dn上的一个关系。R1=(0,a),(0,c),(1,a)是D1、D2上的一个关
4、系;R2=(0,a),(1,a)也是D1、D2上的一个关系。D1D2 0 a 0 c 1 aR1D1 D2 0 a 1 aR2例:D1=0,1,D2=a,b,c第8页,本讲稿共48页关系关系例如:姓名=张三,李四,专业=管理,电子姓名专业=姓名 专业张三 管理张三 电子李四 管理李四 电子笛卡儿积关系1姓名 专业张三 管理李四 电子关系2姓名 专业张三 电子李四 管理第9页,本讲稿共48页对关系的限定和扩充对关系的限定和扩充限定:关系不能是无限集合扩充:在关系中为每个列取名(属性名)可取消有序性的限制。姓名 专业张三 管理李四 电子专业 姓名管理 张三电子 李四=第10页,本讲稿共48页关系的
5、六条性质关系的六条性质关系同一列的数据类型相同;不同列的数据可出自同一域,但要取不同的列名(属性名),同一关系中属性名不可重复;列的次序可交换,结果是等价的;同一关系中,两个元组不可完全相同;行(元组)的顺序可任意交换;每一分量(列)必须是不可分的数据项。第11页,本讲稿共48页码码候选码(关键字):能惟一标识元组的最小属性组。超码(Super Key):在关系中能唯一标识元组的属性集称为关系的超码。最简单的情况:码中只包含一个属性。最极端的情况:整个属性组构成一个码,称全码。主码:当有多个候选码时,选择其中一个作为主码。每个关系有且只有一个主码。主属性:主码的诸属性。非主属性(非码属性):不
6、包含在任何码中的属性。第12页,本讲稿共48页码码c1b2a4c2b3a3c2b2a2c1b1a1 C B Ac1b2a4c1b2a1c2b1a1c1b1a1 C B A例:第13页,本讲稿共48页关系模式关系模式关系模式:关系名及其属性名表。设关系名为R,其属性为A1、A2、,An,则关系模式为:R=(A1,A2,An)例:学生(学号,姓名,专业)关系模式是型,是二维表的框架,关系是二 维表,是某一时刻的值。关系模式是相对稳定的,关系是动态变化的。第14页,本讲稿共48页关系模型关系模型关系模型:整个数据库中,所有关系模式的集合。如:学生-选课-课程数据库的关系模型:学生(学号,姓名,专业)
7、课程(课程号,课程名)选课(学号,课程号,成绩)关系数据库:对应于一个关系模型的所有关系的集合。关系模型是型,是关系数据库的框架,关系数据库是某一时刻的值。关系模型是相对稳定的,关系数据库是动态变化的。第15页,本讲稿共48页关系的完整性关系的完整性实体完整性参照完整性用户定义的完整性第16页,本讲稿共48页实体完整性实体完整性实体完整性是为了保证关系中没有重复元组。主码约束:如果属性组A是主码,则A不能取空值和重复值。如:学生关系中的“学号”,选课关系中的“学号、课程号”的都不能为“空”或重复。唯一性约束:对非主码的码的诸属性可以取空值,但不能取重复值第17页,本讲稿共48页参照完整性参照完
8、整性例如:数据库中有如下关系:在“学生”关系中插入元组(217,王五,06)可以吗?学号 姓名 专业号001张三 01034李四 03专业号 专业名 01 机械 02 管理 03 电子学生专业第18页,本讲稿共48页参照完整性参照完整性外码:设A是关系R的一个属性或属性组,已知A非R的码,但A是关系S的主码,则称A是R的外码。R为参照关系,S为被参照关系。学号 姓名 专业号专业号001张三 01034李四 03专业号专业号 专业名 01 机械 02 管理 03 电子学生专业第19页,本讲稿共48页参照完整性参照完整性参照完整性:若属性或属性组A是关系R的外码,是关系S的主码,则A必须取下列两种
9、情况之一:1.空值 2.关系S中的某个主码值例:图书管理系统数据库中存在下列关系:读者(借书证号,姓名,单位)图书(总编号,分类号,书名,作者)借书(借书证号,总编号,借阅日期)“借书”关系中“借书证号”和“总编号”的取值?实体完整性约束是对一个关系内某些属性的约束,而参照完整性约束是不同关系之间或同一关系的不同属性之间的约束。第20页,本讲稿共48页用户定义的完整性用户定义的完整性用户定义的完整性:根据某一具体应用,数据库中的数据应满足的语义要求。例:学号由8位数字组成;姓名由8位字符串构成;成绩在0100之间。DBMS提供了设置完整性约束的命令。设置完整性约束的目的是保证数据库中数据的正确
10、性。第21页,本讲稿共48页关系代数关系代数关系代数:将关系作为集合,对它实施各种集合运算和专门的关系运算。集合运算:并()、交()、差()、广义笛卡尔 积()专门的关系运算:投影()、选择()、连接()、除()下面两种运算符辅助上述运算:比较运算符:、=逻辑运算符:(非)、(与)、(或)比较运算符优先级高于逻辑运算符,逻辑运算符的优先次 序为、第22页,本讲稿共48页集合运算集合运算集合运算是二目运算,即两个关系之间的运算,结果仍为关系(即元组的集合)。并、交、差 设关系R与S都是n元关系(即n个属性),且相应的属性取自同一个域。并:RS=tt R t S 交:RS=tt R t S 差:R
11、 S=tt R t SRSRSRS第23页,本讲稿共48页集合运算集合运算例:Rc1b2a2c2b2a1c1b1a1 C B ASc1b2a2c2b3a1c2b2a1 C B ARSc1b2a2c2b3a1c2b2a1c1b1a1 C B Ac1b1a1 C B AR Sc1b2a2c2b2a1 C B ARS第24页,本讲稿共48页集合运算集合运算广义笛卡儿积:设R为n元关系,S为m元关系,则R与S的广义笛卡儿积是一个n+m元关系(即有n+m列属性),元组的前n列是关系R的一个元组,后m列是关系S的一个元组。RS=tr ts trR tsS tr 表示R中的元组,ts表示S中的元组。若R有k
12、1个元组,S有k2个元组则RS有k1 k2个元组。第25页,本讲稿共48页广义笛卡儿积广义笛卡儿积 例:Rc1b2a2c2b2a1c1b1a1 C B ASd3a2d2a1 D A A B C A D a1 b1c1a1d2a1b1c1a2d3a1b2c2a1d2a1b2c2a2d3a2b2c1a1d2a2b2c1a2d3RS第26页,本讲稿共48页专门的关系运算专门的关系运算选择:在一个关系中,选出符合给定条件的元组组成一个新的关系。(R)=tt R F(t)=T F为选择的条件,由逻辑运算符、连接各算术表达式组成。算术表达式的形式为X Y,表示比较运算符,X、Y可以是属性名(或属性序号)、
13、常量、简单函数。作用:选择运算是对一个关系进行行运算,它提供了构造符合某种条件的原关系的子集的方法。第27页,本讲稿共48页专门的关系运算专门的关系运算例:学号 姓名 性别 专业 爱好 002张三 女机械 书法 078 李四 男电子 绘画 204王五 男机械 足球 021赵六 女管理 书法学生1.找出机械专业男生的信息。专业=“机械”性别=“男”(学生)学号 姓名 性别 专业 爱好 204王五 男机械 足球2.找出非机械专业爱好书法的学生信息。专业=“机械”爱好=“书法”(学生)学号 姓名 性别 专业 爱好 021赵六 女管理 书法第28页,本讲稿共48页专门的关系运算专门的关系运算投影:从一
14、个关系中选择某些属性组成新的关系,新关系中,要去掉重复元组。(R)tA t R A从R中选出的若干属性列。作用:投影主要是列运算,它提供了提取感兴趣的列构成新关系的方法。选择和投影是对关系进行任意分割的有利工具。例:找出学生的姓名及专业。(学生)姓名,专业姓名专业张三机械李四电子王五机械赵六管理结果第29页,本讲稿共48页专门的关系运算专门的关系运算连接:从两个关系的广义笛卡儿积中选择符合给定条件的元组,组成新的关系。AB:连接条件,两关系中对应属性的比较,对应属性的属性名可以不同,但值域必须相同。当为“=”时,称等值连接,等值连接中有完全相同的两列属性。R S=R.A S.B(RS)R.AS
15、.B第30页,本讲稿共48页专门的关系运算专门的关系运算自然连接:在等值连接的基础上去掉重复列。记为:R S 与等值连接的区别:自然连接要求有相同的属性名,否则成为广义笛卡儿积;自然连接没有重复的列。作用:组装关系 利用选择、投影、自然连接可以任意分割和组装关系。这是关系模型优于其它模型的关键。第31页,本讲稿共48页专门的关系运算专门的关系运算例:ABCa1 b2 5a2 b1 8BEb2 3b5 10b1 2RSRSC E AR.B CS.B E a1 b2 5 b5 10 a2 b1 8 b5 10 AR.B CS.B E a1 b2 5 b2 3 a2 b1 8 b1 2R SR.B=
16、S.BRS A B C E a1 b2 5 3 a2 b1 8 2第32页,本讲稿共48页专门的关系运算:除专门的关系运算:除例:d1c1b3a3d2c2b2a2d1c1b2a2d3c3b1a1d2c2b1a1d1c1b1a14321d2c2d1c143RSb2a2b1a121RS设关系S的属性是关系R的属性的一部分,则RS为这样的关系:1、此关系的属性是由属于R但不属于S的属性组成;2、(RS)S是关系R的一部分。33第33页,本讲稿共48页象集象集:给定一个关系R(X,Y),X和Y为属性组。当tX=x时,x在R中的象集为:Yx=t Y|tR,t X=xSCsno cno 95001 1 9
17、5001 2 95001 3 95002 2 95002 3 例如:95001的象集cno95001为1,2,3 95002的象集cno95002为2,3第34页,本讲稿共48页除除给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:其中Yx为x在R中的象集,x=trX。第35页,本讲稿共48页除除RSAa1第36页,本讲稿共48页除除在关系R中,A可以取四个值a1,a2,a3,a4。
18、其中:a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为(b6,c6)S在(B,C)上的投影为(b1,c2),(b2,c3),(b2,c1)显然只有a1的象集(B,C)包含S在(B,C)属性组上的投影,所以RS=a1 第37页,本讲稿共48页除除“除”的应用:一般用于查找带有“所有的所有的”、“包含”等字眼的场合。例:在“选课”关系中找出数学、物理都选修了的学生姓名。姓名课程张三英语张三物理张三数学李四数学李四英语王五数学王五物理选课构造“课程”关系课程数学物理课程选课课程姓名张三王五第38页,本讲稿共48
19、页例:Student第39页,本讲稿共48页Course第40页,本讲稿共48页SC第41页,本讲稿共48页练习练习查询至少选修了1号课程和3号课程的学生号码。第42页,本讲稿共48页练习练习查询选修了2号课程的学生的学号第43页,本讲稿共48页练习练习查询至少选修了一门其直接先行课为5号课程的学生姓名第44页,本讲稿共48页练习练习查询选修了全部课程的学生的学号和姓名第45页,本讲稿共48页练习练习查询成绩为90分以上的学生名字与课程名字第46页,本讲稿共48页小结小结用关系代数运算可直接表达对数据的查询,删除和插入等操作。如果要进行修改操作,则可分两步进行,先删除要修改的元组再插入修改后的元组。因此,以关系代数运算为基础的数据语言可以实现人们对数据库的所有查询和更新操作,E.F.Codd把关系代数的这种处理能力称为关系完备性关系完备性。第47页,本讲稿共48页小结小结本讲详细介绍关系数据运算和数据完整性约束的基本理论,并通过实例分析进一步说明了关系代数运算的实现方法。主要知识点如下:(1)关系的码、定义和性质。(2)数据完整性约束的概念;实体完整性、参照完整性和用户完整性的约束规则及其控制机制。(3)关系代数的选择、投影、集合运算、连接和除等运算规则。第48页,本讲稿共48页