概念背景
一個資料庫結構從邏輯上可以分為外部模式,內部模式和 概念模式三層。為了提高資料庫系統中的數據獨立性,DBMS在 這三級模式之間提供了兩層映像。作為資料庫系統的基本特徵 的數據和程式的獨立性正是依靠於這三級模式和兩級映像。
概念模式也稱模式,是由資料庫設計者綜合所有用戶數 據,並且按照一定的觀點構造的對資料庫全局邏輯結構的描 述。在資料庫系統的三級模式中,概念模式處於中間層,一個 資料庫只有一個概念模式,它既不涉及數據的物理存儲細節和 硬體環境也與具體的應用程式和程式設計語言無關。外部模式 也稱為子模式,子模式是用戶和資料庫之間的接口,是資料庫 用戶能看得見的和使用的局部數據的邏輯結構和特徵的描述。 內部模式也稱為存儲模式,是對資料庫中數據物理結構和存儲 方式的描述,是數據在資料庫內部的表示方式。一個資料庫只 有一個內部模式。內部模式是DBMS管理的最底層,它是物理存 儲設備上存儲數據時的物理抽象。
在某個層次上修改模式定義而不影響位於其上一層模式的能力叫做數據獨立性.有兩個層次的數據獨立性:物理獨立性和邏輯獨立性。
定義
物理獨立性是指用戶的應用程式與存儲在磁碟上的資料庫中數據是相互獨立的。即,數據在磁碟上怎樣存儲由DBMS管理,用戶程式不需要了解,應用程式要處理的只是數據的邏輯結構,這樣當數據的物理存儲改變了,應用程式不用改變。
邏輯獨立性是指用戶的應用程式與資料庫的邏輯結構是相互獨立的,即,當數據的邏輯結構改變時,用戶程式也可以不變。
邏輯數據獨立性比物理數據獨立性更難做到,這是因為應用程式對於它們所訪問的數據的邏輯結構依賴程度很大。
數據獨立性的概念同現代程式設計語言中抽象數據類型的槪念在許多方面是相似 的。兩者均為用戶禁止具體實現的細節,使用戶可以只考慮概括的結構,而不必考慮低層實現細節。
分類
邏輯數據獨立性
為了實現資料庫系統的外模式與模式的聯繫和轉換,在外模式與模式之間建立映像,即外模式/模式映像。通過外模式與模式之間的映像把描述局部邏輯結構的外模式與描述全局邏輯結構的模式聯繫起來。由於一個模式與多個外模式對應,因此,對於每個外模式,資料庫系統都有一個外模式/模式映像,它定義了該外模式與模式之間的對應關係·這些映像定義通常包含在各自外模式的描述中。
有了外模式/模式映像,模式改變時,如增加新的屬性、修改屬性的類型,只要對外模式/模式的映像做相應的改變,可使外模式保持不變,則以外模式為依據編寫的應用程式就不受影響,從而應用程式不必修改,保證了數據與程式之間的邏輯獨立性,也就是邏輯數據獨立性。
邏輯數據獨立性說明模式變化時一個套用的獨立程度。現今的系統,可以提供下列幾個方面的邏輯數據獨立性:
(1) 在模式中增加新的記錄類型,只要不破壞原有記錄類型之間的聯繫。
(2) 在原有記錄類型之間增加新的聯繫。
(3) 在某些記錄類型中增加新的數據項。
物理數據獨立性
為了實現資料庫系統模式與內模式的聯繫和轉換,在模式與內模式之間提供了映像,即模式/內模式映像。通過模式與內模式之間的映像把描述全局邏輯結構的模式與描述物理結構的內模式聯繫起來。由於資料庫只有一個模式,也只有一個內模式,因此,模式/內模式 映像也只有一個,通常情況下,模式/內模式映像放在內模式中描述。
有了模式/內模式映像,當內模式改變時,如存儲設備或存儲方式有所改變,只要對模式/內模式映像做相應的改變,使模式保持不變,則應用程式就不受影響,從而保證了數據與程式之間的物理獨立性,稱為存儲數據獨立性。
物理數據獨立性說明在數據物理組織發生變化時一個套用的獨立程度,例如不必修改或重寫應用程式。現今的系統,可以提供以下幾個方面的物理數據獨立性:
(1) 改變存儲設備或引進新的存儲設備。
(2) 改變數據的存儲位置,例如把它們從一個區域遷移到另-個區域。
(3) 改變物理記錄的體積。
(4) 改變數據物理組織方式,例如增加索引,改變Hash函式,或從一種結構改變為另一種結構。
作用
數據與程式的獨立
把數據的定義從程式中分離出去,加上數據的存取又由DBMS負責,從而簡化了應用程式的編制,大大減少了應用程式的維護和修改。可以說數據處理的發展史就是數據獨立性不斷進化的歷史。在手工管理階段,數據和程式完全交織在一起,沒有獨立性可言,數據結構作任何改動,應用程式也需要做相應的修改。
獨立發展
檔案系統出現後,雖然將兩者分離,但實際上應用程式中依然要反映檔案在存儲設備上的組織方法、存取方法等物理細節,因而只要數據作了任何修改,程式仍然需要作改動。而資料庫系統的一個重要目標就是要使程式和數據真正分離,使它們能獨立發展。
舉例
CAD簡介
CAD即為計算機輔助設計,是研究計算機在工程設計中綜 合套用的學科。它綜合了計算機軟/硬體的最新成就,如圖形技 術、資料庫技術等,從而形成了一個套用範圍較廣的工程設計工具。在計算機輔助設計系統中,所需要的數據量非常大,因此在CAD系統中必須要有一個方便而且實用的對圖形信息和大量其 他數據資料進行合理組織和管理的管理軟體。EDRMS作為一個 主要用於圖形信息管理的工程資料庫管理系統就很好地解決了這一問題。
DRMS系統和Datatrieve簡介
EDRMS系統是利用VAX-11 Datatrieve和VAX-11軟體在 VAX-11VMS作業系統支持下開發的管理軟體。它通過在VAX-11 Datatrieve管理軟體基礎上增加一層接口進行工程數據管理。 EDRMS系統結構如圖1所示:
EDRMS系統為用戶提供了一個友好的界面,即允許用戶互動訪問資料庫中的某一記錄,也可由用戶通過高級語言訪問資料庫中的數據,並保證程式與數據的獨立性。VAX-11 Datatrieve是一種數據檢索語言,是信息管理的工具。VAX-11 Datatrieve提供調用,並允許運用其他語言編寫程式,利用 VAX-11 Datatrieve可以訪問、存儲和更新檔案中的信息並產生報告。使用VAX-11 Datatrieve中的檢索服務等可以訪問資料庫。VAX-11 Datatrieve結構如圖2所示:
EDRMS系統的獨立性實現
EDRMS工程資料庫管理系統對於所支持的高級語言,為了保證程式與數據的獨立性以及為了方便用戶,實現簡潔靈活的要 求,在系統初始化建庫的時候可以為每種高級語言自動生成兩個include檔案。以FORTRAN語言為例,自動生成的兩個include 檔案的名字分別為記錄名其前6個字元加.FOR及加O.FOR。而 PASCAL語言中自動產生的兩個檔案名稱字分別為記錄名或其前6個宇符加. PAS及加O.PAS。