1.3 Создание триггеров
Подготовим SQL-скрипты для создания следующих триггеров:
Триггер для проверки корректного ввода даты выдачи номера тс:
CREATE TRIGGER Проверка_даты_выдачи_номера
ON Numbers
AFTER INSERT, UPDATE
AS
IF EXISTS (
SELECT *
FROM Numbers, Users
WHERE Users.Birthdate > Numbers.[Date])
BEGIN
ROLLBACK
PRINT 'Неверная дата выдачи номера'
END
Проверка триггера:
UPDATE Numbers
SET Date = '1970-06-03'
WHERE Date = '2006-06-03'
Результат:
Триггер для проверки корректного ввода даты аварии:
CREATE TRIGGER Проверка_даты_аварии
ON DTP
AFTER INSERT, UPDATE
AS
IF EXISTS (
SELECT *
FROM DTP, PTS
WHERE PTS.[Year] > DTP.Data)
BEGIN
ROLLBACK
PRINT 'Неверная дата аварии'
END
Проверка триггера:
UPDATE DTP
SET Data = '2015-12-12'
WHERE Data = '1999-08-09'
Результат:
Триггер для проверки даты пропажи (кража, либо владелец скрылся с места дтп):
CREATE TRIGGER Проверка_даты_пропажи
ON Stealing
AFTER INSERT, UPDATE
AS
IF EXISTS (
SELECT *
FROM Stealing, PTS
WHERE PTS.[Year] > Stealing.[Date])
BEGIN
ROLLBACK
PRINT 'Неверная дата пропажи транспортного средства'
END
Проверка триггера:
UPDATE Stealing
SET Date = '2015-08-09'
WHERE Date = '1999-08-09'
Результат:
Описание прикладной программы
Все окна, имеющиеся в программе, можно разделить на две группы: окна для работы с таблицами и окна для работы с запросами.
Пример окна для работы с таблицами представлен на рисунке 3.1.
Рисунок
3.1 Окно для работы с таблицами
Здесь пользователь может работать с содержимым одной из таблиц базы данных. При попытке внесения им некорректных данных на экран будет выведено соответствующее сообщение об ошибке (см. рисунок 3.2). Для фиксации всех произведенных изменений пользователю необходимо нажать кнопку «Cохранить» в правом верхнем углу окна, после чего программа проведет необходимые транзакции. Если при этом произойдет срабатывание триггера, то на экран будет выведено соответствующее сообщение (см. рисунок 3.3).
Рисунок
3.2 Сообщение об ошибке внесения данных
Рисунок
3.3 Сообщение о срабатывании триггера
Пример окна для работы с запросами представлен на рисунке 3.4.
Рисунок
3.5 Окно для работы с запросами
Здесь пользователь может задать параметры запроса, запустить его при помощи кнопки «Поиск» и просмотреть результат выполнения.
Для переключения между окнами необходимо использовать меню в верхней части окна. Для завершения работы с программой необходимо нажать кнопку «Закрыть» в правом верхнем углу окна (данная кнопка имеет вид иконки с изображением крестика).
Заключение
В результате проектирования информационной системы ГИБДД были получены база данных и прикладная программа, обеспечивающая интерфейс между пользователем и базой данных. В процессе выполнения работы были решены следующие задачи:
- Спроектирована схема данных
- Созданы необходимые таблицы согласно полученной схеме
- Реализованы указанные в задании запросы
- Созданы представления, имеющие смысл для данной предметной области
- Созданы пользователи и роли для управления доступом к различным объектам базы данных
- Созданы триггеры и ограничения целостности для поддержания целостности данных в базе данных
