`
aladdin_leon
  • 浏览: 118844 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

[转]XML与关系数据

阅读更多
     XML作为一种可扩展标记语言,其自描述性使得XML本身非常适用于异构应用间的数据交换,而且这种交换不以预先规定的数据结构定义为前提因此具备很强的开放性和广阔的应用前景,而现有的几乎所有大型应用系统都是和数据库相关联的,所以以XML中性载体进行数据交换和信息共享必然要和数据库相联系,同时,基于XML的数据交换,实现数据库的XML数据双向存取,才能将XML数据同具体应用程序集成,进而使之同现有的业务规则相结合,最后真正实现基于XML的分布式数据交换与信息共享。所以,XML技术和数据库技术的结合就成为必然的趋势,在XML文档和数据库之间实现数据的双向传输就成为XML技术应用研究的热点之一。     
     从技术角度讲,XML和关系数据同属于数据管理的手段。狭义的XML仅仅指一种语言和采用该语言所描述的XML文档,广义的XML包括XML语言、XML文档以及所有与XML相关的工具和技术,例如,XML解析器及解析技术,XML转换技术(XSL、XSML)等。广义的XML与DBMS大致具有相似的作用  XML与DBMS相同之处是:
      ---- 提供数据存储,关系数据以数据库系统为手段、XML以文件系统为手段。
      ---- 提供对数据的直接存取访问,两者都不需要用户关心数据的物理结构。
      ---- 提供数据的模式描述:XML采用DTD(Document Type Definition,文档类型定义)或XML Schema(XML规范)来描述数据的逻辑结构;关系数据通过关系模式来描述数据的逻辑结构。
      ---- 提供应用逻辑接口:XML采用SAX(Simple API for XML)和DOM(Document Object Model)定义应用编程接口,使应用程序能够访问和更新XML文档的样式、结构和内容;关系数据采用ODBC、JDBC、OLEDB等。     
     作为两种相近的技术,人们不禁要问:    
      ---- 问题一:为什么不用XML替代关系数据,直接将数据存放在可实现Web环境下信息共享与数据交换的XML文件中,以利于直接交换?     
     ---- 问题二:为什么有了关系数据,还需要采用XML技术?    
     ---- 问题三:如果互相不能替代,XML和关系数据库在现实应用中应该是什么样的关系?     
      带着以上问题,对这两种技术进行分析比较。    
      XML比关系数据的优点:
      ---- 跨平台。
      ---- 直接动态支持Web操作。
      ---- XML在数据描述方面灵活、可扩展、自描述。     
      XML比数据库的不足:
     ---- 数据存取的高效性,索引功能可以极大的提高数据的查询速度。
     ---- 并发访问机制。
     ---- 强大的安全机制。    
    相对XML关系数据库的优势在于:
     ---- 技术成熟、应用广泛。
     ---- 数据管理能力强(包括存贮、检索、修改等)。
     ---- 数据安全程度高。
     ---- 稳定可靠的并发访问机制等。
    另一方面,随着Web技术的不断发展,信息共享和数据交换的范围不断扩大,传统的关系数据库也面临着挑战。
      ---- 第一,数据库技术的应用是建立在一定的数据库管理系统基础上的,各数据库管理系统之间的异构性及其所依赖操作系统的异构性,严重限制了信息共享和数据交换范围。
      ---- 第二,数据库技术的语义描述能力差,大多通过技术文档表示,很难实现数据语义的持久性和传递性,而数据交换和信息共享都是基于语义进行的,这样在异构应用数据交换时,不利于计算机基于语义自动进行正确数据的检索与应用。
     ---- 第三,数据库属于高端应用,需要昂贵的价格和运行环境等服务。     
     总之,数据库在数据管理方面具有管理方便、存贮容量小、检索速度快、修改效率高、安全性好等优点,但客观上需要用一种应用方式将其丰富的数据有效的发布出来,以消除平台差异、增强语义描述功能、降低环境要求。    
    相对于数据库技术,XML技术在数据应用方面具有很多优点。  
     ---- 第一,跨平台,XML文件为纯文本文件,不受操作系统、软件平台的限制。
     ---- 第二,易表义,XML具有基于Schema自描述语义的功能,容易描述数据的语义,这种描述能为计算机理解和自动处理。
     ---- 第三,XML不仅可以描述结构化数据,更可以有效描述半结构化、甚至非结构化数据。
     另一方面,XML技术在数据管理方面存在缺点 
     ---- 首先,XML技术采用的是基于文件的管理机制、文件管理存在着容量大、管理困难的缺点。
     ---- 第二,目前XML的检索是基于节点的检索,存放大量甚至海量数据的XML文件造成检索速度极低。
     ---- 第三,解析手段有缺陷,XML具有两种解析机制,SAX方式是基于文件的解析,速度慢,DOM方式是基于内存的方式,资源消耗极大
     ---- 第四,修改效率低,目前XML的修改是基于节点的。
     ---- 最后,XML的安全性及并发操作机制也是需要解决的问题之一。     
     总之,XML在数据应用方面上具有易表义、跨平台等优势,但客观上需要一种有效的存贮、检索和修改等方面的管理机制。    
     从上述分析不难得出,在数据管理方面数据库尤其是关系数据库具有其它方式(包括普通文件、XML文件、对象数据库)无法比拟的优越特性;另外,在数据应用方面,尤其是在Web信息共享及异构应用数据交换方面,XML又具有其它技术无法比拟的优点。    
      到此,上述问题的答案便很明了。    
      ---- 问题一:人们在现实中还是习惯用关系数据库管理数据,绝非仅仅习惯使然,更深层的原因是XML缺乏象关系数据库这样的有效的数据管理手段,造成数据存贮管理困难、检索修改效率极低,这同时也是制约XML技术普及的因素之一,XML尚不能代替关系数据库。    
     ---- 问题二:通过XML技术降低数据库的使用条件、可以使其中丰富的数据资源得到利用。并且XML在异构数据交换方面具有很大优势。    
     ---- 问题三:XML和关系数据库分别在数据应用和数据管理方面各有优势(如上所述),应是一种相辅相成、扬长避短的关系。     
     于是从技术角度讲,“以关系数据为存贮手段,以XML为交换载体”的数据管理模式就成为一种趋势。XML存放在关系数据库中,XML数据以虚拟XML文档的形式存在,从用户的角度,XML文档和数据库之间的区别是不透明的。数据库中存在的产品数据虚拟的XML文档,对用户而言,重要的不是数据存在何处,而是数据的逻辑结构合理性和操作界面的方便性。    
分享到:
评论

相关推荐

    xmlvalue xml与C++数据结构的互相转换

    通过这些文件,开发者可以查看具体的实现细节,学习如何在实际项目中进行XML与C++数据结构的互转。 总结来说,XML与C++数据结构的互相转换是软件工程中常见的需求,特别是在需要跨组件通信时。通过选择合适的XML...

    XML与关系数据交换 Relational_and_XML_Data_Exchange

    ### XML与关系数据交换知识点详解 #### 一、引言 《XML与关系数据交换》是一本由Marcelo Arenas、Pablo Barceló、Leonid Libkin和Filip Murlak共同编写的专著,该书由Morgan & Claypool出版社于2010年出版。本书...

    扩展哈弗曼前缀编码实现XML数据与关系数据转换

    《扩展哈弗曼前缀编码实现XML数据与关系数据转换》 XML(Extensible Markup Language)作为一种半结构化数据格式,广泛应用于企业生产线上的数据交换和存储,由于其可扩展性和跨平台特性,成为了信息传递的重要载体...

    XML文档数据库数据之间的转换原理及转换对象

    通过理解和应用适当的映射方法,可以有效解决XML数据与关系数据库之间的兼容性问题,实现数据的无缝交换和高效利用。随着Web应用的不断发展,XML作为数据交换的标准格式,其与关系数据库的整合将成为数据管理领域的...

    XML与数据库数据的交互技术研究

    本文主要探讨了XML与关系数据库数据之间的交互技术。从XML(可扩展标记语言)与关系数据库的特点出发,阐述了两者之间的相互转换方法,并通过具体实例说明了XML与数据库之间的转换过程。 #### 关键词 XML、DTD...

    Map转换成xml

    #### 一、理解Map与XML的关系 `Map`是Java集合框架的一部分,它存储键值对。而XML(eXtensible Markup Language)是一种用于标记数据的标准,被广泛用于数据存储和交换。将`Map`转换为XML涉及将键作为元素名,值...

    将关系型数据库MySQL存储数据转换为XML文件的实现

    【MySQL与XML之间的数据转换】 随着信息技术的飞速发展,数据传输的需求日益增强,XML(eXtensible Markup Language)因其强大的数据交换能力和结构描述能力,成为网络数据交互的重要工具。MySQL作为广泛应用的关系...

    XML文档到关系数据库的直接转换

    2. 基于XML文档的对象树模型,其中元素对应对象或属性,适用于面向对象或树状数据库,亦可通过对象-关系映射技术转至关系数据库。 然而,这两种方法各有不足,前者对XML文档格式要求严格,后者则涉及复杂的面向对象...

    Object转xml或xml转Object

    在Java中,可以通过注解(@XmlElement、@XmlAttribute等)来指定对象属性与XML元素的映射关系。如果XML结构复杂,可能需要定义多个类来构建对象模型。 Object转XML时,我们需要先定义好对象的类结构,然后创建对象...

    sql 数据转化为XML 格式的数据

    在IT领域,SQL(Structured Query Language)是一种用于管理和处理关系数据库的强大语言,而XML(eXtensible Markup Language)则是一种用于存储和传输数据的文本格式。这两种数据格式各有其优势,SQL适合于结构化的...

    任意类型数据库提取数据转XML文件

    程序可以根据用户的设置文件appconfig.xml从关系型数据库中提取信息,生成具有层次关系的XML,可用于BI的ETL或者数据迁移。ELEMENT元素用户设置关系型数据库的表名称(TABLE属性)、外键名称(FOREIGNKEY)、父元素名称...

    Oracle8i XML Reference Guide Release 3 (8.1.7)

    在Release 3 (8.1.7)中,Oracle提供了多种处理XML数据的方法,包括存储XML文档、查询XML数据、转换XML与关系数据等。 2. **存储XML**:Oracle8i引入了XMLType数据类型,允许直接在数据库中存储XML文档,这极大地...

    Excel转Xml工具

    总结来说,"Excel转Xml工具"是为了方便用户将Excel数据转换为XML格式,以便于在软件测试环境中,特别是与TestLink系统的交互中,更高效地管理和导入测试数据。这个工具简化了数据格式转换的过程,提高了工作效率,...

    XML与关系模型的映射

    同时,也可以设计反向映射,将关系数据转化为XML,以满足数据交换或接口的需求。 总之,XML与关系模型的映射是数据管理和集成的关键技术之一,它允许我们在充分利用XML的灵活性和结构化特性的同时,利用关系数据库...

    电子病历与XML的关系

    ### 电子病历与XML的关系:深度解析 在数字化医疗时代,电子病历(Electronic Health Record,EHR)成为医疗机构信息管理的核心。随着信息技术的发展,尤其是XML(Extensible Markup Language,可扩展标记语言)的...

    XML的研究与应用

    本文主要介绍了DTD、CSS、XSL与XML文档之间的关系,以及如何将ACCESS数据库的数据直接转换为网页或XML文档。这些技术的应用有助于提高数据处理的效率和一致性,对于实现跨平台数据交换具有重要意义。

    C# DataSet和XML文件的相互转换

    6. `DataSet`与XML的数据关系: 当`DataSet`包含数据关系(如主键-外键关系)时,`WriteXml`会生成一个带有关系信息的XML文件。同样,`ReadXml`在适当的情况下会重建这些关系。 7. 性能考虑: 尽管`DataSet`和XML...

    EXCEL文件转XML文件

    2. **XML的基本概念**:XML文件由元素(Element)、属性(Attribute)和文本内容(Text Content)构成,通过嵌套元素来表示层级关系,用属性来描述元素的特性。XML的结构严谨,适合机器解析和生成。 3. **转换方法*...

    html转xml小工具,包括源码

    在HTML与XML之间进行转换的主要原因是XML的结构化特性。XML(eXtensible Markup Language)是一种标记语言,它定义了严格的规则来组织数据,使得数据易于解析和机器读取。相比之下,HTML(HyperText Markup Language...

    跟据XML格式转换数据到excel

    这可能涉及到对XML节点的层次关系理解,以及如何正确地分配数据到工作表的不同区域。 3. **创建Excel工作簿**:根据映射规则,开始创建Excel工作簿。每个XML元素或子集可能对应一个工作表,而元素的属性和值则填充...

Global site tag (gtag.js) - Google Analytics