E.F. Codd 的 12 条关系型数据库管理系统 (RDBMS) 规则
数据库管理系统 (DBMS) 本质上由一套全面的应用程序组成,只要数据相互关联且高度持久,就可以利用这些应用程序来访问、管理和更新数据。与任何管理系统一样,DBMS 的目标是提供一个高效便捷的环境,使信息检索和存储到数据库中变得轻松便捷。数据库用于存储和管理大量信息,这一点毋庸置疑。
为了实现这一点,以下几点必不可少:
- 数据建模 − 它旨在定义信息存储的结构。
- 机制提供 − 为了操作已处理的数据并修改文件和系统结构,提供查询处理机制至关重要。
- 崩溃恢复和安全 − 为了避免任何差异并确保数据安全,崩溃恢复和安全机制必不可少。
- 并发控制 − 如果系统由多个用户共享,则并发控制是当务之急。
Edgar F Codd 博士
E.F.Codd 博士,也被世界称为"数据库管理系统之父"提出了12条规则,实际上一共有13条。这些规则从0到12编号。据他所说,如果一个数据库管理系统(DBMS)遵循这12条规则,那么它就是完全关系型的。到目前为止,只有少数数据库能够完全遵循这11条规则。他的12条规则被亲切地称为"E.F.Codd的十二诫"。他那篇才华横溢、开创性的研究论文《大型共享数据库的关系数据模型》全文读起来赏心悦目。
关系数据库管理系统
数据库管理系统的术语中有一个不言而喻的规则。随着实现所有 E.F.Codd 规则的数据库越来越少,这条潜规则也越来越受到关注。

- 如果一个管理系统或软件遵循 E.F.Codd 提出的 5-6 条规则中的任何一条,它就有资格成为数据库管理系统 (DBMS)。
- 如果一个管理系统或软件遵循 E.F.Codd 提出的 7-9 条规则中的任何一条,它就有资格成为半关系数据库管理系统 (semi- RDBMS)。
- 如果一个管理系统或软件遵循 E.F. Codd 提出的 9-12 条规则,它就有资格成为完整的关系数据库管理系统 (RDBMS)。
Edgar F. Codd 博士的十二诫
以下是 E.F Codd 十二规则的简要说明:
规则 0 减去基础规则
任何被提议为 RDBMS 或被提倡为 RDBMS 的关系数据库管理系统都应该能够通过其关系功能全面管理存储的数据。
规则 1 减去信息规则
关系数据库应该以关系的形式存储数据。在关系数据库管理系统中,表就是关系。无论是用户定义的数据还是元数据,将值作为实体存储在表格单元格中都很重要。
规则 2 减去保证访问规则
严禁使用指针进行逻辑数据访问。每个本质上具有原子性的数据实体都应该通过使用表名、特定行值表示的主键和属性值表示的列名的正确组合来进行逻辑访问。
规则 3 − 系统性空值支持规则
关系数据库完全支持空值。它们应被统一视为"缺失信息"。空值与任何数据类型无关。它们不应被误认为是空白、零或空字符串。空值也可以被解释为"不适用的数据"或"未知信息"。
规则 4 − 主动和在线关系目录规则
在数据库管理系统词汇中,"元数据"是指关于数据库的数据或关于数据的数据。存储元数据的主动在线目录称为"数据字典"。只有拥有所需权限的授权用户才能访问所谓的数据字典,并且访问数据字典的数据时应使用用于访问数据库的查询语言。
规则 5 − 综合数据子语言规则
单一健壮的语言应该能够定义完整性约束、视图、数据操作、事务和授权。如果数据库允许访问上述内容,则违反了此规则。
规则 6 − 更新视图规则
视图应反映其各自基表的更新,反之亦然。视图是一个显示受限数据的逻辑表。视图通常使数据可读但不可修改。视图有助于数据抽象。
规则 7 −集合级插入、更新和删除规则
单个操作应足以检索、插入、更新和删除数据。
规则 8 − 物理数据独立性规则
批处理操作和最终用户操作在逻辑上与物理存储及各自的访问方法分离。
规则 9 − 逻辑数据独立性规则
批处理操作和最终用户可以更改数据库模式,而无需重新创建数据库模式或重新创建基于该模式构建的应用程序。
规则 10 − 完整性独立性规则
完整性约束应可用,并作为元数据存储在数据字典中,而不是应用程序中。
规则 11 −分布独立性规则
关系型数据库的数据操作语言 (RDMS) 不应关注物理数据存储,无论物理数据是集中式还是分布式,都无需进行任何修改。
规则 12 减:不可颠覆规则
任何行都应遵守所施加的安全性和完整性约束。不适用任何特殊权限。
几乎所有功能齐全的 DBMS 都是 RDMS。Oracle 和 Sybase 都实现了 11+ 条规则。SQL Server 也实现了 11+ 条规则,而 FoxPro 实现了 7+ 条规则。

