数据库系统工程师 · ER图 · 关系模式

数据库 ER 图怎么转换成关系模式?

ER 图转换题最怕死背规则。老师讲这类题时,通常会先问一句:这个联系是一对一、一对多,还是多对多?联系类型判断对了,关系模式怎么拆就清楚很多。

数据库专题 软考题库编辑部 持续更新

先把实体变成表,再处理联系

一般来说,ER 图里的实体会转换成关系模式,也就是我们平时说的表。实体的属性通常成为表的字段,能唯一标识实体的属性成为主键。

真正容易出题的是联系。不同联系类型处理方式不一样,尤其是多对多联系,通常不能简单把一个外键塞进某一边,而要单独建立中间关系。

ER图元素关系模式处理常见提醒
实体转换为一个关系模式实体属性变成字段
主标识符通常作为主键主键不能重复也不能为空
1对多联系多的一方加外键外键指向一的一方主键
多对多联系建立中间关系中间表通常包含两边主键

多对多联系为什么要拆中间表

多对多的本质是两边都可能出现多个匹配对象。比如学生和课程,一个学生可以选多门课,一门课也可以被多个学生选。直接在学生表里放课程字段,或者在课程表里放学生字段,都会导致重复、扩展困难和更新异常。

中间表的价值,是把一次具体关联记录下来。选课表里可以放学生编号、课程编号,还可以放成绩、选课时间等联系本身的属性。

考试里常见的失分点

第一,把多对多误当成一对多,少建了中间表。第二,只写了两个外键,忘记说明它们共同构成中间表的重要标识。第三,忽略联系自身属性,比如成绩、数量、时间这类字段。

做题时建议先在题干里圈出“一个……多个……”这种描述。只要两边都是多个,多半就是多对多,要优先想到中间关系。

相关题目解析

下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。