在前面的文章中,我們介紹了資料庫的兩大流派:關聯式資料庫與非關聯式資料庫。
這篇文章開始,我們要深入學習關聯式資料庫。
關聯式資料庫是目前最主流的資料庫類型,大部分系統的核心資料都是用關聯式資料庫來儲存。學好關聯式資料庫,是學習資料庫最重要的基礎。
讓我們從關聯式資料庫最重要的特徵開始:欄位固定。
關聯式資料庫的核心特徵
關聯式資料庫最重要的特徵是:欄位在一開始就固定下來,之後不會隨著資料操作而增減。
當你建立一張資料表時,必須先定義好有哪些欄位。之後不管你新增、刪除、更新多少筆資料,欄位都不會改變。
但為什麼要這樣設計?欄位固定有什麼好處?
欄位固定的好處
格式統一,資料好讀
還記得我們之前做過的「速讀考驗」嗎?
沒有整理過的資料:
David 撰寫的鉅作《資料庫入門:從開始到放棄》共 335 頁,是在 2020 年 1 月出版。另外,這本篇幅只有 35 頁的《中華民國美學史》是 Emily 寫的,在 2025 年 3 月出版。
這段文字讀起來很痛苦,因為資訊的位置不固定、格式也不統一。
整理成表格後:
| 書名 | 作者 | 頁數 | 出版年月 |
|---|---|---|---|
| 資料庫入門:從開始到放棄 | David | 335 | 2020/01 |
| 中華民國美學史 | Emily | 35 | 2025/03 |
整理成表格後,資訊一目瞭然。這就是「欄位固定」帶來的好處:
- 位置統一:每筆資料的「書名」都在第一欄、「作者」都在第二欄
- 格式統一:「頁數」一定是數字、「出版年月」一定是日期格式
資料類型可以統一
當欄位固定後,每個欄位內的資料類型也可以統一:
| 欄位 | 資料類型 |
|---|---|
| 書名 | 文字 |
| 作者 | 文字 |
| 頁數 | 數字 |
| 出版年月 | 日期 |
這樣的好處是:
- 你不可能在「頁數」欄位填入「很多頁」這種文字
- 你不可能在「出版年月」欄位填入「上個月」這種模糊的說法
資料庫會幫你把關,確保每個欄位的資料都符合預期的格式。
操作語法可以統一
因為欄位固定,你可以針對「整個欄位」進行操作,而不需要一筆一筆處理。
例如:
- 「把所有書的頁數加總」→ 針對「頁數」欄位計算總和
- 「找出頁數最多的書」→ 針對「頁數」欄位找最大值
- 「依照出版年月排序」→ 針對「出版年月」欄位排序
這些操作都是針對「欄位」來描述的。因為每筆資料都有這些欄位,所以同一個操作可以一次套用到所有資料上,非常有效率。
關聯式資料庫的兩個重點
學習關聯式資料庫,有兩件事情最重要:
重點一:找出共同性質,決定欄位
從雜亂的資料中,找出每筆資料都會有的「共同性質」,這些就是你的欄位。
例如,書籍資料的共同性質:
- 每本書都有「書名」
- 每本書都有「作者」
- 每本書都有「頁數」
- 每本書都有「出版年月」
這些共同性質就成為資料表的欄位。
重點二:建立資料之間的關聯
資料不是孤立的,它們之間會有關係。
例如:
- 會員 A 的介紹人是會員 B → 兩筆會員資料之間有關聯
- 訂單屬於某個會員 → 訂單資料和會員資料之間有關聯
- 活動的主持人是某個會員 → 活動資料和會員資料之間有關聯
這種「資料之間的關聯性」,就是關聯式資料庫名稱的由來。
透過關聯,你可以把相關的資料連結在一起,而不需要在每筆資料中重複儲存所有資訊。這個技巧在之後的章節會詳細介紹。
小結
關聯式資料庫的核心特徵是欄位固定,這帶來了三個好處:
- 格式統一:資料的位置和格式都是固定的,容易閱讀
- 資料類型統一:每個欄位的資料類型都是固定的,不會出錯
- 操作語法統一:可以用欄位名稱來進行大量的資料操作
學習關聯式資料庫的兩個重點:
- 找出共同性質,決定欄位:把雜亂的資料整理成有結構的表格
- 建立資料之間的關聯:讓資料可以互相連結,避免重複儲存
接下來的文章,我們會學習如何把日常生活中的現象,轉換成資料庫的結構設計。