资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,*,第4章 关系数据库,4.1 关系模型及其定义,4.2 关系代数,4.1 关系模型及其定义,4.1.1 关系数据结构,1.关系的数学定义,1),域,的定义:域是一组具有相同数据类型的值的集合。,2),笛卡儿积,(Cartesian Product)的定义:给定一组域D,1,,D,2,,D,n,,这些域中可以有相同的部分,则笛卡儿积为:,D,1,D,2,D,n,=(d,1,,d,2,,d,n,)d,i,D,i,,i1,2,n.,其中:每一个元素(d,1,,d,2,,d,n,)称为一个n元组,简称元组。元素中的每一个值d,i,称作一个分量)。,例如给出三个域:D1=姓名=王平,李丽,张晓刚;D2=性别=男,女;D3=年龄=19,20.,则D,1,,D,2,,D,3,的笛卡儿积为D,1,D,2,D,3,姓名,性别,年龄,王平,男,19,王平,男,20,王平,女,19,王平,女,20,李丽,男,19,李丽,男,20,李丽,女,19,李丽,女,20,张晓刚,男,19,张晓刚,男,20,张晓刚,女,19,张晓刚,女,20,3)关系(Relation)的定义:D,1,D,2,D,n,的,子集,称作在域D,1,,D,2,,D,n,上的关系,表示为:,R(D,1,,D,2,,D,n,).,这里:R表示关系的名字,n是关系的,目或度,。,从D,1,D,2,D,3,中取出有用的元组,所构造的学生关系如表所示,姓名,性别,年龄,王平,男,20,李丽,女,20,张晓刚,男,19,2.关系中的基本名词,1),元组,:关系表中的每一横行称作一个元组,组成元组的元素为分量。2),属性,:关系中的每一列称为一个属性。,3),码,:在关系的各个属性中,能够用来唯一标识一个元组的属性或属性组。,4),侯选码,:在一个关系中,某一个属性或属性组的值能唯一标识该关系的元组,而,其真子集不行,,则该属性或属性组称为侯选码。,5),主码,:若一个关系有多个侯选码,则选定其中一个为主码。6),主属性和非主属性,:关系中,候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。,7),单属性码、多属性码、全码,:,若关系的候选码中只包含一个属性,则称它为,单属性码,;若候选码是由多个属性构成的,则称为它为,多属性码,。若关系中只有一个候选码,且这个候选码中包括全部属性,则这种候选码为,全码,。,3,.数据库中关系的类型,1),基本表,:关系数据库中实际存在的表,是实际存储数据的逻辑表示。2),视图表,:视图表是由基本表或其他视图表导出的表。3),查询表,:查询表是指查询结果对应的表,4.数据库中基本关系的性质1)同一属性的数据具有,同质,性。2)同一关系的属性名具有,不能重复,性。3)关系中的列位置具有,顺序无关性,。4)关系具有元组,无冗余性,。5)关系中的元组位置具有顺序无关性。6)关系中每一个分量都必须是,不可分,的数据项。,读者关系,借书卡号Cardid,读者姓名Name,性别Sex,工作单位Dept,读者类别Class,T0001,刘勇,男,计算机系,1,S0101,丁钰,女,人事处,2,S0111,张清蜂,男,培训部,3,T0002,张伟,女,计算机系,1,5.关系模式的定义所谓关系模式就是对关系的描述。描述的内容包括:,元组集合结构,:有哪些属性、属性来自哪些域,属性与域之间的映象关系。,元组集合的语义,。,完整性约束条件,:属性间的相互关系,属性的取值范围限制。,R(U,D,DOM,F):R表示关系名,U表示属性集合,D表示属性来自的域,DOM表示属性向域的映像的集合,F为属性间数据的依赖关系。,关系模式一般,R(U)或 R(A,1,A,2,A,n,),6.关系数据库 在某一应用领域中,所有实体及实体之间联系所形成关系的集合就构成了一个关系数据库。,4.1.2 关系操作概述,1.关系操作的基本内容 关系操作包括数据,查询,、数据,维护,和数据,控制,三大功能:关系操作的数据查询和数据维护功能使用关系代数中的选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)以及广义笛卡儿积(Extended Cartesian Product)8种操作,。,2.关系操作的特点,(1)关系操作语言操作一体化,(2)关系操作的方式是一次一集合方式,(3)关系操作语言是高度非过程化的语言,4.1.3 关系的完整性,1.关系模型的,实体完整性,(Entity Integrity)若属性A是基本关系R的主属性,则属性A的值,不能为空值,。1)实体完整性能够保证实体的唯一性。2)实体完整性能够保证实体的可区分性。,2.关系模型的,参照完整性,1)外码和参照关系 设F是基本关系R的一个或一组属性,但不是关系R的,主码,(或候选码)。如果F与基本关系S的主码相对应,则称F是R的,外码,,并称R为,参照关系,,S为,被参照关系,或目标关系,。,例如,“基层单位数据库”中有“职工”和“部门”两个关系,其关系模式如下:职工(,职工号,,姓名,工资,性别,,部门号,);部门(,部门号,,名称,,领导人号,).其中:主码用下划线标出,外码用红色字体标出。,病员记录,外键,编号,姓名,年龄,职称,医生记录,唯一性约束,编号,姓名,主治医生姓名,特例:,学生(学号,姓名,性别,专业号,班长),注意:参照关系不仅存在与两个或两个以上的关系间,也可以存在在同一关系内。,2),参照完整性规则,若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K,s,相对应,则对于R中每个元组在F上的值必须取,空值,(F的每个属性值均为空值)或者等于,S中某个元组的主码值,。,职工姓名Name,部门编号DeptNo,部门编号DeptNo,部门名称DeptName,刘勇,01,01,计算机系,丁钰,02,02,人事处,张清蜂,03,电子系,表1 职工关系,表2 部门关系,3,用户定义的完整性,。,用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。,4.2 关系代数,关系代数是一种抽象的查询语言,是关系操纵语言的一种传统表达方式,是用对关系的运算来表达查询的。,关系代数的三个要素:,运算对象:关系,运算结果:关系,运算符:四类,1)集合运算符:(并运算),(差运算),(交运算),(广义笛卡儿积)。,2)专门的关系运算符:(选择),(投影),(连接),(除)。,3)比较运算符:(大于),(大于等于),(小于),(小于等于),(等于),(不等于)。,4)逻辑运算符:,(非),(与),(或)。,4.2.1 传统的集合运算,设关系R和S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域。1.并(Union)运算,RS=t|t,R t,S.R和S并的结果仍为n目关系,其数据由属于R,或,属于S的元组组成。,2.差(Difference)运算,R-S=t|t,R t,S.,R和S差运算的结果关系仍为n目关系,其数据由,属于R而不属于S,的所有元组组成。,3.交(Intersection)运算 RS=t|t,R t,S.运算的结果关系仍为n目关系,其数据由,既,属于R,同时又,属于S的元组组成。交可用差来表示:RS=R-(R-S).,4.笛卡儿积运算,设n目和m目的关系R和S,它们的笛卡儿积是一个,(n+m),目的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积应当有,k1k2,个元组。R和S的笛卡儿积表示为:,RS=t,r,t,s,|t,r,Rt,s,S.,1.记号说明(1)关系模式、关系、元组和分量 设关系模式为R(A,1,,A,2,,An),它的一个关系设为R,t,R表示t是R的一个元组,,tA,i,则表示元组t中相对于属性A,i,的一个分量。,4.2.2 专门的关系运算,(2)域列和域列非 若A=A,i1,,A,i2,,A,ik,,其中A,i1,,A,i2,,A,ik,是A,1,,A,2,,An中的一部分,则A称为属性列或域列,tA=tA,i1,,tA,i2,,,tA,ik,表示元组t在属性列A上诸分量的集合。A则表示A,1,,A,2,,An中去掉A,i1,,A,i2,,A,ik,后剩余的属性组,它称为A的域列非。,(3)元组连串(Concatenation)设R为n目关系,S为m目关系,且t,r,R,t,S,S,则t,r,t,S,称为元组的连串。连串是一个(n+m)列的元组,它的前n个分量是R中的一个n元组,后m个分量为S中的一个m元组。,(4)属性的象集(Images Set),给定一个关系R(X,Z),X和Z为属性组。定义当tX=x时,x在R中的象集为:,Z,x,=tZ|t,R,tX=x.,上式表示,x在R中的象集为R中Z属性对应分量的集合,而这些分量所对应的元组中的属性组X上的值应为x。,2.专门关系运算的定义,(1)选择(Selection)运算选择运算又称为限制运算。选择运算指在关系R中,选择满足给定条件,的,元组,,记作:,F,(R)=t|t,R F(t)=真.其中:F表示选择条件,是一个,逻辑表达式,,取值为“真”或“假”。F由逻辑运算符(非)、(与)和(或)连接各条件表达式组成。,条件表达式的基本形式为:X,1,Y,1,.其中:是比较运算符,它可以是、中的一种;X,1,和Y,1,是属性名、常量或简单函数;属性名也可以用,它的序号,来代替。,选择运算是从行的角度进行的运算。,用关系代数表示下列操作,设学生课程数据库,其关系模式为:学生(学生,姓名,年龄,所在系);课程(课程号,课程名,学分);选课(学号,课程号,成绩).,【例4-2】用关系代数表示在学生课程数据库中查询成绩不及格的学生课程信息的操作。,成绩60,(选课),【例4-1】用关系代数表示在学生课程数据库中查询计算机系的全体学生的操作。,所在系,=计算机系,(学生),4=计算机系,(学生),(,2)投影(Projection)运算 关系R上的投影是从R中,选择,出若干,属性列,组成新的关系,记作:,A,(R)=tA|t,R.投影操作主要是从列的角度进行运算。但投影之后不仅取消了原关系中的某些列,而且还可能,取消某些元组,(避免重复行)。,【例4-3】在学生课程数据库中,查询学生的姓名和所在系。,表示为:,姓名,所在系,(学生),(3)连接运算,连接是从两个关系的,笛卡儿积,中,选取属性间满足一定条件,的元组。记作:,R S=t,r,t,s,|t,r,R t,s,S t,r,A,t,s,B.,A,B,其中:A和B分别为R和S上度数相等且可比的属性组,是比较运算符。,等值连接表示为:,R,S=t,r,t,s,|t,r,R t,s,S t,r,A,=,t,s,B.,A=B,自然连接是一种特殊的等值连接:,R S=t,r,t,s,|t,r,R t,s,S,t,r,A=t,s,A,等值连接与自然连接的区别:,等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。,2.,等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。,【例4-4】设学生和选课关系中的数据如下,学生与选课之间的笛卡儿积、等值连接和自然连接的结果如表所示。,学号,姓名,年龄,所在系,学号,课程名,成绩,98001,张三,20,计算机系,98001,数据库,62,98005,李四,21,数学系,98001,数据结构,73,98005,微积分,80,学生 选课,学生.学号,姓名,年龄,所在系,选课.学号,课名,成绩,98001,98001,98001,98005,98005,98005,张三,张三,张三,李四,李四,李四,20,20,20,21,21,21,计算机系,计算机系,计算机系,数学系,数学系,数学系,98001,98001,98005,98001,98001,98005,数据库,数据结构,微积分,数据库,数据结构,微积分,62,73,80,62,73,80,学生选课,学生.学号,姓名,年龄,所在系,选课.学号,课名,成绩,98001,98001,98005,张三,张三,李四,20,20,21,计算机系,计算机系,数学系,98001,98001,98005,数据库,数据结构,微积分,62,73,80,学生 选课,学生.学号=选课.学号,学生 选课,学生.学号,姓名,年龄,所在系,课名,成绩,98001,98001,98005,张三,张三,李四,20,20,21,计算机系,计算机系,数学系,数据库,数据结构,微积分,62,73,80,(4)除(Division)运算,给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。,R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集,。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组,在X属性列上的投影,:元组在X上的分量值x的象集Y,x,包含S在Y上的投影,即:,RS=t,r,X|t,r,R,Y,(S),Y,x,.,其中的Y,x,为x在R中的象集,x=t,r,X。,关系除法运算分下面4步进行:1)将被除关系的属性分为,象集属性,和,结果属性,:与除关系相同的属性属于象集属性,不相同的属性属于结果属性。2)在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到,除目标数据集。,3)将被除关系分组,原则是,,结果属性值一样的元组分为一组。,4)逐一考察每个组,如果它的象集属性值中,包括,除目标数据集,则对应的结果属性值应属于该除法运算结果集。,A,B,C,a1,b1,C1,a1,b2,C2,a1,b3,C3,a2,b2,C2,a3,b3,C3,a4,b4,c4,R,B,C,D,E,b1,c1,d1,e2,b2,c2,d2,e2,S,分析:,关系R的属性可分为二个组:,X=A,Y=B,C,关系S的属性可分为二个组:,Y=B,C,Z=D,E,S在(B,C)上的投影为,Y,(S)=(b1,c1),(b2,c2),在关系R中,A的值为a1,a2,a3,a4,其中:,a1的象集为(b1,c1),(b2,c2),(b3,c3),a2的象集为(b2,c2),a3的象集为(b3,c3),a4的象集为(b4,c4),只有a1的象集包含了S在(B,C)上的投影。,所以RS=a1.,A,a1,RS,注意:,1)两个关系无相同域属性不能做除法操作;,2)除法操作的结果必定包含结果属性。,【例4-5】给出选课、选修课和必修课3个关系,它们的关系模式为:选课(学号,课号,成绩);选修课(课号,课名);必修课(课号,课名).,学号,课号,成绩,课号,课名,S1,C1,A,C2,计算机图形学,S1,C2,B,必修课,S1,C3,B,S2,C1,A,课号,课名,S2,C3,B,C1,数据结构,S3,C1,B,C3,操作系统,S3,C3,B,选课选修课,S4,C1,A,S4,C2,A,学号,成绩,S5,C2,B,S1,B,S5,C3,B,S4,A,S5,C1,A,S5,B,选课,选修课,在本题中,R的属性有A、B、C、D,而S的属性有C、D、E,因此,R,S的属性有A、B。求除法的简单方法是在关系R中寻找属性C和D的值同时满足关系S中属性C和D的所有元组的元组。,4.2.3 用关系代数表示检索的例子,学生选课库的关系模式为:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选课(学号,课程号,成绩).,【例4-6】求选修了课程号为“C2”课程的学生学号。,学号,(,课程号=C2,(选课),【例4-7】求选修了课程号为“C2”课的学生学号和姓名。,【例4-8】求没有选修课程号为“C2”课程的学生学号。,学号,(学生)-,学号,(,课程号=C2,(选课),学号,(,课程号 C2,(选课),学号,姓名,(,课程号=C2,(选课 学生),【例4-9】求既选修“C2”课程,又选修“C3”课程的学生学号。,学号,(,课程号=C2,(选课),学号,(,课程号,=,C3,(选课),学号,(,课程号=C2,课程号=C3,(选课),【例4-10】求选修课程号为“C2”或“C3”课程的学生学号。,学号,(,课程号=C2,(选课),学号,(,课程号=C3,(选课),或 ,学号,(,课程号=C2 课程号=C3,(选课),补充:检索至少选修课程号为C2或C4的学生学号。,学号,(,1=42=C25=C4,(选修选修)),【例4-11】求选修了全部课程的学生学号。,思考:,学号,(选课课程),【例4-12】一个学号为“98002”的学生所学过的所有课程可能也被其他学生选修,求这些学生的学号和姓名。,学号,课程号,(选课)(课程),学号,姓名,(,学号,,,课程号,(选课),课程号,(,学号=98002,(选课)(学生),补充,(1)将新课程元组(c10,PHYSICS,c4)插入到关系课程中,(课程(C10,PHYSICS,YU),(2)将学号S4选修课程号为C4的75分成绩改为85分。,(选修-(S4,C4,75))(S4,C4,85),小结,对于只涉及到选择、投影、连接的查询可用下列表达式表示:,(,(RS)或者,(,(RS),对于,否定,的操作,一般要用,差,操作表示,例如“检索不学C2课的学生姓名”。,对于检索具有“,全部,”特征的操作,一般要用,除法,操作表示,例如“检索学习全部课程的学生姓名”。,此课件下载可自行编辑修改,供参考!,感谢您的支持,我们努力做得更好!,
展开阅读全文