一、ER模型的基本元素:实体、联系、属性。
二、属性的分类
1、按属性类别分
简单属性:不可分割的属性。
复合属性:可以再分解为其他属性的属性。
2、按取值特点分
单值属性:同一实体的属性只能取一个值,如“年龄”。
多值属性:同一实体的某些属性可能取多个值,如学历有“本科”、“硕士”等。
3、存储属性和派生属性
派生属性:可以通过其他属性推导出来的属性,它的值不必存储在数据库中。
存储属性:需要存储值的属性。
4、允许空值的属性
当实体的某个属性没有值时应使用空值
如某个员工配偶为null时表示
◆该员工尚未婚配(null为占位空值)
◆该员工已婚配,但配偶名缺失(null表示未知空值)
◆该员工不知是否婚配
三、联系的设计
1、联系的元数:一个联系涉及到实体集的个数,称为该联系的元数或度数。
2、联系类型的约束:限制了参与联系的实体数目。
基数约束:实体集E1和E2之间有二元联系,则参与一个联系中的实体数目称为映射基数。
参与约束:实体集E中的每个实体都参与联系集R,则为完全参与;部分参与联系集R,则为部分参与。
四、ER模型
1、分裂
垂直分裂:把固定不变的属性组成另一个实体类型,键必须在分裂后的实体类型中出现。
水平分裂:如教师分为“男教师”、“女教师”。
2、设计局部ER模型步骤
◆确定局部结构范围
方式一:依据系统的当前用户进行自然划分。
方式二:按用户要求数据库提供的服务进行归纳。
考虑因数:
范围划分要自然,易于管理。
范围之间的界面要清晰,相互影响要小。
范围的大小要适度。
◆定义实体:
采用人们习惯划分。
避免冗余。
依据用户信息处理需求。
◆定义联系
◆分配属性
原则:属性应该是不可再分解的语义单位;实体与属性之间的关系只能是1:N的;不同实体类型的属性之间应无直接关联关系。
五、设计全局ER模型
步骤:
1、确定公共实体类型。
2、合并局部ER模型。
3、消除冲突。
属性冲突:如属性域的冲突,即属性值的类型,取值范围。
结构冲突:如“职工”在某个应用中为实体,在另一个应用中为属性。
命名冲突:包括属性名、联系名、实体名之间的冲突。
六、全局ER模型优化
1、合并实体类型。
2、消除冗余属性。
3、消除冗余联系。