【问题标题】:expressing constraints in relational algebra在关系代数中表达约束
【发布时间】:2015-04-11 23:47:16
【问题描述】:

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

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

还有一些来自 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) 没有一本书或一篇文章展示了示例或说我可以使用它。

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

【问题讨论】:

    标签: relational-algebra


    【解决方案1】:

    严格来说,表达式“FIT_VAL {empty}”不是关系表达式(它不产生关系,而是产生真值),因此将这样的表达式视为“有效”有点问题关系代数表达式”。

    但严格来说,我不知道您的教科书在该领域的读者/用户削减了多少。在“严格来说”的方法下,甚至完全不可能使用关系代数来定义约束,因为约束的定义几乎按照定义必须产生一个布尔结果(数据库是否满足它)。这可能就是为什么看到使用关系代数来表达/定义数据库约束是如此异常的原因!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 2017-04-12
      • 1970-01-01
      相关资源
      最近更新 更多