教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · 综合开发应用

基于pureXML技术地数据库表结构扩展(1)

学院最新推荐文章
教程推荐
『基于pureXML技术地数据库表结构扩展(1)』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2008-8-12 

信息系统交付使用之初,数据库表结构的设计往往逻辑结构清晰,管理使用方便,但是当信息系统项目运行一段时间,随着业务的不断变化和增加,处理流程不断的变革,信息系统需要从前台界面到后台数据库的完善和修改,势必要对数据库表结构必须要进行扩展。我们通常的数据库扩展往往采用增加备用字段、扩展字段的内涵、增加主从表和管理表的方式,这种数据库表结构的扩展往往会带来营运的中断和操作的风险,本文通过分析常见的数据库表结构的扩展方法中的不足,提出了几种基于pureXML方式的数据库表结构的扩展模式,可以成功的结束数据库扩展的技术难题。

概述

信息系统的建设往往遵循业务调研、需求分析、再进入到数据库和软件的概要设计、详细设计、代码编写等等阶段,在这个过程中,数据库设计者往往根据已有的业务调研、需求分析的成果进行数据库表结构的设计,这时的数据库的设计者是通盘考虑,全局谋划所设计的数据库结构,整个库表结构逻辑清晰,管理方便并且符合3NF的要求。信息系统项目运行一段时间,随着业务的不断变化和增加,处理流程不断的变革,这种业务需求的驱动下,我们的软件体系也需要不断的修改和完善,这种修改和完善不仅是界面的调整和模块的增加,而且必须对数据库表结构进行必要的调整和修改。

这种项目维护期间的数据库调整和扩展,必须对数据库设计文档进行修改,对数据字典进行调整,理想的情况是文档齐备、资料完整,但实际工作中,由于设计和开发人员的责任心和对文档的轻视,每次对数据库表结构的调整都会造成数据库库表结构混乱,为今后的工作带来系统管理、维护和软件的再次修改和调整带来隐患;其次,数据库的扩展和调整中,对数据库设计者要求很高,很容易导致数据库设计中范式设计的隐患,进而造成数据库性能的急剧下降;最值得注意的是,由于数据库存储有大量的业务数据库,每次对数据库字段的修改和调整必须停机操作,从而带来运营的中断和操作的风险。特别是对于上线运行的核心业务系统,和若干7×24小时的业务系统,每次的数据库停机操作对营运的影响非常的巨大,而且还可能引来不良的社会影响。

为了对数据库进行有效的扩展,实际工作中往往采用预留备用字段、字段内涵扩展、增加从表扩展和增加关联表的方式进行扩展,这种扩展往往存在若干的问题:

设计之初预留备用字段带来的不足

为了减少对今后对数据库表中的字段调整,某些设计者在设计之初,根据经验对若干可能扩展的表中预留部分备用字段。预留备用字段的方式在某些程度上可以增加扩展的灵活性,但是的确存在如下隐患:

1、预留字段的数量无法预测,预留N个还是预留N+1,由于无法预知需要预留的数量造成扩展的不确定性;
2、预留字段的类型无法预测,预留字符型还是数值,无法去预测和评估;
3、常见在预留的扩展字段中,这些预留的扩展字段往往会破坏数据库最基本的范式要求,数据库的范式的最基本要求就是原子性和唯一性,而扩展的字段本身的定义是不明确的,这是不未确定的,也就是非原子的和非唯一的。

表结构的字段数据量不扩展,扩展若干字段的内涵

数据库的调整会带来运营的风险,部分数据库设计者为了应付数据库存储的需要,不对数据库表结构的字段的数量进行增加,而是非常“聪明”的将某个字段的内涵进行扩展,使得某些字段中同时存入2+以上含义,由程序分析存入该字段的值的属性和内容。例如:某字段原定义为VARCHAR(4),如果存储字母开头的值,如A001表示意思XX;存储数值开头的值,如1000表示意思YY;还有一种方式就是采用间隔符,对字段进行扩展,例如A001+1000等形式。我们的数据库设计中,数据库表中的每一个字段都是单一属性,是不可再分的、原子性的,这个是数据库设计的第一范式理论,任何的数据库设计都应该遵守第一范式。这种设计不仅违反的数据库设计的第一范式理论,而且造成读取数据时需要程序进行“解码”后才能进行查询、统计等等,使得数据库的整体性能大大降低。

