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的系統來說,該系統必須排他地使用它的關係型工具來管理數據庫。”

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