識別資料格式
資料是一組事實的集合,例如用來記錄資訊的數字、描述與觀察。 組織此資料的資料結構通常代表對組織而言重要的實體 (例如客戶、產品、銷售訂單等)。 每個實體通常都會有一或多個屬性或特性 (例如,客戶可能有姓名、地址、電話號碼等)。
您可以將您的資料分類為結構化、半結構化或非結構化。
結構化資料
結構化資料是符合固定結構描述的資料,因此所有資料都會有相同的欄位或屬性。 最常見的是結構化資料實體的結構描述是表格式,換句話說,資料會以一或多個資料表表示,資料表由代表資料實體之每個執行個體的資料列,以及代表實體屬性的資料行所組成。 例如,下圖顯示 Customer 與 Product 實體的表格式資料表示法。
結構化資料通常會儲存在資料庫中,其中多個資料表可以使用關聯式模型中的索引鍵值來彼此參考,我們稍後將深入探索關聯式模型。
半結構化資料
半結構化資料是具有某些結構的資訊,但允許實體執行個體之間具有一些差異。 例如,雖然大部分的客戶可能都有電子郵件地址,但有些客戶可能有多個電子郵件地址,有些則可能完全沒有電子郵件地址。
半結構化資料的其中一個常見格式是 JavaScript 物件標記法 (JSON)。 下列範例顯示一組代表客戶資訊的 JSON 文件。 每個客戶文件都包含地址與連絡人資訊,但客戶之間的特定欄位會有所不同。
// Customer 1
{
"firstName": "Joe",
"lastName": "Jones",
"address":
{
"streetAddress": "1 Main St.",
"city": "New York",
"state": "NY",
"postalCode": "10099"
},
"contact":
[
{
"type": "home",
"number": "555 123-1234"
},
{
"type": "email",
"address": "joe@litware.com"
}
]
}
// Customer 2
{
"firstName": "Samir",
"lastName": "Nadoy",
"address":
{
"streetAddress": "123 Elm Pl.",
"unit": "500",
"city": "Seattle",
"state": "WA",
"postalCode": "98999"
},
"contact":
[
{
"type": "email",
"address": "samir@northwind.com"
}
]
}
注意
JSON 只是可以表示半結構化資料的許多方式之一。 這裡的重點不是提供 JSON 語法的詳細檢查,而是說明半結構化資料表示法的彈性本質。
非結構化資料
並非所有資料都是結構化或甚至是半結構化。 例如,文件、影像、音訊與視訊資料,以及二進位檔案可能沒有特定的結構。 這種資料稱為非結構化資料。
資料存放區
組織通常會將資料儲存在結構化、半結構化或非結構化格式中,以記錄實體 (例如客戶與產品) 的詳細資料、特定事件 (例如銷售交易),或文件、影像與其他格式中的其他資訊。 然後,您可以擷取儲存的資料以供稍後分析和報告之用。
常用的資料存放區有兩種廣泛的類別:
- 檔案存放區
- 資料庫
我們將在後續的主題中探索這兩種類型的資料存放區。