第2章关系模型和关系运算理论-ppt课件_第1页
第2章关系模型和关系运算理论-ppt课件_第2页
第2章关系模型和关系运算理论-ppt课件_第3页
第2章关系模型和关系运算理论-ppt课件_第4页
第2章关系模型和关系运算理论-ppt课件_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

1、第第2章章 关系模型和关系模型和关系运算实际关系运算实际 本章重要概念本章重要概念1 1根本概念根本概念关系模型,关键码主键和外键,关系关系模型,关键码主键和外键,关系的定义和性质,三类完好性规那么,过程的定义和性质,三类完好性规那么,过程性言语与非过程性言语。性言语与非过程性言语。2关系代数关系代数五个根本操作,四个组合操作,七个扩展五个根本操作,四个组合操作,七个扩展操作。操作。 本章重要概念本章重要概念23关系演算关系演算元组关系演算和域关系演算的原子公式、元组关系演算和域关系演算的原子公式、公式的定义。关系演算的平安性和等价性。公式的定义。关系演算的平安性和等价性。4关系代数表达式的优

2、化关系代数表达式的优化关系代数表达式的等价及等价转换规那么,关系代数表达式的等价及等价转换规那么,启化式优化算法。启化式优化算法。5关系逻辑关系逻辑谓词、原子、规那么和查询,规那么的平谓词、原子、规那么和查询,规那么的平安性,用规那么模拟关系代数表达式。安性,用规那么模拟关系代数表达式。 本章概要本章概要 l本章先引见关系模型的根本概念;本章先引见关系模型的根本概念;然后引见关系运算的三种实际:然后引见关系运算的三种实际:关系代数、关系演算和关系逻辑。关系代数、关系演算和关系逻辑。 关系模型和关系运算实际关系模型和关系运算实际 l2.1 2.1 关系模型的根本概念关系模型的根本概念 l2.2

3、2.2 关系代数关系代数 l2.3 2.3 关系演算关系演算 l2.4 2.4 关系代数表达式的优化关系代数表达式的优化 l2.5 2.5 关系逻辑关系逻辑l2.6 2.6 小结小结2.1 2.1 关系模型的根本概念关系模型的根本概念 l2.1.1 2.1.1 根本术语根本术语 l2.1.2 2.1.2 关系的定义和性质关系的定义和性质l2.1.3 2.1.3 关系模型的三类完好性规那么关系模型的三类完好性规那么 l2.1.4 2.1.4 关系模型的三级体系构造关系模型的三级体系构造 l2.1.5 2.1.5 关系模型的方式定义和优点关系模型的方式定义和优点 l2.1.6 2.1.6 关系查询

4、言语和关系运算关系查询言语和关系运算 前往2.1.1 根本术语根本术语(1) l定义定义2.1 用二维表格表示实体集,用关用二维表格表示实体集,用关键码表示实体之间联络的数据模型称为键码表示实体之间联络的数据模型称为关系模型关系模型Relational Model。图图2.1 2.1 学生登记表学生登记表 学号学号姓名姓名年龄年龄性别性别籍贯籍贯S1S1WANGWANG2020M M北京北京S4S4LIULIU1818F F山东山东S2S2HUHU1717M M上海上海S3S3XIAXIA1919F F四川四川2.1.1 根本术语根本术语(2)l 在关系模型中,字段称为属性,字段值称为属性值,

5、记录类型称为关系方式。在图2.1中,关系方式名是R。记录称为元组tuple,元组的 集 合 称 为 关 系 r e l a t i o n 或 实 例instance。普通用大写字母A、B、C、 表示单个属性,用大写字母 、X、Y、Z表示属性集,用小写字母表示属性值,有时也习惯称谓关系为表或表格,元组为行(row),属性为列(column)。l关系中属性个数称为“元数arity,元组个数为“基数(cardinality)。 2.1.1 根本术语根本术语(3)l关系元数为关系元数为5 5,基数为,基数为4 4。 R R A A B B C C D D E E a a1 1 b b1 1 c c1

6、 1 d d1 1 e e1 1 a a2 2 b b2 2 c c2 2 d d2 2 e e2 2 a a3 3 b b3 3 c c3 3 d d3 3 e e3 3 a a4 4 b b4 4 c c4 4 d d4 4 e e4 4 普通术语普通术语关系模型术语关系模型术语字段、数据项字段、数据项属性属性记录类型记录类型关系方式关系方式记录记录1 1元组元组1 1记录记录2 2元组元组2 2记录记录3 3元组元组3 3记录记录4 4元组元组4 4字段值字段值属性值属性值图图2.2 2.2 关系模型的术语关系模型的术语 文文件件关关系系2.1.1 根本术语根本术语(4)l 关键码(ke

7、y,简称键)由一个或多个属性组成。在实践运用中,有以下几种键。l 1超键Super Keyl 2候选键Candidate Keyl 3主键(Primary Key) l 在图2.1中,工号,姓名是方式的一个超键,但不是候选键,而工号是候选键。在实践运用中,假设选择工号作为删除或查找元组的标志,那么称工号是主键。l 4外键Foreign Key前往2.1.2 2.1.2 关系的定义和性质关系的定义和性质 l定义定义2.2 2.2 关系是一个属性数目一样的元组的关系是一个属性数目一样的元组的 集合。集合。 l 在关系模型中,对关系作了以下规范性限制:在关系模型中,对关系作了以下规范性限制:l1 1

