图 3.a 和 3.b,1.4 节,Edgar Codd 1970 年具有里程碑意义的论文“大型共享数据库的数据关系模型”的第 381 页展示了一组关系模式(图 3.a 和图中的 1NF 未归一化) 3.b)。
规范化的关系模式children′
有一个 key dependency KEY(man#, childname)
,所以它允许像下面的关系这样的实例:
男人# | 子名 | 出生日期 |
---|---|---|
1 | “托马斯” | 2016-03-12 |
2 | “保罗” | 2011-08-02 |
2 | “朱莉娅” | 2012-01-25 |
3 | “托马斯” | 2016-03-12 |
元组(1, "Thomas", 2016-03-12)
and(3, "Thomas", 2016-03-12)
可以指代现实世界中名为“Thomas”的两个不同孩子,也可以指代现实世界中名为“Thomas”的同一个孩子(暗示他的两个父母受雇于同一家公司)。所以现实世界中元组和孩子之间的关系是多对一的,即一个元组只能引用一个孩子,但一个孩子可以是多个元组的所指对象。
关系模型是否要求关系的元组与其所指对象之间的关系是一对一的(从而使 Codd 的示例不正确,因为它是多对一的)?
换句话说:关系模型中是否禁止使用别名?我们必须始终在我们的关系中使用全局唯一引用,即 UUID 键吗?