歡迎來到資料庫的世界!

你有沒有想過 Spotify 是如何記住你最愛的歌曲,又或者你的學校是如何在不搞混成績的情況下追蹤數千名學生?答案就是資料庫(Databases)!在本章中,我們將探討如何利用關聯式資料庫(Relational Databases)來組織、儲存及連結資料。如果一開始看到很多專有名詞感到困惑,別擔心,我們會把它拆解成簡單易懂的部分!

你知道嗎?你手機裡的幾乎每個應用程式都會使用資料庫來儲存你的設定、訊息以及最高分數。


1. 什麼是資料庫?

簡單來說,資料庫是一個持久(長期)儲存組織化資料的地方。與其將資訊堆成一團亂,資料庫將其整齊地排列,以便你輕鬆查找和更新。

什麼是「關聯式」資料庫?

關聯式資料庫是一種將資料儲存在多個資料表(Table)中的資料庫類型。這些資料表接著會透過特殊的「鍵(Key)」相互「關聯」(連結)起來。

類比:想像一下學校的紙本檔案系統。如果他們把所有東西都塞進同一個巨大的資料夾裡,那將永遠找不到東西!相反地,他們會使用不同的抽屜:一個放學生資料,一個放老師資料,另一個放課程資料。這些抽屜就如同關聯式資料庫裡的資料表

重點總結:關聯式資料庫透過多個連結的資料表來保持組織化與高效率。


2. 建構要素:資料表、記錄與欄位

要理解資料庫如何運作,我們需要先看看單一資料表的結構。它與試算表(如 Excel 或 Google Sheets)非常相似。

  • 資料表(Table):關於某個特定事物的完整資料集合(例如「學生」資料表)。
  • 記錄(Record):資料表中的單一「列」。它包含了關於某一個特定項目或人物的所有資訊。例如:名為 Sarah 的某位學生的所有詳細資料。
  • 欄位(Field):資料表中的單一「欄」。它存放特定類型的資訊。例如:用於存放「出生日期」的欄位。
  • 資料型態(Data Type):每個欄位都必須有特定的資料型態(如年齡的整數 Integer,或名稱的字串 String)。這能確保資料輸入正確!

記憶小撇步:
Field(欄位) = Form(表單裡的小格子)。
Record(記錄) = Row(橫向的資料列)。

快速複習:哪一個是橫列?是記錄(Record)!哪一個是直欄?是欄位(Field)


3. 連結資料表:主鍵與外來鍵

在關聯式資料庫中,我們需要一種方法來告訴電腦:資料表 A 中的某筆記錄屬於資料表 B 中的某筆記錄。我們透過鍵(Keys)來做到這一點。

主鍵(Primary Key)

每個資料表都必須有一個主鍵。它是資料表中每筆記錄的唯一識別碼。沒有兩筆記錄可以擁有相同的主鍵。

例子:你可能會有一個學生編號(Student ID)。即使學校裡有兩個人都叫「John Smith」,但你們的編號會不同。那個編號就是你的主鍵。

外來鍵(Foreign Key)

外來鍵是資料表中的一個欄位,該欄位在另一個資料表中是主鍵。它扮演了兩個資料表之間的連結或「橋樑」角色。

運作方式:
1. 在學生資料表中,學生編號 (StudentID)主鍵
2. 在圖書館書籍資料表中,我們加入一個 學生編號 (StudentID) 欄位,這樣我們就知道是誰借了哪本書。
3. 在圖書館書籍資料表中,學生編號 (StudentID) 就是外來鍵,因為它連結回主要的學生資料表。

重點總結:主鍵用來識別;外來鍵用來連結。


4. 為什麼要用關聯式資料庫?

你可能會想:「為什麼不乾脆把所有東西都放進同一個大表格裡?」使用多個資料表可以幫助我們解決兩個大問題:資料冗餘(Redundancy)資料不一致(Inconsistency)

消除資料冗餘

資料冗餘是指將相同的資料儲存多次,這會浪費儲存空間!
例子:如果我們只有一個大表格記錄「圖書館借閱」,我們每次有人借書,就必須重新輸入學生的姓名、地址和電話號碼。在關聯式資料庫中,我們只需在「學生」資料表儲存一次這些資訊,然後用他們的編號進行連結即可。

消除資料不一致

資料不一致發生在相同資料儲存在兩個地方,而其中一處更新了但另一處卻沒有。
例子:如果 Sarah 搬家了,我們只需要在一個地方(學生資料表)更新她的地址。如果我們在許多表格裡都放了她的地址,我們可能會忘記更新其中一個,這會導致電腦無法判斷哪個地址才是正確的「不一致」問題。

避開常見錯誤:學生常誤以為「冗餘」和「不一致」是一樣的意思。
- 冗餘(Redundancy) = 資料重複(浪費空間)。
- 不一致(Inconsistency) = 資料衝突(導致錯誤)。

重點總結:關聯式資料庫透過減少重複來提高資料準確性並節省空間。


快速複習箱

資料庫:持久、組織化的資料儲存處。
資料表:由橫向的記錄(Row/Record)和縱向的欄位(Column/Field)組成。
主鍵:記錄的唯一識別碼。
外來鍵:連結至另一個資料表的主鍵。
關聯式優點:杜絕資料冗餘不一致


如果覺得要記的東西很多,別擔心。只要記住「學校抽屜」的類比!一旦你理解了資料表如何透過 ID 互相連結,其餘的資料庫理論就會變得簡單多了。