1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
2 Введение Автоматическая генерация приложений Технология REAL-IT Модель данных и ограничения на них Два подхода к реализации ограничений: - На уровне приложения - На уровне базы данных Исследован и реализован второй подход
3 Постановка задачи Обзор спецификаций ограничений на данные Реализация синтаксического анализатора формата XMI для диаграмм классов и коопераций UML Реализация универсальной генерации схем баз данных Алгоритм для генерации контекстных ограничений применительно к базам данных Обоснование правильности работы алгоритма Реализация модуля для генерации триггеров в базе данных Создание набора тестовых входных данных
4 Спецификации ограничений на данные Object Constraint Language Visual OCL Constraints Diagrams Диаграммы коопераций UML
5 Контекстные ограничения Рассматриваем два объекта, связанные ассоциацией Выделяем все связанные с ними объекты и ассоциации. Будем называть это контекстом ассоциации Рассматриваемая ассоциация допустима, если существуют другие объекты, которые связаны с рассматриваемыми двумя объектами Такого рода ограничения будем называть контекстными ограничениями ссылочной целостности
6 Нотация Диаграммы коопераций UML Каждая диаграмма представляет собой граф Для ограничиваемых ассоциаций вводится стереотип >, для тех, которые должны отсутствовать – стереотип > Граф должен иметь одну компоненту связности Граф содержит только одну > ассоциацию
7 Алгоритм Диаграммы группируются по > ассоциации Для каждого ограничения из группы выбираем объекты всех классов, которые не соответствуют Limited ассоциации Каждая связь добавляет условие на выборку данных Объединяем результаты по диаграммам из одной группы
8 Реализация алгоритма для баз данных Триггеры создаются для Microsoft SQL Server и Oracle Создаются AFTER-триггеры Для той таблицы, вставка в которую влечет создание новой ограничиваемой ассоциации, создается триггер на вставку и обновление Для остальных таблиц создаются отдельно триггеры на обновление и триггеры на удаление Алгоритм применяется для каждой вставленной, измененной или удаленной записи
9 Реализация Приложение написано на платформе Java 2 Standard Edition Получение диаграмм классов и коопераций через XMI Генерация схем баз данных на основе файла диалекта СУБД Возможность соединения с Microsoft Access и Microsoft SQL Server Генерация триггеров для Microsoft SQL Server и Oracle
10 Результаты Рассмотрены различные спецификации ограничений на данные Исследована спецификация в виде диаграмм коопераций UML Реализован синтаксический анализатор XMI Реализован генератор схемы базы данных в зависимости от диалекта СУБД Предложен алгоритм для генерации контекстных ограничений применительно к базам данных Предложена реализация генерации контекстных ограничений для баз данных Обоснована правильность такой реализации Создан набор тестовых входных данных