數據管理指對數據進行分類、組織、編碼、存儲、檢索和維護,它是數據處理的中心問題。而數據的處理是指對各種數據進行收集、存儲、加工和傳播的一系列活動的總和。
數據管理技術經歷了人工管理、文件系統、數據庫系統 三個階段。
數據管理三個階段的比較如下表所示:
人工管理階段 | 文件系統階段 | 數據庫系統階段 | |
---|---|---|---|
時間 | 20世紀50年代中期以前 | 20世紀50年代后期到60年代中期 | 20世紀60年代后期以來 |
應用背景 | 科學計算 | 科學計算、數據管理 | 大規模數據管理 |
硬件背景 | 無直接存取存儲設備 | 磁盤、磁鼓 | 大容量磁盤、磁盤陣列 |
軟件背景 | 沒有操作系統 | 有文件系統 | 有數據庫管理系統 |
處理方式 | 批處理 | 聯機實時處理、批處理 | 聯機實時處理、分布處理、批處理 |
數據的管理者 | 用戶(程序員) | 文件系統 | 數據庫管理系統 |
數據面向的對象 | 某一應用程序 | 某一應用 | 現實世界(一個部門、企業、跨國組織等) |
數據的共享程度 | 無共享,冗余度極大 | 共享性差,冗余度大 | 共享性高,冗余度小 |
數據的獨立性 | 不獨立、完全依賴于程序 | 獨立性差 | 具有高度的物理獨立性和一定的邏輯獨立性 |
數據的結構化 | 無結構 | 記錄內有結構、整體無結構 | 整體結構化,用數據模型描述 |
數據控制能力 | 應用程序自己控制 | 應用程序自己控制 | 由數據庫管理系統提供數據安全性、完整性、并發控制和恢復能力 |
一、人工管理階段
人工管理數據有如下特點:
1.數據不保存
當時計算機主要用于科學計算,一般不需要將數據長期保存,只是計算某一課題時輸入數據,用完就撤走。
2.應用程序管理數據
數據需要由應用程序自己設計、說明(定義)和管理,沒有相應的軟件系統負責數據的管理工作。應用程序中不僅要規定數據的邏輯結構,而且要設計物理結構(包括存儲結構、存取方法、輸入方式等),所以程序員負擔很重。
3.數據不共享
數據是面向應用程序的,一組數據只能對應一個程序。多個應用程序涉及一些相同的數據時,只能各自定義,無法相互利用、參照,因此程序與程序間有大量冗余數據。
4.數據不具有獨立性
數據的邏輯結構或物理結構發生變化后,必須相應地修改應用程序,因此加重了程序員的負擔。
二、文件系統階段
用文件系統管理數據有如下特點:
1.數據可以長期保存
由于計算機大量用于數據處理,數據需要長時間保留在外存上反復進行查詢、修改、插入和刪除等操作。
2.由文件系統管理數據
由專門的軟件即文件系統進行數據管理,文件系統把數據組織成相互獨立的數據文件,利用“按文件名訪問,按記錄進行存取”的管理技術,可以對文件進行修改、插入和刪除的操作。文件系統實現了記錄內的結構性,但整體無結構(文件由記錄構成,記錄內部有某些結構(記錄由若干屬性組成),但記錄之間沒有聯系)。程序和數據之間由文件系統提供存取方法進行轉換,使應用程序和數據之間有了一定的獨立性,程序員可以不必過多地考慮物理細節,將精力集中于算法。而且數據在存儲上的改變不一定反映在程序上,大大節省了維護程序的工作量。
3.數據共享性差,冗余度大
在文件系統中,一個(或一組)文件基本上對應一個應用程序,即文件仍然是面向應用的。不同的應用程序具有部分相同的數據時,也必須建立各自的文件,而不能共享相同的數據,因此數據的冗余度(redundancy)大,浪費存儲空間,而且由于重復存儲、各自管理,容易造成數據不一致,增加了數據修改和維護的難度。
4.數據獨立性差
文件系統中的文件為某一特定應用服務,文件的邏輯結構對該應用程序來說是優化的,所以要想對現有的數據再增加新的應用是很困難的,系統不易擴充。
一旦數據的邏輯結構改變,必須修改相應程序,修改文件結構的定義。因此數據與程序之間仍然缺乏獨立性。
可見,文件系統仍然是一個不具有彈性的無結構的數據集合,即文件之間是孤立的,不能反映現實世界事物之間的內在聯系。
三、數據庫系統階段
為解決多用戶、多應用共享數據的需求,使數據為盡可能多的應用服務,數據庫技術應運而生,出現了統一管理數據的專門軟件系統——數據庫管理系統。從文件系統到數據庫系統,標志著數據管理技術的飛躍。
相比于人工管理和文件系統,數據庫系統具有明顯的優點,其主要特點如下:
1.數據結構化
數據庫系統實現整體數據的結構化,這是數據庫的主要特征之一,也是數據庫系統與文件系統的本質區別。“整體”結構化指在數據庫中的數據不再僅僅針對某一應用,而是面向全組織;不僅數據內部是結構化的,而且整體也是結構化的,數據之間是有聯系的。(而文件系統只是內部有結構,但整體無結構,記錄之間沒有聯系)
在數據庫系統中,不僅數據是整體結構化的,而且存取數據的方式也很靈活,可以存取數據庫中的某一個數據項、一組數據項、一個記錄或一組記錄。(而在文件系統中,數據的存取單位是記錄,粒度不能細到數據項。)
2.數據的共享性高,冗余度低,易擴充
數據庫系統從整體角度看待和描述數據,數據不再面向某個應用而是面向整個系統,因此數據可以被多個用戶、多個應用共享使用。數據共享可以大大減少數據冗余,節約存儲空間,還能避免數據間的不相容性和不一致性。數據的不一致性指同一數據不同拷貝的值不一樣。
由于數據面向整個系統,是有結構的數據,不僅可以被多個應用共享使用,而且容易增加新的應用,這就使數據庫系統彈性大、易于擴充。可以選取整體數據的各種子集用于不同的應用程序,當應用需求改變或增加時,只要重新選取不同的子集加上一部分數據,便可滿足新需求。
3.數據獨立性高
數據獨立性包括數據的物理獨立性和數據的邏輯獨立性。
物理獨立性指用戶的應用程序與存儲在磁盤上的數據庫中的數據是相互獨立的。數據在磁盤上的數據庫中怎樣存儲是有DBMS管理的,用戶程序不需要了解,應用程序要處理的只是數據的邏輯結構,這樣當數據的物理存儲改變時,應用程序不用改變。
邏輯獨立性指用戶的應用程序與數據庫的邏輯結構是相互獨立的。當數據的邏輯結構發生改變,用戶程序也可以不變。
數據獨立性是由DBMS的二級映像功能來保證的。
數據與程序的獨立,把數據的定義從程序中分離出去,加上存取數據的方法又由DBMS負責提供,從而簡化了應用程序的編制,大大減少了應用程序的維護和修改。
4.數據由DBMS統一管理和控制
數據庫的共享是并發的共享,即多個用戶可以同時存取數據庫中的數據,甚至可以同時存取數據庫中同一個數據。
為此DBMS還必須提供以下幾方面的數據控制功能:
(1)數據的安全性(Security)保護
數據的安全性是指保護數據,以防止不合法的使用造成數據的泄密和破壞。使每個用戶只能按規定對某些數據以某些方式進行使用和處理。
(2)數據的完整性(Integrity)檢查
數據的完整性指數據的正確性、有效性、相容性。完整性檢查將數據控制在有效的范圍內,或保證數據之間滿足一定的關系。
(3)并發(Concurrency)控制
當多個用戶的并發進程同時存取、修改數據庫時,可能會發生相互干擾而得到錯誤的結果或使數據庫的完整性遭到破壞,因此必須對多用戶的并發操作加以控制和協調。
(4)數據恢復(Recovery)
計算機系統的硬件故障、軟件故障、操作員的失誤以及故意的破壞也會影響數據庫中數據的正確性,甚至造成數據庫部分或全部數據的丟失。DBMS必須具有將數據庫從錯誤狀態恢復到某一已知的正確狀態(也稱為完整狀態或一致狀態)的功能,這就是數據庫的恢復功能。
綜上所述,數據庫是長期存儲在計算機內有組織的大量的共享的數據集合。它可以供各種用戶共享,具有最小冗余度和較高的數據獨立性。DBMS在數據庫建立、運用和維護時對數據庫進行統一控制,以保證數據庫的完整性、安全性,并在多用戶同時使用數據庫時進行并發控制,在發生故障后對數據庫進行恢復。
數據庫系統的出現使信息系統從 以加工數據的程序為中心 轉向 圍繞共享的數據庫為中心 的新階段。這樣既便于數據的集中管理,又有利于應用程序的研制和維護,提高了數據的利用率和相容性,提高了決策的可靠性。