实体与关系模型

使用陈表示的MMORPG的实体 - 属性关系图

实体与关联模型(或ER模型)描述了特定知识领域的相互关联的事物。基本的ER模型由实体类型(对感兴趣的事物进行分类)组成,并指定实体之间存在的关系(这些实体类型的实例)。

软件工程中,通常形成了ER模型来代表业务需要记住以执行业务流程所需的事物。因此,ER模型成为一个抽象数据模型,该模型定义了可以在数据库中实现的数据或信息结构,通常是关系数据库

彼得·陈( Peter Chen)为数据库和设计开发了实体与关联建模,并在1976年的论文中发表,并在先前存在的想法上进行了变体,但今天通常用于教学学生数据库结构的基础知识。一些ER模型显示通过概括特殊关系连接的超级和亚型实体,并且ER模型也可以用于特定于域特异性本体的规范中。

介绍

ER模型通常是系统分析的结果,以定义和描述业务领域中的流程创建和需要的数据。通常,它代表由业务流程监控和指导的实体和事件的记录,而不是过程本身。通常以图形形式绘制为框(实体),这些框(实体)由线(关系)连接,这些线(关系)表达实体之间的关联和依赖关系。它也可以以口头形式表达,例如:一栋建筑物可以分为零或更多公寓,但只能位于一栋建筑物中。

实体不仅可能由关系,还包括其他属性(属性),其中包括称为“主要密钥”的标识符。为表示属性以及实体和关系而创建的图可以称为实体 - 属性关系图,而不是实体与关联模型。

ER模型通常作为数据库实现。在简单的关系数据库实现中,表的每一行代表实体类型的一个实例,表中的每个字段代表属性类型。在关系数据库中,通过将一个实体的主要密钥作为指针或“外键”存储在另一个实体的表中,可以实现实体之间的关系。

ER/数据模型具有两个或三个级别的抽象级别的传统。下面的概念性物理层次结构用于其他类型的规范,与软件工程三种模式方法不同。

概念数据模型
这是最高水平的ER模型,因为它包含最小颗粒状的细节,但确定了将包含在模型集中的整体范围。概念性ER模型通常定义组织常用的主参考数据实体。开发企业范围的概念ER模型可用于支持记录组织的数据架构
概念性ER模型可以用作一个或多个逻辑数据模型的基础(见下文)。然后,概念性ER模型的目的是为逻辑ER模型集之间的主数据实体建立结构元数据共性。概念数据模型可用于在ER模型之间形成共同点,作为数据模型集成的基础。
逻辑数据模型
逻辑ER模型不需要概念性ER模型,尤其是在逻辑ER模型的范围仅包含不同信息系统的开发时。逻辑ER模型比概念ER模型包含更多的细节。除了主数据实体外,现在还定义了操作和交易数据实体。开发了每个数据实体的详细信息,并建立了这些数据实体之间的关系。但是,逻辑ER模型的开发独立于可以实现的特定数据库管理系统
物理数据模型
每个逻辑ER模型都可以开发一个或多个物理模型。通常开发物理模型是作为数据库实例化的。因此,每个物理ER模型都必须包含足够的细节才能产生数据库,并且每个物理ER模型都是技术依赖性的,因为每个数据库管理系统都有所不同。
物理模型通常在数据库管理系统的结构元数据中进行实例化,作为关系数据库对象,例如数据库表数据库索引,例如唯一的密钥索引以及数据库约束,例如外键约束或共同点约束。 ER模型通常也用于设计对关系数据库对象的修改并维护数据库的结构元数据。

信息系统设计的第一阶段在需求分析期间使用这些模型来描述信息需求或要存储在数据库中的信息类型。数据建模技术可用于描述某个感兴趣领域的任何本体(即使用术语及其关系的概述和分类)。对于基于数据库的信息系统的设计,概念数据模型在以后的阶段(通常称为逻辑设计),映射到逻辑数据模型,例如关系模型。反过来,这在物理设计期间映射到了物理模型。有时,这两个阶段都称为“物理设计”。

成分

