大家好,又见面了,我是你们的朋友全栈君。
存在关系:
R(学号,姓名,性别,班级,班主任,课号,课名,成绩)
主键:学号,课号
主属性:{学号,课号}
非主属性:{姓名,性别,班级,班主任,课名,成绩}
数据库的每一列都是不可分割的基本数据项,强调列的原子性。即列不可以再拆分。反例:
ID | 姓名 | 联系方式 | |
---|---|---|---|
电话 | 邮箱 | ||
1 | 张三 | 188XXXXXXXX | XXX@163.COM |
建立在第一范式的基础上,每一个非主属性要完全函数依赖于候选键(或者说是主键,任一个候选键都可以做主键)。即非主键列完全依赖于主键,而不能是依赖于主键的一部分,必须满足两个条件:
建立在第二范式的基础上,任何非主属性不依赖于其它非主属性。即每一个非主属性都不传递依赖于该范式的候选键。即非主键列只依赖于主键,不依赖于其他非主键。
建立第三范式的基础上,任何非主属性不能对主键子集依赖。即数据库表中如果不存在任何字段对任一候选键的传递函数依赖则符合BC范式。
1NF消去对主键的部分函数依赖后=2NF。
2NF消去对主键的传递函数依赖后=3NF。
3NF消去对候选键的部分函数依赖和传递函数依赖后 = BCNF。
BCNF是对3NF的改进,即在3NF的基础的又把范围从主码扩大为候选码。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/127396.html原文链接:https://javaforall.cn