歡迎來到第 5 單元:數據與資料庫!

在本章中,我們將探索數位世界如何處理其最寶貴的資產:數據 (Data)。你可以把數據想像成 21 世紀的「黃金」。無論是你在 Instagram 上的讚好、你的學校成績,還是銀行的交易清單,這一切都需要被儲存、整理並能迅速檢索。在閱讀完這些筆記後,你將會理解資料庫是如何運作的,以及我們如何運用一種稱為 SQL 的特殊語言來與它們「溝通」。如果一開始覺得某些術語很生硬,別擔心,我們將會一起拆解這些概念!


5.1 數據與資訊

人們經常把「數據 (Data)」和「資訊 (Information)」當作同義詞使用,但在資訊科技中,它們可是大不相同!

5.1.1 數據與資訊的區別

數據 (Data) 是指未經處理的事實和數字,它們本身沒有意義。
例子:19052006 (這只是一串數字)。

資訊 (Information) 是經過處理、組織或結構化後的數據,讓人們能夠理解其含義。
例子:19/05/2006 (現在我們知道這是一個出生日期)。

「烹飪」比喻:
數據 想像成原材料(麵粉、雞蛋、糖)。單獨來看,它們沒有什麼實質用途。而 資訊 就是你將這些原材料處理並「烹飪」後得到的蛋糕!

5.1.2 結構化與非結構化數據

並非所有數據看起來都一樣。我們通常將其分為兩大類:

1. 結構化數據 (Structured Data): 這類數據組織嚴密,整齊地存放在固定的欄位或表格中。電腦非常容易對其進行搜尋。
例子:Excel 電子試算表或圖書館目錄。

2. 非結構化數據 (Unstructured Data): 這是一些「雜亂」的數據,沒有預定義的格式。對於電腦而言,整理和搜尋這類數據要困難得多。
例子:社交媒體貼文、電子郵件、影片或錄音檔案。

5.1.3 提取意義的價值

為什麼機構要花大筆錢在數據上?因為 提取有意義的資訊 能讓他們做出更明智的決策。
例子:超級市場透過查看「數據」(售出的商品)來獲取「資訊」(哪些零食在六月份最受歡迎),這樣他們就能增加庫存並賺取更多利潤。

快速回顧:
- 數據: 原始事實(原材料)。
- 資訊: 處理過的事實(成品蛋糕)。
- 結構化: 組織嚴密(表格)。
- 非結構化: 雜亂無章(郵件/影片)。


5.2 結構化數據(關聯式資料庫)

為了讓結構化數據井井有條,我們使用 資料庫 (Databases)。更準確地說,我們使用的是 關聯式資料庫 (Relational Databases),它們將數據儲存在相互關聯的表格中。

5.2.1 為什麼要使用資料庫?

試想一下,如果你要在 5,000 張雜亂無章的紙張中尋找一位學生的電話號碼,那簡直是一場惡夢!資料庫讓我們能夠儲存海量數據,在幾毫秒內找到特定的項目,並確保數據不會意外重複或丟失。

5.2.2 資料庫的結構

若要理解資料庫,可以將其視為一組 表格 (Tables)(就像活頁簿中的工作表)。每個表格由以下要素組成:

