数据库原理-第三章-关系运算课件

上传人:txadgkn****dgknqu... 文档编号:182437572 上传时间:2023-01-23 格式:PPT 页数:44 大小:591KB
收藏 版权申诉 举报 下载
数据库原理-第三章-关系运算课件_第1页
第1页 / 共44页
数据库原理-第三章-关系运算课件_第2页
第2页 / 共44页
数据库原理-第三章-关系运算课件_第3页
第3页 / 共44页
资源描述:

《数据库原理-第三章-关系运算课件》由会员分享,可在线阅读,更多相关《数据库原理-第三章-关系运算课件(44页珍藏版)》请在装配图网上搜索。

1、1数据库原理数据库原理第三章第三章 关系运算关系运算本章内容概要本章内容概要l 关系数据模型关系数据模型l关系数据模型定义关系数据模型定义l关键码和表之间的联系关键码和表之间的联系l关系模式关系模式l关系模型的完整性规则关系模型的完整性规则l 关系运算关系运算l关系查询语言和关系运算关系查询语言和关系运算l关系代数运算符的分类关系代数运算符的分类l传统的集合运算传统的集合运算l专门的关系运算专门的关系运算l扩充的关系代数操作(自学)扩充的关系代数操作(自学)l 关系代数表达式的优化(自学)关系代数表达式的优化(自学)l关系数据库关系数据库l关系数据库是通过关系数据模型建立起来的数关系数据库是通

2、过关系数据模型建立起来的数据库系统据库系统 。l关系数据库有一个严密的、能够数学推导的、关系数据库有一个严密的、能够数学推导的、容易理解的、得到实践证明正确的是关系数据容易理解的、得到实践证明正确的是关系数据模型。模型。l 基本概念:基本概念:利用利用集合代数集合代数、谓词演算谓词演算等抽象的等抽象的数学知识,深刻而透彻地介绍了数学知识,深刻而透彻地介绍了关系数据结构关系数据结构,关关系数据库操作系数据库操作及及关系数据库完整性关系数据库完整性这关系数据模型这关系数据模型的的三要素三要素的概念。的概念。l数据模型中的数据描述数据模型中的数据描述,组成的基本要素组成的基本要素.3.13.1关系数

3、据模型关系数据模型关系数据模型关系数据模型 关系数据模型三要素关系数据模型三要素-关系数据结构关系数据结构、关系操关系操作集合作集合和和关系完整性约束关系完整性约束。1 1、关系模型的数据结构、关系模型的数据结构关系结构关系结构l 关系模型的数据结构:非常单一,在用户看来关关系模型的数据结构:非常单一,在用户看来关系模型中数据的逻辑结构是一张二维表。但关系模系模型中数据的逻辑结构是一张二维表。但关系模型的这种简单的数据结构能够表达丰富的语义,描型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系。述出现实世界的实体以及实体间的各种联系。2 2、关系模型的数据操作、

4、关系模型的数据操作关系操作关系操作l 关系模型给出了关系操作的能力,它利用基于数关系模型给出了关系操作的能力,它利用基于数学的方法来表达关系操作,关系模型给出的关系操学的方法来表达关系操作,关系模型给出的关系操作往往不针对具体的作往往不针对具体的RDBMSRDBMS语言来表述。语言来表述。关系模型(续)关系模型(续)3 3、关系的三类完整性约束、关系的三类完整性约束l 关系模型提供了丰富的完整性控制机制,允许定义关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性和用户自定义三类完整性:实体完整性、参照完整性和用户自定义的完整性。其中实体完整性和参照完整性是关系模型的

5、完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支必须满足的完整性约束条件,应该由关系系统自动支持。用户自定义的完整性是应用领域特殊要求而需要持。用户自定义的完整性是应用领域特殊要求而需要遵循的约束条件,体现了具体领域中的语义约束。遵循的约束条件,体现了具体领域中的语义约束。3.1.13.1.1关系数据模型的定义关系数据模型的定义 域(域(DomainDomain)定义定义1:1:域是一组具有相同数据类型的值的集合。又称为域是一组具有相同数据类型的值的集合。又称为值值域域(用用D D表示表示)。域中所包含的值的个数称为域的域中所包含的值的个数称为域的基数

6、基数(用用m m表示表示)。)。在关系中就是用域来表示属性的在关系中就是用域来表示属性的取值范围取值范围的。的。例如,自然数、整数、实数、长度小于例如,自然数、整数、实数、长度小于1010字节的字符串集字节的字符串集合、合、1-161-16之间的整数之间的整数,它们都是域。它们都是域。又如,又如,D1=张三,李四张三,李四 D1的基数的基数m1为为2 D2=男,女男,女 D2的基数的基数m2为为2 D3=19,20,21 D3的基数的基数m3为为3 笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)l 定义定义2 2:给定一组域给定一组域D1、D2、Dn

