在关系代数中表达约束

expressing constraints in relational algebra

我需要用关系代数表达这个约束:

我有一些 table,其中一列包含所有可能的值:ALL_VAL

和 table 以及 ALL_VAL 中的某些值不符合某些规则:NOT_FIT_VAL

我可以计算 FIT_VAL = ALL_VAL - NOT_FIT_VAL

我需要的是一个约束条件:在 FIT_VAL 中至少有一项。

我在空组中使用不等号:

ALL_VAL,

NOT_FIT_VAL

FIT_VAL = ALL_VAL - NOT_FIT_VAL

FIT_VAL <> {空}

但我不确定在关系代数中是否允许 <>(not equal) 没有一本书或文章显示示例或说我可以使用它。

我想对它进行一些澄清,以及正确的表达方式。 谢谢

严格来说,表达式"FIT_VAL <> {empty}"不是关系表达式(它不产生关系,而是产生真值),因此认为这样的表达式是[=17有点问题=].

但这只是严格意义上的,我不知道您的教科书在该领域削减了多少 readers/users。在 "strictly speaking" 方法下,甚至完全不可能使用关系代数来定义约束,因为约束的定义几乎按定义必须产生布尔结果(数据库是否满足)。这可能就是为什么看到关系代数被用于 express/define 数据库约束如此异常的原因!

另一种使用关系代数定义数据库约束的方法是定义一个关系表达式来扮演 "faults expression" 的角色,然后隐含地默认规则是计算该表达式的结果必须在一直都是空的。但那是(AFAIK)我的一个完全私人的方法,如果你也在教科书中找到它,我会感到惊讶。