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

Вопрос или проблема

В моей работе мы сейчас создаем базу данных из множества XSD (50-100) для создания отчетов. Это ограничение, установленное министерством, так что мы ничего не можем с этим поделать. Проблема в том, что делать это вручную без ошибок практически невозможно: множество недостающих внешних ключей и изолированных таблиц, поэтому я ищу программное обеспечение, которое может принять весь пакет XSD и сгенерировать всю структуру базы данных. Я проверил XSD2DB, который не может подключиться к моей базе, и XMLSpy от Altova, который дорогой и не решает мою проблему, так как я вынужден загружать каждый XSD отдельно и без ключей, связывающих его с другими таблицами.

Требования в наилучшем случае были бы такими:

  • Сгенерировать структуру БД, учитывая пакет XSD
  • Подключение к MySQL
  • Открытый исходный код > Бесплатно > Платно
  • Совместимость с Python
  • Возможность графически видеть и манипулировать полученной структурой БД

Наиболее важный пункт — это первый, пожалуйста и спасибо!

Вы запрашиваете много, и я не думаю, что вы найдете что-то готовое в продаже.

Вы не сказали, как связаны различные XSD-схемы, например, есть ли дублирование между ними, есть ли у них связи друг с другом, и являются ли они в принципе согласованными.

Как правило, XSD-документы описывают форматы сообщений, а формат сообщения — это не модель данных. Например, могут быть сообщения, связанные с созданием нового клиентского аккаунта или изменением адреса клиента, и вывод модели данных из этого (“у клиентов есть несколько адресов”) включает процесс синтеза, который не может быть полностью автоматизирован. Это особенно верно, если различные документы схем используют несогласованные названия или данные для одних и тех же сущностей и свойств. Задача синтеза модели данных и степень, в которой программные инструменты могут помочь в процессе, будут сильно зависеть от уровня согласованности, который вы найдете.

Вы также не сказали, какой тип базы данных вы реализуете, но я предполагаю, что это реляционная база данных (а не, скажем, XML-база данных). Это предполагает, что у вас здесь действительно двухступенчатый процесс: сначала синтезировать модель данных через нисходящий анализ сообщений XSD; затем провести обычно процессы нормализации для построения реляционной схемы на основе концептуальной модели данных. И предполагается, что в конце вы хотите, чтобы возникла какая-то картография от сообщений к таблицам.

Ответ или решение

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

Этапы разработки структуры базы данных из XSD файлов

Анализ и обработка XSD файлов

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

Создание концептуальной модели данных

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

Инструменты для автоматизации процесса

  • Apache DataSketches: Это библиотека для анализа и обработки больших объемов данных. Она может быть полезной для предварительного анализа XSD файлов.
  • XML Schema Object Model (XSOM): Это библиотека, которая позволяет работать с XSD на уровне Java, может быть полезна для анализа структуры данных.
  • PyXB (Python XML Schema Bindings): Пакет для работы с XSD на языке Python, который позволяет создавать классы Python из XSD. Это крайне полезно, если вы ориентированы на использование Python.

Синтез реляционной модели и интеграция с MySQL

После того как концептуальная модель создана, необходимо её преобразование в реляционную модель данных. Здесь уже можно использовать возможности реляционных баз данных для автоматизации этого процесса. Желательно обеспечить поддержку манипуляции структурой базы графическим интерфейсом, что облегчило бы вашу работу.

  • MySQL Workbench: Это достаточно мощный инструмент, поддерживающий визуальное проектирование архетектуры базы данных.
  • DBDiagram.io: Это онлайн-сервис для создания диаграмм ER, который упрощает понятие структуры данных и совместимость с популярными базами.

Заключение

В целом, автоматизация процесса синтеза базы данных из XSD файлов требует тщательного анализа и понимания каждой схемы. Полностью автоматизированного решения, вероятно, не существует в силу уникальности каждой используемой схемы. Вам, возможно, придется создавать собственные скрипты, в частности на языке Python, комбинируя инструменты и библиотеки для достижения наилучших результатов. Обязательным этапом станет тестирование полученной базы на наличие ошибок и её поддержка со стороны соответствующего программного обеспечения, такого как MySQL и совместимые визуальные инструменты.

Оцените материал
Добавить комментарий

Капча загружается...