课程名称:数据库设计那些事
课程章节:逻辑设计
讲师:sqlercn
https://www.imooc.com/video/1903
课程内容:
ER 图例说明 矩形:表示实体集,矩形内写实体集的名字 菱形:表示联系集 椭圆:表示实体的属性 线段:将属性连接到实体集,或将实体集连接到联系集
设计范式概要:
常见数据库范式:第一范式、第二范式、第三范式、bc范式
数据操作异常和数据冗余
操作异常:插入异常、更新异常、删除异常
第一范式数据库表中的所有字段都是单一属性,不可再分单一属性是由基本的数据类型所构成的,如整数、浮点数、字符串要求数据库中的表都是二维表
第二范式(2NF):数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。
部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。(多关键字字段的某一字段和其他某一非关键字字段有必然的关系,例如:关键字1="aa" 则 非关键字3 必定是 "bbcc" , 关键字1="bb" 则 非关键字3 必定是 "addccasd" )
所有的单关键字段的表都符合第二范式。
第三范式 非关键字段不存在对关键字段的传递函数依赖(关键字端a决定非关键字段b,b决定非关键字段c)
1NF指属性为基本项不可分
2NF指非主属性对主属性不能有部分函数依赖
3NF指非主属性对主属性不能有传递函数依赖
BCNF指主属性之间也不能有部分函数依赖或传递函数依赖
课程收获:
第一,二,三范式解决的是非主属性的关系。
BC 范式解决的是主属性的关系;
第一范式:就是原子性,字段不可再分割;【这个肯定不用在解释了吧】
第二范式:就是完全依赖,没有部分依赖;【非主属性不能依赖于主键的一部分,要完全依赖于主键】
第三范式:没有传递依赖。【非主属性之间的依赖】
BC范式: 解决部分主键依赖于非主键部分。