ERD 什么是实体关系图?( 二 )


ERD 什么是实体关系图?

文章插图
 
外键外键也称为FK , 是对表中主键的引用 。它用于标识实体之间的关系 。注意 , 外键不一定是唯一的 。多条记录可以共享相同的值 。下面的ER关系图示例显示了一个具有一些列的实体 , 其中外键用于引用另一个实体 。
ERD 什么是实体关系图?

文章插图
 
关系两个实体之间的关系表示这两个实体以某种方式相互关联 。例如 , 一个学生可能注册了一个课程 。因此 , 实体学生与课程是相关的 , 而一种关系是连接他们之间的连接器 。
基数基数定义一个实体中可能出现的事件数 , 该实体与另一个实体中可能出现的事件数相关联 。例如 , 一个队有很多队员 。当在ERD中出现时 , 实体团队和玩家以一对多的关系相互连接 。
在ER图中 , 基数表示为连接器两端的鱼尾纹 。三种常见的基本关系是一对一、一对多和多对多 。
一对一的基数的例子一对一关系主要用于将一个实体一分为二 , 以提供简明的信息并使其更易于理解 。下图显示了一对一关系的一个示例 。
ERD 什么是实体关系图?

文章插图
 
一对多的基数的例子一对多关系是指两个实体X和Y之间的关系 , 其中X的一个实例可能链接到Y的多个实例 , 而Y的一个实例只链接到X的一个实例 。
ERD 什么是实体关系图?

文章插图
 
多对多的基数的例子多对多关系是指两个实体X和Y之间的关系 , 其中X可以链接到Y的多个实例 , 反之亦然 。下图显示了一个多对多关系的示例 。注意 , 在物理ERD中 , 多对多关系被分割为一对一对多关系 。在下一节中 , 您将了解什么是物理ERD 。
ERD 什么是实体关系图?

文章插图
 
概念、逻辑和物理数据模型ER模型通常是在三个抽象层次上绘制的:
  • 概念ERD /概念数据模型
  • 逻辑ERD /逻辑数据模型
  • 物理ERD /物理数据模型
虽然ER模型的所有三个级别都包含具有属性和关系的实体 , 但是它们在创建的目的和目标受众方面有所不同 。
一般理解的三个数据模型是业务分析师使用概念模型和逻辑模型系统中的业务对象存在,而数据库设计师或数据库工程师阐述了概念和逻辑ER模型生成物理模型,提出了物理数据库结构准备创建数据库 。下表显示了三种数据模型之间的差异 。
概念模型vs逻辑模型vs数据模型:
ERD featuresConceptualLogicalPhysicalEntity (Name)YesYesYesRelationshipYesYesYesColumns YesYesColumn's Types OptionalYesPrimary Key YesForeign Key Yes
 
概念数据模型概念性的ERD对系统中应该存在的业务对象及其之间的关系进行建模 。开发了一个概念模型 , 通过识别所涉及的业务对象来呈现系统的总体情况 。它定义了哪些实体存在 , 而不是哪些表 。例如 , “多对多”表可能存在于逻辑或物理数据模型中 , 但在概念数据模型中 , 它们只是作为没有基数的关系显示 。
【ERD 什么是实体关系图?】概念数据模型示例
ERD 什么是实体关系图?

文章插图
 
注意:概念性ERD支持在建模两个实体之间的“一种”关系时使用泛化 , 例如 , 三角形是一种形状 。这种用法类似于UML中的泛化 。注意 , 只有概念性的ERD支持泛化 。
逻辑数据模型逻辑ERD是概念ERD的详细版本 。通过显式定义每个实体中的列并引入操作实体和事务实体 , 可以开发逻辑ER模型来丰富概念模型 。虽然逻辑数据模型仍然独立于将要创建数据库的实际数据库系统 , 但是如果它影响设计 , 您仍然可以考虑这一点 。
逻辑数据模型示例
ERD 什么是实体关系图?

文章插图
 
物理数据模型物理ERD表示关系数据库的实际设计蓝图 。物理数据模型通过为每个列分配类型、长度、可空值等来详细说明逻辑数据模型 。由于物理ERD表示在特定DBMS中数据应该如何结构化和关联 , 因此考虑实际数据库系统的约定和限制是很重要的 。确保DBMS支持列类型 , 并且在命名实体和列时不使用保留字 。


推荐阅读