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

2.4 外部模型

在應(yīng)用系統(tǒng)中,常常根據(jù)業(yè)務(wù)的特點劃分成若干個業(yè)務(wù)單位,每一個業(yè)務(wù)單位都有特定的約束和需求,在實際使用時,可以為不同的業(yè)務(wù)單位設(shè)計不同的外部模型。例如,為圖2-11建立“學(xué)生管理系統(tǒng)”的外部模型,如圖2-22所示。為“教師管理系統(tǒng)”建立外部模型,如圖2-23所示。

圖2-22 “學(xué)生管理系統(tǒng)”的外部模型

圖2-23 “教師管理系統(tǒng)”的外部模型

擴展閱讀

查爾斯·巴赫曼——“網(wǎng)狀數(shù)據(jù)庫之父”

20世紀(jì)60年代中期以來,數(shù)據(jù)庫技術(shù)的形成、發(fā)展和日趨成熟,使計算機數(shù)據(jù)處理技術(shù)躍上了一個新臺階,并從而極大地推動了計算機的普及與應(yīng)用。因此,1973年的圖靈獎首次授予在這方面作出杰出貢獻的數(shù)據(jù)庫先驅(qū)查爾斯·巴赫曼(Charles W.Bachman)。為了說明巴赫曼的功績,讓我們先簡要回顧一下計算機數(shù)據(jù)處理發(fā)展的歷史。

計算機在20世紀(jì)40年代誕生之初只用于科學(xué)與工程計算,不能用于數(shù)據(jù)處理,因為當(dāng)時的計算機還只能處理數(shù)字,不能處理字母和符號,而字母和符號恰是數(shù)據(jù)處理中的主要處理對象。此外,當(dāng)時的計算機也還沒有數(shù)據(jù)處理所需要的大容量存儲器。20世紀(jì)50年代初,發(fā)明了字符發(fā)生器(Character Generator),使計算機具有了能顯示、存儲與處理字母及各種符號的能力;又成功地將高速磁帶機用于計算機作存儲器,這是對計算機得以進入數(shù)據(jù)處理領(lǐng)域具有決定意義的兩大技術(shù)進展。但是磁帶只能順序讀寫,速度也慢,不是理想的存儲設(shè)備。1956年,IBM公司和Remington Rand公司先后實驗成功磁盤存儲器方案,推出了商用磁盤系統(tǒng)。磁盤不但轉(zhuǎn)速快,容量大,還可以隨機讀寫,為數(shù)據(jù)處理提供了更加理想的大容量、快速存儲設(shè)備。有了這些硬件的支持,計算機數(shù)據(jù)處理便日益發(fā)展起來。

查爾斯·巴赫曼

但是,初期的數(shù)據(jù)處理軟件只有文件管理(File Management)這種形式,數(shù)據(jù)文件和應(yīng)用程序一一對應(yīng),造成了數(shù)據(jù)冗余、數(shù)據(jù)不一致性和數(shù)據(jù)依賴(Data Dependence)。所謂數(shù)據(jù)依賴就是編寫程序依賴于具體數(shù)據(jù),拿COBOL這種常用的商用語言來說,程序員必須在數(shù)據(jù)部的文件節(jié)(DATADIVISION,F(xiàn)ILESECTION)中詳細(xì)說明文件中各數(shù)據(jù)項的類型、長度和格式,在設(shè)備部的輸入-輸出節(jié)(ENVIRON-MENTDIVISION、INPUT-OUTPUTSECTION)中還要通過SELECT語句和ASSIGN語句把文件和具體設(shè)備聯(lián)系起來,并使用ORGANIZATION語句和SQL SERVERMODE語句嚴(yán)格規(guī)定文件的組織方式和存取方式。根據(jù)這些具體規(guī)定,程序員再在過程部(PROCEDUREDIVISION)中用一系列命令語句導(dǎo)航,才能使系統(tǒng)完成預(yù)期的數(shù)據(jù)處理任務(wù)。應(yīng)用程序與數(shù)據(jù)的存儲、讀取方式密切相關(guān),這種狀況給程序的編制、維護都造成很大的麻煩。