两个相关实体
具有属性的实体
与属性的关系
首要的关键

一个实体可以定义为能够独立存在的东西,可以唯一地识别,并且能够存储数据。实体是域复杂性的抽象。当我们谈到一个实体时,我们通常会谈论现实世界的某些方面,这些方面可以与现实世界的其他方面区分开。

实体是物理或逻辑上存在的事物。一个实体可以是房屋或汽车等物理对象(它们存在于物理上),房屋销售或汽车服务等事件,或者诸如客户交易或订单之类的概念(它们在逻辑上存在 - 作为概念)。尽管“实体”一词是最常用的一个,但在陈之后,我们应该真正区分实体和实体类型。实体类型是类别。严格来说,实体是给定实体类型的实例。通常有许多实体类型的实例。因为“实体类型”一词有些麻烦,所以大多数人倾向于将术语实体用作本术语的同义词

可以将实体视为名词。示例:计算机,员工,歌曲,数学定理等。

关系捕获了实体之间的关系。可以将关系视为动词,链接两个或多个名词。示例:公司与计算机之间的关系,监督员工与部门之间的关系,艺术家与歌曲之间的关系,数学家与猜想之间的证明关系,等等。

上述模型的语言方面在声明性数据库查询语言Errol中使用,该语言模仿了自然语言构建。 Errol的语义和实施基于重塑关系代数(RRA),这是一个关系代数,适用于实体 - 关联模型,并捕获其语言方面。

实体和关系都可以具有属性。示例:员工实体可能具有社会保险号(SSN)属性,而证明的关系可能具有日期属性。

实体外,所有实体都必须具有最小的唯一识别属性集,这些属性可以用作唯一/键。

实体关系图(ERD)不显示单一实体或单一关系实例。相反,它们显示实体集(相同实体类型的所有实体)和关系集(相同关系类型的所有关系)。示例:特定的歌曲是一个实体;数据库中所有歌曲的集合都是实体集。孩子和他的午餐之间的饮食关系是单一的关系。数据库中所有此类儿童午餐关系的集合是一个关系集。换句话说,一个关系集对应于数学的关系,而关系对应于关系的成员。

也可以指出对关系集的某些基数约束

将自然语言描述映射到er图中的指导规则
英语语法结构 ER结构
普通名词 实体类型
专有名词 实体
及物动词 关系类型
不及物动词 属性类型
形容词 实体的属性
副词 关系的属性

物理视图显示了如何实际存储数据。

人际关系,角色和红衣

在陈的原始论文中,他举了一个关系及其角色的例子。他描述了一种关系“婚姻”及其两个角色“丈夫”和“妻子”。

一个人在婚姻(恋爱关系)中扮演丈夫的角色,另一个人在(同一)婚姻中扮演妻子的角色。这些单词是名词。这不足为奇;命名内容需要一个名词。

陈的术语也已应用于较早的想法。某些图的线,箭头和乌鸦的英尺归功于早期的巴赫曼图,而不是陈的关系图。

陈模型的另一个常见扩展是“名称”关系和作为动词或短语的角色。

角色命名

它也很普遍地用诸如并由所有者拥有的短语命名。在这种情况下,正确的名词是所有者财产。因此,人们扮演所有者的角色,而汽车扮演拥有的角色,而不是人扮演的角色是所有者,等等。

在从语义模型中生成物理实现时,名词的使用具有直接的好处。当一个汽车有两种关系时,就可以生成诸如lander_persondriver_person之类的名称,这些名称立即有意义。

红衣主教

对原始规范的修改可能是有益的。陈描述了外观偏开的基础性。顺便说一句,在Oracle Designer中使用的Barker-Ellis符号使用相同的侧面用于最低基数(类似于选择性)和角色,但要远见,以获得最大的基数(乌鸦脚)。

Merise的研究,Elmasri&Navathe等人表明,对角色以及最小和最大红衣主教的角色偏爱,研究人员(Feinerer,Dullea等人)表明,当将N-应用于N-时,这更加连贯秩序的关系大于2。

