Go Back

RDBMS

2024-06-07

資料庫(Database)是電腦中儲存的資料集合,使用資料庫語言使我們能夠方便地對資料庫中的資料進行操作。從電商網站的購物紀錄到交友軟體的各種貼文,都有資料庫在背後運作支持。

RDBMS

RDBMS (Relational Database Management System) 又為關聯式資料庫管理系統,表示資料庫是由多個資料表(Table)組成,並且可以將資料表關聯起來,去連結多個資料表之間的關係。

  • 常見的資料庫系統有:
    • MySQL
    • PostgreSQL

SQL

SQL (Structured Query Language) 是一種用於管理和操作關聯式資料庫的語言。

專有名詞

* Table:

  • 建立不同類型的資料表,一個資料表有多個 columns

* Columns:

  • 記錄不同型態的資料
  • 如圖中 customers table 底下的所有欄位。

* Primary Key

  • 主鍵在 Table 中是唯一且不可為空的欄位,通常做為 id 使用。
  • 可以有多個欄位組成一個主鍵,稱作複合主鍵。

* Foreign Key

  • Foreign Key 是一個欄位或一組欄位,其值必須與另一個表中的主鍵值相匹配。
  • 建立表之間的關聯性。

基本語法

* CREATE:

創建 Table

CREATE TABLE employees IF NOT EXISTS (
    employee_id INT PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    birthdate DATE,
    email VARCHAR(100) UNIQUE,
    hire_date DATE NOT NULL,
    salary DECIMAL(10, 2)
);

* DROP:

刪除 Table

DROP DATABASE database_name;

* SELECT:

取得資料

SELECT * FROM table_name;
SELECT column1, column2 FROM table_name;

* INSERT:

加入資料

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

* UPDATE:

更新資料

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

* DELETE:

DELETE FROM table_name WHERE condition;

正規化

正規化是一種資料庫設計技術,目標是消除儲存的重複和冗余,以提高資料庫的效能和可靠性。透過將資料分解成更小、更獨立的 table,可以減少資料的重複性,同時保持資料的一致性。

正規化的不同級別

正規化通常分成五種等級,但實際應用到第三正規化就足夠了,這邊只介紹前三種正規化。

  • 第一正規化(1NF):確保每個欄位都是最小單位,不可再分割,並去除空值。
  • 第二正規化(2NF):確保表中的每個非主鍵屬性都完全依賴於其主鍵。
  • 第三正規化(3NF):確保不存在在其他非主鍵屬性之間的依賴關係。
  • BCNF(Boyce-Codd 正規化形式):在 3NF 的基礎上進一步確保所有的關係依賴都是由候選鍵決定的。