文章目录
什么是E-R图?
描述概念模型的有力工具。它提供了表示实体型、属性和联系的方法。
什么是实体?什么是属性?
实体型、属性、联系
- 一个实体可以有多个属性
- 实体内部的联系,通常是指组成实体的各属性之间的联系
- 实体之间的联系,通常是指不同实体型的实体集之间的联系
- 多个实体间可以有不同的联系
实体间的联系
- 把参与联系的实体型的数目称为联系的度。
- 两个实体型之间的联系度为2,称为二元联系。
- 三个实体型之间的联系度为3,称为三元联系。
- N个实体型之间的联系度为N,称为N元联系。
两个实体之间的联系
一对一联系
- 1:1
- 一个班级(实体1)只能有一个班长(实体2),一个班长也只能服务于一个班级
一对多联系
- 1:n
- 一个班(实体1)有多个学生(实体2),一个学生只能在一个班
多对多联系
- m:n
- 一门课多人选报,一个人可选多门课
两个以上实体之间的联系
一门课可以有多个老师讲,使用若干本参考书。
- 课与老师是一对多;课与参考书也是一对多
每本参考书只能服务于一门课
- 参考书与课是多对一
每个老师也只能教一门课
- 老师和课是多对一
单个实体型内的联系
同一个实体集内的各实体之间也可以存在一对一、一对多和多对多的联系。
学生实体类型内部具有管理与被管理的联系,即某一学生(班长)领导若干学生,而一个学生仅被另一个学生(自己所在班的班长)直接领导。
注意:
如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
着手E-R图
实体形用矩形表示。
属性用椭圆形表示。
联系用菱形表示。
ISA联系
- 听着ISA感觉很牛逼的样子?其实ISA就是“is a”的缩写。
- ISA联系用三角形来表示。
- ISA联系是子类继承了父类的所有属性,子类也可以有自己的属性。
- 研究生is a学生;本科生is a学生。
分类属性
- 根据分类属性的值把父实体型中的实体分派到子实体型中。
- 如上面的E-R图所示,在ISA联系符号三角形的右边加了一个分类属性“学生类别”,这说明学生是研究生还是本科生由“学生类别”这个分类属性的值决定。假如把分类属性的值换为“学生性别”,那么研究生和本科生就该换为男学生和女学生了。
- 总的来讲,分类属性就是一个分类的参考依据
不相交约束与可重叠约束
- 父类中的一个实体不能同时属于多个子类中的实体集,即父类集合中的某一元素,最多存在于一个子类集合中。原因是,一个孩子或者兄弟姐妹几个只能有一个父亲。
- 用ISA联系三角形符号内加一个叉号“×”来表示。有叉号表示不相交,没叉号表示可重叠。
- 如下图表示一个学生不能既是本科生又是研究生(别跟我抬杠说什么本硕连读)。
- 如果父类中的一个实体能同时属于多个子类中的实体集,则称为可重叠约束。
完备性约束
- 完备性约束描述父类中的一个实体是否必须是某一个子类中的实体,如果是,则叫做完全特化,否则叫做部分特化。
- 完全特化用父类到子类的双线连接表示,单线连接则表示部分特化。
- 假设学生只有两类,要么是本科生,要么是研究生,如上图所示。
基数约束
- 基数约束是对实体之间一对一、一对多和多对多联系的细化。
- 参与联系的每个实体型用基数约束来说明实体型中的任何一个实体可以在联系中出现的最少次数和最多次数。
- 约束用一个数对min…max表示,0≤min≤max。
- 其中min=1的约束叫做强制参与约束。
如下图所示,学生实体型的基数约束是20…30,表示每个学生必须选修20到30门课。课程的基数约束为0…*,一门课会被很多学生选修。( * 代表无穷大)
Part-of联系
Part-of联系即部分联系,它表明某个实体型是另一个实体型的一部分。例如:轮子是汽车的一部分,即Part-of汽车实体。
非独占Part-of联系
- 可以通过基数约束来表达(非强制参与联系)
- 没有具体的表示方式,而是通过非强制参与联系表示的。
整体实体被破坏,部分实体仍然可以独立存在。比如汽车车体损坏,轮子还是可以独立存在。
独占联系
- 在E-R图中用弱实体类型和识别联系来表示独占联系。
整体实体被破坏,部分实体也不能独立存在。
什么是强实体型、弱实体型?
如果一个实体型的存在依赖于其他实体型的存在,则这个实体型叫做弱实体型,否则叫做强实体型。
怎么才算弱实体型?
- 如果不能从一个实体型的属性中找出可以作为码的属性,则这个实体型就是弱实体型。
- 在E-R图中,用双矩形表示弱实体型,双菱形表示识别联系。
- 码:是数据库中唯一能标识一个记录值的内部记录标志符。在属性值下加下划线表示码。
- 下图中,房间就是一个弱实体;楼号是楼房的码。
怎么才算强实体型?
一般的实体都是强实体型。
注意事项
- 为了简化E-R图的处置,现实世界的事物能作为属性对待尽量作为属性对待。
- 符合什么条件的事物可以作为属性对待?
- 作为属性,不能再具有描述的性质,即属性不可分,不能再包含其他属性
- 属性不能与其他实体具有联系。即,E-R图中表示的联系是实体之间的联系。
这是我初学时做的一张E-R图: