登錄

數(shù)據(jù)庫系統(tǒng)

百科 > 信息管理系統(tǒng) > 數(shù)據(jù)庫系統(tǒng)

1.什么是數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后構(gòu)成的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。[1]

數(shù)據(jù)庫系統(tǒng)是一個(gè)由硬件、軟件(操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和編譯系統(tǒng)等)、數(shù)據(jù)庫和用戶構(gòu)成的完整計(jì)算機(jī)應(yīng)用系統(tǒng)。數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的核心和管理對象。因此,數(shù)據(jù)庫系統(tǒng)的含義已經(jīng)不僅僅是一個(gè)對數(shù)據(jù)進(jìn)行管理的軟件,也不僅僅是一個(gè)數(shù)據(jù)庫,數(shù)據(jù)庫系統(tǒng)是一個(gè)實(shí)際運(yùn)行的,按照數(shù)據(jù)庫方式存儲(chǔ)、維護(hù)和向應(yīng)用系統(tǒng)提供數(shù)據(jù)支持的系統(tǒng)。[2]

2.數(shù)據(jù)庫系統(tǒng)階段[3]

20世紀(jì)60年代后期,使用電子計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理的規(guī)模越來越大,同時(shí)出現(xiàn)了大容量且價(jià)格低廉的磁盤存儲(chǔ)器,操作系統(tǒng)也日漸成熟。為了解決數(shù)據(jù)的獨(dú)立性問題,實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一管理,達(dá)到數(shù)據(jù)共享的目的,出現(xiàn)了數(shù)據(jù)庫技術(shù)。數(shù)據(jù)庫技術(shù)從20世紀(jì)60年代中期產(chǎn)生到今天,僅僅30多年的歷史,經(jīng)歷了三代演變,發(fā)展成為以數(shù)據(jù)建模和DBMS核心技術(shù)為主,內(nèi)容豐富的一門學(xué)科;帶動(dòng)了一個(gè)巨大的軟件產(chǎn)業(yè)——DBMs產(chǎn)品及其相關(guān)工具和解決方案。數(shù)據(jù)庫技術(shù)取得了巨大的成功,從第一代層次與網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)和第二代關(guān)系數(shù)據(jù)庫系統(tǒng),發(fā)展到第三代以面向?qū)ο髷?shù)據(jù)庫模型為主要特征的新一代數(shù)據(jù)庫系統(tǒng)。

1.第一代數(shù)據(jù)庫系統(tǒng)

是20世紀(jì)70年代研制的層次和網(wǎng)狀數(shù)據(jù)庫系統(tǒng)。1963年,Bachman設(shè)計(jì)開發(fā)的IDS系統(tǒng)開始投入運(yùn)行,它可以為多個(gè)COBOL程序共享數(shù)據(jù)庫;1968年,TOTAL等網(wǎng)狀數(shù)據(jù)庫系統(tǒng)開始出現(xiàn);1969年,IBM公司McGee等人開發(fā)的層次式數(shù)據(jù)庫系統(tǒng)的IMS系統(tǒng)發(fā)表,它可以讓多個(gè)程序共享數(shù)據(jù)庫。1969年lo月,CODASYL數(shù)據(jù)庫研制者提出了網(wǎng)絡(luò)模型數(shù)據(jù)庫系統(tǒng)規(guī)范報(bào)告,使數(shù)據(jù)庫系統(tǒng)開始走向規(guī)范化和標(biāo)準(zhǔn)化。1971年,美國數(shù)據(jù)庫系統(tǒng)語言協(xié)會(huì)下屬的數(shù)據(jù)庫任務(wù)組對網(wǎng)絡(luò)數(shù)據(jù)庫方法進(jìn)行了系統(tǒng)的研究、探討,提出了稱為DBTG報(bào)告的若干報(bào)告,DBTG報(bào)告確定并建立了網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的許多概念、方法和技術(shù),提出了三級(jí)抽象模式,即對應(yīng)用程序所需的那部分?jǐn)?shù)據(jù)結(jié)構(gòu)描述的外模式,對整個(gè)客體系統(tǒng)數(shù)據(jù)結(jié)構(gòu)描述的概念模式,對數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)描述的內(nèi)模式,解決了數(shù)據(jù)獨(dú)立性的問題,標(biāo)志著數(shù)據(jù)庫在理論上的成熟。正因?yàn)槿绱?,許多專家認(rèn)為數(shù)據(jù)庫技術(shù)起源于20世紀(jì)60年代末。

