18.2.8. Целостность

Целостность – очень серьезный вопрос при управлении базами данных. Ведь как уже было сказано, данные – одна из главных ценностей предприятия. Поэтому, что будет, если они станут ложными? Например, деньги с вашего счета в Сбербанке по ошибке окажутся на другом счете, в другом банке и в другой стране.

Под термином целостность (integrity) понимается взаимная согласованность отдельных фрагментов данных и их корректность. А согласованность (consistency) означает, что все порций данных в БД должны быть единообразно смоделированы и включены в систему. Квалифицировать данные как корректные можно в том случае, если они достоверны, точны и значимы [DM9].

Несогласованность между данными может возникнуть по разным причинам. Несогласованность или противоречивость данных может возникнуть вследствие сбоя системы – проблемы с аппаратным обеспечением, ошибки в программном обеспечении и т.п. Реляционная СУБД защищает данные от такого типа несогласованности, гарантируя, что команда SQL либо будет выполнена до конца, либо будет полностью отменена. Этот процесс называют управлением транзакциями. Любая операция манипулирования данными, осуществляемая операторами SELECT, INSERT, UPDATE, DELETE – это и есть транзакция.

Другой тип целостности, называемый сущностной целостностью, связан с корректным проектированием базы данных. Сущностная целостность требует, чтобы ни один первичный ключ не имел null-значения.

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