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