ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据库标准化与范式

数据库标准化与范式

原创 Linux操作系统 作者:leonarding 时间:2013-08-12 19:30:12 0 删除 编辑

标准化是IT数据库专业人士的戒律之一,数据建模工程师、数据库管理员和SQL开发者都必须遵守这一戒律。我们很早就了解它的原理和范式。

但是对大部分数据库进行了解发现:它们至多执行了第三范式(3NF)。很少有数据库执行了更高范式,如Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。那么,为什么大多数数据库设计员没有超出3NF呢?

范式简介

为了回答上述问题,了解3NF、BCNF、4NF和5NF之间的区别很重要。以下为每个范式的准确定义。

第一范式(1NF

每个表必须有一个首要键,即最少的一组属性,它与每条记录一一对应。通过适当定义键属性和非键属性,删除重复的组(不同记录似乎需要不同次重复的数据种类)。注:每个属性必须包含单独一个值,而非一组值。

第二范式(2NF

数据库必须满足1NF的所有要求。另外,如果一个表有一个复合键,所有属性必须与整个键相关联。而且,在表的多行之间多余重复的数据被移动一个单独的表中。

第三范式(3NF

存储在表中的数据不得依赖表的任何域,必须唯一依赖于首要键。数据库必须满足2NF的所有要求。既依赖首要键,又依赖其它域的数据被移动到一个单独的表中。

Boyce-Codd范式(BCNF

除对一个候选键扩展集(称作一个超级键)存在属性函数依赖外,不存在其它非平凡函数依赖。

第四范式(4NF

除对一个候选键扩展集存在属性组函数依赖外,不存在其它非平凡多值函数依赖。如果且只有一个表符合BCNF,同时多值依赖为函数依赖,此表才符合第四范式。4NF删除了不必要的数据结构:多值依赖。

第五范式(5NF

不得存在不遵循键约束的非平凡连接依赖。如果且只有一个表符合4NF,同时其中的每个连接依赖被候选键所包含,此表才符合第五依赖。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26686207/viewspace-768322/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
刘盛,网名leonarding,the first ACEA in china, Oracle OCM10g&11g RHCE, ACOUG Core Member Blogger, DATAGURU Oracle数据库版主, ITPUB HADOOP版版主, DB2中国专家组成员, 专注于&Oracle&Hadoop&Nosql&SAS, 提倡“分享技术~成就梦想”, 新浪微博:@itpub_leonarding QQ:40354446

注册时间:2012-02-10

  • 博文量
    240
  • 访问量
    3254910