🗄️

DBにおける構造化データと非構造化データの違い

2024/04/03に公開

構造化データ

データストレージに配置される前に事前定義され、ある定められた構造となるように整形されたデータ

決められた形式で記述されたデータ

  • テーブルのような明確な構造を持つ
  • 行と列で構成される
  • 属性と呼ばれるデータ項目の集合体
  • データ検索や分析がしやすい
  • トランザクション処理に適している
  • データの一貫性を保ちやすい

  • 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の違い

https://zenn.dev/btc/articles/240402_mysql_nosql

Discussion