第2章 关系数据库基础_第1页
第2章 关系数据库基础_第2页
第2章 关系数据库基础_第3页
第2章 关系数据库基础_第4页
第2章 关系数据库基础_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

1、 学习目标学习目标n 掌握关系数据库的一些基本概念;掌握关系数据库的一些基本概念;n 掌握常用的关系代数运算符及其形式化表示;掌握常用的关系代数运算符及其形式化表示;n 能够利用用关系代数表达式表达一般的查询请求;能够利用用关系代数表达式表达一般的查询请求;n 了解关系代数表达式的效率及查询优化的一般方法。了解关系代数表达式的效率及查询优化的一般方法。第第2章章 关系数据库基础关系数据库基础 2.1 关系数据库的基本概念关系数据库的基本概念2.2 关系代数关系代数2.3 高效的关系代数表达式与查询优化高效的关系代数表达式与查询优化第第2章章 关系数据库基础关系数据库基础 2.1 关系数据库的基

2、本概念关系数据库的基本概念2.2 关系代数关系代数2.3 高效的关系代数表达式与查询优化高效的关系代数表达式与查询优化2.1 关系数据库的基本概念关系数据库的基本概念n 关系数据库采用关系模型作为数据的组织方式,关关系数据库采用关系模型作为数据的组织方式,关系简单来看,就是一张表格。系简单来看,就是一张表格。n 关系数据库的理论基础为:集合论关系数据库的理论基础为:集合论 。n 关系模型的三要素:关系数据结构、关系操作集合关系模型的三要素:关系数据结构、关系操作集合和关系完整性约束三部分组成和关系完整性约束三部分组成 2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形

3、式化定义关系数据结构的形式化定义在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系(表)来表示。姓名姓名性别性别年龄年龄王平王平男男19李伟李伟男男20旺达旺达女女19李静李静女女20上元上元男男19下下下下男男20微微微微女女19哈哈哈哈女女20域是一组具有相同数据类型的值的集合。域是一组具有相同数据类型的值的集合。域中所包含的值的个域中所包含的值的个数称为域的基数数称为域的基数 。 例如:例如: 性别域:性别域:男男,女女,基数为,基数为2 姓名域:姓名域:王平,李丽,张晓刚王平,李丽,张晓刚; 成绩域:成绩域:【0-100】2.1 关系数据库的基本概念关系数据库的基本概念

