关系数据库系统模型_第1页
关系数据库系统模型_第2页
关系数据库系统模型_第3页
关系数据库系统模型_第4页
关系数据库系统模型_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

关系数据库系统模型第一页,共一百零三页,2022年,8月28日第3章关系数据库系统模型3.1关系数据模型3.2关系模型的完整性规则3.3关系代数的基本运算3.4关系演算

第二页,共一百零三页,2022年,8月28日3.1关系数据模型

3.1.1关系模式

形式化地表示为:R(U,D,DOM,F)

R-关系名;

U-组成该关系的属性名集合;

D-属性组U中属性所来自的域;

DOM---属性向域的映像集合;

F-属性间数据的依赖关系集合。关系模式通常可以简记为R(U)或R(A1,A2,…,An),其中,R为关系名,A1,A2,…,An为属性名。第三页,共一百零三页,2022年,8月28日1.关系单一的数据结构----关系现实世界的实体以及实体间的各种联系均用关系来表示逻辑结构----二维表从用户角度,关系模型中数据的逻辑结构是一张二维表第四页,共一百零三页,2022年,8月28日1.关系学号(SNO)姓名(SNAME)性别(SEX)年龄(AGE)系别(SDEPT)1105054208张三F18CS1105054323李四M19IS1104014109王五M20CS表3-1学生表第五页,共一百零三页,2022年,8月28日关系模型术语

在关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系模式。记录称为元组,元组的集合称为关系或实例。关系中属性个数称为元数,元组个数称为基数。关系中每一个属性都有一个取值范围,称为属性的值域。每一个属性列对应一个值域,不同的属性可对应于同一值域。第六页,共一百零三页,2022年,8月28日关系的特点

(1)关系可以看成是由行和列交叉组成的二维表格。它表示的是一个实体集合。(2)表中一行称为一个元组,可用来表示实体集中的一个实体。(3)表中的列称为属性,给每一列起一个名称即属性名,表中的属性名不能相同。(4)列的取值范围称为域,同列具有相同的域。例如,年龄为整数域。(5)表中任意两行(元组)不能相同。

第七页,共一百零三页,2022年,8月28日关系的性质

严格地说,关系是一种规范化的二维表格,具有如下性质:列是同质的:每一列中的分量是同一类型的数据,来自同一域。不同列可来自同一个域:不同列(属性)要给予不同的属性名。列的顺序无所谓:列的次序可以任意交换。任意两个元组不能完全相同:这是由笛卡儿积的性质决定的。行的顺序无所谓:行的次序可以任意交换。分量必须取原子值:每一个分量都必须是不可分的数据项。第八页,共一百零三页,2022年,8月28日2.关键码和表之间的联系超键在一个关系中,能唯一标识元组的属性或属性集称为关系的超键。候选键如果一个属性集能唯一标识元组,且又不含有多余的属性,那么这个属性集称为关系的候选键。主键若一个关系中有多个候选键,则选其中的一个为关系的主键。包含在任何一个候选键中的属性称为主属性,不包含在任何键中的属性称为非主属性或非键属性。外键关系模式R1中的某一属性(或属性组)F与关系模式R2的主键相对应,但不是R1的超键,则称F是关系模式R1的外键。其中,基本关系R1称为参照关系;基本关系R2称为被参照关系或目标关系。第九页,共一百零三页,2022年,8月28日2.关键码和表之间的联系例如:学生关系

(SNO,SNAME,SEX,AGE,SDNO)

系部关系

(SDNO,SDNAME,CHAIR)

学生关系的主键是SNO,系部关系的主键为SDNO,在学生关系中,SDNO是它的外键。学生关系为参照关系,系部关系为被参照关系。第十页,共一百零三页,2022年,8月28日3.关系模式、关系子模式和存储模式