8、关系中每一个属性值都是不可分解的;关系中每一个属性值都是不可分解的;l2 2关系中不允许出现反复元组关系中不允许出现反复元组l即不允许出现一样的元组;即不允许出现一样的元组;l3 3由于关系是一个集合,因此不思索元组由于关系是一个集合,因此不思索元组间间 的顺序,即没有行序;的顺序,即没有行序;l4 4元组中的属性在实际上也是无序的,元组中的属性在实际上也是无序的,l 但运用时按习惯思索列的顺序。但运用时按习惯思索列的顺序。前往2.1.3 2.1.3 关系模型的完好性规那么关系模型的完好性规那么(1) (1) l 实体完好性规那么entity integrity rulel 要求关系中元组在组

9、成主键的属性上不能有空值。假设出现空值,那么主键值就起不了独一标识元组的作用。2.1.3 2.1.3 关系模型的完好性规那么关系模型的完好性规那么 (2)(2)l参照完好性规那么参照完好性规那么reference integrity rulel定义定义2.3 参照完好性规那么的方式定义如下:参照完好性规那么的方式定义如下:l 假设属性集假设属性集K是关系方式是关系方式R1的主键,的主键,K也是关系方式也是关系方式R2的外键,那么在的外键,那么在R2的关系的关系中,中,K的取值只允许两种能够,或者为空值,的取值只允许两种能够,或者为空值,或者等于或者等于R1关系中某个主键值。关系中某个主键值。l

10、 这条规那么的本质是这条规那么的本质是“不允许援用不存在不允许援用不存在的实体。的实体。l 在上述方式定义中,关系方式在上述方式定义中,关系方式R1的关系称的关系称为为“参照关系,关系方式参照关系,关系方式R2的关系称为的关系称为“依依赖关系。赖关系。“主表和主表和“副表,副表,“父表和父表和“子表。子表。 2.1.3 2.1.3 关系模型的完好性规那么关系模型的完好性规那么 (3)(3)l这条规那么在详细运用时,有三点变通:这条规那么在详细运用时,有三点变通:l 外键和相应的主键可以不同名,外键和相应的主键可以不同名,l 只需定义在一样值域上即可;只需定义在一样值域上即可;l R1 R1和和

11、R2R2也可以是同一个关系方式,此时也可以是同一个关系方式,此时表示了同一个关系中不同元组之间的联络;表示了同一个关系中不同元组之间的联络;l 外键值能否允许空,应视详细问题而定。外键值能否允许空,应视详细问题而定。2.1.3 2.1.3 关系模型的完好性规那么关系模型的完好性规那么 (4)(4)l例例 下面各种情况阐明了参照完好性规那么在关系中如下面各种情况阐明了参照完好性规那么在关系中如何实现的。何实现的。l 在关系数据库中有以下两个关系方式:在关系数据库中有以下两个关系方式:lS SS#S#,SNAMESNAME,AGEAGE,SEXSEXlSCSCS#S#,C#C#,SCORESCOR

12、El 这里带这里带 线者为主键,带线者为主键,带 线者为外键。据规线者为外键。据规那么要求关系那么要求关系SCSC中的中的S#S#值应该在关系值应该在关系S S中出现。假设关中出现。假设关系系SCSC中有一个元组中有一个元组S7,C4,80S7,C4,80,而学号,而学号S7S7却在关系却在关系S S中找不到,那么我们就以为在关系中找不到,那么我们就以为在关系SCSC中援用了一个不存中援用了一个不存在的学生实体,这就违反了参照完好性规那么。在的学生实体,这就违反了参照完好性规那么。l 另外,在关系另外,在关系SCSC中中S# S# 不仅是外键,也是主键的一部不仅是外键,也是主键的一部分,因此这

13、里分,因此这里S# S# 值不允许空。值不允许空。2.1.3 2.1.3 关系模型的完好性规那么关系模型的完好性规那么 (5)(5) 设工厂数据库中有两个关系方式:设工厂数据库中有两个关系方式:DEPT(D#,DNAME)EMP(E#,ENAME,SALARY,D# ) 车间方式车间方式DEPT的属性为车间编号、车间名,的属性为车间编号、车间名,职工方式职工方式EMP的属性为工号、姓名、工资、的属性为工号、姓名、工资、所在车间的编号。每个方式的主键与外键已所在车间的编号。每个方式的主键与外键已标出。在标出。在EMP中,由于中,由于D# 不在主键中,因此不在主键中,因此D# 值允许空。值允许空。

14、2.1.3 2.1.3 关系模型的完好性规那么关系模型的完好性规那么 (6)(6) 设课程之间有先修、后继连系。方式如下:设课程之间有先修、后继连系。方式如下:R RC#C#,CNAMECNAME,PC#PC# 其属性表示课程号、课程名、先修课的课其属性表示课程号、课程名、先修课的课程号。假设规定,每门课程的直接先修课只程号。假设规定,每门课程的直接先修课只需一门,那么方式需一门,那么方式R R的主键是的主键是C#C#,外键是,外键是PC#.PC#.。这里参照完好性在一个方式中实现。这里参照完好性在一个方式中实现。即每门课程的直接先修课必需在关系中出现。即每门课程的直接先修课必需在关系中出现。

