数据库设计与开发北邮软件学院研究生讲义_第1页
数据库设计与开发北邮软件学院研究生讲义_第2页
数据库设计与开发北邮软件学院研究生讲义_第3页
数据库设计与开发北邮软件学院研究生讲义_第4页
数据库设计与开发北邮软件学院研究生讲义_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

会计学1数据库设计与开发北邮软件学院研究生讲义1.2关系代数■

关系代数的运算对象是关系

运算结果亦为关系

。关系代数用到的运算符包括四类;

集合运算符

、专门的关系运算符

、算术比较符和逻辑运算符。关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。其中传统的集合运算将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行。而专门的关系运算不仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。郭《数据库设计与开发》讲义北京邮电大学软件学院文明2003.06第1页/共33页专门关系运算符这些运算经有限次复合后形成的式子称为关系σ姓名=“

张三

(S)或S

where

姓名=‘

张三

’数÷中,这除些运D算IV经ID有EB

S后,形或

关S系代数表达式。第2页/共33页R×S,或

R

TIMES

S集合运算符示例π考号,姓名(S)或S[考号,姓名]R∩S,或RINTERSECTSR∞S,或RJOINSR∪S,或RUNIONSR-S,或RMINUSSR

whereC关系代数运算符TIMES键盘格式UNIONINTERSECTR[

]JOINMINUSσ选择运算符乘×北京邮电大学软件学院文明2003.06符号含义∪并∩交-π投影∞连接差关系代《数据库设计与开发》讲义郭传统的集合运算■传统的集合运算是二目运算

包括并

、差、交

、广义笛卡尔积。■

