什麼是結構化資料?什麼是半結構化資料?

36dsj發表於2013-11-04

 概述

  相對於結構化資料(即行資料,儲存在資料庫裡,可以用二維表結構來邏輯表達實現的資料)而言,不方便用資料庫二維邏輯表來表現的資料即稱為非結構化資料,包括所有格式的辦公文件、文字、圖片、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的支援的提升效能問題有望能夠很好的解決。

相關文章