精华内容
下载资源
问答
  • 实体关系图
    千次阅读
    2021-01-20 03:57:10

    解释 实体关系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-R模型最常见的运用是在数据库设计的分析阶段

    解释

    实体关系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,,从而描述静态数据结构的概念模式。E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-R模型最常见的运用是在数据库设计的分析阶段,也就是数据库设计者和数据库用户之间的沟通工具和桥梁。E-R模型的作用是建构一个概念数据模型,而概念数据模型正是数据库结构的表示法,而且這种表示法与数据库管理系统及数据模型都无关系。

    构成

    实体(Entity):

    它是关系型数据库的最基本抽像概念,用以描述真实世界的物件。

    用矩形表示 ,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。

    实体可细分为:

    强实体(strong entity):指不需要依附其他实体而存在的实体。用单边矩形表示。

    弱实体(weak entity):是指需要依附其他实体而存在的实体。 用双边矩形表示。

    属性(Attribute):

    用来描述实体的性质。

    用椭圆形表示 ,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。

    属性可分为:

    简单属性(simple attribute):已经无法再继续切割成其他有意义的单位。

    复合属性(composite attribute):代表未来该属性可以进一步作切割。如:地址属性是由市、县、乡、具体在址等各属性组成。

    衍生属性(derived attribute ):

    联系(Relationship):

    用來表示一個实体与另一个实体关系的方式。

    用菱形表示 ,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)就是指存在的三种关系(一对一,一对多,多对多)。 比如老师给学生授课存在授课关系,学生选课存在选课关系。

    一对一关系:

    一对多或多对一关系:

    29ae7c5e1de85ae20ab8bf67ed024eb1.png

    多对多关系:

    具体实体如下:

    c48dc9a40575e0d42cdcf73bf2474267.png

    f68f2add0b68e4f9810432fce46917b7.png

    相关标签:实体 关系

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    更多相关内容
  • 实体关系图 (ERD) 指南

    千次阅读 2021-12-23 16:08:00
    在本指南中了解有关实体关系图 (ERD)、它们的用途、如何理解它们、如何创建它们等的所有信息。 实体关系图 (ERD) 是一种图表,可让您查看不同实体(例如人员、客户或其他对象)在应用程序或数据库中如何相互关联。 ...

    在本指南中了解有关实体关系图 (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 图示例)

    不间断电源系统

    展开全文
  • 什么是实体关系图(ERD)?

    千次阅读 2020-07-13 14:53:19
    什么是实体关系图(ERD)? 转载自:https://www.visual-paradigm.com/cn/guide/data-modeling/what-is-entity-relationship-diagram/ 数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图...

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

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

    数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图,便能让您生成高质量的数据库设计,用于数据库创建,管理和维护,也为人员间的交流提供了具意义的基础。

    在这里插入图片描述
    实体关系图(ERD)

    今天,我们将为你深入介绍 ER 图表。通过阅读本ERD指南,您将获得有关 ER 图和数据库设计的基本知识和技能。你会学到什么是 ERD,为什么要绘制 ERD,ERD 符号,如何绘制 ERD 等,以及一堆 ERD 示例。

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

    首先,什么是实体关系图?

    实体关系图也被称为 ERD、ER 图、实体联系模型、实体联系模式图或 ER 模型,是一种用于数据库设计的结构图。一幅 ERD 包含不同的符号和连接符,用于显示两个重要的資訊: 系统范围内的主要实体,以及这些实体之间的相互关系。

    这也就是为什么它被称为“实体”“关系”图 (ERD)啊!

    当我们谈论 ERD 中的实体时,我们经常提到诸如人员/角色(例如学生),有形商业对象(例如产品),无形商业对象(例如日志)等业务对象。“关系”則是这些实体在系统内的相互关联。
    在这里插入图片描述
    实体关系图表达了对象间的关系

    在典型的 ER 设计中,可以找到诸如圆角矩形和 (Rounded rectangle) 连接符(具有不同样式的末端)的符号来描述实体,它们的属性和相互关系。

    何时绘制ER图?

    那么,我们该在什么时候绘制ER图呢?虽然ER模型大多是为展示概念和设计物理数据库而绘制的,但也有别的用途的,以下是一些典型的用例。

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

    ERD 符号指南

    ER 图包含实体,属性和关系。在本节中,我们将详细介绍各 ERD 符号。

    实体
    ERD 实体是一个系统内可定义的事物或概念,如人/角色(例如学生),对象(例如发票),概念(例如简介)或事件(例如交易)(注:在 ERD 中,术语“实体”通常用来代替“表”,但它们是一样的)。在考慮实体时,嘗試把它们想成名词。在 ER 模型中,实体显示为圆角矩形,其名称位于上方,其属性列在实体形状的主体中。下面的 ERD 示例显示了 ER 实体的一个用例。
    在这里插入图片描述

    实体(实体关系图)

    实体属性
    也称为列 (Row),意思是持有它的实体的属性或特性。

    一个属性有一个描述属性的名称和一个描述属性种类的类型,例如代表字符串的 varchar,整数的 int。当为物理数据库开发绘制 ERD 时,得使用目标 RDBMS 支持的类型,以確保設計和物理数据库的一致性。

    下面的 ER 图示例显示了一個包含属性的实体。
    在这里插入图片描述

    实体属性(实体关系图)

    主键 (Primary Key)

    主键又称 PK,是一种特殊的实体属性,用于界定数据库表中的记录的独特性。一个表不能有两笔(或更多)拥有相同的主键属性值的记录,像是身份证明内的 ID 便是典型的例子,两个人即使性名相同,ID 是不会一样,若身份证明是个表,那ID 便是主键了。下面的 ERD 示例显示了拥有主键属性 “ID” 的实体 “Product”,以及数据库中表记录的预览。第三个记录是无效的,因为 ID ‘PDT-0002’ 的值已被另一个记录使用。
    在这里插入图片描述
    主键(实体关系图)

    外键 (Foreign Key)

    外键又称外来键和外部键,是对主键的引用,用于识别实体之间的关系。请注意,有别于主键,外键不必是唯一的,多个记录可以共享相同的值。下面的 ER Diagram 示例显示了一个包含一些列的实体,其中一个外键用于引用另一个实体。
    在这里插入图片描述
    外键(实体关系图)

    关系

    两个实体之间的关系表示这两个实体以某种方式相互关联。例如,学生可能参加课程。实体“学生”因此与“课程”相关,而这关系则在 ER 图中以连接线表达着。

    基数 (Cardinality)

    基数定义了一个实与另一个实体的关系里面,某方可能出现次数。例如,一个团队有许多球员,若把这关系呈现于 ERD 时,团队和球员之间是一对多的关系。

    在 ER 图中,基数表示为连接线端的乌鸦脚。三种常见的主要关系是一对一,一对多和多对多。
    一对一的基数的例子

    一对一关系主要用于将实体分成两部分,简洁地将资讯呈现,使读者更容易理解。下图显示了一对一关系的示例。
    在这里插入图片描述
    一对多的基数的例子

    一对多关系是指两个实体 X 和 Y 之间的关系,其中 X 的一个实例可以链接到Y的许多实例,而 Y 的一个实例仅链接到 X 的一个实例。下图显示了一对多关系的一个例子。

    在这里插入图片描述
    多对多的基数的例子

    多对多关系是指两个实体 X 和 Y 之间的关系,其中 X 可以被链接到 Y 的许多实例,反之亦然。下图显示了一个多对多关系的例子。请注意,多对多关系在物理 ERD 中被分成一对一对多的关系,你会在下一节中學到什麼是物理 ERD。

    在这里插入图片描述

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

    ER 模型通常被绘制成最多三个抽象层次上:

    概念 ERD / 概念数据模型
    逻辑 ERD / 逻辑数据模型
    物理 ERD / 物理数据模型
    虽然 ER 模型的三个层次都包含有属性和关系的实体,但它们的创建目的和目标受众都不同。

    一般而言,业务分析人员使用概念和逻辑模型来展示系统中存在的业务对象 (Business Object),而数据库设计人员或数据库工程师會為概念和逻辑ER模型加入更详细的資訊,進而生成反映物理模型结构的物理数据模型,好為创建数据库作準備。下表列出了三种数据模型之间的差异。

    概念模型 vs 逻辑模型 vs 数据模型:

    在这里插入图片描述

    概念数据模型

    概念性 ERD 表达了系统中该存在的业务对象以及它们之间的关系。建立概念模型,是为了通过识别所涉及的业务对象来呈现系统的宏观图像。概念数据模型定义了哪些实体存在,而非哪些表。例如,逻辑或物理数据模型中可能存在“多对多”表,但在概念数据模型下,它们只会表示为无基数的关系。

    概念数据模型示例
    在这里插入图片描述
    注意:概念性 ERD 支持使用泛化 (Generalization) 来表达两个实体之间的“一种”关系,例如三角形是一种形状,这个用法就像UML中的泛化一样。请注意只有概念 ERD 支持泛化。

    逻辑数据模型

    逻辑 ERD 是概念 ERD 的详细版本,通过明确定义每个实体中的列并引入操作和事务实体 (Transactional Entities)来让概念模型丰富起来。虽然逻辑数据模型仍流于高层次的设计(非为特定数据库系统而绘画),但如果会影响数据库的设计,在绘制逻辑数据模型时仍然可酌情调整。

    逻辑数据模型示例

    物理数据模型

    物理 ERD 是数据库的实际设计蓝图。物理数据模型通过为每列指定类型 (Type),长度 (Length),可为空 (Nullable) 等来详细阐述逻辑数据模型。由于物理 ERD 表達了如何在特定的 DBMS中构造和关联数据,因此在設計時要考虑到实际的数据库系统的需要和局限,倒如确保 DBMS 支持某列类型,并在命名实体和列中避用某些保留字 (Reserved Words)。

    物理数据模型示例
    在这里插入图片描述
    物理数据模型

    如何绘制 ER 图?

    如果您发现绘制 ER 图很难,请不要担心,在本节中我们将给你一些 ERD 提示。尝试按照以下步骤以了解如何有效地绘制 ER 图吧。

    确保你清楚知道绘制 ERD 的目的。您是否试图呈现涉及业务对象定义的整体系统架构?或者你正在开发一个准备用于数据库创建的 ER 模型?您必须明了开发 ER 图的目的,方可使用合适的模型层次(概念/逻辑和物理)来迎合您所需 (请阅读概念,逻辑和物理数据模型部分了解更详细信息)
    确保你清楚模型的范围。了解建模范围可以防止在设计中包含冗余实体和关系。
    画出范围内的主要实体。
    通过添加列来定义实体的属性。
    仔细检查 ERD 并检查实体和列是否足以存储系统的数据。如果不是,请考虑添加其他实体和列。通常,您可以在此步骤中确定一些事务 (Transactional),操作 (Operational) 和事件 (Event) 实体。
    考虑所有实体之间的关系,将它们联系起来,並寫上正確的基数(例如客户和订单之间的一对多关系)。如果有任何实体沒有被連接上,请不要担心,虽然這不常见,但它是合法的。
    使用数据库规范化技术 (Database Normalization)重构实体,以减少冗余数据和提高数据完整性。例如,“制造商”的資訊可能最初存储在“产品”实体下,透過规范化过程,您可能会发“制造商”的记录不断重复,您便可将其拆分为单独的“制造商”实体,并使用外键將“产品”和“制造商”連接起來。

    数据模型的例子

    ERD 示例 - 电影租赁系统
    在这里插入图片描述

    ERD 示例 - 贷款系统
    在这里插入图片描述
    ERD 示例 - 在线商店
    在这里插入图片描述

    使用ERD和数据流图(DFD)

    在系统分析和设计中,可以绘制数据流图(DFD) 来展现系统流程中的信息流。在数据流图中,有一个名为数据储存 (Data Store)的符号,它代表一个提供系统所需信息的数据库表。
    在这里插入图片描述
    使用 ERD 和数据流图(DFD)

    由于物理 ER 图提供了实际数据库的蓝图,因此这种 ERD 中的实体与 DFD 中的数据存储一致。您可以 ERD 作为 DFD 的补充,以表达信息的结构;或以 DFD 补充 ERD,以显示系统在运行时如何运用数据。

    在这里插入图片描述

    使用ERD和BPMN业务流程图(BPD)

    在业务流程映射中 (Business Process Mapping),可以绘制 BPMN 业务流程图 (BPD) 以展示业务工作流程。在业务流程图中,有一个称为数据对象(Data Object)的符号,表示在流程输入/输出的数据。
    在这里插入图片描述

    由于概念和逻辑数据模型提供了系统内业务对象的高级视图,因此此类 ERD 中的实体与 BPD 中的数据对象一致。您可绘制 ERD 作为 BPD 的补充,以表示业务工作流程所需的数据对象的结构;或以 BPD 補充 ERD,以显示在整个业务流程中如何運用数据。

    在这里插入图片描述

    选择一个ERD工具

    制作 ERD 数据模型需要时间和精力,而一个有用的数据库设计工具则能大大减省你花费的时间和精力。 Visual Paradigm 不仅为您提供 ERD 工具,还提供了一组可视化建模功能,助您更快、更轻松地绘制实体关系图。它支持当今市场上最流行的数据库管理系统,是数据库设计、数据库生成和实体关系图逆转的好帮手。

    在这里插入图片描述

    展开全文
  • uml之实体关系图

    万次阅读 2019-05-19 00:44:54
    什么是实体关系图(ERD)? 数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图,便能让您生成高质量的数据库设计,用于数据库创建,管理和维护,也为人员间的交流提供了具意义的基础。 ...

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

    数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图,便能让您生成高质量的数据库设计,用于数据库创建,管理和维护,也为人员间的交流提供了具意义的基础。

    实体关系图(ERD)

    今天,我们将为你深入介绍 ER 图表。通过阅读本ERD指南,您将获得有关 ER 图和数据库设计的基本知识和技能。你会学到什么是 ERD,为什么要绘制 ERD,ERD 符号,如何绘制 ERD 等,以及一堆 ERD 示例。

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

    首先,什么是实体关系图?

    实体关系图也被称为 ERD、ER 图、实体联系模型、实体联系模式图或 ER 模型,是一种用于数据库设计的结构图。一幅 ERD 包含不同的符号和连接符,用于显示两个重要的信息: 系统范围内的主要实体,以及这些实体之间的相互关系

    这也就是为什么它被称为“实体”“关系”图 (ERD)啊!

    当我们谈论 ERD 中的实体时,我们经常提到诸如人员/角色(例如学生),有形商业对象(例如产品),无形商业对象(例如日志)等业务对象。“关系”则是这些实体在系统内的相互关联。

    实体关系图表达了对象间的关系

    在典型的 ER 设计中,可以找到诸如圆角矩形和 (Rounded rectangle) 连接符(具有不同样式的末端)的符号来描述实体,它们的属性和相互关系。

    何时绘制ER图?

    那么,我们该在什么时候绘制ER图呢?虽然ER模型大多是为展示概念和设计物理数据库而绘制的,但也有别的用途的,以下是一些典型的用例。

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

    ERD 符号指南

    ER 图包含实体,属性和关系。在本节中,我们将详细介绍各 ERD 符号。

    实体

    ERD 实体是一个系统内可定义的事物或概念,如人/角色(例如学生),对象(例如发票),概念(例如简介)或事件(例如交易)(注:在 ERD 中,术语“实体”通常用来代替“表”,但它们是一样的)。在考慮实体时,嘗試把它们想成名词。在 ER 模型中,实体显示为圆角矩形,其名称位于上方,其属性列在实体形状的主体中。下面的 ERD 示例显示了 ER 实体的一个用例。

    实体(实体关系图)

    实体属性

    也称为列 (Row),意思是持有它的实体的属性或特性

    一个属性有一个描述属性的名称和一个描述属性种类的类型,例如代表字符串的 varchar,整数的 int。当为物理数据库开发绘制 ERD 时,得使用目标 RDBMS 支持的类型,以确保设计和物理数据库的一致性。

    下面的 ER 图示例显示了一个包含属性的实体。

    实体属性(实体关系图)

    主键 (Primary Key)

    主键又称 PK,是一种特殊的实体属性,用于界定数据库表中的记录的独特性。一个表不能有两笔(或更多)拥有相同的主键属性值的记录,像是身份证明内的 ID 便是典型的例子,两个人即使性名相同,ID 是不会一样,若身份证明是个表,那ID 便是主键了。下面的 ERD 示例显示了拥有主键属性 “ID” 的实体 “Product”,以及数据库中表记录的预览。第三个记录是无效的,因为 ID 'PDT-0002' 的值已被另一个记录使用。

    主键(实体关系图)

    外键 (Foreign Key)

    外键又称外来键和外部键,是对主键的引用,用于识别实体之间的关系。请注意,有别于主键,外键不必是唯一的,多个记录可以共享相同的值。下面的 ER Diagram 示例显示了一个包含一些列的实体,其中一个外键用于引用另一个实体。

    外键(实体关系图)

    关系

    两个实体之间的关系表示这两个实体以某种方式相互关联。例如,学生可能参加课程。实体“学生”因此与“课程”相关,而这关系则在 ER 图中以连接线表达着。

    基数 (Cardinality)

    基数定义了一个实与另一个实体的关系里面,某方可能出现次数。例如,一个团队有许多球员,若把这关系呈现于 ERD 时,团队和球员之间是一对多的关系。

    在 ER 图中,基数表示为连接线端的乌鸦脚。三种常见的主要关系是一对一,一对多和多对多。

    一对一的基数的例子

    一对一关系主要用于将实体分成两部分,简洁地将资讯呈现,使读者更容易理解。下图显示了一对一关系的示例。

    一对一的基数的例子

    一对多的基数的例子

    一对多关系是指两个实体 X 和 Y 之间的关系,其中 X 的一个实例可以链接到Y的许多实例,而 Y 的一个实例仅链接到 X 的一个实例。下图显示了一对多关系的一个例子。

    一对多的基数的例子

    多对多的基数的例子

    多对多关系是指两个实体 X 和 Y 之间的关系,其中 X 可以被链接到 Y 的许多实例,反之亦然。下图显示了一个多对多关系的例子。请注意,多对多关系在物理 ERD 中被分成一对一对多的关系,你会在下一节中学到什么是物理 ERD。

    多对多的基数的例子

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

    ER 模型通常被绘制成最多三个抽象层次上:

    • 概念 ERD / 概念数据模型
    • 逻辑 ERD / 逻辑数据模型
    • 物理 ERD / 物理数据模型

    虽然 ER 模型的三个层次都包含有属性和关系的实体,但它们的创建目的和目标受众都不同。

    一般而言,业务分析人员使用概念和逻辑模型来展示系统中存在的业务对象 (Business Object),而数据库设计人员或数据库工程师会为概念和逻辑ER模型加入更详细的咨询,进而生成反映物理模型结构的物理数据模型,好为创建数据库作准备。下表列出了三种数据模型之间的差异。

    概念模型 vs 逻辑模型 vs 数据模型:

    ERD功能概念逻辑物理
    实体(名称)
    关系
     
    列的类型 随意
    主键  
    外键  

    概念数据模型

    概念性 ERD 表达了系统中该存在的业务对象以及它们之间的关系。建立概念模型,是为了通过识别所涉及的业务对象来呈现系统的宏观图像。概念数据模型定义了哪些实体存在,而非哪些表。例如,逻辑或物理数据模型中可能存在“多对多”表,但在概念数据模型下,它们只会表示为无基数的关系。

    概念数据模型示例

    概念数据模型

    注意:概念性 ERD 支持使用泛化 (Generalization) 来表达两个实体之间的“一种”关系,例如三角形是一种形状,这个用法就像UML中的泛化一样。请注意只有概念 ERD 支持泛化。

    逻辑数据模型

    逻辑 ERD 是概念 ERD 的详细版本,通过明确定义每个实体中的列并引入操作和事务实体 (Transactional Entities)来让概念模型丰富起来。虽然逻辑数据模型仍流于高层次的设计(非为特定数据库系统而绘画),但如果会影响数据库的设计,在绘制逻辑数据模型时仍然可酌情调整。

    逻辑数据模型示例

    逻辑数据模型

    物理数据模型

    物理 ERD 是数据库的实际设计蓝图。物理数据模型通过为每列指定类型 (Type),长度 (Length),可为空 (Nullable) 等来详细阐述逻辑数据模型。由于物理 ERD 表達了如何在特定的 DBMS中构造和关联数据,因此在设计时要考虑到实际的数据库系统的需要和局限,倒如确保 DBMS 支持某列类型,并在命名实体和列中避用某些保留字 (Reserved Words)。

    物理数据模型示例

    物理数据模型

    如何绘制 ER 图?

    如果您发现绘制 ER 图很难,请不要担心,在本节中我们将给你一些 ERD 提示。尝试按照以下步骤以了解如何有效地绘制 ER 图吧。

    1. 确保你清楚知道绘制 ERD 的目的。您是否试图呈现涉及业务对象定义的整体系统架构?或者你正在开发一个准备用于数据库创建的 ER 模型?您必须明了开发 ER 图的目的,方可使用合适的模型层次(概念/逻辑和物理)来迎合您所需 (请阅读概念,逻辑和物理数据模型部分了解更详细信息)
    2. 确保你清楚模型的范围。了解建模范围可以防止在设计中包含冗余实体和关系。
    3. 画出范围内的主要实体。
    4. 通过添加列来定义实体的属性。
    5. 仔细检查 ERD 并检查实体和列是否足以存储系统的数据。如果不是,请考虑添加其他实体和列。通常,您可以在此步骤中确定一些事务 (Transactional),操作 (Operational) 和事件 (Event) 实体。
    6. 考虑所有实体之间的关系,将它们联系起来,並寫上正確的基数(例如客户和订单之间的一对多关系)。如果有任何实体沒有被連接上,请不要担心,虽然這不常见,但它是合法的。
    7. 使用数据库规范化技术 (Database Normalization)重构实体,以减少冗余数据和提高数据完整性。例如,“制造商”的資訊可能最初存储在“产品”实体下,透過规范化过程,您可能会发“制造商”的记录不断重复,您便可将其拆分为单独的“制造商”实体,并使用外键將“产品”和“制造商”連接起來。

    数据模型的例子

    ERD 示例 - 电影租赁系统

    ERD 示例 - 电影租赁系统

    ERD 示例 - 贷款系统

    ERD 示例 - 贷款系统

    ERD 示例 - 在线商店

    ERD 示例 - 在线商店

    使用ERD和数据流图(DFD)

    在系统分析和设计中,可以绘制数据流图(DFD) 来展现系统流程中的信息流。在数据流图中,有一个名为数据储存 (Data Store)的符号,它代表一个提供系统所需信息的数据库表。

    使用 ERD 和数据流图(DFD)

    由于物理 ER 图提供了实际数据库的蓝图,因此这种 ERD 中的实体与 DFD 中的数据存储一致。您可以 ERD 作为 DFD 的补充,以表达信息的结构;或以 DFD 补充 ERD,以显示系统在运行时如何运用数据。

    ER 图数据储存模型

    使用ERD和BPMN业务流程图(BPD)

    在业务流程映射中 (Business Process Mapping),可以绘制 BPMN 业务流程图 (BPD) 以展示业务工作流程。在业务流程图中,有一个称为数据对象(Data Object)的符号,表示在流程输入/输出的数据。

    使用 ERD 和 BPMN 业务流程图(BPD

    由于概念和逻辑数据模型提供了系统内业务对象的高级视图,因此此类 ERD 中的实体与 BPD 中的数据对象一致。您可绘制 ERD 作为 BPD 的补充,以表示业务工作流程所需的数据对象的结构;或以 BPD 補充 ERD,以显示在整个业务流程中如何运用数据。

    BPMN 数据对象(以 ER 图表达)

    选择一个ERD工具

    制作 ERD 数据模型需要时间和精力,而一个有用的数据库设计工具则能大大减省你花费的时间和精力。 Visual Paradigm 不仅为您提供 ERD 工具,还提供了一组可视化建模功能,助您更快、更轻松地绘制实体关系图。它支持当今市场上最流行的数据库管理系统,是数据库设计、数据库生成和实体关系图逆转的好帮手。

    支持广泛的 DBMS


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

    展开全文
  • 数据库:实体关系图(ER图)

    万次阅读 多人点赞 2020-11-08 10:07:49
    1,组成元素 元素 描述 表示形似 实体 客观存在并可以相互区别的事物 用矩形框,矩形框内写明实体名 属性 实体所具有的一个属性...一对一关系是指对于实体集A与实体集B,A中的每一个实体至多与B中
  • 通过此过程创建的图称为实体关系图,ER图或ERD。 一:图形表示的含义 实体以矩形表示, 属性以椭圆表示, 关系以菱形连接器表示。 二:图标介绍 在使用EA设计软件的ER图中,选择ERD和ERD-...
  • 如何画实体关系图-用实体关系图进行数据库建模
  • MySQL Workbench构建ER图(实体关系图)

    万次阅读 多人点赞 2019-07-06 00:16:50
    除了能管理MySQL数据库外,Workbench也可以构建ER(实体关系图),点击进入数据库模型构建模块: 构建ER图的模型来源有三种:数据库逆向、导入外部.sql文件和手动创建数据模型。 【数据库逆向】 点击菜单栏 ...
  • 实体关系E-R:实体关系图

    千次阅读 2019-10-23 20:08:58
    实体关系E-R:实体关系图 设计数据库的时候,需要使用E-R图来描述。实体关系E-R:实体关系图。 实体:可以理解成我们Java程序中的一个对象,在E-R图中使用矩形(长方形)表示。 针对一个实体中的属性,我们称为这个...
  • 数据库实体关系图(ERD)及其画法

    万次阅读 2020-10-10 16:00:39
    数据库绝对是软件系统不可分割的一部分。在数据库工程中充分利用ER关系图,可以保证在数据库创建、管理和维护中产生高质量的数据库设计。ER模型还提供了一种通信手段。
  • 实体关系图(Entity Relation Diagram,ERD)。用于数据库设计的结构图,描述系统内的实体以及实体之间的关系。 何时绘制ERD? 数据库设计 - 直接在数据库更改数据库结构会有风险, 为避免破坏数据库中的数据,需要...
  • 数据库 - 建模:实体关系图(ERD)

    万次阅读 2018-10-27 10:32:34
    数据库 - 建模:实体关系图(ERD) 草拟实体及其关系的常用方法。 我们来看一个公司数据库的例子   实体关系图 实体关系模型,也称为实体关系(ER)图,是实体(将成为您的表)及其相互关系的图形表示。 ...
  • 数据库设计 数据流图 实体关系图 数据库设计 数据流图 实体关系图
  • 如何用Visio画数据库实体关系图

    千次阅读 2018-11-06 02:50:34
    如何用Visio画数据库实体关系图
  • 有时候业务需要查看CRM实体实体之间的关系,但是会发现在解决方案里面查看会很慢,不能很清楚的展现出来,这时候我们可以使用SDK里面的一个解决方案,可以自动生成关系图。 首先打开我们的解决方案SDK\Sample...
  • 如何使用Visio做ERD(实体关系图)

    万次阅读 2016-08-17 17:21:47
    最近在做实体关系图,尝试了一些工具,发现VISIO比较合适,但是没有合适的教程,在网上找了一下,发现这篇文章写的非常好,地址如下: http://barney.gonzaga.edu/~chen/bmis441/oracle/Visio_Tutorial.pdf 这篇...
  • 如何画实体关系图

    千次阅读 2017-09-12 22:34:00
    我读了《构建之法》的235页有关于实体关系图,对如何画实体关系图感到迷惑。通过百度查询我了解到了一些资料,我觉得软件实体关系图和数据库的实体关系图差不多吧。以实体为主将实体用矩形圈出来,联系则用菱形圈...
  • ER实体关系图

    千次阅读 2020-07-29 09:25:37
    实体关系图(Entity Relationship Diagram)指表示实体、属性和关系的图形化表示方式,用来描述现实世界的概念模型,简称E-R图。 人员和请假单这两个实体使用矩阵表示 实体的属性使用椭圆形表示 实体与实体之间...
  • ER图(实体关系图)怎么画?

    万次阅读 多人点赞 2020-11-27 19:56:32
    E-R图又称实体关系图,是一种提供了实体,属性和联系的方法,用来描述现实世界的概念模型。通俗点讲就是,当我们理解了实际问题的需求之后,需要用一种方法来表示这种需求,概念模型就是用来描述这种需求。 比如...
  • 类图设计 实体关系图 转载于:https://www.cnblogs.com/luwei123/p/8706614.html
  • 数据库设计--实体关系图(ERD)

    万次阅读 多人点赞 2015-08-01 15:15:17
    实体关系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。 –百度百科 2、E-R的使用方法 E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来...
  • E-R图 实体,属性,关系图

    千次阅读 2020-07-03 18:18:07
    E-R图 实体,属性,关系图 在ER图中有如下四个成分: 矩形框:表示实体,在框中记入实体名。 菱形框:表示联系,在框中记入联系名。 椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其...
  • PowerDesinger:实体关系图->物理数据模型(关系表)->sql语句-数据库
  • MySql (四) ER实体关系映射

    千次阅读 2021-03-13 15:43:24
    ERMaster初步掌握数据库设计的方法实体关系映射什么是数据库的设计?数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种...
  • 实体-关系图转换为关系模型

    万次阅读 2019-04-25 16:54:19
      由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。 2.E-R关系模型的转换 2....
  • 什么是实体关系图(ERD)? 转

    千次阅读 2019-07-09 20:52:00
    数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER ,便能让您生成高质量的数据库设计,用于数据库创建,管理和维护,也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 475,977
精华内容 190,390
关键字:

实体关系图

友情链接: 61107G.zip