第3章 关系运算.ppt

上传人:高校教****PT 文档编号:96451149 上传时间:2023-11-29 格式:PPT 页数:70 大小:366.50KB
返回 下载 相关 举报
第3章 关系运算.ppt_第1页
第1页 / 共70页
第3章 关系运算.ppt_第2页
第2页 / 共70页
点击查看更多>>
资源描述

《第3章 关系运算.ppt》由会员分享,可在线阅读,更多相关《第3章 关系运算.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本章概论本章概论 关系数据库系统是当今普遍应用的数据库系统,关系数据库系统是当今普遍应用的数据库系统,它是通过关系数据模型建立起来的。关系运算是关它是通过关系数据模型建立起来的。关系运算是关系数据模型的理论基础。学好关系运算的理论知识系数据模型的理论基础。学好关系运算的理论知识会对以后关系型数据库设计和正确操作带来很大的会对以后关系型数据库设计和正确操作带来很大的帮助。本章主要介绍关系数据模型的基本定义和完帮助。本章主要介绍关系数据模型的基本定义和完整性规则、关系运算中关系代数的基本操作和如何整性规则、关系运算中关系代数的基本操作和如何优化关系表达式运算的问题。优化关系表达式运算的问题。本章本

2、章目录目录3.1 关系数据模型3.2 关系运算3.3 关系代数表达式的查询优化3.4本章小结习 题3.1 关系数据模型关系数据模型 关系数据库之所以能获得当今世界的普关系数据库之所以能获得当今世界的普遍应用,关键在于关系数据库有一个严密的、遍应用,关键在于关系数据库有一个严密的、经得起数学推导的、又容易被人们理解的、经得起数学推导的、又容易被人们理解的、在实践中证明是正确的关系数据模型。本节在实践中证明是正确的关系数据模型。本节从关系数据模型的定义、关键码和数据库表从关系数据模型的定义、关键码和数据库表之间的联系、关系模式概念和关系模型完整之间的联系、关系模式概念和关系模型完整性规则性规则4个

3、方面来介绍关系数据模型的理论知个方面来介绍关系数据模型的理论知识。识。3.1关系数据模型目录关系数据模型目录3.1.1 关系数据模型的定义关系数据模型的定义3.1.2 关键码和表之间的联系3.1.3 关系模式关系模式3.1.4 关系模型的完整性规则 域(域(Domain)定义定义 域是一组具有相同数据类型的值的集合。又称为值域(用D表示)。域中所包含的值的个数称为域的基数(用m表示)。在关系中就是用域来表示属性取值范围的。例如,学生性别的域是男,女,大学生入学年龄的域可以定为:16-19岁,姓名的域可以定为:4-8个字符等。如果用D1表示姓名,D2表示性别,D3表示年龄,则关于域基数的含义如下

4、:D1=张林,李以荣,欧阳正荣 D1的基数m1为3 D2=男,女 D2的基数m2为2 D3=16,17,18,19 D3的基数m3为4笛卡尔积(笛卡尔积(Cartesian Product)定义)定义 给定一组域D1、D2、Dn(这些域中可以包含相同的元素,也可以完全不同(即可以部分或全部相同),D1、D2、Dn的笛卡尔积为:D1D2Dn(d1,d2,dn)diDi,i1,2,n 由定义可以看出,笛卡尔积也是一个集合由定义可以看出,笛卡尔积也是一个集合。笛卡尔积笛卡尔积 定义说明定义说明(1)其中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple),或简称为元组(Tuple)。但元组

5、不是di的集合,元组由di按序排列而成。(2)元素中的每一个值di叫作一个分量(Component)。分量来自相应的域(diDi)。(3)若Di(i1,2,n)为有限集,其基数(Cardinal number)为mi(i1,2,n),则D1D2Dn的基数为n个域的基数累乘之积,即笛卡尔积可以表示为:mi=n1n2nn(n1,n2,nn分别表示分别表示D1,D2,Dn的的基数的个数)。基数的个数)。(4)笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。笛卡尔积笛卡尔积 定义举例定义举例 D1D2=(张林,男),(张林,女),(李以荣,男),(李以荣,女),(欧阳正荣,男

6、),(欧阳正荣,女)。可以表示成二维表,如下表3.1所示:表表3.1 笛卡尔积笛卡尔积D1D2姓名性别姓名性别张林男张林女李以荣男李以荣女欧阳正荣姓名性别姓名性别张林男张林女李以荣男李以荣女欧阳正荣男欧阳正荣女男欧阳正荣女 由此可以看出,由此可以看出,D1与与D2的笛卡尔积实质上的笛卡尔积实质上每一个域中各分量组合的集合,总元组数为:每一个域中各分量组合的集合,总元组数为:M=32=6关系(关系(Relation)定义定义D1D2Dn的任一子集叫作在域的任一子集叫作在域D1,D2,Dn上上的关系,用的关系,用 R(D1,D2,Dn)表示。如上例中表示。如上例中D1D2笛卡尔积的子集可以构成关系

7、笛卡尔积的子集可以构成关系T1,关系,关系T1是笛卡尔积的一部分是笛卡尔积的一部分,如下表如下表3.3所示:所示:R表示关系的名字,以后若关系没有确定的名字,表示关系的名字,以后若关系没有确定的名字,则关系名均用则关系名均用R表示,表示,n是关系的目或度是关系的目或度(Degree)。)。关关系举例系举例表3.3 D1D2笛卡尔积的子集(关系T1)姓名性别张林女李以荣男欧阳正荣男当n=1时,称为单元关系。当n=2时,称为二元关系。当n=m时,称为m元关系。一个一个典型的关系表典型的关系表(教师表教师表)教师编号姓名系别性别年龄身份证号1011程虹民计算机男3030102198112091581

