实体关係图

实体关係图

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

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

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

    • 中文名:实体关係图
    • 外文名:Entity-relationship model
    • 也叫:ER模型

关係图含义

E-R图为实体-联繫图,提供了表示实体型、属性和联繫的方法,用来描述现实世界的概念模型。实体关係图表示在信息系统中概念模型的数据存储。
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)表示一个离散对象。实体可以被(粗略地)认为是名词,如计算机、雇员、歌曲、数学定理。关係描述了两个或更多实体相互如何关联。联繫可以被(粗略地)认为是动词,如:在公司和计算机之间的拥有关联,在雇员和部门之间的管理关联,在演员和歌曲之间的表演关联,在数学家和定理之间的证明关联。实体绘製为矩形,联繫绘製为菱形。

ER样例

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

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

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

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

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

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

这是个很方便的程式。

不常用符号

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

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

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

分类

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

参见

  • 实体

  • 关係模型

  • 统一建模语言

  • 数据结构图

相关词条

相关搜索

其它词条