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

1.4 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)

從數(shù)據(jù)庫(kù)管理系統(tǒng)角度看,數(shù)據(jù)庫(kù)系統(tǒng)通常采用三級(jí)模式結(jié)構(gòu)。從數(shù)據(jù)庫(kù)最終用戶角度看,數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)分為集中式結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶/服務(wù)器結(jié)構(gòu)和并行結(jié)構(gòu)。

數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫(kù)系統(tǒng)是由外模式、模式和內(nèi)模式三級(jí)構(gòu)成的,如圖1-10所示。用戶級(jí)對(duì)應(yīng)外模式,概念級(jí)對(duì)應(yīng)模式(概念模式和邏輯模式),物理級(jí)對(duì)應(yīng)內(nèi)模式。在一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中,只有唯一的數(shù)據(jù)庫(kù),因而作為定義、描述數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)的內(nèi)模式和定義、描述數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的模式,也是唯一的,但建立在數(shù)據(jù)庫(kù)系統(tǒng)之上的應(yīng)用則是非常廣泛、多樣的,所以對(duì)應(yīng)的外模式不是唯一的,也不可能是唯一的。

圖1-10 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)

(1)模式

模式又稱概念模式或邏輯模式,對(duì)應(yīng)于概念級(jí)。它是由數(shù)據(jù)庫(kù)設(shè)計(jì)者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)構(gòu)造的全局邏輯結(jié)構(gòu),是對(duì)數(shù)據(jù)庫(kù)中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所有用戶的公共數(shù)據(jù)視圖(全局視圖)。它是由數(shù)據(jù)庫(kù)管理系統(tǒng)提供的數(shù)據(jù)模式描述語(yǔ)言(Data Description Language,DDL)來(lái)描述、定義的,反映了數(shù)據(jù)庫(kù)系統(tǒng)的整體觀。

(2)外模式

外模式又稱子模式,對(duì)應(yīng)于用戶級(jí)。它是某個(gè)或某幾個(gè)用戶所看到的數(shù)據(jù)庫(kù)的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是從模式導(dǎo)出的一個(gè)子集,包含模式中允許特定用戶使用的那部分?jǐn)?shù)據(jù)。用戶可以通過外模式描述語(yǔ)言來(lái)描述、定義對(duì)應(yīng)于用戶的數(shù)據(jù)記錄(外模式),也可以利用數(shù)據(jù)操縱語(yǔ)言(Data Manipulation Language,DML)對(duì)這些數(shù)據(jù)記錄進(jìn)行操縱。外模式反映了數(shù)據(jù)庫(kù)的用戶觀。

(3)內(nèi)模式

內(nèi)模式又稱存儲(chǔ)模式,對(duì)應(yīng)于物理級(jí),是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的內(nèi)部表示或底層描述,是數(shù)據(jù)庫(kù)最低一級(jí)的邏輯描述,它描述了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的存儲(chǔ)方式和物理結(jié)構(gòu),對(duì)應(yīng)著實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫(kù)。內(nèi)模式由內(nèi)模式描述語(yǔ)言來(lái)描述、定義,反映了數(shù)據(jù)庫(kù)的存儲(chǔ)觀。

(4)三級(jí)模式間的映射

數(shù)據(jù)庫(kù)的三級(jí)模式是數(shù)據(jù)庫(kù)在3個(gè)級(jí)別(層次)上的抽象,使用戶能夠邏輯地、抽象地處理數(shù)據(jù)而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的物理表示和存儲(chǔ)。實(shí)際上,對(duì)于一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)而言,已有的物理級(jí)數(shù)據(jù)庫(kù)是客觀存在的,它是進(jìn)行數(shù)據(jù)庫(kù)操作的基礎(chǔ)(內(nèi)模式),概念級(jí)數(shù)據(jù)庫(kù)中不過是物理數(shù)據(jù)庫(kù)的一種邏輯的、抽象的描述(即模式),用戶級(jí)數(shù)據(jù)庫(kù)則是用戶與數(shù)據(jù)庫(kù)的接口,它是概念級(jí)數(shù)據(jù)庫(kù)的一個(gè)子集(外模式)。

