下面把 ER(实体-联系图)相关的所有知识点系统整理成一份完整文档,从概念、符号、联系类型、转换规则、范式到考试题型和答题方法,层层递进,最后给出检查清单和背诵口诀。


ER 实体-联系图 · 系统整理

一、ER 图是什么

ER 图(Entity-Relationship Diagram,实体-联系图)是概念设计阶段的工具,用图形方式描述业务中的实体、属性和联系。它回答三个问题:业务中有哪些对象、每个对象有哪些特征、对象之间是什么关系。

ER 图是下午试题二(15分必答)的核心,通常与“E-R 图转关系模式、判断主键外键、判断范式”结合考查。考试中很少要求从零画完整 ER 图,更多是补充缺失的联系或属性,然后把图转换成关系模式。


二、ER 图的三种基本元素

ER 图只有三种基本符号,形状必须标准,命名和标注规则必须遵守。

元素标准图形内部写什么命名规则连线方式
实体封闭矩形实体名称名词(客户、订单、学生、课程)—
属性椭圆属性名称名词(学号、姓名、成绩)用无向边(不带箭头)连到所属实体或联系
联系菱形联系名称动词(选修、预订、属于)用无向边连到相关实体,连线旁标联系类型

各元素详解

实体

  • 业务中需要长期管理的对象,用封闭矩形表示。
  • 命名用名词,如“客户”“订单”“商品”“学生”“课程”。
  • 矩形四边全封,与 DFD 的外部实体形状相同,但语义不同:ER 的实体是业务对象,DFD 的外部实体是系统边界之外的数据源点。

属性

  • 描述实体或联系的特征,用椭圆表示。
  • 用无向边(不带箭头的实线)连接到所属实体或联系。
  • 主键标注:能唯一标识实体的属性(主键),在椭圆内属性名下方画一条实线下划线。例如“学号”加下划线表示它是学生实体的主键。
  • 外键标注:通常用虚下划线标注(下午题关系模式填空时常用实下划线标主键)。
  • 属性连线不能带箭头,带箭头是高频错误。

联系

  • 表示实体之间的业务关联,用菱形表示。
  • 命名用动词或动词短语,如“选修”“预订”“属于”“供应”。
  • 用无向边分别连接到相关实体。
  • 联系类型必须标在连线旁(不是写在菱形里),用 1:1、1:n、m:n 表示。

三、三种联系类型及画法

1:1(一对一)

  • 标注方式:菱形两侧连线旁都标 1(或 1:1)。
  • 示例:班级与班长——一个班只有一个班长,一个班长只在一个班。
  • 画法:班级 —1— ◇属于◇ —1— 班长

1:n(一对多)

  • 标注方式:连接到“1端”实体的线旁标 1,连接到“多端”实体的线旁标 n 或 m。
  • 示例:部门与员工——一个部门有多名员工,一名员工只属于一个部门。部门旁标 1,员工旁标 n。
  • 画法:部门 —1— ◇拥有◇ —n— 员工
  • 注意:“1”端和“n”端不能反,“1”在少的一端,“n”在多的一端。

m:n(多对多)

  • 标注方式:菱形两侧连线旁分别标 m 和 n。
  • 示例:学生与课程——一个学生选多门课,一门课被多个学生选。学生旁标 m,课程旁标 n。
  • 画法:学生 —m— ◇选修◇ —n— 课程

联系类型标注的三个关键

  1. 标在连线旁,不是写在菱形里面。
  2. 不用箭头,ER 图用无向边加数字标注,不用箭头表示方向。
  3. 两端都要标,不能只标一端。

四、联系自身的属性(高频丢分点)

属性不只能属于实体,联系本身也可以有属性。

  • 示例:“学生”与“课程”的“选修”联系,属性“成绩”描述的是“某个学生选修某门课程”这件事,应画一个椭圆连接到菱形上,而不是连到学生或课程实体上。
  • 判断方法:题干中出现“数量、日期、成绩、时间、金额”这类描述关系状态的词,基本就是联系属性。
  • 经典错误:把“成绩”画成学生或课程的属性,而不是选修联系的属性。

五、E-R 图转关系模式(必背规则)

这是下午题第二题的核心得分点,三种联系类型的转换规则必须条件反射。

联系类型转换规则示例
1:1任一方主键放入另一方作外键(或两表合并)班级(班级号,班级名,班长学号);班长(学号,姓名)
1:n1端主键放入n端作外键部门(部门号,部门名);员工(员工号,姓名,部门号)
m:n必须单独建一张联系表,字段 = 双方主键 + 联系自身属性;主键 = 双方主键的组合,两主键各自也是外键学生(学号,姓名);课程(课程号,课程名);选修(学号,课程号,成绩)