4、2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义域(域( Domain )给定一组域给定一组域D1,D2,Dn,这些域中可以有相同,这些域中可以有相同的部分,则笛卡儿积表示为:的部分,则笛卡儿积表示为: D1D2Dn = (d1,d2,dn)di Di,i1,2,n. 2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义笛卡儿积(笛卡儿积(Cartesian Product)例如给出三个域:例如给出三个域:D1 = 姓名姓名 = 王平,李丽王平,李丽; D2 = 性别性别 = 男,男,女女; D3 = 年龄年龄 = 19,20

5、. 则则D1,D2,D3的笛卡儿积为的笛卡儿积为D1D2D3 姓名姓名性别性别年龄年龄王平王平男男19王平王平男男20王平王平女女19王平王平女女20李丽李丽男男19李丽李丽男男20李丽李丽女女19李丽李丽女女202.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义笛卡儿积(笛卡儿积(Cartesian Product)n 元组元组(Tuple)u笛卡尔积中每一行叫作一个笛卡尔积中每一行叫作一个n元组元组(n-tuple)或简称)或简称元组元组(Tuple)u(王平,男,王平,男,20)、(王平,女,王平,女,20)等都是元组等都是元组

6、n 分量分量(Component)u笛卡尔积元笛卡尔积元组组(d1,d2,dn)中的每一个值)中的每一个值di叫作一个叫作一个分量分量u王平、男、王平、男、 20 、李丽等都是分量、李丽等都是分量 2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义笛卡儿积(笛卡儿积(Cartesian Product)D1 D2 Dn的子集称作在域的子集称作在域D1,D2,Dn上的关上的关系,表示为:系,表示为: R(D1,D2,Dn).这里:这里:R表示关系的名字,表示关系的名字,n是关系的目或度,即属性的个数。是关系的目或度,即属性的个数。当当n=

7、1时,称该关系为单元关系(时,称该关系为单元关系(Unary relation) 或或一元关系一元关系 当当n=2时,称该关系为时,称该关系为二元关系二元关系(Binary relation)2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义关系(关系(Relation)姓名姓名性别性别年龄年龄王平王平男男20李丽李丽女女20关系也是一个二维表,表的每行对应一个元关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域组,表的每列对应一个域2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结

8、构的形式化定义关系(关系(Relation)例如:例如: 从从D1D2D3中取出有用的元组,所构造的学中取出有用的元组,所构造的学 生关系如表所示生关系如表所示2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义关系(关系(Relation)基本关系具有以下六条性质:基本关系具有以下六条性质: 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。 不同的列可出自同一个域,其中每一列称为一个属性,不同的属性不同的列可出自同一个域,其中每一列称为一个属性,不同的属性要给予不同的

9、属性名。要给予不同的属性名。 列的顺序无所谓,即列的次序可以任意交换。列的顺序无所谓,即列的次序可以任意交换。 任意两个元组不能完全相同,在关系中能唯一地标识一个元组的属任意两个元组不能完全相同,在关系中能唯一地标识一个元组的属性或属性组称为关系的码(性或属性组称为关系的码(Key)。)。 行的顺序无所谓,即行的次序可以任意交换。行的顺序无所谓,即行的次序可以任意交换。分量必须取原子值,即每一个分量都必须是不可分的数据项。分量必须取原子值,即每一个分量都必须是不可分的数据项。 n 关系模式关系模式是关系的型,是对关系的是关系的型,是对关系的描述描述, 是是静态的静态的、稳定的稳定的n 关系关系

10、是关系模式的是关系模式的值值,是关系模式在某一时刻的状是关系模式在某一时刻的状态或内容态或内容,是是动态的动态的、随时间不断变化的、随时间不断变化的2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义关系模式关系模式关系模式的定义关系模式的定义:形式化地表示为:形式化地表示为:R(U,D,Dom,F)其中:其中:R为关系名,它是关系的形式化表示;为关系名,它是关系的形式化表示;U为组成该关系为组成该关系的属性集合;的属性集合;D为属性组为属性组U中属性所来自的域;中属性所来自的域;Dom为属性向为属性向域的映象的集合;域的映象的集合;F为

11、属性间数据的依赖关系集合。为属性间数据的依赖关系集合。关系模式通常可以简单记为:关系模式通常可以简单记为:R(U)或)或 R(A1,A2,An).其中:其中:R为关系名,为关系名,A1,A2,An为属性名。为属性名。2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义关系模式关系模式n 在关系模式中能唯一标识一个元组的属性或属性组在关系模式中能唯一标识一个元组的属性或属性组称为关系的称为关系的超码超码(Super Key)。n 在关系模式中能唯一标识一个元组的最小属性或属在关系模式中能唯一标识一个元组的最小属性或属性组称为关系的性组称为关

12、系的候选码候选码(Candidate Key),即候选码,即候选码是最小的超码,其任何真子集无法唯一标识元组。是最小的超码,其任何真子集无法唯一标识元组。n 若一个关系有多个候选码,则选定其中一个有代表若一个关系有多个候选码,则选定其中一个有代表性的用来标识关系,称其性的用来标识关系,称其为主码为主码(Primary Key)。2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义关系的码关系的码(Key)定义:某一应用领域中,定义:某一应用领域中,所有所有实体集及实体之间实体集及实体之间联系所形成联系所形成关系的集合关系的集合就构成了一个

13、关系数据库。就构成了一个关系数据库。n关系数据库的型关系数据库的型: 即关系数据库模式即关系数据库模式 如何描述关系数据库:通过若干关系模式的定义进行描述如何描述关系数据库:通过若干关系模式的定义进行描述.n关系数据库的值关系数据库的值: 关系模式在某一时刻对应的关系的集合,简称为关系数据库关系模式在某一时刻对应的关系的集合,简称为关系数据库 2.1 关系数据库的基本概念关系数据库的基本概念2.1.1 关系数据结构的形式化定义关系数据结构的形式化定义关系数据库关系数据库2.1 关系数据库的基本概念关系数据库的基本概念例如:学生选课管理系统XSGL的关系模式为:1.S(SNO,SNAME,AGE

14、,SEX)2.C(CNO,CNAME,CREDIT, TEACHER)3. SC(SNO,CNO,GRADE)n 关系操作包括三类:u数据查询: 指数据检索、统计、排序、分组以及用户对信息的需求等功能;u数据维护: 指数据增加、删除、修改等数据自身更新的功能;u数据控制: 指为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。 关系操作的数据查询和数据维护功能使用关系代数中的选择关系操作的数据查询和数据维护功能使用关系代数中的选择(Select)、投影投影(Project)、连接(、连接(Join)、除)、除(Divide)、并()、并(Union)、交)、交(Intersect

15、ion)、差()、差(Difference)以及广义笛卡儿积)以及广义笛卡儿积( Extended Cartesian Product)8种操作实现。种操作实现。 2.1 关系数据库的基本概念关系数据库的基本概念2.1.2 关系操作关系操作对关系进行操作时可使用关系数据操作语言。关对关系进行操作时可使用关系数据操作语言。关系数据操作语言可分为两大类,一类是抽象的查询语言,系数据操作语言可分为两大类,一类是抽象的查询语言,如关系代数、关系演算等,其中关系代数用关系的运算如关系代数、关系演算等,其中关系代数用关系的运算即元组的集合运算来表达查询请求,关系演算用谓词来即元组的集合运算来表达查询请求,

16、关系演算用谓词来表达查询请求;另一类是关系数据库标准语言表达查询请求;另一类是关系数据库标准语言SQL(Structured Query Language,结构化查询语言结构化查询语言),是一种高度非过程化的语言。是一种高度非过程化的语言。SQL不但具有丰富的查询不但具有丰富的查询功能,而且具有数据定义、数据操纵和数据控制功能,功能,而且具有数据定义、数据操纵和数据控制功能,是集查询、数据定义、数据操作、数据控制于一体的关是集查询、数据定义、数据操作、数据控制于一体的关系数据语言。系数据语言。2.1 关系数据库的基本概念关系数据库的基本概念2.1.2 关系操作关系操作n 关系模型的完整性是指对

17、关系的某种约束条件,以保关系模型的完整性是指对关系的某种约束条件,以保证只有正确的数据才能存入数据库。证只有正确的数据才能存入数据库。 n 关系的完整性分为关系的完整性分为三类三类: u实体完整性实体完整性u参照完整性参照完整性u用户定义的完整性用户定义的完整性其中:其中:实体完整性和参照完整性是实体完整性和参照完整性是关系模型必须关系模型必须满足的完整性约束条件,称为关系的两个满足的完整性约束条件,称为关系的两个不变性,应该由不变性,应该由关系系统自动支持关系系统自动支持。用户定义的完整性:由用户根据应用领域用户定义的完整性:由用户根据应用领域的需要,自行定义。体现了具体领域中的的需要,自行

18、定义。体现了具体领域中的语义约束语义约束2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性实体完整性实体完整性(Entity Integrity)若属性或属性组K是关系R的主码,则对于每个元组,K的取值唯一,并且K中属性不能全部或部分取空值,这称为实体完整性规则。说明如下:说明如下:1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现)实体完整性规则是针对基本关系而言的。一个基本表通常对应现 实实世界的一个实体集。世界的一个实体集。2)现实世界中的实体是可区分的,即它们

19、具有某种唯一性标识。)现实世界中的实体是可区分的,即它们具有某种唯一性标识。3)关系模型中以主码作为唯一性标识。)关系模型中以主码作为唯一性标识。 4) 实体完整性能够实体完整性能够保证保证实体的实体的唯一性唯一性。5)实体完整性能够保证实体的可区分性。)实体完整性能够保证实体的可区分性。2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性例如:例如:教学管理模式:S(SNO,SNAME,AGE,SEX) (学生关系)C(CNO,CNAME,CREDIT, TEACHER) (课程关系)SC(SNO,CNO,GRADE) (选课关系)n 为什么需要参照完整性:为

