【问题标题】:Standard database neutral XSD to describe a relational database schema用于描述关系数据库模式的标准数据库中性 XSD
【发布时间】:2009-06-19 18:40:28
【问题描述】:

是否有人知道供应商中立的 XSD 来描述关系数据库架构?我们的系统需要获取有关数据库结构的信息:

  • 表格
  • 列和类型
  • 主键和外键约束
  • 索引

以独立于供应商的方式并将其存储在 XML 文件中以供以后处理。

在我们做我们通常做的事情并自己动手之前。我想做一些研究,看看是否存在人们正在标准化的现有 XSD,因为我认为这对建模工具等并不罕见。我在谷歌上没有找到任何不是数据库供应商特定的东西。如果您知道现有的公共标准,我将非常感谢您提供链接。

提前致谢,

特伦斯

【问题讨论】:

  • 您正在寻找描述架构,对,而不是架构的实例?不符合架构的数据?
  • 为什么不只存储构建数据库所需的 SQL?是我错过了什么,还是你呢?
  • 棘手的部分是,虽然表结构本身可能相当简单,但特定供应商生成的 XSD 很可能有自己的命名空间扩展,以专门符合他们的产品。如果我认为是问题所在,则无需自己编写代码即可找到更通用的东西。
  • John - 是的,我希望描述架构而不是数据。 Pesto - Dille-O 对您的评论的回答是完全正确的。 Dille-O - 感谢您的澄清。

标签: xsd entity-relationship relational-database database-agnostic


【解决方案1】:

这并不是您要寻找的,但PostgresSQL Wiki 有一个关于 XML 导出的有趣部分,描述了它们如何同时支持 SQL 和 XML。它显示了有关如何将表导出为 XML 和支持它的 XSD 的部分,这看起来相当通用。它可以作为您创建自己的模型。

Wiki 讨论了对 ISO/IEC 9075-14:2006 标准的引用,该标准似乎已被一些大型供应商用作基准。我在 ISO 网站上快速浏览说:2006 是 updated 到 2008。我相信您可以找到一个涵盖的规范,您无需付费即可下载。

文章还指出了一个有点过时的SQL/XML standard 定义,但如果您正在寻找一些基础知识,它可以满足您的需求。

【讨论】:

  • 我看了看,标准的成本为几百美元,所以我将利用 Postgres 家伙所做的事情。谢谢你和马克的想法。
【解决方案2】:

有趣的问题 - 我不知道有什么标准或工具可以实现这一点。

您几乎必须为您要定位的每个单独的数据库系统提供某种带有适配器的“中和”版本 - 即使只是映射所有各种数据类型(SQL Server 中的 VARCHAR 和 NVARCHAR,Oracle 中的 VARCHAR2 和等等)。

您可能只使用 SQL:2003 标准中定义的类型 - 但即便如此,您可能仍然需要某种特定于供应商的映射/适应类型。更不用说对特定于供应商的实现细节的某种支持(例如 SQL Server 中的 IDENTITY 列与 Oracle 中的 SEQUENCE 等)。

非常有趣的问题!我希望其他人能够更多地了解这个问题,并推荐一个现有的工具。

如果没有,并且您决定自行开发 - 考虑在 CodePlex 或 Google Code 上将其开源!我相信很多人都会最感兴趣!

马克

【讨论】:

  • 如果我们必须推出自己的产品并且它不臭 :-) 我们一定会考虑将其开源。干杯特伦斯
【解决方案3】:

OMG 的 UML 信息管理元模型 (IMM) 规范值得一试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 2014-06-19
    • 2011-04-15
    相关资源
    最近更新 更多