第4章-数据库-课件.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 关系系统及其查询优化 第四章 关系系统的查询优化 4.1 关系系统 4.2 关系系统的查询优化 4.3 小结 4.1 关系系统 4.1.1 关系系统的定义 4.1.2 关系系统的分类 关系系统(续) 关系模型 关系数据结构 域及域上定义的关系 关系操作 并、交、差、广义笛卡尔积、选择、投影、连接、除等 关系完整性 实体完整性、参照完整性、用户自己定义的完整性 关系系统(续) 关系系统 能够在一定程度上支持关系模型的数据库管理系统是关系系统。 由于关系模型中并非每一部分都是同等重要的,所以我们并不苛求一个实际的关系系统必须完全支持关系模型。 4.1.1 关系系统的定义 关系系统的定义 一个数据库管理系统可定义为关系系统,当且仅当它至少支持: 1. 关系数据库(即关系数据结构)。也就是说,从用户观点看,数据库是由表构成的,并且系统中只有表这种结构。 2. 支持选择、投影和(自然)连接运算。对这些运算不要求用户定义任何物理存取路径。 关系系统的定义 (续) 不支持“关系”数据结构的系统显然不能称为关系系统。 仅支持关系数据结构,但没有选择、投影和连接运算功能的系统仍不能算作关系系统。 原因:用户使用起来仍不方便,不能提高用户的生产率,而提高用户生产率正是关系系统的主要目标之一。 关系系统的定义 (续) 支持选择、投影和连接运算,但要求定义物理存取路径(例如要求用户建立索引并打开索引才能按索引字段检索记录),这种系统也不能算作真正的关系系统 原因:依赖于物理存取路径就降低或丧失了数据的物理独立性 选择、投影、连接运算是最有用的运算,能解决绝大部分实际问题。 4.1.2 关系系统的分类 分类依据 ─ 依据关系系统支持关系模型的程度不同 分类 ⒈ 表式系统 仅支持关系数据结构(即表)  ⒉ (最小)关系系统 支持:关系数据结构 选择、投影、连接关系操作 关系系统的分类 (续) ⒊ 关系完备的系统 支持:关系数据结构 所有的关系代数操作 ⒋ 全关系系统 支持:关系模型的所有特征 特别是:数据结构中域的概念 实体完整性 参照完整性 关系系统的分类 (续) 4.1.3 查询处理步骤 RDBMS查询处理阶段 : 1. 查询分析 2. 查询检查 3. 查询优化 4. 查询执行 查询处理步骤(续) 1. 查询分析 对查询语句进行扫描、词法分析和语法分析 从查询语句中识别出语言符号 进行语法检查和语法分析 2. 查询检查 根据数据字典对合法的查询语句进行语义检查 根据数据字典中的用户权限和完整性约束定义对用户的存取权限进行检查 检查通过后把SQL查询语句转换成等价的关系代数表达式 RDBMS一般都用查询树(语法分析树)来表示扩展的关系代数表达式 把数据库对象的外部名称转换为内部表示 3. 查询优化 查询优化:选择一个高效执行的查询处理策略 查询优化分类 : 代数优化:指关系代数表达式的优化 物理优化:指存取路径和底层操作算法的选择 查询优化方法选择的依据: 基于规则(rule based) 基于代价(cost based) 基于语义(semantic based) 4. 查询执行 依据优化器得到的执行策略生成查询计划 代码生成器(code generator)生成执行查询计划的代码 4.1.4 实现查询操作的算法示例 一、 选择操作的实现 二、 连接操作的实现 一、 选择操作的实现 例 Select * from student where 条件表达式 ; 考虑条件表达式的几种情况: C1:无条件; C2:Sno=200215121; C3:Sage20; C4:Sdept=CS AND Sage20; 选择操作的实现(续) 选择操作典型实现方法: 1. 简单的全表扫描方法 对查询的基本表顺序扫描,逐一检查每个元组是否满足选择条件,把满足条件的元组作为结果输出 适合小表,不适合大表 2. 索引扫描方法 适合选择条件中的属性上有索引(例如B+树索引或Hash索引) 通过索引先找到满足条件的元组主码或元组指针,再通过元组指针直接在查询的基本表中找到元组 选择操作的实现(续) [例-C2] 以C2为例,Sno=‘200215121’,并且Sno上有索引 使用索引得到Sno为‘200215121’ 元组的指针 通过元组指针在student表中检索到该学生 [例-C3] 以C3为例,Sage20,并且Sage 上有B+树索引

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档