第4篇 关系数据库方法.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
更一般地,如果F1只涉及到E1中的属性,而F2涉及到E1和E2两者的属性,则: 等价变换规则 (6)选择移入笛卡儿积 如果F中所涉及的属性都在E1中,那么 :   如果F是F1∧ F2形式,并且F1只涉及E1中的属性,F2只涉及E2的属性,则:  等价变换规则 ⑺选择与并运算交换 ⑻选择与差运算交换  ⑼投影移入笛卡儿积 设A1,…,An是E1的属性,中出现的B1,…,Bm是E2的属性,则: ⑽投影移入并运算 3)代数优化的算法 下面给出一个通用的优化算法: 优先应用单项的选择和投影; 优先应用一般选择和投影; 对笛卡儿积、并运算、差运算,若它们前面加有选择和投影,则先做选择和投影。 ? 优化算法 算法:关系表达式的优化 输入:表示关系代数表达式的语法分析树 输出:计算这个表达式的程序 方法:(1)使用规则④把形式为 的选择变成选择串接的形式: (2)对每个选择用规则④ ~ ⑧,尽可能地将选择向树的叶端移动。 (3)对每个投影,利用规则③,⑨,⑩和一般化规则⑤,将投影尽可能地向树的叶端移动。 (4)利用规则③~⑤把串接的选择和投影组合为一个选择、一个投影或带投影的选择。 (5)把所得到的树的内部结点划分成组。 图书管理数据库,其关系如下: BOOKS (LC_NO , TITLE,AUTHOR,PNAME) PUBLISHERS (PNAME,PADDR,PCITY) BORROWERS (CARD_NO, NAME,ADDR,CITY) LOANS(CARD_NO,LC_NO,DATE) 为了解借书情况,我们定义一个关系XLOANS存放借书信息。XLOANS是关系BOOKS,BORROWERS和LOANS的自然连接,即: 其中,F是条件表达式: BORROWERS.CARD_NO=LOANS.CARD_NO ∧ BOOKS.LC_NO=LOANS.LC_NO S是投影表达式: TITLE,AUTHOR,PNAME,LC_NO,NAME,ADDR,CITY,CARD_NO,DATE 表达式的语法分析树 ∏TITLE, NAME σDATE01/01/1999 ∏TITLE, AUTHOR, PNAME, LC_NO, NAME, NAME, ADDR, CITY, CARD_NO, DATE σBORROWERS.CARD_NO=LOANS.CARD_NO ∧ BOOKS.LC_NO=LOANS.LC_NO × × BOOKS BORROWERS LOANS σBORROWERS.CARD_NO=LOANS.CARD_NO∧ BOOKS.LC_NO=LOANS.LC_NO分解成 σBORROWERS.CARD_NO=LOANS.CARD_NO和σBOOKS.LC_NO=LOANS.LC_NO两个运算 将三个选择尽可能向树叶端移动 将该语法树中的两个投影合并为一个投影运算 。 选择下移且合并投影后的语法树   ∏TITLE, NAME σDATE01/01/1999 σBOOKS.LC_NO=LOANS.LC_NO × × BOOKS BORROWERS LOANS σBORROWERS.CARD_NO=LOANS.CARD_NO 在上面的笛卡儿积运算乘积之下增加一个投影运算: ∏TITLE, NAME, BOOKS.LC_NO, LOANS.LC_NO 并将投影替换分解成两个投影,一个是作用在BOOKS上: ∏TITLE, BOOKS.LC_NO 另一个是作用在笛卡儿积右边: ∏ NAME, LOANS.LC_NO 进一步优化后的语法树 BORROWERS ∏TITLE, NAME σDATE01/01/1999 σBOOKS.LC_NO=LOANS.LC_NO × × BOOKS LOANS σBORROWERS.CARD_NO=LOANS.CARD_NO ∏TITLE, BOOKS.LC_NO ∏NAME, LOANS.LC_NO 最下面的笛卡儿积运算运算前增加两个投影运算: ∏ NAME, BORROWERS.CARD_NO ∏LOANS.LC_NO,LOANS.CARD_NO 最后的语法树 ∏TITLE, NAME σBOOKS.LC_NO=LOANS.LC_NO × × BOOKS σBORROWERS.CARD_NO=LOANS.CARD_NO

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档