更新時(shí)間:2022年12月20日15時(shí)38分 來(lái)源:傳智教育 瀏覽次數(shù):
美國(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)(或稱為三層體系結(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)三種不同類型的模式,分別是外模式(External Schema)、概念模式(Conceptual Schema)和內(nèi)模式(Internal Schema)。在外模式與概念模式之間,以及概念模式與內(nèi)模式之間,還存在映像,即二級(jí)映像,具體如圖所示。
三級(jí)模式和二級(jí)映像
在圖1-2中,外模式面向應(yīng)用程序,描述用戶的數(shù)據(jù)視圖(View);內(nèi)模式(又稱為物理模式、存儲(chǔ)模式)面向物理上的數(shù)據(jù)庫(kù),描述數(shù)據(jù)在磁盤中如何存儲(chǔ);概念模式(又稱為模式、邏輯模式)面向數(shù)據(jù)庫(kù)設(shè)計(jì)人員,描述數(shù)據(jù)的整體邏輯結(jié)構(gòu)。
由于三級(jí)模式比較抽象,為了更好地理解,下面將計(jì)算機(jī)中常用的Excel電子表格類比成數(shù)據(jù)庫(kù),并假設(shè)有一個(gè)商城使用電子表格來(lái)保存商品信息。
(1)概念模式。概念模式類似于表格的列標(biāo)題,它描述了商品表中包含哪些信息,如圖所示。
商品信息表格
上圖中,表的橫向稱為行,縱向稱為列,第一行就是列標(biāo)題,用來(lái)描述該列的數(shù)據(jù)表示什么含義。實(shí)際上,概念模式在數(shù)據(jù)庫(kù)中描述的信息還有很多,如多張表之間的聯(lián)系、表中每一列的數(shù)據(jù)類型和長(zhǎng)度等,讀者在后面的學(xué)習(xí)中就會(huì)接觸到這些內(nèi)容。
(2)內(nèi)模式。在將Excel表格另存為文件時(shí),可以選擇保存的文件路徑、保存類型(如XLS、XLSX、CSV等格式)等,這些與存儲(chǔ)相關(guān)的描述信息相當(dāng)于內(nèi)模式。在數(shù)據(jù)庫(kù)中,內(nèi)模式描述數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式,如堆文件、索引文件、散列(Hash)文件等。
(3)外模式。在打開一個(gè)電子表格后,默認(rèn)會(huì)顯示表格中所有的數(shù)據(jù),這個(gè)表格稱為基本表。在將數(shù)據(jù)提供給其他用戶時(shí),出于權(quán)限、安全控制等因素的考慮,只允許用戶看到一部分?jǐn)?shù)據(jù),或不同用戶看到不同的數(shù)據(jù),這樣的需求就可以用視圖來(lái)實(shí)現(xiàn)。下圖是視圖和基本表的關(guān)系。
視圖與基本表
在上圖中,基本表中的數(shù)據(jù)是實(shí)際存儲(chǔ)在數(shù)據(jù)庫(kù)中的,而視圖中的數(shù)據(jù)是查詢或計(jì)算出來(lái)的。由此可見(jiàn),外模式可以為不同用戶的需求創(chuàng)建不同的視圖,且由于不同用戶的需求不同,數(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ù)存”和“銷量”拆分到另一張表中,此時(shí)概念模式發(fā)生了更改,但可以通過(guò)改變外模式/概念模式的映像,繼續(xù)為用戶提供原有的視圖,如圖所示。
視圖與基本表
由此可見(jiàn),邏輯獨(dú)立性能夠讓使用視圖的用戶感覺(jué)不到基本表的改變。其實(shí),邏輯獨(dú)立性帶來(lái)的好處還有很多,隨著后面的學(xué)習(xí),讀者會(huì)有更深入的體會(huì)。
(2)物理獨(dú)立性。概念模式/內(nèi)模式映像體現(xiàn)了物理獨(dú)立性。物理獨(dú)立性是指修改了內(nèi)模式,不影響其上層的概念模式和外模式。例如,在Excel中將.xls文件另存為.xlsx文件,雖然更換了文件格式,但是打開文件后顯示的表格內(nèi)容一般不會(huì)發(fā)生改變。在數(shù)據(jù)庫(kù)中,更換更先進(jìn)的存儲(chǔ)結(jié)構(gòu),或者創(chuàng)建索引以加快查詢速度,內(nèi)模式會(huì)發(fā)生改變。此時(shí),只需改變概念模式/內(nèi)模式映像,就不會(huì)影響到原有的概念模式。
另外,物理獨(dú)立性使得用戶不必了解數(shù)據(jù)庫(kù)內(nèi)部的存儲(chǔ)原理,即可正常使用數(shù)據(jù)庫(kù)來(lái)保存數(shù)據(jù)。數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)自動(dòng)將用戶的操作轉(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)和最終用戶(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é)為最終用戶設(shè)計(jì)和編寫程序,并進(jìn)行調(diào)試和安裝,以便最終用戶利用應(yīng)用程序來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取操作。
(3)最終用戶。一般為非計(jì)算機(jī)專業(yè)人員,通過(guò)應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)。例如,在12306網(wǎng)站訂票的用戶、在一些購(gòu)物網(wǎng)站購(gòu)買商品的用戶,他們可能對(duì)數(shù)據(jù)庫(kù)完全不了解,在使用瀏覽器、客戶端等應(yīng)用程序時(shí),間接地訪問(wèn)了數(shù)據(jù)庫(kù)。
北京校區(qū)