后來出現(xiàn)了文件管理系統(tǒng)FMS(Pile Management System)作為應(yīng)用程序和數(shù)據(jù)文件之間的接口,一個應(yīng)用程序通過FMS可以與若干文件打交道,在一定程度上增加了數(shù)據(jù)處理的靈活性。但這種方式仍以分散、互相獨立的數(shù)據(jù)文件為基礎(chǔ),數(shù)據(jù)冗余、數(shù)據(jù)不一致性、處理效率低等問題仍不可避免。這些缺點在較大規(guī)模的系統(tǒng)中尤為突出。以美國在20世紀(jì)60年代初制定的阿波羅登月計劃為例,阿波羅飛船由約200萬個零部件組成,它們分散在世界各地制造生產(chǎn)。為了掌握計劃進度及協(xié)調(diào)工程進展,阿波羅計劃的主要合約者Rock-well公司曾研制、開發(fā)了一個基于磁帶的零部件生產(chǎn)計算機管理系統(tǒng),系統(tǒng)共用了18盤磁帶,雖然可以工作,但效率極低,18盤磁帶中60%的數(shù)據(jù)是冗余數(shù)據(jù),維護十分困難。這個系統(tǒng)的狀況曾一度成為實現(xiàn)阿波羅計劃的重大障礙之一。

針對上述問題,各國學(xué)者、計算機公司、計算機用戶及計算機學(xué)術(shù)團體紛紛開展研究,為改革數(shù)據(jù)處理系統(tǒng)進行探索與實驗,其目標(biāo)主要就是突破文件系統(tǒng)分散管理的弱點,實現(xiàn)對數(shù)據(jù)的集中控制,統(tǒng)一管理。結(jié)果就是出現(xiàn)了一種全新的高效的管理技術(shù)——數(shù)據(jù)庫技術(shù)。Rockwell公司與IBM公司合作,在當(dāng)時新推出的IBM 360系列上研制成功了世界上最早的數(shù)據(jù)庫管理系統(tǒng)之一IMS(1nformation Management System),為保證阿波羅飛船1969年順利登月作出了貢獻。IMS是基于層次模型的。幾乎同時,巴赫曼在通用電氣公司主持設(shè)計與實現(xiàn)了網(wǎng)狀的數(shù)據(jù)庫管理系統(tǒng)IDS(Integrated Data System)。

巴赫曼1924年12月11日生于堪薩斯州的曼哈頓,1948年在密歇根州立大學(xué)取得工程學(xué)士學(xué)位,1950年在賓夕法尼亞大學(xué)取得碩土學(xué)位,20世紀(jì)50年代在Dow化工公司工作,1961—1970年在通用電氣公司任程序設(shè)計部門經(jīng)理,1970—1981年在Honeywell公司任總工程師,同時兼任Cullinet軟件公司的副總裁和產(chǎn)品經(jīng)理。Cullinet公司對中國人來說知之者不多,但這個公司當(dāng)時在美國很有名氣,它是1978年第一家在紐約股票交易所上市的軟件公司,當(dāng)時微軟在新墨西哥州的阿爾伯克基開張不久,鮮為人知的是,它的股票是1986年上市的,比Cullinet晚8年之久,但Cullinet最終被CA公司購并。1983年巴赫曼創(chuàng)辦了自己的公司Bachman Information System,Inc.。

圖2-24 網(wǎng)狀數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)

巴赫曼在數(shù)據(jù)庫方面的主要貢獻有兩項,第一就是前面說的,在通用電氣公司任程序設(shè)計部門經(jīng)理期間,主持設(shè)計與開發(fā)了最早的網(wǎng)狀數(shù)據(jù)庫管理系統(tǒng)IDS,如圖2-24所示。IDS于1964年推出后,成為最受歡迎的數(shù)據(jù)庫產(chǎn)品之一,而且它的設(shè)計思想和實現(xiàn)技術(shù)被后來的許多數(shù)據(jù)庫產(chǎn)品所仿效。第二就是巴赫曼積極推動與促成了數(shù)據(jù)庫標(biāo)準(zhǔn)的制定,也就是美國數(shù)據(jù)系統(tǒng)語言委員會CODASYL下屬的數(shù)據(jù)庫任務(wù)組DBTG提出的網(wǎng)狀數(shù)據(jù)庫模型以及數(shù)據(jù)定義和數(shù)據(jù)操縱語言即DDL和DML的規(guī)范說明,于1971年推出了第一份正式報告——DBTG報告,成為數(shù)據(jù)庫歷史上具有里程碑意義的文獻。該報告中基于IDS的經(jīng)驗所確定的方法稱為DBTG方法或CODASYL方法,所描述的網(wǎng)狀模型稱為DBTG模型或CODASYL模型。DBTG曾希望美國國家標(biāo)準(zhǔn)委員會ANSI接受DBTG報告為數(shù)據(jù)庫管理系統(tǒng)的國家標(biāo)準(zhǔn),但是沒有成功。1971年報告之后,又出現(xiàn)了一系列新的版本,如1973年、1978年、1981年和1984年的修改版本。DBTG后來改名為DBLTG(Data Base Language Task Group,數(shù)據(jù)庫語言工作小組)。DBTG首次確定了數(shù)據(jù)庫的三層體系結(jié)構(gòu),明確了數(shù)據(jù)庫管理員DBA(Data Base Administrator)的概念,規(guī)定了DBA的作用與地位。DBTG系統(tǒng)雖然是一種方案而非實際的數(shù)據(jù)庫,但它所提出的基本概念卻具有普遍意義,不但國際上大多數(shù)網(wǎng)狀數(shù)據(jù)庫管理系統(tǒng),如IDMS、PRIME DBMS、DMSl70、DMSⅡ和DMS 1100等都遵循或基本遵循DBTG模型,而且對后來產(chǎn)生和發(fā)展的關(guān)系數(shù)據(jù)庫技術(shù)也有很重要的影響,其體系結(jié)構(gòu)也遵循DBTG的三級模式(雖然名稱有所不同)。下面簡要介紹DBTG的系統(tǒng)結(jié)構(gòu)。

