《系統(tǒng)架構(gòu) 設(shè)計(jì)師教程(第4版) 》希賽教育 編著
數(shù)據(jù)庫(kù)模式與范式是數(shù)據(jù)庫(kù)系統(tǒng)中的兩個(gè)重要概念,是進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)。
3.2.1 數(shù)據(jù)庫(kù)的結(jié)構(gòu)與模式
數(shù)據(jù)庫(kù)技術(shù)中采用分級(jí)的方法將數(shù)據(jù)庫(kù)的結(jié)構(gòu)劃分為多個(gè)層次。最著名的是美國(guó)ANSI/ SPARC數(shù)據(jù)庫(kù)系統(tǒng)研究組1975年提出的三級(jí)劃分法,如圖3-1所示。

1.三級(jí)抽象
數(shù)據(jù)庫(kù)系統(tǒng)劃分為三個(gè)抽象級(jí):用戶級(jí)、概念級(jí)、物理級(jí)。
(1)用戶級(jí)數(shù)據(jù)庫(kù)。用戶級(jí)數(shù)據(jù)庫(kù)對(duì)應(yīng)于外模式,是最接近用戶的一級(jí)數(shù)據(jù)庫(kù),是用戶可以看到和使用的數(shù)據(jù)庫(kù),又稱用戶視圖。用戶級(jí)數(shù)據(jù)庫(kù)主要由外部記錄組成,不同的用戶視圖可以互相重疊,用戶的所有操作都是針對(duì)用戶視圖進(jìn)行的。
(2)概念級(jí)數(shù)據(jù)庫(kù)。概念級(jí)數(shù)據(jù)庫(kù)對(duì)應(yīng)于概念模式,介于用戶級(jí)和物理級(jí)之間,是所有用戶視圖的最小并集,是數(shù)據(jù)庫(kù)管理員可看到和使用的數(shù)據(jù)庫(kù),又稱 DBA(DataBase Administrator,數(shù)據(jù)庫(kù)管理員)視圖。概念級(jí)數(shù)據(jù)庫(kù)由概念記錄組成,一個(gè)數(shù)據(jù)庫(kù)可有多個(gè)不同的用戶視圖,每個(gè)用戶視圖由數(shù)據(jù)庫(kù)某一部分的抽象表示所組成。一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)只存在一個(gè) DBA 視圖,它把數(shù)據(jù)庫(kù)作為一個(gè)整體的抽象表示。概念級(jí)模式把用戶視圖有機(jī)地結(jié)合成一個(gè)整體,綜合平衡考慮所有用戶要求,實(shí)現(xiàn)數(shù)據(jù)的一致性、最大限度降低數(shù)據(jù)冗余、準(zhǔn)確地反映數(shù)據(jù)間的聯(lián)系。
(3)物理級(jí)數(shù)據(jù)庫(kù)。物理級(jí)數(shù)據(jù)庫(kù)對(duì)應(yīng)于內(nèi)模式,是數(shù)據(jù)庫(kù)的低層表示,它描述數(shù)據(jù)的實(shí)際存儲(chǔ)組織,是最接近于物理存儲(chǔ)的級(jí),又稱內(nèi)部視圖。物理級(jí)數(shù)據(jù)庫(kù)由內(nèi)部記錄組成,物理級(jí)數(shù)據(jù)庫(kù)并不是真正的物理存儲(chǔ),而是最接近于物理存儲(chǔ)的級(jí)。
2.三級(jí)模式
數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式為外模式、概念模式、內(nèi)模式。
(1)概念模式。概念模式(模式、邏輯模式)用以描述整個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),描述現(xiàn)實(shí)世界中的實(shí)體及其性質(zhì)與聯(lián)系,定義記錄、數(shù)據(jù)項(xiàng)、數(shù)據(jù)的完整性約束條件及記錄之間的聯(lián)系,是數(shù)據(jù)項(xiàng)值的框架。
數(shù)據(jù)庫(kù)系統(tǒng)概念模式通常還包含有訪問控制、保密定義、完整性檢查等方面的內(nèi)容,以及概念/物理之間的映射。
概念模式是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)概念模式。
外模式是數(shù)據(jù)庫(kù)用戶(包括程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式。一個(gè)應(yīng)用程序只能使用一個(gè)外模式。
(2)外模式。外模式(子模式、用戶模式)用以描述用戶看到或使用的那部分?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu),用戶根據(jù)外模式用數(shù)據(jù)操作語(yǔ)句或應(yīng)用程序去操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。外模式主要描述組成用戶視圖的各個(gè)記錄的組成、相互關(guān)系、數(shù)據(jù)項(xiàng)的特征、數(shù)據(jù)的安全性和完整性約束條件。
(3)內(nèi)模式。內(nèi)模式是整個(gè)數(shù)據(jù)庫(kù)的最低層表示,不同于物理層,它假設(shè)外存是一個(gè)無(wú)限的線性地址空間。內(nèi)模式定義的是存儲(chǔ)記錄的類型、存儲(chǔ)域的表示以及存儲(chǔ)記錄的物理順序,指引元、索引和存儲(chǔ)路徑等數(shù)據(jù)的存儲(chǔ)組織。
內(nèi)模式是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式。
內(nèi)模式、模式和外模式之間的關(guān)系如下:
(1)模式是數(shù)據(jù)庫(kù)的中心與關(guān)鍵;
(2)內(nèi)模式依賴于模式,獨(dú)立于外模式和存儲(chǔ)設(shè)備;
(3)外模式面向具體的應(yīng)用,獨(dú)立于內(nèi)模式和存儲(chǔ)設(shè)備;
(4)應(yīng)用程序依賴于外模式,獨(dú)立于模式和內(nèi)模式。
3.兩級(jí)獨(dú)立性
數(shù)據(jù)庫(kù)系統(tǒng)兩級(jí)獨(dú)立性是指物理獨(dú)立性和邏輯獨(dú)立性。三個(gè)抽象級(jí)間通過兩級(jí)映射(外模式—模式映射,模式—內(nèi)模式映射)進(jìn)行相互轉(zhuǎn)換,使得數(shù)據(jù)庫(kù)的三級(jí)形成一個(gè)統(tǒng)一的整體。
(1)物理獨(dú)立性。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)在磁盤上的數(shù)據(jù)庫(kù)中的數(shù)據(jù)是相互獨(dú)立的。當(dāng)數(shù)據(jù)的物理存儲(chǔ)改變時(shí),應(yīng)用程序不需要改變。
物理獨(dú)立性存在于概念模式和內(nèi)模式之間的映射轉(zhuǎn)換,說明物理組織發(fā)生變化時(shí)應(yīng)用程序的獨(dú)立程度。
(2)邏輯獨(dú)立性。邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫(kù)中的邏輯結(jié)構(gòu)是相互獨(dú)立的。當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),應(yīng)用程序不需要改變。
邏輯獨(dú)立性存在于外模式和概念模式之間的映射轉(zhuǎn)換,說明概念模式發(fā)生變化時(shí)應(yīng)用程序的獨(dú)立程度。希賽教育專家提示:邏輯獨(dú)立性比物理獨(dú)立性更難實(shí)現(xiàn)