数据库与数据结构02_第1页
数据库与数据结构02_第2页
数据库与数据结构02_第3页
数据库与数据结构02_第4页
数据库与数据结构02_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第第2 2章章 关系数据库关系数据库本章要求本章要求1、了解关系模型的三个组成部分;、了解关系模型的三个组成部分;2、了解关系数据结构的形式化定义:域、笛卡儿、了解关系数据结构的形式化定义:域、笛卡儿积、关系及关系性质、关系模式,码;积、关系及关系性质、关系模式,码;3、理解关系的完整性,实体完整性和参照完整性;、理解关系的完整性,实体完整性和参照完整性;4、掌握关系代数运算:并、交、差、广义笛卡儿、掌握关系代数运算:并、交、差、广义笛卡儿积、选择、投影、连接、除;要求应用关系代数运积、选择、投影、连接、除;要求应用关系代数运算解决查询问题。算解决查询问题。 22.1 关系数据库概述关系数据

2、库概述 n关系数据库是支持关系模型的数据库系统关系数据库是支持关系模型的数据库系统n关系模型由关系数据结构、关系操作集合和完整性约关系模型由关系数据结构、关系操作集合和完整性约束三部分组成束三部分组成1. 关系数据结构关系数据结构n关系模型的数据结构就是用关系模型的数据结构就是用二维表格二维表格结构,表示实体结构,表示实体及实体之间联系,其中包括关系名、属性名、关键字及实体之间联系,其中包括关系名、属性名、关键字等。等。2. 关系操作关系操作n集合操作方式,操作对象和结果都是集合,一次一集集合操作方式,操作对象和结果都是集合,一次一集合(合(set-at-a-time)n关系操作包括:选择、投

3、影、连接、除、并、交、差关系操作包括:选择、投影、连接、除、并、交、差等查询操作,增、删、改操作等查询操作,增、删、改操作3n关系代数和关系演算,非过程化关系代数和关系演算,非过程化nSQL 查询、定义、控制功能,关系数据库的标查询、定义、控制功能,关系数据库的标准语言准语言3. 完整性约束完整性约束实体完整性、参照完整性和用户定义的完整性。实体完整性、参照完整性和用户定义的完整性。42.2 关系数据结构关系数据结构n在关系模型中,数据是以二维表的形式存在关系模型中,数据是以二维表的形式存在的,这个在的,这个二维表二维表就叫做就叫做关系关系。n关系理论关系理论是以是以集合代数集合代数理论为基础

4、的,因理论为基础的,因此,我们可以用集合代数给出二维表的此,我们可以用集合代数给出二维表的“关系关系”定义。定义。n为了从集合论的角度给出关系的定义,我为了从集合论的角度给出关系的定义,我们先引入们先引入域域和和笛卡尔积笛卡尔积的概念。的概念。52.2.1 域(域(Domain)n域是一组具有相同数据类型的值的集合,又称为域是一组具有相同数据类型的值的集合,又称为值域值域。(用。(用D表示)表示)n例如整数、实数、字符串的集合。例如整数、实数、字符串的集合。n域中所包含的值的个数称为域的域中所包含的值的个数称为域的基数基数(用(用m表表示)。示)。n关系中用域表示属性的取值范围。例如:关系中用

5、域表示属性的取值范围。例如:nD1=李力,王平,刘伟李力,王平,刘伟 m1=3nD2=男,女男,女 m2=2nD3=47,28,30 m3=3n其中,其中,D1,D2,D3为域名,分别表示教师关系中姓为域名,分别表示教师关系中姓名、性别、年龄的集合。名、性别、年龄的集合。n域值无排列次序,如域值无排列次序,如D2=男,女男,女=女,男女,男62.2.2 笛卡尔积笛卡尔积(Cartesian Product)n给定一组域给定一组域D1,D2,Dn(它们可以包含相(它们可以包含相同的元素,即可以完全不同,也可以部分或全部同的元素,即可以完全不同,也可以部分或全部相同)。相同)。D1,D2,Dn的笛

6、卡尔积为的笛卡尔积为D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。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);)

