返回首页

2NF

时间:2005-10-27 来源: 作者: 点击:
在创建一个数据库的过程中,范化是将其转化为一些表的过程,这种方法可以使从数据库得到的结果更加明确。这样可能使数据库产生重复数据,从而导致创建多余的表。范化是在识别数据库中的数据元素、关系,以及定义所需的表和各表中的项目这些初始工作之后的一个细化的过
    在创建一个数据库的过程中,范化是将其转化为一些表的过程,这种方法可以使从数据库得到的结果更加明确。这样可能使数据库产生重复数据,从而导致创建多余的表。范化是在识别数据库中的数据元素、关系,以及定义所需的表和各表中的项目这些初始工作之后的一个细化的过程。下面是范化的一个例子Customer Item purchased  Purchase price Thomas Shirt $40 Maria Tennis shoes  $35 Evelyn  Shirt $40Pajaro Trousers $25 如果上面这个表用于保存物品的价格,而你想要删除其中的一个顾客,这时你就必须同时删除一个价格。范化就是要解决这个问题,你可以将这个表化为两个表,一个用于存储每个顾客和他所买物品的信息,另一个用于存储每件产品和其价格的信息,这样对其中一个表做添加或删除操作就不会影响另一个表。下面介绍的是关系数据库的几种范式。第一范式(1NF)。这是范化的最基本级别,并且一般任何数据库都符合这个标准。其规范如下:其中的表是有行和列的二维表格。每一列是通过整个表格表示的对象的属性。每一行描述属性的一个独一无二的实例,各行不能完全相同。 每一列的元素必须是同一类型的。例如“顾客”那一列中,只能是顾客姓名或编号。第二范式(2NF)。这个级别的范化中,表中的非主属性应该完全依赖于候选键。例如,在一个包含顾客ID、售出的产品、产品售出的价格这三列,其中价格应该依赖于顾客ID以及具体的产品。第三范式(3NF)。在第二范式中,对表中某一行的改变可能会影响与其他表中与这些数据相关的信息。例如,就上面所说的顾客表的例子而言,从表中去掉描述一个顾客购物的信息也就意味着把物品有相应的价格这个事实去掉了。在第三范式中,这些表就会被分成两个表,这样物品价格这个信息就可以独立出来了。域-码范式(DKNF)。码可以唯一的识别表中的每一行,域则是一个属性的取值范围。通过加强对码和域的限制,就可以保证数据库免除由于修改数据导致的异常。DKNF是很多数据库设计者想要达到的目标。
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
  • 上一篇:2X
  • 下一篇:2GL
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容