- MySQL數據庫應用與維護項目式教程(微課版)
- 舒蕾 劉均主編
- 3539字
- 2023-11-16 18:21:53
任務1.1.1 了解數據庫的發展階段
微課1-1

了解數據庫的發展階段
最早的計算機主要應用于軍事和科學研究領域,隨著計算機理論研究的深入和計算機技術的發展,從20世紀50年代開始,計算機的主要應用逐漸變為一般的數據及事務處理。伴隨著這種轉變的逐漸深入,以數據處理為核心的數據庫技術隨之發展并成熟起來,成為計算機科學技術中應用最為廣泛和最為重要的技術之一。
所謂數據處理,就是從已有數據出發,經過適當加工、處理得到新的所需數據的過程。數據處理一般分為數據計算和數據管理兩部分。數據計算相對簡單,數據管理卻比較復雜,是數據處理過程的主要內容與核心部分。一般認為,數據管理主要是指數據的收集、整理、組織、存儲、維護、檢索和傳送等操作。從數據管理的角度來看,計算機數據處理技術經歷了以下3個階段:人工管理階段、文件系統階段、數據庫系統階段。
1.人工管理階段
20世紀50年代中期以前為人工管理階段,是計算機數據管理的初級階段。
在這一階段,計算機被當成一種計算工具,主要用于科學計算。硬件中的外存只有卡片、紙帶、磁帶,沒有磁盤等直接存儲設備;軟件只有匯編語言,沒有操作系統,更無統一的管理數據的軟件;數據的管理完全在程序中進行,數據處理的方式基本上是批處理。人工管理階段的特征如下。
(1)數據不保存
由于主要用于科學計算,所以一般不需要將數據長期保存。計算某一課題時將數據輸入,計算完畢就將數據撤走,用戶提供的數據是如此處理的,系統軟件運行過程中產生的數據也是這樣處理的。
(2)應用程序管理數據
由于沒有相應軟件系統完成數據的管理工作,所以應用程序不僅要規定好數據的邏輯結構,還要規定數據的存儲結構、存取方法、輸入方式、地址分配等。
(3)數據無共享
數據是面向程序的,數據由應用程序自行攜帶,一組數據只能對應一個應用程序,很難實現多個應用程序共享數據資源,這就使應用程序嚴重依賴數據。一個應用程序攜帶的數據,在應用程序運行結束后就連同該應用程序一起退出計算機系統。如果別的應用程序想使用該應用程序的數據,則只能重新組織攜帶,因此應用程序之間有大量的冗余數據。
(4)數據不獨立
由于應用程序只負責管理數據,所以數據與應用程序不具有獨立性。如果數據的類型、格式、存取方法或輸入/輸出方式等邏輯結構或物理結構發生變化,就必須對應用程序做出相應的修改,程序員負擔相當重。
人工管理階段應用程序與數據集之間的對應關系如圖1-2所示。

圖1-2 人工管理階段應用程序與數據集之間的對應關系
2.文件系統階段
20世紀50年代后期至20世紀60年代中期,隨著計算機軟硬件的發展,出現了文件系統,其負責對數據進行管理。
在這一階段,計算機已大量用于信息管理。硬件有了磁盤、磁鼓等直接存儲設備。在軟件方面,出現了高級語言和操作系統。操作系統中有了專門管理數據的軟件,稱為文件系統。用戶可以把相關數據組織成一個文件存放在計算機中,由文件系統對數據的存取進行管理,處理方式有批處理和聯機處理。
(1)文件系統階段的特點
① 數據可以長期保存。
數據以文件的形式存儲在計算機的直接存儲設備中,可長期保存并反復使用。用戶可隨時對文件進行查詢、修改、插入和刪除等操作。
② 由文件系統管理數據。
由專門的軟件(即文件系統)進行數據管理,文件系統把數據組織成相互獨立的數據文件,利用“按文件名訪問,按記錄進行存取”的管理技術,提供了對文件進行打開與關閉、對記錄進行讀取和寫入的操作。程序員只需與文件名打交道,不必明確數據的物理存儲,大大減輕了程序員的負擔。
(2)文件系統階段存在的問題
文件系統階段對數據的管理有了巨大進步,但一些根本問題仍沒有徹底解決,具體如下。
① 數據共享性差,冗余度大。
在文件系統中,一個(或一組)文件基本上對應一個應用程序,即文件仍然是面向應用程序的。當不同的應用程序具有部分相同的數據時,也必須建立各自的文件,而不能共享相同的數據,因此數據冗余度大,浪費存儲空間。
② 數據獨立性差。
文件系統中的文件是為某一特定的應用程序服務的,文件的邏輯結構是針對具體的應用程序來設計和優化的,因此文件中的數據要再被一些新的應用程序使用會很困難。
③ 數據一致性差。
由于相同數據的重復存儲、各自管理,在進行更新操作時,容易造成數據的不一致,給數據的修改和維護帶來困難。
文件系統階段應用程序與文件之間的對應關系如圖1-3所示。
3.數據庫系統階段
自20世紀60年代后期以來,計算機管理的對象規模越來越大,應用范圍越來越廣泛,數據量急劇增加,同時,多種應用、多種語言互相覆蓋的共享集合的需求越來越強烈。

