Стандартная нейтральная база данных XSD для описания схемы реляционной базы данных

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

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

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

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

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

Terence

3 ответа

Решение

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

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

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

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

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

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

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

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

MARC

Возможно, стоит попробовать спецификацию UML Metamodel (IMM) управления информацией от OMG.

Другие вопросы по тегам