关系模型基本上遵循数据库的三级体系结构。在关系模型中,概念模式是关系模式的集合,外模式是关系子模式的集合,内模式是存储模式的集合。第十一页,共一百零三页,2022年,8月28日(1)关系模式关系模式是对关系的描述,它包括模式名,组成该关系的诸属性名、值域名和模式的主键。具体的关系称为实例。【例3-1】图3-2是一个教务管理子系统的实体联系图。学生实体的属性SNO、SNAME、SEX、AGE、SDEPT;课程实体的属性CNO、CNAME、CDEPT、TNAME。学生关系用S表示,课程关系用C表示。S和C之间有m:n的联系(一个学生可选多门课程,一门课程可以被多个学生选修),联系类型SC的属性成绩用GRADE表示。

第十二页,共一百零三页,2022年,8月28日(1)关系模式SCSCSNAMESNOSDEPTAGESEXGRADECNOCNAMECDEPTETNAME图3-2实体联系图m学生关系模式S(SNO,SNAME,SEX,AGE,SDEPT)选修关系模式SC(SNO,CNO,GRADE)课程关系模式C(CNO,CNAME,CDEPT,TNAME)n第十三页,共一百零三页,2022年,8月28日SNOSNAMESEXAGESDEPTS1张莉F18CSS2李强M19ISS3王刚M20CSSNOCNOGRADES1C180S2C290⋮⋮⋮表3-2关系模式集的三个具体关系CNOCNAMECDEPTTNAMEC1数据库IS刘军C2微机原理CS杨林C3编译原理CS王娟(a)学生关系

(c)选修关系

(b)课程关系第十四页,共一百零三页,2022年,8月28日

(2)关系子模式关系子模式是用户所需数据结构的描述,其中包括这些数据来自哪些模式和应满足哪些条件。【例3-2】用户需要用到成绩子模式F(SNO,SNAME,CNO,GRADE)。子模式F对应的数据来源于表S和表SC,构造时应满足它们的SNO值相等。

第十五页,共一百零三页,2022年,8月28日(3)存储模式存储模式描述了关系是如何在物理存储设备上存储的。关系存储时的基本组织方式是文件。

第十六页,共一百零三页,2022年,8月28日3.1.2关系操作基本的关系操作关系操作采用集合操作方式,即操作的对象和结构都是集合。关系模型中常用的关系操作包括:

(1)传统的集合运算:并、交、差和广义笛卡尔积。

(2)专门的关系运算:选择、投影、连接、除。

(3)有关的数据操作:查询、插入、删除、修改。第十七页,共一百零三页,2022年,8月28日关系操作的特点

是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合(set-at-time)的方式。第十八页,共一百零三页,2022年,8月28日关系数据库语言的分类关系代数语言用对关系的运算来表达查询要求代表:ISBL关系演算语言:用谓词来表达查询要求元组关系演算语言谓词变元的基本对象是元组变量代表:APLHA,QUEL域关系演算语言谓词变元的基本对象是域变量代表:QBE具有关系代数和关系演算双重特点的语言代表:SQL(StructuredQueryLanguage)第十九页,共一百零三页,2022年,8月28日3.2关系模型的完整性规则3.2.1关系的三类完整性约束3.2.2实体完整性3.2.3参照完整性3.2.4用户定义的完整性第二十页,共一百零三页,2022年,8月28日3.2.1关系的三类完整性约束实体完整性和参照完整性:

关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持用户定义的完整性:

应用领域需要遵循的约束条件,体现了具体领域中的语义约束第二十一页,共一百零三页,2022年,8月28日3.2.2实体完整性实体完整性规则(EntityIntegrity)若属性A是基本关系R的主属性,则属性A不能取空值例:在学生关系S中,“学号”为主码,则它不能取空值。如选课关系SC中,“学号”与“课程号”为主码,则两个属性都不能取空值。

