如何正确建模关系数据库中的缺失信息?

时间:2014-01-18 18:53:50

标签: database database-design null relational-database

Some认为关系数据库中的NULL是邪恶的,并提出了缺失信息的替代方法,通常导致6NF的关系。然后,基本上,关系中缺少元组表示缺少信息。但是,根据我的理解,这违反了封闭世界假设,因为如果一个元组可能出现在某种关系中但不是,那就意味着对应于该元组的命题是错误的,不同于未知< / em>的

例如,请考虑以下关系:

|---------------|
| NAME   | AGE  |
|--------+------|
| andrey | 30   |
|---------------|

在这里,谓词是“被称为NAME的人AGE岁”,所以我们知道安德烈已经30岁了。如果我们不知道他的年龄,那么我们可以用NULL

来表达
|---------------|
| NAME   | AGE  |
|--------+------|
| andrey | NULL |
|---------------|

但是,如果NULL被禁止,我们就无法做到。相反,我们可以删除与NAME andrey的关系中的元组。但是在封闭世界假设下,这意味着andrey根本没有任何年龄(也许他是永恒的),这与说andrey 有一些年龄不同,我们根本就没有知道。

所以,我的问题是:是否真的可以在没有NULL的情况下正确建模缺失信息,而不是违反封闭世界假设?或者我会错过什么?

0 个答案:

没有答案