数据库原理与应用 课件 第2章 2.2关系代数_第1页
数据库原理与应用 课件 第2章 2.2关系代数_第2页
数据库原理与应用 课件 第2章 2.2关系代数_第3页
数据库原理与应用 课件 第2章 2.2关系代数_第4页
数据库原理与应用 课件 第2章 2.2关系代数_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

2.1

关系模型

2.2

关系代数*2.3

关系演算

2.4

查询优化

2.5

关系系统第2章关系数据库

概述

传统的集合运算专门的关系运算2.2

关系代数概述1.关系代数2.关系代数运算的三个要素3.关系代数运算的分类4.表示记号2.2

关系代数1.关系代数用户对关系数据的操作通过关系代数表达式描述。2.关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类2.2

关系代数概述集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义表1关系代数运算符

2.2

关系代数概述专门的关系运算符σπ

÷选择投影连接除逻辑运算符

∧∨非与或运算符含义运算符含义表2关系代数运算符(续)

2.2

关系代数概述集合运算将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算不仅涉及行而且涉及列算术比较辅助专门的关系运算符进行操作逻辑运算辅助专门的关系运算符进行操作2.2

关系代数概述3.关系代数运算的分类 传统的集合运算并、差、交、广义笛卡尔积 专门的关系运算选择、投影、连接、除2.2

关系代数概述4.表示记号设关系模式为R(A1,A2,…,An)R,t

R,t[Ai]它的一个关系设为R。t

R表示t是R的一个元组t[Ai]则表示元组t中相应于属性Ai的一个分量2.2

关系代数概述2.2

关系代数

概述

传统的集合运算

专门的关系运算2.2.1传统的集合运算并差交广义笛卡尔积1.并(Union)R和S(相容关系)具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域R∪S

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

R∪S={t|t

R∨t

S}2.2.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

1.并(Union)2.2.1传统的集合运算R和S(相容关系)具有相同的目n相应的属性取自同一个域R-S

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

R-S={t|t

R∧t

S}2.差(Difference)2.2.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

2.差(Difference)2.2.1传统的集合运算R和S(相容关系)具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成

R∩S={t|t

R∧t

S} R∩S=R

–(R-S)3.交(Intersection)2.2.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

3.交(Intersection)2.2.1传统的集合运算Rn目关系,k1个元组Sm目关系,k2个元组R×S

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

ts|tr

R∧ts

S}4.广义笛卡尔积(ExtendedCartesianProduct)2.2.1传统的集合运算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c14.广义笛卡尔积(ExtendedCartesianProduct)2.2.1传统的集合运算2.2

关系代数概述传统的集合运算专门的关系运算选择投影连接除2.2.2

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

σF(R)={t|t

R∧F(t)='真'}F:选择条件,是由比较运算符和/或逻辑运算符组合构成的表达式选择运算是单目运算,运算符为“σ”2.2.2

专门的关系运算1.选择(Selection)3)选择运算是从行的角度进行的运算4)举例 设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。σ2.2.2

专门的关系运算1.选择(Selection)24学生学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091502王小梅女江苏2000信电091503张小飞男江西1996计算机091504孙志鹏男海南1998计算机091505徐颖女江苏1997信电091506钱易蒙男河北2000外文………………2.2.2

专门的关系运算25[例1]查询计算机全体学生情况

学院=“计算机”(学生)

6=“计算机”(学生)学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091503张小飞男江西1996计算机091504孙志鹏男海南1998计算机………………2.2.2

专门的关系运算26选择运算的关键问题确定操作对象是哪个关系?操作的条件是什么?如何表示?2.2.2

专门的关系运算27[例2]查询90年代出生的全体学生情况

出生年份>=1990∧出生年份<=1999

(学生)学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091503张小飞男江西1996计算机091504孙志鹏男海南1998计算机091505徐颖女江苏1997信电….……………2.2.2

专门的关系运算28[例3]查询信电学院江苏籍全体学生情况

学院=“信电”∧籍贯=“江苏”(学生)学号姓名性别籍贯出生年份学院091502王小梅女江苏2000信电091505徐颖女江苏1997信电………………2.2.2

专门的关系运算29[例4]查询江苏或者河北全体学生情况

籍贯=“江苏”∨籍贯=“河北”

(学生)学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091502王小梅女江苏2000信电091505徐颖女江苏1997信电091506钱易蒙男河北2000外文………………2.2.2

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

πA(R)={t[A]|t

R} A:R中的属性列

2.2.2

专门的关系运算2.投影(Projection)2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)π2.2.2

专门的关系运算2.投影(Projection)322.2.2

专门的关系运算学生学号姓名性别籍贯出生年份学院091501王英女河北1997计算机091502王小梅女江苏2000信电091503张小飞男江西1996计算机091504孙志鹏男海南1998计算机091505徐颖女江苏1997信电091506钱易蒙男河北2000外文………………33[例5]查询所有学生的姓名和籍贯

姓名,籍贯

(学生)

2,4

(学生)姓名籍贯王英河北王小梅江苏张小飞江西孙志鹏海南徐颖江苏钱易蒙河北….…2.2.2

专门的关系运算34[例6]查询学生生源来自哪些省份?

籍贯(学生)籍贯河北江苏江西海南…

4(学生)投影之后不仅取消了原关系中的某些列,而且还取消了某些元组。2.2.2

专门的关系运算35[例7]查找出生年份在1998年以前(不含1998年)的学生的姓名、籍贯及其出生年份情况。

