12 Codd的规则
每个数据库都有表格,约束不能被称为关系数据库系统。如果任何数据库只有关系数据模型,它就不能成为一 关系数据库系统(RDBMS) 。所以,一些规则定义了一个数据库作为正确的RDBMS。这些规则由 Dr. Edgar F. Codd (E.F. Codd) 在 1985 年制定,他对关系数据库系统的关系模型有着广泛的研究知识。Codd提出了他的13个规则来测试一个数据库对他的关系模型的概念,如果一个数据库遵循这些规则,它被称为一个 真正的关系型数据库(RDBMS) 。这些13条规则在RDBMS中非常受欢迎,被称为 Codd的12条规则 。
规则 0: 基本规则
数据库必须处于关系形式。这样系统才能通过其关系功能来处理数据库。
规则 1: 信息规则
数据库包含各种信息,这些信息必须以行和列的形式存储在表的每个单元格中。
规则 2: 保证访问规则
可以使用主键值、表名和列名的组合逻辑上从关系数据库中访问每个单一或精确的数据(原子值)。
规则 3: 对空值的系统化处理
该规则定义了数据库记录中对空值的系统化处理。空值在数据库中有各种含义,如缺少数据、单元格中无值、不适当的信息、未知数据,而主键不应为空。
规则 4: 基于关系模型的活动/动态在线目录
它代表了描述性数据库的整个逻辑结构,必须在线存储,并被称为数据库字典。它授权用户访问数据库,并实施类似的查询语言来访问数据库。
规则 5: 综合数据子语言规则
关系数据库支持各种语言,如果我们想要访问数据库,语言必须具有明确、线性或明确定义的语法、字符字符串,并支持综合:数据定义、视图定义、数据操作、完整性约束和限制事务管理操作。如果数据库允许访问没有任何语言的数据,这被视为对数据库的违反。
规则 6: 视图更新规则
所有视图表在理论上可以更新,并且必须由数据库系统在实践中进行更新。
规则 7: 关系级操作(高级插入、更新和删除)规则
数据库系统应该按照每个层次或单个行来执行高级关系操作,如插入、更新和删除。它还支持数据库系统中的并集、交集和差集操作。
规则 8: 物理数据独立性规则
数据库或应用程序中的所有存储数据必须在物理上独立以访问数据库。每个数据都不应依赖其他数据或应用程序。如果数据被更新或数据库的物理结构发生变化,它不会对从数据库中访问数据的外部应用程序产生任何影响。
规则 9: 逻辑数据独立性规则
它类似于物理数据独立性。这意味着,如果逻辑层面(表结构)发生任何更改,不应影响用户的视图(应用程序)。例如,假设一个表要分成两个表,或者两个表合并成一个单独的表,这些变化不应对用户视图应用程序产生影响。
规则 10: 完整性独立性规则
数据库在使用SQL查询语言向表的单元格插入数据时必须保持完整性独立性。所有输入的值不应更改或依赖于任何外部因素或应用程序来维护完整性。这对于使数据库对每个前端应用程序独立非常有帮助。
规则 11: 分布独立性规则
分布独立性规则表示数据库必须正常工作,即使它存储在不同的位置并由不同的最终用户使用。假设一个用户通过应用程序访问数据库;在这种情况下,他们不应意识到另一个用户使用特定数据,他们总是获得的数据只位于一个站点上。最终用户可以访问数据库,并且这些访问数据应该对每个用户来执行SQL查询时都是独立的。
规则 12: 非颠覆规则
非颠覆规则将RDBMS定义为一种以SQL语言存储和操作数据库的系统。如果一个系统具有除SQL以外的低级别或独立的语言来访问数据库系统,它不应为了转换数据而颠覆或绕过完整性。