20、什么需要参照完整性:在关系模型中实体及实体间的联系都是用关系来描述的,因此在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。可能存在着关系与关系间的引用。例如:例如:教学管理模式:S(SNO,SNAME,AGE,SEX) (学生关系)C(CNO,CNAME,CREDIT, TEACHER) (课程关系)SC(SNO,CNO,GRADE) (选课关系)2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性参照完整性参照完整性(Referential integrity)n 外码外码的概念:的概念:u设设F是基本关系是基本关系R的一个

21、或一组属性,但不是关系的一个或一组属性,但不是关系R的主码。如果的主码。如果F与基本关系与基本关系S的主码的主码Ks相对应,则称相对应,则称F是基本关系是基本关系R的的外码外码u基本关系基本关系R称称为为参照关系参照关系u基本关系基本关系S称称为为被参照关系被参照关系或或目标关系目标关系u关系关系R和和S可能是相同的关系,即自身参照。可能是相同的关系,即自身参照。2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性参照完整性参照完整性(Referential integrity)n 例如:例如: 选修关系的选修关系的“学号学号” 与与学生关系学生关系的的主码主码

22、“学号学号”相对应相对应 选修关系的选修关系的“课程号课程号”与与课程关系课程关系的的主码主码“课程号课程号”相对应相对应u在在选修关系中选修关系中,“学号学号”和和“课程号课程号”是选修关系的是选修关系的外码外码u学生关系和课程关系均为被参照关系学生关系和课程关系均为被参照关系u选修关系为参照关系选修关系为参照关系 2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性 若属性(或属性组)若属性(或属性组)F是基本关系是基本关系R的的外码,外码,它与基本关它与基本关系系S的主码的主码Ks相对应(基本关系相对应(基本关系R和和S不一定是不同的关不一定是不同的关系)

23、,则对于系),则对于R中每个元组在中每个元组在F上的值必须为:上的值必须为:n或者或者取空值取空值(F的每个属性值均为空值)的每个属性值均为空值)n或者或者等于等于S中某个元组的中某个元组的主码主码Ks值值这一规则称为关系的参照完整性规则。2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性参照完整性参照完整性(Referential integrity)对于上例,按照参照完整性规则,选课关系对于上例,按照参照完整性规则,选课关系SC中的中的SNO和和CNO只能取被参照关系只能取被参照关系S和和C表中已经存在的主码值,因此参照完表中已经存在的主码值,因此参照完整

