ER图建模要点
(1)ER图
①世界是由一组称作实体的基本对象及这些对象间的联系组成。
②用图形的方法,描述实体集之间的联系
③供使用者进行交流:数据库设计人员、程序员、用户
(2)建模过程:
①抽象出实体和联系,使用ER图表示
②将ER图转换为多个关系模式(表结构)
③使用范式消除冗余
(3)基本元素:
①实体集
②属性
③关系
①实体集(Entity Set)
实体:客观存在并可相互区别的事件或物体
实体集:具有相同类型、相同性质的实体的集合;用矩形表示
②属性(Attributes)
实体所具有的某一特性
用与实体集相连的椭圆表示;主标识属性加下划线表示
③联系(Relationship)
用与相应的实体集相连的菱形表示
表示实体集之间的关联
联系可能有自己的属性
特殊的联系——有属性的联系
联系的基数:多对多(M:N);一对多(1:N);一对一(1:1)
【关系:表】【属性:列名】【元组:行】
关系模式:
关系名(属性名[属性类型],...)
Accounts(accountNo,banlance,type)
Accounts(accountNo INT,banlance REAL,type Varchar(20))
E-R图转换为表的规则
(1)每个实体集转化为一张表
①除多值属性以外的所有属性对应着字段
②实体的主标识称为主键
③组合属性将其子属性转化为表中的属性
④组合属性本身不转换
(2)多值属性和实体的主标识属性组合转化为一张表
①表中的所有属性为表的主键
②也可单独设立主键
M:N的联系引入关系表
联系的属性及两个实体的主标识形成关系表
关系表的主键为两个实体主标识的组合
1:N的联系可不引入关系表
将关系的属性及非多方的主标识加入到多方表
多方表的外键是非多方实体的主标识
1:1的联系不必引入关系表
范式
范式是符合某一种级别的关系模式的集合
关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式
范式的种类:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
范式的目的
(1)消除冗余
冗余的坏处:
①数据冗余太大,浪费太大的存储空间
②更新异常,数据冗余,更新数据时,维护数据完整性代价太大
③插入异常,该插的数据插不进去
④删除异常,不该删除的数据不得不删
好的关系的特点:不发生插入异常、删除异常、更新异常、数据冗余应尽可能少
原因:由存在于模式中的某些数据依赖引起的
解决方法:通过分解关系来消除其中不合适的数据依赖
1NF 第一范式
表中没有多值属性
2NF 第二范式
不存在非关键字段对任意候选关键字段的部分函数依赖
3NF 第三范式
没有非关键字段传递依赖主键
非关键字段只依赖于主键
不符合第三范式的需要拆分关系