实体关系图 (ERD) 指南

2023-10-29

在本指南中了解有关实体关系图 (ERD)、它们的用途、如何理解它们、如何创建它们等的所有信息。

实体关系图 (ERD) 是一种图表,可让您查看不同实体(例如人员、客户或其他对象)在应用程序或数据库中如何相互关联。

巴克 ERD 符号

它们是在设计新系统时创建的,以便开发团队可以了解如何构建数据库。它们也可以在现有系统上创建,以帮助团队了解系统的工作方式并查找和解决任何问题。

实体关系图使用一组特定的符号(例如形状和箭头)来描述系统和数据库。

这是 ERD 的示例:

College | Entity Relationship Diagram Template

ERD 的组成部分

实体关系图由许多不同的组件组成:

  • 实体 (Entity)
  • 关系 (Relationship)
  • 属性 (Attribute)

实体

实体是可以存储有关它的数据的事物。它可以是物理对象(例如汽车、人)、概念(例如地址)或事件(例如学生注册课程)。它们代表名词。

它们通常表示为 ERD 上的矩形,矩形内带有实体名称。

实体也可以是强实体或弱实体。有什么不同?

强实体具有标识符(主键)并且不依赖于任何其他实体以使其存在。例如,学生可能是一个强大的实体,因为它可以有一个主键并且不依赖于任何其他实体来存在。

弱实体是依赖于强实体存在的实体。这意味着它有另一个实体的外键。例如,学生的注册可能是一个弱实体,因为没有学生就不可能存在注册。

关系

ERD 中的关系定义了两个实体如何相互关联。当谈到数据库或一组实体时,它们可以从动词派生。

ERD 中的关系表示为两个实体之间的线,并且通常在线上有一个标签来进一步描述关系(例如“注册”、“注册”、“完成”)。

ERD 上表示了几种类型的关系:

  • 一对一:实体的一条记录与实体的另一条记录直接相关
  • 一对多:一个实体的一个记录与另一个实体的一个或多个记录相关。
  • 多对多:一个实体的多条记录可以与另一实体的多条记录相关。

属性

属性是实体的属性或可用于描述实体的东西。它们通常表示为椭圆形,或实体内的条目。

ERD 上表示了几种不同类型的属性:

  • 简单:不能拆分为其他属性的属性,例如名字。
  • 复合:可以拆分为其他属性的属性,例如将姓名拆分为名字、中间名和姓氏。
  • 派生:从另一个属性计算或确定的属性,例如从创建日期计算的记录年龄。

属性也可以是单值或多值:

  • 单值:只捕获一次的属性
  • 多值:可以为一个实体多次捕获的属性,例如多个电话号码。

什么是基数 (Cardinality)?

基数表示存在于两个实体之间的关系中的实体的实例数。这通常表示为数字,但也可以是符号,具体取决于所使用的图表样式。常见的基数值是零、一或多。

我们将在本指南后面看到一些基数示例。

自然语言 (Natural Language)

当我们创建 ERD 时,我们通常会知道我们想要捕捉什么。这通常可以用文字或“自然语言”来表达。

一些例子是:

  • “记录学生,他们注册的课程,以及教授课程的老师”
  • “捕获客户订单、客户详细信息以及订单发送地点”
  • “捕获患者数据及其进行的操作”

这些句子包括几种不同类型的单词,可用作 ERD 的起点。它们以几种不同的方式表示:

  • 名词:“东西”,如学生或顾客。表示为一个实体。
  • 动词:动作,例如注册或发送。表示为两个实体之间的关系。
  • 形容词:描述词,如住宅或高级。表示为实体的属性。

这可以帮助您将需要绘制的图表的描述转换为实际图表。

符号和符号

创建 ERD 时,可以很容易地在它们之间创建框和线。但是,就像软件开发中的许多事情一样,有几种不同的方法和标准可用。对于 ERD,有多种符号标准,用于定义所使用的符号。

Chen

以下是与 Chen 符号样式一起使用的符号示例。

陈记法

这是一个使用 Chen 符号的 ERD 示例:

Chen 符号示例 ERD

