數據獨立性

資料庫系統的基本特徵之一

數據的獨立性是資料庫系統的最基本的特徵之一。數據獨立性是指應用程序和數據結構之間相互獨立, 互不影響。在三層模式體系結構中數據獨立性是指資料庫系統在某一層次模式上的改變不會使它的上一層模式也發生改變的能力。正是三級模式間的兩層映像保證了資料庫系統中的數據具有較高的數據獨立性。數據獨立性包括數據邏輯獨立性和數據物理獨立性。

數據獨立性也是資料庫系統的一個最重要的目標之一。它能使數據獨立於應用程序。

數據與程序的獨立,把數據的定義從程序中分離出去,加上數據的存取又由DBMS負 責,從而簡化了應用程序的編製,大大減少了應用程序的維護和修改。

概念背景


一個資料庫結構從邏輯上可以分為外部模式,內部模式和概念模式三層。為了提高資料庫系統中的數據獨立性,DBMS在這三級模式之間提供了兩層映像。作為資料庫系統的基本特徵的數據和程序的獨立性正是依靠於這三級模式和兩級映像。
概念模式也稱模式,是由資料庫設計者綜合所有用戶數據,並且按照一定的觀點構造的對資料庫全局邏輯結構的描述。在資料庫系統的三級模式中,概念模式處於中間層,一個資料庫只有一個概念模式,它既不涉及數據的物理存儲細節和硬體環境也與具體的應用程序和程序設計語言無關。外部模式也稱為子模式,子模式是用戶和資料庫之間的介面,是資料庫用戶能看得見的和使用的局部數據的邏輯結構和特徵的描述。內部模式也稱為存儲模式,是對資料庫中數據物理結構和存儲方式的描述,是數據在資料庫內部的表示方式。一個資料庫只有一個內部模式。內部模式是DBMS管理的最底層,它是物理存儲設備上存儲數據時的物理抽象。
在某個層次上修改模式定義而不影響位於其上一層模式的能力叫做數據獨立性.有兩個層次的數據獨立性:物理獨立性和邏輯獨立性。

定義


物理獨立性是指用戶的應用程序與存儲在磁碟上的資料庫中數據是相互獨立的。即,數據在磁碟上怎樣存儲由DBMS管理,用戶程序不需要了解,應用程序要處理的只是數據的邏輯結構,這樣當數據的物理存儲改變了,應用程序不用改變。
邏輯獨立性是指用戶的應用程序與資料庫的邏輯結構是相互獨立的,即,當數據的邏輯結構改變時,用戶程序也可以不變。
邏輯數據獨立性比物理數據獨立性更難做到,這是因為應用程序對於它們所訪問的數據的邏輯結構依賴程度很大。
數據獨立性的概念同現代程序設計語言中抽象數據類型的槪念在許多方面是相似的。兩者均為用戶屏蔽具體實現的細節,使用戶可以只考慮概括的結構,而不必考慮低層實現細節。

分類


邏輯數據獨立性

為了實現資料庫系統的外模式與模式的聯繫和轉換,在外模式與模式之間建立映像,即外模式/模式映像。通過外模式與模式之間的映像把描述局部邏輯結構的外模式與描述全局邏輯結構的模式聯繫起來。由於一個模式與多個外模式對應,因此,對於每個外模式,資料庫系統都有一個外模式/模式映像,它定義了該外模式與模式之間的對應關係·這些映像定義通常包含在各自外模式的描述中。
有了外模式/模式映像,模式改變時,如增加新的屬性、修改屬性的類型,只要對外模式/模式的映像做相應的改變,可使外模式保持不變,則以外模式為依據編寫的應用程序就不受影響,從而應用程序不必修改,保證了數據與程序之間的邏輯獨立性,也就是邏輯數據獨立性。
邏輯數據獨立性說明模式變化時一個應用的獨立程度。現今的系統,可以提供下列幾個方面的邏輯數據獨立性:
(1)在模式中增加新的記錄類型,只要不破壞原有記錄類型之間的聯繫。
(2)在原有記錄類型之間增加新的聯繫。
(3)在某些記錄類型中增加新的數據項。

