数据库与知识库原理 dbkb4.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库与知识库原理 dbkb4

第四章 关系查询语言 4.1 查询语言概貌 4.2 几种主要的关系查询语言 第四章 关系查询语言 4.1 查询语言概貌 4.2 几种主要的关系查询语言 查询语言概貌 数据操纵语言的附加功能 关系代数与关系演算语言的比较 选-投-连表达式 查询语言的完备性 定理3.12: 关系查询语言、安全的域关系演算语言和安全的元组关系演算语言这三种语言在表达能力上是等价的 在数据库历史上,Codd最先将域关系演算作为评价基于关系模型的数据操纵语言能力的一个标准 一种语言至少应该具备安全的域关系演算语言、或者等价的关系代数或安全的元组关系演算语言的表达能力,否则就不认为它是完备的 数据操纵语言的附加功能 增、删、改命令 算术运算能力 在代数表达式的演算表达式原子或选择原子中,既可以包括算术比较,也可以包括算术计算,如AB+7 赋值和打印命令 允许打印关系代数表达式或关系演算表达式所构造的关系 允许将所计算的关系作为值赋给一个关系名 聚集函数 在关系的列上施加求平价值、总和、最大值或最小值等聚集操作 结论 本章将要讨论的数据操纵语言比完备性所要求的功能更为强大 在不考虑算术和聚集操作的情况下,很多(但并非所有)附加功能都可以转换为等价的关系演算形式 对QBE这样的语言来说,即使从中去掉算术和聚集操作,它仍然可以表达某些完备性所不能表达的操作 比如对关系的传递闭包计算 由于传递闭包必须通过递归逻辑来表达,根据定理3.12,它是不能用关系代数或两种关系演算形式来表达的 关系代数与关系演算语言的比较 一般说来,基于关系演算的语言比关系代数语言更为高级,或描述性更强 在关系代数中,需要用户来指定操作的顺序 在关系演算中,可以由编译器或解释器来决定最高效的计算次序 例 设在关系R(A,B)和S(B,C)上有代数查询 ∏C(?A=a(R(A,B)?S(B,C)) (1) 等价的域关系演算表达式为 {C|(?B)(r(a,B)?s(B,C))} (2) 比较 (2)式实际上只说明了想要的结果,但并没有说明怎样去得到结果 (1)式给出了操作的一个特定次序 事实上,可以证明(1)式等价于 ∏C(∏B(?A=a(R(A,B))?S(B,C)) (3) 先计算R1(B)=∏B(?A=a(R(A,B)) 然后计算R1(B)?S(B,C) 最后将该关系投影到C上即得到所需的答案 选-投-连(Select-Project-Join)表达式 在拥有完备性特征的前提下,一种查询语言能否容易地处理在关系代数中出现频率很高的一个表达式子集,也是一个非常重要的特征 这个子集中的表达式由选择、投影和连接操作构成,它把一个查询看成是 根据选择子句的描述取出实体 通过一些关系将它与另一种类型的实体连接起来 根据投影决定输出结果实体中的哪些属性值 这种表达式被称做选-投-连表达式 不带否定子目标的单条Datalog规则的规则体对应的关系就可以通过选-投-连查询来表达 第四章 关系查询语言 4.1 查询语言概貌 4.2 几种主要的关系查询语言 几种主要的关系查询语言 ISBL QUEL Query-by-Example(QBE) SQL ISBL 一种“纯粹的”关系代数语言 它由IBM United Kingdom Scientific Center开发,用于PRTV(Peterlee Relational Test Vehicle)系统 它非常近似于关系代数形式 具有完备性 ISBL对应于关系代数的语法形式 QUEL 在风格和观点上都非常类似于元组关系演算语言 用于INGRES系统,该系统是由Berkeley开发的一个DBMS 在QUEL中,查询的通用形式为: range of μ1 is R1 …… range of μk is Rk retrieve (μi1.A1, …, μir.Ar) where ?(μ1, …, μk) QBE 由IBM开发的一种域关系演算语言,后来被用于IBM的Query Management Facility中,现在还有些个人电脑的数据库系统支持不同种类的QBE 与其它几种语言不同的是,QBE通过一种特殊的表框架(table skeleton)来表示查询 表框架结构示例 查询产生过程 设有三个关系模式: ORDERS(O#, DATE, CUST) INCLUDES(O#, ITEM, QUANTITY) SUPPLIES(NAME, ITEM, PRICE) 采用QBE方式查找那些给“Zhang”所订商品供货的供货商 根据该查询选择所需的三个表框架

文档评论(0)

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

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

1亿VIP精品文档

相关文档