數據庫管理系統的產生

數據管理隨着計算機軟硬件的發展而不斷髮展,40多年來經歷了以下三個階段:

1、人工管理階段

主要是指50年代中期以前的這段時間,此時的計算機還很簡陋,連完整的操作系統都沒有。因此,數據只能放在卡片上或其他介質上,由人來手工管理。

2、文件系統階段

主要是指50年代後期到60年代中期的這段時間,此時的計算機已經有了操作系統。在操作系統基礎之上建立的文件系統已經成熟並廣泛應用。因此,人們自然想到用文件把大量的數據存儲在磁盤這種介質上,以實現對數據的永久保存和自動管理以及維護;

3、數據庫管理系統階段 

主要是指60年代後期以後,由於數據庫管理系統的誕生,通過數據庫管理系統管理大量的數據,不僅解決了數據的永久保存,而且真正實現了數據的方便查詢和一致性維護問題,並且能嚴格保證數據的安全。此後,數據庫應用在我們國家於80年代達到高峯,大量的聯機處理系統把工作人員從以前繁雜且容易出錯的手工操作中解脫出來,不僅提高了工作效率,精簡了機構和人員,而且方便了廣大人民羣衆。這樣的大型系統有"全國民航售票系統"、"銀行前臺業務處理系統"、"各種服務行業的客戶管理系統"等等。

1.1.2 文件處理系統

在數據庫管理系統出現以前,把需要管理的數據存放在永久性的系統文件中,同時爲了能夠操作這些文件裏的數據,系統裏還有針對這些文件編寫的應用程序。如銀行爲了保存所有客戶及儲蓄帳戶的信息,可能包括如下應用程序:
1、創建新帳戶的程序
2、處理某帳戶的借/貸程序
3、查詢帳戶餘額的程序
4、產生每月財務報告的程序
這種典型的文件處理系統是傳統的操作系統所能支持的。隨着銀行業務的發展,需求不斷增長,隨之新的數據文件和應用程序就會不斷地加入到系統中來。例如支票帳戶的信息與特殊處理--透支等等。但是,你要注意雖然文件處理系統給數據管理帶來了極大的方便,但是在文件處理系統中存儲信息的弊端也是顯而易見的。這些弊端主要表現在以下七個方面:

1、數據冗餘和不一致

2、數據訪問困難

3、數據孤立

4、完整性問題

5、原子性問題

6、併發訪問異常

7、安全性問題

1、數據冗餘和不一致

數據冗餘是指相同的信息可能在不同的地方(文件)重複存儲。如某個客戶的地址和電話號碼既可能在由儲蓄帳戶記錄組成的文件裏出現,也可能在由支票帳戶記錄組成的文件中出現;數據冗餘還可能導致數據不一致,即同一數據的不同副本不一致。如某個客戶地址的更改可能只是在儲蓄帳戶文件裏得到反映而在系統的其他文件中沒有得到反映。

2、數據訪問困難

由於數據使用者的要求不斷變化,需要不斷地增加和修改程序才能滿足新的要求。如銀行的高級行政管理人員今天可能需要儲蓄帳戶中餘額不少於1000元的客戶清單,明天又可能需要所有居住在郵編爲100084的地區的客戶清單。傳統的文件處理環境不能支持以一種方便而有效的方式去獲得所需數據,這就需要開發通用的、能對變化的需求作出更快反應的數據檢索系統。

3、數據孤立

由於數據分散在不同的文件中,這些文件又可能具有不同的格式,而且數據和數據之間的聯繫很難表達。因而編寫新的且檢索恰當數據的應用程序是很困難的。


4、完整性問題

文件中所存儲數據的值必須滿足某種一致性約束。例如銀行帳戶的餘額永遠不會低於某個預定的值--10元。開發者通過在不同的應用程序中加入適當的代碼來體現系統中的這些約束。但當新的約束加入系統時,很難通過修改程序來體現這些新的約束。尤其是當約束涉及到不同文件中的多個數據項時,問題就變得更加複雜了。因此,如何表達和實現一致性約束就成爲迫在眉睫的問題。

5、原子性問題

計算機系統也常常會發生故障,一旦故障發生並被檢測到,數據就應恢復到故障發生前的狀態。例如,假設要從A帳戶轉5000元到B帳戶,可是在程序的執行過程中發生了系統故障,很可能從A帳戶減去的5000元錢還沒來得及存入B帳戶,系統就死機了。這就造成了數據的不一致。顯然,爲了保證數據狀態的一致性,這裏的借、貸兩個操作要麼都發生要麼都不發生,也就是說,轉帳這個操作必須是原子的--它要麼全部發生要麼根本不發生(具有不可分割性)。

6、併發訪問異常

許多系統允許多個用戶同時訪問數據,在這樣的環境中由於併發更新操作相互影響,可能就會導致數據的不一致。假設A帳戶中有500元,客戶B和客戶C幾乎同時從A帳戶中分別取款50元和100元。假設每個取款操作對應的程序都是讀取帳戶餘額,在其上減去取款的金額,然後將結果寫回。如果兩次取款的程序併發執行,可能它們讀到的餘額都是500元,並將分別寫回450元和400元,到底是450元還是400元要看哪個程序後寫回結果而定,而實際上這兩個結果都是錯誤的。由於數據可能被多個不同的應用程序訪問,而這些程序間事先又沒有協調管理,因而可能會出現併發訪問異常問題。

7、安全性問題

並非系統的所有用戶都可以訪問所有的數據。例如在銀行系統中,銀行員工的工資發放人員只需要看到數據文件中有關銀行員工的那部分信息,他們絕對不需要訪問關於客戶帳戶的信息。由於應用程序總是即興加入到系統中來,這樣的安全性約束在文件處理系統中難以實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章