8、1032刘良顺电子男4030101970091213832010王彩凤自动化女4530101965110414802131李同军数学女3630101965061115833011周林外文男213010199007281581关系性质关系性质(1)列是同质的:每一列中的分量是同一类型的数据,来自同一域)列是同质的:每一列中的分量是同一类型的数据,来自同一域(2)不同列可来自同一个域:不同列)不同列可来自同一个域:不同列(属性属性)要给予不同的属性名。要给予不同的属性名。(3)列的顺序无所谓:列的次序可以任意交换。)列的顺序无所谓:列的次序可以任意交换。(4)任意两个元组不能完全相同:这是由笛卡尔

9、积的性质决定的。)任意两个元组不能完全相同:这是由笛卡尔积的性质决定的。(5)行的顺序无所谓:行的次序可以任意交换。)行的顺序无所谓:行的次序可以任意交换。(6)分量必须取原子值:每一个分量都必须是不可分的数据项。)分量必须取原子值:每一个分量都必须是不可分的数据项。关键码和表之间的联系关键码和表之间的联系(1)1 超键超键 在在一个一个关系中,能唯一标识元组的属性或属性集称为关系的超键。表关系中,能唯一标识元组的属性或属性集称为关系的超键。表3.4关系中,设属性集关系中,设属性集K(教师编号,系别)能唯一识别元组,可以认为(教师编号,系别)能唯一识别元组,可以认为教师编号和系别的属性集是教师

10、关系的一个超键。教师编号和系别的属性集是教师关系的一个超键。2候选键候选键(Candidate key)若若关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选键。表键。表3.4关系中,属性集教师编号和身份证号都能唯一标识一个元组,关系中,属性集教师编号和身份证号都能唯一标识一个元组,所以说,属性集教师编号和身份证号是教师关系的候选键。所以说,属性集教师编号和身份证号是教师关系的候选键。关键码和表之间的联系关键码和表之间的联系(2)3全键全键(All-key)若候选键包含了关系模式的所有属性,则称该候选键为全键。例有一关系若候

11、选键包含了关系模式的所有属性,则称该候选键为全键。例有一关系TCS(T,C,S),属性),属性T表示老师,表示老师,C表示课程,表示课程,S表示学生。老师、课程和学生之表示学生。老师、课程和学生之间都存在着多对多的关系,没有其中一个属性或两个属性的组合能唯一标识关系间都存在着多对多的关系,没有其中一个属性或两个属性的组合能唯一标识关系TCS,只有,只有T、C、S属性合起来才能唯一标识关系属性合起来才能唯一标识关系TCS,所以说所以说T、C、S属性属性集是候选键,也称为全键(或称为全码)。集是候选键,也称为全键(或称为全码)。4主键主键(Primary key)若一个关系有多个候选键,则选定其中

