官术网_书友最值得收藏!

任務(wù)1.1.2 熟悉數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)

微課1-2

熟悉數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)、了解數(shù)據(jù)庫(kù)設(shè)計(jì)的方法及步驟

數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)可以從不同的角度以及層次進(jìn)行理解。從DBMS的角度來(lái)看,數(shù)據(jù)庫(kù)采用的通常是三級(jí)模式結(jié)構(gòu),這是數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的體系結(jié)構(gòu);從數(shù)據(jù)庫(kù)最終用戶的角度看,數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)通常有3種——集中式結(jié)構(gòu)、分布式結(jié)構(gòu)和客戶/服務(wù)器結(jié)構(gòu),這是數(shù)據(jù)庫(kù)系統(tǒng)外部的體系結(jié)構(gòu)。此處主要學(xué)習(xí)數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的體系結(jié)構(gòu)。

1.數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)

數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)是數(shù)據(jù)庫(kù)領(lǐng)域公認(rèn)的標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)體系結(jié)構(gòu),它包括模式、外模式和內(nèi)模式。三級(jí)模式結(jié)構(gòu)可以有效地組織和管理數(shù)據(jù),并使數(shù)據(jù)庫(kù)的邏輯獨(dú)立性和物理獨(dú)立性得到提高。數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)如圖1-5所示。

圖1-5 數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)

(1)模式

模式又稱邏輯模式、概念模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。它在數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)中處于中間層,既與數(shù)據(jù)的物理存儲(chǔ)具體位置和硬件環(huán)境無(wú)關(guān),也不涉及具體的應(yīng)用程序、所使用的應(yīng)用開(kāi)發(fā)工具,以及高級(jí)程序設(shè)計(jì)語(yǔ)言。

模式實(shí)際上是數(shù)據(jù)庫(kù)數(shù)據(jù)在概念級(jí)上的視圖。每個(gè)數(shù)據(jù)庫(kù)都只存在一個(gè)模式,數(shù)據(jù)庫(kù)模式會(huì)將某一種數(shù)據(jù)模型作為基礎(chǔ),考慮所有用戶的需求,然后將這些需求有機(jī)地結(jié)合成一個(gè)邏輯整體。定義模式時(shí),不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu)(如數(shù)據(jù)記錄中的數(shù)據(jù)項(xiàng)構(gòu)成,數(shù)據(jù)項(xiàng)的名稱、類型、取值范圍等),還要定義與數(shù)據(jù)有關(guān)的安全性、完整性要求,以及數(shù)據(jù)之間的聯(lián)系。

描述、定義模式的語(yǔ)言是數(shù)據(jù)定義語(yǔ)言(Data Definition Language,DDL)。

(2)外模式

外模式又稱子模式或用戶模式,它是模式的一個(gè)子集,這個(gè)子集是被某些特定用戶所使用的。從這個(gè)角度看,外模式是面向用戶的。本質(zhì)上,外模式描述了應(yīng)用程序所使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征,是數(shù)據(jù)庫(kù)用戶(包括應(yīng)用程序員和最終用戶)所看到的數(shù)據(jù)視圖。

外模式也是用戶與數(shù)據(jù)庫(kù)的接口,描述了被用戶所用到的那部分?jǐn)?shù)據(jù)。因?yàn)椴煌挠脩粼趹?yīng)用需求、看待數(shù)據(jù)的方式、對(duì)數(shù)據(jù)保密性的要求等方面都具有差異,其對(duì)應(yīng)的外模式描述也有所不同。即使同一數(shù)據(jù)處于同一模式中,它們?cè)谕饽J街械慕Y(jié)構(gòu)、類型、長(zhǎng)度、保密級(jí)別等方面也可能有差別。因此,一個(gè)數(shù)據(jù)庫(kù)可能具有多個(gè)外模式。有了外模式后,程序員只需關(guān)注與外模式所發(fā)生的聯(lián)系,而無(wú)須再關(guān)心模式,并且只需按外模式的結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行操作。另外,某一用戶的多個(gè)應(yīng)用系統(tǒng)也可以使用同一個(gè)外模式,但一個(gè)外模式只能為一個(gè)應(yīng)用程序所使用。

在保證數(shù)據(jù)庫(kù)的安全性方面,外模式是強(qiáng)有力的措施。有了外模式后,每個(gè)用戶只能訪問(wèn)其所對(duì)應(yīng)的外模式中的數(shù)據(jù),而不可訪問(wèn)數(shù)據(jù)庫(kù)中的其余數(shù)據(jù)。

(3)內(nèi)模式

內(nèi)模式又稱存儲(chǔ)模式,對(duì)應(yīng)于物理級(jí)。它是全體數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式,是數(shù)據(jù)庫(kù)最底層的邏輯描述。它記錄了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的存儲(chǔ)方式(如順序存儲(chǔ)、按照B樹(shù)結(jié)構(gòu)存儲(chǔ)或按哈希方法存儲(chǔ))、索引的組織方式、數(shù)據(jù)是否壓縮存儲(chǔ)、數(shù)據(jù)是否加密、數(shù)據(jù)存儲(chǔ)記錄結(jié)構(gòu)的規(guī)定等,對(duì)應(yīng)著實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫(kù)。

