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

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

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

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

圖1-4 數(shù)據(jù)庫系統(tǒng)階段應(yīng)用程序與數(shù)據(jù)庫之間的對應(yīng)關(guān)系