首页 > 学院 > 开发设计 > 正文

将XML存入关系数据库

2019-11-18 11:25:26
字体:
来源:转载
供稿:网友

[翻译] mhss 原著:Igor Dayen


翻译:寒蝉退士(mhss)

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

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






介绍


解决把 XML 有效的、自动的转换出入关系数据库的问题有各种方式。数据库厂商比如 IBM、Microsoft、Oracle 和 Sybase 已经开发了转换 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">


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表