物理數據獨立性

為了實現資料庫系統模式與內模式的聯繫和轉換,在模式與內模式之間提供了映像,即模式/內模式映像。通過模式與內模式之間的映像把描述全局邏輯結構的模式與描述物理結構的內模式聯繫起來。由於資料庫只有一個模式,也只有一個內模式,因此,模式/內模式映像也只有一個,通常情況下,模式/內模式映像放在內模式中描述。
有了模式/內模式映像,當內模式改變時,如存儲設備或存儲方式有所改變,只要對模式/內模式映像做相應的改變,使模式保持不變,則應用程序就不受影響,從而保證了數據與程序之間的物理獨立性,稱為存儲數據獨立性。
物理數據獨立性說明在數據物理組織發生變化時一個應用的獨立程度,例如不必修改或重寫應用程序。現今的系統,可以提供以下幾個方面的物理數據獨立性:
(1)改變存儲設備或引進新的存儲設備。
(2)改變數據的存儲位置,例如把它們從一個區域遷移到另-個區域。
(3)改變物理記錄的體積。
(4)改變數據物理組織方式,例如增加索引,改變Hash函數,或從一種結構改變為另一種結構。

作用


數據與程序

把數據的定義從程序中分離出去,加上數據的存取又由DBMS負責,從而簡化了應用程序的編製,大大減少了應用程序的維護和修改。可以說數據處理的發展史就是數據獨立性不斷進化的歷史。在手工管理階段,數據和程序完全交織在一起,沒有獨立性可言,數據結構作任何改動,應用程序也需要做相應的修改。

獨立發展

文件系統出現后,雖然將兩者分離,但實際上應用程序中依然要反映文件在存儲設備上的組織方法、存取方法等物理細節,因而只要數據作了任何修改,程序仍然需要作改動。而資料庫系統的一個重要目標就是要使程序和數據真正分離,使它們能獨立發展。

舉例


CAD簡介
CAD即為計算機輔助設計,是研究計算機在工程設計中綜合應用的學科。它綜合了計算機軟/硬體的最新成就,如圖形技術、資料庫技術等,從而形成了一個應用範圍較廣的工程設計工具。在計算機輔助設計系統中,所需要的數據量非常大,因此在CAD系統中必須要有一個方便而且實用的對圖形信息和大量其他數據資料進行合理組織和管理的管理軟體。EDRMS作為一個主要用於圖形信息管理的工程資料庫管理系統就很好地解決了這一問題。
DRMS系統和Datatrieve簡介
EDRMS系統是利用VAX-11Datatrieve和VAX-11軟體在VAX-11VMS操作系統支持下開發的管理軟體。它通過在VAX-11Datatrieve管理軟體基礎上增加一層介面進行工程數據管理。EDRMS系統結構如圖1所示:
圖1
圖1
EDRMS系統為用戶提供了一個友好的界面,即允許用戶交互訪問資料庫中的某一記錄,也可由用戶通過高級語言訪問資料庫中的數據,並保證程序與數據的獨立性。VAX-11 Datatrieve是一種數據檢索語言,是信息管理的工具。VAX-11 Datatrieve提供調用,並允許運用其他語言編寫程序,利用VAX-11Datatrieve可以訪問、存儲和更新文件中的信息併產生報告。使用VAX-11 Datatrieve中的檢索服務等可以訪問資料庫。
EDRMS系統的獨立性實現
EDRMS工程資料庫管理系統對於所支持的高級語言,為了保證程序與數據的獨立性以及為了方便用戶,實現簡潔靈活的要求,在系統初始化建庫的時候可以為每種高級語言自動生成兩個include文件。以FORTRAN語言為例,自動生成的兩個include文件的名字分別為記錄名其前6個字元加.FOR及加O.FOR。而PASCAL語言中自動產生的兩個文件名字分別為記錄名或其前6個宇符加.PAS及加O.PAS。