关系模型和关系运算_第1页
关系模型和关系运算_第2页
关系模型和关系运算_第3页
关系模型和关系运算_第4页
关系模型和关系运算_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

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

文档简介

关系模型和关系运算第一页,共一百一十三页,2022年,8月28日

第二章关系模型和关系运算

2.1关系模型概述2.2关系数据结构及完整性约束2.3关系代数数据库系统原理第二页,共一百一十三页,2022年,8月28日

第二章关系模型和关系运算学习要求:

深刻理解关系模型的相关概念,即关系模型的数据结构、关系操作和关系完整性约束;掌握关系代数的基本运算和应用。学习重点:关系模型的基本概念;关系模型的三类完整性约束;关系代数的选择、连接、除等运算数据库系统原理第三页,共一百一十三页,2022年,8月28日第二章关系模型和关系运算2.1关系模型概述2.2关系数据结构及完整性约束2.3关系代数数据库系统原理第四页,共一百一十三页,2022年,8月28日

第一节

关系模型概述一、关系理论的产生与发展系统而严格地提出关系模型的是美国IBM公司的1970年提出关系数据模型之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式关系数据库系统是支持关系模型的数据库系统80年代后,关系数据库系统成为最重要、最流行的数据库系统第二章关系模型和关系运算第五页,共一百一十三页,2022年,8月28日关系理论的产生与发展(续)典型实验系统SystemRUniversityINGRES典型商用系统ORACLESYBASEINFORMIXDB2SQLSERVERINGRES第二章关系模型和关系运算第六页,共一百一十三页,2022年,8月28日第一节关系模型概述二、关系模型的组成关系数据结构关系操作关系完整性约束第二章关系模型和关系运算第七页,共一百一十三页,2022年,8月28日(一)关系数据结构单一的数据结构----关系现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是二维表。第二章关系模型和关系运算

学号姓名性别专业宿舍0309113101陈浩男计算机松园2230309113102张立男计算机松园2250309113201王晨女通信梅园112第八页,共一百一十三页,2022年,8月28日(二)关系操作1、常用的关系操作查询查找用户所需要的数据数据更新插入、删除、修改查询的表达能力是其中最主要的部分2、关系操作的特点集合操作方式,即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录第二章关系模型和关系运算第九页,共一百一十三页,2022年,8月28日

关系操作(续)3、关系数据语言的种类关系代数语言

用对关系的运算来表达查询要求典型代表:ISBL关系演算语言:用谓词来表达查询要求元组关系演算语言谓词变元的基本对象是元组变量典型代表:ALPHA域关系演算语言谓词变元的基本对象是域变量典型代表:QBE具有关系代数和关系演算双重特点的语言典型代表:SQL第二章关系模型和关系运算第十页,共一百一十三页,2022年,8月28日(三)关系的完整性约束实体完整性通常由关系系统自动支持参照完整性早期系统不支持,目前大型系统能自动支持用户定义的完整性反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束用户定义后由系统支持第二章关系模型和关系运算第十一页,共一百一十三页,2022年,8月28日第二章关系模型和关系运算2.1关系模型概述2.2关系数据结构及完整性约束2.3关系代数第二章关系模型和关系运算第十二页,共一百一十三页,2022年,8月28日第二节关系数据结构及完整性约束关系模型建立在集合代数的基础上。关系数据结构的基本概念域笛卡儿积关系关键字主属性非主属性关系数据库第二章关系模型和关系运算第十三页,共一百一十三页,2022年,8月28日

一、概念1、域(Domain)域是一组具有相同数据类型的值的集合。

例:整数实数介于某个取值范围的整数指定长度的字符串集合{‘男’,‘女’}介于某个取值范围的日期第二章关系模型和关系运算第十四页,共一百一十三页,2022年,8月28日2、笛卡尔积(CartesianProduct)给定一组域D1,D2,…,Dn,这些域可以是相同的。D1

D2,…,Dn的笛卡尔积为:

D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}元组(Tuple)笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。分量(Component)笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量。基数(Cardinalnumber)若Di