第二十二页,共一百零三页,2022年,8月28日实体完整性(续)实体完整性规则的说明(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性第二十三页,共一百零三页,2022年,8月28日3.2.3参照完整性在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1学生实体、系别实体学生(学号,姓名,性别,系别号,年龄)系别(系别号,系名)主码主码学生关系引用了系别关系的主码“系别号”。系别关系中的“系别号”值必须是确实存在的系的系别号,即系别关系中有该系别的记录。第二十四页,共一百零三页,2022年,8月28日3.2.3参照完整性(续)参照完整性规则 若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值第二十五页,共一百零三页,2022年,8月28日参照完整性(续)[例]:学生关系中每个元组的“系别号”属性只取两类值:(1)空值,表示尚未给该学生分配系(2)非空值,这时该值必须是系别关系中某个元组的“系别号”值,表示该学生不可能分配一个不存在的系第二十六页,共一百零三页,2022年,8月28日3.2.4用户定义的完整性针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能第二十七页,共一百零三页,2022年,8月28日3.2.4用户定义的完整性(续)例:

课程(课程号,课程名,学分)“课程号”属性必须取唯一值非主属性“课程名”也不能取空值“学分”属性只能取值{1,2,3,4}第二十八页,共一百零三页,2022年,8月28日集合运算符∪-∩×并差交笛卡尔积比较运算符>≥<≤=<>大于大于等于小于小于等于等于不等于运算符含义运算符含义表关系代数运算符

3.3关系代数的基本运算第二十九页,共一百零三页,2022年,8月28日专门的关系运算符σπ

÷选择投影连接除逻辑运算符∧∨非与或运算符含义运算符含义表关系代数运算符(续)

3.3关系代数的基本运算第三十页,共一百零三页,2022年,8月28日3.3关系代数的基本运算

传统的集合运算

专门的关系运算第三十一页,共一百零三页,2022年,8月28日3.3.1传统的集合运算首先给定两个关系R和S,分别表示参加运动会的跳高运动员和跳远运动员的学生信息,如表3-3表示关系R,表3-4表示关系S。姓名系性别李丽计算机女王强数学男张刚物理男姓名系性别陈芳外语女李丽计算机女赵铭网络工程男张刚物理男表3-3(关系R)跳高运动员表3-4(关系S)跳远运动员第三十二页,共一百零三页,2022年,8月28日1.并运算(Union)R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S

仍为n目关系,由属于R或属于S的元组组成

R∪S={t|t

R∨tS}第三十三页,共一百零三页,2022年,8月28日1.并运算(Union)姓名系性别李丽计算机女王强数学男张刚物理男陈芳外语女赵铭网络工程男表3-5R∪S实例:R∪S的结果为:参加了跳高项目或跳远项目的学生的集合

第三十四页,共一百零三页,2022年,8月28日2.差运算(Difference)R和S具有相同的目n相应的属性取自同一个域R-S

仍为n目关系,由属于R而不属于S的所有元组组成

R-S={t|tR∧tS}第三十五页,共一百零三页,2022年,8月28日2.差运算(Difference)R-S的结果为:参加跳高比赛而没有参加跳远比赛的学生集合姓名系性别王强数学男表3-6R-S第三十六页,共一百零三页,2022年,8月28日3.交运算(Intersection)R和S具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成

R∩S={t|t

R∧tS} R∩S=R–(R-S)第三十七页,共一百零三页,2022年,8月28日3.交运算(Intersection)R∩S的结果为:既参加了跳高比赛又参加了跳远比赛的学生集合姓名系性别李丽计算机女张刚物理男表3-7R∩S第三十八页,共一百零三页,2022年,8月28日4.广义笛卡尔积(CartesianProduct)

R:n目关系,k1个元组

S:m目关系,k2个元组

R×S

列:(n+m)列元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1×k2个元组R×S={tr

ts|tr

R∧tsS}第三十九页,共一百零三页,2022年,8月28日4.广义笛卡尔积(CartesianProduct)R.姓名R.系R.性别S.姓名S.系S.性别李丽计算机女陈芳外语女李丽计算机女李丽计算机女李丽计算机女赵铭网络工程男李丽计算机女张刚物理男王强数学男陈芳外语女王强数学男李丽计算机女王强数学男赵铭网络工程男王强数学男张刚物理男张刚物理男陈芳外语女张刚物理男李丽计算机女张刚物理男赵铭网络工程男张刚物理男张刚物理男表3-8R×S第四十页,共一百零三页,2022年,8月28日3.3.2专门的关系运算选择投影连接除第四十一页,共一百零三页,2022年,8月28日学生-课程关系数据库

学号姓名性别年龄系别110201陈芳女20外语110202李丽女19计算机110203赵铭男20网络工程110204张刚男18计算机学号课程号成绩110201185110202275110203290110201388110204476课程号课程名学分1排球

32篮球23网球34乒乓球25足球36羽毛球2表3-9(a)学生表(S)

表3-9(b)课程表(C)

表3-9(c)选修关系表(SC)第四十二页,共一百零三页,2022年,8月28日1.选择(Selection)

1)选择又称为限制(Restriction)2)选择运算符的含义在关系R中选择满足给定条件的诸元组