12、的一个就称为主键,包含在任何一个候选若一个关系有多个候选键,则选定其中的一个就称为主键,包含在任何一个候选键中的属性称为主属性,不包含在任何侯选键中的属性称为非主属性或非键属性。键中的属性称为主属性,不包含在任何侯选键中的属性称为非主属性或非键属性。在表在表3.4关系中,可以选教师编号属性为主键,也可选身份证号属性为主键,教关系中,可以选教师编号属性为主键,也可选身份证号属性为主键,教师编号和身份证号属性都是主属性,姓名、系别、性别、年龄各属性是非主属性。师编号和身份证号属性都是主属性,姓名、系别、性别、年龄各属性是非主属性。关键码和表之间的联系关键码和表之间的联系(3)5外键(外键(Fore

13、ign key)若一个关系若一个关系R中包含有另一个关系中包含有另一个关系S的主键所对应的属性组的主键所对应的属性组F,则称,则称F为为R的外键。并的外键。并称关系称关系S为参照关系,关系为参照关系,关系R为依赖关系。为依赖关系。例如职工关系和部门关系分别为:例如职工关系和部门关系分别为:教师(教师(教师编号教师编号,姓名,姓名,系别编号系别编号,性别,年龄,身份证号),性别,年龄,身份证号)系别(系别(系别编号系别编号,系别名称,系主任),系别名称,系主任)这里教师关系是这里教师关系是R关系,系别关系是关系,系别关系是S关系,教师关系的主键是教师编号,系别关系关系,教师关系的主键是教师编号,

14、系别关系的主键是系别编号。在教师关系中,系别编号是系别关系中的主键,因此说教师关的主键是系别编号。在教师关系中,系别编号是系别关系中的主键,因此说教师关系中系别编号属性是教师关系中的外键。称系中系别编号属性是教师关系中的外键。称S为参照关系为参照关系(或称主表或称主表),称称R为被参照为被参照关系关系(或称副表或称副表)。这两个关系中,就是靠公共属性系别编号这个外键来联系的,这。这两个关系中,就是靠公共属性系别编号这个外键来联系的,这在关系数据库中很重要。我们约定,在主键的属性下面加下划线,在外键属性下面在关系数据库中很重要。我们约定,在主键的属性下面加下划线,在外键属性下面加波浪线。加波浪线

15、。关系模式的概念关系模式的概念 在数据库中要区分型和值两方面。关系数据库在数据库中要区分型和值两方面。关系数据库中,关系模式是型,关系是值。关系模式是对关系中,关系模式是型,关系是值。关系模式是对关系的描述,那么一个关系需要描述哪些方面呢的描述,那么一个关系需要描述哪些方面呢?(1)关系模式名称关系模式名称(2)属性集属性集(3)属性域属性域(4)属性和域之间的映像属性和域之间的映像(5)属性之间的依赖关系属性之间的依赖关系关系模式的形式化表示关系模式的形式化表示 关系的描述称为关系模式(关系的描述称为关系模式(Relation Schema)。一个关系模)。一个关系模式应当是一个五元组。它可

16、以形式化地表示为:式应当是一个五元组。它可以形式化地表示为:R(U,D,dom,F)。其中)。其中R为关系名,为关系名,U为组成该关系的属性名集合,为组成该关系的属性名集合,D为属性组为属性组U中属性所来自的域的集合,中属性所来自的域的集合,dom为属性间域的映象集合,为属性间域的映象集合,F为属为属性间数据的依赖关系集合。性间数据的依赖关系集合。关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是值。关系模式是静态的、稳定的,而关系关系模式是型,关系是值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的

17、(因为关系操作在不断地更新着数是动态的、随时间不断变化的(因为关系操作在不断地更新着数据库中的数据)。据库中的数据)。关系数据库概念关系数据库概念在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生实在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生实体、课程实体、学生与课程之间的多对多选课联系都可以分别用一个关体、课程实体、学生与课程之间的多对多选课联系都可以分别用一个关系(或二维表)来表示。在一个给定的现实世界领域中,所有实体及实系(或二维表)来表示。在一个给定的现实世界领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。体之间的联系的关系的集合构成一个关系数

18、据库。关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。关系数据库的值也称为关是对关系数据库的描述,是关系模式的集合。关系数据库的值也称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库。实际上把前面讲的关系模式和关系合起来就是关系数据库。系数据库。实际上把前面讲的关系模式和关系合起来就是关系数据库。关系模型的完整性规则关系模型的完整性规则(1)1实体完整性规则实体完整性规则:关系中元组的主键值不

19、能为空。系别关系中元组的主键值不能为空。系别表中的主键:系别编号不为空,教师表的表中的主键:系别编号不为空,教师表的主键:教师编号不为空,所以这两个表都主键:教师编号不为空,所以这两个表都满足实体完整性规则。满足实体完整性规则。关系模型的完整性规则关系模型的完整性规则(2)2参照完整性规则参照完整性规则参照完整性规则的形式定义如下参照完整性规则的形式定义如下:如果属性集如果属性集K是关系模式是关系模式R1的主键,的主键,K是关系模式是关系模式R2的外键,那么在的外键,那么在R2的关系中,的关系中,K的取值只允许两的取值只允许两种可能,或者为空值,或者等于种可能,或者为空值,或者等于R1关系中某