7、;而集合中的元素是没有排序次序的,如(而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)。)。73. 若若Di(i=1,2,n)为有限集,)为有限集,Di中的集合元素个中的集合元素个数称为数称为Di的的基数基数,用,用mi(i=1,2,n)表示,则笛)表示,则笛卡 尔 积卡 尔 积 D 1 D 2 D n 的 基 数的 基 数 M ( 即 元 素( 即 元 素(d1,d2,dn)的个数)为所有域的基数的累乘之积,)的个数)为所有域的基数的累乘之积,即即 nM= n例如:表示教师关系中姓名、性别两个域的笛卡尔积为:例如:表示教师关系中姓名、性别两个域的笛卡尔积为:n

8、D1D2=(李力,男),(李力,女),(王平,(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)男),(王平,女),(刘伟,男),(刘伟,女)n其中:其中:n(李力、王平、刘伟李力、王平、刘伟)、(男、女男、女)都是分量都是分量n(李力,男),(李力,女)等是元组(李力,男),(李力,女)等是元组n其基数其基数M=m1m2=3*2=6n元组的个数为元组的个数为6niim184. 笛卡尔积可用二维表的形式表示。笛卡尔积可用二维表的形式表示。n例如,上述的例如,上述的6个元组可表示成表个元组可表示成表2.1。表表2.1 D1和和D2的笛卡尔积的笛卡尔积n由上例可以看

9、出,笛卡尔积实际是一个二维表,表的框由上例可以看出,笛卡尔积实际是一个二维表,表的框架由域构成,表的任意一行就是一个元组,表中的每一架由域构成,表的任意一行就是一个元组,表中的每一列来自同一域,如第一个分量来自列来自同一域,如第一个分量来自D1,第二个分量来,第二个分量来自自D2。姓名姓名性别性别李力李力男男李力李力女女王平王平男男王平王平女女刘伟刘伟男男刘伟刘伟女女92.2.3 关系(关系(Relation)n笛卡尔积笛卡尔积D1D2Dn的任一子集称为定的任一子集称为定义 在 域义 在 域 D 1 , D 2 , D n 上 的上 的 n 元元 关 系关 系(Relation),可用),可用

10、R(D1,D2Dn)表)表示示nR为关系名,为关系名,n称为关系的目或度(称为关系的目或度(Degree)。)。当当n=1时,称为单元关系。时,称为单元关系。当当n=2时,称为二元关系。时,称为二元关系。当当n=n时,称为时,称为n元关系元关系属性:列名属性:列名n数学上关系是笛卡尔积的任意子集,但在实际应数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集。用中关系是笛卡尔积中所取的有意义的子集。10候选码与主码候选码与主码n能唯一标识关系中元组的属性或属性集,则称该能唯一标识关系中元组的属性或属性集,则称该属性或属性集为属性或属性集为候选码候选码(Candida

11、te Key),也,也称称候选关键字候选关键字或或候选键候选键。如:。如:n“学生关系学生关系”中的学号能唯一标识每一个学生,中的学号能唯一标识每一个学生,则属性则属性学号学号是学生关系的候选码。是学生关系的候选码。n在在“选课关系选课关系”中,只有属性的组合中,只有属性的组合“学号学号+课课程号程号”才能唯一地区分每一条选课记录,则属性才能唯一地区分每一条选课记录,则属性集集“学号学号+课程号课程号”是选课关系的候选码。是选课关系的候选码。关系的码关系的码 11候选码的形式化定义:候选码的形式化定义:n设关系设关系R有属性有属性A1,A2,An,其属,其属性集性集K=(Ai,Aj,Ak),当

