數據庫模式
數據庫系統是數據密集型應用的核心,其體系結構受數據庫運行所在的計算機系統的影響很大。從數據庫管理庫管理系統的角度看,數據庫系統體系結構一般采用三級模式結構。
實際上,數據庫的產品很多,它們支持不同的數據模式,使用不同的數據庫語言,建立在不同的操作系統上。數據的存儲結構也各不相同,但體系結構基本上都具有相同的特征,采用“三級模式和兩級映像”。
數據庫系統采用三級模式結構,這是數據庫管理系統內部的系統結構。
數據庫系統設計員可在視圖層、邏輯層和物理層對數據抽象,通過外模式、概念模式和內模式來描述不同層次上的數據特性。
1.概念模式
概念模式也稱模式,是數據庫中全部數據的邏輯結構和特征的描述,它由若干個概念記錄類型組成,只涉及行的描述,不涉及具體的值。概念模式的一個具體值稱為模式的一個實例,同一個模式可以有很多實例。
概念模式反映的是數據庫的結構及其聯系,所以是相對穩定的;而實例反映的是數據庫某一時刻的狀態,所以是相對變動的。
需要說明的是,概念模式不僅要描述概念記錄類型,還要描述記錄間的聯系、操作、數據的完整性和安全性等要求。但是,概念模式不涉及存儲結構、訪問技術等細節。只有這樣,概念模式才算做到了“物理數據獨立性”。
描述概念模式的數據定義語言稱為“模式DDL”
2.外模式
外模式也稱用戶模式或子模式,是用戶與數據庫系統的接口,是用戶用到的那部分數據的描述。它由若干個外部記錄類型組成。用戶使用數據操縱語言對數據庫進行操作,實際上是對外模式的外部記錄進行操作。
描述外模式的數據定義語言稱為“外模式DDL”。有了外模式后,程序員不必關心概念模式,只與外模式發生聯系,按外模式的結構存儲和操作數據。
3.內模式
內模式也稱為存儲模式,是數據物理結構和存儲方式的描述,是數據在數據庫內部的表示方式。需要定義所以的內部記錄類型、索引和文件的組織方式,以及數據控制方面的細節。
例如,記錄的存儲方式是順序存儲、B樹結構存儲還是Hash方法存儲;索引按照什么方式組織;數據是否壓縮存儲,是否加密;數據的存儲記錄結構有何規定。
需要說明的是,內部記錄並不涉及物理記錄,也不涉及設備的約束。比內模式更接近於物理存儲和訪問的那些軟件機制是操作系統的一部分(即文件系統)。例如,從磁盤上讀、寫數據。
描述內模式的數據定義語言稱為“內模式DDL”。
總之,數據按外模式的描述提供給用戶;按內模式的描述存儲在磁盤上;而概念模式提供了連接這兩級模式的相對穩定的中間層,並使得兩級中任意一級的改變都不受另一級的牽制。
三級模式兩級映像
數據庫系統在三級模式之間提供了兩級映像:模式/內模式的映像、外模式/模式的映像。這兩級映射保證了數據庫中的數據具有較高的物理獨立性和邏輯獨立性。
•模式/內模式的映像:實現概念模式到內模式之間的相互轉換。
•外模式/模式的映像:實現外模式到概念模式之間的相互轉換。
數據的獨立性是指數據與程序獨立,將數據的定義從程序中分離出去,由DBMS負責數據的存儲,從而簡化應用程序,大大減少應用程序編制的工作量。數據的獨立性是由DBMS的二級映像功能來保證的。數據的獨立性包括數據的物理獨立性和數據的邏輯獨立性。
數據的物理獨立性是指當數據庫的內模式發生改變時,數據的的邏輯結構不變。由於應用程序處理的只是數據的邏輯結構,這樣物理獨立性可以保證,當數據的物理結構改變了,應用程序不用改變。但是,為了保證應用程序能夠正確執行,需要修改概念模式/內模式之間的映像。
數據的邏輯獨立性是指用戶的應用程序與數據庫結構是相互獨立的。數據的邏輯結構發生變化后,用戶程序也可以不修改。但是,為了保證應用程序能夠正確執行,需要修改外模式/概念模式之間的映像。