Важно, чтобы при выполнении любых операций с данными была обеспечена их целостность и непротиворечивость.
Под целостностью данных понимается их правильность в любой момент времени, поэтому поддержание целостности данных может рассматриваться как защита данных от неверного их изменения или разрушения.
Целостность данных определяется:
1) Целостностью таблиц
2) Целостностью внешних ключей
3) Целостностью типов данных
Целостность таблиц обеспечивается тем, что все таблицы м.б. снабжены первичными ключами, а поля, входящие в состав первичных ключей не должны принимать неопределенных значений (NULL - значений)
Целостностью внешних ключей обеспечивается тем, что внешние ключи не могут ссылаться на строки, отсутствующие в родительских таблицах.
Целостностью типов данных обеспечивается тем, что создаются и интегрируются СУБД новые типы данных для тех доменов логической модели, для которых в физической модели отсутствуют эквивалентные типы данных.
Противоречивость данных проявляется тогда, когда 1 и тот же элемент данных хранится сразу в нескольких местах, т. е. имеется несколько копий, а корректировка его значений выполняется не для всех копий, а только для части. Возможность появления противоречивых данных устраняется на этапе логического проектирования путем выполнения процедур нормализации данных.
Непротиворечивость. Многие операции в БД вызывают несколько изменений одновременно. Если эти изменения выполнены не в полном объеме, целостность данных нарушается. Условия непротиворечивости данных обеспечивает механизм транзакций.
В СУДБ предусмотрены средства обеспечения целостности данных, что позволяет постоянно поддерживать СУБД в вирт. состоянии.
Обеспечение целостности данных основано на использовании механизма транзакций при выполнении различных операции с объектами БД.
Транзакция - последовательность выполнения операций в БД, которая рассматривается как некоторое неделимое действие, осмысленное с т. зр. пользователя.
Можно сказать, что транзакция – лог. 1 работы системы, которая реализует некоторую прикладную функцию, например перевод денег с одного счета на другой в банковской системе.
Если все операции, составляющие транзакцию, успешно выполняются, то СУБД фиксирует в БД изменения, произведенные этой транзакцией.
В этом случае говорят, что транзакция подтверждается или фиксируется.
Если хотя бы одна из операций не будет выполнена, то БД останется в том же состоянии, что и перед началом выполнения транзакции, т. е. все операции, составляющие транзакцию отменяются и транзакция соответственно не подтверждается (отказывается).
Т. о. операции с БД выполняются только в рамках транзакции, каждая из которых переводит БД из одного целостного состояния в другое.
29.Основные и дополнительные правила ссылочной целостности.