σF(R)={t|tR∧F(t)='真'}F:选择条件,是一个逻辑表达式,基本形式为:

X1θY1第四十三页,共一百零三页,2022年,8月28日选择(续)3)选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算σ第四十四页,共一百零三页,2022年,8月28日选择(续)【例3-5】查询全体女生的元组。

σ性别=‘女’(学生表)或σ3=‘女’(学生表)结果:学号姓名性别年龄系别110201陈芳女20外语110202李丽女19计算机第四十五页,共一百零三页,2022年,8月28日选择(续)【例3-6】查询年龄小于20岁学生的元组。

σ年龄<20(学生表)或σ4<20(学生表)

结果:

学号姓名性别年龄系别110202李丽女19计算机110204张刚男18计算机第四十六页,共一百零三页,2022年,8月28日2.投影(Projection)

1)投影运算符的含义从R中选择出若干属性列组成新的关系

πA(R)={t[A]|tR} A:R中的属性列

第四十七页,共一百零三页,2022年,8月28日2.投影(Projection)

2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)π第四十八页,共一百零三页,2022年,8月28日投影(续)【例3-7】查询学生关系在学生姓名和性别两个属性上的投影Π姓名,性别(学生表)或Π2,3(学生表)结果:姓名性别陈芳女李丽女赵铭男张刚男第四十九页,共一百零三页,2022年,8月28日投影(续)【例3-8】查询学生关系中有哪些系。系别外语计算机网络工程

结果如表3-11(b)所示。学生关系原来有四个元组,而投影结果取消了重复的信息系元组,因此只有三个元组。表3-11(b)第五十页,共一百零三页,2022年,8月28日3.连接(Join)

1)连接也称为θ连接2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组

RS={|tr

R∧ts

S∧tr[A]θts[B]}A和B:分别为R和S上度数相等且可比的属性组θ:比较运算符

连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组

AθBtrts第五十一页,共一百零三页,2022年,8月28日

连接(续)

3)两类常用连接运算等值连接(equijoin)什么是等值连接θ为“=”的连接运算称为等值连接等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:

RS={|tr

R∧tsS∧tr[A]=ts[B]}A=Btrts第五十二页,共一百零三页,2022年,8月28日

连接(续)

自然连接(Naturaljoin)

自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是相同的属性组在结果中把重复的属性列去掉自然连接的含义

R和S具有相同的属性组B

R

S={|trR∧tsS∧tr[B]=ts[B]}trts第五十三页,共一百零三页,2022年,8月28日连接(续)4)一般的连接操作是从行的角度进行运算。

自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

AθBRS第五十四页,共一百零三页,2022年,8月28日连接(续)【例3-9】设关系R﹑S分别为表3-12(a)(b)所示,求:

(1)(2)(3)RSABCa1b14a1b26a2b35a2b412BCDb143b257b31010b492b352表3-12(a)

表3-12(b)第五十五页,共一百零三页,2022年,8月28日连接(续)一般连接的结果如下:

AR.BR.CS.BS.CDa1b14b257a1b14b31010a1b26b257a1b26b31010a2b35b31010第五十六页,共一百零三页,2022年,8月28日连接(续)等值连接RS的结果如下:R.B=S.B

