データベース

データエンジニアリング入門

Vincent Vankrunkelsven

Data Engineer @ DataCamp

データベースとは?

 

データベースの画像

高速な検索と取得のために整理された、大規模なデータ集合。

 

  • データを保持
  • データを構造化
  • DBMSで検索・取得
データエンジニアリング入門

データベースとファイル保存

データベース

 

データベースの画像

  • 高度に整理
  • 検索・レプリケーションなどの機能

ファイルシステム

 

ファイルの画像

  • 整理が少ない
  • シンプルで付加機能が少ない
データエンジニアリング入門

構造化・非構造化データ

構造化: データベーススキーマ

  • リレーショナルデータベース

 

半構造化

  • JSON

 

非構造化: スキーマなし、ファイルに近い

  • 動画、写真

データベースの画像

 

{ "key": "value"}

 

ファイルの画像

データエンジニアリング入門

SQL と NoSQL

SQL

  • テーブル
  • データベーススキーマ
  • リレーショナルデータベース

 

MySQLの画像

PostgreSQLの画像

NoSQL

  • 非リレーショナルデータベース
  • 構造化または非構造化
  • キー・バリュー型(例: キャッシュ)
  • ドキュメントDB(例: JSONオブジェクト)

 

Redis/MongoDBの画像

データエンジニアリング入門

SQL: データベーススキーマ

-- Create Customer Table 
CREATE TABLE "Customer" (
  "id" SERIAL NOT NULL,
  "first_name" varchar,
  "last_name" varchar,
  PRIMARY KEY ("id")
);

-- Create Order Table 
CREATE TABLE "Order" (
  "id" SERIAL NOT NULL,
  "customer_id" integer REFERENCES "Customer",
  "product_name" varchar,
  "product_price" integer,
  PRIMARY KEY ("id")
);

Customer と Order のデータベーススキーマ

-- 外部キーで両テーブルを結合
SELECT * FROM "Customer"
INNER JOIN "Order"
ON "customer_id" = "Customer"."id";
 id | first_name | ... | product_price
  1 | Vincent    | ... |            10
データエンジニアリング入門

SQL: スター・スキーマ

スター・スキーマは、1つ以上のファクト表が複数のディメンション表を参照する構造です。

顧客と注文のスター・スキーマ図

  • ファクト: 起きた事象(例: 製品の注文)
  • ディメンション: 文脈情報(例: 顧客情報)
1 Wikipedia: https://en.wikipedia.org/wiki/Star_schema
データエンジニアリング入門

Passons à la pratique !

データエンジニアリング入門

Preparing Video For Download...