北京邮电大学软件工程研究生的课程---数据库设计开发-0-2

PPT
  • 阅读 64 次
  • 下载 0 次
  • 页数 33 页
  • 大小 110.820 KB
  • 2023-07-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档22.00 元 加入VIP免费下载
此文档由【精品优选】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
北京邮电大学软件工程研究生的课程---数据库设计开发-0-2
可在后台配置第一页与第二页中间广告代码
北京邮电大学软件工程研究生的课程---数据库设计开发-0-2
可在后台配置第二页与第三页中间广告代码
北京邮电大学软件工程研究生的课程---数据库设计开发-0-2
可在后台配置第三页与第四页中间广告代码
北京邮电大学软件工程研究生的课程---数据库设计开发-0-2
北京邮电大学软件工程研究生的课程---数据库设计开发-0-2
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 33
  • 收藏
  • 违规举报
  • © 版权认领
下载文档22.00 元 加入VIP免费下载
文本内容

【文档说明】北京邮电大学软件工程研究生的课程---数据库设计开发-0-2.pptx,共(33)页,110.820 KB,由精品优选上传

转载请保留链接:https://www.ichengzhen.cn/view-290403.html

以下为本文档部分文字说明:

1.2关系代数•关系模型的重要部分是关系操纵,关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。利用关系代数可以演示一个查询语言从关系数据库系统中检索信

息的潜力,可以用最简单的形式来表达所有关系数据库查询语言必须完成的运算的集合,这些基本的运算对解释标准查询语言SQL如何被执行很有帮助,同时也有利于培养关系运算的思维能力。郭文明2003.06.051.2关系代数•关系代数的运算对象是关系,运算结果亦为关系。关系代

数用到的运算符包括四类;集合运算符、专门的关系运算符、算术比较符和逻辑运算符。关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。其中传统的集合运算将关系看成元组的集合,其运算是从关

系的“水平”方向即行的角度来进行。而专门的关系运算不仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。郭文明2003.06.05关系代数运算符运算符符号含义键盘格式示例集合运算符∪并UNIONR∪S,或RUNION

S∩交INTERSECTR∩S,或RINTERSECTS-差MINUSR-S,或RMINUSS×乘TIMESR×S,或RTIMESS专门关系运算符σ选择RwhereCσ姓名=“张三”(S)或Swhere姓名=‘张三’π投影R[

]π考号,姓名(S)或S[考号,姓名]∞连接JOINR∞S,或RJOINS÷除DIVIDEBYR÷S,或RDIVIDEBYS关系代数中,这些运算经有限次复合后形成的式子称为关系代数表达式。郭文明2003.06.051.2.1传统的集合运算•传统的集合运算是二目运算,包括并、差、

交、广义笛卡尔积。•定义1.2.1设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则可以定义并、差、交运算如下:–并(Union):关系R与关系S的并记作:R∪S={t|t∈R∨t∈S}其结果仍为n目关

系,由属于R或属于S的元组组成。–差(Difference):关系R与关系S的差记作:R—S={t|t∈R∧t!∈S}其结果仍为n目关系,由属于R而不属于S的所有元组组成。郭文明2003.06.051.2.1传统的集合运算–交

(Intersection):关系R与关系S的交记作:R∩S={t|t∈R∧t∈S}其结果仍为n目关系,由既属于R又属于S的元组组成。关系的交可以用差来表示,即R∩S=R-(R-S)。–广义笛卡尔积(ExtendedCartesianProduct

):两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:R×S={trts|tr∈R

∧ts∈S}郭文明2003.06.05传统集合运算举例RABCa1b1c1a1b2c2a2b2c1R∪SABCa1b1c1a1b2c2a2b2c1a1b3c2SABCa1b2c2a1b3c2a2b2c1R∩SABCa1b2c2a2b2c1郭文明2003.

06.05传统集合运算举例RABCa1b1c1a1b2c2a2b2c1R-SABCa1b1c1R×SABCABCa1b2c1a1b2c2a1b2c1a1b3c2a1b2c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3

c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1SABCa1b2c2a1b3c2a2b2c1郭文明2003.06.051.2.2专门的关系运算•专门的关系运算

