《02 关系模型和关系运算理论.ppt》由会员分享,可在线阅读,更多相关《02 关系模型和关系运算理论.ppt(67页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第2章章 关系模型和运算理论关系模型和运算理论王传栋王传栋南京邮电大学计算机学院南京邮电大学计算机学院内容提纲内容提纲n1)基本概念)基本概念q关系模型关系模型q关键码(主键和外键)关键码(主键和外键)q关系的定义和性质关系的定义和性质q三类完整性规则三类完整性规则q过程性语言与非过程性语言过程性语言与非过程性语言n2)关系代数)关系代数q五个基本操作五个基本操作q四个组合操作四个组合操作q七个扩充操作七个扩充操作2Chd.Wang,E-Mail:C内容提纲内容提纲n3)关系演算)关系演算q元组关系演算和域关系演算的原子公式、公式的定义元组关系演算和域关系演算的原子公式、公式的定义q关系演算
2、的安全性和等价性关系演算的安全性和等价性n4)关系代数表达式的优化)关系代数表达式的优化q关系代数表达式的等价及等价转换规则关系代数表达式的等价及等价转换规则q启化式优化算法启化式优化算法n5)关系逻辑)关系逻辑q谓词、原子、规则和查询谓词、原子、规则和查询q规则的安全性规则的安全性q用规则模拟关系代数表达式用规则模拟关系代数表达式3Chd.Wang,E-Mail:C引言引言n关系模型是当前的主流逻辑数据模型关系模型是当前的主流逻辑数据模型 q由由IBM公司的高级研究员公司的高级研究员E.F.Codd于于1970年提出年提出 n应用广泛的原因:应用广泛的原因:q单一的数据建模概念单一的数据建模
3、概念 q坚实的数学理论基础坚实的数学理论基础 q提供高级接口:数据库语言提供高级接口:数据库语言SQL4Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n基本术语基本术语q定义定义2.1 用二维表格表示实体集,用关键码表示实体之间联系用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型(的数据模型称为关系模型(Relational Model)n理解理解q用二维表格(用二维表格(table)表示实体集及其间联系,表示实体集及其间联系,q用关键码(或键)进行数据导航用关键码(或键)进行数据导航q关系模型是逻辑模型的一种,也具有三个要素关系模型是逻辑模
4、型的一种,也具有三个要素关系数据结构关系数据结构关系操作关系操作数据完整性约束规则数据完整性约束规则5Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n基本术语基本术语q示例示例6Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n基本术语基本术语q关系数据结构:二维表关系数据结构:二维表n字段称为属性,也称为列(字段称为属性,也称为列(column)q反映事物的一个特征,每个字段都有字段名和字段值反映事物的一个特征,每个字段都有字段名和字段值q属性的取值范围属性的取值范围(所有可取值的集合所有可取值的集合)称为属性域称为属性域Doma
5、in q大写字母大写字母A、B、C、表示单个属性;大写字母表示单个属性;大写字母、X、Y、Z 表示属性集表示属性集q小写字母小写字母a、b、c、表示属性值表示属性值n记录称为元组(记录称为元组(tuple),),也称为行(也称为行(row)q记录类型称为关系模式,由模式名和属性列表组成记录类型称为关系模式,由模式名和属性列表组成q元组集合称为关系(元组集合称为关系(relation)或实例(或实例(instance),),也也称为表格称为表格7Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n基本术语基本术语q关系数据结构:二维表关系数据结构:二维表n元组用关键字
6、(元组用关键字(Key word简称键)来标识简称键)来标识n属性个数称为元数(属性个数称为元数(arity),),也称为目;元组个数为基数也称为目;元组个数为基数(cardinality)一般术语一般术语关系模型术语关系模型术语字段、数据项字段、数据项属性属性记录类型记录类型关系模式关系模式记录记录1 1元组元组1 1记录记录2 2元组元组2 2记录记录3 3元组元组3 3记录记录4 4元组元组4 4字段值字段值属性值属性值文文件件关关系系R(A,B,C,D,E)8Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n基本术语基本术语q关键码(关键码(key,简称键
7、)简称键)n由一个或多个属性组成。在实际使用中,有下列几种键由一个或多个属性组成。在实际使用中,有下列几种键n1)超键()超键(Super Key)q其值能唯一地决定其它所有属性的值的属性集其值能唯一地决定其它所有属性的值的属性集n2)候选键(候选键(Candidate Key)q不含多余属性的超键不含多余属性的超键q其值能唯一地决定关系中其它所有属性的值、而它的任何其值能唯一地决定关系中其它所有属性的值、而它的任何真子集无此性质的属性或属性组真子集无此性质的属性或属性组 n3)主键(主键(Primary Key)q用户选作元组标识的候选键,称为主键(用户选作元组标识的候选键,称为主键(PK)
8、,),简称键简称键9Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n基本术语基本术语q关键码(关键码(key,简称键)简称键)n4)候补键()候补键(Alternate Key)q主键之外的候选键主键之外的候选键n5)全键)全键:由关系的所有属性构成的主键由关系的所有属性构成的主键 n6)外键()外键(Foreign Key,FK)q如果模式如果模式R中的属性中的属性K是其它模式的主键,那么是其它模式的主键,那么K在模式在模式R中称为外键中称为外键q不是本关系的键,却引用了其它关系或本关系的键的属性不是本关系的键,却引用了其它关系或本关系的键的属性或属性组或属性
9、组n7)主属性与非主属性)主属性与非主属性nSUPPLY(供应商,零件名,工程名供应商,零件名,工程名)项目项目供应供应mp零件零件供应商供应商10Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n基本术语基本术语q示例示例n关系模式关系模式STUDENT(学号,姓名,性别,出生日期,籍贯)学号,姓名,性别,出生日期,籍贯)n假设:不允许学生重名,问:假设:不允许学生重名,问:q(学号,姓名,性别,出生日期,籍贯)?(学号,姓名,性别,出生日期,籍贯)?q(学号,性别)?(学号,性别)?q(学号,姓名)?(学号,姓名)?q(学号)?(学号)?q(姓名)?(姓名)?
10、q哪些是主属性?哪些是主属性?11Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系的定义和性质关系的定义和性质q定义定义2.2 关系是一个属性数目相同的元组的集合关系是一个属性数目相同的元组的集合n有限关系有限关系q在关系模型中,关系的规范性限制:在关系模型中,关系的规范性限制:n1)关系中每一个属性值都是不可分解的(原子的)关系中每一个属性值都是不可分解的(原子的)n2)关系中不允许出现重复元组(即不允许出现相同的元组)关系中不允许出现重复元组(即不允许出现相同的元组)n3)由于关系是一个集合,因此不考虑元组间的顺序,即没)由于关系是一个集合,因此不考虑元
11、组间的顺序,即没有行序有行序q注:关系中元组的排列是有序的,取决于索引注:关系中元组的排列是有序的,取决于索引n4)元组中的属性在理论上也是无序的,但使用时按习惯考)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序虑列的顺序12Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q实体完整性规则(实体完整性规则(entity integrity rule)n关系内的约束关系内的约束n每个关系都应有一个主键每个关系都应有一个主键n每个元组的主键的值应当唯一;组成主键的属性,不能有空每个元组的主键的值应当唯一;组成主键的
12、属性,不能有空值(值(NULL)q否则,主键值就起不了惟一标识元组的作用否则,主键值就起不了惟一标识元组的作用13Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q实体完整性规则(实体完整性规则(entity integrity rule)n例如例如14Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q参照完整性规则(参照完整性规则(referenceintegrityrule)n不同关系或同一关系的不同元组间的约束不同关系或同一关系的不同元组间的约束
13、n定义定义2.3 参照完整性规则的形式定义参照完整性规则的形式定义q如果属性集如果属性集K是关系模式是关系模式R1的主键,的主键,K也是关系模式也是关系模式R2的的外键,那么在外键,那么在R2的关系中,的关系中,K的取值只允许两种可能,或的取值只允许两种可能,或者为空值,或者等于者为空值,或者等于R1关系中某个主键值关系中某个主键值n规则的实质:规则的实质:不允许引用不存在的实体不允许引用不存在的实体n在上述形式定义中在上述形式定义中q关系模式关系模式R1的关系称为的关系称为“参照关系参照关系”,也称,也称“主表主表”、“父表父表”q关系模式关系模式R2的关系称为的关系称为“依赖关系依赖关系”
14、,也称,也称“副表副表”、“子表子表”15Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q参照完整性规则(参照完整性规则(reference integrity rule)n规则在具体使用时,有三点变通:规则在具体使用时,有三点变通:n外键和相应主键可以不同名,只要定义在相同值域上即可外键和相应主键可以不同名,只要定义在相同值域上即可nR1和和R2可以是不同关系模式,也可以是同一个关系模式可以是不同关系模式,也可以是同一个关系模式q同一个关系模式中,表示了同一个关系中不同元组之间的同一个关系模式中,表示了同一个关系中不同
15、元组之间的联系联系n外键值是否允许空,应视具体问题而定外键值是否允许空,应视具体问题而定q当外键属性是主键的组成成分时,不允许为空当外键属性是主键的组成成分时,不允许为空16Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q参照完整性规则(参照完整性规则(reference integrity rule)n示例示例17Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q用户定义的完整性规则用户定义的完整性规则n和数据的具体内容有关的约束和数据的具体内容有
16、关的约束n构建关系模式时,属性的数据类型,可能满足不了需求,需构建关系模式时,属性的数据类型,可能满足不了需求,需要要显式定义显式定义额外的约束规则说明额外的约束规则说明qCHECK()子句、触发器、断言、过程子句、触发器、断言、过程n说明说明q各种各种DBMS产品对完整性约束的支持程度不同产品对完整性约束的支持程度不同q 数据库中完整性约束检查,由数据库中完整性约束检查,由DBMS实现对实现对DB进行更新进行更新(I/D/U)操作时检查,保证数据与现实世界的一致性操作时检查,保证数据与现实世界的一致性18Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型
17、的完整性规则关系模型的完整性规则q用户定义的完整性规则用户定义的完整性规则n示例示例119Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q用户定义的完整性规则用户定义的完整性规则n示例示例220Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构q回顾数据库的三级体系结构回顾数据库的三级体系结构转换转换应用应用1 1应用应用3应用应用2逻辑模型逻辑模型内部模型内部模型外部模型外部模型3外部模型外部模型2外部模型外部模型1映像映像映像映像DB概念模型概
18、念模型用户需求用户需求用户需求用户需求用户用户1用户用户3用户用户2用户需求用户需求综合综合 用户用户(应用程序应用程序)用户记录用户记录模式模式/内模式映像内模式映像外模式外模式模式模式内模式内模式DB模式模式/外模式映像外模式映像21Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q关系模式关系模式n记录类型称为关系模式记录类型称为关系模式n关系模式的集合就是数据库的概念模式,是问题域数据的全关系模式的集合就是数据库的概念模式,是问题域数据的全局逻
19、辑视图局逻辑视图n是对数据的特征描述,不涉及物理存储方面的描述是对数据的特征描述,不涉及物理存储方面的描述n由数据定义语言(由数据定义语言(DDL)实现实现q定义模式名、属性名、值域、模式主键定义模式名、属性名、值域、模式主键q定义时,模式名和属性名一般都用英文单词表示定义时,模式名和属性名一般都用英文单词表示22Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q关系模式关系模式 用户用户(应用程序应用程序)用户记录用户记录模式模式/内模式映像内模式映
20、像外模式外模式模式模式内模式内模式DB模式模式/外模式映像外模式映像23Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q子模式子模式n是用户所用到的局部数据的描述是用户所用到的局部数据的描述n构建子模式时,需要指出数据与关系模式中相应数据的联系构建子模式时,需要指出数据与关系模式中相应数据的联系n由数据定义语言(由数据定义语言(DDL)实现实现q定义时需要考虑用户对数据的操作权限定义时需要考虑用户对数据的操作权限q对子模式的操作(如插入、修改、删除)
21、是受限的对子模式的操作(如插入、修改、删除)是受限的24Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q子模式子模式n例如例如q构建成绩子模式构建成绩子模式,要求显示学号、姓名、课程号和成绩要求显示学号、姓名、课程号和成绩G(S#,SNAME,C#,SCORE)25Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系
22、结构q子模式子模式 用户用户(应用程序应用程序)用户记录用户记录模式模式/内模式映像内模式映像外模式外模式模式模式内模式内模式DB模式模式/外模式映像外模式映像26Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q存储模式存储模式n在有些在有些DBMS中,关系存储是作为文件看待的中,关系存储是作为文件看待的n每个元组就是一个记录每个元组就是一个记录n由于关系模式有键,因此存储一个关系可用散列方法或索引由于关系模式有键,因此存储一个关系可用散列方法或索引
23、方法实现方法实现n如果关系的元组数目较少(如果关系的元组数目较少(100个以内),那么也可以用个以内),那么也可以用“堆文件堆文件”方式实现(即没有特定的次序)方式实现(即没有特定的次序)n可对任意的属性集建立辅助索引可对任意的属性集建立辅助索引27Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的形式定义和优点关系模型的形式定义和优点q关系模型的三个要素关系模型的三个要素n1)关系数据结构)关系数据结构q关系,二维表关系,二维表q数据库中全部数据及其相互联系都被组织成数据库中全部数据及其相互联系都被组织成“关系关系”n2)关系操作)关系操作q一组完备的
24、关系运算,支持对数据库的各种操作一组完备的关系运算,支持对数据库的各种操作q关系运算分成关系代数、关系演算和关系逻辑等三类关系运算分成关系代数、关系演算和关系逻辑等三类n3)数据完整性约束规则)数据完整性约束规则q实体完整性、参照完整性和用户自定义的完整性实体完整性、参照完整性和用户自定义的完整性28Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系模型的形式定义和优点关系模型的形式定义和优点q关系模型的优点关系模型的优点n1)单一的数据结构形式,具有高度的简明性和精确性)单一的数据结构形式,具有高度的简明性和精确性n2)逻辑结构和相应的操作,完全独立于数据存
25、储方式)逻辑结构和相应的操作,完全独立于数据存储方式q具有高度的数据独立性具有高度的数据独立性n3)坚实的数学基础)坚实的数学基础q关系运算的完备性和规范化设计理论关系运算的完备性和规范化设计理论n4)数据库技术的基础)数据库技术的基础q关系数据库语言与一阶谓词逻辑的固有内在联系,为以关关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统研究提供了方便系数据库为基础的推理系统和知识库系统研究提供了方便29Chd.Wang,E-Mail:C2.1 关系模型的基本概念关系模型的基本概念n关系查询语言和关系运算关系查询语言和关系运算q数据库语言数据库语言SQL分为:
26、分为:DDL,DML、QL和和DCLq数据操纵语言数据操纵语言DML,描述插入、删除、修改等操作描述插入、删除、修改等操作q查询语言查询语言QL,描述用户的各种检索要求描述用户的各种检索要求n理论基础是理论基础是“关系运算理论关系运算理论”,分为三类:,分为三类:q1)关系代数语言)关系代数语言q2)关系演算语言)关系演算语言q3)关系逻辑语言)关系逻辑语言30Chd.Wang,E-Mail:C2.2 关系代数关系代数n五个基本操作五个基本操作q并(并(Union)n前提前提q相同的关系模式相同的关系模式(并兼容:两关系具有相同的目,对应属(并兼容:两关系具有相同的目,对应属性域相同且两个关系
27、的属性排列次序一样)性域相同且两个关系的属性排列次序一样)n定义定义qR和和S的并,是由属于的并,是由属于R或属于或属于S的元组构成的集合的元组构成的集合q记为记为R Sn形式定义形式定义qR S t|t R t S,t是元组变量是元组变量31Chd.Wang,E-Mail:C2.2 关系代数关系代数n五个基本操作五个基本操作q差(差(Difference)n前提前提q相同的关系模式相同的关系模式(并兼容:两关系具有相同的目,对应属(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)性域相同且两个关系的属性排列次序一样)n定义定义qR和和S的差,是由属于的差,是由属于R但
28、不属于但不属于S的元组构成的集合的元组构成的集合q记为记为RSn形式定义形式定义qRS t|t R t S,t是元组变量是元组变量32Chd.Wang,E-Mail:C2.2 关系代数关系代数n五个基本操作五个基本操作q笛卡尔积(笛卡尔积(Cartesian Product)n形式定义形式定义q假设:假设:R的元数的元数r,基数为基数为m;S的元数的元数s,基数为基数为nqRSt|t tr R ts SRS的元数为的元数为r+s,基数基数mn参与运算的参与运算的R和和S关系,不要求有同名属性关系,不要求有同名属性若有同名属性,在属性名前加若有同名属性,在属性名前加“关系名关系名.”来标注来标注
29、33Chd.Wang,E-Mail:C2.2 关系代数关系代数n五个基本操作五个基本操作q投影(投影(Projection)n对关系进行垂直分割(感兴趣的列),属性可任意排列对关系进行垂直分割(感兴趣的列),属性可任意排列n表示表示q()n形式定义形式定义qi1,im(R)t|t R n性质性质q((R))(R)属性表属性表1属性表属性表234Chd.Wang,E-Mail:C2.2 关系代数关系代数n五个基本操作五个基本操作q选择(选择(Selection)n据条件对关系做水平分割,选取符合条件的元组据条件对关系做水平分割,选取符合条件的元组n表示表示q()F(R),),F是命题公式是命题公
30、式 n形式定义形式定义qF(R)t|t R F(t)=true n性质性质qa)(R)(R)qb)(R)(R)35Chd.Wang,E-Mail:C2.2 关系代数关系代数n五个基本操作五个基本操作q示例示例36Chd.Wang,E-Mail:C2.2 关系代数关系代数n四个组合操作四个组合操作q交(交(intersection)n前提前提q相同的关系模式相同的关系模式(并兼容:两关系具有相同的目,对应属(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)性域相同且两个关系的属性排列次序一样)n定义定义qR和和S的交,是由属于的交,是由属于R又属于又属于S的元组构成的集合
31、的元组构成的集合q记为记为RSn形式定义形式定义qRS tt R t S n推导推导qRS=R-(R-S),),或或 RS=S-(S-R)37Chd.Wang,E-Mail:C2.2 关系代数关系代数n四个组合操作四个组合操作q交(交(intersection)n示例示例38Chd.Wang,E-Mail:C2.2 关系代数关系代数n四个组合操作四个组合操作q连接(连接(join)n形式定义形式定义qR S tt=tr R ts S tritsj n推导推导qR S i(r+j)(R S),),其中其中r是关系是关系R的元数的元数q表示连接是在表示连接是在(R S)中,挑选第中,挑选第i个分量
32、和第个分量和第(r+j)个分个分量满足量满足操作的元组操作的元组n说明:说明:两个关系的同域属性比较两个关系的同域属性比较q连接:连接:,q等值连接:等值连接:qF连接:连接:F F1 Fn,Fk i j (、)39Chd.Wang,E-Mail:C2.2 关系代数关系代数n四个组合操作四个组合操作q连接(连接(join)n示例示例q1)连接:连接:R S,或或 R Sq2)等值连接:)等值连接:R S,或或 R Sq3)F连接:连接:R S,或或 R S40Chd.Wang,E-Mail:C2.2 关系代数关系代数n四个组合操作四个组合操作q自然连接(自然连接(natural join)n两
33、个关系公共属性上的等值连接两个关系公共属性上的等值连接n推导推导qR S=i1,im(R.A1=S.A1 R.Ak=S.Ak(RS)qA1,Ak是关系是关系R和和S的公共属性列表的公共属性列表qi1,im是两个关系属性的并集是两个关系属性的并集n计算过程计算过程 q1)计算计算RSq2)选择:在选择:在RS中,挑选满足公共属性相等的元组中,挑选满足公共属性相等的元组q3)投影:在投影:在RS中,去掉冗余属性中,去掉冗余属性S.A1,S.Ak41Chd.Wang,E-Mail:C2.2 关系代数关系代数n四个组合操作四个组合操作q自然连接(自然连接(natural join)n示例示例qR S
34、A,R.B,R.C,D(R.B=S.B R.C=S.C(RS)n注:注:q参与自然连接运算的参与自然连接运算的2个关系,若没有公共属性,则自然个关系,若没有公共属性,则自然连接运算自动转化为笛卡尔积运算。连接运算自动转化为笛卡尔积运算。42Chd.Wang,E-Mail:C2.2 关系代数关系代数n四个组合操作四个组合操作q除法(除法(division)n前提前提qR中的属性包含中的属性包含S中的属性中的属性 R(X,Y),S(Y)n作用作用qRS是满足下列条件的最大关系,属性由是满足下列条件的最大关系,属性由R中那些不出现中那些不出现在在S的属性组成,的属性组成,(RS)S的每个元组都在关系
35、的每个元组都在关系R中中n计算过程:计算过程:RS=X(R)X(X(R)S)R)q1)T=X(R);X为不包含在为不包含在S中的属性中的属性q2)W=(TS)R ;计算计算TS中不在中不在R的元组的元组q3)V=X(W)q4)RS=TV43Chd.Wang,E-Mail:C C D c d e fS A B C D a b c d a b e f a b d e b c e f e d c d e d e fR 2.2 关系代数关系代数n四个组合操作四个组合操作q除法(除法(division)n示例示例 b c c db c c d被除关系对除关系被除关系对除关系有覆盖有覆盖44Chd.Wan
36、g,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q关系代数表达式关系代数表达式n五个基本操作的有限次复合的式子五个基本操作的有限次复合的式子n表达式的运算结果仍是一个关系表达式的运算结果仍是一个关系n用关系代数表达式表示各种数据查询操作用关系代数表达式表示各种数据查询操作45Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q关系代数表达式关系代数表达式n示例示例46Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q1)检索学习课程号为)检索学
37、习课程号为C2课程的学生学号与成绩课程的学生学号与成绩 nSNO,Grade(CNO=C2(SC)n1,3(2=C2(SC)nCNO=C2(SNO,Grade(SC)n2=C2(1,3(SC)47Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q1)检索学习课程号为)检索学习课程号为C2课程的学生学号与成绩课程的学生学号与成绩 nSNO,Grade(CNO=C2(SC)nCNO=C2(SNO,Grade(SC)48Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q2)检索学习课程号为
38、)检索学习课程号为C2的学生学号与姓名的学生学号与姓名nSNO,SNAME(CNO=C2(S SC)n查询涉及到两个关系查询涉及到两个关系S与与SC,先要对这两个关系进行自然连先要对这两个关系进行自然连接操作,然后再执行选择和投影操作接操作,然后再执行选择和投影操作 49Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q2)检索学习课程号为)检索学习课程号为C2的学生学号与姓名的学生学号与姓名nSNO,SNAME(CNO=C2(S SC)50Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应
39、用实例q2)检索学习课程号为)检索学习课程号为C2的学生学号与姓名的学生学号与姓名nSNO,SNAME(CNO=C2(S SC)51Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q3)检索至少选修)检索至少选修LIU老师所授课程一门课程的学生学号与姓名老师所授课程一门课程的学生学号与姓名 nSNO,SNAME(TNAME=LIU(S SC C T)52Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q4)检索选修课程号为)检索选修课程号为C2或或C4的学生学号的学生学号nSNO(C
40、NO=C2 CNO=C4(SC)53Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q5)检索至少选修课程号为)检索至少选修课程号为C2和和C4的学生学号的学生学号nSNO(CNO=C2 CNO=C4(SC)54Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q5)检索至少选修课程号为)检索至少选修课程号为C2和和C4的学生学号的学生学号n1(1=4 2=C2 5=C4(SCSC)55Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用
41、实例q6)检索不学)检索不学C2课的学生姓名与年龄课的学生姓名与年龄nSNAME,AGE(CNO C2(S SC)56Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q6)检索不学)检索不学C2课的学生姓名与年龄课的学生姓名与年龄nSNAME,AGE(CNO C2(S SC)57Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q6)检索不学)检索不学C2课的学生姓名与年龄课的学生姓名与年龄nSNAME,AGE(S)SNAME,AGE(CNO=C2(S SC)n差操作差操作q先求出全体
42、学生的姓名和年龄先求出全体学生的姓名和年龄q再求出学了再求出学了C2课的学生的姓名和年龄课的学生的姓名和年龄q最后执行差操作最后执行差操作-58Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q7)检索学习全部课程的学生姓名)检索学习全部课程的学生姓名n投影出所有学生的选课情况投影出所有学生的选课情况qSNO,CNO(SC)n投影出全部课程的课程号投影出全部课程的课程号qCNO(C)n用除法计算学了全部课程的学生学号集合(临时关系)用除法计算学了全部课程的学生学号集合(临时关系)qSNO,CNO(SC)CNO(C)n用用得到的关系与得到的
43、关系与S自然联接,最后投影出自然联接,最后投影出SNAMEqSNAME(S(SNO,CNO(SC)CNO(C)59Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q7)检索学习全部课程的学生姓名)检索学习全部课程的学生姓名nSNAME(S(SNO,CNO(SC)CNO(C)60Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q8)检索所学课程包含学生)检索所学课程包含学生S3所学课程的学生学号所学课程的学生学号n投影出所有学生的选课情况投影出所有学生的选课情况qSNO,CNO(SC)
44、n投影出学生投影出学生S3所学的全部课程的课程号所学的全部课程的课程号qCNO(SNO=S3(SC)n用除法计算所学课程包含学生用除法计算所学课程包含学生S3所学课程的学生学号所学课程的学生学号qSNO,CNO(SC)CNO(SNO=S3(SC)n注注q若想得到其他信息,可用若想得到其他信息,可用式与式与S自然连接,投影即可自然连接,投影即可q (S ()?61Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q8)检索所学课程包含学生)检索所学课程包含学生S3所学课程的学生学号所学课程的学生学号nSNO,CNO(SC)CNO(SNO=S3
45、(SC)?62Chd.Wang,E-Mail:C2.2 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q总结总结n查询语句的关系代数表达式的一般形式是:查询语句的关系代数表达式的一般形式是:q(RS)或者或者(R S)q先选择,后投影先选择,后投影n查询涉及到查询涉及到“否定否定”问题,用减法(差)来解决问题,用减法(差)来解决n查询涉及到查询涉及到“全部全部”问题,用除法来解决问题,用除法来解决63Chd.Wang,E-Mail:C2.2 关系代数关系代数n七个扩充操作七个扩充操作q略略64Chd.Wang,E-Mail:C2.3 关系演算关系演算n略略65Chd.Wang,E-Mail:C2.4 关系代数表达式的优化关系代数表达式的优化n略略66Chd.Wang,E-Mail:C2.5 关系逻辑关系逻辑n略略67Chd.Wang,E-Mail:C