Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zapiska27_05.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

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';

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]