Стандартная нейтральная база данных XSD для описания схемы реляционной базы данных - PullRequest
5 голосов
/ 19 июня 2009

Кто-нибудь знает о независимом от поставщика XSD для описания схемы реляционной базы данных? Наша система должна получить информацию о структуре базы данных:

  • Таблица
  • Колонны и типы
  • Ограничения первичных и внешних ключей
  • Индексы
  • и т.д.

независимым от поставщика способом и сохраните его в файле XML для последующей обработки.

Прежде чем мы сделаем то, что мы обычно делаем, и свернем свое. Я хотел провести некоторое исследование и посмотреть, существует ли существующий XSD, к которому люди стандартизируют, что, как я полагаю, не является необычным требованием для инструментов моделирования и тому подобное. Я не нашел в Google ничего, что не было бы привязано к поставщику базы данных. Если вы знаете о существующем публичном стандарте, я был бы очень признателен за ссылку.

Заранее спасибо,

Terence

Ответы [ 3 ]

2 голосов
/ 19 июня 2009

Это не совсем то, что вы ищете, но PostgresSQL Wiki имеет интересный раздел об экспорте XML, который описывает, как они поддерживают SQL и XML вместе. Он отображает раздел о том, как таблица будет экспортироваться в виде XML, и XSD, который ее поддерживает, что выглядит довольно обобщенно. Это может послужить вам примером для создания собственного.

В Wiki говорится о ссылке на стандарт ISO / IEC 9075-14: 2006, который, как представляется, принят несколькими крупными поставщиками в качестве основы. Я быстро просматриваю сайт ISO, на котором написано, что: 2006 был обновлен до 2008 года. Я уверен, что вы можете найти покрытую спецификацию этого, за которую не нужно платить за загрузку.

В статье также указывается на стандарт SQL / XML определение, которое несколько устарело, но может удовлетворить ваши потребности, если вы ищете некоторые основы.

1 голос
/ 19 июня 2009

Интересная проблема - я не знаю ни одного стандарта или инструмента для достижения этой цели.

Вам почти понадобится какая-то «нейтрализованная» версия с адаптерами для каждой отдельной системы баз данных, на которую вы хотите ориентироваться - даже просто для сопоставления всех различных типов данных (VARCHAR и NVARCHAR в SQL Server, VARCHAR2 в Oracle и и так далее.

Вы можете просто использовать типы, определенные в стандарте SQL: 2003, но даже тогда вам, вероятно, все равно придется иметь какое-то специфическое отображение / адаптацию для конкретного поставщика. Не говоря уже о некоторой поддержке деталей реализации, зависящих от поставщика (например, столбцы IDENTITY в SQL Server против SEQUENCE в Oracle и другие).

Очень интересный вопрос! Я надеюсь, что другие смогут пролить больше света на эту проблему и, возможно, порекомендовать существующий инструмент.

Если нет, и вы решите свернуть свое собственное - подумайте о том, чтобы сделать его открытым с помощью CodePlex или Google Code! Я уверен, что многие люди будут заинтересованы больше всего!

1011 * MARC *

0 голосов
/ 31 июля 2009

Спецификация OMG Metamodel (IMM) от OMG может стоить попробовать.

...