不同級(jí)別的用戶對(duì)數(shù)據(jù)庫(kù)形成不同的視圖。所謂視圖,就是指觀察、認(rèn)識(shí)和理解數(shù)據(jù)的范圍、角度和方法,是數(shù)據(jù)庫(kù)在用戶“眼中”的反映。很顯然,不同層次(級(jí)別)的用戶“看到”的數(shù)據(jù)庫(kù)是不同的,圖1-11所示為一個(gè)三級(jí)模式映射的例子。用戶應(yīng)用程序“教務(wù)管理系統(tǒng)”根據(jù)外模式“學(xué)生視圖”和“教師視圖”進(jìn)行數(shù)據(jù)操作,通過“外模式/模式映射”定義和建立某個(gè)外模式與模式間的對(duì)應(yīng)關(guān)系,將外模式“學(xué)生視圖”“教師視圖”與模式“學(xué)生表”“教師表”聯(lián)系起來(lái),當(dāng)模式發(fā)生改變時(shí),只要改變其映射,就可以使外模式保持不變,對(duì)應(yīng)的應(yīng)用程序也可以保持不變。另一方面,可通過“模式/內(nèi)模式映射”定義建立數(shù)據(jù)的邏輯結(jié)構(gòu)(模式)“學(xué)生表”“成績(jī)表”與存儲(chǔ)結(jié)構(gòu)(內(nèi)模式)“學(xué)生表”“成績(jī)表”間的對(duì)應(yīng)關(guān)系。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)發(fā)生變化時(shí),只需改變“模式/內(nèi)模式映射”,就能保持模式不變,因此應(yīng)用程序也可以保持不變。

圖1-11 教務(wù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)

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

圖1-12 教務(wù)系統(tǒng)的三級(jí)模式實(shí)例

擴(kuò)展閱讀

穿孔卡是早期計(jì)算機(jī)的信息輸入設(shè)備,通常可以存儲(chǔ)80列數(shù)據(jù)。它是一種很薄的紙片,面積為190×84mm2,見圖1-13。首次使用穿孔卡技術(shù)的數(shù)據(jù)處理機(jī)器,是美國(guó)統(tǒng)計(jì)專家赫曼·霍列瑞斯(H.Hollerith)博士的偉大發(fā)明。

公元1880年,美利堅(jiān)合眾國(guó)舉行了一次全國(guó)性人口普查,為當(dāng)時(shí)5000余萬(wàn)的美國(guó)人口登記造冊(cè)。當(dāng)時(shí)美國(guó)經(jīng)濟(jì)正處于迅速發(fā)展的階段,人口流動(dòng)十分頻繁,再加上普查的項(xiàng)目繁多,統(tǒng)計(jì)手段落后,從當(dāng)年元月開始的這次普查,花了7年半的時(shí)間才把數(shù)據(jù)處理完畢。也就是說(shuō),直到快進(jìn)行第二次人口普查時(shí),美國(guó)政府才能得知第一次人口普查期間全國(guó)人口的狀況。

圖1-13 穿孔卡

人口普查需要處理大量數(shù)據(jù),如用調(diào)查表采集的項(xiàng)目年齡、性別等,并且還要統(tǒng)計(jì)出每個(gè)社區(qū)有多少兒童和老人,有多少男性公民和女性公民等。這些數(shù)據(jù)是否也可以由機(jī)器自動(dòng)進(jìn)行統(tǒng)計(jì)?采礦工程師霍列瑞斯想到了紡織工程師杰卡德80年前發(fā)明的穿孔紙帶。杰卡德提花機(jī)用穿孔紙帶上的小孔控制提花操作的步驟,即編寫程序。霍列瑞斯則進(jìn)一步設(shè)想要用它來(lái)存儲(chǔ)和統(tǒng)計(jì)數(shù)據(jù),于是他想發(fā)明一種自動(dòng)制表的機(jī)器。兩年后,霍列瑞斯博士離開了人口局,到專利事務(wù)所工作了一段時(shí)間,也曾任教于麻省理工學(xué)院,他一邊工作,一邊致力于自動(dòng)制表機(jī)的研制。

霍列瑞斯首先把穿孔紙帶改造成穿孔卡片,以適應(yīng)人口數(shù)據(jù)采集的需要。由于每個(gè)人的調(diào)查數(shù)據(jù)有若干不同的項(xiàng)目,如性別、籍貫、年齡等。霍列瑞斯把每個(gè)人所有的調(diào)查項(xiàng)目依次排列于一張卡片上,然后根據(jù)調(diào)查結(jié)果在相應(yīng)項(xiàng)目的位置上打孔。例如,穿孔卡片“性別”欄目下有“男”和“女”兩個(gè)選項(xiàng),“年齡”欄目下有從“0歲”到“70歲以上”等系列選項(xiàng),等等。統(tǒng)計(jì)員可以根據(jù)每個(gè)調(diào)查對(duì)象的具體情況,分別在穿孔卡片各欄目的相應(yīng)位置打出小孔。每張卡片都代表著一位公民的個(gè)人檔案。

霍列瑞斯博士巧妙的設(shè)計(jì)在于自動(dòng)統(tǒng)計(jì)。他在機(jī)器上安裝了一組盛滿水銀的小杯,穿好孔的卡片就放置在這些水銀杯上。卡片上方有幾排精心調(diào)好的探針,探針連接在電路的一端,水銀杯則連接于電路的另一端。與杰卡德提花機(jī)穿孔紙帶的原理類似:只要某根探針撞到卡片上有孔的位置,便會(huì)自動(dòng)跌落下去,與水銀接觸從而接通電流,啟動(dòng)計(jì)數(shù)裝置前進(jìn)一個(gè)刻度。由此可見,霍列瑞斯穿孔卡表示的也是二進(jìn)制信息:有孔處能接通電路計(jì)數(shù),代表該調(diào)查項(xiàng)目為“有”(“1”),無(wú)孔處不能接通電路計(jì)數(shù),表示該調(diào)查項(xiàng)目為“無(wú)”(“0”)。

