Skip to content

ПЕТ-проект. Авиационный процессинг, телеметрия и телематика. SQL-ные базы данных и XML-ные структуры данных, запросы, схемы, преобразования

License

Notifications You must be signed in to change notification settings

tsv19su254052/LoadWorkData-Scripts

Repository files navigation

SQL-ные базы данных и XML-ные структуры данных, запросы, схемы, преобразования.

Структура хранилища с базами данных Снежинка - в центре таблицы с рабочими и оперативными данными (далее по тексту данными), с краев таблицы со справочными данными (далее по тексту справочниками). Далее в работе базы со справочниками на терминальном сервере с MS SQL Server Developer 15-й (выбор компонентов см. снимок экрана ниже),

Установка v14 Выбор компонентов

база с данными на сервере СУБД с MS SQL Server Enterprice 15-й (выбор компонентов см. снимок экрана ниже).

Установка ENU 004

Интерпретаторы Java и Python устанавливаются дополнительно заранее. Модули машинного обучения подкидываются в процессе установки. Отладка автономными распределенными запросами и хранимыми процедурами с разнесенными транзакциями, иногда обернутыми в обработку исключения.

Подключение 003 и результаты распределенного запроса

Подключение 002 и результаты распределенного запроса

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

Модель восстановления баз данных - Полная, так как предусматривается одновременная работа множества клиентов и в хранимых процедурах используются помеченные транзакции. Обслуживание баз данных (проверка целостности, обслуживание индексов, бэкапы) делается обычным способом - на время все действия клиентов ставим на паузу до уведомления о возобновлении работы. Права пользователей на доступ к базам данных соответсвуют их учеткам Windows на SQL Server-е.

Файлы данных *.mdf размещаем на корпоративном быстром желательно SAS-овском HDD средней емкости (интенсивное чтение и запись в разные места), файлы журналов *.ldf - на обычном SATA-овом HDD большой емкости (медленная дозапись в конец), файлы данных и журнала tempdb - на NVMe средней емкости.

Отчеты по базам данных:

SSMS 001

СУБД Полная - Простая - Сжатие - Полная 001 003

СУБД Полная - Простая - Сжатие - Полная 001 004

SSMS СУБД Полная - Простая - Сжатие - Полная 001 002

SSMS СУБД Полная - Простая - Сжатие - Полная 002

tempdb Удалил все записи авиаперелетов

Собрал XML-ные поля в таблицах:

SSMS Делаем XML-ные поля

Считаем, что в XML-ном поле регистрации может быть только один тэг с аттрибутом-строкой, обозначающим какую-то одну регистрацию. Начало временного диапазона со следующей регистрацией считаем окончанием временного диапазона использования с предыдущей. Заполняем только ручным вводом.

Считаем, что в каждом XML-ном поле авиакомпании может быть только один тэг с аттрибутом-идентификатором, указывающим на какую-то одну авиакомпанию. Начало временного диапазона в следующей авиакомпании считаем окончанием временного диапазона использования в предыдущей. Аттрибуты-идентификаторы в разных XML-ных полях могут указывать на одну и ту же авиакомпанию (см. второй абзац "Считаем, что ...").

SSMS - сделал XML-ное поле хабов

Теперь можно не писать XSD-схему вручную с нуля, а сгенерировать в Management Studio (аскетичнее, архаичнее, но срабатывает точнее)

SSMS - XML-код - Создать схему

или в pyCharm-е (удобнее в плане подсветки синтаксиса и автодополнения, есть навигация по структуре).

pyCharm - генерация XSD-схемы

Добавил подмодуль Schematron-а в pyCharm-е:

pyCharm - добавил подмодуль Schematron-а в BaseX

Подправил собранную XSD-схему:

pyCharm - собираю XSD-схему

Вставил собранную XSD-схему в скрипт привязки и привязал ее к базе:

SSMS - привязал схему

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

Коротко отмечу, что в начале XSD-схемы объявляются:

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

Base X - установил плагин Schematron-а

Имя корневого тэга XML-ного поля соответствует имени элемента XSD-схемы. Исходный текст XSD-схемы вставляем в SQL-ный скрипт ее привязки к базе данных. Набрал эталонные XML-ные файлы по хабам и привязал их к собранной XSD-схеме в Management Studio:

SSMS - собираю исходные XML-ный файлы по хабам с привязкой к собранной XSD-схеме

Результаты привязки:

SSMS Сборка XSD-схемы

SSMS - привязал схему к базе 001

Поправки по терминологии:

  • Коллекцию схем XML в Management Studio точнее называть XSD-схемой.
  • Созданием схемы в SQL-ном скрипте правильнее называть привязкой XSD-схемы, потому что она уже собрана и сохранена файлом типа *.xsd.
  • DTD-схемы (старые и малофункциональные) и XDR-схемы (были в ходу короткое время до появления XSD-схем) уже мало применяются.

XML-ные поля пропускаем через XSD-схему:

  • программно на входе хранимой процедуры,
  • программно при вставке или при обновлении строки,
  • при редактировании XML-ного файла с привязкой к XSD-схеме в Management Studio,
  • при ручном вводе XML-ного поля при вызове хранимой процедуры в Management Studio.

About

ПЕТ-проект. Авиационный процессинг, телеметрия и телематика. SQL-ные базы данных и XML-ные структуры данных, запросы, схемы, преобразования

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages