通知库特例(通知库) 正常化)

设计相干通知库,契合不相同直立支柱的索赔,设计有理的相干通知库,这些不相同的旗索赔高长度不相同的范式。,杂多的范式,范式通知库越高,冗余度越小。

一般相干通知库有六种特例。:第一范式(1NF)、第二份食物范式(2NF)、第三范式(3NF)、BASS COAD范式(BCNF)、四范式(4NF)与第五范式(5NF),也称为完满范式。

NF的感觉是什么?。依教科书说得中肯界说,范式是一组契合必然长度的相干文字。,怀抱属性中间相干的有理化长度。很隐蔽的吧?忠实上你可以把它粗略地领会为一张一览表的表构成所契合的一种设计基准的水平。爱意家居装饰装修买建材,最环保的是E0级,二是E1级,E2长度等。通知库范式也分为1NF。,2NF,3NF,BCNF,4NF,5NF。通常朕设计东西相干通知库,最思索的BCNF就十足了。。设计契合高电平范式,必须做的事契合上层范式,比如,契合2nf的相干文字。,必须做的事契合1NF。

然而在设计相干通知库时,通常运用前四种范式。,灵绝对减去,使用闲暇时期改编,为了纪念。这次恰当的适用于最复杂的第一范式。

第一范式(1NF)

异样第一范式(1NF)是指在相干图案中,域添加的旗索赔,自己的事物域都应该是原子的,换句话说,通知库表说得中肯每一列都是除不尽的原子通知。,找错误保藏,阵列,非原子通知项,如记载。换句话说,当某个物质说得中肯某个属性具有多个值时,,它必须做的事破裂成不相同的属性。。在契合第一范式(1NF)表说得中肯每个域值但是是物质的东西属性或东西属性的偏爱地。长话短说,第一范式执意无反复的域。在1NF和谐的相干说得中肯每个属性不克不及被更分割。。

如次表,它不契合1NF。。
一览表1

忠实上,1NF是自己的事物相干通知库最根本的索赔,您在相干通知库办理零碎(RDBMS)中,比如,SQL Server,Oracle,在MySQL中确立或使安全一览表时,以防一览表的设计不契合这一根本索赔,例如手术必须做的事损失。。换句话说,RDBMS中先前在的一览表,它必须做的事契合1NF。以防朕要在RDBMS中表现表说得中肯通知,它必须做的事被设计成下表的使成形。:

通知库2

通常只需赚得1NF的前述的特点。但要笔直的,这时例证三点不契合第一范式的侦查。


不契合第一范式的限制

1、反复组(挑选运动场中有领先东西考虑的值)

反复组通常出现时帐户名称中。,每个记载能够具有无把握等于的值。。举例来说:

客户 日期 等于
Pater Monday 19.00,-28.20
Pater Wednesday -84.00
Sarah Friday 100.00,150.00

等于 这执意异样的反复组。,而在这种限制下这份通知就不契合第一范式。想放晴反复组,只需将每个记载替换为挑选记载。:

客户 日期 等于
Pater Monday 19.00
Pater Monday -28.20
Pater Wednesday -84.00
Sarah Friday 100.00
Sarah Friday 150.00

2、短少独特的的指令计数器

市的限制异样类似地。,同东西人在异样天买了异样的钱。,这样的事物的市先前达到了两遍。:

客户 日期 等于
Pater Monday 19.00
Pater Monday 19.00

如上所示,这两个市可以被说成完整同上的。,换句话说,以防朕求助于这些通知,朕将无法区别。。朕把某事归因于某人说它不契合第一范式,因下面的表示短少东西独特的的指令计数器。,它可以是东西范畴,它也可以是一组运动场。,它还确保独特的验明码无力的在。要将它重整化到契合第一范式的本能只必要补充东西独特的指令计数器那就够了:

市ID 客户 日期 等于
1 Pater Monday 19.00
2 Pater Monday 19.00

3、用数量庞大的数量庞大的范畴来表达异样的忠实

在同东西一览表里用多个运动场来表达同东西事实异样违背第一范式的:

市ID 角色 不爱意食物(1) 不爱意食物(2) 不爱意食物(3)
1 Pater 苹果
2 Jim 西瓜
3 Airing 西瓜 苦瓜
4 Tom 老鼠 深紫色

赚得通知库根底的人可以领会这是高度地B的。,更加它甚至不以为它是东西一览表。没错,忠实上,1NF高度地复杂。,它是自己的事物相干通知库设计必须做的事绥靖的根底。。

参考资料:

Published by sayhello

发表评论

电子邮件地址不会被公开。 必填项已用*标注