��1、流水线计算
��流水线计算方法是指将表达式中多个关系运算组合成一个操作流水线来实现,即将一个运算的结果作为输入直接传送到下一个运算。例如:
��Πcustomer-name(σbalance<2500(account)��customer)
用关系代数表达式树表示流水线计算的过程如图9-5-2所示:

图9-5-2:流水线计算方法示意
说明:如图9-5-2所示,关系account上的选择运算产生一个结果元组①之后,立即就与关系customer进行自然连接;自然连接运算产生一个结果元组②之后,立即就在该元组②上做投影;最后投影运算产生一个最终的结果元组③。

�2、流水线计算方法模型
��实体化计算方法可以直接利用各个关系运算的算法实现(即操作代码),而流水线计算方法虽然具有减少产生临时关系、提高查询执行效率的优点,但它需要对流水线中的每一运算建模,以便能够重用各个关系运算的操作代码。最简单的模型就是:每一关系运算都作为系统内独立的进程或线程,它从流水化的输入中接受元组流,并产生一个元组流作为其输出。对于流水线中的每对相邻运算,
图9-5-3:流水线计算方法模型
��3、流水线计算方法的执行
��流水线计算方法可按以下两种方式之一来执行:
���需求者驱动:系统不停地向位于流水线顶端的操作发出需要元组的请求。每当一个运算收到需要元组的请求时,它就计算下一个或多个元组并返回它们;
���生产者驱动:各个运算并不等待元组请求,而是不停地产生元组。流水线底端的每个操作不断地产生元组并将它们放在输出缓冲区中,直到缓冲区满为止。从效果上看需求者驱动策略是一个"拉"的过程;而生产者驱动策略是一个"推"的过程。