为了使表更容易符合第三正常形(3NF),应遵循以下原则:
消除部分依赖:确保表中不存在这样的情况,其中一个非关键字字段的部分值可以唯一地确定另一个字段的值。例如,如果有一个订单表,其中包含客户ID和产品ID,而产品信息(如价格)存储在一个单独的表中,这样就避免了部分依赖。
消除传递依赖:确保没有任何非关键字字段的数据可以通过其他字段间接影响到它。例如,在上面提到的订单表中,如果产品ID决定了折扣率,这构成了传递依赖。在这种情况下,应该直接关联产品表,而不是通过订单表间接访问。
每个属性只与主键直接相关:确保每个字段只依赖于主键,不依赖于其他非关键字段。比如,员工表中,工资不应依赖于其职位,而是应该有一个独立的工资字段。
一个简单的判断方法是,看是否有这样一个分解过程:如果某个表A可以分解为B和C两个表,且B的键是A的一部分,但不是全部,那么A不符合3NF。若要达到3NF,应尽可能地分解成更小、更专注于单一职责的表。