2.1 · 資料層級
目標: 説出資料層級的五個層次,並在給定情境中識別每個。
五個層次
資料按層級組織 —— 從最微小的 0/1 到完整的資料庫。把這個梯子背下來:
┌─────────────────────┐
│ Database 資料庫 │ 相關文件的集合
└────────▲────────────┘
│
┌─────────────────────┐
│ File 文件 │ 相關記錄的集合
└────────▲────────────┘
│
┌─────────────────────┐
│ Record 記錄 │ 相關欄位的集合
└────────▲────────────┘
│
┌─────────────────────┐
│ Field 欄位 │ 最小的有意義單位
└────────▲────────────┘
│
┌─────────────────────┐
│ Byte (8 bits) │ 儲存一個字符
└────────▲────────────┘
│
┌─────────────────────┐
│ Bit 位 │ 0 或 1
└─────────────────────┘1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
卷一必須能説出的 5 個層次是:
- Field 欄位
- Record 記錄
- File 文件
- Database 資料庫
(再加上更底層的技術構件 bit 和 byte)
HKEAA 通常問:「在這個情境裏識別資料、記錄、欄位、文件和資料庫。」所以我們聚焦最上 4 層 + 概念性的「資料」基礎。
例子走查 · 學校學生資料庫
| 層次 | 例子 |
|---|---|
| Database 資料庫 | 學校整個 school_system 資料庫 |
| File / Table 文件 / 表 | students 表 |
| Record 記錄 | 一行:1001, Alice Chan, F.4A, 2007-05-12, 86 Robinson Rd |
| Field 欄位 | class = 'F.4A'(一個單元格) |
| Byte / Character 位元組 / 字符 | F.4A 中的字母 F |
| Bit 位 | 儲存 F 的位元組裏某一個 0 或 1 |
還該認識的術語
| 術語 | 含義 |
|---|---|
| Entity 實體 | 你記錄的「東西」(一個學生、一本書、一張訂單) |
| Attribute 屬性 | 實體的某一特徵(對應「欄位」) |
| Tuple / Row 元組 / 行 | 實體的某個具體實例(對應「記錄」) |
| Relation / Table 關係 / 表 | 結構化的集合(在關係型資料庫中對應「文件」) |
| Schema 架構 | 資料庫的藍圖(有哪些表、哪些欄位) |
這些在選修 2A 會再出現。現在認識能省下後續時間。
現實例子
| 領域 | 欄位 | 記錄 | 文件 | 資料庫 |
|---|---|---|---|---|
| 醫院 | patient_id | 某病人的一次預約 | 今天所有預約 | 醫院管理系統 |
| 圖書館 | ISBN | 一次借出交易 | 本月所有借出 | 圖書館 DB |
| 港鐵 | card_id | 一次拍卡 | 今天所有拍卡 | 八達通 DB |
| 商店 | sku | 收據上的某行商品 | 本小時所有收據 | POS DB |
文件內部如何組織資料
存到磁碟上的文件可以有幾種佈局:
| 佈局 | 説明 | 典型用途 |
|---|---|---|
| Sequential 順序 | 記錄按固定順序逐條存放(常按鍵值排序) | 磁帶備份、日誌文件 |
| Indexed sequential (ISAM) | 順序 + 索引以便快速跳轉 | 早期大型機系統 |
| Random / direct (hash) | 記錄放在由鍵計算出的位置 | 基於哈希的資料庫 |
| Relational 關係型 | 行列表;用外來鍵表達關係 | MySQL、PostgreSQL、SQLite |
卷一隻需區分順序與直接存取(下一節)。
學生常見錯誤
- 混淆 record 與 field:記錄是一整行;欄位是一個單元格。
- 把整張電子表格稱為 record。
- 説 byte ≠ character:在基本 ASCII 裏一個字符是 1 位元組,但在 Unicode(UTF-8)裏可能是 1–4 位元組。
- 忘了資料庫可以包含很多文件 / 表 —— 不止一個。
練習活動
給定下面這份運動會的 CSV 文件:
csv
member_id,name,join_date,birth_year,sport
1001,Alice Chan,2024-09-01,2007,Basketball
1002,Bob Wong,2024-09-15,2008,Swimming
1003,Carol Yip,2024-10-03,2007,Tennis1
2
3
4
2
3
4
對此文件識別:
- 一個欄位(如
member_id或任意單元格值) - 一條記錄(一整行,如成員 1002 那行)
- 該文件(CSV 本身)
- 一個資料庫(俱樂部的所有 CSV / 表的集合)
- 一個位元組(CSV 中一個字符的儲存)
考試式題目
題(4 分): 停車場系統記錄每次停車的車牌、入場時間、出場時間和費用。各舉一例,識別系統中的欄位、記錄、文件和資料庫。
評分參考:
- 欄位(1):如
licence_plate = "AB1234" - 記錄(1):一次停車事件的行,如
("AB1234", "2026-06-24 09:00", "2026-06-24 11:30", 60) - 文件(1):某一天(或某一停車場)的所有停車事件
- 資料庫(1):停車場公司涵蓋所有停車場和日期的完整資料庫
關鍵要點
- 欄位 → 記錄 → 文件 → 資料庫。
- 欄位是一份資料,記錄是實體的一個實例。
- 這些術語在選修 2A 重現為 attribute、tuple、table、schema。
➡️ 下一節:2.2 順序 vs 直接存取