数据库ER图基础概念整理

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


ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐均可以做为一个数据对象,用长方体来表示,每一个实体都有本身的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张3、李四等,实体成员(entity member)/实体实例(entity instance) 不须要出如今ER图中。spa


ER图的属性(attribute)即数据对象所具备的属性,例如学生具备姓名、学号、年级等属性,用椭圆形表示,属性分为惟一属性( unique attribute)和非惟一属性,惟一属性指的是惟一可用来标识该实体实例或者成员的属性,用下划线表示,通常来说实体都至少有一个惟一属性。3d


ER图的关系(relationship)用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有必定的联系,每一个学生都有本身的成绩表,这就是一种关系,关系用菱形来表示。对象


ER图中关联关系有三种:blog

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)个实体有关系。ip



下面是个简单的例子:it


ER实体补充讲解:io


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


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


弱实体和强实体的联系必然只有1:N或者1:1,这是因为弱实体彻底依赖于强实体,强实体不存在,那么弱实体就不存在,因此弱实体是彻底参与联系的,所以弱实体与联系之间的联系也是用的双线菱形。


上面实例根据弱实体的状况更改以下图:



复合实体:复合实体也称联合实体或桥接实体,经常用于实现两个或多个实体间的M:N联系,它由每一个关联实体的主玛组成,用长方体内加一个菱形来表示。


下图就是一个典型的复合实体,由于只是举例,相对粗糙,用户和商品两个实体是M:N的关系,中间又订单这个实体联系,所以订单这个实体是一个复合实体,同时若是用户 实体不存在,就没有订单实体的存在,所以对于用户实体来说订单是弱实体,同理商品实体若是不存在,一样不存在订单实体,所以对商品实体而言订单是弱实体,具体如图:




ER属性补充讲解:


er图的属性还细分为复合属性、多值属性和派生属性、可选属性,同时还有用来表示联系的属性,称为联系属性。


复合属性(composite attribute):复合属性是指具备多个属性的组合,例如名字属性,它能够包含姓氏属性和名字属性,以下图:


复合属性也有惟一属性,例如学生的所在班级属性,因为多个年级都有班级,因此单单班级属性是不惟一的,可是和年级组成的复合属性后则能够匹配成惟一属性。


多值属性(multivalued attribute):一个实体的某个属性能够有多个不一样的取值,例如一本书的分类属性,这本书有多个分类,例如科学、医学等,这个分类就是多值属性, 用双线椭圆表示。


派生属性(derivers attribute):是非永久性存于数据库的属性。派生属性的值能够从别的属性值或其余数据(如当前日期)派生出来,用虚线椭圆表示,以下图。

下面的小组人数就是典型的派生属性,随着学生实例的参加的兴趣小组变化,小组人数属性也会变化,通常来说派生属性不存在于数据库中,而是经过相应的公式进行计算获得,若是要放到数据库中,那么隔一段时间就要进行更新,不然会出现数据错误。




可选属性(optional attribute):并非全部的属性都必须有值,有些属性的能够没有值,这就是可选属性,在椭圆的文字后用(O)来表示,以下图的地址就是一个可选属性。



联系属性:联系属于用户表示多个实体之间联系所具备的属性,通常来说M:N的两个实体的联系具备联系属性,在1:1和1:M的实体联系中联系属性并没必要要。



er图的联系内容较多,之后单独补充!