12、且仅当),当且仅当满足下列条件时,满足下列条件时,K被称为候选码:被称为候选码:1. 唯一性(唯一性(Uniqueness):关系):关系R的任意两的任意两个不同元组,其属性集个不同元组,其属性集K的值是不同的。的值是不同的。2.最小性(最小性(Minimally):组成关系码的属性):组成关系码的属性集(集(Ai,Aj,Ak)中,任一属性都不能)中,任一属性都不能从属性集从属性集K中删掉,否则将破坏唯一性的性质中删掉,否则将破坏唯一性的性质例如:例如:“学生关系学生关系”中的每个学生的学号是唯一中的每个学生的学号是唯一的,的,“选课关系选课关系”中中“学号学号+课程号课程号” 的组合的组合也

13、是唯一的。对于属性集也是唯一的。对于属性集“学号学号+课程号课程号” 去去掉任一属性,都无法唯一标识选课记录。掉任一属性,都无法唯一标识选课记录。 12n如果一个关系中有多个候选码,可以从中选择一如果一个关系中有多个候选码,可以从中选择一个作为查询、插入或删除元组的操作变量,被选个作为查询、插入或删除元组的操作变量,被选用的候选码称为用的候选码称为主关系码主关系码(Primary Key),或,或简称为简称为主码主码、主键、关系码主键、关系码、关键字关键字。n假设在学生关系中没有重名的学生,则假设在学生关系中没有重名的学生,则“学号学号”和和“姓名姓名”都可作为学生关系的候选码。如果选定都可作

14、为学生关系的候选码。如果选定“学学号号”作为数据操作的依据,则作为数据操作的依据,则“学号学号”为主关系码。为主关系码。n主码是关系模型中的一个重要概念。每个关系必主码是关系模型中的一个重要概念。每个关系必需选择一个主码,选定以后,不能随意改变。每需选择一个主码,选定以后,不能随意改变。每个关系必定有且仅有一个主码,因为关系的元组个关系必定有且仅有一个主码,因为关系的元组无重复,至少关系的所有属性的组合可作为主码,无重复,至少关系的所有属性的组合可作为主码,通常用较小的属性组合作为主码。通常用较小的属性组合作为主码。13主属性与非码属性主属性与非码属性n主属性主属性(Prime Attribu

15、te):包含在主):包含在主码中的的各属性称为主属性。码中的的各属性称为主属性。n非码属性非码属性(Non-key Attribute):不包):不包含在任何候选码中的属性称为非码属性。含在任何候选码中的属性称为非码属性。n在最简单的情况下,一个候选码只包含一个在最简单的情况下,一个候选码只包含一个属性,如学生关系中的属性,如学生关系中的“学号学号”,教师关系,教师关系中的中的“教师号教师号”。n在最极终端的情况下,所有属性的组合是关在最极终端的情况下,所有属性的组合是关系的候选码,这时称为系的候选码,这时称为全码全码(all-key)。)。14n下面是一个全码的例子:下面是一个全码的例子:n

16、假设有教师授课关系假设有教师授课关系TCS,分别有三个属性,分别有三个属性教师(教师(T)、课程()、课程(C)和学生()和学生(S)。一个)。一个教师可以讲授多门课程,一门课程可以为多个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听。一门课程可以为多个学生选听。n在这种情况下,在这种情况下,T,C,S三者之间是多对多三者之间是多对多关系,关系,(T,C,S)三个属性的组合是关系三个属性的组合是关系TCS的候选码,称为的候选码,称为全码全码,T,C,S都是主属性。都是主属性。15n尽管尽管关系关

17、系与与二维表格二维表格、传统的、传统的数据文件数据文件是非常类似的,但是非常类似的,但它们之间又有重要的区别。它们之间又有重要的区别。 n严格地说,严格地说,关系关系是种规范化了的是种规范化了的二维表中行的集合二维表中行的集合,为了,为了使相应的数据操作简化,在关系模型中,对关系作了种种使相应的数据操作简化,在关系模型中,对关系作了种种限制限制,关系具有如下特性:,关系具有如下特性:1. 关系中不允许出现相同的元组。关系中不允许出现相同的元组。因为数学上集合中没因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的

