实体-关系模型(ER模型)是对特定知识领域内相关事物的一种描述。基本的ER模型由对感兴趣的事物进行分类的实体类型,以及指定实体类型之间可能存在的关系的概念组成。
在软件工程中,ER模型常被用来表示业务需要记忆的内容,从而转化成一个抽象的数据模型。这个模型可以在关系数据库(通常是如此)中实现,定义了数据或信息结构。
Peter Chen开发了实体-关系建模,并在其1976年的论文中提出了一种新的观点,认为现实世界由实体和关系组成。这种观点的变体在之前就已经存在了。一些ER模型展示了由一般化-专门化关系连接的超实体和子类型实体。ER模型也可用于规范特定领域的本体。
使用Chen符号的MMORPG的实体关系图展示了复杂的实体和关系网络。
ER模型通常是系统分析的结果,用于定义和描述业务领域中哪些流程是重要的。它并没有定义业务流程,只是以图形形式表示业务数据模式。通常,这些图形以方框(代表实体)和线(代表实体之间的关联和依赖关系)的形式绘制。ER模型也可以用口头形式表达,例如描述建筑与内部公寓的关系,或一个人与他的职业、住址的关系。
实体不仅可以通过关系来描述,还可以通过附加的属性来描述。这些属性被称为“主键”,用于标识实体。创建用于表示实体、属性和关系图的图可以被称为实体-属性-关系图。
ER模型通常作为数据库实现的基础。在简单关系数据库实现中,表的每一行代表一个实体类型的一个实例,表中的每个字段代表一个属性类型。在关系数据库中,实体之间的关系通过将一个实体的主键作为指针或“外键”存储在另一个实体的表中来实现。
ER模型有不同级别的抽象,包括最高级别的概念ER模型、逻辑ER模型和物理ER模型。概念ER模型包含了最少的粒度细节,但建立了模型中内容的总体范围。逻辑ER模型则包含了更多细节,定义了操作和事务数据实体。而物理ER模型则是实例化为数据库的具体实现。
信息系统设计的第一个阶段在需求分析期间使用这些模型来描述信息需求或将要存储在数据库中的信息类型。数据建模技术可以用于描述任何领域的本体。在设计基于数据库的信息系统时,概念数据模型在后期被映逻辑数据模型,例如关系模型;这进一步在物理设计期间被映物理模型。
两个相关的实体和它们之间的关系可以通过图形清晰表示。实体是对领域复杂性的抽象,当我们谈论一个实体时,我们通常指的是现实世界的某个方面。
实体是物理上或逻辑上存在的事物。它可以是一个物理对象,如房子或汽车;一个事件,如房屋销售或汽车服务;或一个概念,如客户交易或订单。虽然“实体”是最常用的术语,但在陈的模型之后,我们应该区分实体和实体类型。实体类型是一个类别。严格地说,实体是给定实体类型的实例。
关系则用于捕获实体之间的关系,可以被视为动词,连接两个或多个名词。例如,所有者和拥有的关系、管理者和员工的关系、表演者和歌曲的关系等。
属性和主键是实体和关系的特征。例如,员工实体可能具有社会保险号(SSN)属性,而证明的关系可能具有日期属性。每个实体(除非它是弱实体)必须有一组最小的唯一标识属性,这被称为实体的主键。
在陈的原始论文中,他以婚姻关系为例,描述了关系及其作用,将关系中的参与者分为丈夫和妻子两个角色。这种表示法也适用于其他复杂的关纇。陈的术语和符号也被用于早期的思想中,与曼图表、巴克的符号等早期图表技术有渊源关系。
当从语义模型生成物理实现时,使用名词的有意义的命名约定(如owner_person和driver_person)带来了直接的好处。这种表示法也适用于其他复杂的关纇建模情况,如n元关系的扩展。
ER建模提供了一种将现实世界的复杂关系转化为计算机可理解的形式的方法。它不仅用于数据库设计,还用于系统分析、设计和文档化的整个过程中。不同的表示法和符号用于不同的目的和场景,但都旨在捕捉和表示现实世界中的复杂关系。