全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

MySQL中三級(jí)模式和二級(jí)映像指的是什么?

更新時(shí)間:2022-06-09 來(lái)源:黑馬程序員 瀏覽量:

美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(American National Standards Institute,ANSI)所屬的標(biāo)準(zhǔn)計(jì)劃與需求委員會(huì)(Standards Planning and Requirements Committee,SPARC)在1971年公布的研究報(bào)告中提出了ANSI-SPARC體系結(jié)構(gòu),即三級(jí)模式結(jié)構(gòu)(或稱(chēng)為三層體系結(jié)構(gòu))。ANSI-SPARC最終沒(méi)有成為正式標(biāo)準(zhǔn),但它仍然是理解數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)。三級(jí)模式是指數(shù)據(jù)庫(kù)管理系統(tǒng)從三個(gè)層次來(lái)管理數(shù)據(jù),分別是外部層(ExternalLevel)、概念層(Conceptual Level)和內(nèi)部層(Internal Level)。這三個(gè)層次分別對(duì)應(yīng)三種不同類(lèi)型的模式,分別是外模式(External Schema)、概念模式(Conceptual Schema)和內(nèi)模式(Internal Schema)。在外模式與概念模式之間,以及概念模式與內(nèi)模式之間,還存在映像,即二級(jí)映像,具體如圖所示。

1654684980985_333333333333.jpg

三級(jí)模式和二級(jí)映像

在圖1-2中,外模式面向應(yīng)用程序,描述用戶(hù)的數(shù)據(jù)視圖(View);內(nèi)模式(又稱(chēng)為物理模式、存儲(chǔ)模式)面向物理上的數(shù)據(jù)庫(kù),描述數(shù)據(jù)在磁盤(pán)中如何存儲(chǔ);概念模式(又稱(chēng)為模式、邏輯模式)面向數(shù)據(jù)庫(kù)設(shè)計(jì)人員,描述數(shù)據(jù)的整體邏輯結(jié)構(gòu)。
由于三級(jí)模式比較抽象,為了更好地理解,下面將計(jì)算機(jī)中常用的Excel電子表格類(lèi)比成數(shù)據(jù)庫(kù),并假設(shè)有一個(gè)商城使用電子表格來(lái)保存商品信息。

(1)概念模式。概念模式類(lèi)似于表格的列標(biāo)題,它描述了商品表中包含哪些信息,如圖所示。

1654739272236_44.jpg

商品信息表格

上圖中,表的橫向稱(chēng)為行,縱向稱(chēng)為列,第一行就是列標(biāo)題,用來(lái)描述該列的數(shù)據(jù)表示什么含義。實(shí)際上,概念模式在數(shù)據(jù)庫(kù)中描述的信息還有很多,如多張表之間的聯(lián)系、表中每一列的數(shù)據(jù)類(lèi)型和長(zhǎng)度等,讀者在后面的學(xué)習(xí)中就會(huì)接觸到這些內(nèi)容。

(2)內(nèi)模式。在將Excel表格另存為文件時(shí),可以選擇保存的文件路徑、保存類(lèi)型(如XLS、XLSX、CSV等格式)等,這些與存儲(chǔ)相關(guān)的描述信息相當(dāng)于內(nèi)模式。在數(shù)據(jù)庫(kù)中,內(nèi)模式描述數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式,如堆文件、索引文件、散列(Hash)文件等。

(3)外模式。在打開(kāi)一個(gè)電子表格后,默認(rèn)會(huì)顯示表格中所有的數(shù)據(jù),這個(gè)表格稱(chēng)為基本表。在將數(shù)據(jù)提供給其他用戶(hù)時(shí),出于權(quán)限、安全控制等因素的考慮,只允許用戶(hù)看到一部分?jǐn)?shù)據(jù),或不同用戶(hù)看到不同的數(shù)據(jù),這樣的需求就可以用視圖來(lái)實(shí)現(xiàn)。下圖是視圖和基本表的關(guān)系。

1654755694276_視圖和基本表的關(guān)系.jpg

視圖與基本表

在上圖中,基本表中的數(shù)據(jù)是實(shí)際存儲(chǔ)在數(shù)據(jù)庫(kù)中的,而視圖中的數(shù)據(jù)是查詢(xún)或計(jì)算出來(lái)的。由此可見(jiàn),外模式可以為不同用戶(hù)的需求創(chuàng)建不同的視圖,且由于不同用戶(hù)的需求不同,數(shù)據(jù)的顯示方式也會(huì)多種多樣。因此,一個(gè)數(shù)據(jù)庫(kù)中會(huì)有多個(gè)外模式,而概念模式和內(nèi)模式則只有一個(gè)。