为有限集,其基数为mi,则D1×D2×…×Dn的基数为:第二章关系模型和关系运算第十五页,共一百一十三页,2022年,8月28日笛卡尔积(续)例2.1:给出三个域:D1=SUPERVISOR={张清玫,刘逸}D2=SPECIALITY={计算机专业,信息专业}D3=POSTGRADUATE={李勇,刘晨,王敏}则D1,D2,D3的笛卡尔积为:D1×D2×D3={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)}第二章关系模型和关系运算第十六页,共一百一十三页,2022年,8月28日

笛卡尔积(续)例2.2假设D1是学号集合,D2是课程集合,例如:D1={s2,s4,s7,s9},D2={管理学,经济学,运筹学}则D1×D2={(s2,管理学),(s2,经济学)(s2,运筹学),(s4,管理学),(s4,经济学),(s4,运筹学),(s7,管理学),(s7,经济学),(s7,运筹学),(s9,管理学),(s9,经济学),(s9,运筹学)}笛卡尔积的表示方法笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。第二章关系模型和关系运算第十七页,共一百一十三页,2022年,8月28日

第二章关系模型和关系运算第十八页,共一百一十三页,2022年,8月28日3.关系(Relation)笛卡儿积D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为:

R(D1,D2,…,Dn)

R:关系名

n:关系的目或度(Degree)关系中的每个元素是关系中的元组,通常用t表示。单元关系与二元关系当n=1时,称该关系为单元关系(Unaryrelation)。当n=2时,称该关系为二元关系(Binaryrelation)。

第二章关系模型和关系运算第十九页,共一百一十三页,2022年,8月28日例2.3在表2.1的笛卡尔积中取出有实际意义的元组来构造关系。

关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假设:专业与导师:1:n,导师与研究生:1:nSAP关系可以包含三个元组{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(刘逸,信息专业,王敏)}

SupervisorSpecialitypostgraduate张清玫计算机专业李勇张清玫计算机专业刘晨刘逸信息专业王敏关系(续)第二章关系模型和关系运算第二十页,共一百一十三页,2022年,8月28日例2.4:

对例2.2取子集:R{(s2,管理学),(s4,经济学),(s7,经济学),(s9,运筹学)}取子集,并将D1、D2分别命名为学号和课程名称关系(续)第二章关系模型和关系运算第二十一页,共一百一十三页,2022年,8月28日关系可以有三种类型:基本关系:实际存在的表,它是实际存储数据的逻辑表示。查询表:查询结果对应的表。视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。第二章关系模型和关系运算

关系(续)第二十二页,共一百一十三页,2022年,8月28日

关系(续)基本关系具有以下六条性质每一列中的分量是统一类型的数据,来自同一个域不同列可以出自同一个域,不同属性要给予不同的属性名。列的次序可以任意交换。关系中不允许出现重复元组。关系中行的次序可以任意交换。每一个分量都必须是不可分的数据项。SupervisorSpecialitypostgraduatePG1PG2张清玫计算机专业李勇刘晨刘逸信息专业王敏第二章关系模型和关系运算D1=PERSON={张清玫,刘逸,李勇,刘晨,王敏}D2=SPECIALITY={计算机专业,信息专业}定义导师属性名为SUPERVISOR-PERSON定义研究生属性名为POSTGRADUATE-PERSON第二十三页,共一百一十三页,2022年,8月28日4、属性

关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。关系中属性个数称为“元数”,元组个数称为“基数”。

第二章关系模型和关系运算第二十四页,共一百一十三页,2022年,8月28日

5、关键字

(1)候选键若关系中的某一最小属性组的值能唯一地标识一个元组,则称该属性组称为候选键(Candidatekey)。在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关系的所有属性组是这个关系模式的候选键,称为全码(All-key)。(2)主键若一个关系有多个候选键,则选定其中一个为主键(Primarykey)。主键中的各属性称为主属性(Primeattribute)。不包含在任何侯选键中的属性称为非主属性(Non-keyattribute)。第二章关系模型和关系运算第二十五页,共一百一十三页,2022年,8月28日

关系小结关系举例:第二章关系模型和关系运算第二十六页,共一百一十三页,2022年,8月28日(3)外键如果关系R2的一个或一组属性X不是R2的主键,而是另一关系R1的主键,则该属性或属性组X称为关系R2的外部关系键或外码。并称关系R2为参照关系(ReferencingRelation),关系R1为被参照关系(ReferencedRelation)。

