- MySQL數(shù)據(jù)庫應(yīng)用與維護項目式教程(微課版)
- 舒蕾 劉均主編
- 2142字
- 2023-11-16 18:21:53
任務(wù)1.1.2 熟悉數(shù)據(jù)庫的體系結(jié)構(gòu)
微課1-2

熟悉數(shù)據(jù)庫的體系結(jié)構(gòu)、了解數(shù)據(jù)庫設(shè)計的方法及步驟
數(shù)據(jù)庫的體系結(jié)構(gòu)可以從不同的角度以及層次進行理解。從DBMS的角度來看,數(shù)據(jù)庫采用的通常是三級模式結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)內(nèi)部的體系結(jié)構(gòu);從數(shù)據(jù)庫最終用戶的角度看,數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)通常有3種——集中式結(jié)構(gòu)、分布式結(jié)構(gòu)和客戶/服務(wù)器結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)外部的體系結(jié)構(gòu)。此處主要學(xué)習(xí)數(shù)據(jù)庫系統(tǒng)內(nèi)部的體系結(jié)構(gòu)。
1.數(shù)據(jù)庫的三級模式結(jié)構(gòu)
數(shù)據(jù)庫的三級模式結(jié)構(gòu)是數(shù)據(jù)庫領(lǐng)域公認的標準數(shù)據(jù)庫體系結(jié)構(gòu),它包括模式、外模式和內(nèi)模式。三級模式結(jié)構(gòu)可以有效地組織和管理數(shù)據(jù),并使數(shù)據(jù)庫的邏輯獨立性和物理獨立性得到提高。數(shù)據(jù)庫的三級模式結(jié)構(gòu)如圖1-5所示。