2.第二代數(shù)據(jù)庫系統(tǒng)

是關(guān)系數(shù)據(jù)庫系統(tǒng)。1970年IBM公司Codd發(fā)表了題為“大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)系模型”的論文,提出了關(guān)系數(shù)據(jù)模型,開創(chuàng)了關(guān)系數(shù)據(jù)庫方法和關(guān)系數(shù)據(jù)庫理論。關(guān)系方法由于其理論上的完美和結(jié)構(gòu)上的簡單,對數(shù)據(jù)庫技術(shù)的發(fā)展起了至關(guān)重要的作用,成功地為關(guān)系數(shù)據(jù)庫技術(shù)奠定了理論基礎(chǔ)。20世紀(jì)70年代是關(guān)系數(shù)據(jù)庫理論研究和原型系統(tǒng)開發(fā)的時(shí)代。關(guān)系數(shù)據(jù)庫系統(tǒng)的研究取得了一系列的成果,主要包括以下幾個(gè)方面:

(1)奠定了關(guān)系模型的理論基礎(chǔ),給出了被人們普遍接受的關(guān)系模型的規(guī)范說明。

(2)提出了關(guān)系數(shù)據(jù)語言,如關(guān)系代數(shù)、關(guān)系演算、SQL語言、QBE等。這些描述性語言一改以往程序設(shè)計(jì)語言和網(wǎng)狀、層次數(shù)據(jù)庫語言的面向過程的風(fēng)格,以其易學(xué)易懂的優(yōu)點(diǎn)得到了最終用戶的歡迎,為20世紀(jì)80年代數(shù)據(jù)庫語言標(biāo)準(zhǔn)化打下了基礎(chǔ)。

(3)研制了大量的關(guān)系數(shù)據(jù)庫系統(tǒng)原型,攻克了系統(tǒng)實(shí)現(xiàn)中查詢優(yōu)化、并發(fā)控制、故障恢復(fù)等一系列關(guān)鍵技術(shù)。不僅大大豐富了數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)技術(shù)和數(shù)據(jù)庫理論,更重要的是促進(jìn)了關(guān)系數(shù)據(jù)庫系統(tǒng)產(chǎn)品的蓬勃發(fā)展和廣泛應(yīng)用。

3.第三代數(shù)據(jù)庫系統(tǒng)

20世紀(jì)80年代以來,數(shù)據(jù)庫理論和應(yīng)用進(jìn)入成熟發(fā)展時(shí)期。隨著計(jì)算技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,計(jì)算機(jī)應(yīng)用領(lǐng)域迅速擴(kuò)展,數(shù)據(jù)庫應(yīng)用領(lǐng)域也在不斷地?cái)U(kuò)大,數(shù)據(jù)庫技術(shù)在商業(yè)領(lǐng)域的巨大成就刺激了其他領(lǐng)域?qū)?shù)據(jù)庫需求的迅速增長。一方面,新的數(shù)據(jù)庫應(yīng)用領(lǐng)域,如計(jì)算機(jī)輔助設(shè)計(jì)/管理(CAD/CAM)、過程控制、辦公自動(dòng)化系統(tǒng)、地理信息系統(tǒng)(GIS)、計(jì)算機(jī)制造系統(tǒng)(CIMS)等,為數(shù)據(jù)庫的應(yīng)用開辟了新的天地;另一方面,在實(shí)際應(yīng)用中管理方面的新需求也直接推動(dòng)了數(shù)據(jù)庫技術(shù)的研究與發(fā)展。

