版权归原作者所有,如有侵权,请联系我们

[科普中国]-实体关系图

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

ER模型,全称为实体联系模型实体关系模型实体联系模式图(ERD)(英语:Entity-relationship model)由美籍华裔计算机科学家陈品山发明,是概念数据模型的高层描述所使用的数据模型或模式图。

ER模型常用于信息系统设计中;比如它们在概念结构设计阶段用来描述信息需求和/或要存储在数据库中的信息的类型。但是数据建模技术可以用来描述特定论域(就是感兴趣的区域)的任何本体(就是对使用的术语和它们的联系的概述和分类)。在基于数据库的信息系统设计的情况下,在后面的阶段(通常叫做逻辑设计),概念模型要映射到逻辑模型如关系模型上;它依次要在物理设计期间映射到物理模型上。注意,有时这两个阶段被一起称为“物理设计”。

实体联系模式图(ERD)有一些约定。本文的余下部分描述经典概念,并且主要与概念建模有关。有一些概念更加典型的在逻辑和物理数据库设计中采用,包括信息工程、IDEF1x(ICAM DEFinition Language)和空间建模。

关系图含义
E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。实体关系图表示在信息系统中概念模型的数据存储。

构成实体型(Entity)

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

属性(Attribute)

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

联系(Relationship)

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

转换原则转换为关系模式的原则

1、一个实体转化为一个关系模式。实体属性就是关系的属性,实体的码就是关系的码。

2、一个1:1联系可以转化为一个独立的关系模式,也可以与任意一端所对应的关系合并。

3、一个1:n联系可以转化为一个独立的关系模式,也可以与任意n端所对应的关系合并。

4、一个m:n联系转化为一个独立的关系模式。

5、三个或三个以上实体间的多元联系可以转换为一个关系模式。

6、具有相同码的关系模式可以合并。

常用符号实体(Entity)表示一个离散对象。实体可以被(粗略地)认为是名词,如计算机、雇员、歌曲、数学定理。关系描述了两个或更多实体相互如何关联。联系可以被(粗略地)认为是动词,如:在公司和计算机之间的拥有关联,在雇员和部门之间的管理关联,在演员和歌曲之间的表演关联,在数学家和定理之间的证明关联。实体绘制为矩形,联系绘制为菱形。

实体和联系都可以有属性,如雇员实体可以有一个社会保障号码属性(在美国);证明关联可以有一个日期属性。属性绘制为椭圆形并通过一条线与所属的实体相连。

每个实体(除非是弱实体)都必须有一个唯一标识属性的最小化集合。这个集合叫做实体的主键。

实体联系图不展示单一的实体或联系的单一的实例。它们展示实体集合和联系集合(分别显示为矩形和菱形),如特定的歌曲是实体。在数据库中所有歌曲的搜集是一个实体集合。在安德鲁·怀尔斯及费马最后定理之间的证明联系是一个单一联系。所有这种数学家-定理联系的集合是一个联系集合。

线条绘制于实体集合和它们所参与的联系集合之间。如果在实体集合中所有实体都必须在联系集合中参与一个联系,则绘制粗线。这叫做参与约束。如果实体集合的每个实体可以在联系集合中参与最多一个联系,则绘制从这个实体集合到联系集合的一个箭头。这叫做键约束。要指示在实体集合中每个实体都必须精确的参与一个联系,则绘制粗箭头。

使用关联实体来解决有多对多联系的两个实体的问题。

一元联系是在一个单一的表格的行之间的联系。

这是个很方便的程序。

不常用符号弱实体是不能用它自己的属性唯一标识的实体,所以必须用它自己的属性和与之有关的实体的主键二者作为它的主键。弱实体集合指示为粗矩形(实体),通过一个粗箭头把它连接到一个粗菱形(联系)上。

有时两个实体是一个更一般的实体类型的更特殊化的子类型。例如,程序员和营销员都是软件公司的雇员的类型。要指示这种关联,绘制其中带有 "ISA" 的三角形。超类是连接到顶点上而两个(或更多)子类连接到底边上。

最后,通过聚集,一个联系和所有它的参与实体集合可以被当作一个单一的实体集合,目的是让它可以参与另一个关联。这可以指示为在所有聚集的实体和联系之外绘制一个虚矩形1。

分类实体联系的模型可以依据是否只允许二元联系而分类为 BERM(二元实体关联模型)和 GERM(一般实体联系模型)。二元联系是在两个实体之间的联系。所以,在 GERM 中在在三个或更多实体之间的联系也是允许的。

参见实体

关系模型

统一建模语言

数据结构图

本词条内容贡献者为:

吴晨涛 - 副研究员 - 上海交通大学