資料庫技術
信息系統的一個核心技術
數據徠庫技術是信息系統的一個核心技術。是一種計算機輔助管理數據的方法,它研究如何組織和存儲數據,如何高效地獲取和處理數據。
資料庫技術是通過研究資料庫的結構、存儲、設計、管理以及應用的基本理論和實現方法,並利用這些理論來實現對資料庫中的數據進行處理、分析和理解的技術。即:資料庫技術是研究、管理和應用資料庫的一門軟體科學。
資料庫技術研究和管理的對象是數據,所以資料庫技術所涉及的具體內容主要包括:通過對數據的統一組織和管理,按照指定的結構建立相應的資料庫和數據倉庫;利用資料庫管理系統和數據挖掘系統設計出能夠實現對資料庫中的數據進行添加、修改、刪除、處理、分析、理解、報表和列印等多種功能的數據管理和數據挖掘應用系統;並利用應用管理系統最終實現對數據的處理、分析和理解。
資料庫技術產生於20世紀60年代末70年代初,其主要目的是有效地管理和存取大量的數據資源。資料庫技術主要研究如何存儲,使用和管理數據。數年來,資料庫技術和計算機網路技術的發展相互滲透,相互促進,已成為當今計算機領域發展迅速,應用廣泛的兩大領域。資料庫技術不僅應用於事務處理,並且進一步應用到情報檢索,人工智慧,專家系統,計算機輔助設計等領域.
從20世紀60年代末期開始到如今,資料庫技術已經發展了30多年。在這30多年的歷程中,人們在資料庫技術的理論研究和系統開發上都取得了輝煌的成就,而且已經開始對新一代資料庫系統的深入研究。資料庫系統已經成為現代計算機系統的重要組成部分。
資料庫最初是在大公司或大機構中用作大規模事務處理的基礎。後來隨著個人計算機的普及,資料庫技術被移植到PC機(PersonalComputer,個人計算機)上,供單用戶個人資料庫應用。接著,由於PC機在工作組內連成網,資料庫技術就移植到工作組級。如今,資料庫正在Internet和內聯網中廣泛使用。
20世紀60年代中期,資料庫技術是用來解決文件處理系統問題的。當時的資料庫處理技術還很脆弱,常常發生應用不能提交的情況。20世紀70年代關係模型的誕生為資料庫專家提供了構造和處理資料庫的標準方法,推動了關係資料庫的發展和應用。1979年,Ashton-Tate公司引入了微機產品dBaseⅡ,並稱之為關係資料庫管理系統,從此資料庫技術移植到了個人計算機上。20世紀80年代中期到後期,終端用戶開始使用區域網技術將獨立的計算機連接成網路,終端之間共享資料庫,形成了一種新型的多用戶數據處理,稱為客戶機/伺服器資料庫結構。如今,資料庫技術正在被用來同Internet技術相結合,以便在機構內聯網、部門區域網甚至WWW上發布資料庫數據。
數據管理技術是對數據進行分類,組織,編碼,輸入,存儲,檢索,維護和輸出的技術。數據管理技術的發展大致經過了以下三個階段:人工管理階段;文件系統階段;資料庫系統階段.
人工管理階段
20世紀50年代以前,計算機主要用於數值計算。從當時的硬體看,外存只有紙帶,卡片,磁帶,沒有直接存取設備;從軟體看(實際上,當時還未形成軟體的整體概念),沒有操作系統以及管理數據的軟體;從數據看,數據量小,數據無結構,由用戶直接管理,且數據間缺乏邏輯組織,數據依賴於特定的應用程序,缺乏獨立性.
文件系統階段
50年代後期到60年代中期,出現了磁鼓,磁碟等數據存儲設備。新的數據處理系統迅速發展起來。這種數據處理系統是把計算機中的數據組織成相互獨立的數據文件,系統可以按照文件的名稱對其進行訪問,對文件中的記錄進行存取,並可以實現對文件的修改,插入和刪除,這就是文件系統。文件系統實現了記錄內的結構化,即給出了記錄內各種數據間的關係。但是,文件從整體來看卻是無結構的。其數據面向特定的應用程序,因此數據共享性,獨立性差,且冗餘度大,管理和維護的代價也很大.
資料庫系統階段
徠60年代後期,出現了資料庫這樣的數據管理技術。資料庫的特點是數據不再只針對某一特定應用,而是面向全組織,具有整體的結構性,共享性高,冗餘度小,具有一定的程序與數據間的獨立性,並且實現了對數據進行統一的控制.
⒈2.1數據模型的概念及要素數據模型是現實世界在資料庫中的抽象,也是資料庫系統的核心和基礎。數據模型通常包括3個要素:
⑴數據結構。數據結構主要用於描述數據的靜態特徵,包括數據的結構和數據間的聯繫.
⑵數據操作。數據操作是指在資料庫中能夠進行的查詢,修改,刪除現有數據或增加新數據的各種數據訪問方式,並且包括數據訪問相關的規則.
⑶數據完整性約束。數據完整性約束由一組完整性規則組成.
⒈2.2常用的數據模型
資料庫理論領域中最常見的數據模型主要有層次模型,網狀模型和關係模型3種.
⑴層次模型(HierarchicalModel).層次模型使用樹形結構來表示數據以及數據之間的聯繫.
⑵網狀模型(NetworkModel).網狀模型使用網狀結構表示數據以及數據之間的聯繫.
⑶關係模型(RelationalModel).關係模型是一種理論最成熟,應用最廣泛的數據模型。在關係模型中,數據存放在一種稱為二維表的邏輯單元中,整個資料庫又是由若干個相互關聯的二維表組成的.
⒈2.2常用的數據模型
當前,已經有一些流行的,也比較成熟的軟體產品能夠很好地支持關係型數據模型,這些產品也因此稱為關係型資料庫管理系統(RelationalDataBaseManagementSystem,RDBMS).例如,微軟公司的MicrosoftAccess和MS-SQLServer,Sybase公司的Sybase,甲骨文公司的Oracle以及IBM公司的DB2.其中,MicrosoftAccess是一個中小型資料庫管理系統,適用於一般的中小企業;MS-SQLServer,Sybase和Oracle基本屬於大中型的資料庫管理系統;而DB2則屬於大型的資料庫管理系統,並且對計算機硬體有很高和專門的要求.
信息技術(InformationTechnology,IT)是當今使用頻率最高的名詞之一,它隨著計算機技術在工業、農業以及日常生活中的廣泛應用,已經被越來越多的個人和企業作為自己趕超世界潮流的標誌之一。而資料庫技術則是信息技術中一個重要的支撐。沒有資料庫技術,人們在浩瀚的信息世界中將顯得手足無措。
資料庫技術是計算機科學技術的一個重要分支。從20世紀50年代中期開始,計算機應用從科學研究部門擴展到企業管理及政府行政部門,人們對數據處理的要求也越來越高。1968年,世界上誕生了第一個商品化的信息管理系統IMS(InformationManagementSystem),從此,資料庫技術得到了迅猛發展。在網際網路日益被人們接受的今天,Internet又使資料庫技術、知識、技能的重要性得到了充分的放大。如今資料庫已經成為信息管理、辦公自動化、計算機輔助設計等應用的主要軟體工具之一,幫助人們處理各種各樣的信息數據。
數據模型是資料庫技術的核心和基礎,因此,對資料庫系統發展階段的劃分應該以數據模型的發展演變作為主要依據和標誌。按照數據模型的發展演變過程,資料庫技術從開始到如今短短的30年中,主要經歷了三個發展階段:第一代是網狀和層次資料庫系統,第二代是關係資料庫系統,第三代是以面向對象數據模型為主要特徵的資料庫系統。資料庫技術與網路通信技術、人工智慧技術、面向對象程序設計技術、并行計算技術等相互滲透、有機結合,成為當代資料庫技術發展的重要特徵。
第一代資料庫系統是20世紀70年代研製的層次和網狀資料庫系統。層次資料庫系統的典型代表是1969年IBM公司研製出的層次模型的資料庫管理系統IMS。20世紀60年代末70年代初,美國資料庫系統語言協會CODASYL(ConferenceonDataSystemLanguage)下屬的資料庫任務組DBTG(DataBaseTaskGroup)提出了若干報告,被稱為DBTG報告。DBTG報告確定並建立了網狀資料庫系統的許多概念、方法和技術,是網狀資料庫的典型代表。在DBTG思想和方法的指引下資料庫系統的實現技術不斷成熟,開發了許多商品化的資料庫系統,它們都是基於層次模型和網狀模型的。
可以說,層次資料庫是資料庫系統的先驅,而網狀資料庫則是資料庫概念、方法、技術的奠基者。
第二代資料庫系統是關係資料庫系統。1970年IBM公司的SanJose研究試驗室的研究員EdgarF.Codd發表了題為《大型共享資料庫數據的關係模型》的論文,提出了關係數據模型,開創了關係資料庫方法和關係資料庫理論,為關係資料庫技術奠定了理論基礎。EdgarF.Codd於1981年被授予ACM圖靈獎,以表彰他在關係資料庫研究方面的傑出貢獻。
20世紀70年代是關係資料庫理論研究和原型開發的時代,其中以IBM公司的SanJose研究試驗室開發的SystemR和Berkeley大學研製的Ingres為典型代表。大量的理論成果和實踐經驗終於使關係資料庫從實驗室走向了社會,因此,人們把20世紀70年代稱為資料庫時代。20世紀80年代幾乎所有新開發的系統均是關係型的,其中湧現出了許多性能優良的商品化關係資料庫管理系統,如DB2、Ingres、Oracle、Informix、Sybase等。這些商用資料庫系統的應用使資料庫技術日益廣泛地應用到企業管理、情報檢索、輔助決策等方面,成為實現和優化信息系統的基本技術。
從20世紀80年代以來,資料庫技術在商業上的巨大成功刺激了其他領域對資料庫技術需求的迅速增長。這些新的領域為資料庫應用開闢了新的天地,並在應用中提出了一些新的數據管理的需求,推動了資料庫技術的研究與發展。
1990年高級DBMS功能委員會發表了《第三代資料庫系統宣言》,提出了第三代資料庫管理系統應具有的三個基本特徵:
應支持數據管理、對象管理和知識管理。必須保持或繼承第二代資料庫系統的技術。必須對其他系統開放。
規模會向兩頭髮展—大的越來越大,小的越來越小。所謂大的,指的是企業級資料庫的規模。前10年,資料庫存儲的數據大都以GB為基準衡量,幾十GB就已經非常龐大。而如今,只廣東移動每個月新增的數據量,就已經以TB衡量,不出3年,很多企業要存儲的數據就要達到PB級。數據量越來越大,需要更大的資料庫做支撐,這就是資料庫的發展方向之一。另一方面,資料庫也會越來越小。如今,Sybase的資料庫已經安裝在高檔的Casio手錶中了,這些手錶中記錄的有天氣情況、氣壓、佩帶者的血壓、心跳等數據。這種資料庫並不要求數據存儲量大,但是要求在低計算量的情況下反應快,而且能夠適應外界環境的變化。存儲方式從行到列的改變。以前資料庫都是以行的形式存儲的,理由很簡單,用戶需要的是對單條數據的讀取和存儲。而如今,單純的數據記錄已經不足以支撐企業發展了,企業更需要的是數據分析和決策支持。那麼,單純看一條記錄沒有任何意義,而是要把所有數據的某一項都統計出來進行分析,這就是列的概念。以中國移動為例,上億個用戶,每個月上TB的數據,哪些是ⅥP用戶,該如何根據他們的需求提供專有服務,對於那些動感地帶的用戶,到底應該制定哪些優惠政策,除了看話費,是不是還能挖掘出他們的消費特點,進行更有針對性的業務推廣活動?這些,就不是看一條數據的問題,而需要頻繁對列進行操作。預計,不出半年,各大資料庫廠商都會推出以列為存儲方式的資料庫。非結構化數據仍然不能納入資料庫中。說到這裡,可能大家都認為我在逆潮流而動,如今很多資料庫廠商都可以接受圖像、視頻等非結構化數據了,Sybase怎麼還要死守著結構化數據呢?其實我認為,非結構化數據要想進入資料庫,仍然需要結構化,只是這種結構化的方法各廠商不一樣,而且相比以前有了很大的進步和提高。以前我們圖片的記錄方式是記錄它的文件名,如果文件名中提到了某個人的名字,那麼在整個資料庫查詢的時候,就可以把這個圖片找到。而這是非常不科學的,因為很多非結構化數據的文件名起的並不可能完全。那麼,如今大家把非結構化的數據變得結構化,其實就是在用結構化的數據描述這張圖片,比如用點和位置來記錄這張圖片的每個像素。而一旦需要做查詢的時候,可以根據像素的組合記錄來比對,把符合比對要求的數據全部篩選出來。這樣就把非結構化數據以結構化的方式納入資料庫中了,並能接受查詢、檢索等操作。資料庫和數據倉庫會分開。很多資料庫廠商認為,資料庫一個就行,一專多能,既能用它進行實時交易,也能用它來進行數據分析。但是,其實很多用戶如今在前台需要資料庫提供實時交易功能,需要有很快的響應速度,而在後台,則需要設立一些規則進行數據分析和商務智能分析。Sybase就認為,這兩個資料庫應該是兩種格式,畢竟它們的功能不一樣。因此,從產品設置上,Sybase有交易型資料庫和分析型資料庫兩種。
下一代資料庫技術的發展主流
針對關係資料庫技術現有的局限性,理論界如今主要有三種觀點:
面向對象的資料庫技術將成為下一代資料庫技術發展的主流 部分學者認為現有的關係型資料庫無法描述現實世界的實體,而面向對象的數據模型由於吸收了已經成熟的面向對象程序設計方法學的核心概念和基本思想,使得它符合人類認識世界的一般方法,更適合描述現實世界。甚至有人預言,資料庫的未來將是面向對象的時代。
面向對象的關係資料庫技術 關係資料庫幾乎是當前資料庫系統的標準,關係語言與常規語言一起幾乎可完成任意的資料庫操作,但其簡潔的建模能力、有限的數據類型、程序設計中數據結構的制約等卻成為關係型資料庫發揮作用的瓶頸。面向對象方法起源於程序設計語言,它本身就是以現實世界的實體對象為基本元素來描述複雜的客觀世界,但功能不如資料庫靈活。因此部分學者認為將面向對象的建模能力和關係資料庫的功能進行有機結合而進行研究是資料庫技術的一個發展方向。
面向對象資料庫技術 面向對象資料庫的優點是能夠表示複雜的數據模型,但由於沒有統一的數據模式和形式化理論,因此缺少嚴格的數據邏輯基礎。而演繹資料庫雖有堅強的數學邏輯基礎,但只能處理平面數據類型。因此,部分學者將兩者結合,提出了一種新的資料庫技術——演繹面向對象資料庫,並指出這一技術有可能成為下一代資料庫技術發展的主流。
資料庫技術發展的新方向
非結構化資料庫是部分研究者針對關係資料庫模型過於簡單,不便表達複雜的嵌套需要以及支持數據類型有限等局限,從數據模型入手而提出的全面基於網際網路應用的新型資料庫理論。支持重複欄位、子欄位以及變長欄位並實現了對變長數據和重複欄位進行處理和數據項的變長存儲管理,在處理連續信息(包括全文信息)和非結構信息(重複數據和變長數據)中有著傳統關係型資料庫所無法比擬的優勢。但研究者認為此種資料庫技術並不會完全取代如今流行的關係資料庫,而是它們的有益的補充。
資料庫技術發展的又一趨勢
有學者指出:資料庫與學科技術的結合將會建立一系列新資料庫,如分散式資料庫、并行資料庫、知識庫、多媒體資料庫等,這將是資料庫技術重要的發展方向。其中,許多研究者都對多媒體資料庫作為研究的重點,並認為多媒體技術和可視化技術引入多媒體資料庫將是未來資料庫技術發展的熱點和難點。
未來資料庫技術及市場發展的兩大方向數據倉庫電子商務 部分學者在對各個資料庫廠商的發展方向和應用需求的不斷擴展的現狀進行分析的基礎上,提出資料庫技術及市場在向數據倉庫和電子商務兩個方向不斷發展的觀點。他們指出:從上一年開始,許多行業如電信、金融、稅務等逐步認識到數據倉庫技術對於企業宏觀發展所帶來的巨大經濟效益,紛紛建立起數據倉庫系統。在中國提供大型數據倉庫解決方案的廠商主要有Oracle、IBM、Sybase、CA及Informix等廠商,已經建設成功並已收回投資的項目主要有招商銀行系統和國信證券系統等。當前,國內外學者對數據倉庫的研究正在繼續深入。與此同時,一些學者將資料庫技術及市場發展的視角瞄準電子商務領域,他們認為:如今的信息系統逐漸要求按照以客戶為中心的方式建立應用框架,因此勢必要求資料庫應用更加廣泛地接觸客戶,而Internet給了我們一個非常便捷的連接途徑,通過Internet我們可以實現所謂的OneOneMarketing和OneOnebusiness,進而實現Ebusiness。因此,電子商務將成為未來資料庫技術發展的另一方向。
面向專門應用領域的資料庫技術 許多研究者從實踐的角度對資料庫技術進行研究,提出了適合應用領域的資料庫技術如工程資料庫、統計資料庫、科學資料庫、空間資料庫、地理資料庫等。這類資料庫在原理上也沒有多大的變化,但是它們卻與一定的應用相結合,從而加強了系統對有關應用的支撐能力,尤其表如今數據模型、語言、查詢方面。部分研究者認為,隨著研究工作的繼續深和資料庫技術在實踐工作中的應用,資料庫技術將會更多朝著專門應用領域發展。
數據和數據處理
數據(Data)是用於描述現實世界中各種具體事物或抽象概念的,可存儲並具有明確意義的符號,包括數字,文字,圖形和聲音等。數據處理是指對各種形式的數據進行收集,存儲,加工和傳播的一系列活動的總和。其目的之一是從大量的,原始的數據中抽取,推導出對人們有價值的信息以作為行動和決策的依據;目的之二是為了藉助計算機技術科學地保存和管理複雜的,大量的數據,以便人們能夠方便而充分地利用這些寶貴的信息資源.
資料庫
資料庫(DataBase,DB)是存儲在計算機輔助存儲器中的,有組織的,可共享的相關數據集合。資料庫具有如下特性.
⑴資料庫是具有邏輯關係和確定意義的數據集合.
⑵資料庫是針對明確的應用目標而設計,建立和載入的。每個資料庫都具有一組用戶,並為這些用戶的應用需求服務.
⑶一個資料庫反映了客觀事物的某些方面,而且需要與客觀事物的狀態始終保持一致.
資料庫管理系統及其基本功能
資料庫管理系統(DataBaseManagementSystem,DBMS)是對資料庫進行管理的系統軟體,它的職能是有效地組織和存儲數據,獲取和管理數據,接受和完成用戶提出的各種數據訪問請求。能夠支持關係型數據模型的資料庫管理系統,稱為關係型資料庫管理系統(RelationalDataBaseManagementSystem,RDBMS).
RDBMS的基本功能包括以下4個方面:
⑴數據定義功能:RDBMS提供了數據定義語言(DataDefinitionLanguage,DDL),利用DDL可以方便地對資料庫中的相關內容進行定義。例如,對資料庫,表,欄位和索引進行定義,創建和修改.
⑵數據操縱功能:RDBMS提供了數據操縱語言(DataManipulationLanguage,DML),利用DML可以實如今資料庫中插入,修改和刪除數據等基本操作.
⑶數據查詢功能:RDBMS提供了數據查詢語言(DataQueryLanguage,DQL),利用DQL可以實現對資料庫的數據查詢操作.
⑷數據控制功能:RDBMS提供了數據控制語言(DataControlLanguage,DCL),利用DCL可以完成資料庫運行控制功能,包括併發控制(即處理多個用戶同時使用某些數據時可能產生的問題),安全性檢查,完整性約束條件的檢查和執行,資料庫的內部維護(例如索引的自動維護)等.RDBMS的上述許多功能都可以通過結構化查詢語言(StructuredQueryLanguage,SQL)來實現的,SQL是關係資料庫中的一種標準語言,在不同的RDBMS產品中,SQL中的基本語法是相同的。此外,DDL,DML,DQL和DCL也都屬於SQL.
⒈3.4資料庫應用系統及其組成
資料庫應用系統又簡稱為資料庫系統,是指擁有資料庫技術支持的計算機系統,它可以實現有組織地,動態地存儲大量相關數據,提供數據處理和信息資源共享服務的功能.
各類人員主要參與資料庫應用系統的需求分析,設計,開發,使用,管理和維護,他們在資料庫應用系統的開發,運行及維護等階段扮演著不同的角色,並起著不同的作用。各類人員主要包括以下幾種.
⑴最終用戶.
⑵系統分析員.
⑶應用程序員.
⑷資料庫管理員(DataBaseAdministrator,DBA).
從其應用方式來看,資料庫技術主要起著兩方面的作用.
⑴信息系統開發作用。利用資料庫技術以及網際網路技術,並結合具體的編程語言,可以開發一個信息系統,從而解決業務數據的輸入和管理問題。在信息系統開發中,主要利用的是RDBMS的基本功能,即數據定義功能,數據操縱功能,數據查詢功能以及數據控制功能.
⑵數據分析與展示作用。利用RDBMS的數據查詢功能對資料庫中的數據進行關聯組合或逐級匯總分析,並以表格,圖形或報表形式將分析結果進行展示,從而解決業務數據的綜合利用問題.