关键字(续)

第二章关系模型和关系运算第二十七页,共一百一十三页,2022年,8月28日例2.5产品关系Products(ProductID,ProductName,UnitPrice,SupplierID,UnitsInstock)供应商关系Suppliers(SupplierID,CompanyName,Address)SupplierID是Suppliers关系的主键,但它不是Products关系的主键(是其中一个属性),所以SupplierID是Products关系的外部关系键。Suppliers为被参照关系,Products关系为参照关系。由外部关系键的定义可知,被参照关系的主键和参照关系的外键必须定义在同一个域上。

外键(续)

第二章关系模型和关系运算第二十八页,共一百一十三页,2022年,8月28日

外键(续)

例2.6第二章关系模型和关系运算第二十九页,共一百一十三页,2022年,8月28日6、关系数据库在一个给定的应用领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。第二章关系模型和关系运算第三十页,共一百一十三页,2022年,8月28日

二、

关系模型的三级体系结构关系模式(模式)子模式(外模式)存储模式(内模式)第二章关系模型和关系运算应用A

数据库应用B应用C应用D应用E外模式1外模式2外模式3模式内模式模式:数据库中全体数据的逻辑结构和特征的描述。内模式:是数据物理结构和存储方式的描述。外模式:是用户能够看见和使用的局部数据的逻辑结构和特征的描述。第三十一页,共一百一十三页,2022年,8月28日

(一)关系模式关系模式(RelationSchema)是对关系的描述,主要包括:元组集合的结构属性构成属性来自的域属性与域之间的映象关系元组语义笛卡尔积中符合元组语义的部分元素的全体构成该关系模式的关系完整性约束条件属性取值范围的限定属性间的相互关联第二章关系模型和关系运算第三十二页,共一百一十三页,2022年,8月28日1、定义关系模式关系的描述称为关系模式。它可以形式化地表示为:

R(U,D,DOM,F)R关系名U

组成该关系的属性名集合D

属性组U中属性所来自的域DOM

属性向域的映象集合F

属性间的数据依赖关系集合第二章关系模型和关系运算第三十三页,共一百一十三页,2022年,8月28日

定义关系模式(续)例2.7

在上面例子中,由于导师和研究生出自同一个域——人,所以要取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域,如:

DOM(SUPERVISOR-PERSON)=DOM(POSTGRADUATE-PERSON)=PERSON第二章关系模型和关系运算第三十四页,共一百一十三页,2022年,8月28日

定义关系模式(续)关系模式通常可以简记为

R(U)

或R(A1,A2,…,An)R关系名A1,A2,…,An属性名注:域名及属性向域的映象常常直接说明为属性的类型、长度。第二章关系模型和关系运算第三十五页,共一百一十三页,2022年,8月28日2、关系模式与关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系数据库中,关系模式是型(二维表的表框架或结构),关系是值。在实际中,通常把关系模式和关系统称为关系。第二章关系模型和关系运算第三十六页,共一百一十三页,2022年,8月28日(二)子模式子模式是用户所用到的那部分数据的描述,以及数据与关系模式中相应数据的联系。OrderIDProductIDProductNameQuantity1110248Queso80OrderIDProductIDQuantity111024880客户订单子模式D(OrderID,ProductID,ProductName,Quantity)

