Целостность данных
В теории баз данных под целостностью понимают свойство соответствия структуры и содержания базы данных предметной области.
Целостность данных — это свойство базы данных, которое обеспечивает корректность, согласованность, актуальность и надежность данных на протяжении всего их жизненного цикла. Она гарантирует, что данные в базе остаются достоверными, защищёнными от повреждений и соответствуют заданным правилам и ограничениям.
В каждой СУБД существуют следующие категории целостности данных
- Целостность сущностей (Entity Integrity)
- Гарантирует, что каждая строка в таблице уникальна.
-
Основным инструментом является первичный ключ (Primary Key), который идентифицирует каждую запись.
-
Ссылочная целостность (Referential integrity)
- Обеспечивает правильность и согласованность связей между таблицами.
-
Используются внешние ключи (Foreign Keys), чтобы гарантировать, что ссылки между таблицами соответствуют реальным данным. Например, в таблице заказов не должно быть ссылок на несуществующего клиента. Строки, на которые в других записях имеются ссылки, не могут быть удалены.
-
Целостность домена (Domain Integrity)
- Устанавливает правила для допустимых значений атрибутов.
-
Например, в столбце возраста нельзя хранить отрицательные числа, а для даты должен быть определён корректный формат.
-
Бизнес-целостность (User-Defined Integrity)
- Проверяет соответствие данных бизнес-правилам. Это могут быть специфические ограничения, такие как максимальное количество отпусков у сотрудника или минимальная сумма заказа.
Инструменты обеспечения целостности данных
- Ограничения на уровне базы данных:
-
Это обеспечивает точность и достоверность данных в БД.
-
Триггеры (Triggers):
-
Позволяют автоматически проверять или изменять данные при выполнении операций
INSERT
,UPDATE
,DELETE
. -
Транзакции:
-
Гарантируют, что операции с данными выполняются атомарно (все или ничего), что предотвращает некорректное состояние базы данных.
-
Программы и алгоритмы на уровне приложений:
- Логика целостности может быть дополнительно реализована в приложениях, взаимодействующих с базой данных.
Почему важна целостность данных?
- Достоверность данных: гарантирует, что информация всегда остаётся правильной.
- Устранение ошибок: предотвращает нарушения в связях между таблицами и некорректные значения.
- Согласованность: данные остаются логически связными, что критически важно для анализа и принятия решений.
- Защита данных: минимизирует вероятность случайного или преднамеренного искажения информации.
- Стабильность системы: обеспечивает надёжную работу приложений, зависящих от базы данных.
Целостность данных — это фундаментальная характеристика любой хорошо спроектированной базы данных.