Π姓名,籍贯,出生年份(σ出生年份<1998(学生))姓名籍贯出生年份王英河北1997张小飞江西1996徐颖江苏1997………2.2.2

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

RS={trts|tr

R∧ts

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

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

AθB2.2.2

专门的关系运算3.连接(Join)3)两类常用连接运算等值连接(equijoin)什么是等值连接θ为“=”的连接运算称为等值连接

等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:RS={trts|tr

R∧ts

S∧tr[A]=ts[B]}A=B2.2.2

专门的关系运算3.连接(Join)自然连接(Naturaljoin)

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

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

R

S={trts|tr

R∧ts

S∧tr[B]=ts[B]}2.2.2

专门的关系运算3.连接(Join)4)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

AθBRS2.2.2

专门的关系运算3.连接(Join)5)举例ABCa1b15a1b26a2b38BEb13b27b310b32RS2.2.2

专门的关系运算3.连接(Join)R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E2.2.2

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

等值连接R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b3102.2.2

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

自然连接R

S

ABCEa1b153a1b267a2b38102.2.2

专门的关系运算3.连接(Join)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

R.AR.BR.C

a1b1c1

a1b1c1a1b1c1a1b2c2

a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1S.AS.BS.C

a1b2c2a1b3c2

a2b2c1a1b2c2a1b3c2

a2b2c1a1b2c2a1b3c2

a2b2c1R×S2.2.2

专门的关系运算3.连接(Join)45R.AR.BR.C

a1b1c1

a1b1c1a1b1c1a1b2c2

a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1S.AS.BS.C

a1b2c2a1b3c2

a2b2c1a1b2c2a1b3c2

a2b2c1a1b2c2a1b3c2

a2b2c1RSR.B≠S.BR.AR.BR.C

a1b1c1

a1b1c1a1b1c1a1b2c2a2b2c1S.AS.BS.C

a1b2c2a1b3c2

a2b2c1a1b3c2a1b3c2R×SR.AR.BR.CS.AS.BS.Ca1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a2b2c1RSR.B=S.BRS46关系SC和关系C的自然联接SNOCNOGRADES3C387S1C288S4C379S9C483CNOCNAMECDEPTTNAMEC2离散数学计算机汪宏伟C3高等数学通信钱红C4数据结构计算机马良C1计算机原理计算机李兵关系C关系SC第一步,计算SC×C;第二步,计算满足SC.CNO=C.CNO条件的元组;第三步,去掉重复列,操作结果为:2.2.2

专门的关系运算47关系SC和关系C的自然联接SNOCNOGRADECNAMECDEPTTNAMES3C387高等数学通讯钱红S1C288离散数学计算机汪宏伟S4C379高等数学通信钱红S9C483数据结构计算机马良2.2.2

专门的关系运算48自然连接和等值连接的区别①等值连接要求相等的分量,但不一定是公共属性,而自然连接要求相等的分量必须是公共属性②等值连接不做投影运算,而自然连接要把重复的属性去掉;③自然连接一定是等值连接,但等值连接不一定是自然连接。2.2.2

专门的关系运算49查询选修课程号为180103的学生情况和课程号、成绩

课程号=“180103”(学生课程)学生(

课程号=“180103”

(学习))

课程号=“180103”(学生学习)学生(

课程号=“180103”

(课程))学生学习

课程号=“180103”

(课程)思考:1、找出全部课程的课程号2、找出每个学生选修的课程号3、每个学生选修的课程号是否包含全部课程的课程号?50查询选修了全部课程的学生的学号?2.2.2

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

Zx={t[Z]|t

R,t[X]=x}

它表示R中属性组X上值为x的诸元组在Z上分量的集合。2.2.2

专门的关系运算5.除(Division)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1RA=a1的象集BCb1c2b2c3b2c12.2.2

专门的关系运算5.除(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]2.2.2

专门的关系运算5.除(Division)除操作是同时从行和列角度进行运算

÷RS2.2.2

专门的关系运算5.除(Division)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RS2.2.2

专门的关系运算5.除(Division)在关系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}Aa1R÷S2.2.2

专门的关系运算5.除(Division)57除法的代数表示方法R÷S=

x(R)—

x((

x(R)×

y(S))—R)2.2.2

专门的关系运算5.除(Division)学号课程号S1C1S1C2S2C1S2C2S2C3S3C2课程号C1C2C3第一步:求

x(R)

T=Π学号(SC)

SC(R)C(S)求选修了全部课程的学生学号学号S1S2S3课程号C1C2C3第三步:求T

S

学号S1S1S1学号C1C2C3S2S2S2S3C1C2C3C1S3S3C2C3第二步:求

y(S)S=Π课程号(C)

课程名高数英语体育学号课程号S1C1S1C2S2C1S2C2S2C3S3C2学号S2SC(R)第四步:计算W=(T

S)-RC(S)求选修了全部课程的学生学号课程号C1C2C3课程名高数英语体育第六步:R÷S=T-V学号课程号S1C3S3C1S3C3第五步:求

x(W)V=Π学号(W)学号S1S3SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS

Student5.综合举例2.2.2

专门的关系运算CourseCnoCnameCpnoCcredit1数据库542数学

23信息系统144操作系统635数据结构746数据处理

27PASCAL语言642.2.2

专门的关系运算

SnoCnoGrade9500119295001285950013889500

温馨提示

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

评论

0/150

提交评论