案例:学院对象的表示 应将各个学院看做实体集,还是实体? 方法一:将各个学院看作一个实体集 如果各学院具有不同属性特征,则设计合理 否则面临问题:每增加一个学院增加一个实体,需修改应用代码 方法二:将所有学院看作一个实体集 一般地,一所学校的所有的学院具有相同属性,应看作属于一个实体集的不同实体
案例:学生成绩的表示 学生的课程“成绩”应放在图中何处? 设计方法一:放在学生实体集中 无法区分是哪门课程 设计方法二:放在课程实体集中 难以区分是哪个学生的成绩 设计方法三:放在联系上 合理,因学生和课程之间是多对多的关系
案例:工资和岗位的表示 职工的每月有工资,且可能不同 职工可能同时在不同部门担任不同的职务 案例:电话信息的表示 一人一个电话时:电话为人的属性 一人多个电话时,还有其他特俗属性时,电话应作为一个实体
多值属性和复合属性
零件的销售价格是一个多值属性(经销、代销、批发、零售) (1)将原来的多值属性用几个单值属性来代替 (2)将原来的多值属性用一个新的实体集来代替 这个新实体和原来的实体之间是1:N联系;新实体依赖于原实体而存在,称为弱实体,在E-R模型中,弱实体用双线矩阵表示;与弱实体相关的联系,用双线菱形表示。
案例:选课信息的表示 描述学生所选课程,应该采用实体集还是联系集? 设计原则:通常地,采用联系来表示发生在两个实体集之间的一个动作,如选课! 如果仅描述学生选课,用选课联系 如果强调学生为上何课程,要求到教务处去办报名注册,则应用一个实体集及两个联系。
案例:家属(爱人)信息的表示 分情况
案例:父母关系的表示 案例:教师指导学生做项目的表示
如何理解特化与概化?
一个实体集(父)可能含有一个子实体集!
子实体集具有(继承)父实体集的属性,还可能具有其它一些独特属性,特化与概化专门用于描述这种现象。
特化:自顶向下的设计过程
概化:自底向上的设计过程
由下向上的箭头连线为一种“is a”联系。
案例:学校人员信息
聚集:是一种抽象,它将联系集(及其相关实体集)看做是一个更高层的抽象实体集。