20、个主键关系中某个主键值。值。关系模型的完整性规则关系模型的完整性规则(3)参照完整性规则在具体使用时要注意以下参照完整性规则在具体使用时要注意以下3点:点:(1)外键和相应的主健可以不同名,只要定义在相同值域上即可。例如在图外键和相应的主健可以不同名,只要定义在相同值域上即可。例如在图3.2中外键名可以不叫系别编号,定义别的名称,但定义的这个名称的类型中外键名可以不叫系别编号,定义别的名称,但定义的这个名称的类型和值域一定要与图和值域一定要与图3.1中系别编号相同。中系别编号相同。(2)R1和和R2也可以是同一个关系模式,表示了同一个不同元组之间的联系。也可以是同一个关系模式,表示了同一个不同

21、元组之间的联系。例如表示所学课程与这一课程的先修课程之间的联系模式:例如表示所学课程与这一课程的先修课程之间的联系模式:R(课程号课程号,课,课程名,先修课程号),程名,先修课程号),R的主键是课程号,而先修课程号是外键,则先修课的主键是课程号,而先修课程号是外键,则先修课程号的值一定是程号的值一定是R中课程号存在的值或是中课程号存在的值或是“空值空值”。(3)外键值是否允许空,应视具体问题而定。在模式中,若外键是该模式主外键值是否允许空,应视具体问题而定。在模式中,若外键是该模式主键中的成份时,则外键值不允许空,否则允许空。例如,一个学生表的模式键中的成份时,则外键值不允许空,否则允许空。例

22、如,一个学生表的模式是:学生(是:学生(学号学号,姓名,性别,所学专业),一个学生成绩表的模式:成绩,姓名,性别,所学专业),一个学生成绩表的模式:成绩(学号学号,数学,外语,计算机),以上两个表的属性,数学,外语,计算机),以上两个表的属性“学号学号”都是主键,都都是主键,都可以认为是另一个关系的外键,都不允许为空值。可以认为是另一个关系的外键,都不允许为空值。上述两类完整性规则是关系模型必须满足的规则,由该系统自动支持。上述两类完整性规则是关系模型必须满足的规则,由该系统自动支持。关系模型的完整性规则关系模型的完整性规则(4)3用户定义的完整性规则用户定义的完整性规则这一规则是对某一具体数

23、据的约束条件,由应用环境决定,它反映某一这一规则是对某一具体数据的约束条件,由应用环境决定,它反映某一具体应用所涉及的数据必须满足的语义要求。它实质就是指域完整性规具体应用所涉及的数据必须满足的语义要求。它实质就是指域完整性规则。关系模型应提供定义和检验这类完整性的机制,以便使用统一的系则。关系模型应提供定义和检验这类完整性的机制,以便使用统一的系统方法来处理,而不需要应用程序来承担这一制约功能。例如,一般普统方法来处理,而不需要应用程序来承担这一制约功能。例如,一般普通大学学生入学的年龄不超过通大学学生入学的年龄不超过30岁,学生成绩、年龄、工资、奖学金不岁,学生成绩、年龄、工资、奖学金不能

24、为负数等,当这些规则在数据表相关结构中设定后,一旦有不符合这能为负数等,当这些规则在数据表相关结构中设定后,一旦有不符合这种设定的数据输入时,系统会自动弹出对话框,提示你输入数据错误。种设定的数据输入时,系统会自动弹出对话框,提示你输入数据错误。3.2 关系运算关系运算 关系数据模型由关系数据结构、关系操关系数据模型由关系数据结构、关系操作集合和关系完整性约束三部分组成,这作集合和关系完整性约束三部分组成,这是关系数据模型的形式定义,也称为关系是关系数据模型的形式定义,也称为关系数据模型的三要素。关系数据结构和关系数据模型的三要素。关系数据结构和关系完整性约束二部分已经论述过,关系运算完整性约

