Перейти к содержанию

Целостность данных

В теории баз данных под целостностью понимают свойство соответствия структуры и содержания базы данных предметной области.

Целостность данных — это свойство базы данных, которое обеспечивает корректность, согласованность, актуальность и надежность данных на протяжении всего их жизненного цикла. Она гарантирует, что данные в базе остаются достоверными, защищёнными от повреждений и соответствуют заданным правилам и ограничениям.


В каждой СУБД существуют следующие категории целостности данных

  1. Целостность сущностей (Entity Integrity)
  2. Гарантирует, что каждая строка в таблице уникальна.
  3. Основным инструментом является первичный ключ (Primary Key), который идентифицирует каждую запись.

  4. Ссылочная целостность (Referential integrity)

  5. Обеспечивает правильность и согласованность связей между таблицами.
  6. Используются внешние ключи (Foreign Keys), чтобы гарантировать, что ссылки между таблицами соответствуют реальным данным. Например, в таблице заказов не должно быть ссылок на несуществующего клиента. Строки, на которые в других записях имеются ссылки, не могут быть удалены.

  7. Целостность домена (Domain Integrity)

  8. Устанавливает правила для допустимых значений атрибутов.
  9. Например, в столбце возраста нельзя хранить отрицательные числа, а для даты должен быть определён корректный формат.

  10. Бизнес-целостность (User-Defined Integrity)

  11. Проверяет соответствие данных бизнес-правилам. Это могут быть специфические ограничения, такие как максимальное количество отпусков у сотрудника или минимальная сумма заказа.

Инструменты обеспечения целостности данных

  1. Ограничения на уровне базы данных:
  2. Это обеспечивает точность и достоверность данных в БД.

  3. Триггеры (Triggers):

  4. Позволяют автоматически проверять или изменять данные при выполнении операций INSERT, UPDATE, DELETE.

  5. Транзакции:

  6. Гарантируют, что операции с данными выполняются атомарно (все или ничего), что предотвращает некорректное состояние базы данных.

  7. Программы и алгоритмы на уровне приложений:

  8. Логика целостности может быть дополнительно реализована в приложениях, взаимодействующих с базой данных.

Почему важна целостность данных?

  • Достоверность данных: гарантирует, что информация всегда остаётся правильной.
  • Устранение ошибок: предотвращает нарушения в связях между таблицами и некорректные значения.
  • Согласованность: данные остаются логически связными, что критически важно для анализа и принятия решений.
  • Защита данных: минимизирует вероятность случайного или преднамеренного искажения информации.
  • Стабильность системы: обеспечивает надёжную работу приложений, зависящих от базы данных.

Целостность данных — это фундаментальная характеристика любой хорошо спроектированной базы данных.