假设R1(A*,B)和R2(C*,D)是两个关系模式。设r1和r2是对应的关系实例。B是R2中引用C的外键。如果r1和r2中的数据满足引用完整性约束,那么正确的说法是∏B ( r1 ) -∏C (r2) =∅(即使r1中的一个元组包含与B属性对应的null )。
发布于 2016-05-19 22:56:29
说r1 B (r2) -∏C(R2)=∅是正确的吗?
在关系代数(通常定义)中,是的。但理由取决于您使用的外键的定义。
即使r1中的一个元组包含null
关系代数中没有空(通常定义)。它们来自SQL。(主键也与关系代数无关;候选键很重要。)
SQL外键的概念不同于代数概念。首先,它涉及到零。其次,SQL主键或唯一的NULL声明声明了一个超级键,而不一定是候选键,而SQL外键声明引用的是超级键,而不一定是候选键。
https://stackoverflow.com/questions/37246599
复制相似问题