增加从表,但又不能确定从表的数量

当对库表进行扩展时,往往遇到存在1:N的情况时,这时必须增加从表来应对数据库的扩展,但是由于每次增加数据库从表时,无法预测需要增加多少个从表,每次增加从表都会造成数据库的修改和调整。

增加关联,但关联表的字段无法预测

由于业务逻辑的改变,如果发现原表T1,T2存在N:M的关系时,必须增加关联表,但是关联表的字段数量又无法预测,每次对关联表的调整又会造成对数据库的影响。

通过对数据库表结构中经常采用表和字段扩展的方式进行分析,我们都会发现对数据库的修改,往往会造成诸多的不便,而且值得注意的是每次修改数据库往往是业务需要非常紧迫,考虑到之前确保之前程序的稳定性和可靠性,此时又不能对原有的数据库进行调整和重组,DBA往往只能进行部分数据库表结构的字段,往往最终导致数据库表结构混乱,以及管理维护的失控。

数据库表结构扩展原则

要做好数据库的调整工作,为了减少对原系统的影响和历史数据的存储,我们在调整中往往按照以下三条原则来进行数据库的调整:

1、对修改的关闭,对扩展的开放。原有的表结构中各字段都含有数据信息,不能对原有字段的删除修改。如果删除这些字段往往造成数据丢失,特别是对于某些关联表的数据库操作更是风险极大;

2、对表结构的修改最关键是减少对运营的影响。数据库的调整,每次都需要备份数据,中断业务系统,中断业务系统会造成生产经营的巨大损失和不良的社会影响,所以对数据库的调整必须采取措施减少对生产系统和运营系统的影响;

3、表结构很少重组结构,而只是增减字段。表结构的扩展是基于已有系统的运行,考虑到已有系统的稳定运行,我们很少去重构重组原表结构,只是增加和扩展表中的字段和数据库表。

DB2 v9的pureXML的技术特点

考虑到参加的表和字段扩展中遇到的问题和数据库表结构调整的几个基本原则,我们认为pureXML能够帮助我们较好的解决这个问题。DB2 v9中的pureXML技术第一次真正意义上提供了一种与XML层次型结构相匹配的层次型存储方式和相对应的操作访问方式。在pureXML中,XML作为一种新的数据类型。几乎每个DB2组件、工具和实用程序都已得到增强,以识别和处理这种新数据类型。新的存储模式以解析后的注释树形式(类似于XML文档对象模型(DOM))保留XML,它与关系数据存储分开。

图1:DB2的新XML关系存储模型

在两种数据存储(关系和XML)的顶部的数据库引擎可以处理XQuery、Xpath、SQL和SQL/XML。该引擎采用带有SQL和XQuery解析程序的双语查询编译器。因此开发人员可以根据具体情况更适用的原则使用SQL或XQuery任何一种语言(或同时使用这两种语言),支持事务级的XML操作。


[1] [2] 下一页  

作者:无 来源:无
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - 综合开发应用
普通教程用内存数据库技术提升高端路由器
普通教程时态数据库在电子商务中地运用
普通教程怎么样增涨Web网站增压能力
普通教程企业级数据仓库取代数据集市
普通教程多数据库环境地连接策略
普通教程Sybase推出功能完备SQL Anywher
普通教程SOA在企业发展中地影响
普通教程DBA地利器:企业监控器简化MySQ
普通教程影响数据中心十大颠覆性技术
普通教程后ERP时代地猜想
普通教程通过数据仓库来完成少花钱多办事
普通教程多进程数据库引擎和单进程、多线
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光