以關(guān)系數(shù)據(jù)庫為代表的傳統(tǒng)數(shù)據(jù)庫已經(jīng)很難勝任新領(lǐng)域的需求,因?yàn)樾碌膽?yīng)用要求數(shù)據(jù)庫能處理復(fù)雜性較高的數(shù)據(jù),如處理與時(shí)間有關(guān)的屬性,甚至還要求數(shù)據(jù)庫有動(dòng)態(tài)性和主動(dòng)性。這樣就必須有新的數(shù)據(jù)庫技術(shù)才能夠滿足現(xiàn)實(shí)需要,為了滿足現(xiàn)代應(yīng)用的需求,必須將數(shù)據(jù)庫技術(shù)與其他現(xiàn)代數(shù)據(jù)處理技術(shù)(如面向?qū)ο蠹夹g(shù)、時(shí)序和實(shí)時(shí)處理技術(shù)、人工智能技術(shù)、多媒體技術(shù))完善地集成,以形成“新一代數(shù)據(jù)庫技術(shù)”,也可稱為“現(xiàn)代數(shù)據(jù)庫技術(shù)”,如時(shí)態(tài)數(shù)據(jù)庫技術(shù)、實(shí)時(shí)數(shù)據(jù)庫技術(shù)和多媒體數(shù)據(jù)庫技術(shù)等。第三代數(shù)據(jù)庫系統(tǒng)中最主要的數(shù)據(jù)庫類型是面向?qū)ο髷?shù)據(jù)庫系統(tǒng)(objectorienteddatabasesystem,簡稱OODBS),它是數(shù)據(jù)庫技術(shù)與面向?qū)ο蟪绦蛟O(shè)計(jì)方法相結(jié)合的產(chǎn)物,它既是一個(gè)DBMS,又是一個(gè)面向?qū)ο笙到y(tǒng)。因而既具有DBMS特性,如持久性、輔助管理、數(shù)據(jù)共享(并發(fā)性)、數(shù)據(jù)可靠性(事務(wù)管理和恢復(fù))、查詢處理和模式修改等,又具有面向?qū)ο蟮奶卣鳎珙愋停?、封裝性/數(shù)據(jù)抽象、繼承性、對象標(biāo)識(shí)、復(fù)合對象和可擴(kuò)充等特性。

3.數(shù)據(jù)庫系統(tǒng)的特點(diǎn)[3]

用數(shù)據(jù)庫系統(tǒng)來管理數(shù)據(jù)具有如下特點(diǎn):

1.數(shù)據(jù)結(jié)構(gòu)化

在描述數(shù)據(jù)時(shí)不僅要描述數(shù)據(jù)本身,還要描述數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)結(jié)構(gòu)化是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。在同一數(shù)據(jù)庫中,各個(gè)數(shù)據(jù)文件存在聯(lián)系,且在整體上服從一定的結(jié)構(gòu)形式(圖)。

Image:數(shù)據(jù)結(jié)構(gòu)化示例.jpg

2.數(shù)據(jù)共享性高、冗余度低、易擴(kuò)充

共享性高:數(shù)據(jù)庫系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng),這樣可以減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間。即數(shù)據(jù)庫中的數(shù)據(jù)可以被多個(gè)用戶、多個(gè)應(yīng)用同時(shí)使用。

冗余度低:冗余度是指同一數(shù)據(jù)被重復(fù)存儲(chǔ)的程度,數(shù)據(jù)庫系統(tǒng)由于數(shù)據(jù)結(jié)構(gòu)化,使得冗余度可能降到最低程序。

易擴(kuò)充:由于設(shè)計(jì)時(shí)主要考慮數(shù)據(jù)結(jié)構(gòu)化,即面向系統(tǒng),而不是面向某個(gè)應(yīng)用,所以容易擴(kuò)充。

數(shù)據(jù)共享和減少冗余還能避免數(shù)據(jù)之間的不相容性和不一致性。

不相容性:例如,某人工作了兩個(gè)部門,1986-1990年在甲部門,19901996年在乙部門,在寫檔案材料時(shí),甲部門寫成了1986-1990年,由于信息不共享,加之工作疏忽,乙部門寫成了1989-1996年,即造成了不相容,兩部門間重復(fù)了1年。

不一致性:例如,某職工為“李萍”,由于信息不共享,系別輸入的姓名為“李萍”,但工資記錄輸入的姓名為“李平”,即造成了不一致。

3.數(shù)據(jù)獨(dú)立性高

由于應(yīng)用程序取數(shù)不是直接從數(shù)據(jù)庫中取數(shù),而是通過DBMS間接取數(shù),故保持了應(yīng)用與數(shù)據(jù)庫數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性。所謂物理獨(dú)立性是指:當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(或物理結(jié)構(gòu))改變時(shí),通過DBMS的相應(yīng)改變可以保持?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)不變,從而應(yīng)用程序也不必改變。邏輯獨(dú)立性是指:當(dāng)數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時(shí),通過DBMS的相應(yīng)改變可以保持?jǐn)?shù)據(jù)的局部邏輯結(jié)構(gòu)不變,應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必改變。

4.數(shù)據(jù)由DBMS統(tǒng)一管理和控制

由于數(shù)據(jù)庫的共享是并發(fā)的共享,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時(shí)存取數(shù)據(jù)庫中同一個(gè)數(shù)據(jù)。為此DBMS必須提供以下幾方面的數(shù)據(jù)控制功能:

