【软考备考】 数据模型:E-R模型、关系模型详解

一、E-R模型(实体-联系模型)

E-R模型是一种用于描述现实世界概念结构 的图形化工具。它不关心计算机如何实现,只关注数据间的关系,是数据库设计人员进行概念结构设计的利器。

1. 核心三要素

E-R模型由三个基本元素构成:

  • 实体:客观存在并可以相互区别的事物。

    • 表示 :矩形框。

    • 举例:学生、课程、部门、订单。

  • 属性:实体所具有的某一特性。

    • 表示 :椭圆形。

    • 举例 :学生的学号 、姓名 ;课程的课程号 、课程名。

    • 键:

      • 主键:能唯一标识一个实体的属性集(如学号)。

      • 外键:...(外键更多在关系模型中讨论)。

  • 联系:实体与实体之间的关系。

    • 表示 :菱形框。

    • 举例 :学生 选修 课程。

2. 联系的度数(类型)

这是E-R模型的重点和考点,指参与联系的实体型的数目。

  1. 一对一联系

    • 定义 :对于实体集A中的每个实体,实体集B中至多有一个实体与之联系,反之亦然。

    • 表示:1:1

    • 举例:一个公司只有一个CEO,一个CEO只在一个公司任职。("任职"联系是1:1)

  2. 一对多联系

    • 定义 :对于实体集A中的每个实体,实体集B中可以有多个 实体与之联系;而对于B中的每个实体,A中至多有一个实体与之联系。

    • 表示:1:n

    • 举例:一个部门有多个员工,一个员工只属于一个部门。("属于"联系是1:n)

  3. 多对多联系

    • 定义 :对于实体集A中的每个实体,实体集B中可以有多个实体与之联系,反之亦然。

    • 表示:m:n

    • 举例:一个学生可以选修多门课程,一门课程可以被多个学生选修。("选修"联系是m:n)

3. E-R图示例

下图展示了一个简单的教学管理系统E-R图:

说明:

  • 实体:STUDENT, COURSE, DEPARTMENT。

  • 联系:Selects (m:n),Belongs_to (1:n)。

  • 每个实体都有自己的属性(主键已标出)。


二、关系模型

关系模型是数据库的逻辑实现模型。它将数据组织成一张二维表格(关系),我们现在使用的大多数数据库(如MySQL, Oracle)都是关系型数据库。

1. 核心概念
  • 关系 :对应一张二维表。

  • 元组 :表中的一行,也称为记录。

  • 属性 :表中的一列,也称为字段。

  • 主键 :能唯一标识一个元组的属性或属性组。

  • 外键 :一个关系R中的某个属性或属性组,它不是R的主键,但它是另一个关系S的主键。这个属性或属性组称为R的外键。用于建立表与表之间的联系。

2. 从E-R图向关系模型的转换

这是数据库设计的关键步骤,也是软考的核心考点。

  1. 实体的转换

    • 规则:一个实体转换为一个关系模式。

    • 实体的属性就是关系的属性,实体的主键就是关系的主键。

    • 举例:

      • STUDENT实体 -> 学生(学号, 姓名, ...) 关系模式。

      • COURSE实体 -> 课程(课程号, 课程名, ...) 关系模式。

  2. 联系的转换

    • 1:1 联系的转换

      • 可以在任意一端的关系中加入另一端关系的主键作为外键。

      • 举例 :公司(公司ID, 名称, ...) 和 CEO(CEO_ID, 姓名, ...)。可以在公司表中加入CEO_ID作为外键,或者在CEO表中加入公司ID作为外键。

    • 1:n 联系的转换

      • 在"n"端(多方)的关系中加入"1"端(一方)关系的主键作为外键。

      • 举例 :部门(部门号, 名称, ...) 和 员工(工号, 姓名, 部门号, ...)。在"员工"表中加入"部门号"作为外键。

    • m:n 联系的转换

      • 必须将"联系"也转换为一个独立的关系模式。

      • 新关系模式的属性: 包括与该联系相连的各实体集的主键,以及联系本身的属性(如果有)。

      • 新关系模式的主键: 由各实体集的主键组合而成。

      • 举例 :学生(学号, 姓名, ...) 和 课程(课程号, 课程名, ...) 之间的"选修"联系是m:n。

        • 需要转换为三个关系模式:

          • 学生(学号, 姓名, ...) 主键:学号

          • 课程(课程号, 课程名, ...) 主键:课程号

          • 选修(学号, 课程号, 成绩) 主键:(学号, 课程号),外键:学号 参照 学生表,课程号 参照 课程表。成绩是该联系本身的属性。


