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

下载本文档

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

文档简介

面向对象数据库系统ObjectOrientedDatabaseSystem(OODBS)(一)13.1面向对象概念与数据库系统

传统的关系数据库系统数据模型简单,无法满足新的计算机应用特别是非事务处理领域对数据库支撑要求的需要,如:计算机辅助设计与制造(CAD/CAM)计算机集成制造(CIM)计算机辅助软件工程(CASE)地理信息系统(GIS)物流资源规划(MRP,MRP2)企业资源规划(ERP)23.1面向对象概念与数据库系统解决方法开发各种专用数据库系统:RDBS的扩充如:工程数据库、多媒体数据库、图形数据库及图像数据库等……不足:只能满足专门应用的需要,缺乏通用性开发新的数据模型与数据库系统:新一代的数据模型与数据库系统的主要特征与要求应该是:有构造复杂数据结构与模式的能力:嵌套、递归、抽象、分类、组装、分解……具有多种数据类型及构造抽象数据类型的能力:聚集、时间、空间、几何形状、变长、大容量、……具有多种操作能力,特别是操作复杂语义模型的能力,如:旋转、放大、……具有对数据模型进行扩充演化的能力:模式修改33.1面向对象概念与数据库系统关系模型与关系数据库系统目前仍是在商业、事务处理、OA、MIS等传统数据库应用领域占主导地位的数据库系统。而对非传统应用,关系数据库系统的支撑度就较为低下,因此,从90年代初开始陆续出现了一些商品化的面向对象数据库管理系统,著名的如ObjectStore、O2,ONTOS等,并在非传统应用领域中发挥了重大作用。到90年代中期,不少关系数据库厂家如Oracle、Sybase、SQLServer、DB2以及Ingres、Informix等,经过不断努力都在其推出的新版本中不同程度地采用了面向对象中的一些思想与机制。由于这类数据库系统的本质还是关系数据库,因此我们称其为‘对象-关系数据库系统’,采用的数据模型相应被称为‘对象-关系数据模型’。在通常情况下,我们也将‘对象-关系数据库系统’作为‘面向对象数据库系统’的实现途径之一。53.2面向对象方法的基本思想3.2.1概述OO是一种方法使用OO方法不仅可以认识客观世界,而且也可以表示客观世界,其特点是通过可构造的手段将客观要求表示出来,也就是说可用有限的构造手段与有限的步骤建立起一个客观世界的模型。目前该方法已广泛应用在计算机的各个方面:面向对象程序设计语言(OOP)面向对象分析(OOA)面向对象设计(OOD)面向对象数据库(OODB)面向对象用户界面面向对象的体系结构……63.2.1概述OO方法与传统方法的比较“面向计算机”方法:ComputerOriented是一种模块化、树状层次结构方法。该方法以便于计算机实现为主要目的,较少考虑其客观世界的实际背景。特点:在计算机中的实现方便,但模型构筑困难。(距客观世界较远,工具不统一)“面向对象”方法:ObjectOriented以客观世界中的“实体”为中心的方法,能够较好地反映客观世界的实际要求,也可以通过OO工具在计算机中方便地实现。特点:统一的建模工具(OOA,OOD)易于实现(OOP,OODB)实现了方法的一致化和接口的无缝性73.2.1概述在关系数据库中的设计步骤概念设计(图1),概念设计(图2),逻辑设计(图3)起点P(pno1,x,y)边L(pno1,pno2)终点P(pno2,x,y)P(pno,x,y,pno’)终点起点图393.2.1概述在OODB中的设计步骤概念模型与逻辑模型(图4-1或图4-2)点pnoxy终点图4-1OO模型点pnoxy起点图4-2OO模型103.2.1概述数据操作方面的区别在树状结构中,操作具有一定的方向性,即从起点到终点。RDB:从起点到终点查找困难(图3)OODB:很方便(图4)113.3面向对象方法的基本概念

