【问题标题】:PostgreSQL conforms to Codds rules?PostgreSQL 是否符合 Codds 规则?
【发布时间】:2014-06-18 15:56:55
【问题描述】:

关于 PostgreSQL 是否符合 Codd 的所有 12 条规则,是否有任何好的参考资料可供阅读?

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

谢谢。

【问题讨论】:

    标签: sql database postgresql rules


    【解决方案1】:

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

    在 1986 年创建了 SQL 语言的第一个 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。

    此外,如果您愿意阅读 Christopher J Date 的 1.999 _An_Introduction_to_Database_Systems_ 你会看到 关系模型包括一些基本要素和一些原则。

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

    此外,关系是一个集合,而不是一个包。一个包 接受重复,但不接受关系。所以因为 PostgreSQL 确实 不强制为每个和声明一个候选键的必要性 每个表,它的表不一定是关系,而是相当 可能而且通常不是如上所示的元组袋,而是简单的 行。

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

    【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    相关资源
    最近更新 更多