🗄️
DBにおける構造化データと非構造化データの違い
構造化データ
データストレージに配置される前に事前定義され、ある定められた構造となるように整形されたデータ
決められた形式で記述されたデータ
- テーブルのような明確な構造を持つ
- 行と列で構成される
- 属性と呼ばれるデータ項目の集合体
- データ検索や分析がしやすい
- トランザクション処理に適している
- データの一貫性を保ちやすい
例
- Excel ファイル
- SQL データベース
- POS データ
- ウェブフォームの結果
- 検索エンジン最適化 (SEO) タグ
- 製品ディレクトリ
- 在庫管理
- 予約システム
CSV
id,name,description
1,aaa,bbb
2,ccc,ddd
3,eee,fff
SQL
-- 顧客情報テーブル
CREATE TABLE customers (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
-- 商品情報テーブル
CREATE TABLE products (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10,2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
-- 注文情報テーブル
CREATE TABLE orders (
id INT NOT NULL AUTO_INCREMENT,
customer_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
FOREIGN KEY (customer_id) REFERENCES customers (id),
FOREIGN KEY (product_id) REFERENCES products (id)
);
非構造化データ
ネイティブな形式のまま保存され、使用時まで処理されないデータ
決められた形式を持たないデータ
- テキスト、画像、音声、動画など、さまざまな形式
- データ検索や分析が難しい
- トランザクション処理には適していない
- データの保存や管理にコストがかかる
例
- SNSに投稿された記事や画像
- メール
- 文書
- 画像
- 音声
- 動画
JSON
{
"name": "John Doe",
"email": "johndoe@example.com",
"address": {
"street": "123 Main Street",
"city": "San Francisco",
"state": "CA",
"zip": "94105"
},
"phone_numbers": [
"123-456-7890",
"012-345-6789"
]
}
半構造化データ
例
XML
<customer>
<name>John Doe</name>
<email>johndoe@example.com</email>
<address>
<street>123 Main Street</street>
<city>San Francisco</city>
<state>CA</state>
<zip>94105</zip>
</address>
<phone_numbers>
<phone_number>123-456-7890</phone_number>
<phone_number>012-345-6789</phone_number>
</phone_numbers>
</customer>
使い分け
構造化データ
- データ分析
- レポート作成
- トランザクション処理
非構造化データ
- コンテンツ管理
- コミュニケーション
- データマイニング
関連記事
SQLとNoSQLの違い
Discussion