5

是否有人知道供应商中立的XSD来描述关系数据库模式?我们的系统需要抓取信息有关数据库的结构:用于描述关系数据库模式的标准数据库中立XSD

  • 列和类型
  • 主键和外键约束
  • 指标

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

在我们做我们通常做的事情并且推出我们自己的产品之前。我想做一些研究,看看是否有现有的XSD,人们正在对其进行标准化,因为我认为这对于建模工具等并不罕见。我没有在Google上找到任何与数据库供应商无关的东西。如果您知道现有的公共标准,我将非常感谢链接。

由于提前,

特伦斯

+0

您正在寻找描述模式的权利,而不是模式的实例?不符合模式的数据? – 2009-06-19 18:46:09

+1

为什么不直接存储构建数据库所需的SQL呢?我错过了什么,或者你是? – Pesto 2009-06-19 19:06:21

+0

棘手的部分是,虽然表结构本身可能相当简单,但由特定供应商生成的XSD很可能会有自己的名称空间扩展来特别符合其产品。如果我认为是问题,则可以找到更通用的代码,而无需自行编写代码。 – 2009-06-19 19:17:43

回答

2

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

Wiki谈到引用ISO/IEC 9075-14:2006标准,似乎被几个大型供应商采纳为基准。我在ISO网站上快速浏览说:2006年是updated到2008年。我相信你可以找到一个覆盖规范,你不必付费下载。

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

1

有趣的问题 - 我不知道有任何标准或工具来实现这一点。

您几乎不得不为每个想要定位的数据库系统提供适配器的“中和”版本 - 甚至只是映射所有各种数据类型(SQL Server中的VARCHAR和NVARCHAR,Oracle中的VARCHAR2等等)。

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

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

如果不是,并且您决定推出自己的产品 - 请考虑在CodePlex或Google Code上开放源代码!我相信很多人会最感兴趣!

MARC

0

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