「数据架构」什么是实体关系图?
什么是关系数据库数据库绝对是软件系统不可分割的⼀部分。在数据库⼯程中充分利⽤ER关系图,可以保证在数据库创建、管理和维护中产⽣⾼质量的数据库设计。ER模型还提供了⼀种通信⼿段。
今天我们将带你了解所有你需要知道的关于ER图解的知识。通过阅读ERD指南,您将获得关于ER图和数据库设计的基本知识和技能。你会学到ERD是什么,为什么,ERD符号,如何画ERD,等等,以及⼀些ERD的例⼦。
什么是ER图?
⾸先,什么是实体关系图?
实体关系图,⼜称ERD、ER图或ER模型,是⼀种⽤于数据库设计的结构图。ERD包含不同的符号和连接器,它们可视化两个重要的信息:系统范围内的主要实体,以及这些实体之间的相互关系。
这就是为什么它被称为“实体”“关系”图!
当我们在ERD中谈到实体时,我们通常指的是业务对象,例如⼈员/⾓⾊、有形的业务对象、⽆形的业务对象等。“关系”是关于这些实体如何在系统中相互关联的。
在典型的ER设计中,您可以到描述实体、实体属性和相互关系的符号,如圆⾓矩形和连接器。
什么时候画ER图?
什么时候画erd ?虽然ER模型主要⽤于在概念可视化和物理数据库设计⽅⾯设计关系数据库,但是在其他情况下,ER图也可以提供帮助。下⾯是⼀些典型的⽤例。
数据库设计
——根据变化的规模,直接在DBMS中更改数据库结构可能有风险。为了避免破坏⽣产数据库中的数据,仔细计划更改是很重要的。ERD是⼀个有⽤的⼯具。通过绘制ER图来可视化数据库设计思想,您有机会识别错误和设计缺陷,并在数据库中执⾏更改之前进⾏更正。
数据库调试
——调试数据库问题很有挑战性,特别是当数据库包含许多表时,需要编写复杂的SQL来获取所需的信息。通过使⽤ERD可视化数据库模式,您可以全⾯了解整个数据库模式。您可以轻松地定位实体、查看它们的属性并确定它们与其他实体之间的关系。所有这些都允许您分析现有数据库并更容易地发现数据库问题。
数据库创建和补丁
—Visual Paradigm是⼀个ERD⼯具,它⽀持⼀个数据库⽣成⼯具,可以通过ER图的⽅式⾃动创建和补丁数据库。因此,有了这个ER图⼯具,ER设计就不再是⼀个静态的图,⽽是反映物理数据库结构的⼀⾯镜⼦。
帮助收集需求
——通过绘制描述系统⾼级业务对象的概念性ERD来确定信息系统的需求。这样的初始模型还可以演化为物理数据库模型,以帮助创建关系数据库,或帮助创建流程图和数据流模式。ERD符号指南
ER图包含实体、属性和关系。在这⼀节中,我们将详细讨论ERD符号。
实体
ERD实体是⼀个系统内可定义的事物或概念,例如⼈/⾓⾊、对象、概念或事件。在确定实体时,将它们视为名词。在ER模型中,实体显⽰为圆⾓矩形,其名称位于顶部,其属性列在实体形状的主体中。下⾯的ERD⽰例显⽰了⼀个ER实体的⽰例。
实体属性
属性也称为列,是持有它的实体的属性或特征。
属性具有描述属性的名称和描述属性类型的类型,如字符串的varchar和整数的int。在为物理数据库开发绘制ERD时,务必确保使⽤⽬标RDBMS⽀持的类型。
下⾯的ER关系图⽰例显⽰了⼀个包含⼀些属性的实体。
主键
外键
外键也称为FK,是对表中主键的引⽤。它⽤于标识实体之间的关系。注意,外键不⼀定是唯⼀的。多条记录可以共享相同的值。下⾯的ER关系图⽰例显⽰了⼀个具有⼀些列的实体,其中外键⽤于引⽤另⼀个实体。
关系
两个实体之间的关系表⽰这两个实体以某种⽅式相互关联。例如,⼀个学⽣可能注册了⼀个课程。因此,实体学⽣与课程是相关的,⽽⼀种关系是连接他们之间的连接器。
基数
基数定义⼀个实体中可能出现的事件数,该实体与另⼀个实体中可能出现的事件数相关联。例
如,⼀个队有很多队员。当在ERD中出现时,实体团队和玩家以⼀对多的关系相互连接。
在ER图中,基数表⽰为连接器两端的鱼尾纹。三种常见的基本关系是⼀对⼀、⼀对多和多对多。
⼀对⼀的基数的例⼦
⼀对⼀关系主要⽤于将⼀个实体⼀分为⼆,以提供简明的信息并使其更易于理解。下图显⽰了⼀对⼀关系的⼀个⽰例。
⼀对多的基数的例⼦
⼀对多关系是指两个实体X和Y之间的关系,其中X的⼀个实例可能链接到Y的多个实例,⽽Y的⼀个实
例只链接到X的⼀个实例。
多对多的基数的例⼦
多对多关系是指两个实体X和Y之间的关系,其中X可以链接到Y的多个实例,反之亦然。下图显⽰了⼀个多对多关系的⽰例。注意,在物理ERD中,多对多关系被分割为⼀对⼀对多关系。在下⼀节中,您将了解什么是物理ERD。
概念、逻辑和物理数据模型
ER模型通常是在三个抽象层次上绘制的:
概念ERD /概念数据模型
逻辑ERD /逻辑数据模型
物理ERD /物理数据模型
虽然ER模型的所有三个级别都包含具有属性和关系的实体,但是它们在创建的⽬的和⽬标受众⽅⾯有所不同。
⼀般理解的三个数据模型是业务分析师使⽤概念模型和逻辑模型系统中的业务对象存在,⽽数据库设计师或数据库⼯程师阐述了概念和逻辑ER模型⽣成物理模型,提出了物理数据库结构准备创建数据库。下表显⽰了三种数据模型之间的差异。
概念模型vs逻辑模型vs数据模型:
ERD featuresConceptualLogicalPhysicalEntity YesYesYesRelationshipYesYesYesColumns YesYesColumn's Types OptionalYesPrimary Key YesForeign Key Yes
概念数据模型
概念性的ERD对系统中应该存在的业务对象及其之间的关系进⾏建模。开发了⼀个概念模型,通过识别所涉及的业务对象来呈现系统的总体情况。它定义了哪些实体存在,⽽不是哪些表。例如,“多对多”表可能存在于逻辑或物理数据模型中,但在概念数据模型中,它们只是作为没有基数的关系显⽰。
概念数据模型⽰例
注意:概念性ERD⽀持在建模两个实体之间的“⼀种”关系时使⽤泛化,例如,三⾓形是⼀种形状。这种⽤法类似于UML中的泛化。注意,只有概念性的ERD⽀持泛化。
逻辑数据模型
逻辑ERD是概念ERD的详细版本。通过显式定义每个实体中的列并引⼊操作实体和事务实体,可以开发逻辑ER模型来丰富概念模型。虽然逻辑数据模型仍然独⽴于将要创建数据库的实际数据库系统,但是如果它影响设计,您仍然可以考虑这⼀点。
逻辑数据模型⽰例
物理数据模型
物理ERD表⽰关系数据库的实际设计蓝图。物理数据模型通过为每个列分配类型、长度、可空值等来详细说明逻辑数据模型。由于物理ERD表⽰在特定DBMS中数据应该如何结构化和关联,因此考虑实际数据库系统的约定和限制是很重要的。确保DBMS⽀持列类型,并且在命名
实体和列时不使⽤保留字。
物理数据模型⽰例
如何绘制ER图?
如果你发现很难开始画ER图,不要担⼼。在这⼀节中,我们将为您提供⼀些ERD技巧。尝试按照下⾯的步骤来理解如何有效地绘制ER图。
确定你清楚绘制ERD的⽬的。您是否试图呈现涉及业务对象定义的整个系统体系结构?或者您正在开发⼀个为数据库创建准备好的ER模型吗?您必须清楚在适当的细节级别开发ER关系图的⽬的
确保您清楚要建模的范围。了解建模范围可以防⽌在设计中包含冗余实体和关系。
绘制范围中涉及的主要实体。
通过添加列来定义实体的属性。
仔细检查ERD,检查实体和列是否⾜够存储系统的数据。如果没有,则考虑添加其他实体和列。通常,您可以在此步骤中标识⼀些事务、操作和事件实体。
考虑所有实体之间的关系,并使⽤适当的基数。不要担⼼是否存在孤⼉实体。虽然不常见,但却是合法的。
应⽤数据库规范化技术以减少数据冗余和提⾼数据完整性的⽅式重构实体。例如,制造商的详细信息最初可能存储在Product实体下。在规范化的过程中,您可能会发现详细信息会重复记录,然后您可以将其作为单独的实体制造商进⾏拆分,并使⽤⼀个外键在产品和制造商之间进⾏链接。
数据模型的例⼦
ERD例⼦-电影租赁系统
ERD⽰例-贷款系统
ERD的例⼦-⽹上商店
将ERD与数据流图结合使⽤
在系统分析和设计中,可以绘制数据流图来可视化系统过程中的信息流。在数据流图中,有⼀个称为数据存储的符号,它表⽰⼀个数据库表,该表提供系统所需的信息。
由于物理ER关系图提供了实际数据库的蓝图,所以ERD中的实体与DFD中的数据存储保持⼀致。您可
以通过表⽰系统内流动的信息结构来绘制ERD,作为对DFD的补充,或者相反,通过显⽰系统在运⾏时将如何使⽤数据来绘制DFD,以补充ERD。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论