【问题标题】:How can a referential integrity constraint be expressed through relational algebra?如何通过关系代数表达参照完整性约束?
【发布时间】:2021-12-19 15:19:12
【问题描述】:

为数据库设计中的参照完整性约束编写代数关​​系表达式是什么意思?

【问题讨论】:

标签: database-design constraints relational-database relational-algebra


【解决方案1】:

简短回答:一般来说无法表达。

但也许您想到了一种不太一般的情况?

更长的答案:关系代数有很多变体。也许有些是为了表达约束而设计的;但更常见的(尤其是 Codd 1972)不是。

您需要一个构造来返回布尔值(是/否,此数据库内容符合约束)。而大多数代数旨在返回关系值。

或者你需要一个约定,(比如说)一个空的结果意味着“有效”——假设一个完全空的数据库是有效的;但是有些限制使得完全空的数据库无效;那么您就必须编造一个非空结果,这会使您的查询“依赖于域”,而 Codd 竭力避免这种情况。

【讨论】:

  • 不清楚破折号后面的内容是什么意思。但考虑到它正在说的一些事情,也许试图说,目前尚不清楚它为什么在那里。数据库上的约束不会阻止通过空或非查询来表达约束。在构造约束的相应查询后,您不需要“构造非空结果”;每当约束失败时,查询将根据给出的无效状态“构造一个非空结果”。 (授予约束和查询语言必须具有适当相似的表达能力。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多