15、 2.1.3 2.1.3 关系模型的完好性规那么关系模型的完好性规那么 (7)(7)l例例2.1 2.1 TEACHERTEACHERT#T#,TNAMETNAME,TITLETITLElCOURSE COURSE C#C#,CNAMECNAME,T#T#lSTUDENTSTUDENTS#S#,SNAMESNAME,AGEAGE,SEXSEXlSC SC S#S#,C#C#,SCORESCORETEACHER(T#,TNAME,TITLE)TEACHER(T#,TNAME,TITLE)COURSE(C#,CNAME,T#)COURSE(C#,CNAME,T#)STUDENT(S#,SNAME,

16、AGE,SEX)STUDENT(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)SC(S#,C#,SCORE)图图2.3 2.3 关系模型的数据构造图关系模型的数据构造图DSDDSD2.1.3 2.1.3 关系模型的完好性规那么关系模型的完好性规那么 (8)(8)l用户定义的完好性规那么用户定义的完好性规那么 l 在建立关系方式时,对属性定义了数据在建立关系方式时,对属性定义了数据类型,即使这样能够还满足不了用户的需求。类型,即使这样能够还满足不了用户的需求。此时,用户可以针对详细的数据约束,设置此时,用户可以针对详细的数据约束,设置完好性规那么,由系统来检验实施,以运用完好性

17、规那么,由系统来检验实施,以运用一致的方法处置它们,不再由运用程序承当一致的方法处置它们,不再由运用程序承当这项任务。这项任务。l 例如学生的年龄定义为两位整数,例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规那么把年龄范围还太大,我们可以写如下规那么把年龄限制在限制在15153030岁之间:岁之间:lCHECKCHECKAGE BETWEEN 15 AND 30AGE BETWEEN 15 AND 30 前往2.1.4 2.1.4 关系模型的三层体系构造关系模型的三层体系构造 - - 关系方式关系方式 l在关系模型中,记录类型称为关系方式,而关系方式的集合就是数据库的概念方式。在系

18、统实现时,关系方式和属性的命名普通都用英文单词。 TEACHERTEACHERT#T#,TNAMETNAME,TITLETITLECOURSE COURSE C#C#,CNAMECNAME,T#T#STUDENTSTUDENTS#S#,SNAMESNAME,AGEAGE,SEXSEXSC SC S#S#,C#C#,SCORESCORE2.1.4 2.1.4 关系模型的三层体系构造关系模型的三层体系构造 -子方式子方式1 1 l子方式是用户所用到的那部分数据的描画。子方式是用户所用到的那部分数据的描画。除此之外,还应指出数据与关系方式中相除此之外,还应指出数据与关系方式中相应数据的连系。例如,用

19、户需求用到子方应数据的连系。例如,用户需求用到子方式式G G图图2.32.3。成果子方式成果子方式 G(S#G(S#,SNAMESNAME,C#C#,SCORE) SCORE) 2.1.4 2.1.4 关系模型的三层体系构造关系模型的三层体系构造 -子方式子方式2 2 80GS#SNAME C#SCORES256WangC580 SS#SNAME AGE SEXS256Wang21F SCS#C#SCORES256C580 2.1.4 2.1.4 关系模型的三层体系构造关系模型的三层体系构造 -存储方式存储方式1 1 图图2.6 2.6 关系关系STUDENTSTUDENT和和SCSC的环构造

20、的环构造 在有些DBMS中,关系存储是作为文件对待的,每个元组就是一个记录。由于关系方式有键,因此存储一个关系可用散列方法或索引方法实现。假设关系的元组数目较少100个以内,那么也可以用“堆文件方式实现即没有特定的次序。此外,还可对恣意的属性集建立辅助索引。 关系关系STUDENTSTUDENT S#S# SNAMESNAME AGEAGE SEXSEXPTRPTRS1S1 WANGWANG2020M MS2S2HUHU1717M MS3S3XIAXIA1919F FS4S4LIULIU1818F F关系SCPTRPTR S#S#C#C# SCORESCORES1S1C1C18080S2S2C

21、1C18585S1S1C2C26060S2S2C2C27575S1S1C3C37070S4S4C4C490902.1.4 2.1.4 关系模型的三层体系构造关系模型的三层体系构造 -存储方式存储方式2 2 图图2.7 2.7 两个关系存储在一同两个关系存储在一同 S1S1 WANGWANG 2020M M S1S1C1C1 8080 S1S1C2C2 6060 S1S1C3C3 7070S2S2HUHU1717M M S2S2C1C1 8585 S2S2C2C2 7575S3S3XIAXIA 1919F FS4S4LIULIU 2020F F S4S4C4C4 90902.1.5 2.1.5

22、关系模型的方式定义关系模型的方式定义l 关系模型有三个重要组成部分:数据构造,数据支配,数据完好性规那么。l1数据构造:数据库中全部数据及其相互连系都被组织成“关系二维表格的方式。关系模型根本的数据构造是关系。l2数据支配:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数、关系演算和关系逻辑等三类。l3数据完好性规那么:数据库中数据必需满足实体完好性,参照完好性和用户定义的完好性等三类完好性规那么。 2.1.5 2.1.5 关系模型的优点关系模型的优点l与其它数据模型相比,关系模型突出的优点如下:与其它数据模型相比,关系模型突出的优点如下:l1 1关系模型提供

23、单一的数据构造方式,具有高关系模型提供单一的数据构造方式,具有高度的简明性和准确性。度的简明性和准确性。l2 2关系模型的逻辑构造和相应的操作完全独立关系模型的逻辑构造和相应的操作完全独立于数据存储方式,具有高度的数据独立性。于数据存储方式,具有高度的数据独立性。l3 3关系模型使数据库的研讨建立在比较坚实的关系模型使数据库的研讨建立在比较坚实的数学根底上。数学根底上。l4 4关系数据库言语与一阶谓词逻辑的固有内在关系数据库言语与一阶谓词逻辑的固有内在连系,为以关系数据库为根底的推理系统和知识连系,为以关系数据库为根底的推理系统和知识库系统的研讨提供了方便。库系统的研讨提供了方便。2.1.6

24、2.1.6 关系查询言语和关系运算关系查询言语和关系运算 l关系数据库的数据支配言语关系数据库的数据支配言语DML的语句分成的语句分成查询语句和更新语句两大类。查询语句用于描画查询语句和更新语句两大类。查询语句用于描画用户的各种检索要求;更新语句用于描画用户进用户的各种检索要求;更新语句用于描画用户进展插入、删除、修正等操作。关于查询的实际称展插入、删除、修正等操作。关于查询的实际称为为“关系运算实际。关系运算实际。l关系查询言语根据其实际根底的不同分成三类:关系查询言语根据其实际根底的不同分成三类:l1关系代数言语。关系代数言语。l2关系演算言语。关系演算言语。l3关系逻辑言语。关系逻辑言语

25、。 2.2 2.2 关系代数关系代数 l2.2.1 2.2.1 关系代数的五个根本操作关系代数的五个根本操作 l2.2.2 2.2.2 关系代数的四个组合操作关系代数的四个组合操作 l2.2.3 2.2.3 关系代数运算的运用实例关系代数运算的运用实例 l2.2.4 2.2.4 关系代数的七个扩展操作关系代数的七个扩展操作 前往2.2.1 2.2.1 关系代数的五个根本操作关系代数的五个根本操作 (1)(1)l 并Unionl设关系R和S具有一样的关系方式,R和S的并是由l 属于R或属于S的元组构成的集合,记为RS。l 方式定义如下:lRSt | tR tS,lt是元组变量,R和S的元数一样。

26、l 差Differencel设关系R和S具有一样的关系方式,R和S的差是由l 属于R但不属于S的元组构成的集合,记为RS。方式定义如下:lRS t | tR tS,R和S的元数一样。2.2.1 2.2.1 关系代数的五个根本操作关系代数的五个根本操作 (2)(2)l笛卡尔积笛卡尔积Cartesian ProductCartesian Productl 方式定义如下:方式定义如下:l R RSt|tSt|ttrtrRtsStstrRtsSll此处此处trtr、tsts中中r r,s s为上标。假设为上标。假设R R有有m m个元组,个元组,S S有有n n个元组,那么个元组,那么R RS S有有

27、m mn n个元个元组。组。2.2.1 2.2.1 关系代数的五个根本操作关系代数的五个根本操作 (3)(3)l 投影Projection对关系进展垂直分割l方式定义如下:l i1,imRl t|tti1,timt1,tkRl例如,3,1R表示新关系中第1列为R的第3列,新关系的第2列为R的第1列。假设R的每列标上属性名,那么操作符的下标处也可以用属性名表示。例如,关系RA,B,C,l那么C,AR与3,1R是等价的。2.2.1 2.2.1 关系代数的五个根本操作关系代数的五个根本操作 (4)(4)l选择选择SelectionSelection据条件对关系做程度分据条件对关系做程度分割割l 方式

28、定义如下:方式定义如下:lFFR R t | tR F t | tR Ft t= = true true l例如,例如,2233R R表示从表示从R R中挑选第中挑选第2 2个分量值大于个分量值大于3 3的元组所构成的关系。书写的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括括起来,而属性序号或属性名不要用引号括起来。起来。2.2.12.2.1关系代数的五个根本操作关系代数的五个根本操作 ( (例例) )l例例2.2 2.2 有两个关系有两个关系R R和和S S:(a a)关系)关系R R (b b)关系

29、)关系S S A AB BC CA AB BC C1 12 23 32 24 46 64 45 56 64 45 56 67 78 89 92.2.12.2.1关系代数的五个根本操作关系代数的五个根本操作 ( (例例) )A A B B C CA A B B C C R.AR.AR.BR.BR.CR.CS.AS.AS.BS.BS.CS.C C CA AA A B B C C1 1 2 2 3 31 1 2 2 3 31 12 23 32 24 46 63 31 14 4 5 5 6 64 4 5 5 6 67 7 8 8 9 91 12 23 34 45 56 66 64 47 7 8 8 9

