第3章数据库建实践指南.pptVIP

  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文档。上传文档
查看更多
第3章数据库建实践指南

第3章 数据库建模实践指南 北师大珠海分校软件工程系 赵池龙 本章导读 数据库设计既是信息系统建设必备的基础,又是软件工程实践的主要内容,所以计算机及软件专业方向的大学生、研究生和软件工程师,都要特别重视数据库设计。 数据库设计虽然是一个理论问题,但更主要的是一个实践问题。 本章的特点是,将数据库设计的理论与实践紧密相结合,并通过大量案例,来说明数据库设计中需要解决的各种问题。本章的具体内容,表面上没有包括数据库设计中的“正确处理多对多关系和合理进行列变行”的两大技巧,但是这两大技巧却蕴涵在许多实例之中。 学习本章的难度系数,比学习Rational Rose还要大得多。幸好本章的文字语句通俗易懂,图形表格全面细致,这就给读者带来了很大方便。 本章对读者的要求 数据库设计规范化理论及其反思 1972年,E.F.Codd博士提出了规范化理论来指导数据库的设计,从而开辟了数据库史上新的一页。规范化是通过一系列的测试,来检查设计的关系(二维表)是否符合某一范式的要求。 后来随着时间的发展,越来越多的范式被提出,如图3-1所示。这些范式是嵌套的,就是说,一个范式是在另一个范式之上再做进一步的约束而形成的。 但是,很少有人对这些范式及研究范式的人提出过疑问、进行过反思。 表3-2 图书出版社对应表:出现了冗余,冗余会带来插入删除更改异常 范式 第一范式(First Normal Form,1NF):表的每个列包含且只包含一个值。任何符合关系定义的数据表都在第一范式中。实际上,第一范式就是要求表中的每一列必须是单值,数组和重复的组都不能作为列的值。 第二范式(Second Normal Form,2NF):一个第一范式的表中,每个非主键列都可以从主键列得到。 第三范式(Third Normal Form,3NF):一个第二范式表中的所有非主键列的值,能且只能从主键列中得到。 第三范式已经解决了大部分日常使用中会出现的操作异常,剩下的是那些不常出现的操作问题,要解决这些问题,需要更高的范式进行约束。 数据库规范化设计的优点 规范化设计为数据库提供了许多的好处,下面列举了一些主要的优点: l???????? 大大改进数据库的整体组织 l???????? 减少了数据冗余 l???????? 增强了数据的一致性 l???????? 增加数据库设计的灵活性 规范化处理数据库设计,能减少从用户、开发人员到数据库管理员的工作量,使他们能把更多的精力投入到其他工作中。数据冗余的有效控制,能简化数据结构,节省数据的存储空间。由于重复数据的减少,数据的不一致性也大大改善,同时也减轻应用程序为了维护数据的一致性而所花费的代价。这样在进行业务扩充与改造时,数据库的修改也变得相对容易。 数据库规范化设计的缺点 对数据库设计进行一定程度的规范化,的确能优化数据库的操作,但不必要的规范化却会带来不必要的麻烦,降低性能,类似的例子还有很多,例如多表联合查询的查询速度要比单表查询慢,有时为了处理事务与数据查询,规范化的数据库比非规范化的数据库要占用更多的CPU,内存和I/O等等。 规范化的目的,只是为了提升数据库的性能。当发现规范化后反而造成了不必要的开销,从而降低了数据库的性能,此时,你应该退一步,相应降低范式的级别,才会看到海阔天空的世界。 关系数据库规范化设计理论的反思 反思1:应该让数据库规范化设计的理论,从数学家的书本中或课堂上解放出来,变成软件分析师或设计师的强大设计武器。这里的解放方法,就是要通俗理解各级范式。所谓通俗理解,就是从工程应用上去理解,从数据库设计上去理解,而不要从抽象的数学上(函数依赖、多值依赖、连接依赖等)去理解。 反思2:应该知道,数据库规范化设计理论的目标或实质,就是要在数据库设计中实现“三化”,即“属性原子化、主键原子化、实体原子化”,或者说是“列原子化、键原子化、表原子化”。在这“三化”中,最难的是“实体原子化”,第三范式以上的各级范式,实质上都是为了解决“实体原子化”的问题。试问:如果一开始就用这“三化”思想来指导数据库设计,那么不就完全符合了各级范式的标准了吗?是的,当然是这样。 反思3:要辩证地看待“三化”思想。在实际设计中,为了提高数据库的运行性能,有时要进行一定程度的反规范化设计,即适当增加冗余,达到以空间换时间的目的。这就叫做理论联系实际、实事求是。 关系数据库规范化设计理论的实质 理解了这三个反思,你就能将深奥的数据库规范化设计理论,变成通俗易懂的数据库设计实践指南。理解了这三个反思,你就能摇身一变,成为一个企业派的数据库分析与设计专家。 通过上述讨论,我们得出如下定理。 【定理3-1】 关系数据库规范化设计理论的实质,就是在数据库设计中实现属性原子化、主键原子化、实体原子化。 由此

文档评论(0)

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

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

1亿VIP精品文档

相关文档