资料库概念

基础

资料库有组织地存大量资料:资料表分记录(行)与栏位(列);主键唯一辨识每笔记录(学号,不是姓名)。关联式资料库多表互连;大量、多人、要防错的资料用资料库,细量个人计算用试算表。

适合:中三资讯及通讯科技 · 单元:资料库入门 · 建议学习路径第 5/13 课

学完呢课,你会识:
  • 资料库有组织地存大量资料;DBMS 是管理它的软件。
  • 资料表:横行是记录(一个个体),直列是栏位(一项属性)。
  • 主键唯一辨识每笔记录:不重复、不空、不变 — 学号,不是姓名。
文体:原理讲解课有声朗读

文体小知识:原理讲解课先讲清楚概念和规则,再用实例演示,令抽象的设计方法变得具体易明。

资讯及通讯科技Information & Communication Technology

§课文原文 Passage

1资料库(Database)是有组织地储存大量资料的系统,由资料库管理系统(DBMS)负责存取。核心是资料表(Table):外形像试算表的工作表,每一行是一笔记录(Record,例如一位学生的全部资料),每一列是一个栏位(Field,例如姓名、班别、分数)。

2每张表都要有主键(Primary Key):一个不会重复、不会空的栏位用来唯一辨识每笔记录,例如学号 2023001、2023002。姓名可以做主键吗?不行 — 一个班可以有两个小明;学号才认得准人。关联式资料库(Relational Database)更进一步:多张表透过共同的栏位互相连接,例如成绩表只存学号,要用姓名时就靠学号连回学生表查。

3和试算表比较:试算表适合个人或小组处理几十至几百行资料、重视计算和画图;资料库适合几万至几百万行、多人同时读写、要快速搜寻和防止错误输入的场合。学校图书馆几十万本书的目录、全港学生的成绩系统,都一定要用资料库。

4日常生活中资料库无处不在:八达通的每一程交易纪录、医院管理局的预约系统、网店的订单和存货,背后全是资料库在运作。跟资料库沟通有一套标准语言叫 SQL(结构化查询语言)— 下一课就会学到用它查询资料。

1重点摘要 Summary

资料库有组织地存大量资料:资料表分记录(行)与栏位(列);主键唯一辨识每笔记录(学号,不是姓名)。关联式资料库多表互连;大量、多人、要防错的资料用资料库,细量个人计算用试算表。

2生字卡 Vocabulary

D
Database资料库

有组织地储存和管理大量资料的系统,方便搜寻、更新和防止错误。

T
Table资料表

资料库中储存同一类资料的二维结构,由行(记录)与列(栏位)组成。

R
Record记录

资料表中的一行,代表一个完整个体的全部资料,例如一位学生。

F
Field栏位

资料表中的一列,代表资料的一项属性,例如姓名、班别。

P
Primary key主键

唯一辨识每笔记录、不重复又不可空的栏位,例如学号。

R
Relational database关联式资料库

多张资料表透过共同栏位互相连接的资料库,例如成绩表用学号连学生表。

D
DBMS资料库管理系统

管理资料库的软件,处理存取、权限和搜寻,例如 MySQL、SQLite。

Q
Query查询

向资料库提出的要求,例如「列出 3A 班全部学生」,通常用 SQL 写成。

D
Data redundancy资料冗余

同一份资料重复储存在多处,容易造成更新后不一致的问题。

3逐步讲解 Steps

  1. 认识一张学生表资料库的核心是资料表,外形与试算表相似。以学生表 students 为例:它有三个栏位,分别是学号、姓名和班别;表头一行列出栏位名称,下面的每一行是一笔记录,例如(2023001, 小明, 3A)、(2023002, Mary, 3B)、(2023003, 阿强, 3A)。记住口诀:表头是栏位,每行是一名学生的完整资料。看懂一张表的结构,是学习资料库的第一步。
  2. 分辨记录和栏位记录和栏位最易混淆。在上述学生表中,「(2023002, Mary, 3B)」这一行是一笔记录,代表一名学生的全部资料;「班别」这一直列是一个栏位,代表所有学生的同一类资料。口诀:行是个体,列是属性;一行一名学生,一列一项资料。考试常给一张表,要求指出某位置是记录还是栏位,先想那是一个「人」还是一种「资料类别」,答案便清楚了。
  3. 主键如何选主键是用来唯一辨识每笔记录的栏位。假设表中有两位同名的小明,学号分别是 2023001 和 2023004:用姓名辨识便会认错人;用学号就一定准确。主键的条件有三个:不重复、不可以空、最好永远不变。姓名会重复、电话可以更改,都不适合做主键;学号由学校编配之后不再改变,是理想的主键。每张表都必须有主键,这是考试的必考点。
  4. 关联式资料库连表关联式资料库把资料分拆到多张表,再靠共同栏位连接。例如成绩表只记(学号 2023001, 数学, 85),并不储存姓名;要显示姓名时,资料库用 2023001 回到学生表查出「小明」。两张表靠学号连接,姓名不必重复储存,避免冗余:改名时只需修改学生表一处,所有成绩记录自动配合。这种设计令资料保持一致,是关联式资料库的最大优点。
  5. 资料库 vs 试算表试算表和资料库各有所长。分析一个 40 人班的分数,用 Excel 十分钟便解决;但全港 40 万名学生的成绩、几百位老师同时输入、还要防止班别栏被输入「3Z」这类错误值,就必须用资料库,因为它擅长多人同时存取、快速搜寻大量资料和执行资料完整性规则。简单记法:资料少、自己用,选试算表;资料多、多人用、要防错,选资料库。
  6. 资料完整性规则资料库可以为每个栏位设定规则,防止错误资料进入:分数必须是 0 至 100 之间的数字;班别必须是 3A 至 3E;学号不可以留空。任何违反规则的输入,资料库都会拒绝,从源头防止垃圾资料。试算表则依赖使用者自律,错误一旦输入便难以察觉。考试常问「为什么学校系统用资料库而不用 Excel」,答案要提到资料完整性、多人存取和大量资料三点。
  7. 想像一个查询资料库的强项是查询。老师想知道「3A 班数学 80 分以上的学生」:在试算表要人手筛选几步;在资料库一句 SQL 便搞定:SELECT name FROM students WHERE class = '3A' AND score >= 80。这句话的意思是「从 students 表选出班别是 3A 而且分数达 80 的姓名」。下一课会逐字学习 SQL 的写法;现在只需记住:SQL 是与资料库沟通的标准语言。

