利用迭代器构造查询实现算法 - zzyoga/JustTest GitHub Wiki
通过前面的叙述,我们直到面对一次单一元组的操作可以通过迭代器算法实现。
1.查询实现的两种策略
物化计算策略:比如投影(乘积)这个复合操作,我们是先将所有的乘积操作形成中间结果,最后进行投影操作。
流水线计算策略:不行成中间操作,做组合的时候就要做选择和投影,最后再投影。(迭代器算法)
2.迭代器
2.1迭代的读取一个集合中的每一个元素,而封装其读取细节。类似与面向对象程序设计的思想。
定义一个抽象类
class iterator{ void Open() ; tuple GetNext(); void Close(); iterator &inputs[]; }
我们需要实现具体的方法体。
2.2使用迭代器构造一个R并S的操作
Union(R,S)看作一个迭代器,也有Open,Close,GetNext函数。其中方法的实现中又用到了R和S各自的迭代器。
同理对R的选择操作也能通过R的迭代器构造这个选择操作的构造器。