1、关系数据库基本原理关系数据库基本原理(1)关系模型与关系代数)关系模型与关系代数王传栋王传栋南京邮电大学计算机学院南京邮电大学计算机学院内容与要求内容与要求n知识知识点点q(1)知识点一:关系模型概述)知识点一:关系模型概述q(2)知识点二:关系数据结构)知识点二:关系数据结构q(3)知识点三:关系代数理论)知识点三:关系代数理论q(4)知识点四:关系数据库标准语言)知识点四:关系数据库标准语言SQLq(5)知识点五:关系数据库的规范化理论)知识点五:关系数据库的规范化理论q实验实验1 SQL语言的应用语言的应用n教学基本要求教学基本要求q了解关系数据结构的基本概念,了解关系模型的各种操作和关
2、了解关系数据结构的基本概念,了解关系模型的各种操作和关系代数的基本原理,掌握关系数据模型的完整性约束机制,系代数的基本原理,掌握关系数据模型的完整性约束机制,掌掌握握SQL语言,了解函数依赖等基本概念,掌握关系模式的规范语言,了解函数依赖等基本概念,掌握关系模式的规范化概念、方法、原理与过程。化概念、方法、原理与过程。引言引言n关系模型是当前的主流逻辑数据模型关系模型是当前的主流逻辑数据模型 q由由IBM公司的高级研究员公司的高级研究员E.F.Codd于于1970年提出年提出 n应用广泛的原因:应用广泛的原因:q单一的数据建模概念单一的数据建模概念 q坚实的数学理论基础坚实的数学理论基础 q提
3、供高级接口:数据库语言提供高级接口:数据库语言SQL关系模型的基本概念关系模型的基本概念n关系模型(关系模型(Relational Model)q用二维表格表示实体集,用关键码表示实体之间联系的数据模型用二维表格表示实体集,用关键码表示实体之间联系的数据模型称为关系模型称为关系模型q理解理解n用二维表格(用二维表格(table)表示实体集及其间联系,表示实体集及其间联系,n用关键码(或键)进行数据导航用关键码(或键)进行数据导航n关系模型是逻辑模型的一种,也具有三个要素关系模型是逻辑模型的一种,也具有三个要素q关系数据结构关系数据结构q关系操作关系操作q数据完整性约束规则数据完整性约束规则关系
4、模型的基本概念关系模型的基本概念n示例示例 SNO SNAME AGE SEX NativePlace S1 WANG 20 M 北北京京 S2 LIU 18 F 山山东东 S3 HU 17 M 上上海海 S4 XIA 19 F 四四川川 CNO CNAME Credit CreditHours CPNO TNO C1 Math 3 48 NULL T1 C2 English 4 64 NULL T2 C3 PM 2 32 C2 T2 C4 DB 3.5 56 C1 T1 SNO CNO Grade S1 C2 80 S1 C3 70 S1 C4 85 S2 C1 60 S2 C2 75 S2
5、 C3 90 S2 C4 NULL S3 C1 85 S3 C4 80 S4 C2 85 S4 C4 75 TNO TNAME TITLE SEX T1 ZHAO 讲师讲师 M T2 LIU 教授教授 F SC(SNO,CNO,Grade)字字段段含含义义:学学号号,课课程程号号,成成绩绩 S(SNO,SNAME,AGE,SEX,NativePlace)字字段段含含义义:学学号号,姓姓名名,年年龄龄,性性别别,籍籍贯贯 T(TNO,TNAME,TITLE,SEX)字字段段含含义义:教教师师号号,教教师师姓姓名名,职职称称,性性别别 C(CNO,CNAME,Credit,CreditHours,
6、CPNO,TNO)字字段段含含义义:课课程程号号,课课程程名名,学学分分,学学时时数数,先先修修课课号号,授授课课教教师师号号 关系模型的基本概念关系模型的基本概念n关系数据结构:二维表关系数据结构:二维表q字段称为属性,也称为列(字段称为属性,也称为列(column)n反映事物的一个特征,每个字段都有字段名和字段值反映事物的一个特征,每个字段都有字段名和字段值n属性的取值范围属性的取值范围(所有可取值的集合所有可取值的集合)称为属性域称为属性域Domain n大写字母大写字母A、B、C、表示单个属性;大写字母表示单个属性;大写字母、X、Y、Z 表示属性集表示属性集n小写字母小写字母a、b、c
7、、表示属性值表示属性值q记录称为元组(记录称为元组(tuple),),也称为行(也称为行(row)n记录类型称为关系模式,由模式名和属性列表组成记录类型称为关系模式,由模式名和属性列表组成n元组集合称为关系(元组集合称为关系(relation)或实例(或实例(instance),),也称也称为表格为表格关系模型的基本概念关系模型的基本概念n关系数据结构:二维表关系数据结构:二维表q元组用关键字(元组用关键字(Key word简称键)来标识简称键)来标识q属性个数称为元数(属性个数称为元数(Arity),),也称为目也称为目q元组个数为基数(元组个数为基数(Cardinality)R R A A
8、 B B C C D D E E a a1 1 b b1 1 c c1 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字段值字段值属性值属性值文文件件关关系系R(A,B,C,D,E)关系模
9、型的基本概念关系模型的基本概念n关键码(关键码(key,简称键)简称键)q由一个或多个属性组成。在实际使用中,有下列几种键由一个或多个属性组成。在实际使用中,有下列几种键q1)超键()超键(Super Key)n其值能唯一地决定其它所有属性的值的属性集其值能唯一地决定其它所有属性的值的属性集q2)候选键(候选键(Candidate Key)n不含多余属性的超键不含多余属性的超键n其值能唯一地决定关系中其它所有属性的值、而它的任何真其值能唯一地决定关系中其它所有属性的值、而它的任何真子集无此性质的属性或属性组子集无此性质的属性或属性组 q3)主键(主键(Primary Key)n用户选作元组标识
10、的候选键,称为主键(用户选作元组标识的候选键,称为主键(PK),),简称键简称键关系模型的基本概念关系模型的基本概念n关键码(关键码(key,简称键)简称键)q4)候补键()候补键(Alternate Key)n主键之外的候选键主键之外的候选键q5)全键)全键:由关系的所有属性构成的主键由关系的所有属性构成的主键 q6)外键()外键(Foreign Key,FK)n如果模式如果模式R中的属性中的属性K是其它模式的主键,那么是其它模式的主键,那么K在模式在模式R中中称为外键称为外键n不是本关系的键,却引用了其它关系或本关系的键的属性或不是本关系的键,却引用了其它关系或本关系的键的属性或属性组属性
11、组q7)主属性与非主属性)主属性与非主属性nSUPPLY(供应商,零件名,工程名供应商,零件名,工程名)项目项目供应供应mp零件零件供应商供应商2.1 关系模型的基本概念关系模型的基本概念n示例示例q关系模式关系模式STUDENT(学号,姓名,性别,出生日期,籍贯)学号,姓名,性别,出生日期,籍贯)q假设:不允许学生重名,问:假设:不允许学生重名,问:n(学号,姓名,性别,出生日期,籍贯)?(学号,姓名,性别,出生日期,籍贯)?n(学号,性别)?(学号,性别)?n(学号,姓名)?(学号,姓名)?n(学号)?(学号)?n(姓名)?(姓名)?n哪些是主属性?哪些是主属性?关系模型的基本概念关系模型
12、的基本概念n关系的定义和性质关系的定义和性质q关系是一个属性数目相同的元组的集合关系是一个属性数目相同的元组的集合n有限关系有限关系q在关系模型中,关系的规范性限制:在关系模型中,关系的规范性限制:n1)关系中每一个属性值都是不可分解的(原子的)关系中每一个属性值都是不可分解的(原子的)n2)关系中不允许出现重复元组(即不允许出现相同的元组)关系中不允许出现重复元组(即不允许出现相同的元组)n3)由于关系是一个集合,因此不考虑元组间的顺序,即没)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序有行序q注:关系中元组的排列是有序的,取决于索引注:关系中元组的排列是有序的,取决于索引n4)元
13、组中的属性在理论上也是无序的,但使用时按习惯考)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序虑列的顺序关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q实体完整性规则(实体完整性规则(entity integrity rule)n关系内的约束关系内的约束n每个关系都应有一个主键每个关系都应有一个主键n每个元组的主键的值应当唯一;组成主键的属性,不能有空每个元组的主键的值应当唯一;组成主键的属性,不能有空值(值(NULL)q否则,主键值就起不了惟一标识元组的作用否则,主键值就起不了惟一标识元组的作用关系模型的基本概念关系模型的基本概念n关系模型的完整性
14、规则关系模型的完整性规则q实体完整性规则(实体完整性规则(entity integrity rule)n例如例如 S(SNO,SNAME,AGE,SEX,NativePlace)字字段段含含义义:学学号号,姓姓名名,年年龄龄,性性别别,籍籍贯贯 Create Table S(SNO CHAR(3),SNAME CHAR(8),AGE Integer,SEX CHAR(1),NativePlace VARCHAR(20),Primary Key(SNO),Check(SEX IN(M,F);SNO SNAME AGE SEX NativePlace S1 WANG 20 M 北北京京 S2 LI
15、U 18 F 山山东东 S2 HU 17 M 上上海海 NULL XIA 19 F 四四川川 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q参照完整性规则(参照完整性规则(reference integrity rule)n不同关系或同一关系的不同元组间的约束不同关系或同一关系的不同元组间的约束n参照完整性规则的形式定义参照完整性规则的形式定义q如果属性集如果属性集K是关系模式是关系模式R1的主键,的主键,K也是关系模式也是关系模式R2的的外键,那么在外键,那么在R2的关系中,的关系中,K的取值只允许两种可能,或的取值只允许两种可能,或者为空值,或者等于者为空
16、值,或者等于R1关系中某个主键值关系中某个主键值n规则的实质:规则的实质:不允许引用不存在的实体不允许引用不存在的实体n在上述形式定义中在上述形式定义中q关系模式关系模式R1的关系称为的关系称为“参照关系参照关系”,也称,也称“主表主表”、“父表父表”q关系模式关系模式R2的关系称为的关系称为“依赖关系依赖关系”,也称,也称“副表副表”、“子表子表”关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q参照完整性规则(参照完整性规则(reference integrity rule)n规则在具体使用时,有三点变通:规则在具体使用时,有三点变通:n外键和相应主键可以不同
17、名,只要定义在相同值域上即可外键和相应主键可以不同名,只要定义在相同值域上即可nR1和和R2可以是不同关系模式,也可以是同一个关系模式可以是不同关系模式,也可以是同一个关系模式q同一个关系模式中,表示了同一个关系中不同元组之间的同一个关系模式中,表示了同一个关系中不同元组之间的联系联系n外键值是否允许空,应视具体问题而定外键值是否允许空,应视具体问题而定q当外键属性是主键的组成成分时,不允许为空当外键属性是主键的组成成分时,不允许为空关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q参照完整性规则(参照完整性规则(reference integrity rule)
18、n示例示例 SNO SNAME AGE SEX NativePlace S1 WANG 20 M 北京北京 S2 LIU 18 F 山东山东 S3 HU 17 M 上海上海 S4 XIA 19 F 四川四川 CNO CNAME Credit CreditHours CPNO TNO C1 Math 3 48 NULL T1 C2 English 4 64 C5 T2 C3 PM 2 32 C2 T4 C4 DB 3.5 56 C1 NULL SNO CNO Grade S1 C2 80 S1 C3 70 S1 C5 85 S2 C1 60 S2 C2 75 S2 NULL 90 S2 C4 N
19、ULL S3 C1 85 S3 C4 80 S4 C2 85 S6 C4 75 TNO TNAME TITLE SEX T1 ZHAO 讲师讲师 M T2 LIU 教授教授 F 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q用户定义的完整性规则用户定义的完整性规则n和数据的具体内容有关的约束和数据的具体内容有关的约束n构建关系模式时,属性的数据类型,可能满足不了需求,需构建关系模式时,属性的数据类型,可能满足不了需求,需要要显式定义显式定义额外的约束规则说明额外的约束规则说明qCHECK()子句、触发器、断言、过程子句、触发器、断言、过程n说明说明q各种各种D
20、BMS产品对完整性约束的支持程度不同产品对完整性约束的支持程度不同q 数据库中完整性约束检查,由数据库中完整性约束检查,由DBMS实现对实现对DB进行更新进行更新(I/D/U)操作时检查,保证数据与现实世界的一致性操作时检查,保证数据与现实世界的一致性关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q用户定义的完整性规则用户定义的完整性规则n示例示例1 S(SNO,SNAME,AGE,SEX,NativePlace)字字段段含含义义:学学号号,姓姓名名,年年龄龄,性性别别,籍籍贯贯 Create Table S(SNO CHAR(3),SNAME CHAR(8),
21、AGE Integer,SEX CHAR(1),NativePlace VARCHAR(20),Primary Key(SNO),Check(SEX IN(M,F);SNO SNAME AGE SEX NativePlace S1 WANG 20 M 北京北京 S2 LIU 18 F 山东山东 S3 HU 17 M 上海上海 S4 XIA 19 K 四川四川 关系模型的基本概念关系模型的基本概念n关系模型的完整性规则关系模型的完整性规则q用户定义的完整性规则用户定义的完整性规则n示例示例2 SC(SNO,CNO,Grade)字字段段含含义义:学学号号,课课程程号号,成成绩绩 Create Ta
22、ble SC(SNO CHAR(3),CNO CHAR(3),GRADE DEC(5,2),Primary Key(SNO,CNO),Foreign Key(SNO)References S(SNO),Foreign Key(CNO)References C(CNO),Check(GRADE is NULL Or GRADE Between 0 And 100);SNO CNO Grade S1 C2 80 S1 C3 70 S1 C5 85 S2 C1 60 S2 C2 75 S2 NULL 90 S2 C4 NULL S3 C1-5 S3 C4 80 S4 C2 101 S6 C4 75
23、关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q关系模式关系模式n记录类型称为关系模式记录类型称为关系模式n关系模式的集合就是数据库的概念模式,是问题域数据的全关系模式的集合就是数据库的概念模式,是问题域数据的全局逻辑视图局逻辑视图n是对数据的特征描述,不涉及物理存储方面的描述是对数据的特征描述,不涉及物理存储方面的描述n由数据定义语言(由数据定义语言(DDL)实现实现q定义模式名、属性名、值域、模式主键定义模式名、属性名、值域、模式主键q定义时,模式名和属性名一般都用英文单词表示定义时,模
24、式名和属性名一般都用英文单词表示 SC(SNO,CNO,Grade)S(SNO,SNAME,AGE,SEX,NativePlace)T(TNO,TNAME,TITLE,SEX)C(CNO,CNAME,Credit,CreditHours,CPNO,TNO)关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q关系模式关系模式 用户用户(应用程序应用程序)用户记录用户记录模式模式/内模式映像内模式映像外模式外模式模式模式内模式内模式DB模式模式/外模式映像外模式映像关系模型的基本概念关系模型的基本概
25、念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q子模式子模式n是用户所用到的局部数据的描述是用户所用到的局部数据的描述n构建子模式时,需要指出数据与关系模式中相应数据的联系构建子模式时,需要指出数据与关系模式中相应数据的联系n由数据定义语言(由数据定义语言(DDL)实现实现q定义时需要考虑用户对数据的操作权限定义时需要考虑用户对数据的操作权限q对子模式的操作(如插入、修改、删除)是受限的对子模式的操作(如插入、修改、删除)是受限的关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循
26、数据库的三级体系结构关系模型也遵循数据库的三级体系结构q子模式子模式n例如例如q构建成绩子模式构建成绩子模式,要求显示学号、姓名、课程号和成绩要求显示学号、姓名、课程号和成绩 Create View G(S#,SNAME,C#,SCORE)AS Select S.SNO,SNAME,CNO,Grade From S,SC Where S.SNO=SC.SNO G(S#,SNAME,C#,SCORE)关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q子模式子模式 用户用户(应用程序应用程序)用户
27、记录用户记录模式模式/内模式映像内模式映像外模式外模式模式模式内模式内模式DB模式模式/外模式映像外模式映像 SNO SNAME AGE SEX NativePlace S1 WANG 20 M 北京北京 SNO CNO Grade S1 C2 80 S#SNAME C#SCORE S1 WANG C2 80 S SC G 关系模型的基本概念关系模型的基本概念n关系模型的三层体系结构关系模型的三层体系结构关系模型也遵循数据库的三级体系结构关系模型也遵循数据库的三级体系结构q存储模式存储模式n在有些在有些DBMS中,关系存储是作为文件看待的中,关系存储是作为文件看待的n每个元组就是一个记录每个元
28、组就是一个记录n由于关系模式有键,因此存储一个关系可用散列方法或索引由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现方法实现n如果关系的元组数目较少(如果关系的元组数目较少(100个以内),那么也可以用个以内),那么也可以用“堆文件堆文件”方式实现(即没有特定的次序)方式实现(即没有特定的次序)n可对任意的属性集建立辅助索引可对任意的属性集建立辅助索引关系模型的基本概念关系模型的基本概念n关系模型的形式定义和优点关系模型的形式定义和优点q关系模型的三个要素关系模型的三个要素n1)关系数据结构)关系数据结构q关系,二维表关系,二维表q数据库中全部数据及其相互联系都被组织成数据库中全部
29、数据及其相互联系都被组织成“关系关系”n2)关系操作)关系操作q一组完备的关系运算,支持对数据库的各种操作一组完备的关系运算,支持对数据库的各种操作q关系运算分成关系代数、关系演算和关系逻辑等三类关系运算分成关系代数、关系演算和关系逻辑等三类n3)数据完整性约束规则)数据完整性约束规则q实体完整性、参照完整性和用户自定义的完整性实体完整性、参照完整性和用户自定义的完整性关系模型的基本概念关系模型的基本概念n关系模型的形式定义和优点关系模型的形式定义和优点q关系模型的优点关系模型的优点n1)单一的数据结构形式,具有高度的简明性和精确性)单一的数据结构形式,具有高度的简明性和精确性n2)逻辑结构和
30、相应的操作,完全独立于数据存储方式)逻辑结构和相应的操作,完全独立于数据存储方式q具有高度的数据独立性具有高度的数据独立性n3)坚实的数学基础)坚实的数学基础q关系运算的完备性和规范化设计理论关系运算的完备性和规范化设计理论n4)数据库技术的基础)数据库技术的基础q关系数据库语言与一阶谓词逻辑的固有内在联系,为以关关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统研究提供了方便系数据库为基础的推理系统和知识库系统研究提供了方便关系模型的基本概念关系模型的基本概念n关系查询语言和关系运算关系查询语言和关系运算q数据库语言数据库语言SQL分为:分为:DDL,DM
31、L、QL和和DCLq数据操纵语言数据操纵语言DML,描述插入、删除、修改等操作描述插入、删除、修改等操作q查询语言查询语言QL,描述用户的各种检索要求描述用户的各种检索要求n理论基础是理论基础是“关系运算理论关系运算理论”,分为,分为3部分:部分:q1)关系代数语言)关系代数语言q2)关系演算语言)关系演算语言q3)关系逻辑语言)关系逻辑语言关系代数关系代数n五个基本操作五个基本操作q并(并(Union)n前提前提q相同的关系模式相同的关系模式(并兼容:两关系具有相同的目,对应属(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)性域相同且两个关系的属性排列次序一样)n定
32、义定义qR和和S的并,是由属于的并,是由属于R或属于或属于S的元组构成的集合的元组构成的集合q记为记为RSn形式定义形式定义qRS t|tR tS,t是元组变量是元组变量关系代数关系代数n五个基本操作五个基本操作q差(差(Difference)n前提前提q相同的关系模式相同的关系模式(并兼容:两关系具有相同的目,对应属(并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)性域相同且两个关系的属性排列次序一样)n定义定义qR和和S的差,是由属于的差,是由属于R但不属于但不属于S的元组构成的集合的元组构成的集合q记为记为RSn形式定义形式定义qRS t|tR tS,t是元组变量
33、是元组变量关系代数关系代数n五个基本操作五个基本操作q笛卡尔积(笛卡尔积(Cartesian Product)n形式定义形式定义q假设:假设:R的元数的元数r,基数为基数为m;S的元数的元数s,基数为基数为nqRSt|t trR tsS RS的元数为的元数为r+s,基数基数mn 参与运算的参与运算的R和和S关系,不要求有同名属性关系,不要求有同名属性 若有同名属性,在属性名前加若有同名属性,在属性名前加“关系名关系名.”来标注来标注关系代数关系代数n五个基本操作五个基本操作q投影(投影(Projection)n对关系进行垂直分割(感兴趣的列),属性可任意排列对关系进行垂直分割(感兴趣的列),属
34、性可任意排列n表示表示q()n形式定义形式定义qi1,im(R)t|t R n性质性质q((R))(R)属性表属性表1属性表属性表2关系代数关系代数n五个基本操作五个基本操作q选择(选择(Selection)n据条件对关系做水平分割,选取符合条件的元组据条件对关系做水平分割,选取符合条件的元组n表示表示q()F(R),),F是命题公式是命题公式 n形式定义形式定义qF(R)t|tR F(t)=true n性质性质qa)(R)(R)qb)(R)(R)关系代数关系代数n五个基本操作五个基本操作q示例示例 A B C 1 2 3 4 5 6 7 8 9 关系关系 R A B C 1 2 3 4 5
35、6 7 8 9 2 4 6 (a)RS A B C 1 2 3 7 8 9 (b)RS C A 3 1 6 4 9 7 (d)C,A(R)R.A R.B R.C S.A S.B S.C 1 2 3 2 4 6 1 2 3 4 5 6 4 5 6 2 4 6 4 5 6 4 5 6 7 8 9 2 4 6 7 8 9 4 5 6 (c)RS A B C 4 5 6 7 8 9 (e)B4(R)A B C 2 4 6 4 5 6 关系关系 S 关系代数关系代数n四个组合操作四个组合操作q交(交(intersection)n前提前提q相同的关系模式相同的关系模式(并兼容:两关系具有相同的目,对应属(
36、并兼容:两关系具有相同的目,对应属性域相同且两个关系的属性排列次序一样)性域相同且两个关系的属性排列次序一样)n定义定义qR和和S的交,是由属于的交,是由属于R又属于又属于S的元组构成的集合的元组构成的集合q记为记为RSn形式定义形式定义qRS ttR tS n推导推导qRS=R-(R-S),),或或 RS=S-(S-R)R S 关系代数关系代数n四个组合操作四个组合操作q交(交(intersection)n示例示例 A B C 1 2 3 4 5 6 7 8 9 关系关系 R A B C 2 4 6 4 5 6 关系关系 S A B C 4 5 6 RS 关系代数关系代数n四个组合操作四个组
37、合操作q连接(连接(join)n形式定义形式定义qR S tt=trRtsStritsj n推导推导qR S i(r+j)(R S),),其中其中r是关系是关系R的元数的元数q表示连接是在表示连接是在(R S)中,挑选第中,挑选第i个分量和第个分量和第(r+j)个分个分量满足量满足操作的元组操作的元组n说明:说明:两个关系的同域属性比较两个关系的同域属性比较q连接:连接:,q等值连接:等值连接:qF连接:连接:F F1 Fn,Fk i j (、)ij ij 关系代数关系代数n四个组合操作四个组合操作q连接(连接(join)n示例示例q1)连接:连接:R S,或或 R Sq2)等值连接:)等值连
38、接:R S,或或 R Sq3)F连接:连接:R S,或或 R S A B C 1 2 3 4 5 6 7 2 9 关系关系 R D E 2 4 5 6 7 8 关系关系 S A B C D E 4 5 6 2 4 4 5 6 5 6 7 8 9 2 4 7 8 9 5 6 7 8 9 7 8 (1)A B C D E 1 2 3 2 4 4 5 6 5 6 7 2 9 2 4 (2)2=1 R.B=S.D 3=2 R.C=S.E 3=22=S.ER.B=S.D A B C D E 4 5 6 5 6 (3)关系代数关系代数n四个组合操作四个组合操作q自然连接(自然连接(natural join
39、)n两个关系公共属性上的等值连接两个关系公共属性上的等值连接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.Ak关系代数关系代数n四个组合操作四个组合操作q自然连接(自然连接(natural join)n示例示例qR S A,R.B,R.C,D(R.B=S.B
40、R.C=S.C(RS)n注:注:q参与自然连接运算的参与自然连接运算的2个关系,若没有公共属性,则自然个关系,若没有公共属性,则自然连接运算自动转化为笛卡尔积运算。连接运算自动转化为笛卡尔积运算。A B C 2 4 6 3 5 7 7 4 6 关系关系 R B C D 5 7 3 4 6 2 5 7 9 关系关系 S A B C D 2 4 6 2 3 5 7 3 3 5 7 9 7 4 6 2 结果结果 关系代数关系代数n四个组合操作四个组合操作q除法(除法(division)n前提前提qR中的属性包含中的属性包含S中的属性中的属性 R(X,Y),S(Y)n作用作用qRS是满足下列条件的最大
41、关系,属性由是满足下列条件的最大关系,属性由R中那些不出现中那些不出现在在S的属性组成,的属性组成,(RS)S的每个元组都在关系的每个元组都在关系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=TV 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 关系代数关系代数n四个组合操作四个组合操作q除法(除法(division)n示例示例 b c
42、c db c c d A B C D a b c d a b e f b c c d b c e f e d c d e d e f (2.1)(TS)A B a b b c e d (1)T=X(R)A B C D b c e f (2.2)W=(TS)R A B b c (3)V=X(W)A B a b e d (4)RS=TV 被除关系对除关系被除关系对除关系有覆盖有覆盖关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q关系代数表达式关系代数表达式n五个基本操作的有限次复合的式子五个基本操作的有限次复合的式子n表达式的运算结果仍是一个关系表达式的运算结果仍是一个关系n用关系
43、代数表达式表示各种数据查询操作用关系代数表达式表示各种数据查询操作关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q关系代数表达式关系代数表达式n示例示例 SNO SNAME AGE SEX NativePlace S1 WANG 20 M 北北京京 S2 LIU 18 F 山山东东 S3 HU 17 M 上上海海 S4 XIA 19 F 四四川川 CNO CNAME Credit CreditHours CPNO TNO C1 Math 3 48 NULL T1 C2 English 4 64 NULL T2 C3 PM 2 32 C2 T2 C4 DB 3.5 56 C1 T
44、1 SNO CNO Grade S1 C2 80 S1 C3 70 S1 C4 85 S2 C1 60 S2 C2 75 S2 C3 90 S2 C4 NULL S3 C1 85 S3 C4 80 S4 C2 85 S4 C4 75 TNO TNAME TITLE SEX T1 ZHAO 讲师讲师 M T2 LIU 教授教授 F SC(SNO,CNO,Grade)字字段段含含义义:学学号号,课课程程号号,成成绩绩 S(SNO,SNAME,AGE,SEX,NativePlace)字字段段含含义义:学学号号,姓姓名名,年年龄龄,性性别别,籍籍贯贯 T(TNO,TNAME,TITLE,SEX)字字段
45、段含含义义:教教师师号号,教教师师姓姓名名,职职称称,性性别别 C(CNO,CNAME,Credit,CreditHours,CPNO,TNO)字字段段含含义义:课课程程号号,课课程程名名,学学分分,学学时时数数,先先修修课课号号,授授课课教教师师号号 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q1)检索学习课程号为)检索学习课程号为C2课程的学生学号与成绩课程的学生学号与成绩 nSNO,Grade(CNO=C2(SC)n1,3(2=C2(SC)nCNO=C2(SNO,Grade(SC)n2=C2(1,3(SC)关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例
46、q1)检索学习课程号为)检索学习课程号为C2课程的学生学号与成绩课程的学生学号与成绩 nSNO,Grade(CNO=C2(SC)nCNO=C2(SNO,Grade(SC)SNO CNO Grade S1 C2 80 S1 C3 70 S1 C4 85 S2 C1 60 S2 C2 75 S2 C3 90 S2 C4 NULL S3 C1 85 S3 C4 80 S4 C2 85 S4 C4 75 SNO Grade S1 80 S2 75 S4 85 SNO CNO Grade S1 C2 80 S2 C2 75 S4 C2 85 SNO Grade S1 80 S1 70 S1 85 S2
47、60 S2 75 S2 90 S2 NULL S3 85 S3 80 S4 85 S4 75 对应的查询:对应的查询:Select Sno,GradeFrom SCWhere Cno=C2;关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q2)检索学习课程号为)检索学习课程号为C2的学生学号与姓名的学生学号与姓名nSNO,SNAME(CNO=C2(S SC)n查询涉及到两个关系查询涉及到两个关系S与与SC,先要对这两个关系进行自然连先要对这两个关系进行自然连接操作,然后再执行选择和投影操作接操作,然后再执行选择和投影操作 SNO SNAME AGE SEX NativePlace
48、 S1 WANG 20 M 北北京京 S2 LIU 18 F 山山东东 S3 HU 17 M 上上海海 S4 XIA 19 F 四四川川 CNO CNAME Credit CreditHours CPNO TNO C1 Math 3 48 NULL T1 C2 English 4 64 NULL T2 C3 PM 2 32 C2 T2 C4 DB 3.5 56 C1 T1 SNO CNO Grade S1 C2 80 S1 C3 70 S1 C4 85 S2 C1 60 S2 C2 75 S2 C3 90 S2 C4 NULL S3 C1 85 S3 C4 80 S4 C2 85 S4 C4
49、75 TNO TNAME TITLE SEX T1 ZHAO 讲师讲师 M T2 LIU 教授教授 F 关系代数关系代数n关系代数运算的应用实例关系代数运算的应用实例q2)检索学习课程号为)检索学习课程号为C2的学生学号与姓名的学生学号与姓名nSNO,SNAME(CNO=C2(S SC)SNO SNAME AGE SEX NativePlace S1 WANG 20 M 北北京京 S2 LIU 18 F 山山东东 S3 HU 17 M 上上海海 S4 XIA 19 F 四四川川 SNO SNAME AGE SEX NativePlace CNO Grade S1 WANG 20 M 北京北京
50、C2 80 S1 WANG 20 M 北京北京 C3 70 S1 WANG 20 M 北京北京 C4 85 S2 LIU 18 F 山东山东 C1 60 S2 LIU 18 F 山东山东 C2 75 S2 LIU 18 F 山东山东 C3 90 S2 LIU 18 F 山东山东 C4 NULL S3 HU 17 M 上海上海 C1 85 S3 HU 17 M 上海上海 C4 80 S4 XIA 19 F 四川四川 C2 85 S4 XIA 19 F 四川四川 C4 75 SNO CNO Grade S1 C2 80 S1 C3 70 S1 C4 85 S2 C1 60 S2 C2 75 S2