圖1-5 數(shù)據(jù)庫的三級模式結(jié)構(gòu)
(1)模式
模式又稱邏輯模式、概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。它在數(shù)據(jù)庫三級模式結(jié)構(gòu)中處于中間層,既與數(shù)據(jù)的物理存儲具體位置和硬件環(huán)境無關(guān),也不涉及具體的應(yīng)用程序、所使用的應(yīng)用開發(fā)工具,以及高級程序設(shè)計語言。
模式實際上是數(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ù)有關(guān)的安全性、完整性要求,以及數(shù)據(jù)之間的聯(lián)系。
描述、定義模式的語言是數(shù)據(jù)定義語言(Data Definition Language,DDL)。
(2)外模式
外模式又稱子模式或用戶模式,它是模式的一個子集,這個子集是被某些特定用戶所使用的。從這個角度看,外模式是面向用戶的。本質(zhì)上,外模式描述了應(yīng)用程序所使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征,是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)所看到的數(shù)據(jù)視圖。
外模式也是用戶與數(shù)據(jù)庫的接口,描述了被用戶所用到的那部分數(shù)據(jù)。因為不同的用戶在應(yīng)用需求、看待數(shù)據(jù)的方式、對數(shù)據(jù)保密性的要求等方面都具有差異,其對應(yīng)的外模式描述也有所不同。即使同一數(shù)據(jù)處于同一模式中,它們在外模式中的結(jié)構(gòu)、類型、長度、保密級別等方面也可能有差別。因此,一個數(shù)據(jù)庫可能具有多個外模式。有了外模式后,程序員只需關(guān)注與外模式所發(fā)生的聯(lián)系,而無須再關(guān)心模式,并且只需按外模式的結(jié)構(gòu)存儲數(shù)據(jù)和對數(shù)據(jù)進行操作。另外,某一用戶的多個應(yīng)用系統(tǒng)也可以使用同一個外模式,但一個外模式只能為一個應(yīng)用程序所使用。
在保證數(shù)據(jù)庫的安全性方面,外模式是強有力的措施。有了外模式后,每個用戶只能訪問其所對應(yīng)的外模式中的數(shù)據(jù),而不可訪問數(shù)據(jù)庫中的其余數(shù)據(jù)。
(3)內(nèi)模式
內(nèi)模式又稱存儲模式,對應(yīng)于物理級。它是全體數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式,是數(shù)據(jù)庫最底層的邏輯描述。它記錄了數(shù)據(jù)在存儲介質(zhì)上的存儲方式(如順序存儲、按照B樹結(jié)構(gòu)存儲或按哈希方法存儲)、索引的組織方式、數(shù)據(jù)是否壓縮存儲、數(shù)據(jù)是否加密、數(shù)據(jù)存儲記錄結(jié)構(gòu)的規(guī)定等,對應(yīng)著實際存儲在外存儲介質(zhì)上的數(shù)據(jù)庫。
一個數(shù)據(jù)庫系統(tǒng)中只有唯一的數(shù)據(jù)庫,因此作為定義、描述數(shù)據(jù)庫存儲結(jié)構(gòu)的內(nèi)模式也是唯一的。
2.數(shù)據(jù)庫的二級映像與數(shù)據(jù)庫獨立性
數(shù)據(jù)庫的三級模式是對數(shù)據(jù)的3個級別抽象。它把數(shù)據(jù)的具體組織(即物理模式)留給DBMS管理,使用戶無須關(guān)心數(shù)據(jù)在計算機內(nèi)部的存儲方式。同時,為了建立3個抽象級的聯(lián)系與轉(zhuǎn)換,使模式與外模式雖然并不存在于計算機的外存中,但也能通過轉(zhuǎn)換獲得其存在的實體,DBMS在這3個模式之間建立了二級映像:外模式/模式映像和模式/內(nèi)模式映像。
這種二級映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)具有較高的物理獨立性及邏輯獨立性,即在內(nèi)模式或模式發(fā)生改變的情況下,可以通過調(diào)整映射方式,使用戶的外模式不必發(fā)生改變。
(1)外模式/模式映像
模式描述了數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述了數(shù)據(jù)的局部邏輯結(jié)構(gòu)。同一個模式可以存在任意多個外模式。每一個外模式都對應(yīng)一個外模式/模式映像,它定義了該外模式與模式之間的對應(yīng)關(guān)系,外模式的描述中通常包含了這些映像的定義。
當模式發(fā)生改變(如在原有記錄類型之間增加新的聯(lián)系、在某些記錄中增加新的數(shù)據(jù)項等)時,數(shù)據(jù)庫管理員可以通過改變有關(guān)的外模式/模式映像,使外模式保持不變。應(yīng)用程序是根據(jù)數(shù)據(jù)的外模式編寫的,因此應(yīng)用程序也無須發(fā)生改變,從而保證了數(shù)據(jù)與應(yīng)用程序的邏輯獨立性,稱為數(shù)據(jù)的邏輯獨立性。
(2)模式/內(nèi)模式映像
數(shù)據(jù)庫中只有一個模式,也只有一個內(nèi)模式,所以一個數(shù)據(jù)庫只有唯一的模式/內(nèi)模式映像。它通常包含在模式的描述中,定義了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。當數(shù)據(jù)庫的存儲結(jié)構(gòu)發(fā)生改變時,數(shù)據(jù)庫管理員通過對模式/內(nèi)模式映像進行修改,可以使模式保持不變,從而使應(yīng)用程序也不用改變。這保證了數(shù)據(jù)與應(yīng)用程序的物理獨立性,稱為數(shù)據(jù)的物理獨立性。
數(shù)據(jù)庫的二級映像通過保證數(shù)據(jù)的物理獨立性和邏輯獨立性,確保了數(shù)據(jù)庫外模式的穩(wěn)定性,也從底層確保了應(yīng)用程序的穩(wěn)定性。除非應(yīng)用需求本身發(fā)生變化,否則無須對應(yīng)用程序進行修改。
數(shù)據(jù)庫的三級模式與二級映像實現(xiàn)了數(shù)據(jù)與應(yīng)用程序之間的獨立,使數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出來。另外,由于數(shù)據(jù)的存取由 DBMS 進行管理,因此用戶無須考慮存取路徑、方式等細節(jié),從而使應(yīng)用程序的編寫得到簡化,大大減輕了應(yīng)用程序維護人員的負擔。