18、。素的元组应该是唯一的。2. 关系中元组的顺序(即行序)是无关紧要的,在一个关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。关系中可以任意交换两行的次序。因为集合中的元素是因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。根据关无序的,所以作为集合元素的元组也是无序的。根据关系的这个性质,可以改变元组的顺序使其具有某种排序,系的这个性质,可以改变元组的顺序使其具有某种排序,然后按照顺序查询数据,可以提高查询速度。然后按照顺序查询数据,可以提高查询速度。关系的关系的6条性质条性质 163. 关系中属性的顺序是无关紧要的,即列的顺关系中属性的顺序是无关紧要的,

19、即列的顺序可以任意交换。序可以任意交换。交换时,应连同属性名一起交换时,应连同属性名一起交换,否则将得到不同的关系。交换,否则将得到不同的关系。n例如:关系例如:关系T1作如下交换时,无任何影响,如作如下交换时,无任何影响,如下表所示:下表所示:性别性别姓名姓名男男李力李力女女王平王平男男刘伟刘伟17n而作如下交换时,不交换属性名,只交换属性列而作如下交换时,不交换属性名,只交换属性列中的值,则得到不同的关系,如下表中的值,则得到不同的关系,如下表: 姓名姓名性别性别男男李力李力女女王平王平男男刘伟刘伟184. 同一属性名下的各个属性值必须来自同一个域,是同一属性名下的各个属性值必须来自同一个

20、域,是同一类型的数据,列是同质的。同一类型的数据,列是同质的。5. 关系中各个属性必须有不同的名字,不同的属性可关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。来自同一个域,即它们的分量可以取自同一个域。n例如,有如下表中关系,职业与兼职是两个不同的属性,例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业教师,工人,辅导员。但它们取自同一个域职业教师,工人,辅导员。 姓名姓名职业职业兼职兼职张强张强教师教师辅导员辅导员王丽王丽工人工人教师教师刘宁刘宁教师教师辅导员辅导员196. 关系中每一分量必须是不可分的数据项关系中每一分量必须是

21、不可分的数据项,或者说所有属,或者说所有属性值都是原子的,即是一个确定的值,而不是值的集合。性值都是原子的,即是一个确定的值,而不是值的集合。属性值可以为空值,表示属性值可以为空值,表示“未知未知”或或“不可使用不可使用”,即,即不可不可“表中有表表中有表”。满足此条件的关系称为。满足此条件的关系称为规范化关系规范化关系,否则称为否则称为非规范化关系非规范化关系。n例如,在表例如,在表2.8中,籍贯含有省、市县两项,出现了中,籍贯含有省、市县两项,出现了“表表中有表中有表”的现象,则为非规范化关系,而把籍贯分成省、市的现象,则为非规范化关系,而把籍贯分成省、市县两列,将其规范化,如表县两列,将

22、其规范化,如表2.9所示。所示。 表表2.8 表表2.9姓名姓名籍贯籍贯姓名姓名省省市县市县省省市县市县张强张强吉林吉林长春长春张强张强吉林吉林长春长春王丽王丽山西山西大同大同王丽王丽山西山西大同大同20关系模式和关系数据库模式关系模式和关系数据库模式n一个关系的属性名的集合一个关系的属性名的集合R(A1,A2,An)叫做叫做关系模式关系模式。其中:。其中:nR 为 关 系 名 ,为 关 系 名 , A 1 , A 2 , , A n 为 属 性 名为 属 性 名(i=1,2,n)。n由定义可以看出,关系模式是关系的框架,或由定义可以看出,关系模式是关系的框架,或者称为表者称为表框架框架,指出