转换规则详解

1:1 转换

  • 两种做法:把一方主键放进另一方作外键,或两表合并。
  • 考试中通常选择“把一方主键放入另一方”,具体放哪一方看题干语义(通常把可选性低的一方主键放入另一方)。

1:n 转换

  • 1端主键放入n端作外键,这是唯一正确方向。
  • 例如部门与员工:员工表里加“部门号”作外键,而不是部门表里加“员工号”。
  • 方向搞反是高频错误。

m:n 转换

  • 必须单独建表,不能把一方主键塞进另一方。
  • 联系表的字段 = 双方主键 + 联系自身属性。
  • 联系表的主键 = 双方主键的组合。
  • 双方主键在联系表中各自也是外键,分别参照两个实体表。
  • 示例:学生选课,单独建“选修(学号,课程号,成绩)”,主键是(学号,课程号),学号和课程号各自是外键。

主键与外键判定

主键判定:

  • 题干出现“唯一标识”“编号”“身份证号”的,基本是主键候选。
  • 订单表的主键通常是“订单编号”,而不是“客户编号 + 商品编号”的组合(除非题意明确订单号不唯一)。
  • m:n 联系表的主键是双方主键的组合。

外键判定:

  • 如果 A 表里出现了 B 表的主键,它就是外键。
  • m:n 联系表中,双方主键的组合是主键,同时各自也是外键,分别参照两个实体表。
  • 1:n 转换中,n 端表中的 1 端主键是外键。

答题格式:关系模式写成 表名(主键加下划线,外键用波浪线或文字说明),并在答案中明确写出“主键是XX,外键是XX,参照XX表”。


六、范式判定(送分题)

范式判定通常与关系模式转换结合考查,判断转换后的关系模式属于第几范式。

范式判定条件通俗理解
1NF属性不可再分每个格子只放一个值,不能放“多个电话”这种复合值
2NF消除非主属性对码的部分函数依赖联合主键中,某个非主属性不能只依赖主键的一部分
3NF消除非主属性对码的传递函数依赖非主属性不能经由另一个非主属性间接依赖主键

判定方法

  • 1NF:看有没有“多值属性”或“复合属性”,有就不满足1NF。
  • 2NF:先找主键。如果主键是联合主键(多个属性组合),看有没有非主属性只依赖其中一部分。有则不是2NF。
  • 3NF:看有没有“A→B,B→C”且B不是候选键的情况。有则是传递依赖,不是3NF。
  • 考试常见答案:转换后的关系模式通常能达到3NF;如果题干强调“存在传递依赖”,则答案是2NF。

范式一句话

1NF 列不可分;2NF 消除部分依赖;3NF 消除传递依赖。


七、考试题型与答题方法

题型一:补充 ER 图中的联系或属性

问法:“根据题干说明,补充ER图中缺失的联系”“指出某联系的类型”“补充某实体的属性”。

方法:

  • 读题干,找“A和B之间是什么关系”的描述,判断联系类型(1:1、1:n、m:n)。
  • 联系类型标在连线旁,两端都要标。
  • 如果题干说“某关系有某属性”(如“订单有订单日期”),把属性画成椭圆连到菱形上。

题型二:将 ER 图转换为关系模式

问法:“将ER图转换为关系模式”“补充关系模式中的空缺”“指出每个关系模式的主键和外键”。

方法:

  • 按“1:1、1:n、m:n”三种规则逐一转换。
  • 1:n 把1端主键放n端;m:n 单独建表,主键为组合。
  • 主键加下划线,外键明确写出参照关系。
  • 答案格式:表名(主键,属性1,属性2,外键),并注明主键和外键。

题型三:判断范式

问法:“该关系模式属于第几范式”“是否存在部分依赖/传递依赖”。

方法:

  • 先找主键,再看非主属性对主键的依赖关系。
  • 有部分依赖→1NF;有传递依赖→2NF;都没有→3NF。
  • 答题时写出判断依据,如“因为存在非主属性对联合主键的部分依赖,所以不是2NF”。

题型四:补充关系模式中的空缺

问法:“补充(a)(b)处的属性”“指出空缺处应填什么”。

方法:

  • 看关系模式的已有字段,缺的通常是外键或联系自身属性。
  • 如果缺的是外键,从相关实体表的主键中找。
  • 如果缺的是联系属性(如“成绩”“数量”),从题干描述中找。

答题规范

  • 关系模式写成 表名(属性1,属性2,……),主键加下划线。
  • 明确写出“主键是XX,外键是XX,参照XX表”。
  • 范式判定要写出依据(部分依赖/传递依赖)。
  • 用题干原词命名实体、属性和联系,不要自己发明名称。

