定義
定義1
數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的建立在計(jì)算機(jī)存儲(chǔ)設(shè)備上的倉(cāng)庫(kù)。
簡(jiǎn)單來(lái)說(shuō)是本身可視為電子化的文件柜——存儲(chǔ)電子文件的處所,用戶可以對(duì)文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。
在經(jīng)濟(jì)管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進(jìn)這樣的“倉(cāng)庫(kù)”,并根據(jù)管理的需要進(jìn)行相應(yīng)的處理。
例如,企業(yè)或事業(yè)單位的人事部門(mén)常常要把本單位職工的基本情況(職工號(hào)、姓名、年齡、性別、籍貫、工資、簡(jiǎn)歷等)存放在表中,這張表就可以看成是一個(gè)數(shù)據(jù)庫(kù)。有了這個(gè)"數(shù)據(jù)倉(cāng)庫(kù)"我們就可以根據(jù)需要隨時(shí)查詢某職工的基本情況,也可以查詢工資在某個(gè)范圍內(nèi)的職工人數(shù)等等。這些工作如果都能在計(jì)算機(jī)上自動(dòng)進(jìn)行,那我們的人事管理就可以達(dá)到極高的水平。此外,在財(cái)務(wù)管理、倉(cāng)庫(kù)管理、生產(chǎn)管理中也需要建立眾多的這種"數(shù)據(jù)庫(kù)",使其可以利用計(jì)算機(jī)實(shí)現(xiàn)財(cái)務(wù)、倉(cāng)庫(kù)、生產(chǎn)的自動(dòng)化管理。
定義2
嚴(yán)格來(lái)說(shuō),數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)指的是以一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存在一起、具有盡可能小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性的特點(diǎn)并可在一定范圍內(nèi)為多個(gè)用戶共享。
這種數(shù)據(jù)集合具有如下特點(diǎn):盡可能不重復(fù),以最優(yōu)方式為某個(gè)特定組織的多種應(yīng)用服務(wù),其數(shù)據(jù)結(jié)構(gòu)獨(dú)立于使用它的應(yīng)用程序,對(duì)數(shù)據(jù)的增、刪、改、查由統(tǒng)一軟件進(jìn)行管理和控制。從發(fā)展的歷史看,數(shù)據(jù)庫(kù)是數(shù)據(jù)管理的高級(jí)階段,它是由文件管理系統(tǒng)發(fā)展起來(lái)的。
處理系統(tǒng)
數(shù)據(jù)庫(kù)是一個(gè)單位或是一個(gè)應(yīng)用領(lǐng)域的通用數(shù)據(jù)處理系統(tǒng),它存儲(chǔ)的是屬于企業(yè)和事業(yè)部門(mén)、團(tuán)體和個(gè)人的有關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是從全局觀點(diǎn)出發(fā)建立的,按一定的數(shù)據(jù)模型進(jìn)行組織、描述和存儲(chǔ)。其結(jié)構(gòu)基于數(shù)據(jù)間的自然聯(lián)系,從而可提供一切必要的存取路徑,且數(shù)據(jù)不再針對(duì)某一應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化特征。
數(shù)據(jù)庫(kù)中的數(shù)據(jù)是為眾多用戶所共享其信息而建立的,已經(jīng)擺脫了具體程序的限制和制約。不同的用戶可以按各自的用法使用數(shù)據(jù)庫(kù)中的數(shù)據(jù);多個(gè)用戶可以同時(shí)共享數(shù)據(jù)庫(kù)中的數(shù)據(jù)資源,即不同的用戶可以同時(shí)存取數(shù)據(jù)庫(kù)中的同一個(gè)數(shù)據(jù)。數(shù)據(jù)共享性不僅滿足了各用戶對(duì)信息內(nèi)容的要求,同時(shí)也滿足了各用戶之間信息通信的要求。
基本結(jié)構(gòu)
數(shù)據(jù)庫(kù)的基本結(jié)構(gòu)分三個(gè)層次,反映了觀察數(shù)據(jù)庫(kù)的三種不同角度。
以內(nèi)模式為框架所組成的數(shù)據(jù)庫(kù)叫做物理數(shù)據(jù)庫(kù);以概念模式為框架所組成的數(shù)據(jù)叫概念數(shù)據(jù)庫(kù);以外模式為框架所組成的數(shù)據(jù)庫(kù)叫用戶數(shù)據(jù)庫(kù)。
?、?物理數(shù)據(jù)層。
它是數(shù)據(jù)庫(kù)的最內(nèi)層,是物理存貯設(shè)備上實(shí)際存儲(chǔ)的數(shù)據(jù)的集合。這些數(shù)據(jù)是原始數(shù)據(jù),是用戶加工的對(duì)象,由內(nèi)部模式描述的指令操作處理的位串、字符和字組成。
?、?概念數(shù)據(jù)層。
它是數(shù)據(jù)庫(kù)的中間一層,是數(shù)據(jù)庫(kù)的整體邏輯表示。指出了每個(gè)數(shù)據(jù)的邏輯定義及數(shù)據(jù)間的邏輯聯(lián)系,是存貯記錄的集合。它所涉及的是數(shù)據(jù)庫(kù)所有對(duì)象的邏輯關(guān)系,而不是它們的物理情況,是數(shù)據(jù)庫(kù)管理員概念下的數(shù)據(jù)庫(kù)。
?、?用戶數(shù)據(jù)層。
它是用戶所看到和使用的數(shù)據(jù)庫(kù),表示了一個(gè)或一些特定用戶使用的數(shù)據(jù)集合,即邏輯記錄的集合。
數(shù)據(jù)庫(kù)不同層次之間的聯(lián)系是通過(guò)映射進(jìn)行轉(zhuǎn)換的。
主要特點(diǎn)
?、?實(shí)現(xiàn)數(shù)據(jù)共享
數(shù)據(jù)共享包含所有用戶可同時(shí)存取數(shù)據(jù)庫(kù)中的數(shù)據(jù),也包括用戶可以用各種方式通過(guò)接口使用數(shù)據(jù)庫(kù),并提供數(shù)據(jù)共享。
?、?減少數(shù)據(jù)的冗余度
同文件系統(tǒng)相比,由于數(shù)據(jù)庫(kù)實(shí)現(xiàn)了數(shù)據(jù)共享,從而避免了用戶各自建立應(yīng)用文件。減少了大量重復(fù)數(shù)據(jù),減少了數(shù)據(jù)冗余,維護(hù)了數(shù)據(jù)的一致性。
?、?數(shù)據(jù)的獨(dú)立性
數(shù)據(jù)的獨(dú)立性包括邏輯獨(dú)立性(數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)和應(yīng)用程序相互獨(dú)立)和物理獨(dú)立性(數(shù)據(jù)物理結(jié)構(gòu)的變化不影響數(shù)據(jù)的邏輯結(jié)構(gòu))。
?、?數(shù)據(jù)實(shí)現(xiàn)集中控制
文件管理方式中,數(shù)據(jù)處于一種分散的狀態(tài),不同的用戶或同一用戶在不同處理中其文件之間毫無(wú)關(guān)系。利用數(shù)據(jù)庫(kù)可對(duì)數(shù)據(jù)進(jìn)行集中控制和管理,并通過(guò)數(shù)據(jù)模型表示各種數(shù)據(jù)的組織以及數(shù)據(jù)間的聯(lián)系。
?、蓴?shù)據(jù)一致性和可維護(hù)性,以確保數(shù)據(jù)的安全性和可靠性
主要包括:①安全性控制:以防止數(shù)據(jù)丟失、錯(cuò)誤更新和越權(quán)使用;②完整性控制:保證數(shù)據(jù)的正確性、有效性和相容性;③并發(fā)控制:使在同一時(shí)間周期內(nèi),允許對(duì)數(shù)據(jù)實(shí)現(xiàn)多路存取,又能防止用戶之間的不正常交互作用。
?、?故障恢復(fù)
由數(shù)據(jù)庫(kù)管理系統(tǒng)提供一套方法,可及時(shí)發(fā)現(xiàn)故障和修復(fù)故障,從而防止數(shù)據(jù)被破壞。數(shù)據(jù)庫(kù)系統(tǒng)能盡快恢復(fù)數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行時(shí)出現(xiàn)的故障,可能是物理上或是邏輯上的錯(cuò)誤。比如對(duì)系統(tǒng)的誤操作造成的數(shù)據(jù)錯(cuò)誤等。
數(shù)據(jù)種類
數(shù)據(jù)庫(kù)通常分為層次式數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)式數(shù)據(jù)庫(kù)和關(guān)系式數(shù)據(jù)庫(kù)三種。而不同的數(shù)據(jù)庫(kù)是按不同的數(shù)據(jù)結(jié)構(gòu)來(lái)聯(lián)系和組織的。
1.數(shù)據(jù)結(jié)構(gòu)模型
⑴數(shù)據(jù)結(jié)構(gòu)
所謂數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式或數(shù)據(jù)之間的聯(lián)系。
如果用D表示數(shù)據(jù),用R表示數(shù)據(jù)對(duì)象之間存在的關(guān)系集合,則將DS=(D,R)稱為數(shù)據(jù)結(jié)構(gòu)。
例如,設(shè)有一個(gè)電話號(hào)碼簿,它記錄了n個(gè)人的名字和相應(yīng)的電話號(hào)碼。為了方便地查找某人的電話號(hào)碼,將人名和號(hào)碼按字典順序排列,并在名字的后面跟隨著對(duì)應(yīng)的電話號(hào)碼。這樣,若要查找某人的電話號(hào)碼(假定他的名字的第一個(gè)字母是Y),那么只須查找以Y開(kāi)頭的那些名字就可以了。該例中,數(shù)據(jù)的集合D就是人名和電話號(hào)碼,它們之間的聯(lián)系R就是按字典順序的排列,其相應(yīng)的數(shù)據(jù)結(jié)構(gòu)就是DS=(D,R),即一個(gè)數(shù)組。
?、茢?shù)據(jù)結(jié)構(gòu)類型
數(shù)據(jù)結(jié)構(gòu)又分為數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的物理結(jié)構(gòu)。
數(shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯的角度(即數(shù)據(jù)間的聯(lián)系和組織方式)來(lái)觀察數(shù)據(jù),分析數(shù)據(jù),與數(shù)據(jù)的存儲(chǔ)位置無(wú)關(guān);數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在計(jì)算機(jī)中存放的結(jié)構(gòu),即數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的實(shí)現(xiàn)形式,所以物理結(jié)構(gòu)也被稱為存儲(chǔ)結(jié)構(gòu)。
這里只研究數(shù)據(jù)的邏輯結(jié)構(gòu),并將反映和實(shí)現(xiàn)數(shù)據(jù)聯(lián)系的方法稱為數(shù)據(jù)模型。
比較流行的數(shù)據(jù)模型有三種,即按圖論理論建立的層次結(jié)構(gòu)模型和網(wǎng)狀結(jié)構(gòu)模型以及按關(guān)系理論建立的關(guān)系結(jié)構(gòu)模型。
2.層次、網(wǎng)狀和關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)
⑴層次結(jié)構(gòu)模型
層次結(jié)構(gòu)模型實(shí)質(zhì)上是一種有根結(jié)點(diǎn)的定向有序樹(shù)(在數(shù)學(xué)中"樹(shù)"被定義為一個(gè)無(wú)回的連通圖)。下圖是一個(gè)高等學(xué)校的組織結(jié)構(gòu)圖。這個(gè)組織結(jié)構(gòu)圖像一棵樹(shù),校部就是樹(shù)根(稱為根結(jié)點(diǎn)),各系、專業(yè)、教師、學(xué)生等為枝點(diǎn)(稱為結(jié)點(diǎn)),樹(shù)根與枝點(diǎn)之間的聯(lián)系稱為邊,樹(shù)根與邊之比為1:N,即樹(shù)根只有一個(gè),樹(shù)枝有N個(gè)。
按照層次模型建立的數(shù)據(jù)庫(kù)系統(tǒng)稱為層次模型數(shù)據(jù)庫(kù)系統(tǒng)。IMS(Information Management System)是其典型代表。
⑵網(wǎng)狀結(jié)構(gòu)模型
按照網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)建立的數(shù)據(jù)庫(kù)系統(tǒng)稱為網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng),其典型代表是DBTG(Database Task Group)。用數(shù)學(xué)方法可將網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為層次數(shù)據(jù)結(jié)構(gòu)。
?、?關(guān)系結(jié)構(gòu)模型
關(guān)系式數(shù)據(jù)結(jié)構(gòu)把一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡(jiǎn)單的二元關(guān)系(即二維表格形式)。例如某單位的職工關(guān)系就是一個(gè)二元關(guān)系。
由關(guān)系數(shù)據(jù)結(jié)構(gòu)組成的數(shù)據(jù)庫(kù)系統(tǒng)被稱為關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。
在關(guān)系數(shù)據(jù)庫(kù)中,對(duì)數(shù)據(jù)的操作幾乎全部建立在一個(gè)或多個(gè)關(guān)系表格上,通過(guò)對(duì)這些關(guān)系表格的分類、合并、連接或選取等運(yùn)算來(lái)實(shí)現(xiàn)數(shù)據(jù)的管理。
dBASEⅡ就是這類數(shù)據(jù)庫(kù)管理系統(tǒng)的典型代表。對(duì)于一個(gè)實(shí)際的應(yīng)用問(wèn)題(如人事管理問(wèn)題),有時(shí)需要多個(gè)關(guān)系才能實(shí)現(xiàn)。用dBASEⅡ建立起來(lái)的一個(gè)關(guān)系稱為一個(gè)數(shù)據(jù)庫(kù)(或稱數(shù)據(jù)庫(kù)文件),而把對(duì)應(yīng)多個(gè)關(guān)系建立起來(lái)的多個(gè)數(shù)據(jù)庫(kù)稱為數(shù)據(jù)庫(kù)系統(tǒng)。dBASEⅡ的另一個(gè)重要功能是通過(guò)建立命令文件來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的使用和管理,對(duì)于一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)相應(yīng)的命令序列文件,稱為該數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)。
因此,可以概括地說(shuō),一個(gè)關(guān)系稱為一個(gè)數(shù)據(jù)庫(kù),若干個(gè)數(shù)據(jù)庫(kù)可以構(gòu)成一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)可以派生出各種不同類型的輔助文件和建立它的應(yīng)用系統(tǒng)。
發(fā)展簡(jiǎn)史
技術(shù)發(fā)展
使用計(jì)算機(jī)后,隨著數(shù)據(jù)處理量的增長(zhǎng),產(chǎn)生了數(shù)據(jù)管理技術(shù)。數(shù)據(jù)管理技術(shù)的發(fā)展與計(jì)算機(jī)硬件(主要是外部存儲(chǔ)器)系統(tǒng)軟件及計(jì)算機(jī)應(yīng)用的范圍有著密切的聯(lián)系。數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了以下四個(gè)階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫(kù)階段和高級(jí)數(shù)據(jù)庫(kù)技術(shù)階段。
數(shù)據(jù)管理的誕生
數(shù)據(jù)庫(kù)的歷史可以追溯到五十年前,那時(shí)的數(shù)據(jù)管理非常簡(jiǎn)單。通過(guò)大量的分類、比較和表格繪制的機(jī)器運(yùn)行數(shù)百萬(wàn)穿孔卡片來(lái)進(jìn)行數(shù)據(jù)的處理,其運(yùn)行結(jié)果在紙上打印出來(lái)或者制成新的穿孔卡片。而數(shù)據(jù)管理就是對(duì)所有這些穿孔卡片進(jìn)行物理的儲(chǔ)存和處理。然而,1950 年雷明頓蘭德公司(Remington Rand Inc)的一種叫做Univac I 的計(jì)算機(jī)推出了一種一秒鐘可以輸入數(shù)百條記錄的磁帶驅(qū)動(dòng)器,從而引發(fā)了數(shù)據(jù)管理的革命。1956 年IBM生產(chǎn)出第一個(gè)磁盤(pán)驅(qū)動(dòng)器—— the Model 305 RAMAC。此驅(qū)動(dòng)器有50 個(gè)盤(pán)片,每個(gè)盤(pán)片直徑是2 英尺,可以儲(chǔ)存5MB的數(shù)據(jù)。使用磁盤(pán)最大的好處是可以隨機(jī)存取數(shù)據(jù),而穿孔卡片和磁帶只能順序存取數(shù)據(jù)。
1951: Univac系統(tǒng)使用磁帶和穿孔卡片作為數(shù)據(jù)存儲(chǔ)。
數(shù)據(jù)庫(kù)系統(tǒng)的萌芽出現(xiàn)于二十世紀(jì)60 年代。當(dāng)時(shí)計(jì)算機(jī)開(kāi)始廣泛地應(yīng)用于數(shù)據(jù)管理,對(duì)數(shù)據(jù)的共享提出了越來(lái)越高的要求。傳統(tǒng)的文件系統(tǒng)已經(jīng)不能滿足人們的需要,能夠統(tǒng)一管理和共享數(shù)據(jù)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)應(yīng)運(yùn)而生。數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)的核心和基礎(chǔ),各種DBMS軟件都是基于某種數(shù)據(jù)模型的。所以通常也按照數(shù)據(jù)模型的特點(diǎn)將傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)分成網(wǎng)狀數(shù)據(jù)庫(kù)、層次數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)三類。
最早出現(xiàn)的網(wǎng)狀DBMS,是美國(guó)通用電氣公司Bachman等人在1961年開(kāi)發(fā)的IDS(Integrated Data Store)。1964年通用電氣公司(General ElectricCo.)的Charles Bachman 成功地開(kāi)發(fā)出世界上第一個(gè)網(wǎng)狀DBMS也即第一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)——集成數(shù)據(jù)存儲(chǔ)(Integrated Data Store IDS),奠定了網(wǎng)狀數(shù)據(jù)庫(kù)的基礎(chǔ),并在當(dāng)時(shí)得到了廣泛的發(fā)行和應(yīng)用。IDS 具有數(shù)據(jù)模式和日志的特征,但它只能在GE主機(jī)上運(yùn)行,并且數(shù)據(jù)庫(kù)只有一個(gè)文件,數(shù)據(jù)庫(kù)所有的表必須通過(guò)手工編碼生成。之后,通用電氣公司一個(gè)客戶——BF Goodrich Chemical 公司最終不得不重寫(xiě)了整個(gè)系統(tǒng),并將重寫(xiě)后的系統(tǒng)命名為集成數(shù)據(jù)管理系統(tǒng)(IDMS)。
網(wǎng)狀數(shù)據(jù)庫(kù)模型對(duì)于層次和非層次結(jié)構(gòu)的事物都能比較自然的模擬,在關(guān)系數(shù)據(jù)庫(kù)出現(xiàn)之前網(wǎng)狀DBMS要比層次DBMS用得普遍。在數(shù)據(jù)庫(kù)發(fā)展史上,網(wǎng)狀數(shù)據(jù)庫(kù)占有重要地位。
層次型DBMS是緊隨網(wǎng)絡(luò)型數(shù)據(jù)庫(kù)而出現(xiàn)的,最著名最典型的層次數(shù)據(jù)庫(kù)系統(tǒng)是IBM 公司在1968 年開(kāi)發(fā)的IMS(Information Management System),一種適合其主機(jī)的層次數(shù)據(jù)庫(kù)。這是IBM公司研制的最早的大型數(shù)據(jù)庫(kù)系統(tǒng)程序產(chǎn)品。從60年代末產(chǎn)生起,如今已經(jīng)發(fā)展到IMSV6,提供群集、N路數(shù)據(jù)共享、消息隊(duì)列共享等先進(jìn)特性的支持。這個(gè)具有30年歷史的數(shù)據(jù)庫(kù)產(chǎn)品在如今的WWW應(yīng)用連接、商務(wù)智能應(yīng)用中扮演著新的角色。
1973年Cullinane公司(也就是后來(lái)的Cullinet軟件公司),開(kāi)始出售Goodrich公司的IDMS改進(jìn)版本,并且逐漸成為當(dāng)時(shí)世界上最大的軟件公司。
關(guān)系由來(lái)
網(wǎng)狀數(shù)據(jù)庫(kù)和層次數(shù)據(jù)庫(kù)已經(jīng)很好地解決了數(shù)據(jù)的集中和共享問(wèn)題,但是在數(shù)據(jù)獨(dú)立性和抽象級(jí)別上仍有很大欠缺。用戶在對(duì)這兩種數(shù)據(jù)庫(kù)進(jìn)行存取時(shí),仍然需要明確數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),指出存取路徑。而后來(lái)出現(xiàn)的關(guān)系數(shù)據(jù)庫(kù)較好地解決了這些問(wèn)題。
1970年,IBM的研究員E.F.Codd博士在刊物《Communication of the ACM》上發(fā)表了一篇名為“A Relational Model of Data for Large Shared Data Banks”的論文,提出了關(guān)系模型的概念,奠定了關(guān)系模型的理論基礎(chǔ)。盡管之前在1968年Childs已經(jīng)提出了面向集合的模型,然而這篇論文被普遍認(rèn)為是數(shù)據(jù)庫(kù)系統(tǒng)歷史上具有劃時(shí)代意義的里程碑。Codd的心愿是為數(shù)據(jù)庫(kù)建立一個(gè)優(yōu)美的數(shù)據(jù)模型。后來(lái)Codd又陸續(xù)發(fā)表多篇文章,論述了范式理論和衡量關(guān)系系統(tǒng)的12條標(biāo)準(zhǔn),用數(shù)學(xué)理論奠定了關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ)。關(guān)系模型有嚴(yán)格的數(shù)學(xué)基礎(chǔ),抽象級(jí)別比較高,而且簡(jiǎn)單清晰,便于理解和使用。但是當(dāng)時(shí)也有人認(rèn)為關(guān)系模型是理想化的數(shù)據(jù)模型,用來(lái)實(shí)現(xiàn)DBMS是不現(xiàn)實(shí)的,尤其擔(dān)心關(guān)系數(shù)據(jù)庫(kù)的性能難以接受,更有人視其為當(dāng)時(shí)正在進(jìn)行中的網(wǎng)狀數(shù)據(jù)庫(kù)規(guī)范化工作的嚴(yán)重威脅。為了促進(jìn)對(duì)問(wèn)題的理解,1974年ACM牽頭組織了一次研討會(huì),會(huì)上開(kāi)展了一場(chǎng)分別以Codd和Bachman為首的支持和反對(duì)關(guān)系數(shù)據(jù)庫(kù)兩派之間的辯論。這次著名的辯論推動(dòng)了關(guān)系數(shù)據(jù)庫(kù)的發(fā)展,使其最終成為現(xiàn)代數(shù)據(jù)庫(kù)產(chǎn)品的主流。
1969年Edgar F.“Ted” Codd發(fā)明了關(guān)系數(shù)據(jù)庫(kù)。
1970年關(guān)系模型建立之后,IBM公司在San Jose實(shí)驗(yàn)室增加了更多的研究人員研究這個(gè)項(xiàng)目,這個(gè)項(xiàng)目就是著名的System R。其目標(biāo)是論證一個(gè)全功能關(guān)系DBMS的可行性。該項(xiàng)目結(jié)束于1979年,完成了第一個(gè)實(shí)現(xiàn)SQL的 DBMS。然而IBM對(duì)IMS的承諾阻止了System R的投產(chǎn),一直到1980年System R才作為一個(gè)產(chǎn)品正式推向市場(chǎng)。IBM產(chǎn)品化步伐緩慢的三個(gè)原因:IBM重視信譽(yù),重視質(zhì)量,盡量減少故障;IBM是個(gè)大公司,官僚體系龐大,IBM內(nèi)部已經(jīng)有層次數(shù)據(jù)庫(kù)產(chǎn)品,相關(guān)人員不積極,甚至反對(duì)。
然而同時(shí),1973年加州大學(xué)伯克利分校的Michael Stonebraker和Eugene Wong利用System R已發(fā)布的信息開(kāi)始開(kāi)發(fā)自己的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)Ingres。他們開(kāi)發(fā)的Ingres項(xiàng)目最后由Oracle公司、Ingres公司以及硅谷的其他廠商所商品化。后來(lái),System R和Ingres系統(tǒng)雙雙獲得ACM的1988年“軟件系統(tǒng)獎(jiǎng)”。
1976年霍尼韋爾公司(Honeywell)開(kāi)發(fā)了第一個(gè)商用關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)——Multics Relational Data Store。關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)以關(guān)系代數(shù)為堅(jiān)實(shí)的理論基礎(chǔ),經(jīng)過(guò)幾十年的發(fā)展和實(shí)際應(yīng)用,技術(shù)越來(lái)越成熟和完善。其代表產(chǎn)品有Oracle、IBM公司的 DB2、微軟公司的MS SQL Server以及Informix、ADABAS D等等。
結(jié)構(gòu)語(yǔ)言
1974年IBM的Ray Boyce和Don Chamberlin將Codd關(guān)系數(shù)據(jù)庫(kù)的12條準(zhǔn)則的數(shù)學(xué)定義以簡(jiǎn)單的關(guān)鍵字語(yǔ)法表現(xiàn)出來(lái),里程碑式地提出了SQL(Structured Query Language)語(yǔ)言。SQL語(yǔ)言的功能包括查詢、操縱、定義和控制,是一個(gè)綜合的、通用的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,同時(shí)又是一種高度非過(guò)程化的語(yǔ)言,只要求用戶指出做什么而不需要指出怎么做。SQL集成實(shí)現(xiàn)了數(shù)據(jù)庫(kù)生命周期中的全部操作。SQL提供了與關(guān)系數(shù)據(jù)庫(kù)進(jìn)行交互的方法,它可以與標(biāo)準(zhǔn)的編程語(yǔ)言一起工作。自產(chǎn)生之日起,SQL語(yǔ)言便成了檢驗(yàn)關(guān)系數(shù)據(jù)庫(kù)的試金石,而SQL語(yǔ)言標(biāo)準(zhǔn)的每一次變更都指導(dǎo)著關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品的發(fā)展方向。然而,直到二十世紀(jì)七十年代中期,關(guān)系理論才通過(guò)SQL在商業(yè)數(shù)據(jù)庫(kù)Oracle和DB2中使用。
1986年,ANSI把SQL作為關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的美國(guó)標(biāo)準(zhǔn),同年公布了標(biāo)準(zhǔn)SQL文本。SQL標(biāo)準(zhǔn)有3個(gè)版本?;維QL定義是ANSⅨ3135-89,“Database Language - SQL with Integrity Enhancement”[ANS89],一般叫做SQL-89。SQL-89定義了模式定義、數(shù)據(jù)操作和事務(wù)處理。SQL- 89和隨后的ANSⅨ3168-1989,“Database Language-Embedded SQL”構(gòu)成了第一代SQL標(biāo)準(zhǔn)。ANSⅨ3135-1992[ANS92]描述了一種增強(qiáng)功能的SQL,叫做SQL-92標(biāo)準(zhǔn)。SQL-92包括模式操作,動(dòng)態(tài)創(chuàng)建和SQL語(yǔ)句動(dòng)態(tài)執(zhí)行、網(wǎng)絡(luò)環(huán)境支持等增強(qiáng)特性。在完成SQL-92標(biāo)準(zhǔn)后,ANSI和ISO即開(kāi)始合作開(kāi)發(fā)SQL3標(biāo)準(zhǔn)。SQL3的主要特點(diǎn)在于抽象數(shù)據(jù)類型的支持,為新一代對(duì)象關(guān)系數(shù)據(jù)庫(kù)提供了標(biāo)準(zhǔn)。
1976年IBM E.F.Codd發(fā)表了一篇里程碑的論文“R系統(tǒng):數(shù)據(jù)庫(kù)關(guān)系理論”,介紹了關(guān)系數(shù)據(jù)庫(kù)理論和查詢語(yǔ)言SQL。Oracle的創(chuàng)始人Ellison非常仔細(xì)地閱讀了這篇文章,被其內(nèi)容震驚,這是第一次有人用全面一致的方案管理數(shù)據(jù)信息。作者E.F.Codd 1966年就發(fā)表了關(guān)系數(shù)據(jù)庫(kù)理論,并在IBM研究機(jī)構(gòu)開(kāi)發(fā)原型,這個(gè)項(xiàng)目就是R系統(tǒng),存取數(shù)據(jù)表的語(yǔ)言就是SQL。Ellison看完后,敏銳意識(shí)到在這個(gè)研究基礎(chǔ)上可以開(kāi)發(fā)商用軟件系統(tǒng)。而當(dāng)時(shí)大多數(shù)人認(rèn)為關(guān)系數(shù)據(jù)庫(kù)不會(huì)有商業(yè)價(jià)值。Ellison認(rèn)為這是他們的機(jī)會(huì):他們決定開(kāi)發(fā)通用商用數(shù)據(jù)庫(kù)系統(tǒng)Oracle,這個(gè)名字來(lái)源于他們?cè)o中央情報(bào)局做過(guò)的項(xiàng)目名。幾個(gè)月后,他們就開(kāi)發(fā)了Oracle 1.0。但這只不過(guò)是個(gè)玩具,除了完成簡(jiǎn)單關(guān)系查詢不能做任何事情,他們花相當(dāng)長(zhǎng)的時(shí)間才使Oracle變得可用,維持公司運(yùn)轉(zhuǎn)主要靠承接一些數(shù)據(jù)庫(kù)管理項(xiàng)目和做顧問(wèn)咨詢工作。而IBM卻沒(méi)有計(jì)劃開(kāi)發(fā),為什么藍(lán)色巨人放棄了這個(gè)價(jià)值上百億的產(chǎn)品,原因有很多:IBM的研究人員大多是學(xué)術(shù)出身,他們最感興趣的是理論,而非推向市場(chǎng)的產(chǎn)品,從學(xué)術(shù)上看,研究成果應(yīng)公開(kāi)發(fā)表論文和演講能使他們成名,為什么不呢?還有一個(gè)很主要的原因就是IBM當(dāng)時(shí)有一個(gè)銷售得還不錯(cuò)的層次數(shù)據(jù)庫(kù)產(chǎn)品IMS。直到1985年IBM才發(fā)布了關(guān)系數(shù)據(jù)庫(kù)DB2 ,Ellision那時(shí)已經(jīng)成了千萬(wàn)富翁。Ellison曾將IBM 選擇Microsoft 的MS-DOS作為IBM-PC機(jī)的操作系統(tǒng)比為:“世界企業(yè)經(jīng)營(yíng)歷史上最嚴(yán)重的錯(cuò)誤,價(jià)值超過(guò)了上千億美元。”IBM發(fā)表R系統(tǒng)論文,而且沒(méi)有很快推出關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品的錯(cuò)誤可能僅僅次之。Oracle的市值在1996年就達(dá)到了280億美元。
對(duì)象數(shù)據(jù)
隨著信息技術(shù)和市場(chǎng)的發(fā)展,人們發(fā)現(xiàn)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)雖然技術(shù)很成熟,但其局限性也是顯而易見(jiàn)的:它能很好地處理所謂的“表格型數(shù)據(jù)”,卻對(duì)技術(shù)界出現(xiàn)的越來(lái)越多的復(fù)雜類型的數(shù)據(jù)無(wú)能為力。九十年代以后,技術(shù)界一直在研究和尋求新型數(shù)據(jù)庫(kù)系統(tǒng)。但在什么是新型數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展方向的問(wèn)題上,產(chǎn)業(yè)界一度是相當(dāng)困惑的。受當(dāng)時(shí)技術(shù)風(fēng)潮的影響,在相當(dāng)一段時(shí)間內(nèi),人們把大量的精力花在研究“面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng)(object oriented database)”或簡(jiǎn)稱“OO數(shù)據(jù)庫(kù)系統(tǒng)”。值得一提的是,美國(guó)Stonebraker教授提出的面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫(kù)理論曾一度受到產(chǎn)業(yè)界的青睞。而Stonebraker本人也在當(dāng)時(shí)被Informix花大價(jià)錢(qián)聘為技術(shù)總負(fù)責(zé)人。
然而,數(shù)年的發(fā)展表明,面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)產(chǎn)品的市場(chǎng)發(fā)展的情況并不理想。理論上的完美性并沒(méi)有帶來(lái)市場(chǎng)的熱烈反應(yīng)。其不成功的主要原因在于,這種數(shù)據(jù)庫(kù)產(chǎn)品的主要設(shè)計(jì)思想是企圖用新型數(shù)據(jù)庫(kù)系統(tǒng)來(lái)取代現(xiàn)有的數(shù)據(jù)庫(kù)系統(tǒng)。這對(duì)許多已經(jīng)運(yùn)用數(shù)據(jù)庫(kù)系統(tǒng)多年并積累了大量工作數(shù)據(jù)的客戶,尤其是大客戶來(lái)說(shuō),是無(wú)法承受新舊數(shù)據(jù)間的轉(zhuǎn)換而帶來(lái)的巨大工作量及巨額開(kāi)支的。另外,面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)使查詢語(yǔ)言變得極其復(fù)雜,從而使得無(wú)論是數(shù)據(jù)庫(kù)的開(kāi)發(fā)商家還是應(yīng)用客戶都視其復(fù)雜的應(yīng)用技術(shù)為畏途。
管理變革
二十世紀(jì)六十年代后期出現(xiàn)了一種新型數(shù)據(jù)庫(kù)軟件:決策支持系統(tǒng)(DSS),其目的是讓管理者在決策過(guò)程中更有效地利用數(shù)據(jù)信息。于是在1970年,第一個(gè)聯(lián)機(jī)分析處理工具——Express誕生了。其他決策支持系統(tǒng)緊隨其后,許多是由公司的IT部門(mén)開(kāi)發(fā)出來(lái)的。
1985年,第一個(gè)商務(wù)智能系統(tǒng)(business intelligence)由Metaphor計(jì)算機(jī)系統(tǒng)有限公司為Procter & Gamble公司開(kāi)發(fā)出來(lái),主要是用來(lái)連接銷售信息和零售的掃描儀數(shù)據(jù)。同年, Pilot軟件公司開(kāi)始出售第一個(gè)商用客戶/服務(wù)器執(zhí)行信息系統(tǒng)——Command Center。同樣在這年,加州大學(xué)伯克利分校Ingres項(xiàng)目演變成Postgres,其目標(biāo)是開(kāi)發(fā)出一個(gè)面向?qū)ο蟮臄?shù)據(jù)庫(kù)。此后一年, Graphael公司開(kāi)發(fā)了第一個(gè)商用的對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)—Gbase。
1988年,IBM公司的研究者Barry Devlin和Paul Murphy發(fā)明了一個(gè)新的術(shù)語(yǔ)—信息倉(cāng)庫(kù),之后,IT的廠商開(kāi)始構(gòu)建實(shí)驗(yàn)性的數(shù)據(jù)倉(cāng)庫(kù)。1991年,W.H. "Bill" Inmon出版了一本“如何構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)”的書(shū),使得數(shù)據(jù)倉(cāng)庫(kù)真正開(kāi)始應(yīng)用。
1991: W.H.“Bill” Inmon發(fā)表了”構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)”。
二十世紀(jì)九十年代,隨著基于PC的客戶/服務(wù)器計(jì)算模式和企業(yè)軟件包的廣泛采用,數(shù)據(jù)管理的變革基本完成。數(shù)據(jù)管理不再僅僅是存儲(chǔ)和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。Internet的異軍突起以及XML語(yǔ)言的出現(xiàn),給數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展開(kāi)辟了一片新的天地。
發(fā)展階段
數(shù)據(jù)庫(kù)發(fā)展階段大致劃分為如下的幾個(gè)階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫(kù)系統(tǒng)階段、高級(jí)數(shù)據(jù)庫(kù)階段。
人工管理階段
20世紀(jì)50年代中期之前,計(jì)算機(jī)的軟硬件均不完善。硬件存儲(chǔ)設(shè)備只有磁帶、卡片和紙帶,軟件方面還沒(méi)有操作系統(tǒng),當(dāng)時(shí)的計(jì)算機(jī)主要用于科學(xué)計(jì)算。這個(gè)階段由于還沒(méi)有軟件系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行管理,程序員在程序中不僅要規(guī)定數(shù)據(jù)的邏輯結(jié)構(gòu),還要設(shè)計(jì)其物理結(jié)構(gòu),包括存儲(chǔ)結(jié)構(gòu)、存取方法、輸入輸出方式等。當(dāng)數(shù)據(jù)的物理組織或存儲(chǔ)設(shè)備改變時(shí),用戶程序就必須重新編制。由于數(shù)據(jù)的組織面向應(yīng)用,不同的計(jì)算程序之間不能共享數(shù)據(jù),使得不同的應(yīng)用之間存在大量的重復(fù)數(shù)據(jù),很難維護(hù)應(yīng)用程序之間數(shù)據(jù)的一致性。
這一階段的主要特征可歸納為如下幾點(diǎn):
?。?)計(jì)算機(jī)中沒(méi)有支持?jǐn)?shù)據(jù)管理的軟件,計(jì)算機(jī)系統(tǒng)不提供對(duì)用戶數(shù)據(jù)的管理功能,應(yīng)用程序只包含自己要用到的全部數(shù)據(jù)。用戶編制程序,必須全面考慮好相關(guān)的數(shù)據(jù),包括數(shù)據(jù)的定義、存儲(chǔ)結(jié)構(gòu)以即存取方法等。程序和數(shù)據(jù)是一個(gè)不可分割的整體。數(shù)據(jù)脫離了程序極具無(wú)任何存在的價(jià)值,數(shù)據(jù)無(wú)獨(dú)立性。
?。?)數(shù)據(jù)不能共享。不同的程序均有各自的數(shù)據(jù),這些數(shù)據(jù)對(duì)不同的程序通常是不相同的,不可共享;即使不同的程序使用了相同的一組數(shù)據(jù),這些數(shù)據(jù)也不能共享,程序中仍然需要各自加入這組數(shù)據(jù),哪個(gè)部分都不能省略。基于這種數(shù)據(jù)的不可共享性,必然導(dǎo)致程序與程序之間存在大量的重復(fù)數(shù)據(jù),浪費(fèi)存儲(chǔ)空間。
?。?)不能單獨(dú)保存數(shù)據(jù)。在程序中要規(guī)定數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),數(shù)據(jù)與程序不獨(dú)立?;跀?shù)據(jù)與程序是一個(gè)整體,數(shù)據(jù)只為本程序所使用,數(shù)據(jù)只有與相應(yīng)的程序一起保存才有價(jià)值,否則毫無(wú)用處。所以,所有程序的數(shù)據(jù)不單獨(dú)保存。數(shù)據(jù)處理的方式是批處理。
文件系統(tǒng)階段
這一階段的主要標(biāo)志是計(jì)算機(jī)中有了專門(mén)管理數(shù)據(jù)庫(kù)的軟件——操作系統(tǒng)(文件管理)。
上世紀(jì)50年代中期到60年代中期,由于計(jì)算機(jī)大容量直接存儲(chǔ)設(shè)備如硬盤(pán)、磁鼓的出現(xiàn),
推動(dòng)了軟件技術(shù)的發(fā)展,軟件的領(lǐng)域出現(xiàn)了操作系統(tǒng)和高級(jí)軟件,操作系統(tǒng)中的文件系統(tǒng)是專門(mén)管理外存的數(shù)據(jù)管理軟件,操作系統(tǒng)為用戶使用文件提供了友好界面。操作系統(tǒng)的出現(xiàn)標(biāo)志著數(shù)據(jù)管理步入一個(gè)新的階段。在文件系統(tǒng)階段,數(shù)據(jù)以文件為單位存儲(chǔ)在外存,且由操作系統(tǒng)統(tǒng)一管理,文件是操作系統(tǒng)管理的重要資源。
文件系統(tǒng)階段的數(shù)據(jù)管理具有一下幾個(gè)特點(diǎn):
優(yōu)點(diǎn)
?。?)數(shù)據(jù)以“文件”形式可長(zhǎng)期保存在外部存儲(chǔ)器的磁盤(pán)上。由于計(jì)算機(jī)的應(yīng)用轉(zhuǎn)向信息管理,因此對(duì)文件要進(jìn)行大量的查詢、修改和插入等操作。
?。?)數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)有了區(qū)別,程序和數(shù)據(jù)分離,使數(shù)據(jù)與程序有了一定的獨(dú)立性,但比較簡(jiǎn)單。數(shù)據(jù)的邏輯結(jié)構(gòu)是指呈現(xiàn)在用戶面前的數(shù)據(jù)結(jié)構(gòu)形式。數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在數(shù)據(jù)在計(jì)算機(jī)存儲(chǔ)設(shè)備上的實(shí)際存儲(chǔ)結(jié)構(gòu)。程度與數(shù)據(jù)之間具有“設(shè)備獨(dú)立性”,即程序只需用文件名就可與數(shù)據(jù)打交道,不必關(guān)心數(shù)據(jù)的物理位置。由操作系統(tǒng)的文件系統(tǒng)提供存取方法(讀/寫(xiě))。
?。?)文件組織已多樣化。有索引文件、鏈接文件和直接存取文件等。但文件之間相互獨(dú)立、缺乏聯(lián)系。數(shù)據(jù)之間的聯(lián)系需要通過(guò)程序去構(gòu)造。
?。?)數(shù)據(jù)不再屬于某個(gè)特定的程序,可以重復(fù)使用,即數(shù)據(jù)面向應(yīng)用。但是文件結(jié)構(gòu)的設(shè)計(jì)仍是基于特定的用途,程序基于特定的物理結(jié)構(gòu)和存取方法,因此程度與數(shù)據(jù)結(jié)構(gòu)之間的依賴關(guān)系并未根本改變。
?。?)用戶的程序與數(shù)據(jù)可分別存放在外存儲(chǔ)器上,各個(gè)應(yīng)用程序可以共享一組數(shù)據(jù),實(shí)現(xiàn)了以文件為單位的數(shù)據(jù)共享文件系統(tǒng)。
?。?)對(duì)數(shù)據(jù)的操作以記錄為單位。這是由于文件中只存儲(chǔ)數(shù)據(jù),不存儲(chǔ)文件記錄的結(jié)構(gòu)描述信息。文件的建立、存取、查詢、插入、刪除、修改等操作,都要用程序來(lái)實(shí)現(xiàn)。
?。?)數(shù)據(jù)處理方式有批處理,也有聯(lián)機(jī)實(shí)時(shí)處理。
缺點(diǎn)
文件系統(tǒng)對(duì)計(jì)算機(jī)數(shù)據(jù)管理能力的提高雖然起了很大的作用,但隨著數(shù)據(jù)管理規(guī)模的擴(kuò)大,數(shù)據(jù)量急劇增加,文價(jià)系統(tǒng)顯露出一些缺陷,問(wèn)題表現(xiàn)在:
(1)數(shù)據(jù)文件是為了滿足特定業(yè)務(wù)領(lǐng)域某一部門(mén)的專門(mén)需要而設(shè)計(jì),數(shù)據(jù)和程序相互依賴,數(shù)據(jù)缺乏足夠的獨(dú)立性。
?。?)數(shù)據(jù)沒(méi)有集中管理的機(jī)制,其安全性和完整性無(wú)法保障,數(shù)據(jù)維護(hù)業(yè)務(wù)仍然由應(yīng)用程序來(lái)承擔(dān);
(3)數(shù)據(jù)的組織仍然是面向程序,數(shù)據(jù)與程序的依賴性強(qiáng),數(shù)據(jù)的邏輯結(jié)構(gòu)不能方便地修改和擴(kuò)充,數(shù)據(jù)邏輯結(jié)構(gòu)的每一點(diǎn)微小改變都會(huì)影響到應(yīng)用程序;而且文件之間的缺乏聯(lián)系,因而它們不能反映現(xiàn)實(shí)世界中事物之間的聯(lián)系,加上操作系統(tǒng)不負(fù)責(zé)維護(hù)文件之間的聯(lián)系,信息造成每個(gè)應(yīng)用程序都有相對(duì)應(yīng)的文件。如果文件之間有內(nèi)容上的聯(lián)系,那也只能由應(yīng)用程序去處理,有可能同樣的數(shù)據(jù)在多個(gè)文件中重復(fù)儲(chǔ)存。這兩者造成了大量的數(shù)據(jù)冗余。
?。?)對(duì)現(xiàn)有數(shù)據(jù)文件不易擴(kuò)充,不易移植,難以通過(guò)增、刪數(shù)據(jù)項(xiàng)來(lái)適應(yīng)新的應(yīng)用要求。
數(shù)據(jù)庫(kù)系統(tǒng)階段
20世紀(jì)60年代后期,隨著計(jì)算機(jī)在數(shù)據(jù)管理領(lǐng)域的普遍應(yīng)用,人們對(duì)數(shù)據(jù)管理技術(shù)提出了更高的要求:希望面向企業(yè)或部門(mén),以數(shù)據(jù)為中心組織數(shù)據(jù),減少數(shù)據(jù)的冗余,提供更高的數(shù)據(jù)共享能力,同時(shí)要求程序和數(shù)據(jù)具有較高的獨(dú)立性,當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),不涉及數(shù)據(jù)的物理結(jié)構(gòu),也不影響應(yīng)用程序,以降低應(yīng)用程序研制與維護(hù)的費(fèi)用。數(shù)據(jù)庫(kù)技術(shù)正是在這樣一個(gè)應(yīng)用需求的基礎(chǔ)上發(fā)展起來(lái)的。
概括起來(lái),數(shù)據(jù)庫(kù)系統(tǒng)階段的數(shù)據(jù)管理具有以下幾個(gè)特點(diǎn):
(1)采用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)模型不僅描述數(shù)據(jù)本身的特征,還要描述數(shù)據(jù)之間的聯(lián)系,這種聯(lián)系通過(guò)所有存取路徑。通過(guò)所有存儲(chǔ)路徑表示自然的數(shù)據(jù)聯(lián)系是數(shù)據(jù)庫(kù)與傳統(tǒng)文件的根本區(qū)別。這樣,數(shù)據(jù)不再面向特定的某個(gè)或多個(gè)應(yīng)用,而是面對(duì)整個(gè)應(yīng)用系統(tǒng)。如面向企業(yè)或部門(mén),以數(shù)據(jù)為中心組織數(shù)據(jù),形成綜合性的數(shù)據(jù)庫(kù),為各應(yīng)用共享。
?。?)由于面對(duì)整個(gè)應(yīng)用系統(tǒng)使得,數(shù)據(jù)冗余小,易修改、易擴(kuò)充,實(shí)現(xiàn)了數(shù)據(jù)貢獻(xiàn)。不同的應(yīng)用程序根據(jù)處理要求,從數(shù)據(jù)庫(kù)中獲取需要的數(shù)據(jù),這樣就減少了數(shù)據(jù)的重復(fù)存儲(chǔ),也便于增加新的數(shù)據(jù)結(jié)構(gòu),便于維護(hù)數(shù)據(jù)的一致性。
?。?)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一管理和控制,提供了數(shù)據(jù)的安全性、完整性、以及并發(fā)控制。
?。?)程序和數(shù)據(jù)有較高的獨(dú)立性。數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)之間的差別可以很大,用戶以簡(jiǎn)單的邏輯結(jié)構(gòu)操作數(shù)據(jù)而無(wú)須考慮數(shù)據(jù)的物理結(jié)構(gòu)。
?。?)具有良好的用戶接口,用戶可方便地開(kāi)發(fā)和使用數(shù)據(jù)庫(kù)。
從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫(kù)系統(tǒng),這在信息領(lǐng)域中具有里程碑的意義。在文件系統(tǒng)階段,人們?cè)谛畔⑻幚碇嘘P(guān)注的中心問(wèn)題是系統(tǒng)功能的設(shè)計(jì),因此程序設(shè)計(jì)占主導(dǎo)地位;而在數(shù)據(jù)庫(kù)方式下,數(shù)據(jù)開(kāi)始占據(jù)了中心位置,數(shù)據(jù)的結(jié)構(gòu)設(shè)計(jì)成為信息系統(tǒng)首先關(guān)心的問(wèn)題,而應(yīng)用程序則以既定的數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)進(jìn)行設(shè)計(jì)。
發(fā)展趨勢(shì)
隨著信息管理內(nèi)容的不斷擴(kuò)展,出現(xiàn)了豐富多樣的數(shù)據(jù)模型(層次模型,網(wǎng)狀模型,關(guān)系模型,面向?qū)ο竽P?,半結(jié)構(gòu)化模型等),新技術(shù)也層出不窮(數(shù)據(jù)流,Web數(shù)據(jù)管理,數(shù)據(jù)挖掘等)。每隔幾年,國(guó)際上一些資深的數(shù)據(jù)庫(kù)專家就會(huì)聚集一堂,探討數(shù)據(jù)庫(kù)研究現(xiàn)狀,存在的問(wèn)題和未來(lái)需要關(guān)注的新技術(shù)焦點(diǎn)。過(guò)去已有的幾個(gè)類似報(bào)告包括:1989年Future Directions inDBMS Research-The Laguna BeachParticipants ;1990年DatabaseSystems : Achievements and Opportunities ;1991年W.H. Inmon 發(fā)表的《構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)》;1995年Database。
內(nèi)容來(lái)自百科網(wǎng)