AS & A Level Computer Science (9618)

AS Level · 主题 8

规范化关系数据库

使用函数依赖、键、SQL 与事务规则。

课程区分 AS 主题 1–12 与 A Level 主题 13–20。示例包括剑桥伪代码与 Python。

识别每项事实由什么决定

主键标识一行,函数依赖则说明一组属性决定另一组属性。如果 OrderID 决定 CustomerID,CustomerID 又决定 CustomerName,那么在每条订单重复姓名会形成传递依赖。

规范化通过分离相关事实来减少更新、插入和删除异常。拆分后应保留连接表之间的键。只拆表却丢失关系,并不能得到有效设计。

用 SQL 表达所需结果

SELECT 检索数据,JOIN 关联表,WHERE 筛选行,GROUP BY 为聚合分组。示例统计每个客户的订单数。选择内连接或外连接前,应明确是否要显示没有订单的客户。

数据库管理系统还负责约束与并发修改。减少库存和记录销售等相关更新,不应在某个操作失败时留下不一致的部分结果。

SELECT CustomerID, COUNT(*) AS OrderCount
FROM Orders
GROUP BY CustomerID;

自我检测

为什么应把客户地址从重复的订单记录中分离出来?查看答案

避免修改同一事实的多份副本,也减少地址不一致的风险。

编写这些课程时使用的参考资料

我们在编写本课程时参考了这些官方文件,用以确定考纲结构和课程要求。

Cambridge International · 9618 · 2027–2029 年考试