第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。
-------------
以前对这句话就是记住了,可是不会用也不知道如何用。
看了如下列子 了解了
例:如S1(学号,姓名,所在系,系名称,系地址)
关键字【学号】决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在的几个属性【所在系】,【系名称】,【系地址】将重复存储,插入,删除和修改时也将产生类似以上例的情况。
原因:关系中存在传递依赖造成的。即
【学号】---à 【所在系】
【所在系】--à【系地址】
因此关键字学号对系地址 函数决定是通过传递依赖【学号】---à 【系地址】实现的。也就是说,学号不直接决定非主属性系地址。
解决目地:每个关系模式中不能留有传递依赖。
解决方法:分为两个关系 S(学号,姓名,所在系),D(所在系,系名称,系地址)
注意:关系S中不能没有外关键字所在系。否则两个关系之间失去联系。
回顾自己业务中的客户表不是这种类型吗 里面凡是涉及到了区域什么的都是有一个新表区域表,而客户表中只是存放区域对应的ID。