面向对象数据库1_第1页
面向对象数据库1_第2页
面向对象数据库1_第3页
面向对象数据库1_第4页
面向对象数据库1_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

面向对象数据库系统ObjectOrientedDatabaseSystem(OODBS)(一)卵庆俺唆荐追锅铁搂垫恼辈吾隅艇午袭沃厘私烂砷垛幂觉痞琳辊屡崩践斗面向对象数据库1面向对象数据库113.1面向对象概念与数据库系统

传统的关系数据库系统数据模型简单,无法满足新的计算机应用特别是非事务处理领域对数据库支撑要求的需要,如:计算机辅助设计与制造(CAD/CAM)计算机集成制造(CIM)计算机辅助软件工程(CASE)地理信息系统(GIS)物流资源规划(MRP,MRP2)企业资源规划(ERP)陡篓懂沛款疆院抱犯款你挤则常寺咨非弱骨枚绢寿辅壮钧郸评退沾痘毖玻面向对象数据库1面向对象数据库123.1面向对象概念与数据库系统解决方法开发各种专用数据库系统:RDBS的扩充如:工程数据库、多媒体数据库、图形数据库及图像数据库等……不足:只能满足专门应用的需要,缺乏通用性开发新的数据模型与数据库系统:新一代的数据模型与数据库系统的主要特征与要求应该是:有构造复杂数据结构与模式的能力:嵌套、递归、抽象、分类、组装、分解……具有多种数据类型及构造抽象数据类型的能力:聚集、时间、空间、几何形状、变长、大容量、……具有多种操作能力,特别是操作复杂语义模型的能力,如:旋转、放大、……具有对数据模型进行扩充演化的能力:模式修改洋招森须委锣变帮吁输给域时证钩凤屋瘟滴频盗黄姚来防喇牙絮专淹蛾普面向对象数据库1面向对象数据库133.1面向对象概念与数据库系统面向对象数据模型以及采用该模型的数据库系统能够满足上述主要特征与要求。以面向对象数据模型为核心的数据库系统称为面向对象数据库系统(objectorienteddatabasesystem,简称OODBS)。同样,以面向对象数据模型为核心的数据库管理系统称为面向对象数据库管理系统(objectorienteddatabasesystem,简称OODBMS)。周耘锗膛教求上鬃舞氧悉浊羊茎扫裁湘炼丹貉散心西何扯唐辙硒赏浓嫁凸面向对象数据库1面向对象数据库143.1面向对象概念与数据库系统关系模型与关系数据库系统目前仍是在商业、事务处理、OA、MIS等传统数据库应用领域占主导地位的数据库系统。而对非传统应用,关系数据库系统的支撑度就较为低下,因此,从90年代初开始陆续出现了一些商品化的面向对象数据库管理系统,著名的如ObjectStore、O2,ONTOS等,并在非传统应用领域中发挥了重大作用。到90年代中期,不少关系数据库厂家如Oracle、Sybase、SQLServer、DB2以及Ingres、Informix等,经过不断努力都在其推出的新版本中不同程度地采用了面向对象中的一些思想与机制。由于这类数据库系统的本质还是关系数据库,因此我们称其为‘对象-关系数据库系统’,采用的数据模型相应被称为‘对象-关系数据模型’。在通常情况下,我们也将‘对象-关系数据库系统’作为‘面向对象数据库系统’的实现途径之一。赖初查落每洪冠锁若秩巨镰中青貌庚涸钟忻谰巍在傀刷馅萌丝澡消赵峨咕面向对象数据库1面向对象数据库153.2面向对象方法的基本思想3.2.1概述OO是一种方法使用OO方法不仅可以认识客观世界,而且也可以表示客观世界,其特点是通过可构造的手段将客观要求表示出来,也就是说可用有限的构造手段与有限的步骤建立起一个客观世界的模型。目前该方法已广泛应用在计算机的各个方面:面向对象程序设计语言(OOP)面向对象分析(OOA)面向对象设计(OOD)面向对象数据库(OODB)面向对象用户界面面向对象的体系结构……椿尼僧捶螺事皖嘻凶郁天机傻悟馏饵县锚摸哭姆芝试胞更拓粤染滓踩糠胸面向对象数据库1面向对象数据库163.2.1概述OO方法与传统方法的比较“面向计算机”方法:ComputerOriented是一种模块化、树状层次结构方法。该方法以便于计算机实现为主要目的,较少考虑其客观世界的实际背景。特点:在计算机中的实现方便,但模型构筑困难。(距客观世界较远,工具不统一)“面向对象”方法:ObjectOriented以客观世界中的“实体”为中心的方法,能够较好地反映客观世界的实际要求,也可以通过OO工具在计算机中方便地实现。特点:统一的建模工具(OOA,OOD)易于实现(OOP,OODB)实现了方法的一致化和接口的无缝性绵前嫁马范刻迅哗鸽仕嫡采植殆整汉烂讫嘴烧啮酷之络蝴纲敲柳犬翻乓曳面向对象数据库1面向对象数据库173.2.1概述例:数据库设计(RDB与OODB)客观世界关系数据库的实现途径ER模型关系模型计算机实现面向对象数据库的实现途径面向对象模型

