- 數據庫原理、應用與開發
- 洪欣編著
- 1693字
- 2018-12-27 18:41:02
1.4 數據庫系統的三級模式結構
從數據庫管理系統角度看,數據庫系統通常采用三級模式結構。從數據庫最終用戶角度看,數據庫系統的結構分為集中式結構、分布式結構、客戶/服務器結構和并行結構。
數據庫系統的三級模式結構是指數據庫系統是由外模式、模式和內模式三級構成的,如圖1-10所示。用戶級對應外模式,概念級對應模式(概念模式和邏輯模式),物理級對應內模式。在一個數據庫系統中,只有唯一的數據庫,因而作為定義、描述數據庫存儲結構的內模式和定義、描述數據庫邏輯結構的模式,也是唯一的,但建立在數據庫系統之上的應用則是非常廣泛、多樣的,所以對應的外模式不是唯一的,也不可能是唯一的。

圖1-10 數據庫系統的三級模式結構
(1)模式
模式又稱概念模式或邏輯模式,對應于概念級。它是由數據庫設計者綜合所有用戶的數據,按照統一的觀點構造的全局邏輯結構,是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖(全局視圖)。它是由數據庫管理系統提供的數據模式描述語言(Data Description Language,DDL)來描述、定義的,反映了數據庫系統的整體觀。
(2)外模式
外模式又稱子模式,對應于用戶級。它是某個或某幾個用戶所看到的數據庫的數據視圖,是與某一應用有關的數據的邏輯表示。外模式是從模式導出的一個子集,包含模式中允許特定用戶使用的那部分數據。用戶可以通過外模式描述語言來描述、定義對應于用戶的數據記錄(外模式),也可以利用數據操縱語言(Data Manipulation Language,DML)對這些數據記錄進行操縱。外模式反映了數據庫的用戶觀。
(3)內模式
內模式又稱存儲模式,對應于物理級,是數據庫中全體數據的內部表示或底層描述,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式和物理結構,對應著實際存儲在外存儲介質上的數據庫。內模式由內模式描述語言來描述、定義,反映了數據庫的存儲觀。
(4)三級模式間的映射
數據庫的三級模式是數據庫在3個級別(層次)上的抽象,使用戶能夠邏輯地、抽象地處理數據而不必關心數據在計算機中的物理表示和存儲。實際上,對于一個數據庫系統而言,已有的物理級數據庫是客觀存在的,它是進行數據庫操作的基礎(內模式),概念級數據庫中不過是物理數據庫的一種邏輯的、抽象的描述(即模式),用戶級數據庫則是用戶與數據庫的接口,它是概念級數據庫的一個子集(外模式)。
不同級別的用戶對數據庫形成不同的視圖。所謂視圖,就是指觀察、認識和理解數據的范圍、角度和方法,是數據庫在用戶“眼中”的反映。很顯然,不同層次(級別)的用戶“看到”的數據庫是不同的,圖1-11所示為一個三級模式映射的例子。用戶應用程序“教務管理系統”根據外模式“學生視圖”和“教師視圖”進行數據操作,通過“外模式/模式映射”定義和建立某個外模式與模式間的對應關系,將外模式“學生視圖”“教師視圖”與模式“學生表”“教師表”聯系起來,當模式發生改變時,只要改變其映射,就可以使外模式保持不變,對應的應用程序也可以保持不變。另一方面,可通過“模式/內模式映射”定義建立數據的邏輯結構(模式)“學生表”“成績表”與存儲結構(內模式)“學生表”“成績表”間的對應關系。當數據的存儲結構發生變化時,只需改變“模式/內模式映射”,就能保持模式不變,因此應用程序也可以保持不變。

圖1-11 教務系統的三級模式結構
例如,圖1-12所示的教務系統的三級模式實例是圖1-11的一個例子。其中,圖1-12(c)“學生文件”、“課程文件”、“選課文件”是顯示內模式表示數據的底層結構,即物理結構;圖1-12(b)中顯示的模式“學生關系”、“選課關系”、“課程關系”只與邏輯結構有關,與物理結構無關。通過模式與內模式的映射,可以保證邏輯結構與底層物理存儲具有相對獨立性,也就是說,當物理存儲改變時(例如存儲位置發生改變),不需要修改邏輯結構,只要修改映射,就可以保證數據庫能夠運行。圖1-12(a)外模式“成績單”顯示與用戶交互的部分,也就是說,可以通過外模式隱藏不希望用戶看到的信息,同時代碼通過外模式訪問數據,可以使得代碼具有可移植性。也就是說,代碼可以脫離數據庫的邏輯結構,當數據庫邏輯結構發生改變時,只要修改模式與內模式的映射,不需要修改代碼即可運行。

圖1-12 教務系統的三級模式實例
擴展閱讀
穿孔卡是早期計算機的信息輸入設備,通常可以存儲80列數據。它是一種很薄的紙片,面積為190×84mm2,見圖1-13。首次使用穿孔卡技術的數據處理機器,是美國統計專家赫曼·霍列瑞斯(H.Hollerith)博士的偉大發明。
公元1880年,美利堅合眾國舉行了一次全國性人口普查,為當時5000余萬的美國人口登記造冊。當時美國經濟正處于迅速發展的階段,人口流動十分頻繁,再加上普查的項目繁多,統計手段落后,從當年元月開始的這次普查,花了7年半的時間才把數據處理完畢。也就是說,直到快進行第二次人口普查時,美國政府才能得知第一次人口普查期間全國人口的狀況。

