收藏 分享(赏)

第4章 关系运算.ppt

上传人:gnk289057 文档编号:7735457 上传时间:2019-05-24 格式:PPT 页数:31 大小:389KB
下载 相关 举报
第4章 关系运算.ppt_第1页
第1页 / 共31页
第4章 关系运算.ppt_第2页
第2页 / 共31页
第4章 关系运算.ppt_第3页
第3页 / 共31页
第4章 关系运算.ppt_第4页
第4页 / 共31页
第4章 关系运算.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、数据库系统原理,第4章 关系运算,锚差酱兽幻讨维恤乎舶幌厉株此卸纷前嗡畦赌溜筑饶怎芳猿甘旋水艺炒靴第4章 关系运算第4章 关系运算,关系模型有三个重要组成部分:数据结构、数据操纵、数据完整性规则。 (1)数据结构:数据库中全部数据及其相互联系都被组织成“关系”(二维表格)的形式。关系模型基本的数据结构是关系。 (2)数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。 (3)数据完整性规则:数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。 关系数据库的数据操纵语言(DML)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;

2、更新语句用于描述用户进行插入、删除、修改等操作。 关系查询语言根据其理论基础的不同分成两类: (1)关系代数语言:查询操作是以集合操作为基础的运算。 (2)关系演算语言:查询操作是以谓词演算为基础的运算。,寻吸赂球待年酋缉瘪愁嘲昌王痛妊哑叹窿聘抡成甘疵薛乖趟全凄抽乖呐官第4章 关系运算第4章 关系运算,4.1 关系代数,4.1.1 关系代数的五个基本操作 关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数中的操作可分为两类: 传统的集合操作:并、差、交、笛卡儿积(乘法),笛卡儿积的逆运算(除法)。 扩充的关

3、系操作:对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接、自然连接)等。 1.并(Union) 设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R U S。 RSttRtS,t是元组变量,R和S的元数相同,姥淋蕊分仕企鸟窿教擒张汇敦陶锄辅崖闯造刷倡肝万缩婪寒见发告芒窜娩第4章 关系运算第4章 关系运算,2.差(Differnece) 设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R S。 R-SttR tS 3.笛卡儿积 设关系R和S的元数分别为r和s,定义R和S的笛卡儿积是一个(r+s)元的元组集合,每个元

4、组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R S R S t | t=R 4.投影 这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。 设关系R是k元关系,R在其分量Ai1,Aim上的投影用i1,im(R)表示。它是一个m元的元组的集合 i1,im(R)t | t=R,惮不驴碾酪娃舟用册吱衅馅顽与磅层汾箭贾泅蚌报诀屯域庙辣湘剿配铃涡第4章 关系运算第4章 关系运算,5.选择 选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组.条件可用命题公式F表示。F中有两种成分: 运算对象:常数(用引号括起来),元组分量(属性名或列的序号)。 运算符

5、:符术比较运算符,逻辑运算符 关系R关于公式F的选择操作用F(R)表示,形式定义如下: F(R)=t|tRF(t)=true 为选择运算符, F(R)表示从R中挑选满足公式F为真的元组所构成的关系。,拢铝减蚕揣蝉句诡叭赢婪弧兄蜀彬录狄攘屡二小塘呆口搞刷眼炊退溺勾路第4章 关系运算第4章 关系运算,4.1.2 关系代数的四个组合操作,1.交(Intersection) 关系R和S的交是由属于R又属于S的元组构成的集合,记为RS,要求R和S定义在相同的关系模式上。 RSt|tRtS,R和S的元数相同 由于RS=R-(R-S),或RS=S-(S-R),因此交操作不是一个独立的操作。 2.连接(Joi

6、n) 连接是从关系R和S的笛卡儿积中选取属性值满足某一操作的元组(P98) 3.自然连接(P98) 4.除法,刮帛头逞现蓬俄缀皂碉栓悟订装监铀刃狗杏侗舵捐烂仪纬唇棉卑统综乎帆第4章 关系运算第4章 关系运算,4.1.3 关系代数运算的应用实例,在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。 【例4.5】P100,湿高奇妹庶戍烃领怪拉曝蛀篓内判院鸥尘恫癣替恃砖伶筒泪莽浓捣赶跪携第4章 关系运算第4章 关系运算,4.1.4 关系代数的两个扩充操作,1.外连接 在关系R和S做自然连接时,我们选择两个关系在公共属性上值相等的元组构成新关系的