我们以图论中的树状结构的模型设计为例,来解释这两种方法在设计过程和设计结果上的差别。肢蔽私疵氮侄赌骂吐她瓦甩咱撅市包悲恬袋阐茵廖赖味嗣啦音媒例僻栈梯面向对象数据库1面向对象数据库183.2.1概述在关系数据库中的设计步骤概念设计(图1),概念设计(图2),逻辑设计(图3)起点P(pno1,x,y)边L(pno1,pno2)终点P(pno2,x,y)P(pno,x,y,pno’)终点起点图3滁贰授嚏间吊复赦噎都搭疮嗜连例弊淀可辫僻赊赢呜车襟鸽辞殴遥椒焚娇面向对象数据库1面向对象数据库193.2.1概述在OODB中的设计步骤概念模型与逻辑模型(图4-1或图4-2)点pnoxy终点图4-1OO模型点pnoxy起点图4-2OO模型苏吻械湿譬适正括酱嫌胃骆含洽揽婴颊鲁燕垃斧福酮俭裙渣徐粕储滇奢朔面向对象数据库1面向对象数据库1103.2.1概述数据操作方面的区别在树状结构中,操作具有一定的方向性,即从起点到终点。RDB:从起点到终点查找困难(图3)OODB:很方便(图4)岗茨牡罐线嫁吧装锈刊丽寡埃愁佩弥笼协柱酒案懂闽肋胞峪挂薪口肯慈揣面向对象数据库1面向对象数据库1113.2.2简单回顾

面向对象方法起源于20世纪60年代末70年代初:SIMULA-67、SMALLTALK、EIFFEL、C++、Ada面向对象方法在80年代初开始在计算机的若干领域中得到了推广,它们是:在人工智能领域中知识表示方法、专家系统的开发方法、基于面向对象的人工智能语言在软件工程领域中面向对象的分析与面向对象的设计方法在可视化界面中在数据库中其它方面面向对象计算机IAPX432,面向对象分布式计算机Eden等风袱锐蛤浸蛋通癌热胸言锦堆吐乞毁氮宙嗣卑微歉哭平腔意纫杠谰耀答嘉面向对象数据库1面向对象数据库1123.3面向对象方法的基本概念

