當前位置:首頁 > 百科知識 > 物聯(lián)網(wǎng) > 正文

數(shù)據(jù)庫

數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的倉庫,它產(chǎn)生于距今六十多年前,隨著信息技術和市場的發(fā)展,特別是二十世紀九十年代以后,數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫有很多種類型,從最簡單的存儲有各種數(shù)據(jù)的表格到能夠進行海量數(shù)據(jù)存儲的大型數(shù)據(jù)庫系統(tǒng)都在各個方面得到了廣泛的應用。 在信息化社會,充分有效地管理和利用各類信息資源,是進行科學研究和決策管理的前提條件。數(shù)據(jù)庫技術是管理信息系統(tǒng)、辦公自動化系統(tǒng)、決策支持系統(tǒng)等各類信息系統(tǒng)的核心部分,是進行科學研究和決策管理的重要技術手段。

  定義

  定義1

  數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的建立在計算機存儲設備上的倉庫。

  簡單來說是本身可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數(shù)據(jù)進行新增、截取、更新、刪除等操作。

  在經(jīng)濟管理的日常工作中,常常需要把某些相關的數(shù)據(jù)放進這樣的“倉庫”,并根據(jù)管理的需要進行相應的處理。

  例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個數(shù)據(jù)庫。有了這個"數(shù)據(jù)倉庫"我們就可以根據(jù)需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內(nèi)的職工人數(shù)等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產(chǎn)管理中也需要建立眾多的這種"數(shù)據(jù)庫",使其可以利用計算機實現(xiàn)財務、倉庫、生產(chǎn)的自動化管理。

  定義2

  嚴格來說,數(shù)據(jù)庫是長期儲存在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)指的是以一定的數(shù)據(jù)模型組織、描述和儲存在一起、具有盡可能小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性的特點并可在一定范圍內(nèi)為多個用戶共享。

  這種數(shù)據(jù)集合具有如下特點:盡可能不重復,以最優(yōu)方式為某個特定組織的多種應用服務,其數(shù)據(jù)結構獨立于使用它的應用程序,對數(shù)據(jù)的增、刪、改、查由統(tǒng)一軟件進行管理和控制。從發(fā)展的歷史看,數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。

  處理系統(tǒng)

  數(shù)據(jù)庫是一個單位或是一個應用領域的通用數(shù)據(jù)處理系統(tǒng),它存儲的是屬于企業(yè)和事業(yè)部門、團體和個人的有關數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)是從全局觀點出發(fā)建立的,按一定的數(shù)據(jù)模型進行組織、描述和存儲。其結構基于數(shù)據(jù)間的自然聯(lián)系,從而可提供一切必要的存取路徑,且數(shù)據(jù)不再針對某一應用,而是面向全組織,具有整體的結構化特征。

  數(shù)據(jù)庫中的數(shù)據(jù)是為眾多用戶所共享其信息而建立的,已經(jīng)擺脫了具體程序的限制和制約。不同的用戶可以按各自的用法使用數(shù)據(jù)庫中的數(shù)據(jù);多個用戶可以同時共享數(shù)據(jù)庫中的數(shù)據(jù)資源,即不同的用戶可以同時存取數(shù)據(jù)庫中的同一個數(shù)據(jù)。數(shù)據(jù)共享性不僅滿足了各用戶對信息內(nèi)容的要求,同時也滿足了各用戶之間信息通信的要求。

  基本結構

  數(shù)據(jù)庫的基本結構分三個層次,反映了觀察數(shù)據(jù)庫的三種不同角度。

  以內(nèi)模式為框架所組成的數(shù)據(jù)庫叫做物理數(shù)據(jù)庫;以概念模式為框架所組成的數(shù)據(jù)叫概念數(shù)據(jù)庫;以外模式為框架所組成的數(shù)據(jù)庫叫用戶數(shù)據(jù)庫。

  ⑴ 物理數(shù)據(jù)層。

  它是數(shù)據(jù)庫的最內(nèi)層,是物理存貯設備上實際存儲的數(shù)據(jù)的集合。這些數(shù)據(jù)是原始數(shù)據(jù),是用戶加工的對象,由內(nèi)部模式描述的指令操作處理的位串、字符和字組成。

 ?、?概念數(shù)據(jù)層。

  它是數(shù)據(jù)庫的中間一層,是數(shù)據(jù)庫的整體邏輯表示。指出了每個數(shù)據(jù)的邏輯定義及數(shù)據(jù)間的邏輯聯(lián)系,是存貯記錄的集合。它所涉及的是數(shù)據(jù)庫所有對象的邏輯關系,而不是它們的物理情況,是數(shù)據(jù)庫管理員概念下的數(shù)據(jù)庫。

  ⑶ 用戶數(shù)據(jù)層。

  它是用戶所看到和使用的數(shù)據(jù)庫,表示了一個或一些特定用戶使用的數(shù)據(jù)集合,即邏輯記錄的集合。

  數(shù)據(jù)庫不同層次之間的聯(lián)系是通過映射進行轉換的。

  主要特點

  ⑴ 實現(xiàn)數(shù)據(jù)共享

  數(shù)據(jù)共享包含所有用戶可同時存取數(shù)據(jù)庫中的數(shù)據(jù),也包括用戶可以用各種方式通過接口使用數(shù)據(jù)庫,并提供數(shù)據(jù)共享。

  ⑵ 減少數(shù)據(jù)的冗余度

  同文件系統(tǒng)相比,由于數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)共享,從而避免了用戶各自建立應用文件。減少了大量重復數(shù)據(jù),減少了數(shù)據(jù)冗余,維護了數(shù)據(jù)的一致性。

 ?、?數(shù)據(jù)的獨立性

  數(shù)據(jù)的獨立性包括邏輯獨立性(數(shù)據(jù)庫中數(shù)據(jù)庫的邏輯結構和應用程序相互獨立)和物理獨立性(數(shù)據(jù)物理結構的變化不影響數(shù)據(jù)的邏輯結構)。

 ?、?數(shù)據(jù)實現(xiàn)集中控制

  文件管理方式中,數(shù)據(jù)處于一種分散的狀態(tài),不同的用戶或同一用戶在不同處理中其文件之間毫無關系。利用數(shù)據(jù)庫可對數(shù)據(jù)進行集中控制和管理,并通過數(shù)據(jù)模型表示各種數(shù)據(jù)的組織以及數(shù)據(jù)間的聯(lián)系。

  ⑸數(shù)據(jù)一致性和可維護性,以確保數(shù)據(jù)的安全性和可靠性

  主要包括:①安全性控制:以防止數(shù)據(jù)丟失、錯誤更新和越權使用;②完整性控制:保證數(shù)據(jù)的正確性、有效性和相容性;③并發(fā)控制:使在同一時間周期內(nèi),允許對數(shù)據(jù)實現(xiàn)多路存取,又能防止用戶之間的不正常交互作用。

 ?、?故障恢復

  由數(shù)據(jù)庫管理系統(tǒng)提供一套方法,可及時發(fā)現(xiàn)故障和修復故障,從而防止數(shù)據(jù)被破壞。數(shù)據(jù)庫系統(tǒng)能盡快恢復數(shù)據(jù)庫系統(tǒng)運行時出現(xiàn)的故障,可能是物理上或是邏輯上的錯誤。比如對系統(tǒng)的誤操作造成的數(shù)據(jù)錯誤等。

  數(shù)據(jù)種類

  數(shù)據(jù)庫通常分為層次式數(shù)據(jù)庫、網(wǎng)絡式數(shù)據(jù)庫和關系式數(shù)據(jù)庫三種。而不同的數(shù)據(jù)庫是按不同的數(shù)據(jù)結構來聯(lián)系和組織的。

  1.數(shù)據(jù)結構模型

  ⑴數(shù)據(jù)結構

  所謂數(shù)據(jù)結構是指數(shù)據(jù)的組織形式或數(shù)據(jù)之間的聯(lián)系。

  如果用D表示數(shù)據(jù),用R表示數(shù)據(jù)對象之間存在的關系集合,則將DS=(D,R)稱為數(shù)據(jù)結構。

  例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查找某人的電話號碼,將人名和號碼按字典順序排列,并在名字的后面跟隨著對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是Y),那么只須查找以Y開頭的那些名字就可以了。該例中,數(shù)據(jù)的集合D就是人名和電話號碼,它們之間的聯(lián)系R就是按字典順序的排列,其相應的數(shù)據(jù)結構就是DS=(D,R),即一個數(shù)組。

 ?、茢?shù)據(jù)結構類型

  數(shù)據(jù)結構又分為數(shù)據(jù)的邏輯結構和數(shù)據(jù)的物理結構。

  數(shù)據(jù)的邏輯結構是從邏輯的角度(即數(shù)據(jù)間的聯(lián)系和組織方式)來觀察數(shù)據(jù),分析數(shù)據(jù),與數(shù)據(jù)的存儲位置無關;數(shù)據(jù)的物理結構是指數(shù)據(jù)在計算機中存放的結構,即數(shù)據(jù)的邏輯結構在計算機中的實現(xiàn)形式,所以物理結構也被稱為存儲結構。

  這里只研究數(shù)據(jù)的邏輯結構,并將反映和實現(xiàn)數(shù)據(jù)聯(lián)系的方法稱為數(shù)據(jù)模型。

  比較流行的數(shù)據(jù)模型有三種,即按圖論理論建立的層次結構模型和網(wǎng)狀結構模型以及按關系理論建立的關系結構模型。

  2.層次、網(wǎng)狀和關系數(shù)據(jù)庫系統(tǒng)

 ?、艑哟谓Y構模型

  層次結構模型實質上是一種有根結點的定向有序樹(在數(shù)學中"樹"被定義為一個無回的連通圖)。下圖是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各系、專業(yè)、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯(lián)系稱為邊,樹根與邊之比為1:N,即樹根只有一個,樹枝有N個。

  按照層次模型建立的數(shù)據(jù)庫系統(tǒng)稱為層次模型數(shù)據(jù)庫系統(tǒng)。IMS(Information Management System)是其典型代表。

 ?、凭W(wǎng)狀結構模型

  按照網(wǎng)狀數(shù)據(jù)結構建立的數(shù)據(jù)庫系統(tǒng)稱為網(wǎng)狀數(shù)據(jù)庫系統(tǒng),其典型代表是DBTG(Database Task Group)。用數(shù)學方法可將網(wǎng)狀數(shù)據(jù)結構轉化為層次數(shù)據(jù)結構。

 ?、?關系結構模型

  關系式數(shù)據(jù)結構把一些復雜的數(shù)據(jù)結構歸結為簡單的二元關系(即二維表格形式)。例如某單位的職工關系就是一個二元關系。

  由關系數(shù)據(jù)結構組成的數(shù)據(jù)庫系統(tǒng)被稱為關系數(shù)據(jù)庫系統(tǒng)。

  在關系數(shù)據(jù)庫中,對數(shù)據(jù)的操作幾乎全部建立在一個或多個關系表格上,通過對這些關系表格的分類、合并、連接或選取等運算來實現(xiàn)數(shù)據(jù)的管理。

  dBASEⅡ就是這類數(shù)據(jù)庫管理系統(tǒng)的典型代表。對于一個實際的應用問題(如人事管理問題),有時需要多個關系才能實現(xiàn)。用dBASEⅡ建立起來的一個關系稱為一個數(shù)據(jù)庫(或稱數(shù)據(jù)庫文件),而把對應多個關系建立起來的多個數(shù)據(jù)庫稱為數(shù)據(jù)庫系統(tǒng)。dBASEⅡ的另一個重要功能是通過建立命令文件來實現(xiàn)對數(shù)據(jù)庫的使用和管理,對于一個數(shù)據(jù)庫系統(tǒng)相應的命令序列文件,稱為該數(shù)據(jù)庫的應用系統(tǒng)。

  因此,可以概括地說,一個關系稱為一個數(shù)據(jù)庫,若干個數(shù)據(jù)庫可以構成一個數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫系統(tǒng)可以派生出各種不同類型的輔助文件和建立它的應用系統(tǒng)。

  發(fā)展簡史

  技術發(fā)展

  使用計算機后,隨著數(shù)據(jù)處理量的增長,產(chǎn)生了數(shù)據(jù)管理技術。數(shù)據(jù)管理技術的發(fā)展與計算機硬件(主要是外部存儲器)系統(tǒng)軟件及計算機應用的范圍有著密切的聯(lián)系。數(shù)據(jù)管理技術的發(fā)展經(jīng)歷了以下四個階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫階段和高級數(shù)據(jù)庫技術階段。

  數(shù)據(jù)管理的誕生

  數(shù)據(jù)庫的歷史可以追溯到五十年前,那時的數(shù)據(jù)管理非常簡單。通過大量的分類、比較和表格繪制的機器運行數(shù)百萬穿孔卡片來進行數(shù)據(jù)的處理,其運行結果在紙上打印出來或者制成新的穿孔卡片。而數(shù)據(jù)管理就是對所有這些穿孔卡片進行物理的儲存和處理。然而,1950 年雷明頓蘭德公司(Remington Rand Inc)的一種叫做Univac I 的計算機推出了一種一秒鐘可以輸入數(shù)百條記錄的磁帶驅動器,從而引發(fā)了數(shù)據(jù)管理的革命。1956 年IBM生產(chǎn)出第一個磁盤驅動器—— the Model 305 RAMAC。此驅動器有50 個盤片,每個盤片直徑是2 英尺,可以儲存5MB的數(shù)據(jù)。使用磁盤最大的好處是可以隨機存取數(shù)據(jù),而穿孔卡片和磁帶只能順序存取數(shù)據(jù)。

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

  數(shù)據(jù)庫系統(tǒng)的萌芽出現(xiàn)于二十世紀60 年代。當時計算機開始廣泛地應用于數(shù)據(jù)管理,對數(shù)據(jù)的共享提出了越來越高的要求。傳統(tǒng)的文件系統(tǒng)已經(jīng)不能滿足人們的需要,能夠統(tǒng)一管理和共享數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)應運而生。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎,各種DBMS軟件都是基于某種數(shù)據(jù)模型的。所以通常也按照數(shù)據(jù)模型的特點將傳統(tǒng)數(shù)據(jù)庫系統(tǒng)分成網(wǎng)狀數(shù)據(jù)庫、層次數(shù)據(jù)庫和關系數(shù)據(jù)庫三類。

  最早出現(xiàn)的網(wǎng)狀DBMS,是美國通用電氣公司Bachman等人在1961年開發(fā)的IDS(Integrated Data Store)。1964年通用電氣公司(General ElectricCo.)的Charles Bachman 成功地開發(fā)出世界上第一個網(wǎng)狀DBMS也即第一個數(shù)據(jù)庫管理系統(tǒng)——集成數(shù)據(jù)存儲(Integrated Data Store IDS),奠定了網(wǎng)狀數(shù)據(jù)庫的基礎,并在當時得到了廣泛的發(fā)行和應用。IDS 具有數(shù)據(jù)模式和日志的特征,但它只能在GE主機上運行,并且數(shù)據(jù)庫只有一個文件,數(shù)據(jù)庫所有的表必須通過手工編碼生成。之后,通用電氣公司一個客戶——BF Goodrich Chemical 公司最終不得不重寫了整個系統(tǒng),并將重寫后的系統(tǒng)命名為集成數(shù)據(jù)管理系統(tǒng)(IDMS)。

  網(wǎng)狀數(shù)據(jù)庫模型對于層次和非層次結構的事物都能比較自然的模擬,在關系數(shù)據(jù)庫出現(xiàn)之前網(wǎng)狀DBMS要比層次DBMS用得普遍。在數(shù)據(jù)庫發(fā)展史上,網(wǎng)狀數(shù)據(jù)庫占有重要地位。

  層次型DBMS是緊隨網(wǎng)絡型數(shù)據(jù)庫而出現(xiàn)的,最著名最典型的層次數(shù)據(jù)庫系統(tǒng)是IBM 公司在1968 年開發(fā)的IMS(Information Management System),一種適合其主機的層次數(shù)據(jù)庫。這是IBM公司研制的最早的大型數(shù)據(jù)庫系統(tǒng)程序產(chǎn)品。從60年代末產(chǎn)生起,如今已經(jīng)發(fā)展到IMSV6,提供群集、N路數(shù)據(jù)共享、消息隊列共享等先進特性的支持。這個具有30年歷史的數(shù)據(jù)庫產(chǎn)品在如今的WWW應用連接、商務智能應用中扮演著新的角色。

  1973年Cullinane公司(也就是后來的Cullinet軟件公司),開始出售Goodrich公司的IDMS改進版本,并且逐漸成為當時世界上最大的軟件公司。

  關系由來

  網(wǎng)狀數(shù)據(jù)庫和層次數(shù)據(jù)庫已經(jīng)很好地解決了數(shù)據(jù)的集中和共享問題,但是在數(shù)據(jù)獨立性和抽象級別上仍有很大欠缺。用戶在對這兩種數(shù)據(jù)庫進行存取時,仍然需要明確數(shù)據(jù)的存儲結構,指出存取路徑。而后來出現(xiàn)的關系數(shù)據(jù)庫較好地解決了這些問題。

  1970年,IBM的研究員E.F.Codd博士在刊物《Communication of the ACM》上發(fā)表了一篇名為“A Relational Model of Data for Large Shared Data Banks”的論文,提出了關系模型的概念,奠定了關系模型的理論基礎。盡管之前在1968年Childs已經(jīng)提出了面向集合的模型,然而這篇論文被普遍認為是數(shù)據(jù)庫系統(tǒng)歷史上具有劃時代意義的里程碑。Codd的心愿是為數(shù)據(jù)庫建立一個優(yōu)美的數(shù)據(jù)模型。后來Codd又陸續(xù)發(fā)表多篇文章,論述了范式理論和衡量關系系統(tǒng)的12條標準,用數(shù)學理論奠定了關系數(shù)據(jù)庫的基礎。關系模型有嚴格的數(shù)學基礎,抽象級別比較高,而且簡單清晰,便于理解和使用。但是當時也有人認為關系模型是理想化的數(shù)據(jù)模型,用來實現(xiàn)DBMS是不現(xiàn)實的,尤其擔心關系數(shù)據(jù)庫的性能難以接受,更有人視其為當時正在進行中的網(wǎng)狀數(shù)據(jù)庫規(guī)范化工作的嚴重威脅。為了促進對問題的理解,1974年ACM牽頭組織了一次研討會,會上開展了一場分別以Codd和Bachman為首的支持和反對關系數(shù)據(jù)庫兩派之間的辯論。這次著名的辯論推動了關系數(shù)據(jù)庫的發(fā)展,使其最終成為現(xiàn)代數(shù)據(jù)庫產(chǎn)品的主流。

  1969年Edgar F.“Ted” Codd發(fā)明了關系數(shù)據(jù)庫。

  1970年關系模型建立之后,IBM公司在San Jose實驗室增加了更多的研究人員研究這個項目,這個項目就是著名的System R。其目標是論證一個全功能關系DBMS的可行性。該項目結束于1979年,完成了第一個實現(xiàn)SQL的 DBMS。然而IBM對IMS的承諾阻止了System R的投產(chǎn),一直到1980年System R才作為一個產(chǎn)品正式推向市場。IBM產(chǎn)品化步伐緩慢的三個原因:IBM重視信譽,重視質量,盡量減少故障;IBM是個大公司,官僚體系龐大,IBM內(nèi)部已經(jīng)有層次數(shù)據(jù)庫產(chǎn)品,相關人員不積極,甚至反對。

  然而同時,1973年加州大學伯克利分校的Michael Stonebraker和Eugene Wong利用System R已發(fā)布的信息開始開發(fā)自己的關系數(shù)據(jù)庫系統(tǒng)Ingres。他們開發(fā)的Ingres項目最后由Oracle公司、Ingres公司以及硅谷的其他廠商所商品化。后來,System R和Ingres系統(tǒng)雙雙獲得ACM的1988年“軟件系統(tǒng)獎”。

  1976年霍尼韋爾公司(Honeywell)開發(fā)了第一個商用關系數(shù)據(jù)庫系統(tǒng)——Multics Relational Data Store。關系型數(shù)據(jù)庫系統(tǒng)以關系代數(shù)為堅實的理論基礎,經(jīng)過幾十年的發(fā)展和實際應用,技術越來越成熟和完善。其代表產(chǎn)品有Oracle、IBM公司的 DB2、微軟公司的MS SQL Server以及Informix、ADABAS D等等。

  結構語言

  1974年IBM的Ray Boyce和Don Chamberlin將Codd關系數(shù)據(jù)庫的12條準則的數(shù)學定義以簡單的關鍵字語法表現(xiàn)出來,里程碑式地提出了SQL(Structured Query Language)語言。SQL語言的功能包括查詢、操縱、定義和控制,是一個綜合的、通用的關系數(shù)據(jù)庫語言,同時又是一種高度非過程化的語言,只要求用戶指出做什么而不需要指出怎么做。SQL集成實現(xiàn)了數(shù)據(jù)庫生命周期中的全部操作。SQL提供了與關系數(shù)據(jù)庫進行交互的方法,它可以與標準的編程語言一起工作。自產(chǎn)生之日起,SQL語言便成了檢驗關系數(shù)據(jù)庫的試金石,而SQL語言標準的每一次變更都指導著關系數(shù)據(jù)庫產(chǎn)品的發(fā)展方向。然而,直到二十世紀七十年代中期,關系理論才通過SQL在商業(yè)數(shù)據(jù)庫Oracle和DB2中使用。

  1986年,ANSI把SQL作為關系數(shù)據(jù)庫語言的美國標準,同年公布了標準SQL文本。SQL標準有3個版本?;維QL定義是ANSⅨ3135-89,“Database Language - SQL with Integrity Enhancement”[ANS89],一般叫做SQL-89。SQL-89定義了模式定義、數(shù)據(jù)操作和事務處理。SQL- 89和隨后的ANSⅨ3168-1989,“Database Language-Embedded SQL”構成了第一代SQL標準。ANSⅨ3135-1992[ANS92]描述了一種增強功能的SQL,叫做SQL-92標準。SQL-92包括模式操作,動態(tài)創(chuàng)建和SQL語句動態(tài)執(zhí)行、網(wǎng)絡環(huán)境支持等增強特性。在完成SQL-92標準后,ANSI和ISO即開始合作開發(fā)SQL3標準。SQL3的主要特點在于抽象數(shù)據(jù)類型的支持,為新一代對象關系數(shù)據(jù)庫提供了標準。

  1976年IBM E.F.Codd發(fā)表了一篇里程碑的論文“R系統(tǒng):數(shù)據(jù)庫關系理論”,介紹了關系數(shù)據(jù)庫理論和查詢語言SQL。Oracle的創(chuàng)始人Ellison非常仔細地閱讀了這篇文章,被其內(nèi)容震驚,這是第一次有人用全面一致的方案管理數(shù)據(jù)信息。作者E.F.Codd 1966年就發(fā)表了關系數(shù)據(jù)庫理論,并在IBM研究機構開發(fā)原型,這個項目就是R系統(tǒng),存取數(shù)據(jù)表的語言就是SQL。Ellison看完后,敏銳意識到在這個研究基礎上可以開發(fā)商用軟件系統(tǒng)。而當時大多數(shù)人認為關系數(shù)據(jù)庫不會有商業(yè)價值。Ellison認為這是他們的機會:他們決定開發(fā)通用商用數(shù)據(jù)庫系統(tǒng)Oracle,這個名字來源于他們曾給中央情報局做過的項目名。幾個月后,他們就開發(fā)了Oracle 1.0。但這只不過是個玩具,除了完成簡單關系查詢不能做任何事情,他們花相當長的時間才使Oracle變得可用,維持公司運轉主要靠承接一些數(shù)據(jù)庫管理項目和做顧問咨詢工作。而IBM卻沒有計劃開發(fā),為什么藍色巨人放棄了這個價值上百億的產(chǎn)品,原因有很多:IBM的研究人員大多是學術出身,他們最感興趣的是理論,而非推向市場的產(chǎn)品,從學術上看,研究成果應公開發(fā)表論文和演講能使他們成名,為什么不呢?還有一個很主要的原因就是IBM當時有一個銷售得還不錯的層次數(shù)據(jù)庫產(chǎn)品IMS。直到1985年IBM才發(fā)布了關系數(shù)據(jù)庫DB2 ,Ellision那時已經(jīng)成了千萬富翁。Ellison曾將IBM 選擇Microsoft 的MS-DOS作為IBM-PC機的操作系統(tǒng)比為:“世界企業(yè)經(jīng)營歷史上最嚴重的錯誤,價值超過了上千億美元。”IBM發(fā)表R系統(tǒng)論文,而且沒有很快推出關系數(shù)據(jù)庫產(chǎn)品的錯誤可能僅僅次之。Oracle的市值在1996年就達到了280億美元。

  對象數(shù)據(jù)

  隨著信息技術和市場的發(fā)展,人們發(fā)現(xiàn)關系型數(shù)據(jù)庫系統(tǒng)雖然技術很成熟,但其局限性也是顯而易見的:它能很好地處理所謂的“表格型數(shù)據(jù)”,卻對技術界出現(xiàn)的越來越多的復雜類型的數(shù)據(jù)無能為力。九十年代以后,技術界一直在研究和尋求新型數(shù)據(jù)庫系統(tǒng)。但在什么是新型數(shù)據(jù)庫系統(tǒng)的發(fā)展方向的問題上,產(chǎn)業(yè)界一度是相當困惑的。受當時技術風潮的影響,在相當一段時間內(nèi),人們把大量的精力花在研究“面向對象的數(shù)據(jù)庫系統(tǒng)(object oriented database)”或簡稱“OO數(shù)據(jù)庫系統(tǒng)”。值得一提的是,美國Stonebraker教授提出的面向對象的關系型數(shù)據(jù)庫理論曾一度受到產(chǎn)業(yè)界的青睞。而Stonebraker本人也在當時被Informix花大價錢聘為技術總負責人。

  然而,數(shù)年的發(fā)展表明,面向對象的關系型數(shù)據(jù)庫系統(tǒng)產(chǎn)品的市場發(fā)展的情況并不理想。理論上的完美性并沒有帶來市場的熱烈反應。其不成功的主要原因在于,這種數(shù)據(jù)庫產(chǎn)品的主要設計思想是企圖用新型數(shù)據(jù)庫系統(tǒng)來取代現(xiàn)有的數(shù)據(jù)庫系統(tǒng)。這對許多已經(jīng)運用數(shù)據(jù)庫系統(tǒng)多年并積累了大量工作數(shù)據(jù)的客戶,尤其是大客戶來說,是無法承受新舊數(shù)據(jù)間的轉換而帶來的巨大工作量及巨額開支的。另外,面向對象的關系型數(shù)據(jù)庫系統(tǒng)使查詢語言變得極其復雜,從而使得無論是數(shù)據(jù)庫的開發(fā)商家還是應用客戶都視其復雜的應用技術為畏途。

  管理變革

  二十世紀六十年代后期出現(xiàn)了一種新型數(shù)據(jù)庫軟件:決策支持系統(tǒng)(DSS),其目的是讓管理者在決策過程中更有效地利用數(shù)據(jù)信息。于是在1970年,第一個聯(lián)機分析處理工具——Express誕生了。其他決策支持系統(tǒng)緊隨其后,許多是由公司的IT部門開發(fā)出來的。

  1985年,第一個商務智能系統(tǒng)(business intelligence)由Metaphor計算機系統(tǒng)有限公司為Procter & Gamble公司開發(fā)出來,主要是用來連接銷售信息和零售的掃描儀數(shù)據(jù)。同年, Pilot軟件公司開始出售第一個商用客戶/服務器執(zhí)行信息系統(tǒng)——Command Center。同樣在這年,加州大學伯克利分校Ingres項目演變成Postgres,其目標是開發(fā)出一個面向對象的數(shù)據(jù)庫。此后一年, Graphael公司開發(fā)了第一個商用的對象數(shù)據(jù)庫系統(tǒng)—Gbase。

  1988年,IBM公司的研究者Barry Devlin和Paul Murphy發(fā)明了一個新的術語—信息倉庫,之后,IT的廠商開始構建實驗性的數(shù)據(jù)倉庫。1991年,W.H. "Bill" Inmon出版了一本“如何構建數(shù)據(jù)倉庫”的書,使得數(shù)據(jù)倉庫真正開始應用。

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

  二十世紀九十年代,隨著基于PC的客戶/服務器計算模式和企業(yè)軟件包的廣泛采用,數(shù)據(jù)管理的變革基本完成。數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉變成用戶所需要的各種數(shù)據(jù)管理的方式。Internet的異軍突起以及XML語言的出現(xiàn),給數(shù)據(jù)庫系統(tǒng)的發(fā)展開辟了一片新的天地。

  發(fā)展階段

  數(shù)據(jù)庫發(fā)展階段大致劃分為如下的幾個階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段、高級數(shù)據(jù)庫階段。

  人工管理階段

  20世紀50年代中期之前,計算機的軟硬件均不完善。硬件存儲設備只有磁帶、卡片和紙帶,軟件方面還沒有操作系統(tǒng),當時的計算機主要用于科學計算。這個階段由于還沒有軟件系統(tǒng)對數(shù)據(jù)進行管理,程序員在程序中不僅要規(guī)定數(shù)據(jù)的邏輯結構,還要設計其物理結構,包括存儲結構、存取方法、輸入輸出方式等。當數(shù)據(jù)的物理組織或存儲設備改變時,用戶程序就必須重新編制。由于數(shù)據(jù)的組織面向應用,不同的計算程序之間不能共享數(shù)據(jù),使得不同的應用之間存在大量的重復數(shù)據(jù),很難維護應用程序之間數(shù)據(jù)的一致性。

  這一階段的主要特征可歸納為如下幾點:

 ?。?)計算機中沒有支持數(shù)據(jù)管理的軟件,計算機系統(tǒng)不提供對用戶數(shù)據(jù)的管理功能,應用程序只包含自己要用到的全部數(shù)據(jù)。用戶編制程序,必須全面考慮好相關的數(shù)據(jù),包括數(shù)據(jù)的定義、存儲結構以即存取方法等。程序和數(shù)據(jù)是一個不可分割的整體。數(shù)據(jù)脫離了程序極具無任何存在的價值,數(shù)據(jù)無獨立性。

 ?。?)數(shù)據(jù)不能共享。不同的程序均有各自的數(shù)據(jù),這些數(shù)據(jù)對不同的程序通常是不相同的,不可共享;即使不同的程序使用了相同的一組數(shù)據(jù),這些數(shù)據(jù)也不能共享,程序中仍然需要各自加入這組數(shù)據(jù),哪個部分都不能省略?;谶@種數(shù)據(jù)的不可共享性,必然導致程序與程序之間存在大量的重復數(shù)據(jù),浪費存儲空間。

 ?。?)不能單獨保存數(shù)據(jù)。在程序中要規(guī)定數(shù)據(jù)的邏輯結構和物理結構,數(shù)據(jù)與程序不獨立?;跀?shù)據(jù)與程序是一個整體,數(shù)據(jù)只為本程序所使用,數(shù)據(jù)只有與相應的程序一起保存才有價值,否則毫無用處。所以,所有程序的數(shù)據(jù)不單獨保存。數(shù)據(jù)處理的方式是批處理。

  文件系統(tǒng)階段

  這一階段的主要標志是計算機中有了專門管理數(shù)據(jù)庫的軟件——操作系統(tǒng)(文件管理)。

  上世紀50年代中期到60年代中期,由于計算機大容量直接存儲設備如硬盤、磁鼓的出現(xiàn),

  推動了軟件技術的發(fā)展,軟件的領域出現(xiàn)了操作系統(tǒng)和高級軟件,操作系統(tǒng)中的文件系統(tǒng)是專門管理外存的數(shù)據(jù)管理軟件,操作系統(tǒng)為用戶使用文件提供了友好界面。操作系統(tǒng)的出現(xiàn)標志著數(shù)據(jù)管理步入一個新的階段。在文件系統(tǒng)階段,數(shù)據(jù)以文件為單位存儲在外存,且由操作系統(tǒng)統(tǒng)一管理,文件是操作系統(tǒng)管理的重要資源。

  文件系統(tǒng)階段的數(shù)據(jù)管理具有一下幾個特點:

  優(yōu)點

 ?。?)數(shù)據(jù)以“文件”形式可長期保存在外部存儲器的磁盤上。由于計算機的應用轉向信息管理,因此對文件要進行大量的查詢、修改和插入等操作。

 ?。?)數(shù)據(jù)的邏輯結構與物理結構有了區(qū)別,程序和數(shù)據(jù)分離,使數(shù)據(jù)與程序有了一定的獨立性,但比較簡單。數(shù)據(jù)的邏輯結構是指呈現(xiàn)在用戶面前的數(shù)據(jù)結構形式。數(shù)據(jù)的物理結構是指數(shù)據(jù)在數(shù)據(jù)在計算機存儲設備上的實際存儲結構。程度與數(shù)據(jù)之間具有“設備獨立性”,即程序只需用文件名就可與數(shù)據(jù)打交道,不必關心數(shù)據(jù)的物理位置。由操作系統(tǒng)的文件系統(tǒng)提供存取方法(讀/寫)。

 ?。?)文件組織已多樣化。有索引文件、鏈接文件和直接存取文件等。但文件之間相互獨立、缺乏聯(lián)系。數(shù)據(jù)之間的聯(lián)系需要通過程序去構造。

 ?。?)數(shù)據(jù)不再屬于某個特定的程序,可以重復使用,即數(shù)據(jù)面向應用。但是文件結構的設計仍是基于特定的用途,程序基于特定的物理結構和存取方法,因此程度與數(shù)據(jù)結構之間的依賴關系并未根本改變。

  (5)用戶的程序與數(shù)據(jù)可分別存放在外存儲器上,各個應用程序可以共享一組數(shù)據(jù),實現(xiàn)了以文件為單位的數(shù)據(jù)共享文件系統(tǒng)。

 ?。?)對數(shù)據(jù)的操作以記錄為單位。這是由于文件中只存儲數(shù)據(jù),不存儲文件記錄的結構描述信息。文件的建立、存取、查詢、插入、刪除、修改等操作,都要用程序來實現(xiàn)。

 ?。?)數(shù)據(jù)處理方式有批處理,也有聯(lián)機實時處理。

  缺點

  文件系統(tǒng)對計算機數(shù)據(jù)管理能力的提高雖然起了很大的作用,但隨著數(shù)據(jù)管理規(guī)模的擴大,數(shù)據(jù)量急劇增加,文價系統(tǒng)顯露出一些缺陷,問題表現(xiàn)在:

 ?。?)數(shù)據(jù)文件是為了滿足特定業(yè)務領域某一部門的專門需要而設計,數(shù)據(jù)和程序相互依賴,數(shù)據(jù)缺乏足夠的獨立性。

  (2)數(shù)據(jù)沒有集中管理的機制,其安全性和完整性無法保障,數(shù)據(jù)維護業(yè)務仍然由應用程序來承擔;

 ?。?)數(shù)據(jù)的組織仍然是面向程序,數(shù)據(jù)與程序的依賴性強,數(shù)據(jù)的邏輯結構不能方便地修改和擴充,數(shù)據(jù)邏輯結構的每一點微小改變都會影響到應用程序;而且文件之間的缺乏聯(lián)系,因而它們不能反映現(xiàn)實世界中事物之間的聯(lián)系,加上操作系統(tǒng)不負責維護文件之間的聯(lián)系,信息造成每個應用程序都有相對應的文件。如果文件之間有內(nèi)容上的聯(lián)系,那也只能由應用程序去處理,有可能同樣的數(shù)據(jù)在多個文件中重復儲存。這兩者造成了大量的數(shù)據(jù)冗余。

  (4)對現(xiàn)有數(shù)據(jù)文件不易擴充,不易移植,難以通過增、刪數(shù)據(jù)項來適應新的應用要求。

  數(shù)據(jù)庫系統(tǒng)階段

  20世紀60年代后期,隨著計算機在數(shù)據(jù)管理領域的普遍應用,人們對數(shù)據(jù)管理技術提出了更高的要求:希望面向企業(yè)或部門,以數(shù)據(jù)為中心組織數(shù)據(jù),減少數(shù)據(jù)的冗余,提供更高的數(shù)據(jù)共享能力,同時要求程序和數(shù)據(jù)具有較高的獨立性,當數(shù)據(jù)的邏輯結構改變時,不涉及數(shù)據(jù)的物理結構,也不影響應用程序,以降低應用程序研制與維護的費用。數(shù)據(jù)庫技術正是在這樣一個應用需求的基礎上發(fā)展起來的。

  概括起來,數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)管理具有以下幾個特點:

 ?。?)采用數(shù)據(jù)模型表示復雜的數(shù)據(jù)結構。數(shù)據(jù)模型不僅描述數(shù)據(jù)本身的特征,還要描述數(shù)據(jù)之間的聯(lián)系,這種聯(lián)系通過所有存取路徑。通過所有存儲路徑表示自然的數(shù)據(jù)聯(lián)系是數(shù)據(jù)庫與傳統(tǒng)文件的根本區(qū)別。這樣,數(shù)據(jù)不再面向特定的某個或多個應用,而是面對整個應用系統(tǒng)。如面向企業(yè)或部門,以數(shù)據(jù)為中心組織數(shù)據(jù),形成綜合性的數(shù)據(jù)庫,為各應用共享。

 ?。?)由于面對整個應用系統(tǒng)使得,數(shù)據(jù)冗余小,易修改、易擴充,實現(xiàn)了數(shù)據(jù)貢獻。不同的應用程序根據(jù)處理要求,從數(shù)據(jù)庫中獲取需要的數(shù)據(jù),這樣就減少了數(shù)據(jù)的重復存儲,也便于增加新的數(shù)據(jù)結構,便于維護數(shù)據(jù)的一致性。

  (3)對數(shù)據(jù)進行統(tǒng)一管理和控制,提供了數(shù)據(jù)的安全性、完整性、以及并發(fā)控制。

 ?。?)程序和數(shù)據(jù)有較高的獨立性。數(shù)據(jù)的邏輯結構與物理結構之間的差別可以很大,用戶以簡單的邏輯結構操作數(shù)據(jù)而無須考慮數(shù)據(jù)的物理結構。

  (5)具有良好的用戶接口,用戶可方便地開發(fā)和使用數(shù)據(jù)庫。

  從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫系統(tǒng),這在信息領域中具有里程碑的意義。在文件系統(tǒng)階段,人們在信息處理中關注的中心問題是系統(tǒng)功能的設計,因此程序設計占主導地位;而在數(shù)據(jù)庫方式下,數(shù)據(jù)開始占據(jù)了中心位置,數(shù)據(jù)的結構設計成為信息系統(tǒng)首先關心的問題,而應用程序則以既定的數(shù)據(jù)結構為基礎進行設計。

  發(fā)展趨勢

  隨著信息管理內(nèi)容的不斷擴展,出現(xiàn)了豐富多樣的數(shù)據(jù)模型(層次模型,網(wǎng)狀模型,關系模型,面向對象模型,半結構化模型等),新技術也層出不窮(數(shù)據(jù)流,Web數(shù)據(jù)管理,數(shù)據(jù)挖掘等)。每隔幾年,國際上一些資深的數(shù)據(jù)庫專家就會聚集一堂,探討數(shù)據(jù)庫研究現(xiàn)狀,存在的問題和未來需要關注的新技術焦點。過去已有的幾個類似報告包括:1989年Future Directions inDBMS Research-The Laguna BeachParticipants ;1990年DatabaseSystems : Achievements and Opportunities ;1991年W.H. Inmon 發(fā)表的《構建數(shù)據(jù)倉庫》;1995年Database。


內(nèi)容來自百科網(wǎng)