21/7/22 讀書筆記
數據庫系統概論 概念模型
概念模型是將現實世界反映到機器世界的第一層抽象,其描述了解決問題所需的數據模型所應有的結構。概念模型一方面需要能夠有語義表達能力,直觀表達出應用程序中所需的語義概念,另一方面需要通俗簡單,方便人理解。
概念模型中的基本概念包括:
- 實體:我們稱客觀存在並可區分的事物是實體。一個實際存在的事物可以是實體,比如學生;一個抽象的概念也可以是實體,比如學生選課這一行為。實體的重點在於可區分與可歸類。
- 屬性:實體的某一特性。實體的本質就是屬性的集合。
- 碼:實體的唯一標識。
- 實體間的聯系:我們稱同一類型的實體組成一個實體集,實體間的聯系通常是指實體集間的聯系
舉個例子,我們為了設計一個學生成績管理系統,那么就涉及對“學生”進行建模,而“學生”這一概念既包含對需求有用的屬性(比如年級、成績),也具有與需求無關的屬性(比如性別),因此我們對“學生”的概念模型可以被描述為學生(學號,姓名,成績),而忽略無關屬性。
數據庫系統概論 數據模型
數據模型比概念模型更為接近機器世界,其中定義了一組概念,這組概念需要精確地描述系統的靜態特性、動態特性、完整性約束條件。相對應地,數據模型由數據結構、數據操作、數據的完整性約束條件構造。一般來說,不同的數據模型之間的本質區別在於數據結構。
- 數據結構描述了數據庫對象及其之間的聯系是如何進行構造的,其由所描述的對象類型的集合組成,是對系統靜態特性的描述。
- 數據操作描述了在數據結構上允許執行操作的集合。操作的目的具有統一性,比如查詢、更新;操作的行為具有異構性,比如在樹狀結構中查詢與在圖結構中查詢的具體行為不同。
- 數據的完整性約束條件規定了該數據模型下數據必須遵守的基本約束,這種約束既有數據模型本身的制約(比如關系模型對實體完整性和參照完整性的要求),也有具體情境下的制約(比如年齡不能小於0)。
以下初步地簡要介紹三種常用的數據模型
- 層次模型:利用樹作為數據結構;一個父結點與多個子女節點構造一對多的關系;較難模擬非層次的關系,比如多對多。
- 網狀模型:利用圖作為數據結構;每條邊支持一對多的關系,利用連接記錄實現多對多的關系;結構和使用較為復雜,不利於理解與拓展。
- 關系模型:采用二維表來描述數據,其具體的數據結構建立在嚴格的數學概念上;對實體完整性、參照完整性、用戶定義的完整性有約束性要求;存取過程對用戶透明。
- 關系在形式上表現為二維表,關系模型中操作對象和操作結果都是關系。
數據庫系統概論 三級模式與二級映像
數據庫系統即使類型多種多樣,但是在內部的系統結構上基本一致,均為三級模式結構:外模式、模式、內模式。
數據庫系統的核心在於模式(schema),其描述了數據庫的整體邏輯結構,以對應的數據模型為基礎描述了所有數據之間的關聯情況。模式與具體的物理存儲形式無關,與具體應用程序無關,可以視作中間層。一個數據庫系統只有一個模式。
外模式是模式對數據庫用戶(也就是應用程序)所展示的視圖,通常是模式的一個子集,並且根據應用程序需求改變了數據結構、類型、長度、保密級別。一個數據庫系統可以有多個外模式,一個外模式又能服務多個應用程序,一個應用程序原則上只使用一個外模式。外模式的意義在於將具有全局性的模式與多個用戶相隔離,每個或每組用戶獨享一種數據的局部視圖,而隱藏全局的模式。
內模式是模式在物理層面上具體的存儲形式,比如數據是否壓縮、數據是否能跨物理頁存儲、數據索引以什么方式組織等。一個數據庫系統只有一個內模式。內模式的意義在於將模式匯總的邏輯結構按一定物理策略進行組織,使得訪問與存取的時間與空間效率最大。
二級映像分別指外模式/模式映像和模式/內模式映像:
- 外模式/模式映像:一個模式對應多個外模式。當應用需求發生改變,只需要新增一個外模式,並建立相應的外模式/模式映像即可。當模式本身發生改變,則修改所有的外模式/模式映像,具體的應用程序不需要改變。該映像保證了數據的邏輯獨立性。
- 模式/內模式映像:一個模式只有一個內模式,因此模式/內模式映像是唯一的。當數據庫的物理存儲方式發生改變,只需要修改模式/內模式映像,就能保持模式不變。該映像保證了數據的物理獨立性。
特定的應用程序依賴於外模式所表現的數據結構,其定義在邏輯結構上,但是與數據庫內部全局的模式中的邏輯結構相獨立,更獨立於實際的物理存儲結構,從而保證了應用程序的穩定性不會因為數據庫的改變而被破壞。