以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML 与 数据库 』  (http://bbs.xml.org.cn/list.asp?boardid=17)
----  [转帖]淺談XML文件與資料庫管理 - 一個邏輯的和應用的觀點  (http://bbs.xml.org.cn/dispbbs.asp?boardid=17&rootid=&id=6914)


--  作者:无双公子
--  发布时间:4/21/2004 4:11:00 PM

--  [转帖]淺談XML文件與資料庫管理 - 一個邏輯的和應用的觀點
浅谈XML文件与数据库管理 - 一个逻辑的和应用的观点 2003/1/20
--------------------------------------------------------------------------------
作者:谌家兰(国立政治大学 信息管理学系  副教授)

关键词:XML,数据库,Oracle,DB2,SQL Server

一、引言

根据Gartner Group预测,在2004年以前,电子商务中80%的商业文件和讯息交换将会是XML格式。XML( Extensible Markup Language ),延伸式的标记语言,为SGML( Standard Generalized Markup Language ) 的一个子集合,1998年成为W3C推荐标准。XML卷标是在做数据的定义,让定义好的数据直接透过因特网传达于组织间,以及世界各地。是近年来崛起,相当利于资料交流的一种新兴数据模式。现在逐渐成为数据整合与转换时一个好的解决方式。然而面对现存的传统关连式数据库数据来源,又该如何与新兴的XML 文件做结合,以达到数据真正的交流。不同的资料来源现都已有其各自发展成形且运作的相当不错的数据模式与查询语言来管理其数据,但如何让不同的数据模式做一个对应,使得数据可由一种数据模式顺利转换成另外一种数据模式,并同步的作更新以达到真正异质数据来源的交换与整合,是大家所关心的问题。目前的关系型数据库如Oracle、DB2、SQL Server,已渐渐提供其储存XML 檔的方法,而原生性的XML数据库如Software AG Tamino也逐渐受到重视。本文因此就此项重要议题,提出初步之逻辑性的和应用性的观点、分析、和看法。

二、XML属性

XML在因特网上的应用和发展愈趋蓬勃,XML的优点包括:(1)XML是纯文字储存数据,文件能在百年之后还能存取,XML纯文字成为优先考虑。(2)XML使数据互通,在异质系统之间的交流一直是困扰企业的问题,XML提供一种媒介,举凡文件、图形、影音,不论是文字文件或二元文件都能加以标注,以XML为中介格式,即使在不知道对方作业平台、软件的情况下,照样能传递数据,就算某系统变更,也不必变更数据储存方式,不必重新定义传递方式。(3)XML使爬虫程序更精准的搜寻,XML的自订卷标,搜寻引擎可以以卷标为目标作爬虫程序,自动到各网页分析统计数据,由于卷标通常是分析信息的关键,使得未来各式各样的爬虫程序成为网络数据搜集、搜寻、分析的利器。(4)XML使用Unicode,因为XML本来定位为传递媒介,需要考虑到各国语言互通问题,因此最初建构在Unicode统一码上,如此我们可以定义中文化标签。(5)XML呈现、妆扮、和观看的优势,我们可以用CSS/XSLT来定义XML的外观,为同一数据定义在不同情况下不同的呈现方式。也因为外观与内容分开,外观变更时,内容完全不受影响可以达到客制化和延展性效果。

综合言之,XML具备难得的属性:(1)XML为一个开放性的国际标准 (W3C)和厂商中立。(2)XML可支持多种语言与编码方式(Big5)。(3)XML具有严谨的格式定义 (Well-formed and Validation)。(4)XML是中介语言MetaLanguage (Grammar vs. Content)。(5)XML可将檔的架构与表现方式分开设计 (Style, vs. Structure vs. Semantics)并且可以自行剖析。(6)XML具备高度的可扩充性 (Expandable)。(7)XML具备高度的可重用性 (Reusable)。(8)XML具备高度的可互动性 (Interoperable)。(9)XML具备高度的跨平台性 (Portable)。不过XML也有缺点,XML欠缺:(1)有效率的储存能力、(2)文件索引功能、(3)文件安全性、(4)交易与数据完整性、(5)多使用者存取能力、(6)数据触发能力、(7)于多重文件上的查询能力、(8)如何能够有效解决标签和内容同时占用过高空间和网络频宽?

三、XML与数据库

自1996年XML形成,1998年成为W3C推荐标准。XML与数据库亦从2000年开始形成两大阵营。一大阵营是将XML当成是文件、内容、和异质数据,称为文件核心的XML文件管理系统(Document-centric XML Document Management Systems),将XML处理使得人类可以直接阅读,例如电子邮件、书、新闻稿、会议记录,XML只是用来组织他们成为不同的产出格式。另一大阵营是将XML加上XML Schema/DTD,让XML数据微小化、颗粒化、和结构化,形成同质化数据单元,称为数据核心的XML数据管理系统(Data-centric XML Data Management Systems),可以配合不同数据库的数据模式来加以储存、运算、和使用。这两大阵营各自发展,一直到最近2002-2003年开始有合流情形,使得这种一直存在的文件核心与数据核心发展方式,有趋于整合的情形。但是后续如何,成功或失败和是利或是弊?仍有待观察。目前当务之急是解决网络商务和企业整合时,所衍生出的大量XML Documents和XML Schemas的储存、运算、查询、和异动管理的问题。

本文初步分析目前在逻辑上和应用上的一些做法。首先,我们可以根据XML与数据模式的基本原理和数据结构属性,建立比较用和与选择用的准则框架(Framework)。建立模式框架包括8项构面,分别是去询问该项数据库机制:(1)能否数据化单位化XML?(2)能否支持所有XML语法?(3)能否处理XML檔片段?(4)能否搜寻XML文件内容和XML文件结构?(5)能否支持XML应用程序接口开发?(6)能否保留XML所有位和字符?(7)能否支持XML双向转换?(8)能否支持XML与旧有数据库系统直接连接?接者,我们以档案系统(File Systems)、关系型数据库(Relational DBMS, RDBMS)、关联对象式数据库(Relational Object DBMS, ORDBMS)、对象导向数据库(Object Oriented DBMS, OODBMS)、原生性数据库(Native XML DBMS)作为各项选择方案的评比对象,进行一项一项准则符合和不符合分析,然后讨论分析结果的可行性。

我们针对目前几种主流数据库系统分析,说明他们如何处理XML檔,透过概要介绍提供读者另一项考虑和比较的方式。Oracle 9i XML DB使用储存库(Repository) 去储存二元(Binary Large Object, BLOB)和实体XML结构,并使用XML Type 去储存Schema和XML元素成为关联对象式数据库的表格和字段元。在2002-2003年,Oracle 9i XDK Tools软件工具包括以下功能:XML Parser是使用DOM(Document Object Model)和SAX(Simple API for XML)接口。XSLT Processor 是转换XML檔以产出不同格式。XML Schema Processor是支援Java、 C、 C++。XML Class可以自动产生Java/C++ Classes。XML Transviewer Beans可以透过Java组件转换XML文件。XML SQL Utility可以使用SQL的查询结果产出XML檔和XML Schema。XSQL Servlet结合XML、SQL、XSLT去产生动态网页内容。同时,Oracle 9i使用XMLType和URI-REF逻辑性指针直接储存XML的数据在关联对象式数据库表格和字段元当中。Oracle 9i延伸SQL,可以使用SQL/XML并且加上函式表达方法去查询XML数据。Oracle 9i使用DOM去分解和运算XML元素,使用Xpath去搜寻和定位XML元素。

IBM DB2 XML Extender是IBM在因特网上异质数据整合的XML策略方案。IBM希望达到更广的客户基础以便整合因特网应用程序,提升入口网站更新和来自异质因特网数据的实时内容以吸引广告客户,透过整合内部应用程序加速新产品上市时间,连接相关内部和外部业务和市场的分析数据,流畅化在不同的作业和应用程序之信息流。IBM建议利用XML在五个方面进行信息流整合,包括:使用者互动接口的整合,作业流程的整合,应用程序连接的整合,引进容易整合的新技术投资,和信息流的整合。IBM储存XML文件以二元串流(Binary Stream)和转换XML文件和XML Schema成为表格和字段元两种方法进行。

Microsoft SQL Server 2000 and XML Server是以外挂的方式来处理XML数据。将一些常用的功能,透过例如SOAP(Simple Object Access Protocol)来存取XML数据,或是使用特定数据格式,集合成一些SDK及Toolkit来提供XML处理和运算支持。微软使用OpenXML成为Transact SQL的延伸,允许内建和撰写Stored Procedures去处理XML文件以产生ResultSet,再将此ResultSet透过Transact SQL进行一般数据库的新增、删除、修改、和查询动作。

阶层式结构性XML对象似乎与对象导向数据库有直接关联,对象导向数据库的确提供XML在执行持续对象于服务器上一般选项。持续对象即能在透明接口上被XML使用,同时亦可被大量使用者于本地应用或者在因特网。反过来说,对象导向数据库一般熟悉不利点:如利用XML接口传递数据时将不可避免;在实行上,对象导向数据库不足应付高吞吐量和大量数据;亦特别不实用于电子商务之交易作业上;同时,对象导向数据库在执行上复杂,跟关系型导向数据库的旧数据(Legacy Data)整合上效能会严重恶化;对象导向数据库在过去对某些特别利基作业(Niche Application)表现可观,可是XML并非其中最适者。

我们可以考虑新的选择:原生性XML数据库(Native XML Database Management Systems)。这些数据库并不会取代你原来的关联性数据库。而是它们在你的网站应用程序跟后端的数据来源,扮演着高速缓冲储存器的角色,可以用来提升应用程序的速度。除了速度外,原生性XML数据库更有着其它有用的功能。它们提供一套标准的方式,可以将资料从多个后端资料来源转成XML文件,反之亦然。这是改良自过去,你必须为每个数据来源撰写XML数据转换机制的老旧方式。如此一来,所有必须交换XML数据的应用软件,就可以使用单一的原生性XML数据库,把XML文件存入高速缓存,这样就可以大大的减少管理XML交易所引发的额外负担。企业是否需要有一套原生性的XML数据库?端赖于有哪些数据来源需要用XML交易来处理。如果有一个以上的数据来源需要用到XML应用软件,或许就需要一个原生性XML数据库。再者,如果有很多数据需要使用XML形式的交易处理,原生性XML数据库就显得颇具吸引力,可以将交易处理的影响减至最低程度。XML数据库提供了应用程序接口,让你用来整合应用程序与XML数据。

参考数据

1. http://www.w3.org/
2. http://www.xml.org/
3. http://www.xml.org.tw/
4. http://www.nii.org.tw
5. http://www.ebxml.org
6. http://www.ebxml.org.tw
7. http://www.rpbourret.com/
8. http://www.xmldb.org/

原文出处:[URL=http://www.xml.org.tw/]XML台湾信息网[/URL]


[此贴子已经被admin于2004-4-21 18:11:13编辑过]

--  作者:cscandy
--  发布时间:4/23/2004 12:07:00 PM

--  
太长了。慢慢阅读
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
8,087.891ms