关系数据库设计有一定的规范要求,不同的规范要求被称为不同的范式(normal form)。
1NF: 所有的字段都是不能再分的最小原子字段。
2NF: 非主关键字完全依赖主关键字,不能只依赖主关键字一部分。
3NF: 字段间不能有传递依赖。
举例1:
产品表中的字段包含产品代码、产品开始日期、产品结束日期,其中产品代码=产品种类||币种||序号,这个表不满足1NF,因为产品代码这个字段不是不能再分的最小原子字段。
举例2:
卡余额表的字段包含卡号、卡名称、币种、余额,主键为卡号、币种,这个表不满足第二范式,因为卡名称只依赖于主键的一部分卡号,不是完全依赖于主键。
举例3:
员工表的字段包含员工号、员工姓名、部门号、部门名称。这个表不满足3NF,因为部门名称依赖于字段部门号,不是依赖于主键员工号。
严格的3NF避免了数据冗余,保证了数据的一致性,减少了存储空间,当修改一个表的字段时,只修改一个地方即可,不用修改很多表,但是带来的工作量也是很大的,数据库越规范化意味着需要建立的表越多,也意味着更多的关联操作,降低了查询性能。
三范式
最新推荐文章于 2021-02-20 12:34:54 发布