0
0
0

第2章精讲:数据模型与E-R图

2026-10-19
文章摘要
|

第 2 章:数据模型与 E-R 图精讲

数据模型是数据库的"设计语言"。这一章学完,你要能拿一张白纸,把一个业务场景(如学生选课)画成标准的 E-R 图。这是第 7 章数据库设计的核心技能,也是考试综合题的固定考点。

一、什么是数据模型

数据模型是对现实世界数据特征的抽象。按用途分两类:

  • 概念模型(信息模型):面向用户,按用户观点对数据建模,典型代表是 E-R 模型——数据库设计的第一步用它;
  • 逻辑模型(基本数据模型):面向机器/DBMS,典型代表:层次模型、网状模型、关系模型(当前主流)、面向对象模型。

数据模型三要素(必须一字不差记住):

  1. 数据结构:描述系统的静态特性(对象及其联系);
  2. 数据操作:描述系统的动态特性(增删改查等操作及规则);
  3. 数据的约束条件:完整性规则的集合,保证数据正确、有效、相容。

二、概念模型的世界:从现实到信息

把现实世界搬进数据库,要经过两级抽象:

现实世界 → 信息世界(概念模型)→ 机器世界(数据模型)

信息世界的基本概念:

  • 实体(Entity):客观存在并可相互区别的事物。可以是具体的人、物(一个学生、一本书),也可以是抽象的事件(一次选课、一笔订单);
  • 属性(Attribute):实体所具有的某一特性。学生实体有学号、姓名、性别、年龄等属性;
  • 码(Key):唯一标识实体的属性集。学号是学生实体的码;
  • 域(Domain):属性的取值范围。性别的域 = {男, 女};
  • 实体型:用实体名及其属性名集合描述同类实体,如"学生(学号,姓名,性别)";
  • 实体集:同型实体的集合,如全体学生。

三、E-R 图:画法与规范

E-R 图(实体-联系图)三个基本图形元素:

  • 矩形 —— 实体(框内写实体名);
  • 椭圆 —— 属性(用线连到所属实体,主码属性常加下划线);
  • 菱形 —— 联系(框内写联系名,用线连接相关实体,并在连线旁标注联系类型 1:1 / 1:n / m:n)。

例:学生选课系统

学生 ——< m >—— 选修 ——< n >—— 课程
│学号(主码)        │成绩          │课程号(主码)
│姓名              │              │课程名
│性别              │              │学分

注意"选修"是 m:n 联系,它自己还可以有属性(成绩)——成绩既不属于学生也不属于课程,必须挂在联系上。

四、联系类型判定:三个方向问"几个"

给出场景,判断联系类型的方法:从 A、B 两个方向各问一次"一个 A 对应几个 B?一个 B 对应几个 A?"

场景 一个A对几个B 一个B对几个A 联系类型
班级—班长 一个班只有 1 名 一名班长只属于 1 个班 1:1
部门—职工 一个部门多名职工 一名职工只属于 1 个部门 1:n
学生—课程 一个学生选多门课 一门课被多个学生选 m:n
借书—读者 一个读者借多本 一本书同时只借给 1 人 1:n

常见易错:有的场景看似 m:n,实则是 1:n,要结合业务规则判断(如"一本书同一时间只能借给一人")。

五、三种逻辑数据模型概览(为第 3 章铺垫)

  1. 层次模型:树形结构,有且仅有一个根结点,父子一对多;缺点:只能表达 1:n,m:n 难处理,且必须知道存取路径;
  2. 网状模型:有向图结构,允许结点有多个双亲;比层次灵活但结构复杂,用户仍需了解存取路径;
  3. 关系模型:用二维表表示实体及实体间联系,"关系"即规范化二维表。用户不需要知道物理存取路径,是当前最主流的模型——SQL 语言就建立在它之上。

关系模型的优点(简答):建立在严格数学概念基础上;数据结构简单清晰(就是表);存取路径对用户透明,数据独立性、安全性更好。

六、动手练习

  1. 把"图书—读者—借阅"画成 E-R 图(提示:借阅是 m:n 联系,带属性"借出日期、应还日期");
  2. 判断并标注下列联系类型:学生—宿舍床位、医生—病人—处方、教师—课程。

下一篇进入第 3 章:关系模型与关系代数。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论

欢迎来到我的博客!