【教学课件】第2章关系模型.ppt
返回返回第第2 2章章 关系模型关系模型1返回返回上一章介绍了三种三种主要的数据模型:层次模型网状模型关系模型其中关系模型关系模型简单灵活,并有着坚实的理论基础,已成为当前最流最流行行的数据模型。本章主要讲述本章主要讲述:关系模型的数据结构关系的定义和性质关系数据库的基本概念关系运算2返回返回2.1关系模型关系模型关关系系模模型型就就是是用用二二维维表表格格结结构构来来表表示示实实体体及及实实体体之之间间联系的模型。联系的模型。关关系系模模型型是是各各个个关关系系的的框框架架的的集集合合,即即关关系系模模型型是是一一些些表格的格式表格的格式,其中包括关系名、属性名、关键字等。,其中包括关系名、属性名、关键字等。例例如如,教教学学数数据据库库中中教教师师与与课课程程的的关关系系模模型型如如图图2.1所所示。示。教师关系课程关系C授课关系SC图2.1教师课程数据库的关系模型TNO教师号TN姓名SEX性别AGE年龄PROF职称SAL工资COMM岗位津贴DEPT系别CNO课程号CN课程名CT课时TNO教师号CNO课程号3返回返回从从各各个个关关系系的的框框架架中中,我我们们可可以以很很容容易易看看出出哪哪两两个个关关系之间有系之间有联系联系。例如:。例如:教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。而课程关系和授课关系有公共的属性“课程号”,则表明这两个关系也有联系。至于元组之间的联系,则与具体的数据有关。只有在公共属性上具有相同属性值的元组之间才有联系。4返回返回由上例可以看出,在一个关系中可以存放两类信息:由上例可以看出,在一个关系中可以存放两类信息:一类是描述实体本身的信息一类是描述实体(关系)之间的联系的信息在在层层次次模模型型和和网网状状模模型型中中,把把有有联联系系的的实实体体(元元组组)用用指针链接起来,实体之间的联系是通过指针链接起来,实体之间的联系是通过指针指针来实现的。来实现的。而而关关系系模模型型则则采采用用不不同同的的思思想想,即即用用二二维维表表来来表表示示实实体体与实体之间的联系,这就是关系模型的本质所在。与实体之间的联系,这就是关系模型的本质所在。所所以以,在在建建立立关关系系模模型型时时,只只要要把把的的所所有有的的实实体体及及其其属属性性用用关关系系框框架架来来表表示示,同同时时把把实实体体之之间间的的关关系系也也用用关关系系框架来表示,就可以得到一个关系模型。框架来表示,就可以得到一个关系模型。如上例中的教师课程数据库的关系模型就是这样建立的。5返回返回2.2关系的定义关系的定义在在关关系系模模型型中中,数数据据是是以以二二维维表表的的形形式式存存在在的的,这这个个二维表二维表就叫做就叫做关系关系。关关系系理理论论是是以以集集合合代代数数理理论论为为基基础础的的,因因此此,我我们们可可以用集合代数给出二维表的以用集合代数给出二维表的“关系关系”定义。定义。为为了了从从集集合合论论的的角角度度给给出出关关系系的的定定义义,我我们们先先引引入入域域和和笛卡尔积笛卡尔积的概念。的概念。6返回返回2.2.1域(域(Domain)域域是是一一组组具具有有相相同同数数据据类类型型的的值值的的集集合合,又又称称为为值值域域。(用(用D表示)表示)例如整数、实数、字符串的集合。域中所包含的值的个数称为域的域中所包含的值的个数称为域的基数基数(用(用m表示)。表示)。关系中用域表示属性的取值范围。例如:关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟m1=3D2=男,女m2=2D3=47,28,30m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域名无排列次序,如域名无排列次序,如D2=男,女男,女=女,男女,男7返回返回2.2.2笛卡尔积笛卡尔积(CartesianProduct)给给定定一一组组域域D1,D2,Dn(它它们们可可以以包包含含相相同同的的元元素素,即即可可以以完完全全不不同同,也也可可以以部部分分或或全全部部相相同同)。D1,D2,Dn的的笛笛卡卡尔尔积积为为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。由定义可以看出,笛卡尔积也是一个由定义可以看出,笛卡尔积也是一个集合集合。其中:其中:1.元素中的每一个di叫做一个分量(Component),来自相应的域(diDi)2.每一个元素(d1,d2,d3,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。但元组不是di的集合,元组的每个分量(di)是按序排列的。如:(1,2,3)(2,3,1)(1,3,2);而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)。8返回返回3.若Di(i=1,2,n)为有限集,Di中的集合元素个数称为Di的 基 数,用 mi(i=1,2,n)表 示,则 笛 卡 尔 积D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为所有域的基数的累乘之积,即M=例如:上述表示教师关系中姓名、性别两个域的笛卡尔积为:D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)其中:李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组其基数M=m1m2=3*2=6元组的个数为69返回返回4.笛卡尔积可用二维表的形式表示。例如,上述的6个元组可表示成表2.1。表表2.1D1和和D2的笛卡尔积的笛卡尔积由上例可以看出,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自D1,第二个分量来自D2。姓名性别李力男李力女王平男王平女刘伟男刘伟女10返回返回2.2.3关系(关系(Relation)笛笛卡卡尔尔积积D1D2Dn的的任任一一子子集集称称为为定定义义在在域域D1,D2,Dn上上的的n元元关关系系(Relation),可可用用R(D1,D2Dn)表示)表示如上例D1D2笛卡尔积的子集可以构成教师关系T1,如下表:姓名性别李力男王平女刘伟男11返回返回几点说明:几点说明:1.R为关系名,为关系名,n称为关系的目或度(称为关系的目或度(Degree)。)。当n=1时,称为单元关系。当n=2时,称为二元关系。当n=n时,称为n元关系。如上例为二元关系,关系名为如上例为二元关系,关系名为T。12返回返回2.该该子子集集中中的的元元素素是是关关系系中中的的元元组组,用用r表表示示,关关系系中中元元组组个个数数是是关关系系的的基基数数。如如(李李力力,男男),(王王平平,女女),(刘刘伟伟,男男)为为三三个个元元组组,关系的基数为关系的基数为3。如果一个关系的元组个数是无限的,则称为无限关系;如果一个关系的元组个数是有限的,则称为有限关系。由于计算机存储系统的限制,我们一般不去处理无限关系,而只考虑有限关系。3.同样可以把关系看成一个二维表。其中,同样可以把关系看成一个二维表。其中,(1)表的框架由域Di(i=1,2,n)构成;(2)表的任意一行对应一个元组;(3)表的每一列来自同一域;(4)域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,n)称为值域(5)具有相同关系框架的关系成为同类关系,例如,有另一个关系T2,如表2.3所示:T1和T2是同类关系。姓名性别张雪女张兰女13返回返回4.数数学学上上关关系系是是笛笛卡卡尔尔积积的的任任意意子子集集,但但在在实实际际应应用用中中关关系系是是笛笛卡卡尔尔积积中中所所取取的的有有意意义义的的子子集集。例例如如在在表表2.1中选取一个子集构成如下关系,显然不符合实际情况中选取一个子集构成如下关系,显然不符合实际情况在关系模型中,在关系模型中,关系关系可进一步定义为:可进一步定义为:定定义义在在域域D1,D2,Dn(不不要要求求完完全全相相异异)上上的的关关系系由由关系头(关系头(Heading)和关系体()和关系体(Body)组成。)组成。关系头:由属性名A1,A2,An的集合组成,每个属性Ai正好对应一个域Di(i=1,2,n),关系头,也称关系框架,相对固定,是关系的数据结构的描述。关系体:是指关系结构中的内容或者数据,并非固定不变,它随元组的建立、删除或修改而变化。姓名性别李力男李力女14返回返回尽尽管管关关系系与与二二维维表表格格、传传统统的的数数据据文文件件是是非非常常类类似似的的,但它但它们们之之间间又有重要的区又有重要的区别别。严严格格地地说说,关关系系是是种种规规范范化化了了的的二二维维表表中中行行的的集集合合,为为了了使使相相应应的的数数据据操操作作简简化化,在在关关系系模模型型中中,对对关关系系作了种种作了种种限制限制,关系具有如下特性:,关系具有如下特性:1.关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。2.关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。2.3关系的性质关系的性质15返回返回3.关系中属性的顺序是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。例例如如:关关系系T1作作如如下下交交换换时时,无无任任何何影影响响,如如下下表表所所示:示:性别姓名男李力女王平男刘伟16返回返回而作如下交换时,不交换属性名,只交换属性列中的而作如下交换时,不交换属性名,只交换属性列中的值,则得到不同的关系,如下表值,则得到不同的关系,如下表:姓名性别男李力女王平男刘伟17返回返回4.同一属性名下的各个属性值必须来自同一个域,是同一类型的数据。5.关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。例例如如,有有如如下下表表中中关关系系,职职业业与与兼兼职职是是两两个个不不同同的的属属性性,但但它它们们取取自自同同一一个个域域职职业业教教师师,工工人人,辅辅导导员。员。姓名职业兼职张强教师辅导员王丽工人教师刘宁教师辅导员18返回返回6.关系中每一分量必须是不可分的数据项,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示“未知”或“不可使用”,即不可“表中有表”。满足此条件的关系称为规范化关系,否则称为非规范化关系。例例如如,在在表表2.8中中,籍籍贯贯含含有有省省、市市县县两两项项,出出现现了了“表表中中有有表表”的的现现象象,则则为为非非规规范范化化关关系系,而而把把籍籍贯贯分分成成省省、市市县县两两列列,将其规范化,如表将其规范化,如表2.9所示。所示。表表2.8表表2.9姓名籍贯姓名省市县省市县张强吉林长春张强吉林长春王丽山西大同王丽山西大同19返回返回2.4.1候选键与关系键候选键与关系键能能唯唯一一标标识识关关系系中中元元组组的的属属性性或或属属性性集集,则则称称该该属属性性或或属属性性集集为为候候选选键键(CandidateKey),也也称称候候选选关关键键字字或或候选码候选码。如:。如:“学生关系”中的学号能唯一标识每一个学生,则属性学号是学生关系的候选键。在“选课关系”中,只有属性的组合“学号+课程号”才能唯一地区分每一条选课记录,则属性集“学号+课程号”是选课关系的候选键。2.4关系的键关系的键20返回返回下面给出候选键的形式化定义:下面给出候选键的形式化定义:设设关关系系R有有属属性性A1,A2,An,其其属属性性集集K=(Ai,Aj,Ak),当当且且仅仅当当满满足足下下列列条条件件时时,K被被称称为为候候选键:选键:1.唯一性(Uniqueness):关系R的任意两个不同元组,其属性集K的值是不同的。2.最小性(Minimally):组成关系键的属性集(Ai,Aj,Ak)中,任一属性都不能从属性集K中删掉,否则将破坏唯一性的性质例如:“学生关系”中的每个学生的学号是唯一的,“选课关系”中“学号+课程号”的组合也是唯一的。对于属性集“学号+课程号”去掉任一属性,都无法唯一标识选课记录。21返回返回如如果果一一个个关关系系中中有有多多个个候候选选键键,可可以以从从中中选选择择一一个个作作为为查查询询、插插入入或或删删除除元元组组的的操操作作变变量量,被被选选用用的的候候选选键键称称为为主主关关系系键键(PrimaryKey),或或简简称称为为主主键键、主主码码、关系键关系键、关键字关键字。例如,假设在学生关系中没有重名的学生,则“学号”和“姓名”都可作为学生关系的候选键。如果选定“学号”作为数据操作的依据,则“学号”为主关系键。主主关关系系键键是是关关系系模模型型中中的的一一个个重重要要概概念念。每每个个关关系系必必需需选选择择一一个个主主关关系系键键,选选定定以以后后,不不能能随随意意改改变变。每每个个关关系系必必定定有有且且仅仅有有一一个个主主关关系系键键,因因为为关关系系的的元元组组无无重重复复,至至少少关关系系的的所所有有属属性性的的组组合合可可作作为为主主关关系系键键,通常用较小的属性组合作为主关系键。通常用较小的属性组合作为主关系键。22返回返回2.4.2主属性与非码属性主属性与非码属性主主属属性性(PrimeAttribute):包包含含在在候候选选码码中中的的的的各各属属性称为主属性。性称为主属性。非非码码属属性性(Non-PrimeAttribute):不不包包含含在在任任何何候候选码中的属性称为非码属性。选码中的属性称为非码属性。在在最最简简单单的的情情况况下下,一一个个候候选选码码只只包包含含一一个个属属性性,如如学生关系中的学生关系中的“学号学号”,教师关系中的,教师关系中的“教师号教师号”。在在最最极极终终端端的的情情况况下下,所所有有属属性性的的组组合合是是关关系系的的候候选选码,这时称为码,这时称为全码全码(all-key)。)。23返回返回下面是一个全码的例子:下面是一个全码的例子:假设有教师授课关系TCS,分别有三个属性教师(T)、课程(C)和学生(S)。一个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听。在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属性的组合是关系TCS的候选码,称为全码,T,C,S都是主属性。24返回返回2.4.3外部关系键外部关系键如如果果关关系系R2的的一一个个或或一一组组属属性性X不不是是R2的的主主码码,而而是是另另一一关关系系R1的的主主码码,则则该该属属性性或或属属性性组组X称称为为关关系系R2的的外外部部关关系系键键或或外外码码(Foreignkey)。并并称称关关系系R2为为参参照照关关系系(referencingrelation),关关系系R1为为被被参参照照关关系系(referencedrelation)。例例2.1假假设设在在图图1.12所所示示的的教教学学数数据据库库中中增增加加一一个个系系别别关关 系系 D,包包 含含 两两 个个 属属 性性 系系 别别(DEPT)和和 地地 址址(ADDR),“系系别别”是是此此关关系系的的主主码码,而而“系系别别”并并不不是是学学生生关关系系和和教教师师关关系系的的主主码码,所所以以“系系别别”是是学生关系和教师关系的外部关系键。学生关系和教师关系的外部关系键。25返回返回例例2.2如如图图1.12所所示示的的选选课课关关系系中中的的“学学号号”属属性性与与学学生生关关系系的的主主码码“学学号号”相相对对应应,“课课程程号号”属属性性与与课课程程关关系系的的主主码码“课课程程号号”相相对对应应,因因此此,“学学号号”和和“课课程程号号”属属性性是是选选课课关关系系的的外外部部关关系系键键。学学生生关关系系和课程关系为和课程关系为被参照关系被参照关系,选课关系为,选课关系为参照关系参照关系。由由外外部部关关系系键键的的定定义义可可知知,被被参参照照关关系系的的主主码码和和参参照照关系的外码必须定义在同一个域上。关系的外码必须定义在同一个域上。如选课关系中的“学号”与学生关系的主码“学号”定义在同一个域上,“课程号”属性与课程关系的主码“课程号”定义在同一个域上。26返回返回2.4.4关系模型的完整性关系模型的完整性为为了了维维护护数数据据库库中中数数据据与与现现实实世世界界的的一一致致性性,对对关关系系数数据据库库的的插插入入、删删除除和和修修改改操操作作必必须须有有一一定定的的约约束束条条件,这就是关系模型的三类完整性:件,这就是关系模型的三类完整性:实体完整性参照完整性用户定义的完整性1.实体完整性实体完整性(EntityIntegrity)实体完整性实体完整性是指主关系键的值不能为空或部分为空。是指主关系键的值不能为空或部分为空。关系模型中的一个元组对应一个实体,一个关系则对关系模型中的一个元组对应一个实体,一个关系则对应一个实体集。应一个实体集。例如,一条学生记录对应着一个学生,学生关系对应着学生的集合。27返回返回现现实实世世界界中中的的实实体体是是可可区区分分的的,即即它它们们具具有有某某种种唯唯一一性性标标识识。与与此此相相对对应应,关关系系模模型型中中以以主主关关系系键键来来唯唯一一标标识识元组。元组。例如,学生关系中的属性“学号”可以唯一标识一个元组,也可以唯一标识学生实体。如如果果主主关关系系键键中中的的值值为为空空或或部部分分为为空空,即即主主属属性性为为空空,则则不不符符合合关关系系键键的的定定义义条条件件,不不能能唯唯一一标标识识元元组组及及与与其其相相对对应应的的实实体体。这这就就说说明明存存在在不不可可区区分分的的实实体体,从从而而与与现现实实世世界界中中的的实实体体是是可可以以区区分分的的事事实实相相矛矛盾盾。因因此此主主关关系键的值不能为空或部分为空系键的值不能为空或部分为空。例如,学生关系中的主关系键“学号”不能为空;选课关系中的主关系键“学号+课程号”不能部分为空,即“学号”和“课程号”两个属性都不能为空。28返回返回2.参照完整性参照完整性(Referentialintegrity)如如果果关关系系R2的的外外部部关关系系键键X与与关关系系R1的的主主关关系系键键相相符符,则则X的的每每个个值值或或者者等等于于R1中中主主关关系系键键的的某某一一个个值值,或或者取空值。者取空值。在在例例2.1系系别别关关系系中中的的属属性性“系系别别”是是学学生生关关系系外外部部关关系键。系键。如图2.2所示,学生关系中某个学生(如s1或s2)“系别”的取值,必须在参照的系别关系中主关系键“系别”的值中能够找到,否则表示把该学生分配到一个不存在的部门中,显然不符合语义。如果某个学生(如s11)“系别”取空值,则表示该学生尚未分配到任何一个系。否则,它只能取专业关系中某个元组的专业号值。29返回返回S(学生关系)(学生关系)D(系别关系)(系别关系)图图2.2学生表和系别表学生表和系别表SNO学号SN姓名SEX性别AGE年龄DEPT所在系DEPT所在系ADDR地址S1赵亦女17计算机计算机1号楼S2钱尔男18信息信息1号楼自动化2号楼S11王威男1930返回返回在在例例2.2中中,如如果果按按照照参参照照完完整整性性规规则则,选选课课关关系系中中的的外外部部关关系系键键“学学号号”和和“课课程程号号”可可以以取取空空值值或或者者取取被被参参照照关关系系中中已已经经存存在在的的值值。但但由由于于“学学号号”和和“课课程程号号”是是选选课课关关系系中中主主属属性性,根根据据实实体体完完整整性性规规则则,两两个个属属性性都都不不能能为为空空。所所以以选选课课关关系系中中的的外外部部关关系系键键“学学号号”和和“课课程程号号”中中能能取取被被参参照照关关系系中中已已经经存存在在的值。的值。实实体体完完整整性性和和参参照照完完整整性性是是关关系系模模型型必必须须满满足足的的完完整整性性约约束束条条件件,被被称称作作关关系系的的两两个个不不变变性性。任任何何关关系系数数据库系统都应该支持这两类完整性。据库系统都应该支持这两类完整性。除除此此之之外外,不不同同的的关关系系数数据据库库系系统统由由于于应应用用环环境境的的不不同同,往往往往还还需需要要一一些些特特殊殊的的约约束束条条件件,这这就就是是用用户户定定义完整性义完整性。31返回返回3.用户定义完整性(用户定义完整性(User-definedIntegrity)用用户户定定义义完完整整性性是是针针对对某某一一具具体体关关系系数数据据库库的的约约束束条条件。件。它它反反映映某某一一具具体体应应用用所所涉涉及及的的数数据据必必须须满满足足的的语语义义要要求。求。例例如如,属属性性值值根根据据实实际际需需要要,要要具具备备一一些些约约束束条条件件,如如选选课课关关系系中中成成绩绩不不能能为为负负数数;某某些些数数据据的的输输入入格格式式要要有有一一些些限限制制等等关关系系模模型型应应该该提提供供定定义义和和检检验验这这类类完完整整性性的的机机制制,以以便便用用统统一一的的、系系统统的的方方法法处处理理它它们们,而不要由应用程序承担这一功能。而不要由应用程序承担这一功能。32返回返回2.5.1关系模式和关系数据库模式关系模式和关系数据库模式一一个个关关系系的的属属性性名名的的集集合合R(A1,A2,An)叫叫做做关关系系模模式式。其中:。其中:R为关系名,A1,A2,An为属性名(i=1,2,n)。由由定定义义可可以以看看出出,关关系系模模式式是是关关系系的的框框架架,或或者者称称为为表表框框架架,指指出出了了关关系系由由哪哪些些属属性性构构成成,是是对对关关系系结结构构的的描描述。述。一组关系模式的集合叫做一组关系模式的集合叫做关系数据库模式关系数据库模式。2.5关系数据库模式与关系数据库关系数据库模式与关系数据库33返回返回关关系系数数据据库库模模式式是是对对关关系系数数据据库库结结构构的的描描述述,或或者者说说是是对对关关系系数数据据库库框框架架的的描描述述,也也就就是是前前面面所所讲讲过过的的关关系系头头,可可以以看看作作是是关关系系的的型型。与与关关系系数数据据库库模模式式对对应应的的数数据据库库中中的的当当前前值值就就是是关关系系数数据据库库的的内内容容,称称为为关关系系数数据据库库的的实实例例,即即前前面面所所讲讲过过的的关关系系体体,可可以以看看作作是关系的值。是关系的值。例例如如,在在图图1.12所所示示的的教教学学数数据据库库中中,共共有有五五个个关关系系,其关系模式分别为:其关系模式分别为:学生(学号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,系别)课程(课程号,课程名,课时)选课(学号,课程号,成绩)授课(教师号,课程号)34返回返回在每个关系中,又有其相应的数据库的实例在每个关系中,又有其相应的数据库的实例例如:与学生关系模式对应的数据库中的实例有如下6个元组:S1赵亦女17计算机S2钱尔男18信息S3孙珊女20信息S4李思男21自动化S5周武男19计算机S6吴丽女20自动化35返回返回2.5.2关系数据库关系数据库关关系系数数据据库库是是“一一组组随随时时间间变变化化,具具有有各各种种度度的的规规范范化关系的集合化关系的集合”。因因为为关关系系是是由由关关系系头头和和关关系系体体组组成成的的,所所以以关关系系数数据据库也可以看作是一组关系头和关系体的集合。库也可以看作是一组关系头和关系体的集合。由由此此可可见见,关关系系数数据据库库也也有有型型和和值值的的概概念念,其其型型就就是是关关系系数数据据库库模模式式,相相对对固固定定;其其值值就就是是关关系系数数据据库库内内容容,代代表表现现实实世世界界中中的的实实体体,而而实实体体是是随随着着时时间间不不断断变化的,所以其值在不同的时刻会有所变化。变化的,所以其值在不同的时刻会有所变化。36返回返回例例如如:图图1.12所所示示的的教教学学数数据据库库是是五五个个关关系系的的集集合合,或或者说是五个关系头和五个关系体的集合。者说是五个关系头和五个关系体的集合。其中,各个关系头相对固定,而关系体的内容,会随时间而变化。比如,学生和教师的年龄随时间而增长,教师的工资和岗位津贴也会发生变化。37返回返回关系模型与其他模型相比,最有特色的是它的关系模型与其他模型相比,最有特色的是它的数据库数据库语言语言。这种语言灵活方便、表达能力和功能都很强。这种语言灵活方便、表达能力和功能都很强。目前关系数据库所使用的语言一般都具有目前关系数据库所使用的语言一般都具有定义定义、查询查询、更新更新和和控制控制一体化的特点,而一体化的特点,而查询查询是最主要的部分。是最主要的部分。所以说,关系数据库的核心部分是所以说,关系数据库的核心部分是查询查询,故又称为,故又称为查查询语言询语言,而查询的条件要使用,而查询的条件要使用关系运算表达式关系运算表达式来表示。来表示。因此,关系运算是设计关系数据语言的基础。因此,关系运算是设计关系数据语言的基础。按表达查询的方法不同,关系运算可分为按表达查询的方法不同,关系运算可分为关系代数关系代数和和关系演算关系演算两大类。两大类。2.6关系代数关系代数38返回返回2.6.1关系代数的分类及其运算符关系代数的分类及其运算符关关系系代代数数是是对对关关系系进进行行集集合合代代数数运运算算,是是基基于于关关系系代代数的操作语言,称为数的操作语言,称为关系代数语言,简称关系代数关系代数语言,简称关系代数。它 是 由 IBM在 一 个 实 验 性 的 系 统 上 实 现 的,称 为ISBL(InformationSystemBaseLanguage)语言。ISBL的每个语句都类似于一个关系代数表达式。关关系系代代数数的的运运算算对对象象是是关关系系,运运算算结结果果也也是是关关系系,关关系代数用到的运算符主要包括四类:系代数用到的运算符主要包括四类:集合运算符:(并),-(差),(交),X(广义笛卡尔积);专门的关系运算符:(选择),(投影),(连接),*(自然连接),(除);算术比较运算符:(大于),(大于等于),1000)(SEX=男)(T)结果如图所示。结果如图所示。注注意意:字字符符型型数数据据的的值值应应该该使使用用单单引引号号括括起起来来,例例如如,计算机计算机,男男。TNOTNSEXAGEPROFSALCOMMDEPTT1李力男47教授15003000计算机52返回返回2.投影(投影(Projection)投投影影运运算算也也是是单单目目运运算算,关关系系R上上的的投投影影是是从从R中中选选择择出出若若干干属属性性列列,组组成成新新的的关关系系,即即对对关关系系在在垂垂直直方方向向进进行行的的运运算算,从从左左到到右右按按照照指指定定的的若若干干属属性性及及顺顺序序取取出相应列,删去重复元组。记作:出相应列,删去重复元组。记作:A(R)=tA|tR其中其中A为为R中的属性列,中的属性列,为投影运算符。为投影运算符。从其定义可看出,投影运算是从列的角度进行的运算,从其定义可看出,投影运算是从列的角度进行的运算,这正是选取运算和投影运算的区别所在。选取运算是这正是选取运算和投影运算的区别所在。选取运算是从关系的水平方向上进行运算的,而投影运算则是从从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。关系的垂直方向上进行的。53返回返回例例2.6查询教师的姓名及其职称。查询教师的姓名及其职称。TN,TNO,PROF(T)或2,1,5(T)(其中2,1,5分别为TN、TNO和PROF的属性序号)结果右图所示结果右图所示上例表明,上例表明,投影运算可以改变投影运算可以改变关系的属性次序关系的属性次序TNTNOPROF李力T1教授王平T2讲师刘伟T3讲师张雪T4教授张兰T5副教授54返回返回例例2.7查询教师关系中有哪些系。查询教师关系中有哪些系。DEPT(T)结果如右图所示结果如右图所示由由例例2.7可可以以看看出出,投投影影后后取取消消了了某某些些属属性性列列后后,就就可可能能出出现现重重复复行行,应应该该取取消消这这些些完完全全相相同同的的行行。所所以以投投影影之之后后,不不但但减减少少了了属属性性,元元组组也也可可能能减减少少,新新关关系系与原关系不相容。与原关系不相容。DEPT计算机信息自动化55返回返回例例2.8查询讲授查询讲授C5课程的教师号。课程的教师号。TNO(CNO=C5(TC)结果如右图所示。结果如右图所示。本本例例中中选选取取运运算算和和投投影影运运算算相相结结合合,先先在在授授课课表表中中选选取满足条件的元组,再于取满足条件的元组,再于TNO属性上进行投影。属性上进行投影。TNOT2T3T556返回返回3.连接(连接(Join)连连接接运运算算是是二二目目运运算算,是是从从两两个个关关系系的的笛笛卡卡尔尔积积中中选选取满足连接条件的元组,组成新的关系。取满足连接条件的元组,组成新的关系。设关系设关系R(A1,A2,An)及)及S(B1,B2,Bm),连接连接属性集属性集X包含于包含于A1,A2,An,及及Y包含于包含于B1,B2,Bm,X与与Y中属性列数目相等,且相对应中属性列数目相等,且相对应属性有共同的域。属性有共同的域。若若Z=A1,A2An/X(/X:去掉去掉X之外的属性之外的属性)及及W=B1,B2Bm/Y,则则R及及S可表示为可表示为R(Z,X),S(W,Y)关系关系R和和S在连接属性在连接属性X和和Y上的上的连接,就是以连接,就是以RS笛卡尔积中,选取笛卡尔积中,选取X属性列上的分量属性列上的分量与与Y属性列上的分量满足给定属性列上的分量满足给定比较条件的那些元组,比较条件的那些元组,也就是在也就是在RS上选取在连接属性上选取在连接属性X,Y上满足上满足条件的子条件的子集,组成新的关系。新关系的度为集,组成新的关系。新关系的度为n+m。57返回返回记作:记作:RS=trts|trRtsStrXtsY为真为真XY其其中中,是是连连接接运运算算符符,为为算算术术比比较较运运算算符符,也也称称连连接;接;XY为连接条件;为连接条件;为“=”时,称为等值连接;为“”时,称为大于连接。连连接接运运算算为为非非基基本本运运算算,可可以以用用选选取取运运算算和和广广义义笛笛卡卡尔尔积运算来表示:积运算来表示:RS=xy(RS)58返回返回在连接运算中,一种最常用的连接是自然连接。在连接运算中,一种最常用的连接是自然连接。所所谓谓自自然然连连接接就就是是在在等等值值连连接接的的情情况况下下,当当连连接接属属性性X与与Y具具有有相相同同属属性性组组时时,把把在在连连接接结结果果中中重重复复的的属属性性列列去去掉掉。即即如如果果R与与S具具有有相相同同的的属属性性组组Y,则则自自然然连连接接可记作:可记作:R*S=trts|trRtsStrY=tsY自自然然连连接接是是在在广广义义笛笛卡卡尔尔积积RS中中选选出出同同名名属属性性上上符符合合相相等等条条件件元元组组,再再进进行行投投影影,去去掉掉重重复复的的同同名名属属性性,组成新的关系。组成新的关系。59返回返回例例2.9如如图图2.9(a)、(b)所所示示的的两两个个关关系系R与与S,(c)为为R和和S的的 大大 于于 连连 接接(CD),(d)为为 R和和 S的的 等等 值值 连连 接接(C=D),(e)为为R和和S的的等等值值连连接接(R.B=S.B),(f)为为R和和S的自然连接。的自然连接。RS(a)(b)ABCBDa1b12b15a1b24b26a2b36b37a2b48b3860返回返回大于连接(大于连接(CD)等值连接(等值连接(C=D)(c)(d)AR.BCS.BDAR.BCS.BDa2b36b15a2b36b26a2b48b15a2b48b38a2b48b26a2b48b3761返回返回等值连接等值连接(R.B=S.B)自然连接自然连接(e)(f)图图2.9连接运算举例连接运算举例AR.BCS.BDABCDa1b12b15a1b125a1b24b26a1b246a2b36b37a2b367a2b36b38a2b36862返回返回结合上例,我们可以看出结合上例,我们可以看出等值连接与自然连接的区别等值连接与自然连接的区别:1.等等值值连连接接中中不不要要求求相相等等属属性性值值的的属属性性名名相相同同,而而自自然然连连接接要要求求相相等等属属性性值值的的属属性性名名必必须须相相同同,即即两两关关系系只只有有在在同同名名属属性性才才能能进进行行自自然然连连接接。如如上上例例R中中的的C列列和和S中中的的D列列可可进进行行等等值值连连接接,但但因因为为属属性性名名不不同同,不不能能进进行行自然连接。自然连接。2.等等值值连连接接不不将将重重复复属属性性去去掉掉,而而自自然然连连接接去去掉掉重重复复属属性性,也也可可以以说说,自自然然连连接接是是去去掉掉重重复复列列的的等等值值连连接接。如如上上例例R中中的的B列列和和S中中的的B列列进进行行等等值值连连接接时时,结结果果有有两两个个重重复复的的属属性性列列B,而而进进行行自自然然连连接接时时,结结果果只只有有一一个个属属性列性列B。63返回返回例例2.10查询讲授数据库课程的教师姓名。查询讲授数据库课程的教师姓名。TN(CN=数据库(C)*TNO,CNO(TC)*TNO,TN(T)或TN(TNO(CN=数据库(C)*TC)*TNO,TN(T)结果如右图所示。结果如右图所示。TN王平刘伟张兰64返回返回4.除法除法(Division)除除法法运运算算是是二二目目运运算算,设设有有关关系系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。除法运算为非基本运算,可以表示为:除法运算为非基本运算,可以表示为:RS=x(R)x(x(R)SR)65返回返回例例2.11已已知知关关系系R和和S,如如图图2.11(a),(b)所所示示,则则RS如如图图(c)所示。所示。与与除除法法的的定定义义相相对对应应,本本题题中中X=A,B=(a1,b2),(a2,b4),(a3,b5),Y=C,D=(c3,d5),(c4,d6),Z=F=f3,f4。其其中中,元元组在组在X上各个分量值的象集分别为:上各个分量值的象集分别为:(a1,b2)的象集为(c3,d5),(c4,d6)(a2,b4)的象集为(c1,d3)(a3,b5)的象集为(c2,d8)S在Y上的投影为(c3,d5),(c4,d6)显然只有显然只有(a1,b2)的象集包含的象集包含S在在Y上的投影,所以上的投影,所以RS=(a1,b2)66返回返回RSRS(a)(b)(c)图图2.11ABCDECDFABa1b2c3d5e1c3d5f3a1b2a1b2c4d6e1c4d6f4a2b4c1d3e3a3b5c2d8e467返回返回除除法法运运算算同同时时从从行行和和列列的的角角度度进进行行运运算算,适适合合于于包包含含“全部全部”之类的短语的查询。之类的短语的查询。例例2.12查询选修了全部课程的学生学号和姓名。查询选修了全部课程的学生学号和姓名。SNO,CNO(SC)CNO(C)*SNO,SN(S)68返回返回关关系系演演算算是是以以数数理理逻逻辑辑中中的的谓谓词词演演算算为为基基础础的的,通通过过谓词形式来