1. 程式人生 > >【資料庫】三級模式、二級對映

【資料庫】三級模式、二級對映

# 三級模式和二級對映 在資料模型中有**“型”**(Type, T)和**“值”**的概念。 - **型:**是指對某一類資料的結構和屬性的說明 > **類比:**類 - **值:**是型的一個具體賦值。 > **類比:**物件 **模式和例項:** - **模式:**是資料庫中全體資料的邏輯結構和特徵的描述,它僅僅涉及到型的描述,不涉及到具體的值。 - **例項:**模式的一個具體值稱為一個例項。同一個模式可以有很多例項。 > **對比:** **模式**是**相對穩定**的,而**例項**是**相對變動**的,因為資料庫中的資料是在不斷更新。 **模式**反映的是資料的結構及其聯絡,而**例項**反映的是資料庫某一時刻的狀態。 ## 三級模式結構 > 資料庫領域公認的標準結構是三級模式結構,它包括模式、外模式和內模式,有效地組織、管理資料,提高了資料庫的邏輯獨立性和物理獨立性。 ![](https://img2018.cnblogs.com/blog/1542615/202002/1542615-20200225150847562-2128831067.png) - **模式:**又稱**概念模式**或**邏輯模式**,對應於**概念級**。 它是由資料庫設計者綜合所有使用者的資料,按照統一的觀點構造的**全域性邏輯結構**,是對資料庫中全部資料的邏輯結構和特徵的總體描述,是**所有使用者的公共資料檢視**(**全域性檢視**)。 它是由資料庫管理系統(DBMS)提供的資料模式描述語言(Data Description Language, **DDL**)來描述和定義的, 體現和反映了資料庫系統(DBS)的**整體觀**。 > **補充:** **資料模式定義語言**(Data Definition Language, **DDL**):是用於描述資料庫中要儲存的現實世界實體的語言。 **DDL**主要是用在定義或改變表的結構,資料型別,表之間的連結和約束等初始化工作上。 >> **例如:**其實就是我們在建立表的時候用到的一些sql,比如說,CREATE、ALTER、DROP等。 - **外模式:**又稱**子模式**或**使用者模式**,對應於**使用者級**。 它是某個或某幾個使用者所看到的資料庫的資料檢視,是與某一應用有關的資料的邏輯表示。 它是從模式匯出的一個子集,包含模式中允許特定使用者使用的那部分資料。 使用者可以通過外模式描述語言來描述和定義對應於**使用者的資料記錄(外模式)**,也可以利用資料操縱語言(Data Manipulatioin Language, **DML**)對這些資料記錄進行描述和定義。 外模式反映了資料庫的**使用者觀**。 > **補充:** **資料操縱語言**(Data Manipulation Language, **DML**),使用者通過它可以實現對資料庫的基本操作。 **DML**主要用來對資料庫的資料進行一些操作。 >> **例如:**其實就是我們最經常用到的 SELECT、UPDATE、INSERT、DELETE。 - **內模式:**又稱**儲存模式**,對應於**物理級**。 它是資料庫中全體資料的內部表示或底層描述,是資料庫最低一級的邏輯描述,它描述了資料在儲存介質上的**儲存方式**和**物理結構**,對應著實際儲存在外儲存介質上的資料庫。 它是由內模式描述語言來描述和定義, 它是資料庫的**儲存觀**。 > **注意:** 在**一個數據庫系統**中,只有**唯一的資料庫**, 因而作為定義、描述資料庫儲存結構的**內模式** 和 定義、描述資料庫邏輯結構的**模式**,也是**唯一**的, 但是建立在資料庫系統之上的應用則是非常廣泛多樣的,所以對應的**外模式****不是唯一**的,也不可能是唯一的。 ## 二級映像功能 **二級映像:**保證了**邏輯資料獨立性**和**物理資料獨立性**。 > 這裡的**對映:**是指兩個模式之間相互轉換。 - **外模式——模式對映:**(**邏輯資料獨立性**) 使用者應用程式根據外模式進行資料操作,通過**外模式——模式對映**,定義和建立某個外模式與模式間的對應關係,將外模式與模式聯絡起來, 當模式發生改變時,只要改變其對映,就可以使外模式保持不變,對應的應用程式也可保持不變。 - **模式——內模式對映:**(**物理資料獨立性**) 通過**模式——內模式對映**,定義建立資料的**邏輯結構(模式)**與**儲存結構(內模式)**間的對應關係, 當資料儲存結構發生變化時,只需改變模式——內模式對映,就能保持模式不變,因此應用程式也可以保持