参照完整性约束如何通过关系代数表达?

How can a referential integrity constraint be expressed through relational algebra?

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

简答:一般情况下无法表达。

但您可能想到了一个不太普遍的情况?

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

您需要构造一个 return 布尔值(yes/no 此数据库内容符合约束条件)。而大多数代数的目标是 returning 关系值。

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