第四章关系系统与查询优化
1.尝试描述查询优化的一般准则。
正确答案:以下优化策略通常可以提高查询效率:(1)选择操作应尽可能先进行。(2)投影操作和选择操作应同时执行。 (3)投影与先前的投影相同,或者随后的双目操作被合并并执行。(4)将一些选择与要执行的笛卡尔乘积合并到一个串联操作中。(5)查找共同点子表达式。(6)选择适当的连接算法
2.描述查询优化的一般步骤。
正确的答案:每个关系系统的优化方法都不相同。常规步骤可以概括如下:(1)将查询转换为某个内部表示形式。内部表示形式通常是语法树。(2)语法树被转换为标准(优化)形式。即,则使用优化算法将原始语法树转换为优化形式。(3)选择低级访问路径。(4)生成查询计划并选择成本最低的
。

3.尝试给出各种关系系统的定义:最小关系系统;最小关系系统;最小关系系统。完整的关系系统;完整的关系系统。
正确答案:最小关系系统:当且仅当以下条件可以定义为最小关系系统:(1)支持关系数据库(关系数据结构)。从用户的角度来看,关系数据库由表的结构,表只有一个结构。(2)支持选择,投影和(自然)连接操作。无需为这些操作定义任何物理访问路径。关系完整系统:这种类型的系统支持关系数据结构和所有关系代数运算(或在功能上等同于关系代数的运算)完整的关系系统:这种类型的系统支持关系模型的所有特征,即,关系不仅完整而且还支持关系模型。数据结构中的域的概念,并支持实体完整性和引用完整性。
4.尝试描述一个完整的关系系统应满足的十二个标准,以及十二个基本标准的实践和理论意义。
正确的答案:关系模型的创始人E.F. Codd特别提出了完全遵循关系系统应遵循的12条基本规则。实际上,这十二个标准可以用作评估或购买关系产品的标准。从理论的角度来看,这是对关系数据模型的具体而深入的讨论,并且是从理论和实践的高度紧密结合的角度对关系DBMS进行的回顾。原则0关系DBMS必须能够通过其关系功能完全管理数据库。标准1信息标准。关系DBMS的所有信息都应该在逻辑级别上以一种明确的方式表示,即表中的值。准则2保证访问准则。依靠表名,主代码和列名的组合,可以确保可以以逻辑方式访问关系数据库中的每个数据项(组件值)。标准3系统处理空值。完全关系的DBMS应该支持空值的概念并以系统的方式处理空值。原理4基于关系模型的动态在线数据字典。在逻辑级别上,数据库的描述应以与普通数据相同的方式表示,以便授权用户可以使用用于查询常规数据的关系语言来查询数据库的描述。标准5统一数据子语言标准。准则6查看更新准则。系统还应允许所有理论上可更新的视图进行更新。原理7高级插入,修改和删除操作。准则8数据物理独立性。不管数据库数据的存储表示形式或访问方法如何变化,应用程序和终端活动在逻辑上都是不变的。标准9数据逻辑独立性。在不影响理论信息的情况下对基本关系进行任何更改时,应用程序和终端活动在逻辑上都是不变的。准则10数据完整性的独立性。关系数据库的完整性约束必须用数据库语言定义并存储在数据字典中,而不是在应用程序中定义。准则11分配的独立性。关系DBMS具有分发独立性。标准12无损坏标准。如果关系系统使用低级语言(一次表示一条记录),则该低级语言不能违反或绕过完整性标准。
5.描述关系数据库系统中查询优化的重要性和可能性。
正确答案:重要性:关系系统的查询优化不仅是RDBMS实现的关键技术,而且是关系系统的优势。它减轻了用户选择访问路径的负担。用户只需要提出“该做什么”,而无需指出“该怎么做”。查询优化的优点不仅在于用户不必考虑如何最好地表达查询以实现更高的效率,而且该系统可以比用户程序的“优化”做得更好。可能的原因:这是因为:(1)优化器可以从数据字典中获得很多统计信息,例如每个关系中的元组数,关系中每个属性值的分布以及这些关系上是否有索引属性,无论是什么索引,B +树索引或HASH索引,唯一索引,组合索引等。优化器可以基于该信息选择有效的执行计划,但是用户程序很难获取此信息。(2)如果数据库的物理统计信息发生变化,系统可以自动重新优化查询以选择合适的执行计划;在非关系系统中,必须重写程序,而在实际应用中通常不可能重写程序(3)可以考虑数十个甚至数百个不同的执行计划,并且可以从中选择最佳的计划,而程序员通常只能考虑数量有限的possibi懒惰。 (4)优化器包括许多复杂的优化技术,这些优化技术通常只有最好的程序员才能掌握。系统的自动优化等同于使每个人都拥有这些优化技术。