在Dulleea等。一个人读到“在UML中使用的符合符号的''外观并不能有效地代表对程度高于二元的关系所施加的参与限制的语义。”

在费纳雷(Feinerer)中,它说:“如果我们在U​​ML协会使用的外观语义上进行操作,就会出现问题。哈特曼(Hartmann)研究了这种情况,并展示了如何以及为什么不同的转换失败。” (尽管提到的“减少”是虚假的,因为两个图3.4和3.5实际上是相同的) ,而且“正如我们在接下来的几页中所看到的,但外观解释引入了几种困难,以防止简单机制扩展。从二进制到n-ary协会。”

代表相同关系的各种方法。在每种情况下,该图都显示一个人与一个出生地之间的关系:每个人必须以一个人出生,只有一个位置,但是每个位置的出生可能为零或更多的人。
使用乌鸦的脚表示法显示了两个相关实体。在此示例中,艺术家和歌曲之间显示了可选的关系。最接近歌曲实体的符号代表“零,一个或许多”,而歌曲具有“一位也是唯一的”艺术家。因此,前者被读为艺术家(CAN)表演“零,一或许多”歌曲。

Chen对实体 - 关联建模的符号使用矩形来表示实体集,而钻石则表示适合一流对象的关系:它们可以具有自己的属性和关系。如果实体集参与关系集,则它们与一条线连接。

属性作为椭圆形绘制,并通过一条线连接到一个实体或关系集。

基数约束如下:

  • 双线表示参与限制整体支出性:实体集中的所有实体都必须参与关系集中的至少一个关系;
  • 从实体集到关系集的箭头表示关键约束,即注射率:实体集的每个实体都可以在关系集中最多参与一个关系;
  • 厚线表明既指出beixtitive :实体集中的每个实体都涉及一种关系。
  • 属性的带下划线的名称表明它是一个关键:两个不同的实体或与此属性的关系始终具有此属性的不同值。

属性通常会被省略,因为它们可以弄乱图表。其他图技术通常在为实体集绘制的矩形中列出实体属性。

相关的图表惯例技术

乌鸦的脚符号

乌鸦的脚表示法,其起点可以追溯到Gordon Everest(1976)的文章,用于Barker的符号结构化系统分析和设计方法(SSADM)和信息技术工程。乌鸦的脚图将实体表示为框,而关系是盒子之间的线条。这些线的末端的不同形状代表关系的相对基数。

乌鸦的脚表示法用于CACI咨询业。 CACI(包括Richard Barker)的许多顾问随后搬到了Oracle UK,在那里他们开发了Oracle的案例工具的早期版本,向更广泛的受众介绍了符号。

使用此表示法,关系不能具有属性。在必要的情况下,将关系促进到本身的实体:例如,如果有必要捕获艺术家在何时何地进行歌曲,则引入了一个新的实体“绩效”(属性反映了时间和地点)和艺术家与歌曲的关系通过表演(艺术家表现- 表现,表演表演歌声)成为间接关系。

三个符号用于表示基数:

  • 戒指表示“零”
  • 破折号代表“一个”
  • 乌鸦的脚代表“许多”或“无限”

这些符号成对使用,以表示一个实体可能在关系中可能具有的四种类型的基数。符号的内部分量表示最小值,外部组件表示最大值。

  • 破折号最小零,最大一个(可选)
  • 破折号破折号最少一个,最多一个(强制性)
  • 戒指乌鸦的脚最小零,最多许多(可选)
  • 破折号乌鸦的脚最少一个,最多许多(强制性)

建模可用性问题

在使用建模的数据库时,用户可能会遇到两个众所周知的问题,其中返回的结果意味着查询作者假设的结果以外的其他问题。

第一个是“风扇陷阱”。它发生在(主)表中,该表炼接到一对一关系中的多个表。该问题从模型在实体中绘制时的外观 - 关联图:从主表中链接的表'fan Out'而得出了其名称。这种类型的模型看起来类似于Star模式,这是数据仓库中使用的一种模型。当尝试使用标准SQL在主表上计算汇总的总和时,可能会发生意外(和不正确)结果。解决方案是调整模型或SQL。此问题主要发生在决策支持系统的数据库中,并查询此类系统的软件有时包括处理此问题的特定方法。