30、 97 7 8 8 9 94 45 56 62 24 46 69 97 72 2 4 4 6 64 45 56 64 45 56 67 78 89 92 24 46 67 78 89 94 45 56 6a a b b c c d d e e RS R RS RS RS RS CS C,A AR R B B44R R2.2.2 2.2.2 关系代数的四个组合操作关系代数的四个组合操作 (1)(1)l 交intersectionl关系R和S的交是由属于R又属于S的元组构成的集合,记为RS,这里要求R和S定义在一样的关系方式上。方式定义如下:lRSttR tS,R和S的元数一样。l由于RS = R

31、-R-S,或RS = S-S-R,因此交操作不是一个独立的操作。l 在表2.3中,RS的结果是只需一个元组l 4,5,6。 2.2.2 2.2.2 关系代数的四个组合操作关系代数的四个组合操作 (2)(2)l衔接衔接joinjoin衔接衔接 lR StR Stt=trt=trRtsStritsj tstrRtsStritsj l l定义等价于下式:定义等价于下式:l R Si(r+j)(R R Si(r+j)(RS)S)l该式表示衔接是在关系该式表示衔接是在关系R R和和S S的笛卡儿积中挑选第的笛卡儿积中挑选第i i个分量和第个分量和第r+jr+j个分量满足个分量满足操作的元组。操作的元组。