直到1888年,霍列瑞斯博士才完成了自動(dòng)制表機(jī)的設(shè)計(jì)并申報(bào)了專利。他發(fā)明的這種機(jī)電式計(jì)數(shù)裝置,比傳統(tǒng)純機(jī)械裝置更加靈敏,因而被1890年后的歷次美國(guó)人口普查選用,獲得了巨大的成功。例如,1900年進(jìn)行的人口普查全部采用霍列瑞斯制表機(jī),平均每臺(tái)機(jī)器可代替500人工作,全國(guó)的數(shù)據(jù)統(tǒng)計(jì)僅用了1年多時(shí)間。雖然霍列瑞斯發(fā)明的并不是通用計(jì)算機(jī),除了能統(tǒng)計(jì)數(shù)據(jù)表格外,它幾乎沒有別的什么用途,然而制表機(jī)穿孔卡第一次把數(shù)據(jù)轉(zhuǎn)變成二進(jìn)制信息。在以后的計(jì)算機(jī)系統(tǒng)里,利用穿孔卡片輸入數(shù)據(jù)的方法一直沿用到20世紀(jì)70年代,數(shù)據(jù)處理也發(fā)展成為計(jì)算機(jī)的主要功能之一。

依托自己發(fā)明的制表機(jī),霍列瑞斯博士創(chuàng)辦了一家專業(yè)制表機(jī)公司,但不久就因資金周轉(zhuǎn)不靈陷入困境,被另一家CTR公司兼并。1924年,CTR公司更名為“國(guó)際商業(yè)機(jī)器公司”,英文縮寫為IBM,專門生產(chǎn)打孔機(jī)、制表機(jī)一類的產(chǎn)品。到了1950年,IBM的卡片已被業(yè)界與政府機(jī)構(gòu)廣泛使用,為了讓卡片可作為證明文件重復(fù)使用,卡片上都印有“請(qǐng)勿折疊、卷曲或毀損”的警示詞,這行警示詞后來(lái)還成為后二次大戰(zhàn)時(shí)期的流行標(biāo)語(yǔ)。

FORTRAN程序穿孔卡的使用直到20世紀(jì)70年代為止,不少計(jì)算機(jī)設(shè)備仍以卡片作為處理媒介,世界各地都有科學(xué)系或工程系的大學(xué)生拿著大疊卡片到當(dāng)?shù)氐挠?jì)算機(jī)中心交作業(yè)程序,一張卡片代表一行程序,然后耐心排隊(duì)等著自己的程序被計(jì)算機(jī)中心的大型計(jì)算機(jī)處理、編譯并執(zhí)行。一旦執(zhí)行完畢,就會(huì)打印出附有身份識(shí)別的報(bào)表,放在計(jì)算機(jī)中心外的文件盤里。如果最后打印出一大串程序語(yǔ)法錯(cuò)誤的信息,學(xué)生就得修改后重新再一次執(zhí)行程序。穿孔卡直到今日仍未絕跡,其特殊的尺寸(80行的長(zhǎng)度)在世界各地仍使用在各式表格、記錄和程序中。

杰卡德和霍列瑞斯分別開創(chuàng)了程序設(shè)計(jì)和數(shù)據(jù)處理之先河。以歷史的目光審視他們的發(fā)明,正是這種程序設(shè)計(jì)和數(shù)據(jù)處理,構(gòu)成了計(jì)算機(jī)軟件的雛形。

習(xí)題

1.數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展過程分成哪幾個(gè)階段?

2.數(shù)據(jù)管理技術(shù)發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的重要區(qū)別是什么?

3.數(shù)據(jù)庫(kù)系統(tǒng)的功能有那些?

4.數(shù)據(jù)庫(kù)系統(tǒng)的模式結(jié)構(gòu)是怎樣的?有什么樣的用途?

5.通常所說(shuō)的數(shù)據(jù)庫(kù)系統(tǒng)(DBS)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)和數(shù)據(jù)庫(kù)(DB)三者之間的關(guān)系是什么?

主站蜘蛛池模板: 金溪县| 吉安县| 海宁市| 札达县| 类乌齐县| 黎城县| 盘山县| 霸州市| 晋城| 香河县| 沁源县| 景宁| 富民县| 白玉县| 陕西省| 类乌齐县| 阳春市| 容城县| 疏附县| 承德县| 米易县| 鸡西市| 肃南| 汨罗市| 辉南县| 义马市| 清水县| 扬中市| 洪雅县| 嘉定区| 平凉市| 昌吉市| 金平| 吉水县| 富蕴县| 津南区| 阳高县| 龙井市| 衡东县| 宁乡县| 上犹县|