數(shù)據(jù)庫(kù)是數(shù)據(jù)管理的產(chǎn)物。數(shù)據(jù)管理是數(shù)據(jù)庫(kù)的核心任務(wù),內(nèi)容包括對(duì)數(shù)據(jù)的分類(lèi)、組織、編碼、儲(chǔ)存、檢索和維護(hù)。隨著計(jì)算機(jī)硬件和軟件的發(fā)展,數(shù)據(jù)庫(kù)技術(shù)也不斷地發(fā)展。從數(shù)據(jù)管理的角度看,數(shù)據(jù)庫(kù)技術(shù)到目前共經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。
1. 人工管理階段
人工管理階段是指計(jì)算機(jī)誕生的初期(即20世紀(jì)50年代后期之前),這個(gè)時(shí)期的計(jì)算機(jī)主要用于科學(xué)計(jì)算。從硬件看,沒(méi)有磁盤(pán)等直接存取的存儲(chǔ)設(shè)備;從軟件看,沒(méi)有操作系統(tǒng)和管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。
1). 數(shù)據(jù)不保存
該時(shí)期的計(jì)算機(jī)主要應(yīng)用于科學(xué)計(jì)算,一般不需要將數(shù)據(jù)長(zhǎng)期保存,只是在計(jì)算某一課題時(shí)將數(shù)據(jù)輸入,用完后不保存原始數(shù)據(jù),也不保存計(jì)算結(jié)果。
2). 沒(méi)有對(duì)數(shù)據(jù)進(jìn)行管理的軟件系統(tǒng)
程序員不僅要規(guī)定數(shù)據(jù)的邏輯結(jié)構(gòu),而且還要在程序中設(shè)計(jì)物理結(jié)構(gòu),包括存儲(chǔ)結(jié)構(gòu)、存取方法、輸入輸出方式等。因此程序中存取數(shù)據(jù)的子程序隨著存儲(chǔ)的改變而改變,數(shù)據(jù)與程序不具有一致性。
3). 沒(méi)有文件的概念
4). 一組數(shù)據(jù)對(duì)應(yīng)于一個(gè)程序,數(shù)據(jù)是面向應(yīng)用的
即使兩個(gè)程序用到相同的數(shù)據(jù),也必須各自定義、各自組織,數(shù)據(jù)無(wú)法共享、無(wú)法相互利用和互相參照,從而導(dǎo)致程序和程序之間有大量重復(fù)的數(shù)據(jù)。
2. 文件系統(tǒng)階段
文件系統(tǒng)階段是指計(jì)算機(jī)不僅用于科學(xué)計(jì)算,而且還大量用于管理數(shù)據(jù)的階段(從50年代后期到60年代中期)。在硬件方面,外存儲(chǔ)器有了磁盤(pán)、磁鼓等直接存取的存儲(chǔ)設(shè)備。在軟件方面,操作系統(tǒng)中已經(jīng)有了專(zhuān)門(mén)用于管理數(shù)據(jù)的軟件,稱(chēng)為文件系統(tǒng)。
這個(gè)時(shí)期數(shù)據(jù)管理的特點(diǎn)是:
1). 數(shù)據(jù)需要長(zhǎng)期保存在外存上供反復(fù)使用
由于計(jì)算機(jī)大量用于數(shù)據(jù)處理,經(jīng)常對(duì)文件進(jìn)行查詢、修改、插入和刪除等操作,所以數(shù)據(jù)需要長(zhǎng)期保留,以便于反復(fù)操作。
2). 程序之間有了一定的獨(dú)立性
操作系統(tǒng)提供了文件管理功能和訪問(wèn)文件的存取方法,程序和數(shù)據(jù)之間有了數(shù)據(jù)存取的接口,程序可以通過(guò)文件名和數(shù)據(jù)打交道,不必再尋找數(shù)據(jù)的物理存放位置,至此,數(shù)據(jù)有了物理結(jié)構(gòu)和邏輯結(jié)構(gòu)的區(qū)別,但此時(shí)程序和數(shù)據(jù)之間的獨(dú)立性尚還不充分。
3). 文件的形式已經(jīng)多樣化
由于已經(jīng)有了直接存取的存儲(chǔ)設(shè)備,文件也就不再局限于順序文件,還有了索引文件、鏈表文件等,因而,對(duì)文件的訪問(wèn)可以是順序訪問(wèn),也可以是直接訪問(wèn)。
4). 數(shù)據(jù)的存取基本上以記錄為單位
可以看出,文件系統(tǒng)中的數(shù)據(jù)和程序雖然具有了一定的獨(dú)立性,但還很不充分,每個(gè)文件仍然對(duì)應(yīng)于一個(gè)應(yīng)用程序,數(shù)據(jù)還是面向應(yīng)用的。要想對(duì)現(xiàn)有的數(shù)據(jù)再增加一些新的應(yīng)用是很困難的,系統(tǒng)不易擴(kuò)充,一旦數(shù)據(jù)的邏輯結(jié)構(gòu)改變,必須修改應(yīng)用程序。并且,各個(gè)文件之間是孤立的,不能反映現(xiàn)實(shí)世界事物之間的內(nèi)在聯(lián)系,各個(gè)不同應(yīng)用程序之間也不能共享相同的數(shù)據(jù),從而造成數(shù)據(jù)冗余度大,并容易產(chǎn)生相同數(shù)據(jù)的不一致性。
3. 數(shù)據(jù)庫(kù)系統(tǒng)階段
數(shù)據(jù)庫(kù)系統(tǒng)階段是從60年代后期開(kāi)始的。在這一階段中,數(shù)據(jù)庫(kù)中的數(shù)據(jù)不再是面向某個(gè)應(yīng)用或某個(gè)程序,而是面向整個(gè)企業(yè)(組織)或整個(gè)應(yīng)用的。
數(shù)據(jù)庫(kù)系統(tǒng)階段的特點(diǎn)是:
1). 采用復(fù)雜的結(jié)構(gòu)化的數(shù)據(jù)模型
數(shù)據(jù)庫(kù)系統(tǒng)不僅要描述數(shù)據(jù)本身,還要描述數(shù)據(jù)之間的聯(lián)系。這種聯(lián)系是通過(guò)存取路徑來(lái)實(shí)現(xiàn)的。
2). 較高的數(shù)據(jù)獨(dú)立性
數(shù)據(jù)和程序彼此獨(dú)立,數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的變化盡量不影響用戶程序的使用。
3). 最低的冗余度
數(shù)據(jù)庫(kù)系統(tǒng)中的重復(fù)數(shù)據(jù)被減少到最低程度,這樣,在有限的存儲(chǔ)空間內(nèi)可以存放更多的數(shù)據(jù)并減少存取時(shí)間。
4). 數(shù)據(jù)控制功能
數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)的安全性,以防止數(shù)據(jù)的丟失和被非法使用;具有數(shù)據(jù)的完整性,以保護(hù)數(shù)據(jù)的正確、有效和相容;具有數(shù)據(jù)的并發(fā)控制,避免并發(fā)程序之間的相互干擾;具有數(shù)據(jù)的恢復(fù)功能,在數(shù)據(jù)庫(kù)被破壞或數(shù)據(jù)不可靠時(shí),系統(tǒng)有能力把數(shù)據(jù)庫(kù)恢復(fù)到最近某個(gè)時(shí)刻的正確狀態(tài)。
綜上所述,數(shù)據(jù)庫(kù)可以被定義為:一個(gè)存儲(chǔ)起來(lái)互相關(guān)聯(lián)的數(shù)據(jù)集合,它提供給多種用戶共享并且有最小的冗余度和較高的數(shù)據(jù)獨(dú)立性。