(计算机应用技术专业论文)面向对象数据库中对象存储及索引技术的研究与实现.pdf_第1页
(计算机应用技术专业论文)面向对象数据库中对象存储及索引技术的研究与实现.pdf_第2页
(计算机应用技术专业论文)面向对象数据库中对象存储及索引技术的研究与实现.pdf_第3页
(计算机应用技术专业论文)面向对象数据库中对象存储及索引技术的研究与实现.pdf_第4页
(计算机应用技术专业论文)面向对象数据库中对象存储及索引技术的研究与实现.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机应用技术专业论文)面向对象数据库中对象存储及索引技术的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

、 月l ji+j,j,“ 如 鬟, 。 研究生学位论文独创性声明和版权使用授权书 独创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含他人已 经发表或撰写过的研究成果,也不包含为获得其它教育机构的学位或证书而使用 过的材料。对论文的完成提供过帮助的有关人员已在论文中作了明确的说明并表 示谢意。 学位论文作者( 签字) :鱼叠! 毒 签字日期:塑厶! 笸:i 学位论文版权使用授权书 本学位论文作者完全了解( 学校) 有关保留、使用学位论文的规定,有权保留 并向国家有关部门或机构送交论文的印刷本和电子版本,允许论文被查阅和借 阅。本人授权( 学校) 可以将学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。同时授权中国 科学技术信息研究所将本学位论文收录到中国学位论文全文数据库,并通过 网络向社会公众提供信息服务。( 保密的学位论文在解密后适用本授权书) 本论文是否保密: 是否 如需保密,保密期限为: 学位论文作者签名:袤卅煮l 宇 签字日期:加p 年占月乡日 导师弹岛比勿匀 签字日期:乒。年多月弓日 。|ll 桂林理工大学硕士学位论文 摘要 随着计算机技术的发展和应用需求的不断推动,面向对象数据库( o o d b ) 技术受到了 广泛的关注。尽管大量研究人员投入到o o d b 的研发当中,但是o o d b 仍然被认为是一种 功能丰富,表现乏力的数据库,尤其当涉及多个类的时候更是如此。提高o o d b 的存取性 能需要有效的存储管理,而对象存储及索引技术是o o d b 存储管理中的关键技术。本课题 的研究目的在于,探讨提高o o d b 对象存储及检索性能的方法与途径。 本文针对o o d b 中对象存储及索引技术进行研究,依照o d m g 3 0 标准,并以j a v a 绑 定方式提供实现方案。论文内容主要包括两个方面。 一是对象存储的研究与实现。对象存储是o o d b 物理实现层中的关键技术,它是所有 其他功能模块的基础,它设计与实现的好坏直接影响着系统的性能。 本文通过对典型对象存储结构的研究,给出一种兼顾各种类型数据特点的分层对象存储 结构。在保持继承对象的整体性同时,采取分层存储,使对象结构清晰,便于拆分。结合这 里使用的体系结构,给出一种基于分槽页结构的改进对象存储组织方法,将存储单位由页面 替换成数据库文件。这种基于分槽页结构的改进对象存储组织方法插入简单,支持变长对象 的存储,支持空闲空间动态合并,记录槽( s l o t ) 地址与对象标识符( o i d ) 的绑定又加快 了文件中对象的检索速度。最后给出对象存储中关键技术的实现策略。 二是索引技术的研究与实现。索引是一种加速数据库查询的通用技术,o o d b 中检索 及更新性能十分依赖索引技术。如何平衡o o d b 索引的检索性能、维护开销、实现复杂度 已经成为一个影响o o d b 性能的关键问题。 本文在研究o o d b 中常见继承层次和聚集层次索引技术的基础上,提出一种o o d b 聚 集、继承层次索引配置方法。通过开销模型评估各种索引配置的检索开销、存储开销、更新 开销,根据数据库真实使用情况选择最优索引配置。通过实验,验证这种方法的准确性,并 且同其他常见索引策略作对比。结果表明该方法可以为o o d b 提供性能最优的索引方案。 最后给出索引配置中关键技术的实现策略。 关键词:面向对象数据库;o d m gj a v a 绑定;对象存储:索引配置:继承层次索引;聚集 层次索引:触发器 桂林理工大学硕士学位论文 a b s t r a c t w i t ht h ec o n t i n u o u sa d v a n c e m e n to ft h ed e v e l o p m e n ta n da p p l i c a t i o nn e c d so fc o m p u t e r t e c h n o l o g y , t h eo b j e c t - o r i e n t e dd a t a b a s e ( o o d b ) t e c h n o l o g yi sp a i dm o r ea n dm o l ea t t e n t i o n a l t h o u g hs e v e r a lr e s e a r c h e r sh a v ec o n t r i b u t e dt o w a r d sd e v e l o p i n gt h eo o d b ,o o d ba l er e p u t e d t ob er i c hi nf u n c t i o n a l i t yb u tn o ts or i c hi np e r f o r m a n c e ,t h i si s p a r t i c u l a r l yt r u ew h e nm a n y c l a s s e sa r ei n v o l v e d i m p r o v i n gt h ep e r f o r m a n c eo fo o d br e q u i r e se f f i c i e n ts t o r a g em a n a g e m e n t , a tt h es a m et i m eo b j e c ts t o r a g ea n di n d e x i n gt e c h n i q u e sa r ek e yt e c h n i q u e si ns t o r a g em a n a g e m e n t t h es t u d yp u r p o s ei st of i n da p p r o a c h e st oi m p r o v et h ep e r f o r m a n c eo ft h eo o d bf r o mo b j e c t s t o r a g ea n di n d e x i n gt e c h n i q u e s t h ep a p e rs t u d i e so b j e c ts t o r a g ea n di n d e x i n gt e c h n i q u e so no o d b ,a n dt h e nan e w s c h e m e , b a s e do nt h eo d m g 3 0s t a n d a r d ,i sp r e s e n t e db yj a v ab i n d i n g t h em a i nc o n t e n t si n c l u d et w o a s p e c t s f i r s t l y , t h i st h e s i ss t u d i e st h eo b j e c ts t o r a g e o b j e c ts t o r a g ei st h ek e yt e c h n o l o g yi nt h e p h y s i c a ll a y e ro fo o d b ,i ti st h eb a s i sf o ro t h e rm o d u l e s ,a n di tw i l lh a v ead i r e c ti m p a c to n s y s t e mp e r f o r m a n c e i nt h i sp a p e r , w ep r o p o s eal a y e r e ds t o r a g es t r u c t u r et h a tt a k e si n t oa c c o u n tt h ec h a r a c t e ro f d i v e r s i f i e dd a t at y p eb ys t u d y i n gt h et y p i c a ls t o r a g es t r u c t u r eo fp e r s i s t e n to b j e c t s w h i l ek e e p i n g t h ei n t e g r i t yo fi n h e r i t e do b j e c t ,t i e r e ds t o r a g ew o u l dm a d et h es t r u c t u r eo ft h eo b j e c tc l e a r e ra n d e a s i e rt ob es e p a r a t e d c o m b i n i n gw i t l lt h ea r c h i t e c t u r eh e r e w et r a n s f o r maf i l es t r u c t u r eb a s e d o ns l o t t e d - p a g es t r u c t u r e ,b ys u b s t i t u t i n gs t o r a g eu n i tf r o mp a g et od a t a b a s ef i l e t h es i m p l i c i t y f e a t u r e st h ei m p r o v e dm e t h o do fo b j e c to r g a n i z a t i o nb a s e do ns l o t t e d - p a g es t r u c t u r e t h em e t h o d s u p p o r t ss t o r a g eo fp r o l o n g e do b j e c t sa sw e l la sd y n a m i ca m a l g a m a t i o no ff l e es p a c e t h eb i n d i n g o fs l o ta d d r e s sa n do i di m p r o v e st h er e t r i e v a ls p e e da m o n gf i l e s f i n a l l y , w eg i v ei t s i m p l e m e n t a t i o ns c h e m ef o rk e yt e c h n i q u e s s e c o n d l y , t h i st h e s i ss t u d i e st h ei n d e x i n gt e c h n i q u e s i n d e x i n gi so n eo fc o m m o nt e c h n i q u e s t os p e e du paq u e r yo nad a t a b a s e t h er e t r i e v a la n du p d a t ep e r f o r m a n c eo fa no o d bd e p e n d so n i n d e x i n gt e c h n i q u e s h o wt o b a l a n c et h er e t r i e v a l p e r f o r m a n c e ,m a i n t e n a n c e c o s ta n d i m p l e m e n t a t i o nc o m p l e x i t yb e c o m e so n eo ft h ek e ye l e m e n t si nt h er e s e a r c ho fo o d bi n d e x i n g i nt h i sp a p e r , w es t u d yt h ei n d e x i n gt e c h n i q u e so no o d b ,b a s e do na ni n h e r i t a n c eh i e r a r c h y a n da na g g r e g a t i o nh i e r a r c h y , a n dp r o p o s ea l la p p r o a c hf o r t h ei n d e x i n gc o n f i g u r a t i o no f i n h e r i t a n c eh i e r a r c h ya n da g g r e g a t i o nh i e r a r c h y , w ee s t i m a t er e t r i e v a lc o s l s t o r a g ec o s ta n d u p d a t ec o s tf o ra l lk i n d so fi n d e xc o n f i g u r a t i o n st h r o u g hc o s tm o d e l ,a n dc h o o s eo p t i m a li n d e x c o n f i g u r a t i o nb a s e do nr e a ld a t a b a s eu s a g e w et e s tt h ea c c u r a c yo fo u rm e t h o dt h r o u g h i i 桂林理工大学硕士学位论文 e x p e r i m e n t s ,a n dc o m p a r et h ep e r f o r m a n c eo fo u r m e t h o da n do t h e ri n d e x i n gs c h e m e t h er e s u l t s s h o w e dt h a to u rm e t h o dc a np r o v i d eo p t i m a li n d e x i n gf o ro o d b f i n a l l y , w eg i v ei t s i m p l e m e n t a t i o ns c h e m ef o rk e yt e c h n i q u e s k e yw o r d s :o b j e c t - o r i e n t a ld a t a b a s e :o d m gj a v ab i n d i n g :o b j e c ts t o r a g e :i n d e xc o n f i g u r a t i o n : i n h e r i t a n c eh i e r a r c h yi n d e x :a g g r e g a t i o nh i e r a r c h yi n d e x :t r i g g e r i i i 桂林理工大学硕士学位论文 目录 中文摘要i 英文摘要i i 肇1 蕈缴论、 1 1 课题背景及意义。l 1 2 国内外发展现状一2 1 3 本文的主要工作2 1 4 本文的组织3 第2 章面向对象数据库4 2 1 基本概念4 2 2 面向对象数据库发展过程。5 2 3 面向对象数据库开发标准o d m g 3 0 描述7 2 3 1 主要内容7 2 3 2j a v a 绑定。:9 2 4 本章小结1 4 第3 章对象存储。1 5 3 1 对象数据存储设计的影响因素1 5 3 1 1 体系结构1 5 3 1 2 持久类描述1 6 3 1 3 持久性策略1 6 3 2 对象数据的存储构架1 7 3 3 对象数据的存储结构18 3 4 对象数据的存储组织2 l 3 5 数据字典的存储结构2 2 3 6 对象存储中关键技术的实现2 3 3 7 本章小结2 8 第4 章索引技术。2 9 4 1 继承层次索引3 l 4 1 1 单一类索引3l 4 1 2 类层次索引3 l 4 1 3b + - t r e e 链接结构3l 4 1 4 类分组方法3 3 4 1 5 基于数据库统计数据的方法3 3 4 1 6 多维索引结构3 3 4 2 聚集层次索引3 3 4 2 1 多重索引3 3 4 2 2 继承多重索引3 3 4 2 3 嵌套索引3 4 4 2 4 嵌套继承索引3 4 4 2 5 路径索引3 4 4 2 6 路径索引的变体3 4 i v 桂林理工大学硕士学位论文 4 3 聚集层次索引配置3 4 4 3 1 索引配置算法3 5 4 3 2 索引配置举例3 6 4 4 继承层次索引配置3 7 4 4 1 基于数据库统计数据的初级索引一3 7 4 4 2 索引配置3 9 4 5 索引配置开销模型4 l 4 5 1 :参数一4 l 4 5 2 检索开销模型4 4 4 5 3 存储开销模型4 4 4 5 4 更新开销模型4 4 4 6 实验4 5 4 6 1 实验环境。4 5 4 6 2 实验结果4 6 4 7 索引配置中关键技术的实现4 7 4 7 1 触发器的实现4 8 4 7 2 聚集层次索引配置的实现5 2 4 7 3 继承层次索引配置的实现5 3 4 8 本章小结5 3 第5 章总结和展望5 4 5 1 工作总结5 4 5 2 展望一5 4 到【谢5 6 参考文献5 7 个人简介6 0 v 桂林理工大学硕士学位论文 1 1 课题背景及意义 第1 章绪论 近些年,研发人员越来越关注面向对象数据库( o b j e c t - o r i e n t e dd a t a b a s e ,简 称o o d b ) 【l 】。o o d b 拥有传统数据库的功能,加之新的数据模型,使其解决现 实生活中的问题时更直接,更自然。面向对象数据模型可以很好的匹配数据建模, 实现程序设计语言与数据库语言无缝集成及执行下一代应用,例如,计算机辅助 设计,多媒体,专家系统,柔性制造系统等。面向对象数据模型比关系模型复杂 很多【2 】,它并不是一种基于数学公式的模型。在面向对象数据模型中,一个类可 以有超类和子类,这种类层次通过i s a 关系来表示,这种类层次的结构表示成 有向无环图( d a g ) 。 尽管大量研究人员投入到o o d b 的研发当中,但是o o d b 仍然被认为是一 种功能丰富,表现乏力的数据库【3 】,尤其当涉及多个类的时候更是如此。如何提 高存储及检索性能仍然是o o d b 中重点研究方向。近些年提出了一些提高o o d b 存取性能的技术,像指针混写、缓冲、聚簇、分片等。 o o d b 的存取设计要比关系数据库复杂很多。在o o d b 的存取设计中,不 仅需要考虑复杂的数据结构、类层次的继承性、基类型的扩展等问题,还需要考 虑除数据外的程序和规则的存储。提高o o d b 的存取性能需要有效的存储管理 【4 1 ,而对象存储及索引技术是o o d b 存储管理中的关键技术【5j 。本课题就是在这 样的背景下进行研究的。研究目的在于,探讨提高o o d b 对象存储及检索性能 的方法与途径。 对象存储是o o d b 物理实现层中的关键技术,它是所有其他功能模块的基 础,它设计与实现的好坏直接影响着系统的性能。近些年,出现了一些针对o o d b 对象存储的研究 4 , 5 6 7 , 8 , 9 1 0 , 1 1 j ,本文通过对常见o o d b 对象存储的研究,给出一 种对象存储方案。 索引是一种加速数据库查询的通用技术【l 2 | ,o o d b 中检索及更新性能十分 依赖索引技术。如何平衡o o d b 索引的检索性能、维护开销、实现复杂度已经 成为一个影响o o d b 性能的关键问题。同时,关于选择合适索引集来最小化检 索及维护开销的索引选择问题( i s p ) 已经提出了很多解决方案【| 3 ,m ”】,也提出一 些针对o o d b 进行索引选择评估吼 】的方案。但是到目前为止较少有针对聚集、 继承层次提供具体的评估公式,也很少有一种完整的针对聚集、继承层次的索引 配置方案,本文给出一种索引配置方案。 桂林理工大学硕士学位论文 1 2 国内外发展现状 o o d b 研究由来已久,且已商品化。2 0 0 1 年之前国外的o o d b 产品主要有 o n t o s ,o b j e c t s t o r e ,o b j e c t i v i t y d b ,v e r s a n t 等,它们均为支持c + + 绑定的持久 化系统。自从2 0 0 1 年o d m g 3 0 【18 】标准发布之后,国外的o o d b 产品像d b 4 0 2 3 , 2 4 ,p e r s t 等,大多开始支持j a v a 绑定及c j | j 绑定,而且多数为开源项目。国内 o o d b 产品主要是浙江大学人工智能所的o n e t l 2 5 , 2 6 , 2 7 , 2 8 】系统,它主要实现c + + 绑定。 近些年针对如何提高o o d b 存取性能提出了很多技术,像指针混写、缓冲、 聚簇、分片等。提高o o d b 的存取性能需要有效的存储管理,而对象存储及索 引技术是o o d b 存储管理中的关键技术。 对象存储是o o d b 物理实现层中的关键技术,它是所有其他功能模块的基 础,它设计与实现的好坏直接影响着系统的性能。对象存储包括:对象数据的存 储结构、存储组织、存储操作、数据字典的存储结构等方面内容。近些年,出现 了一些针对o o d b 对象存储的研究 4 5 6 , 7 , 8 9 1 0 , 1 1 】,包括对象数据的分段存储组织 策略、支持对象数据的分槽页结构存储组织方法、基于操作系统的对象数据存储 结构设计、基于段的大对象存储方法等。 索引是- , 中d n 速数据库查询的通用技术,o o d b 中检索及更新性能十分依赖 索引技术。o o d b 中有两种类型的对象索引技术,分别是聚集层次索引及继承层 次索引。聚集层次索引包括 1 6 1 7 , 3 4 , 3 5 3 6 , 3 7 3 8 】:多重索引、继承多重索引、嵌套索引、 嵌套继承索引、路径索引、路径索引变体、嵌套索引选择评估方法等。继承层次 索引包括 3 8 , 3 9 4 0 , 4 1 4 2 a 3 , 4 4 a s , 4 6 4 7 】:类层次索引、h 树、h c c 树、c g 树、类分组策 略、基于数据库统计数据的方法、z t r e e ,m t - i n d e x ,2 d c h i 等。 1 3 本文的主要工作 本文针对o o d b 中对象存储及索引技术进行研究,依照o d m g 3 0 1 s 标准, 并以j a v a 绑定【 8 】方式提供实现方案。论文具体工作主要包括两个方面。 1 对象存储的研究与实现 ( 1 ) 探讨了对象存储设计的影响因素及构架。 ( 2 ) 对典型对象存储结构进行研究,给出一种兼顾各种类型数据特点的分层 对象存储结构。 ( 3 ) 结合这里使用的体系结构,给出一种基于分槽页结构的改进对象存储组 织方法,将存储单位由页面替换成数据库文件。 2 桂林理工大学硕士学位论文 2 索引技术的研究与实现 ( i ) 针对o o d b 中常见的聚集层次和继承层次索引技术进行研究。 ( 2 ) 提出一种o o d b 聚集、继承层次索引配置方法。 ( 3 ) 给出索引配置中关键技术的实现策略,重点给出o o d b 中触发器的实现 策略。 1 4 本文的组织 全文共分五章: 第一章,绪论。提出问题,阐述本文的主要工作。 第二章,面向对象数据库。首先,介绍了o o d b 的基本概念。然后,回顾 了o o d b 的发展过程,并对主要产品做了简介。最后,详细介绍了o o d b 的开 发标准o d m g 3 0 ,并对其中的j a v a 绑定做了重点分析。 第三章,对象存储。对o o d b 中对象存储进行初步研究。探讨了对象存储 设计的影响因素及构架,并对o o d b 中对象数据的存储结构和存储组织方法进 行研究、改进,提出一种实现策略。最后给出对象存储中关键技术的实现策略。 第四章,索引技术。研究了o o d b 中常见的聚集层次和继承层次索引策略, 并在此基础上提出一种o o d b 聚集、继承层次索引配置方法。通过实验,验证 这种方法的准确性,并且同其他常见索引策略作对比。最后给出索引配置中关键 技术的实现策略。 第五章,总结和展望。总结了本课题所作的工作,并对将来的工作进行展望。 桂林理工大学硕士学位论文 2 1 基本概念 第2 章面向对象数据库 目前对于面向对象数据存储的研究主要有两个方向。 一是以关系数据库为基础,向其中加入面向对象特性,使之具有面向对象的 表达能力。o r a c l e 、s q ls e r v e r 、d b 2 等各个主流的关系数据库平台都在对面向 对象特性进行全面支持。s q l 3 标准也引入了对象模型的表示。而这种数据库就 是通常所说的对象关系数据库( o r d b ) 。对象关系数据库管理系统( o r d b m s ) 主要定位于支持需要对很大的数据集进行访问的应用,尽管数据集中的对象结构 可以很复杂,对象可以很大,需要研究的仍然是有效地支持频繁的磁盘访问和短 事务的并发控制,故障恢复等。 另一个方向是以面向对象程序设计语言为基础,加入数据库相应的特性。这 种方式就是本文讨论的面向对象数据库( o o d b ) 。面向对象数据库管理系统 ( o o d b m s ) 主要定位于支持以对象为中心的应用,即典型的用户对话,包括从 数据库中检索若干个对象,然后对它们进行长时间的加工,相对地,较少从数据 库中取( 被引用的) 对象,对象可能很大,需要研究将对象分部分地读取和进行缓 冲的技术,事务通常是长事务。 面向对象数据库与传统关系数据库相比,它具有一些特有的概念,如对象、 封装、类和类型、继承、多态性、对象标识等。同时也具有一些特有的数据管理 功能f 1 9 1 ,如存储和处理复杂对象,支持复杂的数据类型,支持对大量对象的存取 和计算,支持内存中的对象管理,实现程序设计语言与数据库语言的无缝集成, 支持长事务,无“阻抗失调”( 没有对象到关系的转换层) 等。 面向对象数据库系统是基于对象数据模型的。对象数据模型的概念是从不同 领域抽取出来的,如图2 1 所示。 图2 1 面向对象数据模型 o o d b 在逻辑上和物理上都从面向记录上升为面向具有复杂结构的对象,它 4 桂林理工大学硕士学位论文 允许以自然方法并结合数据抽象机制在结构和行为上对复杂对象建模,从而大幅 度地提高了管理效率,降低了用户使用数据的复杂性。 2 2 面向对象数据库发展过程 8 0 年代早期,m m c 集团的w o nk i m 组织开发了面向对象数据库管理系统 o r i o n 。o r i o n 系统是基于l i s p 的面向对象数据库系统。o r i o n 系列包括3 个可运行的原型系统,分别是客户服务器系统、单机系统和分布式系统。o r i o n 体系结构包括4 个模块:消息处理模块。接受发给o r i o n 对象的所有消息。 对象子系统。提供模式进化、查询优化以及多媒体信息管理等功能。事务子 系统。提供并发控制和恢复机制。存储子系统。提供磁盘上对象的存取。 8 0 年代后期,第一波商品化面向对象数据库产品诞生。包括g r a p h a e l 公司 的g b a s e ,s e r v i ol o g i c 公司的g e m s t o n e ,o n t o l o g i c 公司的v b a s e ,g i pa l t a i r 公司的0 2 。g b a s e 是用专家系统应用程序开发语言g l o g i c 编写的基于l i s p 的系统。g e m s t o n e 是一个多用户的面向对象数据库管理系统,它是由一种数据 定义和操纵语言o p a l 控制的。g e m s t o n e 为用户提供了开发灵活性,即允许用 户在c 或s m a l l t a l k 和o p a l 中执行数据操作。o n t o l o 西c 公司的v b a s e 是专门的 模式生成语言t y p ed e f i n i t i o nl a n g u a g e 和一种过程语言co b j e c tp r o c e s s o r 编写 的。0 2 是原m m c 集团的f r a n c o i sb e n c i l h o n 组织开发的面向对象数据库系统。 这些早期的系统性能较低,因而对规模较大的应用很难适应。随后用c h 语言开发了许多新的商品化系统,o n t o s ,o b j e c t s t o r e ,o b j e c t i v i t y d b ,v e r s a n t 等系统。它们是c h 面向对象语言的持久化系统,实现了高效的数据操纵。 由于缺乏统一的标准,面向对象数据库应用的推广受到了影响,从而阻碍了 它的发展。1 9 9 1 年,来自s u n s o f l 公司的r i c kc a t t e l l 开始着手联合5 个o o d b m s 厂商,制定对象数据库标准( o d m g ) 。1 9 9 3 年o d m g l 0 发布。9 0 年代期间, o d m g 组织服务于x 3 h 2 ( s q l ) 委员会,负责通用查询语言的设计。尽管没有 具体的目标,但是对后期o d m g o q l ( 对象查询语言) 的设计产生了至关重要的 影响。 1 9 9 5 年,发布了“面向对象数据库系统宣言”。整个9 0 年代是面向对象数 据库系统的第一次成长期。到2 0 0 0 年,商业化o o d b m s 的市场已经增长到上 亿美元。 2 0 0 1 年o d m g 3 0 标准发布,此后不久,o d m g 组织把o d m gj a v a 绑定提 交给j a v a 标准制定组织,作为j d o ( j a v a 数据对象) 标准的基础。随后,o d m g 组织解散。 j d o 由面向对象数据库社群驱动,其开发者就是原来o d m g 组织的成员, 桂林理工大学硕士学位论文 现在被面向对象数据库产品作为主要的a p l l 2 讲。j d o 提供了透明的对象存储,因 此对开发人员来说,存储数据对象完全不需要额外的代码( 如j d b ca p i 的使用) 。 但是j d o 不是真正的对象数据库,它只是为数据存储提供的一个面向对象接口, 该接口可以由o o d b m s 选择实现。作为现在主流的j a v a 持久化标准,很多 o o d b m s 厂商都选择提供j d o 接口。 o d m g 标准发展的趋势使得我们有必要介绍一下当前应用数据库开发的主 流方法。j a v a 平台下数据持久框架主要包括e m i t yb e a n s 、j d o 、h i b e r n a t e 。n e t 平台下的数据持久框架主要是n h i b e r n a t e 。这些技术的核心都是提供利用对象模 型来构建持久化程序的功能。目前针对数据持久层的实现模型研究有很多 2 1 , 2 2 】, 同时这种o r 映射框架也是数据库系统中的重点研究方向。 2 0 0 4 年开源的到来。开源面向对象数据库d b 4 0 1 2 30 2 4 l 发布。2 0 0 5 年1 1 月, d b 4 0 第一个实现了以原生数据库查询语言( n a t i v eq u e r i e s ) 作为面向对象数据存 取的a p i 。原生数据库查询语言提供一种以j a v a 或c j | 方法来表达查询的方式。 d b 4 0 ( 来自d b 4 0 b j e c t s 公司) 作为一款独特的、实用的o o d b ,既满足最小 限度的资源消耗、高输入输出性能、易于实现、符合工业认可标准a c i d 等要求, 又规避了“阻抗失调 现象。它有以下一些优势:资源的最少消耗。d b 4 0 的 内置库紧紧使用了大约4 0 0 k ,但是它的节省内存特性并没有显示性能上的不足。 高输入输出。d b 4 0 在读、写、查询、删除方面的性能要远好于典型的s q l 数 据库。易于实现。j a v a 版本的d b 4 0 是一个单独的j a r 文件;n e t 版本的是一 个单独的d l l 文件。可以在应用程序罩引入这个库。无“阻抗失调 。如图 2 2 所示,d b 4 0 是一款完全面向对象的数据库。对象以“a s i s ”关系存储,没有 对象到关系的转换层,也不含糊或者不可见。另外,d b 4 0 能任意处理复杂的对 象结构。不用建立对象到关系数据库表格映射的模式定义。应用程序类的层次和 类本身的关系定义了数据库模式。原生查询。一旦根对象被放入内存,d b 4 0 允许你使用普通对象引用来导航任何所需的子或同属对象。对象版本改变。可 以在建立的d b 4 0 数据库里改变旧类,无需中断在使用的数据库应用。d b 4 0 允许 我们使用一个单独的方法调用,来重新命名一个已经存储在数据库中的类。相比 之下,应用在关系数据库后台的解决方案需要在数据库表格内成批的进行改变, 还包括查询代码的改变。简单的对象复制和同步。软件智能的运行,但是间歇 性的连接设备( 比如:手持采集器或者扫描器) 必须拥有从主数据库接受持久对象 的子集的方法,允许用户应用程序工作在导出的数据库( 从主数据库断开的) 上, 然后重新连接主数据库并且同步所做的改变。d b 4 0 拥有这种正确的插入数据的 能力,叫做d b 4 0 的复制系统( d r s ) 。零管理。d b 4 0 不需要管理,对于处理移 动设备应用程序、信息应用程序、智能医疗系统、所有对于用户不可见的数据库 6 桂林理工大学硕士学位论文 应用,它是理想的选择。 r d b m s - d b 4 0 图2 2r d b m s 与d b 4 0 阻抗失调对比 国产面向对象数据库代表o n e t 2 5 , 2 6 , 2 7 , 2 8 。o n e t 系统是由浙江大学人工智能 所智能软件实验室自主开发的o o d b m s 。它是由该实验室早期的面向对象智能 决策支持开发环境z 系统中对象存储子系统演变而来,经历了t r - o o d b 原型系 统的开发,在2 0 0 2 年新版更名为o n a 。o n e t 系统遵循o d m g 3 0 标准,主要 实现其中的c h 绑定接口。 作为一个o o d b m s ,o n e t 最典型的功能就是允许用户可以操纵任意复杂的 对象模型以及它们之间任意复杂的相互关系。o n a 可以让程序开发人员管理简 单的数据类型如整数、字符串等,也可以定义复杂的数据结构,同时还可以管理 除了1 1 ,1 - n 之外的双向关系,例如用链表( 1 i s t ) 、集合( s e t ) 等来表示的关系。 复杂的数据类型和关系不仅丰富了程序的表达能力,同时也提高了程序获取数据 的效率。 在体系结构上,o n e t 采用典型的c s 架构,服务器能够大数据量、高负荷 的处理多个客户端服务请求。o n e t 提供单个数据库容量3 2 t b 存储能力和同时 允许数十个客户端同时连接的吞吐量。在客户端提供对象、页面双重缓冲区,大 大提高了数据访问的效率,同时自动维护对象完整性。o n e t 系统还提供并发控 制、故障恢复等数据库管理系统本身所具有的基本功能。提供一个良好的对象数 据存储平台。 2 3 面向对象数据库开发标准o d m g 3 0 描述 o o d b 开发通过提供宿主语言的绑定( b i n d i n g ) 给予编译语言持久化的能力。 因此对象数据库可以和面向对象应用环境无缝整合在一起,从而为数据库开发提 供了优秀的开发环境。现有o o d b 的主要标准是o d m g 标准。这个标准是由主 要的o o d b m s 厂商组成的对象数据管理组织( o d m g ) 所制定。 2 3 1 主要内容 2 0 0 1 年,o d m g 组织推出o d m g 3 0 【侧标准,其主要内容如下: 7 桂林理工大学硕士学位论文 ( 1 ) 对象模型,是o o d b m s 支持的公共数据模型,是对象定义语言( o d l ) 和对象操纵语言( o m l ) 的基础。它参照了o m g 的对象模型,并对它做了必要的 扩充。o d m g 对象模型包含以下建模要素: 对象和文字:基本的建模要素。 类型:具有给定类型的所有对象和文字表现出共同的行为和状态,类型本 身也是对象。对象有时候被称为它的类型的实例。 对象的状态:通过对象所携带的一组性质来定义对象的状态。性质可能是 对象的属性,或者是对象与一个或多个对象之间的联系。通常,随着时间的推移, 对象的性质可以被改变。 对象的行为:通过一组操作来定义对象的行为。操作由对象执行或者在对 象上执行。操作可能含有一系列类型化的输入输出参数,并返回一个类型化的 结构。 元数据:持久对象的描述信息。 并发控制:o d m g 对象模型基于传统的锁协议进行并发控制,实施对象 的共享访问和独占访问。 事务模型:任何关于持久对象的操作( 创建,访问,修改,删除) 都必须在 事务中进行,事务是满足a c d 准则的逻辑单元。在事务开始之前,必须首先打 开一个数据库对象。一个数据库对象可以与多个事务对象相关。 数据库:o d m g 对象模型将数据库看作存储一组给定类型的持久对象的 区域。每个数据库都具有模式( 把相关配置信息组织起来) ,它包含一组类型定义。 每个数据库都是类型d a t a b a s e 的一个实例,具有内置操作o p e n ,c l o s e 。除 了上述两个操作,其他的操作必须在一个事务中执行。 ( 2 ) 对象定义语言( o d l ) ,o d l 被设计成支持o d m g 对象模型的语义结构, 并且独立

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论