XML到SQL的转换

我知道这不是一个非常直接的问题,但是如何设计一个SQL数据库来存储来自XML文件的数据?(您没有XML模式,只是一个纯XML,包含许多不同的标记名,属性和嵌套元素)。

这比技术更概念化。 我们如何从分层数据模型(XML)转向关系模型(SQL)。


如果你没有模式,并且想要使用传统的RDBMS,传统的关系方式,那么你基本上已经搞错了。

但是您可以在所有主要数据库系统中使用XML数据类型(在Oracle(> 9i),MS SQL(> 2005),Postgres,DB2中)。 这使您可以使用XPath表达式来处理XML内容,这非常简洁。

还推荐阅读:

  • Microsoft SQL Server 2005/2008:XML vs text / varchar数据类型
  • 或者,您可以跳过将您的层次模型转换为关系型,因为这似乎是Cassandra或MongoDB等NoSQL数据库的完美用例。

    (最初发表评论,但我认为这可能值得成为一个答案...)


    那么,问题是什么? 将树表示为关系很简单。

    NODE ( id, tag-name, text )
    ATTR ( id, attr-name, attr-value )
    NODEATRR ( node-id, attr-id )
    NODENODE ( node-id, child-node-id )
    

    我希望,关系之间的关键和联系是显而易见的。 这很丑陋,字符串型,当然,但如果你想存储任意的XML,那就是你所得到的。


    SQL中有一些巧妙的树编码方案。 再次,即使巧妙的树编码也不如设计合理的数据库模式。

    链接地址: http://www.djcxy.com/p/11387.html

    上一篇: XML to SQL conversion

    下一篇: Moving text circularly on web page