第5章代数和逻辑查询语言讲解.pptVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章代数和逻辑查询语言讲解

* 左右外连接示例 R和S左外连接 R L S R和S右外连接 R R S * 课本示例 * 第5章 代数和逻辑查询语言 主讲人:颜 颖 Email:yanying@hqu.edu.cn * 主要内容 5.1 包上的关系操作 5.2 关系代数的扩展操作符 5.3 关系逻辑 5.4 关系代数与datalog * 什么是包 包,也叫多集(multi):与集合不同,当关系是包时,同一个元组可以在关系中多次出现。 示例 A B 1 2 3 4 1 2 1 2 包允许重复元组 元组没有顺序 * 为什么采用包 商业DBMS实现的关系都是包,而不是集合,重要的原因是采用基于包的关系,一些关系操作的实现效率会更好。例如: 两个包关系的并,只需将一个关系的所有元组复制到另一个关系,而不必消除两个关系中的重复元组 在集合关系上作投影时,需将每一个投影元组与所有元组逐个比较,以确定每次投影只出现一次。而如果接受包作为结果,就可以简单地投影每个元组并将其加入结果中,无须比较,消除重复元组。 * 示例 把如下关系投影到A,B属性上 集合 包 A B 1 2 3 4 1 2 1 2 A B C 1 2 5 3 4 6 1 2 7 1 2 8 A B 1 2 3 4 效率较高 求A的平均值: (1+3)/2=2 与原来关系中A的平均值不符 求A的平均值: (1+3+1+1)/4=1.5 与原来关系中A的平均值相符 * 包的并、交、差 假定R和S是包,其中元组t在R中出现了n次,在S中出现了m次。注意:这里的n和m都可以是0。 在R∪S的包并操作中,元组t出现n+m次 在R∩S的包交操作中,元组t出现min(m,n)次 在R-S的包差操作中,元组t出现max(0,n-m)次 直观上,t在S中的每次出现都抵消了它在R中的一次出现 * 示例 A B 1 2 3 4 1 2 1 2 A B 1 2 3 4 3 4 5 6 R S A B 1 2 3 4 1 2 1 2 1 2 3 4 3 4 5 6 A B 1 2 3 4 A B 1 2 1 2 A B 3 4 5 6 R∪S R∩S R-S S-R * 包上的投影操作 包 A B 1 2 3 4 1 2 1 2 A B C 1 2 5 3 4 6 1 2 7 1 2 8 * 包上的选择操作 在包上应用选择操作的时候,要独立对每个元组应用选择条件,在结果中不去掉重复元组。 示例:如果R是包 A B C 1 2 5 3 4 6 1 2 7 1 2 7 包选择 A B C 3 4 6 1 2 7 1 2 7 * 包的笛卡尔积 一个关系中的每个元组跟另外一个关系中的每个元组配对,而不管这个元组是不是重复出现。 如果元组r在关系R中出现了m次,元组s在关系S中出现了n次,那么元组rs在R×S中出现m*n次 * 示例 A B 1 2 1 2 R B C 2 3 4 5 4 5 S A R.B S.B C 1 2 2 3 1 2 2 3 1 2 4 5 1 2 4 5 1 2 4 5 1 2 4 5 R×S 同时属于R和S两个关系的属性B,在积中出现两次,于是属性的前面要加上关系名的前缀 * 包的连接 首先对比两个关系中的元组,看是不是能组成一对,如果可以,这个配对起来的元组就是结果中的一员。产生结果时,不需要去掉重复元组。 A B 1 2 1 2 R B C 2 3 4 5 4 5 S A B C 1 2 3 1 2 3 R S R R.BS.BS A R.B S.B C 1 2 4 5 1 2 4 5 1 2 4 5 1 2 4 5 * 主要内容 5.1 包上的关系操作 5.2 关系代数的扩展操作符 5.3 关系逻辑 5.4 关系代数与datalog * 关系代数的扩展操作符 (1) 消重复操作符 (2) 聚集操作符 (3) 分组操作 (4) 扩展投影 (5) 排序算子 (6) 外连接算符 * (1) 消重复操作符 把包中的重复元组去掉,只保留一个拷贝在关系中 用符号δ表示, δ(R)返回没有重复元组的关系R 示例: A B 1 2 3 4 1 2 1 2 R A B 1 2 3 4 δ(R) * (2) 聚集操作符 应用在数值或字符串类型的集合或者包上的操作符,用于汇总或聚集关系某一列中出现的值 SUM:产生一列的总和,得到数字值 AVG:产生一列的平均值,结果也是数字值 MIN/MAX: 用于数字值列时,产生该列的最大/小值; 用于字符值列时,产生字典序的第一个/最后一个值 COUNT:产生一列中“值”的数目(包括重复值) * 聚集操作符示例 SUM(B)=2+4+2+2=10 AVG(A)=(1+3+1+1)/4=1.5 MIN(A)=1 MAX(B)=4

文档评论(0)

4477704 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档