數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)由外模式、模式和內(nèi)模式三級構(gòu)成。模式也稱邏輯模式,是所有用戶的公共數(shù)據(jù)視圖;外模式也稱用戶模式,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示;內(nèi)模式也稱存儲模式是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的組織方式。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu):
數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級構(gòu)成,如圖:
①模式(schema):
模式也稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。它是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,既不涉及數(shù)據(jù)的物理存儲細節(jié),右與具體的應(yīng)用程序、所使用的應(yīng)用開發(fā)工具及高級程序設(shè)計語言無關(guān)。
模式實際上是數(shù)據(jù)庫數(shù)據(jù)在邏輯上的視圖。一個數(shù)據(jù)庫只有一個模式。數(shù)據(jù)庫模式以某一種數(shù)據(jù)模型為基礎(chǔ),同意綜合地考慮了所有用戶的需求,并將這些需求有機地結(jié)合成一個邏輯整體。定義模式時不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項構(gòu)成,數(shù)據(jù)項的名字、類型、取值范圍等;而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。
數(shù)據(jù)庫管理系統(tǒng)提供模式數(shù)據(jù)定義語言(模式DDL)來嚴格地定義模式。
②外模式(external schema):
外模式也稱子模式(subschema)或用戶模式,它是數(shù)據(jù)庫用固話(包括應(yīng)用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。
外模式通常是模式的子集。一個數(shù)據(jù)庫可以有多個外模式。由于它是各個用戶的數(shù)據(jù)視圖,如果不同的用戶在應(yīng)用需求、看待數(shù)據(jù)的方式、對數(shù)據(jù)保密的要求等方面存在差異,則其外模式描述就是不同的。即使對模式中同一數(shù)據(jù),在外模式的結(jié)構(gòu)、類型、長度、保密等級等都可以不同。另一方面,同一外模式也可以為某一用戶的多個應(yīng)用系統(tǒng)所使用,但一個應(yīng)用程序只能使用一個外模式。
外模式是保證數(shù)據(jù)庫安全性的一個有力措施。每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中的其余數(shù)據(jù)是不可見的。
③內(nèi)模式(internal schema):
內(nèi)模式也稱存儲模式(storage schema),一個數(shù)據(jù)庫只有一個內(nèi)模式。它是數(shù)據(jù)物理存儲和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的組織方式。例如,記錄的存儲方式是堆存儲還是按照某個(些)屬性值的升(降)序存儲,或按照屬性值聚簇(cluster)存儲;索引按照什么方式組織,是B+樹索引還是hash索引;數(shù)據(jù)是否壓縮存儲,是否加密;數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定,如定長結(jié)構(gòu)還是變長結(jié)構(gòu),一個記錄不能跨物理頁存儲;等等。
(推薦教程:mysql視頻教程)