八、高频易错点汇总

  1. 形状画错:实体画成椭圆、属性画成矩形、联系画成矩形。
  2. 联系类型漏标或标错位置:1:n 必须标在连线旁,且“1”端和“n”端不能反。
  3. 联系属性错挂实体:成绩、数量、日期这类描述“关系”的属性,必须挂到菱形上。
  4. 主键漏下划线:主键属性必须加实线下划线。
  5. 属性连线带箭头:属性与实体/联系之间用无向边,不要画箭头。
  6. 1:n 转换方向搞反:必须是1端主键放入n端,不能反过来。
  7. m:n 忘记单独建表:m:n 联系必须单独建一张表,不能把一方主键塞进另一方。
  8. m:n 建表后主键漏组合:联系表的主键必须是双方主键的组合,不能只用其中一方。
  9. 外键漏标或标错参照:外键必须明确参照哪个实体表。
  10. 范式判定只写结论不写依据:要写出“存在部分依赖/传递依赖”作为判断理由。
  11. 实体命名用动词:实体必须是名词(“订单”不是“下订单”)。
  12. 联系命名用名词:联系通常是动词(“选修”不是“选课关系”)。

九、ER 答题检查清单

答完 ER 题,按以下顺序自查:

第一步:形状

  • 实体是封闭矩形?
  • 属性是椭圆?
  • 联系是菱形?
  • 属性连线是无向边(不带箭头)?

第二步:标注

  • 联系类型(1:1、1:n、m:n)标在连线旁了吗?
  • 两端都标了吗?“1”端和“n”端没反吧?
  • 主键属性加下划线了吗?
  • 联系自身的属性挂到菱形上了吗?

第三步:转换

  • 1:n 是否把1端主键放进了n端?
  • m:n 是否单独建表了?
  • 联系表的主键是否是双方主键的组合?
  • 双方主键在联系表中是否都标了外键?
  • 每个关系模式的主键和外键都明确写出了吗?

第四步:范式

  • 先找主键,再看非主属性对主键的依赖。
  • 有部分依赖→1NF;有传递依赖→2NF;都没有→3NF。
  • 判断依据写出来了吗?

十、ER 背诵清单(直接背)

  1. 三种元素:实体(矩形)、属性(椭圆)、联系(菱形)。
  2. 命名规则:实体名词、属性名词、联系动词。
  3. 属性连线:无向边,不带箭头。
  4. 主键标注:属性名下方实线下划线。
  5. 联系类型:1:1、1:n、m:n,标在连线旁,两端都标,不用箭头。
  6. 联系属性:描述关系状态的属性(成绩、数量、日期)挂到菱形上。
  7. 1:1 转换:任一方主键放入另一方作外键(或合并)。
  8. 1:n 转换:1端主键放入n端作外键,方向不能反。
  9. m:n 转换:必须单独建表,字段=双方主键+联系属性,主键=双方主键组合,双方主键各自也是外键。
  10. 主键判定:题干“唯一标识”“编号”“身份证号”是主键候选。
  11. 外键判定:A表出现B表主键,它就是外键。
  12. 范式口诀:1NF列不可分;2NF消除部分依赖;3NF消除传递依赖。
  13. 答题格式:表名(主键加下划线,属性,外键),明确写出主键和外键参照关系。
  14. 范式答题:写出判断依据(部分依赖/传递依赖),不能只写结论。

十一、ER 速记口诀

实体矩形属性椭圆,联系菱形在中间;
联系类型标线旁,主键属性下划线。
联系属性挂菱形,m:n 单独建表记心间;
1:n 把1端主键放n端,主外键判定看编号。
1NF列不可分,2NF消部分,3NF消传递;
转换先找主键,再判依赖,最后写清参照关系。


十二、ER 与 DFD 的区分(防止混淆)

对比项ER 图DFD
用途概念设计,描述业务对象和关系结构化分析,描述数据流动和加工
矩形实体(业务对象)外部实体(系统边界之外的数据源点)
椭圆/圆属性加工(圆角矩形或圆)
菱形联系无
开口矩形/平行线无数据存储
连线无向边(不带箭头)带箭头的直线(数据流)
标注联系类型标线旁、主键下划线数据流用名词、加工用动宾

核心区分:ER 图的矩形是业务实体,DFD 的矩形是系统外部实体;ER 图连线不带箭头,DFD 数据流带箭头;ER 图有菱形联系,DFD 没有菱形。


把以上内容按“符号→联系类型→转换规则→范式→题型→易错点”的顺序过一遍,再拿历年真题的数据库设计题练手,重点练“m:n 单独建表”和“1:n 方向不能反”,这两条是 ER 题最高频的采分点和丢分点。