資料庫

Data Engineering 入門

Vincent Vankrunkelsven

Data Engineer, DataCamp

什麼是資料庫?

 

Image of a database

通常是大型的資料集合,特別為了快速搜尋與擷取而組織。

 

  • 儲存資料
  • 組織資料
  • 透過 DBMS 取回/搜尋資料
Data Engineering 入門

資料庫與檔案儲存

資料庫

 

Image of a database

  • 結構嚴謹
  • 具備搜尋、複寫等功能

檔案系統

 

Image of file

  • 結構較鬆散
  • 簡單、額外功能較少
Data Engineering 入門

結構化與非結構化資料

結構化:資料庫結構(schema)

  • 關聯式資料庫

 

半結構化

  • JSON

 

非結構化:無結構,類似檔案

  • 影片、相片

Image of a database

 

{ "key": "value"}

 

Image of file

Data Engineering 入門

SQL 與 NoSQL

SQL

  • 資料表
  • 資料庫結構(schema)
  • 關聯式資料庫

 

MySQL Image

PostgreSQL Image

NoSQL

  • 非關聯式資料庫
  • 可為結構化或非結構化
  • 鍵值儲存(如快取)
  • 文件型資料庫(如 JSON 物件)

 

Redis/MongoDB Image

Data Engineering 入門

SQL:資料庫結構(Schema)

-- 建立 Customer 資料表 
CREATE TABLE "Customer" (
  "id" SERIAL NOT NULL,
  "first_name" varchar,
  "last_name" varchar,
  PRIMARY KEY ("id")
);

-- 建立 Order 資料表 
CREATE TABLE "Order" (
  "id" SERIAL NOT NULL,
  "customer_id" integer REFERENCES "Customer",
  "product_name" varchar,
  "product_price" integer,
  PRIMARY KEY ("id")
);

Database Schema for Customer and Order

-- 以外鍵連接兩個資料表
SELECT * FROM "Customer"
INNER JOIN "Order"
ON "customer_id" = "Customer"."id";
 id | first_name | ... | product_price
  1 | Vincent    | ... |            10
Data Engineering 入門

SQL:星型結構

星型結構由一或多個事實表,參照任意數量的維度表所組成。

Star Schema Diagram of Customers and Orders

  • 事實(Facts):已發生的事件(如產品訂單)
  • 維度(Dimensions):描述情境的資訊(如顧客資訊)
1 https://en.wikipedia.org/wiki/Star_schema
Data Engineering 入門

一起來練習吧!

Data Engineering 入門

Preparing Video For Download...