作者:本章最初是做为 Simkovics, 1998 的一部分出现的,它是 Stefan Simkovics 在 维也纳理工大学准备的硕士论文,是由 O.Univ.Prof.Dr. Georg Gottlob 和 Univ.Ass. Mag. Katrin Seyr 指导的。
分析阶段(parser stage)检查从应用程序(客户端)发送过来的查询,核对语法并创建一个查询树(query tree)。
重写系统(rewrite system)接收分析阶段来的查询树并且搜索任意应用到查询树上的规则(rules)(存储在系统表里)并根据给出的规则体(rule bodies)进行转换。重写系统的一个应用在视图(views)的实现里给出了。
当一个查询访问一个视图时(也就是说,一个虚拟表(virtual table)),重写系统改写用户的查询,使之成为一个访问带有视图定义(view definition)的基本表(base tables)的查询。
规划器/优化器(planner/optimizer)接收(改写的)查询树然后创建一个查询规划(queryplan),这个查询规划是执行器(executor)的输入。
它(规划器/优化器)首先创建所有得出相同结果的可能的 路径(paths)。例如,如果待扫描的关系上有一个索引,那么扫描的路径就有两个。一个可能是简单的顺序查找,而另一个可能就是使用索引的那个。下一步是计算出每个索引执行的开销,并且选择和返回开销最少的那个。
执行器递归地走过规划树(plan tree)并且在这个过程中检索规划所代表的记录。执行器在对关系进行扫描时使用存储系统(storage system),进行排序(sorts)和联接(joins),计算条件(qualifications)并且最终交回生成的记录。