何芳原
[摘要]隨著科學技術飛速的發展,經濟和社會都取得了極大的進步,與此同時,計算機應用系統的不斷發展和完善,在各個領域產生了大量的歷史數據,這些歷史數據可能已經不被應用系統引用,但它們卻有著非常大的查詢和分析價值。對海量的信息加以利用都離不開底層對數據的操作。然而,數據不斷膨脹往往給應用系統帶來一些難以忍受的后果,最典型的是系統在運行過程中資源消耗需求量越來越大,運行效率明顯降低,隨著時間的推移,達到難以忍受的程度。提出對于海量數據查詢效率問題的一種解決方案,主要探討海量數據在關系數據庫中的應用。
[關鍵詞]海量數據 數據處理 關系數據庫
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0420059-02
一、海量數據的產生及現狀
在這被稱之為信息爆炸的時代,信息過量幾乎成為人人需要面對的問題。如何才能不被信息的汪洋大海所淹沒,從中及時發現有用的知識,提高信息利用率呢?要想使數據真正成為一個公司的資源,只有充分利用它為公司自身的業務決策和戰略發展服務才行,否則大量的數據可能成為包袱,甚至成為垃圾。在信息技術飛速發展,信息數據迅猛增長的今天,企業快速有效的分析決策越來越依賴于其信息系統的設計開發。因此,面對“數據爆炸但知識貧乏”的挑戰,數據挖掘和知識發現(DMKD)技術應運而生,并得以蓬勃發展,越來越顯示出其強大的生命力,數據挖掘技術可以用它的超能力產生巨大的商業機會。
數據挖掘(Data Mining)就是從大量的、不完全的、有噪聲的、模糊的、隨機的數據中,提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的過程,就是從存放在數據庫、數據倉庫或其他信息庫中的大量數據中挖掘有趣知識的過程。還有很多和這一術語相近似的術語,如從數據庫中發現知識(KDD)、數據分析、數據融合(Data Fusion)以及決策支持等。人們把原始數據看作是形成知識的源泉,就像從礦石中采礦一樣。原始數據可以是結構化的,如關系型數據庫中的數據,也可以是半結構化的,如文本、圖形、圖像數據,甚至是分布在網絡上的異構型數據。發現知識的方法可以是數學的,也可以是非數學的;可以是演繹的,也可以是歸納的。發現了的知識可以被用于信息管理、查詢優化、決策支持、過程控制等,還可以用于數據自身的維護。因此,數據挖掘是一門廣義的交叉學科,它匯聚了不同領域的研究者,尤其是數據庫、人工智能、數理統計、可視化、并行計算等方面的學者和工程技術人員。
和數據挖掘同時出現或交互使用的是數據庫中的知識發現(KDD)。知識發現是人工智能、機器學習和數據庫技術相結合的產物。“知識發現”(Knowledge Discovery in Databases, KDD)一詞是1989年在美國底特律市召開的第一屆KDD國際學術會議上正式形成的。知識發現是指從數據庫大量的數據中通過分析提取出隱含的新穎的、有效的并能被人理解的規則或模式的高級處理過程。這里的規則或模式即我們所說的知識。它給出數據的某些特性或數據之間的關系,是對數據處理后獲取的更深層次的可利用決策支持的信息。數據挖掘只是數據庫中知識發現的一個步驟,但又是最重要的一步。一般在研究領域被稱作數據庫中知識發現的,在工程領域則稱之為數據挖掘。
二、海量數據查詢的問題
只要是對海量的信息加以利用,不論是數據挖掘也好,知識發現也好,數據倉庫也好,都離不開底層對數據的操作。然而對于大多數的數據中心來講,數據膨脹的壓力是巨大的。數據不斷膨脹往往給應用系統帶來一些難以忍受的后果,最典型的是系統在運行過程中資源消耗需求量越來越大,運行效率明顯降低,隨著時間的推移,達到難以忍受的程度。于是,針對于海量數據,人們提出了各種解決辦法。
三、海量數據的存儲與訪問
產生海量數據、訪問海量數據、存儲海量數據和保護海量數據的網絡存儲系統,因其在數據使用、管理、存儲、備份和復制等方面的先進性,越來越為廣大企業所推崇和認可。所以,許多企業在組建企業網絡時,都將根據自己網絡信息處理和運用的特點,配有技術先進、性能優異、容量巨大、速度迅捷,且安全可靠和維護方便的網絡存儲設備。目前,在網絡系統存儲備份設備中,應用最廣泛的,仍然是磁盤陣列、磁帶庫和光盤塔或光盤庫幾大類。其中,磁帶庫、磁盤陣列、光盤塔或光盤庫等存儲設備因其信息存儲特點的完全不同,應用環境也有較大區別。其中,磁帶庫更多的是用于網絡系統中的海量數據的定期備份,而磁盤陣列則主要用于網絡系統中的海量數據的即時存取,光盤塔或光盤庫主要用于網絡系統中的海量數據的訪問。
利用先進的數據庫管理技術和大容量存儲管理技術,綜合考慮數據的查詢頻度的需求,將數據按照近期、中期、遠期三個階段進行分級存儲管理:將時間較近、訪問頻繁的數據存儲在磁盤陣列中,提供高速的訪問響應;將時間較遠、訪問較少的數據存儲在低成本、大容量、易擴展的光盤庫設備中,在保證合理響應速度的前提下盡量降低系統成本。為了實現上述目標,系統提供了對磁盤、光盤數據的一致性訪問接口,對系統中的數據提供統一、透明的訪問機制;系統同時提供了數據遷移的內部管理機制,保證數據從磁盤遷移到光盤時對用戶的透明性。
對海量數據的訪問,比較原始的做法是,由技術人員將已備至磁帶的數據倒回數據庫,根據要求查找記錄。此種查詢方式基本由手工完成,效率極低,同時造成巨大的人工浪費。加上查詢范圍及時間跨度有限,無法充分利用歷史數據這一重要資源。因此許多用戶產生了這樣的希望:在生產系統之外建立一個獨立的歷史數據歸檔和查詢系統,將生產系統數據庫內的歷史數據自動歸檔,將歷史數據從主機分離開來,從而使主機在必要時可以將歷史數據剝離,輕裝前進。同時保證歷史數據脫離主機后仍能使用,即脫離主機和數據庫后,仍可直接訪問。這就意味著歸檔后的歷史數據的存儲結構應該是可用的(accessible),并且是可查詢的(query ready)。
四、海量數據的數據庫處理技術
目前,關系數據庫的應用范圍最廣,占據了數據庫主流地位。關系數據庫最初設計為基于主機/終端方式的大型機上的應用,其應用范圍較為有限,隨著客戶機/服務器方式的流行和應用向客戶機方的分解,關系數據庫又經歷了客戶機/服務器時代,并獲得了極大的發展。隨著Internet應用的普及,由于Internet上信息資源的復雜性和不規范性,關系數據庫初期在開發各種網上應用時顯得力不從心,表現在無法管理各種網上的復雜的文檔型和多媒體型數據資源,后來關系數據庫對于這些需求作出了一些適應性調整,如增加數據庫的面向對象成分以增加處理多種復雜數據類型的能力,增加各種中間件(主要包括CGI、ISAPI、ODBC、JDBC、ASP等技術)以擴展基于Internet應用能力,通過應用服務器解釋執行各種HTML中嵌入腳本來解決Internet應用中數據庫數據的顯示、維護、輸出以及到HTML的格式轉換等。此時關系數據庫的基于Internet應用的模式典型表現為一種三層或四層的多層結構。在這種多層結構體系下,關系數據庫解決了數據庫的Internet應用的方法問題,使得基于關系數據庫能夠開發各種網上數據庫數據的發布、檢索、維護、數據管理等一般性應用。
首先,從關系數據庫結構來分析查詢的內部處理。
從組織結構上來看,關系數據庫都是由集合組成:數據庫是表的集合,表是元組的集合。一個表就是一個關系,對關系的操作有選擇、投影、連接。所以我們的查詢操作其實就是關系操作。
目前計算機能處理的數據信息大體可以分為兩類:一類是結構化數據,如數字、符號等;另一類是非結構化數據,如圖像、聲音和網頁等。對于結構化數據,數據庫存儲技術發展到今天,關系型數據庫已經成為處理結構化數據的首選產品,而且關系型數據庫也是距今為止使用得最為廣泛的數據存儲軟件。但是隨著網絡和軟件技術的飛速發展,Internet時代的數據越來越顯示出兩個最主要的特點,即非結構化數據大量涌現和海量數據的產生。這對數據存儲和檢索技術提出了完全不同的新需求,集中表現在數據庫管理系統本身的存儲和檢索技術上。特別是隨著非結構化數據應用領域的不斷拓展,擅長于處埋結構化數據的關系數據庫開始暴露出越來越多的局限,這些局限性也集中表現在對海量信息的存儲利檢索方面。在數據檢索方面,海量信息對查詢速度有較高的要求,查全率、查準率是衡量檢索效率的標準。我們知道,關系數據庫的索引是基于B+樹的方法,這種方法對海量數據的檢索效率是非常低的,甚至幾乎不可行。而產生于70年代主要針對數值和字符處理的關系數據庫模型由于當時應用的局限,在設計時幾乎沒有考慮到多媒體、網頁等非結構化數據處理的問題,沒有料到Internet會發展得如此迅速,沒有料到會出現數據急速膨脹的局面。所以,關系數據庫在Internet時代的非結構化數據和海量信息數據的處理方面存在著許多問題,特別是關系數據庫對數據類型的處理只局限于數字、字符,對非結構化信息的處理只是停留在簡單的二進制代碼文件的存儲,已經不適應用戶從原先數據的簡單存儲上升為對數據的識別、檢索和深入加工的要求,基于Internet內容的應用尤其使關系數據庫相形見絀,因此有人說,數據庫技術將進入“后關系數據庫時代”,進入基于網絡應用和內容管理的非結構化數據庫時代,數據的存儲管現技術和檢索技術也會隨之發生相應的變化,數據庫技術與Web技術的結合成為研究的熱點。
關系型數據庫具有一個基本的規則,即保持事物的分離;它可以處理多個表;存在簡單的數據關系,即:一對多、多對多的關系。鑒于其關系模型具有簡單、堅實的數學基礎的優點,一經提出,立即引起學術界和產業界的廣泛重視,從理論與實踐兩方面對數據庫技術產生了強烈的沖擊。在關系模型提出之前已經存在的基于層次模型和網狀模型的數據庫產品很快走向衰敗以至消亡,一大批商品化關系數據庫系統很快被開發出來并迅速占領了市場,其交替速度之快,是軟件開發歷史上罕見的。由于數據庫是計算機各種應用的基礎,關系模型的提出不僅為數據庫技術的發展奠定了基礎,同時也成為促進計算機普及應用的極大推動力。在考特提出關系模型以后,IBM投巨資開展關系數據庫管理系統的研究,其“SystemR”項目的研究成果極大地推動了關系數據庫技術的發展,在此基礎上推出的DB2和SQL等產品成為IBM的主流產品。System R本身雖作為原型并未問世,但鑒于其影響,ACM把1988年的“軟件系統獎”授予了System R開發小組。這一年的軟件系統獎還破例同時獎勵兩個軟件,另一個得獎軟件也是關系數據庫管理系統,即著名的INGRES。
隨著技術的進步和市場需求的推動,關系數據庫系統的功能越來越強,種類不斷增加,其應用領域己多得難以統計,如聯機事務處理、聯機分析處理、決策支持系統、數據倉庫和數據集市等新概念。面向對象的數據性系統及通用數據庫系統大多也是在關系系統基礎上進行的擴展。Internet時代的到來對傳統關系型數據庫提出了新的挑戰。出于傳統的關系數據庫主要是為企業內部員工提供服務的,并且主要處理格式化的信息,而對Internet的特殊需求,傳統的關系型數據庫必須進一步發展,以適應Internet時代的要求,才能生存并發展下去。Internet時代的到來對傳統關系型數據庫也提供了新的機遇。隨著 Internet的普及,信息技術將滲透到普通人生活的方方面面,從而進一步推動IT的發展。隨著信息的膨脹,必然會對信息的管理提出更高的要求,將來可能會出現另一種數據庫--對象數據庫,而關系型數據庫作為一種成熟的數據管理平臺,仍然會在整個IT系統中占有非常重要的作用,并且仍會平穩地發展。隨著各主流廠商的關系型數據庫逐步轉向Internet,數據庫還將迎來一個新的發展高峰。
參考文獻:
[1]施伯樂、何繼潮、崔靖,關系數據庫的理論及應用,河南:河南科學技術出版社.
[2]馬垣,關系數據庫理論,北京:清華大學出版社,廣西:廣西科學技術出版社.
[3]徐曉春、李高健,軟件配置管理,北京:清華大學出版社,2002.
[4]楊靜、顧軍華,基于海量數據的數據產品存儲技術研究,徐州師范大學學報自然科學版,徐州:徐州師范大學學報自然科學版編輯部,2003,27-29.
[5]陸昌輝、吳曉華,SQL Server 2000核心技術揭秘,北京:宇航出版社.
[6]彭木根,數據倉庫技術與實現,北京:電子工業出版社,2002.