首页 理论教育冗余删除规则及其应用示例

冗余删除规则及其应用示例

【摘要】:值得注意的是,用户查询典型情况下可以用视图来表示,以保证语义的完整性和安全性。同时,由于用户设计查询的能力差异,查询语句中也会有冗余条件出现。为此需要删除冗余,下面一些规则可以用来约简冗余。谓词约简规则包含以下这些。 假设有如下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="李林"