數據抽象過程
根據數據抽象的級別定義了四種模型:
概念模型:表達用戶需求觀點的數據全局邏輯結構的模型
特點:
1>表達了數據的整體邏輯結構,它是系統用戶對整個應用項目涉及的數據的全面描述
2>從用戶需求的觀點出發,對數據建模
3>獨立於硬件和軟件,即概念模型不依賴於硬件設備和實現時的DBMS軟件
4>是數據庫設計人員與用戶進行交流的工具
邏輯模型:表達計算機實現觀點的DB全局邏輯結構的模型(主要有層次、網狀、關系模型等三種)
特點:
1>表達了DB的整體邏輯結構,但它是設計人員對整個應用項目數據庫的全面描述
2>是從數據庫實現的觀點出發,對數據進行建模
3>獨立於硬件,但是依賴於軟件
4>是數據庫設計人員與應用程序之間進行交流的工具
層次模型:用樹形(層次)結構表示實體類型及實體間聯系的數據模型
特點:
記錄之間的聯系通過指針來實現,查詢效率高
缺點:
1>只能表示1:N聯系,雖然系統有多種輔助手段實現M:N聯系但比較復雜
2>由於層次順序的嚴格和復雜,引起數據的查詢和更新操作很復雜,因此程序的編寫也比較復雜
網狀模型:用有向圖結構表示實體間聯系的數據模型稱為網狀模型
特點:
記錄之間的聯系通過指針實現,M:N聯系也容易實現(一個M:N聯系可拆成倆個1:N聯系),查詢效率較高
缺點:
數據結構復雜,編程復雜
關系模型:用二維表格表達實體集
特點:
1>關系模型與層次、網狀模型的最大區別使用關鍵碼而不是用指針導航的數據
2>數據結構簡單,用戶易懂,只需用簡單的查詢語句就可以對數據庫進行操作,而不涉及村存儲結構訪問技術等細節
三種邏輯模型的比較圖:
外部模型:表達用戶使用觀點的DB局部邏輯結構的模型
外部模型中的模式稱為“視圖”(View),視圖只是一個定義,視圖中的數據可以從邏輯模型的數據庫中得到
特點:
1>外部模型是邏輯模型的一個邏輯子集
2>外部模型獨立於硬件,依賴於軟件
3>外部模型反應了用戶使用數據庫的觀點
優點:
1>簡化了用戶的觀點,只針對具體用戶應用需要的數據而設計的,與該用戶無關的數據就不必放入,只關心並提取數據庫中有用的數據
2>有助於數據庫的安全性保護,用戶不能看的數據,不放入外部模型,提高了安全性
3>是對概念模型的支持
內部模型:表達DB物理結構的模型
內部模型又稱為物理模型,是數據庫最底層的抽象,它描述數據在磁盤或磁帶上面的存儲方式(文件的結構)、存取設備(外存的空間分配)和存取方法(主索引和輔助索引)
數據抽象的過程也是數據庫設計的過程,具體步驟如下:
1>根據用戶的要求,設計數據庫的概念模型,這是一個“綜合”的過程
2>根據轉換規則,把概念模型轉換成數據庫的邏輯模型,這時候一個“轉換”的過程
3>根據用戶的業務特點,設計不同的外部模型,給程序員使用,也就是應用程序使用的數據庫的外部模型,外部模型與邏輯模型之間的對應稱為映像
4>數據庫實現時,要根據邏輯模型設計其內部模型,內部模型與邏輯模型之間的對應性稱為映像
三層模式和兩級映像
三層模式體系結構
用戶(或應用程序)到數據庫之間,DB的數據結構有三個層次:外部模型、邏輯模型和內部模型
數據定義語言(DDL),數據操作語言(DML),數據控制語言(DCL)和事務控制語言(TCL)
1>外模式是用戶與數據庫系統的接口,是用戶用到的那部分數據的描述
2>邏輯模式是數據庫中全部數據的整體邏輯結構的描述
3>內模式是數據庫在物理存儲方面的描述,定義所有內部記錄類型,索引和文件的組織方式,以及數據控制方面的細節
三層模式體系結構具有以下特點:
1>用戶使用DB的數據操縱語言(DML)語句對數據庫進行操作,實際上是對外模式的外部記錄進行操作
2>邏輯模式必須不涉及到存儲存儲結構,訪問技術等細節
3>內模式並不涉及到物理設備的約束
兩級映像
由於三層模式的數據結構可能不一致,即記錄類型,字段類型的命名和組成可能不一樣,需要三層模式之間的映像來說明外部記錄,邏輯記錄和內部記錄之間的對應性
1>外模式/邏輯模式映像存在於外模式和邏輯模式之間,用於定義外模式和邏輯模式之間的對應性
2>邏輯模式/內模式映像存在於邏輯模式和內模式之間,用於定義邏輯模式和內模式之間的對應性
高度的數據獨立性
指應用程序和數據庫的數據結構之間相互獨立,不受影響,數據獨立性分為物理數據獨立性和邏輯數據獨立性兩種
物理數據獨立性
如果數據庫的內模式要修改,即數據庫的物理結構有所變化,那么只要對邏輯模式/內模式映像(對應性)作相應的修改,可以是邏輯模式盡可能保持不變
邏輯數據獨立性
如果數據庫的邏輯模式要修改,如增加記錄類型或增加數據項,那么只要對外模式/邏輯模式映像作相應的修改,可使外模式和應用程序盡可能保持不變