9.1关系数据库系统的查询处理 91.1查询处理步骤 91.2实现查询操作的算法示例 An Introduction to Database System
An Introduction to Database System 9.1 关系数据库系统的查询处理 ❖9.1.1 查询处理步骤 ❖9.1.2 实现查询操作的算法示例
9.1.2实现查询操作的算法示例 选择操作的实现 ◆二、连接操作的实现 An Introduction to Database System
An Introduction to Database System 9.1.2 实现查询操作的算法示例 ❖一、 选择操作的实现 ❖二、 连接操作的实现
、选择操作的实现 [例 Select* from student where<条件表达 式 考虑<条件表达式>的几种情况: C1:无条件; C2:Sno=200215121; C3: Sage>20 C4: Sdept='CS AND Sage> 20 An Introduction to Database System
An Introduction to Database System 一、 选择操作的实现 ❖[例1]Select * from student where <条件表达 式> ; 考虑<条件表达式>的几种情况: C1:无条件; C2:Sno='200215121'; C3:Sage>20; C4:Sdept='CS' AND Sage>20;
选择操作的实现(续) 选择操作典型实现方法: 1.简单的全表扫描方法 ≯对査询的基本表顺序扫描,逐一检查每个元组是否满足 选择条件,把满足条件的元组作为结果输出 适合小表,不适合大表 2.索引(或散列)扫描方法 >适合选择条件中的属性上有索引(例如B+树索引或Hash 索引) 通过索引先找到满足条件的元组主码或元组指针,再通 过元组指针直接在查询的基本表中找到元组 An Introduction to Database System
An Introduction to Database System 选择操作的实现(续) ❖选择操作典型实现方法: ▪ 1. 简单的全表扫描方法 ➢对查询的基本表顺序扫描,逐一检查每个元组是否满足 选择条件,把满足条件的元组作为结果输出 ➢适合小表,不适合大表 ▪ 2. 索引(或散列)扫描方法 ➢适合选择条件中的属性上有索引(例如B+树索引或Hash 索引) ➢通过索引先找到满足条件的元组主码或元组指针,再通 过元组指针直接在查询的基本表中找到元组
选择操作的实现(续) 今[例1-C2]以C2为例,Sno=‘20021512,并且Sno 上有索引(或Sno是散列码) 使用索引(或散列)得到Sno为‘200215121元组的指针 通过元组指针在 student表中检索到该学生 令[例1-C3]以C3为例,Sage>20,并且Sage上有B+树 索引 使用B+树索引找到Sage=20的索引项,以此为入口点在B+ 树的顺序集上得到Sage>20的所有元组指针 通过这些元组指针到 student表中检索到所有年龄大于20的 学生。 An Introduction to Database System
An Introduction to Database System 选择操作的实现(续) ❖ [例1-C2] 以C2为例,Sno=‘200215121’,并且Sno 上有索引(或Sno是散列码) ▪ 使用索引(或散列)得到Sno为‘200215121’ 元组的指针 ▪ 通过元组指针在student表中检索到该学生 ❖ [例1-C3] 以C3为例,Sage>20,并且Sage 上有B+树 索引 ▪ 使用B+树索引找到Sage=20的索引项,以此为入口点在B+ 树的顺序集上得到Sage>20的所有元组指针 ▪ 通过这些元组指针到student表中检索到所有年龄大于20的 学生