AR.BR.CS.BS.CDa1b14b143a1b26b257a2b35b31010a2b35b352a2b412b492第五十七页,共一百零三页,2022年,8月28日连接(续)

自然连接R

S的结果如下:

ABCDa1b143a2b352第五十八页,共一百零三页,2022年,8月28日4.除(Division)象集Zx

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

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

它表示R中属性组X上值为x的诸元组在Z上分量的集合。第五十九页,共一百零三页,2022年,8月28日4.除(Division)x1在R中的象集

Zx1

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

Zx2

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

Zx3={Z1,Z3}象集举例第六十页,共一百零三页,2022年,8月28日4.除(Division)

给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在

X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:

R÷S={tr[X]|tr

R∧πY(S)

Yx}Yx:x在R中的象集,x=tr[X]第六十一页,共一百零三页,2022年,8月28日除(续)2)除操作是同时从行和列角度进行运算

÷RS第六十二页,共一百零三页,2022年,8月28日除(续)[例6]设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c)第六十三页,共一百零三页,2022年,8月28日分析在关系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}第六十四页,共一百零三页,2022年,8月28日关系代数的扩充运算改名广义投影赋值外连接外部并半连接聚集第六十五页,共一百零三页,2022年,8月28日1.改名(Rename)改名也称重命名,是关系代数中一种常用的附加操作功能。改名运算的形式为:

ρs(A1,A2,…,An)(R),表示将关系R重命名为S,R中的属性依次重命名为A1,A2,…,An。如果只是希望将关系R改名成S而其属性名称保持不变,则此时改名运算可表示成为:ρs(R)。第六十六页,共一百零三页,2022年,8月28日1.改名(Rename)设给定关系R(A,B,C)和S(B,C,D),则R×S的属性应写成A、R.B、R.C、S.B、S.C、D,可以通过改名运算使其属性更为清晰,如将R×S写成R×ρs(X,Y,D)(S),则属性为A、B、C、X、Y、D。第六十七页,共一百零三页,2022年,8月28日2.广义投影(GeneralizedProjection)广义投影是投影运算的扩展。该运算允许在投影列表中使用算术函数来对投影进行扩展,其形式为:

ΠF1,F2,…,FK(R)

其中R为关系,F1,F2,…,FK是涉及关系R的属性和常量的算术表达式。第六十八页,共一百零三页,2022年,8月28日2.广义投影(GeneralizedProjection)【例3-11】给定职工关系

Employee(eno,name,department,age,sex,pay)

如要将年龄为40岁以上的职工工资上调10%,则可使用广义投影表示为:

Πeno,name,department,age,sex,pay*1.1(σage40(Employee))第六十九页,共一百零三页,2022年,8月28日3.赋值(Assignment)

赋值运算的形式为:S←R,表示将关系R的结果赋值给关系S,在后续运算中,S可以代表R进行运算。在关系代数的运算中,可以通过给临时关系变量赋值,将一个比较复杂的关系代数表达式分开书写成若干个简单的表达式。

第七十页,共一百零三页,2022年,8月28日3.赋值(Assignment)【例3-12】在关系Course中增添一门新课:

(9,艺术体操,2),可用赋值操作表示为:

Course←Course∪{9,艺术体操,2}

设学号为110203的学生因故退学,请在关系Student和SC中将其相关记录删除,可表示为:

Student←Student-(σsno=′110203′(Student))SC←SC-(σsno=′110203′(SC))第七十一页,共一百零三页,2022年,8月28日4.外连接(OuterJoin)外连接如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTERJOIN)。左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFTOUTERJOIN或LEFTJOIN)右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHTOUTERJOIN或RIGHTJOIN)。第七十二页,共一百零三页,2022年,8月28日4.外连接(OuterJoin)ABCabcbbfcadBCDbcdbceadbefg【例3-13】如表3-15(a)、(b)所示,给定关系R和S,则二者的自然连接、左外连接、右外连接和全外连接分别如表3-15(c)、(d)、(e)、(f)所示。ABCDabcdabcecadb(a)关系R