乌鸦脚 (Crow's Foot)

这是用于乌鸦脚符号样式的符号示例。这是您在 Database Star 上看到最多的样式,因为它是我最熟悉的样式。它被称为“乌鸦的脚”,因为它象征着许多关系,看起来就像三爪乌鸦的脚。

乌鸦脚

这是一个使用 Crow's Foot 符号的 ERD 示例:

鱼尾纹的例子

巴赫曼 (Bachman)

下面是与巴赫曼符号风格一起使用的符号示例。

巴赫曼ERD

下面是一个使用 Bachman 符号的 ERD 示例:

Bachman 示例 ERD

IDEF1X

下面是用于 IDEF1X 符号样式的符号示例。

IDE1FX 符号

这是使用 IDEF1X 表示法的示例 ERD:

IDE1FX 示例 ERD

巴克 (Baker)

下面是与 Barker 符号样式一起使用的符号示例。

巴克 ERD 符号

下面是一个使用 Bachman 符号的 ERD 示例:

巴克示例 ERD

概念的 (Conceptual)、逻辑的 (Logical)、物理的 (Physical)

可以在三个不同的层次上绘制实体关系图:概念、逻辑或物理。

这些级别中的每一个都有不同的详细级别,用于不同的目的。

让我们看一些例子。

概念数据模型 (Conceptual Model)

概念数据模型显示系统中存在的业务对象以及它们如何相互关联。

它定义了存在的实体,这些实体不一定是表。对于这种类型的数据模型,对表格的思考过于详细。

此处显示了概念数据模型的示例。它显示了学生、课程以及它们之间的关系。

概念性ERD

逻辑数据模型 (Logical Model)

逻辑模型是概念数据模型的更详细版本。属性被添加到每个实体,并且可以添加更多实体来表示区域以在系统中捕获数据。

下面是作为逻辑数据模型创建的学生和课程数据模型的示例。

逻辑ERD

物理数据模型 (Physical Model)

物理数据模型是这个过程中最详细的数据模型。它定义了一组表和列以及它们如何相互关联。它包括主键和外键,以及每列的数据类型。

这些图表可以在数据建模工具中手动创建。它们通常也由 IDE 从现有数据库生成。

这是学生和课程物理数据模型的示例。

物理ERD

下表概述了概念、逻辑和物理模型之间的差异:

特征 概念性的 逻辑的 身体的
实体 是的 是的 是的
关系 是的 是的 是的
属性 是的 是的
属性类型 是的
钥匙 是的

如何创建实体关系图

那么如何创建数据模型或实体关系图呢?

我在我的关系数据库设计课程中详细介绍了这一点,我也在我的数据库设计指南中进行了解释。

创建 ERD 的过程是:

  1. 写一两句关于您存储数据的内容
  2. 列出你存储的数据——名词/对象
  3. 列出要为每个对象存储的信息
  4. 描述每个对象之间的关系
  5. 画图

此处列出的步骤很简短,但该过程可能需要一些时间,具体取决于您对系统的熟悉程度以及您在创建实体关系图方面的经验。

创建实体关系图的技巧

以下是创建实体关系图的一些技巧:

  • 根据图表的目的确定正确的详细程度。开发团队通常会发现逻辑模型最有用,但其他人可能会发现概念模型更有价值。
  • 查看实体和属性以查看它们是否包含您要存储在系统中的所有内容。
  • 命名所有实体和属性。
  • 如果您有一个大图表,请考虑使用颜色来突出显示不同的部分,或将其分解为较小的图表。
  • 与您的命名和使用的符号保持一致。

结论

实体关系图是一个很好的工具,可以帮助您定义、理解和沟通系统的需求。它可以在高层(概念数据模型)、详细级别(物理数据模型)或中间级别(逻辑数据模型)进行建模。

有一系列的建模符号或符号类型,它们定义了如何捕获实体、属性和关系。

如果您想开始为您的系统创建ERD,可以考虑在纸上画一个,或者使用Visual Paradigm Online 工具。


Visual Paradigm 的在线 ERD 软件使数据库设计变得快速而直接。ERD 图表工具具有创建专业、行业标准 ER 模型所需的所有 ERD 符号和连接器。无论您想创建概念、逻辑或物理数据模型, 下面汇总了一些 ERD 示例以帮助您入门。

单击 ER 图进行查看,或单击编辑按钮开始编辑。

大学(ER图示例)

大学

在线相册(ER图示例)

在线相册

小额贷款系统(ER 图示例)

小额贷款系统

研究合作与交流(ER图示例)

科研合作交流

简单订单系统(ER 图示例)

简单的订单系统

MIS(ER图示例)

管理信息系统

考试安排(ER图示例)

考试安排

在线书店(ER图示例)

网上书店

最喜欢的球队统计(ER图示例)

最喜欢的球队统计

学生分数 - 二元关系(ER 图示例)

学生成绩 - 二元关系

学生分数 - 三元关系(ER 图示例)

学生成绩 - 三元关系

医院(ER图示例)

医院

汽车保险(ER 图示例)

汽车保险

UPS 系统(ER 图示例)

不间断电源系统

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体关系图 (ERD) 指南 的相关文章

  • NestJS 项目实战 需求分析(文末附视频)

    前言 一般常规的项目立项之初会有一份 MRD xff08 Market Requirements Document xff0c 市场需求文档 xff09 用来判断产品的必需性以及价值等 对于基础项目开发来说 xff0c 使用 MRD 可能有
  • 做好需求分析的4大关键认知

    探索如何正确的需求分析 本文详细介绍了4大关键点 帮助您明确用户与产品需求 深入挖掘用户动机 并为产品经理提供筛选需求的实用建议 一 什么是需求分析以及重要性 需求分析指的是在建立一个新的或改变一个现存的产品时 确定新产品的目的 范围 定义
  • 印刷业MES系统解决方案

    印刷业症结所在 1 不能实时准确的跟踪每一批订单的的生产进度 包括各工序的进度 2 印刷报价混乱 没有一个标准的报价参考 很难确保报价的准确性 3 不能有效控制产品加工的成本 没有电脑辅助计算 或者软件不具有计算工单成本的情况下 在开工单时
  • 设计模式之UML详解

    文章目录 1 什么是UML 2 UML图之类图 2 1 类 Class 2 2 接口 Interface 2 3 类图中关系 relation 1 泛化 继承 Generalization 2 实现 Realization 4 聚合 Agg
  • 旅游攻略APP外包开发功能

    旅游攻略APP是帮助旅行者计划和享受旅行的工具 下面列出了一些常见的旅游攻略APP功能 以及在上线这类应用时需要注意的问题 希望对大家有所帮助 北京木奇移动技术有限公司 专业的软件外包开发公司 欢迎交流合作 常见功能 目的地信息 提供有关各
  • 如何利用ProcessOn 做资产管理流程图

    资产管理 是一家公司最重要的管理活动 好的资产管理可以让资源最优化利用 实现资产价值的最大化 可以帮助组织管理和降低风险 同时当需要决策的时候 对资产数据进行分析和评估 也可以帮助做出更明智的决策 如优化资产配置 更新技术设备等 一 资产流
  • [架构之路-209]- 人人都是产品经理 - 产品经理的常见话题

    这是写给 1到3岁的产品经理 的书 适合刚入门的产品经理 产品规划师 需求分析师 以及对做产品感兴趣的学生 用户体验 市场运营 技术部门的朋友们 特别是互联网 软件行业 作为一名 4岁的产品经理 作者讲述了过去3年的经历与体会 与前辈们的书
  • 【事业单位笔试】zrzyb信息中心-社会招聘-笔试记录

    写在前面的话 虽然说本人在21年校招时有北京银行 农银金科 中信银行研发 京东发 邮储银行 中软 郑州铁路局等的offer 奈何个人原因还是选择了有北京户口的现在的工作单位 虽然只有两年 但也是时候准备考虑一下今后的发展了 感谢大家支持 我
  • [工业互联-10]:PLC入门简介

    目录 前言 PLC的用途 PLC的特点 PLC的分类 1 按PLC的控制规模分类 2 按PLC的控制性能分类 3 按PLC的结构分类 PLC的技术指标 1 硬件指标 2 软件指标 3 主要性能指标介绍 1 存储容量 2 输入 输出 I O
  • 有效需求分析培训梳理(一)

    根据徐锋老师的 有效需求分析 以及参加老师两天的现场培训整理 业务驱动的需求思想 1 澄清问题 a 原始需求是什么层次 方案级 问题级 b 想要解决谁的 什么问题 c 用户现在遇到这个问题会采用什么样的解决方案 d 这个问题中有需要进一步细
  • [架构之路-213]- 架构 - 架构设计过程快速概览与在线画图工具

    目录 第一步 业务系统 1 收集目标系统的用户需求 2 定义用例图 第二步 领域建模 1 业务流程定义 2 业务功能分解 3 非功能性架构 支撑架构 第三步 高层架构设计 1 应用展现层 2 业务功能层 3 框架支撑层 第四部 详解架构设计
  • 【软件工程基础复习整理】第四章需求分析(5)UML建模语言

    结构化方法 数据流建模 IDEF0功能建模 IDEF1X数据建模 数据和功能分开 面向对象方法 封装起来 UML建模语言 面向对象方法的统一建模语言 UML建模语言 结构化方法70年代高潮 面向对象方法80年代末90年代初高潮 多种面向对象
  • 如何做好一个BI项目的规划和需求定义?

    正所谓磨刀不误砍柴工 一个项目的启动 先得从金字塔顶端做好规划 摸清楚需求 背景 客观条件 可投入资源等 本文 BI项目详解的第一篇 先来谈谈BI项目的规划和需求定义 全文共3000字 读完需要 8分钟 一 如何启动一个BI项目 Q 一个项
  • 电子科技大学软件工程期末复习笔记(三):需求分析

    目录 前言 重点一览 需求分析 需求的定义 需求的特性 功能性需求与非功能性需求 需求分析的四个步骤 结构化需求分析方法 结构化需求分析建模的核心 围绕该核心建立的三种图 绘制数据流图 重点 绘制数据流图实例 面向对象分析 面向对象分析的三
  • [架构之路-208]- 人人都是产品经理 - 什么是产品经理?产品经理具体是做什么的?

    目录 一 什么是产品经理 产品经理具体做什么 二 产品经理的岗位职责 三 产品经理的职业规划 一 什么是产品经理 产品经理具体做什么 在外行人看来 产品经理常常被误认为是 经理 其实产品经理只是一个岗位名称 并不是真正意义上的 经理 或者说
  • 5 建立业务需求

    业务需求代表的是需求链的顶部 它们定义解决方案的愿景和实现该方案的项目范围 用户需求和功能需求和功能需求必须与业务需求建立的背景和目标保持一致 任何无助于项目达成业务目标的需求都不宜实现 如果项目没有清晰的定义和充分沟通方向 肯定会带来灾难
  • 2-软件生命周期模型

    软件生命周期模型 软件工程过程 工程项目的PDCA循环 戴明环 美国质量管理专家戴明博士针对工程项目的质量目标 将全面质量管理思想引入工程项目过程 提出了PDCA循环 也称为戴明环 即Plan 规划 Do 执行 Check 检查 Actio
  • 软工导论知识框架(二)结构化的需求分析

    本章节涉及很多重要图表的制作 如ER图 数据流图 状态转换图 数据字典的书写等 对初学者来说比较生僻 本贴只介绍基础的轮廓 后面会有单独的帖子详解各图表如何绘制 一 结构化的软件开发方法 结构化的分析 设计 实现 二 需求分析的重要性 1
  • 数据结构课程设计——客运订票系统

    目录 2需求分析 2 1系统功能 3总体设计 3 1功能模块图 4详细设计 4 1 详细的设计思路 车次设置 订票模块的功能 退票模块的功能 管理员模块的功能 4 2 算法流程图 5编码 5 1数据结构定义 1 乘客信息 2 候补队列乘客信
  • 「PAT乙级真题解析」Basic Level 1002 (问题分析+完整步骤+伪代码描述+提交通过代码)

    乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范 从小白开始逐步掌握用编程解决问题 PAT乙级BasicLevelPractice 1002 问题分析 方案一 模拟 题目直接给定了步骤 用模拟法将给定步骤写成代码逻辑是

随机推荐