25、束二部分已经论述过,关系运算就是讨论关系操作集合的问题。就是讨论关系操作集合的问题。关系查询语言和关系运算关系查询语言和关系运算 1查询语言分类查询语言分类关系数据库的数据操纵语言(关系数据库的数据操纵语言(Data Manipulation Language 简称:简称:DML)的的语句可以分成查询语句和更新语句两大类。查询语句用于描述用户的各种检语句可以分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户的插入、修改和删除等操作。索要求;更新语句用于描述用户的插入、修改和删除等操作。关系查询语言根据其理论基础的不同分为两大类。关系查询语言根据其理论基础的不

26、同分为两大类。(1)关系代数语言:查询操作是以集合操作为基础的运算。)关系代数语言:查询操作是以集合操作为基础的运算。(2)关系演算语言:查询操作是以谓词演算为基础的运算。关系演算按所用)关系演算语言:查询操作是以谓词演算为基础的运算。关系演算按所用到的变量不同又可分为元组关系演算和域关系演算两种,前者以元组为变量,到的变量不同又可分为元组关系演算和域关系演算两种,前者以元组为变量,后者以域为变量,分别简称为元组演算和域演算。后者以域为变量,分别简称为元组演算和域演算。三种查询语言介绍三种查询语言介绍关系代数运算:关系代数运算:ISBL(Information System Base Lang

27、uage)语言,语言,1976年年IBM公司英格兰底特律科学中心研制;元组关系演算:公司英格兰底特律科学中心研制;元组关系演算:QUEL(Query Language)语言,语言,1975年美国伯克利加州大学研制;域关系演算:年美国伯克利加州大学研制;域关系演算:QBE(Query By Example),1978年年IBM的的M.M.Zloof提出的一种按例查提出的一种按例查询语言。询语言。以上三种语言都在相应的计算机上运行通过,都是准确无误的。现在国际以上三种语言都在相应的计算机上运行通过,都是准确无误的。现在国际上通用的查询语言是上通用的查询语言是SQL(Structured Query

28、 Language),是兼有,是兼有ISBL和和QUEL两种特点的查询语言。两种特点的查询语言。关系运算的安全性和等价性关系运算的安全性和等价性 v(1)关系运算的安全性。关系运算主要有关系代数、元组演算、域演算三种。我)关系运算的安全性。关系运算主要有关系代数、元组演算、域演算三种。我们约定,运算只对表达式中公式涉及到的关系值范围内操作,所以可以得出结论:们约定,运算只对表达式中公式涉及到的关系值范围内操作,所以可以得出结论:任何一个有限关系上的关系代数操作结果,或者是对表达式涉及到的关系值范围内任何一个有限关系上的关系代数操作结果,或者是对表达式涉及到的关系值范围内的运算,都不会产生无限关

29、系和无穷次验证问题,所以说,关系运算总是安全的。的运算,都不会产生无限关系和无穷次验证问题,所以说,关系运算总是安全的。v(2)关系运算的等价性。关系代数、元组演算、域演算三种关系运算都在实践中)关系运算的等价性。关系代数、元组演算、域演算三种关系运算都在实践中证明是正确无误的,理论也可证明关系代数、安全的元组关系演算、安全的域关系证明是正确无误的,理论也可证明关系代数、安全的元组关系演算、安全的域关系演算在关系的表达和操作能力上是等价的,也就是说,要解决关系查询语言中任一演算在关系的表达和操作能力上是等价的,也就是说,要解决关系查询语言中任一个问题,利用上面三种方法中的任何一种,都可以得出同

30、样的结果。个问题,利用上面三种方法中的任何一种,都可以得出同样的结果。关系查询语言的特点关系查询语言的特点 关系查询语言中的关系查询语言中的3种关系运算语言都属于非过程性种关系运算语言都属于非过程性语言,但是它们在程度上是有区别的。关系代数语言数语言,但是它们在程度上是有区别的。关系代数语言数学基础雄厚、逻辑性强、应用最广泛。元组演算语言的学基础雄厚、逻辑性强、应用最广泛。元组演算语言的“非过程性非过程性”程度比关系代数语言强、工作效力高,但程度比关系代数语言强、工作效力高,但是这种语言使用符号复杂,难理解,不易被人们接受。是这种语言使用符号复杂,难理解,不易被人们接受。域演算语言是一种按例查

31、询语言,解决问题时要画出表域演算语言是一种按例查询语言,解决问题时要画出表格,并在表格中填写数据符号,速度慢,应用不广泛。格,并在表格中填写数据符号,速度慢,应用不广泛。从实际应用的角度出发,本章只介绍关系代数运算语言从实际应用的角度出发,本章只介绍关系代数运算语言的理论知识,如用户对其它二种运算语言理论知识有兴的理论知识,如用户对其它二种运算语言理论知识有兴趣的话可参考本书后面列出的参考文献。趣的话可参考本书后面列出的参考文献。关系代数运算符的分类关系代数运算符的分类(1)集合运算符:将关系看成元组的集合,运算是从关系的集合运算符:将关系看成元组的集合,运算是从关系的“水平水平”方向即行的角

