版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2章章 关系模型与关系代数关系模型与关系代数目目 录录 关系模型关系模型2.1关系代数关系代数2.22.1 关系模型关系模型n 系统而严格地提出关系模型的是美国系统而严格地提出关系模型的是美国IBM公司的公司的E.F.Coddl 1970年提出关系数据模型年提出关系数据模型 E.F.Codd, “A Relational Model of Data for Large SharedData Banks”, Communication of the ACM,1970n 关系数据库系统是支持关系数据模型的数据库系统。关系数据库系统是支持关系数据模型的数据库系统。关系数据库管理系统是当今的主流数
2、据库管理系统。关系数据库管理系统是当今的主流数据库管理系统。n 关系模型由关系模型由关系数据结构关系数据结构、关系操作集合关系操作集合和和关系完整关系完整性约束性约束三部分组成。三部分组成。2.1.1关系数据结构关系数据结构n 关系关系l关系模型的数据结构非常简单,它就是关系模型的数据结构非常简单,它就是二维表二维表,亦称为,亦称为关系关系 。 l关系数据库关系数据库是表的集合,即关系的集合。是表的集合,即关系的集合。 l表是一个实体集,一行就是一个表是一个实体集,一行就是一个实体实体,它由共同表示一,它由共同表示一个实体的有个实体的有关联关联的若干的若干属性属性的值所构成。的值所构成。l由于
3、一个表是这种有由于一个表是这种有关联关联的值的集合的值的集合(即行的集合即行的集合),而,而表表这个概念和数学上的这个概念和数学上的关系关系概念密切相关,因此称为概念密切相关,因此称为关关系模型系模型。l关系模型中,现实世界的实体以及实体间的各种联系都关系模型中,现实世界的实体以及实体间的各种联系都是用是用关系关系来表示。来表示。2.1.1关系数据结构关系数据结构n 关系数据结构的形式化定义关系数据结构的形式化定义l域域是一组具有相同数据类型的值的集合。是一组具有相同数据类型的值的集合。 l笛卡尔积笛卡尔积给定一组域给定一组域D1, D2, , Dn,它们之中可以有相同的域。,它们之中可以有相
4、同的域。D1, D2, , Dn的笛卡尔积为:的笛卡尔积为: D1D2Dn = (d1, d2, , dn) diDi, i=1, 2, , n其中,集合中的每一个元素其中,集合中的每一个元素(d1, d2, , dn)称为一个称为一个n元组元组, 简称为简称为元组元组;元素中的每一个值;元素中的每一个值di称为一个称为一个分量分量。若若Di (i=1, 2, , n)为有限集,假设其为有限集,假设其基数基数为为mi (i=1, 2, , n),则,则D1D2Dn的基数的基数M为:为: niimM1举例:举例:给定两个域:给定两个域: 学生的姓名集合:学生的姓名集合:D1 = 李小勇李小勇,
5、刘方晨刘方晨, 王红敏王红敏 课程的名称集合:课程的名称集合:D2 = 数据库系统概论数据库系统概论, 操作系统操作系统则则D1, D2的笛卡尔积为:的笛卡尔积为: D1D2= (李小勇李小勇, 数据库系统概论数据库系统概论), (李小勇李小勇, 操作系统操作系统), (刘方晨刘方晨, 数据库系统概论数据库系统概论), (刘方晨刘方晨, 操作系统操作系统), (王红敏王红敏, 数据库系统概论数据库系统概论), (王红敏王红敏, 操作系统操作系统) 2.1.1 关系数据结构关系数据结构n 关系的形式化定义关系的形式化定义lD1D2Dn的子集称为在的子集称为在域域D1, D2, , Dn上的上的关
6、系关系,表示为表示为 : r(D1, D2, , Dn) 其中,其中,r表示关系的名字,表示关系的名字,n是关系的是关系的目或度目或度(degree)。当。当 n=1时,该关系称为时,该关系称为单元关系单元关系;当;当n=2时,称为时,称为二元关系二元关系。l关系关系是笛卡尔积的是笛卡尔积的有限子集有限子集,所以关系也是一个二维表,所以关系也是一个二维表, 表的表的每行每行对应于关系的一个对应于关系的一个元组元组,表的,表的每列每列对应于关系的对应于关系的一个一个域域。由于域可以相同,为了区别就必须给每列起一个。由于域可以相同,为了区别就必须给每列起一个名字,称为名字,称为属性属性(attri
7、bute)。n目关系共有目关系共有n个属性。个属性。 2.1.1 关系数据结构关系数据结构l空值空值(null)是所有可能的是所有可能的域域的一个取值,表明的一个取值,表明值未知值未知或或值不存在值不存在。对于对于学位学位的取值域,某员工的的取值域,某员工的学位学位为空值为空值null,表示,表示不知道不知道该员工所获得的该员工所获得的学位学位,或该员工,或该员工没有获得没有获得学位学位;对于对于成绩成绩的取值域,某学生的的取值域,某学生的成绩成绩为空值为空值null,表示,表示不知道不知道该学生的该学生的成绩成绩,或该学生,或该学生没有没有成绩成绩(如没有参加考试就没有如没有参加考试就没有获
8、得获得成绩成绩)。l关系关系的最基本要求:的最基本要求:关系中的每个属性的关系中的每个属性的域域必须是必须是原子的原子的,即域中的每个值都是,即域中的每个值都是不可再分不可再分的一个完整单元。的一个完整单元。 关系中的每个关系中的每个元组元组都是都是可区分的可区分的,即存在唯一标识不同元组,即存在唯一标识不同元组的的属性属性(集集)码码。2.1.1 关系数据结构关系数据结构n 关系模式关系模式l对于一个二维表,有对于一个二维表,有表头部分表头部分和和表体部分表体部分:表头部分表头部分定义了该表的结构定义了该表的结构,即定义了该表由哪些列构,即定义了该表由哪些列构成成(假设由假设由n列构成列构成
9、),每个列的名字和取值范围等;,每个列的名字和取值范围等;表体部分表体部分就是所有数据行就是所有数据行(元组元组)的集合的集合,每一个数据行都,每一个数据行都是由表头部分规定的是由表头部分规定的n列有列有关联关联的取值的集合构成。的取值的集合构成。 l对应于关系数据库,对应于关系数据库,表的每一个数据表的每一个数据行行对应于关系的一对应于关系的一个个元组元组,表体表体对应于对应于关系关系,关系是元组的集合,关系是元组的集合,关系关系是是值值的概念;的概念;l表头部分表头部分对应于对应于关系模式关系模式,关系模式关系模式是是型型的概念,的概念,它定它定义了元组集合的义了元组集合的结构结构,即定义
10、了一个元组由哪些属性构即定义了一个元组由哪些属性构成成(假设由假设由n个属性构成个属性构成),每个属性的名字和来自的域等,每个属性的名字和来自的域等.n本次作业本次作业n1:第一章:第一章 1.1, 1.6, 1.10 P43n2:第二章:第二章:2.1,2.3,2.9 P71n下周一课前交下周一课前交2.1.1 关系数据结构关系数据结构n 关系模式关系模式l关系的描述关系的描述称为称为关系模式关系模式(relation schema)。l形式化地表示为:形式化地表示为:r(U, D, DOM, F) r为关系名,为关系名,U为组成该关系的属性名的集合,为组成该关系的属性名的集合,D为属性集为
11、属性集U中中 所有属性所来自的域的集合,所有属性所来自的域的集合,DOM为属性向域的映像集合,为属性向域的映像集合, F为属性间为属性间数据的依赖关系数据的依赖关系集合集合(即即体现一个元组的各属性取值体现一个元组的各属性取值 之间的之间的“关联关联”性性)。l关系模式通常被简记为关系模式通常被简记为 :r(U) 或或 r(A1, A2, , An) r为关系名,为关系名,U为属性名的集合为属性名的集合A1, A2, , An 2.1.1 关系数据结构关系数据结构n 码码l超码超码:对于关系对于关系r的一个或多个属性的集合的一个或多个属性的集合A,如果,如果属性集属性集A可以可以唯一地标识唯一
12、地标识关系关系r中的一个元组,则称中的一个元组,则称属性集属性集A为关系为关系r的一个的一个超码超码 (superkey) 。 l候选码候选码:对于关系对于关系r的一个或多个属性的集合的一个或多个属性的集合A,如,如果属性集果属性集A是关系是关系r的的超码超码,且属性集,且属性集A的的任意真子任意真子集集都不能成为关系都不能成为关系r的超码,则称属性集的超码,则称属性集A为为候选码候选码 (candidate key) 。l主码主码:若一个关系有多个候选码,则可以选定其中若一个关系有多个候选码,则可以选定其中的一个候选码作为该关系的的一个候选码作为该关系的主码主码 。举例:举例:Student
13、关系关系 studentNo studentName sex birthday speciality 0701001 李小勇李小勇 男男 1990-12-21 计算机计算机 0701008 王王 红红 男男 1992-04-26 计算机计算机 0802002 刘方晨刘方晨 女女 1990-11-11 信息系统信息系统 0802005 王红敏王红敏 女女 1990-10-01 信息系统信息系统 0703045 王王 红红 男男 1992-04-26 会计学会计学 0703010 李宏冰李宏冰 女女 1992-03-09 会计学会计学超码?:超码?:studentNo,studentNo, stu
14、dentName、studentNo, sex、speciality、 studentNo, studentName, speciality、sex?候选码:候选码:studentNo 和和 studentName, speciality 与语义有关与语义有关主码:主码:studentNo2.1.1 关系数据结构关系数据结构n 码码l外码外码:设设F是关系是关系r的一个属性的一个属性(或属性集或属性集),Ks是关是关系系s的的主码主码。如果。如果F与与Ks相对应相对应(即关系即关系r中属性中属性F的取的取值范围对应于关系值范围对应于关系s中主码中主码Ks的取值范围的子集的取值范围的子集),则则
15、称称F是关系是关系r参照关系参照关系s的的外码外码(foreign key),简称,简称F是关系是关系r的的外码外码。称关系称关系r为为参照关系参照关系,关系,关系s为为被参照关系被参照关系或或目标关系目标关系。r(Kr, F, ) s(Ks, )参照关系参照关系 被参照关系被参照关系( (目标关系目标关系) )图图2-3 外码参照图外码参照图2.1.1 关系数据结构关系数据结构n 关系数据库模式关系数据库模式l关系数据库关系数据库也有也有型型和和值值之分,之分,型型就是关系数据库模式,就是关系数据库模式,即它所包含的所有关系模式的集合;即它所包含的所有关系模式的集合;值值就是这些关系模就是这
16、些关系模式在某一时刻所对应的关系的集合,通常就称为关系数式在某一时刻所对应的关系的集合,通常就称为关系数据库据库实例实例 。l在实际应用中,人们经常把在实际应用中,人们经常把关系数据库模式关系数据库模式和和关系数据关系数据库实例库实例都笼统地称为都笼统地称为关系数据库关系数据库。 举例:举例:学生成绩管理数据库学生成绩管理数据库ScoreDB的模式的模式 Class( classNo: char(6), className: varchar(30), institute: varchar(30), grade: smallint, classNum: tinyint )Student( stu
17、dentNo: char(7), studentName: varchar(20), sex: char(2), birthday: datetime, native: varchar(20), nation: varchar(30), classNo: char(6) )Course( courseNo: char(5), courseName: varchar(30), creditHour: numeric, courseHour: int, priorCourse: char(5) )Score( studentNo: char(7), courseNo: char(5), term:
18、 char(5), score: numeric )说明:说明: 带带下划线下划线的属性的属性(集集)为为主码主码,斜体斜体属性为属性为外码外码。 基本基本数据类型数据类型请参见请参见3.8.2节。节。2.1.2 关系完整性约束条件关系完整性约束条件n 实体完整性实体完整性l若属性集若属性集A是关系是关系r的的主码主码,则,则A不能取不能取空值空值null。 例如,关系例如,关系Student,由于,由于studentNo是关系是关系Student的主的主码,因此它在任何时候的取值都不能为空值码,因此它在任何时候的取值都不能为空值null,但其,但其他属性如他属性如sex、birthday、s
19、peciality等都可以取空值,表等都可以取空值,表示当时该属性的示当时该属性的值未知值未知或或不存在不存在。 l如果主码是由若干个属性的集合构成,则要求构成主码如果主码是由若干个属性的集合构成,则要求构成主码的每一个属性的值都不能取空值。的每一个属性的值都不能取空值。 例如,学生成绩管理例如,学生成绩管理数据库数据库ScoreDB中的关系中的关系Score,它的主码是,它的主码是studentNo, courseNo, term,因此这,因此这3个属性都不能取空值。个属性都不能取空值。 关系完整性约束条件关系完整性约束条件n 参照完整性参照完整性l若属性若属性(或属性集或属性集)F是关系是
20、关系r的的外码外码,它与关系,它与关系s的主码的主码Ks相对应,则对于关系相对应,则对于关系r中的每一个元组在属性中的每一个元组在属性F上的取值上的取值要么为空值要么为空值null,要么等于关系,要么等于关系s中某个元组的主码值。中某个元组的主码值。 关系完整性约束条件关系完整性约束条件举例:举例:u 实现多对一联系的实现多对一联系的外码外码 学生成绩管理数据库学生成绩管理数据库ScoreDB中,学生关系中,学生关系Student与班级关系与班级关系Class之间存之间存在在多对一多对一的的“归属归属”联系。联系。 u实现多对多联系的实现多对多联系的联系关系联系关系及及外码外码 学生成绩管理数
21、据库学生成绩管理数据库ScoreDB中,假设每一个学生一个学期可以选修若干门中,假设每一个学生一个学期可以选修若干门课程,每一门课程同时有若干个学生选修,那么学生关系课程,每一门课程同时有若干个学生选修,那么学生关系Student与课程关系与课程关系Course之间存在之间存在多对多多对多的的“选修选修”联系,且课程的联系,且课程的开课学期开课学期term和和修读成绩修读成绩score为为联系属性联系属性。 u 实现关系内部多对一联系的实现关系内部多对一联系的外码外码 学生成绩管理数据库学生成绩管理数据库ScoreDB中,假设一门课程可能存在先修课程,且关系中,假设一门课程可能存在先修课程,且
22、关系Course中的中的priorCourse属性用来存放先修课程的课程编号。属性属性用来存放先修课程的课程编号。属性priorCourse是课程关系是课程关系Course参照课程关系参照课程关系Course的的外码外码。 Class( classNo, className, institute, grade, classNum ) Student( studentNo, studentName, sex, birthday, native, nation, classNo )图图2-4 实现实现“多对一多对一”联系的联系的外码外码1n Student( studentNo, studentN
23、ame, sex, birthday, native, nation, classNo ) Score( studentNo, courseNo, term, score ) Course( courseNo, courseName, creditHour, courseHour, priorCourse )图图2-5 实现实现“多对多多对多”联系的联系的联系关系联系关系及及外码外码mnCourse( courseNo, courseName, creditHour, courseHour, priorCourse )图图2-6 实现关系内部多对一联系的实现关系内部多对一联系的外码外码关系完整
24、性约束条件关系完整性约束条件n 数据库模式导航图数据库模式导航图l一个含有一个含有主码和外码依赖主码和外码依赖的数据库模式可以通过的数据库模式可以通过模式导模式导航图航图来表示。来表示。 关系完整性约束条件关系完整性约束条件n 数据库模式导航图数据库模式导航图l一个含有一个含有主码和外码依赖主码和外码依赖的数据库模式可以通过的数据库模式可以通过模式导模式导航图航图来表示。来表示。关系关系Student与关系与关系Class之间存在之间存在多对一多对一的的“归属归属”联系联系(一个班一个班由多个学生组成,一个学生只能归属于某个班由多个学生组成,一个学生只能归属于某个班),通过外码,通过外码cla
25、ssNo实现该联系。实现该联系。 关系关系Course与关系与关系Student之间存在之间存在多对多多对多的的“选修选修”联系。联系。 关系关系Score的主码是的主码是studentNo, courseNo, term,显然同一个学,显然同一个学生在同一个学期不允许修读同一门课程多次。生在同一个学期不允许修读同一门课程多次。 关系关系Course的的外码外码priorCourse参照参照本关系的本关系的主码主码courseNo。关系完整性约束条件关系完整性约束条件n 数据库模式导航图数据库模式导航图 开课班号开课班号开课班号开课班号聘用日期聘用日期volumehireDate关系完整性约束
26、条件关系完整性约束条件n 数据库模式导航图数据库模式导航图l 一个含有一个含有主码和外码依赖主码和外码依赖的数据库模式可以通过的数据库模式可以通过模式导航图模式导航图来表示来表示关系关系Student与关系与关系Class之间、关系之间、关系Class与关系与关系Institute之间、关系之间、关系Teacher与关系与关系Institute之间都存在之间都存在多对一多对一的的“归属归属”联系联系 。关系关系Course的的外码外码priorCourse参照参照本关系的本关系的主码主码courseNo。关系关系CourseClass与关系与关系Course之间存在之间存在多对一多对一的的“开
27、课开课”联系联系(每个每个学期一门课程可能开设多个教学班,一个教学班只讲授一门课程学期一门课程可能开设多个教学班,一个教学班只讲授一门课程)。 关系关系CourseClass与关系与关系Classroom之间存在之间存在多对一多对一的的“上课上课”联系联系 关系关系CourseClass与关系与关系Teacher之间存在之间存在多对一多对一的的“授课授课”联系联系 关系关系CourseClass与关系与关系Student之间存在之间存在多对多多对多的的“选课选课”联系联系 。关系关系SC的主码是的主码是cClassNo, studentNo,显然同一个学生不允许选修,显然同一个学生不允许选修同
28、一个教学班的课程多次。同一个教学班的课程多次。开课开课班号班号开课开课班号班号聘用聘用日期日期volumehireDate关系完整性约束条件关系完整性约束条件n 用户自定义完整性用户自定义完整性l任何关系数据库管理系统都应该支持任何关系数据库管理系统都应该支持实体完整性实体完整性和和参照参照完整性完整性 。l用户定义的完整性用户定义的完整性就是针对某一具体应用要求来定义的就是针对某一具体应用要求来定义的约束条件,它反映某一具体应用所涉及的数据必须满足约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求的语义要求。例如,例如,限制关系中某些属性的限制关系中某些属性的取值取值要符合要符合业务
29、语义业务语义要求。要求。 限制关系中某些属性的限制关系中某些属性的取值之间取值之间需要满足一定的需要满足一定的逻辑关逻辑关系系。 限制关系中某属性集上的限制关系中某属性集上的取值必须唯一取值必须唯一。 关系操作关系操作n 关系操作关系操作l关系操作的特点是关系操作的特点是集合集合操作方式操作方式,即操作的对象和结果都,即操作的对象和结果都是集合。这种操作方式也称为是集合。这种操作方式也称为一次一个一次一个集合集合的方式的方式。相应。相应地,非关系数据模型的数据操作方式则为地,非关系数据模型的数据操作方式则为一次一个一次一个记录记录的的方式方式。l关系模型中的关系操作有关系模型中的关系操作有查询
30、操作查询操作和和更新操作更新操作(插入、删除插入、删除和修改和修改)两大类两大类 。l查询操作是关系操作中最主要的部分。查询操作又可以分查询操作是关系操作中最主要的部分。查询操作又可以分为为选择选择(select)、投影、投影(project)、连接、连接(join)、除、除(divide)、 并并(union)、交、交(intersection)、差、差(except)、笛卡尔积、笛卡尔积等。等。 关系操作关系操作n 关系操作能力可用两种方式来表示关系操作能力可用两种方式来表示 代数代数方式方式和和逻辑逻辑方式方式。l关系代数关系代数是用是用代数代数方式方式表达的关系查询语言表达的关系查询语
31、言。l关系演算关系演算是用是用逻辑逻辑方式方式表达的关系查询语言。表达的关系查询语言。l对于对于关系代数关系代数、关系演算关系演算均是抽象的查询语言,均是抽象的查询语言,在表达能在表达能力上是完全等价的力上是完全等价的。目目 录录 关系模型关系模型2.1关系代数关系代数2.2关系代数关系代数n 关系代数关系代数l关系代数是通过关系代数是通过关系代数运算关系代数运算构成的表达式来表达查询。构成的表达式来表达查询。l基本的关系代数运算有基本的关系代数运算有选择、投影、集合并、集合差、笛选择、投影、集合并、集合差、笛卡尔积卡尔积和和更名更名等。等。 l关系代数运算是以一个或两个关系作为输入关系代数运
32、算是以一个或两个关系作为输入(即运算对象即运算对象)产生一个新的关系作为结果。产生一个新的关系作为结果。 l切记关系代数运算也是集合运算,下面分为传统集合运算切记关系代数运算也是集合运算,下面分为传统集合运算和专门的关系运算和专门的关系运算关系代数关系代数n 传统的集合运算传统的集合运算l前提假设:前提假设:关系关系r和关系和关系s具有相同的具有相同的n个属性,且相应个属性,且相应的属性取自同一个域,的属性取自同一个域,即两个关系的模式或结构相同即两个关系的模式或结构相同。t是元组变量,是元组变量,tr表示表示t是是r的一个元组。的一个元组。 l 并运算并运算 关系关系r与关系与关系s的并记作
33、的并记作 :rs = t t rt s 其结果关系仍为其结果关系仍为n目关系,由属于目关系,由属于r或属于或属于s的所有元组的所有元组 组成。组成。并运算并运算ABC367257723443RABC345723SABC367257723443345RS 关系代数关系代数n 传统的集合运算传统的集合运算l 差差 关系关系r与关系与关系s的差记作的差记作 :r- -s = t t rt s 其结果关系仍为其结果关系仍为n目关系,由属于目关系,由属于r而不属于而不属于s的所有元组的所有元组组成。组成。l 交交 关系关系r与关系与关系s的交记作:的交记作:rs = t t rt s 其结果关系仍为其结
34、果关系仍为n目关系,由既属于目关系,由既属于r又属于又属于s的所有元组的所有元组组成。关系的交可以通过差来表达,即组成。关系的交可以通过差来表达,即rs = r- -(r- -s)。 差运算差运算ABC367257723443RABC345723SABC367257443RS ABC345SR 关系代数关系代数n 传统的集合运算传统的集合运算l 笛卡尔积笛卡尔积 两个分别为两个分别为n目和目和m目的关系目的关系r和和s的笛卡尔积是一个的笛卡尔积是一个n+m目元组的集合。目元组的集合。 元组的前元组的前n列是关系列是关系r的一个元组,后的一个元组,后m列是关系列是关系s的一个的一个元组元组若关系
35、若关系r有有kr个元组,关系个元组,关系s有有ks个元组,则关系个元组,则关系r和和s的笛的笛卡尔积有卡尔积有krks个元组。记作个元组。记作 : rs = trts tr rts s 笛卡尔积运算笛卡尔积运算AB12rCD10102010EaabbsAB11112222CD 1010201010102010Eaabbaabbr x s成绩管理数据库成绩管理数据库ScoreDB的实例数据的实例数据(P58) l关系关系Student、Course和和Score可分别描述为:可分别描述为:Student(学号学号,姓名,性别,出生日期,所学专业,姓名,性别,出生日期,所学专业)Course(课程
36、号课程号,课程名称,学时,学分,课程名称,学时,学分)Score(学号学号,课程号课程号,学期,成绩,学期,成绩)l关系模型要求关系必须是规范化的,即要求关系必须满关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件。足一定的规范条件。l最基本的规范条件是:最基本的规范条件是:关系的每一个分量必须是一个不可分的数据项,即关系的每一个分量必须是一个不可分的数据项,即不允许不允许表中有表表中有表 Student关系关系StudentNo StudentName sex birthday native nation classNo 0701001 李小勇李小勇 男男 1990-12-21
37、 南昌南昌 汉族汉族 CS0701 0701008 王王 红红 男男 1992-04-26 上海上海 汉族汉族 CS0701 0703010 李宏冰李宏冰 女女 1992-03-09 太原太原 蒙古族蒙古族 AC0703 0703045 王王 红红 男男 1992-04-26 北京北京 汉族汉族 AC0703 0802002 刘方晨刘方晨 女女 1990-11-11 南昌南昌 傣族傣族 IS0802 0802005 王红敏王红敏 女女 1990-10-01 上海上海 蒙古族蒙古族 IS0802Course关系关系CourseNoCourseName creditHour courseHour
38、priorCourseAC001 基础会计基础会计 48 3 nullCN028大学语文大学语文 48 3 nulCS012操作系统操作系统 80 5 nullCS015 数据库系统数据库系统 64 4 CS012Score关系关系StudentNo courseNoterm score0701001CN02807081850701001CS01207082880701001CS01508091920701008AC00107081760701008CN02807081860701008CS01207082930701008CS01508091960703010AC00107081920703
39、010CN02807081830703010CS01207082730703045AC00107081520703045AC00108091940703045 CN028 07081 800703045 CS015 08091 820802002AC00108091980802002CN02808091720802002CS01509101850802005AC00109101880802005CS01208092900802005CS0150910187Class关系关系ClassNoClassName instiute grade ClassNumAC0703会计学会计学07(3)班班 会
40、计学院会计学院 2007 46CS0701计算机计算机07(1)班班 信息学院信息学院 2007 48IS0802信息系统信息系统08(2)班班 信息学院信息学院 2008 43关系代数关系代数n 传统的集合运算传统的集合运算l 对于数据库对于数据库ScoreDB,笛卡尔积,笛卡尔积ClassCourse的结果关系为:的结果关系为: 什么用?什么用?RXS89数学张军86数学王红93物理张军成绩课程姓名R89数学张军86数学王红93物理张军成绩课程姓名S什么用?什么用?关系代数关系代数n 专门的关系运算专门的关系运算l 选择选择 选择操作是在关系选择操作是在关系r中查找满足给定中查找满足给定谓
41、词谓词(即选择条件即选择条件)的的所有元组,记作:所有元组,记作: P (r) = t t rP(t) P表示谓词表示谓词(即选择条件即选择条件),它是一个逻辑表达式,取值为,它是一个逻辑表达式,取值为“真真”或或“假假”。 关系代数关系代数n 专门的关系运算专门的关系运算l 选择选择u 例如,在数据库例如,在数据库ScoreDB中,查找中,查找2007级级的所有班级情况的所有班级情况 grade=2007(Class) ClassNo ClassName instiute grade ClassNumAC0703 会计学会计学08(3)班班 会计学院会计学院 2007 46CS0701 计算
42、机计算机07(1)班班 信息学院信息学院 2007 48u 例如,在数据库例如,在数据库ScoreDB中,查找所有太原出生中,查找所有太原出生 的的女学生女学生情况情况 ? native太原太原sex=女女(Student)StudentNo StudentName sex birthday native nation classNo 0703010 李宏冰李宏冰 女女 1992-03-09 太原太原 蒙古族蒙古族 AC0703Class关系关系ClassNoClassName instiute grade ClassNumAC0703会计学会计学07(3)班班 会计学院会计学院 2007 4
43、6CS0701计算机计算机07(1)班班 信息学院信息学院 2007 48IS0802信息系统信息系统08(2)班班 信息学院信息学院 2008 43关系代数关系代数n 专门的关系运算专门的关系运算l 投影投影 关系是一个二维表,对它的操作可以从关系是一个二维表,对它的操作可以从水平水平(行行)的角度进的角度进行,即行,即选择操作选择操作;也可以从;也可以从纵向纵向(列列)的角度进行,即的角度进行,即投影投影操作操作。 关系关系r上的投影是从上的投影是从r中选择出若干属性列组成新的关系。中选择出若干属性列组成新的关系。记作:记作: A(r) = tA t r A为关系为关系r的属性集合。的属性
44、集合。 关系代数关系代数n 专门的关系运算专门的关系运算l 投影投影u 例如,在数据库例如,在数据库ScoreDB中,查找所有学生的中,查找所有学生的姓名姓名和和民族民族 studentName, nation(Student) u 例如,在数据库例如,在数据库ScoreDB中,中,查找所有查找所有“蒙古族蒙古族”学生的学生的 姓名姓名和和籍贯籍贯 StudentName nation 李小勇李小勇 汉族汉族 王红王红 汉族汉族 王宏冰王宏冰 蒙古族蒙古族 刘方晨刘方晨 傣族傣族 王红敏王红敏 蒙古族蒙古族StudentName native 王宏冰王宏冰 太原太原 王红敏王红敏 上海上海st
45、udentName, native(nation=蒙古族蒙古族(Student)Student关系关系StudentNo StudentName sex birthday native nation classNo 0701001 李小勇李小勇 男男 1990-12-21 南昌南昌 汉族汉族 CS0701 0701008 王王 红红 男男 1992-04-26 上海上海 汉族汉族 CS0701 0703010 李宏冰李宏冰 女女 1992-03-09 太原太原 蒙古族蒙古族 AC0703 0703045 王王 红红 男男 1992-04-26 北京北京 汉族汉族 AC0703 0802002
46、刘方晨刘方晨 女女 1990-11-11 南昌南昌 傣族傣族 IS0802 0802005 王红敏王红敏 女女 1990-10-01 上海上海 蒙古族蒙古族 IS0802关系代数关系代数n 专门的关系运算专门的关系运算l 连接连接u 连接也称为连接也称为连接连接。记为。记为A op B,其中,其中A、B分别为关系分别为关系r和和s中的度数相等且可比的连接属性集,中的度数相等且可比的连接属性集,op为比较运算符。为比较运算符。 连接连接是从两个关系的笛卡尔积中选取是从两个关系的笛卡尔积中选取连接属性间满足谓词连接属性间满足谓词的所有元组的所有元组。记作。记作 : r s = trts tr rt
47、s s(r.A op s.B) u连接连接运算就是从关系运算就是从关系r和和s的笛卡尔积的笛卡尔积rs中,选取中,选取r关系关系在在A属性集上的值与属性集上的值与s关系在关系在B属性集上的值属性集上的值满足连接谓词满足连接谓词的所有元组的所有元组,即,即 r s = )(sr)(sr关系代数关系代数n 专门的关系运算专门的关系运算l 连接连接u连接运算中有两种最常用、最重要的连接,一种是连接运算中有两种最常用、最重要的连接,一种是等值等值连接连接(equijoin),另一种是另一种是自然连接自然连接(natural join)。为为等等值比较谓词值比较谓词的连接运算称为的连接运算称为等值连接等
48、值连接。 u自然连接自然连接是一种是一种特殊的等值连接特殊的等值连接,它要求两个参与连接,它要求两个参与连接的关系具有的关系具有公共的属性集公共的属性集,并在这个公共属性集上进行,并在这个公共属性集上进行等值连接等值连接;同时,还要求将连接结果中的;同时,还要求将连接结果中的重复属性列去重复属性列去除掉除掉,即在公共属性集中的列,即在公共属性集中的列只保留一次只保留一次。 )(sr关系代数关系代数n 专门的关系运算专门的关系运算l例如,在数据库例如,在数据库ScoreDB中,查找所有中,查找所有2008级级的的“蒙蒙古族古族”学生的学生的姓名姓名 StudentName 王红敏王红敏 分析:分
49、析: nation=蒙古族蒙古族(Student)可以找到所有可以找到所有蒙古族蒙古族学生的情况,但关系学生的情况,但关系Student中没有年级的信息,因此中没有年级的信息,因此必须必须将关系将关系Student与关系与关系Class关联起来。关联起来。 根据模式导航图可知,根据模式导航图可知,关系关系Student与关系与关系Class可通过外码可通过外码classNo关联起来,关联起来,这种外码引用关系可通过这种外码引用关系可通过自然连接自然连接表示表示 Student Class =Student.classNo=Class.classNo(StudentClass) 最后的查询可表达
50、为:最后的查询可表达为: studentName(nation=蒙古族蒙古族(Student) grade=2008(Class) studentName(nation=蒙古族蒙古族(Student) grade=2008(Class) =studentName(Student.classNo=Class.classNo(nation=蒙古族蒙古族(Student)grade=2008(Class) =studentName(Student.classNo=Class.classNo(nation=蒙古族蒙古族grade=2008(StudentClass)=studentName(natio
51、n=蒙古族蒙古族grade=2008Student.classNo=Class.classNo(StudentClass) =studentName(nation=蒙古族蒙古族grade=2008(Student.classNo=Class.classNo(StudentClass) =studentName(nation=蒙古族蒙古族grade=2008(Student Class) 关系代数关系代数关系代数关系代数l 例如,在数据库例如,在数据库ScoreDB中,查找课程号为中,查找课程号为“AC001”课程课程的考试的考试中比中比学号为学号为“0703045”的学生的学生考得更好考得更好
52、的所有学生的的所有学生的姓名姓名和和成绩成绩。 分析:分析: 找出学号为找出学号为“0703045”的学生在课程号为的学生在课程号为“AC001”的课的课 程中的成程中的成绩元组绩元组 (结果关系记为结果关系记为r1),可表达为可表达为:(studentNo=0703045courseNo=AC001(Score) ) AS r1 找出选修了课程号为找出选修了课程号为“AC001”课程的所有学生的成绩元课程的所有学生的成绩元 组组 (结果关系结果关系 记为记为r2) ,其查询可表达为:其查询可表达为:(courseNo=AC001(Score) ) AS r2 将关系将关系r1与关系与关系r2
53、进行进行连接连接 (结果关系记为结果关系记为r3),其查询可表达为:其查询可表达为: r1 r1.scorer2.score r2 = r1.scorer2.score (r1r2) 将关系将关系r3与学生关系与学生关系Student按外码按外码studentNo进行自然连接,并进行自然连接,并对连接对连接 结果在属性结果在属性studentName和和r2.score上进行投影,上进行投影,其查询可表达为:其查询可表达为: studentName, r2.score(r3 Student) = studentName, r2.score(r2.studentNo=Student.studen
54、tNo(r3Student) = studentName, r2.score(r2.studentNo=Student.studentNo(r1.scorer2.score(r1r2) Student)studentNo courseNo term score0701008 AC001 07081 760703010 AC001 07081 920703045 AC001 07081 520703045 AC001 08091 940802002 AC001 08091 980802005 AC001 09101 88 (b) 关系关系r2studentNo courseNo term sco
55、re0703045 AC001 07081 520703045 AC001 08091 94 (a) 关系关系r1r1.studentNo r1.courseNo r1.term r1.score r2.studentNo r2.courseNo r2.term r2.score0703045 AC001 07081 52 0701008 AC001 07081760703045 AC001 07081 52 0703010 AC001 07081920703045 AC001 07081 52 0703045 AC001 08091940703045 AC001 07081 52 08020
56、02 AC001 08091980703045 AC001 07081 52 0802005 AC001 09101880703045 AC001 08091 94 0802002 AC001 0809198 (c) 关系关系r3studentName score王王 红红 76李宏冰李宏冰 92王王 红红 94刘方晨刘方晨 98王红敏王红敏 88 (d) 最后结果最后结果图图2-19 例例2.16的的连接的连接的计算过程计算过程Score关系关系StudentNo courseNoterm score0701001CN02807081850701001CS01207082880701001C
57、S01508091920701008AC00107081760701008CN02807081860701008CS01207082930701008CS01508091960703010AC00107081920703010CN02807081830703010CS01207082730703045AC00107081520703045AC00108091940703045 CN028 07081 800703045 CS015 08091 820802002AC00108091980802002CN02808091720802002CS01509101850802005AC00109101
58、880802005CS01208092900802005CS0150910187关系代数关系代数外连接外连接(outer join)l例:列出老师的有关信息,包括姓名、工资、所教授的课程例:列出老师的有关信息,包括姓名、工资、所教授的课程P# ,PN , SAL , C# , CN(PROF) PC C)500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CNC#P04C02P02C02P01C01P#C#数学C02500李三P04数学C02700钱广P02物理C01800赵明P01CNC#SALPNP#问题:有关问题:有关P03号 职
59、工 的 姓 名号 职 工 的 姓 名和 工 资 信 息 没和 工 资 信 息 没有显示出来有显示出来外连接外连接n 外连接外连接l为避免自然连接时因失配而发生的信息丢失,可以假定往为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为称之为外连接外连接外连接外连接 = 自然连接自然连接 + 失配的元组失配的元组l外连接的形式:左外连接、右外连接、全外连接外连接的形式:左外连接、右外连接、全外
60、连接 左外连接左外连接 = 自然连接自然连接 + 左侧表中失配的元组左侧表中失配的元组右外连接右外连接 = 自然连接自然连接 + 右侧表中失配的元组右侧表中失配的元组全外连接全外连接 = 自然连接自然连接 + 两侧表中失配的元组两侧表中失配的元组外连接外连接500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CNC#P04C02P02C02P01C01P#C#数学C02500李三P04数学C02700钱广P02物理C01800赵明P01CNC#SALPNP#所有老师的信息所有老师的信息P03 孙立 600nullnull外连接外连接500
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演出经纪人之《演出经纪实务》测试卷附答案详解
- PETS一级笔试模拟试题(含详细答案解析)
- 广东省河源市东源县2027届数学九上期末达标检测模拟试题含解析
- 轨道交通运营期施工防护方案
- 髂静脉压迫综合征弹力袜穿戴日常指导规范共识
- 2027届广东省深圳高级中学数学九上期末经典模拟试题含解析
- Oracle数据库工程师面试题及详细答案(实操完整版)
- 车间安全教育培训试题及答案
- 管廊突发事件调度处置规程
- 2026年安管人员继续教育试题及答案
- 直读光谱仪培训课件
- T/CECS 10270-2023混凝土抑温抗裂防水剂
- 《足太阴脾经络》课件
- 2024年版高校助教聘请合约3篇
- 肇庆市2025届高中毕业班第一次模拟考试(一模)生物试卷(含答案详解)
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 路灯基础现浇混凝土检验批质量验收记录
- 盐酸青藤碱的稳定性和溶解性研究
- 《田螺姑娘》儿童故事ppt课件(图文演讲)
- 食品有限公司生产车间安全风险分级清单
- 体格检查评分标准(心脏)
评论
0/150
提交评论