




已阅读5页,还剩52页未读, 继续免费阅读
(计算机科学与技术专业论文)基于hibernate的数据维护工具的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 ) f 广一 、 , 1 j 。 一 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名! 虱缝一日期型三:! 旦 导师签名: 日期:2 坠叫l 严 ;,r ,入1 乏 咚 l : 广一 北京邮电大学硕士学位论文 基于h i b e r n a t e 的数据维护工具的研究与应用 基于h ib e r a n t e 的数据维护工具的研究与应用 摘要 随着信息技术的发展,越来越多的企业采用信息系统为它们的 工作服务,为了满足不同企业对同类系统的需要,例如绩效考核管理 系统,系统必须具备良好的跨数据库功能。 h i b e r n a t e 是一个对象关系映射的框架,它对j d b c 进行了轻量 级的对象封装,使得j a v a 程序员可以真正面向对象编程,而无需关 心底层数据库的实现。基于h i b e r n a t e 的应用软件具有良好的跨数据 库功能,以s t r u t s + h i b e r n a t e + s p r i n g 为技术框架的w e b 信息系统越 来越多的受到企业的青睐,为了更有效的维护企业业务数据,作者开 发了一套基于h i e r n a t e 的通用数据维护工具。该工具已经应用于多 个信息系统中。 该工具具有数据备份、恢复、异构数据库移植和数据监控等基 本维护功能,且拥有良好的性能,能够很好的满足程序员和测试人员 在开发、维护工作中的需要。该工具的最大特点是具有跨操作系统性 和跨数据库管理系统性,即可运用于任何主流的操作系统和数据库管 理系统之上。 在该工具的研究方面,本文的主要贡献如下: 1 提出了基于对象关系映射文件和持久化类的排序算法思想,对基 于持久类本身的排序算法进行了否定,并论证说明。 2 详细给出了可序列化数据持久化类排序的改进算法,该算法提出 了打破结点环路的方法,并拥有0 ( n + e ) 的时间复杂度,其中n 为 持久化类的个数,e 为持久化类之间的依赖边数。 3 将该工具应用于实际的信息系统中,并获得良好的性能,性能改 进方面主要做了流程再造、运用多线程机制和运用缓存机制等三 方面的工作。 4 给出基于h i b e r n a t e 的通用数据监控设计方案,并提供功能接口。 关键词:数据维护工具,数据监控,持久化类排序算法,性能优化 l r ,- f , 产 一 冬 l 厂 一 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 唧r e s e f 气r c ha n da p p l i c a t i o n0 f d a i am 已虹n t e n a n c eb a s e do nh i b e r na t e a bs t r a c t w i mt h ed e v e l o p m e n to fi n f o r m a t i o nt e c h o n l o g y , m o r ea n dm o r ee n t e r p r i s e su s e i n f o r m a t i o ns y s t e m st oi m p r o v ew o r ke f f i c i e n c y i no r d e rt om e e tt h er e x l u i r e m e n t so f d i f f e r e n te n t e , v r i s e si nt h et h es a m es y s t e m ,s u c ha sp e r f o r m a n c em a n a g e m e n t ( p m ) s y s t e m ,t h es y s t e mh a st op r o v i d et h ef u n c t i o nt oc r o s sd a t a b a s e h i b e r n a t ei sa no b j e c tt or e l a t i o n a ld a t a b a s em a p p i n gf r a m e w o r k , w h i c hm a k ea l i g h t w e i g h te n c a p s u l a t i o nt oj d b c , t h e nj a v ap r o g r a m m e r sc a nt r u l yo b j e c t - o r i e n t e d p r o g r a m m i n g ,a n dw i t h o u tc o n c e l t lf o rt h eu n d e r l y i n gd a t a b a s e a p p l i c a t i o ns o f t w a r e b a s e do nh i b e r n a t eh a sag o o dc r o s sd a t a b a s ef u n c t i o n a l i t y , t h ew e bi n f o r m a t i o n s y s t e m sw h i c ht a k es t r u t s ,h i b e r n a t ea n ds p r i n ga st e c h n i c a lf r a m e w o r kh a sb e c a m e m o r ea n dm o r ep o p u l a rb ye n t e r p r i s e s w i t ht h ep u r p o s eo f m o r ee f f i c i e n tm a i n t e n a n c e b u s i n e s sd a t a , t h ea u t h o r sh a v ed e v e l o p e das e to fg e n e r a ld a t ab a s e do nh i b e r n a t e m a i n t e n a n c et o o l ,w h i c hh a sb e e na p p l i e dt os e v e r a li n f o r m a t i o ns y s t e m s t h i st o o ln o t o n l yc a nb a c ku pd a t a , r e c o v e rd a t a , m i g r a t ed a t aa n dm o n i t o rd a t ae t c , b u ta l s oh a sa g o o dp r e f e r m e n t ,s o a st of u l f i l lt h ep r o g r a m m e r sa n dt e s t i n gp e r s o n n e li nt h e d e v e l o p m e n ta n dm a i n t e n a n c eo fn e e d w h a t sm o r e ,t h i st o o lc a nb ea p p l i e dt oa n y m a i n s t r e a mo p e r a t i n gs y s t e m sa n dd a t a b a s em a n a g e m e n ts y s t e m ,w h i c ha l s oi st h e b i g g e s ta d v a n t a g e i nt h i sp a p e r , t h er e s e a r c ho nt o o l sm a i nc o n t r i b u t i o na sf o l l o w s : f i r s t l y , p u t f o r w o r dt h e s o r t i n ga l g o r i t h mw h i c hb a s e do no b j e c t - r e l a t i o n a l m a p p i n gf i l e sa n dp e r s i s t e n tc l a s s e s ,a n dd e n yt h es o r t i n ga l g o r i t h mw h i c hb a s e do n p e r s i s t e n tc l a s s e s ; s e c o n d l y , g i v e nt h ei m p r o v e da l g o r i t h mo fp e r s i s t e n ts e r i a l i z a b l ec l a s s i n d e t a i l ,w h i c hp u tf o r w a r dt h eb e s tw a yt os o l v ec r u n o d el o o pa n dh a st i m ec o m p l e x i t y o fo ( n + e ) ,a n dne x p r e s s q u a n t i t y o fp e r s i s t e n t c l a s s e s ,ee x p r e s sq u a n t i t yo f d e p e n d e n c ee d g ea m o n gp e r s i s t e n tc l a s s e s t h i r d l y , t h i st o o lh a sb e e na p p l i e di nt h ea c t u a li n f o r m a t i o ns y s t e m ,a n dh a sg o o d p e r f o r m a n c e ,t h ep e r f o r m a n c ei m p r o v e m e n tw o r ki n c l u d e sr e e n g i n e e r i n gp r o c e s s , u s i n gm u l t i t h r e a d i n gm e c h a n i s ma n du s ec a c h i n gm e c h a n i s m ,e t c ; f o u r t h l y ,p u tf o r w a r d ag e n e r a ld a t am o n i t o r i n gd e s i g ns c h e m eb a s e do n 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 h i b e r n a t e ,a n dp r o v i d ef u n t i o n a li n t e r f a c e s k e yw o r d s :d a t am a i n t e n a n c et o o lm o n i t o rd a t at h es o r t i n ga l g o r i t h mo f p e r s i s t e n ts e r i a l i z a b l ec l a s sp e r f o r m a n c ei m p r o v e m e n t l ,- 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 目录 第一章绪论。l 1 1 论文背景。l 1 2 论文目的和意义。l 1 3 论文内容。2 第二章数据维护研究现状3 2 1 基于数据库自带工具的数据维护。3 2 2 基于数据管道的数据维护4 2 2 1 数据管道简介4 2 2 2 基于数据管道的数据移植原理4 2 2 3 基于数据管道的数据移植实现5 2 3 基于h i b e r n a t e 的数据维护5 2 3 i h i b e r n a t e 简介5 2 3 2 基于h i b e r n a t e 的数据维护思想6 2 4 现有数据维护工具的分析比较7 第三章数据维护工具的研究。8 3 1 数据维护工具的总体思路8 3 2 数据持久化类排序算法的改进方案。9 3 2 1 理论分析9 3 2 2 算法分析。1 0 3 2 3 数据结构1 l 3 2 4 结点加入算法1 l 3 2 5 结点退出算法1 2 3 2 6 环路处理算法1 2 3 2 7 错误处理机制。1 2 3 3 性能优化1 2 3 3 1 流程再造1 3 3 3 2 多线程机制1 5 3 3 3 缓存机制1 6 3 4 数据监控。1 6 3 4 1 总体思路1 6 3 4 2 数据结构1 6 3 4 3 数据操作l7 第四章设计与实现1 8 4 1 设计目标。l8 4 2 系统架构l8 4 3 系统层间的接口1 9 4 4 模块设计2 0 4 4 1 数据备份模块。2 0 1 数据结构2 l 2 预处理2 2 3 数据持久化类排序2 4 4 写入文件2 5 4 4 2 数据恢复模块2 7 4 4 3 异构数据库数据移植模块。2 8 1 跨操作系统的数据移植2 8 2 跨数据库管理系统的数据移植2 9 4 4 4 数据监控模块3 0 l 设计思路3 0 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 2 数据结构3l 3 功能实现3 2 4 5 澳4 试3 3 4 5 1 单元测试3 3 4 5 2 集成测试3 4 4 5 3 性能测试3 5 4 5 4 数据一致性测试3 6 第五章数据维护工具应用及分析3 7 5 1 应用背景3 7 5 2 应用环境3 7 5 3 工具配置与应用3 8 5 4 应用结果分析3 9 5 4 1 备份功能对比3 9 5 4 2 恢复功能对比4 0 5 4 3 异构数据库移植对比4 l 5 4 4 总结分析4 2 第六章总结4 3 6 1 论文工作总结4 3 6 2 下一步的工作4 4 参考文献4 5 j 改谢4 6 攻读学位期间发表的学术论文4 7 甄 氐 e l ,一 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 第一章绪论 1 1 论文背景 ) 随着信息技术的发展,越来越多的企业采用信息系统为它们的工作服务,信 息系统的开发也由针对具体企业开发向针对具体行业转变,从而有效降低同行业 信息系统的开发成本。这一转变就要求我们的信息系统必须具有良好的跨数据库 功能,从而满足不同企业的需要。以h i b e r n a t e 、t o p l i n k 等为代表的持久化中间 件的出现,很好的解决了这一问题。 h i b e r n a t e 是一个对象关系数据映射框架,它对j d b c 进行了非常轻量级的 封装,基于它的应用程序具有良好的跨数据库功能。然而应用程序仅仅具有跨数 据库功能,在我们的实际应用开发中还不够,以笔者所遇到问题为例: ( 1 ) 开发了一套基于h i b e r n a t e 的跨数据库的绩效考核管理系统,并在s q l s e r v e r2 0 0 0 服务器上测试通过,为了能够在o r a c l e 或d b 2 下进行测试时,充分 利用s q ls e r v e r2 0 0 0 上的已有数据,如何实现数据库数据的移植? ( 2 ) 为某公司开发的项目信息综合管理系统要求具有操作监控功能,不仅 对一些敏感的业务操作进行详细记录,而且当发现非法业务操作后,能够及时对 相关数据进行恢复。 以上问题是开发人员在开发过程中经常遇到的棘手问题,为了使开发人员从 数据维护中解脱出来,更好的专注于具体的业务开发,笔者试着研究开发一套基 于h i b e r n a t e 的通用数据库数据维护工具。该工具不仅能够满足异构数据库数据 移植的需要,也能够满足基本的数据维护的需要,如备份、恢复和数据监控等。 1 2 论文目的和意义 本文的研究目的是在h i b e r n a t e 的基础上,给出满足基本功能需要的数据库 数据维护方案,并加以实现。 基于h i b e r n a t e 的应用系统可以方便地利用该工具进行数据库数据的备份、 还原、移植及数据监控,无论是基于s q ls e r v e r 数据库数据的维护,还是基于 o r a c l e 数据库数据的维护,相对于工具本身来说都是透明的,它具有良好的跨操 作系统功能和跨数据库功能,且性能良好。它极大的方便了开发人员在数据维护 方面的开发。 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 1 3 论文内容 本文主要包括以下内容: 1 介绍了数据维护的研究现状,并对各种数据维护工具进行了比较分析。 2 论证基于持久化类本身的持久化类排序算法的不可行,提出基于持久化 类与对象关系映射文件的持久化类排序算法思路。 3 详细介绍改进的数据持久化类排序算法,并对其复杂度进行分析。 4 详细介绍通过流程再造、多线程机制和缓存机制等三方面提高数据维护 性能。 5 介绍了通用数据监控功能接口的设计思路和数据模型。 6 从设计目标、系统架构、模块设计和测试的角度,对该工具的设计与实 现进行了详细阐述。 7 介绍了该工具在绩效考核管理系统中的应用,并与其它工具进行对比分 析。 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 第二章数据维护研究现状 信息系统主要由应用程序和数据两部分组成,数据记录着一个企业或单位的 方方面面,并且随着业务的发展和时间的推移不断增长,应用程序则是对数据的 多样性展示和控制,可见数据维护在信息系统的开发和维护中占据着重要的位 置。目前数据库维护技术主要分为两类:使用数据库自带工具进行维护和编写软 件实现【1 6 】。本文探讨的基于h i b e r n a t e 的方案就属于后者。数据库自带数据维护 工具很多,例如s q ls e r v e r 的企业管理器和数据转换服务程序( d a t at r a n s f e r s e r v o r ) ,o r a c l e 的自带备份、恢复功能以及移植工具s q l * l o a d o r ,都是很好的 数据维护工具。编写软件实现也有很多种,根据应用的环境以及采用的技术不同 而不同,如基于p o w e r b u i l d e r 动态数据管道技术的数据维护、本文提出的基于 h i b e r n a t e 技术的数据维护等。下文将对基于数据库自带工具的数据维护、基于 p o w e r b u i l d o r 的数据管道的数据维护和基于h i b e m a t c 的数据维护进行重点介绍, 并分析比较。 2 1 基于数据库自带工具的数据维护 通常,数据库管理系统都有数据维护的相关工具,利用这些工具我们能够对 数据进行多种操作,如备份、还原、数据导入和数据导出等等。这些工具的特点 是: ( 1 ) 、功能众多、操作稍显复杂 数据库自带工具的功能很多,特别是在拥有客户端的情况下,用户的功能体 验更加丰富。以s q ls e r v e r2 0 0 0 为例,有企业管理器、查询分析器和数据转换 服务程序等,在企业管理器下面,可以进行查询、备份、恢复和修改等多种操作, 通过查询分析器,我们可以进行网络间的数据库访问,通过数据转换服务程序, 我们可以实现数据的导入和导出。这些功能都很强大,但是如果你只是使用其中 的某项功能,你也需要一定的学习时间,因为它相对繁琐。 ( 2 ) 建立在自身数据库管理系统之上,不具有通用性 数据库管理系统的数据维护功能都是基于自身系统,不能实现不同数据库管 理系统之间的共用,即使是同一系统的不同版本之间都可能出现问题。现在基于 数据库的应用系统的开发,都要求具有良好的可移植性,数据移植也不例外,如 果要把数据从数据库管理系统a 移植到异构数据库管理系统b 上,我们可以利 用b 已有的工具进行移植。但是,异构数据库系统b 可以是很多种选择中的一 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 种,比如s q ls e r v e r2 0 0 5 、o r a c l e 、d b 2 等等,如果要进行数据移植,需要数据 库管理员对不同的数据库工具都很熟悉,这势必增加数据库管理员的工作量。显 然,这是因为各个工具都是建立在自身数据库管理系统基础上的数据维护不具有 通用性,才导致的数据维护困难。 2 2 基于数据管道的数据维护 基于数据管道的数据维护重点部分在于数据移植,特别是异构数据库管理系 统之间的数据移植,p o w e r b u i l d e r 的数据管道技术在这方面起着举足轻重的作 用。 2 2 1 数据管道简介 新的业务需要能方便地把一个数据源( 例如s y b a s o 数据库) 中的数据传送 到另一个数据源( 例如o r a c l e 数据库) 中,即要求应用程序具有数据迁移功能。 而p o w e r b u i l d e r 的数据管道正是完成数据迁移的有效工具。通过数据管道 ( d a t a p i p e l i n e ) ,应用程序能够在不同的数据库之间移动数据,也就是说,可以 把一个或多个源表中的数据复制到新表或存在的目的表中,复制的方式根据应用 的需求而定,可以删除目的表及其数据后重建目的表,也可以在同一个数据库的 不同表之间移植。数据管道除了移植普通的数据外,数据管道还可以在数据库之 间迁移图像、声音之类的大二进制对象( b l o b 型数据) 旧。 2 2 2 基于数据管道的数据移植原理 数据移植的过程大致如下: l l 过渡表7 1 日仲默瑚阡 i 视图 i 图2 1 数据迁移过程 基于数据管道的数据移植分三步:第一步,在确定源数据库和目标数据库数 据映射关系的基础上,定义怎样从源数据库的数据表取数的视图;第二步,在源 数据库中生成与目标数据库结构相同的数据库过渡表,并利用己定义的视图将源 数据库数据暂存到过渡表;第三步,对过渡表中的数据进行预处理后转换到目标 数据库。 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 2 2 3 基于数据管道的数据移植实现 数据管道是p o w e r b u i l d e r 的一个内置对象,在创建时需要定义:源数据库、 访问的源表及从源表中检索的数据、数据管道操作、目标数据库、目标表。大致 数据移植步骤如下: ( 1 ) 建立数据库连接 一般情况下,一个应用只连接一个数据库,然而,在异构数据库之间进行数 据传递时,p o w e r b u i l d e r 必须与不同种类数据源建立连接。p o w e r b u i l d e r 与数据 库通信用的是事务对象,它是p o w e r b u i l d e r 和数据库之间通信的桥梁。 ( 2 ) 选择移植条件 在源数据窗口中显示出源数据后,用户可根据需要按一定要求选择数据库记 录,进行移植。其中包括字段名、关系、条件值,用户可进行任意选择,。由于 字段类型不同,所以要按数据类型移植规则分情况进行处理。 ( 3 ) 从数据源读取数据 与数据源建立连接后,在进行数据移植之前,必须先从数据源读取数据。从 数据源读取数据后,根据所读取的数据生成相应的数据窗口,以显示数据源的数 据。 ( 4 ) 数据移植 在进行数据移植时,需使用p o w e r b u i l d e r 提供的数据管道系统对象,数据通 过管道传输过来后,使用o d b c 将数据写入目标数据库中,完成数据移植【1 3 】。 2 3 基于h i b e r n a t e 的数据维护 基于h i b e r n a t e 的数据维护是指在h i b e r n a t e 的基础上编写应用程序进行数 据库数据的维护。h i b e r n a t e 是一个开放源代码的对象关系映射框架,它对j d b c 进行了非常轻量级的对象封装,使得j a v a 程序员能够真正面向对象编程,而不 必过多关注数据库底层【。h i b e r n a t e 已经成为很多信息系统中持久化层工具的重 要选择,基于h i b e r n a t e 的数据维护也变得越来越重要。下面将分h i b e r a n t e 概述、 基于h i b e r n a t e 的数据维护思想及其现状进行重点介绍。 2 3 1 h i b e r n a t e 简介 h i b e r n a t e 是j a v a 应用和关系数据库之间的桥梁,它负责j a v a 对象和关系数 据之间的映射。h i b e r n a t e 内部封装了通过j d b c 访问数据库的操作,向上层应 用提供了面向对象的数据访问a p i 。涉及到的5 个核心接口: c o n f i g u r a t i o n 接口:配置h i b e r n a t e ,根启动h i b e r n a t e ,创建s e s s i o n f a c t o r y 对象。 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 s e s s i o n f a c t o r y 接口:初始化h i b e r n a t e ,充当数据存储源的代理,创建s e s s i o n 对象。 s e s s i o n 接口:负责保存、更新、删除、加载和查询对象。 t r a n s a c t i o n :管理事务。 q u e r y 和c r i t e r i a 接口:执行数据库查询。 2 3 2 基于h - b e r n a t e 的数据维护思想 h i b e r n a t e 作为数据库持久化工具,具有良好的跨平台性,建立在其上的信 息系统针对不同的数据库应用时,无须修改程序,只需对配置文件进行相应的修 改即可。这种特性的关键在于对象关系映射( o 蹦) ,h i b e r n a t e 将关系表映射为 持久化对象,使程序员能够真正面向对象编程,而不必关注底层数据库的内容。 受这种思维方式的启发,作者考虑用面向对象的方式对数据进行维护,由于 h i b e r n a t e 基于j a v a 语言实现,所以基于h i b e r n a t e 的数据维护同样具有j a v a 语 言的良好特性。图2 2 示出了基于h i b e r n a t e 的数据维护框架图。 图2 - 2 基于h i b e r n a t e 的数据维护框架图 通过h i b e m a t e 将关系数据转化为持久化数据对象,然后在持久化数据对象 的基础上实现各种功能:备份,将数据持久化对象写入文件进行保存;恢复,将 已备份文件中的数据对象写入现有数据库;移植,将数据源a 中的持久化数据 对象按照一定的顺序写入数据文件f ,然后在另一环境中将数据文件f 中的数据 有序写入数据源b 中;监控,对影响数据内容及结构的数据库操作进行监控, 如删除、修改等。 北京邮电大学硕士学位论文 基于h i b e r n a t e 的数据维护工具的研究与应用 2 4 现有数据维护工具的分析比较 通过上文对基于数据库自带工具、基于数据管道、基于h i b e r n a t e 等三种不 同数据维护方式的介绍,我们不难发现,现有的三类数据维护工具程序各有利 弊。 以数据库自带工具进行数据维护的优点在于功能丰富,基本能够满足自身数 据库管理系统的需要,缺点是数据维护不具有跨数据库管理系统功能,每一种数 据库管理系统都只具有用于自身的数据维护功能,如果某个应用只针对某类数据 库管理系统,则该方式非常适用;反之,则显得很笨拙,对数据库管理员要求非 常高。要是考虑到在不同数据库管理系统和不同操作系统下进行数据移植的话, 情况会更加复杂,让人难以入手。 以p o w e r b u i l d e r 的数据管道技术进行数据维护的优点在于功能完善,也能够 实现异构数据源之间的数据移植,但是它必须建立在两个已知数据源互联的基础 之上。所以,它适合在团队之间进行数据维护,如成员a 将公用服务器上的测 试数据库拷贝到本地数据库进行独立测试。 以h i b e r n a t e 为基础的数据维护,建立在面向对象的概念之上,通过操作可 序列化的数据对象实现数据维护。它的最大优点是用于基于h i b e r n a t e 为基础的 信息系统进行数据维护,具有良好的跨操作系统性和跨数据库性,并且具有较好 的性能,非常适合程序员和测试人员使用。在使用异构数据库移植功能时,它不 要求异构数据库管理系统必须实现网络互通。这种既可以不考虑网络互联而又具 有良好的跨平台性的数据维护工具现在还不存在,所以这是本文提出基于 h i b e r n a t e 的数据维护工具的最大的创新和优点。当然,由于本工具尚不完善, 也具有一些缺点,如功能还不够丰富,只能满足基本的功能需求( 可扩展) 。 通过以上分析,我们可以发现三类不同的数据维护方式都有各自的特点。在 当前非常流行s t r u t s + h i b e r n a t e + s p r i n g 的w e b 开发框架下,进行以h i b e r n a t e 为 基础的数据维护具有相当重要的价值。 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 第三章数据维护工具的研究 3 1 数据维护工具的总体思路 数据维护工具具有的主要功能包括:备份、恢复、异构数据源之间的数据移 植、数据库数据监控等。该工具应该具有的良好特性:( 1 ) 、平台无关性,即该 工具不依赖于具体的操作系统平台,可以运行在w i n d o w s 系列操作系统,也可 以运行在l i n u x 、u n i x 系列操作系统;( 2 ) 、数据库无关性,即该工具所具有的功 能不依赖于具体的数据库,可以在任何h i b e r n a t e 允许的数据库上使用,对使用 该工具的人员来说,数据库是透明的;( 3 ) 、简单、易用,具有良好的性能。 为了实现以上功能和特性,本文将考虑以面向对象的数据维护思路进行数据 维护,总体思路如下:将数据库中的数据通过h i b e r n a t e 映射为可序列化的对象, 然后通过排序算法对数据持久化类排序后,实现数据对象有序写入文件,从而实 现数据备份;在已有备份文件的基础上,再通过有序写入数据库来实现数据恢复; 通过配置不同的数据源以及应用程序的跨平台迁移,实现异构数据源之间的数据 移植;对各种可能破坏数据的数据库操作进行监控,一旦发生危险数据操作则通 过数据维护文件进行记录,记录操作人d 、操作前对象和操作后对象等信息, 管理员能够定期查看维护记录,如有误操作或违法业务规则的操作,可以进行数 据恢复,这些功能对用户方便易操作。 以上思路是建立在数据库表之间存在数据库约束,且主动维护数据库约束的 基础之上。如果数据库表之间的外键约束不需要数据维护工具考虑,或者数据库 表之间不存在外键约束,该工具可以忽略数据库持久化类排序这一步。工具主动 维护数据库约束的优点是工具使用者无须了解底层数据库之间关联关系就可实 现数据库数据的维护,缺点是速度相对较慢;数据库表之间存在外键约束,而工 具不考虑情况下的数据维护,要求用户必须了解底层数据库表之间的约束关系, 并在执行数据库数据恢复之前去掉外键约束,在数据恢复完成后,重新建立数据 库表之间的外键约束,这种方式的优点是数据维护的速率会更高。从研究的角度 考虑,本文将会更多的介绍主动维护数据库表约束的数据维护,而在设计与实现 中,以上两种思路均会加以实现,以完善本工具的功能。 面向对象的数据库数据维护思路已经在我师兄赵奇的毕业论文中有所涉及, 所以本课题的研究也是在其基础上展开,主要涉及如下方面的重点改进和创新: ( 1 ) 、提出基于对象关系映射文件与持久化类的持久化类排序算法思想; ( 2 ) 、可序列化数据持久化类排序算法的改进; ( 3 ) 、数据维护工具性能的提升; 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 ( 4 ) 、提出面向对象的通用数据监控思想,给出设计方案,并实现; 3 2 数据持久化类排序算法的改进方案 h i b e r n a t e 中,数据持久化类、对象关系映射文件与数据库表三者是相互联 系、相互依赖的。已知数据持久化类与对象关系映射文件能够生成相应的数据库 表;已知数据库表与对象关系映射文件能够生成相应的数据持久化类。因为数据 表之间通过外键约束存在依赖关系,所以它们所对应的数据持久化类之间也存在 某种依赖关系,为了能够实现数据对象的存储,我们需要对数据持久化类按照依 赖关系进行排序。已有相关论文对数据持久化类依赖关系排序提出了算法,算法 主要建立在数据持久化类基础上,而本文提出的算法建立在数据持久化类与对象 关系映射文件基础之上,借鉴数据结构中的拓扑排序算法提出,不但完善了数据 持久化类的排序,而且明显的提升了性能。 3 2 - 1 理论分析 正如本节开头所言,数据持久化类、对象关系映射文件与数据库表三者相互 联系、相互依赖,数据库表之间的依赖关系通过数据持久化类与对象关系映射文 件得到体现,仅仅通过数据持久化类无法完全判断表与表之间的依赖关系。 表与表之间的依赖关系主要通过主外键之间的约束来体现,反应到对象关系 映射文件中,主要有以下几种关联关系:多对多、一对多、一对一。多对多的关 联在h i b e r n a t e 中通过一个关联表来维护,该关联表中的数据默认通过h i b e r n a t e 自主维护,所以该部分我们不做过多讨论。一对多的关联关系中,可以通过映射 文件中的m a n y - t o o n e 标签判断数据持久化类之间的依赖关系,假定映射文件配 置如下: c l a s st a b l e = ”s p s t o c k ”n a m e = ”s p s t o c k “ 通过c l a s s 标签中的n a r l e 属性与m a n y - t o o n e 标签中的c l a s s 属性,我们可以判 断出s p s t o c k 类依赖于s t o r a g e 类,如果m a n y - t o - o n e 标签中c l a s s 属性为空,则 可以考虑其n a m e 属性,然后通过反射查找s p s t o c k 类中的s t o r a g e 属性对应的类 型,从而确定s p s t o c k 依赖于s t o r a g e 类。一对一的关联关系中,有两种映射方 式,一种是按照外键映射,通过m a n y - t o o n e 标签结合o n e - t o o n e 标签,这种方 式的判断与一对多方式的判断一样,不再赘述;种是通过共享主键映射,可以 北京邮电大学硕士学位论文基于h i b e r n a t e 的数据维护工具的研究与应用 通过映射文件中的o n e - t o o n e 标签判断数据持久化类之间的依赖关系,假定映射 文件配置如下: 通过d 髑标签中的n a m e 属性与o n e t o - o n e 标签中的c l a s s 、c o n s t r a i n e d 属性 ( c o n s t r a i n e d 属性值必须为t r u e ) ,我们可以判断出a d d r e s s 类依赖于c u s t o m e r 类, 如果o n e t o o n e 标签中c l a s s 属性为空,则可以考虑其n a m e 属性,然后通过反射 查找a d d r e s s 类中的c u s t o m e r 属性对应的类型,从而确定a d d r e s s 依赖于c u s t o m e r 类。在此特别强调,仅仅通过持久化类本身无法完全判断持久化类之间的依赖关 系。以前面的一对一关联关系为例,映射到持久化类中,则a d d r e s s 类中有 c u s t o m e r 属性,同时c u s t o m e r 类中也具有a d d r e s s 属性,这样,从类属性无法判 断类之间具体的依赖关系。 综上所述,通过数据持久化类与对象关系映射文件,我们可以判断出不同 关联关系下的持久化类依赖关系。 3 2 - 2 算法分析 持久化类之间的依赖关系求解可以表述为: 已知点s ,t n d l ,n d 2 ”n d k ) ,s t ( 即s 依赖于0 。求有序序列p 1 ,p 2 , p i ,p k , 其中p i n d l ,n d 2 ,n d k ,且可能存在p i ( p l ,p 2 ,p i - 1 ) ,不存在p i ( p i + l ,p k ) , i l ,2 ,k ) 。 现有论文中提及的求解过程分为以下步骤: ( 1 ) 输入含有k 个持久化类的c l a s s 列表,并初始化已排序列表o r d e r l i s t , 其元素个数为零; ( 2 ) 如果c l a s s 列表为空,返回已排序列表o r d e r l i s t ,否则取其中任意一个 持久化类n d i ,i 1 ,2 ,k 。如果n d i 不依赖于其他持久化类,则将其放入 o r d e r l i s t ,继续执行( 2 ) ,否则执行( 3 ) ; ( 3 ) 获得n d i 的所有依赖c l a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产科入院病人管理制度
- 经开区诚信体系管理制度
- 上市公司决算管理制度
- 中铁员工晋升管理制度
- 人防车位设备管理制度
- 专项打非资金管理制度
- 临床医生健康管理制度
- 中小砂坑治理管理制度
- 中学作业审核管理制度
- 上海企业外卖管理制度
- 娱乐场所突发事件应急处理
- JBT 14609-2023 农林拖拉机和机械 交流发电机 (正式版)
- 2023年新疆维吾尔自治区乌鲁木齐市天山区小升初数学试卷(内含答案解析)
- 计算机基础知识题库1000道含完整答案(历年真题)
- 2023年陕西初中地理生物会考卷子
- 府谷县国能煤矿矿山地质环境保护与土地复垦方案
- 初中物理-摩擦力课件-市公开课一等奖省赛课获奖课件
- 社会稳定风险评估 投标方案(技术标)
- 常见土源性寄生虫
- 销冠表彰活动方案
- 打大锤的安全操作规程培训课件
评论
0/150
提交评论