24、性反映了现实世界中的约束需求。整性反映了现实世界中的约束需求。2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性参照完整性参照完整性(Referential integrity)提问: SC中的中的SNO和和CNO可以可以取空值吗?取空值吗?n 例如:例如:教学管理模式作如下修改:n DEPART(DNO,DEAN,LOCATION,DNAME)n S(SNO,SNAME,AGE,SEX, DNO)n C(CNO,CNAME,CREDIT, TEACHER)n SC(SNO,CNO,GRADE)2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的

25、完整性关系的完整性参照完整性案例参照完整性案例提问:对S表来说,DNO是外码吗?其参照关系是谁?提问:S中的DNO可以取空值吗?n 针对某一具体关系数据库的约束条件,反映某一针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求具体应用所涉及的数据必须满足的语义要求n 关系模型应提供定义和检验这类完整性的机制,关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能用程序承担这一功能2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性用户定义的完整性

26、用户定义的完整性(User-defined integrity)例如:例如:在定义关系模式时,定义关系中的每个字段,对在定义关系模式时,定义关系中的每个字段,对每个字段必须定义该字段的字段名每个字段必须定义该字段的字段名(年龄年龄),字段类型,字段类型(整型整型),字段宽度字段宽度(2位位),小数位数,小数位数(0位位),经过这样的定义,在给每条,经过这样的定义,在给每条记录的年龄字段输入数据时,可以输入两位整型数据,这就记录的年龄字段输入数据时,可以输入两位整型数据,这就是一种约束,如果我们还想进一步对数据进行约束,则需要是一种约束,如果我们还想进一步对数据进行约束,则需要定义一个具体的约束

27、条件定义一个具体的约束条件(可以写一条规则可以写一条规则)例如:例如:如把年龄限制在如把年龄限制在15岁到岁到25岁之间岁之间(实际上这是学生实际上这是学生的实际年龄范围的实际年龄范围),以满足实际数据的需要,这就是用户自定,以满足实际数据的需要,这就是用户自定义完整性规则。义完整性规则。2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性用户定义的完整性用户定义的完整性(User-defined integrity)n 例如:例如:限定学生每个学期最多只能选修限定学生每个学期最多只能选修30个学分。个学分。n 例如:例如:限定每个学生最多只能借限定每个学生最多

28、只能借8本书。本书。n 例如:例如:限定修改成绩时,修改后的成绩只能比原来限定修改成绩时,修改后的成绩只能比原来成绩高。成绩高。2.1 关系数据库的基本概念关系数据库的基本概念2.1.3 关系的完整性关系的完整性 在实际的关系数据库管理系统中,可以通过多种方式实施这三类完整在实际的关系数据库管理系统中,可以通过多种方式实施这三类完整性,如主码约束、唯一性约束可以用来实施实体完整性,外码约束可以用性,如主码约束、唯一性约束可以用来实施实体完整性,外码约束可以用来实施参照完整性,而域类型、取值范围、触发器等可以用来实施用户自来实施参照完整性,而域类型、取值范围、触发器等可以用来实施用户自定义完整性

29、。只要用户在数据库中定义了完整性约束,则在用户操作数据定义完整性。只要用户在数据库中定义了完整性约束,则在用户操作数据库时,库时,DBMS自动会根据用户定义的完整性规则,进行数据的检验。自动会根据用户定义的完整性规则,进行数据的检验。第第2章章 关系数据库基础关系数据库基础 2.1 关系数据库的基本概念关系数据库的基本概念2.2 关系代数关系代数2.3 高效的关系代数表达式与查询优化高效的关系代数表达式与查询优化什么是关系代数:什么是关系代数: 关系代数是一种抽象的查询语言,用对关系的关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数运算来表达查询,作为研究关系数

30、据语言的数学工具。学工具。关系代数的关系代数的特点特点: 运算对象是关系,运算结果亦为关系。运算对象是关系,运算结果亦为关系。 2.2 关系代数关系代数集合运算符集合运算符(并运算),(差运算),(并运算),(差运算),(交(交运算),运算),(广义笛卡儿积)(广义笛卡儿积)专门的关系运算符专门的关系运算符(选择),(选择),(投影),(投影), (连接),(连接),(除)(除)比较运算符比较运算符(大于),(大于),(大于等于),(小(大于等于),(小于),于),(小于等于),(等于),(小于等于),(等于),(不等于)(不等于)逻辑运算符逻辑运算符 (非),(非),(与),(与),(或)。

31、(或)。更名运算符更名运算符 2.2 关系代数关系代数关系运算的目的:可以对二维表进行任意的分割和组装,从已有的二维表构造出用户需要的二维表。 2.2.1 传统的集合运算传统的集合运算并运算并运算2.2 关系代数关系代数 设关系设关系R和和S都具有都具有n个属性,且相应的属性取自同一个域。个属性,且相应的属性取自同一个域。 RS=t| t R t S.R和和S并的结果仍为并的结果仍为n目关系,其数据由属于目关系,其数据由属于R或属于或属于S的元组组成。的元组组成。学号学号姓名姓名性别性别年龄年龄学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17S0201李兰李兰女女17S0202张娜张

