4.3.1 数据库设计题概述
这一类题到底在考什么
数据库设计题是下午案例题里的固定板块,通常是第 2 题,满分 15 分。它不是让你凭项目经验自由设计系统,而是让你把题干给出的需求说明,沿着数据库设计过程一步步转成概念模型和逻辑模型。
课堂里反复强调的一句话是:一定要结合题干。题干只有几百字,天然不可能覆盖真实系统的所有业务细节;考试考的是“能否跟着出题人的需求说明建模”,不是“能否把现实系统补得更完整”。
分值结构要先记住
这一题的稳定分主要来自两块:补 E-R 图、补关系模式。字幕里说这两部分通常能占到 8 到 10 分;再加上主键、外键,综合可以达到 12 分左右。最后的灵活题可能考增加实体、增加联系或规范化理论。
| 题目部分 | 常见要求 | 复习重点 | 拿分策略 |
|---|---|---|---|
| 需求说明 | 给出系统业务文字 | 抽取实体、属性、联系 | 不要脱离题干扩写需求 |
| E-R 图 | 补缺失实体、联系、联系类型 | 联系名称、多重度、三元联系 | 找“一个、多名、唯一、属于、管理、安排”等语义词 |
| 关系模式 | 补属性、关系名、外键 | E-R 图转关系模式 | 先看题干属性,再看联系归并 |
| 主键外键 | 写出某些关系的主键、外键 | 唯一标识、参照关系 | 主键看“唯一标识”,外键看是否参照其他关系主键 |
| 规范化 | 判断冗余和异常 | 函数依赖、传递依赖、模式分解 | 写清“存在/不存在、原因、修改方案” |
题干为什么比经验更重要
真实开发中,一个“学生选课系统”可能涉及排课、容量、时间冲突、重修、补选、退选、成绩、收费、权限等大量规则。但考试题只给有限的需求说明,所以答案必须服务于题干。
如果题干只说“学生可以选多门课程,课程可以被多名学生选择”,就得到学生与课程之间的多对多联系;不要主动补“选课时间”“成绩录入人”“教室容量”等题干没给的要素。只有当题干明确出现这些信息,或者题目空格明显来自联系归并时,才把它们写进关系模式。
这也是很多有项目经验的同学反而容易失分的地方:他们把现实系统想完整了,却没有答到出题人给定的模型上。
解题主线:从文字到模型
1. 先把题干切成三类信息
| 题干表达 | 应该抽取成什么 | 例子 |
|---|---|---|
| “学生信息包括学号、姓名、性别” | 实体及属性 | 学生(学号, 姓名, 性别) |
| “一个班级有多个学生,一个学生属于一个班级” | 二元联系及联系类型 | 班级与学生一对多 |
| “学号唯一标识学生” | 主键 | 学生关系主键为学号 |
| “每次选课记录选课时间、成绩” | 联系属性或独立关系属性 | 选课(学号, 课程号, 选课时间, 成绩) |
2. 再把 E-R 图转成关系模式
E-R 图是概念设计结果,关系模式是逻辑设计结果。考试里通常已经给出部分图和部分关系模式,让你补空。补空时不要只盯着空格附近,要回到完整流程:
| E-R 结构 | 转换思路 | 典型结果 |
|---|---|---|
| 实体 | 每个实体通常转成一个关系 | 学生(学号, 姓名, 性别) |
| 1:1 联系 | 可将一方主键并入另一方,也可独立成关系 | 管理关系常并入被管理方或管理方 |
| 1:n 联系 | 将 1 端主键并入 n 端 | 学生表并入班级号 |
| m:n 联系 | 联系独立成关系,并入两端主键 | 选课(学号, 课程号, 成绩) |
| 三元联系 | 通常独立成关系,并入三端主键 | 安排(业务员号, 申请号, 客房号) |
3. 最后处理主外键和规范化
主键的题干信号通常非常明显:唯一标识、编号、代码、证号等。外键则来自“当前关系中的某个属性,参照另一个关系的主键”。例如学生关系中的 班级号 不是学生自己的唯一标识,而是参照班级关系的 班级号,所以它是外键。
规范化题一般不会要求长篇论述。课堂里提到:如果一分题能用二十个字说清,就不用写八十个字。关键是命中评分点:是否存在问题、为什么、如何拆分或修改。
常见丢分点
| 丢分点 | 为什么错 | 正确处理 |
|---|---|---|
| 按自己经验补题干没有的实体 | 下午题按给定需求评分 | 只补题干直接或间接支持的信息 |
| 把属性当联系 | 属性描述对象自身特征,联系描述对象之间关系 | 看句子是否出现两个或多个实体之间的对应 |
| 关系模式只看题干属性 | 有些空来自联系归并 | 题干没有时检查 1:n、m:n、三元联系 |
| 外键写成被参照表的完整主键说明 | 外键必须是当前关系中的属性名 | 写当前关系里参照其他关系主键的字段 |
| 规范化题只说“有冗余” | 没点出依赖原因 | 写清传递依赖或部分依赖,并给拆分方案 |
做题时的作答节奏
- 通读题干,圈实体名、编号类属性、数量词。
- 在草稿区画简化 E-R 图,先不纠结名称是否漂亮。
- 对每条联系标 1、m、n,尤其注意“只属于一个”“可以多个”“唯一”。
- 补关系模式时,先抄题干明确属性,再查联系归并。
- 写主键外键时,分别标出“唯一标识”和“参照谁”。
- 规范化题按“存在问题 -> 依赖原因 -> 分解方案”三段作答。
例题
自查要点
- 为什么数据库设计题不重点考物理设计?
- 补 E-R 图和补关系模式为什么是稳定得分区?
- “结合题干”具体意味着哪些信息可以写、哪些信息不能写?
- 如果题干没有直接给出某个属性,什么时候还可能需要补它?