4.关系系统及其查询优化.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 关系系统及其查询优化 关系系统概念 关系系统的定义 关系系统分类 按照E.F.Codd的思想,关系系统分类如下: 全关系系统的十二条基本准则 准则0 一个关系型的DBMS必须能完全通过它的关系能力来管理数据库 准则1 关系型DBMS的所有信息都应在逻辑一级上用一种方法即表中的值显示地表示 准则2 保证访问准则。依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项。 全关系系统的十二条基本准则 准则3 空值的系统化处理。全关系型的DBMS应支持空值的概念,并用系统化的方式处理空值 准则4 基于关系模型的动态的联机数据字典 准则5 同一的数据子语言 准则6 视图更新准则。所有理论上可更新的视图也应该允许由系统更新 全关系系统的十二条基本准则 准则7 高级的插入、修改和删除操作 准则8 数据物理独立性 准则9 数据逻辑独立性 准则10 数据完整性的独立性 准则11 分布独立性 准则12 无破坏准则。如果一个关系系统具有一个低级语言,则这个低级语言不能违背或绕过完整性准则 数据库查询的实现与优化 关系数据库系统的查询优化 查询优化的总目标是:选择有效的策略,求得给定关系表达式的值 查询优化的优点: 优化器可以从数据字典中获取许多统计信息; 数据库的物理统计信息改变,系统可重新选择优化策略; 优化器可以考虑数百种不同的执行计划; 优化器中包括了许多复杂的优化技术,这些优化技术一般只有最好的程序员才能掌握。 查询方案执行效率举例 求选修了2号课程的学生姓名 SELECT Student.Sname FROM Student,SC WHER Student.Sno=SC.Sno and SC.Cno=‘2’ 先做一个约定(假设) 学生课程数据库中有1000个Student记录,10000个SC记录,其中选修2号课程的选课记录为50个 一个数据块(Block)能装10个Student元组和100个SC元组 在内存中能存放6个数据块 计算机每秒读写20块 Q1=?Sname(?Student.Sno=SC.Sno?SC.Cno=‘2’(Student?SC)) 1. 计算笛卡儿积 Q1=?Sname(?Student.Sno=SC.Sno?SC.Cno=‘2’(Student?SC)) 投影操作时间 Q2=?Sname(?SC.Cno=‘2’(Student SC)) 1. 计算自然连接 Q2=?Sname(?SC.Cno=‘2’(Student SC)) 投影操作时间 Q2=?Sname( (Student ?SC.Cno=‘2’(SC)) 先对SC表做选择 查询优化的一般步骤 将查询转化成某种内部表示,通常是语法树; 根据一定的等价变换规则把语法树转换成标准形式 选择低层的操作算法 生成查询计划 查询计划的代价估算 通过某种代价模型计算出各种查询执行方案的执行代价 在集中式数据库中,查询的执行开销主要包括:总代价=I/O代价+CPU代价 在多用户环境下,主要包括: 总代价= I/O代价+CPU代价+内存代价 优化的一般策略 选择运算尽可能先做 在执行连接前对关系适当地预处理 索引连接方法 排序合并连接方法 把投影运算和选择运算同时进行 把投影同其前或后的双目运算结合起来 把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算 找出公共子表达式 关系代数等价变换规则 关系代数等价变换规则 关系代数等价变换规则 关系代数等价变换规则 关系代数等价变换规则 关系代数表达式的优化算法 输入:一个关系表达式的语法树 输出:计算该表达式的程序 方法: 将?F1? F2 ?... ? Fn(E)变换为?F1(?F2 (…(?Fn (E))…) 尽量把?移到树的叶端 尽可能将投影操作移到树的叶端 把选择和投影的串接合并成单个选择和投影 将上述得到的语法树的内节点分组 生成一个程序,每组结点的计算是程序中的一步。 优化举例 优化举例 优化举例 优化举例 优化举例 优化举例 优化举例 优化举例 优化举例 优化的一般步骤 把查询转换成某种内部表示 把语法树转换成标准(优化)形式 选择低层的存取路径 生成查询计划,选择代价最小的 依赖于存取路径的规则优化 选择操作的实现和优化 按启发式规则选用存取路径 连接操作的实现和优化 嵌套循环法、利用索引和散列、排序归并法、散列连接法 投影操作的实现 消除重复的元组是比较费时的操作 集合操作的实现 组合操作 选择操作的实现和优化 最原始的实现方法是对被选择的关系顺序扫描。适合于选择的元组较多或关系本身很小的情况。 利用B+树

文档评论(0)

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

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

1亿VIP精品文档

相关文档