谁能帮我讲解下数据库中的范式?
发布网友
发布时间:2022-03-28 17:54
我来回答
共1个回答
热心网友
时间:2022-03-28 19:23
关系模式的好坏衡量标准是范式(Normal Forms,NF)
1、第一范式(1NF)
关系模式R的每个属性都是不可分的原子值,那么称R是第一范式(1NF)的模式。
例如:有关系模式“学生”
学生(学号,姓名,性别,出生日期,年龄,电话)
其中,“年龄”可以通过当前日期与“出生日期”的运算得到,“年龄”属性就不是原子的。
关系模式“学生”不是1NF,更别提2NF,3NF了。
2、第二范式(2NF)
对于满足1NF的关系,通过消除非主属性对主键的部分函数依赖,使之达到2NF。2NF的关系仍然存在1NF关系类似的缺点。
现在,去除关系W的部分依赖,将其转换为2NF。
W(日期,工号,超额)
W1(工号,姓名,工种,定额,车间,车间主任)
关系模式W1中,依然存在着函数依赖关系:
姓名,工种和车间完全依赖于主键“工号”;
存在着“定额→工种→工号”和“车间主任→车间→工号”这两个传递依赖关系。
这样,在1NF中存在的问题,在2NF中依然存在!
3、第三范式(3NF)
对于满足2NF的关系,如果不存在“非主属性”对主键的传递函数依赖,则称该关系属于3NF。即在2NF基础上排除那些存在传递函数依赖的属性,方法是通过投影操作分解关系模式。
3NF的关系是比较理想的关系,在实际中大部分使用3NF的关系。
分解后,得到由4个关系(3NF)组成的最终结果:
W(日期,工号,超额)
W1(工号,姓名,工种,车间)
W11(工种,定额)
W12(车间,车间主任)