Стандартная нейтральная база данных 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.