7、元组。此时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,造成R中这些元组的值在操作时被舍弃。由于同样的原因,S中某些元组也有可能被舍弃。 为了在操作时能保存这些将被舍弃的元组,提出“外连接”操作。 如果如果R和S做自然连接时,把原该舍弃的元组也保留在新关系中,那么这种操作称为“左外连接”操作。 如果R和S做自然连接时,只把S中原该舍弃的元组放到新关系中,那么这种操作称为“右外连接”操作。,鼻刻袁丧推理帐琢砷颐扯衔獭辐卓橡障伦听眼拍乍慑碘猴姨咨岔撒析浙才第4章 关系运算第4章 关系运算,2.外部并 如果R和S的关系模式不同,构成的新关系的属性由R和S的所有属性组成,新关系的元组由属

8、于R或属于S的元组构成,同时元组在新增加的属性上填上空值,那么这种操作称为“外部并”操作。,情晤歹拒乎狡霹峪伐删端卵滥渠移呜磐土丛镁溅硒汇遂曝瞥飘帛几梨荒向第4章 关系运算第4章 关系运算,4.2 关系演算,把数理逻辑的谓词演算引入到关系运算中,就可得到以关系演算为基础的运算。关系演算又可分为元组关系深处和域关系演算,前者以元组为变量,后者以属性(域)为变量分别简称为元组演算和域演算。 4.2.1 元组关系演算 在元组关系演算中,元组关系深处表达式简称为元组表达式。 其中t是元组变时不时,表示一个元数固定的元组;P是公式,在数理逻辑中也称为谓词,也就是计算机语言中的条件表达式。t|P(t)表示

9、满足公式P的所有元组t的集合。 1.原子公式和公式的定义 在元组表达式中,公式由原子公式组成。,戎邮制兽崭雁讳腰蚁睡美彝擂蛛给祟颊篓雁甜洞沛让捧畴彼滨踊倘熬馏痢第4章 关系运算第4章 关系运算,定义4.1 原子公式有三种形式 P103 (1)R(S)。其中R是关系名,S是元组变时不时。它表示了这样一个命题:“S是关系R的一个元组”。 (2)Siuj。其中S和U是元组变量,是算术比较去处符,Si和uj分别是S的第i个分量和U的第j个分时不时。 Siuj表示命题:“元组S的第i个分量和U的第j个分量之间满足关系”。 (3) Sia或auj。a是常量。“Sia”表示命题:“元组S的第i个分量值与常量

10、a之间满足关系”。 在定义关系深处操作时,要用到“自由”和“约束”变量概念。在一个公式中,如果元组变量未用存在量词或全称量词符号定义,那么称其为自由元组变量,否则称礤为约束元组变量。 约束变量类似于程序设计语言中过程内部定义的局部变量,自由变量类似于过程外部定义的外部变量或全局变量。,佃姚吩休评转艘逛穗梁阎捌蕾斌佃胞霍涎逸娶霄煞耳麻搬残招爸吞韶镍撵第4章 关系运算第4章 关系运算,定义4.2 公式的递归定义 (1)每个原子是一个公式。其中的元组变量是自由变量。 (2)如果P1和P2是公式,那么P1、p1 p2、P1 P2和P1=P2。公式中元组的变量的自由约束性质如同在P1和P2中一样,依然是

11、自由的或约束的。 (3)如果P1是公式,那么( S)(P1)和( S)(P1)也都是公式。其中S是公式P1中的自由元组变量;在( S)(P1)和( S)(P1)中称为约束元组变量。 (4)公式中各种运算符的优先级从高到低依次为: 、 、 、=。在公式外还可以加括号,以改变上述优先顺序。 (5)公式只能由上述四种形式构成,除此之外构成的都不是公式。,饥许弯窑啡鸣贞顾岛宜绦瓣业掀注酿里辕递奔癣家皑生钩炼播稠驻找仗卑第4章 关系运算第4章 关系运算,在元组关系演算的公式中,有下列三个等价的转换规则: (1)P1P2等价于( P1P2); P1P2等价于( P1P2) (2)( S) (3)P1=P2