DBTG的系統(tǒng)結(jié)構(gòu)主要包括模式(Schema)、子模式(Subschema)、物理模式(Physical Schema)、數(shù)據(jù)操縱和數(shù)據(jù)庫管理系統(tǒng)(DBMS,Data Base Management System)等幾個部分。模式是對數(shù)據(jù)庫整體數(shù)據(jù)邏輯結(jié)構(gòu)的描述,它對應(yīng)數(shù)據(jù)庫的概念層,由數(shù)據(jù)庫管理員借助模式數(shù)據(jù)描述語言DDL(Data Description Language)建立。子模式是某一用戶對他所關(guān)心的那部分?jǐn)?shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)的描述,對應(yīng)于數(shù)據(jù)庫的外層或用戶視圖(user view),是由該用戶自己或委托數(shù)據(jù)庫管理員借助子模式數(shù)據(jù)描述語言加以定義的。物理模式或稱為存儲模式(storage schema)是對數(shù)據(jù)庫的數(shù)據(jù)的存儲組織方式的描述,對應(yīng)于數(shù)據(jù)庫的物理層,由數(shù)據(jù)庫管理員通過數(shù)據(jù)存儲描述語言DSDL(Data Storage Description Language)加以定義(DSDL是DBTG報告的1978年版本提出的,之前的報告用的名稱稱為數(shù)據(jù)介質(zhì)控制語言DMCL Data Media Control Language)。數(shù)據(jù)庫可由多個用戶、多個應(yīng)用共享,數(shù)據(jù)庫應(yīng)用程序利用數(shù)據(jù)操縱語言DML(Data Manupilation Language)實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的操縱,但一個應(yīng)用程序必須援引某一模式的某一子模式(也就是說它操作的數(shù)據(jù)限于某一用戶視圖中的數(shù)據(jù))。DML語句可以嵌在宿主語言(如COBOL,F(xiàn)ortran等)中,在數(shù)據(jù)庫管理系統(tǒng)的控制下訪問數(shù)據(jù)庫中的數(shù)據(jù),并通過一個稱為用戶工作區(qū)UWA(User Work Area)的緩沖區(qū)與數(shù)據(jù)庫通信,完成對數(shù)據(jù)庫的操作。數(shù)據(jù)庫管理系統(tǒng)的其他功能包括維護數(shù)據(jù)庫中數(shù)據(jù)的一致性(Consistency)、完整性(Integrity)、安全性(Security)和一旦出現(xiàn)故障情況下的恢復(fù)(Recovery),以及在多個應(yīng)用程序同時存取同一數(shù)據(jù)單元時處理并發(fā)性(Concurrency),以避免出現(xiàn)“臟數(shù)據(jù)”(Dirty Data)或“丟失更新”(10seupdate)等不正常現(xiàn)象。由此可見,有關(guān)模式的數(shù)據(jù)描述語言DDL是建立數(shù)據(jù)庫的工具,數(shù)據(jù)操縱語言DML是操作數(shù)據(jù)庫、存取其中數(shù)據(jù)的工具,而數(shù)據(jù)庫管理系統(tǒng)DBMS則是執(zhí)行這種操作并負(fù)責(zé)維護與管理數(shù)據(jù)庫的工具,它們各司其職,完成數(shù)據(jù)庫整個生命期中的一切活動。

由于巴赫曼在以上兩方面的杰出貢獻,巴赫曼被理所當(dāng)然地公認(rèn)為“網(wǎng)狀數(shù)據(jù)庫之父”或“DBTG之父”,在數(shù)據(jù)庫技術(shù)的產(chǎn)生、發(fā)展與推廣應(yīng)用等各方面都發(fā)揮了巨大的作用。