32、ijij2.2.2 2.2.2 关系代数的四个组合操作关系代数的四个组合操作 (3)(3)A AB BC CD DE EA AB BC CD DE E1 12 23 32 24 41 12 23 32 24 44 45 56 65 56 64 45 56 65 56 67 72 29 97 78 87 72 29 92 24 4 (a)关系R (b)关系S (c) R S 2=1图图2.10 2.10 衔接的例子衔接的例子R S2=4(RR S2=4(RS)S) 2=12.2.2 2.2.2 关系代数的四个组合操作关系代数的四个组合操作 (4)(4)l 自然衔接natural joinl 关系

33、R和S的自然衔接操作计算过程如下: lR S 去掉S中的公共属性(公共属性上值相等(RS)A AB BC CB BC CD DA AB BC CD D2 24 46 65 57 73 32 24 46 62 23 35 57 74 46 62 23 35 57 73 37 74 46 65 57 79 93 35 57 79 97 74 46 62 2 a关系R b关系ScR SR SA,R.B,R.C,D (R.B=S.BR.C=S.C(RR SA,R.B,R.C,D (R.B=S.BR.C=S.C(RS)S)2.2.2 2.2.2 关系代数的四个组合操作关系代数的四个组合操作 (5)(5)

34、l除法除法divisiondivisionl 设关系设关系R R和和S S的元数分别为的元数分别为r r和和s s设设rs0rs0,那么那么R RS S是一个是一个r-sr-s元的元组的集合。元的元组的集合。R RS S是满足以下条件的最大关系:其中每是满足以下条件的最大关系:其中每个元组个元组t t与与S S中每个元组中每个元组u u组成的新元组组成的新元组tu必在关系必在关系R R中。中。 lR RS1S1,2 2,r-s(R)r-s(R)l 11,2 2,r-s(1r-s(1,2 2,r-r-s(R)s(R)S)-R) S)-R) R S#SNAMEC#CNAMECOURSE1 C#CN

35、AMERCOURSE1 S#SNAMES1 BAO C1DBC2OSS1BAOS1 BAO C2OSS2GUS1 BAO C3DSCOURSE2 C#CNAMES3ANS1 BAO C4 MISC2OSS4LIS2GUC1DBC4 MISS2GUC2OSRCOURSE2 S#SNAMES3ANC2OSCOURSE3 C#CNAMES1BAOS4LIC2OSC1DBS4LIS4LIC4 MISC2OSC4 MIS RCOURSE 3 S#SNAMES1BAO表表2.7 2.7 除法操作的例子除法操作的例子2.2.3 2.2.3 关系代数运算的运用实例关系代数运算的运用实例 l 在关系代数运算中,

36、把由五个根本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询操作。l 例2.6 设教学数据库中有四个关系:l教师关系 TT#,TNAME,TITLEl课程关系CC#,CNAME,T#l学生关系SS#,SNAME,AGE,SEXl选课关系SCS#,C#,SCORE SS#,SNAME,AGE,SEX SCS#,C#,SCORE检索学习课程号为检索学习课程号为C2C2课程的学生学号与成果。课程的学生学号与成果。 S#S#,SCORESCOREC#=C2C#=C2SCSC表达式中也可以不写属性名,而写上属性的序号:表达式中也可以不

37、写属性名,而写上属性的序号:11,3 32=C22=C2SCSC 检索学习课程号为检索学习课程号为C2C2的学生学号与姓名。的学生学号与姓名。 S#S#,SNAMESNAMEC#=C2C#=C2S SCS SC 由于这个查询涉及到两个关系由于这个查询涉及到两个关系S S与与SCSC,因此先要,因此先要对这两个关系进展自然衔接操作,然后再执行选择对这两个关系进展自然衔接操作,然后再执行选择和投影操作。和投影操作。 T(T#,TNAME,TITLE) S(S#,SNAME,AGE,SEX) T(T#,TNAME,TITLE) S(S#,SNAME,AGE,SEX) C(C#,CNAME,T#) C

38、(C#,CNAME,T#) SC(S#,C#,SCORE) SC(S#,C#,SCORE)检索至少选修检索至少选修LIULIU教师所授课程中一门课程的学教师所授课程中一门课程的学生学号与姓名。生学号与姓名。 S# S#,SNAMESNAMETNAME=LIUTNAME=LIUS SC C S SC C T T 检索选修课程号为检索选修课程号为C2C2或或C4C4的学生学号。的学生学号。 S#S#C#=C2C#=C4C#=C2C#=C4SCSC 检索至少选修课程号为检索至少选修课程号为C2C2和和C4C4的学生学号。的学生学号。 111=42=C25=C41=42=C25=C4SCSCSCSC这

39、里这里SCSCSCSC表示关系表示关系SCSC本身相乘的笛卡尔本身相乘的笛卡尔积操作。积操作。SS#,SNAME,AGE,SEX SCS#,C#,SCORE 检索不学检索不学C2C2课的学生姓名与年龄。课的学生姓名与年龄。SNAMESNAME,AGE(S)AGE(S)SNAMESNAME,AGE(C#=C2(S AGE(C#=C2(S SC)SC) 这里要用到集合差操作。先求出全体学生的这里要用到集合差操作。先求出全体学生的姓名和年龄,再求出学了姓名和年龄,再求出学了C2C2课的学生的姓名课的学生的姓名和年龄,最后执行两个集合的差操作。和年龄,最后执行两个集合的差操作。 SNAME SNAME

40、,AGE(C#C2(S SC)AGE(C#C2(S SC)SS#,SNAME,AGE,SEXSCS#,C#,SCORECC#,CNAME,TEACHER 检索学习全部课程的学生姓名。检索学习全部课程的学生姓名。编写这个查询语句的关系代数表达式过程如下:编写这个查询语句的关系代数表达式过程如下:学生选课情况可用操作学生选课情况可用操作S#S#,C#(SC)C#(SC)表示;表示;全部课程可用操作全部课程可用操作C#(C) C#(C) 表示;表示;学了全部课程的学生学号可用除法操作表示,学了全部课程的学生学号可用除法操作表示,操作结果是学号操作结果是学号S#S#集:集: S#S#,C#(SC)C#

41、(SC)C#(C)C#(C)从从S#S#求学生姓名求学生姓名SNAMESNAME,可以用自然联接和投,可以用自然联接和投影操作组合而成:影操作组合而成: SNAME(S (S# SNAME(S (S#,C#(SC)C#(SC)C#(C)C#(C)SCS#,C#,SCORE 检索所学课程包含学生检索所学课程包含学生S3S3所学课程的学生学所学课程的学生学号。号。学生选课情况可用操作学生选课情况可用操作S#S#,C#(SC)C#(SC)表示;表示; 学 生学 生 S 3S 3 所 学 课 程 可 用 操 作所 学 课 程 可 用 操 作C#(S#=S3(SC) C#(S#=S3(SC) 表示;表示

42、;所学课程包含学生所学课程包含学生S3S3所学课程的学生学号,可所学课程的学生学号,可以用除法操作求得:以用除法操作求得:S#S#,C#(SC)C#(SC)C#(S#=S3(SC) C#(S#=S3(SC) 2.2.3 2.2.3 关系代数运算的运用实例关系代数运算的运用实例 l查询语句的关系代数表达式的普通方式是:查询语句的关系代数表达式的普通方式是:lRSl或者或者 R Sl但是当查询涉及到否认或全部值时,上述但是当查询涉及到否认或全部值时,上述方式就不能表达了,就要用到差操作或除方式就不能表达了,就要用到差操作或除法操作,在例法操作,在例2.6中的、阐明了这中的、阐明了这点。点。2.2.

43、4 2.2.4 七个扩展操作七个扩展操作1 1 l改名改名 l广义投影广义投影 l赋值赋值 l外衔接外衔接outer joinouter join l外部并外部并outer unionouter union l半衔接半衔接semijoinsemijoin l聚集操作聚集操作 2.2.4 2.2.4 七个扩展操作七个扩展操作2 2 l1改名:可改动关系的命名和属性的命名。改名:可改动关系的命名和属性的命名。l例例2.7 设关系设关系RA,B和和SB,C,D,那,那么么RS的属性应写成的属性应写成A、R.B、S.B、C、D。运用改。运用改名操作后,名操作后,RS可写成可写成RS(X,C,D)S,那

44、么,那么其属性为其属性为A、B、X、C、D,更为明晰。,更为明晰。l 设关系设关系RA,B和和SC,D,那么,那么R和和S在在B、C上自然衔接要写成上自然衔接要写成A,B,DR Sl 或或A,B,DB=CRS。l运用改名操作后,可写成运用改名操作后,可写成R S(B,D)S方式。方式。B=C2.2.4 2.2.4 七个扩展操作七个扩展操作3 3 l2 2广义投影:允许在投影列表中运用算术函数广义投影:允许在投影列表中运用算术函数来对投影进展扩展,来对投影进展扩展,l其方式是其方式是F1, F2,FnF1, F2,FnR R,l这里这里R R是恣意的关系方式,是恣意的关系方式,F1F1、 F2

45、F2、FnFn是涉是涉及及R R方式中常量和属性的算术表达式。方式中常量和属性的算术表达式。l例例2.8 2.8 在选课关系在选课关系SCSCS#S#,C#C#,SCORESCORE中,课中,课程号为程号为C4C4的成果应添加的成果应添加5%5%,那么可用下式表示:,那么可用下式表示:lS#S#,C#C#,SCORESCORE* *1.051.05C#=C4C#=C4SCSC 2.2.4 2.2.4 七个扩展操作七个扩展操作4 4 l3 3赋值:经过给暂时变量赋值,可以把关系代数赋值:经过给暂时变量赋值,可以把关系代数表达式分开书写,以便把复杂的表达式化整为零,表达式分开书写,以便把复杂的表达

46、式化整为零,成为简单的表达式。成为简单的表达式。l赋值运算符是赋值运算符是“,类似于计算机言语中的赋值,类似于计算机言语中的赋值运算符。运算符。l例例2.9 2.9 关系关系R R和和S S的除法操作,可用下面的一串操的除法操作,可用下面的一串操作表示出来:作表示出来:lTEMP1 1TEMP1 1,2 2,r-sr-sR RlTEMP2 TEMP2 TEMP1TEMP1S SR RlTEMP3 1TEMP3 1,2 2,r-sr-sTEMP2TEMP2lR RS TEMP1S TEMP1TEMP3 TEMP3 2.2.4 2.2.4 七个扩展操作七个扩展操作5 5 l4 4外衔接外衔接Out

47、er JoinOuter Joinl假设假设R R和和S S做自然衔接时,把原该舍弃的元组也保做自然衔接时,把原该舍弃的元组也保管在新关系中,同时在这些元组新添加的属性上填管在新关系中,同时在这些元组新添加的属性上填上空值上空值nullnull,这种操作称为,这种操作称为“外衔接操作,用外衔接操作,用符号符号R SR S表示。表示。l假设假设R R和和S S做自然衔接时,只把做自然衔接时,只把R R中原该舍弃的元组中原该舍弃的元组放到新关系中,那么这种操作称为放到新关系中,那么这种操作称为“左外衔接操作,左外衔接操作,用符号用符号R SR S表示。表示。l假设假设R R和和S S做自然衔接时,

48、只把做自然衔接时,只把S S中原该舍弃的元组中原该舍弃的元组放到新关系中,那么这种操作称为放到新关系中,那么这种操作称为“右外衔接操作,右外衔接操作,用符号用符号R SR S表示。表示。2.2.4 2.2.4 七个扩展操作七个扩展操作6 6 ABCBCDABCDABCDabcbcdabcdabcdbbfbceabceabcecadadbcadbcadbefgbbfnullnullefgABCDABCDabcdabcdabceabcecadbcadbbbfnullnullefg (a) (a)关系关系R R (b) (b)关系关系S S (c)R S (c)R S (d)R S (d)R S e

49、 eR S R S f fR S R S 2.2.4 2.2.4 七个扩展操作七个扩展操作7 7 l5 5外部并外部并Outer UnionOuter Unionl前面定义两个关系的并操作时,要求前面定义两个关系的并操作时,要求R R和和S S具有一样的关系方式。假设具有一样的关系方式。假设R R和和S S的关系方式的关系方式不同,构成的新关系的属性由不同,构成的新关系的属性由R R和和S S的一切属的一切属性组成公共属性只取一次,新关系的元性组成公共属性只取一次,新关系的元组由属于组由属于R R或属于或属于S S的元组构成,同时元组在的元组构成,同时元组在新添加的属性上填上空值,那么这种操作

50、称新添加的属性上填上空值,那么这种操作称为为“外部并操作。外部并操作。2.2.4 2.2.4 七个扩展操作七个扩展操作8 8 A B CB C DA B C Da b cb c da b cnullb bfb ceb bfnullc a da d bc a dnullefgnullb c dnullb cenulla d bnullefg (a) (a)关系关系R R(b)(b)关系关系S S (c) R(c) R和和S S的外部并的外部并 2.2.4 2.2.4 七个扩展操作七个扩展操作9 9 l6 6 半衔接半衔接semijoinsemijoinlR S RR S RR SR Sl或或R

51、S R RSR S R RSS S。l显然,半衔接的交换律是不成立的,显然,半衔接的交换律是不成立的,l 即即 R S S R R S S R。l半衔接操作主要用于分布式数据库中。半衔接操作主要用于分布式数据库中。2.2.4 2.2.4 七个扩展操作七个扩展操作1010 R S RR S RR SR S A B CB C DA B C DA B CB C Da b cb c da b c da b cb c dd b cb c ea b c ed b cb c eb b fa d bd b c dc a da d bc a dd b c ec a d b(a)(a)关系关系R (b)R (b)

52、关系关系S (c) R S (d)R S (e)R SS (c) R S (d)R S (e)R S2.2.4 2.2.4 七个扩展操作七个扩展操作1111 l7 7聚集操作:聚集操作是指输入一个值的集合,聚集操作:聚集操作是指输入一个值的集合,然后根据该值集合得到一个单一的值作为结果。然后根据该值集合得到一个单一的值作为结果。 聚集函数有聚集函数有maxmax、minmin、avgavg、sumsum和和countcount等。等。l例例2.14 2.14 在在S SS#S#,SNAMESNAME,AGEAGE,SEXSEX中,中,l求男同窗的平均年龄,可以用式子求男同窗的平均年龄,可以用式

53、子l avgage avgagesex=Msex=MS Sl表示,求年龄为表示,求年龄为1818岁的人数可用式子岁的人数可用式子lcountS#countS#age=18age=18S Sl表示。表示。2.3 2.3 关系演算关系演算 l把数理逻辑的谓词演算引入到关系运算中,把数理逻辑的谓词演算引入到关系运算中,就可得到以关系演算为根底的运算。关系就可得到以关系演算为根底的运算。关系演算又可分为元组关系演算和域关系演算,演算又可分为元组关系演算和域关系演算,前者以元组为变量,后者以属性域为前者以元组为变量,后者以属性域为变量。变量。l2.3.1 2.3.1 元组关系演算元组关系演算 l2.3.

54、2 2.3.2 域关系演算域关系演算 l2.3.3 2.3.3 关系运算的平安约束和等价性关系运算的平安约束和等价性 2.3.1 2.3.1 元组关系演算元组关系演算 (1)(1)l 在元组关系演算Tuple Relational Calculus中,元组关系演算表达式简称为元组表达式,其普通方式为l t | Ptl 其中,t是元组变量,表示一个元数固定的元组;P是公式,在数理逻辑中也称为谓词,也就是计算机言语中的条件表达式。 t | Pt表示满足公式P的一切元组t的集合。 2.3.1 2.3.1 元组关系演算元组关系演算 (2)(2)l在元组表达式中,公式由原子公式组成。在元组表达式中,公式

55、由原子公式组成。l定义定义2.4 2.4 原子公式原子公式AtomsAtoms有以下三种方式:有以下三种方式:l R Rs s l siuj siuj l sia sia或或aujauj。 l在定义关系演算操作时,要用到在定义关系演算操作时,要用到“自在自在FreeFree和和“约束约束BoundBound变量概念。在一个公式中,变量概念。在一个公式中,假设元组变量未用存在量词假设元组变量未用存在量词或全称量词或全称量词符符号定义,那么称为自在元组变量,否那么称为号定义,那么称为自在元组变量,否那么称为约束元组变量。约束元组变量。 2.3.1 2.3.1 元组关系演算元组关系演算 (3)(3)

56、l定义定义2.5 2.5 公式公式FormulasFormulas的递归定义如下:的递归定义如下:l每个原子是一个公式。其中的元组变量是自在变每个原子是一个公式。其中的元组变量是自在变量。量。l 假设假设P1P1和和P2P2是公式,那么是公式,那么P1P1、P1P2P1P2、P1P2P1P2和和P1P1P2P2也都是公式。也都是公式。 l 假设假设P1P1是公式,那么是公式,那么s sP1P1和和s sP1P1也都是公式。也都是公式。 l 公式中各种运算符的优先级从高到低依次为:公式中各种运算符的优先级从高到低依次为:,和和,和和,。在公式外还可以加。在公式外还可以加括号,以改动上述优先顺序。

57、括号,以改动上述优先顺序。 l 公式只能由上述四种方式构成,除此之外构成公式只能由上述四种方式构成,除此之外构成的都不是公式。的都不是公式。 2.3.1 2.3.1 元组关系演算元组关系演算 (4)(4)l例例2.15 2.15 图图2.162.16的的a a、b b是关系是关系R R和和S S,c cg g分别是下面五个元组表达式的值:分别是下面五个元组表达式的值: A A B B C C A A B B C C A A B B C C A A B B C C 1 1 2 2 3 3 1 1 2 2 3 3 3 3 4 4 6 6 4 4 5 5 6 6 4 4 5 5 6 6 3 3 4

58、4 6 6 5 5 6 6 9 9 7 7 8 8 9 9 7 7 8 8 9 9 5 5 6 6 9 9 ( a a) 关关 系系 R R ( b b) 关关 系系 S S ( c c) R R1 1 ( d d) R R2 2 A A B B C C A A B B C C R R. .B B S S. .C C R R. .A A 1 1 2 2 3 3 4 4 5 5 6 6 5 5 3 3 4 4 3 3 4 4 6 6 7 7 8 8 9 9 8 8 3 3 7 7 8 8 6 6 7 7 ( e e) R R3 3 ( f f) R R4 4 8 8 9 9 7 7 ( g g)

59、 R R5 5 图图2.20 2.20 元组关系演算的例子元组关系演算的例子 R1=t|S(t)t12R1=t|S(t)t12R2=t|R(t)S(t)R2=t|R(t)S(t)R3=t|(R3=t|(u)(S(t)R(u)t3u2)u)(S(t)R(u)t3u1)u)(R(t)S(u)t3u1)R5=t|(R5=t|(u)(u)(v)(R(u)S(v)v)(R(u)S(v)u1v2t1=u2u1v2t1=u2t2=v3t3=u1) t2=v3t3=u1) 2.3.1 2.3.1 元组关系演算元组关系演算 (5)(5)l 在元组关系演算的公式中,有以下三个等价的转换规那么:l P1P2 等价于

60、 (P1P2);l P1P2 等价于 (P1P2)。l (s)(P1(s) 等价于 (s)(P1(s); l (s)(P1(s) 等价于 (s)(P1(s)。l P1P2 等价于 P1P2。2.3.1 2.3.1 元组关系演算元组关系演算 (6)(6)l关系代数表达式到元组表达式的转换关系代数表达式到元组表达式的转换l例例2.16 l RS可用可用 t | RtSt表示;表示;l R-S可用可用 t | RtSt 表示;表示; l RS可用可用 t |uvRuS(V) t1=u1 t2=u2t3=u3t4=v1 t5=v2 t6=v3 表示。表示。l设投影操作是设投影操作是2,3R,那么元组表

温馨提示

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

评论

0/150

提交评论