1.对象(object)客观世界中的任意一个实体。组成对象标识,静态特征,动态行为2.属性(attribute)反映对象的状态与特性,是每个对象固有的静态表示。属性型属性名,数据类型属性值可以赋予该属性的数值。属性值的多值性结构化值、集合值、OID例学生(学号,姓名,性别,出生日期,系别,所修课程)133.3面向对象方法的基本概念3.方法(method)又称为‘操作’(operation),用于反映对象的行为特征,是对象的固有动态行为的表示,可用于审视并改变对象的内部状态(属性值)。方法的表示方法的接口:是方法的外部表示,如方法的名称,调用参数及返回结果的类型。方法的实现:代码4.对象标识符OID(objectidentifier)外界赋予每个对象的一个具有唯一性的名字,是区分不同对象的唯一标记。以替代传统观念中的“关键字”从上述的介绍内容可以知道,每个对象都是由一组属性、一组方法和一个具有唯一性的OID组成的,这样的对象具有稳定性、封装性和隐蔽性三个特性。143.3面向对象方法的基本概念5.稳定性(stationary)以属性(数据)为核心,以方法(程序)为附属体,可构成一个稳定的实体。6.封装性(encapsulation)对象的封装性将一个对象划分为两个部分对象的内部表示(即对象中的属性组成与方法实现)对象的外部表示(即方法接口,亦称对象界面)。对象封装的优点有利于对象代码及数据结构的维护提高对象的可靠性与可重用性。153.3面向对象方法的基本概念消息的组成:TypeA.Op(O1,O2,……,On)接收者:对象A操作名:Op操作参数及其返回结果的类型:O1,O2,……,On及Type例:intV1.weight(){return(V1.车厢.weight()+V1.底盘.weight()+V1.驱动设备.weight());}173.3面向对象方法的基本概念消息与方法的比较:方法是对象的内部操作,它包括方法的外部调用接口和内部实现细节两个部分。消息则是一个跨对象的对象间的操作。综上所述,对象是一个由一组属性和一组方法所组成的一个封装实体,每个对象都有一个系统赋予的具有唯一性的名字(OID),消息则是对象之间的一种协作机制。183.3面向对象方法的基本概念9.类(class)具有相同属性与方法的对象集合称为类。实例(instance):类中的对象类的定义可以简化人们对复杂世界的了解。例:类名属性方法学生学号,姓名,性别,出生日期,系别,年级,所修课程选课,登记成绩,统计学分绩,升级,转系193.3面向对象方法的基本概念10.继承(inheritance)在客观世界中存在着许多各种各样的对象和它们之间的复杂关系,为理解这些关系,常用的手法是对它们进行分类。例如:213.3面向对象方法的基本概念这样的分类有一些非常明显的特点:层次性:不循环继承性:下面的分类具有上面分类的部分/全部特性与行为,同时也有它自己的特性与行为。包含语义:上面的分类集合包含下面分类集合。这样的分类关系我们称之为‘继承’。其中,下层的分类我们称其为上层分类的‘子类’(subclass),而上层的分类则称为下层分类的‘超类’(superclass)。223.3面向对象方法的基本概念在数据库中,继承有其特定的语义含义:分类语义:子类继承超类的性质和行为全体/部分语义:超类的实例集合包含子类的实例集合抽取(象)语义:从子类到超类是对子类共有特性与行为的抽取(普化,generalization)个性语义:从超类到子类是一个特殊化、具体化的过程(特化,specialization)类继承提供了一个分析、了解和观察客观世界的一种方法。一般而言,子类继承超类的全部特性与行为(我们称其为‘全继承’),但实际上往往发展为只继承超类的部分特性与行为(部分继承)。233.3面向对象方法的基本概念多继承在有的情况下,也允许一个子类拥有多个直接超类,这样的继承我们称之为‘多继承’(图9)。在多继承情况下,我们要求所有的类都具有一个共同的超类,从而构成一个格状结构(Lattice)。253.3面向对象方法的基本概念12.多态性(polymorphism)在继承过程中,可以重新修改或定义被继承下来的方法(属性)的定义信息(方法的调用接口)或方法的实现代码,该特性被称为‘多态性’。重载(overloading):在继承过程中重新定义方法的实现代码。重定义(overriding):在继承过程中,重新定义被继承下来的属性或方法的调用参数的数据类型。例如:几何图形的面积计算个人所得税计算多态性的实现手段迟联编(latebinding)动态联编(dynamicbinding)263.3面向对象方法的基本概念293.3面向对象方法的基本概念16.持久性(persistance)对象的持久性挥发性对象:仅存在于应用的执行过程中的对象持久性对象:可以长期保存的对象类的持久性持久类:实例的OID、属性值、方法均可以长期保存,并具有共享性,可以为多个应用服务挥发类:与特定的应用相关,随应用程序的产生而产生、消亡而消亡,并具有共享性303.3面向对象方法的基本概念例:C++中的类与对象都是挥发性的,而OODB中的类与对象则均是持久性的。C++与OODB这两个面向对象系统的区别在于:C++中没有OID的概念;C++主要讨论(管理)对象,而OO

温馨提示

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

评论

0/150

提交评论