2.3.2 域关系演算
域关系演算与元组关系演算相似,在域关系演算中,也有原子公式和公式的概念,只是元组关系演算中表达式使用的是元组变量,而域关系演算表达式中使用的是域变量(即以属性列为变量),域变量的变化范围是某个属性的值域,元组变量的变化范围是一个关系。
(1)域关系演算表达式的一般形式是:
{t1t2 … tk|φ(t1,t2,…,tk)}
其中,t1,t2,…,tk都是域变量,φ是域演算公式,域关系演算公式由原子公式和运算符组成。该表达式的含义是:使φ为真的域变量(t1,t2,…,tk)组成的元组的集合。
(2)域关系演算的原子公式有3种:
①R(t1,t2,…,tk)
其中,R是一个关系,它具有k个属性,ti(1,2,…,k)是一个常量或者域变量。如果(t1,t2,…,tk)是R的一个元组,那么R(t1,t2,…,tk)为真。
②xθy
其中,x和y是常量或者域变量,θ是算术比较运算符(如>、=等)。如果x和y满足关系θ,则xθy为真。
③tiθc或cθti
其中,ti为域变量,c为常量,θ为算术比较运算符。如果ti和c满足关系θ,则tiθc和cθti为真。
(3)域关系演算公式的定义
① 每个原子公式是公式。
② 假如φ1(t)和φ2(t)是域关系演算公式,则φ1∧φ2,φ1∨φ2,¬φ1也都是域关系演算公式。
③ 如果φ是域关系演算公式,则∃ti(φ)(i=1,2,…,k)也是域关系演算公式。
④ 如果φ是域关系演算公式,则∀ti(φ)(i=1,2,…,k)也是域关系演算公式。
⑤ 只有按上述规则的有限次组合形成的才是域关系演算公式。
(4)一个元组关系演算表达式可以很容易地转换为等价的域关系演算表达式。假设元组关系演算表达式为{t|φ(t)}。
转换方法如下:
① 如果t是有n个分量的元组变量,则为t的每个分量t[i]引进一个域变量ti,用ti来替换公式中所有的t[i]。相应的域关系演算表达式形式为:
{t1t2 … t k|φ(t1,t2,…,tk)}
② 出现存在量词(∃u)或者全称量词(∀u)的时候,如果u是有m个分量的元组变量,则为u的每个变量u[i]引进一个域变量ui,将量词辖域内所有的u用u1u2…um替换,所有的u[i]用ui来替换。
例2-9 查询信息系年龄为18岁的学生。
关系代数表达式为:
σ年龄=18 AND所在系='信息系'(学生)
元组关系演算表达式为:
{t|学生(t)∧t[3]=18∧t[4]='信息系'}
域关系演算表达式为:
{t1t2t3t4|学生(t1t2t3t4)∧t3=18∧t4='信息系'}
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。