



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象数据库系统 Object Oriented Data Base System ,简称 OODBS 是数据库技术与面 向对象程序设计方法相结合的产物.对于OO数据模型和面向对象数据库系统的研究主要表达在:研究以关系数据库和SQL为根底的扩展关系模型;以面向对象的程序设计语言为根底,研究持久的程序设计语言,支持OO模型;建立新的面向对象数据库系统,支持 OO数据模型.面向对象程序设计方法是一种支持模块化设计和软件重用的实际可行的编程方法.它把程序设计的主要活动集中在建立对象和对象之间的联系或通信上,从而完成所需要的计算.一个面向对象的程序就是相互联系或通信的对象集合.面向对象程序设计的根本
2、思想是封装和可扩展性.面向对象数据库系统支持面向对象数据模型以下简称OO模型.即面向对象数据库系统是一个持久的、可共享的对象库的存储和治理者;而一个对象库是由一个OO模型所定义的对象的集合体.一个OO模型是用面向对象观点来描述现实世界实体对象的逻辑组织、对象间限制、 联系等的模型.一系列面向对象核心概念构成了OO模型的根底.括起来,OO模型的核心概念有如下一些:1对象Object与对象标识 OID Object IDentifier 现实世界的任一实体都被统一地模型化为一个对象,每个对象有一个唯一的标识,称为对象标识OID .2圭寸装Encapsulation 每一个对象是其状态与行为的封装,
3、其中状态是该对象一系列属性Attribute 值的集合,而行为是在对象状态上操作的集合,操作也称为方法 Method .3类C1ass 共享同样属性和方法集的所有对象构成了一个对象类简称类,一个对象是某一类的一个实例instance .4类层次结构在一个面向对象数据库模式中,可以定义一个类如 C1的子类如 C2,类Cl称为类 C2的超类或父类.子类如C2还可以再定义子类如 C3o这样,面向对象数据库模式 的一组类形成一个有限的层次结构,称为类层次.5消息Message 由于对象是封装的, 对象与外部的通信一般只能通过显式的消息传递,即消息从外部传送给对象,存取和调用对象中的属性和方法, 在内部
4、执行所要求的操作, 操作的结果仍以消息的形式 返回.OODB语言用于描述面向对象数据库模式,说明并操纵类定义与对象实例.OODB语言主要包括对象定义语言ODL和对象操纵语言OML ,对象操纵语言中一个重要子集是对象查 询语言OQL.OODB语言一般应具备下述功能:1类的定义与操纵面向对象数据库语言可以操纵类,包括定义、生成、存取、修改与撤销类.其中类的定义包 括定义类的属性、操作特征、继承性与约束等.2操作/方法的定义方法的定义与实现.在操作实现中,语言的命令/面向对象数据库语言可用于对象操作可用于操作对象的局部数据结构.对象模型中的封装性允许操作/方法由不同程序设计语言来实现,并且隐藏不同程
5、序设计语言实现的事实.3对象的操纵面向对象数据库语言可以用于操纵即生成、存取.修改与删除实例对象.目前,还没有像 SQL那样的关于面向对象数据库语言的标准,因此不同的 OODBMS其具 体的数据库语言各不相同.对象-关系数据库系统就是将关系数据库系统与面向对象数据库系统两方面的特征相结合. 对象-关系数据库系统除了具有原来关系数据库的各种特点外,还应该提供以下特点:1扩充数据类型,例如可以定义数组、向量、矩阵、集合等数据类型以及这些数据类型 上的操作.2支持复杂对象,即由多种根本数据类型或用户自定义的数据类型构成的对象.3支持继承的概念4提供通用的规那么系统,大大增强对象-关系数据库的功能,使
6、之具有主动数据库和知识库的特性. 对象数据库 VS关系数据库 我们将对象数据库治理系统ODBMS 定义为一个集成了数据库水平与面向对象编程语言水平的数据库治理系统DBMS , ODBMS使数据库对象看起来像是已有的一个或多个程序设计语 言中的程序设计语言以象.Rick Cattell , OMG -93委员会主席.ODBMS在多用户客户机/效劳器环境中提供了持久性存储器.ODBMS可以处理对象的并行访问,提供锁定和事务保护, 保护对象存储器免遭各种类型的威胁,照管像备份和恢复之类传统任务.ODBMS这所以与关系数据库不同,是由于 ODBMS存储的是对象,而不是表格.对象的 引用通过持久性标识P
7、ID进行,PID可以独一无二地识别各个对象,可以用来在对象之间建 立标记和容器关系.ODBMS还增强了封装,支持继承.ODBMS结合了对象属性和传统的DBMS功能,如锁定、保护、事务处理、查询、版式本、并发和持久性. ODBMS不是利用别离的语言如SQL定义、检索和处理数据,而是利用类定义和传统的面向对象的程序语言通常是C+、SmallTalk和Java语言构造来定义和访问数据.ODBMS只来过是存储器内语言数据结构的多用户、持久性扩展.换句话说,客户就是C+或是Java程序,效劳器就是 ODBMS -没有像SQL和RPC这样的可视中间对象.ODBMS将数据库能力直接集成进语言. ODBMS的
8、价值.很显然,最好是以自然的形式存储那些对象,而不是将数据修饰得光光滑滑或撕得七零八落之后放进关系表格中. 对于那些数据复杂难以在表格里简单排列的用户来说,ODBMS特别适合.ODBMS曾经长期是学者和OO研究人员极为感兴趣的领域.最早的商品化ODBMS出现在1986年,是Servio公司现在的 GemStone 公司和 Ontos公司推出的.后来九十年代Object Design ODI、Versant、Objectivity、O2 Technology、Poet、Ibex、UniSQL 厂商首先瞄准了那些复 ODBMS 等公司也参加了这个开拓行列.这些ADB MATISSE 和杂数据结构和
9、长命期事务处理的应用程序一一包括计算机辅助设计、CASE和智能办公室等.随着多媒体、群件、公布式对象和万维网技术的出现,ODBMS与那些深奥难懂的特性现在变成了客户机/效劳器系统的主流要求.ODBMS技术填补关系数据库最弱的那些空隙一一复杂数据、版式本和长生命期事务、持久性对象存储、继承和用户定义的数据类型等等. 以下是ODBMS厂商开拓的各个特性: n自由创立新的信息类型n快速存取n组合结构的灵活视图n与面向对象的程序语言紧密集成n利用多继承支持可定制的信息结构n支持版本领务、嵌套事务和长生命期事务n分布式对象储库n支持复合对象的生命期治理对象狂已经掌握了整个行业.面向对象技术支持者正在宣告
10、,对象关系数据库和ODBMS将成为医治关系技术的所谓弱点的良药.这纯属胡说在数据库上直接地和不加区分地就应用面向对象技术,将再次引入关系数据库花了二十年才克服的那些问题.在用户中间,很少有人会疑心ODBMS最终将成为 RDBMS的后继技术.在诗人 William Blake的比喻中,年轻的革命上帝Orc已经开始衰老,变成冷冰冰的暴君Urizen 戒律和标准的守护人.我们可以两者兼得.要点是将这两项技术结合起来,而不是相互扔泥块.对二十多处踏踏实实的关系数据库研究的开发熟视无睹,不加以利用,就不太应该了.Date和Pascal都成认目前的 SQL数据库实现有缺点;但他们两人都有觉得关系模型本身能
11、够 处理ODBMS将解决的那些问题, ODBMS有水平,可以利用嵌套关系、域或用户定义的数 据封装类型以及一种比SQL更强大的面向集合语言在关系技术世界里近似.这些特性完成这项工作,无需追逐对象指针或操纵低级的专用语言记录结构.没有必要减轻关系理论的联合水平.开发者没有必要退回到用手工方法去最正确化或重新优化应用程序的性能一一将时钟倒拔回去了.Date认为域和对象是同一回事,解决方法是由关系技术厂商扩展其系统,以包括“适当的域支 持.StoneBraker注意到纯粹的ODBMS还缺乏复杂搜索、查询优化器和效劳器可扩展性等领域的功 能.而且,许多 ODBMS在用户编程的同一个地址空间里运行其产品
12、.这意味着在客户应用程 序和ODBMS之间没有任何屏蔽.此外,与关系 DBMS相比,ODBMS的市场突破还极小.最 后,对象/关系和SQL数据类型扩展器正在 RDBMS语言政治协商 环境内满足某些对象要求. 事实上,的人们觉得,支持 ODBMS除了仅仅扩展关系模型之外,还有更多的方法.顽固分子 认为他们他们已经拒绝了SQL3 ,理由是缺乏正在达成休战协定.ODBMS正在为一个新创世界创造更好的管道系统,在这个世界里信息系统完全建产在对象根底组成的管道之上.在一个由ORB、对象效劳、面向对象的程序设计语言和Object Web 、里,关系数据库成了阻碍.所需要的正是一个纯粹的 ODBMS o为什
13、么要坚持用 BLOB这样的旧根底呢他们宁愿自始至终坚 持用存储过程和用户定义类型来扩展一个像SQL借来某些东西比方查询.他们还在创立一个多用户、坚实的对象技术,有时从 SQL根底、包括锁定、事物处理、恢复和各种工具.数据库 是目前的山中之王,它们拥Goliath o SQL当然我们这里谈论的是David和效劳器低端市场里有着极好的市场接受度.商店到客户机/有巨额的开发经费,在从 MIS能与更好地处理对象,这个山中之王就会被黜这还有待进一步地是不是由于ODBMS利用表格存储对象,就象是将汽车开回家,然表达的,“观察.不过,正如 Esther Dyson后拆成零碎件放进车库里,早晨可以再把 汽车装
14、配起来.但是人们不禁要问:这是不是泊车的最有效的方法呢对象-关系数据库模型 对象关系数据库模型,一个很有意思的领域.今天了解一 下.呵呵.重要的 是一种思想,个人认为. 是其中的一种,它的意思是 我们的属性可以不是原 嵌套关系模型它是关系模型的一个扩也就是说这个数据库还不能满足我们的第一范式.子的.这样元组在一个属性上的取值可以. 展,它的域可以为原子的也可以赋值为关系 这样一个复杂的对象就可以用嵌套关于是这样关系可以存在于关系中.是关系, 系的一个元组来表示.下面来一个例子说明一下嵌套关系的存在的可能性.假设每一本书存储下面这些信息: 书名,作者,出版商,关键字集合.一本书可能有多个作者,可
15、以存在非元子的有:作者对于上面的关系,一本书存储了多个,关键字我们通常只是对域元素“作者的一局部感兴趣关键字,我们希望能找到在关键字集合中包含某个关键字的所有的书.)0当然当然可 以通过分但可能会有很大程度上的重复. 我们可以用1NF对它进行表达,这时我 们可以设计一个无主要是其中存在的多值依赖. 解来到达消除这些弊端.嵌套的 复杂的关系视图来免除用户在它们的查询中编写麻烦的连接操作的需要.这样就可以免除关不过我们可以设计一个复杂的对象作为多值集合的存储对象,系数据库的一系列的问题.嵌套关系只是对根本关系模型的扩展. 面向对象数据复杂类型库模型已经导致了对于诸如对象的继承和引用之类特征的需求.
16、 有了复杂的对象 系统和面向对象,我们能够直接表达E- R模型的一些概念,如多值属性,实体 标 识,一般化,特殊化等,而不需要麻烦的转化.这样可以直接表达多值属性可以是集合,集合体和大对象类型属性.集合是集合体类型的一个实例,其它的集合体类型还有数组和多重集合.它还不支持如无序集合和多重中唯一支持的集合体类型,:1999不过数组是SQL 应该使当要被存在数据库中时,集合.对于一些大型的数据类型如一张照片等,(二进制数据大BLOBCLOB新字符型数据大对象数据类型),用新的数据类型: object大对象一般用于外部代表的是“ Large对象数据类型).其中的LOB一般程序是通过定位器定位到对他们进行检索是没有意义的.通过SQL的应用,大对象,然后对其进行操作.1999中可以使用结构中明,如:结构类型在 SQLPublisher as create type(20),(name varchar声明branch varchar(20),它包括两个局部,名字和分支机构.了一个类型为Publisher as create type Book(20),varchar (titile(20) a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小班心理素质教育的创新方式计划
- 第 5 单元 第十六章第三节 生物进化的学说2023-2024学年八年级上册生物同步教学设计(苏教版)
- 农村土地承包合同法全文(2025年版)
- 内部沟通的畅通策略计划
- 修理厂承包合同书(2025年版)
- 短途运输安全管理计划
- 演出协议与个人签(2025年版)
- 人教版初中历史与社会七年级上册 4.1 美国政治的心脏 华盛顿 教学设计
- 行为转变理论护理模式
- 母婴店活动促销方案
- 金融基础知识(重点归纳)及金融监管的内容与方法
- 整本书阅读《平凡的世界》:悲欢喜怒交织是人生-【中职专用】高一语文同步课件(高教版2023·基础模块上册)
- 墙板安装施工工艺指导手册
- 申菱空调操作说明书
- 《北京大学月刊》发刊词文档
- 2023年资产负债表模板
- (47)-《矛盾论》(全文)马克思主义基本原理
- 颅内动脉粥样硬化性狭窄的治疗课件
- 2023年江苏省无锡市中考地理真题(含答案)
- 加拿大汽车驾驶中文考试题目
- 浙江明德自动化设备 全自动袜机电脑控制系统 说明书
评论
0/150
提交评论