




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.2关系代数,关系模型的重要部分是关系操纵,关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。利用关系代数可以演示一个查询语言从关系数据库系统中检索信息的潜力,可以用最简单的形式来表达所有关系数据库查询语言必须完成的运算的集合,这些基本的运算对解释标准查询语言SQL如何被执行很有帮助,同时也有利于培养关系运算的思维能力。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.2关系代数,关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类;集合运算符、专门的关系运算符、算术比较符和逻辑运算符。关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。其中传统的集合运算将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行。而专门的关系运算不仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,关系代数运算符,关系代数中,这些运算经有限次复合后形成的式子称为关系代数表达式。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.2.1传统的集合运算,传统的集合运算是二目运算,包括并、差、交、广义笛卡尔积。定义1.2.1设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则可以定义并、差、交运算如下:并(Union):关系R与关系S的并记作:RS=t|tRtS其结果仍为n目关系,由属于R或属于S的元组组成。差(Difference):关系R与关系S的差记作:RS=t|tRt!S其结果仍为n目关系,由属于R而不属于S的所有元组组成。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.2.1传统的集合运算,交(Intersection):关系R与关系S的交记作:RS=t|tRtS其结果仍为n目关系,由既属于R又属于S的元组组成。关系的交可以用差来表示,即RS=R-(R-S)。广义笛卡尔积(ExtendedCartesianProduct):两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1k2个元组。记作:RS=trts|trRtsS,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,传统集合运算举例,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,传统集合运算举例,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.2.2专门的关系运算,专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个常用记号。设关系模式为R(Al,A2,An)。它的一个关系设为R。tR表示t是R的一个元组。tAi则表示元组t中相应于属性Ai的一个分量。若A=Ai1,Ai2,Aik,其中Ail,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.2.2专门的关系运算,R为n目关系,S为m目关系。trR,tsS,trts称为元组的连接。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。给定一个关系R(X,Z),X和Z为属性组。定义tX=x时,x在R中的象集(ImagesSet)为:Zx=tZtR,tX=x它表示R中属性组X上值为x的诸元组在Z上分量的集合。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,学生-课程数据库,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,选择(Selection),定义1.2.2选择选择又称为限制(Restriction),它是在关系R中选择满足给定条件的诸元组,记作:F(R)=ttRF(t)=真其中F表示选择条件,它是一个逻辑表达式,取逻辑值真或假。逻辑表达式F由逻辑运算符,连接各算术表达式组成。算术表达式的基本形式为:X1Y1,其中表示比较运算符,它可以是、=19andSage=20,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,投影(Projection),定义1.2.3投影关系R上的投影是从R中选择出若干属性列组成新的关系,是对关系的垂直分解。记作:A(R)=tA|tR其中A为R中的属性列集合。投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,投影(Projection),例3查询学生的姓名和所在系。Sname,Sdept(S)或2,5(S)或SSname,Sdept例4查询学生关系Student中都有哪些系。Sdept(S)或SSdept,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,连接(Join),定义1.2.4连接连接也称为连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:RS=trts|trRtsStrAtsBAB其中A和B分别为R和S上度数相等且可比的属性组。是比较运算符。连接运算的结果是从R和S的广义笛卡尔积RS中选取R关系在A属性组上的值与S关系在B属性组上值满足比较关系的元组。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,连接(Join),连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equijoin),另一种是自然连接(Naturaljoin)。另外还有外连接、左连接、右连接等。为“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组.自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,外连接,定义1.2.5外连接表R(A1,A2,An,B1,B2,Bk)和S(B1,B2,Bk,C1,C2,Cm)的外连接RoS,行t属于表RoS,如果下列情况之一发生:1)可连接的行u,v分别在R和S中,有uBi=vBi(0=iB2So外连接OUTERJOINRoSLo左连接LOUTERJOINRLoSRo右连接ROUTERJOINRRoS,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,连接运算举例,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,连接运算举例,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,除(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上投影的集合。记作:RS=trX|trRy(S)Yx其中Yx为x在R中的象集,x=trX。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,除(Division),除操作是同时从行和列角度进行运算。除运算是乘运算的逆运算,给定两个表T和S,如果表R是通过R=TS定义的,那么有T=RS成立。在这个意义上可解释为什么称作除运算。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,除运算举例,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,除运算举例,在关系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)属性组上的投影,所以RS=a1.,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,除运算举例,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.2.3关系代数综合例子,以下例子建立在下面CAP数据库上。,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.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(aida03(O),北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.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,数据库设计与开发讲义,1.2.3关系代数综合例子,例8找出订购了p01和p07这两种商品的顾客的cid。错误cid(pid=p01andpid=p07(O)错误cid(pid=p01orpid=p07(O)正确cid(pid=p01(O)cid(pid=p07(O)例9找出从至少一个接受订购商品p03订单的代理商处订购过商品的顾客cid。解题思路:cid(aid(pid=p03(O)O),订购商品p03的代理商,从这些代理商处订购商品的顾客,p03,北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,1.2.3关系代数综合例子,例10找出所有具有和在北京和天津的顾客相同的折扣率的顾客的cid。本题可理解为:找出那些具有和在北京和天津的顾客相同的折扣率的顾客的cid。在北京和天津的顾客的所有折扣率:discnt(city=北京orcity=天津(C)所以有:cid(discnt(city=北京orcity=天津(C)C),北京邮电大学软件学院郭文明2003.06,数据库设计与开发讲义,例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关系代数综合例子,北京邮电大学软件学院郭
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能玩具互动创新创业项目商业计划书
- 教师招聘之《小学教师招聘》每日一练附参考答案详解【a卷】
- 押题宝典教师招聘之《幼儿教师招聘》通关考试题库带答案详解(培优)
- 教师招聘之《小学教师招聘》考前冲刺模拟题库提供答案解析(预热题)附答案详解
- 2025年高绝缘高导热氮化铝陶瓷基片项目发展计划
- 演出经纪人之《演出经纪实务》考试模拟试卷【全优】附答案详解
- 廉租住房租金补贴协议
- 收银礼仪培训课件
- 2025年员工招聘笔试题库及答案
- (完整版)高压成套配电柜安装施工方案
- 职高数学公式与定理表
- 2024年四川遂宁川能水务有限公司招聘笔试参考题库含答案解析
- 射频同轴电缆组件市场需求分析报告
- 第1课 社会主义在中国的确立与探索【中职专用】高一思想政治《中国特色社会主义》(高教版2023基础模块)
- 传统建筑元素在现代建筑中应用
- 王道勇保障和改善民生
- 医疗法律法规知识培训
- 血友病课件完整版
- 临床职业素养
- 种子学-种子的化学成分课件
- 手术室无菌技术 课件
评论
0/150
提交评论