




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统概论AnIntroductiontoDatabaseSystem第2章关系数据库1/29/2025AnIntroductiontoDatabaseSystem第2章关系数据库2.0引言_关系数据库简介2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结1/29/2025AnIntroductiontoDatabaseSystem2.0关系数据库简介系统而严格地提出关系模型的是美国IBM公司的E.F.Codd1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970(1983年ACM将该文列为自1958年以来四分之一世纪中具有里程碑意义的25篇研究论文之一)。之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式关系数据库应用数学方法来处理数据库中的数据80年代后,关系数据库系统成为最重要、最流行的数据库系统1/29/2025AnIntroductiontoDatabaseSystem典型实验系统SystemR(IBM,SanJose实验室,IBM370)UniversityINGRES(加州大学,伯克利)典型商用系统SQLServerORACLESYBASEINFORMIXDB2INGRES(由UniversityINGRES发展成的数据库产品)2.0关系数据库简介1/29/2025AnIntroductiontoDatabaseSystem第2章关系数据库2.0引言_关系数据库简介2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结1/29/2025AnIntroductiontoDatabaseSystem2.1关系模型概述关系数据库系统是支持关系模型的数据库系统关系模型的要素关系数据结构关系操作集合关系完整性约束1/29/2025AnIntroductiontoDatabaseSystem1.关系数据结构单一的数据结构----关系在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。虽然简单,但能表达丰富的语义。数据的逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是一张扁平的二维表。
2.1关系模型概述1/29/2025AnIntroductiontoDatabaseSystem1)常用的关系操作查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改查询的表达能力是其中最主要的部分2)关系操作的特点集合操作方式,即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录文件系统的数据操作方式也是记录方式2.关系操作集合2.1关系模型概述1/29/2025AnIntroductiontoDatabaseSystem3)关系数据语言的种类关系代数语言:用对关系的运算来表达查询要求
用对关系的运算来表达查询要求典型代表:ISBL关系演算语言:用谓词来表达查询要求元组关系演算语言谓词变元的基本对象是元组变量典型代表:APLHA,QUEL域关系演算语言
谓词变元的基本对象是域变量典型代表:QBE具有关系代数和关系演算双重特点的语言典型代表:SQL2.关系操作集合2.1关系模型概述ISBL(InformationSystemBaseLanguage)由IBMUnitedKingdom研究中心研制用于PRTV(PeterleeRelationalTestVehicle)实验系统
1/29/2025AnIntroductiontoDatabaseSystem4)关系数据语言的特点关系语言是一种高度非过程化的语言存取路径的选择由RDBMS的优化机制来完成用户不必用循环结构就可以完成数据操作能够被嵌入到高级语言中使用关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价2.关系操作集合2.1关系模型概述1/29/2025AnIntroductiontoDatabaseSystem实体完整性通常由关系系统自动支持参照完整性早期系统不支持,目前大型系统能自动支持用户定义的完整性反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束用户定义后由系统支持前两种完整性是关系模型必须满足的两个约束条件,又称为关系的“不变性”3.关系的三类完整性约束2.1关系模型概述1/29/2025AnIntroductiontoDatabaseSystem第2章关系数据库2.0引言_关系数据库简介2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结1/29/2025AnIntroductiontoDatabaseSystem关系模型建立在集合代数的基础上,这里从集合论角度给出关系数据结构的一些基本概念的形式化定义;关系数据结构的基本概念关系的引入关系模式关系数据库2.2关系数据结构1/29/2025AnIntroductiontoDatabaseSystem
域(Domain)
定义2.1:域是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数指定长度范围(如小于或等于8字节)的字符串集合{‘男’,‘女’}介于某个取值范围的日期2.2.1关系的引入_域2.2关系数据结构我们将在此引入域、笛卡尔积和关系的概念及相应的子概念1/29/2025AnIntroductiontoDatabaseSystem笛卡尔积(CartesianProduct)
定义2.2:给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di
Di,i=1,2,…,n}它是所有域的所有取值的不同组合必须且只需出现一次的一系列值的集合2.2关系数据结构2.2.1关系的引入_笛卡尔积1/29/2025AnIntroductiontoDatabaseSystem[例1]给出三个域:
D1=SUPERVISOR={张清玫,刘逸}
D2=SPECIALITY={计算机专业,信息专业}D3=POSTGRADUATE={李勇,刘晨,王敏}
则D1,D2,D3的笛卡尔积为:
D1×D2×D3={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),
(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),
(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),
(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),
(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),
(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)}2.2关系数据结构2.2.1关系的引入_笛卡尔积1/29/2025AnIntroductiontoDatabaseSystem元组(Tuple)笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。分量(Component)笛卡尔积元素(d1,d2,…,dn
)中的每一个值di叫作一个分量基数(Cardinalnumber)若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:
在上例中,基数:2×2×3=12,即D1×D2×D3共有2×2×3=12个元组
2.2关系数据结构2.2.1关系的引入_笛卡尔积1/29/2025AnIntroductiontoDatabaseSystem笛卡尔积的表示方法笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。在上例中,12个元组可列成一张二维表如右:2.2关系数据结构2.2.1关系的引入_笛卡尔积1/29/2025AnIntroductiontoDatabaseSystem关系(Relation)
2.2关系数据结构2.2.1关系的引入_关系定义2.3:D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为
:
R(D1,D2,…,Dn)
R:关系名
n:关系的目或度(Degree),当n=1时,该关系称为单元关系(Unaryrelation);当n=2时,称该关系为二元关系(Binaryrelation)1/29/2025AnIntroductiontoDatabaseSystem注意:关系是笛卡尔积的有限子集,无限关系在数据库系统中是无意义的;关系也是一张二维表,表的每一行对应一个元组,通常用t表示,每一列对应一个域;在关系模型中,关系的每一个元组都要有实际意义;在数学上,笛卡尔积不满足交换律,即
(d1,d2,…,dn)≠(d2,d1,…,dn)
但关系要扩充为满足交换律,即(d1,d2,…,di
,dj
,…,dn)=(d1,d2,…,dj,di
,…,dn)(i,j=1,2,…,n)
解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem例在表2.1的笛卡尔积中取出有实际意义的元组来构造关系关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假设:导师与专业:1:1,导师与研究生:1:n于是:SAP关系可以包含三个元组
{(张清玫,计算机专业,李勇),
(张清玫,计算机专业,刘晨),
(刘逸,信息专业,王敏)}
2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem关系的表示关系与笛卡尔积一样,也表示为一个具有横行直列的二维表,表的每行对应一个元组,表的每列对应一个域。每一列有一个属性名(Attribute
),n目关系必然有n个不同的属性名:2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem码候选码(Candidatekey):若关系中的某一属性组的值能唯一地标识一个元组,且该属性组不包括多余的属性,则称该属性组为候选码。候选码的诸属性称为主属性(Primeattribute);不包含在任何侯选码中的属性称为非码属性或非主属性(Non-keyattribute)。在最简单的情况下,候选码只包含一个属性。全码(All-key):在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码(All-key)主码(Primekey)
若一个关系有多个候选码,则选定其中一个为主码(Primarykey)2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem关系的基本性质①
列是同质的(Homogeneous)每一列中的分量是同一类型的数据,来自同一个域②不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem前例中也可以只给出两个域:人(PERSON)=张清玫,刘逸,李勇,刘晨,王敏专业(SPECIALITY)=计算机专业,信息专业SAP关系的导师属性和研究生属性都从PERSON域中取值为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。例如定义:导师属性名为SUPERVISOR-PERSON(或SUPERVISOR)研究生属性名为POSTGRADUATE-PERSON(或POSTGRADUATE)2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem关系的基本性质(续)③
列的顺序无所谓列的次序可以任意交换遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列。但也有许多关系数据库产品没有遵循这一性质,例如VisualFoxPro仍然区分了属性顺序④任意两个元组不能完全相同
由笛卡尔积的性质决定。但许多关系数据库产品没有遵循这一性质。例如:Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem关系的基本性质(续)⑤
行的顺序无所谓行的次序可以任意交换。遵循这一性质的数据库产品(如ORACLE),插入一个元组时永远插至最后一行。但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了元组的顺序。⑥分量必须取原子值每一个分量都必须是不可分的数据项。这是规范条件中最基本的一条2.2关系数据结构2.2.1关系的引入_关系1/29/2025AnIntroductiontoDatabaseSystem1.什么是关系模式2.关系模式的形式化定义3.关系模式与关系2.2关系数据结构2.2.2关系模式1/29/2025AnIntroductiontoDatabaseSystem什么是关系模式关系模式(RelationSchema)是关系的型,关系是值关系模式是对关系的描述,包括元组集合的结构属性构成属性来自的域属性与域之间的映象关系元组语义以及完整性约束条件属性间的数据依赖关系集合
2.2关系数据结构2.2.2关系模式1/29/2025AnIntroductiontoDatabaseSystem关系模式的形式化定义关系模式可以形式化地表示为:
R(U,D,dom,F)
R关系名
U
组成该关系的属性名集合
D
属性组U中属性所来自的域
dom
属性向域的映象集合
F
属性间的数据依赖关系集合2.2关系数据结构2.2.2关系模式1/29/2025AnIntroductiontoDatabaseSystem关系模式的形式化定义(续)例:导师和研究生出自同一个域——人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域:dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON2.2关系数据结构2.2.2关系模式1/29/2025AnIntroductiontoDatabaseSystem关系模式的形式化定义(续)关系模式通常可以简记为
R(U)或R(A1,A2,…,An)
R关系名
A1,A2,…,An属性名注:域名及属性向域的映象常常直接说明为属性的类型、长度2.2关系数据结构2.2.2关系模式1/29/2025AnIntroductiontoDatabaseSystem关系模式与关系关系模式:是对关系的描述,静态的、稳定的关系:关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系,通过上下文加以区别2.2关系数据结构2.2.2关系模式1/29/2025AnIntroductiontoDatabaseSystem1.
关系数据库2.关系数据库的型与值2.2关系数据结构2.2.3关系数据库1/29/2025AnIntroductiontoDatabaseSystem关系数据库在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库的型与值关系数据库也有型和值之分
关系数据库的型称为关系数据库模式,是对关系数据库的描述:
若干域的定义在这些域上定义的若干关系模式
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库2.2关系数据结构2.2.3关系数据库1/29/2025AnIntroductiontoDatabaseSystem第2章关系数据库2.0引言_关系数据库简介2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结1/29/2025AnIntroductiontoDatabaseSystem关系模型的完整性规则是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。2.3关系的完整性1/29/2025AnIntroductiontoDatabaseSystem2.3关系的完整性2.3.1实体完整性实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值例:Student(Sno,Sname,Ssex,Sdept,),
其中’Sno‘属性为主码,则其不能取空值关系模型必须遵守实体完整性规则的原因(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系。(2)现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。(3)相应地,关系模型中以主码作为唯一性标识。(4)主属性若取空值(即‘不知道’或‘无意义’的值),就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性1/29/2025AnIntroductiontoDatabaseSystem注意实体完整性规则规定基本关系的所有主属性都不能取空值,如选修(学号,课程号,成绩),则“学号,课程”为主码,都不能取空值2.3关系的完整性2.3.1实体完整性1/29/2025AnIntroductiontoDatabaseSystem1.关系间的引用2.外码3.参照完整性规则2.3关系的完整性2.3.2参照完整性1/29/2025AnIntroductiontoDatabaseSystem关系间的引用:
在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用
例如:
学生实体、专业实体以及专业与学生间的一对多联系,在建立学生实体时,可能要引用专业实体中的专业号(见下页图)学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)外码设F是基本关系R的一个或一组属性,但不是关系R的(主)码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。如上例,属性“专业号”是“学生”实体的外码基本关系R称为参照关系(ReferencingRelation)基本关系S称为被参照关系(ReferencedRelation)或目标关系(TargetRelation)。2.3关系的完整性2.3.2参照完整性1/29/2025AnIntroductiontoDatabaseSystem学生专业1/29/2025AnIntroductiontoDatabaseSystem学生学生选课课程1/29/2025AnIntroductiontoDatabaseSystem说明关系R和S不一定是不同的关系目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名,但当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值。2.3关系的完整性2.3.2参照完整性1/29/2025AnIntroductiontoDatabaseSystem用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。2.3关系的完整性2.3.3用户定义的完整性1/29/2025AnIntroductiontoDatabaseSystem例:
课程(课程号,课程名,学分)“课程名”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值{1,2,3,4}2.3关系的完整性2.3.3用户定义的完整性1/29/2025AnIntroductiontoDatabaseSystem关系数据结构
关系域笛卡尔积关系关系,属性,元组候选码,主码,主属性基本关系的性质关系模式关系数据库小结1/29/2025AnIntroductiontoDatabaseSystem关系的数据操作集合查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改小结1/29/2025AnIntroductiontoDatabaseSystem小结关系的完整性约束实体完整性参照完整性外码用户定义的完整性1/29/2025AnIntroductiontoDatabaseSystem第2章关系数据库2.0引言_关系数据库简介2.1关系模型概述2.2关系数据结构2.3关系的完整性2.4关系代数2.5关系演算2.6小结1/29/2025AnIntroductiontoDatabaseSystem
概述
传统的集合运算专门的关系运算2.4关系代数1/29/2025AnIntroductiontoDatabaseSystem2.4.1概述2.4关系代数关系代数:
一种抽象的查询语言,用对关系的运算来表达查询关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类(参见P52表2.4)集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作1/29/2025AnIntroductiontoDatabaseSystem集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义表2.4关系代数运算符
2.4.1概述2.4关系代数1/29/2025AnIntroductiontoDatabaseSystem专门的关系运算符σπ
÷选择投影连接除逻辑运算符
∧∨非与或运算符含义运算符含义表2.4关系代数运算符(续)
2.4.1概述2.4关系代数1/29/2025AnIntroductiontoDatabaseSystem2.4.1概述2.4关系代数约定(1)R,t
R,t[Ai]
设关系模式为R(A1,A2,…,An),则tR表示t是R的一个元组(为了表示t与R的关系,有时也把t记为tr
),t[Ai]则表示元组t相应于属性Ai的一个分量;(2)A,t[A],A
若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。1/29/2025AnIntroductiontoDatabaseSystem
2.4.1概述2.4关系代数约定(续)(3)tr
ts
R为n目关系,S为m目关系。tr
R,ts
S,tr
ts
称为元组的连接。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组(4)象集Zx
给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:
Zx={t[Z]|t
R,t[X]=x}
它表示R中属性组X上值为x的诸元组在Z上分量的集合。(示例参见P55图2.3)1/29/2025AnIntroductiontoDatabaseSystem2.4.2传统的集合运算2.4关系代数并(Union)
假设:
R和S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则:
R∪S={t|t
R∨t
S}
说明:
1、R∪S是由属于R或属于S的元组组成的关系;
2、R∪S仍为n目关系。ABCa1b1c1a1b2c2a2b2c1RABCa1b2c2a1b3c2a2b2c1SABCa1b1c1a1b2c2a1b3c2a2b2c1R∪S
1/29/2025AnIntroductiontoDatabaseSystem差(Difference)
假设:
R和S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则:
R-S={t|t
R∧t
S}
说明:
1、R-S是由属于R但不属于S的所有元组组成的关系;
2、R-S仍为n目关系。
2.4.2传统的集合运算2.4关系代数ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCa1b1c1R-S
1/29/2025AnIntroductiontoDatabaseSystem交(Intersection)假设:
R和S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则:
R∩S={t|t
R∧t
S}
说明:
1、R∩S是由既属于R又属于S的元组组成的关系;
2、R∩S仍为n目关系,且可以用差来表示。
R∩S=R–(R-S)2.4.2传统的集合运算2.4关系代数ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCa1b2c2a2b2c1R∩S
1/29/2025AnIntroductiontoDatabaseSystem广义笛卡尔积(ExtendedCartesianProduct)假设:
R为n目关系,有k1个元组,S为m目关系,有k2个元组,则:
R×S={tr
ts|tr
R∧ts
S}
说明:1、R×S为(n+m)目关系,其元组的前n列是关系R的一个元组,后m列是关系S的一个元组;2、R×S共有k1×k2个元组。2.4.2传统的集合运算2.4关系代数ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1R×S
1/29/2025AnIntroductiontoDatabaseSystem选择(Selection)2.4.3专门的关系运算2.4关系代数定义:若R是一个关系,则在关系R中选出满足给定条件的诸元组构成一个新的关系的操作称为选择,新的关系记为σF(R),即:
σF(R)={t|t
R∧F(t)='真'}
说明:
1)选择又称为限制(Restriction);
2)F:选择条件,是一个逻辑表达式,基本形式为:
X1θY1
其中:θ:比较运算符(>,≥,<,≤,=或<>)
X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;
3)选择运算是从行的角度进行的运算。σ1/29/2025AnIntroductiontoDatabaseSystem
举例:设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC如下。2.4.3专门的关系运算2.4关系代数选择(Selection)(续)SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS
Student例1例2例4例3例9(a)例101/29/2025AnIntroductiontoDatabaseSystem学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380(b)Course课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学
23信息系统144操作系统635数据结构746数据处理
27PASCAL64SC(c)例72.4.3专门的关系运算2.4关系代数选择(Selection)(续)例91/29/2025AnIntroductiontoDatabaseSystem[例1]查询信息系(IS)全体学生
σSdept
='IS'(Student)
或σ5='IS'(Student)
结果:SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS2.4.3专门的关系运算2.4关系代数选择(Selection)(续)1/29/2025AnIntroductiontoDatabaseSystem[例2]查询年龄小于20岁的学生
σSage<20(Student)
或
σ4<20(Student)
结果:
SnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19IS
2.4.3专门的关系运算2.4关系代数选择(Selection)(续)1/29/2025AnIntroductiontoDatabaseSystem定义:若R是一个关系,则在关系R中选出若干列组成一个新的关系的操作称为投影,新的关系记为πA(R)
,即:
πA(R)={t[A]|t
R}
说明:1)A:R中的属性列;
2)投影操作主要是从列的角度进行运算,但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)
投影(Projection)2.4.3专门的关系运算2.4关系代数π1/29/2025AnIntroductiontoDatabaseSystem[例3]查询学生的姓名和所在系( 即求Student关系上学生姓名和所在系两个属性上的投影)
πSname,Sdept(Student)
或π2,5(Student)
结果:2.4.3专门的关系运算2.4关系代数投影(Projection)(续)SnameSdept李勇CS刘晨IS王敏MA张立IS1/29/2025AnIntroductiontoDatabaseSystem[例4]查询学生关系Student中都有哪些系
πSdept(Student)
结果:SdeptCSISMA2.4.3专门的关系运算2.4关系代数投影(Projection)(续)1/29/2025AnIntroductiontoDatabaseSystem定义:若R和S是两个关系,则在广义笛卡尔积R×S中选取属性间满足一定条件的元组以构成一个新的关系的操作称为连接,新的关系记为R
S
,即:
RS={|tr
R∧ts
S∧tr[A]θts[B]}
说明:1)A和B:分别为R和S上度数相等且相应可比的属性组
θ:比较运算符
2)连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组;
3)连接操作从行的角度运算。
AθBtr
ts2.4.3专门的关系运算2.4关系代数连接(Join)
AθB
AθBRS1/29/2025AnIntroductiontoDatabaseSystem两类常用连接运算等值连接(equijoin):θ为“=”的连接运算称为等值连接
等值连接从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
RS={|tr
R∧ts
S∧tr[A]=ts[B]}A=Btr
ts2.4.3专门的关系运算2.4关系代数连接(Join)(续)1/29/2025AnIntroductiontoDatabaseSystem两类常用的连接运算自然连接(Naturaljoin)
自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉R和S具有相同的属性组B
R
S={|tr
R∧ts
S∧tr[B]=ts[B]}一般连接操作是从行的角度运算,而自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
tr
ts2.4.3专门的关系运算2.4关系代数连接(Join)(续)1/29/2025AnIntroductiontoDatabaseSystem[例5]关系R和S如右上图,则RS如右下图:ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS2.4.3专门的关系运算2.4关系代数连接(Join)(续)
C<EAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310
C<ERS1/29/2025AnIntroductiontoDatabaseSystem
[例5](续)等值连接如右图,自然连接如下图:
R.B=S.B
AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b322.4.3专门的关系运算2.4关系代数连接(Join)(续)ABCEa1b153a1b267a2b3810a2b382
RSRS1/29/2025AnIntroductiontoDatabaseSystem学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380
先回顾一下我们前面给出的象集的概念:给定一个关系R(X,Z),X和Z为R的属性组。当t[X]=x时,x在R中的象集(ImagesSet)为:
Zx={t[Z]|t
R,t[X]=x}
它表示R中属性组X上值为x的诸元组在Z上分量的集合。例如,在如右所示的选课表SC中,设X={Sno},Z={Cno}x=“95001”,则:Zx={1,2,3}2.4.3专门的关系运算2.4关系代数除(Division)SC1/29/2025AnIntroductiontoDatabaseSystem下面我们给出除的定义定义:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组,R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。则称将R中满足下列条件P的元组在X属性列上的投影所得到的新关系为R与S的除,记为R÷S,有:
R÷S={tr[X]|tr
R∧πY(S)
Yx}
说明:1)
R÷S是R在X上的某些分量构成的新关系;
2)P:元组在X上分量值x的象集Yx包含S在Y上投影的集合。
Yx:x在R中的象集,x=tr[X]3)除操作是同时从行和列的角度运算的2.4.3专门的关系运算2.4关系代数除(Division)(续)P÷RS1/29/2025AnIntroductiontoDatabaseSystemABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RS2.4.3专门的关系运算2.4关系代数除(Division)(续)[例6](p59)R÷S
Aa11/29/2025AnIntroductiontoDatabaseSystem
显然:在R中X={A},Y={B,C};在S中Y={B,C},Z={D}在关系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,C)属性组上的投影所以:R÷S={a1},写成的关系见上页图2.4.3专门的关系运算2.4关系代数除(Division)(续)1/29/2025AnIntroductiontoDatabaseSystem再以SC例(P60),如图[例7]查询至少选修1号课程和3号课程的学生号码
首先建立一个临时关系K:然后求:πSno,Cno(SC)÷K
95001象集{1,2,3} 95002象集{2,3}
πCno(K)={1,3}
于是:πSno,Cno(SC)÷K={95001}
Cno
1
32.4.3专门的关系运算2.4关系代数除(Division)(续)学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380SCSnoCno950011950012950013950022950023KπSno,Cno(SC)1/29/2025AnIntroductiontoDatabaseSystem[
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025云原生服务网格智能运维与大数据分析服务合同
- 2025智能制造业债权转股权及产业全面升级战略合作合同
- 2025年石渣资源化利用与环保运输综合服务合同
- 2025年债转股投资合作合同范本及风险管理体系构建
- 2025年人工智能技术研发合作合同:智能机器人产业投资协议
- 2025年现代化车间设备租赁及高级维修技术培训服务合同
- 2025虚拟偶像艺人经纪代理及推广服务合同
- 2025年智慧旅游产业园区规划与运营管理服务协议
- 2025年非金属矿物制品合作协议书
- 2025云南特色小镇文化旅游融合项目施工与监理合同
- 2021众海H6320火灾报警控制器(联动型)
- 南京一中实验学校语文新初一分班试卷含答案
- 新版人教版高中英语选修一、选修二词汇表
- 九型人格完整版课件
- 六年级上册语文第4课《花之歌》同步练习(含答案)
- 社会工作者考试题库及答案
- 2023年江西美术出版社七、八、九年级美术基础知识测试试卷
- 2022年北海市铁山港区审计局审计业务人员招聘笔试试题及答案
- 动物协检员聘用合同协议书范本
- 连续下降最后进近CDFA培训
- 施工现场每周安全质量检查记录
评论
0/150
提交评论