确定数据格式
数据是事实的集合,例如用于记录信息的数字、说明和观察结果。 组织这些数据的数据结构通常表示对组织很重要的实体(例如客户、产品、销售订单等)。 每个实体通常具有一个或多个属性或特征(例如,客户可能具有姓名、地址、电话号码等)。
可以将数据归为结构化数据、半结构化数据或非结构化数据。
结构化数据
结构化数据是遵循固定架构的数据,因此所有数据都具有相同的字段或属性。 结构化数据实体的架构通常是表格 - 换句话说,数据用一个或多个表表示,这些表由表示数据实体的每个实例的行和表示该实体的属性的列组成。 例如,下图显示了 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 语法,而是阐述半结构化数据表示形式的灵活性。
非结构化数据
并非所有数据都是结构化或半结构化的。 例如,文档、图像、音频和视频数据以及二进制文件可能没有特定的结构。 此类数据称为非结构化数据。
数据存储
组织通常以结构化、半结构化或非结构化格式存储数据,用于记录实体(例如客户和产品)、特定事件(例如销售交易)的详细信息以及文档、图像和其他格式的其他信息。 然后可以检索存储的数据,以供以后分析和报告。
常用的数据存储分为两大类:
- 文件存储
- 数据库
我们将在后续主题中了解这两种类型的数据存储。