您的位置:首页 >> 编程开发 >> .NET >> XML/SOAP >> 正文
XML/SOAP RSS
 

将XML存入关系数据库

http://www.rdxx.com 05年07月27日 21:52 CSDN 我要投稿

关键词: 关系数据库 , XML , 数据 , 关系
 

原着:Igor Dayen
June 20, 2001

翻译:寒蝉退士(mhss)

译者声明:译者对译文不做任何担保,译者对译文不拥有任何权利并且不负担任何责任和义务。

原文http://www.xml.com/pub/a/2001/06/20/databases.html

介绍:

解决把 XML 有效的、自动的转换出入关系数据库的问题有各种方式。数据库厂商比如 IBM、Microsoft、OracleSybase 已经开发了转换 XML 到数据库表中的辅助工具。各种解决方案如下。

  • Oracle XML SQL Utility 把 XML 文档元素建模为一组嵌套的表。通过使用 Oracle 对象数据类型建模套入的元素。"SQL-to-XML"转换使用被对象数据类型引用的表,和嵌套的元素之间的一到一关联来构造 XML 文档。"XML-to-SQL"可能要求数据模型的改进(从关系转换到对象-关系)或重新构造最初的 XML 文档。
  • IBM DB2 XML Extender 允许存储 XML 文档为 BLOB 式的对象或分解到一组表中。后者得变换叫做 XML 收集,以 XML 1.0 语法定义。
  • Microsoft 通过扩展 SQL-92 并介入 OPENXML 行集来解决问题。
  • Sybase Adaptive Server 介入 ResultSetXml Java 类作为在两个方向上处理 XML 文档的基础。


在这篇文章中,我们将详细讨论这些厂商的解决方案。此后,我们将尝试回答下列问题:

  • 我们可以调整并简化问题吗?
  • 在异构数据库环境中正确的途径是什么?
  • 我将使用下列词汇表作为一个例子。


<!-- 简单类型 -->

<!ELEMENT CURRENCY1   (#PCDATA)>
<!ATTLIST CURRENCY1    e-dtype    NMTOKEN   #FIXED  "string"
                        e-dsize    NMTOKEN   #FIXED  "3">

<!ELEMENT CURRENCY2   (#PCDATA)>
<!ATTLIST CURRENCY2    e-dtype    NMTOKEN   #FIXED  "string"
                        e-dsize    NMTOKEN   #FIXED  "3">

<!ELEMENT AMOUNT      (#PCDATA)>
<!ATTLIST AMOUNT       e-dtype    NMTOKEN   #FIXED  "decimal">

<!ELEMENT SETTLEMENT  (#PCDATA)>
<!ATTLIST SETTLEMENT   e-dtype    NMTOKEN   #FIXED  "date">

<!ELEMENT BANKCODE    (#PCDATA)>
<!ATTLIST BANKCODE     e-dtype    NMTOKEN   #FIXED  "string">

<!ELEMENT BANKACCT    (#PCDATA)>
<!ATTLIST BANKACCT     e-dtype    NMTOKEN   #FIXED  "string">

<!-- 派生类型 -->

<!ELEMENT ACCOUNT  (BANKCODE, BANKACCT)>

<!ELEMENT FXTRADE  (CURRENCY1, CURRENCY2, AMOUNT, SETTLEMENT, ACCOUNT)>




Oracle XML-SQL Utility (XSU)


SQL 到 XML 的映射
Oracle 把对象引用链从数据库转换到 XML 文档的层次结构中。在对象-关系数据库,在表 FXTRADE 中的字段 ACCOUNT 被建模为类型 AccountType 的一个对象引用:

9 7 3 1 2 3 4 5 6 7 4 8 :


 
 
标签: 关系数据库 , XML , 数据 , 关系 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站