Разработка АИС - Разработка автоматизированной информационной системы для устранения различий в структурах баз данных разработчиков, при работе над общим проектом с использованием системы контроля версий
Алгоритм работы.
В результате работы АИС генерируются три xml документа - два со структурой сравниваемых баз данных и один с результатами сравнения. В зависимости от переданных параметров система АИС может зафиксировать текущее состояния БД, показать, что изменилось с момента последней фиксации, сгенерировать запрос для унификации БД и выполнить его. Так же формируется история изменений структуры БД в виде отдельных changeset-файлов, хранящихся также в репозитории СКВ.
Для создания xml файла со структурой БД необходимо иметь доступ к чтению служебной базы данных MySQL information_schema. Название базы и файл, в который будет записана структура, передаются в качестве параметров при вызове qdb create.
Алгоритм работы АИС можно разделить на несколько частей:
Ѕ при внесении изменений в текущий проект;
Ѕ при скачивании изменений с сервера и объединении проекта.
Внутреннее устройство АИС.
АИС состоит из нескольких частей:
- А) Команды запуска:
- - qdb. bat; - qdb. sh; - start. php.
- - qdb init; - qdb create; - qdb status; - qdb run; - qdb commit; - qdb update.
- - qcreatedatabase; - qdatabase; - qchangeset; - qshow; - qbuild.
- - database. xml; - databaseOld. xml; - databaseLastRevision. xml; - папка changesets; - done_changesets. txt; - файлы истории изменений вида changeset. date. username. time. xml
Команды qdb. bat и qdb. sh выполняют одинаковую функцию -- получают параметры, передаваемые пользователем, и перенаправляют их в файл start. php. Разница в написании этих двух файлов заключается в том, что "qdb. bat" запускается в ОС Windows, а "qdb. sh" -- в Unix системах. Т. к. при установке АИС в переменную окружения "PATH" добавляется путь к папке с дистрибутивом "qdb", то при работе с АИС указывать расширение файлов необязательно.
Файл start. php обрабатывает получаемые параметры и, в случае корректного вызова команды, передает управление в соответствующий файл. В случае, когда вызов команды производится с ошибкой (Рис. 12), пользователю предлагается ознакомиться с правилом вызова команд (Табл. 2).
Рис. 12 -- Пример вывода сообщений пользователю
Таблица 2. Возможные ключи для вызова qdb команд при работе с АИС
|
Init |
Используется для инициализации проекта. |
|
Create |
Создает исходный вариант структуры БД. |
|
Status |
Показывает текущее различие между xml документом со структурой БД и физической структурой БД. |
|
Run |
Если есть различия, то генерирует DDL запрос к БД и выполняет его. |
|
Commit |
Фиксирует проделанные изменения и добавляет файлы под контроль СКВ. |
|
Update |
При скачивании изменений с сервера автоматически определяет разницу между структурами БД сервера и ПК разработчика. |
Класс qcraetedatabase используется для создания xml структуры базы данных. Он содержит массив со значениями по умолчанию для всех типов полей MySQL. Подключение к базе данных и выборка данных производится с помощью класса "mysqli". Xml файл формируется с помощью расширения SimpleXML.
Класс qdatabase предназначен для преобразования xml файла со структурой БД в объект, получения массива объектов значений по умолчанию для различных типов полей, получения типа колонки по ее названию, получения используемых ключей и индексов.
Класс qchangeset предназначен для получения и записи результатов сравнения двух файлов xml со структурой БД итоговый xml файл.
Класс qshow преобразует xml файл с изменениями в объект и предоставляет пользователю результат сравнения в удобочитаемом виде.
Класс qbuild, также как и класс qshow, преобразует xml файл с изменениями в объект, но результат подготавливает в виде уже сформированного sql запроса, который необходимо выполнить для устранения различий в структуре БД.
Qdb init - используется для инициализации проекта. При выполнении данной команды, в директории запуска создается метка - папка ".qdb". В этой папке будут храниться файлы с данными (Рис. 13):
- - database. xml - содержит структуру используемой базы данных в xml формате. Предполагается что добавление (изменение, удаление) таблиц, полей, индексов будет проводиться не через программу HeidiSQL, а напрямую в данном файле; - databaseOld. xml - также содержит структуру используемой базы данных в xml формате и служит для получения различий между текущей версией БД и структурой БД до выполнения предыдущих DDL запросов; - databaseLastRevision. xml - аналогично двум вышеуказанным файлам содержит структуру БД в xml формате и, так же как и databaseOld. xml, служит для получения различий, но в отличие от databseOld. xml файл databaseLastRevision. xml содержит структуру БД, хранящуюся с предыдущей фиксации; - changeset4qdb_build. xml - содержит изменения, сделанные с предыдущей фиксации или с предыдущего выполнения запросов - папка changesets - в данной папке содержатся sql файлы истории изменений, которые автоматически формируются при фиксации работы; - done_changesets. txt - список выполненных DDL запросов на текущем компьютере из папки changesets.
Рис. 13 -- Пример работы команды qdb init
Qdb create необходим при подготовке к работе АИС. Создаст файл database. xml, databaseOld. xml и databaseLastRevision. xml со структурой БД (Рис. 14). Данную команду можно также использовать в случае необходимости создания xml файла с другой базой данных. В этом случае необходимо запустить qdb create с соответствующими ключами (Табл. 3).
Рис. 14 -- Пример работы команды qdb create
Таблица 3. Возможные ключи при вызове команды qdb create
|
Ключ |
Значение по умолчанию |
Описание |
Пример |
|
-db |
Asupb2 |
Название базы данных, структуру которой необходимо сделать. |
Qdb create - db db_name. |
|
-f |
Database. xml |
Название файла, в который будет записана структура. |
Qdb create - f file_name. xml |
|
-h |
Localhost |
Название хоста для подключения к БД. |
Qdb create - h ssh://user@asupb:22/ |
|
-u |
Asupb |
Имя пользователя для подключения к БД. |
Qdb create - u user_name |
|
-p |
'' |
Пароль пользователя для подключения к БД. |
Qdb create - p ***** |
Qdb status показывает текущие различия (Рис. 15) и формирует файл changeset4qdb-build. xml (Рис. 16). Qdb status также может запускаться с различными ключами (Табл. 4).
Рис. 15 -- Пример работы команды qdb status
Рис. 16 -- Содержание файла changeset4qdb_build. xml после выполнения команды qdb status
Таблица 4. Возможные ключи при вызове команды qdb status
|
Ключ |
Значение по умолчанию |
Описание |
Пример |
|
-f1 |
Database. xml |
Название файла со структурой БД которую меняем. |
Qdb status - f1 first_file. xml |
|
-f2 |
DatabaseOld. xml |
Название файла со структурой БД с которой сравниваем. |
Qdb status - f2 second_file. xml |
|
-f3 |
DatabaseLastRevision. xml |
Название файла со структурой БД с которой сравниваем при вызове qdb status с ключом "-a". |
Qdb status - f3 third_file. xml |
|
-a |
Bool false |
Используется при сравнении файла с текущей структурой БД, и файла, сделанного при последней фиксации. |
Qdb status - a |
Qdb run формирует из файла changeset4qdb-build. xml DDL запрос и в зависимости от переданных ключей (Табл. 5) либо показывает в читабельном виде пользователю (Рис. 17), либо выполняет его в СУБД (Рис. 18).
Рис. 17 -- Пример работы команды qdb run с ключом "show"
Рис. 18 -- Пример работы команды qdb run без ключей
Таблица 5. Возможные ключи при вызове команды qdb run
|
Ключ |
Значение по умолчанию |
Описание |
Пример |
|
-show |
Bool false |
Формирует sql запрос для выполнения в БД и выводит пользователю на экран. |
Qdb run - show |
|
-f |
Database. xml |
Название файла, в который будет записана структура. |
Qdb run - f file_name. xml |
|
-h |
Localhost |
Название хоста для подключения к БД. |
Qdb run - h ssh://user@asupb:22/ |
|
-u |
Asupb |
Имя пользователя для подключения к БД. |
Qdb run - u user_name |
|
-p |
'' |
Пароль пользователя для подключения к БД. |
Qdb run - p ***** |
Qdb commit вызывает команду qdb status с ключом "-а" (Табл. 4), если изменения в структуре есть, то вызывается команда qdb run (Табл. 5) . Далее фиксируются изменения о проделанной работе (Рис. 19): создается xml файл, название которого генерируется автоматически в формате "changeset. YYYY-mm-dd. username. hh-mm-ss. xml", в папке "changesets" (Рис. 20). При формировании файла, вызвав qdb commit с ключом "-m" (Табл. 6), можно ввести сообщение. Данный файл помечается как "выполнен" путем добавления названия в файл done_changesets. txt. В завершении, измененный файл database. xml и созданный файл changeset добавляются под контроль СКВ с помощью команд Mercurial (Рис. 21).
Рис. 19 -- Пример работы программы qdb commit
Рис. 20 -- Пример содержимого сгенерированного changeset - файла
Рис. 21 -- Пример добавления файла со структурой БД и сохраненным changeset - файлом под контроль СКВ
Таблица 6. Возможные ключи при вызове команды qdb commit
|
Ключ |
Значение по умолчанию |
Описание |
Пример |
|
-m |
Bool false |
Позволяет ввести примечание к формируемому changeset файлу |
Qdb commit - m "Вводимое сообщение" |
|
-h |
Localhost |
Название хоста для подключения к БД. |
Qdb commit - h ssh://user@asupb:22/ |
|
-u |
Asupb |
Имя пользователя для подключения к БД. |
Qdb commit - u user_name |
|
-p |
'' |
Пароль пользователя для подключения к БД. |
Qdb commit - p ***** |
Qdb update автоматически запускается после скачивания изменений с сервера, сравнивает названия файлов в папке changesets и названия уже выполненных, в файле done_changesets. txt. Если находятся различия, то запускается команда qdb run с ключом "-f 'название файла'" (Табл. 5). Запуск qdb update также возможен с различными ключами (Табл. 7).
Таблица 7. Возможные ключи при вызове команды qdb update
|
Ключ |
Значение по умолчанию |
Описание |
Пример |
|
-h |
Localhost |
Название хоста для подключения к БД. |
Qdb commit - h ssh://user@asupb:22/ |
|
-u |
Asupb |
Имя пользователя для подключения к БД. |
Qdb commit - u user_name |
|
-p |
'' |
Пароль пользователя для подключения к БД. |
Qdb commit - p ***** |
Мероприятия по улучшению разрабатываемого ПО.
В качестве мероприятий по улучшению разработанной АИС можно указать следующие:
Ѕ разработать шаблон по созданию CREATE кода структуры БД для СУБД MSSQL, PostgreSQL и ORACLE;
Ѕ расширить функционал АИС возможностью хранения информации в xml файлах;
Ѕ для улучшения внешнего вида при установке использовать установщик.
Похожие статьи
-
В связи с увеличением числа сотрудников, работающих в компании, а также с расширением рабочего проекта, возникла проблема, связанная с версионностью...
-
В рамках выпускной квалификационной работы была разработана автоматизированная информационная система, предназначенная как для автоматического, так и для...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
Использование парадигмы ООП. Разрабатываемая АИС является системой с открытым исходным кодом и значит должна являться масштабируемой сторонними...
-
SimpleXML. В PHP версии 5.0 и выше появилось расширение для работы с xml структурой. Библитека SimpleXML содержит большое количество методов для работы с...
-
При работе над проектом разрабатывались два основных компонента системы: база данных (далее - БД) и интерфейс клиентского приложения. Затем необходимо...
-
Для того чтобы оценить экономическую выгоду от внедрения АИС необходимо вычислить трудозатраты компании направленные непосредственно на реализацию...
-
Структура системы В ходе разработки выпускной квалификационной работы использовались базы данных, созданные в среде MySQL Workbench, и создано клиентское...
-
Определение методов реинжиниринга информационных систем Основные задачи, которые стоят перед проектировщиком, занимающимся реинжинирингом информационных...
-
Постановление Правительства Российской Федерации №1119 "Об утверждении требований к защите персональных данных при их обработке в информационных системах...
-
Выбранные датчики, исполнительные механизмы и их месторасположение, а также структурная схема АСУ ТП производства сухого молока позволяют составить схему...
-
Пусть в сборку входит n монтажников, Тогда - множество монтажников, участвующих в одном этапе - рабочие, участвующие в выполнении одной операций -...
-
Концепция решает три задачи: Определить основные идеи и направления развития и согласовать их с клиентом. Получить оценку этих идей от будущих...
-
Следующим этапом, когда документация найдена, источники изучены, а другие решения проанализированы, является реализация автоматизированной системы...
-
Математическое и программное обеспечение (МО, ПО)- совокупность математических методов, моделей, алгоритмов и программ для реализации целей и задач...
-
Любой компьютер является электроприбором и представляет собой потенциальную угрозу. Поэтому при работе с компьютером следует соблюдать требования...
-
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним. - Теоретические...
-
Типы данных и команды SQL - Разработка информационной системы "Магазин компьютерных товаров"
Microsoft SQL Server поддерживает большинство типов данных SQL 2003. Также SQL Server поддерживает дополнительные типы данных, используемые для...
-
Обоснование выбора средств разработки проекта Для реализации корпоративной информационной системы "Бюджетное планирование и отчетность" в исследуемой...
-
Результат работы - Модернизация структуры базы данных на основе анализа требований предприятия
После установки обновленной базы данных на сервер CMS WordPress была запущена на хостинге и подключена. Ниже следуют примеры изменений. Обновленная...
-
Схема организации подсистемы хранения данных с указанием потоков данных представлена на рисунке 5. Рисунок 5. Схема хранения данных Область Временного...
-
6.1. "Аттестат соответствия" оформляется и выдается после утверждения заключения по результатам проведенных аттестационных испытаний. 6.2. "Аттестат...
-
Наименование программы Полное наименование программы - Модуль ипотечного кредитования банковской информационной системы "БИС". Краткое наименование...
-
Программный интерфейс для базы данных я разрабатывал в объектно-ориентрованной среде Delphi, с помощью Embarcadero RAD Studio. Конструктор форм Delphi в...
-
Наименование и область применения Наименование: Автоматизированная информационная система "Отель" в дальнейшем именуемая АИС "Отель". Область применения:...
-
Проектирование базы данных было Подробно описано в главе 7. Благодаря графической оболочке MySQL Workbench для MySQL все SQL запросы на создание таблиц...
-
Общие сведения о тестировании Данный раздел посвящен проведению тестирования клиентского приложения. Тестирование для серверной части системы не...
-
Информационно - измерительные системы: структура и состав Постоянное совершенствование и развитие средств измерений необходимо для промышленного...
-
Для реализации ИИС контроля расхода энергоресурсов проведем анализ характеристик существующих беспроводных технологий передачи данных. Наиболее...
-
Прогнозируемая оценка проекта после реализации единой шины данных как прослойки между всеми компонентами ИТ-ландшафта компании выполняется по методу...
-
Наиболее распространенная форма - ЭВМ. Раньше чаще использовались вычислительные центры (ВЦ). Вычислительный центр - организуется и специализируется на...
-
В среде электронного ресурса ИИС "MD_SLAGMELT" (Рис. 6) для доступа к компоненту "моделирование" необходима учетная запись (пара логин/пароль) (Рис.7)....
-
Разработка клиент-серверной части проекта, то есть связь между клиентским приложением и базой данных, реализуется при помощи специальной библиотеки MySQL...
-
Результаты проведенных экспериментов содержатся во внутреннем серверном файловом хранилище (Рис. 2). Представляют собой документы формата "*.DAT". В них...
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
Завершив выбор схемы работы системы и общего принципа работы ее частей и выбрав тип базы данных, следует перейти к выбору языка программирования....
-
В данном разделе была разработана функциональная схема работы программного комплекса, которая в общем виде описывает состав комплекса, характер и виды...
-
Следующей задачей было изучение литературы по теме и ее анализ. Для этого использовались публикации из российских источников с целью учета особенностей...
-
"WWWSQLDesigner" позиционируется как абсолютно бесплатный, доступный для пользователей, универсальный веб-редактор, значительно упрощающий процесс...
-
Основная цель системы ДИСКОР - совершенствование оперативного управления работой железных дорог на основе более эффективного использования пропускной...
Разработка АИС - Разработка автоматизированной информационной системы для устранения различий в структурах баз данных разработчиков, при работе над общим проектом с использованием системы контроля версий