��假设branch、account和depositor是以下关系模式上的关系:
Branch-schema = (branch-name, branch-city, assets)
Account-schema = (branch-name, account-number, balance)
Depositor-schema = (customer-name, account-number)

对于关系代数表达式:
Πcustomer-name(σbranch-city = "Brooklyn"(branch��(account��depositor)))
利用前面介绍的规则⑺①,可以得到如下的等价表达式:
Πcustomer-name((σbranch-city= "Brooklyn"(branch))��(account��depositor))
如果我们将上述查询修改为:
Πcustomer-name((σbranch-city= "Brooklyn"∧balance>1000(branch��(account��depositor)))
如何进行等价变换呢?由于选择条件中属性balancebranch-city分别只涉及到关系accountbranch,因此利用规则⑹①将画线的子表达式变换为:
((branch��account)��depositor)
对于新产生的子表达式:
σbranch-city= "Brooklyn"∧balance>1000((branch��account)��depositor)
利用规则⑺①可以得到:
(σbranch-city= "Brooklyn"∧balance>1000(branch��account))��depositor
对于上面画线部分的子表达式利用规则⑺②得到:
(σbranch-city= "Brooklyn"(branch))��(σbalance>1000(account))
最终的变换结果如下所示:
Πcustomer-name(((σbranch-city= "Brooklyn"(branch))��(σbalance>1000(account)))��depositor)
用关系代数表达式树可以更明显地看出两个表达式的差别,如下图9-2-2所示

图9-2-2:关系代数表达式树