ProductIDProductNameUnitPriceSupplierID10248Queso215DProductOrderDetail第二章关系模型和关系运算第三十七页,共一百一十三页,2022年,8月28日(三)存储模式存储模式是数据物理结构和存储方式的描述。存储的方法堆存储索引存储聚簇存储第二章关系模型和关系运算第三十八页,共一百一十三页,2022年,8月28日(四)关系模型三级模式体系举例以学生信息管理数据库为例:1、关系模式学生(学号,姓名,性别,出生日期,专业,家庭住址,联系电话)专业(专业号,专业名称,所在院系)课程(课程号,课程名称,学时,学分,学期)教师(教师号,姓名,性别,所在院系,联系电话)选课(学期,课程号,学号,成绩)课程安排表(课程号,教师号,上课时间)第二章关系模型和关系运算第三十九页,共一百一十三页,2022年,8月28日关系模式的三级体系结构(续)SQLServer2005数据库中表的设计第二章关系模型和关系运算第四十页,共一百一十三页,2022年,8月28日2、外模式关系模式的三级体系结构(续)第二章关系模型和关系运算第四十一页,共一百一十三页,2022年,8月28日3、存储模式在C:\ProgramFiles\MicrosoftSQLServer\MSSQL.2\MSSQL\Data目录下存放student数据库的数据文件和日志文件。关系模式的三级体系结构(续)第二章关系模型和关系运算第四十二页,共一百一十三页,2022年,8月28日

三、关系模型的完整性规则关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。第二章关系模型和关系运算第四十三页,共一百一十三页,2022年,8月28日

(一)实体完整性1、实体完整性规则(EntityIntegrity)定义

若属性A是基本关系R的主属性,则属性A不能取空值。例2.8:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE属性为主码(假设研究生不会重名),则其不能取空值。第二章关系模型和关系运算第四十四页,共一百一十三页,2022年,8月28日

实体完整性示例说明Teacher关系第二章关系模型和关系运算第四十五页,共一百一十三页,2022年,8月28日保存时提示错误信息第二章关系模型和关系运算第四十六页,共一百一十三页,2022年,8月28日

实体完整性(续)

2、关系模型必须遵守实体完整性规则的原因实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。现实世界中的实体都是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。第二章关系模型和关系运算第四十七页,共一百一十三页,2022年,8月28日实体完整性(续)3、注意实体完整性规则规定基本关系的所有主属性都不能取空值。例2.9:

学生选课关系:选修(学号,课程号,成绩)“学号、课程号”为主码,则“学号”和“课程号”两个属性都不能取空值。

第二章关系模型和关系运算第四十八页,共一百一十三页,2022年,8月28日

(二)参照完整性1、关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例2.10学生实体、专业实体以及专业与学生间的一对多联系学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)第二章关系模型和关系运算第四十九页,共一百一十三页,2022年,8月28日关系间的引用(续)学生专业第二章关系模型和关系运算第五十页,共一百一十三页,2022年,8月28日关系间的引用(续)例2.11学生、课程、学生与课程之间的多对多联系。学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)第二章关系模型和关系运算第五十一页,共一百一十三页,2022年,8月28日

学生学生选课课程第二章关系模型和关系运算关系间的引用(续)第五十二页,共一百一十三页,2022年,8月28日关系间的引用(续)例2.12学生实体及其内部的领导联系(一对多)

学生(学号,姓名,性别,专业号,年龄,班长)第二章关系模型和关系运算第五十三页,共一百一十三页,2022年,8月28日关系间的引用(小结)第二章关系模型和关系运算参照关系被参照关系学生关系专业关系专业号学生关系选修关系课程关系学号课程号学生关系学号第五十四页,共一百一十三页,2022年,8月28日参照完整性(续)参照完整性规则就是定义外键与主键之间的引用规则。2、参照完整性规则定义若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值第二章关系模型和关系运算第五十五页,共一百一十三页,2022年,8月28日

参照完整性(续)说明关系R和S不一定是不同的关系。外键并不一定要与相应的主键同名。当外键与相应的主码属于不同关系时,往往取相同的名字,以便于识别。目标关系S的主键Ks和参照关系的外键F必须定义在同一个(或一组)域上。第二章关系模型和关系运算第五十六页,共一百一十三页,2022年,8月28日

参照完整性(续)例2.10中,学生关系中的“专业号”是专业关系的主码,但不是学生关系的码,因此,“专业号”是学生关系的外码。学生关系中每个元组的“专业号”属性只能取下面两类值:空值,表示尚未给该学生分配专业;非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中。第二章关系模型和关系运算第五十七页,共一百一十三页,2022年,8月28日

参照完整性规则(续)例2.11中,选修关系中的“学号”是学生关系的主码,选修关系中的“课程号”是课程关系的主码,但它们每个都不是选修关系的码;因此,“学号”和“课程号”都是选修关系的外码。