32、度来进行,有并、差、交、广义笛卡尔积四种运算符。方向即行的角度来进行,有并、差、交、广义笛卡尔积四种运算符。(2)专门的关系运算符:不仅涉及行而且涉及列,有选择、投影、联)专门的关系运算符:不仅涉及行而且涉及列,有选择、投影、联接、除四种运算符。接、除四种运算符。(3)算术比较符:辅助专门的关系运算符进行操作,有等于、不等于、)算术比较符:辅助专门的关系运算符进行操作,有等于、不等于、大于、小于、不大于、不小于六种运算符。大于、小于、不大于、不小于六种运算符。(4)逻辑运算符:辅助专门的关系运算符进行操作,有逻辑与、非、)逻辑运算符:辅助专门的关系运算符进行操作,有逻辑与、非、或三种。或三种。

33、传统的集合运算传统的集合运算 传统的集合运算是二目运算,包括并、交、差、广传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。义笛卡尔积四种运算。前提条件前提条件:设关系设关系R和关系和关系S具有相同的目具有相同的目n(即两个(即两个关系都有关系都有n个属性),且相应的属性取自同一个域,个属性),且相应的属性取自同一个域,则可定义并、差、交运算。则可定义并、差、交运算。并(并(Union)设关系设关系R和关系和关系S具有相同的目具有相同的目n(即两个关系都有(即两个关系都有n个属性),个属性),且相应的属性取自同一个域,则关系且相应的属性取自同一个域,则关系R与关系与关系S的并由属

34、于的并由属于R或属于或属于S的所有元组组成。记作:的所有元组组成。记作:RS=t|tRtS其结果关系仍为其结果关系仍为n目关系,由属于目关系,由属于R或属于或属于S的元组组成。的元组组成。关系的并操作对应于关系的插入或添加记录的操作,俗称关系的并操作对应于关系的插入或添加记录的操作,俗称“+”操作,是关系代数的基本操作。操作,是关系代数的基本操作。并操作举例并操作举例有图书库存和进货两个表有图书库存和进货两个表(见表见表3.6),要将两个表合为一个表,可利用并运,要将两个表合为一个表,可利用并运算实现。算实现。表表3.6 关系代数的库存关系和进货关系关系代数的库存关系和进货关系:_ _ 编号编

35、号 书名书名 数量数量 编号编号 书名书名 数量数量 _ _ 101 C语言语言 19 12 BASIC语言语言 10102 数据库数据库 20 13 高等数学高等数学 20 105 操作系统操作系统 15 18 外语外语(四四)15 108 汇编语言汇编语言 10 _ _ (b)进货关系进货关系 (a)库存关系库存关系 并操作举例并操作举例有图书库存和进货两个表有图书库存和进货两个表(见表见表3.6),要将两个表合为一个表,可利用并运算实现。,要将两个表合为一个表,可利用并运算实现。表表3.6 关系代数的并运算结果关系代数的并运算结果:_编号编号 书名书名 数量数量 _ 101 C语言语言

36、19102 数据库数据库 20 105 操作系统操作系统 1 108 汇编语言汇编语言 1012 BASIC语言语言 10 13 高等数学高等数学 2018 外语外语(四四)15 _ 并运算结果并运算结果差(差(Difference)操作操作设关系设关系R和关系和关系S具有相同的目具有相同的目n,且相应的属性取自同一个,且相应的属性取自同一个域,则关系域,则关系R与关系与关系S的差由属于的差由属于R而不属于而不属于S的所有元组组的所有元组组成。记作:成。记作:R-S=t|t R t S 其结果关系仍为其结果关系仍为n目关系,由属于目关系,由属于R而不属于而不属于S的所有元组的所有元组组成。组成

37、。关系的差操作对应于关系的删除记录的操作,俗称关系的差操作对应于关系的删除记录的操作,俗称“-”操操作,是关系代数的基本操作。作,是关系代数的基本操作。差(差(Difference)操作举例操作举例某单位对学生举行计算机基础知识上机操作比赛某单位对学生举行计算机基础知识上机操作比赛,成绩大于成绩大于85分获奖,现有分获奖,现有2个关系,个关系,一个是学生参赛学号及成绩,另一个是学生未得优秀成绩学号及成绩关系,通过差一个是学生参赛学号及成绩,另一个是学生未得优秀成绩学号及成绩关系,通过差运算求出学生获奖的学号及成绩(见表运算求出学生获奖的学号及成绩(见表3.7所示)。所示)。表表3.7 关系代数

38、的差运算关系代数的差运算_ _ _ 学号学号 成绩成绩 学号学号 成绩成绩 学号学号 成绩成绩_ _ _2008301 80 2008301 80 2008405 95 2008104 75 2008104 75 2008096 88 2008405 95 2008072 78 _ 2008096 88 _ (c)差运算结果差运算结果 2008072 98 (b)未得优秀成绩学生未得优秀成绩学生_(a)参加比赛学生参加比赛学生交(交(Intersection)操作操作设关系设关系R和关系和关系S具有相同的目具有相同的目n,且相应的属性取自同一,且相应的属性取自同一个域,则关系个域,则关系R与关

39、系与关系S的交由既属于的交由既属于R又属于又属于S的所有元的所有元组组成。记作:组组成。记作:RS=t|tRtS其结果关系仍为其结果关系仍为n目关系,由既属于目关系,由既属于R又属于又属于S的元组组成。的元组组成。关系的交可以用差来表示,即关系的交可以用差来表示,即RS=R-(R-S)。关系的交操作对应于寻找两关系共有记录的操作,是一种关系的交操作对应于寻找两关系共有记录的操作,是一种关系查询操作。关系的交操作能用差操作来代替,因此不关系查询操作。关系的交操作能用差操作来代替,因此不是关系代数的基本操作。是关系代数的基本操作。交(交(Intersection)操作举例操作举例 假设有优秀学生和

40、优秀学生干部两个表假设有优秀学生和优秀学生干部两个表,如表如表3.8(a),(,(b)所示)所示,要求检索既是优秀要求检索既是优秀学生,又是优秀学生干部的学生学生,又是优秀学生干部的学生.这个检索可以用交操作来实现这个检索可以用交操作来实现,结果如表结果如表3.8(c)所示。所示。表表3.8 关系代数的交运算关系代数的交运算_ _ _ 学号学号 姓名姓名 学号学号 姓名姓名 学号学号 姓名姓名 _ _ _200702 刘一明刘一明 200708 王王 英英 200708 王王 英英200708 王王 英英 200709 喻林明喻林明 200750 郑同国郑同国200712 李敏敏李敏敏 200

41、711 沈明英沈明英 _200715 周相应周相应 200717 谢能力谢能力 (c)交运算结果交运算结果200750 郑同国郑同国 200750 郑同国郑同国_ _(a)优秀学生关系优秀学生关系 (b)优秀学生干部表优秀学生干部表广义笛卡尔积(广义笛卡尔积(Extended Cartesian Product)操作)操作 广义笛卡尔积不要求参加运算的两个关系具有相同的目(自然也就不要求来自同样的域)。广义笛卡尔积不要求参加运算的两个关系具有相同的目(自然也就不要求来自同样的域)。其定义为其定义为:两个分别为两个分别为n目目(n个列或称个列或称n个属性个属性)和和m目目(m个列或称个列或称m个

42、属性个属性)的关系的关系R和和S,则则R和和S的广义笛卡尔积是一个的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前)列的元组的集合。元组的前n列是关系列是关系R的一个元组,后的一个元组,后m列是关系列是关系S的一个元组。若的一个元组。若R有有k1个元组,个元组,S有有k2个元组,则关系个元组,则关系R和和S的广义笛卡尔积有的广义笛卡尔积有k1k2个元组。记为:个元组。记为:RS=tr ts|tr R ts S tr ts表示由两个元组表示由两个元组tr和和ts前后有序联接而成的一个元组。任取元组前后有序联接而成的一个元组。任取元组tr和和ts,当且仅当,当且仅当tr属于属于R且且ts属于

43、属于S时时,tr和和ts的有序联接即为的有序联接即为RS的一个元组。的一个元组。实际操作时实际操作时,可从可从R的第一个元组开始的第一个元组开始,依次与依次与S的每一个元组组合的每一个元组组合,然后然后,对对R的下一个元组进行同样的操作的下一个元组进行同样的操作,直至直至R的最后一个元组也进行完同样的操作为止的最后一个元组也进行完同样的操作为止,即可得到即可得到RS的全部元组。的全部元组。关系的广义笛卡尔积操作对应于两个关系记录横向合并的操作,俗称关系的广义笛卡尔积操作对应于两个关系记录横向合并的操作,俗称“”操作,是关系代数的基本操作,关系的操作,是关系代数的基本操作,关系的广义笛卡尔积是多

44、个关系相关联操作的最基本操作。广义笛卡尔积是多个关系相关联操作的最基本操作。广义笛卡尔积(广义笛卡尔积(Extended Cartesian Product)操作举例)操作举例 在学生和必修课程两个关系上,产生选修关系,要求每个学生必须选修在学生和必修课程两个关系上,产生选修关系,要求每个学生必须选修所有必修课程。这个选修关系可以用两个关系的笛卡儿积运算关系来实现,所有必修课程。这个选修关系可以用两个关系的笛卡儿积运算关系来实现,见表见表3.9所示。所示。表表3.9 关系笛卡儿积运算关系笛卡儿积运算_ _ 学号学号 姓名姓名 学号学号 姓名姓名 课程号课程号 课程名课程名 学分学分SNO SN

45、AME SNO SNAME CNO CNAME SCORE_ _ S1 程良程良 S1 程良程良 C4 计算机计算机 6 S3 周平周平 S1 程良程良 C1 高等数学高等数学 6S4 刘英刘英 S1 程良程良 C3 电工基础电工基础 8_ S3 周平周平 C4 计算机计算机 6 (a)学生关系学生关系 S3 周平周平 C1 高等数学高等数学 6_ S3 周平周平 C3 电工基础电工基础 8 课程号课程号 课程名课程名 学分学分 S4 刘英刘英 C4 计算机计算机 6CNO CNAME SCORE S4 刘英刘英 C1 高等数学高等数学 6_ S4 刘英刘英 C3 电工基础电工基础 8C4 计

46、算机计算机 6 _C1 高等数学高等数学 6 (c)笛卡儿积运算结果笛卡儿积运算结果C3 电工基础电工基础 8_(b)必修课程关系必修课程关系专门的关系运算专门的关系运算 1.选择(选择(Selection)2投影(投影(Projection)3联接(联接(Join)4.除(除(Division)选择(选择(Selection)操作操作选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:F(R)=t|tRF(t)=“真”其中,F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。逻辑表达式F的基本形式为:X1Y1 X2Y2 选择运算实际上是从关系选择运

47、算实际上是从关系R中选取使逻辑表达式中选取使逻辑表达式F为真的元组。为真的元组。这是从行的角度进行的运算。关系的选择操作对应于关系记这是从行的角度进行的运算。关系的选择操作对应于关系记录的选取操作(横向选择),是关系查询操作的重要成员之录的选取操作(横向选择),是关系查询操作的重要成员之一,是关系操行的基本操作。一,是关系操行的基本操作。选择(选择(Selection)操作举例【例例3.53.5】已知教师表R,如前面表3.4所示,对该表进行选择操作:列出所有男教师的基本情况。选择的条件是:性别=男。用关系代数表示为:性别=男(R)也可以用属性序号表示属性名:4=男(R),结果如表3.10所示。

48、表3.10 关系代数的选择运算教师编号姓名系别性别年龄身份证号1011程虹民计算机男30301021981120915811032刘良顺电子男4030101970091213833011周林外文男213010199007281581投影(投影(Projection)操作 关系关系R上的投影是从上的投影是从R中选择出若干属性列组成新的中选择出若干属性列组成新的关系。记作:关系。记作:A(R)=tA|tR 其中其中A为为R中的属性列。关系的投影操作对应于关系列中的属性列。关系的投影操作对应于关系列的角度进行的选取操作(纵向选取),也是关系查询的角度进行的选取操作(纵向选取),也是关系查询操作的重要

49、成员之一,是关系代数的基本操作。操作的重要成员之一,是关系代数的基本操作。投影(投影(Projection)操作举例操作举例【例例3.63.6】假设表3.10为表R,对该表进行投影操作:只列出该表的教师编号,系别,年龄,关系代数式表示为:教师编号,系别,年龄(R)或者 1,3,5(R),结果如表3.11所示。表3.11 关系代数的投影操作教师编号系别年龄1011计算机301032电子403011外文213联接(联接(Join)操作)操作联接也称联接,是从两个关系的广义笛卡尔积中选取满足某规定条件的全体元组,形成一个新的关系,记为ABR S=tr ts|tr R ts S trA tsB其中,A

50、是R的属性组,B是S的属性组。是比较运算符。联接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)属性组上的值满足比较关系的元组。也可表示为:AB R S=AB(RS)联接运算中有两种最为重要也是最为常用的联接,一种是等值联接,另一种是自然联接。等值联接(等值联接(equijoin)为为“=”的联接运算称为等值联接。它是从关系的联接运算称为等值联接。它是从关系R与与S的广义的广义笛卡儿积中选取笛卡儿积中选取A、B属性值相等的那些元组。等值联接表属性值相等的那些元组。等值联接表示为:示为:A=B R S=tr ts|tr R ts S trA=tsB 也可以表示为:也可以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