Codd十二条法则(学习笔记)

1)信息法则。信息表现为贮存在单元中的数据,正如前面所讨论过的,将 V I N作为一个单个的列使用,违反了这条规则。

2)授权存取法则。每一个数据项必须通过一个“表名 +行主键+列名”的组合形式访问。例如,如果你能用数组或指针访问一个列,就违反这条规则。

3)必须以一致的方式使用空值。如果由于缺少数字值,空值( N u l l)被当作0来处理,或者由于缺少字符值而被当作一个空格处理,那么它就违反了这条规则。空值仅仅是指缺少数据而且没有任何数值。如果缺少的数据需要值,软件提供商通常提供使用缺省值的能力满足这一目的。

4)一个活跃的、在线数据字典应作为关系型表被存储,并且该字典应该可以通过常规的数据存取语言访问。如果数据字典的任何部分贮存在操作系统文件里,就违反了这条规则。

5)除了可能的低级存取例程外,数据存取语言必须提供所有的存取方式,并且是存取的仅有方式。如果你能通过一个实用程序而不是一个 S Q L接口来存取支持一个表的文件,就有可能违反了本规则。参见规则1 2。

6)所有能被更新的视图应当是可更新的。例如,如果你能将三个表连结起来,作为一个视图的基础,但却不能更新这个视图,则违反本规则。

7)必须有集合级的插入、更新和删除。目前,大多数 R D B M S提供商都在某种程度上提供了这种能力。

8)物理数据的独立性。应用不能依赖于物理结构,如果一个支持某表的文件从一张盘移动到其他盘上或重新命名,不应该对应用产生影响。
9)逻辑数据的独立性。应用不应依赖于逻辑结构。如果一个表必须被分成两个部分,那么应该提供一个视图,以把两段连接在一起,以便不会对应用产生影响。
1 0)完整性的独立性。完整性规则应该贮存在数据字典中。主键约束、外键约束、检查约束、触发器等等都应该贮存在数据字典中。

11)分布独立性。一个数据库即使被分布,也应该能继续工作。这是规则 8的一个扩展,一个数据库不仅能在一个系统(本地地)分布,也能在通过系统的网络(远程地)分布。

1 2)非破坏性法则。如果允许低级存取,一定不能绕过安全性或完整性规则,这些规则是常规的数据存取语言所遵守的,例如,一个备份或载入工具不能绕过验证、约束和锁来备份或载入数据。然而,软件供应商出于速度的原因,通常提供这些功能。那么,数据库系统管理员就有责任确保数据的安全性和完整性,如果瞬间出现问题,应该立即恢复。例如当载入V L D B时,可以临时禁止并重新打开约束检查。

如果一个D B M S能满足本章中讨论的所有基本原则(两个定义、六个属性、关系型操作以及两个完整性规则)和这十二条法则,那么它就可以被当作一个 R D B M S。C o d d用他的法则总结了这一切:“对于一个有资格成为R D B M S的系统来说,该系统必须排他地使用它的关系型工具来管理数据库。”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章