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 直接存取