圖1-13 穿孔卡
人口普查需要處理大量數據,如用調查表采集的項目年齡、性別等,并且還要統計出每個社區有多少兒童和老人,有多少男性公民和女性公民等。這些數據是否也可以由機器自動進行統計?采礦工程師霍列瑞斯想到了紡織工程師杰卡德80年前發明的穿孔紙帶。杰卡德提花機用穿孔紙帶上的小孔控制提花操作的步驟,即編寫程序。霍列瑞斯則進一步設想要用它來存儲和統計數據,于是他想發明一種自動制表的機器。兩年后,霍列瑞斯博士離開了人口局,到專利事務所工作了一段時間,也曾任教于麻省理工學院,他一邊工作,一邊致力于自動制表機的研制。
霍列瑞斯首先把穿孔紙帶改造成穿孔卡片,以適應人口數據采集的需要。由于每個人的調查數據有若干不同的項目,如性別、籍貫、年齡等。霍列瑞斯把每個人所有的調查項目依次排列于一張卡片上,然后根據調查結果在相應項目的位置上打孔。例如,穿孔卡片“性別”欄目下有“男”和“女”兩個選項,“年齡”欄目下有從“0歲”到“70歲以上”等系列選項,等等。統計員可以根據每個調查對象的具體情況,分別在穿孔卡片各欄目的相應位置打出小孔。每張卡片都代表著一位公民的個人檔案。
霍列瑞斯博士巧妙的設計在于自動統計。他在機器上安裝了一組盛滿水銀的小杯,穿好孔的卡片就放置在這些水銀杯上。卡片上方有幾排精心調好的探針,探針連接在電路的一端,水銀杯則連接于電路的另一端。與杰卡德提花機穿孔紙帶的原理類似:只要某根探針撞到卡片上有孔的位置,便會自動跌落下去,與水銀接觸從而接通電流,啟動計數裝置前進一個刻度。由此可見,霍列瑞斯穿孔卡表示的也是二進制信息:有孔處能接通電路計數,代表該調查項目為“有”(“1”),無孔處不能接通電路計數,表示該調查項目為“無”(“0”)。
直到1888年,霍列瑞斯博士才完成了自動制表機的設計并申報了專利。他發明的這種機電式計數裝置,比傳統純機械裝置更加靈敏,因而被1890年后的歷次美國人口普查選用,獲得了巨大的成功。例如,1900年進行的人口普查全部采用霍列瑞斯制表機,平均每臺機器可代替500人工作,全國的數據統計僅用了1年多時間。雖然霍列瑞斯發明的并不是通用計算機,除了能統計數據表格外,它幾乎沒有別的什么用途,然而制表機穿孔卡第一次把數據轉變成二進制信息。在以后的計算機系統里,利用穿孔卡片輸入數據的方法一直沿用到20世紀70年代,數據處理也發展成為計算機的主要功能之一。
依托自己發明的制表機,霍列瑞斯博士創辦了一家專業制表機公司,但不久就因資金周轉不靈陷入困境,被另一家CTR公司兼并。1924年,CTR公司更名為“國際商業機器公司”,英文縮寫為IBM,專門生產打孔機、制表機一類的產品。到了1950年,IBM的卡片已被業界與政府機構廣泛使用,為了讓卡片可作為證明文件重復使用,卡片上都印有“請勿折疊、卷曲或毀損”的警示詞,這行警示詞后來還成為后二次大戰時期的流行標語。
FORTRAN程序穿孔卡的使用直到20世紀70年代為止,不少計算機設備仍以卡片作為處理媒介,世界各地都有科學系或工程系的大學生拿著大疊卡片到當地的計算機中心交作業程序,一張卡片代表一行程序,然后耐心排隊等著自己的程序被計算機中心的大型計算機處理、編譯并執行。一旦執行完畢,就會打印出附有身份識別的報表,放在計算機中心外的文件盤里。如果最后打印出一大串程序語法錯誤的信息,學生就得修改后重新再一次執行程序。穿孔卡直到今日仍未絕跡,其特殊的尺寸(80行的長度)在世界各地仍使用在各式表格、記錄和程序中。
杰卡德和霍列瑞斯分別開創了程序設計和數據處理之先河。以歷史的目光審視他們的發明,正是這種程序設計和數據處理,構成了計算機軟件的雛形。
習題
1.數據庫系統的發展過程分成哪幾個階段?
2.數據管理技術發展過程中,文件系統與數據庫系統的重要區別是什么?
3.數據庫系統的功能有那些?
4.數據庫系統的模式結構是怎樣的?有什么樣的用途?
5.通常所說的數據庫系統(DBS)、數據庫管理系統(DBMS)和數據庫(DB)三者之間的關系是什么?