已阅读5页,还剩58页未读, 继续免费阅读
(电力系统及其自动化专业论文)面向对象实时数据库管理系统的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国电自动化研究院硕士学位论文 a b s t r a c t w i t ht h ep r o g r e s so f e l e c t r i cp o w e rs y s t e ma u t o m a t i o na n dt h eu n i v e r s a li l s eo f c o m p u t e r t e c h n o l o g yi ne l e c t r i cp o w e rs y s t e m t h eu s a g eo fe n e r g ym a n a g e m e n ts y s t e m ( e m s ) i s b e c o m i n gm o r ea n dm o r ep o p u l a r b e c a u s eo ft h ec o m p l e x i t yo fe l e c t r i cp o w e rs y s t e m , e m s n e e dt op r o c e s sl o t so fd a t aa n di n f o r m a t i o n i ti so b v i o u st h a th o wt od i s p o s et h ed a t ah a s t u r n e di n t ot h ek e yo fe m s w i t h o u tq u e s t i o n , t h eh i g h p o w e r e dr e a lt i m ed a t a b a s e ( r t d b ) s y s t e mi sn e c e s s a r y a tt h ep r e s e n tt i m e ,o n c ep u tf o r w a r d , i e c6 1 9 7 0s t a n d a r di sp a i dm u c ha t t e n t i o no ft h e e l e c t r i c i t yu t i l i t ya n dp o w e rn e t w o r kd i s p a t c h m ga u t o m a t i o ns y s t e mp r o v i d e r a st h eb a s i so fi e c 6 1 9 7 0 , c i mi sao b j e c t - o r i e n t e dd a t am o d e l t h et r a d i t i o n a lr e l a t i o n a ld a t a b a s ei st o os i m p l et od e n o t e c o m p l i c a t e dd a t a , h o w e v e r , o b j e c t - o r i e n t e dd a t a b a s e ( o o d 8 ) i st h es a n l ew i t ha n yo b j e c t - o r i e n t e dd a t a m o d e l ( s u c ha sc i m ) v v h c nc o m p a r e dw i t ht r a d i t i o n a lr e l a t i o n a ld a t a b a s e ,o o d bc a np r e s e n tt h e o b j e c t so fe l e c t r i cp o w e rs y s t e m f i r s t l y , t h i sp a p e ri n t r o d u c e dk i n d so fd a t am o d e la n di n d i c a t e dt h em e r i ta n d s h o r t c o m i n go fs t o r i n go b j e c t - o r i e n t e dd a t am o d e lb yr e l a t i o n a ld a t a b a s e s e c o n d l y , s u m m a r i z i n gt h ei m p l e m e n t a t i o no fr t d bo nt h eb a s eo ft h er e s e a r c ho ff o r m e r t h i r d l y , t e s t i n gd i f f e r e n tt e c h n i q u eo fr e a d i n ga n dw r i t i n go b j e c t a n di m p l e m e n t e dr o a d w r i t eo f o b j e c tb ym e a n so fl a n g u a g e o r i e n t e do b j e c ts t o r i n gm a n n e r f o r t h l y , o v e r c o m i n gt h e w e a k n e s so fr e l a t i o n a ld a t a b a s ec a no n l ym a n a g e rt h ed a t ao fo b j e c t s a n dp r o v i d i n gm e t h o d f o ro b j e c t s f i n a l l y , p r o v i d i n gv i r t u a lm e t h o df o ro b j e c t s 。a n de n s u r et h ep o l y m o r p ho fo b j e c t w h i c hc o n d u c e dt h a tt h ep o l y m o r p ho f o b j e c tn e v e rd c p c n do nt h es c h e m ao f d a t a b a s e w i t ht h ef o u n d a t i o no fo d m g p e n m a np r o v i d eas t a n d a r di n t e r f a c eo fo o d b t h e n i m p l e m e n tt h e g d a i n t e r f a c eo f c i s c u r r e n t l y , t h es t u d yo fo b j e c t - o r i e n t e dr o a l t i m ed a t a b a s e ,b o t l ii n l a n da n do v e r s e a s 。i s s t a r t i n gu p a n dt h es t u d yo ft h e o r ya n di m p l e m e n t a t i o ni sd e v e l o p e d , s ot h i sp r o b l e mi s s i g n i f i c a t i v e k e y w o r d :e m s r t d b o o d b ,c i m i e c6 1 9 7 0 ,l a n g u a g e - o r i e n t e do b j e c ts t o r i n g , o d m g c i s 国电自动化研究院硕士学位论文 第一章绪论 电力工业是国民经济的重要基础,是国家经济发展战略中的重点和先行产业。电网 是电力系统重要的组成部分,它承担着输送电能,分配电能的作用。随着社会进步和人 民生活水平不断提高,人们对于电能的可靠性、安全性和经济性提出越来越高的要求。 为了适应这一要求,需要提高电网调度的自动化水平,因此提供电网调度、控制和管理 功能的调度自动化系统被普遍运用。 随着电力系统的发展和自动化水平的提高,传统的电网调度自动化系统暴露出以下 问题:当用户系统平台建立以后,后期的应用软件往往无法采用更好的第三方软件;系 统升级换代以后,由于运行平台的不兼容性。用户长期积累的数据资料如负荷信息等无 法保留;由于缺乏一个标准电网设备模型,使得不同应用软件之间进行数据交换的难度 加大。 近年来,随着计算机技术,网络和通信技术、数据库技术等的飞速发展和电力市场 的要求,基于i n t e r n e t 技术,面向对象技术,数据库技术。j a v a 技术的第四代电网 自动化系统的基础条件已经成熟。第四代电网调度自动化系统的重要标志就是采用国际 标准i e c6 1 9 7 0 。本论文工作就是围绕i e c 6 1 9 7 0 标准展开的。 1 1 课题背景 1 1 1e m s 系统发展历程 能量管理系统( e m s ) 是一套为电力系统控制中心提供数据采集、监视、控制和优 化的计算机软硬件系统的总称,它包括为上层电力应用提供服务的支撑软件平台和为发 电和输电设备安全、经济地运行提供支持的电力应用软件,其目的是用最小成本保证电 网的供电安全性。对于分级管理的电网来说,它主要针对电力系统中的发电、输电和变 电3 个部分。其主要功能是数据采集与监控( s c a d a ) 、能量管理( 发电控制及发电计 划) 、网络分析和培训模拟。e m s 中的数据库系统采用的是成熟的商用关系型数据库和 高实时性的实时数据库相结合的模式。数据库根据所支持的四类应用又分为s c a d a 数 据库、能量管理数据库,网络数据库和培训模拟数据库。 到目前为止,e m s 的发展已经历经三代,第一代系统是7 0 年代基于专用机和专用 操作系统的s c a d a 系统,第二代系统为8 0 年代基于通用计算机和集中式的 l 国电自动化研究院硕士学位论文 s c a d a e m s 系统,部分e m s 应用软件开始进入实用化,第三代系统为9 0 年代基于 r i s c u n i x 的开放分布式e m s 系统( 含s c a d a 应用) ,采用的是商用关系型数据库和 先进的图形显示技术,e m s 应用软件更加丰富和完善。 1 1 2i e c 6 1 9 7 0 标准 标准化是电网调度自动化系统水平的重要标志。可以这样认为,标准化始终贯穿电 网调度自动换系统的发展历程,如采用p o s i x ,t c p i p 和m o t i f 等标准,传统调度自 动化系统在操作系统、网络和图形方面有了质的飞跃。但是在支撑平台和应用软件方面, 由于缺乏国际标准,系统异构和互联非常困难,使应用软件的“即插即用”无法真正实 现。刀巳c 6 1 9 7 0 标准就是在上述背景下提出并逐步应用的。 i e c 6 1 9 7 0 系列标准主要包括公共信息模型( c n 订) 和组件接口规范( c i s ) 两方面 内容。其目的和意义在于:便于来自不同厂家e m s 系统内部的各种应用进行集成;便 于e m s 系统与调度中心内部其它系统进行互联;以及便于不同调度中心e m s 系统之间 进行模型交换。因此,尽快将这些国际标准转化为我国标准并贯彻执行,实现异构环境 下软件产品的即插即用,使e m s 系统与其它系统能互联互通互操作,对提高我国电网 调度自动化水平意义重大。 c i m 作为i e c 6 1 9 7 0 的基础,是一个面向对象的数据模型,描述了电力企业的所有 主要对象,特别是那些与电力运行有关的对象。通过提供一种用对象类和属性及他们之 间的关系来表示电力系统资源的标准方法,c i m 方便了实现不同卖方独立开发的能量管 理系统( e m s ) 应用的集成,多个独立开发的完整e m s 系统之间的集成,以及e m s 系 统和其他涉及电力系统运行的不同方面的系统,例如发电或配电管理系统之问的集成。 这是通过定义一种基于c i m 的公共语占( 即语法和语义) ,使得这些应用或系统能够不依 赖于信息的内部表示而访问公共数据和交换信息来实现的。 c i m 中描述的对象类本质上是抽象的,可以用于各种应用。c i m 的使用远远超出了 它在e m s 中应用的范围。应当把本标准理解为一种能够在任何一个领域实行集成的工 具,只要该领域需要一种公共电力系统模型来帮助在几种应用和系统之白j 实现互操作和 插入兼容性,而与任何具体实现无关。 c i m 定义了电力系统中的对象模型,为不同应用和系统之问的集成和信息交换提供 了语义上的支持。c i m 实现了电网模型的标准化,但是应用程序之间的集成是通过接口 进行的,要实现严格意义上的“即插即用”,还需要对接口的语法形式进行进一步标准 2 国电自动化研究院硕士学位论文 化,这一部分工作就是在i e c - 6 1 9 7 0 标准中来c i s 来完成的。 c i s 通过定义一些接口,使得组件应用能够以一种标准化的方式和其他的组件相交 互。作为独立厂商开发的面向某一e m s 应用的组件产品,只要遵循这样的接口规范, 就可以方便地插入系统中,从而实现“即插即用”的目标。 c i s 主要包含两个级别:级别l 仅对接口做一般性描述,主要内容包括非实时的数 据访问用o m g 的d a f ,实时数据用d a i s 进行快速数据访问;级别2 将c i s 映射到 c o r b a 和x m l 等具体的计算机技术。 计算机技术的迅猛发展为i e c 6 1 9 7 0 标准提供了技术保证。1 e c 6 1 9 7 0 集成了大量的 新技术,确保其技术的先进性。它采用面向对象技术和统一建模语言( u n i f i e d m o d e l i n g l a n g u a g e ,简称u m l ) 技术来描述电网模型。面向对象的技术按能够按照客观事物的 本来面目描述事物,是分析、设计和建模最好的技术,u m l 是一种可视化的建模语言, 使建模直观方便,基于u m l 的流行的建模工具有r a t i o n a lr o s e 等。具体地说,c i m 规 范将c i m 定义成一组包,每一个包包含一个或多个类图,用图形方式展示该包中的所 有类及它们的关系。然后根据类的属性及与其它类的关系,用文字形式定义各个类。 i e c 6 1 9 7 0 采用x m l 作为其数据信息载体,x m l 是一种标准化的标记语言,是一种跨 平台的语言,通过x m l 与资源描述框架( r e s o u r c ed e s c r i p t i o nf r a m e w o r k ,简称r d f ) 相结合,能很好地描述符合c i m 的电网模型。 1 2 面向对象数据库 数据模型是现实世界的对象和施加在其上的制约,以及这些对象之间的关系的一种 逻辑组织。刻画面向对象( o o ) 概念的数据模型称为o o 数据模型。o o d b 是其行为,状 态以及关系都是根据o o 数据模型定义的对象汇集。因为o o 概念已经包含了传统数据 库语言中的一些数据模型概念:还包含对象和组成它的若干对象之间的聚集关系( 嵌套 对象) ,以及对象类和从它特化的对象类之阳j 的概括关系等。o o 数据模型包含聚集和概 括关系的事实意味着o o d b 系统提供了定义和操作对象之间关系的用户界面,这也意 味着应用程序设计者不必显式地编程和管理这些关系。 目前主流的数据库管理系统( d b m s ) 基本上是关系数据库,虽然关系数据库也可 以用来存储面向对象的数据模型,但这要涉及到复杂的表结构以及外键,将会严重影响 数据库的速度,这种影响对实时性要求很高的电力系统来说是不可小觑的。而且,以关 系表的形式来表现面向对象的数据模型,对用户的理解也会产生不小的影响。 3 国电自动化研究院硕士学位论文 因此,这些需求就导致了面向对象数据库的诞生。以面向对象数据模型为基础所建 立起来的数据库管理系统统称为面向对象数据库管理系统( o b j e c to r i e n t e dd a t a b a s e m a n a g e m e n ts y s t e m 简称o o d b m s ) 。o o d b m s 具有面向对象的概念与方法外还具有 传统数据库管理系统的所有功能。 传统数据库系统在商业及事务处理中有着良好的应用,但在新兴应用领域中缺乏生 命力。而面向对象数据库具有优良的特色因而在多种领域中显示出优越性,面向对象数据 库的优点主要表现在: 能表示复杂的继承与组合语义。 将静态数据结构与动态的方法封装以构成完整的数据实体。 具有构造多种操作的能力。 具有能构造复杂结构模型的能力。 具有能对模式作扩充与修改的能力。 具有能构造多种数据结构、抽象数据类型的能力。 上述这些能力都是传统数据库所缺乏的,正因为如此,面向对象数据库除了在传统 应用领域能发挥作用外,它更能在新兴应用领域发挥作用。 c v i 就是个面向对象的数据模型,本文的目标之一就是研究如何用面向对象的数 据库来存储该数据模型。 1 3 实时数据库 1 3 1 实时数据库的发展 随着电力工业的飞速发展和计算机技术在电力系统中应用的普及,能量管理系统 ( e m s ) 己在电力系统中得到越来越广泛的应用。由于电力系统的复杂性,e m s 需要 对大量数据和信息进行综合处理,如何高效、高质量地处理这些数据信息,成为e m s 系统的关键,毫无疑问,这需要高性能的数据库系统作为支持。 在电网监控系统丌发的早期由于系统较小,数据信息量较少,且计算机网络技术不 发达,一股采用单机或前置机后台机的方式,数据信息的更改一般会引起程序的更 改,非常不方便。后柬,随着e m s 系统的日趋庞大和功能的不断完善,加上计算机网 络技术和分布式结构的应用,使得处理海量数据成为可能,但这是以往常舰方式难以完 成的,必须以数据库管理系统作为支持。在电网监控系统中,实时数据记录了各节点的 4 国电自动化研究院硕士学位论文 实时信息,对实时数据进行管理的最好方法是使用数据库管理系统。如果使用通用的基 于磁盘的关系数据库系统管理实时数据,不仅效率低,而且数据格式和保存方式也不能 完全满足需求。因此,使用一个符合电力系统应用需求的实时数据库系统是十分必要的。 目前国外一些大公司已经针对各种应用进行了实时数据库的开发。这方面比较成功 的有o s i 公司的p i 和a b b 公司的o p t m a xp l a n t c o n n e c t 。国内也有一些公司使用这些 产品,效果不错。 国内的一些厂商也有成型的实时数据库产品,如南瑞科技的r d 8 0 0 、o p e n 2 0 0 0 、 o p e n 2 0 0 0 e 等产品,均采用自主研发的实时数据库产品。这些产品已经在省级、地级等 众多调度自动化项目中得到广泛应用,在性能和应用广泛性上已经和国外的产品相差无 几。目前,这些实时数据库产品均采用关系数据库的存储模式,在描述面向对象的数据 模型上会有一定的麻烦。 目前国内许多高校和研究机构在进行实时数据库系统的研究和设计,在理论和实验 室模型上都已经取得了可喜的进展,但是能够投入实践使用的产品还不多。 1 3 2 实时数据库的特征 实时数据库系统的正确性不仅依赖于事务的逻辑结果,而且依赖于该逻辑结果产生 的时间。和传统数据库系统相比,实时数据库有以下特征: i ) 在实时系统中,通常是根据固定的时间周期来收集被控系统的实时数据;相应 地,控制系统必须周期性地处理数据和作出响应。这就是执行的周期性。 2 ) 输入数据的合法性具有时间特征,输入数据随着时间变化。在一个时间周期内 输入数据代表了被控系统当前的状态,即数据与时间具有同步性。 3 ) 任何系统都不可能对被控系统实施时间绝对意义上的同步控制。事实上。从感 知被控系统的变化到对其进行分析、处理、作出响应总需要时间,即从数据的 接收到反馈有一个时间延迟,但这个延迟必须在被控系统限定的范围之内。 4 ) 控制系统必须在接收到数据后一个限定的时间内作出响应。超过时阃作出的响 应,不是对现场状态的响应,也就达不到实时控制的目的。甚至发生严重后果。 1 3 3 实时数据库的数据模型 迄今为止,实时数据库研究人员所用到的建立数据模型的方法大致可分为两种:一 是扩充传统层次、关系型数据库的数据模型结构,使用大容量的内存替换外存,提高性 5 国电自动化研究院硕士学位论文 能,以适应实时性要求。二是建立面向对象的数据模型。本文则主要探讨第二种方式。 层次,关系型数据模型已成功地应用到许多场合( 特别是在电力系统中大量使用了 层次型数据库) ,但它很难适用于需要复杂数据类型、复杂的数据间关系及时间限制的 应用场合。面向对象的数据模型因其具有数据的抽象性、继承性及多态性,使得它支持 实时应用时比关系型数据模型表现出一系列优点。 遵循i e c 6 1 9 7 0 标准,要求电网调度自动化系统的支撑平台和应用软件根据公用信 息模型( c 江一一c o m m o ni n f o r m a t i o nm o d e l ) 和组件接口规范( c i s 一一c o m p o n c n t i n t e r f a c es p e c i f i c a t i o n ) 进行改造。实时数据库管理是支撑平台乃至整个系统的核心内容, 系统的体系结构、数据组织、集成方案以及实时性、开放性、安全性和分布性等性能指 标很大程度上取决于实时数据库管理系统。因此,新一代电网调度自动化系统应首先从 实时数据库管理系统开始实施i e c6 1 9 7 0 标准系列。按照i e c6 1 9 7 0 标准系列,实时数 据库管理系统应支持面向对象的数据模型,以使数据模式符合按面向对象组织的c i m 。 1 4 本文工作 本文选取面向对象数据库和实时数据库的结合点作为研究的主要方向,既能满足 c i m 面向对象数据模型的特点,又兼顾了电力系统调度自动化系统对实时性的要求,有 较强的理论和实践意义。 本文首先阐述了作为数据库基础的数据模型,其中主要叙述了面向对象的数据模 型;接下来总结了如何在关系数据库的基础上表示面向对象的数据模型,这也是目l ;i 比 较现实的做法;然后讨论了实时数据库结构和具体实现方法:接着着重阐述了如何将实 时数据库和面向对象的数据模型结合起来其中包括了对象的存储结构以及s c h e m a 的 建立;最后描述了面向对象实时数据库的应用情况,并在其基础上实现了一些标准的 c i s 接口。 本文的主要工作是: i ) 通过参考现有的一些实时数据库系统,进行一些相关的研究,卡刀步实现一个面 向对象的实时数据库系统,存储互操作试验中使用的西门子1 0 0 节点模型中所 描述的c n 订对象。 2 ) 实时数据库的内存管理。 3 ) 应用开发者可以使用该系统的接口读取这些对象,并在该系统的基础上提供 i e c 6 1 9 7 0 中的g d a 接口。 6 国电自动化研究院硕士学位论文 4 ) 研究不同的对象存储结构,并比较其优缺点。 5 ) 本系统使用c + + 语言来实现,在该语言的基础上研究如何在面向对象数据库中 实现对象的多态性。 7 国电自动化研究院硕士学位论文 第二章数据模型 数据库方法的一个特征是:它通过隐藏大多数数据库用户并不要求的数据存储细 节,从而提供某些层次的数据抽象。数据模型( d a t am o d e l ) 是一个可用于描述数据库 结构的概念集合,它提供了为获得数据抽象所必需的工具。数据库结构通常理解为包括 数据类型、数据间的联系和旌加在数据上的一些约束。大多数数据模型还包括一个对数 据库进行检索和更新的基本操作的集合。 目前已经出现了多种数据模型,我们可以按照用于描述数据库结构的概念类型对它 们进行分类。高层或概念数据模型提供的概念更接近于大多数用户实际感知数据的方 式。而低层或物理数据模型提供的概念描述的是数据在计算机中实际存储的方式。由低 层数据模型提供的概念一般是面向计算机专家提出的,而不是为一般的最终用户提出 的。在这两层之间的是可表示的或实际的数据模型,它们提供的概念能够被最终用户所 理解,同时也不会与数据在计算机中实际的组织形式相差太远。表示型数据模型隐藏了 一些数据存储的细节,但可以在计算机系统中直接实现。 概念数据模型使用诸如实体、属性、联系这样的概念。实体( e n t i t y ) 表示在数据库 中描述的现实世界中的对象或概念,如一名雇员或一个项目。属性( a t t r i b u t e ) 表示进 一步描述实体的某方面的特性,如雇员的姓名或薪金。两个或多个实体之间的联系 ( r e l a t i o n s h i p ) 表示的是这些实体之间的相互影响,例如一名雇员和一个项目之间是一 种从事的联系。在2 1 节将阐述概念模型的代表一一e r 模型。 表示型或实现型的数据模型是传统的商业化d b m s 中最常用的数据模型,它们既 包括广泛关系数据模型,也包括网状数据模型和层次数据模型。在2 2 节将主要阐述关 系模型。 可以把对象数据模型看作是一个更高层次上的实现型数据模型的新成员,它们更接 近于概念数据模型。本章将重点说明这种数据模型。 2 1 e - r 模型 实体一关系( e - r ) 数据模型基于对现实世界的这样一种认识:现实世界由一组称 为实体的基本对象以及这些对象间的联系构成。实体是现实世界中可区别于其它对象的 一个“事件”或一个“物体”。例如。每个人是一个实体,每个银行帐户也是一个实体。 8 国电自动化研究院硕士学位论文 数据库中实体通过属性集合来描述。例如,n u m b e r 与b a l a n c e 属性描述了银行的某 个特定帐户,并且它们也组成了a c c o u n t 实体集的属性。 联系是实体问的相互关系。例如,d e p o s i t o r 联系将一个客户和她的每个帐户联系在 一起。同一类型的所有实体的集合称为实体集,同一类型的所有联系的集合称为联系集。 下面看一个银行系统数据库中由客户及其帐户组成的部分,对应的e r 图如下: 2 2 关系模型 图2 - 1 银行系统数据库的e - r 图 关系模型用表的集合来表示数据和数据间的联系。每个表有多个列,每列有唯一的 列名。关系模型是记录模型的一种。基于记录模型的名称的由来是由于它使用一些固定 格式的记录来描述数据库结构。每张表包含某种特定类型的记录,每个记录类型定义了 固定数目的字段或属性,表格的列对应于记录类型的属性。 关系模型比f , - r 模型的抽象层次更低。数据库设计通常基于e - r 模型来进行,然后 再转化成关系模型,但这种转化常常会出现不必要的信息复制等问题。关系模型是使用 最广泛的数据模型,当今大多数的数据库系统都是基于这种关系模型的。 2 3 面向对象的数据模型 将数据库系统应用到更广阔的领域中,比如计算机辅助设计,关系模型的局限性就 暴露出来了。因此数据库研究者提出了一些新的克服关系模型限制的数据模型。其中最 为重要的就是面向对象模型,它的基础是面向对象程序设计范型。这里先阐述几个主要 概念:对象标识、对象结构和类的概念、继承等。 面向对象的数据库经过十几年的发展,已经日趋成熟,有关的国际标准相继出台。 0 d m g ( 0 m g 所属的对象数据库管理组) 分别于1 9 9 3 ,1 9 9 7 ,2 0 0 0 年提出了对象数据库标 9 国电自动化研究院硕士学位论文 准o d m g1 0 、o d m g2 0 ,o d m g3 0 ,制定o d m g 标准的目的是为了让0 0 d b m s 的用户编写 的可移植的应用,能运行在多个o o d b m s 的产品上。本课题的接口实现部分就是参照0 d m g 标准来实现。 o d m g 对象模型主要包括以下基本概念: n 数据建模的基本原语是对象( o b j e c t ) 和文字( l i t e r a l ) ,每个对象有一个唯一 的标识符,文字没有标识符。 2 ) 对象和文字都可以划分为类型( t y p e ) 。同一类型的对象或文字具有相同的行为 和状态,对象可以称为类型的实例。 3 ) 通过一组性质( p r o p e r t y ) 来定义对象的状态,性质可以分为两种:对象的属性 ( a t t r i b u t e ) 和对象之间的关系( r e l a t i o n s h i p ) 。 4 ) 通过一组操作( o p e r a t i o n ) 来定义对象的行为,操作都具有输入和输出参数, 并且可以返回特定类型的结果。 5 ) 利用o d l 定义o d b m s 的模式,它存储的对象都是模式中定义的类型的实例, 即对象。 一个o o 模型是用面向对象观点来描述现实世界实体( 对象) 的逻辑组织、对象间 限制、联系等的模型。一系列面向对象核心概念构成了o o 模型的基础。概括起来。o o 模型的核心概念有如下一些。 1 对象( o b j e c t ) 与对象标识o i d ( o b j e c t i d e n t i f i e r ) 现实世界的任一实体都被统一地模型化为一个对象。每个对象有一个唯一的标识, 称为对象标识( o d ) 。 o i d 与关系数据库中k e y 的概念和某些关系系统中支持的记录标识( r i d ) 、原组 标识( t i d ) 是有本质区别的。o i d 是独立于值的、系统全局唯一的。 2 封装( e n c a p s u l a t i o n ) 每一个对象是其状态与行为的封装,其中状态是该对象一系列属性值的集合丽行 为是在对象状态上操作的集合,操作也称为方法( m e t h o d ) 。 3 类( c l a s s ) 共享同样属性和方法集的所有对象构成了一个对象类,一个对象是某一类的一个实 例( i n s t a n c e ) 。例如,s u b s t a t i o n 是一个类,s t l 、s t 2 等是s u b s m t i o n 类中的对象。在数 据库系统中,必须区分“型”和“值”的概念。在o o d b 中,类是“型”,对象是某一 类的一个“值”。类属性的定义域可以是任何类,即可以是基本类,如i n t 、c h a r * 、b o o l , 也可以是包含属性和方法的一般类,甚至一个类的菜一属性的定义也可以是这个类自 1 0 国电自动化研究院顾士学位论文 身。 4 类层次 在一个面向对象数据库模式中,可以定义一个类( 如e q u i p m e n t c o n t a i n e r ) 的子类 ( 如s u b s t a i o n ) ,类e q u i p m e n t c o n t a i n e r 称为类s u b s t a i o n 的超类。子类还可以再定义子 类。这样,面向对象数据库模式的一组类形成一个有限的层次结构。 5 消息 由于对象是封装的,对象与外部的通信般只能通过显式的消息传递。即消息从外 部传送给对象,存取和调用对象中的属性和方法,在内部执行所要求的操作,操作的结 果仍以消息的形式返回。 2 3 1 对象与对象标识 2 3 1 1对象结构 对象是由一组数据结构和在这组数据结构上的操作的程序代码封装起来的基本单 位。对象之间的界面由一组消息定义。一个对象包括以下几个部分: 属性集合:所有属性合起来构成了对象数据的数据结构。属性描述对象的状态、 组成合特性。对象的某一属性可以是单值的或值的集合,进一步地,一个对象 的属性也可以是一个对象,即对象可以嵌套,从而组成各种复杂对象。 方法集合:方法描述了对象的行为特征。方法的定义包括两部分,一是方法的 接口,二是方法的实现。方法的接口用以说明方法的名称、参数和结果返回值 的类型,也称之为调用说明。方法的实现是一段程序代码,用以实现方法的功 能。 消息集合:消息是对象向外提供的界面,消息由对象接收和响应。面向对象数 据模型中的“消息”与计算机网络中传输的消息含义不同。它是指对象之间操 作请求的传递,而不考虑操作实现细节。 2 3 1 2对象标识 面向对象数据库中的每个对象都有一个唯一的不变的标识称为对象标识( o l d ) 。对 象通常与实际领域的实体对应。现实世界中,实体的属性值可能随着时间的推移会发生 改变,但是每个实体的标识始终保持不变。相应的,对象的部分( 或全部) 属性、对象 国电自动化研究院硕士学位论文 的方法会随着时间的推移发生变化,但对象标识不会改变。两个对象即使属性值和方法 都完全相同,如果o i d 不同则认为是两个不同的对象,它们只是值相等而已。对象标识 的概念比程序设计语言或传统数据模型中所用到的标识概念更强。下面是常用的几种标 识。 1 值标识。用值来表示标识。例如,关系数据库中使用的就是值标识,在关系数 据库中,一个关系的元组就是用它们的码值来区分的,例如学号为8 2 0 2 1 1 0 标 识了信息系8 2 级学生张三。 2 名标识。用一个名字来表示标识。例如,程序变量使用的就是名标识,程序中 的每一个变量被赋予一个名字,变量名唯一地标识了每个变量。 3 内标识。以上两种标识是由用户建立的,内标识是建立在数据模型或程序设计 语言中,不要求用户给出标识。例如,面向对象数据库系统使用的就是内标识。 不同的标识其持久性程度是不同的,若标识只能在程序或查询的执行期间保持不 变,则称该标识具有程序内持久性。例如,程序设计语言中的变量名和s q l 语句中的 元组标识符,就是具有程序内持久性的标识。若标识在从一个程序执行到另一个程序的 执行期间能保持不变,则称该标识具有程序间持久性。例如,在s q l 语言中的关系名 是具有程序间持久性的标识。若标识不仅在程序执行过程中而是在对数据的重组重构过 程中一直保持不变,则称该标识具有永久持久性。例如,面向对象数据库系统中对象标 识具有永久持久性,而s q l 语言中的关系名不具有永久持久性,因为数据的重构可能 修改关系名。 对象标识具有永久持久性的含义是,一个对象一经产生系统就给它赋于一个在全系 统中唯一的对象标识符,直到它被删除。对象标识是由系统统一分配的,用户不能对对 象标识符进行修改。对象标识是稳定的,它不会因为对象中某个值的修改而改变。 面向对象的数据库系统在逻辑上和物理上从面向记录上升为面向对象、面向可具有 复杂结构的一个逻辑整体。它允许用自然的方法,并结合数据抽象机制在结构和行为上 对复杂对象建立模型,从而大幅度提高管理效率,降低用户使用复杂性,并为版本管理、 动态模式修改等功能的实现创造了条件。 2 3 1 3封装 o o 模型的一个关键概念就是封装。每一个对象是其状态与行为的封装。 封装是对象的外部界面与内部实现之侧实行清晰隔离的一种抽象,外部与对象的通 国电自动化研究院硕士学位论文 信只能通过消息,这是o o 模型的主要特征之一。 封装的意义在于将对象的实现与对象的应用互相隔离,从而允许对操作的实现算法 和数据结构进行修改,而不影响接口,不必修改使用它们的应用,这有利于提高数据独 立性。由于封装,对用户而言这些实现是不可见的,这就隐藏了在实现中使用的数据结 构与程序代码等细节。此外对象封装后成为一个自含的单元,对象只接受定义好的操作, 其它程序不能直接访问对象中的属性,从而可以提高程序的可靠性。 但是,对象封装之后查询属性值必须通过调用方法,不能象关系数据库系统那样( 用 s q l ) 进行即席的、按内容的查询,这就不够方便灵活,失去了关系数据库的重要优点, 因此在o o d b 中必须在对象封装方面做出必要的修改和妥协。 2 3 2 类和类层次 在o o 数据库中相似对象的集合称为类。每个对象称为它所在类的一个实例。一个 类中所有对象共享一个定义,它们的区别仅在于属性取值不同。 可以看到,类的概念类似关系模式,类的属性类似关系模式中的属性;对象类似元 组的概念,类的一个实例对象类似关系中的一个元组。 可以把类本身也看作一个对象称为类对象( c l a s so b j e c t ) 。 面向对象数据库模式是类的集合。在一个面向对象的数据库模式中,会出现多个相 似但又有所不同的类。例如,一个有关学校应用的面向对象数据库,其中有教职员工和 学生两个类。这两个类都有身份证号、姓名、年龄、性别、住址等属性,也有一些相同 的方法和消息。当然,教职员工对象中有一些特殊的属性、方法和消息,如工龄、工资, 办公室电话号码、家庭成员数。用户希望统一定义教职员工和学生额公共属性、方法和 消息部分,分别定义各自的特殊属性、方法和消息部分。为此,面向对象的数据模型提 供了一种类层次结构。类层次结构可以实现上述要求。 2 3 3 多态性 在0 0 模型中,当子类定义的方法与继承下来的超类的方法发生同名冲突,即子类 只继承了超类中操作的名称而自己实现操作的算法,有自己的数据结构和程序代码。这 样,同一个操作名就与不同的实现方法,与不同的参数相联系。程序员在使用时,只需 要知道对象的超类即可,而实际上调用的是对象实际类型的实现代码。 国电自动化研究院硕士学位论文 2 3 a 面向对象数据库的模式演进 面向对象数据库模式是类的集合。模式为适应需求的变化而随时间变化称为模式演 进。模式演进包括创建新的类、删除旧的类、修改类的属性和操作等。在关系数据库系 统中,模式的修改比较简单,主要有如下的模式修改操作: 创建或删除一个关系 在关系模式中增加或删除一个属性 在关系模式中修改完整性约束条件 o o d b 应用环境对o o d b 模式演进提出了许多新的要求,使得面向对象数据库模 式的修改要比关系模式的修改复杂得多,其主要原因是: 1 ) 模式改变频繁 使用o o d b 系统的应用通常需要频繁地改变o o d b 数据库模式。例如o o d b 经常 运用于工程设计环境中,设计环境特征之一就是不断变化。设计自身在不断变化,以纠 正错误或修改设计使之更完美、更适合于实际;而当设计者对问题及其解决有更深刻理 解时也会修改模式。 2 ) 模式修改复杂 从上面讲解的o o 模型特征可以看到o o 模型具有很强的建模能力和丰富的语义, 包括类本身的语义、类属性之间和类之间丰富的语义联系这使得模式修改操作的类型 复杂多样。此外,o o d b 中模式演进往往是动态的,动态模式演进的实现技术更加复杂。 2 3 4 1模式的一致性 模式的演进必须要保持模式的一致性。模式的一致性是指模式自身内部不能出现矛 盾和错误,它由模式一致性约束来刻画。模式一致性约束可分为唯一性约束、存在性约 束和子类型约束等,满足所有这些一致性约束的模式则称为是一致的。 i ) 唯一性约束 这一类约束条件要求名字的唯一性,例如: 在同一模式中所有类的名字必须是唯一的。 类中属性名和方法名必须唯一包括从超类中继承的属性和方法。 模式的不同种类的成分可以同名,例如属性的名字和方法可以同名。 2 ) 存在性约束 存在性约束是指显式引用的某些成分必须存在,例如: 窗电自动化研究院硕士学位论文 每一个被引用的类必须在模式中定义。这种引用可以出现在属性说明、变量说 明、变量定义等之中。 某操作代码中调用的操作必须给出说明。 对每一说明的操作必须存在一个实现程序。 子类型约束 子类,超类联系不能有环。 不能有从多继承带来的任何冲突。 如果只支持单继承,则子类的单一超类必须加以标明。 2 3 4 2 模式演进操作 下面给出一些主要的模式演进操作,0 0 d b m s 应该支持这些模式演进。 1 ) 类集的改变 增加一个新的类 删除一个已有类 改变一个已有类名字 2 ) 已有类的成分的改变 增加新的属性或新的操作方法 删除已有的属性或操作 改变已有属性的名字或类型 改变一个操作的名称或实现 3 ) 子类,超类联系的改变 增加一个新的超类 删除一个已有超类 2 3 4 3模式演进的实现 模式演进主要的困难是模式演进操作可能影响模式一致性。面向对象数据库中类集 的改变比关系数据库中关系模式的改变要复杂得多。例如:增加一新的类可能违背类名 唯一的约束。为了保持一致性可能要做大量的一致性验证工作和修改工作;新增加的类 必须放到相关类层次图中,如果新增加的类不是类层次图中的叶节点,那么新增加类的 所有后裔子类需要继承新类的属性和方法,因此要检查是否存在继承冲突问题。 国电自动化研究院硕士学位论文 又如删除一个类,在面向对象数据库中删除一个类要执行多个操作。被删除类的所 有子类继承的属性和方法必须被重新检查,撤销从被删除类继承的属性和方法。被删除 类的实例或者改为其它类的实例,如改为被删除类的超类的实例,或者与类一起被删除。 与上面的情况类似,类的修改操作可能会影响到其它类的定义。例如,改变了一个 类的属性名,这需要所有使用该属性的地方都要改名。 因此。在o o d b 模式演进的实现中必须具有模式一致性验证功能,这部分的功能 类似编译器的语义分析。 进一步,任何面向对象数据库模式修改操作不仅要改变有关类的定义,而且要修改 相关类的所有对象,使之与修改后的类定义一致。例如,要在一个类中增加一个属性, 简单地保持一致性的方法是首先删除该类的所有实例,然后修改类结构。这对于已花费 了大量人力物力保存起来的有价值的信息来说,这种做法显然不可取。一般采用转换的 机制来实现模式演进。 所谓转换的方法是指在o o d b 中。已有的对象将根据新的模式结构进行转换以适 应新的模式。例如,在某类中增加一属性时,所有的实例都将增加该属性。这时还要处 理新属性的初值,例如给定一缺省初值,或提供一算法来自动计算新属性初值,还可以 让用户设定初值。删除某类中一属性时只需要从该类的所有实例中删除相应属性值即 可。 根据转换发生的时间可有不同的转换方式: 立即转换方式。一旦模式变化立即执行所有变化 延迟转换方式。模式变化后不立即执行。延迟到低层数据库载入时,或者延迟 到该对象被存取时才执行变换。 前者的缺点在于系统为了执行转换将停顿一些时间;后者的缺点在于以后应用程序 存取一个对象时,要把它的结构与其所属类的定义比较,完成必须的修改,运行效率将 受影响。 实际系统中,g e m s t o n e 采用立即转换方式;o r i o n 则采用延迟转换方式,开始只执 行逻辑变换,使用该对象时才变换成新的定义。 此外,通过多模式版本方式完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 29601-2025不锈钢器皿
- 2024-2025 学年成都市小学五年级科学期中模拟试卷(附答案及思路)
- 2025年高中一年级语文上学期文言文阅读冲刺试卷
- 2025年口腔冲洗技术试题及答案
- 2025年口腔影像学试题及答案
- 2025年北京市公务员考试行测真题解析卷
- 2025年海南省公务员考试笔试全真模拟
- 个人简历模版(三页)带封面(可编辑)自然清新版
- 2025年建筑电工职业技能竞赛建筑弱电系统安装考核试卷及答案
- 2025工程设计工作总结(3篇)
- 《创意书籍》教学课件-2024-2025学年冀美版(2024)初中美术七年级上册
- 水利安全风险防控“六项机制”与安全生产培训
- 鼻出血的课件
- TCPQSXF006-2023消防水带产品维护更换及售后服务
- 架空索道工程技术标准
- 村级财务培训内容课件
- 电力企业应收账款风险管理与控制策略
- 中职高教版(2023)语文职业模块-第七单元语文综合实践-走进传统节日-探寻文化根脉【课件】
- GB/T 45025-2024珊瑚礁生态修复监测和效果评估技术指南
- 公共场所消毒管理制度模版(3篇)
- 七年级道德与法治期中复习-必刷主观题(36题)(解析版)
评论
0/150
提交评论