一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中只有唯一的數(shù)據(jù)庫(kù),因此作為定義、描述數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)的內(nèi)模式也是唯一的。

2.數(shù)據(jù)庫(kù)的二級(jí)映像與數(shù)據(jù)庫(kù)獨(dú)立性

數(shù)據(jù)庫(kù)的三級(jí)模式是對(duì)數(shù)據(jù)的3個(gè)級(jí)別抽象。它把數(shù)據(jù)的具體組織(即物理模式)留給DBMS管理,使用戶無(wú)須關(guān)心數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的存儲(chǔ)方式。同時(shí),為了建立3個(gè)抽象級(jí)的聯(lián)系與轉(zhuǎn)換,使模式與外模式雖然并不存在于計(jì)算機(jī)的外存中,但也能通過(guò)轉(zhuǎn)換獲得其存在的實(shí)體,DBMS在這3個(gè)模式之間建立了二級(jí)映像:外模式/模式映像和模式/內(nèi)模式映像。

這種二級(jí)映像保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)具有較高的物理獨(dú)立性及邏輯獨(dú)立性,即在內(nèi)模式或模式發(fā)生改變的情況下,可以通過(guò)調(diào)整映射方式,使用戶的外模式不必發(fā)生改變。

(1)外模式/模式映像

模式描述了數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述了數(shù)據(jù)的局部邏輯結(jié)構(gòu)。同一個(gè)模式可以存在任意多個(gè)外模式。每一個(gè)外模式都對(duì)應(yīng)一個(gè)外模式/模式映像,它定義了該外模式與模式之間的對(duì)應(yīng)關(guān)系,外模式的描述中通常包含了這些映像的定義。

當(dāng)模式發(fā)生改變(如在原有記錄類型之間增加新的聯(lián)系、在某些記錄中增加新的數(shù)據(jù)項(xiàng)等)時(shí),數(shù)據(jù)庫(kù)管理員可以通過(guò)改變有關(guān)的外模式/模式映像,使外模式保持不變。應(yīng)用程序是根據(jù)數(shù)據(jù)的外模式編寫(xiě)的,因此應(yīng)用程序也無(wú)須發(fā)生改變,從而保證了數(shù)據(jù)與應(yīng)用程序的邏輯獨(dú)立性,稱為數(shù)據(jù)的邏輯獨(dú)立性。

(2)模式/內(nèi)模式映像

數(shù)據(jù)庫(kù)中只有一個(gè)模式,也只有一個(gè)內(nèi)模式,所以一個(gè)數(shù)據(jù)庫(kù)只有唯一的模式/內(nèi)模式映像。它通常包含在模式的描述中,定義了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)發(fā)生改變時(shí),數(shù)據(jù)庫(kù)管理員通過(guò)對(duì)模式/內(nèi)模式映像進(jìn)行修改,可以使模式保持不變,從而使應(yīng)用程序也不用改變。這保證了數(shù)據(jù)與應(yīng)用程序的物理獨(dú)立性,稱為數(shù)據(jù)的物理獨(dú)立性。

數(shù)據(jù)庫(kù)的二級(jí)映像通過(guò)保證數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性,確保了數(shù)據(jù)庫(kù)外模式的穩(wěn)定性,也從底層確保了應(yīng)用程序的穩(wěn)定性。除非應(yīng)用需求本身發(fā)生變化,否則無(wú)須對(duì)應(yīng)用程序進(jìn)行修改。

數(shù)據(jù)庫(kù)的三級(jí)模式與二級(jí)映像實(shí)現(xiàn)了數(shù)據(jù)與應(yīng)用程序之間的獨(dú)立,使數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出來(lái)。另外,由于數(shù)據(jù)的存取由 DBMS 進(jìn)行管理,因此用戶無(wú)須考慮存取路徑、方式等細(xì)節(jié),從而使應(yīng)用程序的編寫(xiě)得到簡(jiǎn)化,大大減輕了應(yīng)用程序維護(hù)人員的負(fù)擔(dān)。

主站蜘蛛池模板: 秭归县| 宜川县| 新田县| 大荔县| 拉孜县| 巴南区| 清河县| 汉寿县| 长白| 平原县| 阳原县| 安顺市| 建平县| 彭州市| 昌平区| 威海市| 普兰县| 怀安县| 常熟市| 尤溪县| 象山县| 万载县| 江山市| 故城县| 凤庆县| 来凤县| 兴山县| 平潭县| 巴彦淖尔市| 沂水县| 磐安县| 鸡西市| 康平县| 牟定县| 开平市| 嘉善县| 栾城县| 长宁县| 鞍山市| 通海县| 兴和县|