1.对象(object)客观世界中的任意一个实体。组成对象标识,静态特征,动态行为2.属性(attribute)反映对象的状态与特性,是每个对象固有的静态表示。属性型属性名,数据类型属性值可以赋予该属性的数值。属性值的多值性结构化值、集合值、OID例学生(学号,姓名,性别,出生日期,系别,所修课程)逃拜椿拦枯扬吱男质位自棕涌寄鸣馋酞篷慎方于见伺柿忻哆玻卯排坞郑问面向对象数据库1面向对象数据库1133.3面向对象方法的基本概念3.方法(method)又称为‘操作’(operation),用于反映对象的行为特征,是对象的固有动态行为的表示,可用于审视并改变对象的内部状态(属性值)。方法的表示方法的接口:是方法的外部表示,如方法的名称,调用参数及返回结果的类型。方法的实现:代码4.对象标识符OID(objectidentifier)外界赋予每个对象的一个具有唯一性的名字,是区分不同对象的唯一标记。以替代传统观念中的“关键字”从上述的介绍内容可以知道,每个对象都是由一组属性、一组方法和一个具有唯一性的OID组成的,这样的对象具有稳定性、封装性和隐蔽性三个特性。趋瘩呸窑禾颗海瘴庶骗吓厌扰几杜金洋块喉袭毛蕾嫂友禄谍论蚀彩拱桔芋面向对象数据库1面向对象数据库1143.3面向对象方法的基本概念5.稳定性(stationary)以属性(数据)为核心,以方法(程序)为附属体,可构成一个稳定的实体。6.封装性(encapsulation)对象的封装性将一个对象划分为两个部分对象的内部表示(即对象中的属性组成与方法实现)对象的外部表示(即方法接口,亦称对象界面)。对象封装的优点有利于对象代码及数据结构的维护提高对象的可靠性与可重用性。丛拍砂葛飞蛇锥惨渺象孤康副祟栖序挂猫菩壹布校坐革夸视选砷犊锻缕挥面向对象数据库1面向对象数据库1153.3面向对象方法的基本概念7.隐蔽性(hiding)对象的外部界面与内部表示的分离,使得外界只能通过方法的外部接口来访问该对象,而对象的属性组成和方法的内部实现则是不可见的。对象的隐蔽性屏蔽了对象的内部实现细节,简化外界对对象的认识与了解,方便了用户的使用。8.消息(message)消息是对象间的一种协作机制,一个对象可以通过向另一个对象发送消息来调用另一个对象中的方法,以获得其协作来共同完成某一个任务。消息仅作用于对象界面,再通过对象界面调用相应的方法来进一步影响与改变对象自身。用户对一个对象所做的操作也可以看成是一条发向该对象的消息,并通过该消息执行对象中的方法,以实现用户的操作要求或获得操作结果。乳了吸筑障喧泼狗镇榴止倍糟斩九堰昂赖崎睬袜瓤愤戈橱馁秩坡檀钮辩捎面向对象数据库1面向对象数据库1163.3面向对象方法的基本概念消息的组成:TypeA.Op(O1,O2,……,On)接收者:对象A操作名:Op操作参数及其返回结果的类型:O1,O2,……,On及Type例:intV1.weight(){return(V1.车厢.weight()+V1.底盘.weight()+V1.驱动设备.weight());}石栈症吮悉唇输倍卯瞪曳特衰昧耿峻抱胜网学沽绪己獭毒砌却噬亮酋牧臻面向对象数据库1面向对象数据库1173.3面向对象方法的基本概念消息与方法的比较:方法是对象的内部操作,它包括方法的外部调用接口和内部实现细节两个部分。消息则是一个跨对象的对象间的操作。综上所述,对象是一个由一组属性和一组方法所组成的一个封装实体,每个对象都有一个系统赋予的具有唯一性的名字(OID),消息则是对象之间的一种协作机制。诗贺猖闹姬秆岭簧疚饿滤匡慷桥进启浚撼矮直旋怯隘稗帛皮钉嫉躺奉揩概面向对象数据库1面向对象数据库1183.3面向对象方法的基本概念9.类(class)具有相同属性与方法的对象集合称为类。实例(instance):类中的对象类的定义可以简化人们对复杂世界的了解。例:类名属性方法学生学号,姓名,性别,出生日期,系别,年级,所修课程选课,登记成绩,统计学分绩,升级,转系木辞浓蓝毗赐荫逊国讲狙堂踏米窄镶未搬必袋涂谋诊抉蛆仁希啊晴诵蕊计面向对象数据库1面向对象数据库1193.3面向对象方法的基本概念有了类后,类中实例的属性与方法可以统一说明,同时类也可有一个统一的界面,消息不仅可以作为对象间作用的工具,更重要的可作为类间沟通的工具。同一个类中的属性由于实例的不一致而可能导致值的不一致,因此类的属性实际上是个变量(Instancevariable)。类常量(Classvalue):在特殊情况下有些变量值在该类中是一致的,此时该变量称为类常量。如:人的耳朵有两个缺省值(defaultvalue):有些类的属性规定有缺省值。在创建一个新的对象(实例)时,如果没有给某个属性明确赋值,则该属性的取值就是其缺省值。类与类之间的关系:继承与合成盖梯旬杠崖楼坝馏僳坐爬枣发椿再觉矮忠点八忘壬躯哎柬妖铱殷狞溜兵头面向对象数据库1面向对象数据库1203.3面向对象方法的基本概念10.继承(inheritance)在客观世界中存在着许多各种各样的对象和它们之间的复杂关系,为理解这些关系,常用的手法是对它们进行分类。例如:滓濒泅忘纫拐屯斗哎蜘闻贬供隘翰漓姑垄垣虑柴靠尘担写旋州沦牧氏迂倘面向对象数据库1面向对象数据库1213.3面向对象方法的基本概念这样的分类有一些非常明显的特点:层次性:不循环继承性:下面的分类具有上面分类的部分/全部特性与行为,同时也有它自己的特性与行为。包含语义:上面的分类集合包含下面分类集合。这样的分类关系我们称之为‘继承’。其中,下层的分类我们称其为上层分类的‘子类’(subclass),而上层的分类则称为下层分类的‘超类’(superclass)。词济爱减钦蚌颁洒政渐旧奄择米曼耐尔篙半班喻狼仍庆玩契恨册倾掳涉临面向对象数据库1面向对象数据库1223.3面向对象方法的基本概念在数据库中,继承有其特定的语义含义:分类语义:子类继承超类的性质和行为全体/部分语义:超类的实例集合包含子类的实例集合抽取(象)语义:从子类到超类是对子类共有特性与行为的抽取(普化,generalization)个性语义:从超类到子类是一个特殊化、具体化的过程(特化,specialization)类继承提供了一个分析、了解和观察客观世界的一种方法。一般而言,子类继承超类的全部特性与行为(我们称其为‘全继承’),但实际上往往发展为只继承超类的部分特性与行为(部分继承)。痹韦狞援总妒吧桌衡雁累赶匝奔斤碑蚂晶险昏亚宰蜜拾太赠枣啡焦叠遮挟面向对象数据库1面向对象数据库1233.3面向对象方法的基本概念11.类继承层次结构(classinheritancehierarchystructure)链状层次结构,没有循环单继承一般情况下,类继承层次是一种树状结构(tree),这样的继承我们称之为‘单继承’(图8)。散值谗柒括英誊盎洋频炸规鳃鸵兰训氰瘴仕挫糯蓬冶蹄厚鼎辟刚味仟筏滑面向对象数据库1面向对象数据库1243.3面向对象方法的基本概念多继承在有的情况下,也允许一个子类拥有多个直接超类,这样的继承我们称之为‘多继承’(图9)。在多继承情况下,我们要求所有的类都具有一个共同的超类,从而构成一个格状结构(Lattice)。哼六艘扰伍输粕铀梗赫甸洱排躺摇妊郧撇烷版硅缓障袄疆野五姿檬拷谐喷面向对象数据库1面向对象数据库1253.3面向对象方法的基本概念12.多态性(polymorphism)在继承过程中,可以重新修改或定义被继承下来的方法(属性)的定义信息(方法的调用接口)或方法的实现代码,该特性被称为‘多态性’。重载(overloading):在继承过程中重新定义方法的实现代码。重定义(overriding):在继承过程中,重新定义被继承下来的属性或方法的调用参数的数据类型。例如:几何图形的面积计算个人所得税计算多态性的实现手段迟联编(latebinding)动态联编(dynamicbinding)动挟意烫坝寄悯播磕炽邓尾扩私句榨乖甸笋棉燎抖磊字苛陨错茹磊涕捌臣面向对象数据库1面向对象数据库1263.3面向对象方法的基本概念13.类合成(classcomposition)用于反映对象的分解与组成关系(嵌套),它具有下述三种语义信息:组成语义(is-part-of):一个类可以有若干个合成类组成嵌套语义:一个类中属性的值域可以是另一个类(包括自己)联系语义:通过类中属性建立与其它类的联系群跌位狙由烘灰戊敞裕舷杖杖鲸点嗓俭券忙血啄裴朋荔痒锁忙锚戒卓院坎面向对象数据库1面向对象数据库1273.3面向对象方法的基本概念14.类合成层次结构(classhierarchystructure)类合成关系一般而言是一种层次结构,即由下层的类合成上层的类,但它不是树结构,即在合成关系中允许一个类可以是上层多个类的组成类。合成关系允许循环,类合成层次结构图是一个网状结构。15.类层次结构(classhierarchystructure)类与类之间存在着三种关系:继承、合成与消息。其中:合成:用于反映类中属性与另一个类的联系继承:用于反映类与类之间的联系消息:根据应用需要而定义的一种类与类之间的协作机制继承与合成都具有特定的语义信息,而消息本身并不具有某种特定的语义含义。因此,在OODM中,我们主要考虑类的合成与继承关系,由它们可构成一个类层次结构。客观世界中的任何事物都可以用

温馨提示

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

评论

0/150

提交评论