(计算机应用技术专业论文)传统er模型到面向对象模型转换的研究与应用.pdf_第1页
(计算机应用技术专业论文)传统er模型到面向对象模型转换的研究与应用.pdf_第2页
(计算机应用技术专业论文)传统er模型到面向对象模型转换的研究与应用.pdf_第3页
(计算机应用技术专业论文)传统er模型到面向对象模型转换的研究与应用.pdf_第4页
(计算机应用技术专业论文)传统er模型到面向对象模型转换的研究与应用.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)传统er模型到面向对象模型转换的研究与应用.pdf.pdf 免费下载

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

文档简介

- k j 传统e r 模型到面向对象模型转换的研究与应用 摘要 面向对象数据模型将面向对象思想与数据库技术相结合,以一种很自然的方法解 决了传统信息项目中遇到的诸多问题,面向对象方法作为理论时下己应用到绝大多数 信息化系统设计中。面向对象数据模型以面向对象方法为理论,把数据模型作为应用 领域,因此它不但具有对象可复用、错误机会减少、维护方便等面向对象的特性,而 且面向对象数据模型既可作为与平台无关的概念模型对现实世界进行抽象,也可以作 为与平台有关的逻辑模型进行系统设计。作为正在发展的数据模型,它一方面很好的 解决了软件工程现行出现的问题,另一方面又为将来的信息技术作好了接轨的准备, 可见面向对象数据模型己成为软件工程学科中的一个重要分支。 本文系统地阐述了面向对象方法的理论及数据库技术的发展,全面介绍了面向对 象数据模型的对象、类、对象标识、继承、对象包含、关联等重要概念,着重研究传 统e r 模型与面向对象数据模型的发展,深入讨论了传统e r 模型和面向对象数据模 型的异同,进一步提出了一种传统e r 模型到面向对象数据模型的转换及面向对象数 据模型在对象关系数据库中实现的方法。同时,应用本文的研究成果,将江西社会保 险信息管理系统的养老保险e - r 模型转换为面向对象数据模型并在o r a c l e 对象关系数 据库中实现养老保险的面向对象数据模型,从而为江西社保系统的升级改造提供了方 法与实现的依据与支持,改造后的系统在复用性、扩展性、维护性、稳定性等软件质 量方面有了显著的提高,达到了软件改造升级的目的。 关键词:传统e r 模型面向对象数据模型o r a c l e 对象关系数据库 传统e r 模型到面向对象模型转换的研究与应用 a b s t r a c t t h eo b j e c t o r i e n t e dd a t am o d e l ,t h ec o m b i n a t i o no fo b j e c t - o r i e n t e dt h i n k i n ga n d d a t a b a s et e c h n o l o g y ,r e s o l v e dt h ep r o b l e m se n c o u n t e r e di nt r a d i t i o n a li n f o r m a t i o np r o j e c t s i nan a t u r a lm a n n e r ,a sa t h e o r y ,o b j e c t - o r i e n t e da p p r o a c hh a sb e e na p p l i e dt om a n yp r o j e c t s d e s i g n t h e r e f o r ei tn o to n l yh a st h eo b j e c tt ob ep o s s i b l et ot u r nr o u n dw i t h ,t h ew r o n g o p p o r t u n i t yr e d u c e s ,t h em a i n t e n a n c e c o n v e n i e n c ea n ds oo nt h e o b j e c t o r i e n t e d c h a r a c t e r i s t i c ,m o r e o v e rt h eo b j e c t - o r i e n t e dd a t am o d e la l r e a d ym a yt a k eh a sn o t h i n gt od o w i t ht h ec o n c e p t u a lm o d e lw i t ht h ep l a t f o r mt oc a r r yo na b s t r a c t l yt ot h er e a lw o r l d ,a l s o m a yt a k ea n dt h ep l a t f o r mr e l a t e dl o g i cm o d e lc a r r i e so nt h es y s t e md e s i g na so n ek i n dt h e d a t am o d e lw h i c hd e v e l o p s ,t h eo b j e c t o r i e n t e dd a t am o d e lo nt h eo n eh a n dt h ev e r yg o o d s o l u t i o ns o f t w a r ee n g i n e e r i n gp r e s e n ta p p e a r e dq u e s t i o n ,o nt h eo t h e rh a n dh a sf i n i s h e dt h e p r e p a r a t i o nf o rt h ef o t u r ei n f o r m a t i o nt e c h n o l o g yw h i c hc o n n e c t sr a i l s ,o b v i o u s l yt h e o b j e c t - o r i e n t e dd a t am o d e lh a sb e c o m ei nt h es o f t w a r ee n g i n e e r i n gd i s c i p l i n ea ni m p o a a n t b r a n c h t h i sa r t i c l es y s t e m a t i c a l l ye l a b o r a t e dt h eo b j e c t o r i e n t e dm e t h o dt h e o r ya n dt h ed a t a b a n kt e c h n o l o g yd e v e l o p m e n t ,c o m p r e h e n s i v e l yi n t r o d u c e do b j e c t 、c l a s s 、i n h e r i t s ,t h eo b j e c t c o n t a i n s ,t h ea s s o c i a t i o n sa n ds oo nt h ei m p o r t a n tc o n c e p t ,s t u d i e st h et r a d i t i o n a le rm o d e l a n dt h eo b j e c t o r i e n t e dd a t am o d e ld e v e l o p m e n te m p h a t i c a l l y ,t h o r o u g h l yd i s c u s s e dt h e t r a d i t i o n a le - rm o d e la n dt h eo b j e c t - o r i e n t e dd a t am o d e ls i m i l a r i t i e sa n dd i f f e r e n c e s ,f u r t h e r p r o p o s e do n et r a n s f o r m a t i o nm e t h o do ft r a d i t i o n a le - - rm o d e lt ot h eo b j e c t - o r i e n t e dd a t a m o d e la n dt h er e a l i z a t i o no ft h eo b j e c t - o r i e n t e dd a t am o d e li no b j e c tr e l a t i o n a ld a t a b a s e a t t h es a m et i m e ,t h ea p p l i c a t i o nt h i sa r t i c l er e s e a r c hr e s u l t sw i l li n s u r et h ei n f o r m a t i o n m a n a g e m e n ts y s t e mt h ee - rm o d e lt ot r a n s f o r mf o rt h eo b j e c t o r i e n t e dd a t am o d e la n d r e a l i z ei nt h eo r a c l eo b j e c tr e l a t i o n a ld a t a b a s e ,t h u sg u a r a n t e e ds i - m i st h ep r o m o t i o n t r a n s f o r m a t i o nt op r o v i d et h em e t h o da n dt h er e a l i z a t i o nb a s i sa n dt h es u p p o r t ,a f t e rt h e t r a n s f o r m a t i o ns y s t e mi nt h er e u s a b i l i t y ,t h ee x t e n s i o n ,s t a b i l i t ys o f t w a r eq u a l i t ya s p e c ta n d s oo nt h em a i n t e n a n c eh a dt h er e m a r k a b l ee n h a n c e m e n t ,h a da c h i e v e dt h es o f t w a r e t r a n s f o r m e dt h eg o a lw h i c hp r o m o t e d k e y w o r d s :t r a d i t i o n a le rm o d e l ;o b j e c t - o r i e n t e dd a t am o d e l ;o r a c l e 9 io b j e c tr e l a t i o n d a t a b l e ; 独创性声明 y928 7 9 5 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得南昌文学或其他教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示谢意。 学位论文作者签名:理布耐氐 签字日期:勿p 年月彦日 学位论文版权使用授权书 本学位论文作者完全了解南昌大学有关保留、使用学位论文的规定,有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借 阅。本人授权南昌文学可以将学位论文的全部或部分内容编入有关数据库进行 检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:宰,篇钐尉 签字日期:纱6 衫年月日 学位论文作者毕业后去向: 翩躲仫厂锣杠 签字日期:o 名年多月矿日 传统e - r 模型到面向对象模型转换的研究与应用 1 1 选题背景 第一章绪论 数据库的发展集中表现在数据模型的发展。从最初的层次、网状数据模型发展到 关系数据模型,数据库技术产生了巨大的飞跃。关系模型的提出,是数据库发展史上 具有划时代意义的重大事件。然而,传统数据模型,特别是关系模型对于构造复杂的 嵌套实体,如设计与工程对象以及复杂的文档等显得太简单,传统数据库系统不提供 如像配置管理( c o n f i g u r a t i o n m a n a g e m e n t ) 那样的表示和管理这些实体的机制。为了使 数据库用户能够直接以他们对客观世界的认识方式来表达他们所要描述的世界,人们 提出了一种新的数据模型面向对象的数据模型。面向对象数据模型n 2 3 是用面向对 象观点来描述现实世界实体( 对象) 的逻辑组织、对象间限制、联系等的模型,面向 对象的生产效率、可靠性、易维护性、易管理等优点在面向对象数据模型也显现出来, 这使得面向对象数据模型的研究与应用日益成熟。 传统e r 模型口4 1 ( e n t i t y r e l a t i o n s h i pm o d e l ) 又称实体联系模型,因其语义 表达能力强,易于用户理解,独立于任何d b m s 等特点,而成为抽象现实世界的最好工 具,而且它也支持向d b m s 逻辑数据模型转换,因此这种模型很受欢迎,长期以来作为 一种主要的概念模型被广泛使用。 目前,绝大多数的数据库应用系统是采用传统e r 模型作为概念设计,然后转换 为关系数据库支持的关系模型,数据存储在关系型数据库中,即关系数据库系统 ( r e l a t i o nd a t a b a s es y s t e m ) ;此种模式要求设计者将现实世界事物的状态与其行 为分开设计,而正是因为这种设计脱离现实实际情况,把事物的状态与行为强行分离, 这就给开发人员在对象重用和日后的维护上带开了很大的困难,同样对于信息系统的 建设者来说,希望一个软件产品或软件系统能适应业务需求的变化和增加,通过尽可 能少的后期投入使系统的生存周期能够经历从孕育、诞生、成长直至成熟的完整阶段, 达到收益的最大值。针对这些问题,本文提出了将传统e r 模型转变为面向对象模型 的观点,并就传统e r 模型如何转变为面向对象模型,延伸至在对象关系数据库管理 系统中实现面向对象数据模型,进行了深入的研究。 传统e r 模型到面向对象模型转换的研究与应用 1 2 课题来源 本课题来源于江西省重点科技项目,属于理论与应用相结合的研究课题。江西省社 会保险管理信息系统( 简称s o c i a l i n s u r a n c em a n a g e m e n ti n f o r m a t i o n s y s t e m ,s i - m i s ) 的设计与实现。s i - m i s 的主要功能是对全省参保人员的各类险种的数 据进行管理与处理。 1 3 选题意义 进行本课题的研究具有如下意义: 首先:本论文对传统e - r 模型到面向对象模型的转换的研究探索具有一定的创新 性和前瞻性。由于目前商业面向对象数据库的不成熟、关系数据库系统的绝对占有率, 大多数学者把精力都放在研究面向对象模型与关系模型之间的“阻抗不匹配”的问题 上,也有部分人提出将传统e - r 模型扩充对象的特性,e r 模型到面向对象模型的转换 的研究相对少的多,相关的文献也是寥寥无几,因而本课题的研究对有传统e r 模型 到面向对象模型的转换需求提供了方法上的指导,也为这方面以后的研究做了个尝试。 其次:通过商业对象关系数据库实现面向对象模型是面向对象模型的应用方面的 一个探索研究过程。对象关系数据库在关系数据库成熟的理论上扩展了对象特性,它 在很大程度上为我们展现了面向对象数据模型的概貌。信息系统要求是完全面向对象 的,那么对象的存储就必须要考虑解决的办法,本文给出了在商业对象关系数据库中 实现面向对象模型的程序源码,供面向对象系统工作者参考。 再次:从实践的角度来看,对传统e r 模型到面向对象模型的转换的研究以及商 业对象关系数据库实现面向对象模型的研究所得的结论能否在现实问题中行的通,是 检验方法有效性的事实标准。本课题引例江西省社会保险管理信息系统s i m i s ,将理 论与实践相结合,从而使面向对象数据模型的应用由理论研究阶段走向实践,现行的 关系数据库系统欲进行对象关系数据库系统改造升级的,可参照本文进行实际操作。 1 4 论文安排 全文共分六部分:第一部分讲述了课题的背景、来源、意义,并介绍了笔者完成 的主要工作和安排;第二部分概述了数据库技术的发展,详细介绍传统e r 模型的基 2 传统e r 模型到面向对象模型转换的研究与应用 本元素;第三部分综述面向对象的方法,详细描述了面向对象数据模型;简单介绍统 一建模语言u m l ;第四部分讨论了传统e r 模型和面向对象数据模型这两种模型的异同 点,提出一种传统e - r 模型到面向对象数据模型的转换方法;第五部分叙述对象关系 数据库的对象特点,接着论述在o r a c l e 上实现面向对象数据模型;第六部分以江西社 保管理系统中的养老保险业务为引例,详细讨论转换养老保险e r 模型到面向对象数 据模型,并在o r a c l e 对象关系数据库中实现面向对象模型;最后对全文的研究工作进 行总结,提出有待进一步研究和探讨的一些问题。 1 5 本人工作 笔者在读研究生期间,参与了江西社会保险管理信息系统s i m i s 的设计和开发 工作。通过理论知识的总结及实践经验的积累,笔者对面向对象数据模型的数据库应 用有了较为深刻的认识,做了较为系统的研究,并将研究成果制成论文形式发表。这 整个研究期间,笔者所作的理论和实践方面的工作如下: 对数据库技术中的数据模型和数据建模进行了全面的研究,分析了解各种数据模型 的优缺点,熟悉传统e - r 模型的应用; 研究面向对象数据库的规范和标准,了解面向对象数据库的发展状况,掌握面向对 象数据模型的基本概念,了解统一建模语言u m l 的构成要素,使用u m l 提供的图进 行面向对象建模; 从相同点入手,分析比较传统e r 模型与面向对象数据模型的异同,研究两种模型 基本元素变换的方法、途径,总结转换的规则; 了解对象关系数据库的发展现状,分析o r a c l e 9 i 版本的对象特性,类的封装机制、 复杂对象、继承、r e f 指针、对象标识o i d ,研究o r a c l e 9 i 中实现面向对象模型 的方法; 分析江西省社会保险管理信息系统需求,以此为例,将上述的规则与方法应用到养 老保险业务用例; 传统e r 模型到面向对象模型转换的研究与应用 第二章数据库技术概述 2 1 数据库技术的发展 从6 0 年代至今的3 0 年中,信息系统数据库技术的发展瞳引已经经历了四代,当前 正在开发第五代数据库技术。随着数据库应用复杂性以及运行、维护和推广这些应用 的开销的增加,总是迫使数据库技术 从一代向另代过渡。第一代是文件系统,如 i s a m ( 索引顺序存取文件) 和v s a m ( 虚拟顺序存取文件) ;第二代是层次数据库系统, 如i m s 和s y s t e m 2 0 0 0 ;第三代是c o d a s y l ( 网状) 数据库系统,如i d s ,t o t a l ,a d a b a s , i d m s 等。第二代和第三代系统实现了在一个应用环境中许多用户对一个集成数据库的 共享。但由于缺乏数据的独立性及对数据库的存取采用冗长的导航( n a v i g a t i o n ) 方 式等缺点导致第四代数据库技术,即关系数据库技术的出现。关系数据库技术是以非 过程化的陈述式( d e c l a r a t i v e ) 查询的概念为特征的,具有一个较丰富的数据模型及 一组满足应用要求的较丰富的工具,它的应用主要在事物处理领域。 从一代到另一代数据库技术的过渡是以对应用程序员编程更方便为标志的;但是 这又使数据库的性能成为主要问题。为了使新一代数据库系统的性能达到可接受的水 平,人们就需要投入大量的精力进行研究和开发。由网状数据库向关系数据库时代的 过渡就特别能说明问题。在关系数据库中引入陈述式查询减轻了应用程序员从数据库 中导航检索记录的冗长编程工作,但却必须研究和实现查询优化策略,以便提高系统 的效率。数据库技术的发展类似于编程语言的发展,从机器语言到汇编语言,从汇编 语言到高级语言,每一步的发展都方便了应用程序员对复杂应用的程序任务,但却要 引入非常复杂的语言处理器,即,汇编编译器和高级语言编译器。 8 0 年代已出现了许多关系型的商品化的系统,如o r a c l e ,s o l d s ,d b 2 和s y b a s e , 以及i n g r e s 等著名的系统。但是,关系数据库技术正像前面的每一代数据库系统一样 是为传统的事务处理应用而开发的,如库存控制、工资、帐目等等。但是人们将关系 及前几代数据库技术用于其他更广泛的应用类型时就很快暴露了几个严重的缺点。这 些应用包括计算机辅助设计、辅助工程、辅助软件工程及辅助制造( c a d ,c a e ,c a s e 和c a m ) 系统及其应用;知识库系统( 专家系统) ;处理图象、声音及正文文档等多媒体 系统;以及编程语言系统。我们将关系和前几代数据库系统称为传统数据库系统。以 下我们列举一些传统数据库技术的几个主要缺点。 4 传统e r 模型到面向对象模型转换的研究与应用 ( 1 ) 传统数据模型,特别是关系模型,对于构造复杂的嵌套实体,如设计与工程对 象以及复杂的文档等显得太简单,传统数据库系统不提供如像配置管理 ( c o n f i g u r a t i o n m a n a g e m e n t ) 那样的表示和管理这些实体的机制; ( 2 ) 传统数据库系统仅支持一组有限的像整数、实数、字符串那样的原子数据类型; 它们不支持在编程语言中出现的一般数据类型。特别是,它们不允许存储和检索图象、 音频、正文文档那样长的非结构数据( l o n gd a t a ) ; ( 3 ) 传统数据模型不包含许多经常使用的语义概念,如像一般化( g e n e r a l iz a ti o n ) 和聚集( a g g r e g a t i o n ) 关系;这意味着应用程序员必须在它们的程序中要明显地表示 和管理这样一些关系; ( 4 ) 传统数据库系统,特别是关系数据库系统的性能在要求快速计算的各种应用类 型( 如像计算机辅助设计和程序语言环境中的仿真程序) 中不可接受的; ( 5 ) 应用程序是以某些数据库语言( 如s o l 、d l 1 或c o d a s y l 的d m l ) 嵌套进某些 程序语言( 如像c o b o l 、f o r t r a n 或p l 1 ) 来运行的。数据结构方面数据库语言与编 程语言差别很大。数据模型和这种语言不匹配的问题促使人们开发第四代语言( 4 g l s ) ; ( 6 ) 传统的数据库系统所支持的事务模型不适合于交互式、协作设计环境下所必须 的长( l o n g d u r a t i o n ) 事务。传统的数据库系统不提供表示和管理数据库的临时变化, 包括如像模式的时间和版本变化以及变化的通报方面的一些工具; 传统数据库技术的缺点的发现促使数据库专业人员在8 0 年代后期从事第五代数据 库技术的铺路工作。为了满足当前的和新发现的数据库的一些应用,下一代数据库技 术必须建立在传统的数据库技术基础上并要对上面提到的许多问题进行解决。在面向 对象程序设计语言的启示和推动下,许多数据库专家认为,把面向对象思想与数据库 技术相结合是解决上述问题的一种很自然的方法,因而在8 0 年代后期开始了对面向对 象数据库( o o d b ) 的研究,并逐渐形成高潮。面向对象数据库系统主要从以下几个方面 进行研究。 ( 1 ) 数据模型 8 0 年代中后期,关于面向对象数据模型的问题,经过反复地探索和讨论,对一些 核心概念,专家们逐步取得了一致意见,提出了核心数据模型的概念,这个概念的只 要内容是: 对象和对象标识符 任何现实世界的实体都是一个对象,它与一个全系统的唯一标识符相联系。对象 传统e r 模型到面向对象模型转换的研究与应用 有两种用处:一是促进对现实世界的理解;二是为计算机实现提供实际基础。所有对 象都具有标识符且是可区分的。具有相同颜色、形状和构造的两个苹果仍然是两个不 同的苹果。术语“唯一标识”指的是对象可由其内在本质区分而不是通过它们的描述 性质来区分。在面向对象数据库中,系统为每个对象生成唯一的对象标识符。 属性与方法 一个对象具有一个或多个属性和对这些属性的值进行操作的一个或多个方法。一 个对象的一个属性也是一个对象,一个对象的一个属性可以单值或一组值。 封装和消息传递 向一个对象发送消息来存取属性而将方法封装在对象中。除了通过对象所指定的 公共接口存取外不存在任何其它的方法。 类 共享相同的一组属性和方法的所有对象被组合成一类。仅属于一个类的对象作为 该类的一个实例。一个类也是一个对象,特别是一个类是一个元类的一个实例。 类等级和类继承 在一系统中的某些类构成一个等级或一个有根无回路的有向图( d i r e c t e da c y c l i c g r a p h ,简称为d a g ) ,称之为一个类等级。例如,对于一个类c 和与c 相连的一组较 低层的类 s i ) 来说,在集合 s i ) 中的一个类是类c 的一个特殊化的类,反过来类c 是 集合 s i ) 中的类的一般化的类。在 s i ) 中的各类是类c 的子类( s u b c l a s s ) ;而类c 是 s i ) 中各类的一个超类( s u p e r c l a s s ) 。集合 s i ) 中的任一类继承了类c 的所有属 性和方法,而且还可以具有附加的属性和方法。对类c 定义的所有属性和方法也被它 的所有子类递归地继承。一个类s 的一个实例也是s 的所有超类的一个逻辑上的实例。 复合对象 如果一个对象的一个属性不是一个基本数据类型( 如整数、实数、字符串等) 而 是对另一个对象的引用,我们就说这个对象为复合对象。引用分两种类型:复合引用 和弱引用。反映整体与部分关系的引用为复合引用,一般联系的引用为弱引用。 版本关系 建立一个对象后,该对象可能有一些新版本从它派生出来,而其他一些新版本又 能从它们再派生出来等等。版本控制是下一代数据库应用中最重要的数据建模要求之 一o ( 2 ) 语言接口 6 传统e r 模型到面向对象模型转换的研究与应用 面向对象数据库系统的设计者们已经采用了两种不同的方法设计他们系统的语言 接口:一种是定义数据库语言的传统数据库方法,该语言嵌套进宿主程序语言中。这 种方法所存在的问题是应用程序员必须学习和使用两种不同的语言,而且应用程序员 还必须处理两种语言所允许的数据模型和数据结构的差异,这就是所谓的“阻抗不匹 配”问题。许多传统的数据库系统都是这种情况。另一种方法是用与数据库有关的结 构扩充面向对象的编程语言。这种方法的主要优点是应用程序员仅需学习同一种语言 的新结构。 像传统的数据库系统一样,一个面向对象数据库的编程接口必须包括数据定义子 语言,查询和数据操纵子语言,以及数据控制子语言。必须将这些子语言设计成能完 全反映面向对象数据模型所固有的灵活性和约束。为了实现面向对象程序语言和数据 库语言的无缝( s e a m l e s s ) 连接,就必须将这些子语言设计成与面向对象系统消息传 递方式相一致。 ( 3 ) 面向对象数据库的结构 一般面向对象数据库管理系统由对象子系统和存储子系统两大部分组成。对象子 系统由模式管理、事务管理、查询处理、版本管理、长数据管理以及外围工具等模块 组成: 模式管理 读模式源文件生成数据字典,对数据库进行初始化,建立数据库框架。 事物管理 对并行事物进行处理,实现锁管理和恢复管理机制。 查询处理 查询处理负责对象的创建、查询等请求,并处理由执行程序发送的消息。 版本管理 对对象的版本进行控制。 长数据管理 工程中有些对象如图形、图象、对象一般都较大可达数面k b 甚至达数m b 。这么 长的数据需要进行特殊的管理。 外围工具 面向对象数据模型语义丰富,使对象数据库的设计变得较复杂,这给用户的应用 开发带来难度。要使o d b m s 实用化,需要在数据库核心层外开发一些工具帮助用户进 传统e r 模型到面向对象模型转换的研究与应用 行数据库的应用。主要的工具有:模式设计工具,类图浏览工具,类图检查工具,可 视的程序设计工具,系统调试工具等。 存储子系统由缓冲区管理和存储管理模块组成: 缓冲区管理 对对象的内外存交换缓冲区进行管理,同时处理对象标识符与存储地址之间的变 换,即处理所谓的指针搅和( p o i n t e rs w i z z l i n g ) 问题。 存储管理 对物理存储( 磁盘) 空间进行管理。为了改进系统的性能,将预计在一起用的对象 聚簇( c l u s t e r ) 在一起,一般是将某一用户所指定的类等级( 包括继承等级和聚合等 级) 的所有对象聚集成簇。面向对象的应用基本上是通过对象标识符来存对象。如果 对象正好在内存,应用系统能够直接存取它们;如果对象不驻留在内存,它们必须从 外存( 磁盘) 检索出来。随着应用的深入,数据库会变得愈来愈大。为了提高数据库 的检索效率,可以采用哈希( h a s h i n g ) 算法或采用b 树( 或b + 树) 索引的方法,将对象 的对象标识符快速地映射到它们的物理地址上。 2 2 数据模型 图2 1 数据库发展过程 我们可能遇到许多能够使用数据库技术的现实问题,但如何将这些现实转化为计 算机内的,能够由数据库技术处理的问题? 数据库中存储的是数据,这些数据反映了 现实世界中有意义、有价值的信息,它不仅反映数据本身的内容,而且反映数据之间 传统e r 模型到面向对象模型转换的研究与应用 的联系。数据模型口h 川口8 1 ( d a t am o d e l ) 是我们将现实世界转换为数据世界的桥梁。数据模 型描述数据的结构,定义在其上的操作以及约束条件。它从概念层次上描述了系统的 静态特征、动态特征和约束条件,为数据库系统的信息表示与操作提供一个抽象框架。 依据对于现实问题的抽象的不同层次,即按不同的应用层次,我们将数据模型分 成三种类型,或者是三个层次,它们是概念数据模型( c o n c e p t u a ld a t am o d e l ) 、逻辑数据 模型( 1 0 9 i cd a t am o d e l ) 、物理数据模型( p h y s i c a ld a t am o d e l ) 。 ( 1 ) 概念数据模型 概念数据模型又称概念模型,它是一种面向客观世界,面向用户的模型,它与具 体的数据库管理系统无关,与具体的计算机无关。概念模型着重于对客观世界复杂事 物的结构描述及它们间的内在联系的刻划,而将与d b m s 、计算机有关的物理的、细节 的描述留给其他类型的模型。概念模型离机器最远,从机器立场看是抽象级别的最高 层。目的是按用户的观点来对现实世界建模,因此它应该是: 语义表达能力强。能够方便、直接地表达各种语义; 易于用户理解。概念模型是用户与数据库设计人员之间交流的语言。用户一般缺 乏计算机知识,因此概念模型应当简单、清晰、易于用户理解; 独立于任何d b m s ; 容易向d b m s 所支持的逻辑数据模型转换; 因此,概念模型是整个数据模型的基础。目前,较为有名的概念模型有e r 模型、 扩充的e r 模型、面向对象数据模型等。 ( 2 ) 逻辑数据模型 逻辑数据模型又称数据模型,它是一种面向数据库系统的模型,该模型着重于数 据库系统一级的实现。它是客观世界到计算机间的中介模型,具有承上启下的功能。 概念模型只有在转换成数据模型后才能在数据库中得以表示。它是用户通过数据库管 理系统看到的现实世界,是数据的系统表示。因此它既要考虑用户容易理解,又要考 虑便于d b m s 实现。不同的d b m s 提供不同的逻辑数据模型,传统的数据模型有层次、 网状、关系模型,非传统的数据模型有面向对象数据模型( 简称0 0 模型) ,当前占主 导地位的是关系模型,面向对象数据模型既是概念模型又可作为数据模型,由于其表 示上的优越性面向对象数据模型正在走向成熟。 ( 3 ) 物理数据模型 物理数据模型又称物理模型,数据抽象的最低层,用来描述数据物理存储结构和 9 传统e r 模型到面向对象模型转换的研究与应用 存储方法。例如一个数据库中数据和索引是存放在不同的数据段上还是同一数据段中。 数据的物理记录格式是变长的还是定长的,数据是压缩还是非压缩的,索引结构是b + 树还是h a s h 结构等等。这一层的数据抽象称为物理数据模型,它不但由d b m s 的 设计决定,而且与操作系统、计算机硬件密切相关。物理数据结构一般都向用户隐蔽, 用户不必了解其细节。它是一种面向计算机物理表示的模型,此模型绘出了数据模型 在计算机上真正的物理结构的表示。 2 3 传统e r 模型 传统e - r 模型3 1 ( e n t i t y r e l a t i o n s h i pm o d e l ) 又称实体联系模型,它于1 9 7 6 年 由p e t e rc h e n 首先提出,这是一种概念化的模型,它将现实世界的要求转化成实体、 联系、属性等几个基本概念,并用一种较为简单的图,即e r 图( e n t i t y r e l a t i o n s h i p d i a g r a m ) ,该图简单明了,因此这种模型很受欢迎,长期以来作为一种主要的概念模型 被广泛使用。 2 3 1 传统e r 模型的基本概念 传统e - r 模型有如下三个基本概念: ( 1 ) 实体( e n t i t y ) 现实世界中的事物可以抽象成为实体,实体是概念世界中的基本单位,它们是客 观存在的且又能相互区别的事物。凡是有共性的实体可组成一个集合称为实体集。如 张三、李四是实体,而他们又均是学生,因而组成一个实体集。 ( 2 ) 属性( a t t r i b u t e ) 现实世界中事物均有一些特性,这些特性可以用属性这个概念表示。属性刻画了 实体的特征。一个实体可以有若干个属性,如张三的属性可以有姓名、性别、年龄等。 ( 3 ) 联系( r e l a t i o n s h i p ) 现实世界中事物间的关联称联系。在概念世界中联系反映了实体集间的一定关系, 如医生与病人实体间的医患关系,官兵间的上下级管理关系,旅客与列车间的乘座关 系。 1 0 传统e r 模型到面向对象模型转换的研究与应用 2 3 2 实体间的联系 至三妻三主| j 墓圣乏毛萋誊三二二二;b 。么髫,暑二= :,毛二三三圣:, e r 模型的另一个优点是它可以用一种非常直观的图形表示,这种图称为e - r 图。 在e r 图中我们分别用不同的几何图形表示e r 模型中的三个概念与两个联接关系。 ( 1 ) 实体表示法 在e r 图中用矩形表示实体,实体的完整表示将矩形分成二部分,上半部分写上 该实体名,下半部分列出该实体属性的名称。有时为了方便表示,常常会用到简化表 示,简化表示只是一个矩形,矩形内标上实体名。如实体学生s t u d e n t 的完整表示、 课程c o u r s e 、教师t e a c h e r 的简化表示可用下图表示: 曰囤 图2 3 实体的完整表示与简化表示 传统e r 模型到面向对象模型转换的研究与应用 ( 2 ) 属性表示法 在e r 图中用椭圆形表示属性,在椭圆形内写上属性名。如学生有属性:学号s # 、 姓名s n 及年龄s a 可用下图表示: 图2 4 属性表示 ( 3 ) 联系表示法 在e - r 图中用菱形表示,在菱形内写上联系名。如学生与课程i n 联系s c 可用下图 表示: 图2 5 联系表示 ( 4 ) 实体( 联系) 与属性的联接表示法 属性依附于实体,因此它们之间有联接关系,在e r 图中这种关系用联接这两个 图形间的无向线段表示。如实体s t u d e n t 有属性s # ( 学号) 、s n ( 姓名) 及s a ( 年龄) ,实 体c o u r s e 有属性c # ( 课程号) 、c n ( 课程名) 及p # ( 选修课号) 可用下图表示: 属性也依附于联系, 联接,可用下图表示: c o u r s e 图2 6 实体与属性的联接表示 它们间也有联接关系。如联系s c 与学生课程成绩属性g 建立 图2 7 联系与属性的联接表示 ( 5 ) 实体与联系间的联接表示法 在e r 图中,实体与联系间的联接关系用联接这两个图形间的无向线段表示。如 实体s t u d e n t 与联系s c 间、实体c o u r s e 与联系s c 间的联接关系,为了进一步刻画实 体间的函数关系还可在线段上注明对应的函数关系,如1 :1 ,1 :n ,n :m 等,此时可用下 图表示: 图2 8 实体间的关系表示 实体与联系间的联接可以有多种,以上的例子均是两个实体间的联系叫二元联系, 传统e r 模型到面向对象模型转换的研究与应用 也可以是多个实体间的联系叫多元联系,如下图: 2 4 数据独立性 图2 9 多元联系的关系表示 数据库系统的一个重要目标就是使用户数据与物理数据彻底分开,保证数据独立, 使他们可以各自的发展。在数据库系统中,通过三级模式两级变换实现数据独立性n 1 | 。 2 4 1 三级模式 数据模型是用图形来表示的,给人以直观清晰、一目了然之感,而计算机并不认识 数据模型,为了让计算机能认识它,数据库管理系统采用一种描述语言d d l 来定义数 据模型,对应概念数据模型、逻辑数据模型、物理数据模型有下列三种模式: ( 1 ) 概念模式( c o n c e p t u a ls c h e m a ) 概念模式常称为逻辑模式,它是整个数据库的全局逻辑结构,是全体用户的公共 数据基础。概念模式所描述的结构是面向数据库系统的,一般以某种数据模型为基础, 描述数据的类型、长度、特征、数据间的联系以及有关安全性、完整性要求。数据库 系统一般提供模式描述语言用以描述概念模式。概念模式对应于数据模型中的逻辑数 据模型。 ( 2 ) 外模式( e x t e r n a ls c h e m a ) 外模式又称子模式或用户模式,它是用户的数据视图,是用户所见到的模式的一 个部分或由概念模式推导而出。概念模式给出了全局的数据描述而外模式则给出了局 部的描述。一个概念模式可以有若干个外模式,每个用户只关心与它有关的外模式, 这样可屏蔽大量无关信息且有利于数据保护,因此对用户极为有益。数据库系统一般 提供外模式描述语言用以描述外模式。 ( 3 ) 内模式( i n t e r n a ls c h e m a ) 内模式又可称为物理模式或存储模式,它表示数据库的内部存储方式和物理结构, 如数据存储的文件、块结构、索引、簇集、h a s h 等存取方式及存取路径等,数据库系 13 传统e r 模型到面向对象模型转换的研究与应用 统一般提供内模式描述语言用以描述内模式。 数据模式给出了数据库的结构框架,而数据库中心的数据才是真正的实体,但是 这些数据必须按框架所描述的结构组织,以模式为框架的数据库叫概念数据库 ( c o n c e p t u a ld a t a b a s e ) ,以子模式为框架的数据库叫用户数据库( u s e r sd a t a b a s e ) , 以内模式为框架的数据库叫物理数据库( p h y s i c a ld a t a b a s e ) 。这三种数据库只有物理 数据库是真实存在于计算机的外存中,其他两种并不是真正存在于外存,而是通过物 理数据库由数据库管理系统d b m s 构造而成。 数据模式的三个级别层次反映了模式的不同环境的不同要求,其中内模式处于最 底层,它反映了数据的计算机外存储齐的实际存储的形式,概念模式处于中层,它反 映了设计者的数据全局逻辑要求,而外模式则处于最外层,它反映了用户的局部数据 逻辑要求。 2 4 2 两级变换 数据库管理系统d b m s 把各子模式综合成一个整体的概念模式,最后变成物理模式,又能把 物理模式变成概念模式,再变成外模式。三个模式之间通过二级变换将概念模式映射至内模式、外 模式映射至概念模式。 用户a 1用户a 2用户b 1用户b 2用户b 3 图2 1 0 三级模式二级映射 1 4 传统e - r 模型到面向对象模型转换的研究与应用 概念模式一内模式的映射 该映射给出了数据的逻辑结构到数据的物理存储结构间的对应关系,它保证了模 式描述的信息无一遗漏的被存取,又能获得物理存储较高的空间利用和系统效率。概 念模式一内模式的映射使得物理存储发生变化时,如更换存储设备,改变文件组织方法, 改变存取策略等,模式结构都无需修改。我们称此为物理独立性。 外模式一概念模式的映射 一个概念模式可以有若干个外模式,每个外模式是概念模式的一个局部视图,外 模式到概念模式的映射给出了外模式与概念模式间的对应关系。用户可在外模式中自 由地定义他的数据要求,系统在一定约束下满足,概念模式从全局出发定义一个符合 全局利益的结构。外模式一概念模式的映射使外模式与概念模式相互独立,从而概念模 式的改变不会影响到无关的外模式,而外模式的改变也不会影响到概念模式,从而与 外模式密切有关的应用程序也就独立于概念模式。我们把这称为逻辑独立性。 三级模式两级映射构成了一个模式整体,它适应不同环境满足不同要求( 计算机、 用户、d b a ) ,既能根据需要通过映射作转换,也能各自独立完成不同的需求,实现了 有效地控制存取数据,获得较高的数据独立性。 传统e r 模型到面向对象模型转换的研究与应用 第三章面向对象数据模型( o o d m ) 3 1 面向对象的基本概念 8 0 年代出现了一种和传统的程序设计语言有显著区别的面向对象( 0 0 ) 语言 s m a l l t a l k 。这种0 0 语言以“对象加信息”的程序设计模式取代“数据结构加算法” 的语言模式。从此以后,0 0 程序设计技术引起了计算机界的极大重视,被认为是根治 所有计算机毛病的灵丹妙药。在过去的2 0 年里,各个领域都引入0 0 ,以图有新的突破, 出现了0 0 语言、0 0 程序设计方法学、0 0 操作系统、0 0 语言数据库、0 0 软件开发环境 等等。软件工程的0 0 观点作为大量难解问题的答案:提高软件质量,可复用性,并提 供无逢

温馨提示

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

评论

0/150

提交评论