📄 一句话概括
E-R 图把实体、属性、关系画成一张图:实体画方框、属性画椭圆、关系画菱形——脑中的模型落在纸上,讨论、评审、交接才有共同语言。
📝 本节和前面几节的关系
5-5 挑实体、5-6 认关系,本节把两者画出来。E-R = Entity-Relationship(实体-联系)。下一节讲具体画法记号,本节先建立「三件套」的画面感。
一、三件套记号
┌────────┐ ◇──────◇ ┌────────┐
│ 学生 │ 菱形=关系 │ 课程 │
└────────┘ (选课) └────────┘
│ \属性画椭圆:姓名、学分… │
| 元素 | 记号 | 例 |
|---|---|---|
| 实体 | 矩形方框 | 学生、课程 |
| 属性 | 椭圆(连线到实体) | 姓名、学分;主键加下划线 |
| 关系 | 菱形(连两实体) | 选课、属于 |
关系菱形旁边标上 1 : n / m : n / 1 : 1——5-6 的三种形状在图上一目了然。
二、E-R 图给谁看
| 场景 | 价值 |
|---|---|
| 和用户评审 | 用户看不懂表结构,看得懂方框和菱形 |
| 团队交接 | 一张图胜过十页文档 |
| 自己检查 | 漏了实体、关系画错,图上立刻现形 |
三、学生-课程 E-R 图(ASCII 速写)
┌──────┐ 姓名(下划线学号) ┌──────┐
│ 学生 │ ───┬─ ┌─── │ 课程 │
└──────┘ │ ◇选课◇── m:n ─┘ └──────┘
○成绩 ○学分 ○课程名
(教材用标准图形;本课笔记用文字速写表达同样的结构。)
四、动手 Demo:把书评网站画成 E-R 图
三个实体(5-5 挑好的):用户(id 主键、昵称)、书(ISBN 主键、书名)、书评(评分、正文、时间)。
┌──────┐ 1 ◇撰写◇ n ┌──────┐ n ◇属于◇ 1 ┌──────┐
│ 用户 │────────────│────────│ 书评 │──────────│────│ 书 │
└──────┘ └──────┘ └──────┘
书评被画成了矩形而不是菱形——因为它是「有自己数据的关系」(5-6 口诀),多对多的中间表在 E-R 图里常升格为实体(弱实体)。
五、30 秒实验
把「学生-班级」关系画出来:班级方框、学生方框、中间菱形「属于」、旁边标 1:n,学生属性里画 class_id。画完对照 4-13 的外键 Demo——图和表一一对得上。
六、常见误区
- 「E-R 图就是表结构图」:不是;E-R 图是概念层(还不知道列类型、范式),表结构是物理层(5-9 讲层次)
- 「关系属性没地方放」:挂在菱形上;菱形若长出了很多属性,考虑升格成实体
自测三问
1. E-R 图三件套各用什么记号?(实体方框/属性椭圆/关系菱形) 2. E-R 图最大的用途?(给用户和团队一张共同语言图) 3. 书评在书评网站的 E-R 图里画成什么?(矩形实体——有自己数据的关系升格)- ☐ 下一节(5-8 E-R图绘制方法-E-R图的表现形式)
相关笔记
- 关系、一对多、多对多、一对一-思考数据之间的关系 —— 上一节:关系认清了
- E-R图绘制方法-E-R图的表现形式 —— 下一节:正式记号
- 🗄️ 数据库基础 · 索引 —— 全课路线图