关系型数据库应用第一范式.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关系型数据库应用第一范式

关系型数据库:应用第一范式 正规化的头几步 一旦有了实体清单(表格)和数据元素(字段),你就准备好让关系型数据库理论运作了。这个理论的主要推动力是规范化——删除任何重复的组和冗余的数据,并把它们放到两个或者更多相关表里的过程。你并不是一定需要拥有一个以上的表格,但是你的数据简单到只需要一个表格的机会并不多。 你应该小心地检查数据(这些数据会出现在多条记录里)和依赖性错误的实体和元素清单,并把已损坏的字段移动到不同的表格里。例如,你可能列出同一个作者的多本书,并在数据库里重复了作者的名字。当你认为会一次又一次地看到相同的数据值时,你就应该考虑把这个字段移动到另一个表格里了。 要记住,在这一点上,你只是在操作潜在表格的列表,而不应该真正地创建这个表格:现在还是要用笔和纸来列表。 范式简介 数据库规范化的过程非常著名,所以有正式的规则来保证规范化数据库的建设。这些规则有七条,叫做范式,而在大多数情况下头四条就够用了: 第一范式(1NF)——这条规则有几个要求,包括:无多值项目(multivalued item)和重复组(repeating group);每个字段都是原子型的(atomic),也就是说每个字段必须包含可能的最小数据元素;以及表格含有关键字(key)。 第二范式(2NF)——表格必须按照1NF来规范化。所有的字段必须引用(或者描述)主键值。如果主键基于一个以上的字段,那么每个nonkey字段必须取决于复杂键(complex key),而不仅仅是一个没有键的字段。不支持主键的nonkey字段应该被移动到另一个表格里去。 第三范式(3NF)——表格必须符合1NF和2NF的要求。所有的字段都必须相互独立。任何描述nonkey字段的字段都必须被移动到另一个表格里。 Boyce-Codd范式(BCNF)——一定不能存在依赖于nonkey的字段。这条规则实际上是3NF的一个子规则,用于捕捉可能会通过进程的依赖性。这一点相当的抽象,一开始是很难应用的。 以上的规则很精确,但是技术定义以及规范化的规则能够被简化成下面几点: 每个字段必须尽量小。 每个字段只能包含一个数据项目。 每条记录都必须是唯一的。 注意重复的条目。 每个字段都必须完全支持主键,而且只支持主键。 关系型数据库的理论最早可以追溯到E. F. Codd博士1970年的论文 HYPERLINK /classics/nov95/toc.html \t _target 《大型共享数据库的数据关系模型》,在这篇文章里,他总结出了七条抽象的规则,叫做范式(normal form),用来帮助创建设计良好的数据库。这七条规则的前四条——第一范式(First Normal Form,1NF)、第二范式(2NF)、第三范式(3NF)和Boyce-Codd范式(BCNF)——在大多数情况下已经够用了。 这些范式是非常抽象的,以至于有些开发人员在如何应用它们上存在问题。也许理解范式最好的方式是开始将它们应用于数据,因为规则在你确实有数据要划分的时候才更有作用。在本文中,我会对一个书目示例数据库应用1NF的规则,这些规则在一开始应用的时候是最复杂的。 关于关系型数据库的理论 本文是关系型数据库设计理论系列的第三篇文章。前两篇文章是: HYPERLINK /developer/tech/story/0,200008160200.htm 《关系型数据库:理论背后的灵感》 HYPERLINK /developer/tech/story/0,200008160200.htm 《关系型数据库:使用范式创建数据库》 你会回忆起,1NF的要求是: 多值字段(multivalued field)必须要被移动到另一个表格里。 每个字段必须是原子型的(atomic),或者说要尽量地小。 每个字段都必须有一个关键字(key). 重复的值必须要被移动到另一个表格里。 我将要使用的简单表格是用来保存一些书目信息的。到目前为止,这个Books表格有下面这些字段: ? {Title, Author, ISBN, Price, Publisher, Category} /developer/code/story/0,200008153400.htm 表A 属性 域名 域定义 Book的标题 Title 字符或者文本 Book的作者 Author 字符或者文本 Book的国际标准图书编号 ISBN 字符或者文本 Book的定价 Price 数字或者钱数 Book的出版商 Publisher 字符或者文本 Book的类标 Category 字符或者文本 将多值字段移动到另一个表格 应用1NF的第一步是确保表格没有包含多值

文档评论(0)

tangzhaoxu123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档