当前位置:首页 » 数据仓库 » 对象数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

对象数据库

发布时间: 2022-03-30 09:48:51

‘壹’ 什么叫做“面向对象”数据库

面向对象的数据库是一种数据库的模式
数据库中的表,字段和内容都当成对象来处理
换言之,可以使用对象的属性和方法。
相当于 把数据库的里面的字段值 在java中采用啦po的值去表示。

‘贰’ 哪些数据库具有面向对象功能,主要是主流数据库

面向对象数据库是一种数据库模式,oracle、postgresql都具有这功能。
优点如下:
1、易维护
采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。
2、质量高
在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。
3、效率高
在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。
4、易扩展
由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。

‘叁’ 面向对象数据库系统主要有哪些特点

面向对象程序语言操纵的是对象,所以面向对象数据库(简称OODB)的一个优势是面向对象语言程序员在做程序时,可直接以对象的形式存储数据。对象数据模型有以下特点:
(1)使用对象数据模型将客观世界按语义组织成由各个相互关联的对象单元组成的复杂系统 。对象可以定义为对象的属性和对象的行为描述,对象间的关系分为直接和间接关系。(2)语义上相似的对象被组织成类,类是对象的集合,对象只是类的一个实例[6],通过创建类的实例实现对象的访问和操作。(3) 对象数据模型具有“封装”、“继承”、“多态”等基本概念[7]。(4) 方法实现类似于关系数据库中的存储过程,但存储过程并不和特定对象相关联,方法实现是类的一部分。(5) 实际应用中,面向对象数据库可以实现一些带有复杂数据描述的应用系统,如时态和空间事务、多媒体数据管理等。

‘肆’ 面向对象数据库的优点

1、易维护采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。2、质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。3、效率高在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。4、易扩展由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。

‘伍’ 面向对象数据库和关系数据库的区别

以关系数据库为例,SQL语言是一种非过程化的面向集合的语言,它虽然用起来非常简单,但由于是解释实现,效率不如人意。因此许多应用仍然是由高级程序设计语言(如C)来实现的,但是高级程序设计语言是过程化的,而且是面向单个数据的,这使得SQL与它之间存在着不匹配,我们把它叫做“阻抗失配”。不论你是用嵌入式SQL,还是CLI,都需要化很多工夫去完成两种语言之间的相互转化。 但是关系数据库在数据库系统方面发展地非常完善,有强大的管理功能和可操纵性。另外,关系模型具有坚实的数学基础。

面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言与数据库的无缝连接。什么叫无缝连接,假设你 不用数据库,用C语言编了一个程序,你可以不需要(或基本不需要)任何改动就将它作用于数据库,即你可以用C语言透明访问数据库,就好象数据库根本不存在一样,所以也有人把面向对象数据库理解为语言的持久化。怎么样,听起来挺玄的吧,可是我们自己开发的数据库系统——OSCAR早就做到了这一点。 由于实现了无缝连接,使得面向对象数据库能够支持非常复杂的数据模型,从而特别适用于工程设计领域。打个比方,想象CAD中的一个复杂部件,它可能由成千上万个不同的零件组成,要是用关系模型中的表来表达,得用多少张表啊?而描述这种复杂的部件,正好是高级程序设计语言的强项。

此外,面向对象数据库还吸收了面向对象程序设计语言的思想,如支持类、方法、继承等概念。 面向对象数据库很好地解决了阻抗失配的问题,但它也有缺点。它的缺点正好是关系数据库的强项,由于模型较为复杂(而且缺乏数学基础),使得很多系统管理功能难以实现(如权限管理),也不具备SQL处理集合数据的强大能力。

另一方面,随着多媒体数据的大量出现和应用的日益复杂,关系数据库也在不断吸收面向对象数据库的优点,出现了现在所谓的对象关系型数据库(象ORACLE8i、DB2-5以上都是这种系统)。其主要改进包括支持自定义类型(UDT),方法,继承(目前仅DB2-6支持),和引用(使得对象间可以直接引用,想想原来的关系数据库需要靠连接来实现引用,性能真是惨不忍睹)。 总之,数据库系统发展的趋势是,面向对象数据库和关系数据库将不断融合。而对象关系数据库由于继承了上述两者的优点,已经成为目前数据库发展的主流。