包括选择、投影、连接、除等。为了叙述上的方便,先引入几个常用记号。–设关系模式为R(Al,A2,…,An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。–若A={Ai1,Ai2,…,Aik},其中Ail,Ai2,…,Aik

是A1,A2,…,An中的一部分,则A称为属性列或域列。郭文明2003.06.051.2.2专门的关系运算–R为n目关系,S为m目关系。tr∈R,ts∈S,trts称为元组的连接。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个

分量为S中的一个m元组。–给定一个关系R(X,Z),X和Z为属性组。定义t[X]=x时,x在R中的象集(ImagesSet)为:Zx={t[Z]︱t∈R,t[X]=x}它表示R中属性组X上值为x的诸元组在Z上分量的集合。郭文明2003.06.05学生-课程数据库S学生表学号姓名性别年龄所

在系SnoSnameSsexSageSdept2000101张明男19CS2000102李华女20IS2000103王强男18MA2000104秦永男19CSC课程表课程号课程名学分CnoCnameCcredit1数据库32数学43信息系统34操作系统3SC学生选课表学号课程号成绩Sn

oCnoGrade200101192200101285200101388200102290200102380郭文明2003.06.05选择(Selection)•定义1.2.2选择选择又称为限制(Restricti

on),它是在关系R中选择满足给定条件的诸元组,记作:σF(R)={t︱t∈R∧F(t)=‘真’}其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。逻辑表达式F由逻辑运算符﹁,∧,∨连接各算术表达式组成。算

术表达式的基本形式为:X1θY1,其中θ表示比较运算符,它可以是>、≥、<、≤、=或≠;X1,Y1等是属性名,或为常量,或为简单函数;属性名也可以用它的序号来代替。郭文明2003.06.05选择(Selection)•选择运算实际上是从关系R中选取使逻辑表达式F为真

的元组。这是从行的角度进行的运算,是对行的水平分解。例1查询信息系(IS)全体学生σSdept=”IS”(S)或σ5=”IS”(S)其中下角标“5”为Sdept的属性序号。或SwhereSdept=”IS”例2查询年龄在19到20岁之间的学生σSage≥19∧

Sage≤20(S)或σ4≥19∧4≤20(S)或SwhereSage>=19andSage<=20郭文明2003.06.05投影(Projection)•定义1.2.3投影关系R上的投影是从R中选择出若干属性列组成新的关系,是对关系的垂直分解。记作:πA(R)={t[A]|t∈R}其中A为

R中的属性列集合。•投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。郭文明2003.06.05投影(Projection)

例3查询学生的姓名和所在系。πSname,Sdept(S)或π2,5(S)或S[Sname,Sdept]例4查询学生关系Student中都有哪些系。πSdept(S)或S[Sdept]郭文明2003.06.05连接(Join)•定义1.2.4连接连接也称为θ连接。它是从两个关系的笛

卡尔积中选取属性间满足一定条件的元组。记作:R∞S={trts|tr∈R∧ts∈S∧tr[A]θts[B]}AθB其中A和B分别为R和S上度数相等且可比的属性组。θ是比较运算符。连接运算的结果是从R和S的广义笛卡尔积R×S中选取R关系在A属性组上的值与S关系在B属

性组上值满足比较关系θ的元组。郭文明2003.06.05连接(Join)•连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equijoin),另一种是自然连接(Naturaljoin)。另外

还有外连接、左连接、右连接等。•θ为“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组.•自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并

且在结果中把重复的属性列去掉。郭文明2003.06.05外连接•定义1.2.5外连接表R(A1,A2,…,An,B1,B2,…,Bk)和S(B1,B2,…,Bk,C1,C2,…,Cm)的外连接R∞oS,行t属

于表R∞oS,如果下列情况之一发生:1)可连接的行u,v分别在R和S中,有u[Bi]=v[Bi](0<=i<=k)成立,此时t[A]=u[A],t[B]=u[B],t[C]=v[C]。2)表R中的一个行u使得S中没有一个可以与之

连接的行,此时,t[A]=u[A],t[B]=u[B],t[C]=null。3)表S中的一个行v使得R中没有一个可以与之连接的行,此时,t[A]=null,t[B]=v[B],t[C]=v[C]。郭文明2

003.06.05外连接•由定义知,外连接保留了未匹配的行。也就是说,在外连接一端的表上的行,即使在另一端上的表没有与之相匹配的连接列值也会出现在外连接的结果中。左连接和右连接运算只是因为我们需要在某一边上保留未匹配的行而已。左

连接保留了在操作符左边的未匹配行,右连接保留了在操作符右边的未匹配行。•一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。郭文明2003.06.05关系代数连接运算符符号含义键盘格式示例∞AiθBjθ连接JOIN(AiθBj)R∞

A1>B2S∞o外连接OUTERJOINR∞oS∞Lo左连接LOUTERJOINR∞LoS∞Ro右连接ROUTERJOINR∞RoS郭文明2003.06.05连接运算举例RABCa1b15a1b26a2b38a2b412SBEb13b27b310b32b52θ连接R∞C<ES

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310等值连接R∞R.B=S.BSAR.BCS.BEa1b15b13a1b26b27a2b38b310a2

b38b32自然连接R∞SABCEa1b153a1b267a2b3810a2b382郭文明2003.06.05连接运算举例RABCa1b15a1b26a2b38a2b412SBEb13b27b310b

32b52外连接R∞oSABCEa1b153a1b267a2b3810a2b382a2b412nullnullb5null2左连接R∞LoSABCEa1b153a1b267a2b3810a2b382a2b412null右连接R∞RoSABCEa1b153a1b2

67a2b3810a2b382nullb5null2郭文明2003.06.05除(Division)•定义1.2.6除给定关系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]。郭文明2003.06.05除(Division)•除操作是同时从行和列角度进行运算。•除运算是乘运算的逆

运算,给定两个表T和S,如果表R是通过R=T×S定义的,那么有T=R÷S成立。在这个意义上可解释为什么称作除运算。郭文明2003.06.05除运算举例RABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1SBCDb1c

