- Access 2010數據庫教程(微課版)
- 蘇林萍 謝萍 周蓉
- 1611字
- 2020-10-13 17:54:15
1.2 數據管理技術的發展
自從世界上第一臺電子數字計算機誕生以來,數據管理技術經歷了人工管理、文件系統和數據庫系統3個階段。
1. 人工管理階段

視頻1-1
在20世紀50年代中期以前,受到當時計算機軟硬件技術的限制,計算機主要用于科學計算。硬件的外部存儲設備只有磁帶、卡片和紙帶;軟件方面還沒有操作系統,更沒有進行數據管理的軟件。在這個階段,計算機沒有數據管理功能,程序員將程序和數據編寫在一起,每個程序都有屬于自己的一組數據,程序之間數據不能共享,即便是幾個程序處理同一批數據,也必須重復輸入,數據冗余度很大。人工管理階段應用程序與數據的關系如圖1-1所示。

圖1-1 人工管理階段應用程序與數據的關系
例如,要求分別編寫程序求出10個整數的最大值和最小值。采用人工管理方式的C語言程序如圖1-2所示。

圖1-2 人工管理階段應用程序與數據處理程序示例
從這個例子可以看出,在人工管理階段,程序和數據是不可分割的整體。每個程序都有自己的數據,而且數據不獨立,完全依賴于程序,根本無法實現數據共享,冗余度極大。
2. 文件系統階段
到了20世紀60年代中期,計算機不僅用于科學計算,還大量用于信息處理。硬件上已經有了可直接存取的存儲設備(如磁盤),軟件上出現了操作系統。在這個階段,數據能夠以文件形式存儲在外存上,由操作系統中的文件系統統一管理,按名存取。這就使得程序與數據可以分離,程序與數據之間有了一定的獨立性。不同應用程序可以共享一組數據,實現了數據以文件為單位的共享,文件系統階段應用程序與數據的關系如圖1-3所示。

圖1-3 文件系統階段應用程序與數據的關系
例如,同樣是分別編寫程序求出10個整數的最大值和最小值。采用文件系統管理,可以將這10個整數存放在一個文本文件(如data.txt)中,在Windows的附件程序“記事本”中可以編輯文本文件,如圖1-4所示。然后,由應用程序從該文件中獲得數據,實現數據共享。具體的C語言程序如圖1-5所示。此外,如果想繼續求出另外10個整數的最大值和最小值,不需改變程序,只需修改文本文件中的數據即可,使得程序與數據具有一定的獨立性。

圖1-4 data.txt文本文件

圖1-5 文件系統階段應用程序與數據處理程序示例
從這個例子可以看出,在文件系統階段,數據可以長期保存,由文件系統統一管理。但由于文件中只保存了數據,并未存儲數據的結構信息,導致讀取文件數據的操作必須在程序中實現,從而使程序與數據之間的獨立性仍然有局限性,數據不能完全脫離程序。
3. 數據庫系統階段
到了20世紀60年代后期,隨著計算機應用的日益廣泛,數據管理的規模越來越大,為了解決數據的獨立性問題,實現數據的統一管理,達到數據共享的目的,數據庫技術應運而生,使數據管理進入了數據庫系統階段。數據庫系統階段應用程序與數據的關系通過數據庫管理系統實現,如圖1-6所示。數據庫系統提供了對數據更高級、更有效的管理,使數據不再面向特定的某個或多個應用,而是面向整個應用系統。

圖1-6 數據庫系統管理階段應用程序與數據的關系
例如,同樣是求10個整數的最大值和最小值。采用數據庫系統方式實現時,可以將這10個整數存放在Access數據庫的一個data表(見圖1-7)中,然后通過Access數據庫管理系統提供的標準化的查詢語句就能夠得出結果。

圖1-7 data表中的數據
求最大值的標準化查詢語句為:Select Max(Num)From data
求最小值的標準化查詢語句為:Select Min(Num)From data
其中,Max是求最大值的函數,Min是求最小值的函數,data是存放數據的表名稱,Num是表中具體存放數據的列名稱。
從這個例子可以看出,在數據庫系統階段,數據庫中不僅保存了數據,還保存了數據表的結構信息(如Num列),程序中可以不用考慮數據的存取問題,具體的工作由數據庫管理系統完成。只有數據庫系統階段,數據才真正實現了獨立和共享。
隨著數據庫技術的發展和科學技術的不斷進步,各個行業領域對數據庫技術提出了更多的需求,除了傳統的數據庫系統(層次數據庫系統、網狀數據庫系統和關系數據庫系統)之外,還出現了分布式數據庫系統、并行數據庫系統、面向對象數據庫系統和多媒體數據庫系統等多種數據庫系統。
- Android Wearable Programming
- VMware View Security Essentials
- HTML5移動Web開發技術
- Building Modern Web Applications Using Angular
- 高效微控制器C語言編程
- 單片機C語言程序設計實訓100例:基于STC8051+Proteus仿真與實戰
- Instant Typeahead.js
- Eclipse Plug-in Development:Beginner's Guide(Second Edition)
- Mastering Python Networking
- C程序設計實踐教程
- Natural Language Processing with Java and LingPipe Cookbook
- Web前端應用開發技術
- Learning Docker Networking
- 深度學習原理與PyTorch實戰(第2版)
- 測試工程師Python開發實戰