【问题标题】:Converting xml schema to relational model将 xml 模式转换为关系模型
【发布时间】:2010-12-12 20:52:15
【问题描述】:

你们知道,我们如何将 XML Schema 转换为关系模型吗?涉及哪些步骤? 更准确地说,我们如何通过仅查看 XML Schema 来确定表名、列名和这些表上的关系,在关系模型上会是什么样的?

如果您有任何教程链接、示例,请与我分享。 非常感谢您对此提供的帮助。

谢谢

【问题讨论】:

    标签: database-design relational-database datamodel


    【解决方案1】:

    这对于 .NET 来说非常简单。

    创建一个数据集。

    执行 DataSet.ReadXML() 以读取您的 XML 文件。

    循环遍历 DataSet.Tables() 列表,并为每个 Table 循环遍历列以获取字段名称。

    我有一个测试应用可以做到这一点……我会看看能不能找到代码。

    附: - 没找到.. 所以我在http://dot-dash-dot.com/files/wtfxml.zip写了一篇

    WTFXMLSetup_1_6_0.msi ... windows 盒子的安装程序 ...

    【讨论】:

    • 链接已失效:/
    【解决方案2】:

    如果没有 XML 格式的示例,就很难给出答案。一个非常简单的 XML 格式很容易转换,但更复杂的结构或层次结构并不容易,需要一些思考。因此,一个工具真的不适合你。

    一般来说,您还会讨论使用对象数据库 (OODBMS) 与关系数据库 (RDBMS)。对对象数据库的一些研究可能是有序的,但如果您必须使用关系数据库(到目前为止它们更成熟),您将不得不自己进行映射工作。

    【讨论】:

      【解决方案3】:

      架构有多复杂?根据模式定义的结构,您可能会发现没有方便的关系表转换。

      您还没有说您打算如何使用您的数据,但是一些关系数据库支持 xml 类型的列。例如,在 Microsoft SQL Server 2005 及更高版本中,您可以将 xml 文档存储在 xml 类型的列中。然后,您的查询可以使用为 xml data type 定义的内置方法。

      【讨论】:

        【解决方案4】:

        两者本质上是不同的。关系模型是基于集合的; XML 是分层的。

        如果标签有多个带有叶子孙子的孩子,则一种方法可能是使标签名称成为表的名称。子标签名称将是列,而孙标签的文本是值。

        如果孩子有非叶子孙子,则将它们建模为父表和子表之间的一对多关系。

        如果您在 Google 上搜索“XML 模式到关系模式”,将会有几篇论文,其中包括:

        1. http://www.cobase.cs.ucla.edu/tech-docs/dongwon/ecaiot02.pdf
        2. http://msdn.microsoft.com/en-us/library/aa905914(SQL.80).aspx
        3. http://msdn.microsoft.com/en-us/library/bfdchewb(VS.71).aspx

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-01-06
          • 2017-03-28
          • 1970-01-01
          • 1970-01-01
          • 2014-07-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多