由于“学号”和“课程号”是选修关系中的主属性,按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值。第二章关系模型和关系运算第五十八页,共一百一十三页,2022年,8月28日

参照完整性规则(续)例2.12中,“班长”不是学生关系的码,但对应于学生关系的码“学号”,从而是学生关系的外码。“班长”属性值可以取两类值:空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长;非空值,这时该值必须是本关系中某个元组的学号值。第二章关系模型和关系运算第五十九页,共一百一十三页,2022年,8月28日

参照完整性(续)例2.13在产品关系中有下列两个关系模式:产品关系Products(ProductID,ProductName,UnitPrice,SupplierID,UnitsInstock)

订单明细关系:OrdersDetails(OrderID,ProductID,UnitPrice,Quantity)问题:(1)两个关系的主键是什么?(2)订单明细关系的外键是什么?其值能否为空?第二章关系模型和关系运算第六十页,共一百一十三页,2022年,8月28日例2.14设课程之间有先修、后续联系。关系模式如下:R(CourseID,Cname,PCourseID)问题:如果规定:每门课的直接先修课至多只有一门,那么关系R的主键是什么,外键是什么?外键能否为空?第二章关系模型和关系运算

参照完整性(续)第六十一页,共一百一十三页,2022年,8月28日如:第二章关系模型和关系运算

参照完整性(续)CourseIDCNamePCourseIDC01数据库系统原理C03C02数据库高级应用C01

C03数据结构C04信息系统开发C02第六十二页,共一百一十三页,2022年,8月28日

参照完整性示例说明学院关系建立学院关系和teacher关系的参照关系第二章关系模型和关系运算第六十三页,共一百一十三页,2022年,8月28日

参照完整性示例说明插入新的记录(所在学院属性值为4)结果第二章关系模型和关系运算第六十四页,共一百一十三页,2022年,8月28日

(三)用户定义的完整性用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需要由应用程序承担这一功能。第二章关系模型和关系运算第六十五页,共一百一十三页,2022年,8月28日

用户定义的完整性(续)例2.15:

课程(课程号,课程名,学分)“课程号”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值{1,2,3,4}第二章关系模型和关系运算第六十六页,共一百一十三页,2022年,8月28日第二章关系模型和关系运算2.1关系模型概述2.2关系数据结构及完整性约束2.3关系代数第二章关系模型和关系运算第六十七页,共一百一十三页,2022年,8月28日

第三节关系代数关系代数以一个或两个关系为输入,产生一个新的关系作为结果。关系代数运算的主要类型包括:传统的集合运算专门的关系运算

第二章关系模型和关系运算第六十八页,共一百一十三页,2022年,8月28日关系代数(续)关系运算符运算符含义运算符含义

集合运算符∪﹣∩×并差交笛卡尔积

比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于

专门的关系运算符

选择投影连接除

逻辑运算符非与或第二章关系模型和关系运算第六十九页,共一百一十三页,2022年,8月28日关系运算类型传统的关系运算(集合运算):并、差、交、(广义)笛卡尔积专门的关系运算:选择、投影、连接、除五种基本的关系运算:并、差、笛卡尔积、投影、选择。其他运算都可以用五种基本运算表示。第二章关系模型和关系运算关系代数(续)第七十页,共一百一十三页,2022年,8月28日

1、分量

设R(A1,A2,…,An)是关系模式,R是它的关系。tR表示t是R的一个元组。t[Ai]表示元组t在属性Ai上的一个分量。2、连接

设R是n目关系,S是m目关系。trR,tsS,trts称为元组tr和ts的连接或串接,它是一个n+m列的元组,前n个分量为tr,后m个分量为ts

。第二章关系模型和关系运算︵

一、若干记号第七十一页,共一百一十三页,2022年,8月28日若干记号(续)3、象集

给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,定义x在R中的象集为

Zx={t[Z]|tR,t[X]=x}

它表示R中属性组X的值为x的诸元组在Z上的分量的集合。第二章关系模型和关系运算第七十二页,共一百一十三页,2022年,8月28日

象集举例例如下图中,x1在R中的象集Zx1={Z1,Z2,Z3},

