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

下载本文档

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

文档简介

关系数据库2

关系数据库3.1关系数据结构及形式化定义3.2关系操作3.3关系的完整性3.4关系代数3.5关系演算关系代数1.关系代数是对关系数据库操作的抽象语言,也称查询语言。关系代数只对数据操纵进行抽象表示,而基于关系代数实现的关系型数据库操纵语言(如SQL)才能对数据库中的数据进行实际的操作。 关系代数的作用只是用来衡量其他DBMS实现了的查询语言(如SQL)的查询能力。关系代数(续)2.运算的三要素运算对象运算符运算结果关系代数(续)3.关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类关系代数(续)运算符(续)集合运算符将关系看成元组的集合从关系的“水平”方向即行的角度来进行运算专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作集合运算符∪-∩×并差交广义笛卡尔积比较运算符>≥<≤=≠大于大于等于小于小于等于等于不等于运算符含义运算符含义表3.3关系代数运算符

关系代数(续)专门的关系运算符σπ

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

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

关系代数(续)关系代数(续)4.关系代数运算的分类 传统的集合运算并、差、交、广义笛卡尔积 专门的关系运算选择、投影、连接、除关系代数(续)5.表示记号

(1)R,t

R,t[Ai]

设关系模式为R(A1,A2,…,An)。它的一个关系设为R。t

R表示t是R的一个元组。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}后剩余的属性组。关系代数(续)(3)trtsR为n目关系,S为m目关系。tr

R,ts

S,trts称为元组的连接。它是一个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上分量的集合。ABCa1b1c1a1b2c2a2b2c13.4

关系代数

3.4.1传统的集合运算

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

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

R∪S={t|t

R∨t

S}并(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

2.差(Difference)R和S具有相同的目n相应的属性取自同一个域R-S

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

R-S={t|t

R∧t

S}差(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

3.交(Intersection)R和S具有相同的目n相应的属性取自同一个域R∩S仍为n目关系,由既属于R又属于S的元组组成

R∩S={t|t

R∧t

S} R∩S=R–(R-S)交(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

4.广义笛卡尔积(ExtendedCartesianProduct)Rn目关系,k1个元组Sm目关系,k2个元组广义笛卡尔积(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c14.广义笛卡尔积(ExtendedCartesianProduct)Rn目关系,k1个元组Sm目关系,k2个元组R×S

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

ts|tr

R∧ts

S}3.4

关系代数3.4.1传统的集合运算3.4.2专门的关系运算3.4.2专门的关系运算选择投影连接除1.选择(Selection)1)选择运算符的含义在关系R中选择满足给定条件的诸元组

σF(R)={t|t

R∧F(t)='真'}F:选择条件,是一个逻辑表达式,由逻辑运算符连接各算术表达式组成,其基本形式为:

X1θY1

θ:比较运算符(>,≥,<,≤,=或<>)

X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。选择(续)2)选择运算是从行的角度进行的运算3)举例 设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。σ选择(续)学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS

Student选择(续)Course课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学

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

27PASCAL语言64选择(续)

SC学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380选择(续)[例1]查询信息系(IS系)全体学生

σSdept

='IS'(Student)

或σ5='IS'(Student)结果:SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS选择(续)学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS

Student选择(续)[例2]查询年龄小于20岁的学生

σSage<20(Student)

或σ4<20(Student)

结果:

SnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19IS

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

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

R} A:R中的属性列

2.投影(Projection)2)投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)π投影(续)3)举例[例3]查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上的投影

πSname,Sdept(Student)

或π2,5(Student)结果:投影(续)SnameSdept李勇CS刘晨IS王敏MA张立IS投影(续)[例4]查询学生关系Student中都有哪些系

πSdept(Student)

结果:SdeptCSISMA1)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组

RS={|tr

R∧ts

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

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

AθBtrts

连接(续)2)两类常用连接运算等值连接(equijoin)什么是等值连接θ为“=”的连接运算称为等值连接

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

RS={|tr

R∧ts

S∧tr[A]=ts[B]}A=Btrts

连接(续)自然连接(Naturaljoin)

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

R

S={|tr

R∧ts

S∧tr[B]=ts[B]}trts连接(续)3)一般的连接操作是从行的角度进行运算。

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

AθBRS连接(续)4)举例

[例5]

连接运算举例ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS连接(续)R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E连接(续)

等值连接R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32连接(续)

自然连接R

S

ABCEa1b153a1b267a2b3810a2b382(1)在R中写出A取每个不同的值时的象。

(2)写出πB,C(S)的结果。ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RS4.除(Division)1)除运算的含义给定关系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]除(续)[例6]ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RS除(续)-分析:在关系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}学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS

Student学生-课程数据库Course课程号课程名先行课学分CnoCnameCpnoCcredit1数据库542数学

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

27PASCAL语言64学生-课程数据库

SC学号课程号成绩SnoCnoGrade9500119295001285950013889500229095002380学生-课程数据库5.综合举例以学生-课程数据库为例[例7]查询至少选修1号课程和3号课程的学生号码。

首先建立一个临时关系K:

然后求:πSno,Cno(SC)÷KCno13综合举例(续)例7续πSno.Cno(SC) 95001象集{1,2,3};

95002象集{2,3}πCno(K)={1,3}

于是:πSno.Cno(SC)÷K={95001}SnoCno950011950012

温馨提示

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

评论

0/150

提交评论