三、核心对比与联系

特性 E-R模型 关系模型
目的 概念模型,描述现实世界,与DBMS无关 逻辑模型,用于数据库实现
表示形式 图形化(矩形、菱形、椭圆) 二维表格
核心元素 实体、属性、联系 关系、元组、属性
焦点 数据间语义和联系 数据的结构和约束(主键、外键)
转换关系 设计基础,先有E-R图 实现结果,根据E-R图转换而来

关系 :数据库设计通常遵循 现实世界 -> E-R模型 -> 关系模型 -> 物理数据库 的流程。E-R模型是沟通现实世界与关系数据库的桥梁。


四、软考常见考点与例题

  1. 概念选择题

    • 题目 :在E-R模型中,表示实体之间联系的图形符号是( )。

      A. 矩形

      B. 椭圆形

      C. 菱形

      D. 三角形

    • 答案:C

  2. 联系类型判断题

    • 题目 :一个病房可以住多个病人,一个病人只能住在一个病房。病房与病人之间的联系是( )。

      A. 一对一

      B. 一对多

      C. 多对多

      D. 多对一

    • 答案:B ("一"方是病房,"多"方是病人)

  3. E-R图转关系模式题(综合大题)

    • 题目 :设有如下E-R图:实体"供应商"(属性:供应商编号,名称)、实体"项目"(属性:项目编号,预算)、联系"供应"(属性:供应量)。已知一个供应商可以为多个项目供应零件,一个项目可以由多个供应商供应零件。

      (1) 判断"供应"联系的类型。

      (2) 将该E-R图转换为关系模式集,并指出每个关系模式的主键和外键。

    • 解答 :

      (1) 多对多联系。

      (2) 转换后的关系模式为:

      * 供应商(供应商编号, 名称) 主键:供应商编号

      * 项目(项目编号, 预算) 主键:项目编号

      * 供应(供应商编号, 项目编号, 供应量) 主键:(供应商编号, 项目编号) ;外键:供应商编号 参照 供应商(供应商编号),项目编号 参照 项目(项目编号)。

相关推荐
视频技术分享1 小时前
远程会诊产品设计复盘:音视频架构拆解与四大避坑
架构·音视频
Flynn Liang2 小时前
Spring AI 上生产:限流熔断、密钥与成本治理、私有化/混合部署、降级与 Prompt 灰度架构全解
人工智能·spring·架构·高可用·springai·成本治理·生产架构
夜雪一千2 小时前
Qwen3.8-Flash-Next 详细介绍:Qwen4架构先行版,125B总参、6B激活的稀疏MoE多模态模型
架构
FPGA小迷弟3 小时前
FPGA 千兆以太网帧格式全解:从 IEEE 802.3 帧结构到 Verilog 收发实现
人工智能·5g·fpga开发·架构·硬件架构
Decay__4 小时前
15_MySQL 数据同步与迁移方案 —— 复制 / DataX / Canal / 异构同步(对标 Oracle GoldenGate)
运维·数据库·sql·mysql·架构
行走的陀螺仪5 小时前
Super-Agent 架构演进(下):解耦设计与 NestJS 工程落地
架构·大模型·agent
Decay__6 小时前
17_MySQL 监控体系构建 —— mysqld_exporter + Prometheus + Grafana 全栈实战
运维·数据库·sql·mysql·架构
阿文和她的Key6 小时前
算力零售化的四层架构:从 0.01 元月卡看 AI 服务的计量、履约与复购
人工智能·架构·零售
天远数科6 小时前
零信任架构实战:基于天远全能家政风险报告构建自动化即时到家保洁与短工抢单安全核验网关
运维·人工智能·架构·自动化
小园子的小菜6 小时前
Netty 核心组件 Channel、ChannelHandler 与简易 RPC 架构实战详解
网络协议·rpc·架构