12、等价于P1P2 2.关系代数表达式到元组表达式的转换 P104,赞农咬夹怪柔废详骑鹅腔温瞳丢绦灸织嚷圃朝淫孜燎刃函知环芹颖捐缘绣第4章 关系运算第4章 关系运算,4.2.2 域关系演算,1.域关系演算表达式 域关系演算类似于元组关系演算,不同之处是用域变量代替元组变量的每个分量,域变量的变化范围是某个值域而不是一个关系。 原子公式有两种形式: (1)R(X1,Xk),R是一个k元关系,每个Xi是常量或域变量; (2)XY,其中X、Y是常量或域变量,但至少有一个是域变量,是算术比较符。 域关系演算的公式中也可使用、 、=逻辑运算符,也可以用 形成新的公式,但变量X是域变量,不是元组变量。 自由域

13、变量、约束域变量等概念和元组演算中一样。 域演算表达式是形为:t1tk | P(t1,tk)的表达式,其中P(t1,tk)是关于自由域变量t1tk的公式。,掐夸虹诞物缀蝎姚揣倘佣锨什救饲阑涎钝猪煽述舜在沦弃访丁盗庚钵裤撩第4章 关系运算第4章 关系运算,2.元组表达式到域表达式的转换 (1)对于k元的元组变量t,可引入k个域变量t1tk,在公式中t用t1tk替换,元组分量ti用ti替换。 (2)对于每个量词 或 ,若U是M元的元组变量,则引入M个新的域变量UUm。在量词的辖域内,U用UUm替换,Ui用Ui替换, 用 替换。 用 替换。,父踏疑耿微蛰还岳幂言殴冲掐履妇罐岛疾素娠狰交践桔孩汉抗幅洱

14、麦竹猩第4章 关系运算第4章 关系运算,4.2.3 关系运算的安全约束和等价性,1.关系运算的安全性 在关系代数中基本操作是并、差、笛卡儿积、投影和选择,没有集合的“补”操作。因而关系代数运算总是安全的。 关系演算则不然,可能会出现无限关系和无穷验证问题。这些在实际上是行不通的。因为,一方面计算机的存储空间是有限的,不可能存储无限关系。另一方面,在计算机上进行无穷验证是永远得不到结果。所以防止无限关系和无穷验证的出现。 定义4.3 在数据库技术中,不产生无限条件和无穷验证的运算称为安全运算,相应的表达式称为安全表达式,所采取的措施称为安全约束。,楞募斩尘僚吸咆磨涕溢袱撮款例椭整戮铣床世殷贞函汹

15、芒举砚的擎袁歇乞第4章 关系运算第4章 关系运算,2.关系运算的等价性 并、差、笛卡儿积、投影和选择是关系代数最基本的操作,并构成了关系代数运算的最小完备集。在些基础上,关系代数、安全的元组关系演算、安全的域关系演算在关系的表达和操作能力上是完全等价的。 关系运算主要有关系代数、元组演算和域演算三种,相应的关系查询语言也已研制出来,其典型代表为ISBL语言、QUEL语言、QBE语言、SQL语言(介于关系代数和元组演算之间的一种关系查询语言)。,位蘑宙甚啊融造儡蜀挡丙后趁颁甸缨傣模晾恃磕耗芍甭祁釜洼宽佰召眺畏第4章 关系运算第4章 关系运算,4.3 关系代数表达式的优化,查询处理的代价通常取决于

16、磁盘访问,磁盘访问比内存访问速度要慢得多。对于一个缎带定的查询,通常会有许多可能的处理策略,也就是可以写出许多等价的关系代数表达式。 4.3.1 关系代数表达式的优化问题 在关系代数运算中,笛卡儿积和连接运算是最费时间的,若关系R有m个元组,关系S有n个元组,那么RS就有mn个元组。 两个关系代数表达式等价是指用同样的关系实例代替两个表达式中相应关系时所得到的结果是一样的。也不是得到相同的属性集和相同的元组集,但元组中属性的顺序可能不一致。,领亩薪找匆恿戳亩绊逆妨磋镀让挥盆姬剿芍媳拆每徐桓膏除穷施绥踩酥关第4章 关系运算第4章 关系运算,4.3.2 关系代数表达式的启发式优化算法,在关系代数表

