实体关系 (ER) 图是一种流程图,用于说明“实体”(如人、对象或概念)如何在系统中相互关联。ER 图最常用于设计或调试软件工程、商业信息系统、教育和研究领域的关系数据库。也称为 ERD 或 ER 模型,它们使用一组定义的符号,如矩形、菱形、椭圆形和连接线来描绘实体、关系及其属性的相互联系。它们反映了语法结构,实体作为名词,关系作为动词。
ER 图与数据结构图 (DSD) 相关,后者侧重于实体内元素的关系,而不是实体本身之间的关系。ER 图还经常与数据流图 (DFD) 结合使用,后者绘制流程或系统的信息流。
Peter Chen(又名Peter Pin-Shan Chen)目前是匹兹堡卡内基梅隆大学的教员,因在1970年代为数据库设计开发ER建模而受到赞誉。在麻省理工学院斯隆管理学院担任助理教授期间,他于1976年发表了一篇开创性的论文,题为“实体关系模型:迈向数据的统一视图”。
从更广泛的意义上讲,对事物相互联系的描述可以追溯到最不古希腊的亚里士多德、苏格拉底和柏拉图的作品。最近在19世纪和20世纪哲学家逻辑学家的著作中可以看到这一点,如查尔斯·桑德斯·皮尔斯(Charles Sanders Peirce)和戈特洛布·弗雷格(Gottlob Frege)。
到1960年代和1970年代,查尔斯·巴赫曼(上图)和A.P.G.布朗与陈的方法的亲密前辈合作。巴赫曼开发了一种数据结构图,以他的名字命名为巴赫曼图。布朗发表了关于现实世界系统建模的著作。詹姆斯·马丁增加了ERD的改进。Chen,Bachman,Brown,Martin等人的工作也为统一建模语言(UML)的发展做出了贡献,该语言广泛用于软件设计。
数据库设计:ER 图用于在逻辑和业务规则(在逻辑数据模型中)以及要实现的特定技术(在物理数据模型中)方面对关系数据库进行建模和设计。在软件工程中,ER 图通常是确定信息系统项目需求的第一步。它稍后还用于对一个或多个特定数据库进行建模。关系数据库具有等效的关系表,并且可以根据需要以这种方式表示。
数据库故障排除:ER 图用于分析现有数据库,以查找和解决逻辑或部署中的问题。绘制图表应该揭示出错的地方。
业务信息系统:这些关系图用于设计或分析业务流程中使用的关系数据库。任何使用涉及实体、操作和相互作用的现场数据的业务流程都可能从关系数据库中受益。它可以简化流程,更轻松地发现信息并改善结果。
业务流程再造:ER 图有助于分析业务流程重新设计中使用的数据库以及为新的数据库设置建模。
教育:数据库是当今存储关系信息以用于教育目的和以后检索的方法,因此 ER 图在规划这些数据结构方面很有价值。
研究:由于如此多的研究都集中在结构化数据上,因此ER图可以在建立有用的数据库来分析数据方面发挥关键作用。
ER 图由实体、关系和属性组成。它们还描绘了基数,它用数字来定义关系。以下是词汇表:
可定义的事物(例如人、对象、概念或事件),可以存储有关它的数据。将实体视为名词。示例:客户、学生、汽车或产品。通常显示为矩形。
实体类型:一组可定义的事物,例如学生或运动员,而实体将是特定的学生或运动员。其他示例:客户、汽车或产品。
实体集:与实体类型相同,但在特定时间点定义,例如第一天注册课程的学生。其他例子:上个月购买的客户,目前在佛罗里达州注册的汽车。相关术语是实例,其中特定的人或汽车将是实体集的实例。
实体类别:实体分为强、弱或关联。强实体可以仅由其自身的属性定义,而弱实体则不能。关联实体关联实体集中的实体(或元素)。
实体键:引用唯一定义实体集中的实体的属性。实体键可以是超级键、候选键或主键。超级键:一组属性(一个或多个),它们共同定义实体集中的实体。候选密钥:最小超级键,这意味着它具有尽可能少的属性数,仍然是超级键。一个实体集可以有多个候选键。主键:数据库设计者选择的用于唯一标识实体集的候选键。外键:标识实体之间的关系。
实体如何相互作用或相互关联。将关系视为动词。例如,指定的学生可能会注册课程。这两个实体将是学生和课程,所描述的关系是注册的行为,以这种方式连接两个实体。关系通常直接在连接线上显示为菱形或标签。
递归关系:同一实体多次参与关系。
实体的属性或特征。通常显示为椭圆形或圆形。
描述性属性:关系(相对于实体)的属性或特征。
属性类别:属性分为简单属性、复合属性、派生属性以及单值或多值属性。简单:表示属性值是原子的,不能进一步划分,例如电话号码。复合:子属性源于属性。派生:归因是计算或以其他方式派生自其他属性,例如出生日期的年龄。
多值:表示多个属性值,例如一个人的多个电话号码。
单值:只有一个属性值。这些类型可以组合,例如:简单单值属性或复合多值属性。
基数
定义两个实体或实体集之间关系的数值属性。三种主要的基本关系是一对一、一对多和多对多。一对一的例子是与一个邮寄地址关联的一个学生。一对多示例(或多对一,取决于关系方向):一个学生注册多个课程,但所有这些课程都有一行返回该学生。多对多示例:学生作为一个小组与多个教职员工相关联,而教职员工又与多个学生相关联。
基数视图:基数可以显示为横向或同侧,具体取决于符号的显示位置。
基数约束:适用于关系的最小或最大数量。
ER成分可以等同于词性,就像Peter Chen所做的那样。这显示了 ER 图与语法图的比较:
普通名词:实体类型。示例:学生。
专有名词:实体。示例:莎莉·史密斯。
动词:关系类型。示例:注册。(例如,在课程中,这将是另一种实体类型。
形容词:实体的属性。示例:大二。
副词:关系的属性。示例:数字方式。
数据库查询语言 ERROL 实际上模仿自然语言构造。ERROL基于重塑的关系代数(RRA),并与ER模型一起工作,捕获其语言方面。
有几种符号系统,它们相似,但在一些细节上有所不同。
以下是在每个系统中制作的 ERD 图的示例。
ER 模型和数据模型通常最多绘制三个详细级别:
概念数据模型:包含最少详细信息的最高级别视图。它的值是显示模型的整体范围并描绘系统体系结构。对于范围较小的系统,可能没有必要绘制。相反,请从逻辑模型开始。
逻辑数据模型:包含比概念模型更多的细节。现在定义了更详细的运营和交易实体。逻辑模型与实现它的技术无关。
物理数据模型:可以从每个逻辑模型开发一个或多个物理模型。物理模型必须显示足够的技术细节才能生成和实现实际数据库。
请注意,其他类型的图表(如数据流图)中也存在类似的详细信息和范围级别,但它与软件工程的三架构方法形成鲜明对比,后者对信息的划分略有不同。有时,工程师会使用其他层次结构分支ER图,为数据库设计添加必要的信息级别。例如,他们可以通过向上扩展超类和向下扩展子类来添加分组。
仅适用于关系数据:明白目的是展示关系。ER 图仅显示该关系结构。
不适用于非结构化数据:除非将数据清晰地划定为不同的字段、行或列,否则 ER 图的用途可能有限。半结构化数据也是如此,因为只有部分数据是有用的。
难以与现有数据库集成:由于体系结构不同,使用 ER 模型与现有数据库集成可能是一个挑战。
目的和范围:定义要分析或建模的内容的目的和范围。
实体:确定涉及的实体。准备就绪后,开始将它们绘制成矩形(或系统选择的形状)并将它们标记为名词。
关系:确定实体如何关联。在它们之间画线以表示关系并标记它们。有些实体可能不相关,这很好。在不同的符号系统中,关系可以用菱形、另一个矩形或直接在连接线的顶部标记。
属性:通过添加实体的关键属性来更详细地分层。属性通常显示为椭圆形。
基数:显示关系是 1-1、1 多还是多对多。
显示您的目的所需的详细程度。您可能需要绘制概念、逻辑或物理模型,具体取决于所需的细节。(有关这些级别的说明,请参阅上文。
注意冗余实体或关系。
如果要解决数据库问题,请注意关系中的漏洞或缺少的实体或属性。
确保标记了所有实体和关系。
您可以来回转换关系表和 ER 图,如果这有助于您实现目标。
确保 ER 图支持您需要存储的所有数据。
ER 图可能有不同的有效方法。只要它为其范围和目的提供必要的信息,它就很好。