23、了关系由哪些属性构成,指出了关系由哪些属性构成,是对关系结构的描述。是对关系结构的描述。n一组关系模式的集合叫做一组关系模式的集合叫做关系数据库模式关系数据库模式。 关系数据库模式与关系数据库关系数据库模式与关系数据库 21n关系数据库模式关系数据库模式是对关系数据库结构的描述,是对关系数据库结构的描述,或者说是对关系数据库框架的描述,是关系的或者说是对关系数据库框架的描述,是关系的型。与关系数据库模式对应的数据库中的当前型。与关系数据库模式对应的数据库中的当前值就是关系数据库的内容,称为值就是关系数据库的内容,称为关系数据库的关系数据库的实例实例。n例如,在教学数据库中,共有五个关系,其关例

24、如,在教学数据库中,共有五个关系,其关系模式分别为:系模式分别为:n学生(学号,姓名,性别,年龄,系别)学生(学号,姓名,性别,年龄,系别)n教师(教师号,姓名,性别,年龄,系别)教师(教师号,姓名,性别,年龄,系别)n课程(课程号,课程名,课时)课程(课程号,课程名,课时)n选课(学号,课程号,成绩)选课(学号,课程号,成绩)n授课(教师号,课程号)授课(教师号,课程号)22n在每个关系中,又有其相应的数据库的实例在每个关系中,又有其相应的数据库的实例n例如:与例如:与学生关系学生关系模式对应的数据库中的实例模式对应的数据库中的实例有如下有如下6个元组:个元组: S1赵亦赵亦女女17计算机计

25、算机S2钱尔钱尔男男18信息信息S3孙珊孙珊女女20信息信息S4李思李思男男21自动化自动化S5周武周武男男19计算机计算机S6吴丽吴丽女女20自动化自动化23关系数据库n关系数据库是“一组随时间变化,具有各种度的规范化关系的集合”。n由此可见,关系数据库也有型和值的概念,其型就是关系数据库模式,相对固定;其值就是关系数据库内容,代表现实世界中的实体,而实体是随着时间不断变化的,所以其值在不同的时刻会有所变化。242.3 关系的完整性关系的完整性n为了维护数据库中数据与现实世界的一致性,对关系为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条数据库的插

26、入、删除和修改操作必须有一定的约束条件,这就是关系模型的三类完整性:件,这就是关系模型的三类完整性:n实体完整性实体完整性n参照完整性参照完整性n用户定义的完整性用户定义的完整性1. 实体完整性实体完整性(Entity Integrity)n实体完整性实体完整性是指主码的值不能为空或部分为空。是指主码的值不能为空或部分为空。n关系模型中的一个元组对应一个实体,一个关系则对关系模型中的一个元组对应一个实体,一个关系则对应一个实体集。现实世界中的实体是可区分的应一个实体集。现实世界中的实体是可区分的n例如,一条学生记录对应着一个学生,学生关系对应着学例如,一条学生记录对应着一个学生,学生关系对应着

27、学生的集合。属性生的集合。属性“学号学号” 主码主码25外部码外部码n如果关系如果关系R2的一个或一组属性的一个或一组属性X不是不是R2的主码,而是另一关系的主码,而是另一关系R1的主码,则该属的主码,则该属性或属性组性或属性组X称为关系称为关系R2的的外部码外部码或或外码外码(Foreign key)。并称关系)。并称关系R2为为参照参照关系关系(referencing relation),关系,关系R 1 为为 被 参 照 关 系被 参 照 关 系 ( r e f e r e n c e d relation)。2. 参照完整性参照完整性(Referential integrity) 多个