在數(shù)據(jù)庫的文檔資料中,有一種描述網(wǎng)狀數(shù)據(jù)庫模型的數(shù)據(jù)結(jié)構(gòu)圖,這種圖解技術(shù)是巴赫曼發(fā)明的,通常被稱為巴赫曼圖(Bachman Diagram)。此外,在擔(dān)任ISO/TC 97/SC—16主席時,巴赫曼還主持制定了著名的“開放系統(tǒng)互連”標(biāo)準(zhǔn),即OSI(Open System Interconection)。OSI對計算機、終端設(shè)備、人員、進程或網(wǎng)絡(luò)之間的數(shù)據(jù)交換提供了一個標(biāo)準(zhǔn)規(guī)程,實現(xiàn)OSI對系統(tǒng)之間達到彼此互相開放有重要意義。巴赫曼也是建立在波士頓的計算機博物館的創(chuàng)始人之一。20世紀(jì)70年代以后,由于關(guān)系數(shù)據(jù)庫的興起,網(wǎng)狀數(shù)據(jù)庫受到冷落。但隨著面向?qū)ο蠹夹g(shù)的發(fā)展,有人預(yù)言網(wǎng)狀數(shù)據(jù)庫將有可能重新受到人們的青睞。但無論這個預(yù)言是否實現(xiàn),巴赫曼作為數(shù)據(jù)庫技術(shù)先驅(qū)的歷史作用和地位是學(xué)術(shù)界和產(chǎn)業(yè)界普遍承認(rèn)的。

巴赫曼是在1973年8月28日在亞特蘭大舉行的ACM年會上獲得的圖靈獎,他發(fā)表了題為“作為導(dǎo)航員的程序員”(The Programmer as Navigator)的圖靈獎演說,刊載于Communications of ACM,1974年11月,653~658頁,也可見《前20年的ACM圖靈獎演說集》(ACM Turing Award Lectures The First 20Yean:1966—1985,ACM Pr.),269,286頁。

數(shù)據(jù)庫系統(tǒng)發(fā)展的歷史性事件列表如下:

1951:Univac系統(tǒng)使用磁帶和穿孔卡片作為數(shù)據(jù)存儲。

1956:IBM公司在其Model 305 RAMAC中第一次引入了磁盤驅(qū)動器。

1961:通用電氣(GE)公司的Charles Bachman開發(fā)了第一個數(shù)據(jù)庫管理系統(tǒng)——IDS。

1969:E.F.Codd發(fā)明了關(guān)系數(shù)據(jù)庫。

1973:由John J.Cullinane領(lǐng)導(dǎo)Cullinane公司開發(fā)了IDMS——一個針對IBM主機的基于網(wǎng)絡(luò)模型的數(shù)據(jù)庫。

1976:Honeywell公司推出了Multics Relational Data Store——第一個商用關(guān)系數(shù)據(jù)庫產(chǎn)品。

1979:Oracle公司引入了第一個商用SQL關(guān)系數(shù)據(jù)庫管理系統(tǒng)。

1983:IBM推出了DB2數(shù)據(jù)庫產(chǎn)品。

1985:為Procter & Gamble系統(tǒng)設(shè)計的第一個商務(wù)智能系統(tǒng)產(chǎn)生。

1991:W.H.Bill Inmon發(fā)表了“構(gòu)建數(shù)據(jù)倉庫”。

習(xí)題

1.數(shù)據(jù)庫模型分為哪幾個層次?分別有什么樣的作用?

2.層次模型是怎樣的?試舉例說明。

3.網(wǎng)狀模型是怎樣的?試舉例說明。

4.關(guān)系模型是怎樣的?試舉例說明。

5.舉一個例子按照層次模型、網(wǎng)狀模型以及關(guān)系模型的方式進行存儲。

主站蜘蛛池模板: 江都市| 武川县| 进贤县| 汽车| 昌宁县| 沐川县| 五河县| 七台河市| 襄汾县| 峨边| 建湖县| 昌都县| 莱州市| 双鸭山市| 石棉县| 汝阳县| 三穗县| 伊川县| 博罗县| 白河县| 蒙城县| 鹤山市| 恭城| 漳平市| 万宁市| 盐池县| 武穴市| 武安市| 葵青区| 卢龙县| 基隆市| 平安县| 牟定县| 玉田县| 玉龙| 屯留县| 锡林郭勒盟| 会昌县| 庆安县| 宝清县| 西青区|