更新時間:2022-06-09 來源:黑馬程序員 瀏覽量:
美國國家標準學會(American National Standards Institute,ANSI)所屬的標準計劃與需求委員會(Standards Planning and Requirements Committee,SPARC)在1971年公布的研究報告中提出了ANSI-SPARC體系結構,即三級模式結構(或稱為三層體系結構)。ANSI-SPARC最終沒有成為正式標準,但它仍然是理解數(shù)據庫管理系統(tǒng)的基礎。三級模式是指數(shù)據庫管理系統(tǒng)從三個層次來管理數(shù)據,分別是外部層(ExternalLevel)、概念層(Conceptual Level)和內部層(Internal Level)。這三個層次分別對應三種不同類型的模式,分別是外模式(External Schema)、概念模式(Conceptual Schema)和內模式(Internal Schema)。在外模式與概念模式之間,以及概念模式與內模式之間,還存在映像,即二級映像,具體如圖所示。
三級模式和二級映像
在圖1-2中,外模式面向應用程序,描述用戶的數(shù)據視圖(View);內模式(又稱為物理模式、存儲模式)面向物理上的數(shù)據庫,描述數(shù)據在磁盤中如何存儲;概念模式(又稱為模式、邏輯模式)面向數(shù)據庫設計人員,描述數(shù)據的整體邏輯結構。
由于三級模式比較抽象,為了更好地理解,下面將計算機中常用的Excel電子表格類比成數(shù)據庫,并假設有一個商城使用電子表格來保存商品信息。
(1)概念模式。概念模式類似于表格的列標題,它描述了商品表中包含哪些信息,如圖所示。
商品信息表格
上圖中,表的橫向稱為行,縱向稱為列,第一行就是列標題,用來描述該列的數(shù)據表示什么含義。實際上,概念模式在數(shù)據庫中描述的信息還有很多,如多張表之間的聯(lián)系、表中每一列的數(shù)據類型和長度等,讀者在后面的學習中就會接觸到這些內容。
(2)內模式。在將Excel表格另存為文件時,可以選擇保存的文件路徑、保存類型(如XLS、XLSX、CSV等格式)等,這些與存儲相關的描述信息相當于內模式。在數(shù)據庫中,內模式描述數(shù)據的物理結構和存儲方式,如堆文件、索引文件、散列(Hash)文件等。
(3)外模式。在打開一個電子表格后,默認會顯示表格中所有的數(shù)據,這個表格稱為基本表。在將數(shù)據提供給其他用戶時,出于權限、安全控制等因素的考慮,只允許用戶看到一部分數(shù)據,或不同用戶看到不同的數(shù)據,這樣的需求就可以用視圖來實現(xiàn)。下圖是視圖和基本表的關系。
視圖與基本表
在上圖中,基本表中的數(shù)據是實際存儲在數(shù)據庫中的,而視圖中的數(shù)據是查詢或計算出來的。由此可見,外模式可以為不同用戶的需求創(chuàng)建不同的視圖,且由于不同用戶的需求不同,數(shù)據的顯示方式也會多種多樣。因此,一個數(shù)據庫中會有多個外模式,而概念模式和內模式則只有一個。
通過前面的分析可知,三級模式是數(shù)據的三個抽象級別,每個級別關心的重點不同。為了使三級模式之間產生關聯(lián),數(shù)據庫管理系統(tǒng)在三級模式之間提供了二級映像功能。二級映像是一種規(guī)則,它規(guī)定了映像雙方如何進行轉換。通過二級映像,體現(xiàn)了邏輯和物理兩個層面的數(shù)據獨立性。具體解釋如下。
(1)邏輯獨立性。外模式/概念模式映像體現(xiàn)了邏輯獨立性。邏輯獨立性是指當修改了概念模式,不影響其上一層的外模式。例如,將圖1-4中基本表的“庫存”和“銷量”拆分到另一張表中,此時概念模式發(fā)生了更改,但可以通過改變外模式/概念模式的映像,繼續(xù)為用戶提供原有的視圖,如圖所示。
視圖與基本表
由此可見,邏輯獨立性能夠讓使用視圖的用戶感覺不到基本表的改變。其實,邏輯獨立性帶來的好處還有很多,隨著后面的學習,讀者會有更深入的體會。
(2)物理獨立性。概念模式/內模式映像體現(xiàn)了物理獨立性。物理獨立性是指修改了內模式,不影響其上層的概念模式和外模式。例如,在Excel中將.xls文件另存為.xlsx文件,雖然更換了文件格式,但是打開文件后顯示的表格內容一般不會發(fā)生改變。在數(shù)據庫中,更換更先進的存儲結構,或者創(chuàng)建索引以加快查詢速度,內模式會發(fā)生改變。此時,只需改變概念模式/內模式映像,就不會影響到原有的概念模式。
另外,物理獨立性使得用戶不必了解數(shù)據庫內部的存儲原理,即可正常使用數(shù)據庫來保存數(shù)據。數(shù)據庫管理系統(tǒng)會自動將用戶的操作轉換成物理級數(shù)據庫的操作。
多學一招:數(shù)據庫相關的人員
數(shù)據庫系統(tǒng)涉及一些人員,主要包括數(shù)據庫管理員(Database Administrator,DBA)、應MySQL數(shù)據庫原理、設計與應用用程序員(Application Programmer)和最終用戶(End User)。關于這些人員的具體解釋如下。
(1)數(shù)據庫管理員。負責管理和維護數(shù)據庫,參與數(shù)據庫的設計、測試和部署。數(shù)據庫管理員需要對數(shù)據庫系統(tǒng)非常精通,且應具有較高的技術水平和較深的資歷。
(2)應用程序員。負責為最終用戶設計和編寫程序,并進行調試和安裝,以便最終用戶利用應用程序來對數(shù)據庫進行存取操作。
(3)最終用戶。一般為非計算機專業(yè)人員,通過應用程序訪問數(shù)據庫。例如,在12306網站訂票的用戶、在一些購物網站購買商品的用戶,他們可能對數(shù)據庫完全不了解,在使用瀏覽器、客戶端等應用程序時,間接地訪問了數(shù)據庫。