数据库——ER图

参照:https://zhuanlan.zhihu.com/p/29029129

1、ER图分为实体、属性、关系三个核心部分。实体是长方形体现,而属性则是椭圆形,关系为菱形。

  • 1)ER图的实体(entity):即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体实例(entity instance),例如学生实体里包括张三、李四等,实体实例(entity instance) 不需要出现在ER图中。
  • 2)ER图的属性(attribute):即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性
  • 3)ER图的关系(relationship):用来表现实体与实体之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。

2、ER图中关联关系有三种:

1对1(1:1) :指对于实体A与实体B,A中的每一个实体实例只能与B中某一个实体实例有关系;反之,在实体B中的每个实体实例只能与实体A中某一个实体实例有关系。如:学生:成绩表(一个学生对应于成绩表中的一个成绩;而成绩表中的一个成绩只能对应一个学生)

1对多(1:N) :指实体A的每一个实体实例 与 实体B中的多个实体实例有关系;并且实体B中每一个实体实例只能与实体A中某一个实体实例有关系。如:部门表:员工表(一个部门对应多个员工,一个员工只属于一个部门)。

多对多(M:N) :指实体A中的每一个实体与实体B中多个实体有关系;并且实体B中的每一个实体与实体A中的多个实体有关系。如:员工:角色(一个员工可以有多个角色,如:打扫卫生,整理资料的角色;一个角色可以有多个员工,如:打扫卫生的人有张三、李四、王五等)。

下面是个简单的例子:
数据库——ER图_第1张图片

3、ER实体补充讲解:

ER的实体还会细分为 :弱实体和复合实体

1)弱实体:一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如上图的学生实体和成绩单实体,成绩单依赖于学生实体而存在,因此学生是强实体,而成绩单是弱实体。

弱实体和强实体的联系必然只有1:N或者1:1,这是由于弱实体完全依赖于强实体,强实体不存在,那么弱实体就不存在,所以弱实体是完全参与联系的,因此弱实体与联系之间的联系也是用的双线菱形。
例子:
①学生表 和 成绩表
一个学生 对应 一条成绩记录。一条成绩记录必须依赖于一条学生记录。所以:学生实体是强实体,成绩实体是弱实体。成绩表中有个外键sid参照学生表的主键sid。
②员工 和 部门表
一个部门对应 多个员工,一个员工只能属于一个部门。员工依赖部门。所以:部门是强实体,员工是弱实体。员工表中有个外键did参照的是部门表的did。
总结:有外键的实体都是弱实体

上面实例根据弱实体的情况更改如下图:数据库——ER图_第2张图片
2)复合实体(关联表)
复合实体:复合实体也称联合实体或桥接实体,常常用于实现两个或多个实体间的M:N联系(关联关系表),它由每个关联实体的主玛组成,用长方体内加一个菱形来表示。

下图就是一个典型的复合实体,因为只是举例,相对粗糙,用户和商品两个实体是M:N的关系,中间又订单这个实体联系,因此订单这个实体是一个复合实体,同时如果用户 实体不存在,就没有订单实体的存在,因此对于用户实体来讲订单是弱实体,同理商品实体如果不存在,同样不存在订单实体,因此对商品实体而言订单是弱实体,具体如图:数据库——ER图_第3张图片

你可能感兴趣的:(数据库)