32、娜女女18S0203张伟张伟男男17S0203张伟张伟男男17S0230邵华邵华男男19学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17S0202张娜张娜女女18S0203张伟张伟男男17S0230邵华邵华男男18关系关系R关系关系S关系关系R S2.2.1 传统的集合运算传统的集合运算差运算差运算2.2 关系代数关系代数 设关系设关系R和和S都具有都具有n个属性,且相应的属性取自同一个域。个属性,且相应的属性取自同一个域。 R S = t | t R t S. R和和S差运算的结果关系仍为差运算的结果关系仍为n目关系,其数据由属于目关系,其数据由属于R而不属于而不属于S的的所有元组

33、组成。所有元组组成。学号学号姓名姓名性别性别年龄年龄学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17S0201李兰李兰女女17S0202张娜张娜女女18S0203张伟张伟男男17S0203张伟张伟男男17S0230邵华邵华男男19关系关系R关系关系S关系关系R -S学号学号姓名姓名性别性别年龄年龄S0202张娜张娜女女18 设关系设关系R和和S都具有都具有n个属性,且相应的属性取自同一个域。个属性,且相应的属性取自同一个域。 RS = t | t R t S . 运算的结果关系仍为运算的结果关系仍为n目关系,其数据由既属于目关系,其数据由既属于R同时又属于同时又属于S的元的元组组成。

34、交可用差来表示:组组成。交可用差来表示: RS = R(RS) .2.2.1 传统的集合运算传统的集合运算交运算交运算2.2 关系代数关系代数学号学号姓名姓名性别性别年龄年龄学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17S0201李兰李兰女女17S0202张娜张娜女女18S0203张伟张伟男男17S0203张伟张伟男男17S0230邵华邵华男男19关系关系R关系关系S关系关系R S学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17S0203张伟张伟男男17R SR SR S2.2 关系代数关系代数集合运算过程示意图:2.2.1 传统的集合运算传统的集合运算广义笛卡儿积广义笛

35、卡儿积2.2 关系代数关系代数设设n n目和目和m m目的关系目的关系R R和和S S,它们的笛卡儿积是一个(,它们的笛卡儿积是一个(n+mn+m)目的元组集合。)目的元组集合。元组的前元组的前n n列是关系列是关系R R的一个元组,后的一个元组,后m m列是关系列是关系S S的一个元组。若的一个元组。若R R有有k k1 1个元组,个元组,S S有有k k2 2个元组,则关系个元组,则关系R R和关系和关系S S的广义笛卡儿积应当有的广义笛卡儿积应当有k k1 1k k2 2个元组。个元组。R R和和S S的的笛卡儿积表示为:笛卡儿积表示为: R RS S = tr ts | tr = tr

36、 ts | tr R R ts ts S . S .学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17 0203张伟张伟男男17姓名姓名课程名课程名成绩成绩李兰李兰软件基础软件基础90张娜张娜高等数学高等数学87学号学号姓名姓名性别性别年龄年龄姓名姓名课程名课程名成绩成绩S0201李兰李兰女女17李兰李兰软件基础软件基础90S0201李兰李兰女女17张娜张娜高等数学高等数学87S0203张伟张伟男男17李兰李兰软件基础软件基础90S0203张伟张伟男男17张娜张娜高等数学高等数学87关系关系R关系关系S关系关系R S选择操作是从关系中选择满足条件的元组组成一个新选择操作是从关系中选择满

37、足条件的元组组成一个新关系,其运算符是关系,其运算符是“ ”,定义为:,定义为: F(R)=t|tRF(t)真真 学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17S0202张娜张娜女女18S0203张伟张伟男男17S0230邵华邵华男男18【例例】设关系R1是学生关系模式上的一个关系如例2.5中所示,在关系R1中查找满足年龄小于等于17的学生。关系关系R1学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17S0203张伟张伟男男17 年龄年龄17(R1)2.2.2 专门的关系运算专门的关系运算选择运算选择运算2.2 关系代数关系代数n 关系关系R上的投影是从上的投影是从R中选择

38、出若干属性列组成新的关系,中选择出若干属性列组成新的关系,(从列从列的角度)的角度)记作:记作: A(R)= t A | t R .n 投影操作主要是从列的角度进行运算,投影之后不仅取消了原关投影操作主要是从列的角度进行运算,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(系中的某些列,而且还可能取消某些元组(投影的结果中要投影的结果中要去掉去掉相同的行相同的行,这是由关系的基本性质决定的)这是由关系的基本性质决定的)2.2.2 专门的关系运算专门的关系运算投影运算投影运算2.2 关系代数关系代数设关系设关系R1是学生关系模式的一个关系,在某次查询中要求查找每是学生关系模式的一个关

