IB Computer Science HL

A.3 数据库

设计并查询关联表

使用键、关系、连接和约束保持数据库一致性。

示例使用 Python。HL 路径包含 SL 之外的额外课程。

把每项事实放在正确的位置

主键唯一标识一行,外键引用关联表中的键。学生信息应在 Student 中存储一次,选课记录通过 StudentID 关联。如果每条选课记录都重复地址,地址改变时就会出现更新问题。

多对多关系通常需要 Enrollment(StudentID, CourseID) 这样的连接表,主键可以由两个标识符组成。约束表达唯一性和有效引用等规则,但不能取代理解数据含义。

把连接理解为关系

查询匹配两个表中的学生标识符,保留课程 CS 的选课记录并返回姓名。WHERE 条件筛选行。还应确认题目要求的是不重复姓名、计数还是所有匹配记录。

事务把相关操作组织为一个逻辑变更。若选课操作更新多个表,部分更新可能破坏系统规则。需要明确哪些修改必须同时成功或同时失败。

SELECT Student.Name
FROM Student
INNER JOIN Enrollment
ON Student.StudentID = Enrollment.StudentID
WHERE Enrollment.CourseID = 'CS';

自我检测

为什么不应只用学生姓名作主键?查看答案

学生可能重名,姓名也可能改变。应使用稳定且唯一的标识符。

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

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

International Baccalaureate · 2027 年首次评估

此 PDF 为 IB 公开学科简介。完整学科指南与评估要求可通过学校或 IB 课程资源中心获取。