什么是数据库的实体关系图(ERD)?

实体关系图(Entity Relation Diagram,ERD),用于数据库设计的结构图,描述系统内的实体以及实体之间的关系。

1 何时绘制ERD?

  1. 数据库设计 - 直接在数据库更改数据库结构会有风险, 为避免破坏数据库中的数据,需要仔细规划一切变更。通过绘制 ERD来展示数据库设计蓝图,可以轻松找出错误和识别设计缺陷,并在执行数据库更改之前作出修正。
  2. 数据库调试 - 调试数据库问题往往具挑战性,特别是当数据库包含许多表时,需要编写复杂的SQL来获取所需的信息。通过 ERD来展示数据库结构,可以全面地了解整个数据库的结构。可以轻松找到实体,查看其属性并确定与别的实体的关系,从而更轻松地找出数据库的问题。
  3. 数据库创建和修补 - 像 Visual Paradigm 这样的 ERD软件支持数据库生成工具,可以通过ER图来自动生成和修补数据库。使用这个 ER图工具,ER设计不再仅仅是一个静态图,而是一个真实反映物理数据库结构的镜像。
  4. 帮助收集需求 - 通过绘制 ERD来表达系统中的高级业务对象以用于确定系统的需求。这种初始模型也可以演化为物理数据库模型,用于创建关系数据库,或为创建流程图和数据流模型提供有力的参考。

2 ERD符号

ER图包含实体、属性和关系。
1. 实体
ERD 实体是一个系统内可定义的事物或概念,对应数据库中的表,如人/角色(例如学生),对象(例如发票),概念(例如简介)或事件(例如交易)。在 ER 模型中,实体用矩形表示,其名称位于上方,其属性列在实体形状的主体中,如下图所示。
什么是数据库的实体关系图(ERD)?_第1张图片
2. 实体属性
属性也称为列、字段。一个属性包括属性名、类型以及长度、是否可为空,以及主键、外键等标识。
主键(Primary Key,PK),是一种特殊的实体属性,用于界定数据库表中的记录的独特性,一个表只能拥有一个主键。

外键(Foreign Key,FK),是对主键的引用,用于识别实体之间的关系。一个表的外键可以有多个,且多个记录可以共享相同的外键值。下面的 ERD 示例展示了实体中的外键引用另一个实体。
什么是数据库的实体关系图(ERD)?_第2张图片
3. 关系
两个实体之间的关系包括1对1,1对多和多对多。
1对1:主要用于将实体分成两部分,简洁地将资讯呈现,使读者更容易理解。
在这里插入图片描述
1对多:X 的一个实例可以链接到Y的许多实例,而 Y 的一个实例仅链接到 X 的一个实例。
在这里插入图片描述
多对多:在设计数据库时,多对多关系通过一个操作的实体被分成两个一对多的关系,如下图学生与课程之间是多对多关系,通过增加一个“选课”操作实体,转变为两个一对多关系。
什么是数据库的实体关系图(ERD)?_第3张图片

3 概念,逻辑和物理数据模型

ER 模型通常被绘制成三个抽象层次上:概念ERD、逻辑ERD和物理ERD。虽然 ER 模型的三个层次都包含有属性和关系的实体,但它们的创建目的和目标受众都不同。
一般而言,业务分析人员使用概念和逻辑模型来展示系统中存在的业务对象,而数据库设计人员或数据库工程师设计更详细的物理数据模型,用于数据库的设计。下表列出了三种数据模型之间的差异。
什么是数据库的实体关系图(ERD)?_第4张图片
物理数据模型示例:
什么是数据库的实体关系图(ERD)?_第5张图片

4 设计ERD的步骤

  1. 明确绘制ERD 的目标。对涉及业务对象定义的整体系统架构深入理解。
  2. 清楚模型的范围。了解建模范围可以防止在设计中包含冗余实体和关系。
  3. 画出范围内的主要实体。
  4. 添加实体的属性。
  5. 仔细检查 ERD 的实体和列是否足以存储系统的数据。如果不是,考虑添加其他实体和列。通常可以在此步骤中确定一些事务 (Transactional),操作 (Operational) 和事件 (Event) 实体。
  6. 确定所有实体之间的关系,将它们联系起来。如果有实体沒有被连接,请不要担心,虽然不常见,但它是合法的。
  7. 使用数据库规范化技术 (如mysql数据库的范式)重构实体,以减少冗余数据和提高数据完整性。例如,“制造商”的相关属性可能最初存储在“产品”实体下,通过规范化过程,会发现“制造商”的记录不断重复,于是可将其拆分为单独的“制造商”实体,并使用外键將“产品”和“制造商”连接起來。

5 ERD示例

电影租赁系统
什么是数据库的实体关系图(ERD)?_第6张图片
贷款系统
什么是数据库的实体关系图(ERD)?_第7张图片
在线商店
什么是数据库的实体关系图(ERD)?_第8张图片

6 参考

https://www.visual-paradigm.com/cn/guide/data-modeling/what-is-entity-relationship-diagram/

你可能感兴趣的:(数据库)