圖1-3 文件系統階段應用程序與文件之間的對應關系
在這種背景下,將文件系統作為數據管理手段已經不能滿足需求,為了解決多用戶、多應用程序共享數據的要求,出現了統一管理數據的專門軟件系統—數據庫管理系統(Database Management System, DBMS)。
數據庫是長期存儲在計算機內、有組織、可共享的大量數據的集合。它可以供不同用戶共享,具有最小冗余度和較高的數據獨立性。DBMS在數據庫建立、運用和維護時對數據庫進行統一控制,以保證數據的安全性和完整性,并且在多用戶同時使用數據庫時可以進行并發控制,以及在發生故障后對數據庫進行恢復。
(1)數據庫管理技術的突破
數據庫管理技術進入新時代離不開里程碑式的技術突破,以下3件大事為數據庫技術的突破奠定了基礎。
① 1968年,美國IBM公司推出了世界上第一個基于層次模型的大型商用DBMS——信息管理系統(Information Management System,IMS)。
② 1969年,美國數據系統語言協會(Conference on Data System Language, CODASYL)下屬的數據庫任務組(Database Task Group, DBTG)提出了基于網狀模型的數據庫任務組系統。
③ 1970年,美國IBM公司的高級研究員科德(E.F.Codd)發表論文提出關系模型,此模型奠定了關系數據庫的理論基礎。
(2)數據庫系統階段的特點
與人工管理階段和文件系統階段相比,數據庫系統階段主要有如下特點。
① 數據高度結構化。
數據結構化是數據庫系統與文件管理系統的根本區別。數據庫系統不僅會考慮數據項之間的聯系,還會考慮數據類型之間的聯系。在數據庫系統中,不僅數據內部具有結構化特征,數據整體也是結構化的,即數據之間是有聯系的。例如,某學校的信息管理系統除了會考慮教務處的學生成績管理、選課管理,還會考慮學籍管理處的學生基本信息管理,人事處的教職工基本信息管理、薪酬管理等。因此,該學校的信息管理系統中的數據就要面向學校所有部門的應用,而不僅是教務處的學生選課應用。
② 數據的共享性高、冗余度小,易于擴充。
數據庫中的數據是高度共享的,數據不再只是面向某個單獨的應用,是面向整個系統。也就是說,同一個用戶可以因不同的應用目的訪問同一數據;不同用戶可以同時訪問同一數據,即“并發訪問”。
③ 數據獨立性高。
用戶只需關注數據庫名、數據文件名和文件中的屬性名等邏輯概念,不用過多考慮數據的實際物理存儲,也就是不需要關心實際數據究竟存儲在磁盤的什么位置。更準確地說,數據庫系統同時具有物理獨立性與邏輯獨立性。
物理獨立性是指改變數據庫物理結構時不必修改現有的應用程序。數據在磁盤上的存儲方式由DBMS管理,應用程序無須了解,即當數據的物理存儲方式改變時,應用程序不用改變。
邏輯獨立性是指邏輯數據獨立性,是指改變數據庫邏輯結構時不用改變應用程序。用戶的應用程序與數據庫的邏輯結構是相互獨立的,即當數據的邏輯結構改變時,應用程序可以不變。
DBMS提供的二級映像功能保證了數據獨立性,相關內容將在后面的項目中進行討論。
④ 數據安全性和正確性高。
數據庫的共享會為數據庫帶來安全隱患,并且數據庫的共享具有并發的特征,即多個用戶能夠同時對數據庫中的數據進行存取,甚至可以同時存取數據庫中的同一個數據,這可能會存在用戶操作相互干擾的隱患。因此,需要一組軟件提供相應的工具對數據進行管理和控制,使用 DBMS 可以達到保證數據的安全性和正確性的基本要求。
● 保證數據的安全性。
保證數據的安全性是指對數據進行保護,以防止不正當使用造成的數據泄露及破壞。用戶只能用合法的方式對數據進行使用和處理。
● 數據的完整性檢查。
數據的完整性是指數據的正確性、有效性和相容性。完整性檢查將數據控制在有效的范圍內,并保證數據間所具有的關系完整。
● 并發控制。
當多個用戶并發操作,同時存取或修改數據時,其相互間可能會產生干擾,從而得到錯誤的結果,或破壞數據庫的完整性,因此多用戶的并發進程必須受到DBMS的控制和協調。
● 數據庫恢復。
在日常的數據庫管理中可能會遇到機器損壞或者人為失誤的問題。例如,計算機系統的軟硬件故障、數據庫管理員的失誤甚至故意破壞,這些都會破壞數據庫中數據的正確性,甚至造成數據庫中部分甚至全部數據丟失。因此,DBMS需具備使數據庫從錯誤狀態恢復到某一已知的正確狀態(也可稱為一致狀態)的功能,即數據庫恢復功能。
數據庫系統階段應用程序與數據庫之間的對應關系如圖1-4所示。

圖1-4 數據庫系統階段應用程序與數據庫之間的對應關系