数据库学习的一天(10)

第十九讲 查询实现算法

1.过程:sql->关系模式的运算的各种组合->DBMS的解释与调用

2.三大类操作:

数据库学习的一天(10)

3.各类参数:

数据库学习的一天(10)

4.连接操作的实现算法:①-④表空间扫描法

①最笨的:逐个块存入,然后进行连接,每次在内存里的只有三个块  基本实现方法

数据库学习的一天(10)

②稍微聪明的:将两个关系完全放进内存里,然后再做连接    全主存

数据库学习的一天(10)

数据库学习的一天(10)

③稍微聪明的:将其中一个放得下的关系完全放进内存里,另一个关系逐块放入,再做连接

数据库学习的一天(10)

数据库学习的一天(10)

④无可奈何的:将其中一个关系都拆分成最大能放进的子集,即M-2,然后另一个关系逐个存入,结束再下一个子集

数据库学习的一天(10)

数据库学习的一天(10)

5.迭代器算法:用于解决单一元组的一元操作

分为open函数,GetNext函数,close函数,而且上层的迭代器可以调用下层的迭代器

6.一趟扫描算法:

数据库学习的一天(10)

7.连接操作的优化:

数据库学习的一天(10)

讲条件转化为散列值的匹配

8.基于索引的选择算法:

由于索引文件位于内存,比较其磁盘的存取时间,内存的访问时间简直可以忽略不计,

数据库学习的一天(10)

数据库学习的一天(10)

分析:当有聚簇的情况下,需要搜索的块数,用记录数/块的容量即可,当有索引的时候,就不用了将整条记录放入内存,根据索引找到相应的记录,再存入内存,所以时间上只要算条件合适的记录数、