Стандартный XSD, нейтральный к базе данных, для описания схемы реляционной базы данных
-
06-07-2019 - |
Вопрос
Кто-нибудь знает о нейтральном к поставщику XSD для описания схемы реляционной базы данных?Нашей системе необходимо собирать информацию о структуре базы данных:
- Таблицы
- Столбцы и типы
- Ограничения первичных и внешних ключей
- Индексы
- и т.д.
независимым от поставщика способом и сохраните его в XML-файле для последующей обработки.
Прежде чем мы сделаем то, что мы обычно делаем, и свернем наше собственное.Я хотел провести некоторое исследование и посмотреть, существует ли существующий XSD, который люди стандартизируют для того, что, как я полагаю, не является необычным требованием к инструментам моделирования и тому подобному.Я не нашел в Google ничего, что не относилось бы к конкретному поставщику базы данных.Если вы знаете о существующем общедоступном стандарте, я был бы очень признателен за ссылку.
Заранее спасибо,
Теренс
Решение
Это не совсем то, что вы ищете, но 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, но даже тогда вам, вероятно, все равно пришлось бы иметь какое-то отображение / адаптацию для конкретного поставщика.Не говоря уже о какой-то поддержке деталей реализации, зависящих от конкретного поставщика (например, столбцов идентификаторов в SQL Server по сравнениюПОСЛЕДОВАТЕЛЬНОСТЬ в Oracle и других).
Очень интересный вопрос!Я надеюсь, что другие смогут пролить больше света на этот вопрос и, возможно, порекомендуют существующий инструмент.
Если нет, и вы решите создать свой собственный - подумайте о том, чтобы сделать его с открытым исходным кодом в CodePlex или Google Code!Я уверен, что многим людям было бы очень интересно!
Марк
Возможно, стоит попробовать спецификацию UML Information Management Metamodel (IMM) от OMG.