2d1b2c1d1b2c3d2R÷SAa1郭文明2003.06.05除运算举例•在关系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}.郭文明2003.06.05除运算举例R1)给出S,求得T=R÷S。注意:T×S都在R中

。ST2)给出S,求得T=R÷S。注意:T×S都在R中。ST3)给出S,求得T=R÷S。注意:T×S都在R中。ST4)给出S,求得T=R÷S。注意:T×S都在R中。STABCa1b1c1a2b1c1a1b2c1a1b2c2a2b1c2a1b2c3a1b2c4a1

b1c5Cc1ABa1b1a2b1a1b2Cc1c2ABa1b2a2b1Cc1c2c3c4ABa1b2BCb1c1Aa1a2郭文明2003.06.051.2.3关系代数综合例子•以下例子建立在下面CAP数据库上。C

顾客cidcnamecitydiscntc001李广天津10.00c002王开基北京12.00c003安利德北京8.00c004曹士雄天津8.00c006曹士雄广州0.00P商品pidpnamecityquantitypricep01梳子天津1114000.

50p02刷子成都2030000.50p03刀片西安1506001.00p04钢笔西安1253001.00p05铅笔天津2214001.00p06文件夹天津1231002.00p07盒子成都1005001.00A代理aidanamecitypercenta01史可

然北京6a02韩利利上海6a03杜不朗成都7a04甘瑞北京6a05敖斯群武汉5a06史可然天津5O订单ordnomonthcidaidpidqtydollars101101c001a01p011000450.00101201c001a01p011000450.00101902c001a02p0

2400180.00101702c001a06p03600540.00101802c001a03p04600540.00102303c001a04p05500450.00102203c001a05p06400720.00102504c001a05p078

00720.00101301c002a03p031000880.00102605c002a05p03800704.00郭文明2003.06.051.2.3关系代数综合例子例1查询所有定购了至少一个价值为0.50的商品

的顾客的名字。πcname((πpid(σprice=0.50(P))∞O)∞C)例2找出全部没有在代理商a03处订购商品的顾客cid值。πcid(O)—πcid(σaid=’a03’(O))或πcid(C)—

πcid(σaid=’a03’(O))例3找出只在代理商a03处订购商品的顾客。πcid(O)—πcid(σaid《》’a03’(O))郭文明2003.06.051.2.3关系代数综合例子例4找出没有被任何一个在北京的顾客通过在上海的代理商订购的所有商品。在北京的顾客通过在上海的代理

商订购的商品:πpid((πcid(σcity=’北京’(C))∞O)∞σcity=’上海’(A))从所有商品中剔除以上商品:π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))郭文明2003.06.051.2.3关系代数综合例子例8找出订购了p01和p07这两种商品的顾客的cid。错误πcid(σpid=’p01’andpid=’p07’(O))错误πc

id(σpid=’p01’orpid=’p07’(O))正确πcid(σpid=’p01’(O))∩πcid(σpid=’p07’(O))例9找出从至少一个接受订购商品p03订单的代理商处订购过商品的顾客cid。解题思路:πcid(π

aid(σpid=’p03’(O))∞O)订购商品p03的代理商从这些代理商处订购商品的顾客p03郭文明2003.06.051.2.3关系代数综合例子例10找出所有具有和在北京和天津的顾客相同的折扣率的顾客的cid。本题可理解为:找出

那些具有和在北京和天津的顾客相同的折扣率的顾客的cid。在北京和天津的顾客的所有折扣率:πdiscnt(σcity=’北京’orcity=’天津’(C))所以有:πcid(πdiscnt(σcity=’北京’orci

ty=’天津’(C))∞C)郭文明2003.06.05例11列出通过以下代理商订购的商品的pid:代理商从以下的顾客处接受订单,而这些顾客从一个接受过顾客c001订单的代理商处订购了至少一个商品。接受顾客c001订单的代理商:πaid(σcid=

’c001’(O))从这些代理商处订购过商品的顾客:πcid(πaid(σcid=’c001’(O))∞O)从这些顾客处接受过订单的代理商:πaid(πcid(πaid(σcid=’c001’(O))∞O)∞O)通

过上述代理商订购的商品pid:πpid(πaid(πcid(πaid(σcid=’c001’(O))∞O)∞O)∞O)1.2.3关系代数综合例子北京邮电大学软件学院郭文明2003.06郭文明2003.06.05作业:1.如果关系R和S没有

共同的列属性,根据定义说明表R×S等于表R∞S。2.对CAP数据库,用关系代数完成下列查询。1)找出顾客、代理商和商品都在同一个城市的三元组(cid,aid,pid)。2)找出顾客、代理商和商品两两不在同一个城市的三元组(cid,aid,pid)。3)列出所有在同一个城市代理商的aid对。4)找出

折扣率最大和最小的顾客cid。5)取出销售过所有曾被顾客c002订购过的商品的代理商的名字。6)找出只从一家代理商处订购过商品的顾客cid。郭文明2003.06.05

精品优选
精品优选
该用户很懒,什么也没有留下。
  • 文档 34925
  • 被下载 0
  • 被收藏 0
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?