結構化數據、半結構化數據和非結構化數據
結構化數據
結構化的數據是指可以使用關系型數據庫表示和存儲,表現為二維形式的數據。一般特點是:數據以行為單位,一行數據表示一個實體的信息,每一行數據的屬性是相同的。舉一個例子:
id name age gender
1 lyh 12 male
2 liangyh 13 female
3 liang 18 male
所以,結構化的數據的存儲和排列是很有規律的,這對查詢和修改等操作很有幫助。但是,顯然,它的擴展性不好(比如,我希望增加一個字段,怎么辦?)。
半結構化數據
半結構化數據是結構化數據的一種形式,它並不符合關系型數據庫或其他數據表的形式關聯起來的數據模型結構,但包含相關標記,用來分隔語義元素以及對記錄和字段進行分層。因此,它也被稱為自描述的結構。
半結構化數據,屬於同一類實體可以有不同的屬性,即使他們被組合在一起,這些屬性的順序並不重要。
常見的半結構數據有XML和JSON,對於對於兩個XML文件,第一個可能有
<person>
<name>A</name>
<age>13</age>
<gender>female</gender>
</person>
第二個可能為:
<person>
<name>B</name>
<gender>male</gender>
</person>
從上面的例子中,屬性的順序是不重要的,不同的半結構化數據的屬性的個數是不一定一樣的。有些人說半結構化數據是以樹或者圖的數據結構存儲的數據,怎么理解呢?上面的例子中,<person>標簽是樹的根節點,<name>和<gender>標簽是子節點。通過這樣的數據格式,可以自由地表達很多有用的信息,包括自我描述信息(元數據)。所以,半結構化數據的擴展性是很好的。
非結構化數據
顧名思義,就是沒有固定結構的數據。各種文檔、圖片、視頻/音頻等都屬於非結構化數據。對於這類數據,我們一般直接整體進行存儲,而且一般存儲為二進制的數據格式。