第二个问题是“裂口陷阱”。当模型暗示实体类型之间存在关系时,就会发生裂缝陷阱,但是某些实体发生之间的途径不存在。例如,建筑物设有单一或已有的房间,可容纳零或摩尔计算机。人们希望能够查询模型以查看建筑物中的所有计算机。但是,列表中未显示当前未分配到房间的计算机(因为它们正在维修或其他地方)。需要建筑物和计算机之间的另一个关系来捕获建筑物中的所有计算机。最后一个建模问题是未能捕获模型现实世界中存在的所有关系的结果。有关详细信息,请参见实体关系建模2

在语义建模中

语义模型

语义模型是一种概念模型,有时被称为“平台独立模型”。这是一个强度模型。至少自Carnap以来,众所周知:

“……一个概念的全部含义是由两个方面组成的,即它的进步和扩展。第一部分包括整个概念世界中概念的嵌入,即所有关系与其他概念的整体关系。第二部分确定了该概念的参考含义,即在真实或可能的世界中的对应物。”

扩展模型

扩展模型是映射到特定方法或技术元素的元素,因此是“平台特定模型”。 UML规范明确指出,类模型中的关联是扩展的,实际上,这是不言而喻的,它是考虑到规格所提供的广泛的其他“装饰”,而不是任何先前的候选人“语义建模语言”所提供的规范。 。 “ UML作为数据建模表示法,第2部分”

实体与关系起源

ER建模的父亲彼得·陈(Peter Chen)在他的开创性论文中说:

实体关系模型采用了更自然的观点,即现实世界由实体和人际关系组成。它结合了有关现实世界的一些重要语义信息。

Chen在他的原始文章中明确对比实体 - 关系图与记录建模技术进行了对比:

数据结构图是记录组织的表示,不是实体和关系的确切表示。

其他几位作者还支持陈计划:

哲学对准

陈与古希腊哲学家时代以来的哲学传统一致:柏拉图亚里士多德。柏拉图本人将知识与对不变形式的忧虑联系起来(即许多类型的事物和属性的原型或抽象表示)及其彼此之间的关系。

限制

  • ER模型主要是概念性的,这是一种在知识领域中表达谓词的本体。
  • ER模型很容易用来表示关系数据库结构(CODD和日期之后),但不经常表示其他类型的数据结构(数据仓库,文档存储等)
  • 一些ER模型表示法包括符号以显示超级式关系关系和关系之间的相互排斥;有些没有。
  • ER模型并未显示实体的生活历史(其属性和/或关系如何随着时间而变化)。对于许多系统,此类状态变化是不平凡的,并且很重要,可以保证明确规范。
  • 有些人使用构造来扩展ER建模以表示状态变化,这是原始作者支持的一种方法;一个示例是锚点建模
  • 其他模型状态使用状态过渡图或其他一些过程建模技术分别变化。
  • 吸引了许多其他类型的图表,以建模系统的其他方面,包括UML提供的14种图表类型。
  • 如今,即使在ER建模可能有用的地方,也很不常见,因为许多使用支持类似模型的工具,尤其是用于OO编程的类图和用于关系数据库管理系统的数据模型。其中一些工具可以从图表中生成代码和代码反向工程图。
  • 在一项调查中,Brodie和Liu找不到一个实体 - 关联建模的实例,其中有十种财富100强公司的样本。 Badia和Lemire归咎于缺乏指导,但缺乏利益,例如缺乏对数据集成的支持。
  • 增强的实体与关联模型(EER建模)引入了几个概念,而不是在ER建模中,而是与面向对象的设计密切相关,例如IS-A关系。
  • 为了建模时间数据库,已经考虑了许多ER扩展。同样,发现ER模型不适合多维数据库(用于OLAP应用程序);尽管它们通常围绕Olap Cube的概念(也称为田地内的Data Cube ),但尚未在该领域中出现主要的概念模型。

也可以看看