网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.理解 oracle 的 “lsnrctl statu.
.案例学习Oracle错误:ORA-27123.
.UNIX和WINDOWS2000上的ORACLE的差.
.Oracle数据库SPFILE文件特点及具.
.Oracle临时表 优化查询速度.
.关于Oracle数据库各种存储形式的.
.Oracle 数据库中常用操作的具体说.
.oracle数据库文件中的导入\导出(.
.Oracle发布免费数据库管理工具Ra.
.执行视时请使用这些技巧.
.上传文件至Oracle数据库.
.必须要熟悉的V$视图.
.SQL Server中的Datediff移植到OR.
.Access2000迁移到Oracle9i要点说.
.查看视图中哪里字段是允许更新的.
.简单谈谈Oracle 10G中的闪回恢复.
.ORACLE应用经验(1).
.如何查看用户表上的约束内容?.
.为最佳性能而调优 Red Hat(1).
.双机容错环境下Oracle数据库的具.

关系型数据库:使用范式创建数据库

发表日期:2008-2-9



  关系型数据库理论可能是20世纪60年代和70年代存储系统先锋的救星,但是从那是开始它就成了许多数据开发人员的毒药,就是因为现代数据库系统发展得如此之好,以至于它将其关系型支柱对开发人员隐藏了。设计良好的关系型数据库很轻易使用、很灵活,并且能够保护数据的有效性。 而设计不良的数据相反仍然能够发挥相当的作用,但是最终可能会导致数据的无效、错误或者丢失。
  
  开发人员有一些专用的规则,叫做范式(normal forms),他们根据这些规则来创建设计良好的数据库。在这里,我将通过创建一个用于保存书籍信息的简单数据库来探讨一下范式。
  
  本系列的第二部分
  本文Builder.com是针对数据库设计系列的第二部分。假如错过了前一部分,你可以看看第一部分(关系型数据库:理论背后的灵感) ,它揭示了关系型数据库理论发展的内在动力。
  
  确定实体和元素
  
  设计数据库的第一步是做你的家庭作业并确定你所需要的实体。实体是数据一种类型的概念集。通常只从一两个实体开始,再随着你数据的规范化而增加列表。对于我们的示例数据库,它看上去就似乎我们只需要一个实体——书。
  
  在确定了所需要实体的清单之后,你下一步就需要为每个实体创建数据元素(也就是说,你需要保存的信息)的清单。收集这样的信息有多种途径,但是最有效的可能就是依靠你的用户了。向你的用户询问他们日常工作的情况,要求查看当前完成他们工作所需要的各种表格和报告。例如,订单上可能会列出你创建销售应用程序所需要的许多数据元素。
  
  我们的书籍实体没有书面表格和报告可用,但是下列元素清单将有助于我们开始设计这个数据库:
  
  {Title, Author, ISBN, Price, Publisher, Category}
  
  很重要的一点是,要注重,把我们这里要用的实体移动到元素的过程并不能适用于所有状况。你所需要的实体不会总是像我们书籍示例那样清楚,所以你可能要从数据元素的一长串清单开始,在后面你会根据实体来划分元素。
  正规化的头几步
  
  
  
  一旦有了实体清单(表格)和数据元素(字段),你就预备好让关系型数据库理论运作了。这个理论的主要推动力是规范化——删除任何重复的组和冗余的数据,并把它们放到两个或者更多相关表里的过程。你并不是一定需要拥有一个以上的表格,但是你的数据简单到只需要一个表格的机会并不多。
  
  你应该小心地检查数据(这些数据会出现在多条记录里)和依靠性错误的实体和元素清单,并把已损坏的字段移动到不同的表格里。例如,你可能列出同一个作者的多本书,并在数据库里重复了作者的名字。当你认为会一次又一次地看到相同的数据值时,你就应该考虑把这个字段移动到另一个表格里了。
  
  要记住,在这一点上,你只是在操作潜在表格的列表,而不应该真正地创建这个表格:现在还是要用笔和纸来列表。
  
  
  
  范式简介
  
  数据库规范化的过程非常闻名,所以有正式的规则来保证规范化数据库的建设。这些规则有七条,叫做范式,而在大多数情况下头四条就够用了:
  
  第一范式(1NF)——这条规则有几个要求,包括:无多值项目(multivalued item)和重复组(repeating group);每个字段都是原子型的(atomic),也就是说每个字段必须包含可能的最小数据元素;以及表格含有要害字(key)。
  第二范式(2NF)——表格必须按照1NF来规范化。所有的字段必须引用(或者描述)主键值。假如主键基于一个以上的字段,那么每个nonkey字段必须取决于复杂键(complex key),而不仅仅是一个没有键的字段。不支持主键的nonkey字段应该被移动到另一个表格里去。
  第三范式(3NF)——表格必须符合1NF和2NF的要求。所有的字段都必须相互独立。任何描述nonkey字段的字段都必须被移动到另一个表格里。
  Boyce-Codd范式(BCNF)——一定不能存在依靠于nonkey的字段。这条规则实际上是3NF的一个子规则,用于捕捉可能会通过进程的依靠性。这一点相当的抽象,一开始是很难应用的。
  
  以上的规则很精确,但是技术定义以及规范化的规则能够被简化成下面几点:
  
  每个字段必须尽量小。
  每个字段只能包含一个数据项目。
  每条记录都必须是唯一的。
  注重重复的条目。
  每个字段都必须完全支持主键,而且只支持主键。
  下一步该做什么?
  
  应用这些规范化规则,尤其是1NF的几个要求,将会是个很需要技巧的过程。正如你会在下面内容里看到的,我会开始真正地把范式应用到实力数据库上,在进行了其他规范化的步骤之后,你就会重新回到1NF。
上一篇:调节Oracle数据缓冲区参数,缓冲整个数据库 人气:605
下一篇:关系型数据库:实现正规化 人气:751
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