




已阅读5页,还剩46页未读, 继续免费阅读
(计算机软件与理论专业论文)基于演绎面向对象数据库的查询语言.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
堕尘兰耋三查兰三兰堡圭兰堡篁兰 基于演绎面向对象数据库的查询语言 摘要 演绎数据库( d d b ) 和面向对象数据库( o o d b ) 自8 0 年代以来,它们分别 沿着不同的道路独立地发展,在各自领域的理论、技术及系统等方面都取得 了许多成果。d d b 的研究是典型理论驱动的,而o o d b 的研究是典型应用 驱动的,这两方面的研究具有很大的互补性。o o d b 的主要问题是缺乏一 个语义形式,而d d b 使用的是关系模式,不支持对象标识和数据抽象概 念,因此将两方面研究结合起来,以复杂对象建模和数据抽象能力为核心, 以基于规则的o o d b 查询语言作为接口语言是新一代数据库的基本特征。 演绎数据库和面向对象数据库是传统数据库技术两个重要的扩展,通过 用固定逻辑基础的递归和声明查询,演绎数据库扩展了传统数据库的表达能 力,这样的语言例子有d a t a l o g ,l d l 和c o r a l 。通过对象标识、复杂对 象、类、类继承,面向对象数据库扩展了传统数据库的建模能力。这样的语 言例子有i r i s , e x o d u s , o r i o n ,j a s m i n e ,然而两类扩展都有短处,演绎 数据库缺乏强大的数据建模能力,而面向对象数据库缺乏逻辑语义和声明奄 询语言。在过去的几年,为了整合两种数据库的优点,许多努力被做。许多 演绎的面向对象数据库被提出,例如o 1 0 9 i c ,c 1 0 9 i c ,i q l ,i q l 2 ,f 1 0 9 i c , l o g r e s ,l l o ,l o l ,d l t ,g u l o g ,c o r a l + + ,r o c k & r o l l a 我们认为在下一代信息系统中组合面向数据( 结构化) j 行为和演绎方 面是必要的。这意味着演绎面向对象样式对下一代信息系统的实现提供了一 个非常有前景的起始点。然而,已存在d o o d 查询语言提议要求用户有编 程技巧( 经常是逻辑编程和面向对象编程技巧) 。从表达信息的角度的来说, 我们认为用户查询语言应该含有高级面向对象和演绎原语的集合。 从用户的观点来说,特定的查询公式含有这些原语和指定他们上的条 件。在下一代信息系统中,我们提出通过把他们嵌入到这些原语中来对用户 隐藏大的和复杂的演绎细节。用户可以把这些原语解释为具体的应用概念和 结构。在面向对象查询语言中,因为用户可以使用方法,这种方法已经被应 用了。本文中,我们展示了演绎规范的定义从原语的角度已经对用户隐藏 了。为了定义出演绎对象查询语言( d o q l ) ,从原语的角度出发,引入一 个演绎类型的e r 图实例,并在e r 图实例的基础上,用事件监视器应用规 哈尔滨理工大学工学硕士学位论文 则库中的规则对实际对象类进行演绎,产生演绎对象类。在已有的s q l 的 基础上,定义了演绎对象查询语言( d o s q l ) 的规范,并分析了面向对象 子语言对演绎对象的d o o d 的支持。 关键词演绎对象查询语言;演绎面向对象数据库:原语 鉴奎鍪矍三奎耋:鎏圭兰鲁兰兰 q u e r y l a n g u a g eb a s e do nt h e d e d u c t i v eo b j e c t - o r i e n t e dd a t a b a s e a b s t r a c t d e d u c t i v ed a t a b a s e ( d d b ) a n d0 b j e c t _ o r i e n t e dd a t a b a s e ( o o d h ) ,s i n c e 8 0 s ,d e v e l o pa l o n gt h ed i f f e r e n tr o a di n d e p e n d e n t l y ,a n dt h e yo b t a i n e dm a n y r e s u l t si nr e a i mo ft h et h e o r i e s ,t e c h n i q u ea n ds y s t e me t c t h ed d br e s e a r c hi s a t y p i c a ld r i v eo ft h e o r y , b u tt h eo o d br e s e a r c hi sat y p i c a ld r i v eo f a p p l i c a t i o n t h er e s e a r c ho fb o t hs i d e sh a sc o m p l e m e n t a r i t yw i t he a c ho t h e rv e r y b i g l y t h eo o d bk e yp r o b l e mi st ol a c kas e m a n t i cf o r m ,b u t w h a td d bu s ei s r e l a t i v es c h e m ea n dd d bd o n ts u p p o r tt h eo b j e c ti d e n t i f ya n dt h ed a t aa b s t r a c t c o n c e p t i o n i ti sn e c e s s a r yt h a tw ep u tb o t hs i d e st o g e t h e rw i t hc o r eo ft h e c o m p l i c a t e do b j e c tm o d e l i n ga n dt h ed a t aa b s t r a c tc o n c e p t i o n a c c o r d i n gt ot h e r u l eo fo o d bt u s i n gt h eq u e r yl a n g u a g e a si n t e r f a c el a n g u a g ei sb a s i c c h a r a c t e r i s t i co ft h en e wg e n e r a t i o nd a t a b a s e d e d u c t i v ed a t a b a s ea n do b j e c t _ o r i e n t e dd a t a b a s ei st w oi m p o r t a n t e x t e n s i o no fat r a d i t i o n a ld a t a b a s et e c h n i q u e b yu s i n gr e c u r s i o no ff i x e d l y l o g i c a lb a s i ca n dd e c l a r a t i v eq u e r yf i x e d l y ,d e d u c t i v e d a t a b a s ee x p a n d e x p r e s s i o na b i l i t yo ft h et r a d i t i o n a ld a t a b a s e , s u c ha sd a t a l o g ,l d la n d c o r a l t h r o u g ho b j e c ti d e n t i f y ,c o m p l i c a t e do b j e c t ,t y p e , c l a s s i n h e r i t a n c e , o b j e c t _ o r i e n t e d d a t a b a s e e x p a n dm o d e l i n ga b i l i t y o ft h e t r a d i t i o n a ld a t a b a s e ,s u c ha si r i s 、e x o d u s 、o d o n 、j a s m i n e h o w e v e rt w o e x t e n s i o nh a v et h es h o r t c o m i n g ,d e d u c t i v ed a t a b a s el a c kt h es t r o n ga b i l i t yo f d a t a m o d e l i n g , b u t o b j e e t _ o r i e n t d d a t a b a s el a c k l o g i cs e m a n t i c a n d d e c l a r a t i v eq u e r yl a n g u a g e i no r d e rt oi n t e g r a t et h ea d v a n t a g eo ft w od a t a b a s e , m a n ye f f o r t sw e r ed o n ei np a s ts e v e r a ly e a r s m a n yd e d u c t i v eo b j e c t o r i e n t e d d a t a b a s e ( d o o d li sp u tf o r w a r d , f o re x a m p l eo l o g i c , c - l o g i c , i q l , 1 q l 2 ,f l o g i c ,l o g r e s ,l l o ,l o l ,d l t ,g u l o g ,c o r a l + + , r o c k r o l l i nt h en e x tg e n e r a t i o ni n f o r m a t i o ns y s t e m ,w ea g r e et h a tt h ec o m b i n a t i o n o fd a t a o r i e n t e d ( t h es t r u c t u r eq u e r y ) -b e h a v i o ra n dd e d u c ei sn e c e s s a r y t h i s m e a n st h a td e d u c t i v eo b j e c t o r i e n t e dp a r a d i g mp r o v i d eav e r y p r o s p e c t i v e i i l 堕玺堡耋三查兰三兰璧圭兰些鎏三 p o i mf o ri m p l e m e n t i n gt h en e x tg e n e r a t i o n i n f o r m a t i o ns y s t e m h o w e v e r t h o s ep r o p o s a l so fe x i s t i n gd o o dq u e r yl a n g u a g er e q u e s tt h e c u s t o m e r m a s t e r i n gt h ep r o g r a m i n gt e c h n i q u e ( 1 0 9 i cp r o g r a m i n gt e c h n i q u ea n do b j e c t o r i e n t e dt e c h n i qu e ) i nt h et e r mo ft h ee x p r e s s i o ni n f o r m a t i o n ,w et h i n kt h a t t h eq u e r yl a n g u a g eo ft h eu s e rs h o u l dc o n t a i nt h ec o l l e c t i o no fh i 曲o b j e c t - o r i e n t e da n dd e d u c t i v ep r i m i t i v e i nt h ev i e wo fu s e r ,t h ep a r t i c u l a rq u e r yf o r m u l a t i o nc o n t a i nt h e s e p r i m i t i v e sa n dt h ec o n d i t i o nt h a tt h e ys p e c i f y i nn e x tg e n e r a t i o ni n f o r m a t i o n s y s t e m , w ep u tf o r w a r dt h ew a yo fe m b e d d i n gt h e mt ot h o s ep r i m i t i v e ,s o t h a ti th i d eb i ga n dc o m p l i c a t e dd e d u c t i v ed e t a i lt ou s e r 1 1 1 ec u s t o m e rc a n e x p l a i nt h e s ep r i m i t i v e sa sac o n c r e t e l ya p p l i e dc o n c e p ta n ds t r u c t u r e b e c a u s e u s e rc a nu s et h em e t h o di no b j e c t - o r i e n t e dq u e r yl a n g u a g e , i ti sa l r e a d ya p p l i e d i nt h i st e x t ,t h ed e f i n i t i o no fd e d u c t i v en o r mh a v ea l r e a d yc o n c e a l e dt ot h e c u s t o m e ri nt h et e r mo ft h ep r i m i t i v e f r o mt h ep r i m i t i v e ,t h i sp a p e ri n t r o d u c e s a ni n s t a n c eo fe rg r a p hw h i c hi st y p eo fad e d u c t i v eo b j e c ti no r d e rt od e f i n e d e d u c t i v eo b j e e t ss q l b a s e d - o ne rg r a p hi n s t a n c e ,e v e n tm o n i t o rw h i c h a p p f i e sr u l e si nr u l ed a t a b a s ed e d u c t st h eo b j e c ta n dp r o d u c e sd e d u c t i v eo b j e c t t y p e b a s e d o ne x i s t i n gs q l ,t h i sp 印e r d e f i n e sa n da p p l i e sd o s q lt o i m p l e m e n tf o r m a lq u e r yi n s t a n c e , a n da n a l y 髓st h es u p p o r t a b i l i t yo fo b j e c t - o r i e n t e dl a n g u a g et od o o do fd e d u c t i v eo b j e c ta t t r i b u t e k e y w o r dd o o d ;d o q l ;p r i m i t i v e - - 氅尘鎏耋三查兰三兰登圭兰竺兰兰 1 1 论文背景 1 1 1 演绎数据库 第1 章绪论 演绎数据库( d d b ) 就是将人工智能中的知识及其推理机制引入传统数据 库( r d b ) ,其优点体现在语义表达能力和功能的扩充。演绎数据库用关系模 型( 表达事实) 和d a t a l o g 模型( 表达规则) 来表达世界。它除传统数据库的 操作功能外,还具有知识功能,包括知识的增、删、改、推理等。传统数据库 是演绎数据库的一个子集。演绎数据库是数据库系统从第一代的网状、层次数 据库系统,第二代关系数据库发展到新一代数据库系统的一个分支,演绎数据 库是新一代数据库大家族中的重要成员之一。演绎数据库使用逻辑作为数据模 型便于理论研究,其特点是能处理大量数据,具备逻辑推理能力,比视图表示 能力强而且能处理递归定义。使用逻辑作数据模型便于理论研究。此外,由于 通过推理可获得比存贮的数据多的多的信息,可以节省空间。演绎数据库使用 统一的逻辑语言、规则和提出查询,具有非常良好的用户界面。逻辑语言具有 非过程性的特征,并且是计算完全的,是最理想的查询语言。此外,一致性的 约束规则亦是用逻辑语言定义的,可以利用为优化查询之用。 演绎数据库和关系数据库的关系( 见表1 1 ) 堡垒堡矍三奎耋三兰堡圭兰堡篁兰 表l - l 演绎数据库和关系数据库的关系 t a b l e l 一1d e d u c t i v ed a t a b a s e a n d r e l a t i o n a ld a t a b a s e sr e l a t i o n s h i p 演绎数据库 关系数据库 外延数据库数据 数据模式 数据完整性规则 内涵数据库 数据安全性规则 窗口 数据模式的检验 完整性约束检验 推理机制安全性检验 查询实现 窗口实现 传统数据库与演绎数据库对照表( 两个优点) ( 见表1 2 ) ,从表1 2 中可 以看出演绎数据库比传统数据库有两个优点: 表1 2 传统数据库和演绎数据库的对照表 t a b l e1 - 2c o n t r a s tt r a d i t i o n a ld a t a b a s ew i t hd e d u c t i v ed a t a b a s e 演 有自己的规则库, 提高 只存储基础数据,可由 绎规则 规则以关系形式存 演绎 规则推理出其他数据, 数定义储在规则库中,对 检索 用规则来代替数据,可 据 明确规则和数据库的操 能力 以节约数据空间 库 作方便简单 传没有没有明确的定义,存贮 所能查询出的数据全部 统明确只是把简单的规则量大存储到数据库中,导致 数的规以结构形式加以表检索数据量大,重复多,致 据则定达,结构复杂 功能使数据规模大而繁琐 库义低 1 演绎数据库明确定义了规则: 2 演绎数据库增加了检索演绎功能; 演绎数据库由两部分数据库组成,一部分为外延数据库( e x t e n s i o n a l d a t a b a s e ) ,简称为e d b ,它储存传统数据库的数据,即存储事实。这种数据 为实数据,而由它构成的关系称为实关系。另一类数据库称为内涵数据库 ( i n t e n s i o n a ld a t a b a s e ) 简称为i d b ,它并不存储实际数据而只存储规则,但 是这些规则可以通过推理而得到新的数据,因此内涵数据库中的数据只能在演 绎后才能产生,故称为虚数据,由虚数据构成的关系称为虚关系。从操纵功能 来讲,演绎数据库在传统数据库原有功能的基础上增加了处理规则的功能,诸 如对规则的创建、维护、管理以及推理。推理桃构是演绎数据库的核心所在, 该机构的功能就是将内涵数据库中的规则与外延数据库中的事实相结合,从而 自动演绎出内涵数据库中的数据。 更重要的是演绎数据库具有坚实的理论基础,许多有意义的工作是基于其 上的,如:否定、查询优化、一致性维护和约束问题求解等。 可是,演绎数据库最大的缺点是并不能改善关系数据库的数据建模能力, 如在演绎数据库中无法将数据及其应用在其上的规则封装起来。也无法描述数 据类型间的转换关系等。而这正是对象数据库所具有的重要功能。 1 ,1 2 面向对象数据库 以面向对象方法为指导并对数据库模型做语义解释则可以构成面向对象数 据模型( o b j e c to r i e n t e dd a t am o d e l ,简称o o d m ) ,以o o d m 为核心所构成的 数据库称面向对象数据库( o b j e c to r i e n t e dd a t a b a s e 称为o o d b ) ,以o o d b 为 核心所构成的数据库管理系统称面向对象数据库管理系统( o b j e c to r i e n t e d d a t a b a s em a n a g e m e n ts y s t e m ,简称o o d b m s ) ,进一步以o o d b s 为核心所构 成的数据库系统称为面向对象数据库系统( o b j e c to r i e n t e dd a t a b a s es y s t e m ,简 称o o d b s ) 。 面向对象数据库系统突破传统数据库系统( 包括关系数据库系统在内) 的事 务性应用而在非事务性应用中取得重大进展,包括如下一些应用: 1 计算机辅助设计与制造( c a d c a m ) 2 。计算机集成制造( e n v y ) 3 计算机辅助软件工程( c a s e ) 4 地理信息系统( g i s ) 5 企业资源规划( e p , p 1 6 能量管理系统( e m s ) 面向对象数据库系统将面向对象的能力赋予数据库设计和数据库应用开发 人员,从而可以大大提高开发入员的工作效率和应用系统的质量。 1 面向对象的复杂对象构造能力增强了对客观世界的模拟能力。在关系 数据库系统中,层次数据、嵌套数据或复合数据需要用多个关系的元组表示, 且关系中的属性只能采用简单数据类型。这样当要查询层次数据、嵌套数据或 复合数据时,就需要多个关系的连接,不仅表示能力差,而且影响查询速度。 在面向对象数据库系统中,对象的属性可以是另外一个对象,对象的这种复合 结构不仅能自然地表示层次数据、嵌套数据或复合数据之间的关系,并易于理 解,而且可以提高查询速度。 2 面向对象的封装性屏蔽了实现细节和复杂性,降低了数据库应用系统 开发和维护的难度。对象封装将程序和数据封装在一起作为存储和管理的单 位,也是用户使用的单位,从外部只能看到它的接口,而看不到实现细节,对 象内部实现的修改不影响对对象的使用,因此使系统的开发和维护变得更加容 易。 3 面向对象的继承性使数据库应用程序的可重用成为可能,在面向对象 数据库系统中,类的定义和类库的层次结构体现了客观世界中对象的内部结构 及对象之间的联系。同时,类定义中封装的方法保存了数据库应用编程的结 果。应用开发人员可以在已建立的类库的基础上派生出新的类,继承已存在的 类的属性和方法,重用应用编程的结果。这种重用对于复杂数据库应用系统的 开发具有重要的意义。 当然,面向对象数据库也存在着明显的不足:当前的面向对象数据库还缺 乏安全性和并发控制机制,因而使大多数纯粹的面向对象数据库在商业性应用 中遇到了困难。 1 1 3 演绎面向对象数据库 演绎面向对象数据库以一阶逻辑的基础支持描述性查询,由于在查询优化 方面具有很大的优越性。面向对象数据库在结构信息和行为信息表示上功能很 强,通常与计算完备的程序设计语言相关联。适用于关系数据库不能胜任的一 些应用领域。然而o o d b s 和d d b s 都有欠缺。演绎数据库缺少表示数据的结 构化机制,在数据更新和i o 方面功能上很有限。面向对象数据库一般不是建 立在形式语义模型的基础上,没有声明化很强的查询语言。 由于信息系统复杂性的提高,关系数据库的表达能力和建模能力已经证明 是不足够的。数据库团体试着用扩展关系模型和开发新的关系模型来解决问 题。例如,数据间传递关系在信息系统中是经常用到的。然而由于不可能用关 系代数产生二元关系的传递闭包,关系数据库不支持这类数据的定义和操作。 哈尔滨理工大学工学硕士学位论文 因此,一般的传递闭包操作已经作为关系数据库的扩展被提出。进一步来说为 了支持o l a p ( 在线分析处理) 应用,关系查询语言s q l 3 把多维数据分组和 聚合作为一个标准特性。 演绎数据库、面向对象数据库以及演绎面向对象数据库被提议作为关系数 据库的替代样式。演绎数据库或逻辑数据库是通过基于逻辑的规则从已存在的 信息衍生信息的数据库。一般来说,内涵数据基( i d b ) 是用递归的h o r n 子 句来表示。虽然面向对象数据库的特性已经标准化了,但他们没有一般可接受 的准确模型。事实上,面向对象是早期语义数据模型和在程序设计中使用原理 的面向数据方面的组合。例如,面向对象的泛化特化层次是与语义数据模型 的i s - a 层次非常相似的。面向对象最大的潜力在于面向数据( 结构化) 和行为 方面是在同一框架内。 d o o d 的目的在于组合演绎数据库和面向对象数据库的优点。以演绎数据 库和面向对象数据库为基础,可能在他们的语言中提供强大的转换器。换句话 说,这些语言的组合实际上不能产生新的表达能力。演绎数据库的优点是可声 明化的查询语言,而面向对象数据库为关系数据提供了强大的建模能力。 我们一直认为在下一代信息系统中组合面向数据( 结构化) 、行为和演绎 方面是必要的。这意味着演绎面向对象样式对下一代信息系统的实现提供了一 个非常有前景的方案。然而,已存在d o o d 查询语言提议要求用户有编程技 巧经常是逻辑编程和面向对象编程技巧。事实上,从表达信息的角度的来 说,我们认为用户查询语言应该含有面向对象和演绎原语的集合。 从用户的观点来说,特定的查询公式含有这些原语和指定他们上的条件。 在下一代信息系统中,应提出通过把他们嵌入到这些原语中来对用户隐藏大的 和复杂的演绎细节。用户可以把这些原语解释为具体的应用概念和结构。在面 向对象查询语言中,因为用户可以使用方法,这种方法已经被应用了。 1 2 典型的d o o d 模型和语言介绍 1 _ 2 1 复杂对象逻辑语言和模型 扩充关系模型以表达结构化数据的研究早在关系模型提出不久就开始了, 大部分工作在两个方面开展,即如何对实际的数据结构模型化和如何在这样的 模型上定义查询语言。传统的d d b 查询语言是以d a t a l o g 为基础的,无法 表示复杂的结构数据,虽然利用p r o l o g 可以表示某些类型的数据结构,但 哈尔滨理工大学工学硕士学位论文 对聚集操作( 如集合操作) 则不支持。 k u p p e r 等人提出了l p s 语言,该语言以多类型逻辑中的二类逻辑为基 础,具有两种类型的对象:单个对象( i n d i v i d u a lo b j e c t s ) 和集合对象。l p s 在规则体中使用全称量词来存取集合,它被看作是在集合元素上的一个非过程 迭代。在l p s 中,只能处理“平坦”的集合对象( 即集合元素不能是集合) ,这 被认为是l p s 的一个主要缺点。 t s u r 等人研制一个类似于l p s 的逻辑语言l d l ,其功能更强一些。与 p r o l o g 不同,l d l 程序员不需要显式控制规则中的谓词执行次序及程序中 规则的执行次序。在l d l 中提出了一系列新的概念,使用集合成组操作( s e t g r o u p i n g ) 来构造集合,使得语言表达能力增强。但为了满足最小模型唯一性语 义,必须增加一些语法上的限制。例如在l d l 中,一个简单的数据库p : ( p ( ( ) ( ) ) 一p ( x ) ,( p ( 1 ) ) 就不存在模型( 称之为集合悖论) 。而数据库 ( p ( x ) 一q ( x ) ) 可能具有两个模型,而它们的交则不是模型。这些与 传统l p 理论的不一致,要求l d l 用户只能按某些特殊的约定设计应用系统, 因而带来了不便。 a b i t e b o u l 提出的复杂对象操作语言c o l 是在d a t a l o g 之上通过引入元 组和集合来表示复杂对象的定义和操作,与l d l 和l p s 不同,c o l 语言引入 了值为集合的数据函数来处理复杂对象。c o l 中的数据函数与l d l 中的集合 成组操作相对应,数据函数引入可以使得c o l 能处理否定问题。c o l 程序的 语义也是建立在最小模型基础上的,与l d l 类似,由于引入集合和数据函 数,对某些c o l 程序可能有不只一个最小模型。 l p s ,l d l 和c o l 对集合构造和检索方面的能力是基本相同的,但均存 在以下不足:1 对复杂对象的子结构存取方法不一致,其文字的语法结构和 语义依赖于它所要处理的对象的层次结构。2 仅能处理复杂对象,不具有基 本的面向对象特征,如没有对象标识,不能处理i s a 关系。3 缺少有效的 计值方法,自底向上的计值方法由于引入太多的概念,在很多情况下不再适 用。例如l d l 的规则无范围限制导致域的非独立性,可能引起不安全的查 询。在l p s 中全称量词的实现显得过于复杂。 1 2 2 面向对象的逻辑基础与面向对象的演绎查询语言 复杂对象模型和语言的研究为d o o d 数据模型和语言打下了基础,以美 国s u n y 石溪分校的k i f e r 为代表的一些学者从逻辑的角度研究面向对象数据 哈尔滨理工太学工学硕士学位论文 库,描述了面向对象数据库的逻辑基础,提出了面向对象逻辑语言。这方面的 工作可追溯到m a i e r 在1 9 8 6 年发表的论文,在那篇文章中,m a i e r 提出了对象 逻辑( o - l o g i c ) ,不过在o l o g i c 中复杂对象不包含集合,另外在演绎方面 也缺少处理不一致信息的能力。 在o l o g i c 基磁上。k i f e r 等人提出了一个扩充豹面向对象逻辑( o o l o g i c 】,在o o l o g i c 数据模型中增加了对集合、类型以及对象标识的支 持。在o o l o g i c 中的对象构造是语言中显式表达部分,它不区分原子数据 值和其它基本对象。原子值( 如数值) 既是一个对象又是其对象标识。o o l o g i c 由于引入类型和对象标识,使得对集合定义和处理比l p s ,l d l 和 c o l 更为有效,它的类型机制消除了l d l 集合悖论。集合中的元素可以是对 象标识使得集合可以有任意深度有嵌套并可表示无限集合。 与此同时,w c h e n 等人也在o l o o i c 基础上提出了一个关于复杂对象的 逻辑c l o g i c 。c - l o g i c 的策略重点放在复杂对象的建模上,语言的设计由 模型需要来指导。它支持复杂对象的一些基本特征,如对象标识、多值属性及 动态类型等概念。c l o g i c 虽然包含高阶构造,但可将c l o g i c 公式转换为 一阶逻辑公式,使其具有一阶语义。其它高层特征如单值属性、静态类型概念 可加在c - l o g i c 顶层之上。实际上,c - l o g i c 可看成是o o - l o g i c 中去掉单 值属性后生成的一个子集。 值得指出的是,无论是l p s ,l d l 。c o l t 还是o - l o g i c ,o o l o g i c 或c l o g i c ,上述系统对继承机制均未作全面考虑。这些方法所涉及的只是 简单的类。子类关系,但子类并不能继承超类的值。另外对方法的研究在这些 系统中也未体现,因此在全面考虑了面向对象和基于框架语言( f l ) 的特征之 后,k i f e r 等人提出了f l o g i c 。f l o g i c 是一个全面的逻辑解决方案,满足 上面所提到的要求。f - l o g i c 也适用于舢中基于框架的语言,实际上a j 中 的框架可看成是一个缩小的复杂对象,它具有标识、继承和推理特征。 对于继承和模式的推理需要用到高阶逻辑,许多研究表明,高阶逻辑的某 些部分通过谓词演算可具有一阶语义。但这只是间接的语义,并与o o p 和f l 风格不一致。与h i l o g 一样,f - l o g i c 具有高阶语法,但具有一阶语义。另 外,f l o g i c 具有明确的模型论语义和有效且完备的基于消解的证明过程。f l o g i c 的提出者试图为o o d b 建立一个坚实的逻辑基础,并在此基础上建立 对象查询语言。从某种意义上来说,f l o g i c 和o o p 之间的联系正如经典的 一阶逻辑和关系程序设计的联系一样。 d o o d 研究的另一个方面是从面向对象数据库系统本身出发,研究其演绎 查询语言。在这方面,a b i t e b o u l 提出的i o l 可以说是面向对象的演绎查询语 言的先驱。 a b i t e b o u l 认为对象标识( o b j e c ti d e n t i f y ,o l d ) 是面向对象数据库查询语言 基本原语( p r i m i t i v e ) ,对象标识是一个具有丰富类型的数据模型、继承机制及 强大的查询语言的中心。从直观上理解,o i d 是一个类型化指针,在i q l 中, o i d 用作有向( 可能有环) 图的编码、集合的操作等,使得查询语言表达能力增 强。i q l 语言具有三个基本性质:1 它是基于规则的,是大多数基于规则的逻 辑数据语言,尤其是c o l 在o o d b 情形下的推广:2 它可以进行静态类型检 查,因而可以控制指针的使用;3 在严格表达数据库操作所必须的性质基础 上,它是完备的,! q l 语句的语义具有膨胀不动点( i n f l a t i o n a r yf i x p o i n t ) 特性, 可以用自底向上的方式计值。 i q l 将模式与实例概念加以区别,并具有程序设计的强类型机制,这在其 它语言中是不具备的,如b a n c i t h o n 提出的对象演算、o o - l o g i c 等均没有将 实例与模式分离,这些查询语言只能看作是对无类型的p r o l o g 语言的扩充 进一步,在结合了c o l 和i q l 语言的特征并增加了对方法的支持后, a b i t e b o u l 又提出了一个较为完全的d o o d 语言。这个语言的模型在i q l 模型 基础上增加了两方面内容:方法和表f l i s t ) 类型。方法是满足某一类型约束的 函数,它可以以内涵或外延方式来表达,方法可以被继承,并可重载。不过为 了满足面向对象和面向值两方面特征,a b i t e b o u l 提出的模型保留了关系及关系 操作,带来了较大的冗余,另外在实现上还存在将核心语言的不动点语义与外 部控制的过程语义相协调的问题。 面向对象演绎查询语言的一个实际例子是c a c a c e 等人提出的l o g r e s 。 l o g r e s 的数据模型是建立在o o 方法上的,它支持对象类、分类层次和对象 共享特性,在实例层次上引入对象标识。l o g r e s 的数据库静态结构是建立在 类型等式基础上的。类型等式满足了多种数据库结构特性,特别是完整性约 束。它是由类型相同建立起来的。l o g r e s 的语言支持集合、多集 ( m u l t i s e t s ) 、序歹r j ( s e q u e n c e s ) 及受控的否定形式。通过基于规则的范式,可以 完成查询和更新。l o g r e s 系统支持模块,模块是一组类型等式和规则的集 合。将一个模块应用到某个l o g r e s 数据库时,用户可以指定应用方式,因 而可以控制模块应用的副作用。应用方式同时也指定了规则应有的特殊语义。 利用这个机制,l o g r e s 模块和数据库与它们支持的规则之间有对应的参数化 语义性质。 l o g r e s 与i q l 在很多方面上是相似的,但对i q l 的最大改进是使用数 哈尔滨理工大学工学硕士学位论文 据函数,它有两个用途:一是执行集合方面的操作( n e s t i n g 和u r m e s t i n g 操作) , 二是允许直接应用继承多态。i q l 中用对象标识进行集合类型的操作,这降低 了程序的易读性和说明性。在l o g r e s 中,没有联合类型( u n i o nt y p e s ) ,可直 接处理继承性,而在i q l 中继承性是通过联合类型间接处理的。 1 3 本课题的主要研究内容 演绎数据库和面向对象数据库是传统数据库技术两个重要的扩展,两种数 据库各有各的优势。 从用户的观点来说,特定的查询公式含有这些原语和指定他们上的条件。 在下一代信息系统中,我们提出通过把他们嵌入到这些原语中来对用户隐藏大 的和复杂的演绎细节。用户可以把这些原语解释为具体的应用概念和结构。本 文中,我们展示了演绎规范的定义从原语的角度已经对用户隐藏了。同时运用 规则生成演绎对象类;并说明了演绎机制的设计与实现:接着定义了d o q l 规范并验证了d o q l 实现的可能性。 啥尔滨理工大学工学硕士学位论文 第2 章基于d o o d 原语上的查询公式 2 1 演绎面向对象查询公式 演绎面向对象查询公式含有与演绎数据库和面向对象数据库查询公式相关 的方面。因此,我们在这些数据库样式中第一个查询公式。对引起一个一般终 端用户麻烦的因素,本文给予了特别的注意。 2 1 1 在演绎数据库中的查询公式 典型地在演绎数据库中,演绎信息或i d b 由h o r n 予旬来定义。h o m 子旬 是非嵌套或嵌套的逻辑规则。定义演绎信息超出了关系表达能力。使用者经常 不得不给出嵌套规则定义( 如二元关系传递闭包的定义) 。一个演绎数据库经 常被定义成含有不带函数符号的h o r n 子句的d a t a l o g 程序。即仅仅变量和常量 允许放在谓词的变元中。对演绎数据库和面向对象数据库相互比较,经常可以 看到对可声明的查询语言的演绎数据库给了比面向对象数据库更好的出发点。 然而,声明本身是非常相对的概念。声明是允许一个人表达他想要的结果而不 是结果是怎样计算得到的特性。因此讨论可声明程度是更适合的。换句话说从 一般终端的观点,我们不得不问在演绎数据库中声明的程度是否是正确的。这 意味着我们不得不对查询规范中用户使用的各种技巧加以注意。 对用户来说,有几个方面使演绎数据库的查询公式更复杂。首先用户必须 能从逻辑的角度把规则写成公式。除此之外,用户必须理解在规则内部和规则 与查询之间的模式匹配机制。一般终端用户不熟悉这类思考方式。在复杂情况 下,基于规则的查询公式含有不同抽象层几个定义层。第二,由于在演绎数据 库中递归规则公式的普遍性,使用者不得不规范掌握递归的思考方式。因为用 户必须从一种转化为另一种的规则公式,同时他也必须知道存在规则的递归怎 样终止,这是很困难的要求。在其他中,一般递归规则定义以用户理解唯一变 量怎样为每个层次产生的和这些变量是怎样被实例化为前提。第三,在目前的 演绎数据库中用户也必须掌握以规则处理为基础的基本评估方法。在参考文献 【2 4 1 中,我们在p r o l o g 的评估策略的语境下说明了用户可能在逻辑语义下给出了 正确的规范,而与它相关的计算由于处理策略从未终止。通过考虑处理策略, 为了使与它相关的计算终止才描述了规范。在一些目前演绎数据库系统中有几 哈尔滨理工大学工学硕士学位论文 种评估技巧。例如在c o r a l 中,用户控制基本评估技巧的选择。这是以用户对 可用的评估技巧熟练掌握为前提的。 为了表达在演绎数据库中信息,可视查询语言方法也被提出来。例如,在 v q l f 4 习中可视的查询被表达成一系列窗口。每个窗口有头部和主体,这些与 d a t a l o g 规则相应的部分相似。一方面这给用户提供了巨大的表达能力,而另 一方面用户不得不指定基于低抽象层可视结构的查询。这方面的一个结果是在 复杂查询中需要几个嵌套的窗口。有时从用户的观点,这类查询类似于可视模 块设计而不是真正的声明规范。 从上面我们能得出下面结论:由于你必须掌握逻辑编程技巧,对终端用户 来说在演绎数据库中的查询公式是太苛求了。因此我们在参考文献1 24 】【z s 删中提 议在数据问的复杂传递关系的计算应该嵌入到高级操作中而不是指定递归规 则。从用户的观点出发,这种方法使查询公式大大方便。这里通过提议为用户 提供复杂的递归规范作为容易理解的具体应用概念,我们向前走了一步( 我相 信是重要的一步) 。这个概念可以象任何其他属性一样依附于某个对象类型。 2 1 2 面向对象数据库的查询公式 当前,大部分面向对象数据库系统是基于一些命令式面向对象语言。显而 易见地像c + + 或s m a l l t a l k 等面向对象语言不会比p a s c a l 和c 这样传统命令 式语言更声明化。相反地,v o l t a i r e t “】描述了面向集合、基于对象数据库编程语 言,在那里声明的查询原语与命令式编程原语组合在一起。在2 0 世纪9 0 年代 初有几个商业的o o d b m s ,但仅仅0 2 提供了考虑到终端用户的查询语言,而 且广泛的认识到面向对象数据库语境下使用声明化的查询语言是困难的。这是 因为面向对象数据库样式缺乏一种正确的可接受模式。虽然在发展可声明的面 向对象查询语言已经取得了进步,但他们仍然不适合于普通终端用户。为了使 真正的声明查询语言成为可能,已经提出了不同的代数作为面向对象数据库基 本的查询模式。典型的这些代数含有由一些附加操作完成的关系操作( 如聚合 和数据重构操作) 。面向对象查询语言的基于代数方法意味着他的表达能力是 受限制的。即他们没有面向对象编程语言典型的计算完全性。另一方面,一般 终端用户几乎不需要如此强大的表达能力。 0 2 的出发点是提供两种语言:为写复杂应用的一个面向对象编程语言和简 单信息规范的查询语言。0 2 查询语言的历史在参考文献【6 1 中被给出。现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆綦江区中峰镇招聘乡村公益性岗位2人备考考试题库附答案解析
- 土地流转合作社社区农田项目协议
- 2025年智慧化技术在乡村生态旅游度假区旅游娱乐活动中的应用报告
- 咖啡店与外卖平台合作协议
- 2025内蒙古呼伦贝尔市大地生态环境建设投资有限责任公司社会招聘4人考试参考题库及答案解析
- 2025昆明卫生职业学院秋季学期招聘考试参考题库及答案解析
- 家装软装设计合同范本模板
- 商业物业管理和服务合同
- 2025年南阳内乡县人民检察院招聘聘用制书记员13名考试参考题库及答案解析
- 2025年8月广东惠州仲恺高新区惠环中心幼儿园(公办)临聘教职工招聘1人考试参考题库及答案解析
- 《跨境直播运营》课件-跨境电商交易平台直播
- T-CCSAS014-2022《化工企业承包商安全管理指南》
- 液化气店转让合同范本
- 生活垃圾填埋场地下水污染防控与综合治理工程项目可行性研究报告
- 医学教育中的全科医学与专科医学的比较与协同
- 肠梗阻小讲课
- 《小儿支气管肺炎》课件
- 马克思主义经典著作选读
- 食材配送沟通服务方案
- 机房建设清单
- 003-04-PFMEA第五版表格模板-(带实例)-2020.2.3
评论
0/150
提交评论