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

2.4 外部模型

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

圖2-22 “學生管理系統”的外部模型

圖2-23 “教師管理系統”的外部模型

擴展閱讀

查爾斯·巴赫曼——“網狀數據庫之父”

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

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

查爾斯·巴赫曼

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

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

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

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

圖2-24 網狀數據庫系統結構

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

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

由于巴赫曼在以上兩方面的杰出貢獻,巴赫曼被理所當然地公認為“網狀數據庫之父”或“DBTG之父”,在數據庫技術的產生、發展與推廣應用等各方面都發揮了巨大的作用。

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

巴赫曼是在1973年8月28日在亞特蘭大舉行的ACM年會上獲得的圖靈獎,他發表了題為“作為導航員的程序員”(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頁。

數據庫系統發展的歷史性事件列表如下:

1951:Univac系統使用磁帶和穿孔卡片作為數據存儲。

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

1961:通用電氣(GE)公司的Charles Bachman開發了第一個數據庫管理系統——IDS。

1969:E.F.Codd發明了關系數據庫。

1973:由John J.Cullinane領導Cullinane公司開發了IDMS——一個針對IBM主機的基于網絡模型的數據庫。

1976:Honeywell公司推出了Multics Relational Data Store——第一個商用關系數據庫產品。

1979:Oracle公司引入了第一個商用SQL關系數據庫管理系統。

1983:IBM推出了DB2數據庫產品。

1985:為Procter & Gamble系統設計的第一個商務智能系統產生。

1991:W.H.Bill Inmon發表了“構建數據倉庫”。

習題

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

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

3.網狀模型是怎樣的?試舉例說明。

4.關系模型是怎樣的?試舉例說明。

5.舉一個例子按照層次模型、網狀模型以及關系模型的方式進行存儲。

主站蜘蛛池模板: 仪陇县| 监利县| 九龙坡区| 容城县| 泰安市| 吉木乃县| 西吉县| 安岳县| 闽侯县| 东乌珠穆沁旗| 荥阳市| 长春市| 合阳县| 民权县| 南和县| 渝北区| 临漳县| 郸城县| 辽阳市| 蓝田县| 海晏县| 闵行区| 库尔勒市| 漳浦县| 荥经县| 兴城市| 新民市| 龙井市| 长沙县| 荃湾区| 明光市| 凤山县| 凤冈县| 柳河县| 磴口县| 伊金霍洛旗| 颍上县| 龙海市| 宁国市| 海城市| 卫辉市|