定义设关系组组成。■所有元组组成。第3页/共33页),且相应的属性取自同一个域,则可以定义并、差、交运算如下:■并(Union)}其结果仍为S具有相同的目n(

即两个S的并记作:R∪S={t|t差

(Difference)n目关系,由属于n目关系,由属于t|t∈R∧t!∈S关系都有∈R∨t∈S}S的差记作:北京邮电大学软件学院文明2003.06其结果仍为R和关系n个属性R而不属于R与关系R或属于R与关系:

关系:

关系《数据库设计与开发》讲义S

的元S={的RS郭—传统的集合运算■S

的广义笛卡尔积

是一个

(n+m)列的元组的集合

。元组的前的元组组成。关系的交可以用差来表示,即■广义笛卡尔积(Extended

Cartesian

Product)}其结果仍为×S=

{trts|tr

∈R∧ts∈S有k2个元组,则关系交

(Intersection)×k2个元组。记作:n目关系,由既属于R的一个元组,后S

的一个元组

。若广义笛卡尔积有t|t∈R∧t∈SS的交记作:北京邮电大学软件学院文明2003.06两个分别为k1个元组,S=R-

(R-S)m目的关系m列是关系R与关系R又属于R和关系n列是关《数据库设计与开发》讲义第4页/共33页:关系目和S={R∩R∩有系的k1和}RRRSSSn郭:。a1b2c2a1

b2c2a2b2c1a2

b2a1

b3c1c2SR∩SABCA

BCa1b2c2a1

b2c2a1b3c2第5页/a2

b2共33页c1a2b2c1R∪SABCa1

b1c1传统集合运算举例郭《数据库设计与开发》讲义北京邮电大学软件学院文明2003.06RAa1Cc1Bb1传统集合运算举例R×SAa1a1a1a1a1a1Bb2b2b2b2b2b2Cc1c1c1c2c2c2Aa1a1a2a1a1a2Bb2b3b2b2b3b2Cc2c2c1c2c2c1第6页/共33页a2

b2

c1

a1

b2

c2《数据库设计与开发》讲义a2

b2

c1

a1

b3

c2RABCa1

b1c1a1

b2c2a2

b2c1SABCa1

b2c2a1

b3c2a2

b2c1郭R-SA

B

Ca1

b1

c1北京邮电大学软件学院文明2003.06专门的关系运算■

专门的关系运算包括选择

、投影

、连接

除等

。为了叙述上的方便,先引入几个常用记号。■设关系模式为R(Al,A2,…,An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分 A2,…,A《数库与开的发》讲一义部分,则A称为属性列或域列郭■若A={Ai1,第7/页,中Ail,Ai2,…,…,Aik}Aik是A1北京邮电大学软件学院文明2003.06,

其量。,专门的关系运算■

R为m目关系。tr∈R,ts∈S,trts称为元组的连接。它是一个n+m列的元组,前m元组。■

给定一个关系R(XZ为属性组

。定义t[X]=x时,x在R

中的象集

(Images

Set){

t[Z]︱t∈R,t[X]=x}m个分量为S

中的一个n个分量为R

中的一个《数据库设计与开发》讲义上分量的集合。n目关系,S为n元组,后中属性组上值为它表示元组在,

X和北京邮电大学软件学院文明2003.06的诸,

Z)为:Zx=第8页/共33页xXRZ郭学生-课程数据库S学生表学号

姓名性别

年龄

所在系SnoSnameSsexSageSdept2000101

张明

19

CS2000102

李华

20

IS2000103

王强

男18

MA2000104

秦永

19

CSC

课程表课程号

课程名

学分Cno

Cname

Ccredit

第9页/共33页郭1

数据库

3

《数据库设计与开发》讲SC学生选课表学号课Sno200101200101200101200102200102程号Cno12323成绩

Grade9285889080北京邮电大学软件学院文明2003.06义选择

(Selection)■定义选择选择又称为限制(Restriction),是在关系作=或≠;X1,Y1等是属性名,或为常量,或为简单函数;属性名也可以用它的序号来代替。第10页/共33页﹁,∧,∨连接各算术表达式组成。算术表达式的基本形式为:X1θY1,其中θ表示比较运算符,它可以是’。逻辑表达式F

由逻辑运算符}其中F表示选择条件R

中选择满足给定条件的诸元组,它是一个逻辑表达式{

t︱t∈R∧F(t)=:

σF(R)=北京邮电大学软件学院文明2003.06<

、>

、逻辑值《数据库设计与开发》讲义或假真真取记它’’‘‘‘郭,,选择

(Selection)■

选择运算实际上是从关系

是对行的水平分解。例1

查询信息系(IS)全体学生。Sdept=

20岁之间的学生。Sage≥19∧Sage≤20(S)F为真的元组

。这是从行的角度进行的运算”

(S)其中下角标SwhereSage>=

19and

Sage<=20或。4≥19∧4≤20(S)R

中选取使逻辑表达为Sdept

的属性序号。S

whereSdept=例2

查询年龄在北京邮电大学软件学院文明2003.06第11页/共33页《数据库设计与开发》讲义”

(S)。5=或或或式到ISISIS19”””””5“郭,投影

(Projection)■

定义投影关系R上的投影是从

R

中选择出若干属性列组成新R}

πA(R)=

{t[A]|t∈其中A为R

中的属性列集合。■郭《数据库设计与开发》讲义中的某些列

而且还可能取消投影之后不仅取消了原关系第12页/共33页某些元组,因为取消了某些属的关系,是对关系的垂直分解。记作:北京邮电大学软件学院文明2003.06R}或π2,5(S)或S[Sname,Sdept]例4查询学生关系Student中都有哪些系。πSdept(S)或S[Sd第/页郭《数据库设计与开发》讲义投影

(Projection)例3

查询学生的姓名和所在系。πSname,Sdept(S)北京邮电大学软件学院文明2003.06θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:和从θ是比较运算符

。连接运算的结果是S上度数相等且可比的属性组。B属性组上值满足比较关系连接

(Join)■

定义连接

连接也称为R∞S=

{trts|tr

∈R∧ts∈S∧tr

[A]θts[B]}S

的广义笛卡尔积属性组上的值与θ

的元组。北京邮电大学软件学院文明2003.06B分别为R关系在S关系在S

中选取

A

θB第14页/共33页《数据库设计与开发》讲义其中和和从×AARRR郭.■自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。第15页/共33页连接(Join)■连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equijoin),另一种是自然连接(Naturaljoin)。另外还有外连接、关系

”的连接运算称为等值连接

。它是从B属性值相等的那些元组左连接

、右连接等。■S

的广义笛卡尔积中选取北京邮电大学软件学院文明2003.06《数据库设计与开发》讲义关系R与为θA“郭=,

外连接■

定义外连接

表R(A1,A2,

行S中没有一个可以与之连接的行,此时,t[A]=u[A],t[B]=u[B],t[C]=nullR中没有一个可以与之连接的行,此时,t[A]=null,t[B]=v[B],t[C]=v[C]S中,有u[Bi]=v[Bi],此时

t[A]=u

[A],t[B]=u

[B],t[C]=v[C]。3)

表R∞oS,如果下列情况之一发生:1

)可连接的行u,v分别在(0<=

i<=k

)成立…,Cm)的外连接…,An,B1,

