《《关系数据库》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《关系数据库》PPT课件.ppt(70页珍藏版)》请在三一办公上搜索。
1、第3章 关系数据库,3.1 关系模型及其三要素 3.2 关系代数 3.3 关系演算,3.1 关系模型及其三要素,关系结构、关系操作和关系完整性约束,第三章 关系数据库,3.1 关系模型及其三要素,3.1.1 关系数据结构关系的数学定义 1)域的定义 域(Domain)是一组具有相同数据类型的值的集合,又称为值域。例如:整数,正数,0,1,男,女,计算机系所有学生的姓名,介于某个取值范围的日期。,第三章 关系数据库,3.1 关系模型及其三要素,域中所包含的值的个数称为域的基数(用m表示)。关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟 m1=3D2=男,女 m2=2D3=47,28,
2、30 m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域名无排列次序,如D2=男,女=女,男,第三章 关系数据库,3.1 关系模型及其三要素,关系的数学定义 2)笛卡儿积的定义 给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n 其中每一个元素(d1,d2,dn)称为一个n元组,简称元组。元素中的每一个值di称为一个分量。,第三章 关系数据库,3.1 关系模型及其三要素,例给出三个域:D1=导师=张清玫,刘逸 D2=专业=计算机专业,信息专业D3=毕业生=李勇,刘晨,王敏则
3、D1,D2,D3的笛卡尔积为:,第三章 关系数据库,3.1 关系模型及其三要素,域,D1D2D3(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏),第三章 关系数据库,3.1 关系模型及其三要素,元组,元素,若Di(i1,2,n)为有限集,其基数为mi(i1,2,n),则D1D2Dn的基数M为:在上例中,基数:22
4、312,即D1D2D3共有22312个元组。笛卡儿积可以表示成一张二维表。表中的每行对应一个元组,表中的每列对应一个域。,第三章 关系数据库,3.1 关系模型及其三要素,关系的数学定义 3)关系的定义 D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为 R(D1,D2,Dn)R:关系名 n:关系的目或度(Degree),第三章 关系数据库,3.1 关系模型及其三要素,关系中的基本名词 1)元组 关系表中的每一横行称作一个元组,组成的元素为分量。2)属性 关系中的每一列称为一个属性。,第三章 关系数据库,3.1 关系模型及其三要素,关系中的基本名词 3)候选码和主码 若关系中的某一属性组
5、(或单个属性)的值能唯一地标识一个元组,则称该属性组(或属性)为候选码。从多个候选码中选定一个作为主码。,第三章 关系数据库,3.1 关系模型及其三要素,例如,设有下列关系:学生(学号,姓名,性别,年龄)借书(学号,书号,日期)学生选课(学号,课程号),第三章 关系数据库,3.1 关系模型及其三要素,主码,主码,多个候选码的例子:工人(工号,身份证号,姓名,性别,部门),关系中的基本名词 4)全码 若关系中只有一个候选码,且这个候选码中包括全部属性,则这种候选码为全码。,关系中的基本名词 5)主属性和非主属性 在关系中,候选码中的属性为主属性,不包含在候选码中的属性为非主属性。,第三章 关系数
6、据库,3.1 关系模型及其三要素,数据库中关系的类型 关系数据库中的关系可以分为基本表、视图表和查询表3种类型。1)基本表 实际存在的表,是实际存储数据的逻辑表示。2)查询表 查询结果对应的表。3)视图表 由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。,第三章 关系数据库,3.1 关系模型及其三要素,第三章 关系数据库,3.1 关系模型及其三要素,第三章 关系数据库,3.1 关系模型及其三要素,基本表,第三章 关系数据库,3.1 关系模型及其三要素,查询表,第三章 关系数据库,3.1 关系模型及其三要素,第三章 关系数据库,3.1 关系模型及其三要素,视图表,数据库中基本关系的性
7、质 1)同一属性的数据具有同质性 2)同一关系的属性名具有不能重复性 3)关系中的列位置具有顺序无关性 4)关系具有元组无冗余性 5)关系中的元组位置具有顺序无关性 6)关系中的每一个分量都是不可分的数据项,第三章 关系数据库,3.1 关系模型及其三要素,关系数据库 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。例如教学数据库中,共有三个关系,其关系模式分别为:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)选课(学号,课程号,成绩),第三章 关系数据库,3.1 关系模型及其三要素,3.1.2 关系操作概述关系操作的基本内容 数据查询、数据维护和
8、数据控制关系操作的特点 1)关系操作语言操作一体化 2)关系操作的方式是一次一集合方式 3)关系操作语言是高度非过程化的语言,第三章 关系数据库,3.1 关系模型及其三要素,关系操作语言的种类,第三章 关系数据库,3.1 关系模型及其三要素,3.1.3 关系的完整性 关系模型的完整性规则是对关系的某种约束条件。关系模型中有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。,第三章 关系数据库,3.1 关系模型及其三要素,关系模型的实体完整性 若属性A是基本关系R的主属性,则属性A不能取空值。选修(学号,课程号,成绩)“学号、课程号”为主属性,则两个属性都不能取空值。,第三章 关系数据库
9、,3.1 关系模型及其三要素,对于实体完整性规则的说明:1)实体完整性能够保证实体的唯一性 2)实体完整性能够保证实体的可区分性 空值不代表“空格值”。空值说明“不知道”或“无意义”。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这不符合客观世界的情况。,第三章 关系数据库,3.1 关系模型及其三要素,关系模型的参照完整性 1)外码和参照关系 设F是基本关系R的一个或一组属性,但不是关系R的主码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,基本关系R称为参照关系(Referencing Relation)基本关系S称为被参照关系(Referenced
10、Relation)或目标关系(Target Relation)。,第三章 关系数据库,3.1 关系模型及其三要素,例如:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名),第三章 关系数据库,3.1 关系模型及其三要素,例如,在学生课程数据库中,有以下三个关系:学生(学号,姓名,性别,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),关系模型的参照完整性 2)参照完整性规则 若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的
11、主码值。,第三章 关系数据库,3.1 关系模型及其三要素,职工表 部门表,关系模型的参照完整性 3)用户自定义的完整性 用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。,第三章 关系数据库,3.1 关系模型及其三要素,例:课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,4,第三章 关系数据库,3.1 关系模型及其三要素,3.2 关系代数,关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。关系代数的运算对象是关系,运算结果也是关
12、系。关系代数的运算有:集合运算符、专门的关系运算符、比较运算符和逻辑运算符。,集合运算符:(并运算),-(差运算),(交运算),(广义笛卡儿积)。专门的关系运算符:(选择),(投影),(连接),(除)。比较运算符:(大于),(大于等于),(小于),(小于等于),=(等于),(不等于)。逻辑运算符:(非),(与),(或)。,3.2.1 传统的集合运算并运算 关系R与关系S的并运算(Union)表示为:RS=t|tRtS 上式说明,R和S并的结果仍为n目关系,其数据由属于R或属于S的元组组成。,差运算 关系R与关系S的并运算(Difference)表示为:R-S=t|tRt S 上式说明,R和S差
13、运算的结果仍为n目关系,其数据由属于R而不属于S的元组组成。,交运算 关系R与关系S的交运算(Intersection)表示为:RS=t|tRtS 上式说明,R和S交运算的结果仍为n目关系,其数据由既属于R又属于S的元组组成。关系的交也可以用差表示:RS=R-(R-S),广义笛卡儿积运算 设两个分别为n目和m目的关系R和S,它们的广义笛卡儿积是一个(n+m)目的元素集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积应当有k1k2个元组。R和S的笛卡儿积表示为:RS=trts|trRtsS,3.2.2 专门的关系运算
14、专门的关系运算包括选择、投影、连接和除法运算。,记号说明 1)关系模式、关系、元组和分量 设关系模式为R(A1,A2,An),它的一个关系设为个R。tR表示t是R的一元组,tAi则表示元组t中相应于属性Ai的一个分量。,2)域列和域列非 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列。tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组,称为A的域列非。,3)元组连串 R为n目关系,S为m目关系。trR,tsS,tr ts称为元组的连接。它是一个n
15、+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。,4)属性的象集 给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为:Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。,专门关系运算的定义 1)选择运算在关系R中选择满足给定条件的诸元组 F(R)=t|tRF(t)=真选择运算是从行的角度进行的运算,举例:设有一个学生课程数据库,包括学生关系Student、课程关系Course和选修关系SC。,Student,Course,SC,例1:查询信息系(IS系)全体学生 Sdept=IS(Stude
16、nt)或 5=IS(Student)结果:,例2:查询年龄小于20岁的学生 Sage 20(Student)或 4 20(Student)结果:,专门关系运算的定义 2)投影运算从R中选择出若干属性列组成新的关系 A(R)=tA|t R A:R中的属性列投影操作主要是从列的角度进行运算,注:但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。,例3:查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)结果:,例4:查询学生关系Student中都有哪些系 Sdept(Stude
17、nt)结果:,专门关系运算的定义 3)连接运算从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S=|tr Rts StrAtsB 其中:A和B:分别为R和S上度数相等且可比的属性组:比较运算符连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。,两类常用连接运算等值连接(equijoin)为“”的连接运算称为等值连接等值连接的含义:从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:R S=|trRtsStrA=tsB,自然连接(Natural join)自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组BR S=|trRtsStrB=tsB,例5:,R,S,等值连接 R S,自然连接 R S,R S,专门关系运算的定义 4)除运算,给定关系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上投影的集合。RS=trX|trRY(S)Yx Yx:x在R中的象集,x=trX,举例:(书59页例6),