通過(guò)前面的分析可知,三級(jí)模式是數(shù)據(jù)的三個(gè)抽象級(jí)別,每個(gè)級(jí)別關(guān)心的重點(diǎn)不同。為了使三級(jí)模式之間產(chǎn)生關(guān)聯(lián),數(shù)據(jù)庫(kù)管理系統(tǒng)在三級(jí)模式之間提供了二級(jí)映像功能。二級(jí)映像是一種規(guī)則,它規(guī)定了映像雙方如何進(jìn)行轉(zhuǎn)換。通過(guò)二級(jí)映像,體現(xiàn)了邏輯和物理兩個(gè)層面的數(shù)據(jù)獨(dú)立性。具體解釋如下。

(1)邏輯獨(dú)立性。外模式/概念模式映像體現(xiàn)了邏輯獨(dú)立性。邏輯獨(dú)立性是指當(dāng)修改了概念模式,不影響其上一層的外模式。例如,將圖1-4中基本表的“庫(kù)存”和“銷(xiāo)量”拆分到另一張表中,此時(shí)概念模式發(fā)生了更改,但可以通過(guò)改變外模式/概念模式的映像,繼續(xù)為用戶(hù)提供原有的視圖,如圖所示。

1654757868876_視圖與基本表.jpg

視圖與基本表

由此可見(jiàn),邏輯獨(dú)立性能夠讓使用視圖的用戶(hù)感覺(jué)不到基本表的改變。其實(shí),邏輯獨(dú)立性帶來(lái)的好處還有很多,隨著后面的學(xué)習(xí),讀者會(huì)有更深入的體會(huì)。

(2)物理獨(dú)立性。概念模式/內(nèi)模式映像體現(xiàn)了物理獨(dú)立性。物理獨(dú)立性是指修改了內(nèi)模式,不影響其上層的概念模式和外模式。例如,在Excel中將.xls文件另存為.xlsx文件,雖然更換了文件格式,但是打開(kāi)文件后顯示的表格內(nèi)容一般不會(huì)發(fā)生改變。在數(shù)據(jù)庫(kù)中,更換更先進(jìn)的存儲(chǔ)結(jié)構(gòu),或者創(chuàng)建索引以加快查詢(xún)速度,內(nèi)模式會(huì)發(fā)生改變。此時(shí),只需改變概念模式/內(nèi)模式映像,就不會(huì)影響到原有的概念模式。

另外,物理獨(dú)立性使得用戶(hù)不必了解數(shù)據(jù)庫(kù)內(nèi)部的存儲(chǔ)原理,即可正常使用數(shù)據(jù)庫(kù)來(lái)保存數(shù)據(jù)。數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)自動(dòng)將用戶(hù)的操作轉(zhuǎn)換成物理級(jí)數(shù)據(jù)庫(kù)的操作。

多學(xué)一招:數(shù)據(jù)庫(kù)相關(guān)的人員

數(shù)據(jù)庫(kù)系統(tǒng)涉及一些人員,主要包括數(shù)據(jù)庫(kù)管理員(Database Administrator,DBA)、應(yīng)MySQL數(shù)據(jù)庫(kù)原理、設(shè)計(jì)與應(yīng)用用程序員(Application Programmer)和最終用戶(hù)(End User)。關(guān)于這些人員的具體解釋如下。

(1)數(shù)據(jù)庫(kù)管理員。負(fù)責(zé)管理和維護(hù)數(shù)據(jù)庫(kù),參與數(shù)據(jù)庫(kù)的設(shè)計(jì)、測(cè)試和部署。數(shù)據(jù)庫(kù)管理員需要對(duì)數(shù)據(jù)庫(kù)系統(tǒng)非常精通,且應(yīng)具有較高的技術(shù)水平和較深的資歷。

(2)應(yīng)用程序員。負(fù)責(zé)為最終用戶(hù)設(shè)計(jì)和編寫(xiě)程序,并進(jìn)行調(diào)試和安裝,以便最終用戶(hù)利用應(yīng)用程序來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取操作。

(3)最終用戶(hù)。一般為非計(jì)算機(jī)專(zhuān)業(yè)人員,通過(guò)應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)。例如,在12306網(wǎng)站訂票的用戶(hù)、在一些購(gòu)物網(wǎng)站購(gòu)買(mǎi)商品的用戶(hù),他們可能對(duì)數(shù)據(jù)庫(kù)完全不了解,在使用瀏覽器、客戶(hù)端等應(yīng)用程序時(shí),間接地訪問(wèn)了數(shù)據(jù)庫(kù)。

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!