天天看點

結構化資料、半結構化資料、非結構化資料

1、概述  

結構化資料:(即行資料,存儲在資料庫裡,可以用二維表結構來邏輯表達實作的資料)。

非結構化資料:不友善用資料庫二維邏輯表來表現的資料即稱為非結構化資料,包括所有格式的辦公文檔、文本、圖檔、XML、HTML、各類報表、圖像和音頻/視訊資訊等等。

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

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

2、資料模型

結構化資料:二維表(關系型) 

半結構化資料:樹、圖 

非結構化資料:無  

結構化資料:先有結構、再有資料

半結構化資料:先有資料,再有結構

3、資料分類

在做一個資訊系統設計時肯定會涉及到資料的存儲,一般我們都會将系統資訊儲存在某個指定的關系資料庫中。我們會将資料按業務分類,并設計相應的表,然後将對應的資訊儲存到相應的表中。比如我們做一個業務系統,要儲存員工基本資訊:工号、姓名、性别、出生日期等等;我們就會建立一個對應的staff表。

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

結構化資料:就像上面舉的例子。這種類别的資料最好處理,隻要簡單的建立一個對應的表就可以了。  

非結構化資料:像圖檔、聲音、視訊等等。這類資訊我們通常無法直接知道他的内容,資料庫也隻能将它儲存在一個BLOB字段中,對以後檢索非常麻煩。一般的做法是,建立一個包含三個字段的表(編号 number、内容描述 varchar(1024)、内容 blob)。引用通過編号,檢索通過内容描述。現在還有很多非結構化資料的處理工具,市面上常見的内容管理器就是其中的一種。

半結構化資料:這樣的資料和上面兩種類别都不一樣,它是結構化的資料,但是結構變化很大。因為我們要了解資料的細節是以不能将資料簡單的組織成一個檔案按照非結構化資料處理,由于結構變化很大也不能夠簡單的建立一個表和他對應。

本文主要讨論針對半結構化資料存儲常用的兩種方式。先舉一個半結構化的資料的例子,比如存儲員工的履歷。不像員工基本資訊那樣一緻每個員工的履歷大不相同。有的員工的履歷很簡單,比如隻包括教育情況;有的員工的履歷卻很複雜,比如包括工作情況、婚姻情況、出入境情況、戶口遷移情況、黨籍情況、技術技能等等。還有可能有一些我們沒有預料的資訊。通常我們要完整的儲存這些資訊并不是很容易的,因為我們不會希望系統中的表的結構在系統的運作期間進行變更。

4、儲存方式

(1)化解為結構化資料

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

優點:查詢統計比較友善。

缺點:不能适應資料的擴充,不能對擴充的資訊進行檢索,對項目設計階段沒有考慮到的同時又是系統關心的資訊的存儲不能很好的處理。

(2)用XML格式來組織并儲存到CLOB字段中

XML可能是最适合存儲半結構化的資料了。将不同類别的資訊儲存在XML的不同的節點中就可以了。

優點:能夠靈活的進行擴充,資訊進行擴充式隻要更改對應的DTD或者XSD就可以了。  

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

繼續閱讀