admin 管理员组文章数量: 1086019
2024年4月14日发(作者:mysql数据库同步工具)
面向对象数据库面向谁? 它的市场在哪里?
陶伟 编译
当今冠以面向对象的东西很多,什么面向对象分析,面向对象设计,面向对象语言,面向对
象操作系统,面向对象软件工程,等等,诸如此类,不胜枚举。似乎凡是和面对象挂上了边,就要
好卖得多。 其实面向对象也不是包治百病的灵丹妙药,数据库加上了面向对象同样不可能解
决所有的问题,它不是大街上的冰棍,人人都可以买,它有自己独特的应用领域和特有的用户
群。向不懂C++或Smalltalk的人兜售面向对象数据库,无异于对牛弹琴。
面向对象数据库的用户主要是从事系统软件和高级应用软件开发的程序员和系统设计人
员,它不是大众数据库,在这方面它有别于关系数据库面。面向对象数据库好比是医生用的手
术刀,干的是"细活儿",和家庭主妇用的菜刀(关系数据库)不一样,那是用来干"粗活儿"的。
面向对象数据库是什么? 面向对象数据库=数据库系统+面向对象系统 面向对象数据库必须
满足两条准则:首先,它是一个数据库管理系统,其次它是一个面向对象系统。第一条准则可以
翻译成六条特征:持久性、缓冲管理、数据共享、数据可靠性(事务管理和恢复)、即席查询以
及模式修改。第二条准则可以翻译成:封装性、继承性、多态、对象标识、计算完整性、复杂
对象和可扩展性。 除了基本定义之外,为了满足所谓的非常规应用领域,还要引入一些扩展的
特征:如版本管理、长事务、协同工作、触发和约束等。其中最重要的是封装性、继承性、多
态,它们充分体现了面向对象的特征。 面向对象数据库的应用领域 面向对象数据库的应用面
比较窄,主要集中于系统级的软件开发,以及数据密集的、复杂的应用软件开发,包括: ▲计算
机辅助设计CAD ▲计算机辅助制造CAM ▲计算机集成制造系统CIMS ▲计算机辅助软件工程
CASE ▲超大规模集成电路设计VLSI Design ▲地理信息系统GIS ▲决策支持系统DSS 这些
应用领域和传统的商业应用领域有着显著不同,它们表现为复杂的数据类型,而不是简单的二
维表,复杂的数据结构上定义着复杂的操作语义,需要不同层次的数据抽象能力,这些均是传
统数据库系统所无法满足的。 面向对象数据库与文件系统和关系数据库的区别 文件系统存
贮的数据格式因程序员的设计的不同而不同,一般不能保证数据的一致性和完整性,也很难多
个用户共享。关系数据库存贮的是二维表,能保证数据的一致性与完整性,但只能用关系数据
模型去描述世界。面向对象数据库则用面向对象数据模型去映射客观世界,存贮的不仅是数
据,而且存贮了定义在数据上的操作语义,以及对象之间的复杂引用和约束关系。 相对于文件
系统和关系数据库而言,面向对象数据库的特点可以做以下的形象描述:面向对象数据库提供
了一种存贮对象的更好方法,因为它提供了传统数据库的全部服务,然而却无存储和检索对象
时对象的拆卸与装配的开销,比较关系数据库和面向对象数据库存储复杂对象,后者好似直接
把汽车开进车库存放,而前者则是把汽车拆成零部件来保存。 如何应用面向对象数据库 面向
对象数据已进入了商业应用领域,但没有取代现有的数据库系统,通常是在处理非常复杂的数
据,或者数据很难被分解为关系数据库二维表的情况时,才采用面向对象数据库。 一般认为图
像数据的处理,使用面向对象数据库非常合适,其实还有许多数据类型可以用面向对象数据库
来存储。就目前使用情况看,计算机辅助设计CAD是面向对象数据库最大的应用领域,现在电
信、金融服务、医疗保健、制造过程控制等诸多领域,也开始推广使用。 主要的面向对象数
据库厂商 主要的面向对象数据库厂商有以下几家。 ·Object Design,Inc. ·Gemstone
System,Inc. ·O2 Technology,Inc. ·Objectivity,Inc. ·Versant Object Technology
Corp. ·Ontos,Inc. 此外关系数据库厂商,例如:Informix和Oracle也发布了自己具有面向
对象数据库功能的关系数据库产品。这些产品多以支持大二进制块对象Blobs(binary large
objects)为特征。当然Blobs在性能上无法和"纯的"面向对象数据库匹敌。同时,还有一组混
合型的关系/面向对象数据库进入市场 ,它们填补了关系数据库和面向对象数据库之间的空
白。 虽然市场上出现了许多面向对象数据库产品,但到现在为止,面向对象数据库仍缺乏支持
商业应用的基本特征。例如:数据库加锁,防止两个用户同时修改同一数据;回滚,当一个事务
被意外中断时,把数据库恢复到原始的一致状态。 此外,说服企业的信息系统负责人采用面向
对象数据库,也不是一件轻而易举的事,许多公司都不愿意公开宣扬自己在使用面向对象数据
库技术,因为害怕用户不赞同,而损害本公司的竞争力。下面我们介绍一些用户公司在采用面
向对象数据库时面临的问题、遇到的挑战和解决的方法。 金融服务业 问题 金融企业在进行
投资决策时,往往时间紧迫,同时又要考虑投资的风险和回报等诸多方面,这些因素涉及复杂
的、大量的数据信息,很难用传统的关系数据库来建模。传统的关系数据库查询慢,描述能力
差,基于关系数据库的决策支持系统往往不能满足用户的需要。 美国Chemical Back Corp.
在1988年就开始采用面向对象的程序设计。但是由于缺乏有效的面向对象数据库支持,搞得
焦头烂额。其副总经理Dante Dewitt在回忆时这么评论,"当时我们知道采用面向对象数据库
会带来许多便利,但是当时市场上还没有用起来顺手的家伙"。 解决方案 去年,Chemical
Bank Corp.采用了Object Design的Objectstore,因为Objectstore是市场上最领先的面向
对象数据库系统。"现在我们认为面向对象数据带来的好处远远超过它带来的问题。"Dante
Dewitt认为。 好处 面向对象数据库用一种统一的方式去处理复杂的关系。在决策的过程中
需要考虑各种复杂的关系,需要不同的视图。而面向对象数据库可以提供多种视图去访问数
据,却不用编制复杂的查询语句。面向对象数据库还提供了一种数据模式演进的方便途径,保
证当数据库模式改变时,程序仍能正常运行。而关系数据库修改了数据库的模式后,会造成向
后兼容的问题。 上述技术问题,一旦采用了面向对象数据库,就风消云散。面向对象数据库把
数据与操作封装起来,提供了类层次结构,建立了不同层次的数据抽象,使用户可以采用统一
的模式去处理数据对象。 电信 问题 "在电信企业决策时,往往要涉及许多工程因素。任何因
素都有可能影响最终的选择。"San Cinquegrani这样认为,他是Objectware Corp.的总裁。
该公司是位于Chi-cago的一家系统集成商,正在用面向对象数据库为Ameritech Advanced
Data Services公司开发应用软件,这些决策软件的决策模型涉及一系列的复杂关系。例如,
供应系统的组织和应用户的服务请求选购电信设备,都需要在商业上和技术上做复杂的权衡
与比较后,才能做出决择。 解决方案 开始,供应系统采用的是关系数据库,由于关系系统的局
限性,许多决策因素的处理无法在系统中实现。而在面向对象数据库中,决策的因素和方法可
以嵌入到对象和关系中去。供应系统可以在较高层次对开关、线路、设备以及设备性能进行
处理,以组合起来帮助用户决策。 好处 过去一个服务请求,往往要经过数天之后,才能得到回
答,而今天由于采用了面向对象数据库,一般只需要几个小时。数据库通过使用继承可以非常
容易地获得所有和决策相关的数据。Ameritech通过大量的测试后,选择了Versant,抛弃了
Gemstone和Objectstore,之所以不采用Objectstore是因为它没有Smalltalk的接口。 医
疗保健 问题 "我们的病人信息来源很杂,我们需要把这些信息合理地存放,以便使用时随手
可取"一家医疗保健公司的信息系统负责人介绍。病人的信息类型包括:声音、视频、数字图
象和传统数据等。这些均是关系数据库很难处理的。 解决方案 如果采用关系数据库存贮这
些信息,也未尝不可,但是用户更希望把一些方法放入数据库,以便基于这些信息而采取正确
的行动。该公司为医疗保健建立了一个面向对象模型,使每个数据对象都有一组相关的方法,
版权声明:本文标题:面向对象数据库的应用范围和优缺点 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713100652a619877.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论