28、关系多个关系26n例例如选课关系中的如选课关系中的“学号学号”属性与学生关系的属性与学生关系的主码主码“学号学号”相对应,相对应,“课程号课程号”属性与课程属性与课程关系的主码关系的主码“课程号课程号”相对应,因此,相对应,因此,“学号学号”和和“课程号课程号”属性是选课关系的属性是选课关系的外部关系码外部关系码。学生关系和课程关系为学生关系和课程关系为被参照关系被参照关系,选课关系,选课关系为为参照关系参照关系。n由外部关系码的定义可知,被参照关系的主码由外部关系码的定义可知,被参照关系的主码和参照关系的外码必须定义在同一个域上。和参照关系的外码必须定义在同一个域上。n如选课关系中的如选课关

29、系中的“学号学号”与学生关系的主码与学生关系的主码“学号学号”定义在同一个域上,定义在同一个域上,“课程号课程号”属性与课程关系的主属性与课程关系的主码码“课程号课程号”定义在同一个域上。定义在同一个域上。n如果关系如果关系R2的外部关系码的外部关系码X与关系与关系R1的主关系的主关系码相符码相符,则则X的每个值或者等于的每个值或者等于R1中主关系码的中主关系码的某一个值,或者取空值。某一个值,或者取空值。27n在前例中,如果按照参照完整性规则,选课关在前例中,如果按照参照完整性规则,选课关系中的外部关系码系中的外部关系码“学号学号”和和“课程号课程号”可以可以取空值或者取被参照关系中已经存在

30、的值。但取空值或者取被参照关系中已经存在的值。但由于由于“学号学号”和和“课程号课程号”是选课关系中主属是选课关系中主属性,根据实体完整性规则,两个属性都不能为性,根据实体完整性规则,两个属性都不能为空。空。所以所以选课关系中的外部关系码选课关系中的外部关系码“学号学号”和和“课程号课程号”只能取被参照关系中已经存在的值。只能取被参照关系中已经存在的值。n实体完整性实体完整性和和参照完整性参照完整性是关系模型必须满足是关系模型必须满足的完整性约束条件,被称作的完整性约束条件,被称作关系的两个不变性关系的两个不变性。任何关系数据库系统都应该支持这两类完整性。任何关系数据库系统都应该支持这两类完整

31、性。n除此之外,不同的关系数据库系统由于应用环除此之外,不同的关系数据库系统由于应用环境的不同,往往还需要一些特殊的约束条件,境的不同,往往还需要一些特殊的约束条件,这就是这就是用户定义完整性用户定义完整性。283 . 用 户 定 义 完 整 性 (用 户 定 义 完 整 性 ( U s e r - d e f i n e d Integrity)n用户定义完整性用户定义完整性是针对某一具体关系数据库的是针对某一具体关系数据库的约束条件。约束条件。n它反映某一具体应用所涉及的数据必须满足的它反映某一具体应用所涉及的数据必须满足的语义要求。语义要求。n例如,属性值根据实际需要,要具备一些约束例如

32、,属性值根据实际需要,要具备一些约束条件,如选课关系中成绩不能为负数;某些数条件,如选课关系中成绩不能为负数;某些数据的输入格式要有一些限制等。关系模型应该据的输入格式要有一些限制等。关系模型应该提供定义和检验这类完整性的机制,以便用统提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程一的、系统的方法处理它们,而不要由应用程序承担这一功能。序承担这一功能。29n关系模型与其他模型相比,最有特色的是它的关系模型与其他模型相比,最有特色的是它的数数据库语言据库语言。n这种语言灵活方便、表达能力和功能都很强。这种语言灵活方便、表达能力和功能都很强。n目前关系数据库所使用

33、的语言一般都具有目前关系数据库所使用的语言一般都具有定义定义、查询查询、更新更新和和控制控制一体化的特点,而一体化的特点,而查询查询是最主是最主要的部分。要的部分。n所以说,关系数据库的核心部分是所以说,关系数据库的核心部分是查询查询,故又称,故又称为为查询语言查询语言,而查询的条件要使用,而查询的条件要使用关系运算表达关系运算表达式式来表示。来表示。n因此,关系运算是设计关系数据语言的基础。因此,关系运算是设计关系数据语言的基础。n按表达查询的方法不同,关系运算可分为按表达查询的方法不同,关系运算可分为关系代关系代数数和和关系演算关系演算两大类。两大类。 2.4 关系代数关系代数302.6.

34、1 关系代数的分类及其运算符关系代数的分类及其运算符n关系代数是对关系进行集合代数运算,是基于关系代数的操关系代数是对关系进行集合代数运算,是基于关系代数的操作语言,称为作语言,称为关系代数语言,简称关系代数关系代数语言,简称关系代数。n它是由它是由IBM在一个实验性的系统上实现的,称为在一个实验性的系统上实现的,称为ISBL(Information System Base Language)语语言。言。nISBL的每个语句都类似于一个关系代数表达式。的每个语句都类似于一个关系代数表达式。n关系代数的关系代数的运算对象运算对象是是关系关系,运算结果运算结果也是也是关系关系,关系代数,关系代数用

35、到的运算符主要包括四类:用到的运算符主要包括四类:n集合运算符集合运算符:(并),(并),-(差),(差),(交),(交),X(广义笛(广义笛卡尔积);卡尔积);n专门的关系运算符专门的关系运算符:(选择选择),(投影),(投影),(连接),(连接),*(自然连接),(自然连接),(除);(除);n算术比较运算符算术比较运算符:(大于),(大于),(大于等于),(大于等于), ,1000) (SEX=男男) (T) n结果如图所示。结果如图所示。 n注意:字符型数据的值应该使用单引号括起来,注意:字符型数据的值应该使用单引号括起来,例如,例如,计算机计算机,男男。 TNOTNSEXAGEPRO

