什么是結構化數據?什么是半結構化數據?


概述

  相對於結構化數據(即行數據,存儲在數據庫里,可以用二維表結構來邏輯表達實現的數據)而言,不方便用數據庫二維邏輯表來表現的數據即稱為非結構化數據,包括所有格式的辦公文檔、文本、圖片、XML、HTML、各類報表、圖像和音頻/視頻信息等等。

  非結構化數據庫是指其字段長度可變,並且每個字段的記錄又可以由可重復或不可重復的子字段構成的數據庫,用它不僅可以處理結構化數據(如數字、符號等信息)而且更適合處理非結構化數據(全文文本、圖象、聲音、影視、超媒體等信息)。

  非結構化WEB數據庫主要是針對非結構化數據而產生的,與以往流行的關系數據庫相比,其最大區別在於它突破了關系數據庫結構定義不易改變和數據定長的限制,支持重復字段、子字段以及變長字段並實現了對變長數據和重復字段進行處理和數據項的變長存儲管理,在處理連續信息(包括全文信息)和非結構化信息(包括各種多媒體信息)中有着傳統關系型數據庫所無法比擬的優勢。

 

  結構化數據(即行數據,存儲在數據庫里,可以用二維表結構來邏輯表達實現的數據)

  非結構化數據,包括所有格式的辦公文檔、文本、圖片、XML、HTML、各類報表、圖像和音頻/視頻信息等等

  所謂半結構化數據,就是介於完全結構化數據(如關系型數據庫、面向對象數據庫中的數據)和完全無結構的數據(如聲音、圖像文件等)之間的數據,HTML文檔就屬於半結構化數據。它一般是自描述的,數據的結構和內容混在一起,沒有明顯的區分。

  數據模型:

  結構化數據:二維表(關系型)
  半結構化數據:樹、圖
  非結構化數據:無

  RMDBS的數據模型有:如網狀數據模型、層次數據模型、關系型

  其他:

  結構化數據:先有結構、再有數據
  半結構化數據:先有數據,再有結構

  隨着網絡技術的發展,特別是Internet和Intranet技術的飛快發展,使得非結構化數據的數量日趨增大。這時,主要用於管理結構化數據的關系數據庫的局限性暴露地越來越明顯。因而,數據庫技術相應地進入了“后關系數據庫時代”,發展進入基於網絡應用的非結構化數據庫時代。

  我國非結構化數據庫以北京國信貝斯(iBase)軟件有限公司的IBase數據庫為代表。IBase數據庫是一種面向最終用戶的非結構化數據庫,在處理非結構化信息、全文信息、多媒體信息和海量信息等領域以及Internet/Intranet應用上處於國際先進水平,在非結構化數據的管理和全文檢索方面獲得突破。它主要有以下幾個優點:

  (1)Internet應用中,存在大量的復雜數據類型,iBase通過其外部文件數據類型,可以管理各種文檔信息、多媒體信息,並且對於各種具有檢索意義的文檔信息資源,如HTML、DOC、RTF、TXT等還提供了強大的全文檢索能力。

  (2)它采用子字段、多值字段以及變長字段的機制,允許創建許多不同類型的非結構化的或任意格式的字段,從而突破了關系數據庫非常嚴格的表結構,使得非結構化數據得以存儲和管理。

  (3)iBase將非結構化和結構化數據都定義為資源,使得非結構數據庫的基本元素就是資源本身,而數據庫中的資源可以同時包含結構化和非結構化的信息。所以,非結構化數據庫能夠存儲和管理各種各樣的非結構化數據,實現了數據庫系統數據管理到內容管理的轉化。

  (4)iBase采用了面向對象的基石,將企業業務數據和商業邏輯緊密結合在一起,特別適合於表達復雜的數據對象和多媒體對象。

  (5)iBase是適應Internet發展的需要而產生的數據庫,它基於Web是一個廣域網的海量數據庫的思想,提供一個網上資源管理系統iBase Web,將網絡服務器(WebServer)和數據庫服務器(Database Server)直接集成為一個整體,使數據庫系統和數據庫技術成為Web的一個重要有機組成部分,突破了數據庫僅充當Web體系后台角色的局限,實現數據庫和Web的有機無縫組合,從而為在Internet/Intranet上進行信息管理乃至開展電子商務應用開辟了更為廣闊的領域。

  (6)iBase全面兼容各種大中小型的數據庫,對傳統關系數據庫,如Oracle、Sybase、SQLServer、DB2、Informix等提供導入和鏈接的支持能力。

  通過從上面的分析后我們可以預言,隨着網絡技術和網絡應用技術的飛快發展,完全基於Internet應用的非結構化數據庫將成為繼層次數據庫、網狀數據庫和關系數據庫之后的又一重點、熱點技術。

 數據分類

  半結構化數據(semi-structured data)

  在做一個信息系統設計時肯定會涉及到數據的存儲,一般我們都會將系統信息保存在某個指定的關系數據庫中。我們會將數據按業務分類,並設計相應的表,然后將對應的信息保存到相應的表中。比如我們做一個業務系統,要保存員工基本信息:工號、姓名、性別、出生日期等等;我們就會建立一個對應的staff表。

  但不是系統中所有信息都可以這樣簡單的用一個表中的字段就能對應的。

  結構化數據

  就像上面舉的例子。這種類別的數據最好處理,只要簡單的建立一個對應的表就可以了。

  非結構化數據

  像圖片、聲音、視頻等等。這類信息我們通常無法直接知道他的內容,數據庫也只能將它保存在一個BLOB字段中,對以后檢索非常麻煩。一般的做法是,建立一個包含三個字段的表(編號 number、內容描述 varchar(1024)、內容 blob)。引用通過編號,檢索通過內容描述。現在還有很多非結構化數據的處理工具,市面上常見的內容管理器就是其中的一種。

  半結構化數據

  這樣的數據和上面兩種類別都不一樣,它是結構化的數據,但是結構變化很大。因為我們要了解數據的細節所以不能將數據簡單的組織成一個文件按照非結構化數據處理,由於結構變化很大也不能夠簡單的建立一個表和他對應。本文主要討論針對半結構化數據存儲常用的兩種方式。

  先舉一個半結構化的數據的例子,比如存儲員工的簡歷。不像員工基本信息那樣一致每個員工的簡歷大不相同。有的員工的簡歷很簡單,比如只包括教育情況;有的員工的簡歷卻很復雜,比如包括工作情況、婚姻情況、出入境情況、戶口遷移情況、黨籍情況、技術技能等等。還有可能有一些我們沒有預料的信息。通常我們要完整的保存這些信息並不是很容易的,因為我們不會希望系統中的表的結構在系統的運行期間進行變更。

 儲存方式

  化解為結構化數據

  這種方法通常是對現有的簡歷中的信息進行粗略的統計整理,總結出簡歷中信息所有的類別同時考慮系統真正關心的信息。對每一類別建立一個子表,比如上例中我們可以建立教育情況子表、工作情況子表、黨籍情況子表等等,並在主表中加入一個備注字段,將其它系統不關心的信息和已開始沒有考慮到的信息保存在備注中。

  優點:查詢統計比較方便。

  缺點:不能適應數據的擴展,不能對擴展的信息進行檢索,對項目設計階段沒有考慮到的同時又是系統關心的信息的存儲不能很好的處理。

  用XML格式來組織並保存到CLOB字段中

  XML可能是最適合存儲半結構化的數據了。將不同類別的信息保存在XML的不同的節點中就可以了。

  優點:能夠靈活的進行擴展,信息進行擴展式只要更改對應的DTD或者XSD就可以了。

  缺點:查詢效率比較低,要借助XPATH來完成查詢統計,隨着數據庫對XML的支持的提升性能問題有望能夠很好的解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM