Транзакция - это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными, выполняющаяся по принципу "все или ничего", и переводящая базу данных из одного целостного состояния в другое целостное состояние.
Транзакция обладает четырьмя важными свойствами, известными как свойства АСИД:
(А) Атомарность.
(С) Согласованность.
(И) Изоляция.
(Д) Долговечность.
База данных находится в согласованном состоянии, если для этого состояния выполнены все ограничения целостности.
Ограничение целостности - это некоторое утверждение, которое может быть истинным или ложным в зависимости от состояния базы данных.
Ограничения целостности классифицируются несколькими способами:
По способам реализации.
По времени проверки.
По области действия.
По способам реализации различают:
Декларативную поддержку ограничений целостности - средствами языка определения данных (DDL).
Процедурную поддержку ограничений целостности - посредством триггеров и хранимых процедур.
По времени проверки ограничения делятся на:
Немедленно проверяемые ограничения.
Ограничения с отложенной проверкой.
По области действия ограничения делятся на:
Ограничения домена.
Ограничения атрибута.
Ограничения кортежа.
Ограничения отношения.
Ограничения базы данных.
Стандарт языка SQL поддерживает только декларативные ограничения целостности, реализуемые как:
Ограничения домена.
Ограничения, входящие в определение таблицы.
Ограничения, хранящиеся в базе данных в виде независимых утверждений (assertion).
Проверка ограничений допускается как после выполнения каждого оператора, могущего нарушить ограничение, так и в конце транзакции. Во время выполнения транзакции можно изменить режим проверки ограничения.