有效数据库设计的目标..docVIP

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

有效数据库设计的目标 借助现代数据库工具,几乎所有人都能够创建数据库。但是问题是,得到的数据是否有用? 如果不能从其中快速、可靠且一致地取出数据,那么数据库不会有多少用处。如果数据库里都是不正确的或自相矛盾的数据,那么将毫无用处。此外,如果数据库被窃取、丢失或者当系统崩溃时遭受到仅半写入的数据的破坏,那么它也是无用的。 现代数据库工具、好的数据库设计和一些常识可以解决所有这些潜在的问题。只要能够了解这些问题的实质,则可以避免它们。 获得有用数据库的第一步是了解数据库的目标。数据库应该完成哪些任务?怎么样能使数据库变得有用以及它能解决什么样的问题?使用一个强大的数据库工具但却没有制定目标就像驾驶飞机在云中飞行而没有罗盘:您拥有自己需要的工具但是却不知道方向。 本章将描述数据库设计的目标。通过研究诸如文件这样能够充当数据库的信息容器,则可以定义数据库应该具有的特性和它们应该避免的问题。 在本章将会学到如下内容: 好的数据库设计之所以重要的原因。 可以充当数据库的各种不同的信息容器的优点和缺点。 如何使计算机化的数据库受益于这些优点并避免那些缺点。 好的数据库设计有助于达成数据库目标的方法。 CRUD和ACID的概念以及它们和数据库设计相关的原因。 1.1 理解数据库设计的重要性 请暂时忘记本书是有关数据库设计的,并考虑常规的软件设计。软件设计在软件开发中起着重要的作用。设计规划了今后开发将会采用的大体结构和方向,决定系统各部分之间的交互关系以及哪些子系统对应用程序的其他部分提供支持。 如果应用程序的基础设计是有缺陷的,那么系统整体上将存在危险。设计中错误的假定会渗入应用程序最低级的代码,导致子系统出现问题。构建在这些子系统上的高级系统将沿袭设计缺陷并且它们的代码很快也会受损坏。 有时,代码受到一点损坏便会弥散到整个系统并且直到项目进入到相对较晚的阶段才会被注意到。项目持续的时间越长,不正确的假设越难更改,开发人员越不愿意舍弃整个设计并重新开始。问题在系统中存在的时间越长,越难消除它们。某些情况下抛弃所有事物并从头开始可能更为容易,但这是一个大多数人都不愿意向更高的管理层呈交的决定。 项目管理 我的一个朋友是工程师,参与了一个非常庞大的卫星项目。过了一段时间后,工程师们都意识到在当前的技术条件和设计状况下,该项目是不可行的。最终项目经理被迫向高层主管汇报此情况,他本人因此被解雇了。新的项目经理坚持了一段时间后也被迫向高层主管承认此项目不可行,当然他也被解雇了。 此项目在新的项目经理接手后又继续进行了一段时间,但是他后来也认识到该项目是无希望的,并且直到最后上层主管也不得不承认项目是没有结果时他也被解聘,最终整个项目彻底失败。 如果他们前期在项目设计上花费更多的时间并即时修正问题或立刻认识到项目不可能完成并在一开始就废弃项目,那么便可以节省大量时间、金钱和人力。 构建一个项目往往与建造一座房屋或摩天大楼相似。在没有经过基于完善的建筑原则而深思熟虑的设计之前,完全不可能建造一个造价高达几十亿美元的摩天大楼。但是,软件开发人员往往在还末确定肯定能完成软件开发时就匆忙开始编写代码。编码比设计更有意思、更令人感兴趣。编写代码还允许开发人员告知管理层和客户他们已经写了多少行代码,这样看似开发人员正在实施软件开发,即使这些代码由于错误的假设而毫无用处。只有到了后期,他们才认识到基础设计有缺陷,编写的代码没有意义,而项目此时已经陷入了巨大的麻烦之中。 现在回到项目设计。应用程序设计中数据库设计是最为关键的一项任务。数据库是信息的存储库,供应用程序的其他部分进行管理并显示给用户。如果数据库没有存储正确的数据,没有安全地保存数据,或者应用程序无法找到所需的数据,那么应用程序很少有成功的机会。在这里,无用输入无用输出(GIGO)原则完全适用。如果底层的数据不可靠,那么无论使用这些数据的应用程序完成什么任务,结果充其量也将是不可信的。 例如,假想构建了一个订单跟踪系统用以快速获取客户以往订单的信息。遗憾的是,每次要求程序提取某个客户的记录,但它返回的结果却略有出入。尽管程序能够快速找到数据,但是结果并不足够可信赖而被使用。 设想已经构建了一个令人吃惊的程序,该程序能够跟踪完成一个复杂任务的数千道工序,如建造一艘游轮或载客喷气式飞机。该程序能够跟踪每道工序的完成状况,确定何时需要订购新的零件以便为后续建造阶段做好准备,甚至还能确定今后采购的现行价格从而决定是现在购买还是等到需要时再购买零件。但是,程序将花费数个小时重新计算复杂的任务进度安排和价格详情。尽管计算结果是正确的,但是计算过程太慢使得用户无法有效地做出任何更改。更改飞机座椅织布的颜色或游轮走廊上使用的瓷砖都会延误整个项目。 假设构建了一个有效的订阅应用程序,该程序允许客户订阅公司每季的资

文档评论(0)

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

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

1亿VIP精品文档

相关文档