选择运算
在查询处理中,文件扫描是存取数据最低级的操作。文件扫描可用于定位、检索满足选择条件的记录的搜索算法。
如果关系保存在单个专用的文件中,采用文件扫描就可以读取整个关系。
如果考虑所有元组都保存在单个文件的关系上的一个选择运算,有以下选择:
·A1(线性搜索):扫描每一个文件块,对每一条记录都测试看是否满足查询条件。开始的时候先需要访问文件的第一个块。然而
线性搜索比其它实现选择操作的算法素都要慢,但是可以作用于任何文件。
·A2(主索引,码属性等值比较):对于具有主索引的码属性的等值比较,可以使用索引检索到满足相应等值条件的唯一一条记录
·A3(主索引,非码属性等值比较):当选择非码属性等值比较的时候,可以利用主索引检索到多条记录。与前面一种不同的是,
这种情况需要取多条记录,然后在主索引上文件是依据搜索码来排序的(没有物理排序的索引就是辅助索引),所以这些记录必
然是连续存储的。
·A4(辅助索引,等值比较):使用等值条件的选择可以用这个,如果等值条件是索引码值上的,就是一条,如果是非码属性就
是多条(和主索引的差不多)。
·A5(主索引,比较):当选择条件是比较的时候,可以用顺序主索引(例如B+树),例如要找A>=v的记录,先找到A=v的记
录,然后从该元组开始一直扫描到文件末尾。
·A6(辅助索引,比较):辅助索引提供的是指向记录的指针,就需要用指针来取得实际的记录,然后连续的记录可能存在不同
的磁盘块中,所以每次取一条记录就要一次I/O操作,检索到的记录数很大的话代价很大。