数据库 4关系系统及其查询优化.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4关系系统及其查询优化 关系系统:支持关系模型的数据库管理系统称为关系系统 一个系统可定义为关系系统,当且仅当它: (1) 支持关系数据库(关系数据结构) ??? 从用户观点看,数据库由表构成,并且只有表这一种结构。 (2) 支持选择、投影、连接运算,且不要求定义物理存取路径???? ??? 当然并不要求关系系统的选择、投影、连接运算和关系代数的相应运算完全一样,而只要求有等价的这三种运算功能就行。 几点解释 ·?? 为什么关系系统除了要支持关系数据结构外,还必须支持选择、投影、连接运算呢?因为不支持这三种关系运算的系统,用户使用仍不方便,不能提高用户的生产率,而提高用户生产率正是关系系统主要目标之一。 为什么要求这三种运算不能依赖于物理存取路径呢?因为依赖物理存取路径来实现关系运算就降低或丧失了数据的物理独立性。不依赖物理存取路径来实现关系运算就要求关系系统自动地选择路径。为此,系统要进行查询优化以获得较好的性能。这正是关系系统实施的关键技术。 要求关系系统支持这三种最主要的运算而不是关系代数的全部运算功能,是因为它们是最有用的运算功能,能解决绝大部分的实际回题。 4.1关系系统的分类 依据各类系统支持关系模型的程度: s数据结构 I完整性 m数据操作 1. 1.表式系统 这类系统仅支持关系(即表)数据结构,不支持集合级的操作。表式系统不能算关系系统。倒排表列(Inverted list)系统就属于这一类。 2.(最小)关系系统 即前面定义的关系系统。它们仅支持关系数据结构和三种关系搡作。许多微机关系数据库系统如Dbase Ⅱ、FoxBASE、FoxPro等就属于(最小)关系系统。 3.关系完备的系统 这类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。90年代初的许多关系数据库管理系统属于这一类。 4.全关系系统 这类系统支持关系模型的所有特征。即不仅是关系上完备的而且支持数据结构中域的 概念,支持实体完整性和参照完整性。目前,大多数关系系统已不同程度上接近或达到了这个目标。 4.2关系数据库系统的查询优化 (1) 关系查询优化的特点 ?? 关系查询优化是影响 RDBMS 性能的关键因素。 ? 它减轻了用户选择存取路径的负担。 ? 用户只要提出‘干什么’,不必指出‘怎么干’。 查询优化更优“用户程序”的优化。 (2)查询优化的实现: 1.将查询转化成某种内部表示,通常是语法树 2.根据一定的等价变换把语法树转换成标准优化形式 3.选择底层的操作算法,对于语法树中的每一个操作需要根据存储路径,数据的存储分布等信息来选择具体的执行算法 4.生成查询计划..通常这样的方案有多个,需要对每个执行计划计算代价,从中选择代价最小的一个. (3) 关系数据库查询优化的总目标 选择有效的策略,基于代价的优化算法,求得给定关系表达式的值。 ??? 即通过对多个执行方案分析,需要对每个执行计划计算代价,从中选择代价最小的一个查询算法。 ??? 在集中式数据库中,查询的执行开销主要包括: ?????? 总代价 = I/O代价 + CPU代价 ?? 在多用户环境下: ????总代价 = I/O代价 + CPU代价 + 内存代价 4.3一个基于代价分析的查询优化实例 见word文档 4.4查询优化的一般准则 (l)选择运算应尽可能先做。 在优化策略中这是最重要、最基本的一条。它常常可使执行时节约几个数量级,因为选择运算一般使计算的中间结果大大变小。 (2)在执行连接前对关系适当地预处理。 预处理方法主要有两种,在连接属性上建立索引和对关系排序,然后执行连接。第一种称为索引连接方法,第二种称为排序合并(SORT-MERGE)连接方法 一个例子 ?? 例如STUDENTSC这样的自然连接,用索引连接方法的步骤是: ??? 1) 在SC上建立Sno的索引 ??? 2) 对STUDENT中每一个元组,由Sno值通过SC的索引查找相应的SC元组 ??? 3) 把这些SC元组和STUDENT元组连接起来 这样Student表和SC表均只要扫描一遍。处理时间只是两个关系大小的线性函数。 ??? 用排序合并连接方法的步骤是: ??? 1) 首先对Student表和SC表按连接属性Sno排序(图4.2) ??? 2) 取Student表中第一个Sno,依次扫描SC表中具有相同Sno的元组,把它们连接起来: ?? 3) 当扫描到Sno不相同的第一个SC元组时,返回Student表扫描它的下一个元组,再扫描SC表中具有相同Sno的元组,把它们连接起来。 ??? 重复上述步骤直到 Student 表扫描完。 ??? 这样Student表和SC表

文档评论(0)

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

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

1亿VIP精品文档

相关文档