(b)关系S(c)自然连接第七十三页,共一百零三页,2022年,8月28日4.外连接(OuterJoin)ABCDabcdabcecadbbbfnullABCDabcdabcecadbnullefgABCDabcdabcecadbbbfnullnullefg(d)左外连接

(e)右外连接

(f)全外连接

第七十四页,共一百零三页,2022年,8月28日5.外部并(OuterUnion)外部并是并运算的扩展。外部并就是针对这一问题提出的一种扩展运算:设关系R和S的关系模式不同,则R和S的外部并是由R和S的所有属性组成(公共属性只取一次)的一种新关系,记为R∪S,该关系的元组由属于R或S的所有元组组成,同时元组在新增加的属性上填充空值(null)。

第七十五页,共一百零三页,2022年,8月28日5.外部并(OuterUnion)【例3-14】表3-15中关系R和S的外部并运算结果如表3-16所示。ABCDabcnullbbfnullcadnullnullbcdnullbcenulladbnullefg表3-16关系代数外部并运算结果

第七十六页,共一百零三页,2022年,8月28日6.半连接(Semi-join)半连接是建立在自然连接基础上的一种扩展运算。该运算的作用是从关系R中筛选出与关系S进行自然连接运算可以匹配的元组集合,记作R⋉S,其形式化定义为:

R⋉S=ΠR(R⋈S)即关系R和S的半连接是R和S的自然连接在R的所有属性上的投影。显然半连接不满足交换律,即R⋉S≠S⋉R。第七十七页,共一百零三页,2022年,8月28日6.半连接(Semi-join)【例3-15】表3-15中关系R和S的半连接运算结果如表3-17(a)、(b)所示。ABCabccadBCDbcdbceadb(a)R⋉S

(b)S⋉R

第七十八页,共一百零三页,2022年,8月28日7.聚集(Aggregate)聚集运算是指输入一个值的集合,然后根据该值的集合得到一个单一的值作为结果。常用的聚集运算有求最大值max、最小值min、平均值avg、求和sum和计数count等。第七十九页,共一百零三页,2022年,8月28日7.聚集(Aggregate)【例3-16】设有职工关系

Employee(eno,name,department,age,sex,pay)

进行以下查询。(1)计算男职工的平均年龄,则用聚集运算表示为:

avgage(σsex=′男′(Employee))(2)计算女职工的最高工资,则用聚集运算表示为:

maxpay(σsex=′女′(Employee))第八十页,共一百零三页,2022年,8月28日3.3.4关系代数表达式及其应用实例【例3-17】设教务管理数据库中有三个关系:学生关系S(SNO,SNAME,AGE,SEX)

选课关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)第八十一页,共一百零三页,2022年,8月28日3.3.4关系代数表达式及其应用实例下面用关系代数表达式表达每个查询语句。(1)检索学习课程号为C2的学生学号与成绩。ΠSNO,GRADE(σCNO=′C2′(SC))表达式中也可以不写属性名,而写上属性列的序号,如下面表达式:Π1,3(σCNO=′C2′(SC))

(2)检索学习课程号为C2的学生学号与姓名。∏SNO,

SNAME(σCNO=′C2′(S⋈SC))第八十二页,共一百零三页,2022年,8月28日3.3.4关系代数表达式及其应用实例(3)检索选修课程名为排球的学生学号与姓名。

ΠSNO,

SNAME(σCNAME=′排球′(S⋈SC⋈C))(4)检索选修课程号为C1或C3的学生学号。

ΠSNO(σCNO=′C1′∨CNO=′C3′(SC))(5)检索至少选修课程号为C1和C3的学生学号。

Π1(σ1=4∧2=′C1′∧5=′C3′(SC×SC))

这里(SC×SC)表示关系SC自身相乘的笛卡儿积操作。(6)检索不学C1课的学生姓名与年龄。

