数据库系统维护优化策略

(整期优先)网络出版时间:2011-11-21
/ 2

数据库系统维护优化策略

史宁宁郝明渊

史宁宁郝明渊

(河北大学人民武装学院,河北石家庄050000)

中图分类号:TP311.13文献标识码:A文章编号:1003-2738(2011)11-0252-02

摘要:要做好数据库的日常管理与维护,不仅要求数据库管理员熟练掌握专业技术,还要有足够的细心和高度的责任心。科学有效地管理与维护数据库系统是不断探讨的课题。

关键词:数据库;维护;优化策略

大量的数据存储、共享、访问和修改,都需要通过数据库系统来实现。数据库系统作为信息的聚集体,是计算机信息系统的核心,其性能在很大程度上影响着企业信息化水平的高低。科学有效地管理与维护数据库系统,保证数据的安全性、完整性和有效性,己经成为现代企业信息系统建设过程中的关键环节。数据库管理的意义重大,关系到企业信息系统的正常运作,仍至整个企业的生死存亡。近年来,随着多媒体技术、空间数据库技术和计算机网络的飞速发展,数据库系统的发展十分迅速,应用领域愈来愈广。如何合理高效地为政府管理人员或企业高层决策人员、设计数据库管理系统服务已成为当务之急。

一、做好数据库的日常管理与维护

数据库系统在信息化建设中的重要地位和作用告诉我们,数据库的日常管理与维护不容小视。为保证数据库数据的安全,企业应该做到未雨绸缪。

(一)完善管理制度,强化监管力度。数据库系统的安全与企业自身内部的安全机制、内外网络环境、从业人员素质等密切相关。因此,企业应该完善网络系统安全规章制度,防范因制度缺陷带来的风险;企业应该规范操作流程和故障处理流程,减少人为失误与故障,提高故障处理速度,缩短故障处理时间;企业应该通过建立科学合理的责任追究机制,防止出现由于工作态度、工作作风等各种人为因素导致的数据库安全事故。

(二)采取措施,确保数据库数据的安全。保证数据库数据的安全是数据库日常管理与维护工作的首要任务,企业需要采取的安全措施主要有:

确保网络及操作系统安全。网络系统是数据库应用的外部环境和基础,网络系统安全是数据库安全的第一道屏障。从技术角度讲,网络系统层次的安全防范技术有很多种,大致可以分为防火墙、数字签名与认证、入侵检测等。操作系统是数据库系统的运行平台,能够为数据库系统提供一定程度的安全保护。操作系统的安全控制方法主要是采用隔离控制、访问控制、信息加密和审计跟踪。主要安全技术有操作系统安全策略、安全管理策略等。

加强用户身份验证。用户身份验证是数据库系统的重要防线。利用窗体身份验证数据库程序的漏洞,进而获取存储在数据库中的用户身份验证密码,这是目前对网络数据库攻击最常见的方式。对此,企业信息部门通常使用带有salt值的单向密码哈希值,以避免用户密码在数据库中以明文形式存储,减轻字典攻击带来的威胁。

对重要数据加密。数据加密交换又称密码学,是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行交换,实现信息隐蔽,从而有效保护信息的安全不受侵犯。数据库加密要求加解密的粒度是每个记录的字段数据。采用库外口加密的方式,对密钥的管理较为简单,只需借用文件加密的密钥管理方法,将加密后的数据块纳入数据库,在算法或数据库系统中做些必要的改动就行。这样有利于公共数据字典的使用和维护系统的完整性。

二、搞好用户需求分析采集

设计一个数据库,第一件的事情就是搞好用户需求分析,需求分析是对现实世界深入了解的过程,数据库能否正确地反映现实世界,主要决定于需求分析。而需求分析的采集主要是由设计人员和该单位有关工作人员合作进行的。在收集用户视图需求的数据和整个系统需求的数据时,开发人员将会了解当前系统的运行方式。当然,我们正在建立一个新的系统,在给新的系统引进新的优良特性的同时还应该尽量保留老系统的好的方面。与此阶段相关的一个非常重要的活动是怎样处理有多个视图的情况。

