




已阅读5页,还剩129页未读, 继续免费阅读
(计算机科学与技术专业论文)对象关系数据库中若干关键技术的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文攮要对象关系数据露按本是在继承关系数据瘴搜术懿基础上,增热器囱对象特性,使面向对象技本与关系数据痒技术紧密结合,可满足c a x 、c a s e 、o i s , o i s 等应用领域的器求恧发展起来的秘叛型数握露技术,宅既具鸯管理复杂数据的能力,又能提供强有力的查询功能,是数据库研究昶产品发展的一个重要方向。本文主要研究对象关系数据库中的查询优化处理技术、连接谓词处理及索引技术、通用索引结构及其并发控制、基于引用的连接算法等关键技术。针对选择条件中可以包含用户定义的复杂函数的新特点,零文提出了一种基于动态规划和r a n k 值的两阶段优化算法p r e d i c a t e r o l l i n g。它首先_up利用s y s t e mr 中的动态规划优纯算法和启发式规尉为连接运算产生连接次净,在魏基础上,根据选择条件的r a n k 值,将它放置到执行规翊中的适当经鬣。该方法开销小,髓能产生优仡静执行矮巅。当述接条俸串包含用户鑫定义静复杂函数时,原有的连接算法不能直接疲曩于该连接运簿,为l 毙,本文提爨了限定变羧函数羊。概念,来限定连接谖词中某些变元的取僮范匿,从嚣避免慰整个关系的扫接,达到提蹇连接舅法性能的目的。另弧,基于连接索弓l 概念,设诗了相应的遗接算法,并对算法的性能进行了具体分析。对象关系数据瘁中的数据类型是可扩展的,与此相关的索引结构也应当能够扩展。为此,本文提出了一种扩展的通用索引树结构e g i s t ,来支持数据类型和查询谓词掰方面的可扩展性要求。并针对e g i s t 结构的特点,采用扩展的右链技术以及谓词锁与两阶段数据锁联合使用的封锁策略,实现对e g i s t 索引树的高效并发操作,并可满足事务的可萤复住读一致性要求。针对对象关系数据模型和查询语言所支持的引用特性,设计了基予引用的连接算法s o r t l o o p s 、p r o b e - l o o p s 以及s e g m e n t - j o i n 。经分析表明,这些算法在一定条件下均具有徽好的经稚。在论文的末冕,对备章串的研究成莱进行了总结,并对下步静研究工作进行了震望。关键词:查询优化、索粤l 缝构、势发控测、耀声定义函数、查询处理、连接算法、算法分析、对象关系数据库r国防科学技术大学研究生院学位论文a b s t r a c t0 b j e e t - r e l a t i o n a ld a t a b a s et e c h n o l o g yc o m b i n e st h er e l a t i o n a la n do b j e c t -o r i e n t e dc a p a b i l i t i e si no n ed a t a b a s es y s t e m t tp r o v i d e ss u p p o r tf o rr i c h e ro b j e c ts t r u c t u r e sa n dp o w e r f u lq u e r y o r i e n t e df u n c t i o n s 。黜k i n do fd b m sc a nm e e tt h er e q u i r e m e n to fs o m en e w l ye m e r g i n ga p p l i c a t i o na r e a s ,s u c ha sc a x ,g i sa n do i s n o w ,t h eq b j e c t - r e l a t i o n a ld a t a b a s e ( o r d b ) t e c h n o l o g yi sr e g a r d e da so n eo f t h em o s tp r o m i s i n gr e s e a r c ha n dp r o d u c td e v e l o p m e n td i r e c t i o n s 1 1 1 j st h e s i ss t u d i e s 也ef o l l o w i n gk e yi m p l e m e n t a t i o nt e c h n i q u e so f0 r d b 。i e ,t h eq u e r yo p t i m i z a t i o nt e c h n i q u e so fo r d b t h e o i np r e d i c a t ep r o c e s s i n ga n d o i np r e d i c a t ei n d e xt e c h n i q u e s ,t h eg e n e r a li n d e xs 扭d c t u r ea n dc o n c u r r e n c yc o n t r o ls t r a t e g y ,a n dt h er e f e r e n c eb a s e d o i na l g o r i t h m s 。i no r d b u s e r - d e f i n e dt i m e - c o n s u m i n gf u n c t i o n sc a nb eu s e di ns e l e c t i o nc o n d i t i o i l s s ot h em o d e lo fr e l a t i o n a lq u e r yo p t i m i z a t i o nm u s tb ee n h a n c e d b a s e do nt h es y s t e mrs t y l ed y n a m i cp r o g r a m m i n gt e c h n i q u ea n dt h er a n kc o n -c e p t ,at w o - p h a s eo p t i m i z a t i o na l g o r i t h mp r e d i c a t eir o l l i n g _ u psd e s i g n e df i r s t l y ,t h es y s t e mrs t y l ed y n a m i cp r o g r a m m i n gp r o c e d u r e ( a n dt h es p e c i f i ch e u r i s t i cr u l e ) i su s e dt od e t e r m i n et h e o i no r d e ro ft h er e l a t i o n s a f t e rt h a t t h ee x p e n s i v ep r e d i c a t e sa r ep l a c e di nt h eo p e r a t o rt r e e ( o re x e c u t i o np l a n ) a c c o r d i n gt l e i rr a n kv a l u e sw i t hr e s p e c tt oi o i n s t i l i sm e t h o dc a ng u a r a n t e et h eg e n e r a t i o no f o p t i m i z a t i o ne x e c u t i o np l a na n dc o s t sal i t t l e w h e nu s e rd e f i n e df u n c t i o n s ( u d f s ) a r ei n v o l v e di nt h e o i np r e d i c a t e t h ea l g o r i t h m sf o rt h ec o m p u t a t i o no fr e l a t i o n a lj o i n sc a nn o tb eu s e dd i r e c t l y 。i nt h ep a d e r t h er e s t r i e t i n gt r a n s f o r m a t i o nf u n c t i o nt ri sd e f i n e d w h i c hc a nr e s t r i c ts o m ev a r i a b l e sv a l u e s 。w i t h o u ts c a n n i n gt h ee n t i r er e t 鑫t i o n ,p e r f o r m a n c eo fj o i na t g o r i t h mc a nb ei m p r o v e dg r e a t l y g e n e r a l i z i n gt h ei o i ni n d e xc o n c e p t f ln e wd e -t a i l e di o i na l g o r i t h mb a s e do np r e d i c a t ei o i ni n d e xi sp r e s e n t e d ,a n dt h ep e r f o r -m a l i c ei sa n a l y z e d 耽ei n d e xs t r u c t u r eo fa no b j e c t r e l a t i o n a ld a t a b a s em u s tb ee x t e n s i b l eb e c a u s ei t st y p es y s t e mi s i nt h ep a p e r ,a 1 1e x t e n d e dg e n e r a l i z e ds e a r c ht r e e ( e g i s t )i sp r e s e n t e dt os u p p o r tt h ee x t e n s i b i l i t yo fd a t at y p e sa n dq u e r yp r e d i c a t e s an o v e ll o e km e c h a n i s m w h i c hi sac o m b i n a t i o no fp r e d i c a t ei o c ka n dt w o p h a s el o c k i n go fd a t ar e c o r d s i sa l s od e s i g n e di nt h ec o n t e x to fe g i s t ,弧ed e g r e e3c o n s i s t e n c yo rr e p e a t a b l er e a di s o l a t i o no f t r a n s a c t i o n sc a nb eg u a r a n t e e d b a s e do nt h er e f e r e n c ef e a t u r eo fo b j c o t - r e l a t i o n a ld a t am o d e la n dt h eq u e r yl a n g u a g e ,t h ej o i na l g o r i t h ms o n - l o o p s ,p r o b e - l o o p sa n ds e g m e n t - j o i na r ep r o p o s e d ,t h e i rp e r f o r m a n c ea r ea n a l y z e da n dc o m p a r e d u n d e rc e r t a i nc o n d i t i o n s 。t h e s ea l g o r i t h m sa r eo fg o o dp e r f o r m a n c e i nt h ee n d ,t h e r ei sas u m m a r yt h a tc o n t a i n sab r i e fr e c a po fe a c hr e s e a r c hc h a p t e r sm a i nr e s u l t sa n dd i r e c t i o nf o rf u t u r ew o r k k e yw o r d s :q u e r yo p t i m i z a t i o n ,i n d e xs t r u c t u r e ,c o n c u r r e n c yc o n t r o l ,u s e r -d e f i n e df u n c t i o n ,q u e r yp r o c e s s i n g ,j o i na l g o r i t h m ,a l g o r i t h ma n a l y s i s ,o r d b 。l l国防科学技术大学研究生院学位论文第一章绪论本章将在简要介绍对象关系数据库技术的产生原因、主要特点以及一些典型系统的基础上,阐述对象关系数据库技术的研究现状及进展,并介绍论文的主要内容、研究成果与结构安排。1 1 引言数据管理领域的发展历史表明,应用的需求始终是推动数据管理技术进步的原动力之一,而各种技术途径的艰辛探索和不断创新是支撑数据管理产品发展的决定因素。八十年代初期,正当关系数据库产品在商务事务处理领域取得巨大成功时,一些其他的应用领域也逐渐表现出采用数据库技术的兴趣,以图获得数据库系统所具备的许多数据管理功能,如恢复、并发控制、完整性、存储管理等,这些应用领域包括c a d ,c a m ( 计算机辅助设计倩0 造) 、c a s e ( 计算机辅助软件工程) 、图象处理、g i s ( 地理信息系统) 、o i s ( 办公信息系统) ,以及后来的e o s ( e a r t ho b s e r v i n gs y s t e m ) 、电子商务、保健信息系统、数字化出版、协同设计等等。这些新型应用领域同时也向数据库系统提出了许多新的要求,例如:针对应用领域中的数据对象在构成关系上比较复杂的特点,要求数据库管理系统具有存储和管理复杂对象的能力;针对应用领域中不同的各种新型数据类型,要求数据库系统具有类型扩展能力,以便用户能方便地定义自己的数据类型,如多媒体、空间数据、科学数据、地理数据等;在检索方式上,也需要一些新的形式和技术,如基于图像内容进行查找,能对空间多维乃至高维数据进行索引:另外,为满足程序设计语言与数据库语言无缝集成的要求,克服“阻抗失配”的问题,需要对常规内存中的数据对象和外存中的大量数据对象进行统一和有效的存取与计算;在事务处理方面,要求支持长事务和嵌套事务,等等。这些广泛而新型的应用领域和特殊要求在整体上有力地推动着数据库技术特别是关系数据库技术的发展。恰在当时,面向对象概念及其封装、继承、对象标识等特性备受人们的关注,把面向对象技术与数据库技术结合起来,旨在利用类的设施来描述复杂对象,利用类中封装的方法来模拟对象的复杂行为,利用继承性来实现对象的结构和方法的重用。为此,人们从不同的研第1 贞国防科学技术大学研究生院学位论文究途径出发,开始了如何把面向对象技术与数据库技术相结合的艰辛探索,形成了四个主要的研究方向i l 】,它们是:1 ) 扩展的关系数据库系统2 1 持久性程序设计语言3 1 面向对象数据库系统4 ) 数据库工具箱( t o o l k i t s c o m p o n e n t s )十余年后,上述四个中的两个已逐渐淘汰,面向对象数据库系统的研究取得了有限的成功,而扩展的关系数据库系统,即今日的对象关系数据库系统正日益显现出良好的商业和市场前景,倍受关注。对象关系数据库将在坚持关系概念为核心概念的基础上,吸收面向对象中的继承、封装、复杂对象等概念,从而支持对复杂数据对象的有效管理,继续提供强有力的查询功能,满足那些既需要查询功能( 如s q l 所提供的功能) ,又需要管理复杂数据的新型应用的要求。为此,对象关系数据库系统应当具有以下四个主要特征口l :1 ) 支持基本数据类型的扩充,允许用户增添自己所需的数据类型。2 ) 支持复杂数据对象,如提供组合、集合、引用等类型构造子。3 ) 支持继承,包括数据和函数继承、单继承与多重继承等。4 1 支持规则系统,如触发器、一般的规则系统等,用于增强系统的完整性管理。目前的s q l :1 9 9 9 ( 先前也称为s q l 3 ) 反映了对象关系数据库朐主张,在对象关系特征方面,提供了建立新数据类型的语句,并提供r o wt y p e 用于建立复杂的数据对象。在系统实现方面,典型的对象关系数据库研究原型包括p o s t g r e s 、e x o d u s 、s t a r b u r s t 等。市场上一些具有对象关系数据库特点的产品有:c a i n g r e s 、i b md b 2c s ( c o m m o ns e r v i c e ) ( v 2 ) 、i l l u s t r a ,i n f o r m i x 、o r a c l ev 8 x 、u n i s q l x 等。1 2 研究状况与进展对象关系数据库的一些新特点,给对象关系数据库的实现技术方面带来了许多新的变化,也面临着一些技术挑战。如对象关系数据库必须具备怎样的结构才能支持数据类型的可扩展性,允许用户增加自己定义的数据类型?这将涉及到可扩展的类型管理器结构、可扩展的编译器结构、可扩展的优化器结构、可扩展的执行器结构、可扩展的存储和索引管理器结构、可扩展的实用程序等。另一方面,由于结构类型、继承等的出现,相应地会给存储管理、索引组织、查询处理方面、算法等方面产生影响。如对继承处理而言,第2 页国蒴科学技术大学研究艇院学位论文霹能就器要层次索引技术;墩子引用的采用,在连接算法方面就可以采鼹一些基予雩| 焉豹嵩效连接雾法。由于允诲鬻声定义秘操终獭瑗在查邂潺句孛,丽遮些操作将对套询优化产擞重要影响,需要研究一燕新的查询优化方法,等等。下面拟从对象关系数据库的数据模测与查询语言、查询优化、数据存鼗方法、鼹户定义鹣函数戆娥理、连接冀法、并鳕处遴、安全、对象芙系数撼痒访阙其 彀数据源以及与w e b 工具的集成等方面来介缓对象关系数据库在实现方面的主簧技术挑战、研究现状及主翳进展。( 1 ) 数据模型砖套询语言藩象关系数据瘁麴数蠢横麓哥疆谈为燕关系搂垄熬扩震,其发麓历变可以追溯到第三代数据库系统逝言 3 l ,甚至受早,但这个问题直到一九九五年还在继续讨论i ) 。m i c h a e lj c a r e y 和d a v i dj d e w f f t 在一九九六年数同发表文鬻,对过去十二年间嚣自慰象和数舞瘁乏阕鲍关系帮鞠互影响,以及由此掰形成鹣各斡研究方淘进行了全面鼢分耩嘲,认为对敷关系数舞瘁怒最有发展前景的数据库技术,同年,m i c h a e ls t o n e b r a k e r 也出版了 对象关系数据库管理系统一一下一个浪潮书,对关系数据库技术进行了初步介绍仁l 。与蘧相关懿楚s q l 逶害瓣发震,美黧国家标准纯豢受会( a n s i ) 弱国际标准化组织( i s o ) 一童积极参与并箍避s q l 语言的标准化进程。从九二年的s q l 一9 2 历缀七年于九九九年才推出t s q l :1 9 9 9 ,这个新的标准由基本撰架( s q l f r a m e w o r k ) 、语言基础( s q l f o u n d a t i o n ) 、调用级接口( s q l c l i ) 、荐储模块( s q l p s m ) 嚣语富联编( s q l b i n d i n g s ) 嚣部分组成1 5 o 8 9 j 。它增强了原有的一些关系特性、并加入了对象关系的主鼹特性,如用户定义的结构数据类型( s t r u c t u r e du s e r - d e f i n e dt y p e s ) 、函数、过程、方法、类型表( t y p e dt a b l e ) 、号l 用( r e f ) 等等。该撅准豹制订,受鸯羹统了对象关系数据库的数据模型与查询语塞,将对对蒙必系数据库产品的发展产生积极的影响。( 2 ) 对象关系数据库查询优化技术在关系数撵霹孛,壶予s 既是说弱谯谣言,只告落系统要秧嚣么,瑟不直按说明怎样傲的过程,为此,系统必须为所提交的s q l 语句寻找到一个优化的执行过程,淼询优化技术就成为决定篾系数据库系统能否成功的关键技零。关系系统审饶纯的重点数崔对连接次廖和操作算法戆选择上,酆投据代价公式或启发式规燹| j 来选择逡接次序和连撩算法n “。关系数据库中的优化处墩技术及主要思想可在对象关系数据库中继续使用,但对象关系数据库在数据模型和查询谣言方面均远比关系数据瘁率富,爨叛,魏亿懿戮念更多,往豫技本将受秀炭杂。一般蟪,对象关系数攥痒孛的优化技术需登在关系数据霹优化技术的潦础上,进彳予以下方面的研究和扩展:甍3 菱国防科学技术大学研究生院学位论文- i _ - _ _ _ _ _ - _ _ _ - l _ _ _ _ _ _ _ _ - _ - _ - - _ - - - _ - _ - _ _ _ _ _ _ - e e _ _ - _ _ _ _ _ - - 田e1 ) 谓词子句求值顺序的优化。2 ) 高价选择谓词的优化处理。3 ) 继承层次连接的优化。4 ) 选择率的估计,如利用用户定义的选中率函数。5 ) 对集合属性和复杂结构对象的有效处理。在对象关系数据库中,谓词子旬的求值顺序也可严重地影响到查询处理的性能。如:s e l e c tr l a m ef r o me m pw h e r er e d n e s s ( p i c t u r e ) 1 0 0 0 i传统的关系型d b m s ( d a t ab a s em a n a g e m e n ts y s t e m ) 将采用顺序扫描的方式读取e m p 表中的每个元组( 假定无索引) ,并判断该元组是否满足选择条件。在条件子句的处理过程中,它是按从左到右的次序进行的,对上述语句而言,将先检测r e d n e s s ( p i c t u r e ) 1 0 0 0 部分。这对关系数据库而言,是一个合理的策略,因为所有子句都相对简单,不需要大量的c p u 时间。但对对象关系数据库而言,情况就不同了,它可能需要花费大量的c p u 时闯才能完成该子条件的判断处理。对上述查询语句而言,一个好的子旬执行次序应当是先执行s a l a r y 1 0 0 0 判断,当为真时,再进行r e d n e s s ( p i c t u r e ) 0 1 判断。对选择条件中各子句的求值优化问题已得到基本解决“1 2 , 1 3 , “ 。针对s q l - 9 2 而言,选择条件操作下推这条启发式规则总是有效的,因为选择条件下推将有助于缩小后续参与连接运算的关系表的大小。有利于连接运算的处理。但在对象关系数据库中,选择操作中可能包含用户定义的计算复杂性高的操作,因而可能使选择操作下推的启发式规则失效,这样,要求把选择操作和连接操作的顺序一体考虑。最早关注对象关系数据库中选择操作的代价并明确提出将选择操作与连接操作放在同等重要的地位加以处理的是m i c h a e ls t o n e b r a k e r 教授【i ”,提出该问题的应用背景是地理信息系统。在p r o j e c ts e q u o i a2 0 0 0 应用系统中,需要处理许多含有高价函数的查询语句。发现这重要的查询优化问题以后,j o s e p h m h 和m i c h a e l 首先提出了谓词迁移( p r e d i c a t e m i g r a t i o n )算法“”来确定高价选择谓词在查询规划中的适当位置,随后又对上述算法进行了一些改进“6 ”】。但是,谓词迁移算法由于计算的不精确难于获得最优的执行规划,并且由于“不可剪枝的子查询”( u n p r u n a b l es u b p l a n ) 的出现,使得它所基于的动态规划方法易于陷入穷举,不仅增加了所需保存的中间规划的数目,而且降低了算法的性能。为了克服上述方法中难于获得最优查询规划的不足,s u r a j i tc h a u d h u r i第4 一页国防科学技术大学研究生院学位论文又提出了一种新的优化方法n “”】,该方法对高价选择谓词在执行规划中所处位置的各种情况都进行搜索、比较,从中挑选出最优的执行规划,但该方法的不足在于它扩大了优化方法的搜索空间。值得指出的是,l d l 啪 系统中也涉及到了如何处理高价谓词的问题,它采用把高价谓词转化为关系的连接运算,利用连接运算的优化算法来优化高价谓词,但由于连接优化问题为陬滩度问题【l “,因此,该处理办法不是解决高价谓词处理的有效办法。对象关系数据库中支持继承,继承的特性也可影响到查询处理的性能。假定关系e m p 和s t u d e n t _ e m p 的元组类型分别为e m p t 和s t u d e n t e m p t ,且类型s t u d e n t e m p _ t 是e m pt 的子类型,为此,对以下查询语句:s e l e c te n s n ef r o me m pe ,d e p tdw h e r ee d e p t = d d n a m ea n dd f l o o r = l :处理该查询的最基本办法是将它转化为以下两个查询来进行处理:s e l e c te n a m ef r o mo n l y ( a m p ) e ,d e p tdw h e r ee d e p t = d d n a m ea n dd f l o o r = l :s e l e c te n a m ef r o mo n l y ( s t u d e n t e m p ) e ,d e p tdw h e r ee d e p t = d d n a m ea n dd f l o o r = l :从处理效率上讲,一种更好的方式可能是先将关系e m p 和s t u d e n t e m p中的元组进行并处理,然后再与d e p t 表进行连接。对选择率的估算,这在关系数据库中已有一些有效的方法,而在对象关系数据库中,需要对用户定义的选择谓词进行选择率的估算。这主要有两种途径,其一是用户提供所定义的选择谓词的选择率估算方法,其二是系统记录该选择谓词执行过程中的历史信息,用于该选择谓词的选择率估算。另外,在基于代价的优化方法中,还需要对用户定义的函数的执行代价进行估算 2 1 1 。有关这方面的研究有待进一步深入。另外,针对对象关系数据库中的集合属性和复杂结构,有时需要对集合属性建立索引,而对复杂结构建立路径索引等,查询优化中要对这些新的存取路径进行分析,生成优化的执行规划。( 3 ) 新的存取方法在关系数据库系统中,使用最为广泛的索引结构是b + 树结构口”。b + 树索引主要解决一维有序空间上根据算术比较来查找相应数据的问题,通过对该空间的多次划分而组成一种包含关系的层次结构,依此而指导对特定索引数第5 页国防科学技术大学研究生院学位论文据项的快速查找。对数值、字符串等数据类型而言,已做为基本数据类型来实现,用户可以直接在关系表中数据类型为数值或字符串的字段上建立b + 树索引。在对象关系数据库中,用户定义的方法可以用到查询条件中,如:s e l e c tn a m ef r o me m pw h e r er e d n e s s ( p i c t u r e ) 、 = 、 、 、 = 、 c h a r ( 3 0 )c i t y ( a d d r e s s ) c h a r ( 2 0 )s t a t e ( a d d r e s s )- c h a r ( 2 )却( a d d r e s s ) i n t e g e rs t r e e t ( a d d r e s s ,c h a r ( 3 0 ) ) - a d d r e s sc i t y ( a d d r e s s ,c h a r ( 2 0 ) ) a d d r e s ss t a t e ( a d d r e s s ,c h a r ( 2 ) )- a d d r e s si 第2 1 页嗣防科学技术大学研究生院学位论文z i p ( a d d r e s s ,i n t e g e r ) a d d r e s s而对黑箱形式的a d t 而言,o b s e r v e r 和m 玎a t o r 函数将由类型定义者提供。3 ) 子类与继承一个抽象数据类型可以是一个或多个抽象类型的子类,子类继承父类的所有属性和行为( 函数) 。4 ) r o w 类型( 也称r o wo b j e c t s )它是用户定义的一种有名类型,该类型不具有封装性质,用于定义关系表中数据行的类型。如:c r e a t er o wt y p ea e c o t m l tfa c c m oi n t ,c u s tr e f ( c u s t o m e r _ t ) ,typec h 触u 1 ) o p e n e dd o u b l ep r e c i s i o n ,b a l a n c ed o u b l e p r e c i s i o n) ;c r e a t et a b l ea c c o u n to fa e e o u n l t (p r i m a r yk e ya c c t n o) ;5 ) 引用类型( r e f e r e n c et y p e s )引用类型用于数据间联系建模的一种机制,有时可为引用类型指明引用范围。例如:c r e a t et a b l ea c c o u n to fa c c o u n l tfp r i m a r yk e ya c d 胁s c o p ef o rc u s ti sc u s t o m e r) ;。在行类型中,可以包含引用类型,如上例中的a c c o u n tt 类型中的c u s t就是一个引用类型。值得指出的是,只有关系表中最外层的数据行才能被引用。6 1 路径表达式引用可用于书写路径表达式,对引用属性的使用权限遵循s q l 中的权限管理模式,当引用明确时,权限检查可在编译时刻进行。否则,权限检查1 第;丝页国防科学技术大学研究生院学位论文将推迟到运行时刻进行。以下是使用引用的例子:s e l e c ta a c c t n o ,a c u s t - n a m ef r o ma c c o u n taw h e r ea c u s t - a d d r e s s c i t y = h o l l y w o o d a n da b a l a n c e 1 0 0 0 0 ;值得指出的是,引用与参照完整性限制在语义上是不一样的。参照完整性说明的是一种包含依赖( i n c l u s i o nd e p e n d e n c y ) 。为此,引用与参照完整性可以同时存在。以下是一个说明参照完整性的例子:c r e a t et a b l et 1( c 1n u m b e rp r i m a r yk e y ,) ;c r e a t et a b l et 2( c 2n u m b e rp r i m a r yk e y ,) ;c r e a t et a b l et( ci n t e g e r , 一f o r e i g nk e y ( c ) r e f e i 也n c e st 1 ( c 1 ) ,f o r e i g nk e y ( c ) r e f e n c e st 2 ( c 2 ) ) ;7 ) 表层次由于行类型同样是用户定义的一种数据类型,它可以是其他行类型的子类型,同样将从父类型继承所有的属性和函数。当这样的行类型用于关系表的定义时,相应的子关系表中的元组与父关系间就形成一个i $ - a i n s t a n c e o f关系,也简称为表层次。例如:c r e a t er 忡ee m p l o y e e ( n a m ec h a r ( 2 0 ) ,s a l a r yd e c i m a l ( 1 0 ,2 ) ) ;c r e a t et y p em a n a g e ru n d e re m p l o y e e ( b o n u sd e c i m a l ( 10 ,2 ) ) ;c r e a t et y p es u m m e r _ s t u d e n tu n d e re m p l o y e e ( s c h o o lv a r c h a r ( 3 0 ) ) ;c r e a t et a b l ee m p l o y e e so fe m p l o y e e ;c r e a t e t a b l em a n a g e r so f m a n a g e r u n d e r e m p l o y e e s ;c r e a t e t a b l es u m m e r s t u d e n t so fs u m m e r s t u d e n tu n d e r e m p l o y e e s ;8 ) s e t 、l i s t 、b a g 以及a r r a y 等汇集类型( c o l l e c t i o nt y p e )上述类型构造子的成员类型可以是任意类型,包括r o wt y p e 类型、用户定义的其他a d t 类型、以及c o l l e c t i o n t y p e 类型。与a d t 一样,c o l l e c t i o nt y p e 类型可以出现在基本数据类型可出现的任何地方。c r e a t er o wt y p ee m p l o y e e (i di n t e g e r ,n a m ev a r c h a r ( 3 0 ) ,第2 3 页国防科学技术大学研究生院学位论文a d d r e s sa d d r e s s ,m a n a g e rr e f ( e m p l o y e e ) ,p r o j e c t ss e t ( r e f ( p r o j e c t ) ) ,c h i l d r e nl i s t ( r e f ( p e 墙o n ) ) h o b b i e ss e t ( v a r c h a r ( 2 0 ) ) ) ;应当支持对c o l l e c t i o nt y p e 的查询功能,这一点是十分重要的。进行查询操作时,上述各种汇集类型均被当做关系看待。值得注意的是,查询的结果都为关系。当然,a r r a y 和l i s t 还可通过索引位置访问到某个具体成员。s e l e c te n a m ef r o me m p l o y e e sew 瑚b l 也t r a v e l i n ( s e l e c t +f r o mt a b l e ( e h o b b i e s ) c )a n d ( s e l e c tc o u n t ( + ) f r o mt a b l e ( e c h i l d r e n ) d ) 59 ) 大对象数据类型、数据库完整性、触发器以及其他对象关系数据库中对大对象的支持将把这些所谓的大对象放入到数据库中,而不是在数据库之外,如放到某个外部文件中。目前,一些对象关系数据库系统都支持大对象管理,如b l o b ( b i n a r y l a r g e o b j e c t ) 、c l o b ( c h a r a c t e rl a r g eo b j e c t ) 。当然,它们与模型没有本质上的关系,但对象关系数据库将在这些领域发挥作用,得到应用,因而这也就成为一种需要了。这里的完整性、触发器机制与关系数据库中的完整性一致。但依据m i c h a e ls t o n e b r a k e r的观点,对象关系数据库中的完整性应比关系数据库有所加强,如支持规则。所以在完整性特性方面,对对象关系数据库而言应当是开放的。上面从九个方面对对象关系数据库模型进行了具体说明。为了进一步理解对象关系数据库与面向对象数据库的差异,特做以下对比分析【4 7 】:( 1 ) 在程序设计环境方面o o l 假定其将嵌入的编程语言与它使用同样的对象模型( 如c + + 、s m a l i t a l k 、j a v a ) 等,而s o l :1 9 9 9 中假定的处理对象与编程环境中的不同,允许s q l 与编程环境进行数据转化,当然它的a d t 机制可缓解这种矛盾。( 2 ) 在关系的作用方面s q l :1 9 9 9 中关系仍然是最基本的核心的核心,元组的类型由r o wt y p e确定,而a d t 用于描述属性的类型。然而o q l 中由于s e t 、b a g 机制在s e l e c t f r o m w h e r e 结构中的作用,它们也同样是一些重要的对象包容器,结构的汇集类似于关系。第2 4 页国防科学技术大学研究生院学位论文( 3 ) 在封装性方面r o wt y p e 中利用g e t 和s e t 函数支持封装,利用它们来对类型关系( t y p e dr e l a t i o n ) 中的元组属性进行查询和修改。对于非类型关系而言,其操作方式与原来的一样,没有封装特性。而a d t 支持通常意义下的封装,在封装性方面,o d l 中类机制与s q l :1 9 9 9 中的a d t 以及类型关系很相似。( 4 ) 在类的外延方面( e x t e n t so fc l a s s e s )在o q l 中假定每个类都有一个与之对应的e x t e n t 存在,o q l 中的关系( r e l a t i o n s h i p ) 指向该e x t e n t 中的一个成员。目前在s q l :1 9 9 9 中,要为r o wt y p e 指定与它相对应的e x t e n t 。但这一点在未来的标准( 如s q l :2 0 0 x ) 中有可能改变。( 5 ) 在对象的可变性方面对象创建后,如果属性值不能改变,则称该对象是不可变的( i m m u t a b l e ) ,如基本类型中的整数、字符串。反之为可变的。o d l 中的类( o q l 中不能修改,要在编程环境中) 和s q l 3 中的r o wt y p e 均可定义可变对象类。s q l m 的a d t 不是严格意义上的不可修改,m u t a t o r 函数可以改变它的值。( 6 ) 对象标识( i d e n t i t y )o d l 和s q l :1 9 9 9 中类型关系中的元组都遵循对象标识的般定义,它由系统产生,不能由用户对它进行修改操作。在早先的议案中( s o l 3 ) ,引用( r e f e r e n c e ) 可以象常规属性那样为用户所使用( 除由系统生成外) ,在这点上,有点象关系中的码,这样它可以避免多码的出现( 若不然,用户自己还要定义该r e f e r e n c e 以外的码值) 。如:c r e a t er o wt y p em o v i e t y p e (m o v i e i dr e f ( m o v i e t y p e ) ,t i t l ec h a r ( 3 0 ) ,) :c r e a t et a b l em o v ieo ft y p em o v ie t y p ev a l u e sf o rm o v i e i da r es y s t e mg e n e r a t e d :上例中,m o v i e _ i d 的作用相当于码,但其值由系统自动产生。2 4 对象关系数据库系统现状对象关系数据库技术的代表人物是m i c h a e ls t o n e b r a k e r 和w o nk i m ,这两人也是国际知名的数据库大师,m i c h a e ls t o n e b r a k e r 主持了i n g r e s 大学版的开发,它是对象关系数据库系统p o s t g r e s l 拘前身。而在p o s t g r e s 基础上,- 3 1 9 9 3第2 5 页国防科学技术大学研究生院学位论文年产生t m o n t a g e ( 后改名为i l l u s t r a ) 商用对象关系数据库系统,该产品随后为i n f o r m i x 所购买,致力于开发u n i v e r s a ls e r v e r t 4s ,4 ”,m i c h a e ls t o n e b r a k e r对对象关系数据库技术做了一般性描述和总结1 2 1 。w o nk i m 是u n i s q l 数据库公司和其对象关系数据库产品的奠基人,u n i s q l 也是对象关系数据库统的典型代表之一,其中的u n i s q l x 于1 9 9 2 年发布,是集成关系和面向对象技术中较早的系统。另# b h e w l w t t p a c k a r d 公司通过采用对象包装方式( o b j e c tw r a p p e r ) ,随后也发布了o p e n o d b ( 后改名为o d a p t e r ) ,底层采用a l l b a s e 关系数据库系统,它允许面向对象的应用程序与关系数据库或其他数据源紧密集成。o m n i s c i e n c eo r d b m s 是o m n i s c i e n c eo b j e c tt e c h n o l o g y 公司的产品,该公司位于美国的加州。该产品针对c + + 用户,允许把面向对象和关系的编程方式结合在一起。随后,一些关系数据库厂商也推出了具有对象关系数据库特征的产品,如o r a c l e v 8 x ,i b m 的d b 2 5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渔光一体项目光伏系统智能化管理方案
- 数据要素集聚与农村经济发展的关系分析
- 烟台入党考试试题及答案
- 印章制作工协作考核试卷及答案
- 军事经济法真题及答案
- 2025全国普法知识考试题库及答案
- 飞机总动员课件
- 2025年医学信息学电子病历管理系统操作考核答案及解析
- 2025年全科医学进修医生临床技能培训实习考核答案及解析
- 2025年工商银行上班试卷及答案
- 2025年新版病历书写规范与解读
- 2025年山东高等学校教师资格考试(综合)历年参考题库含答案详解(5套)
- 2025年招投标管理考试题库
- 渠道维护协议书
- 工勤人员技师等级考核(公共课程)题库及答案
- 黄体破裂护理常规课件
- 环境监测质量管理课件
- it与流程管理办法
- 医院固定电话管理办法
- 2026年高考政治一轮复习统编版必修1《中国特色社会主义》考点清单
- (2025)入党积极分子考试试题库(附参考答案)
评论
0/150
提交评论