1. 欄位 (Fields): 這是垂直的直欄。每個欄位包含一類特定的資訊(例如:「名字」)。
2. 記錄 (Records): 這是水平的橫列。一項記錄是關於某個人或事物的完整數據集(例如:學生 #101 的所有資訊)。
3. 主鍵 (Primary Key): 用於識別每項記錄的唯一欄位。沒有兩項記錄可以擁有相同的主鍵。
例子:你的學生編號。
4. 外鍵 (Foreign Key): 這是一個出現在 另一個 表格中的主鍵,用於將兩個表格連結起來。
5. 複合鍵 (Composite Key): 有時單一欄位不足以作為唯一識別碼。複合鍵會使用 兩個或多個 欄位組合起來,以建立一個唯一的識別碼。

記憶小撇步:
- Fields (欄位) = Fences (籬笆,垂直豎立的直欄)。
- Records (記錄) = Rows (橫列,水平的資料列)。

5.2.3 實體與關係

在資料庫中,實體 (Entity) 就是我們想要儲存數據的「物件」(例如:學生、書本或汽車)。這些實體之間存在 關係 (Relationships)

- 一對一 (1:1): 表格 A 中的每個項目僅對應表格 B 中的一個項目。
例子:一個人對應一本護照。
- 一對多 (1:M): 表格 A 中的一個項目對應表格 B 中的多個項目。
例子:一位老師對應班上的多位學生。
- 多對多 (M:M): 表格 A 中的多個項目對應表格 B 中的多個項目。
例子:多位學生修讀多門不同的科目。

5.2.4 實體關係圖 (ERD)

ERD 是一張地圖或圖表,展示了這些表格(實體)如何連接。它使用方框代表實體,並用連線顯示它們之間的關係。如果你在連線末端看到一個「烏鴉腳」符號(分叉成三條線),這代表「多」。

重點總結: 資料庫使用 主鍵 來保持組織性,並使用 外鍵 將不同的表格連結起來。


5.3 結構化查詢語言 (SQL)

SQL(通常讀作 "Sequel")是用於與資料庫溝通的標準語言。如果資料庫是一座圖書館,那麼 SQL 就是你想要尋找、新增或修改書籍時與之交談的圖書館管理員。

5.3.1 為什麼要使用 SQL?

它讓我們能高效地處理海量數據。與其點擊瀏覽數千行數據,我們只需撰寫一段簡短的「指令」即可完成工作。

5.3.2 常見的 SQL 指令

1. 搜尋數據 (SELECT 陳述式):
我們使用 SELECT 來選擇欄位,FROM 來指定表格,WHERE 來設定條件。
例子:SELECT StudentName FROM Students WHERE Grade = 'A';

2. 建立與填寫表格:
- CREATE TABLE: 建立新表格並定義 資料類型(例如:INT 代表整數,VARCHAR 代表文字)。
- INSERT: 新增一項記錄。
- UPDATE (修改): 變更現有資訊。
- DELETE: 刪除記錄。

3. 連結表格:
- JOIN: 根據相關聯的欄位(通常是外鍵)合併兩個或多個表格中的列。
- UNION: 將兩個不同的 SELECT 查詢結果合併成一個列表。

4. 使用萬用字元:
萬用字元是在你不確定確切拼寫時使用的「捷徑」:
- % (百分比符號): 代表 零個或多個 字元。
例子:WHERE Name LIKE 'J%' 可以找到 "Joe"、"James" 和 "Jessica"。
- _ (底線): 代表 恰好一個 字元。
例子:WHERE Name LIKE 'H_t' 可以找到 "Hat" 或 "Hot"。

5. 整理結果:
- ORDER BY: 將列表排序(字母順序或數字順序)。
- GROUP BY: 將相同的數據歸類成組。
- COUNT: 回傳符合你搜尋條件的列數。

常見錯誤提醒:
別忘了在 SQL 指令結尾加上分號 (;)!這是在告訴電腦你的指令已經結束了。

你知道嗎?
SELECT 指令實際上並不會變更或刪除你的數據;它只是「檢視」數據。就像是透過窗戶觀察數據而不去觸碰它們一樣!


單元 1 總結:數據與資料庫

1. 數據 是原始的;資訊 是有意義的。
2. 結構化數據 被組織成 表格、欄位和記錄
3. 主鍵 必須是唯一的;外鍵 用於連結表格。
4. 關係 (1:1, 1:M, M:M) 定義了實體如何連接。
5. SQL 是我們用來 SELECT (選取)、INSERT (新增)、UPDATE (更新) 和 JOIN (連結) 數據的語言。

持續練習那些 SQL 指令吧——起初它們看起來像程式碼,但很快你就會覺得像在寫句子一樣自然!你一定做得到!