【摘 要】 本文先介紹了DB,DBS和DBMS三者的關系,然后從數(shù)據(jù)庫的發(fā)展歷史、經(jīng)歷的過程,進行了比較、分析和研究,指出了各代數(shù)據(jù)庫的特點和不足,給使用者提供了選擇數(shù)據(jù)庫的參考依據(jù),并對今后數(shù)據(jù)庫的發(fā)展方向進行了展望。
【關鍵詞】 數(shù)據(jù)庫(DB) 數(shù)據(jù)庫管理系統(tǒng)(DBMS) 數(shù)據(jù)庫系統(tǒng)(DBS)
人們每天要面對大量的信息,信息管理和數(shù)據(jù)處理自然成了計算機應用的一個主要領域。隨著計算機技術的發(fā)展和普及,各行各業(yè)的管理部門需要由計算機處理大量的信息。計算機管理數(shù)據(jù)隨著計算機的發(fā)展而不斷發(fā)展,利用計算機對數(shù)據(jù)進行處理經(jīng)歷了四個階段,即:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段和分布式數(shù)據(jù)庫系統(tǒng)階段。顯而易見數(shù)據(jù)庫技術始終是這一領域中的核心。所謂數(shù)據(jù)庫DataBase(DB),是按一定方式把相關數(shù)據(jù)組織、存儲在計算機中的數(shù)據(jù)集合,數(shù)據(jù)庫不僅存放數(shù)據(jù),而且還存放數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)庫管理系統(tǒng)DataBase Manage System(DBMS)是指幫助用戶建立、使用和管理數(shù)據(jù)庫的軟件系統(tǒng),主要包括數(shù)據(jù)描述語言、數(shù)據(jù)操作語言以及其他管理和控制程序三個部分。數(shù)據(jù)庫系統(tǒng)DataBase System(DBS)是指引進數(shù)據(jù)庫技術的的計算機系統(tǒng),包括硬件系統(tǒng),數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)和相關軟件、數(shù)據(jù)庫管理員、用戶等五部分。由此可見,三者之間是DBS包括DB和DBMS?,F(xiàn)在,各種各樣的數(shù)據(jù)庫被廣泛應用在各個領域中,選擇一個優(yōu)秀的數(shù)據(jù)庫管理系統(tǒng)作為開發(fā)平臺,將給日后的信息處理帶來極大方便。下面我介紹一下數(shù)據(jù)庫的發(fā)展及如何選擇適用的數(shù)據(jù)庫,希望能給您的工作帶來啟示。
一、數(shù)據(jù)庫技術的發(fā)展史
數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎。因此,對數(shù)據(jù)庫技術發(fā)展階段的劃分應該以數(shù)據(jù)模型的發(fā)展演變作為主要依據(jù)和標志??傮w說來,數(shù)據(jù)庫技術從開始到現(xiàn)在一共經(jīng)歷了三個發(fā)展階段:第一代是網(wǎng)狀、層次數(shù)據(jù)庫系統(tǒng),第二代是關系數(shù)據(jù)庫系統(tǒng),第三代是以面向對象數(shù)據(jù)模型為主要特征的數(shù)據(jù)庫系統(tǒng)。
第一代包括網(wǎng)狀和層次數(shù)據(jù)庫系統(tǒng),是因為它們的數(shù)據(jù)模型雖然分別為層次和網(wǎng)狀模型,但實質上層次模型只是網(wǎng)狀模型的特例而已。這二者都是格式化數(shù)據(jù)模型,都是在60年代后期研究和開發(fā)的,不論是體系結構、數(shù)據(jù)庫語言,還是數(shù)據(jù)的存儲管理,都具有共同特征,所以它們應該劃分為一代。
第二代數(shù)據(jù)庫系統(tǒng)支持關系數(shù)據(jù)模型。關系模型不僅具有簡單、清晰的優(yōu)點,而且有關系代數(shù)作為語言模型,有關系數(shù)據(jù)理論作為理論基礎。因此關系數(shù)據(jù)庫具有形式基礎好、數(shù)據(jù)獨立性強、數(shù)據(jù)庫語言非過程化等特點,這些特點是數(shù)據(jù)庫技術發(fā)展到了第二代的顯著標志。雖然關系數(shù)據(jù)模型描述了現(xiàn)實世界數(shù)據(jù)的結構和一些重要的相互聯(lián)系,但是仍然不足以抓住和表達數(shù)據(jù)對象所具有的豐富而重要的語義,因而它屬于語法模型。
第三代數(shù)據(jù)庫系統(tǒng)的特征是數(shù)據(jù)模型更加豐富,數(shù)據(jù)管理功能更為強大,能夠支持傳統(tǒng)數(shù)據(jù)庫難以支持的新的應用需求。
二、縱橫數(shù)據(jù)庫
回顧數(shù)據(jù)庫的發(fā)展歷史,展望數(shù)據(jù)庫的未來發(fā)展趨勢。
2.1 兩代演變終成正果
數(shù)據(jù)庫興起于20世紀60年代末期,歷經(jīng)兩代的演變。在短短的30年里,它從第一代層次與網(wǎng)絡數(shù)據(jù)庫系統(tǒng)和第二代關系數(shù)據(jù)庫系統(tǒng),發(fā)展到第三代以面向對象數(shù)據(jù)模型為主要特征的新一代數(shù)據(jù)庫系統(tǒng)。正是因為人們致力于對數(shù)據(jù)庫的理論研究和系統(tǒng)開發(fā),今天的數(shù)據(jù)庫技術才與網(wǎng)絡通信技術、人工智能技術、面向對象程序設計技術、并行計算技術等互相滲透、有機結合,而成為計算機信息系統(tǒng)和應用系統(tǒng)的重要技術支柱。
在前兩代數(shù)據(jù)庫發(fā)展史上,有三個標志性事件。第一個是IBM公司在1969年研發(fā)出數(shù)據(jù)庫管理系統(tǒng)的商品化軟件IMS,第二個是美國數(shù)據(jù)庫系統(tǒng)語言協(xié)會于60年代末70年代初提出DBTG(Data Base Task Group)報告,它們分別標志著層次和網(wǎng)絡數(shù)據(jù)庫模型的成熟。而第三個事件更具有劃時代的意義:IBM公司的研究員E.F.Codd在1970年發(fā)表了題為“大型共享數(shù)據(jù)庫數(shù)據(jù)的關系模型”論文,從此創(chuàng)建了具有極大商業(yè)化潛能的關系數(shù)據(jù)庫模型,他也因此而獲得了計算機界極具權威的ACM圖靈獎。這三件大事標志著數(shù)據(jù)庫系統(tǒng)的研發(fā)取得了輝煌成就,特別是相繼出現(xiàn)的商品化關系數(shù)據(jù)庫管理系統(tǒng)更是標志著關系數(shù)據(jù)庫系統(tǒng)已經(jīng)接近頂峰。
2.2 三代應用再創(chuàng)輝煌
隨著計算機應用領域的迅速擴大,第三代數(shù)據(jù)庫系統(tǒng)應運而生。與前兩代數(shù)據(jù)庫主要針對商業(yè)事務處理不同,新一代數(shù)據(jù)庫的應用變得更加廣泛:工程數(shù)據(jù)庫應用、地理信息系統(tǒng)、多媒體信息系統(tǒng)、科學與統(tǒng)計數(shù)據(jù)庫應用等,不勝枚舉。即使是面對著下一代數(shù)據(jù)庫技術將向何處去的問題,最新的數(shù)據(jù)庫管理系統(tǒng)--擴展關系數(shù)據(jù)庫系統(tǒng)、面向對象的數(shù)據(jù)庫系統(tǒng)、分布式數(shù)據(jù)庫系統(tǒng)、并行數(shù)據(jù)庫系統(tǒng)以及專家數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)倉庫等--也以其先進強大的技術和日趨完善的管理功能逐漸影響和滲透到包括商業(yè)事務處理在內(nèi)的其它各個領域,我們沒有理由不相信:這些新興的數(shù)據(jù)庫技術將在計算機應用的發(fā)展中為人類做出更大的貢獻。
三、精選數(shù)據(jù)庫
在介紹了數(shù)據(jù)庫的基本知識后,您是否已有些心動,也想掌握這個強大的工具。那么,跟我一起來選擇數(shù)據(jù)庫系統(tǒng)吧。面對眾多的數(shù)據(jù)庫系統(tǒng)您可不要不知所措。目前流行著相當多的數(shù)據(jù)庫系統(tǒng),大的如Orcacl 、Informix 和DB2等,小的如Visual FoxPro、 dBase 和Access等。它們各有所長,能分別滿足不同層次的需要:Orcacl以穩(wěn)定性著稱,Informix因先進性聞名,它們適合建立工程、企業(yè)等大型數(shù)據(jù)庫;而Visual FoxPro簡單快速,Access小巧便捷,能很好的為家庭及中小型數(shù)據(jù)庫服務。在眾多的數(shù)據(jù)庫系統(tǒng)中,有幾個數(shù)據(jù)庫系統(tǒng)異軍突起,成為應用最廣泛、市場最流行的數(shù)據(jù)庫平臺,SQL Server 、Delphi 和Visual FoxPro是其中的佼佼者。
下面我將分別向您介紹。先說SQL Server,從某種意義上來說它不能算是大型數(shù)據(jù)庫。因為目前它只能在Windows NT下運行,而不能移植到其它操作系統(tǒng)上,但它憑借其極少的數(shù)據(jù)冗余、較高的數(shù)據(jù)庫訪問效率而成為目前最受歡迎的大中型企業(yè)級數(shù)據(jù)庫,與Orcacl和Informix相比,SQL Server的應用性更好,它使較大的數(shù)據(jù)庫也非常容易維護,特別適合那些要建立大中型數(shù)據(jù)庫又不是很精通數(shù)據(jù)庫平臺的朋友。相比之下,Delphi 和Visual FoxPro則更多的立足個人或中小型數(shù)據(jù)數(shù)據(jù)庫的應用,而且它們都是基于面向對象的數(shù)據(jù)庫前端開發(fā)工具。就Delphi來說,它的優(yōu)點是能夠快捷地產(chǎn)生界面應用程序。在數(shù)據(jù)庫應用設計方面,也具有強大的功能:開發(fā)一個較大的數(shù)據(jù)庫應用往往只要很短的時間即可完成,特別是它提供的用于數(shù)據(jù)庫訪問和控制的可視控件能為程序設計帶來極大的方便。VFP(Microsoft Visual FoxPro)關系型數(shù)據(jù)庫系統(tǒng)是新一代小型數(shù)據(jù)庫管理系統(tǒng)的典型代表,是迄今為止速度最快的數(shù)據(jù)庫管理系統(tǒng),它能夠簡化用戶數(shù)據(jù)庫管理,使得數(shù)據(jù)的組織、定義數(shù)據(jù)庫規(guī)則和創(chuàng)建應用程序等工作更加簡單便捷,僅僅利用系統(tǒng)提供的可視化設計工具向導就可以快速創(chuàng)建表、查詢和視圖。另外它還提供了一個集成化開發(fā)環(huán)境,包括面向對象的編程工具等。另外,它能夠管理大量復雜的數(shù)據(jù)信息,同時具有很好的安全性和較強的網(wǎng)絡功能,能夠實現(xiàn)數(shù)據(jù)的遠程訪問和存儲加工。所以VFP以極其強大的性能、豐富而又完整的設計工具、較高的處理速度、友好的用戶界面以及完備的兼容性等等方面的突出特點,深受廣大用戶的喜愛。在這兩個開發(fā)工具中,您任選其一就能較好地完成對數(shù)據(jù)庫的創(chuàng)建和維護。就是需要在平臺之間相互移植,它們也是相當?shù)姆奖?,易學易用。
四、數(shù)據(jù)庫系統(tǒng)的組成部分及聯(lián)系
數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構成
4.1 硬件平臺及數(shù)據(jù)庫
由于數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)量都很大,加之DBMS豐富的功能使得自身的規(guī)模也很大,因此整個數(shù)據(jù)庫系統(tǒng)對硬件資源提出了較高的要求,這些要求是:
(1)足夠大的內(nèi)存,存放操作系統(tǒng)、DBMS的核心模塊、數(shù)據(jù)緩沖區(qū)和應用程序。
(2) 有足夠大的磁盤等直接存取設備存放數(shù)據(jù)庫,有足夠的磁帶(或微機軟盤)作數(shù)作備份。
(3) 要求系統(tǒng)有較高的通道能力,以提高數(shù)據(jù)傳送率。
4.2 軟件
數(shù)據(jù)庫系統(tǒng)的軟件主要包括:
(1)DBMS。DBMS是為數(shù)據(jù)庫的建立、使用和維護配置的軟件。
(2)支持DBMS運行的操作系統(tǒng)。
(3)具有與數(shù)據(jù)庫接口的高級語言及其編譯系統(tǒng),便于開發(fā)應用程序。
(4)以DBMS為核心的應用開發(fā)工具。
應用開發(fā)工具是系統(tǒng)為應用開發(fā)人員和最終用戶提供的高效率、多功能的應用生成器、第四代語言等各種軟件工具。它們?yōu)閿?shù)據(jù)庫系統(tǒng)的開發(fā)和應用提供了良好的環(huán)境。
(5)為特定應用環(huán)境開發(fā)的數(shù)據(jù)庫應用系統(tǒng)。
4.3 人員
開發(fā)、管理和使用數(shù)據(jù)庫系統(tǒng)的人員主要是:數(shù)據(jù)庫管理員、系統(tǒng)分析員和數(shù)據(jù)庫設計人員、應用程序員和最終用戶。不同的人員涉及不同的數(shù)據(jù)抽象級別,具有不同的數(shù)據(jù)視圖,如圖1.30所示,其各自的職責分別是:
1.數(shù)據(jù)庫管理員(DataBase Administrat
or,簡稱 DBA)在數(shù)據(jù)庫系統(tǒng)環(huán)境下,有兩類共享資源。一類是數(shù)據(jù)庫,另一類是數(shù)據(jù)庫管理系統(tǒng)軟件。因此需要有專門的管理機構來監(jiān)督和管理數(shù)據(jù)庫系統(tǒng)。DBA則是這個機構的一個(組)人員,負責全面管理和控制數(shù)據(jù)庫系統(tǒng)。具體職責包括:
(1)決定數(shù)據(jù)庫中的信息內(nèi)容和結構
數(shù)據(jù)庫中要存放哪些信息,DBA要參與訣策。因此DBA必須參加數(shù)據(jù)庫設計的全過程,并與用戶、應用程序員、系統(tǒng)分析員密切合作共同協(xié)商,搞好數(shù)據(jù)庫設計。
(2)決定數(shù)據(jù)庫的存儲結構和存取策略
DBA要綜合各用戶的應用要求,和數(shù)據(jù)庫設計人員共同決定數(shù)據(jù)的存儲結構和存取策略以求獲得較高的存取效率和存儲空間利用率。
(3)定義數(shù)據(jù)的安全性要求和完整性約束條件
DBA的重要職責是保證數(shù)據(jù)庫的安全性和完整性。因此DBA負責確定各個用戶對數(shù)據(jù)庫的存取權限、數(shù)據(jù)的保密級別和完整性約束條件。
(4)監(jiān)控數(shù)據(jù)庫的使用和運行
DBA還有一個重要職責就是監(jiān)視數(shù)據(jù)庫系統(tǒng)的運行情況,及時處理運行過程中出現(xiàn)的問題。比如系統(tǒng)發(fā)生各種故障時,數(shù)據(jù)庫會因此遭到不同程度的破壞,DBA必須在最短時間內(nèi)將數(shù)據(jù)庫恢復到正確狀態(tài),并盡可能不影響或少影響計算機系統(tǒng)其他部分的正常運行。為此,DBA要定義和實施適當?shù)暮髠浜突謴筒呗?。如周期性的轉儲數(shù)據(jù)、維護日志文件等。有關這方面的內(nèi)容將在下面做進一步討論。
(5)數(shù)據(jù)庫的改進和重組重構
DBA還負責在系統(tǒng)運行期問監(jiān)視系統(tǒng)的空間利用率、處理效率等性能指標,對運行情況進行記錄、統(tǒng)計分析,依靠工作實踐并根據(jù)實際應用環(huán)境,不斷改進數(shù)據(jù)庫設計。不少數(shù)據(jù)庫產(chǎn)品都提供了對數(shù)據(jù)庫運行狀況進行監(jiān)視和分析的實用程序,DBA可以使用這些實用程序完成這項工作。
另外,在數(shù)據(jù)運行過程中,大量數(shù)據(jù)不斷插入、刪除、修改,時間一長,會影響系統(tǒng)的性能。因此,DBA要定期對數(shù)據(jù)庫進行重組織,以提高系統(tǒng)的性能。
①當用戶的需求增加和改變時,DBA還要對數(shù)據(jù)庫進行較大的改造,包括修改部分設計,即數(shù)據(jù)庫的重構造。②系統(tǒng)分析員和數(shù)據(jù)庫設計人員系統(tǒng)分析員負責應用系統(tǒng)的需求分析和規(guī)范說明,要和用戶及DBA相結合,確定系統(tǒng)的硬件軟件配置,并參與數(shù)據(jù)庫系統(tǒng)的概要設計。
數(shù)據(jù)庫設計人員負責數(shù)據(jù)庫中數(shù)據(jù)的確定、數(shù)據(jù)庫各級模式的設計。數(shù)據(jù)庫設計人員必須參加用戶需求調(diào)查和系統(tǒng)分析,然后進行數(shù)據(jù)庫設計。在很多情況下,數(shù)據(jù)庫設計人員就由數(shù)據(jù)庫管理員擔任。③應用程序員應用程序員負責設計和編寫應用系統(tǒng)的程序模塊,并進行調(diào)試和安裝。④用戶 這里用戶是指最終用戶(End User)。最終用戶通過應用系統(tǒng)的用戶接口使用數(shù)據(jù)庫。常用的接口方式有瀏覽器、菜單驅動、表格操作、圖形顯示、報表書寫等,給用戶提供簡明直觀的數(shù)據(jù)表示。
五、數(shù)據(jù)庫系統(tǒng)的特點和功能
5.1 數(shù)據(jù)庫系統(tǒng)的特點
數(shù)據(jù)庫管理系統(tǒng)將具有一定結構的數(shù)據(jù)組成一個集合,它主要具有以下幾個特點:
1. 數(shù)據(jù)的結構化。數(shù)據(jù)庫中的數(shù)據(jù)并不是雜亂無章、毫不相干的,它們具有一定的組織結構,屬于同一集合的數(shù)據(jù)具有相似的特征。
2. 數(shù)據(jù)的共享性。在一個單位的各個部門之間,存在著大量的重復信息。使用數(shù)據(jù)庫的目的就是要統(tǒng)一管理這些信息,減少冗余度,使各個部門共同享有相同的數(shù)據(jù)。
3. 數(shù)據(jù)的獨立性。數(shù)據(jù)的獨立性是指數(shù)據(jù)記錄和數(shù)據(jù)管理軟件之間的獨立。數(shù)據(jù)及其結構應具有獨立性,而不應該去改變應用程序。
4. 數(shù)據(jù)的完整性。數(shù)據(jù)的完整性是指保證數(shù)據(jù)庫中數(shù)據(jù)的正確性??赡茉斐蓴?shù)據(jù)不正確的原因很多,數(shù)據(jù)庫管理系統(tǒng)通過對數(shù)據(jù)性質進行檢查而管理它們。
5. 數(shù)據(jù)的靈活性。數(shù)據(jù)庫管理系統(tǒng)不是把數(shù)據(jù)簡單堆積,它在記錄數(shù)據(jù)信息的基礎上具有很多的管理功能,如輸入、輸出、查詢、編輯修改等。
6. 數(shù)據(jù)的安全性。根據(jù)用戶的職責,不同級別的人對數(shù)據(jù)庫具有不同的權限,數(shù)據(jù)庫管理系統(tǒng)應該確保數(shù)據(jù)的安全性。
5.2 數(shù)據(jù)庫系統(tǒng)的功能
一個好的數(shù)據(jù)庫管理系統(tǒng)應具有很多功能,其中最基本的有以下3種:
1. 數(shù)據(jù)定義
數(shù)據(jù)庫管理系統(tǒng)提供定義數(shù)據(jù)類型和數(shù)據(jù)存儲形式的功能。每個記 錄的每個字段中的信息為一個數(shù)據(jù)。因記錄的信息不同,其數(shù)據(jù)類型也應不同。通過定義數(shù)據(jù)類型,可以在一定程度上保證數(shù)據(jù)的完整性。最簡單的要求是,完整性規(guī)則應保證不能在定義為數(shù)字的字段中存放文本類型的數(shù)據(jù)。
2. 數(shù)據(jù)操作
數(shù)據(jù)庫管理系統(tǒng)提供多種處理數(shù)據(jù)的方式。例如,在一張表中查找信息或者在幾個相關的表或文件中進行復雜的查找;使用相應的命令更新一個字段或多個記錄的內(nèi)容;用一個命令對數(shù)據(jù)進行統(tǒng)計,甚至可以使用數(shù)據(jù)庫管理系統(tǒng)工具進行編程,以實現(xiàn)更加復雜的功能。
3. 數(shù)據(jù)控制 數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)提供一定的保護措施,從而保證在多個用戶共享數(shù)據(jù)時,只有被授權的用戶才能查看或修改數(shù)據(jù)。
介紹完這些優(yōu)秀的數(shù)據(jù)庫管理系統(tǒng),祝愿您能有些收獲。
參考文獻
[1] 王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].高等教育出版社,2006
[2] 黃梯云.管理信息系統(tǒng)[M].北京:經(jīng)濟科學出版社,2005
[3] 李淑華.VFP最新實用教程[M].沈陽:遼海出版社,2010
[4] 史濟民,湯觀全.Visual FoxPro及其應用系統(tǒng)開發(fā)[M].北京:清華大學出版社,2003