数据库的设计方法探讨 |
2012-06-13 19:39 作者:祝明慧 来源:硅谷网-《硅谷》杂志 HV: 编辑:GuiGu 【搜索试试】
|
|
摘要:21世纪以来,随着科学技术的不断发展,身处信息化时代的我们,信息对于我们的重要程度不言而喻。海量的信息其实就是海量的数据,如何存储与利用这些数据的研究,就应运数据库的产生。自然数据库设计也就成一项专业技能。数据库可以分为层次、网状和关系数据库这三类,今天我们主要的就是来探讨关系数据库设计方法,这也是目前用途最广的一类数据库。
关键词:关系数据库;数据库设计;数据库优化;DBMS
中图分类号:TP392文献标识码:A文章编号:1671—7597(2012)0420
【《硅谷》杂志2012年4月刊文】数据库设计其实就是根据需求要实现什么功能,需要存放什么数据,然后我们根据这个来设计最优的数据存储方式,以及如何提高读取数据,新增数据,更新删除数据的速度。数据库设计可分为需求分析阶段、概念设计阶段、逻辑设计阶段和物理设计阶段这四个阶段,这也是软件工程化的思想。需求分析阶段主要是和客户沟通,了解客户具体的需求,换句话说就是去了解要存放什么数据。概念设计是根据需求分析阶段得到的用户需求,然后针对需求对数据库做大体上的设计规划。逻辑设计阶段的主要任务是分析数据之间的相互关系,以及确定整体的设计框架。物理设计阶段则是对每个表做具体的设计,如定义字段、键主键等。
1数据库分析和设计阶段
在数据库的需求分析阶段,需要开发人员深入到每一个需求客户中去挖掘以及分析,弄清楚用户的需求。绝大多数用户对相关数据库技术可能并不是很了解,开发人员尽量不要用专业词语跟客户沟通,其实很多时候用户可能都不知道自己的准确需求,因此这就需要调研人员从多种角度、多个方位去与用户沟通交流,最大程度的弄明白用户的各种需求。数据库设计的基础就是基础分析,这也是数据库设计环节里难度最高、也最难控制的一个阶段,一般都要经过无数次重复的调研以及反向调研,才最终确定。同时需求分析的好坏,整个数据库的设计都会受到影响,所以这一阶段至关重要。强调一点的是,这个阶段是伴随数据库设计整个周期的。在数据库的概念设计阶段,数据库开发设计人员要从需求分析阶段得出到的结果,从用户的眼光出发,勾勒出各种数据的处理细节,彼此之间的联系,最后让用户理解并能够操作设计出的数据模型。在这个阶段关系型数据库呈现的是一种设计好的用户需求E-R图。在此基础上,就算是在需求分析阶段没有全面充分考虑到或是遗漏的任务也可以做出及时的补救。实体关系图可以一目了然的看清数据间的联系与处理,并且还可以给数据库开发设计人员,下一个环节的设计提前做好准备,这也是数据库设计最核心、最关键的部分。
2数据库逻辑与物理设计阶段
数据库逻辑设计阶段是指把上一阶段获得的,独立于其他数据库管理系统的E-R图,转换到另外一种具体的数据库管理系统中,并做设计开发。这个阶段需要考虑具体数据库系统的支持的关系模型转换,并根据已有的功能及结构来把实体模型转换为关系模型。设计数据库的细节也是数据库物理阶段的设计,类似于软件工程的详细设计,需要设计数据的存储类型、字段长度的多少,主键设置什么字段,索引设置在哪些字段上,索引数量的建立,以及从数据库整体结构出发考虑到数据的安全性、完整性和效率性。这一阶段说起来简单明了,其实是需要深厚的数据库设计功底和丰富的设计经验才能设计得出完美的数据库。一项索引就可以让人探索研究很久,在哪里建索引,何时建、建多少?这些都不单是理论就能得到最优的结果,需要长期的积累和尝试才能得到。
3数据库SQL的优化
数据库设计当然不可缺少的是数据库SQL的优化,这里我们探讨下数据库SQL优化要注意的几点:
1)勤用WHERE语句。这是设计人员都知晓的,数据库查询效率的高低程度,是人们评判数据库设计的好与坏的一个重要标准,不可怀疑,采用Where条件语句查询数据库,可以提高数据库查询性能。如,在众多报表统计的时候,如果数据量是非常大的时候我们导出数据都是有时间段限制。
2)灵活使用函数。如COUNT函数,要合理放置COUNT函数的位置,在通过COUNT函数做统计记录的时候,空行的记录也是会考虑的因素,还有要灵活跟其它函数搭配使用,如与DISTINCT函数结合应用等等。
3)只查询必要显示字段,少用*号。数据库检索的速度跟数据量的大小息息相关,在查询的时候,只查询必要的数据及字段是必须要注意的,有时候,用户不同的查询需求可能大多数数据都是相同的,只有一少部分数据不同,为此,我们就得考虑这些内容是放在同一张表中还是不同的表呢,假如仅仅只考虑技术这方面,那两者的实现也不会有太大的难度。可是,要是考虑数据库的性能,那就需要利用不同的表满足的不同的需求。一种是安全性的考虑,可以通过设置不同的访问权限设计不同的表格。可以看到,数据库详尽化,在权限控制上则会更加的灵活。另一方面,数据的查询效率,跟数据内容的多少也有非常密切的关系。设计人员必须学会依据不同用户需求,设计出不同类型的表。也许可能这样在设计的时候花的时间更多,物理空间占的跟大,但确可以提高数据库的性能与安全性。这是非常划算的。
4)利用注释提高查询语句的可读性,这也是专家级的数据库设计人员必备的习惯之一。注释不会对数据库性能产生任何不良影响,充其量就是占一定的物理磁盘空间,跟程序开发一样,注释提高代码的可阅读性,让别人很轻易就看懂代码,便于后续的维护和二次开发。在我们写注释的时候,应该要注意一点。最好用英语写,因为众多数据库对中文的支持不好,在导入数据库文件的时候可能会出现乱码问题,或者干脆被忽略掉。注释的编写也有规范的,虽然没有那个数控公司提出这种规范,其实在业界已经形成了注释规范。如,写函数或触发器的时候,第一要说明该函数或触发器的功能作用。然后说明要传入参数,有几个参数,分别说明类型。然后有没有返回值及返回值的类型等等。最后一点值得关注的是注释所放的位置,通常都是放在函数和存储过程的开头。当然个个函数体内也是要写一点必要的注释,如太复杂的思维逻辑必须有注释。
4创建视图
数据库设计中我们要考虑的因素很多,如考虑是否方便开发,数据库成本,数据的冗余度,这里本人总结出一些经验,如外键的使用,并不是外键建的越多越好,是外键把许多独立的实体牵连在一起,不仅加重了维持数据一致性的负担,也使数据库应用复杂化,加重了程序开发负担。如信息隐蔽,我们可以通过写一些触发器、存储过程,函数来明了化、单元化我们的处理过程,易于后期的维护与管理。还有视图技术的利用,视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。通过创建适用的视图极大地提高查询的效率,而且对数据的安全性起着极大的作用。当然我们也应该注意视图的缺点,前面我们已经知道视图是根据实际表通过特殊处理加工而成,如果单单为了达到我们需求而过多的连接查询,会影响数据的响应速度,这就得不偿失了,所以,如何利用好View对一个数据库设计人员来说是非常重要,也是数据库设计人员必修的一项技能。般来说,视图创建可以分为四步,第一步先考虑Select语句的编写。第二步对这个Select语句进行测试。第三步视图的修饰。第四步创建立视图。
5结语
总而言之数据库设计的原则就是在数据处理速度与数据冗余之间找到合适的平衡点。数据设计阶段包括需求分析阶段、概念设计阶段、逻辑设计阶段和物理设计阶段这四个阶段。我们不仅可以设计合适的数据结构包括建主键、索引、外键等方式来提升数据库的性能,同时还可以利用数据库管理系统提供的试图、存储过程、函数来进一步优化我们的数据库。
参考文献:
[1]石玉强,应用型本科《数据库原理及应用》课程立体化建设研究[J].中国科技博览,2010(8):179-180.
[2]邓立国、马宗民,模糊时态数据库设计中模糊/时态向量空间特性研究[J].计算机科学,2011,38(6):211-216.
[3]李金靖,浅析软件开发中的数据库设计的理论和实践[J].计算机光盘软件与应用,2011(15):218-218.
[4]黄益栓、李闵、杨进等,数据库案例教学平台的设计[J].中国教育技术装备,2011(27):109-110.DOI:10.3969/j.issn.1671-489X.2011.27.109.(注:本文版权归作者本人和硅谷杂志所有,禁止他人未经授权转载)
|
|
|
|
【对“数据库的设计方法探讨”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|