(续)连接操作的实现201201215121...201215121201215122...201215121.388201215123...201215122.290201215122380201215125...:图9.2排序-合并连接方法示意图An Introduction to Database System
An Introduction to Database System 连接操作的实现(续) 201215121 . 201215122 . 201215123 . 201215125 . . . . 201215121 1 92 201215121 2 85 201215121 3 88 201215122 2 90 201215122 3 80 . . . 图9.2 排序-合并连接方法示意图
(续)连接操作的实现*Student表和Sc表都只要扫描一遍心如果两个表原来无序,执行时间要加上对两个表的排序时间对于大表,先排序后使用排序-合并连接算法执行连接,总的时间一般仍会减少参见爱课程网9.1节动画《连接操作的实现(2):排序合并》723AnIntroductiontoDatabaseSystem
An Introduction to Database System 连接操作的实现(续) ❖Student表和SC表都只要扫描一遍 ❖如果两个表原来无序,执行时间要加上对两个表 的排序时间 ❖对于大表,先排序后使用排序-合并连接算法执行 连接,总的时间一般仍会减少 ❖参见爱课程网9.1节动画《连接操作的实现(2)- -排序合并 》
(续)连接操作的实现(3)索引连接(indexjoin)算法■步骤:①在SC表上已经建立属性Sno的索引。②对Student中每一个元组,由Sno值通过sc的索引查找相应的SC元组。③把这些sC元组和Student元组连接起来循环执行②③,直到Student表中的元组处理完为止参见爱课程网9.1节动画《连接操作的实现(4)--索引连接》AnIntroductiontoDatabaseSystem
An Introduction to Database System 连接操作的实现(续) (3)索引连接(index join)算法 ◼ 步骤: ① 在SC表上已经建立属性Sno的索引。 ② 对Student中每一个元组,由Sno值通过SC的索引查 找相应的SC元组。 ③ 把这些SC元组和Student元组连接起来 循环执行②③,直到Student表中的元组处理完为止 ❖参见爱课程网9.1节动画《连接操作的实现(4)- 索 引连接 》
(续)连接操作的实现(4)HashJoin算法把连接属性作为hash码,用同一个hash函数把Student表和sc表中的元组散列到hash表中。划分阶段(buildingphase,也称为partitioningphase)·对包含较少元组的表(如Student表)进行一遍处理·把它的元组按hash函数分散到hash表的桶中试探阶段(probingphase,也称为连接阶段joinphase)·对另一个表(SC表)进行一遍处理。把Sc表的元组也按同一个hash函数(hash码是连接属性)进行散列把SC元组与桶中来自Student表并与之相匹配的元组连接起来AnIntroduction to DatabaseSystem
An Introduction to Database System 连接操作的实现(续) (4)Hash Join算法 ◼ 把连接属性作为hash码,用同一个hash函数把Student表和SC表 中的元组散列到hash表中。 ◼ 划分阶段(building phase, 也称为partitioning phase) ⚫ 对包含较少元组的表(如Student表)进行一遍处理 ⚫ 把它的元组按hash函数分散到hash表的桶中 ◼ 试探阶段(probing phase,也称为连接阶段join phase) ⚫ 对另一个表(SC表)进行一遍处理 ⚫ 把SC表的元组也按同一个hash函数(hash码是连接属性)进 行散列 ⚫ 把SC元组与桶中来自Student表并与之相匹配的元组连接起来
(续)连接操作的实现*上面hashioin算法前提:假设两个表中较小的表在第一阶段后可以完全放入内存的hash桶中*参见爱课程网9.1节动画《连接操作的实现(3)--散列连接》数据库系统An Introduction to Database System
An Introduction to Database System 连接操作的实现(续) ❖上面hash join算法前提:假设两个表中较小的表 在第一阶段后可以完全放入内存的hash桶中 ❖参见爱课程网9.1节动画《连接操作的实现(3)-散 列连接 》