《【教学课件】第三章关系数据库.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第三章关系数据库.ppt(107页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章关系数据库关系数据库v本章主要讲述本章主要讲述:关系模型的数据结构关系模型的数据结构关系的定义和性质关系的定义和性质关系数据库的基本概念关系数据库的基本概念关系运算关系运算3.1关系模型关系模型关关系系模模型型就就是是用用二二维维表表格格结结构构来来表表示示实实体体及及实实体体之之间联系的模型。间联系的模型。关关系系模模型型是是各各个个关关系系的的框框架架的的集集合合,即即关关系系模模型型是是一一些些表表格格的的格格式式,其其中中包包括括关关系系名名、属属性性名名、关关键键字等。字等。例如,教学数据库中教师与课程的关系模型如图。例如,教学数据库中教师与课程的关系模型如图。教师关系教
2、师关系课程关系课程关系C授课关系授课关系SC图图3.1教师教师课程数据库的关系模型课程数据库的关系模型TNO教师号教师号TN姓名姓名SEX性别性别AGE年龄年龄PROF职称职称SAL工资工资COMM岗位津贴岗位津贴DEPT系别系别CNO课程号课程号CN课程名课程名CT课时课时TNO教师号教师号CNO课程号课程号3.1关系模型关系模型由上例可以看出,在一个关系中可以存放两类信息:由上例可以看出,在一个关系中可以存放两类信息:o一类是描述实体本身的信息一类是描述实体本身的信息o一类是描述实体(关系)之间的联系的信息一类是描述实体(关系)之间的联系的信息在在层层次次模模型型和和网网状状模模型型中中,
3、把把有有联联系系的的实实体体(元元组组)用用指指针针链链接接起起来来,实实体体之之间间的的联联系系是是通通过过指指针针来来实实现的。现的。而而关关系系模模型型则则采采用用不不同同的的思思想想,即即用用二二维维表表来来表表示示实实体体与与实实体体之之间间的的联联系系,这这就就是是关关系系模模型型的的本本质质所所在。在。所所以以,在在建建立立关关系系模模型型时时,只只要要把把的的所所有有的的实实体体及及其其属属性性用用关关系系框框架架来来表表示示,同同时时把把实实体体之之间间的的关关系系也用关系框架来表示,就可以得到一个关系模型也用关系框架来表示,就可以得到一个关系模型。关系模型具有以下关系模型具
4、有以下特点特点:(1)描述的一致性。)描述的一致性。(2)利用公共属性连接。)利用公共属性连接。(3)结构简单直观。)结构简单直观。(4)有严格的理论基础。)有严格的理论基础。(5)语言表达简练。)语言表达简练。关系模型的关系模型的缺点缺点是在执行查询操作时,需要执行是在执行查询操作时,需要执行一系列的查表、拆表、并表操作,故执行时间较一系列的查表、拆表、并表操作,故执行时间较长,但是采用优化技术的当代关系数据库系统的长,但是采用优化技术的当代关系数据库系统的查询操作的效率,完全不逊色于建立在其他数据查询操作的效率,完全不逊色于建立在其他数据模型上的数据库系统。模型上的数据库系统。3.2关系的
5、定义关系的定义在在关关系系模模型型中中,数数据据是是以以二二维维表表的的形形式式存存在在的,这个的,这个二维表二维表就叫做就叫做关系关系。关关系系理理论论是是以以集集合合代代数数理理论论为为基基础础的的,因因此此,我我们们可可以以用用集集合合代代数数给给出出二二维维表表的的“关关系系”定义。定义。为为了了从从集集合合论论的的角角度度给给出出关关系系的的定定义义,我我们们先引入先引入域域和和笛卡尔积笛卡尔积的概念。的概念。3.2.1域(域(Domain)域域是是一一组组具具有有相相同同数数据据类类型型的的值值的的集集合合,又又称称为为值值域域。(用(用D表示)表示)例如整数、实数、字符串的集合。
6、例如整数、实数、字符串的集合。域中所包含的值的个数称为域的域中所包含的值的个数称为域的基数基数(用(用m表示)。表示)。关系中用域表示属性的取值范围。例如:关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟李力,王平,刘伟 m1=3D2=男,女男,女m2=2D3=47,28,30 m3=3其其中中,D1,D2,D3为为域域名名,分分别别表表示示教教师师关关系系中中姓姓名名、性别、年龄的集合。性别、年龄的集合。域名无排列次序,如域名无排列次序,如D2=男,女男,女=女,男女,男3.2.2笛卡尔积笛卡尔积(CartesianProduct)给给定定一一组组域域D1,D2,Dn(它它们们可可
7、以以包包含含相相同同的的元元素素,即即可可以以完完全全不不同同,也也可可以以部部分分或或全全部部相相同同)。D1,D2,Dn的的笛笛卡卡尔尔积积为为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。由定义可以看出,笛卡尔积也是一个由定义可以看出,笛卡尔积也是一个集合集合。其中:其中:1.元元素素中中的的每每一一个个di叫叫做做一一个个分分量量(Component),来来自自相相应的域(应的域(di Di)2.每每一一个个元元素素(d1,d2,d3,dn)叫叫做做一一个个n元元组组(n-tuple),简简称称元元组组(Tuple)。但但元元组组不不是是di的集合,元组的每个分量(的集
8、合,元组的每个分量(di)是按序排列的。如:是按序排列的。如:(1,2,3)(2,3,1)(1,3,2););而而集集合合中中的的元元素素是是没没有有排排序序次次序序的的,如如(1,2,3)=(2,3,1)=(1,3,2)3.2.2笛卡尔积笛卡尔积(CartesianProduct)3.若若Di(i=1,2,n)为为有有限限集集,Di中中的的集集合合元元素素个个数数称称为为Di的的基基数数,用用mi(i=1,2,n)表表示示,则则笛笛卡卡尔尔积积D1D2Dn的的基基数数M(即即元元素素(d1,d2,dn)的的个个数数)为为所所有有域域的的基基数数的的累累乘乘之之积积,即即M=例如:上述表示教师
9、关系中姓名、性别两个域的笛卡尔积为:例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1D2=(李李力力,男男),(李李力力,女女),(王王平平,男男),(王平,女),(刘伟,男),(刘伟,女)(王平,女),(刘伟,男),(刘伟,女)其中:其中:李力、王平、刘伟、男、女都是分量李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组(李力,男),(李力,女)等是元组其基数其基数M=m1m2=3*2=6;元组的个数为元组的个数为64.笛卡尔积可用二维表的形式表示笛卡尔积可用二维表的形式表示。例如,上述的例如,上述的6个元组可表示成表个元组可表示成表3.1。表表3.1D1和和D2的
10、笛卡尔积的笛卡尔积由由上上例例可可以以看看出出,笛笛卡卡尔尔积积实实际际是是一一个个二二维维表表,表表的的框框架架由由域域构构成成,表表的的任任意意一一行行就就是是一一个个元元组组,表表中中的的每每一一列列来来自自同同一一域域,如如第第一一个个分分量量来来自自D1,第二个分量来自第二个分量来自D2。姓名姓名性别性别李力李力男男李力李力女女王平王平男男王平王平女女刘伟刘伟男男刘伟刘伟女女3.2.3关系(关系(Relation)笛笛卡卡尔尔积积D1D2Dn的的任任一一子子集集称称为为定定义义在在域域D1,D2,Dn上上的的n元元关关系系(Relation),可可用用R(D1,D2Dn)表示表示如如
11、上上例例D1D2笛笛卡卡尔尔积积的的子子集集可可以以构构成成教教师师关关系系T1,如下表:如下表:姓名姓名性别性别李力李力男男王平王平女女刘伟刘伟男男q几点说明:几点说明:1.R为为 关关 系系 名名,n称称 为为 关关 系系 的的 目目 或或 度度(Degree)。)。当当n=1时,称为时,称为单元单元关系。关系。当当n=2时,称为时,称为二元二元关系。关系。当当n=n时,称为时,称为n元元关系。关系。如上例为二元关系,关系名为如上例为二元关系,关系名为T。几点说明:几点说明:2.该该子子集集中中的的元元素素是是关关系系中中的的元元组组,用用r表表示示,关关系系中中元元组组个个数数是是关关系
12、系的的基基数数。如如(李李力力,男男),(王王平平,女女),(刘刘伟伟,男男)为为三三个个元元组组,关关系系的基数为的基数为3。如如果果一一个个关关系系的的元元组组个个数数是是无无限限的的,则则称称为为无限关系无限关系;如如果果一一个个关关系系的的元元组组个个数数是是有有限限的的,则则称称为为有限关系有限关系。由由于于计计算算机机存存储储系系统统的的限限制制,我我们们一一般般不不去去处理无限关系,而只考虑有限关系。处理无限关系,而只考虑有限关系。几点说明:几点说明:3.同样可以把关系看成一个二维表。其中,同样可以把关系看成一个二维表。其中,(1)表的框架由域)表的框架由域Di(i=1,2,n)
13、构成;构成;(2)表的任意一行对应一个元组;)表的任意一行对应一个元组;(3)表的每一列来自同一域;)表的每一列来自同一域;(4)域域可可以以相相同同,为为了了加加以以区区别别,每每列列起起一一个个名名字字,称称为为属属性性,n目目关关系系有有n个个属属性性,属属性性的的名名字字唯唯一一,属性的取值范围属性的取值范围Di(i=1,2,n)称为称为值域值域(5)具有相同关系框架的关系成为同类关系,)具有相同关系框架的关系成为同类关系,例例如如,有另一个关系有另一个关系T2,如表如表3.3所示:所示:T1和和T2是同类关系。是同类关系。姓名姓名性别性别张雪张雪女女张兰张兰女女几点说明:几点说明:4
14、.数数学学上上关关系系是是笛笛卡卡尔尔积积的的任任意意子子集集,但但在在实实际际应应用用中中关关系系是是笛笛卡卡尔尔积积中中所所取取的的有有意意义义的的子子集集。例例如如在在表表3.1中中选选取取一一个个子子集集构成如下关系,显然不符合实际情况构成如下关系,显然不符合实际情况姓名姓名性别性别李力李力男男李力李力女女在关系模型中,在关系模型中,关系关系可进一步定义为:可进一步定义为:定定义义在在域域D1,D2,Dn(不不要要求求完完全全相相异异)上上的的关关系系由由关关系系头头(Heading)和和关关系系体体(Body)组成。组成。关关系系头头:由由属属性性名名A1,A2,An的的集集合合组组
15、成成,每每个个属属性性Ai正正好好对对应应一一个个域域Di(i=1,2,n),关关系系头头,也也称称关关系系框框架架,相相对对固固定定,是关系的数据结构的描述。是关系的数据结构的描述。关关系系体体:是是指指关关系系结结构构中中的的内内容容或或者者数数据据,并并非非固定不变,它随元组的建立、删除或修改而变化。固定不变,它随元组的建立、删除或修改而变化。3.3关系的性质关系的性质尽尽管管关关系系与与二二维维表表格格、传传统统的的数数据据文文件件是是非非常常类类似似的的,但它但它们们之之间间又有重要的区又有重要的区别别。严严格格地地说说,关关系系是是种种规规范范化化了了的的二二维维表表中中行行的的集
16、集合合,为为了了使使相相应应的的数数据据操操作作简简化化,在在关关系系模模型型中中,对对关关系系作了种种作了种种限制限制,关系具有如下特性:,关系具有如下特性:1.关关系系中中不不允允许许出出现现相相同同的的元元组组。因因为为数数学学上上集集合合中中没没有有相相同同的的元元素素,而而关关系系是是元元组组的的集集合合,所所以以作作为为集集合合元元素的元组应该是唯一的。素的元组应该是唯一的。2.关关系系中中元元组组的的顺顺序序(即即行行序序)是是无无关关紧紧要要的的,在在一一个个关关系系中中可可以以任任意意交交换换两两行行的的次次序序。因因为为集集合合中中的的元元素素是是无无序序的的,所所以以作作
17、为为集集合合元元素素的的元元组组也也是是无无序序的的。根根据据关关系系的的这这个个性性质质,可可以以改改变变元元组组的的顺顺序序使使其其具具有有某某种种排排序序,然后按照顺序查询数据,可以提高查询速度然后按照顺序查询数据,可以提高查询速度。3.关关系系中中属属性性的的顺顺序序是是无无关关紧紧要要的的,即即列列的的顺顺序序可可以以任任意意交交换换。交交换换时时,应应连连同同属属性名一起交换,否则将得到不同的关系。性名一起交换,否则将得到不同的关系。例例如如:关关系系T1作作如如下下交交换换时时,无无任任何何影影响响,如如下下表所示表所示性别性别姓名姓名男男李力李力女女王平王平男男刘伟刘伟4.同同
18、一一属属性性名名下下的的各各个个属属性性值值必必须须来来自自同同一一个个域域,是同一类型的数据。是同一类型的数据。5.关关系系中中各各个个属属性性必必须须有有不不同同的的名名字字,不不同同的的属属性性可可来来自自同同一一个个域域,即即它它们们的的分分量量可可以以取取自自同同一一个域。个域。例例如如,有有如如下下表表中中关关系系,职职业业与与兼兼职职是是两两个个不不同同的的属属性性,但但它它们们取取自自同同一一个个域域职职业业教教师师,工工人人,辅导员辅导员姓名姓名职业职业兼职兼职张强张强教师教师辅导员辅导员王丽王丽工人工人教师教师刘宁刘宁教师教师辅导员辅导员6.关关系系中中每每一一分分量量必必
19、须须是是不不可可分分的的数数据据项项,或或者者说说所所有有属属性性值值都都是是原原子子的的,即即是是一一个个确确定定的的值值,而而不不是是值值的的集集合合。属属性性值值可可以以为为空空值值,表表示示“未未知知”或或“不不可可使使用用”,即即不不可可“表表中中有有表表”。满满足足此此条条件件的的关关系系称为称为规范化关系规范化关系,否则称为,否则称为非规范化关系非规范化关系。例例如如,在在表表3.2中中,籍籍贯贯含含有有省省、市市县县两两项项,出出现现了了“表表中中有有表表”的的现现象象,则则为为非非规规范范化化关关系系,而而把把籍籍贯贯分分成成省省、市市县县两两列列,将将其其规规范范化化,如如
20、表表3.3所示所示姓名姓名籍贯籍贯姓名姓名省省市市县县省省市县市县张强张强吉林吉林长春长春张强张强吉林吉林长春长春王丽王丽山西山西大同大同王丽王丽山西山西大同大同表表3.2 表表3.33.4关系的键关系的键2.4.1候选键与关系键候选键与关系键能能唯唯一一标标识识关关系系中中元元组组的的属属性性或或属属性性集集,则则称称该该属属性性或或属属性性集集为为候候选选键键(CandidateKey),也称也称候选关键字候选关键字或或候选码候选码。如:。如:“学学生生关关系系”中中的的学学号号能能唯唯一一标标识识每每一一个个学学生,则属性生,则属性学号学号是学生关系的候选键。是学生关系的候选键。在在“选
21、选课课关关系系”中中,只只有有属属性性的的组组合合“学学号号+课课程程号号”才才能能唯唯一一地地区区分分每每一一条条选选课课记记录录,则则属属性性集集“学学号号+课课程程号号”是是选选课课关关系系的的候候选键选键下面给出候选键的形式化定义:下面给出候选键的形式化定义:设设关关系系R有有属属性性A1,A2,An,其其属属性性集集K=(Ai,Aj,Ak),当当且且仅仅当当满满足足下列条件时,下列条件时,K被称为候选键:被称为候选键:1.唯唯一一性性(Uniqueness):关关系系R的的任任意意两两个个不同元组,其属性集不同元组,其属性集K的值是不同的。的值是不同的。2.最最小小性性(Minima
22、lly):组组成成关关系系键键的的属属性性集集(Ai,Aj,Ak)中中,任任一一属属性性都都不不能能从从属属性集性集K中删掉,否则将破坏唯一性的性质中删掉,否则将破坏唯一性的性质例如:例如:“学学生生关关系系”中中的的每每个个学学生生的的学学号号是是唯唯一的,一的,“选选课课关关系系”中中“学学号号+课课程程号号”的的组合也是唯一的组合也是唯一的对对于于属属性性集集“学学号号+课课程程号号”去去掉掉任任一属性,都无法唯一标识选课记录一属性,都无法唯一标识选课记录。如如果果一一个个关关系系中中有有多多个个候候选选键键,可可以以从从中中选选择择一一个个作作为为查查询询、插插入入或或删删除除元元组组
23、的的操操作作变变量量,被被选选用用的的候候选选键键称称为为主主关关系系键键(PrimaryKey),或或简简称称为为主主键键、主主码码、关关系系键键、关关键字键字。q例例如如,假假设设在在学学生生关关系系中中没没有有重重名名的的学学生生,则则“学学号号”和和“姓姓名名”都都可可作作为为学学生生关关系系的的候候选选键键。如如果果选选定定“学学号号”作作为为数数据据操操作作的的依依据据,则则“学学号号”为主关系键。为主关系键。主关系键主关系键是关系模型中的一个重要概念。是关系模型中的一个重要概念。每每个个关关系系必必需需选选择择一一个个主主关关系系键键,选选定定以以后后,不能随意改变。不能随意改变
24、。每每个个关关系系必必定定有有且且仅仅有有一一个个主主关关系系键键,因因为为关关系系的的元元组组无无重重复复,至至少少关关系系的的所所有有属属性性的的组组合合可可作作为为主主关关系系键键,通通常常用用较较小小的的属属性性组组合作为主关系键。合作为主关系键。3.4.2主属性与非主属性主属性与非主属性主主属属性性(PrimeAttribute):包包含含在在主主码码中中的的的各属性称为主属性。的各属性称为主属性。非非主主属属性性(Non-PrimeAttribute):不不包包含含在任何候选码中的属性称为非主属性。在任何候选码中的属性称为非主属性。在在最最简简单单的的情情况况下下,一一个个候候选选
25、码码只只包包含含一一个个属属性性,如如学学生生关关系系中中的的“学学号号”,教教师师关关系系中中的的“教教师师号号”。在在最最极极终终端端的的情情况况下下,所所有有属属性性的的组组合合是是关关系系的的候候选码,这时称为选码,这时称为全码全码(all-key)。)。下面是一个全码的例子:下面是一个全码的例子:假假设设有有教教师师授授课课关关系系TCS,分分别别有有三三个个属属性性教教师师(T)、课课程程(C)和和学学生生(S)。一一个个教教师师可可以以讲讲授授多多门门课课程程,一一门门课课程程可可以以为为多多个个教教师师讲讲授授,同同样样一一个个学学生生可可以以选选听听多多门门课课程,一门课程可
26、以为多个学生选听。程,一门课程可以为多个学生选听。在在这这种种情情况况下下,T,C,S三三者者之之间间是是多多对对多多关关系系,(T,C,S)三三个个属属性性的的组组合合是是关关系系TCS的的候选码,称为候选码,称为全码全码,T,C,S都是主属性。都是主属性。3.4.3外部关系键外部关系键如如果果关关系系R2的的一一个个或或一一组组属属性性X不不是是R2的的主主码码,而而是是另另一一关关系系R1的的主主码码,则则该该属属性性或或属属性性组组X称称为为关关系系R2的的外外部部关关系系键键或或外外键键(Foreignkey)。并并称称关关系系R2为为参参照照关关系系(referencingrela
27、tion),关关系系R1为为被被参照关系参照关系(referencedrelation)。由外部关系键的定义可知,被参照关系的主由外部关系键的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。码和参照关系的外码必须定义在同一个域上。习习题题1学校学校校长校长聘用聘用 姓名姓名校名校名聘期聘期11 电话电话 地址地址职称职称性别性别学校学校(校名,电话,地址,(校名,电话,地址,校长名,聘期)校长名,聘期)校长校长(姓名,职称,性别)(姓名,职称,性别)习习题题2商店商店(商店编号,商店名,商店编号,商店名,地址)地址)职工职工(职工编号,姓名,性职工编号,姓名,性别,商店编号,聘
28、期别,商店编号,聘期)商店商店职工职工聘用聘用职工编号职工编号商店编号商店编号聘期聘期1N 商店名商店名 地址地址姓名姓名性别性别习习题题3设某商业集团数据库中有设某商业集团数据库中有3 3个实体集,一是个实体集,一是“商店商店”实体集,属性有商店编号、商店店名、实体集,属性有商店编号、商店店名、地址等;二是地址等;二是“商品商品”实体集,属性有商品号、实体集,属性有商品号、商品名、规格、单价;三是商品名、规格、单价;三是“职工职工”实体集,实体集,属性有职工编号、姓名、性别、业绩等。属性有职工编号、姓名、性别、业绩等。商店与商品之间存在商店与商品之间存在“销售销售”联系,每个商店联系,每个商
29、店可销售多种商品,每种商品也可放在多个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;销售,每个商店销售一种商品,有月销售量;商店与职工之间存在着商店与职工之间存在着“聘用聘用”联系,每个商联系,每个商店有多名职工,每个职工只能在一个商店工作,店有多名职工,每个职工只能在一个商店工作,商店聘用制共有聘期和月薪商店聘用制共有聘期和月薪。试画出该系统的试画出该系统的E-R模型;并将其转化为关系模型模型;并将其转化为关系模型。习习题题3参参考考答答案案商店商店商品商品职工职工销售销售聘用聘用商品号商品号职工编号职工编号商店编号商店编号月销售量月销售量月薪月薪聘期聘
30、期MN1N 商店名商店名 地址地址商品名商品名规格规格单价单价姓名姓名性别性别业绩业绩E-R图转换为关系模式图转换为关系模式商店商店(商店编号,商店名,地址)商店编号,商店名,地址)职工职工(职工编号,姓名,性别,业绩,职工编号,姓名,性别,业绩,商店编号,聘期,月薪商店编号,聘期,月薪)商品商品(商品号,商品名,规格,单价)商品号,商品名,规格,单价)销售销售(商店编号,商品号,月销售量商店编号,商品号,月销售量)习习题题4设某商业集团数据库中有设某商业集团数据库中有3 3个实体集,一是个实体集,一是“公司公司”实体集,属性有公司编号、公司名、地实体集,属性有公司编号、公司名、地址等;二是址
31、等;二是“仓库仓库”实体集,属性有仓库编号、实体集,属性有仓库编号、仓库名、地址;三是仓库名、地址;三是“职工职工”实体集,属性有实体集,属性有职工编号、姓名、性别等。职工编号、姓名、性别等。公司与仓库之间存在公司与仓库之间存在“隶属隶属”联系,每个公司联系,每个公司管辖多个仓库,每个仓库只能属于一个公司管管辖多个仓库,每个仓库只能属于一个公司管辖;仓库与职工之间存在着辖;仓库与职工之间存在着“聘用聘用”联系,每联系,每个仓库可聘用多名职工,每个职工只能在一个个仓库可聘用多名职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和月薪。仓库工作,仓库聘用职工有聘期和月薪。试画出该系统的试画出该系
32、统的E-R模型;并将其转化为关系模型。模型;并将其转化为关系模型。习习题题4参参考考答答案案仓库仓库公司公司职工职工隶属隶属聘用聘用公司编号公司编号职工编号职工编号仓库编号仓库编号月薪月薪聘期聘期N11N 仓库名仓库名 地址地址公司名公司名地址地址姓名姓名性别性别E-R图转换为关系模式图转换为关系模式公司公司(公司编号,公司名,地址)公司编号,公司名,地址)职工职工(职工编号,姓名,性别,职工编号,姓名,性别,仓库编号,聘期,月薪仓库编号,聘期,月薪)仓库仓库(仓库编号,仓库名,地址,公司编号)仓库编号,仓库名,地址,公司编号)3.4.4关系模型的完整性关系模型的完整性为为了了维维护护数数据据
33、库库中中数数据据与与现现实实世世界界的的一一致致性性,对对关关系系数数据据库库的的插插入入、删删除除和和修修改改操操作作必必须须有有一一定定的的约约束条件,这就是关系模型的三类完整性:束条件,这就是关系模型的三类完整性:1.实体完整性实体完整性(EntityIntegrity)指主关系键的值不能为空或部分为空。指主关系键的值不能为空或部分为空。关系模型中的一个元组对应一个实体,一个关系则关系模型中的一个元组对应一个实体,一个关系则对应一个实体集。对应一个实体集。q例如,一条学生记录对应着一个学生,学生关系对应着例如,一条学生记录对应着一个学生,学生关系对应着学生的集合。学生的集合。2.参照完整
34、性参照完整性(Referentialintegrity)如如果果关关系系R2的的外外部部关关系系键键X与与关关系系R1的的主主关关系系键键相相符符,则则X的的每每个个值值或或者者等等于于R1中中主主关关系系键键的的某一个值,或者取空值某一个值,或者取空值。u如如图图3.3所所示示,学学生生关关系系中中某某个个学学生生(如如s1)“系系别别”的的取取值值,必必须须在在参参照照的的系系别别关关系系中中主主关关系系键键“系系别别”的的值值中中能能够够找找到到,否否则则表表示示把把该该学学生生分配到一个不存在的部门中,显然不符合语义。分配到一个不存在的部门中,显然不符合语义。u如如果果某某个个学学生生
35、(如如s11)“系系别别”取取空空值值,则则表表示示该该学学生生尚尚未未分分配配到到任任何何一一个个系系。否否则则,它它只只能能取专业关系中某个元组的专业号值取专业关系中某个元组的专业号值S(学生关系)学生关系)D(系别关系)系别关系)图图3.3学生表和系别表学生表和系别表SNO学号学号SN姓名姓名SEX性别性别AGE年龄年龄DEPT所在系所在系DEPT所在系所在系ADDR地址地址S1赵亦赵亦女女17计算机计算机计算机计算机1号楼号楼S2钱尔钱尔男男18信息信息信息信息1号楼号楼自动化自动化2号楼号楼S11王威王威男男193.用户定义完整性用户定义完整性(User-definedIntegri
36、ty)用用户户定定义义完完整整性性是是针针对对某某一一具具体体关关系系数数据据库库的的约约束束条件。条件。它它反反映映某某一一具具体体应应用用所所涉涉及及的的数数据据必必须须满满足足的的语语义义要求。要求。例例如如,属属性性值值根根据据实实际际需需要要,要要具具备备一一些些约约束束条条件件,如如选选课课关关系系中中成成绩绩不不能能为为负负数数;某某些些数数据据的的输输入入格格式式要要有有一一些些限限制制等等关关系系模模型型应应该该提提供供定定义义和和检检验验这这类类完完整整性性的的机机制制,以以便便用用统统一一的的、系系统统的的方方法法处处理理它们,而不要由应用程序承担这一功能。它们,而不要由
37、应用程序承担这一功能。3.5.1关系模式和关系数据库模式关系模式和关系数据库模式一一个个关关系系的的属属性性名名的的集集合合R(A1,A2,An)叫做叫做关系模式关系模式。其中:。其中:vR为为 关关 系系 名名,A1,A2,An为为 属属 性性 名名(i=1,2,n)。由由定定义义可可以以看看出出,关关系系模模式式是是关关系系的的框框架架,或或者者称称为为表表框框架架,指指出出了了关关系系由由哪哪些些属属性性构构成,是对关系结构的描述。成,是对关系结构的描述。一组关系模式的集合叫做一组关系模式的集合叫做关系数据库模式关系数据库模式关关系系数数据据库库模模式式是是对对关关系系数数据据库库结结构
38、构的的描描述述,或或者者说说是是对对关关系系数数据据库库框框架架的的描描述述,也也就就是是前前面面所所讲讲过过的的关关系系头头,可可以以看看作作是是关关系系的的型型。与与关关系系数数据据库库模模式式对对应应的的数数据据库库中中的的当当前前值值就就是是关关系系数数据据库库的的内内容容,称称为为关关系系数数据据库库的的实实例例,即即前前面面所所讲讲过的过的关系体关系体,可以看作是关系的值。,可以看作是关系的值。例例如如,在在下下图图所所示示的的教教学学数数据据库库中中,共共有有五五个个关关系,其关系模式分别为:系,其关系模式分别为:学生(学号,姓名,性别,年龄,系别)学生(学号,姓名,性别,年龄,
39、系别)教师(教师号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)课程(课程号,课程名,课时)选课(学号,课程号,成绩)选课(学号,课程号,成绩)授课(教师号,课程号)授课(教师号,课程号)在每个关系中,又有其相应的数据库的实例在每个关系中,又有其相应的数据库的实例例如:与学生关系模式对应的数据库中的实例有如例如:与学生关系模式对应的数据库中的实例有如下下6个元组:个元组:S1赵亦赵亦女女17计算机计算机S2钱尔钱尔男男18信息信息S3孙珊孙珊女女20信息信息S4李思李思男男21自动化自动化S5周武周武男男19计算机计算机S6吴丽吴丽女女20自动化自
40、动化3.5.2关系数据库关系数据库关关系系数数据据库库是是“一一组组随随时时间间变变化化,具具有有各各种种度度的的规规范化关系的集合范化关系的集合”。因因为为关关系系是是由由关关系系头头和和关关系系体体组组成成的的,所所以以关关系系数数据库也可以看作是一组关系头和关系体的集合。据库也可以看作是一组关系头和关系体的集合。由由此此可可见见,关关系系数数据据库库也也有有型型和和值值的的概概念念,其其型型就就是是关关系系数数据据库库模模式式,相相对对固固定定;其其值值就就是是关关系系数数据据库库内内容容,代代表表现现实实世世界界中中的的实实体体,而而实实体体是是随随着着时时间不断变化的,所以其值在不同
41、的时刻会有所变化。间不断变化的,所以其值在不同的时刻会有所变化。l比如,学生和教师的年龄随时间而增长,教师的工资和比如,学生和教师的年龄随时间而增长,教师的工资和岗位津贴也会发生变化岗位津贴也会发生变化3.6关系代数关系代数关系模型与其他模型相比,最有特色的是它的关系模型与其他模型相比,最有特色的是它的数据库语言。数据库语言。目前关系数据库所使用的语言一般都具有目前关系数据库所使用的语言一般都具有定义定义、查询查询、更新更新和和控制控制一体化的特点,而一体化的特点,而查询查询是最是最主要的部分。主要的部分。所以说,关系数据库的核心部分是所以说,关系数据库的核心部分是查询查询,故又,故又称为称为
42、查询语言查询语言,而查询的条件要使用,而查询的条件要使用关系运算关系运算表达式表达式来表示。来表示。因此,关系运算是设计关系数据语言的基础。因此,关系运算是设计关系数据语言的基础。按表达查询的方法不同,关系运算可分为按表达查询的方法不同,关系运算可分为关系关系代数代数和和关系演算关系演算两大类。两大类。3.6.1关系代数的分类及其运算符关系代数的分类及其运算符关关系系代代数数是是对对关关系系进进行行集集合合代代数数运运算算,是是基基于于关关系系代代数数的的操操作作语语言言,称称为为关关系系代代数数语语言言,简简称称关关系系代代数数。v它它是是由由IBM在在一一个个实实验验性性的的系系统统上上实
43、实现现的的,称称为为ISBL(InformationSystemBaseLanguage)语言语言。关系代数的关系代数的运算对象是运算对象是关系关系,运算结果运算结果也是也是关系关系关系代数用到的运算符主要包括四类关系代数用到的运算符主要包括四类:q集集合合运运算算符符:(并并),-(差差),(交交),X(广义笛卡尔积);广义笛卡尔积);q专专门门的的关关系系运运算算符符:(选选择择),(投投影影),(连接)(连接),(自然连接),(自然连接),(除);(除);q算算术术比比较较运运算算符符:(大大于于),(大大于于等等于于),(小小于于),(小小于于等等于于),=(等等于于),(不等于);(
44、不等于);q逻辑运算符逻辑运算符:(与),(与),(或),(或),(非)(非)关系代数运算按运算符的不同主要分为两类:关系代数运算按运算符的不同主要分为两类:传传统统的的集集合合运运算算:把把关关系系看看成成元元组组的的集集合合,以以元元组组作作为为集集合合中中元元素素来来进进行行运运算算,其其运运算算是是从从关关系系的的“水水平平”方方向向即即行行的的角角度度进进行行的的。包括并、差、交和笛卡尔积等运算。包括并、差、交和笛卡尔积等运算。专专门门的的关关系系运运算算:不不仅仅涉涉及及行行运运算算,也也涉涉及及列列运运算算,这这种种运运算算是是为为数数据据库库的的应应用用而而引引进进的的特特殊殊
45、运运算算。包包括括选选取取、投投影影、连连接接和和除除法法等运算。等运算。3.6.2传统的集合运算传统的集合运算对对两两个个关关系系的的集集合合运运算算传传统统的的集集合合运运算算是是二二目目运运算算,是是在在两两个个关关系系中中进进行行的的。但但是是并并不不是是任任意意的的两两个个关关系系都都能能进进行行这这种种集集合合运运算算,而而是是要要在在两两个个满满足足一一定定条件的关系中进行运算。条件的关系中进行运算。设给定两个关系设给定两个关系R、S,若满足:若满足:()()具有相同的度具有相同的度n;()R中中第第i个个属属性性和和S中中第第i个个属属性性必必须须来来自自同同一一个个域。则说关
46、系域。则说关系R、S是相容的。是相容的。除除笛笛卡卡尔尔积积外外,要要求求参参加加运运算算的的关关系系必必须须满满足足上上述述的相容性定义。的相容性定义。1.并(并(Union)关系关系R和关系和关系S的并由属于的并由属于R或属于或属于S的元组组成,的元组组成,即即R和和S的所有元组合并,删去重复元组,组成一的所有元组合并,删去重复元组,组成一个新关系,其结果仍为个新关系,其结果仍为n目关系。记作:目关系。记作:RS=t|t R t S对于关系数据库,记录的对于关系数据库,记录的插入插入和和添加添加可通过并运可通过并运算实现算实现。R S并运算范例并运算范例ABC367257723443RAB
47、C345723SABC367257723443345R S 2.差(差(Difference)关系关系R与关系与关系S的差由属于的差由属于R而不属于而不属于S的所有的所有元组组成,即元组组成,即R中删去与中删去与S中相同的元组,组成中相同的元组,组成一个新关系,其结果仍为一个新关系,其结果仍为n目关系。记作:目关系。记作:R-S=t|t R t S通过差运算,可实现关系数据库记录的通过差运算,可实现关系数据库记录的删除删除R S差运算范例差运算范例ABC367257723443RABC345723SABC367257443RS ABC367SR 3.交(交(Intersection)关关系系R
48、与与关关系系S的的交交由由既既属属于于R又又属属于于S的的元元组组组组成成,即即R与与S中中相相同同的的元元组组,组组成成一一个个新新关关系系,其结果仍为其结果仍为n目关系。记作:目关系。记作:RS=t|t R t S如如果果两两个个关关系系没没有有相相同同的的元元组组,那那么么它它们们的的交交为空。为空。交运算可以用差运算来表示:交运算可以用差运算来表示:RS=R-(R-S)R S交运算范例交运算范例ABC367257723443RABC345723SABC723RS 4.广广 义义 笛笛 卡卡 尔尔 积积(ExtendedCartesianProduct)两两个个分分别别为为n目目和和m目
49、目关关系系R和和S的的广广义义笛笛卡卡尔尔积积是是一一个个(n+m)列列的的元元组组的的集集合合,元元组组的的前前n列列是是关关系系R的的一一个个元元组组,后后m列列是是关关系系S的的一一个个元元组组。若若R有有k1个个元元组组,S有有k2个个元元组组,则则关关系系R和和关关系系S的的广义笛卡尔积有广义笛卡尔积有k1*k2个元组,记作个元组,记作RS=trts|tr R ts S关系的广义笛卡尔积可用于两关系的连接操作。关系的广义笛卡尔积可用于两关系的连接操作。广义笛卡尔积运算广义笛卡尔积运算AB 12rCD 10102010EaabbsAB 11112222CD 10192010101020
50、10Eaabbaabbr x s【Example Example 3.43.4】如如图图(a)a)、(b)(b)所所示示的的两两个个关关系系R与与S为为相相容容关关系系,(c)c)为为R与与S 的的并并(d)d)为为R与与S的的交交,(e)e)为为R与与S的差,的差,(f)f)为为R与与S的广义笛卡尔积。的广义笛卡尔积。RS(a)(b)ABCABCa1b1c1a1b1c1a1b1c2a2b2c1a2b2c1a2b3c2R SR-S(c)(d)RS(e)ABCABCa1b1c1a1b1c2a1b1c2a2b2c1a2b3c2ABCa1b1c1a2b2c1RSR.AR.BR.CS.AS.BS.Ca