B2,…,Bk,C1,C2,R

中的一个行S

中的一个行和S(B1,B2,北京邮电大学软件学院文明2003.06t属于表R∞oS,…,Bk)u使得v使得2

)表第16页/共33页《数据库设计与开发》讲义和R郭。。端上的表没有与之相匹配的连接列值也会出现在外连接的结果中。左连接和右连接运算只是因为我们需要在某一边上保留未匹配的行而已。左连接保留了在操作符左边的未匹配行,右连接保留第/在共33页操作符右边的未郭匹配行。《数据库设计与开发》讲义■一般的连接操作是从行的角度外连接■由定义知,外连接保留了未匹配的行。也就是说,在外连接一端的表上的行,即使在另一北京邮电大学软件学院文明2003.06关系代数连接运算符符号含义

键盘格式

示例S∞Ro右连接ROUTERJOINS∞Lo左连接

LOUTERJOINθ连接

JOIN(AiθBj)

R∞A1>B2∞

o

外连接

OUTERJOIN∞AiθBj北京邮电大学软件学院文明2003.06R

∞Lo第18页/共33页《数据库设计与开发》讲义∞Ro∞

oRRSS郭《数据库设计与开发》讲义a1

b2

6b2

7b3

10a1b1

5b3

10a2

b3

8b3

2a1

b2

6

b2

7a2b4

12b5

2a1b26b3

10a2b38b3

10等值连接R∞R.B=S.BS自然连接R∞SAR.B

C

S.B

EA

B

C

Ea1

b1

5

b1

3a1

b1

5

3a1

b2

6

b2

7a1

b2

6

7a2b38b3

10a2b3

8

10a2

b3

8

b3

2a2

b3

8

2θ连接R

∞C<ESA

R.B

C

S.Ba1

b15

b2连接运算举例北京邮电大学软件学院文明2003.06S

Bb1RA

a1第19页/共33Bb1C5E7E3页左连接R∞LoS右连接R

∞RoSABCEABCEa1

b153a1b153a1

b267a1b267a2

b3810a2b3810a2

b382《数据库设计a2

b3与开发》讲义82b5

2null

b5

null

2外连接R

∞oS

A

B

C

a1

b15

a1

b2

6连接运算举例b

ll

ll

b

ll102null北京邮电大学软件学院文明2003.06RA

a1

a1SBb1

b2b3b3

b4a2a2

a2Bb1

b28812b3b3b3b4a2a2812102C5

6/共33页E3

7E3

7第20页除

(Division)■

定义除

给定关系R(XY可以有不同的属性名,但必须出自相同的域集。R

中满足下列条件的元组在的除运算得到一个新的关系P(X)÷S=

{tr

[X]|tr

∈R∧πy

(S)∈Yx}其中YxX属性列上的投影:元组在R中的象集,x=tr[X]Y上投影的集合。x

的象集Yx包含,Z),其中X上分量值北京邮电大学软件学院文明2003.06Z为属性R

中的记作:和S(YS

中的第21页/共33页《数据库设计与开发》讲义,

Y)Y与P是R与x在组。为在YXRSS郭。,

,

,

(Division)■

行运算。除操作是同时从行和列角度进■除运算是乘运算的逆运算,给定两个表T和S,如果表R是通过R=T÷S成立

。在这个意义上

可解释为什么称作除运算。第22页/共33页T=R×S定义的,那么有行运算。北京邮电大学软件学院文明2003.06T=R《数据库设计与开发》讲义郭与开发》讲义《数据库设计b1c2d1b2c1d1b2c3d2R÷SAa1/共33页RA

B

Ca1a2a3a1

a4a2郭除运算举例b3

c7b4

c6b2

c3b6

c6b2

c3b1

c2北京邮电大学软件学院文明2003.06CDSB第23页除运算举例■

在关系其中:,

c1)}a2的象集为{(b3,

c3)}a3的象集为{(b4,

c6)}a4的象集为{(b6÷S=

{a1}.第24页/共33页显然,c3)}A可以取四个值{a1,a2,a3,a4},