36、FSALCOMMDEPTT1李力李力男男47教授教授15003000计算机计算机442. 投影(投影(Projection)n投影运算也是单目运算,关系投影运算也是单目运算,关系R上的投影是从上的投影是从R中选择出若干属性列,组成新的关系,即对中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元定的若干属性及顺序取出相应列,删去重复元组。记作:组。记作:A(R)=tA|tRn其中其中A为为R中的属性列,中的属性列,为投影运算符。为投影运算符。n从其定义可看出,投影运算是从列的角度进行从其定

37、义可看出,投影运算是从列的角度进行的运算,这正是选择运算和投影运算的区别所的运算,这正是选择运算和投影运算的区别所在。选择运算是从关系的水平方向上进行运算在。选择运算是从关系的水平方向上进行运算的,而投影运算则是的,而投影运算则是从关系的垂直方向上进行从关系的垂直方向上进行的。的。 45例例 查询教师的姓名及其职称。查询教师的姓名及其职称。nTN,TNO,PROF(T)或或n2,1,5(T) (其中(其中2,1,5分别为分别为TN、TNO和和PROF的属的属性序号)性序号)n结果右图所示结果右图所示 n上例表明,上例表明,投影运算可以改变投影运算可以改变关系的属性次序关系的属性次序 TNTNO

38、PROF李力李力T1教授教授王平王平T2讲师讲师刘伟刘伟T3讲师讲师张雪张雪T4教授教授张兰张兰T5副教授副教授46例例 查询教师关系中有哪些系。查询教师关系中有哪些系。nDEPT(T)n结果如右图所示结果如右图所示 n由上例可以看出,投影后取消了某些属性列后,由上例可以看出,投影后取消了某些属性列后,就可能出现重复行,应该取消这些完全相同的就可能出现重复行,应该取消这些完全相同的行。所以投影之后,不但减少了属性,元组也行。所以投影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。可能减少,新关系与原关系不相容。 DEPT计算机计算机信息信息自动化自动化47例例 查询讲授查询讲授C5

39、课程的教师号。课程的教师号。nTNO(CNO=C5(TC)n结果如右图所示。结果如右图所示。 n本例中选择运算和投影运算相结合,先在本例中选择运算和投影运算相结合,先在授课表中选择满足条件的元组,再于授课表中选择满足条件的元组,再于TNO属性上进行投影。属性上进行投影。 TNOT2T3T5483. 连接(连接(Join)n连接运算是二目运算,是从两个关系的笛卡尔积连接运算是二目运算,是从两个关系的笛卡尔积中选择满足连接条件的元组,组成新的关系。中选择满足连接条件的元组,组成新的关系。n设关系设关系R(A1,A2,An)及)及S(B1,B2,Bm) 连接属性集连接属性集X包含于包含于A1,A2,

40、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上满足上满足条件的子

41、集,组成新的关系。新条件的子集,组成新的关系。新关系的度为关系的度为n+m。 49记作:记作: RS=t rts |trRtsStrXtsY为真为真 XYn其中,其中,是连接运算符,是连接运算符,为算术比较运算符,也称为算术比较运算符,也称连接;连接;nXY为连接条件;为连接条件;n为为“=”时,称为等值连接;时,称为等值连接;n为为“”时,称为大于连接。时,称为大于连接。 n连接运算为非基本运算,可以用选择运算和广义笛连接运算为非基本运算,可以用选择运算和广义笛卡尔积运算来表示:卡尔积运算来表示:nRS=xy(RS)50n在连接运算中,一种最常用的连接是自然连接。在连接运算中,一种最常用的连

42、接是自然连接。n所谓所谓自然连接自然连接就是在等值连接的情况下,当连接就是在等值连接的情况下,当连接属性属性X与与Y具有相同属性组时,把在连接结果中具有相同属性组时,把在连接结果中重复的属性列重复的属性列去掉。即如果去掉。即如果R与与S具有相同的属具有相同的属性组性组Y,则自然连接可记作:,则自然连接可记作:nR S=t rts |trRtsStrY=tsYn自然连接自然连接是在广义笛卡尔积是在广义笛卡尔积RS中选出同名属中选出同名属性上符合相等条件元组,再进行投影,去掉重复性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。的同名属性,组成新的关系。 51例例 如下图如下图(

43、a)、(b)所示的两个关系所示的两个关系R与与S,(c)为为R和和S的大于连接(的大于连接(CD),),(d)为为R和和S的等值连接的等值连接(C=D),),(e)为为R和和S的等值连接(的等值连接(R.B=S.B),),(f)为为R和和S的自然连接。的自然连接。 R S (a) (b) ABCBDa1b12b15a1b24b26a2b36b37a2b48b3852大于连接(大于连接(CD) 等值连接(等值连接(C=D) (c) (d) AR.BCS.BDAR.BCS.BDa2b36b15a2b36b26a2b48b15a2b48b38a2b48b26a2b48b3753等值连接等值连接(R.

44、B=S.B) 自然连接自然连接 (e) (f) 图图2.9 连接运算举例连接运算举例 AR.BCS.BDABCDa1b12b15a1b125a1b24b26a1b246a2b36b37a2b367a2b36b38a2b36854结合上例,我们可以看出结合上例,我们可以看出等值连接与自然连接的等值连接与自然连接的区别区别:1. 等值连接中不要求相等属性值的属性名相同,等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在即两关系只有在同名属性同名属性才能进行自然连接。才能进行自然连接。如上例如上例R中的中的C列和列和S中的中的D列可进行等值连接,列可进行等值连接,但因为属性名不同,不能进行自然连接。但因为属性名不同,不能进行自然连接。2. 等值连接不将重复属性去掉,而自然连接去掉等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,重复属性,也可以说,自然连接是去掉重复列自然连接是去掉重复列的等值连接的等值连接。如上例。如上例R中的中的B列和列和S中的中的B列进列进行等值连接时,结果有两个重复的属性列行等值连接时,结果有两个重复的属性列B,而而进行自然连接时,结果只有一个属性列进行自然连接时,结果只有一个属性列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论