数据库三大范式
作者:互联网
1NF
所有属性不可再分。满足1NF是关系型数据表的前提。不满足1NF就不是关系型数据表。
2NF
非主属性完全依赖于主属性。
若非主属性仅部分依赖于主属性,则不符合第二范式。
举例:学号,课程号,学分,成绩 四个字段组成一张表格,(学号,课程号)构成主键。
- 所有属性不能再分,满足第一范式。
- 但学分仅依赖于课程号,不依赖于学号。所以不满足第二范式。
应该改成:学号,课程号,成绩为一张表。课程号,学分为另一张表。
不满足第二范式会导致四大问题:
- 数据冗余。所有元组都需要学分字段,会重复很多遍。
- 更新异常。更新学分时,需要把所有元组的值都更新一遍。
- 插入异常。还没学生选过的课没法插入。因为学号作为主键不能为空。
- 删除异常。删除所有学生成绩会导致课程和学分也被删除。
3NF
不存在传递依赖关系,即非主属性之间没有依赖关系。
若非主属性传递依赖于主属性,则不符合第三范式
举例:学号,专业,专业描述 三个字段组成一张表格,学号是主键。
- 所有属性不能再分,满足第一范式。
- 学号是唯一主键,不存在部分依赖关系,满足第二范式。
- 学号决定专业,专业决定专业描述。所以存在传递依赖关系。不满足第三范式。
应该改成: 学号,专业为一张表。专业,专业描述为另一张表。
不满足第三范式也会导致两大问题:
- 数据冗余。
- 更新异常。
一般表的设计满足3NF就够了。
标签:专业,范式,数据库,满足,学分,主键,三大,属性 来源: https://www.cnblogs.com/lixingleon/p/15468833.html