x2在R中的象集Zx2={Z2,Z3},

x3在R中的象集Zx3={Z1,Z3}Rx1

Z1x1Z2x1Z3x2Z2x2Z3x3Z1x3Z3第二章关系模型和关系运算第七十三页,共一百一十三页,2022年,8月28日二、传统的集合运算传统的集合运算都是二元运算。并、差、交要求两个运算对象具有相同的目n(即两个关系都有n个属性),

且相应的属性取自同一个域,t是元组变量,t∈R表示t是R的一个元组。1、并(Union)设R和S都是n目关系,R和S的并是由属于R或属于S的元组组成,即

R∪S={t|tRtS}第二章关系模型和关系运算第七十四页,共一百一十三页,2022年,8月28日

传统的集合运算(续)2、差(Difference)设R和S都是n目关系,R和S的差由属于R而不属于S的元组组成,即

R-S={t|tRtS}3、交(Intersection)设R和S都是n目关系,R和S的交由既属于R,又属于S的元组组成,即

R∩S={t|tRtS}第二章关系模型和关系运算第七十五页,共一百一十三页,2022年,8月28日

传统的集合运算(续)4、广义笛卡尔积(ExtendedCartesianProduct)设R和S分别为n目和m目关系,R和S的广义笛卡尔积是一个(n+m)目关系,其每个元组的前n个分量是关系R的一个元组,后m个分量是关系S的一个元组。 RS={trts|trRtsS}

若R和S分别有k1和k2个元组,则R和S的广义笛卡尔积有(k1*k2)个元组。第二章关系模型和关系运算︵第七十六页,共一百一十三页,2022年,8月28日

传统的集合运算的例子

ABCa1a1a2b1b2b2c1c2c1ABCa1a1a2b2b3b2c2c2c1ABCa1a1a2a1b1b2b2b3c1c2c1c2RSABCa1a2b2b2c2c1ABCa1b1c1R∪SR∩

SR-S第二章关系模型和关系运算第七十七页,共一百一十三页,2022年,8月28日传统的集合运算的例子(续)

R.AR.BR.CS.AS.BS.Ca1a1a1a1a1a1a2a2a2b1b1b1b2b2b2b2b2b2c1c1c1c2c2c2c1c1c1a1a1a2a1a1a2a1a1a2b2b3b2b2b3b2b2b3b2c2c2c1c2c2c1c2c2c1RS第二章关系模型和关系运算第七十八页,共一百一十三页,2022年,8月28日三、专门的关系运算1、选择(Selection)

由关系R中选择满足条件F的元组,记作F(R)

F(R)={t|tRF(t)=‘真’}其中,F是逻辑表达式,F中的运算对象为属性名(或属性序号)、常量、函数,运算符可以为逻辑运算符、、,比较运算符、、=、、、。F(R)表示从R中选择满足公式F的元组所构成的关系。选择又称限制(restriction),是一元运算。从行的角度进行运算。第二章关系模型和关系运算第七十九页,共一百一十三页,2022年,8月28日一个示例数据库

学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001950029500395004李勇刘晨王敏张立男女女男20191819CSISMAISStudent课程号Cno课程名Cname先行课Cpno学分Ccredit1234567数据库数学信息系统操作系统数据结构数据处理PASCAL语言516764243424Course学号Sno课程号Cno成绩Grade9500195001950019500295002123239285889080SC第二章关系模型和关系运算第八十页,共一百一十三页,2022年,8月28日

选择查询的例子例2.16查询信息系(IS系)的全体学生

Sdept=‘IS’(Student)或5=‘IS’(Student)SnoSnameSsexSageSdept9500295004刘晨张立女男1919ISIS结果如下:

第二章关系模型和关系运算第八十一页,共一百一十三页,2022年,8月28日选择查询的例子

Sage<20(Student)或4<20(Student)SnoSnameSsexSageSdept950029500395004刘晨王敏张立女女男191819ISMAIS例2.17查询年龄小于20的学生。结果如下:

第二章关系模型和关系运算第八十二页,共一百一十三页,2022年,8月28日例2.18查询年龄小于20岁的信息系的女同学。第二章关系模型和关系运算选择查询的例子

