PostgreSQL符合Codds规则?

时间:2014-06-18 15:56:55

标签: sql database postgresql rules

有没有人对PostgreSQL是否符合Codd的所有12条规则有任何好的参考?

如果没有,是否有任何资深的PostgreSQL用户对此主题有意见?

谢谢。

1 个答案:

答案 0 :(得分:0)

我的回答是基于谷歌的其他答案。

1986年创建了第一个ANSI语言的ANSI标准。最后一个ANSI标准是ANSI SQL:2003。然而,它的要求仅在少数RDBMS中实现。到目前为止,最广泛使用的RDBMS分别遵守ANSI SQL:1999,旧版ANSI SQL:1992。 PostgreSQL完全支持ANSI SQL:1999和部分ANSI:2003。

如果严格地说Codd的规则:

Codd的12条规则并不是关系的全部规则 模型。事实上,他在他的1.990书中扩展了这12到40条规则 _The_Relational_Model_for_Database_Management。

但此外,如果你想读克里斯托弗J约会 1.999 _An_Introduction_to_Database_Systems_你会看到的 关系模型包含一些基本要素和一些原则。

基本元素是域或数据类型。 PostgreSQL的 并没有真正强制执行域,因为它接受NULL,即 定义不是任何域的一部分。因此三元组域名 和值称为属性分解,所以元组 - 因为它 代表一个命题,一个缺少信息的命题 是另一个命题,而不是在关系头中声明的命题 - ,这种关系也破裂了。

此外,关系是一个集合,而不是一个包。一个包 接受重复,但不是关系。因为PostgreSQL确实如此 不强制要求为每个人申报候选人密钥 每张桌子,它的桌子不一定是关系,而是相当的 如上所示,可能和通常的非元组袋,但简单 行。

此外,第一个原则是信息原则,其中 所有数据库必须由数据表示。对象ID违反 这对数据独立性产生严重后果,由此产生 方式是另一种关系模型的必要条件,即 用户,逻辑和物理模式之间的分离。也没有 PostgreSQL正确支持。