如何判断域关系演算中的查询是否域无关?



我想了解以下查询是否与域无关:

{t : ∀x ∀y ( (x≠y ∧ R(t,x) ∧ T(t,y)) → S(x,y) )

我认为这个查询是域无关的,因为的左侧强制它在每个域中。是这样吗?

我猜的目的是作为物质暗示。

然后我们可以使用布尔代数等价转换给定查询中的谓词:

  • p → q==¬p ∨ q——因此需要否定隐含的LHS
  • ¬(p1 ∧ p2)==¬p1 ∨ ¬p2——注意给定含义的LHS是一个连接
  • ¬(x ≠ y)==x = y

Then(省略多余的父元素):

( (x≠y ∧ R(t,x) ∧ T(t,y)) → S(x,y) )
==
( x=y ∨ ¬R(t,x) ∨ ¬T(t,y) ∨ S(x,y) )

观察:

  • 断句x=y是Domain Dependent:x, y是普遍量化的,相等性检验不需要从任何关系中得出它们。
  • 析取词¬R(t,x)¬T(t,y)是关系隶属度的否定,因此是Domain Dependent。
  • S(x,y)是一个关系成员,所以域独立的——但是因为它只是一个分离,它不能挽救整个查询。
  • 结论:查询总体上是Domain Dependent.

(我不知道是什么迫使它[什么?]]在每一个领域")

在布尔代数的链接中,注意它所说的物质暗示又称物质条件(我已经改变了变量名来反映这里的工作原理):

但如果p为假,则q的值可以忽略;

也就是说,如果LHS表达式为假,则可以忽略S(x,y)中的成员关系,因此S(x,y)无法约束x,y。那么,t只出现在R(t,x)T(t,y)中,这对约束t没有帮助:这两个出现都在隐含的LHS上。

编辑:这里的"未能约束"是指未能限制x,yt在基本关系中出现在元组中的值的范围。