39、系,在某次查询中要求查找每个学生的姓名和年龄。个学生的姓名和年龄。 可以使用投影操作可以使用投影操作 R= 姓名,年龄姓名,年龄 (R1)2.2.2 专门的关系运算专门的关系运算投影运算投影运算2.2 关系代数关系代数关系关系R1姓名姓名年龄年龄李兰李兰17张娜张娜18张伟张伟17邵华邵华18学号学号姓名姓名性别性别年龄年龄S0201李兰李兰女女17S0202张娜张娜女女18S0203张伟张伟男男17S0230邵华邵华男男18姓名,年龄 (R1)2.2 关系代数关系代数选择运算过程示意图:投影运算过程示意图:2.2 关系代数关系代数选择投影举例选择投影举例 设学生选课数据库,其关系模式为:设学

40、生选课数据库,其关系模式为: 学生(学号,姓名,年龄,性别学生(学号,姓名,年龄,性别, 所在系);所在系); 课程(课程号,课程名,学分);课程(课程号,课程名,学分); 选课(学号,课程号,成绩)选课(学号,课程号,成绩).学生学生姓名姓名年龄年龄性别性别所在系所在系20050001王妃王妃19女女计算机计算机20050145李瑞李瑞22男男通信通信20050234蒋正蒋正22男男计算机计算机20050256贾艳贾艳21女女计算机计算机20050165李明李明18男男计算机计算机20052312王蓓王蓓22女女通信通信20041234裴鼎裴鼎21男男计算机计算机2. 2关系代数关系代数学生

41、选课关系数据库学生选课关系数据库课程号课程号课程名课程名学分学分C01数据库数据库4C02数学数学2C03信息系统信息系统4C04操作系统操作系统3C05数据结构数据结构4C06数据处理数据处理2C07PASCAL语言语言42. 2关系代数关系代数学生选课关系数据库学生选课关系数据库学号学号课程号课程号成绩成绩20050001 C018020050234 C016520050001 C028020052312 C029020050234 C0380【例例1】查询学生的姓名和所在系。查询学生的姓名和所在系。 姓名,所在系姓名,所在系(学生)(学生)2. 2关系代数关系代数投影运算举例投影运算举例

