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