C)上的投影为{(b1,

C)属性组上的投影a1的象集为{(b1a1的象集包含了北京邮电大学软件学院文明2003.06,

c6)}S在

(BS在

(B,

c1),

(b2,

c2),

c7),

c2),

(b2,

(b2,

(b2《数据库设计与开发》讲义所以显然,

c3中,(b2)RR郭,。,

,

除运算举例R3)给出S,求得T=R÷S。注意:T×S都在R中。STCc1c2c3c44)给出S,求得T=R÷S。注意:T×S都在R中。4)给出S,求得T=R÷S。注意:T×S都在R中。4)给出S,求得T=R÷S。注意:T×S都在R中。2)给出S,求得T=R÷S。注意:T×S都在R中。2)给出S,求得T=R÷S。注意:T×S都在R中。2)给出S,求得T=R÷S。注意:T×S都在R中。1)给出S,求得T=R÷S。注意:T×S都在R中。STb1b1AA

a1Bb2A

B

a1b2

a2b1A

a1北京邮电大学软件学院文明2003.06第25页/共33页《数据库设计与开发》讲义11b1b1a2a1a1a1a2a1a1a1c1c1c5c4c1c2c3c2b2a1a2a1c1

bbABCBCT郭关系代数综合例子■以下例子建立在下面CAP数据库上。A代理

aid

anamecity

percentO订单ordno

monthcidaid

pidqty

dollars1011

01c001a01p011000450.00a01史可然北京6101201c001a01p011000450.00a02韩利利上海6101902c001a02p02400180.00a03杜不朗成都7101710180202c001c001a06a03p03p04600600540.00540.00a04甘瑞北京页/共33页102303c001a04p05500450.00学院a05

郭敖斯群武汉5102203c001a05p06400720.00a06史可然天津《数据库5设计与开发》讲义1025

04c001a05p07800720.00P商品pid

pname

city

quantity

price

p01

梳子天津

1114000.50p02

刷子

成都

2030000.50p03

刀片西安1506001.00p04

钢笔西安

125300

1.00p05

铅笔天津

2214001.00p06

文件夹

天津

1231002.00p07

盒子成都

1005001.00C顾客cid

cname

city

discntc001c002c003c004

c006李广王开基安利德曹士雄曹士雄天津北京北京天津广州10.0012.008.008.000.00北京邮电大学软件文明2003.066

第26关系代数综合例子例1的顾客的名字。查询所有定购了至少一个价值为0.50的商品(σprice=0.50

(P))∞O)∞C)例2找

出全部没有在代理商a03处订购商品的顾客cid例3找出只在代理商a03处订购商品的顾客。的顾客的名字。cname

((πpid北京邮电大学软件学院文明2003.06(σaid’

(O))’

(O))O))(σaid第27页/共33页《数据库设计与开发》讲义πcidπcidπcidπcidπcidπcid值。(O)(O)或aid=aid=a03a03a03aid《》πσC)(((———郭’’’’pidcidcity=北京city=海从所有商品中剔除以上商品:πpid(P)—πpid((πcid(σcity=‘北京’(C))∞O)∞σcity=’上海’(A))例5找出订购了所有价格为0.50的商品的顾客名字。πcname((πcid,pid(O)÷πpid(σprice=0.50(P)))∞C)例6找出订购所有被任何人订购过一次的商品的顾客cid。πcid,pid(O)÷πpid(O)例7找出所有接到至少顾客c004订购的商品集合的订单的代理商的aid。πaid,pid(O)÷πpid(σcid=’c004’(O))第28页/共33页郭《数据库设计与开发》讲义关系代数综合例子例4找出没有被任何一个在北京的顾客通过在上海的代理商订购的所有商品。在北京的顾客通过在上海的代理商订购的商品:π((π(σ’’(C))∞O)∞σ’上’(A))北京邮电大学软件学院文明2003.06关系代数综合例子错误错误例9找出从至少一个接受订购商品p03订单的代理商处订

购过商品的顾客cid)

O

)∞O从这些代理商处订购商品的顾客((订购商品p03的代理商。解题思路:和p07这两种商品的顾客的cidp03例8找出订购了p01北京邮电大学软件学院文明2003.06σpid=

’p03

’pid=

’p01

’pid=

温馨提示

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

评论

0/150

提交评论