42、姓名姓名所在系所在系王妃王妃计算机计算机李瑞李瑞通信通信蒋正蒋正计算机计算机贾艳贾艳计算机计算机李明李明计算机计算机王蓓王蓓通信通信裴鼎裴鼎计算机计算机2. 2关系代数关系代数投影运算举例投影运算举例【例例2】查询查询20050001号学生所选修的课程号号学生所选修的课程号 课程号课程号( 学号学号=20050001(选课选课))学号学号课程号课程号成绩成绩20050001C018020050001C0280课程号课程号C01C02【例例1】求选修了求选修了C01号或号或C02号课程的学生学号号课程的学生学号方案方案1:学号学号( 课程号课程号= C01课程号课程号 = C02(选课选课)方案

43、方案2:学号学号( 课程号课程号= C01(选课选课)学号学号( 课程号课程号 = C02 (选课选课)2. 2关系代数关系代数选择投影运算举例选择投影运算举例R S请同学们写出结果2. 2关系代数关系代数选择投影运算举例选择投影运算举例【例例2】求选修了求选修了C01号而没有选号而没有选C02号课程的学生号课程的学生号号学号学号( 课程号课程号= C01(选课选课) 学号学号( 课程号课程号 = C02 (选课选课)R S请同学们写出结果【例例3】求同时选修了求同时选修了C01号和号和C02号课程的学生号号课程的学生号错误的写法:错误的写法:学号学号( 课程号课程号= C01 课程号课程号=

44、 C02(选课选课)正确的写法:正确的写法:学号学号( 课程号课程号= C01 (选课选课)学号学号( 课程号课程号= C02(选课选课)2. 2关系代数关系代数选择投影运算举例选择投影运算举例R S请同学们写出结果Why?2.2.3 专门的关系运算专门的关系运算连接运算连接运算2.2 关系代数关系代数(1) 条件连接条件连接(连接连接)n 连接运算的含义连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S = | tr Rts StrAtsB A和和B:分别为分别为R和和S上度数相等且可比的属性组上度数相等且可比的属性组

45、:比较运算符:比较运算符 u 连接运算从连接运算从R和和S的广义笛卡尔积的广义笛卡尔积RS中选取(中选取(R关系)关系)在在A属性组上的值与(属性组上的值与(S关系)在关系)在B属性组上值满足比较关属性组上值满足比较关系系的元组的元组 ABtr tsn 常用条件连接运算符常用条件连接运算符u等值连接(等值连接(equijoin) 什么是等值连接什么是等值连接 为“”的连接运算称为等值连接 等值连接的含义等值连接的含义 从关系R与S的广义笛卡尔积中选取两个关系中A、B属性值相等的那些元组,即等值连接为: R S = | tr Rts StrA = tsB 2.2 关系代数关系代数A=Btr ts

46、2.2.3 专门的关系运算专门的关系运算连接运算连接运算2.2 关系代数关系代数(2) 自然连接自然连接u 自然连接是一种特殊的等值连接自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉 自然连接的含义自然连接的含义R和和S具有相同的属性组具有相同的属性组B R S = | tr Rts StrB = tsB tr tsn 自然连接中相等的分量必须是相同的属性组,并且自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。要在结果中去掉重复的属性,而等值连接则不必。n 当当R与与S无相同属性时,无相同属性时,R S

47、RS2.2关系代数关系代数自然连接与等值连接的区别自然连接与等值连接的区别n 对对R和和S做连接运算,相当于对两个关系进行双重做连接运算,相当于对两个关系进行双重循环,外循环为循环,外循环为R,内循环为,内循环为S,再再对双循环结果对双循环结果按照连接条件进行筛选。按照连接条件进行筛选。 2.2关系代数关系代数连接运算意义连接运算意义学号学号姓名姓名年龄年龄所在系所在系 学号学号课程名课程名成绩成绩98001张三张三20计算机系计算机系98001数据库数据库6298005李四李四21数学系数学系98001数据结构数据结构73 98005微积分微积分80学生学生.学号学号姓名姓名年龄年龄所在系所

48、在系选课选课.学号学号课名课名成绩成绩980019800198001980059800598005张三张三张三张三张三张三李四李四李四李四李四李四202020212121计算机系计算机系计算机系计算机系计算机系计算机系数学系数学系数学系数学系数学系数学系980019800198005980019800198005数据库数据库数据结构数据结构微积分微积分数据库数据库数据结构数据结构微积分微积分627380627380学生学生选课选课 2.2关系代数关系代数连接运算举例连接运算举例学生学生.学学号号姓名姓名年龄年龄所在系所在系选课选课.学学号号课名课名成绩成绩980019800198005张三张三

49、张三张三李四李四202021计算机系计算机系计算机系计算机系数学系数学系980019800198005数据库数据库数据结构数据结构微积分微积分627380 学生学生 选课选课 学生学生.学号学号=选课选课.学号学号 2.2关系代数关系代数连接运算举例连接运算举例学生学生 选课选课 学生学生.学学号号姓名姓名年龄年龄所在系所在系课名课名成绩成绩980019800198005张三张三张三张三李四李四202021计算机系计算机系计算机系计算机系数学系数学系数据库数据库数据结构数据结构微积分微积分6273802.2关系代数关系代数连接运算举例连接运算举例2.2关系代数关系代数连接运算举例连接运算举例课

50、程号课程号课程名课程名C01软件基础软件基础C02C语言语言C03英语英语C04高等数学高等数学姓名姓名课程号课程号成绩成绩李兰李兰C0190张娜张娜C0387张伟张伟C0276李兰李兰C0285张伟张伟C0480CSCC SC提问1:下列语句表示什么含义?课程名(姓名=“李兰”(C SC)提问2:如何查询选修“英语”的学生姓名?课程号课程号课程名课程名姓名姓名成绩成绩C01软件基础软件基础李兰李兰90C02C语言语言张伟张伟76C02C语言语言李兰李兰85C03英语英语张娜张娜87C04高等数学高等数学张伟张伟80n 给定关系给定关系R R ( (X X,Y Y) ) 和和S S ( (Y

51、Y,Z Z) ),其中,其中X X,Y Y,Z Z为属性组。为属性组。R R中的中的Y Y与与S S中的中的Y Y可以有不同的属性名,但必须出自相同的域集。可以有不同的属性名,但必须出自相同的域集。R R与与S S的除运算得到一个新的关系的除运算得到一个新的关系P(X)P(X),P P是是R R中满足下列条件的元组在中满足下列条件的元组在 X X 属性列上的投影:属性列上的投影:元组在元组在X X上分量值上分量值x x的象集的象集Y Yx x包含包含S S在在Y Y上投影的集合,记作:上投影的集合,记作: R RS S = = t tr r X X | | t tr r R RY Y ( (S

52、 S) ) Y Yx x Y Yx x:x x在在R R中的象集,中的象集,x x = = t tr r X X 2.2.4 专门的关系运算专门的关系运算除法运算除法运算2.2 关系代数关系代数除操作可以自动同时从行和列的角度进行运算。除操作可以自动同时从行和列的角度进行运算。 n 关系除法运算分下面关系除法运算分下面4步进行:步进行:1) 将被除关系的属性分为象集属性和结果属性:与除关系相将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性同的属性属于象集属性(Y),不相同的属性属于结果属性,不相同的属性属于结果属性(X)。2) 在除关系中,对与被除关系相同的属性在除关系中

53、,对与被除关系相同的属性(Y)(象集属性)(象集属性)进行投影,得到除目标数据集。进行投影,得到除目标数据集。3) 将被除关系按将被除关系按X分组分组n 4) 逐一考察被除关系每个组,如果它的象集属性值中包括除逐一考察被除关系每个组,如果它的象集属性值中包括除目标数据集,则对应的目标数据集,则对应的X属性值应属于该除法运算结果集。属性值应属于该除法运算结果集。除法运算除法运算目的目的:描述全部包含关系描述全部包含关系2.2.4 专门的关系运算专门的关系运算除法运算除法运算2.2 关系代数关系代数例例设关系设关系R、S分别为下图的分别为下图的(a)和和(b),RS的结果为图的结果为图(c) 2.

54、2.4 专门的关系运算专门的关系运算除法运算除法运算2.2 关系代数关系代数n 结果属性结果属性A ,象集属性象集属性 B,C n S在在(B,C)上的投影为上的投影为 (b1,c2),(b2,c1),(b2,c3) 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)n 只有只有a1的象集包含了的象集包含了S在在(B,C)属性组上的投影属性组上的投影 所以所以 RS =a1

55、 2.2.4 专门的关系运算专门的关系运算除法运算除法运算2.2 关系代数关系代数学号学号课号课号成绩成绩 课号课号课名课名S1C1AC2计算机图计算机图形学形学S1C2B必修课必修课S1C3BS2C1A课号课号课名课名S2C3BC1数据结构数据结构S3C1BC3操作系统操作系统S3C3B选课选课选修课选修课S4C1AS4C2A学号学号成绩成绩S5C2BS1BS5C3BS4AS5C1AS5B选修课选修课2.2 关系代数关系代数学生选课除法运算举例学生选课除法运算举例学号成绩 学号学号S3BS1 S2S3S5选课选课必修课必修课 学号,课号学号,课号(选课)(选课)必修课必修课 这种除法表示了什

56、么含义呢?选择了必修课选择了必修课表中全部课程表中全部课程的同学的同学2.2 关系代数关系代数学生选课除法运算举例学生选课除法运算举例不仅要求该学生选修和不仅要求该学生选修和,还要求两门课程成绩相同。,还要求两门课程成绩相同。n 问题:问题:求同时选修了求同时选修了001和和002号课程的学生号号课程的学生号u 方案方案1: Sno,Cno(SC) Cno = 001 Cno= 002 (C)u 方案方案2: S#(SC Cno= 001 Cno = 002(C)u 哪一个正确?哪一个正确?SC:表示选课表表示选课表(sno,cno,grade)C:表示课程表表示课程表(cno,cname,c

57、lassroom)2.2 关系代数关系代数学生选课除法运算举例学生选课除法运算举例2.2 关系代数关系代数2.2.5 关系代数运算综合应用实例关系代数运算综合应用实例【例例2.12】教学管理数据库的关系模式定义如下:教学管理数据库的关系模式定义如下:S(SNO,SNAME,AGE,SEX) (学生关系学生关系)C(CNO,CNAME,CREDIT, TEACHER)(课程关系课程关系)SC(SNO,CNO,GRADE) (选课关系选课关系) 其中其中SNO,SNAME,AGE,SEX分别为学生学号、姓名、年龄分别为学生学号、姓名、年龄和性别;和性别;CNO,CNAME,CREDIT和和TEAC

58、HER分别表示课程编号、分别表示课程编号、课程名称、课程学分和授课教师;课程名称、课程学分和授课教师;GRADE表示成绩。表示成绩。 n (1)查找选修课程号为)查找选修课程号为C3的学生学号和成绩的学生学号和成绩 SNO,GRADE( CNO=C3(SC)n (2)查找选修课程号为)查找选修课程号为C4的学生学号和姓名的学生学号和姓名 SNO,SNAME( CNO=C4(SSC)n (3)查找选修课程名为)查找选修课程名为”数学数学”的学生学号和姓名的学生学号和姓名 SNO,SNAME (CNAME=数学数学(S SC C)2.2.5 关系代数运算综合应用实例关系代数运算综合应用实例n(4)

59、查找选修课程号为)查找选修课程号为C1或或C3的学生学号的学生学号方法一:方法一: SNO ( CNO=C1CNO=C3(SC)方法二:可用集合的并运算完成相同功能,即方法二:可用集合的并运算完成相同功能,即SNO ( CNO=C1 (SC) SNO ( CNO=C3 (SC)n(5)查找同时选修课程号为)查找同时选修课程号为C1和和C3的学生学号的学生学号 SNO ( CNO=C1 (SC) SNO ( CNO=C3 (SC)n(6)查找不选修课程号为)查找不选修课程号为C2的学生的姓名的学生的姓名 SNAME (S) SNAME ( CNO=C2(S SC)2.2.5 关系代数运算综合应用

60、实例关系代数运算综合应用实例n (7)查找选修所有课程的学生姓名)查找选修所有课程的学生姓名 SNAME(S (SNO,CNO(SC)CNO(C)n (8)查找选修了)查找选修了“WANG”开设的所有课程的学开设的所有课程的学生学号生学号 SNO,CNO(SC)CNO( TEACHER=WANG (C)2.2.5 关系代数运算综合应用实例关系代数运算综合应用实例n 已知:学生关系模式已知:学生关系模式S(SNO,SNAME,SEX,AGE,DEPT) 选课关系模式选课关系模式SC(SNO,CNO,GRADE) 课程关系模式课程关系模式C(CNO,CNAME,DEPT,TNAME) u试用关系代

温馨提示

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

评论

0/150

提交评论