Codd's 的 12 条规则

Edgar F. Codd 博士在对数据库系统的关系模型进行广泛研究后,提出了他自己的十二条规则,据他说,数据库必须遵守这些规则才能被视为真正的关系数据库。

这些规则可以应用于仅使用其关系功能来管理存储数据的任何数据库系统。 这是一个基础规则,它充当所有其他规则的基础。


规则 1:信息规则

存储在数据库中的数据,可能是用户数据或元数据,必须是某个表格单元格的值。 数据库中的所有内容都必须以表格格式存储。


规则 2:保证访问规则

通过表名、主键(行值)和属性名(列值)的组合,可以保证在逻辑上可以访问每个数据元素(值)。 没有其他方法(例如指针)可用于访问数据。


规则 3:NULL 值的系统处理

必须对数据库中的 NULL 值进行系统和统一的处理。 这是一个非常重要的规则,因为 NULL 可以解释为后面的 − 数据丢失、数据未知或数据不适用。


规则 4:有效在线目录

整个数据库的结构描述必须存储在一个在线目录中,称为数据字典,授权用户可以访问该目录。 用户可以使用相同的查询语言来访问他们用来访问数据库本身的目录。


规则 5:综合数据子语言规则

只能使用支持数据定义、数据操作和事务管理操作的具有线性语法的语言访问数据库。 这种语言可以直接使用,也可以通过某些应用程序使用。 如果数据库允许在没有任何这种语言帮助的情况下访问数据,则视为违规。


规则 6:查看更新规则

理论上可以更新的数据库的所有视图也必须由系统更新。


规则 7:高级插入、更新和删除规则

数据库必须支持高级别的插入、更新和删除。 这不能仅限于单行,也就是说,它还必须支持并集、交集和减法运算以产生数据记录集。


规则 8:物理数据独立性

存储在数据库中的数据必须独立于访问数据库的应用程序。 数据库物理结构的任何更改都不得对外部应用程序访问数据的方式产生任何影响。


规则 9:逻辑数据独立

数据库中的逻辑数据必须独立于其用户的视图(应用程序)。 逻辑数据的任何更改都不得影响使用它的应用程序。 例如,如果两个表被合并或一个被拆分为两个不同的表,那么对用户应用程序应该没有影响或变化。 这是最难应用的规则之一。


规则 10:完整性独立性

数据库必须独立于使用它的应用程序。 它的所有完整性约束都可以独立修改,而不需要对应用程序进行任何更改。 此规则使数据库独立于前端应用程序及其接口。


规则 11:分发独立

最终用户不能看到数据分布在不同的位置。 用户应该始终认为数据仅位于一个站点。 该规则已被视为分布式数据库系统的基础。


规则 12:非颠覆规则

如果系统具有提供访问低级记录的接口,则该接口必须不能破坏系统并绕过安全性和完整性约束。