Sage<20∧Ssex=‘女’∧Sdept=‘IS’(Student)SnoSnameSsexSageSdept95002刘晨女19IS第八十三页,共一百一十三页,2022年,8月28日

专门的关系运算(续)2、投影(projection)关系R在属性列A上的投影是从R中选择属性列A组成新关系,记作A(R)

A(R)={t[A]|tR}

其中,A是属性名(号)的列表。投影是一元运算,从列的角度进行运算。由于去掉了原关系中的一些列,可能导致不相同的元组投影后相同,因此需要删除结果中的重复元组。第二章关系模型和关系运算第八十四页,共一百一十三页,2022年,8月28日

投影查询的例子例2.19查询学生的姓名和所在的系。

Sname,Sdept(Student)

或2,5(Student)

查询的结果如下:SnameSdept李勇刘晨王敏张立CSISMAIS第二章关系模型和关系运算第八十五页,共一百一十三页,2022年,8月28日

投影查询的例子(续)Sdept(Student)

或5(Student)

查询的结果如下:SdeptCSISMA例2.20查询关系Student中包含的系。第二章关系模型和关系运算第八十六页,共一百一十三页,2022年,8月28日

专门的关系运算(续)3、连接(Join)

是从两个关系的笛卡尔积中选择属性间满足一定条件的元组,记作:

其中A和B分别为R和S上度数相等且可比的属性组。是比较运算符(、、、、、)。连接运算从R和S的笛卡尔积R×S中选取R关系在A属性组上的值与S关系在B属性组上满足比较关系的元组。

︵第二章关系模型和关系运算第八十七页,共一百一十三页,2022年,8月28日连接(续)连接运算的类型:等值连接(Equijoin):为等号的连接运算。自然连接(Naturaljoin):

是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中去掉重复属性。设属性组B是关系R和S的相同属性。R和S在B上的自然连接记作:第二章关系模型和关系运算︵︵第八十八页,共一百一十三页,2022年,8月28日

连接运算举例例2.21求关系R、S的一般连接、等值连接、自然连接。ABCa1a1a2a2b1b2b3b456812BEb1b2b3b3b5371022AR.BCS.BEa1a1a1a1a2b1b1b2b2b355668b2b3b2b3b371071010RS第二章关系模型和关系运算RSC<E第八十九页,共一百一十三页,2022年,8月28日

连接运算举例(续)

AR.BCS.BEa1a1a2a2b1b2b3

b35688b1b2b3

b337102ABCEa1a1a2a2b1b2b3

b3568837102等值连接RS自然连接RS第二章关系模型和关系运算R.B=S.B第九十页,共一百一十三页,2022年,8月28日例2.22已知关系R和关系S,求、和。第二章关系模型和关系运算

连接运算举例(续)RSB<DRSR.A=S.CRSABC327465247733CD3236RSRSB<DABR.CS.CD27745224733323226366第九十一页,共一百一十三页,2022年,8月28日第二章关系模型和关系运算RSR.A=S.CRS

连接运算举例(续)ABR.CS.CD3265773236ABCD74243333一般连接:在两个关系的笛卡尔积中选取属性间的分量满足一定条件的元组。

等值连接:在两个关系的笛卡尔积中选取属性间分量值相等的元组。

自然连接:两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉。第九十二页,共一百一十三页,2022年,8月28日

专门的关系运算(续)4、除(Division)

给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须在相同的域上取值。R与S的商(除运算的结果),记作RS是一个新关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。

RS={tr[X]|trR

Yx}第二章关系模型和关系运算第九十三页,共一百一十三页,2022年,8月28日(1)除运算的步骤①计算S在属性组Y上的投影。②计算关系R在属性组X上的投影。③计算(2)结果中各元素在关系R中的象集。④判断各个象集与(1)中投影的包含关系,若某个象集包含S在属性组Y上的投影,则该象集对应的X上的分量值即为除运算的结果元素。第二章关系模型和关系运算除运算(续)第九十四页,共一百一十三页,2022年,8月28日

