📄 0902-0200.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0902-0200 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 9.2.2 XML与面向对象数据库</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt9 {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt10 {
FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋体"
}
.TempOutline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.TempOutline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage0 {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage111 {
FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
</STYLE>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下为主体内容 -->
<div align="center">
<center>
<TABLE border=0 width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD width=39 rowSpan=2></TD>
<TD vAlign=center width="842" >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=36 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD width="842"><!-- 正文内容 -->
<DIV class=pt10><B>9.2.2 XML与面向对象数据库</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P
align=left>面向对象数据库源于计算机编程语言中的面向对象技术。同以往的结构化编程语言相比,面向对象技术提供了一种同现实世界更加贴切的表达方式,它利用封装技术将属性和方法集成于对象之中,并且借助继承和派生的概念将对象及其子对象紧紧联系在一起。面向对象技术体现了人类对生存于其中的世界的认知过程,而同数据库技术的结合,则又是一种在计算机应用领域的进步。面向对象数据库管理系统(OODBMS)使得文本、图像、视频和空间数据可以存储在数据库中,不过与关系数据库不同:在关系数据库中,数据仅仅是数据,它不包含层次结构信息;而面向对象数据库可以将数据视为对象,数据是作为一个整体,包含了属性和方法,并能体现数据间的继承关系。下图示出了面向对象数据库管理系统概念。</P>
<P align=center><IMG height=203
alt="TU000000-0902-0200-01.gif (1352 bytes)"
src="image/TU000000-0902-0200-01.gif" width=199></P>
<P
align=left>从理论上看,相比关系数据库而言,面向对象数据库具有技术新、效率高的优点。为此,曾经有人大胆预言,面向对象数据库体系结构将迅速取代传统的关系数据库体系结构。但是,事实证明,这一预言是错误的,真正的面向对象数据库系统还有很长的路要走。这其中的原因是多方面的,比如面向对象技术较为复杂、面向对象数据库技术的工业化成熟程度不够高等等。作为一种折衷,利用现有的优势、改造关系数据库并融入面向对象技术,即所谓的对象-关系数据库,则不失为上策。如今,IBM、Oracle、Informix等知名厂商已经宣称其数据库产品支持面向对象技术。</P>
<P
align=left>但是,XML的出现给面向对象数据库注入了新的生机和动力。前面我们提到,当XML同关系数据库相结合时,一般需要将XML文档按元素层次结构拆分后依次存入数据库中的相应字段。显然,这样一来,XML文档的整体性将受到破坏,除非有一个预先设定的小程序对数据库中数据进行整合,否则XML数据将变成一团糟。(当然,如果将数据库字段作为元素的属性看待,也许这种做法倒是可行的。可聪明的读者一眼就能看出,这种假设的前提是,该XML文档将只能表达简单的结构,再复杂一点就不行了。实际上,这种情况简直是难以想象的,因为现实世界是纷繁复杂的。)而面向对象数据库就不同了,因为此时,XML将不再被拆分而是被描述成一个对象存入数据库,其优点显而易见,XML数据的结构和语义信息可以完整地保留下来。XML及其在各个领域的应用前景使得面向对象数据库重新受到广泛重视,一些针对XML的面向对象数据库纷纷推出,例如:Xhive和XML
Repository就是很好的例子。著名的Object Design公司也调整策略,将其面向对象数据库产品ObjectStore融入XML
Server体系之中。值得一提的是,他们还将公司更名为eXcelon,以便更好地体现该公司的战略部署。</P></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -