1
数据库原理与应用技术
1.3.3.2 2.3.2 域关系演算
2.3.2 域关系演算

域关系演算用域变量代替元组变量的每一个分量。域演算表达式的一般形式为:

{t1…tk∣P(t1,…,tk)}

其中:t1,…,tk为元组变量的各个分量,统称为域变量;而P(t1,…,tk)是关于域变量t1,…,tk的公式。域演算公式可递归地定义如下。

(1) 原子命题函数是公式,称为公式,域关系演算也有以下三种形式。

①R(t1…tk):R是关系名,ti是域变量。它表示以t1,…,tk为分量的元组在关系R中。

②siθuj:si和uj是域变量(元组变量的分量),θ是算术比较运算符。它表示元组s的第i个分量与元组u的第j个分量之间满足θ关系。

③siθa或aθuj:si和uj是域变量,a是常量。它表示元组s的第i个分量值与常量a之间满足θ关系或常量a与元组u的第j个分量值之间满足θ关系。

(2) 设P1和P2是公式,则┐P1、P1∧P2、P1∨ P2、P1→P2(→表示蕴涵)也都是公式。

(3) 设P(t1,…,tk)是公式,ti是P中的某个域变量,那么(∀ti)(P)、(ti)(P)也都是公式。

(4) 域演算公式中运算符的优先级与元组演算公式中的规定相同。

(5) 域演算所有公式按上述条款所确定的规则经有限次的复合求得,不再存在其他形式。类似于元组关系演算。

【例2-12】设有表S、C、SC,分别如表2-24至表2-26所示,用域关系演算表示下列查询语句。

(1) 查询所有男生的信息。

(2) 查询学生年龄大于18岁的学生的姓名。

(3) 查询家在北京的学生的姓名和年龄。

解:(1) R1={t1t2t3t4t5|S(t1t2t3t4t5)∧t4='男'}

(2) R2={ t2|(t1) (t2) (t3) (t4) (t5)(S(t1t2t3t4t5)∧t3>18)}

(3) R3={ t2t3|(t1) (t2) (t3) (t4) (t5)(S(t1t2t3t4t5)∧t5='北京')}