首页 理论教育分布式数据库查询规范化能力提升

分布式数据库查询规范化能力提升

【摘要】:应用千变万化,当用户输入的查询任意复杂时,这取决于语言提供的能力。规范化的目标是将查询转换成规范形式,以便做进一步处理。例如:age>18 AND deptno=9 AND sex="mal e"表示选择年龄在18岁以上、属于系别编号为9和男性的(学生)。这种形式可以简化成:(p11∨p12∨…∧pmn)规范化时,谓词变换起了关键作用,以下是一些无量词谓词的变换公式。所谓规范化,就是将查询构造成合取式或析取式,典型的是转换成析取式。

应用千变万化,当用户输入的查询任意复杂时,这取决于语言提供的能力。规范化的目标是将查询转换成规范形式,以便做进一步处理。假设用户使用的是关系型语言,如SQL,且涉及最重要的变换是查询的限定条件(即查询命令中的where子句),那么这种条件可以是任意复杂的或简单的谓词,使用逻辑“与”(∧)、“或”(∨)连接起来。例如:

age>18 AND deptno=9 AND sex="mal e"

表示选择年龄在18岁以上、属于系别编号为9和男性的(学生)。

这种形式可以简化成:

(p11∨p12∨…∨p1n)∧…∧(pm1∨pm2∨…∨pmn

这里,pij是一个简单谓词,1≤i≤m,1≤j≤n。

下面是另外一种形式:

(p11∧p12∧…∧p1n)∨…∨(pm1∨pm2∧…∧pmn

规范化时,谓词变换起了关键作用,以下是一些无量词谓词的变换公式。

(1)p1∧p2⇔p2∧p1

(2)p1∨p2⇔p2∨p1;(www.chuimin.cn)

(3)p1∧(p2∧p3)⇔(p1∧p2)∧p3

(4)p1∨(p2∨p3)⇔(p1∨p2)∨p3

(5)p1∧(p2∨p3)⇔(p1∧p2)∨(p1∧p3);

(6)p1∨(p2∧p3)⇔(p1∨p2)∧(p1∨p3);

(7)(p1∧p2)⇔p1∨p2

(8)(p1∨p2)⇔p1∧p2

(9)(p)⇔p。

这些变换公式在此就不进行详细证明了。

在析取规范式中,可以像处理由并运算连接起来的子查询一样独立处理,但缺点是会产生复杂的连接和选择谓词,形成一个由AND(∧)连在一起的很长的谓词。

所谓规范化,就是将查询构造成合取式或析取式,典型的是转换成析取式。