7、(这些域中可以包含相同的这些域中可以包含相同的元素元素,即可以完全不同即可以完全不同(也可以部分或全部相同也可以部分或全部相同),),D1、D2、Dn的的笛卡尔积笛卡尔积为:为:D D1 1D D2 2D Dn n=(d(d1,1,d d2,2,d,dn n)|d)|di iDDi,i,i i1,2,1,2,,n n 由定义可以看出,笛卡尔积也是一个由定义可以看出,笛卡尔积也是一个集合集合。其中:其中:(1)(1)其中每一个元素其中每一个元素(d(d1,1,d d2,2,d,dn n)叫作一个叫作一个n n元组元组(n-(n-tupletuple),或简称为元组,或简称为元组(Tuple(Tu

8、ple)。但元组不是。但元组不是d di i的集合,的集合,元组由元组由d di i按序排列而成。按序排列而成。(2)(2)元素中的每一个值元素中的每一个值d di i叫作一个分量叫作一个分量(Component)(Component)。分。分量来自相应的域量来自相应的域(d(di iDDi i)。(3)(3)若若D Di i(i i1 1,2 2,n n)为有限集,)为有限集,其基数(其基数(Cardinal numberCardinal number)为)为m mi i(i i1 1,2 2,n n),),则则D D1 1D D2 2D Dn n的基数为的基数为n n个域的基数累乘之积个域

9、的基数累乘之积(4)(4)笛卡尔积可表示为一个二维表。表中的每行对应一个元笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。组,表中的每列对应一个域。l如上面例子中如上面例子中D D1 1与与D D2 2的笛卡尔积:的笛卡尔积:D D1 1D D2 2=(=(张三张三,男男),(),(张三张三,女女),(),(李四李四,男男),(),(李四李四,女女)可以表示成二维表,如下表可以表示成二维表,如下表2.12.1所示:所示:姓名姓名 性别性别张三张三男男张三张三女女李四李四男男李四李四女女表表3-3 3-3 笛卡尔积笛卡尔积笛卡尔积是个二维表笛卡尔积是个二维表3 3、关系

10、、关系(RelationRelation)l关系是属性值域的笛卡尔积中有意义的元组的集合关系是属性值域的笛卡尔积中有意义的元组的集合l定义定义3:3:D D1 1D D2 2D Dn n的任何一个子集叫作在域的任何一个子集叫作在域D D1 1,D,D2 2,D Dn n上的关系,用上的关系,用 R(DR(D1 1,D,D2 2,D Dn n)表示。如上表示。如上例中例中D D1 1D D2 2笛卡尔积的子集可以构成关系笛卡尔积的子集可以构成关系T T1 1,如下,如下表所示:表所示:姓名姓名性别性别张三张三男男李四李四女女笛卡尔积的子集笛卡尔积的子集关系关系T1笛卡尔积的二维表笛卡尔积的二维表

11、关系关系T1的二维表的二维表表现形式表现形式关系关系(续续)(1)R R表示关系的名字,表示关系的名字,n n是关系的目或度(是关系的目或度(DegreeDegree)。当当n=1n=1时,称为单元关系。时,称为单元关系。当当n=2n=2时,称为二元关系。时,称为二元关系。当当n=mn=m时,称为时,称为 m m元关系。元关系。(2)(2)关系中的每个元素是关系中的元组。关系中的每个元素是关系中的元组。通常用通常用t t表示表示。(3)(3)关系是笛卡尔积的子集,所以关系也是一个二维表。关系是笛卡尔积的子集,所以关系也是一个二维表。表的每行对应一个元组,表的每列对应一个域。由于表的每行对应一个

12、元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个唯一的域可以相同,为了加以区分,必须对每列起一个唯一的名字,称为属性(名字,称为属性(AttributeAttribute)。)。n n目关系必有目关系必有n n个属性。个属性。关系关系(续续2)2)l对关系作如下限定和扩充:对关系作如下限定和扩充:无限关系在数据库系统中是无意义的。因此限定无限关系在数据库系统中是无意义的。因此限定关系数据模型中的关系必须是关系数据模型中的关系必须是有限集合有限集合。通过为关系的每个列附加一个属性名的方法取消通过为关系的每个列附加一个属性名的方法取消关系元组的有序性。关系元组的有序性。即即

13、(d(d1,1,d d2,2,d,dj,j,d di i,d,dn n)=(d =(d1,1,d d2,2,d,di,i,d dj j,d,dn n)(i)(i,j=1,2j=1,2,n n)l基本关系具有以下六条性质:基本关系具有以下六条性质:列是同质的列是同质的(HomogeneousHomogeneous),),即每一列中的分量是即每一列中的分量是同一类型的数据,来自同一个域。同一类型的数据,来自同一个域。不同的列可出自同一个域,称其中的每一列为一不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。个属性,不同的属性要给予不同的属性名。关系关系(续续3)3)列

14、的顺序无所谓,即列的次序可以任意交换。列的顺序无所谓,即列的次序可以任意交换。任意两个元组不能完全相同。任意两个元组不能完全相同。行的顺序无所谓,即行的次序可以任意交换。行的顺序无所谓,即行的次序可以任意交换。分量必须取原子值,即每一个分量都必须是不可分分量必须取原子值,即每一个分量都必须是不可分的数据项。的数据项。如下两图:如下两图:课程关系课程关系C(C(不规范的关系不规范的关系)课程关系课程关系C C(规范的关系规范的关系)课程名课程名学时学时理论理论实验实验数据库数据库52522020C C语言语言45452020数据结构数据结构55553030课程名课程名理论理论学时学时实验实验学时

15、学时数据库数据库52522020C C语言语言45452020数据结构数据结构555530303.1.2 3.1.2 关键码和表之间的关系关键码和表之间的关系插入键的概念:键(插入键的概念:键(KeyKey)-关键码关键码l1 1、超键(、超键(Super KeySuper Key)l在一个关系中能唯一标识元组的属性集合在一个关系中能唯一标识元组的属性集合例如:属性集(教师、系别)例如:属性集(教师、系别)l2 2、候选键(、候选键(Candidate KeyCandidate Key)l若关系中某一属性组的值能唯一地表示一个元组,则称该属若关系中某一属性组的值能唯一地表示一个元组,则称该属性

16、组为候选键。例如:教师编号、身份证号性组为候选键。例如:教师编号、身份证号l3 3、主键(、主键(Primary KeyPrimary Key)l在候选键中选中一个作为主键,主键带有主属性。在候选键中选中一个作为主键,主键带有主属性。l例如:可选教师号、身份证号均可。例如:可选教师号、身份证号均可。l4 4、合成键(、合成键(Composite KeyComposite Key)l由多个属性组成的候选键。由多个属性组成的候选键。l5 5、外键(、外键(Foreign KeyForeign Key)l若关系包含有另一个关系若关系包含有另一个关系R R所对应的属性所对应的属性F F,则,则F F为

17、为R R的外键,的外键,或当关系或当关系R1R1与与R2R2建立联系时,建立联系时,R1R1的属性的属性A1A1不是不是R1R1的候选键,的候选键,而是而是R2R2的候选键,则称的候选键,则称A1A1为为R1R1的外键。的外键。l例如教师编号、例如教师编号、系别编号系别编号、姓名、年龄、省份证号、姓名、年龄、省份证号例题:例题:l设教学管理数据库中有设教学管理数据库中有5 5个关系如下:个关系如下:学生学生 S(SNO,SNAME,AGE,SEX,BPLACE)S(SNO,SNAME,AGE,SEX,BPLACE)课程课程 C(CNO,CNAME,CREDIT)C(CNO,CNAME,CRED

18、IT)教师教师 T(TNO,TNAME,AGE,PS)T(TNO,TNAME,AGE,PS)选课选课 SE(SNO,CNO,GRADE)SE(SNO,CNO,GRADE)任课任课 TE(CNO,TNO,SNUM)TE(CNO,TNO,SNUM)例例11找出找出S S,SESE关系中的各种关键字。关系中的各种关键字。例例22设关系设关系S S中有两个超键中有两个超键BCBC、C C,其中哪个是候选健、,其中哪个是候选健、主键、复合键。主键、复合键。Home关键码和表之间的关系(续)关键码和表之间的关系(续)3.1.3 3.1.3 关系模式关系模式l 在数据库中要区分型和值两方面。在数据库中要区分

19、型和值两方面。关系数据库中,关系模式是型,关系是值。关系模式是对关系关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,那么一个关系需要描述哪些方面?的描述,那么一个关系需要描述哪些方面?l 首先应该知道,关系实际上是一张二维表,首先应该知道,关系实际上是一张二维表,表的每一行为一个元组,每一列为一个属性。表的每一行为一个元组,每一列为一个属性。其次一个关系通常是由赋予它的元组语义来确定的。其次一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个元组语义实质上是一个n n目谓词(目谓词(n n是属性集中属性的个数)是属性集中属性的个数)。l 关系模式的关系在不同的时刻会随着

20、现实世界的不断关系模式的关系在不同的时刻会随着现实世界的不断地变化会有所变化。地变化会有所变化。现实世界的许多已有事实限定了关系模式,因此所有可能的关现实世界的许多已有事实限定了关系模式,因此所有可能的关系必须满足一定的完整性约束条件。系必须满足一定的完整性约束条件。l 关系模式的形式化表示关系模式的形式化表示 一个关系模式应当是一个一个关系模式应当是一个5 5元组。元组。关系模式(续)关系模式(续)l定义定义4 4:关系的描述称为关系模式关系的描述称为关系模式(Relation Schema)(Relation Schema)一个关系模式应当是一个五元组。一个关系模式应当是一个五元组。它形式

21、化地表示为:它形式化地表示为:R R(U,D,domU,D,dom,F,F)。其中其中R R为关系名,为关系名,U U为组成该关系的属性名集合,为组成该关系的属性名集合,D D为属性为属性组组U U中属性所来自的域的集合,中属性所来自的域的集合,domdom为属性向域的映象集合,为属性向域的映象集合,F F为属性间数据的依赖关系集合。为属性间数据的依赖关系集合。l关系模式通常简记为:关系模式通常简记为:R(AR(A1 1,A,A2 2,A,An n)或或R(U)R(U)。其中其中 A A1 1,A,A2 2,A,An n为属性名。而域名及属性向域的映象常常为属性名。而域名及属性向域的映象常常直

22、接说明为属性的类型、长度。直接说明为属性的类型、长度。l关系实际上就是关系模式在某一时刻的状态或内容。关系实际上就是关系模式在某一时刻的状态或内容。就是说,关系模式是型,关系是它的值。关系模式是静态的、就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,常常把关系模式不断地更新着数据库中的数据。但在实际当中,常常把关系模式和关系统称为关系。和关系统称为关系。关系数据库关系数据库n在一个给定的现实世界领域中,所有实体及实体之间在一个给定的现实

23、世界领域中,所有实体及实体之间的联系关系的集合构成一个关系数据库的联系关系的集合构成一个关系数据库。n 在关系模型中,实体以及实体间的联系都是用关系来表示。在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生实体、课程实体、学生与课程之间的多对多选课联例如学生实体、课程实体、学生与课程之间的多对多选课联系都可以分别用一个关系(或二维表)来表示。系都可以分别用一个关系(或二维表)来表示。n关系数据库也分成型和值。关系数据库也分成型和值。n型称为关系数据库模式,是对关系数据库的描述,是关系模型称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。式的集合。n值称为关系数据库,是关系的

24、集合。值称为关系数据库,是关系的集合。n关系数据库模式与关系数据库通常统称为关系数据库。关系数据库模式与关系数据库通常统称为关系数据库。3.1.4 3.1.4 关系模型的完整性规则关系模型的完整性规则l一、实体完整性规则(一、实体完整性规则(Entity IntegrityEntity Integrity)规则规则3.143.14:若属性组(或属性)若属性组(或属性)K K是基本关系是基本关系R R的主码(或称主的主码(或称主关键字),则所有关键字),则所有元组元组K K的取值唯一的取值唯一,并且并且K K中属性中属性不能全部或部分取空值不能全部或部分取空值。l二、参照完整性(二、参照完整性(

25、Referential integrityReferential integrity)定义定义5 5:设设F F是基本关系是基本关系R R的一个或一组属性,但不是的一个或一组属性,但不是关系关系R R的码,如果的码,如果F F与基本关系与基本关系S S的主码的主码K Ks s相对应,则相对应,则称称F F是基本关系是基本关系R R的外码的外码(Foreign keyForeign key),),并称基本并称基本关系关系R R为为参照关系参照关系(Referencing relationReferencing relation),),基本基本关系关系S S为为被参照关系被参照关系(Referen

26、ced relationReferenced relation)或目)或目标关系(标关系(Target relationTarget relation)。关系)。关系R R和和S S可能是相同可能是相同的关系,即自身参照。的关系,即自身参照。关系模型的完整性规则(续)关系模型的完整性规则(续)规则规则3.15 3.15 参照完整性规则:参照完整性规则:若属性(或属性组)若属性(或属性组)F F是基本关系是基本关系R R的外码,它与的外码,它与基本关系基本关系S S的主码的主码K Ks s相对应(基本关系相对应(基本关系R R和和S S可能是相可能是相同的关系),则对于同的关系),则对于R R中

27、每个元组在中每个元组在F F上的值必须为上的值必须为以下两种情况,或者取空值(以下两种情况,或者取空值(F F的每个属性值均为空的每个属性值均为空值);或者等于值);或者等于S S中某个元组的主码值。中某个元组的主码值。例子见教材例子见教材P37.P37.三、用户定义的完整性(三、用户定义的完整性(User-defined integrityUser-defined integrity)用户定义的完整性就是针对某一具体应用的关系用户定义的完整性就是针对某一具体应用的关系数据库所制定的约束条件,它反映某一具体应用所数据库所制定的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。涉及的数

28、据必须满足的语义要求。例如:非空、例如:非空、0 0、限定的值域范围等等。、限定的值域范围等等。完整性约束完整性约束 数据做更新操作必须遵守的规则数据做更新操作必须遵守的规则数据做更新操作必须遵守如下数据做更新操作必须遵守如下4 4类完整性约束。类完整性约束。l 实体(实体(Entity IntegrityEntity Integrity)约束)约束:主键值必须唯一,:主键值必须唯一,且不能为空值。且不能为空值。l 参照(参照(Referential IntegrityReferential Integrity)约束)约束:关系:关系R1R1与与R2R2关联时,关联时,R2R2中的外键值依赖于

29、中的外键值依赖于R1R1中的主键值。中的主键值。l 域(域(Domain IntegrityDomain Integrity)约束)约束:对属性的取值范围:对属性的取值范围或是否为空值(或是否为空值(NULLNULL)。)。l 用户自定义约束用户自定义约束:用户自定义的默认值等。:用户自定义的默认值等。3.2 3.2 关系运算关系运算l关系运算就是指研究关系操作的问题关系运算就是指研究关系操作的问题l关系查询语言和关系运算关系查询语言和关系运算l关系代数运算符及其分类关系代数运算符及其分类l传统的集合运算传统的集合运算l专门的关系运算专门的关系运算l关系代数表达式应用实例关系代数表达式应用实例

30、l扩充的关系代数操作扩充的关系代数操作关系代数关系代数l 关系代数是一种抽象的查询语言。关系代数是一种抽象的查询语言。用对关系的运算来表达关系操作,关系代数是研用对关系的运算来表达关系操作,关系代数是研究关系数据操作语言的一种较好的数学工具。究关系数据操作语言的一种较好的数学工具。l 关系代数是关系代数是E.F.CoddE.F.Codd 1970 1970年首次提出的,后面一年首次提出的,后面一节的关系演算是节的关系演算是E.F.CoddE.F.Codd 1972 1972年首次提出的,年首次提出的,19791979年年E.F.CoddE.F.Codd对关系模型作了扩展,讨论了关对关系模型作了

31、扩展,讨论了关系代数中加入空值和外连接的问题。系代数中加入空值和外连接的问题。l 关系代数以一个或两个关系为输入(或称为操作关系代数以一个或两个关系为输入(或称为操作对象),产生一个新的关系作为其操作结果。对象),产生一个新的关系作为其操作结果。即其即其运算对象是关系,运算结果亦为关系。关系代数用运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符,如表算符、算术比较符和逻辑运算符,如表3.63.6所示。所示。关系代数的运算符关系代数的运算符关系代数的运算符关系代数的运算符运算符运算符含

32、义含义运算符运算符含义含义集合集合运运算符算符-并并交交差差笛卡尔积笛卡尔积比较比较运算运算符符大于大于大于等于大于等于小于小于小于等于小于等于等于等于不等于不等于专门专门的关的关系运系运算符算符广义笛卡尔积广义笛卡尔积选取选取投影投影除除连接连接逻辑逻辑运算运算符符 与与或或非非关系代数运算符分类说明关系代数运算符分类说明l比较运算符和逻辑运算符是用来辅助专门的关系运比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,所以关系代数的运算按运算符的算符进行操作的,所以关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两不同主要分为传统的集合运算和专门的关系运算两类。类。

33、l1.1.传统的集合运算:包括并、交、差、广义笛卡尔传统的集合运算:包括并、交、差、广义笛卡尔积四种运算。积四种运算。l2.2.专门的关系运算:包括选择、投影、连接、除等。专门的关系运算:包括选择、投影、连接、除等。l其中传统的集合运算将关系看成元组的集合,其运其中传统的集合运算将关系看成元组的集合,其运算是从关系的算是从关系的“水平水平”方向即行的角度来进行。而方向即行的角度来进行。而专门的关系运算不仅涉及到行而且涉及到列。专门的关系运算不仅涉及到行而且涉及到列。3.2.3 3.2.3 传统的集合运算传统的集合运算 传统的集合运算是二目运算,包括传统的集合运算是二目运算,包括并、交、差、广义

34、并、交、差、广义笛卡尔积笛卡尔积四种运算。四种运算。l 设关系设关系R R和关系和关系S S具有相同的目具有相同的目n n(即两个关系都有(即两个关系都有n n个个属性),且相应的属性取自同一个域,则可定义并、差、属性),且相应的属性取自同一个域,则可定义并、差、交运算如下:交运算如下:l 合并(合并(UnionUnion)设关系设关系R R和关系和关系S S具有相同的目具有相同的目n n(即两个关系都有(即两个关系都有n n个个属性),且相应的属性取自同一个域,则属性),且相应的属性取自同一个域,则关系关系R R与关系与关系S S的并由的并由属于属于R R或属于或属于S S的所有元组的所有元

35、组组成组成。记作。记作:RS=t|tRtS 其结果关系仍为其结果关系仍为n n目关系,由属于目关系,由属于R R或属于或属于S S的元组组的元组组成。关系的并操作对应于关系的插入或添加记录的操作,成。关系的并操作对应于关系的插入或添加记录的操作,俗称俗称“+”操作,是关系代数的基本操作。操作,是关系代数的基本操作。合并(合并(UnionUnion)例子)例子编号书名数量101C语言19102数据库20105操作系统15108汇编语言10编号书名数量12C语言1913高等数学2018外语(四)10编号编号书名书名数量数量101C语言19102数据库20105操作系统15108汇编语言1012C语

36、言1913高等数学2018外语(四)10合并运算结果(合并运算结果(C)进货关系(进货关系(B)库存关系(库存关系(A)传统的集合运算(续)传统的集合运算(续)l 求差(求差(DifferenceDifference)设关系设关系R R和关系和关系S S具有相同的目具有相同的目n n,且相应的属性取自,且相应的属性取自同一个域,则关系同一个域,则关系R R 与关系与关系S S的差由的差由属于属于R R而不属于而不属于S S的所有元组的所有元组组成。组成。记作:记作:R-S=R-S=t|tRtSt|tRtS 其结果关系仍为其结果关系仍为n n目关系,由属于目关系,由属于R R而不属于而不属于S

37、S的所的所有元组组成。关系的差操作对应于关系的删除记录的有元组组成。关系的差操作对应于关系的删除记录的操作,俗称操作,俗称“-”操作,是关系代数的基本操作。操作,是关系代数的基本操作。l 相交(相交(IntersectionIntersection)其结果关系仍为其结果关系仍为n n目关系,由既目关系,由既属于属于R R又属于又属于S S的元组的元组组成。关系的交可以用差来表示,组成。关系的交可以用差来表示,即即RS=R-(R-S)RS=R-(R-S)。关系的交操作对应于寻找两关系共有记录的操作,关系的交操作对应于寻找两关系共有记录的操作,是一种关系查询操作。关系的交操作能用差操作来代是一种关

38、系查询操作。关系的交操作能用差操作来代替,为此不是关系代数的基本操作。替,为此不是关系代数的基本操作。合并与相交运算都满足结合律。但求差运算不满足合并与相交运算都满足结合律。但求差运算不满足结合律。结合律。传统的集合运算(续传统的集合运算(续2 2)l 广义笛卡尔积(广义笛卡尔积(Extended Cartesian ProductExtended Cartesian Product)广义笛卡尔积不要求参加运算的两个关系具有广义笛卡尔积不要求参加运算的两个关系具有相同的目(自然也就不要求来自同样的域)。相同的目(自然也就不要求来自同样的域)。设设R R为为n n目关系目关系,S,S为为m m目

39、关系目关系,则则R R和和S S的广义笛卡的广义笛卡尔积为尔积为:R RS=S=t tr r t ts s|t|tr rRtRts sSS t tr r t ts s表示由两个元组表示由两个元组t tr r和和t ts s前后有序连接而成的前后有序连接而成的一个元组。相当于是一个组合的关系。一个元组。相当于是一个组合的关系。例子见教材例子见教材P42P42传统的集合运算(续传统的集合运算(续3 3)l任取元组任取元组t tr r和和t ts s,当且仅当当且仅当t tr r属于属于R R且且t ts s属于属于S S时时,t,tr r和和t ts s的的有序连接有序连接即为即为R RS S的一

40、个元组。的一个元组。lR R和和S S的广义笛卡尔积是一个(的广义笛卡尔积是一个(n+mn+m)目的关系。)目的关系。其其中任何一个元组的前中任何一个元组的前n n列是关系列是关系R R的一个元组的一个元组,后后m m列列是关系是关系S S的一个元组。的一个元组。若若R R有有K K1 1个元组个元组,S,S有有K K2 2个元组个元组,则则R RS S有有K K1 1K K2 2个元组。个元组。l 实际操作时实际操作时,可从可从R R的第一个元组开始的第一个元组开始,依次与依次与S S的每的每一个元组组合一个元组组合,然后然后,对对R R的下一个元组进行同样的操的下一个元组进行同样的操作作,

41、直至直至R R的最后一个元组也进行完同样的操作为止的最后一个元组也进行完同样的操作为止,即可得到即可得到R RS S的全部元组。的全部元组。传统的集合运算(续传统的集合运算(续4 4)l下列给出了两个关系下列给出了两个关系R R和和S,S,以及它们进行并、以及它们进行并、差、差、交和笛卡尔积后的结果关系。交和笛卡尔积后的结果关系。传统的集合运算(续传统的集合运算(续5 5)3.2.4 3.2.4 专门的关系运算专门的关系运算 上节中所讲的传统集合运算,只是从行的角度上节中所讲的传统集合运算,只是从行的角度进行,而要灵活地实现关系数据库的多样查询操进行,而要灵活地实现关系数据库的多样查询操作,则

42、须引入专门的关系运算。作,则须引入专门的关系运算。专门的关系运算专门的关系运算包括选择、投影、连接、除等。为了叙述方便,包括选择、投影、连接、除等。为了叙述方便,我们先引入几个记号。我们先引入几个记号。l 分量:分量:设关系模式为设关系模式为R(AR(A1 1,A,A2 2,A,An n)。它的一个关。它的一个关系设为系设为R R。tRtR表示表示t t是是R R的一个元组。的一个元组。tAtAi i 则表示则表示元组元组t t中相应于属性中相应于属性A Ai i的一个分量。的一个分量。专门的关系运算(续)专门的关系运算(续)l 属性列或域列:属性列或域列:若若A=AA=Ai1i1,A,Ai2

43、i2,A,Aikik,其中,其中A Ai1i1,A,Ai2i2,A Aikik是是A A1 1,A,A2 2,A,An n中的一部分,则中的一部分,则A A称为属性称为属性列或域列。列或域列。tA=(tAtA=(tAi1i1,tA,tAi2i2,tA,tAikik)表示元组表示元组t t在属性列在属性列A A上诸分量的集合。上诸分量的集合。A A则表示则表示 A A1 1,A,A2 2,A,An n 中去掉中去掉 A Ai1i1,A,Ai2i2,A,Aikik 后剩余的属性组。后剩余的属性组。l 元组的连接:元组的连接:R R为为n n目关系,目关系,S S为为m m目关系。目关系。t tr

44、rRR,t ts sSS,t tr r t ts s称为元组的连接(称为元组的连接(ConcatenationConcatenation)。它是一个)。它是一个(n+m)(n+m)列的元组,前列的元组,前n n个分量为个分量为R R中的一个中的一个n n元组,元组,后后m m个分量为个分量为S S中的一个中的一个m m元组。元组。l象集:象集:给定一个关系给定一个关系R(XR(X,Z)Z),X X和和Z Z为属性组。我们定义,为属性组。我们定义,当当tXtX=x=x时,时,x x在在R R中的象集(中的象集(Images SetImages Set)为:)为:Z Zx x =tZ|tR,tX=

45、tZ|tR,tX=x=x l关系模型的关系模型的5 5种基本数据操作种基本数据操作l投影投影:在一个关系内选择属性在一个关系内选择属性。l选择选择:在一个关系内选择元组在一个关系内选择元组。l连接连接:是两个关系的合并是两个关系的合并。l插入插入:在一个关系内插入新元组在一个关系内插入新元组。l删除删除:在一个关系内删除元组在一个关系内删除元组。专门的关系运算(续专门的关系运算(续2 2)专门的关系运算(续专门的关系运算(续2 2)一、选择(一、选择(SelectionSelection)选择又称为限制(选择又称为限制(RestrictionRestriction)。它是在)。它是在关系关系R

46、 R中选择满足给定条件的诸元组,记作:中选择满足给定条件的诸元组,记作:F F(R(R)=t|tRF(t)=“)=t|tRF(t)=“真真”其中其中F F表示选择条件,它是一个逻辑表达式,表示选择条件,它是一个逻辑表达式,取逻辑值取逻辑值“真真”或或“假假”。逻辑表达式逻辑表达式F F的基本形式为:的基本形式为:X X1 1YY1 1 X X2 2YY2 2 专门的关系运算专门的关系运算 (续(续3 3)其中其中表示比较运算符,它可以是、表示比较运算符,它可以是、或或。X1X1、Y1Y1等是属性名或常量或简单函数。等是属性名或常量或简单函数。属性名也可以用它的序号来代替(如属性名也可以用它的序

47、号来代替(如1 1,2 2,)。)。表示逻辑运算符,它可以是表示逻辑运算符,它可以是、或或。表示任选表示任选项,即项,即 中的部分可以要也可以不要,中的部分可以要也可以不要,表示上述格式表示上述格式可以重复下去。可以重复下去。例如:设有一个学生例如:设有一个学生-课程关系数据库,包括学生关课程关系数据库,包括学生关系系Student(Student(说明:说明:CSCS表示计算机系、表示计算机系、ISIS表示信息系、表示信息系、MAMA表示数学系表示数学系)、课程关系、课程关系CourseCourse和选修关系和选修关系SCSC。下面通。下面通过一些例子将对这三个关系进行运算。过一些例子将对这

48、三个关系进行运算。专门的关系运算(续专门的关系运算(续4 4)例例1 1 查询信息系(查询信息系(CSCS系)全体学生。系)全体学生。cs(Studentcs(Student)例例2 2 查询年龄大于查询年龄大于1919岁的学生。岁的学生。年龄年龄=19(Student)=19(Student)二二 投影(投影(ProjectionProjection)关系关系R R上的投影是从上的投影是从R R中选择出若干属性列组成新的中选择出若干属性列组成新的关系。记作:关系。记作:(R)=tA|tR(R)=tA|tR 其中其中A A为为R R中的属性列。关系的投影操作对应于关系中的属性列。关系的投影操作

49、对应于关系列的角度进行的选取操作(纵向选取),也是关系查询列的角度进行的选取操作(纵向选取),也是关系查询操作的重要成员之一,是关系代数的基本操作。操作的重要成员之一,是关系代数的基本操作。2.4.2 2.4.2 专门的关系运算(续专门的关系运算(续5 5)例例33 查询选修关系查询选修关系SCSC在学号和课程号两个属性上在学号和课程号两个属性上的投影。的投影。(SC)(SC)或或 (SC)(SC)例例4 4 查询学生关系查询学生关系StudentStudent中都有哪些系,即是中都有哪些系,即是学生关系学生关系StudentStudent在所系属性上的投影操作。在所系属性上的投影操作。(St

50、udent)(Student)三三 连接(连接(JoinJoin)连接也称连接也称连接连接,是从两个关系的广义笛卡是从两个关系的广义笛卡尔积中选取满足某规定条件的全体元组尔积中选取满足某规定条件的全体元组,形成一形成一个新的关系个新的关系,记为记为专门的关系运算(续专门的关系运算(续6 6)其中其中,A,A是是R R的属性组的属性组(A A1 1,A,A2 2,A,Ak k),B,B是是S S的属性的属性 组(组(B B1 1,B,B2 2,B,BK K)。)。ABAB的实际形式为的实际形式为 A Ai i和和B Bi i(i=1,2,i=1,2,k,k)不一定同名)不一定同名,但必须可比。但

51、必须可比。i i(i(i=1,2,=1,2,k),k),=,=,。连接运算中有两种最为重要也是最为常用的连接,连接运算中有两种最为重要也是最为常用的连接,一种是等值连接一种是等值连接(equijoinequijoin),另一种是自然连接),另一种是自然连接(Natural joinNatural join)。)。专门的关系运算(续专门的关系运算(续7 7)l 等值连接等值连接(equijoinequijoin)属于连接属于连接,当一个连接当一个连接表达式中表达式中,所有的所有的i i都是都是“=”=”符时符时,则称此连接则称此连接为等值连接。等值连接是较常用的连接。为等值连接。等值连接是较常用

52、的连接。l 自然连接(自然连接(Natural joinNatural join)是一种特殊的等值是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去相同的属性组,并且要在结果中把重复的属性去掉。即若掉。即若R R和和S S具有相同的属性组具有相同的属性组B B,l 关系的各种连接,实际上是在关系的广义笛卡关系的各种连接,实际上是在关系的广义笛卡尔积的基础上再组合选择或投影操作复合而成的尔积的基础上再组合选择或投影操作复合而成的一种查询操作一种查询操作 专门的关系运算(续专门的关系运算(续8 8)四、删除

53、(四、删除(DivisionDivision)给定关系给定关系R(XR(X,Y)Y)和和S(YS(Y,Z)Z),其中,其中X X,Y Y,Z Z为属性为属性组。组。R R中的中的Y Y与与S S中的中的Y Y可以有不同的属性名,但必须出可以有不同的属性名,但必须出自相同的域。自相同的域。R R与与S S的除运算得到一个新的关系的除运算得到一个新的关系P(X)P(X),P P是是R R中满足下列条件的元组在中满足下列条件的元组在X X属性列上的投影:元属性列上的投影:元组在组在X X上分量值上分量值x x的象集的象集YxYx包含包含S S在在Y Y上投影的集合。记上投影的集合。记作:作:R RS

54、=tS=tr rX|tX|tr rRYRYx xY Y(S(S)其中其中YxYx为为x x在在R R中的象集,中的象集,x=tx=tz zXX。除操作是同时从行和列角度进行运算。除操作适合除操作是同时从行和列角度进行运算。除操作适合于包含于包含“对于所有的对于所有的/全部的全部的”语句的查询操作。语句的查询操作。专门的关系运算(续专门的关系运算(续9 9)五关系代数操作表达举例五关系代数操作表达举例l关系代数中,关系代数运算经有限次复合后形成的关系代数中,关系代数运算经有限次复合后形成的式子称为关系代数表达式。对关系数据库中数据的查式子称为关系代数表达式。对关系数据库中数据的查询可以写成一个关

55、系代数表达式。或者说你写成一个询可以写成一个关系代数表达式。或者说你写成一个关系代数表达式就表示你已经完成了该查询操作。以关系代数表达式就表示你已经完成了该查询操作。以下是表达举例:下是表达举例:l 设教学数据库中有三个关系,设教学数据库中有三个关系,1 1、学生关系:、学生关系:S(SNOS(SNO,SNSN,AGEAGE,SEX)SEX)、2 2、学习关系:、学习关系:SC(SNOSC(SNO,CNOCNO,GRADE)GRADE)、3 3、课程关系:、课程关系:C(CNOC(CNO,CNCN,TEACHER)TEACHER)专门的关系运算专门的关系运算(续续10)10)(1)检索学习课程

56、号为检索学习课程号为C3C3的学生学号和成绩的学生学号和成绩 SNO,GRADE(CNO=C3(SSC)SNO,GRADE(CNO=C3(SSC)(2 2)检索学习课程号为)检索学习课程号为C4C4的学生学号和姓名的学生学号和姓名 SNO,SN(CNO=C4(SSC)SNO,SN(CNO=C4(SSC)(3 3)检索学习课程名为)检索学习课程名为MATHSMATHS的学生学号和姓名的学生学号和姓名 SNO,SN(CN=MATHS(SSCC)SNO,SN(CN=MATHS(SSCC)(4 4)检索学习课程号为)检索学习课程号为C1C1或或C3C3的学生学号的学生学号 SNO(CNO=C1VCNO

57、=C3(SC)SNO(CNO=C1VCNO=C3(SC)(5 5)检索不学习课程号为)检索不学习课程号为C2C2的学生的姓名和年龄的学生的姓名和年龄 SN,AGE(S)-SN,AGE(CNO=C2(SSC)SN,AGE(S)-SN,AGE(CNO=C2(SSC)(6 6)检索学习全部课程的学生姓名)检索学习全部课程的学生姓名 SN(S(SNO,CNO(SC)SN(S(SNO,CNO(SC)CNO(C)CNO(C)(7 7)检索所学课程包括)检索所学课程包括200401200401所学课程的学生学号所学课程的学生学号 SNO,CNO(SC)SNO,CNO(SC)CNO(SNOCNO(SNO=20

58、0401(SC)=200401(SC)小结小结l 关系数据库系统是本书的重点。这是因为关系数据关系数据库系统是本书的重点。这是因为关系数据库系统是目前使用最广泛的数据库系统。库系统是目前使用最广泛的数据库系统。2020世纪世纪7070年年代以后开发的数据库管理系统产品几乎都是基于关系代以后开发的数据库管理系统产品几乎都是基于关系的。更进一步,数据库领域近的。更进一步,数据库领域近4040年来的研究工作也主年来的研究工作也主要是关系的。在数据库发展的历史上,最重要的成就要是关系的。在数据库发展的历史上,最重要的成就是创立了关系模型,并广泛应用关系数据库系统。是创立了关系模型,并广泛应用关系数据库

59、系统。l 关系数据库系统与非关系数据库系统的区别是,关关系数据库系统与非关系数据库系统的区别是,关系系统只有系系统只有“表表”这一种数据结构;而非关系数据库这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他复杂系统还有其他数据结构,对这些数据结构有其他复杂而不规则的操作。而不规则的操作。l 本章系统讲解了关系数据库的重要概念,包括关系本章系统讲解了关系数据库的重要概念,包括关系模型的数据结构、关系的完整性以及关系操作。介绍模型的数据结构、关系的完整性以及关系操作。介绍了用代数方式来表达的关系语言即关系代数、为进一了用代数方式来表达的关系语言即关系代数、为进一步学习下一章关系数据库国际标准语言步学习下一章关系数据库国际标准语言SQLSQL打好了坚实打好了坚实的基础。的基础。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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