ΠSNAME,AGE(S)-ΠSNAME,AGE(σCNO=‵C1‵(S⋈SC))第八十三页,共一百零三页,2022年,8月28日3.3.4关系代数表达式及其应用实例

(7)检索学习全部课程的学生姓名。编写这个查询语句的关系代数表达式过程如下:学生选课情况可用操作ΠSNO,CNO(SC)表示;全部课程可用操作ΠCNO(C)表示;学了全部课程的学生学号可用除法操作表示,操作结果是学号SNO的集合。

ΠSNO,CNO(SC)÷ΠCNO(C)

从SNO求学生姓名SNAME,可以用自然联接和投影操作组合而成:ΠSNAME(S⋈(ΠSNO,CNO(SC)÷ΠCNO(C)))第八十四页,共一百零三页,2022年,8月28日3.3.4关系代数表达式及其应用实例

(8)检索所学课程包含学生S1所学课程的学生学号。

学生选课情况可用操作∏SNO,CNO(SC)表示;学生S1所学课程可用操作

ΠCNO(σSNO=‵S1‵(SC))表示;所学课程包含学生S1所学课程的学生学号,可以用除法操作求得:

ΠSNO,CNO(SC)÷ΠCNO(σSNO=‵S1‵(SC))第八十五页,共一百零三页,2022年,8月28日3.4关系演算元组关系演算:以元组变量作为谓词变元的基本对象元组关系演算语言ALPHA

域关系演算:以域变量作为谓词变元的基本对象域关系演算语言QBE第八十六页,共一百零三页,2022年,8月28日3.4.1元组关系演算

在元组关系演算中,元组关系演算表达式简称为元组表达式,其一般形式为

{t|P(t)}

式中,t是元组变量,表示一个元数固定的元组。t必须是P(t)中唯一的自由元组变量。P是公式,可以看成程序设计语言中的条件表达式。第八十七页,共一百零三页,2022年,8月28日1.原子公式(Atoms)

元组表达式中的公式由原子公式组成,原子公式有下列三种形式。

(1)R(t):R是关系名,t是元组变量。

R(t)表示这样一个命题:“t是关系R的一个元组”。

(2)t[i]θC或Cθt[i]t[i]表示元组变量t的第i个分量,C是常量,θ为算术比较运算符。

t[i]θC或Cθt[i]表示这样一个命题:“元组t的第t个分量与C之间满足θ运算”。例如,t[2]=5,表示“元组t的第2个分量的值等于5”。

(3)t[i]θu[j]t,u是两个元组变量。t[i]θu[j]表示这样一个命题:“元组t的第i个分量与元组u的第j个分量之间满足θ运算”。例如,t[2]<u[4],表示“元组t第2个分量必须小于元组u的第4个分量”。

第八十八页,共一百零三页,2022年,8月28日1.原子公式(Atoms)自由变量在一个公式中,如果没有对元组变量使用存在量词或全称量词,那么这些元组变量称为自由元组变量。上述原子公式中所出现的元组变量,在自身关系的范围内均为自由变量。约束变量若在一个公式中对元组变量使用了存在量词或全称量词,则称这些元组变量为约束变量。第八十九页,共一百零三页,2022年,8月28日2.公式(Formulas)(1)每个原子公式是一个公式。其中的元组变量是自由变量。(2)设P1和P2是公式,那么下列4项也是公式。P1表示命题:“若P1为真,则﹁P1为假;若P1为假,则﹁P1为真”。P1∧P2表示命题:“若P1,P2同时为真,则P1∧P2亦为真;否则,P1∧P2为假”。P1∨P2表示命题:“若P1,P2之中有一个为真或两个均为真,则P1∨P2为真;否则,P1∨P2为假”。P1=>P2表示命题:“若P1为真同时P2为假,则P1=>P2为假;否则P1=>P2为真”。公式中的元组变量性质(指自由性或约束性)将与P1和P2保持一致。第九十页,共一百零三页,2022年,8月28日2.公式(Formulas)(3)设P1是公式,t是P1中的元组变量,那么下列两项也是公式。(t)(P1)表示命题:“若有一个t使P1为真,则(t)(P1)为真;否则,(t)(P1)为假”。(t)是一个量词,其含义为“存在这样的t”或“至少有这样一个t”。元组变量t在P1中是自由的,在(t)(P1)中是约束的。P1中其他元组变量的自由或约束性质在(t)(P1)中没有改变。(t)(P1)表示命题:“对所有的t,使P1都为真,则(t)(P1)为真;否则,(t)(P1)为假”。(t)也是一个量词,其含义为“对所有的t”或“对任意一个t”。元组变量t在P1中是自由的,在(t)(P1)中是约束的。P1中其他元组变量的自由或约束性质在(t)(P1)中没有改变。第九十一页,共一百零三页,2022年,8月28日2.公式(Formulas)(4)在公式中,各种运算符的优先级从高到低依次为:θ,和,,∧和∨,=>。加括号时,括号中的运算优先。(5)所有公式均按上述的规则经有限次复合求得,除此之外的都不是公式。第九十二页,共一百零三页,2022年,8月28日3.公式等价变换