(1)數(shù)據(jù)的安全性保護(hù)指保護(hù)數(shù)據(jù),防止不合法使用數(shù)據(jù)造成數(shù)據(jù)的泄密和破壞,使每個(gè)用戶只能按規(guī)定,對某些數(shù)據(jù)以某些方式進(jìn)行訪問和處理。

(2)數(shù)據(jù)的完整性檢查指數(shù)據(jù)的正確性、有效性和相容性。即將數(shù)據(jù)控制在有效的范圍內(nèi),或要求數(shù)據(jù)之間滿足一定的關(guān)系。

正確性:如輸入工資時(shí),應(yīng)該輸入數(shù)值,而實(shí)際輸入了字符,即不正確。

有效性:如輸人年齡時(shí),應(yīng)該輸人0~150之間的數(shù)據(jù),而實(shí)際輸入了-5,即無效。

相容性:如輸入飼料配比百分比時(shí),應(yīng)該5種原料百分比之和加起來為100,而實(shí)際輸入數(shù)據(jù)加起來大于100,即不相容。

(3)并發(fā)控制指控制多個(gè)用戶同時(shí)存取、修改數(shù)據(jù)庫中的數(shù)據(jù),以保證數(shù)據(jù)庫的完整性。例如,多個(gè)用戶可以同時(shí)讀,但同一時(shí)間只能允許一個(gè)用戶寫數(shù)據(jù)。

(4)數(shù)據(jù)庫恢復(fù)指將數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))的功能。計(jì)算機(jī)系統(tǒng)的硬件故障、軟件故障、操作員的失誤,以及故意的破壞均會(huì)影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫部分或全部數(shù)據(jù)的丟失。

4.數(shù)據(jù)庫系統(tǒng)的組成[2]

Image:數(shù)據(jù)庫系統(tǒng)的組成.jpg

數(shù)據(jù)庫系統(tǒng)的組成如下圖所示。

1)硬件

數(shù)據(jù)庫系統(tǒng)的硬件包括計(jì)算機(jī)的主機(jī)、鍵盤、顯示器和外圍設(shè)備(例如打印機(jī)、光盤機(jī)、磁帶機(jī)等)。由于一般數(shù)據(jù)庫系統(tǒng)所存放和處理的數(shù)據(jù)量很大,加之DBMS豐富的功能軟件,使得自身所占用的存儲(chǔ)空間很大,因此整個(gè)數(shù)據(jù)庫系統(tǒng)對硬件資源提出了較高的要求。這些要求是:①有足夠大的內(nèi)存以存放操作系統(tǒng)、DBMS的核心模塊、數(shù)據(jù)緩沖區(qū)和應(yīng)用程序;②有足夠大的直接存取設(shè)備存放數(shù)據(jù)(如磁盤),有足夠的存儲(chǔ)設(shè)備來進(jìn)行數(shù)據(jù)備份;③要求計(jì)算機(jī)有較高的數(shù)據(jù)傳輸能力,以提高數(shù)據(jù)傳送率。

2)軟件

數(shù)據(jù)庫系統(tǒng)的軟件除了數(shù)據(jù)庫管理系統(tǒng)之外,還包括操作系統(tǒng)各種高級(jí)語言處理程序(編譯或解釋程序)、應(yīng)用開發(fā)工具軟件和特定應(yīng)用軟件等。應(yīng)用開發(fā)工具包括應(yīng)用程序生成器和第四代語言等高效率、多功能的軟件工具,如報(bào)表生成系統(tǒng)、表格軟件、圖形編輯系統(tǒng)等。它們?yōu)閿?shù)據(jù)庫系統(tǒng)的應(yīng)用開發(fā)人員和最終用戶提供了有力的支持。特定應(yīng)用軟件是指為特定用戶開發(fā)的數(shù)據(jù)庫應(yīng)用軟件,如基于數(shù)據(jù)庫的各種管理軟件、管理信息系統(tǒng)(MIS)、決策支持系統(tǒng)(DSS)和辦公自動(dòng)化(OA)等。

3)數(shù)據(jù)