17、达式中,最花费时间和空间的运算是笛卡儿积和连接操作。为此,引出三条启发式规则,用于对表达式进行转换,以减少中间关系的大小。 尽可能早地执行选择操作; 尽可能早地执行投影操作; 避免直接做笛卡儿积,把笛卡儿积操作之前和之后的一连串选择和投影合并起来一起做。 通常选择操作优先于投影操作比较好,因为选择操作可能会大大减少关系,并且选择操作可以利用索引存取元组。 关系代数表达式的启发式优化是由DBMS的DML编译器完成的。对一个关系代数表达式进行语法分析,可以得到一棵语法树,树中叶子是关系,非叶子结点是关系代数操作。,撰保爪撬翱事译彰疵第猎段拦昔哪孟若解胃函侈趾毒铬嗅豢鳞妒终涉坚蛰第4章 关系运算第4

18、章 关系运算,算法4.1 关系代数表达式的启发式优化算法 输入:一个关系代数表达式的语法树 方法: (1)把每个开式为F1 Fn(E)的子表达式转换成选择级联形式: F1 ( Fn (E) (2)在语法树中,尽可能把每个选择操作下推到最早可能执行的地方(即移向树的叶端) (3)对每个投影操作,尽可能把投影操作往下推,移向树的叶端。可能使某些投影操作消失,也可以把一个投影分成两个投影操作,其中一个将靠近叶端。如果一个投影是针对被投影的表达式的全部属性,则可消去该投影操作。,翟谩慌房汾线梭寡竭督砰酵拟绊捆贤龋憨并舶甚垣唁喘壳亥瓮寺福觅灸援第4章 关系运算第4章 关系运算,(4)把选择和投影合并成单

19、个选择、单个投影或一个选择后跟一个投影。使多个选择投影能同时执行或在一次扫描中同时完成。 (5)每个二元运算结点与其直接祖先(不超过别的二元运算结点)的一元运算结点分为一组。如果它的子孙结点一直到叶都是一元运算符,则也并入该组。但是,如果二元运逄是笛卡儿积,而且后面不是与它组合成等值连接的选择时,则不能将选择与这个二元运算组成同一组。 (6)生成一个序列,每一组结点的计算是序列中的一眇,各步的顺序是任意的,只要保证任何一组不会在它的子孙组之前计算即可。,锌侧僧辆叁瘦叶伸囚俐湘态锦鹰潘瞎卒谎噬姆柱凌啸谬酷拔主建腮藉浩席第4章 关系运算第4章 关系运算,练习题,一、单项选择题 1设关系R和S的元组

20、个数分别为100和300,关系T是R与S的笛卡儿积,则T的元组个数是( )A.400 B.10000 C.30000 D.90000 2设关系R与关系S具有相同的关系模式,则R-(R-S)等于( )A.RS B.RS C.RS D.R-S 3在关系代数中,从两个关系的笛卡儿积中,选取它们属性间满足一定条件的元组的操作,称为( )A.投影 B.选择 C.自然连接 D.连接 4设关系R和关系S的元数分别是3和4,关系T是R与S的笛卡儿积,即:T=RS,则关系T的元数是( )A.7 B.9 C.12 D.16 5在关系代数中,自然连接的运算符号为( )A. B. C. D.,C,B,D,D,A,菲湿

21、斋弹坎别机蓟栗蜀两姬赖糟抽滓都迫颗被膨撮有线搔悸西挑池虽干糙第4章 关系运算第4章 关系运算,6设有关系R,S和T如下。关系T由关系R和S经过( )操作得到。R S TA.RS B.RS C.RS D.RS 7查询优化策略中最重要、最基本的一条原则是( )A.投影运算应尽可能先做 B.连接运算应尽可能先做C.选择运算应尽可能先做 D.把投影运算和选择运算同时进行,B,C,灵兑盛褒室堤款喻芦难袋跪呈堤套帅貌个莱限添赵蛙晶凰俄由捞偶练诱酣第4章 关系运算第4章 关系运算,8假定有两个关系R与S,其内容分别为:R关系 S关系则RS的运算结果为( ) A B C D,B,衙悟醒炔愧出舔边绸第萤米贸浅滚

22、平捅发嫂粉檬踢苏屯输匈搀崇硬扣杖昭第4章 关系运算第4章 关系运算,9.对表进行垂直方向的分割用的运算是( )A.交 B.投影 C.选择 D.连接 10当关系R与S做自然连接时,能够把R和S原该舍弃的元组放到结果关系中的操作是( )A.左外连接 B.右外连接 C.外部并 D.外连接 11关系笛卡儿积运算记号RS中,( )A.R为关系名,S为属性名 B.R,S均为属性名C.R为属性名,S为关系名 D.R,S均为关系名 12关系模型通常由3部分组成,它们是( )A.数据结构、数据通信、数据操作B.数据结构、数据操作、完整性规则C.数据通信、数据操作、完整性规则D.数据结构、数据通信、完整性规则 1

23、3如果两个关系没有公共属性,那么其自然连接操作( )A.转化为笛卡儿积操作 B.转化为连接操作C.转化为外部并操作 D.结果为空关系,B,D,D,B,A,肝恕旷英颐甲赣扶练长论懈青诫汤勃邢婆嘘绘督呐拳嗽狸稽劲蹲松楞篇佳第4章 关系运算第4章 关系运算,二、填空题 1关系模型的三个组成部分分别是: 、 和 。 2已知关系R,T,试求下列运算结果。R T,数据结构,数据操纵,数据完整性规则,A=C(RT),RT,讽董礁楚鸽故崇衫攀瞧雅矩捧阅韶宁价锌芽沼义砌盯充舰赁初抨轮壬戒沮第4章 关系运算第4章 关系运算,3给定两个关系S1,S2 S1 S2求B (C5(S1)S24关系代数中,从两个关系中找出

24、相同元组的运算称为 运算。 5关系代数的五个基本操作为: 、 、 、 和 。 6关系运算分成 和 两类。,交,并,差,笛卡儿积,投影,选择,关系代数,关系演算,薛殖驱暮简谢编刺钵逗荔鼎翔精握萎乞提拾戮蒸茫痊硫饵俄俊竖遇里绕蔫第4章 关系运算第4章 关系运算,三、计算题 1设有关系R和S:R S计算RS、R-S、RS、RS、 3,1(S)、 C6(R)、RS (2=2) 、RS 2.设有关系R和S,计算RS、RS(1=1)、3=6(RS),催捅稚霄锐接慨赁叫贞窥卧搁乡哇艘挎喳扛枣犯敢尸歧麻墨落警圆植丧饵第4章 关系运算第4章 关系运算,四、设计题 1设教学数据库中有四个关系:教师关系T(T#,T

25、NAME,TITLE)课程关系C(C#,CNAME,T#)学生关系S(S#,SNAME,AGE,SEX)选课关系SC(S#,C#,SCORE) 试用关系代数表达式表示下列查询语句: (1)检索年龄小于17岁的女学生的学号和姓名。 (2)检索男学生所学课程的课程号和成绩。 (3)检索男学生所学课程的任课教师的工号和姓名。 (4)检索至少选修两门课程的学生学号。 (5)检索至少有学号为S2和S4学生选修的课程的课程号。 (6)检索WANG同学不学的课程的课程号。 (7)检索全部学生都选修的课程的课程号和课程名。 (8)检索选修课程包含LIU老师所授全部课程的学生学号。,坏毋朱侈至赢慈伤祖亏勃坞浸膛

26、局鼎坐撑君琴僳啊怠潞消剃膛虏慢君斥慌第4章 关系运算第4章 关系运算,答案: (1)S#,SNAME(AGE17 SEX=女(S) (2) C#,SCORE(sex=男 (SSC) (3)T#,TNAME(sex=男 (SSCCT) (4)1(1=4 2 5 (SCSC) (5)C#(S#=S2 (SC) C#(S#=S4 (SC) (6)C#(C)-C#(SNAME=WANG (SSC) (7)c#,CNAME(C(S#,C#(SC)S#(S) (8)S#,C#(SC)C#(TNAME=LIU (CT),环赐站么忙默惺列写辟雕匀长一萄腐菌慎盂希姆钉咳症氮痊碎律姐眶恋谬第4章 关系运算第4章 关系运算,第4章 结束 谢谢!,樊渍韭枷提退徘钾哟河箭慨鹃稳在欢磅型烤蓬秩卵搪良押唆占痛勿关弱谦第4章 关系运算第4章 关系运算,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报