除运算举例例2.23已知关系R,S,求RS。ABCa1a2a3a1a4a2a1b1b3b4b2b6b2b2c2c7c6c3c6c3c1RBCDb1b2b2c2c1c3d1d1d2SRSAa1(2)关系R在A上的投影为{a1,a2,a3,a4}(3)(2)中各个元素的象集:a1的象集为{(b1,c2),(b2,c3)(b2,c1)}a2的象集为{(b3,c7),(b2,c3)}a3的象集为{(b4,c6)}a4的象集为{(b6,c6)}

(4)判断:a1的象集包含了S在(B,C)属性组上的投影,a1所在的元组为满足条件的元组。第二章关系模型和关系运算(1)S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c3)}满足条件的元组ABCa1a1a1b1b2b2c2c3c1第九十五页,共一百一十三页,2022年,8月28日(2)除法运算的含义

数学中一般整数除法运算:对于两个整数R和S,它们的除法运算R/S

是满足以下条件的最大整数Q。类似的在关系代数中对于关系R和S,它们的除法运算是满足以下条件的最大的一个关系实例Q。

即Q与的笛卡尔积应包含于关系R。其中除运算(续)第二章关系模型和关系运算第九十六页,共一百一十三页,2022年,8月28日

上例子中为{a1,a2,a3,a4}。

当Q分别等于{a1}、{a2}、{a3}、{a4}时,的结果分别记为:R1

R2

R3

R4显然,只有R1

是包含于R的,因而Q={a1}是满足条件的最大的关系实例,也即为。第二章关系模型和关系运算除运算含义(续)ABCa1a1a1b1b2b2c2c1c3ABCa2a2a2b1b2b2c2c1c3ABCa3a3a3b1b2b2c2c1c3ABCa4a4a4b1b2b2c2c1c3第九十七页,共一百一十三页,2022年,8月28日(3)除法运算的基本运算符等效表达形式根据关系除法本质含义,可以看出的求解过程即为在的集合中选择满足下列条件的元素x:这个过程等价于将中不满足以上条件的元素剔除。对于中的元素,若使得Q={x}时不能满足条件,则该元素应被剔除。相应地,这些应被剔除的元素集合可以通过下列公式获得:因而的基本运算符表达式即为:

第二章关系模型和关系运算除运算(续)第九十八页,共一百一十三页,2022年,8月28日除法运算的等效表达形式(续)Aa1a2a3a4第二章关系模型和关系运算BCb1b2b2c2c1c3ABCa1a1a1a2a2a2a3a3a3a4a4a4b1b2b2b1b2b2b1b2b2b1b2b2c2c1c3c2c1c3c2c1c3c2c1c3ABCa2a2a3a3a3a4a4a4b1b2b1b2b2b1b2b2c2c1c2c1c3c2c1c3第九十九页,共一百一十三页,2022年,8月28日例2.24求选修了2号课程的学生的学号。Sno(Cno=‘2’(SC))专门的关系运算(续)第二章关系模型和关系运算学号Sno课程号Cno成绩Grade95001950019500195002950021232392858890805、综合应用举例第一百页,共一百一十三页,2022年,8月28日例2.25查询学生95001的姓名和所在系。

πSname,Sdept

(σSno=‘95001’(Student))

第二章关系模型和关系运算综合应用举例(续)学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001950029500395004李勇刘晨王敏张立男女女男20191819CSISMAIS第一百零一页,共一百一十三页,2022年,8月28日例2.26查询选修了1号课程的学生姓名。Student(Sno,Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno)SC(Sno,Cno,Grade)

πSname(σCno=’1’

(Student

SC))第二章关系模型和关系运算综合应用举例(续)第一百零二页,共一百一十三页,2022年,8月28日例2.27查询至少选修了两门课程的学生学号。SC×SC的部分元组

πSno

(σ1=4∧2≠5(SC×SC))第二章关系模型和关系运算学号Sno课程号Cno成绩Grade学号Sno课程号Cno成绩Grade9500195001950019500195001950029500295002950029500211111222229292929292909090909095001950019500195002950029500195001950019500295002123231232392858890809285889080综合应用举例(续)学号Sno课程号Cno成绩Grade9500195001950019500295002123239285889080第一百零三页,共一百一十三页,2022年,

温馨提示

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

评论

0/150

提交评论