




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
竹尔滨删r 人 丁学顺卜学位论史 0 0 0 b 设计中的范式理论及求解算法 摘要 面向对象数据库系统( o o d b s ) 是近二十年来随着面向对象技术的发展 而被广泛接受且非常具有前景的研究及应用的领域。它针对关系数据库系统 ( r d b s ) 不能适应非传统应用的要求,如:模型表达能力有限、系统效率 低、事务模型太简单等,结合面向对象语言、语义模型,复杂对象模型和数 据库技术的几个方面的研究而形成的一个高度数据集成系统。面向对象数据 库系统代表了新一代数据库系统的发展方向。 面向对象规范化理论是z t a r i 等人1 9 9 7 年首次提出的。同传统的关系 数据库规范化理论的最大区别是面向对象规范化理论主要用于数据库的概念 设计,与数据库的逻辑设计无关。这弥补了传统的数据库设计方法在概念模 式方面的不足,使其支持面向对象数据模型。面向对象数据库理论作为近年 来兴起的理论,在很多方面还有待完善。 本文首先介绍了面向对象数据库( o o d b ) 的发展,从o o d b 不同方面综 述了面向对象数据库的基本概念。接着定义了对象模型的投影代数和数据依 赖。提出路径依赖和对象函数依赖的推理规则,并对其进行了证明,然后在 对象模型的数据依赖基础上绘出了对象范式的定义及定理。对象范式不同f 传统关系模型的范式的是它更多地考虑了数据库模型设计时模型语义是否精 确,完整地反映了用户的需求,是一种语义范式,而不是在数据库模型设计 时就强调模型是否满足数据库操作范式。在文章的最后提出对象范式求解算 法。该算法适合于渐进型开发方法。 关键词面向对象数据库:规范化;路径;数据依赖:范式 竺i :堡些! 叁;! ! 。茎竺! 兰丝篁兰 : t h en o r m a l i z a t i o nt h e o r i e sa n da l g o r i t h m s i no o d b d e s i g n s a b s t r a c t w i t ht h ed e v e l o p m e n to fo b j e c t o r i e n t e dt e c h n o l o g i e s ,o o d b s ( 0 b j e c t o r i e n t e dd a t a b a s es y s t e m ) h a sb e e no n eo ft h em o s tu b i q u i t o u sa n dp r o m i s i n g r e s e a r c ha n da p p l i c a t i o nf i e l d si nr e c e n tt w od e c a d e s a sr d b s ( r e l a t i o n a l d a t a b a s e s y s t e m ) c a l lh a r d l ya d a p t t h e r e q u i r e m e n t o fn o n t r a d i t i o n a l a p p l i c a t i o n s ,s u c ha si n c o m p e t e n c eo fm o d e lr e p r e s e n t a t i o n s ,t h el o ws y s t e m e f f i c i e n c y , a n dt h es i m p l i c i t yo ft r a n s a c t i o nm o d e le t c ,o o d bj u s ta d a p t st h e r e q u i r e m e n t so fn o n - t r a d i t i o n a la p p l i c a t i o n s ,a n dh a sd e v e l o p e di n t o ah i g h i n t e g r a t e dd a t as y s t e mw i t ht h ec o m b i n a t i o no ft h eo ol a n g u a g e ,s e m a n t i c m o d e l s , c o m p l e xo b j e c t s i tr e p r e s e n t san e wg e n e r a t i o no f d a t a b a s es y s t e m s , n o r m a l i z a t i o nt h e o r yf o ro b j e c t o r i e n t e dd a t a b a s ew a sf i r s tb r o u g h tf o r w a r d i nl i t e r a t u r e b yz t a r i a n ds oo ni n1 9 9 7 i nc o n t r a s tt oc o n v e n t i o n a l n o r m a l i z a t i o nt h e o r yf o rr e l a t i o n a ld a t a b a s e ,t h en o r m a l i z a t i o nt h e o r yf o ro b j e c t - o r i e n t e dd a t a b a s ei sm a i n l yu s e df o rd a t a b a s ec o n c e p t u a ld e s i g n ,a n di n d e p e n d e n t o fd a t a b a s el o g i c a ld e s i g n i nt h i sp o i n t ,i tm a k e su pf o r t h ei n a d e q u a c yi nl o g i c a l s c h e m a ,a n ds u p p o r t st h eo b j e c t - o r i e n t e ds c h e m a t a a sp r o s p e r i n gi nr e c e n t l y y e a r s ,t h et h e o r yf o ro b j e c t o r i e n t e dd a t a b a s eh a ss o m ei n a d e q u a c ya n di sw a i t i n g t ob ep e r f e c t e d t h i sp a p e rs u m m a r i z e sb a s i cc o n c e p t so fo o d bf r o md i f f e r e n ta n g l e s t h e n i tg i v e st h ed e f i n i t i o n so fp r o j e c t i o na l g e b r aa n dd a t ad e p e n d e n c i e s m o r e o v e r t h ep a p e re l a b o r a t e so ni n f e r e n t i a la x i o m so fp da n do f df o r t h ef i r s tt i m e ,a n d g i v e st h e i rp r o o f s f u r t h e r m o r e ,i ta l s op r e s e n t st h ed e f i n i t i o n sa n dt h e o r e m so f o b j e c tn o r m a lf o r m s ( o n f ) b a s e do nt h ed a t ad e p e n d e n c i e so fo o d b d i f f e r e n t f r o mt h en o r m a lf o r m so ft r a d i t i o n a ld a t a b a s ew h i c hi sa c t u a l l yt h eo p e r a t i o n a l c r i t e r i a w h e t h e rt h ed a t a b a s em o d e li s d a t a n o n - r e d u n d a n c y ,l o s s l e s s d e c o m p o s i t i o na n dd e p e n d e n c ym a i n t e n a n c e ,o n fc o n c e n t r a t e s m o r eo nt h e p r e c i s ea n dc o m p l e t e n e s so fs e m a n t i cr e p r e s e n t a t i o no ft h eu s e r s i n t e r p r e t a t i o n s i i 、滨胖:人学t 学坝i + 学位论义 o ft h em o d e lw h i c hi se x a c t l yt h cu s e r s r e q u i r e m e n t i nt h ee n d ,w eg i v et w o a l g o r i t h m s ,t r a n s f o r m a t i o na l g o r i t h ma n dc o n s t r u c t i o na l g o r i t h mt og e n e r a t e o n fi nd a t a b a s ed e s i g n ,a n da n a l y s e si t sc o m p l e x i o n k e y w o r d s0 b j e c t - o r i e n t e dd a t a b a s e ;n o r m a l i z a t i o n ;p a t h ;d a t ad e p e n d e n c y n o r m a lf o r m n 哈尔滨蝉r 人学r 学坝【学位沦殳 第1 章绪论 从5 0 年代中期开始,随着计算机的应用由科学研究部门扩展到社会各领 域,数据处理迅速上升成为计算机应用的主要方面。在计算机三大主要应用 ( 科学计算、数据处理与过程控制) 中数据处理所占比例约占7 0 左右。在6 0 年 代末,数据库技术就是作为一一门数据处理的技术发展起来的。本章简要回顾数 据库发展历程,然后比较面向对象数据库系统与传统数据库系统的优势及不足 之处。在此背景下,介绍了面向对象数据库设计发展现状及本文研究背景。 1 1 数据库技术的发展历程 数据库是存储在一起的相关数据的集合。数据库系统是实现有组织、动态 地存储大量的相关数据,方便多用户访问的计算机软、硬资源组成的系统。数 据库技术是研究数据库结构、存储、设计和使用的一门学科。 数据库技术自六十年代末产生以来,无论在理论还是应用方面一直是热门 课题,现已成为计算枫科学的重要分支。数据库系统也在不断地发展和完善。 1 9 6 3 年美国h o n e y w e l l 公司的i d s ( i n t e g r a t e dd a t as t o r e ) 系统投入运行,揭 开了数据技术的序幕。之后美国出现了许多d a t a b a s e 和d a t a b a n k ,但这些系统 主要是文件系统的扩充。众所周知,文件系统虽然已使数据的逻辑结构和物理 结构有了区别,但是文件系统有数据冗余性、不一致性、数据联系弱的缺点。 1 9 6 8 年i b m 公司推出了层次模型的i m s 数据库系统。1 9 6 9 年美国 c o d a s y l ( c o n f e r e n c eo nd a t as y s t e ml a n g u a g e ,数据库系统语言协会1 组织的 数据库任务组( d b t g ) 发表了网状数据库系统的标准文本。1 9 7 0 年初,i b m 公 司的e e c o d d 在c o m m u n i c a t i o n so ft h ea c m ) 上发表了论文“ar e l a t i o n a l m o d e lo fd a t af o rl a r g es h a r e dd a t ab a n k s ”l ,在此篇论文中首次提出了关系 模型。7 0 年代,网状系统和层次系统占据了整个商用市场,而此时关系模型正 处于实验阶段。8 0 年代,关系模型由于其成熟的理论基础及易于使用,逐步代 替网状系统和层次系统占据了整个商用市场。 币当关系数据库系统产品成为商用市场的主流时,面向对象的建模、设计与丌 发方法j 下成为计算机界的热点。o o p ( o b j e c to r i e n t e dp r o g r a m m i n g ) t 2 】足组织人 型软件的研制、开发、维护和管理的有效方法。经过近十年软件的实践,面向 对象的方法已成为9 0 年代的标准方法。在数据库领域,虽然关系数掘库的j 、v 峨尔) 宾删r 人# t 掌 0 ;! i j 学位论爻 用相当普遍,但已很难满足结构复杂、事务处理量大的新应用的需要。雨这冲 背景f 学者们竟相研究面向对象数据库系统。 1 2 传统数据库设计方法 数据库设计从分析现实世界的信息实体间关系开始,将现实世界中信息转 化为计算机世界能够接受的体系结构,并用特定的描述语言描述这一过程,我 们称数据库设计的结果为数据库模式( d a t a b a s es c h e m a ) ,经过这一分析过程 后,数据库模式将作为输入,被数据库管理系统转变为物理存储实体。 数据库设计从总体上可分为两个阶段,数据建模与数据库实现。数据建模 有很多种方法,如:e r ,s d m ”,o d l 叭,r e l a t i o n a lm o d e l l s l 。但由于关系模 型的简单、易用性,和其本身良好的健壮性,与通用程序设计语言一起,可对 任意数据建模,可以执行任何可能的操作,再者,s q l 事实上将成为异构系统 之间交换数据的工业标准,诸多因素使关系数据库在传统领域长期占主导地 位。所以现在普遍被系统分析员接受的数据库设计方法是用e r 6 1 或o d l 7 建 模,在将其转换为关系模型来实现。圈1 1 描述了数据库设计中模型的演变。 图1 - 1 模型的演变 g r a p h l - 1t h ee v o l v e m e n to fs c h e m a 我们以e r 建模为例,在将e r 模型转换为关系模型时,必须按照关系数 据库理论在关系模型上定义约束,其中最重要的约束是函数依赖,函数依赖定 义了关系模型中各关系内和关系叫的属性的依赖关系及完整性约束。至此我们 可以说己完成了e r 模型到关系模型的转换。但这样设计出的模型有可能是不 。- 规范的,具体表现在数据兀余,更新异常,依赖关系不保扣,语义不完整,这 势必影响系统效率和稳定性。 幸运的是,这些问题通过关系模型范式理论已皋本得到解决。e e c o d d 提出三个范式1 n f 8 1 、2 t , r f 、3 n f 1 0 和b c n f 1 1 1 ,以 :这些范式是建立在关 系模型中关系的键与其属性间函数依赖保持和更新一致的基础之上,而后提出 的4 n f l 控】、5 n f 1 3 1 分别基于多值依赖和连接依赖,所有这些范式都是为了找到 与原有模型等价且优予它的模型。所谓“等价”是指规范后的模型具有两个性 质:连接无损和依赖保持,“优于”是指规范后关系模型还必须冗余度小和更 新异常情况少。 目前经常使用的模型规范的方法是t o p d o w n 1 4 1 ( 自上丽下法) ,即利用分解 算法将泛关系模型中不断分解为属性更少的关系模型的集合以满足条件更强的 范式的过程,因为条件越强的范式属性间依赖约束要求越高。在关系数据库理 论中,当前公认的两个分解算法是:将关系模型连接无损及依赖保持分解到 3 n f ;将关系模型依赖保持分解到b c n f 。 除了关系模型外,其他模型也有相应的范式理论。如:g j a e s c h k e 提出在 扩展的关系模型中范式n o n f i r s tn o r m a lf o 咖( n 铲) 【l ”,z m o z s o y o g h 提出在 嵌套关系模型中范式n e s t e dn o r m a lf o r m ( n n f ) 1 6 1 ,此范式是基于无冗余的形 式化模型树的概念,限制了数据冗余和更新异常问题的出现。之后m a r o t h 也做了类似的工作。 近十年来,随着建模技术的发展,数据库设计从原来的逻辑设计( 关系模 型占主导地位) 逐渐转变为概念级设计。在概念级设计是基于语义数据模型, 这种概念级模型引入继承机制以及多值属性和复合属性的概念来表达更为丰富 语义,在概念级模型中的范式被称为实体范式( e n t i t y - n o r m a lf o r m s ) 和关系范式 ( r e l a t i o n a l n o r m a lf o r m s ) ,用来规范每一个实体及关系。v m m a r k o w i t z 提出 了一种设计方法,将e 瓜模型转换成满足b 甜f 的关系。 1 3 面向对象数据库设计方法 什么是面向对象数据库系统? 这个闻题尚无个被广泛接受的回答,因为 对o o 模型以及o o 概念如何结合的问题尚未达成共识,但是近来著名o o d b 专家都对o o d b s 从不同侧面下了些定义+ 例如:f r a n c o i sb a n c i l b o 把 o o d b 定义为:“一个面向对象的数据库系统应该满足两条这种准则,它应该 是一个数据库管理系统,而且还是一个面向对象的系统。第一条准则是泷它应 喻;j ;滨埋1 人产i # 硕i 学位硷史 具备六个特性:永久t l 、外存管理、数据共享( 并发) 、数据口丁靠性( 事物许理和 恢复1 、即时查询工具和模式。第二条准则说它应具备八个特征:类类j 瞰封 装性、数据抽象、继东性、多态性、迟后联编、计算完备性、对象标识、复杂 对象和可扩充性。 面向对象数据库规范化方法是以z t a r i 等人f - 1 9 9 7 年在文f 1 忡提的面 向对象数据库规范化理论为基础,用于设计面向对象数据库模式中对象结构的 一种形式化、系统化的方法。它的目标是使面向对象数据库模式中每一个对象 都成为规范化的。所谓规范化的对象是指该对象的语义完全能够反映出用户关 于论域的解释。在文【l 】中,对象的语义和用户关于论域的结实都形式化为g d 约束集( 全局依赖约束集) ,并分别称其为对象解释和用户解释。对于个面 向对象数据库模式, 给定两个不同类型的解释( 用户的和对象的) ,对象的规 范化可被看作是用户解释同该对象解释的匹配过程。如果用户解释可从对象解 释导出( 用推导公理) ,那么,称该对象属于范式;否则,称其为一个为规范 化的对象。因此,范式是一个衡量用户关于论域的解释与对象结构反映出的语 义闻是否一致的标准。如果一个对象不属于范式,那么,就需要用面向对象数 据库规范佬方法对其结构进行修改或重构。 传统关系数据库规范化方法用于数据库的逻辑设计阶段。它的目标是要设 计出个有较少冗余和较少异常更新问题的数据库模式。冗余和更新异常问题 是影响数据库性能的两大问题。它们已经通过一系列数据库范式的提出得到解 决。c o d d 提出了三个范式,第一、第二、第三范式( 用1 n f 、2 n f 、3 n f 来 表示) 。b o y c c 和c o d d 又提出了3 n f 的增强定义,以b c n f 命名。这些范式 都是基于关系模式中属性和主关键字之间关系提出的。其它范式如5 n f 和 4 n f 是针对多值依赖和连接依赖的概念而提出的。 为了从论域中获得更多关于现实世界的语义,人们对c o d d 的平面关系模 型进行了扩展,提出了所谓非第一范式数据模型。o z s o y o g l u 和y u a n 提出了一 个新范式,叫做嵌套范式,及一套新的规范化方法。r o t h 和k o r t h 提出了 o z s o y o g l u 和y u a n 方法的优化方法。 虽然传统关系数据库规范化方法已经相当成熟,但它并不适合于面向对象 数据库设计。这是因为 ( 1 ) 数据模型不足以支持复杂建模机制; ( 2 ) 在传统关系数据库规范化方法中的依赖约束( 如函数和多值依赖) j l 有一 个严格的约束集合,它只能作用于关系的属性中,用来处理对象内部关系。然 而,面向对象数据模型包含更复杂的约束,不仅包含对象和它的成员之 日j 的关 系( 电就是对象内部关系) ,还包含对象之陋j 的约求( 也就是列象之州关系) 。进 而言之,在平面和嵌套关系模型中的依籁约束可被划分到基f 值的约束中,意 味着它们反映r 在一个关系中数据间的依赖关系。然而,面向对象数据模型支 持对象标识符的概念,它与对象的值无芙。这样,这些模型中的依赖约束应包 含对象标识符的概念,不是基于它们的值而是在基于它们标识符来表示对象之 f 日j 的关系。 ( 3 ) 面向对象数据建模过程中不考虑与实现育关的问题( 如:存储、性能 等) ,这些问题被放在建模之后。面向对象规范化关心的是反映论域的用户解 释的模式描述,也就是一个正确的模式。在面向对象数据模型中,由于路径的 多重解释,对象将反映多种解释。同时,只要用户解释是由对象解释所表达 的,对象将在一个正确的形式中。这样,面向对象规范化将产生从用户的观点 来看是正确的模式。 与传统数据库相比,o o d b 易解决一些长期未解决或很难解决的问题: ( 1 ) 缩小了语义差距。传统数据库设计往往是在问题空间采用某种语义模型 例如e r 模型,而在求解空间采用某种关系模型,于是就必须在这两个空间的 表示之同作一个转换,往往要丢失语义,o o d b 的优越之处就在于这两个空间 采用了相同近似的模型,它们之间的语义差距缩小了。 ( 2 ) 减轻“阻抗失配”问题。传统数据库应用往往表现为把数据库语句嵌入 某种具有计算完备性的程序设计语言中,由于数据库语言和程序设计语言的类 型系统和计算模型往往不同,所以这种结合是不自然的,这个现象被称为“阻 抗矢配”。o o d b 在发展历程中本身就结合了o o 程序设计方法,把用程序设 计语言编写的操作都封装到对象内部去了,从本质上讲o o d b 的问题求解过 程只需要表现为一个消息表达式集合。从而易实现减轻“阻抗失配”问题。 ( 3 ) 适应非传统应用的需要。传统数据库不能有效地适应非传统应用例如 c a d c a m ,c a s e ”,o i s ,a i 1 8 】等的需求,而o o d b 能够定义和操作复杂 对象,表达丰富的语义。 1 4 面向对象模式设计 今年来,面向对象范例已做为“一个处理在论域建模中的复杂性问题的解决 方案出现。面向对象数据模型支持复杂机制,允许通过继承重用数据和过程、 建立复杂对象( 利用元组和集合正交构造器) 、独立于值的对象标识( 利用对象 标议机制) 。利用传统设计方法来设计面l 句对象数据库模式有以f 不足: l 竹a 、滨刚i 凡学i 学坝l 。学位论义 ( 1 ) 数据模型1 、足以吏持复杂建模机制( 如对象标识符、复杂刈象和i 继 承) 。选择了l in g 和m a r k o w fez “ 和s h o s h a n i 所提出的概念模型,h 为他f j 提供f 与平面关系模型相似的建模能力。由于这些相似之处,从个慨念模式 转化到关系模型是个相对简单的任务。 ( 2 ) 在传统设计方法中的依赖约束( 如函数和多值依赖) 只有一个广格的约 束集合,它能强加在关系的属性中,用来处理对象内部关系。然而,向对象 数据模型包含更复杂的约束,不仅包含对象和它的成员之间的关系( 也就是对 象内部关系) ,还包含对象之间的约束( 也就是对象之间关系) 。进而;之,在 平面和嵌套关系模型中的依赖约束可被划分到基于值的约束中,意味荷他们反 映了在关系中的数据问的依赖关系。然而面向对象数据模型支持对象标识符的 概念,用值来独立标识对象。这样,这些模型中的依赖约束应包含对象标谚 概 念,不是基于他们的值而是基于他们标识符来表示对象之间的关系。 ( 3 ) 在面向对象设计理论的开始就考虑冗余和更新问题是不恰当的。因为 他们处理的是执行事务,而丽向对象数据建模是假设建模活动中不包含执行问 题面向对象规范化关系的是反映论域的用户解释的模式描述,也就是一个正 确的模式。在面向对象数据模型中,由于路径的多重解释,对象将反映多种解 释。同时,只要用户解释是由对象解释所表达的,对象将在一个正确的形式 中。这样,面向对象规范化将产生从用户的观点来看是正确的模式。随着面向 对象数据模型规范化理论的不断完善,1 9 7 7 年z t a r i 等人在论文中提出的面 向对象数据模型规范化理论克服了上面所提出的问题。 1 5 本课题研究内容 面向对象程序设计技术已经成熟,然而面向对象数据库设计技术却是世界 上众多数据库专家研究的热门课题。经过1 0 余年研究,也开发了一些面向对 象数据库系统,例如g e m s t o n e ! ”j ,l t a s c a ,m a t i s s e i 捌,0 2 , o b j e c t i t i t y d b ,o j e c t s t o r e 2 1 l ,o n t o s ,o p e n o d b ,s t a t i c e l z 2 l ,u n i s q l 等等。 但实用的几乎没有,它们还处于实验阶段,没有作为商业产品投向社会。究其 原因是面向对象数据库设计理论尚未成熟,缺乏统一的数学模型,没有完善的 0 0 模型和数据依赖定义集,更没有建立公理系统和对象范式的标准。著名计 算机学家克鲁特说:“没有理论指导下的实践是一个不成熟的实践”。这就是 o o d b 还处于研制阶段和不成熟的关键所在,也既是数据库领域专家热表j :转 向对o o d b 范式婵论的研究和求解算法的开发的原因所在。国际许多数捌 喻尔i 芄删f 人+ f h 1l 。学位论文 库的重要杂志都热烈地刊笼此炎文章,们此项课题是一项复杂而综合的问题 例如o o 模型上的语义表t 曼,约束关系和拍理规则如何定义等问题。这螳闽鼬 并不是某一个技巧的完善或足某一类算澎、的改进,而是开创了个新的研7 领域和研究空问。 当前世界上著名数据库专家在此类问题l 的代表作有: j c h o m i c k i 在p o d s ( 1 9 9 6 ) 4 0 4 8 上发表了“v a r i a b l ei n d e p e n d e n c e a n d a g g r e g a t i o nc l o s u r e ”【2 3 】: z t a r i 等学者在t r a n s a c t i o n so nd a t a b a s es y s t e m s ) ) 与1 9 9 7 年发表丁 “o b j e c t n o r m a lf o r m sa n d d e p e n d e n c y c o n s t r a i n t sf o r o b j e c t o r i e n t e d s c h e m a t a ” 2 4 1 ; j w i j s e n 等学者在 t r a n s a c t i o n so nd a t a b a s es y s t e m s 与1 9 9 9 年发表了 “t e m p o r a lf d so nc o m p l e xo b j e c t s f 2 5 i 。 他们在对象范式基础上都进行了试探性的研究,提出了自己的创见。本文 参考了诸位学者的观点,在o o d b 理论的关键点对象范式及对象约束表达式 进行了自己主见的研究,其主要工作如下: 1 ) 第二、三章,作者从面向对象建模入手,扩充了传统关系模型中数据依 赖的概念,建立了面向对象的数学模型。传统关系模型是平面模型,其代数操 作和数据依赣( f d ,w v d ) 也是建立在平面模型之上,由于扩充后的模型引 入了路径的概念,相应地,数据依赖也必须即可以描述对象间的依赖,也可以 描述对象内部的依赖。扩充屠的数据依赖包括路径依赖和对象函数依赖。 ( 2 ) 第四章为面向对象模型的依赖建立了一套公理系统。参照a r m s t r o n g 公 理系统,为路径依赖和对象函数依赖各定义了几条摊理规则。 ( 3 ) 第五章在数据依赖基础上提出o o d b 设计中的范式理论。o o d b 设计 中的范式不同与r d b 的是,r d b 的范式是用来检验数据库模式在操作中是否 会出现数据冗余和更新异常的标准,而o o d b 的范式在数据库设计时充分体 现了用户需求,将范式提商到了需求分析的高度。若用户描述的数据依赖与设 计出的对象模型的依赖约束集合一致或被后者蕴涵,则此模型是符合对象范式 的。 ( 4 ) 第六章提出了o o d b 设计中的范式转换算法。该算法适合于渐进犁丌 发方法。 l j “m 璀厂、学t 学硕l 学位 仑义 第2 章面向对象数据库的基本概念 2 1 面向对象数据库的发展 我们认为面向对象数据库实际上是米象对象程序设计语言的丌发,概念数 据模型的发展和对象数据模型的演变三个方面研究的一个交汇点。 面向对象程序设计语言的发展是面向对象技术应用最成熟的一个领域。它 深入到数据库实现的最前端,充分体现了面向对象思想的精髓:封装和继承。 语义模型是独立于任何计算机系统实现的,如e r 模型,这类模型完全不 涉及信息在计算机中的表示,它的目标是如何让模型更多、更直接地反映现实 世界中数据之间的语义联系,是现实世界的第一层抽象。 结构数据模型是直接面向数据库中数据逻辑结构的,例如有关系、网状、 层次、匾向对象模型,这类模型涉及到计算机系统,直接与数据库的设计和实 现有关。结构数据模型是第二层抽象,有严格的形式化定义。 不难发现,以上提到的三个方面正好贯穿了数据库产品设计和开发的整个 过程,概念数据模型和机构数据模型只考虑如何刻画对象的复杂语义和结构, 丽面向对象方法考虑了行为抽象和封装想,这些方面结合起来就构成了面向对 象数据库的本质特征。 本章将对三个方面所涉及的基本概念分别作总结和归纳,作为以后章节中 的概念定义和定理证明的基础。 2 20 0 开发方法 2 2 1 对象 对象建模的目的就是描述对象。对象是在现实生活中独立存在的并可以相 互区别的客体。如:一个公司、一份合同等都是一些对象的例子。所以对象都 是具有标识且是可区别的,就象双胞胎是两个人,虽然他们看起来是一样的。 术语“唯一标识”指的是对象可由其内在本质来区别而不是通过它们的描述柬 区别。所以“对象标识”是逻辑标识一个对象而不是通过对象的值或其他属性 来唯一( 别岂。 l 竹;滨理t 人学r 顺i 车泣渔艾 嘲向对象数据库系统的对象与面向对象程序设i k 吾中的埘象没f j 奉质区 圳,也是有数掘部分和操作构成的。 2 2 2 类 个对象类描述的是具有相似性质( 属性) 的组对象,是对一组对象的 抽象。类是对象类的略写,同一类的对象其享一般语义,但它们也可有自己的 横性及行为。 在对象建模中,对象是焦点,为何还要引入类呢? 抽象是这个问题的关 键。将对象抽象成类增强了模型的表达能力,共同的定义应该只在类中保留定 义次而不是每一个对象实例定义一次。各类上的操作也是类中标明一次,目 的是使类的所有对象都可以代码重用。 2 ,2 3 属性 属性有型和值的概念,同一类对象中相f 霹特征和标识成为属性的型,属性 的值是类中对象所具有的数据值。如:公司地址,公司法人代表,公司产业类 型都是公司这一对象属性值。与对象相反属性值无标识唯一性,如j o h n7 可 以是任何字符属性值而不作区别。 2 2 4 封装性 在程序设计中,封装就是将一个数据与这个数据有关的操作集合放在一 起,形成一个能动的实体,用户不必知道对象行为实现的细节,只需根据对象 提供的外部特性接口访问对象。因此,从用户的观点来看,这些对象的行为就 象包含在一个“黑匣子”里,是隐藏、看不见的。 面向对象系统的封装性是一种信息隐藏技术,它使系统设计人员能够清楚 地标明它们所提供的节目,用户和应用程序员只能看见对象提供的操作功能, 看不见其中的数据或操作代码实现细节。这种将数据和与数据有关的操作集合 封装在一起,反映了抽象数据类型的思想。 2 2 5 继承性 在前面,我们讨论了类,这些类是孤立的,相互之间还没有建立管理,即 这监类还是处于同一级别卜,是一种平坦的结构,这种没有关系的平坦结构龈 晌尔滨耻人y 掌坝i 学们亡苦文 制了面向对象系统的蹬计,因此它个n 类之间实现信息共享,对象之f 门相似 之处就无法表达出永。继承所表达的就是一一种对象类之间的相交关系,它使得 某类对象可以继承其他类的特征和能j 。 具体地说,若类b 继承类a ,则类b 的对象便具有类a 的一切性质平功能, 因此要构造一个新类b ,只需去继承个与之有共同特征的基类a ,我们称 被继承类a 为基类或父类,或超类;而继承类b 为a 的派生类或子类。继承 可以是单继承或多继承,所谓单继承即每个派生类只继承了一个基类的特征, 而多继承是在派生类中继承了多个基类的属性及操作,大大增强了面向对象系 统模型描述现实世界的能力。 2 3 语义模型 大多数传统数据库系统是基于简单记录类型,如关系模型,这种简单数据 表示方法已不能满足非传统应用领略中复杂数据结构的要求,如c a d c a m , a i ,o i s 。语义模型为数据库应用提供了更为丰富的数据表示能力。 从1 9 7 0 年以来,数据模型有两个截然不同的发展方向:一是关系模型的 发展,二是语义模型的发展。关系模型利用简单而严密的数学模型二维表实现 了数据表示中数据的逻辑表示与物理表示相独立,在它基础上设计的结构话查 询语言( s q l ) 是关系数据库在理论与艺术比其他数据库系统成熟。而语义模 型最初是作为设计高级数据模型而提出的,由于语义模型的高度抽象化,非常 自然地支持自上而下的设计思想,它确实在建模方面优于其他模型。所以,语 义模型发展的趋势变得更为复杂、抽象化,是数据模型设计者在更加抽象的高 度来设计数据库模型。现在比较普遍的数据库设计方法都先用语义模型建模, 再转换为关系模型实现。语义模型的几个典型的代表有e r ,s d m ,i f o , f d m 等。 是什么使语义模型适合数据建模,我们可从下列的几个概念中得出结论。 2 3 1 属性 语义模型中属性是对关系模型中属性概念的扩充。关系模型中,由fi n f 限定了关系中任何属性必须是单值并且单域,也就是浼所有属性必须足原子僖 性且在关系实例的某个元组中只能有一个值。而语义模型允许属性可以是多值 的,增强了模型的表达能力。 1 0 2 3 2 复杂对象 在语义模型中允许属性j 是多值属性还是不够的,仍不能聚合的复杂对 象。面向对象模型就借用了复杂对象的思想。刚4 我们讨论了属性可以是多值 的。我们使用了集合构造子。复杂对象就是多次使用类型构造子构造成多域、 多值的对象。我们以关系模型为对比: 在关系模型中,关系r 叮以被定义为域d i ( 0 j n ) 上的笛1 每儿积的了 集,畦为:r 妄d 1 d 2 枷* d n 关系模型中l n f 规定所有的域d i 仅包含原子值,在作了以上规定后,关 系模型的代数实际上成为集合代数。 复杂对象中,我们也从原子域d l ,d 2 ,d n 开始,对象0 的定义可看 成是复杂域c l ,c 2 ,c n 的笛卡儿积的子集,记为: o c 1 _ c 2 扣”* c n 若c i 是原子域,则c i = d i ,其它的,c i 可以是一个元组( 使用元组构造 子) ;或是一个集合( 使用集合构造子) ,则c i - - q c l * c 2 + * c n ,这样循 环定义,即可构造一复杂对象。 2 4 结构数据模型 从结构数据模型发展来看,面向对象数据模型可以看作是传统关系数据模 型的发展,它综合了传统数据模型及其他面向对象的设计开发方法的机制,并 在它们的基础之上发展而成的一种描述客观世界能力非常强的数据模型i 刎。 用二维表格来表示实体以及实体间联系的模型称为关系模型。关系模型中 基本的数据结构是属性、元组和关系。 在关系模型中字段称为属性,字段值称为属性值,元组是属性值的有序集 合,而关系是元组的集合。尽管关系与二维表格非常类似,但它们又有重要区 别。严格地说关系是一种规范了的二维衷中行的集合,规范体现在关系模型中 要求模型具有第一范式的性质,即规定属性是不可再分解的,不允许属性有复 合性质。因此在关系类型中每个属性只能出现一次,这种基本的关系模型又称 为平面关系模型。 嵌套关系模型【2 7 1 是从平面关系模型发展而来。嵌套关系模型允许关系的属 性值又可以是关系,即允许个关系类型作为另一个关系类型的构造成分,嘶 且可以出现多次嵌套。 l n 尔潺娌_ 人r # 坝 。乒仃论_ 丑 2 5 对象实例 在对象实例中,客户( c u s t o m e r ) ,供心商( v e n d o r ) ,货f i 6 ( 1 t e m ) ,销售订单 ( s a l e s o r d e r ) 被描述成对象类型,在图2 - 1 巾我们用矩形框表示对象类犁,每个 对象类型有很多属性,这些属j | 峰可以是单值属性,也可以是多值属性,多值属 性用 与单值属性相区别,如图2 - 1 中v e n d o r 类有七个属性,其中l d v e n d 、 v e n d n o 、v n a m e 和p r e s i d 是单值属性,而 s o d e p t ( 销售部门) , w h ( 仓库) 和 a d d r ( 地址) 是多值属性。在销售系统对象模型 2 8 1 中,s a l e s o r d e r 类中的 i t e m s a l e d 属性,c u s t o m e r 类中的 a d d r 属性也,i t e m 类中的 o w n b y 也是多 值属性。另外属性还可以是简单属性或复合属性。简单属性是单域的,如:字 符型、整形、布尔型等简单类型;复合属性是多域的,用类型构造子如:元组 构造子或集合构造子将简单类型构造成结构类型。简单属性用单线与其所属对 象类相连,而复合属性用双线与其所属对象类相连,且用大写字母开头与单域 属性区别,例如 s o d e p t ) 和 p r o j o c t 除了是多值属性外,还是复合属性,其中 s o a e p t 是用元组构造子将s d n o ,a d d r ,s m e n , v r o j e e t ) 属性构造成的复合属 性, v r o j 瞅) 是用元组构造子将p r o n o 和s o n o 属性构造成的复合属性。为便于 讨论,我们将对象模型实例化,并采取符合人们思维习惯的展开式二维表格, 见表2 1 ,表2 - 2 ,表2 - 3 ,表2 4 :我们采取类似面向对象程序设计语言中对 象类定义那样描述对象模型中各对象类。 2 6 本章小结 在本章中主要介绍了三方面的问题: 面向对象程序设计语言的发展是面向对象技术应用最成熟的一个领域。它 深入到数据库实现的最前端,充分体现了砸向对象思想的精髓:封装和继承。 语义模型是独立于任何计算机系统实现的,如e r 模型,这类模型完全不 涉及信息在计算机中的表示,它的目标是如何让模型更多、更直接地反映现实 世界中数据之间的语义联系,是现实世界的第一层抽象。 结构数据模型是直接丽向数据库中数据逻辑结构的,例如有关系、网状、 层次、面向对象模型,这类模型涉及到计算机系统,直接与数据库的设讨和实 现有关。结构数据模型是第二层抽象,有严格的形式化定义。 本章对三个方面所涉及的基本概念分别作总结和归纳。 些些! 型! ;:i ! :竺! 坚! 兰 心 ,。 二巫固 j 二“o f t 7 l vendor j 一目 。俎蚣掣上 ,l 。沁。 i d i t i t n m e 图2 1 销售系统对象模型 g r a p h 2 1o b j e c tm o d e lo fd i s t r i b u t i o ns y s t e m 表2 - 1 对象c u s t o m e r 实例化 t a b l e 2 - 1t h ei n s t a n c e o fo b j e c tc u s t o m e r l e w n b y i d c u s t c l l s t n oc n 锄e a d d r b a l a n c c c 1 0 0 1 c a r t e f o u r b e i j i n g 3 9 7 6 0 0 g u a n g z h o u c 20 0 3 h a p p y s h o p p i n g s h a n g h a i 1 6 3 5 0 0 c 3 0 0 2 h u a l i a n n a n c h a n g 1 5 0 8 0 0 3 一 m 墼尘堡些! :兰! 兰竺! :! ! 丝兰 表2 - 2 对象i t e m 实例化 t a b l e 2 2t h ei n s t a n c eo fo b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 普宁小学升初中数学试卷
- 内江市的期末数学试卷
- 去年五年级数学试卷
- 河北中烟工业公司真题2024
- 邳州市小学数学试卷
- 2024年崇左市江州区濑湍镇卫生院招聘真题
- 平阳高三首考数学试卷
- 莆田高二质检数学试卷
- 2024年上海师范大学附属合肥实验学校教师招聘笔试真题
- 吉林省公考真题2025
- 社保补助代理协议书
- 2物流行业2025年人力资源招聘策略研究
- 幼儿园大班家长会
- 非洲出国务工合同协议
- 大题04 板块模型(解析版)-【三轮冲刺】2025高考物理大题突破
- 统计分析在资产评估中的运用
- 网络基础知识课件教学
- 信号工-矿井提升运输安全培训课件
- 个人提供技术与公司合作协议书范本
- 劳务派遣与工厂签合同
- 支气管哮喘防治指南(2024年版)解读
评论
0/150
提交评论