【摘要】:值得注意的是,用户查询典型情况下可以用视图来表示,以保证语义的完整性和安全性。同时,由于用户设计查询的能力差异,查询语句中也会有冗余条件出现。为此需要删除冗余,下面一些规则可以用来约简冗余。谓词约简规则包含以下这些。 假设有如下SQL查询:Select t i t lef rom EMPwhereOR ename="李林"使用上述约简规则可以简化为:Select t i t l ef rom EMPwhere ename="李林"这个查询的简化过程如下。
值得注意的是,用户查询典型情况下可以用视图来表示,以保证语义的完整性和安全性。同时,由于用户设计查询的能力差异,查询语句中也会有冗余条件出现。这样,充实的查询限定可能包含冗余谓词。为此需要删除冗余,下面一些规则可以用来约简冗余。
谓词约简规则(p或pi是一个简单谓词)包含以下这些。
【例7.3】 假设有如下SQL查询:
Select t i t le
f rom EMP
where(NOT(t i t l e="Programmer")AND(t i t l e="Programmer"OR t i t l e="El ec t.Eng.")
ANDNOT(t i t l e="El ec t.Eng."))OR ename="李林"
使用上述约简规则可以简化为:
Select t i t l e
f rom EMP
where ename="李林"
这个查询的简化过程如下。
令p1为〈title=Programmer〉,p2为〈title=Elect.Eng.〉,p3为〈ename=李林〉,则该查询限定为:
(p1∧(p1∨p2)∧p2)∨p3
则(www.chuimin.cn)
⇒(p1∧((p1∧p2)∨(p2∧p2)))∨p3
使用规则(7),得到:
⇒((false∧p2)∨false))∨p3
使用规则(5),得到:
⇒(p1∧p1∨p2)∨(p1∧p2∧p2)∨p3
使用规则(7),得到:
⇒false∨false∨p3
使用规则(4),得到p3。
这个查询得到了初步的优化。
结果,简化后等价的查询是:
Select t i t l e
f rom EMP
where ename="李林"
相关推荐