实体-联系模型:Entity-Relationship Model
客观存在并可相互区分的事物叫实体(唯一标识)。
是具有相同类型及共享相同性质(属性)的实体集合。如全体学生。组成实体集的各实体称为实体集的外延(Extension)。实体集可相交。
定义:实体集中每个成员具有的描述性性质。一个实体可以由若干个属性来刻画。
属性的取值范围。
简单属性(不可再分的属性)、符合属性(如生日,因为它可以分为年+月+日)。
单值属性(每一个特定的实体在该属性上的取值唯一)、多值属性(某个特定的实体在该属性上的有多于一个的取值)。
派生属性(可以从其他相关的属性或实体派生出来的属性值,如,年龄可从生日派生出来)、基属性。
实体集属性中作为主码的一部分的属性用下划线来标明。
实体之间的相互关联。如学生与老师间的授课关系,学生与学生间有班长关系。联系也可以有属性。同类联系的集合称为联系集。
参与联系的实体集的个数称为联系的元。如学生选修课程是二元联系,供应商向工程供应零件则是三元联系。
参与联系的实体集的主码的集合形成了联系集的超码。例如(sno, cno) 构成了联系sc的超码。
如果实体集E中的每个实体都参与到联系集R中的至少一个联系,则称E全部参与R。如果实体集E中只有部分实体参与到联系集R的联系中,则称E部分参与R。
用双线表示全部参与:
实体在联系中的作用称为实体的角色。
当需要显式区分角色时,在连接菱形和矩形的线上加上说明性标注以区别不同的角色:
实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目。可以有一对一的(1:1),一对多的(1:m),多对多的(m:n)几种情况。
一个教师至多指导一个学生,一个学生至多被一个教师指导。
一对一不是一一对应
一个教师指导多个学生,一个学生至多被一个教师指导。
一个教师至多指导一个个学生,一个学生可以被多个教师指导。
一个教师可以指导多名学生,一个学生可以有多名导师。
分别为一对一、一对多、多对多。
一对多:如“课程”,“教员”,“参考书”之间的“讲课”联系
多对多
如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集。
弱实体集必然存在依赖于强实体集(Strong Entity Set)。
弱实体集中用于区别依赖于某个特定强实体集的属性集合。也称作部分码(partial key)。如“还款”中的还款号。
弱实体集的主码由该弱实体集所存在依赖的强实体集的主码和该弱实体集的分辨符组成。如“还款”主码=贷款号+还款号。
标识性联系以双边框的菱形表示。
从联系集用双线(全部参与)连接弱实体集,用箭头(一对多联系)指向强实体集。
弱实体集的分辨符用下划虚线标明。
1、E-R图转换为表并进行必要的合并:
本步可以按照机械方法完成。一个良好的E-R图,完成本步转换和合并得到的结果,已经是比较理想的数据库模式(尽管还有人工进一步优化的余地)。
2、优化:
本步无具体可行的机械方法,主要依靠设计人员的经验和能力。
联系转化的表可以与任一端实体转化成的表进行合并,二元一对一联系不能导致相关实体转化成的表合并。
二元多对一联系:
联系转化的表可以和“多端” 实体转化成的表进行合并。
二元多对多联系:
将联系定义为新的关系,属性为参与双方的主码和联系的描述性属性,不能进行合并。
多元联系:
联系转化的表和实体转化的表不能进行合并,即便是m:n:1,其转化的表和也不能进行合并。