在備課資料庫的時候,再一次遇到這三個概念,興奮起來了,這次務必要轉化為自己的話說出來,這種知識點,才算理解吧(今後學習也是這樣,學習的內容要用自己的話說出來為標準,才算有一定的理解)。
我們首先,談談模式的概念,模式為某種事物的標準形式或使人能夠照著做的標準樣式。這個詞用在資料庫中,它是由英文的Schema翻譯過來的。在資料庫管理系統中,其模式是指資料模式(data schema),是資料抽象的結果表示,如用關係模型抽象學生的基本資訊表示為:學生(學號,姓名,性別,出生年月,入校年月,專業編號),此表示即為一種資料模式。
在資料庫管理系統中,將資料按三層結構來抽象,這實質上是與資料庫的設計步驟密不可分的。
資料庫的設計
首先應分析現實要求,即做需求分析,需求分析的任務就是通過調查、訪談、討論,分析使用者的業務流程,從而得出使用者的需求,並用資料流程圖、資料字典將使用者需求描寫敘述出來;
其次,在需求分析的基礎上,進行資料庫概念設計,這樣的設計與詳細的資料庫管理系統無關,其任務是抽象出各使用者所要求的資料檢視(相應於外模式概念),最後綜合為全域性的資料檢視(相應於模式概念),用概念資料模型來抽象,可用ER模型或物件模型。
第三步,將用ER模型或物件模型表示的資料檢視,轉換為關係模式,並對所得關係模式進行優化處理,這就是所謂的資料庫邏輯設計(這一步仍然相應於外模式和模式);
第四步,在邏輯設計的基礎上,將所得的資料模式組織儲存到物理介質上,這就是資料庫的物理設計(這一步相應於內模式);
最後,就是資料庫的安全設計,即同意什麼樣的使用者訪問資料庫,以及合法使用者訪問資料庫中資料的許可權等問題。
美國家標準協會(American National Standard Institute,ANSI)的資料庫管理系統研究小組於1978年提出了標準化的建議,將資料庫結構分為3級:面向使用者或應用程式猿的使用者級、面向建立和維護資料庫人員的概念級、面向系統程式猿的物理級。使用者級相應外模式,概念級相應模式,物理級相應內模式,使不同級別的使用者對資料庫形成不同的檢視。所謂檢視,就是指觀察、認識和理解資料的範圍、角度和方法,是資料庫在使用者“眼中”的反映,非常顯然,不同層次(級別)使用者所“看到”的資料庫是不同樣的。
1. 模式
模式又稱概念模式或邏輯模式,相應於概念級。它是由資料庫設計者綜合全部使用者的資料,依照統一的觀點構造的全域性邏輯結構,是對資料庫中全部資料的邏輯結構和特徵的總體描寫敘述,是全部使用者的公共資料檢視(全域性檢視,資料庫的表,欄位的型別等等)。它是由資料庫管理系統提供的資料模式描寫敘述語言(Data Description Language,DDL)來描寫敘述、定義的,體現、反映了資料庫系統的總體觀。
2.外模式
外模式又稱子模式,相應於使用者級。它是某個或某幾個使用者所示資料庫的資料檢視,是與某一應用有關的資料的邏輯表示。外模式是從模式匯出的一個子集,包括模式中同意特定使用者使用的那部分資料。使用者能夠通過外模式描寫敘述語言來描寫敘述、定義相應於使用者的資料記錄(外模式),也能夠利用資料操縱語言(Data Manipulation Language,DML)對這些資料記錄進行處理。外模式反映了資料庫的使用者觀(檢視、查出資料的表)。
3.內模式
內模式又稱儲存模式,相應於物理級,它是資料庫中全體資料的內部表示或底層描寫敘述,它描寫敘述了資料在儲存介質上的儲存方式及物理結構(順序儲存、依照B樹結構儲存還是按hash方法儲存),相應著實際儲存在外儲存介質上的資料庫。內模式由內模式描寫敘述語言來描寫敘述、定義,它是資料庫的儲存觀。
在一個資料庫系統中,僅僅有唯一的資料庫,因而作為定義、描寫敘述資料庫儲存結構的內模式和定義、描寫敘述資料庫邏輯結構的模式,也是惟一的,但建立在資料庫系統之上的應用則是很廣泛、多樣的,所以相應的外模式不是惟一的,也不可能是惟一的。
4.三級模式間的對映(二級映像)
資料庫的三級模式是資料庫在三個級別 (層次)上的抽象,使使用者可以邏輯地、抽象地處理資料而不必關心資料在計算機中的物理表示和儲存。實際上,對於一個資料庫系統而言,物理級資料庫是客觀存在的,它是進行資料庫操作的基礎,概念級資料庫中只是是物理資料庫的一種邏輯的、抽象的描寫敘述(即模式),使用者級資料庫則是使用者與資料庫的介面,它是概念級資料庫的一個子集(外模式)。
結合access資料庫來形象理解
模式(或者說邏輯模式,概念模式)相當於access設計檢視裡對錶各個欄位名字、資料型別、欄位長度等屬性的設定,一個資料庫能夠有非常多表,這些表存在一定的關係,他們共同描寫敘述了該資料庫的模式(概念模式或邏輯模式);
外模式(External Schema,子模式或使用者模式),相當於access中各個視窗,報表以及資料表檢視等等,它的特點就是,每一個外模式相應於一個或多個表中的資料(不是多個模式,由於這些表總起來才幹描寫敘述一個模式),而我們能夠採用不同的形式顯示同樣的資料,能夠用視窗,報表,或資料表檢視。大家都知道,access中資料表檢視並不等於設計檢視,首先它不能改動資料,其次它顯示形式能夠不同於設計檢視(比如格式屬效能夠設定顯示不同於設計)。它是面向使用者的,而設計檢視則是面向資料庫管理員的。
內模式(Internal Schema)就比較好理解了,它能夠理解為access資料庫中各個資料在磁碟中的詳細組織形式,這個二級公共基礎知識第一張講得非常清楚了,相信大家都明確吧。
總結
使用者應用程式依據外模式進行資料操作(能夠結合三層的思想來理解這個內容)
通過外模式/模式對映,定義和建立某個外模式與模式間的相應關係,將外模式與模式聯絡起來,當模式發生改變時,僅僅要改變其對映,就能夠使外模式保持不變,相應的應用程式也可保持不變;(邏輯性)
通過模式/內模式對映,定義建立資料的邏輯結構(模式)與儲存結構(內模式)間的相應關係,當資料的儲存結構發生變化時,僅僅需改變模式/內模式對映,就能保持模式不變,因此應用程式也能夠保持不變。(物理性)
總的來看,說了這麼多,它都在基於分層的思想,解耦的觀念深入到各個方面,學習的聯絡無處不在,多多得與已有的知識關聯,學習起來不陌生,也較好的理解、效率也高,網越織越密。