4图解 Diagrams

资料库概念:有规律嘅超级表格 Database学号姓名班别2026001小明3A2026002小美3B2026003小刚3A栏位(直行)= 一种资料 · 记录(横行)= 一个对象嘅完整资料好处:大量资料有条理存放、快速搜寻、多人同时用都唔会乱生活例子:学校名册、图书馆系统、网店订单——全部行资料库
图 1:资料库表格结构

5例题示范 Example

例题:为学校图书馆设计一张「借阅记录表」,列出合适的栏位并指出主键,说明它如何与其他表关联。

  1. 第一步列出需要的栏位:借阅编号、学号、书籍编号、借出日期、归还日期;每个栏位对应一项需要保存的资料。
  2. 第二步选主键:借阅编号每次借阅唯一,不重复也不会空;学号和书籍编号都会重复,因为同一人可以借多本书,同一本书可以被多人借,两者都不能做主键。
  3. 第三步设关联:学号连到学生表查出借书人姓名;书籍编号连到图书表查出书名;借阅表本身不必重复储存姓名和书名,避免冗余。
  4. 第四步加完整性规则:借出日期不可以空;归还日期未还时留空,已还时必须不小于借出日期;违反规则的输入一律拒绝。
  5. 答案:借阅记录表的栏位为借阅编号(主键)、学号、书籍编号、借出日期、归还日期;主键是借阅编号,因为只有它不重复、不会空;透过学号和书籍编号分别关联学生表和图书表,借阅表本身不重复储存姓名和书名;再加完整性规则防止错误输入,设计便告完成。

6常见错误 Mistakes

✗ 「用学生姓名做主键最直观。」
✓ 姓名可以重复(两个小明)、可以改(转名);主键要用学号这类永不重复的编号。
✗ 「记录是直的一列,栏位是横的一行。」
✓ 刚好相反:记录是横行(一个个体的全部资料),栏位是直列(一项属性)。
✗ 「资料库和试算表差不多,用哪个都一样。」
✓ 几十行个人资料用试算表方便;几十万行、多人同时读写、要防错就必须用资料库。
✗ 「一个资料库只能有一张表。」
✓ 关联式资料库正是由多张表组成,靠共同栏位互相连接,减少重复储存。
✗ 「同一份资料存多几次无所谓,方便查找。」
✓ 冗余会出大问题:学生转班后,三张表里的班别改漏一处,资料就不一致;姓名书名等应只存一次,靠关联查找。

75 题快测 Quick check

Q1资料表中,横的一行和直的一列分别叫什么?

Q2以下哪个最适合做学生表的主键?A. 姓名 B. 学号 C. 班别

Q3成绩表只存学号不存姓名,有什么好处?

Q4全班 40 人的测验分分析,和全港 40 万学生多人同时输入的成绩系统,各适合用什么工具?

Q5「分数栏只接受 0 至 100 的数字」属于资料库的什么机制?

8重点回顾 Recap

  • 资料库有组织地存大量资料;DBMS 是管理它的软件。
  • 资料表:横行是记录(一个个体),直列是栏位(一项属性)。
  • 主键唯一辨识每笔记录:不重复、不空、不变 — 学号,不是姓名。
  • 关联式资料库多表靠共同栏位连接,避免同一资料重复储存。
  • 细量个人计算用试算表;大量、多人、要防错的资料用资料库。

同级其他科

同一科其他级别