- •Введение
- •1 Анализ процесса учета деятельности сто
- •1.1 Описание предметной области
- •1.2 Обзор аналогов разрабатываемой информационной системы
- •1.3 Построение модели процессов предметной области
- •1.4 Определение функциональных требований к разрабатываемой информационной системе
- •1.5 Определение нефункциональных требований к разрабатываемой информационной системе
- •2 Разработка информационной системы для станции технического обслуживания автомобилей
- •2.1 Выбор инструментальных средств реализации информационной системы
- •2.2 Концептуальное проектирование базы данных
- •2.3 Обеспечение целостности и безопасности данных
- •2.4 Алгоритмы работы информационной системы
- •2.5 Разработка логики диалога пользователя
- •3 Реализация и примеры работы информационной системы для станции технического обслуживания автомобилей
- •3.1 Примеры работы информационной системы
- •Заключение
- •Список использованной литературы
2.3 Обеспечение целостности и безопасности данных
Для обеспечения целостности данных и однозначного определения требуемых экземпляров сущности в БД используются первичные ключи. Первичный ключ – это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Никакие из двух записей таблицы не могут иметь одинаковых значений первичного ключа. Каждая сущность обладает хотя бы одним возможным ключом. Один из них принимается за первичный ключ. При выборе первичного ключа следует отдавать предпочтение несоставным ключам или ключам, составленным из минимального числа атрибутов. Нецелесообразно также использовать ключи с длинными текстовыми значениями (предпочтительнее использовать целочисленные атрибуты). Так, для идентификации автомобиля можно использовать либо уникальный госномер, либо порядковый номер записи сущности.
Данная информационная система предназначена для обработки и накопления учетной информации о работе СТО. Безопасность данных разрабатываемой информационной системы достигается на уровне базы данных за счет политик ссылочной целостности, и на уровне приложения за счет блокирования случайного удаления записей дочерних таблиц. Организация политик ссылочной целостности показана на рисунке 2.3.
Рисунок 2.3 – Ссылочная целостность БД
Подразумевается удаление данных только об уволенных сотрудниках, некорректных моделях и марках автомобилей, неактивных клиентах, и устаревших данных о клиентских автомобилях. При этом для удаления данных о сотруднике он предварительно исключается из рабочей группы, и удаление его персональных данных не влияет на данные других таблиц.
Удаление некорректных марок и моделей автомобилей подразумевает те наименования, по которым не внесено клиентских автомобилей. Для удаления некорректной добавленной марки автомобиля реализован следующий триггер:
CREATE TRIGGER `mark_BDEL` BEFORE DELETE ON mark FOR EACH ROW begin
delete from model where mark_idmark=old.idmark;
end
Данный триггер удаляет данные о моделях автомобилей по марке автомобилей перед удалением марки автомобиля.
Для удаления данных о клиентском авто реализован следующий триггер:
CREATE TRIGGER `clients_BDEL` BEFORE DELETE ON clients FOR EACH ROW begin
delete from tickets where clients_idclients=old.idclients;
end
Данный триггер удаляет данные о заказах по выбранному автомобилю перед удалением данных об этом авто.
При удалении данных о неактивном клиенте производится удаление данных о клиенте и связанных с ним автомобилях. Для обеспечения корректной статистики по работе сотрудников, в заказах, связанных с данным клиентом удаляются только клиентские данные. Реализована данная процедура при помощи следующего триггера:
CREATE TRIGGER `automobiles_BDEL` BEFORE DELETE ON automobiles FOR EACH ROW begin
Update tickets set automobiles_idautomobiles=NULL where automobiles_idautomobiles =old.idautomobiles;
end
Для обеспечения безопасности данных, для администратора СТО и директора СТО создаются учетные записи со следующим набором привелегий:
GRANT SELECT, UPDATE, DELETE, INSERT ON auto.* TO adm@'%' IDENTIFIED BY 'adm';
GRANT SELECT, UPDATE, DELETE, INSERT ON auto.* TO dir@'%' IDENTIFIED BY 'dir';
Данные привилегии позволяют производить выборку, вставку, обновление и удаление информации для всех таблиц базы данных.
Для работников СТО создаются учетные записи со следующими привилегиями:
GRANT SELECT ON auto.* TO dir@'%' IDENTIFIED BY 'dir';
GRANT UPDATE ON auto.tickets TO dir@'%' IDENTIFIED BY 'dir';
Данные привилегии позволяют производить выборку из всех таблиц базы данных и обновление данных таблицы заказов.