‘陆’ 介绍几个比较好的面向对象数据库,最好是开源的。

db4o
请参考: http://www.ibm.com/developerworks/cn/java/j-lo-db4o1/

‘柒’ 对象型数据库是什么它与面向关系型数据库的区别

关于面向对象数据库,网上一搜一大堆,我给你简明扼要的说一下。
面向对象数据库就是把数据以对象的形式组织起来,而不是像关系型数据库以表的形式来组织数据,并且根据需要也能提供ACID等事务特点。一开始的设计主要是要方便的配合面向对象编程语言的数据操作需要,渐渐的,成为了一种强大的数据库类型。
主要区别:面向对象数据库可以处理比关系型数据库更复杂的数据类型以及复合数据类型,并建立相关索引;数据查询时,不需要表格的join操作,直接通过指针和索引查找数据;数据之间可以有继承关系;数据库模式和程序类定义模式吻合;等等等等

‘捌’ 面向对象数据库有哪些

面向对象的数据库是一种数据库的模式
数据库中的表,字段和内容都当成对象来处理
换言之,可以使用对象的属性和方法
以paradox为例
如果sql语句为select
*
from
a
where
b=:b
那么在delphi中可以操作参数b

paramaters.paramvalue['b']:=x;
此时就相当于使用了对象
现在比较流行的面向对象的数据库是oracle

‘玖’ 请教关系数据库和面向对象数据库的区别

以关系数据库为例,SQL语言是一种非过程化的面向集合的语言,它虽然用起来非常简单,但由于是解释实现,效率不如人意。因此许多应用仍然是由高级程序设计语言(如C)来实现的,但是高级程序设计语言是过程化的,而且是面向单个数据的,这使得SQL与它之间存在着不匹配,我们把它叫做“阻抗失配”。不论你是用嵌入式SQL,还是CLI,都需要化很多工夫去完成两种语言之间的相互转化。
但是关系数据库在数据库系统方面发展地非常完善,有强大的管理功能和可操纵性。另外,关系模型具有坚实的数学基础。

面向对象数据库的产生主要是为了解决“阻抗失配”,它强调高级程序设计语言与数据库的无缝连接。什么叫无缝连接,假设你

不用数据库,用C语言编了一个程序,你可以不需要(或基本不需要)任何改动就将它作用于数据库,即你可以用C语言透明访问数据库,就好象数据库根本不存在一样,所以也有人把面向对象数据库理解为语言的持久化。怎么样,听起来挺玄的吧,可是我们自己开发的数据库系统——OSCAR早就做到了这一点。

由于实现了无缝连接,使得面向对象数据库能够支持非常复杂的数据模型,从而特别适用于工程设计领域。打个比方,想象CAD中的一个复杂部件,它可能由成千上万个不同的零件组成,要是用关系模型中的表来表达,得用多少张表啊?而描述这种复杂的部件,正好是高级程序设计语言的强项。

此外,面向对象数据库还吸收了面向对象程序设计语言的思想,如支持类、方法、继承等概念。

面向对象数据库很好地解决了阻抗失配的问题,但它也有缺点。它的缺点正好是关系数据库的强项,由于模型较为复杂(而且缺乏数学基础),使得很多系统管理功能难以实现(如权限管理),也不具备SQL处理集合数据的强大能力。

另一方面,随着多媒体数据的大量出现和应用的日益复杂,关系数据库也在不断吸收面向对象数据库的优点,出现了现在所谓的对象关系型数据库(象ORACLE8i、DB2-5以上都是这种系统)。其主要改进包括支持自定义类型(UDT),方法,继承(目前仅DB2-6支持),和引用(使得对象间可以直接引用,想想原来的关系数据库需要靠连接来实现引用,性能真是惨不忍睹)。
总之,数据库系统发展的趋势是,面向对象数据库和关系数据库将不断融合。而对象关系数据库由于继承了上述两者的优点,已经成为目前数据库发展的主流。