數(shù)據(jù)是數(shù)據(jù)庫的基本組成,是對客觀世界所存在事物的一種表征,也是數(shù)據(jù)庫用戶的操作對象。數(shù)據(jù)是數(shù)據(jù)庫系統(tǒng),也是企業(yè)或組織的真正財(cái)富。數(shù)據(jù)應(yīng)按照需求進(jìn)行采集并有結(jié)構(gòu)地存人數(shù)據(jù)庫。由于數(shù)據(jù)的類型多樣性,數(shù)據(jù)的采集方式和存儲(chǔ)方式也會(huì)不同。數(shù)據(jù)作為一種資源是數(shù)據(jù)庫系統(tǒng)中最穩(wěn)定的成分,即硬件可能更新,甚至軟件也可以更新,但只要企業(yè)或組織的性質(zhì)不改變,數(shù)據(jù)將是可以長期使用的財(cái)富。數(shù)據(jù)庫中的數(shù)據(jù)具有如前所述的集合、共享、最少冗余和能為多種應(yīng)用服務(wù)的特征。

4)用戶

數(shù)據(jù)庫用戶是管理、開發(fā)、使用數(shù)據(jù)庫的主體。根據(jù)工作任務(wù)的差異,數(shù)據(jù)庫用戶通??梢苑殖山K端用戶、應(yīng)用程序員和數(shù)據(jù)庫管理員等3種不同類型。

(1)終端用戶

終端用戶使用數(shù)據(jù)庫系統(tǒng)提供的終端命令語言,或者菜單驅(qū)動(dòng)、表格驅(qū)動(dòng)、圖形顯示和報(bào)表生成等對話方式,來存取和應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)。這類人員是一些并不精通計(jì)算機(jī)和程序設(shè)計(jì)的各級(jí)管理人員,但必須接受必要的數(shù)據(jù)庫應(yīng)用培訓(xùn)。

(2)應(yīng)用程序員

應(yīng)用程序員是負(fù)責(zé)設(shè)計(jì)和編制應(yīng)用程序的人員。他們通常使用C語言、數(shù)據(jù)庫語言或4GL(第四代語言)等來設(shè)計(jì)和編寫應(yīng)用程序,供終端用戶使用。應(yīng)用程序員不僅要求具有較高的技術(shù)專長,而且還要具備較深的資歷,熟悉部門全部數(shù)據(jù)的性質(zhì)和用途,兼有系統(tǒng)程序員、系統(tǒng)分析員的能力。其具體職責(zé)是:①?zèng)Q定數(shù)據(jù)庫的內(nèi)容和結(jié)構(gòu);②決定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)和存取策略,使數(shù)據(jù)的存儲(chǔ)空間利用率和存取效率均較優(yōu);③定義數(shù)據(jù)的安全性要求和完整性約束條件;④根據(jù)終端用戶的需要,設(shè)計(jì)和編制各種功能強(qiáng)勁的應(yīng)用程序。

對于應(yīng)用程序員而言,有兩個(gè)重要的工具是必需的,一個(gè)是系列的實(shí)用程序(DBMS的裝配、重組日志、恢復(fù)、統(tǒng)計(jì)等程序);另一個(gè)是數(shù)據(jù)字典(存儲(chǔ)數(shù)據(jù)庫結(jié)構(gòu)的定義、記錄類型和字段定義等信息)。數(shù)據(jù)庫系統(tǒng)建立時(shí),DBA還必須和系統(tǒng)分析員一起負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,確定系統(tǒng)的軟硬件配置并參與數(shù)據(jù)庫的設(shè)計(jì)。

(3)數(shù)據(jù)庫管理員

數(shù)據(jù)庫管理員(data basead ministrator,DBA)是指全面負(fù)責(zé)數(shù)據(jù)庫系統(tǒng)的日常管理、維護(hù)和運(yùn)行的人員。DBA處于終端用戶與應(yīng)用程序員之間,是數(shù)據(jù)庫系統(tǒng)能否正常運(yùn)轉(zhuǎn)的關(guān)鍵,大型數(shù)據(jù)庫系統(tǒng)需要設(shè)置專門的管理辦公室。其職責(zé)是監(jiān)督控制數(shù)據(jù)庫的使用和運(yùn)行,實(shí)施數(shù)據(jù)庫系統(tǒng)的維護(hù)、改進(jìn)和重組,開展信息社會(huì)化服務(wù)。

對于不同規(guī)模的數(shù)據(jù)庫系統(tǒng),用戶的人員配置是不相同的。只有大型數(shù)據(jù)庫系統(tǒng)才配備有應(yīng)用程序員和數(shù)據(jù)庫管理員。應(yīng)用型微機(jī)數(shù)據(jù)庫系統(tǒng)比較簡單,其用戶通常兼有終端用戶和數(shù)據(jù)庫管理員的職能,但必要時(shí)也應(yīng)當(dāng)兼有應(yīng)用程序員的能力。

評論  |   0條評論