需求分析的结果整理成需求说明。需求说明是数据库技术人员和应用单位的工作人员取得共识的基础,必须得到有关管理人员确认。需求说明经过评审后,才成为正式的需求文档,为下一步的数据库设计打好基础。

三、搞好数据库逻辑性设计

数据库逻辑设计决定了数据库及其应用的整体性能,调优位置。如果数据库逻辑设计不好,则所有调优方法对于提高数据库性能的效果都是有限的。为了使数据库设计的方法走向完备,数据库的规范化理论必须遵守。规范化理论为数据库逻辑设计提供了理论指导和工具,在减少了数据冗余的同时节约了存储空间,同时加快了增、删、改的速度。

另外,在规范的数据库逻辑设计时,还应考虑适当地破坏规范规则,即反规范化设计,来降低索引、表的数目,降低连接操作的数目,从而加快查询速度。常用的反规范技术有增加冗余列、增加派生列、重新组表等。

增加冗余列:有时要进行查询的列分布在不同的表中,如果这个连接查询的频率比较高,那就可以根据需要,把其它表中的这一列加进来,从而使得多个表中具有相同的列,它常用来在查询时避免连接操作。但它的坏处就是需要更多的磁盘空间,同时因为完整性问题需要增加维护表的工作量。

四、提高数据库关系模式规范化程度

对数据库进行关系模式规范化不仅有助于消除数据库中的数据冗余、删除、插入等异常出错的可能性,而且,还使你的设计比较科学、规范,同时也使你的系统的伸缩性,以及后期维护特别容易。

3NF通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。其定义为:关系R中若不存在这样的码X、属性组Y及非主属性Z(Z包含于Y)使得X决定Y、Y不依赖于X、Y决定Z成立,则称R属于3NF。

此外,还有BCNF,4NF、5NF等更高层次的关系规范化,但是不是关系规范化的程序越高,就越实用呢,就越能满足我们的要求呢?我只能用不一定来回答,因为这要视情况而定。其实,在有些项目中是非常慎用关系模式的。因为如果规范化的程序越高,势必要将一个大表拆分成几个小表,在这些小表中用一些键值进行联接,在查询时就需要对多个表进行连接,而联接时最易产生迪卡尔积,这样查询结果集就成几何倍增,非常影响查询的效率。所以为了追求效率我们有时不对表进行关系规范化也是必要的,这样的例子很多。

五、运用视图隐藏细节

我们考虑这样的情况,当我们在进行数据库模式设计时需要将一张大表拆分为几张小表,而在进行查询时又需要将几张小表合并为一张大表。如果表比较多的话,我们就要编写复杂的SQL语句,有没有一种机制将这几张小表一次合并为一张虚表,然后对一张表查询,这样操作起来就会简单得多。答案是肯定的。在Oracle9i中可以用视图解决。视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

视图可以隐藏基表。可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据。这种方法可以保护用户和应用程序不受某些数据库修改的影响。

总之,我们在进行数据库设计时,一定要综合考虑多种因素,具体问题具体分析,既要考虑当前实现的可行性,又要考虑以后的升级维护;既要减轻前台编码的负担,又要让后台的管理简单易行;既要让前台的查询效率高,又要让后台的实现方便可行。数据库设计是一项综合性设计,决非一朝一夕之功,只有在工作、学习中多思考、多动脑、多总结、灵活运用所学知识,综合考虑各种因素,平衡把握每个细节,这样数据库设计才会更加科学、合理。

参考文献:

[1]大型数据库技术及应用,重庆大学出版社,王越,刘加伶,李梁著。

[2]数据库系统概论,高等教育出版社,王珊,萨师煊著。

[3]数据库管理系统,清华大学出版社,尹买华著。

[4]软件设计方法,清华大学出版社,王选著。