データベース

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

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")
);

顧客と注文のデータベーススキーマ

-- Join both tables on foreign key
SELECT * FROM "Customer"
INNER JOIN "Order"
ON "customer_id" = "Customer"."id";
 id | first_name | ... | product_price
  1 | Vincent    | ... |            10
データエンジニアリング入門

SQL: スタースキーマ

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

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

  • ファクト: 発生した出来事(例: 商品の注文)
  • ディメンション: 世界に関する情報(例: 顧客情報)
1 https://en.wikipedia.org/wiki/Star_schema
データエンジニアリング入門

練習しましょう!

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

Preparing Video For Download...