三范式-BCNF(数据表设计)
1NF:字段不可再分,原子性
2NF:满足第二范式必须先满足第一范式。
一个表只能说明一个事物。非主键属性必须完全依赖于主键属性。
3NF:满足第三范式必须先满足第二范式。
每列都与主键有直接关系,不存在传递依赖。任何非主属性不依赖于其他非主属性。
不符合第一范式的例子(关系数据库中创建不出这样的表):
表:字段1,字段2(字段2.1,字段2.2),字段3......
不符合第二范式的例子:
表:学号,姓名,年龄,课程名称,成绩,学分;
这个表明显说明了两个事物:学生信息,课程信息。
不符合第三范式的例子:
学号,姓名,年龄,学院,学院地点,学院电话,主键为学号
存在依赖传递:(学号)--->(所在学院)--->(学院地点,学院电话)
如何解决范式不满足:
通过属性分解成子表来升级范式