我想了解以下查询是否与域无关:
{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,y
或t
在基本关系中出现在元组中的值的范围。