歡迎來到資料處理的世界!

你好!在本章中,我們將探索資訊科技中最重要的一部分:資料與資料庫 (Data and Databases)。你可以把資料想像成廚房裡的原始食材。單獨來看,它們可能沒什麼特別,但只要你正確地處理 (manipulate) 它們,就能創造出非常有用的東西——就像一道美味的佳餚(在我們這裡,就是資訊 (Information))。

如果一開始覺得有些術語聽起來很「科技感」,別擔心。我們將通過簡單的例子和類比,一步步為你拆解。讓我們開始吧!

5.1 資料與資訊

在我們開始處理資料之前,必須先了解它究竟是什麼,以及它與資訊有何不同。

資料與資訊的區別

資料 (Data) 是原始的、未經處理的事實和數字。它本身沒有意義。
例子:15, 08, 1995。這些僅僅是數字。

資訊 (Information) 是經過處理、整理或結構化的資料,使其具備意義和上下文。
例子:「15/08/1995」被標識為「出生日期」。現在它就有意義了!

類比:樂高積木

想像地板上有一大堆散落的樂高積木。這些就是資料。當你按照說明書拼成一座城堡時,那座完成的城堡就是資訊。而拼砌城堡的這個過程就是處理 (Processing)

結構化資料與非結構化資料

並非所有的資料長相都一樣。我們通常將其分為兩類:
1. 結構化資料 (Structured Data): 這是高度組織化的資料,通常以表格形式(行列)呈現。電腦非常容易搜尋和分析這類資料。
例子:包含學生姓名和成績的試算表。

2. 非結構化資料 (Unstructured Data): 這是沒有預定義格式的資料。電腦很難自動「讀取」它們。
例子:照片、影片、社交媒體貼文或手寫筆記。

快速複習箱:
- 資料: 原始事實(「食材」)。
- 資訊: 處理過的資料(「佳餚」)。
- 結構化: 有條理(就像整理好的檔案櫃)。
- 非結構化: 無組織(就像亂堆的文件堆)。

重點摘要: 機構希望從資料中提取有意義的資訊,因為這能幫助他們做出更好的決策,例如商店觀察哪些產品銷量最好,以便及時補貨。

5.2 結構化資料與資料庫

資料庫 (Database) 是結構化資料的有序集合。我們使用關聯式資料庫 (Relational Databases) 將不同的資訊片段連結起來。

關聯式資料庫的結構

要理解資料庫,可以想像一個學校檔案系統的數位版本:

- 資料表 (Tables): 資料庫由一個或多個資料表組成。一個資料表包含關於特定事物(如「學生」或「教師」)的資料。
- 欄位 (Fields): 這是資料表中的直欄。每個欄位存放一項具體的資訊。
例子:「FirstName」(名字)或「PhoneNumber」(電話號碼)。
- 紀錄 (Records): 這是資料表中的橫列。一筆紀錄包含關於某個特定項目或人員的所有資訊。
例子:名為「Alex」的學生所有詳細資料。

理解「鍵 (Keys)」

鍵就像是將資料庫凝聚在一起的膠水。

1. 主鍵 (Primary Key): 資料表中每筆紀錄的唯一標識符。兩筆紀錄不能有相同的主鍵。
例子:你的學生編號。即使兩個人名字相同,他們的 ID 也是獨一無二的!

2. 外鍵 (Foreign Key): 這是資料表中的一個欄位,連結到另一個資料表中的主鍵。這是我們在資料表之間建立關聯 (Relationship) 的方式。

3. 複合鍵 (Composite Key): 有時候,單一欄位不足以成為唯一識別。複合鍵是指結合兩個或多個欄位,共同創造出一個唯一識別符。

記憶小撇步:鍵的技巧

- 主鍵 (Primary): 「頭號人物」(主要的 ID)。
- 外鍵 (Foreign): 「外來者」(指向另一個資料表)。
- 複合鍵 (Composite): 「合成」(兩樣東西混在一起)。

實體與關係

實體 (Entity) 是一個專業詞彙,指的是我們正在儲存資料的「對象」(例如客戶、產品或銷售紀錄)。在資料庫中,實體透過關係 (Relationships) 進行「溝通」:

- 一對一 (1:1): 一個人只有一本護照。
- 一對多 (1:M): 一位老師有多位學生。(這是最常見的!)
- 多對多 (M:M): 多位學生選修多門不同的科目。

你知道嗎? 我們使用實體關係圖 (ERD) 來繪製這些資料表如何相互連結的地圖,然後才開始建構資料庫。這就像是房子的藍圖一樣!

重點摘要: 資料庫使用資料表、欄位和紀錄來保持組織,而「鍵」則用於精確地將所有內容連結起來。

5.3 結構化查詢語言 (SQL)

現在資料已經存入資料庫了,我們該如何提取出來呢?我們使用 SQL(讀作「S-Q-L」或「Sequel」)。SQL 是我們用來與資料庫「對話」的語言。

為什麼要用 SQL?

SQL 允許我們處理 (manipulate) 資料——這意味著我們可以搜尋特定的紀錄、新增資料、修改現有資料,或者刪除不再需要的東西。

常見的 SQL 指令

如果這看起來像一大堆程式碼,別擔心——它們其實非常符合邏輯!

1. 尋找資料 (查詢 Queries):
我們使用 SELECT 來挑選欄位,FROM 來指定資料表,WHERE 來篩選結果。
例子:SELECT Name FROM Students WHERE Grade = 'A';

2. 新增與修改資料:
- INSERT: 在資料表中新增一行(紀錄)。
- UPDATE (修改): 更改現有的資料。
- DELETE: 永久移除一筆紀錄。(使用時要小心!)

3. 分組與計算:
- COUNT: 計算有多少筆紀錄。
- ORDER BY: 對結果進行排序(A-Z 或由高到低)。
- GROUP BY: 將相似項目分組(例如:顯示每個班級有多少學生)。

使用萬用字元 (Wildcards)

有時候你不知道要找的詞確切是什麼。我們使用萬用字元作為「填空題」:
- % (百分比符號): 代表任意數量的字元。
例子:'S%' 會找到 "Sam", "Sarah", 和 "Steven"。
- _ (底線): 代表且僅代表一個字元。
例子:'H_t' 會找到 "Hat" 和 "Hot",但不會找到 "Heat"。

連結資料表 (JOIN 與 UNION)

- JOIN: 用於根據相關欄位(通常是主鍵和外鍵)合併來自兩個或多個資料表的資料行。
- UNION: 用於將兩個或多個 SELECT 語句的結果集組合到一個大列表中。

常見錯誤:
學生常忘記在 SQL 語句末尾加上分號 (;)。請把分號想像成資料庫世界中句子的「句號」!

重點摘要: SQL 是讓我們對資料執行操作的工具。透過 SELECT、INSERT 和 JOIN 等指令,我們能將龐大的資料庫變成有用的資訊。

最終快速複習

- 資料 (Data) 是原始的;資訊 (Information) 是有意義的。
- 關聯式資料庫使用由鍵 (Keys) 連結的資料表 (Tables)
- 主鍵 (Primary Keys) 是唯一 ID;外鍵 (Foreign Keys) 用於連結其他資料表。
- SQL 是用於選取、新增、更新和刪除資料的語言。
- 萬用字元 (%) 和 (_) 幫助我們在名稱不完整時進行搜尋。

你已經讀完了「資料處理」筆記!做得好!休息一下,然後試著寫一個簡單的 SQL 查詢來練習一下手感。你一定沒問題的!