根据数理逻辑的谓词演算规则,公式可做等价变换,下面是三个常用的等价变换。

(1)P1∧P2等价于(P1∨P2)P1∨P2等价于

(P1∧P2)(2)P1=>P2等价于

P1∨P2(3)(t)(P1(t))等价于(t)(P1(t))(t)(P1(t))等价于(t)(P1(t))第九十三页,共一百零三页,2022年,8月28日4.元组关系演算与关系代数的等价性(1)并操作(∪):R∪S={t|R(t)∨S(t)}(2)差操作(-):

R-S={t|R(t)∧S(t)}(3)笛卡尔乘积(×):R×S={t(m+n)|(u(m))(v(n))(R(u)∧S(v)∧t[1]=u[1]∧t[2]=u[2]∧…t[m]=u[m]∧t[m+1]=v[1]∧t[m+2]=v[2]∧…∧t[m+n]=v[n])}式中,R是m目关系,S是n目关系,t(m+n)表示t的目数为m+n。第九十四页,共一百零三页,2022年,8月28日4.元组关系演算与关系代数的等价性(4)投影(Π):Πi1,i2,…,ik(R)={t(k)|(u)R(u)∧t[1]=u[i1]∧t[2]=u[i2]∧…t[k]=u[ik])}(5)选择(σ):σF(R)={t|R(t)∧F′}其中,F′是F在元组演算中等价的表示形式。第九十五页,共一百零三页,2022年,8月28日5.元组关系演算举例【例3-19】设有一个学生-课程关系数据库,包括学生关系(S)、课程关系(C)和选修关系(SC),用元组关系演算完成下列问题的查询:(1)学号为1105054209的学生因故退学,删除其相关记录。(2)在关系C中增加一门新课程(C9,网球,5,36,2)。(3)检索计算机系的全体学生。(4)检索年龄大于19岁的男生。(5)给出所有课程的名称和学时。(6)检索选修课程号为C5的学生学号和成绩及其姓名。(7)检索未选修“羽毛球”课程的学生的学号和姓名。(8)检索选修课程号为C1或C3的学生的学号和姓名。(9)检索同时选修课程号为C1和C3的学生的姓名。(10)检索选修全部课程的学生的姓名。(11)检索选修课程包含学生1105054105选修的课程的学生的学号,或选修课程不包含学生1105054105选修的课程的学生的姓名。第九十六页,共一百零三页,2022年,8月28日3.4.2域关系演算域关系演算类似于元组关系演算。域演算表达式的一般形式为:

{t1t2…tk|p(t1t2…tk)}其中,t1t2…tk为元组变量t的各个分量,统称为域变量;P是一个关于自由域变量t1t2…tk的公式。

{t1t2…tk|p(t1t2…tk)}表示

温馨提示

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

评论

0/150

提交评论