版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 22021-7-12 n关系数据库系统是支持关系模型的数据库系统关系数据库系统是支持关系模型的数据库系统 n关系模型的组成关系模型的组成 数据模型通常由数据结构、数据操作和完整性约束数据模型通常由数据结构、数据操作和完整性约束 三个要素组成三个要素组成 关系数据结构、关系操作集合、关系完整性约束关系数据结构、关系操作集合、关系完整性约束 n关系数据库是以集合论中关系的概念为基础发展起来关系数据库是以集合论中关系的概念为基础发展起来 的。它运用数学方法研究数据库的结构和定义对数据的。它运用数学方法研究数据库的结构和定义对数据 的操作。的操作。 n本章将详细论述关系数据库涉及的基本概念及对关系本
2、章将详细论述关系数据库涉及的基本概念及对关系 的各种运算的各种运算 n数据模型的三要素数据模型的三要素,是本章学习的路标是本章学习的路标 静态数据结构静态数据结构;动态数据操作动态数据操作;完整性约束完整性约束 n这三要素体现在如下问题中这三要素体现在如下问题中: 如何表达数据本身?如何表达数据本身? 如何表达数据间的联系?如何表达数据间的联系? 有哪些动态数据操作?有哪些动态数据操作? 能表达哪些完整性约束?能表达哪些完整性约束? 完整性约束如何设定?完整性约束如何设定? 完整性约束的效果?完整性约束的效果? 如何进行关系模型的如何进行关系模型的DB设计?设计? 32021-7-12 420
3、21-7-12 n3.1 关系模型的基本概念关系模型的基本概念 n3.2 关系代数关系代数 n3.3 元组关系演算元组关系演算 n3.4 域关系演算域关系演算 n3.5 小结小结 52021-7-12 n3.1.1 关系的定义关系的定义 1. 笛卡尔积(笛卡尔积(Cartesian Product) 2. 域(域(Domain) 3. 关系(关系(Relation) n3.1.2 关系模式和关系数据库关系模式和关系数据库 n3.1.3 键键 n3.1.4 完整性约束完整性约束 62021-7-12 n关系模型中,数据是以二维表的形式存在的,这个关系模型中,数据是以二维表的形式存在的,这个二二
4、维表维表就叫做就叫做关系关系。 单一的数据结构单一的数据结构-关系关系 现实世界的实体以及实体间的各种联系均用关系现实世界的实体以及实体间的各种联系均用关系 来表示来表示 数据的逻辑结构数据的逻辑结构-二维表二维表 关系模型用二维表格结构来表示实体及实体之间关系模型用二维表格结构来表示实体及实体之间 联系的模型联系的模型 关系模型是各个关系的框架的集合,即关系模型关系模型是各个关系的框架的集合,即关系模型 是一些表格的格式,其中包括关系名、属性名、是一些表格的格式,其中包括关系名、属性名、 关键字等。关键字等。 n在关系理论是以集合代数理论为基础的,因此,我们在关系理论是以集合代数理论为基础的
5、,因此,我们 可以用集合代数给出二维表的可以用集合代数给出二维表的“关系关系”定义。定义。 72021-7-12 n为了从集合论的角度给出关系的定义,我们先引入为了从集合论的角度给出关系的定义,我们先引入域域 和和笛卡尔积笛卡尔积的概念。的概念。 n1.域域(Domain) 域是一组具有相同数据类型的值的集合域是一组具有相同数据类型的值的集合 自然数、整数、自然数、整数、男、女男、女、0、1 关系中用域表示属性的取值范围,例如关系中用域表示属性的取值范围,例如 D1=李丽,王平,刘伟李丽,王平,刘伟 D2=男,女男,女 D3=47,28,30 其中其中D1,D2,D3为域名为域名, 分别表示教
6、师关系中姓名、分别表示教师关系中姓名、 性别、年龄的集合性别、年龄的集合 82021-7-12 n1) 笛卡尔积笛卡尔积 定义定义3.1 给定一组集合给定一组集合D1,D2,Dn,它们可以是相同,它们可以是相同 的。的。 D1,D2,Dn的笛卡尔积为:的笛卡尔积为: D1D2Dn=(d1,d2,dn) | di Di, i=1,2,n 所有域的所有值的一个组合,不能重复所有域的所有值的一个组合,不能重复 92021-7-12 例例 给出域:给出域:D1=SUPERVISOR = 张清玫,刘逸张清玫,刘逸 D2=SPECIALITY=计算机专业计算机专业,信息专业信息专业 D3=POSTGRAD
7、UATE=李勇李勇,刘晨,王敏刘晨,王敏 则则 D1D2D3 (张清玫张清玫,计算机专业计算机专业,李勇李勇),(张清玫张清玫,计算机专业计算机专业,刘晨刘晨), (张清玫张清玫,计算机专业计算机专业,王敏王敏),(张清玫张清玫,信息专业信息专业, 李勇李勇), (张清玫张清玫,信息专业信息专业, 刘晨刘晨),(张清玫张清玫,信息专业信息专业, 王敏王敏), (刘逸刘逸, 计算机专业计算机专业, 李勇李勇),(刘逸刘逸, 计算机专业计算机专业, 刘晨刘晨), (刘逸,计算机专业刘逸,计算机专业,王敏王敏),(刘逸,信息专业,李勇刘逸,信息专业,李勇), (刘逸,信息专业,刘晨刘逸,信息专业,刘
8、晨),(刘逸,信息专业,王敏刘逸,信息专业,王敏) 102021-7-12 n2) 元组元组(Tuple) 笛卡尔积中每一个元素笛卡尔积中每一个元素(d1,d2,dn)叫做一个叫做一个n元组元组(n- tuple)或简称元组或简称元组 例例(张清玫,计算机专业,李勇张清玫,计算机专业,李勇)、 (张清玫,计算机张清玫,计算机 专业,刘晨专业,刘晨)是元组是元组 n3)分量分量(Component) 笛卡尔积元素笛卡尔积元素(d1,d2,dn)中的每一个值中的每一个值di叫做一个分叫做一个分 量量 例张清玫,计算机专业,李勇,刘晨是分量例张清玫,计算机专业,李勇,刘晨是分量 112021-7-1
9、2 n1)关系)关系 定义定义3.2 D 1 D 2 D n 的任一个子集称为的任一个子集称为 D1,D2,Dn上的一个关系。上的一个关系。N叫做关系的目或度叫做关系的目或度 (degree) n2)元组和属性元组和属性 关系中的每一行对应一个元组关系中的每一行对应一个元组, 通常用通常用t表示表示 每一列对应一个域。关系中的列称为属性,每一列每一列对应一个域。关系中的列称为属性,每一列 用属性名表示用属性名表示 。tAi表示元组表示元组t在属性在属性Ai上的值上的值 n3)一元关系与二元关系)一元关系与二元关系 当当n=1时,称该关系为一元关系(时,称该关系为一元关系(Unary relat
10、ion) 当当n=2时,称该关系为二元关系(时,称该关系为二元关系(Binary relation) 122021-7-12 n例如在上例的笛卡尔积中取出例如在上例的笛卡尔积中取出有实际意义的元组有实际意义的元组来构来构 造关系造关系 SAP ( SUPERVISOR, SPECIALITY, POSTGRADUATE) n假设假设 导师与专业:导师与专业:1:1(即一个导师只能对一个专业)(即一个导师只能对一个专业) 导师与研究生:导师与研究生:1:n(一个研究生只能遵从一个导师一个研究生只能遵从一个导师) n于是:于是:SAP关系可以包含三个元组关系可以包含三个元组 132021-7-12
11、 n严格地说,严格地说,关系关系是一种规范化了的是一种规范化了的二维表中行的集合二维表中行的集合, 按照定义按照定义,关系可以是一个无限集合关系可以是一个无限集合 由于笛卡尔积不满足交换律,所以由于笛卡尔积不满足交换律,所以 (d1,di,dj,dn)(d1,dj,di,dn),), n当关系作为关系代数数据模型的数据结构时,需要作当关系作为关系代数数据模型的数据结构时,需要作 出补充和限定。出补充和限定。 无限关系在数据库中是无意义的,因此限定关系代无限关系在数据库中是无意义的,因此限定关系代 数数据模型中的关系必须是有限集合。数数据模型中的关系必须是有限集合。 通过为关系的每列增加一个属性
12、名的方法取消元组通过为关系的每列增加一个属性名的方法取消元组 的有序性,即的有序性,即 (d1,di,dj,dn)=(d1,dj,di,dn), (i,j=1,2,n)。 142021-7-12 列是同质的(列是同质的(Homogeneous) 每一列中的分量是同一类型的数据,来自同一个域每一列中的分量是同一类型的数据,来自同一个域 不同的列可出自同一个域不同的列可出自同一个域 其中的每一列称为一个属性,不同的属性要给予不其中的每一列称为一个属性,不同的属性要给予不 同的属性名同的属性名 列的顺序无所谓列的顺序无所谓 列的次序可以任意交换列的次序可以任意交换 遵循这一性质的数据库产品遵循这一性
13、质的数据库产品(如如ORACLE),增加新,增加新 属性时,永远是插至最后一列属性时,永远是插至最后一列 但也有许多关系数据库产品没有遵循这一性质,例但也有许多关系数据库产品没有遵循这一性质,例 如如FoxPro仍然区分了属性顺序仍然区分了属性顺序 152021-7-12 各个元组是不同的,即关系中不允许出现重复元组各个元组是不同的,即关系中不允许出现重复元组 有些数据库允许关系表中存在两个完全相同的元组有些数据库允许关系表中存在两个完全相同的元组 行的顺序无所谓,即行的次序可以任意交换行的顺序无所谓,即行的次序可以任意交换 遵循这一性质的数据库产品遵循这一性质的数据库产品(如如ORACLE)
14、,插入一,插入一 个元组时永远插至最后一行个元组时永远插至最后一行 但也有许多关系数据库产品没有遵循这一性质,例但也有许多关系数据库产品没有遵循这一性质,例 如如FoxPro仍然区分了元组的顺序仍然区分了元组的顺序 分量必须取原子值分量必须取原子值 每一个分量都必须是不可分的数据项。每一个分量都必须是不可分的数据项。 这是规范条件中最基本的一条这是规范条件中最基本的一条 162021-7-12 n关系的型称为关系模式关系的型称为关系模式 (Relation Schema) 关系模式是对关系的描述,该描述包括关系名、属关系模式是对关系的描述,该描述包括关系名、属 性名、属性的类型和长度,以及属性
15、间固有的数据性名、属性的类型和长度,以及属性间固有的数据 关联关系关联关系 关系模式一般简记为关系名和属性名的集合关系模式一般简记为关系名和属性名的集合 R(A1, A2,An),或仅用关系名,或仅用关系名R表示。表示。 如图书关系模式可描述为:如图书关系模式可描述为: 图书图书(书号书号,书名书名,作者作者,单价单价,出版社出版社) n关系的值是元组的集合,称为关系关系的值是元组的集合,称为关系 关系是对现实世界中事物在某一时刻状态的反映,关系是对现实世界中事物在某一时刻状态的反映, 关系的值是随时间在不断变化的关系的值是随时间在不断变化的 n关系模式和关系统称为关系,通过上下文加以区别关系
16、模式和关系统称为关系,通过上下文加以区别 172021-7-12 n关系数据库关系数据库 关系模式的集合称为关系数据库模式,是对数据库中关系模式的集合称为关系数据库模式,是对数据库中 所有数据逻辑结构的描述,表示为所有数据逻辑结构的描述,表示为 R=R1,R2,Rp。 关系数据库模式中的每个关系模式上的关系的集合称关系数据库模式中的每个关系模式上的关系的集合称 为关系数据库为关系数据库 182021-7-12 n为了区分不同元组,用其中一个或多个属性值标识,为了区分不同元组,用其中一个或多个属性值标识, 能够惟一标识元组的属性或属性组称为关系的键能够惟一标识元组的属性或属性组称为关系的键 n关
17、系中能够起标识作用的键称为候选键关系中能够起标识作用的键称为候选键 在一个关系中,如果有多个候选键,选其中的一个在一个关系中,如果有多个候选键,选其中的一个 键作为主键键作为主键(primary key) 若关系的键由多个属性组成,称为联合键若关系的键由多个属性组成,称为联合键 关系的所有属性构成该关系的键,称为全键关系的所有属性构成该关系的键,称为全键 192021-7-12 n关系模型的完整性规则是对关系的某种约束条件关系模型的完整性规则是对关系的某种约束条件 n为了维护数据库中数据与现实世界的一致性,对关系为了维护数据库中数据与现实世界的一致性,对关系 数据库的插入、删除和修改操作必须有
18、一定的约束条数据库的插入、删除和修改操作必须有一定的约束条 件,这就是关系模型的三类完整性:件,这就是关系模型的三类完整性: 实体完整性实体完整性 通常由关系系统自动支持通常由关系系统自动支持 参照完整性参照完整性 通常由关系系统自动支持通常由关系系统自动支持 用户定义的完整性用户定义的完整性 反映应用领域需要遵循的约束条件,体现了具体反映应用领域需要遵循的约束条件,体现了具体 领域中的语义约束领域中的语义约束 用户定义后由系统支持用户定义后由系统支持 关系的两个关系的两个不变性不变性,应该,应该 由关系系统自动支持由关系系统自动支持 202021-7-12 n1. 实体完整性约束(实体完整性
19、约束(Entity Integrity Constraint ) 实体完整性是指主键的值不能为空或部分为空实体完整性是指主键的值不能为空或部分为空 实体完整性规则实体完整性规则 若属性若属性(指一个或一组属性指一个或一组属性)A是基本关系是基本关系R的主的主 属性,则属性属性,则属性A不能取不能取空值空值 如果一个元组的键为空值,或部分为空,该元组将如果一个元组的键为空值,或部分为空,该元组将 不可标识,不能表示任何实体,因而无意义不可标识,不能表示任何实体,因而无意义 212021-7-12 n关系模型必须遵守实体完整性规则的原因关系模型必须遵守实体完整性规则的原因 (1) 实体完整性规则是
20、针对基本关系而言的实体完整性规则是针对基本关系而言的 一个基本表通常对应现实世界的一个实体集或多一个基本表通常对应现实世界的一个实体集或多 对多联系对多联系 (2) 现实世界中的实体和实体是可区分的,即它们具现实世界中的实体和实体是可区分的,即它们具 有某种唯一性标识。有某种唯一性标识。 (3) 相应地,关系模型中以主键作为唯一性标识。相应地,关系模型中以主键作为唯一性标识。 (4) 主键中的属性即主属性不能取空值。主键中的属性即主属性不能取空值。 主属性取空值,说明存在某个不可标识的实体,主属性取空值,说明存在某个不可标识的实体, 即存在不可区分的实体,这与即存在不可区分的实体,这与 (2)
21、 相矛盾相矛盾 n因此这个规则称为实体完整性。因此这个规则称为实体完整性。 222021-7-12 姓名姓名学号学号D.O.BD.O.B班号班号 PeterPeter200010120001015-10-5-10- 19861986 计算机计算机 200001200001 主键主键 班号班号班名班名人数人数 计算机计算机 200001200001 计计1 1班班5050 外键外键 学生表学生表班级表班级表 主键主键/候选键候选键 外键外键(Foreign Key,FK): (Foreign Key,FK): A A表中的某个属性(组)是表中的某个属性(组)是B B表中表中 的候选键或主键,则称
22、该属性(组)为的候选键或主键,则称该属性(组)为A A表的外键。要使表的外键。要使B B 表中的某个属性成为表中的某个属性成为A A表的外键,必须确定该属性为表的外键,必须确定该属性为B B表的表的 主键或候选键。如何指定?完整性约束的任务。主键或候选键。如何指定?完整性约束的任务。 n参照完整性约束是对关系中作为外键的值的约束,参照完整性约束是对关系中作为外键的值的约束, 232021-7-12 n参照完整性约束(参照完整性约束(Reference Integrity Constraint )是)是 对关系中作为外键的值的约束,规定:对关系中作为外键的值的约束,规定: 如果关系如果关系R1中
23、属性中属性A是另一个关系是另一个关系R2中的主键中的主键,则对则对 于关系于关系R1中的任一个元组在属性中的任一个元组在属性A上的值或者为空上的值或者为空 值,或者为另一个关系值,或者为另一个关系R2中某个元组的主键的值中某个元组的主键的值 n设设F是基本关系是基本关系R的一个或一组属性,但不是关系的一个或一组属性,但不是关系R的的 键键(码码)。如果。如果F与基本关系与基本关系S的主键的主键Ks相对应,则称相对应,则称F是是 基本关系基本关系R的的外码外码(外键外键) 基本关系基本关系R称称为为参照关系参照关系(Referencing Relation),基本关系,基本关系S 称称为为被参照
24、关系被参照关系(Referenced Relation)或或目标关系目标关系 n说明:关系说明:关系R和和S不一定是不同的关系不一定是不同的关系 S的主键的主键Ks 和和R的外键的外键F必须定义在同一个或组域上必须定义在同一个或组域上 外键并不一定要与相应的主键同名。外键并不一定要与相应的主键同名。 242021-7-12 n用关系来描述实体及实体间的联系,因此关系模型中用关系来描述实体及实体间的联系,因此关系模型中 存在着关系与关系间的引用存在着关系与关系间的引用 n学生关系中每个元组的学生关系中每个元组的“专业号专业号” 只取下面两类值只取下面两类值: (1)空值空值,表示尚未给该学生分配
25、专业,表示尚未给该学生分配专业 (2)非空值,该值必须非空值,该值必须是专业关系中某个元组的是专业关系中某个元组的“专业专业 号号”值值,表示该学生不可能分配到不存在的专业中,表示该学生不可能分配到不存在的专业中 即学生关系中的某个属性的取值需要参照专业关系中即学生关系中的某个属性的取值需要参照专业关系中 的属性取值的属性取值 252021-7-12 n选修(选修(学号学号,课程号课程号,成绩),成绩) “学号学号”和和“课程号课程号”是选修是选修 关系中的主属性关系中的主属性 按照实体完整性和参照完整性按照实体完整性和参照完整性 规则,它们只能取相应被参照规则,它们只能取相应被参照 关系中已
26、经存在的主键值关系中已经存在的主键值 262021-7-12 例例 学生实体及其内部的领导联系学生实体及其内部的领导联系(一对多一对多) 学生(学生(学号学号,姓名,性别,专业号,年龄,姓名,性别,专业号,年龄,班长班长) “班长班长”属性值可以取两类值:属性值可以取两类值: (1)空值,表示该学生所在班级尚未选出班长,或该学)空值,表示该学生所在班级尚未选出班长,或该学 生本人即是班长;生本人即是班长; (2)非空值)非空值,这时该值必须是本关系中某个元组的学号值这时该值必须是本关系中某个元组的学号值 272021-7-12 n不同的关系数据库系统由于应用环境的不同,往往还不同的关系数据库系
27、统由于应用环境的不同,往往还 需要一些特殊的约束条件,这就是需要一些特殊的约束条件,这就是用户定义完整性用户定义完整性( User-defined Integrity) 。 n用户定义的完整性是针对某一具体关系数据库的约束用户定义的完整性是针对某一具体关系数据库的约束 条件,反映某一具体应用所涉及的数据必须满足的语条件,反映某一具体应用所涉及的数据必须满足的语 义要求。义要求。 例如,属性值根据实际需要,要具备一些约束条件例如,属性值根据实际需要,要具备一些约束条件: 如选课关系中成绩不能为负数;如选课关系中成绩不能为负数; 某些数据的输入格式要有一些限制等某些数据的输入格式要有一些限制等 关
28、系模型应该提供定义和检验这类完整性的机制,关系模型应该提供定义和检验这类完整性的机制, 以便用统一的、系统的方法处理它们,而不要由应以便用统一的、系统的方法处理它们,而不要由应 用程序承担这一功能。用程序承担这一功能。 282021-7-12 n3.1 关系模型的基本概念关系模型的基本概念 n3.2 关系代数关系代数 n3.3 元组关系演算元组关系演算 n3.4 域关系演算域关系演算 n3.5 小结小结 292021-7-12 n3.2.0 关系代数关系代数概述概述 n3.2.1 传统的集合运算传统的集合运算 并、差、交、广义笛卡尔积并、差、交、广义笛卡尔积 n3.2.2 专门的关系运算专门的
29、关系运算 选择、投影、连接、选择、投影、连接、 除法除法 n3.2.3 扩充的关系运算扩充的关系运算 属性重命名、外连接属性重命名、外连接 n3.2.4 举例举例 n3.2.5 ISBL 语言(略)语言(略) 302021-7-12 n1. 关系代数关系代数 一种抽象的查询语言,用对关系的运算来表达查询一种抽象的查询语言,用对关系的运算来表达查询 n2关系代数运算的三个要素关系代数运算的三个要素 运算对象:关系运算对象:关系 运算结果:关系运算结果:关系 运算符运算符 312021-7-12 3按运算符的不同,关系代数运算的分类:按运算符的不同,关系代数运算的分类: 传统的集合运算传统的集合运
30、算 并、差、交、广义笛卡尔积并、差、交、广义笛卡尔积 把关系看成元组的集合,以元组作为集合中元素把关系看成元组的集合,以元组作为集合中元素 来进行运算,其运算是从关系的来进行运算,其运算是从关系的“水平水平”方向即方向即 行的角度进行的行的角度进行的 专门的关系运算专门的关系运算 选择、投影、连接、除选择、投影、连接、除 不仅涉及行运算,也涉及列运算,这种运算是为不仅涉及行运算,也涉及列运算,这种运算是为 数据库的应用而引进的特殊运算。数据库的应用而引进的特殊运算。 322021-7-12 n3.2.0 关系代数关系代数概述概述 n3.2.1 传统的集合运算传统的集合运算 并、差、交、广义笛卡
31、尔积并、差、交、广义笛卡尔积 n3.2.2 专门的关系运算专门的关系运算 选择、投影、连接、选择、投影、连接、 除法除法 n3.2.3 扩充的关系运算扩充的关系运算 属性重命名、外连接属性重命名、外连接 n3.2.4 举例举例 n3.2.5 ISBL 语言(略)语言(略) 332021-7-12 nR和和S 具有相同的目具有相同的目n(即两个关系都有(即两个关系都有n个属性)个属性) 相应的属性取自同一个域相应的属性取自同一个域 nRS 仍为仍为n目关系,由属于目关系,由属于R或属于或属于S的元组组成的元组组成 RS = t | t Rt S ABC a1b1c1 a1b2c2 a2b2c1
32、ABC a1b1c1 a1b2c2 a1b3c2 a2b2c1 ABC a1b2c2 a1b3c2 a2b2c1 R S RS 342021-7-12 nR和和S 具有相同的目具有相同的目n 相应的属性取自同一个域相应的属性取自同一个域 nRS 仍为仍为n目关系,由属于目关系,由属于R而不属于而不属于S的所有元组组成的所有元组组成 R -S = t | t Rt S ABC a1b1c1 a1b2c2 a2b2c1 R ABC a1b2c2 a1b3c2 a2b2c1 S ABC a1b1c1 R-S 352021-7-12 nR和和S 具有相同的目具有相同的目n 相应的属性取自同一个域相应的
33、属性取自同一个域 nRS 仍为仍为n目关系,由既属于目关系,由既属于R又属于又属于S的元组组成的元组组成 RS = t | t Rt S RS = R (R-S) ABC a1b1c1 a1b2c2 a2b2c1 R ABC a1b2c2 a1b3c2 a2b2c1 S ABC a1b2c2 a2b2c1 R S 362021-7-12 n关系关系R 和和S的笛卡尔积为的笛卡尔积为R中所有元组和中所有元组和S中所有元组中所有元组 的拼接的拼接 nR:n目关系,目关系,k1个元组个元组 nS:m目关系,目关系,k2个元组个元组 nRS 列:(列:(n+m)列的元组的集合)列的元组的集合 元组的前
34、元组的前n列是关系列是关系R的一个元组的一个元组 后后m列是关系列是关系S的一个元组的一个元组 行:行:k1k2个元组个元组 RS = tr ts |tr R ts S 372021-7-12 ABC a1b1c1 a1b2c2 a2b2c1 ABC a1b1 c1 a1b1 c1 a1b1 c1 a1b2 c2 a1b2 c2 a1b2 c2 a2b2 c1 a2b2 c1 a2b2 c1 ABC a1b2c2 a1b3c2 a2b2c1 R S R S ABC a1b2c2 a1b3c2 a2b2c1 a1b2c2 a1b3c2 a2b2c1 a1b2c2 a1b3c2 a2b2c1 38
35、2021-7-12 n3.2.0 关系代数关系代数概述概述 n3.2.1 传统的集合运算传统的集合运算 并、差、交、广义笛卡尔积并、差、交、广义笛卡尔积 n3.2.2 专门的关系运算专门的关系运算 选择、投影、连接、选择、投影、连接、 除法除法 n3.2.3 扩充的关系运算扩充的关系运算 属性重命名、外连接属性重命名、外连接 n3.2.4 举例举例 n3.2.5 ISBL 语言(略)语言(略) 392021-7-12 n为了叙述上的方便,首先引入几个记号为了叙述上的方便,首先引入几个记号 n(1) R,t R,tAi 设关系模式为设关系模式为R(A1,A2,An), 它的一个关系设为它的一个关
36、系设为R。 t R表示表示t是是R的一个元组;的一个元组; tAi则表示元组则表示元组t 中相应于属性中相应于属性Ai的一个分量的一个分量 n(2)若)若A=Ai1,Ai2,Aik,其中,其中Ai1,Ai2,Aik 是是A1,A2,An中的一部分,则中的一部分,则A称为属性列或域列称为属性列或域列 tA=(tAi1,tAi2,tAik)表示元组表示元组t在属性列在属性列A 上诸分量的集合。上诸分量的集合。 A则表示则表示A1,A2,An中去掉中去掉Ai1,Ai2,Aik后后 剩余的属性组。剩余的属性组。 402021-7-12 n(3) tr ts R为为n目关系,目关系,S为为m目关系。目关
37、系。tr R,ts S, tr ts称为称为 元组的连接。它是一个元组的连接。它是一个n + m列的元组,前列的元组,前n个分量个分量 为为R中的一个中的一个n元组,后元组,后m个分量为个分量为S中的一个中的一个m元组元组 412021-7-12 n选择运算是关系上的一元运算,是从关系中选择满足选择运算是关系上的一元运算,是从关系中选择满足 一定条件的元组子集一定条件的元组子集 F(R)t tR t(F) F是限定条件的布尔表达式,由逻辑算符是限定条件的布尔表达式,由逻辑算符( 、 、 ) 连接比较表达式组成连接比较表达式组成 上式表示在关系上式表示在关系R中选择使中选择使t(F)为真的所有元
38、组为真的所有元组 选择运算是从行的角度进行的运算选择运算是从行的角度进行的运算 422021-7-12 例例 查询信息系(查询信息系(IS系)全体学生系)全体学生 Sdept = IS (Student) SnoSnameSsexSageSdept 95002刘晨刘晨女女19IS 95004张立张立男男19IS 学号学号 SNO 姓名姓名 Sname 性别性别 Ssex 年龄年龄 Sage 所在系所在系 Sdep 95001李勇李勇男男20CS 95002刘晨刘晨女女19IS 95003王敏王敏女女18MA 95004张立张立男男19IS 结果:结果: 432021-7-12 例例 查询年龄小
39、于查询年龄小于20岁的学生岁的学生 Sage 20(Student) SnoSnameSsexSageSdept 95002刘晨刘晨女女19IS 95003王敏王敏女女18MA 95004张立张立男男19IS 学号学号 SNO 姓名姓名 Sname 性别性别 Ssex 年龄年龄 Sage 所在系所在系 Sdep 95001 李勇李勇男男20CS 95002 刘晨刘晨女女19IS 95003 王敏王敏女女18MA 95004 张立张立男男19IS 结果:结果: 442021-7-12 n在模式在模式R上的投影运算表示为上的投影运算表示为 x(R)=tX | tR 其中,其中,是投影算符,是投影算
40、符,X是模式是模式R属性的子集,属性的子集,tX 表示表示R中元组在属性集中元组在属性集X上的值,或为元组上的值,或为元组t在在X上的上的 投影投影 从从R中选择出若干属性列组成新的关系中选择出若干属性列组成新的关系 n投影操作主要是从列的角度进行运算投影操作主要是从列的角度进行运算 但投影之后不仅取消了原关系中的某些列,而且还但投影之后不仅取消了原关系中的某些列,而且还 可能取消某些元组(避免重复行)可能取消某些元组(避免重复行) 452021-7-12 例例 查询学生的姓名和所在系,即求查询学生的姓名和所在系,即求Student关系上学生关系上学生 姓名和所在系两个属性上的投影姓名和所在系
41、两个属性上的投影 Sname, ,Sdept(Student) 结果: 结果: SnameSdept 李勇李勇CS 刘晨刘晨IS 王敏王敏MA 张立张立IS 学号学号 SNO 姓名姓名 Sname 性别性别 Ssex 年龄年龄 Sage 所在系所在系 Sdep 95001 李勇李勇男男20CS 95002 刘晨刘晨女女19IS 95003 王敏王敏女女18MA 95004 张立张立男男19IS 462021-7-12 n连接运算是把二个关系中的元组按条件连接起来,形成连接运算是把二个关系中的元组按条件连接起来,形成 一个新关系一个新关系 条件连接条件连接 自然连接自然连接 n条件连接条件连接也
42、称也称 连接,是将二个关系中满足连接,是将二个关系中满足 条件的元组条件的元组 拼接起来形成新元组的集合。拼接起来形成新元组的集合。 设属性设属性A和和B分别是关系分别是关系R和和S上的属性,且定义在同上的属性,且定义在同 一个域上,一个域上,R和和S的连接记为:的连接记为: 其中,其中,是连接符,是连接符,A B为连接条件。为连接条件。 是比较符是比较符 472021-7-12 n举例举例 例例 BE b13 b27 b310 b32 b52 RS R S CE ABC a1b15 a1b26 a2b38 a2b412 AR.BCS.BE a1b15b27 a1b15b310 a1b26b2
43、7 a1b26b310 a2b38b310 482021-7-12 n条件连接条件连接 从从R和和S的笛卡尔积的笛卡尔积RS中选取中选取R关系在关系在A属性组上属性组上 的值与的值与S关系在关系在B属性组上值满足比较条件的元组属性组上值满足比较条件的元组 n最常用的连接是二个属性值的相等比较最常用的连接是二个属性值的相等比较 为为“”的连接运算称为的连接运算称为等值连接等值连接 492021-7-12 ABC a1b15 a1b26 a2b38 a2b412 BE b13 b27 b310 b32 b52 AR.BCS.BE a1b15b13 a1b26b27 a2b38b310 a2b38b
44、32 等值连接等值连接 R S R.B=S.B 502021-7-12 n自然连接(自然连接(Natural join) 自然连接是一种特殊的等值连接;它要求两个关系自然连接是一种特殊的等值连接;它要求两个关系 中进行比较的分量必须是中进行比较的分量必须是相同的属性组相同的属性组,并且在结,并且在结 果中果中把重复的属性列去掉把重复的属性列去掉 512021-7-12 ABC a1b15 a1b26 a2b38 a2b412 BE b13 b27 b310 b32 b52 AR.BCS.BE a1b15b13 a1b26b27 a2b38b310 a2b38b32 等值连接等值连接 R S R
45、.B=S.B 自然连接自然连接 R S ABCE a1b153 a1b267 a2b3810 a2b382 522021-7-12 ABC a1b15 a1b26 a2b38 a2b412 自然连接自然连接 R S ABCE a1b153 a2b3810 a2b382 BCE b153 b257 b3810 b382 b3102 532021-7-12 n一般的连接操作是从行的角度进行运算。一般的连接操作是从行的角度进行运算。 n自然连接还需要取消重复列,所以是同时从行和列的自然连接还需要取消重复列,所以是同时从行和列的 角度进行运算。角度进行运算。 AB R S 542021-7-12 n除
46、法运算是一个二元运算,用除法运算是一个二元运算,用 表示表示 若若R S,要求,要求R和和S有定义在同一域上的属性或属性组有定义在同一域上的属性或属性组 R S的结果生成一个新关系的结果生成一个新关系R,R的属性是的属性是R的属性中的属性中 去掉与去掉与S具有公共域属性的其它属性具有公共域属性的其它属性 n设设R(X,Y),S(Y),R(X)。则。则R S记为:记为: R S=R=t | t RtrRtsStrR = tt S R 552021-7-12 n结果集是结果集是R的属性中的属性中去掉与去掉与S具有公共域属性具有公共域属性的其它属性的其它属性 n举例说明除法运算的含义举例说明除法运算
47、的含义 SnoCno 200701C1 200701C2 200701C3 200702C1 200702C2 200703C2 200703C3 SC C1 Cno C 200702 200701 Sno SCC C C3 C2 Cno 200703 200701 Sno SCC 选修了选修了C1课课 的所有学的所有学 生生 同时选修了同时选修了C2和和C3 课的所有学生课的所有学生 562021-7-12 n除操作是同时从行和列角度进行运算除操作是同时从行和列角度进行运算 R S 除运算可用下式表示:除运算可用下式表示: RS = X (R ) X ( X (R) S R) 上式中,上式中
48、,X为为R中除去与中除去与S属性相同的其余属性属性相同的其余属性 572021-7-12 R S n例例 设关系设关系R,S分别如下,求分别如下,求RS ABC a1b1c2 a2b3c7 a3b4c6 a1b2c3 a4b6c6 a2b2c3 a1b2c1 BCD b1c2d1 b2c1d1 b2c3d2 RS A a1 582021-7-12 n象集象集Zx :给定一个关系:给定一个关系R(X,Z),),X和和Z为属性组为属性组.当当 tX=x时,时,x在在R中的中的象集象集(Images Set)为:)为: Zx=tZ|t R,tX=x 它表示它表示R中属性组中属性组X上值为上值为x的诸
49、元组在的诸元组在Z上分量的集合上分量的集合 n例:在关系例:在关系R中中 A可以取四个值可以取四个值a1,a2,a3,a4 a1的象集为的象集为 (b1,c2),(b2,c3),(b2,c1) a2的象集为的象集为 (b3,c7),(b2,c3) a3的象集为的象集为 (b4,c6) a4的象集为的象集为 (b6,c6) ABC a1b1c2 a2b3c7 a3b4c6 a1b2c3 a4b6c6 a2b2c3 a1b2c1 592021-7-12 n给定关系给定关系R (X,Y) 和和S (Y,Z),其中,其中X,Y,Z为属性为属性 组。组。R中的中的Y与与S中的中的Y可以有不同的属性名,但
50、必须出可以有不同的属性名,但必须出 自相同的域集。自相同的域集。R与与S的除运算得到一个新的关系的除运算得到一个新的关系P(X), P是是R中满足下列条件的元组中满足下列条件的元组在在X属性列上的投影:属性列上的投影: 元组在元组在X上分量值上分量值x的象集的象集Yx包含包含S在在Y上投影的集合上投影的集合 RS = tr X | tr R Y (S) Yx Yx:x在在R中的象集,中的象集,x = trX Yx :x在在R中的象集中的象集 在在X属性列属性列 上的投影上的投影 Y (S) Y (S) Yx 602021-7-12 ABC a1b1c2 a2b3c7 a3b4c6 a1b2c3
51、 a4b6c6 a2b2c3 a1b2c1 BCD b1c2d1 b2c1d1 b2c3d2 RS n例例 设关系设关系R,S分别如下,求分别如下,求RS 612021-7-12 n分析:在关系分析:在关系R中,中,A可以取四个值可以取四个值a1,a2,a3,a4 a1的象集为的象集为 (b1,c2),(b2,c3),(b2,c1) a2的象集为的象集为 (b3,c7),(b2,c3) a3的象集为的象集为 (b4,c6) a4的象集为的象集为 (b6,c6) S在在(B,C)上的投影为上的投影为 (b1,c2),(b2,c1),(b2,c3) 只有只有a1的象集包含了的象集包含了S在在(B,
52、C)属性组上的投影属性组上的投影 所以所以 RS =a1 ABC a1b1c2 a2b3c7 a3b4c6 a1b2c3 a4b6c6 a2b2c3 a1b2c1 BCD b1c2d1 b2c1d1 b2c3d2 RS A a1 Yx :x在在R中的象集中的象集 在在X属性列属性列 上的投影上的投影 Y (S) Y (S) Yx R S (X) (Y) (Y) 622021-7-12 n以学生以学生-课程数据库为例课程数据库为例, 查询至少选修查询至少选修1号课程和号课程和3号号 课程的学生号码课程的学生号码 首先建立一个临时关系首先建立一个临时关系K: 然后求然后求 Sno, Cno(SC)
53、K n求解过程求解过程: Sno,Cno(SC) 95001象集象集1,2,3 95002象集象集2,3 Cno(K)=1,3 于是:于是: Sno,Cno(SC)K=95001 Cno 1 3 学号学号 Sno 课程号课程号 Cno 成绩成绩 Grade 95001192 95001285 95001388 95002290 95002380 632021-7-12 n1.属性重命名属性重命名 设设r是模式是模式R上的一个关系,上的一个关系,A是是R中的一个属性中的一个属性 B为属性名,为属性名,B不是不是R中的属性,中的属性,B和和A具有相同的域具有相同的域 设设R=(R-A)B,则属性,
54、则属性A被重命名为被重命名为B后,得到的后,得到的 关系关系r记为:记为: r(R) A B(r) 重命名后的关系重命名后的关系r 可表示如下:可表示如下: r(R)t|t rtrtR-A=tR-At B= tA 【例例3-7】把学生关系中的学号和姓名把学生关系中的学号和姓名Sno和和Sname重重 命名为命名为Sno和和Sname。 Sno, Sname Sno, Sname (Student) 642021-7-12 n1.属性重命名(续)属性重命名(续) 重命名运算可以同时对一组属性操作重命名运算可以同时对一组属性操作 通过属性重命名运算,可以通过属性重命名运算,可以 在同一个关系上做自
55、然连接运算在同一个关系上做自然连接运算 做同一个关系的笛卡尔积做同一个关系的笛卡尔积 将两个关系的等值连接方便地表示为自然连接将两个关系的等值连接方便地表示为自然连接 652021-7-12 n2.外连接外连接 连接运算是把二个关系中的元组按条件连接起来,连接运算是把二个关系中的元组按条件连接起来, 结果为满足条件的元组集合,这样的连接称为内连结果为满足条件的元组集合,这样的连接称为内连 接(接(inter join),还有一种连接称为外连接。),还有一种连接称为外连接。 外连接(外连接(outer join)是对自然连接运算的扩展。外)是对自然连接运算的扩展。外 连接结果中除了满足连接条件的
56、元组外还包含没有连接结果中除了满足连接条件的元组外还包含没有 被连接的元组。被连接的元组。 左外连接左外连接 左外连接的连接结果中包含了关系左外连接的连接结果中包含了关系R (左边关系左边关系)中中 不满足连接条件的元组不满足连接条件的元组,在这些元组对应关系,在这些元组对应关系S属属 性上的值为空值,记为:性上的值为空值,记为:R LS 662021-7-12 n2.外连接(续)外连接(续) 右外连接右外连接 右外连接的连接结果中包含了关系右外连接的连接结果中包含了关系S (右边关系右边关系) 中不满足连接条件的元组中不满足连接条件的元组,在这些元组对应关系,在这些元组对应关系R 属性上的值
57、为空值,记为:属性上的值为空值,记为:R RS 完全外连接完全外连接 完全外连接的连接结果中包含了关系完全外连接的连接结果中包含了关系R中不满足中不满足 连接条件的元组,同时也包含了关系连接条件的元组,同时也包含了关系S中不满足连中不满足连 接条件的元组接条件的元组。即连接结果是左外连接和右外连。即连接结果是左外连接和右外连 接结果的并,记为:接结果的并,记为:R FS。 。 672021-7-12 SELECT buyer_name, sales.buyer_id, qty FROM buyers LEFT OUTER JOIN sales ON buyers.buyer_id = sale
58、s.buyer_id sales 1 1 4 3 2 3 1 5 15 5 37 11 421003 buyers Adam Barr Sean Chai Eva Corets Erin OMelia 1 2 3 4 Result Adam Barr Adam Barr Erin OMelia Eva Corets 1 1 4 3 15 5 37 11 Erin OMelia41003 Sean Chai2NULL 682021-7-12 n【例【例3-9】 检索计算机系学生的学号和姓名。检索计算机系学生的学号和姓名。 SnoSnameSageSsexSdept 200701刘明亮刘明亮18男
59、男计算机计算机 200702李和平李和平17男男外语外语 200073王王 茵茵21女女计算机计算机 200704张小芳张小芳20女女数学数学 Sno, ,Sname( Sdept=计算机计算机(Student) 692021-7-12 例例 查询选修了查询选修了2号课程的学生的学号。号课程的学生的学号。 学号学号Sno课程号课程号Cno成绩成绩Grade 2007001192 2007001285 2007001388 2007002290 2007002380 Sno(Cno=2(SC) ) 2007001,2007002 702021-7-12 n【例【例3-10】检索选修了】检索选修了
60、C1课的学生姓名。课的学生姓名。 SnoCnoGrade 200701C185 200701C270 200701C378 200702C181 200702C284 200703C275 200703C390 SnoSnameSageSsexSdept 200701刘明亮刘明亮18男男计算机计算机 200702李和平李和平17男男外语外语 200073王王 茵茵21女女计算机计算机 200704张小芳张小芳20女女数学数学 sname( Cno=C1 (SC) Student) sname( Cno=C1 ( sc.sno= student.sno (SCStudent) 712021-7-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年道路建设中的地质灾变防治
- 2025年高职历史学(历史教学案例分析)试题及答案
- 2025年大学资源循环科学与工程(资源循环技巧)试题及答案
- 2025年大学农业机械使用与维护(智能农机应用)试题及答案
- 2025年大学机械设计制造及其自动化(机械设计)试题及答案
- 2025年大学化工工艺(化工原理)试题及答案
- 2026年物流运输(运输安全管理)试题及答案
- 2025年高职旅游管理(旅游产品开发)试题及答案
- 2026年鞋帽生产(质量检验)试题及答案
- 2025年高职物业管理(物业环境管理)试题及答案
- 2026年重庆市江津区社区专职人员招聘(642人)笔试备考试题及答案解析
- 2026年思明区公开招聘社区工作者考试备考题库及完整答案详解1套
- 认识时间(课件)二年级下册数学人教版
- 2026届陕晋青宁四省高三语文二次联考(天一大联考)作文题目解析及范文:“避”的抉择价值判断与人生担当
- 【四年级】【数学】【秋季上】期末家长会:数海引航爱伴成长【课件】
- 小学音乐教师年度述职报告范本
- 2025年新版八年级上册历史期末考试模拟试卷试卷 3套(含答案)
- 2026福建厦门市校园招聘中小学幼儿园中职学校教师346人笔试参考题库及答案解析
- 车位使用权抵债协议书
- 2025年合肥经开投资促进有限公司公开招聘11人笔试参考题库及答案解析
- 储能电站电力销售协议2025
评论
0/150
提交评论