原文链接:
如何画好ER图——博客园
数据库ER图——CSDN
如何处理E-R图中的“关系的属性”【关系代数骚操作】——CSDN
设计并生成ER图
了解ER图的基本组成,以及如何在viso中画ER图。
什么是ER图
ER图是实体关系图,用矩形表示实体,用椭圆形表示属性,用棱形表示两实体之间的联系。相互用直接联接起来,是一种数据建模工具。用来描述现实世界的概念模型 。
怎么画,用什么工具画
最常见是用VISIO来画,也可以在线网站Processon里画。
ER图的组成部分
-
实体(entity):即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用矩形表示 ,内写明实名名。每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等,实体成员(entity member)不需要出现在ER图中。
-
属性(attribute):即数据对象所具有的属性(所具有的列),例如学生具有姓名、学号、年级等属性,用椭圆形表示,用直接与实体连接。属性分为唯一属性(unique attribute)和非唯一属性,唯一属性(主键)指的是唯一可用来标识该实体实例或者成员的属性,一般来讲实体都至少有一个唯一属性。
-
关系/联系(relationship):用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系。用菱形表示,里面写两个实体之间是如何关联的。分别与两边实体直线相联,同时在直线上标着联系类型。如(1:1, 1:n , 或M:N)。
-
关系/联系本身也可以有属性:联系也是一种实体,可以有属性。
ER图中的三种关联关系
- 1对1(1:1):1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。
- 1对多(1:N):1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。
- 多对多(M:N):多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。
如何在visio中画ER图
在visio2013中可以直接用chen's 数据库表示法画。
路径:更多形状-》软件和数据库-》数据库-》chens数据库表示法。
提醒:按ctrl键拖动相当于复制同类元素,不用每新都新建,来回调整大小,这样可以保证大小都一致。
ER图和关系模型到数据库表
了解如何通过ER图定义数据库表。
ER图和关系模型
在创建数据库表之前,首先需要设计数据库表。设计数据库表的主要工具是ER图,数据库表的ER图如下:
ER图给出了数据库表的图形化描述,但还缺乏建立数据库表必要的字段名称、字段类型等信息,还需要把ER图归纳为满足一定约束条件二维表的形式才可以开始创建数据库表。数据库二维表见下表:
如何处理E-R图中的“关系”及“关系的属性”
参考如何处理E-R图中的“关系的属性”【关系代数骚操作】——CSDN的三结论:
- 仅在多对多关系的情况下为关系提供属性。
- 如果两个实体之间的关系是多对多,我们将需要一个额外的关系表,新表应该至少有两个属性(外键)来自每个表(它们各自的主键)。
- 如果多对多关系没有属性,那么就不用第三张表,可以利用json列表来存放这种关系。