程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle管理規則與完全關系型

Oracle管理規則與完全關系型

編輯:Oracle數據庫基礎

數據庫管理系統(DatabaseManagementSystem,DBMS)就是管理一個數據庫的軟件,它充當所有數據的知識庫,並對它的存儲、安全、一致性、並發操作、恢復和訪問負責。DBMS有一個數據詞典(有時被稱為系統目錄),其中貯存著它擁有的每個事物的數據,例如名字、結構、位置和類型,這種關於數據的數據也被稱為元數據(metadata)。在一條數據的生存周期裡(從它的創建到刪除),這條數據的邏輯和物理信息都被記錄在數據詞典中。數據庫系統管理員(DatabaseAdministrator,DBA)應該熟悉DBMS的數據詞典;在數據庫的整個生命周期內,數據詞典為他或她服務。

DBMS應該遵循Codd提出的十二條法則,才能被分類到完全關系型:

1)信息法則。信息表現為貯存在單元中的數據,正如前面所討論過的,將VIN作為一個單個的列使用,違反了這條管理Oracle管理規則。

2)授權存取法則。每一個數據項必須通過一個“表名+行主鍵+列名”的組合形式訪問。例如,如果你能用數組或指針訪問一個列,就違反這條管理Oracle管理規則。

3)必須以一致的方式使用空值。如果由於缺少數字值,空值(Null)被當作0來處理,或者由於缺少字符值而被當作一個空格處理,那麼它就違反了這條管理Oracle管理規則。空值僅僅是指缺少數據而且沒有任何數值。如果缺少的數據需要值,軟件提供商通常提供使用缺省值的能力滿足這一目的。

4)一個活躍的、在線數據字典應作為關系型表被存儲,並且該字典應該可以通過常規的數據存取語言訪問。如果數據字典的任何部分貯存在操作系統文件裡,就違反了這條管理Oracle管理規則。

5)除了可能的低級存取例程外,數據存取語言必須提供所有的存取方式,並且是存取的僅有方式。如果你能通過一個實用程序而不是一個SQL接口來存取支持一個表的文件,就有可能違反了本管理Oracle管理規則。參見管理Oracle管理規則12。

6)所有能被更新的視圖應當是可更新的。例如,如果你能將三個表連結起來,作為一個視圖的基礎,但卻不能更新這個視圖,則違反本管理Oracle管理規則。

7)必須有集合級的插入、更新和刪除。目前,大多數RDBMS提供商都在某種程度上提供了這種能力。

8)物理數據的獨立性。應用不能依賴於物理結構,如果一個支持某表的文件從一張盤移動到其他盤上或重新命名,不應該對應用產生影響。

9)邏輯數據的獨立性。應用不應依賴於邏輯結構。如果一個表必須被分成兩個部分,那麼應該提供一個視圖,以把兩段連接在一起,以便不會對應用產生影響。

10)完整性的獨立性。完整性管理Oracle管理規則應該貯存在數據字典中。主鍵約束、外鍵約束、檢查約束、觸發器等等都應該貯存在數據字典中。

11)分布獨立性。一個數據庫即使被分布,也應該能繼續工作。這是管理Oracle管理規則8的一個擴展,一個數據庫不僅能在一個系統(本地地)分布,也能在通過系統的網絡(遠程地)分布。

12)非破壞性法則。如果允許低級存取,一定不能繞過安全性或完整性管理Oracle管理規則,這些管理Oracle管理規則是常規的數據存取語言所遵守的,例如,一個備份或載入工具不能繞過驗證、約束和鎖來備份或載入數據。然而,軟件供應商出於速度的原因,通常提供這些功能。那麼,數據庫系統管理員就有責任確保數據的安全性和完整性,如果瞬間出現問題,應該立即恢復。例如當載入VLDB時,可以臨時禁止並重新打開約束檢查。如果一個DBMS能滿足本章中討論的所有基本原則(兩個定義、六個屬性、關系型操作以及兩個完整性管理Oracle管理規則)和這十二條法則,那麼它就可以被當作一個RDBMS。

Codd用他的法則總結了這一切:“對於一個有資格成為RDBMS的系統來說,該系統必須排他地使用它的關系型工具來管理數據庫。”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved