Проверяемый текст
Пушников А.Ю. Введение в системы управления базами данных. Учебное пособие/Изд-е Башкирского ун-та. - Уфа, 1999.
[стр. 13]

выполняться так, чтобы у пользователя создавалась иллюзия, что он в системе один.
Простейший способ обеспечить абсолютную изолированность состоит в том, чтобы выстроить транзакции в очередь и выполнять их строго одну за другой.
Очевидно, при этом теряется эффективность работы системы.
Поэтому реально одновременно выполняется несколько транзакций (смесь транзакций).
Различается несколько уровней изоляции транзакций.
На низшем уровне изоляции транзакции могут реально мешать друг другу, на высшем они полностью изолированы.
За большую изоляцию транзакций приходится платить большими накладными расходами системы и замедлением работы.
Пользователи или администратор системы могут по своему усмотрению задавать различные уровни всех или отдельных транзакций.

Свойство «долговечность» также не является абсолютными свойством, т.к.
некоторые системы допускают вложенные транзакции.
Если транзакция «Б» запущена внутри транзакции «А», и для транзакции «Б» подана команда COMMIT WORK, то фиксация данных транзакции «Б» является условной, т.к.
внешняя транзакция «А» может откатиться.
Результаты работы внутренней транзакции «Б» будут окончательно зафиксированы, только если будет зафиксирована внешняя транзакция «А».

1.1.3.
Ограничения целостности Свойство «согласованность» транзакций определяется наличием понятия согласованности базы данных.
Ограничение целостности это некоторое утверждение, которое может быть истинным или ложным в зависимости от состояния базы данных
[30].
Примерами ограничений целостности могут служить следующие утверждения: Пример 2.
Возраст сотрудника не может быть меньше 18 и больше 65 лет; Пример 3.
Каждый сотрудник имеет уникальный табельный номер;
13
[стр. 131]

 (Д) Долговечность.
Если транзакция выполнена, то результаты ее работы должны сохраниться в базе данных, даже если в следующий момент произойдет сбой системы.
Транзакция обычно начинается автоматически с момента присоединения пользователя к СУБД и продолжается до тех пор, пока не произойдет одно из следующих событий:  Подана команда COMMIT WORK (зафиксировать транзакцию).
 Подана команда ROLLBACK WORK (откатить транзакцию).
 Произошло отсоединение пользователя от СУБД.
 Произошел сбой системы.
Команда COMMIT WORK завершает текущую транзакцию и автоматически начинает новую транзакцию.
При этом гарантируется, что результаты работы завершенной транзакции фиксируются, т.е.
сохраняются в базе данных.
Замечание.
Некоторые системы (например, Visual FoxPro), требуют подать явную команду BEGIN TRANSACTION для того, чтобы начать новую транзакцию.
Команда ROLLBACK WORK приводит к тому, что все изменения, сделанные текущей транзакцией откатываются, т.е.
отменяются так, как будто их вообще не было.
При этом автоматически начинается новая транзакция.
При отсоединении пользователя от СУБД происходит автоматическая фиксация транзакций.
При сбое системы происходят более сложные процессы.
Кратко суть их сводится к тому, что при последующем запуске системы происходит анализ выполнявшихся до момента сбоя транзакций.
Те транзакции, для которых была подана команда COMMIT WORK, но результаты работы которых не были занесены в базу данных выполняются снова (накатываются).
Те транзакции, для которых не была подана команда COMMIT WORK, откатываются.
Более подробно восстановление после сбоев рассматривается далее.
Свойства АСИД транзакций не всегда выполняются в полном объеме.
Особенно это относится к свойству И (изоляция).
В идеале, транзакции разных пользователей не должны мешать друг другу, т.е.
они должны выполняться так, чтобы у пользователя создавалась иллюзия, что он в системе один.
Простейший способ обеспечить абсолютную изолированность состоит в том, чтобы выстроить транзакции в очередь и выполнять их строго одну за другой.
Очевидно, при этом теряется эффективность работы системы.
Поэтому реально одновременно выполняется несколько транзакций (смесь транзакций).
Различается несколько уровней изоляции транзакций.
На низшем уровне изоляции транзакции могут реально мешать друг другу, на высшем они полностью изолированы.
За большую изоляцию транзакций приходится платить большими накладными расходами системы и замедлением работы.
Пользователи или администратор системы могут по своему усмотрению задавать различные уровни всех или отдельных транзакций.

Более подробно изоляция транзакций рассматривается в следующей главе.
Свойство Д (долговечность) также не является абсолютными свойством, т.к.
некоторые системы допускают вложенные транзакции.
Если транзакция Б запущена внутри транзакции А, и для транзакции Б подана команда COMMIT WORK, то фиксация данных транзакции Б является условной, т.к.
внешняя транзакция А может откатиться.
Результаты работы внутренней транзакции Б будут окончательно зафиксированы только если будет зафиксирована внешняя транзакция А.

Ограничения целостности

[стр.,132]

Свойство (С) согласованность транзакций определяется наличием понятия согласованности базы данных.
Определение 2.
Ограничение целостности это некоторое утверждение, которое может быть истинным или ложным в зависимости от состояния базы данных.

Примерами ограничений целостности могут служить следующие утверждения: Пример 2.
Возраст сотрудника не может быть меньше 18 и больше 65 лет.
Пример 3.
Каждый сотрудник имеет уникальный табельный номер.

Пример 4.
Сотрудник обязан числиться в одном отделе.
Пример 5.
Сумма накладной обязана равняться сумме произведений цен товаров на количество товаров для всех товаров, входящих в накладную.
Как видно из этих примеров, некоторые из ограничений целостности являются ограничениями реляционной модели данных (см.
гл.
3).
Пример 3 представляет ограничение, реализующее целостность сущности.
Пример 4 представляет ограничение, реализующее ссылочную целостность.
Другие ограничения являются достаточно произвольными утверждениями (примеры 2 и 5).
Любое ограничение целостности является семантическим понятием, т.е.
появляется как следствие определенных свойств объектов предметной области и/или их взаимосвязей.
Определение 3.
База данных находится в согласованном (целостном) состоянии, если выполнены (удовлетворены) все ограничения целостности, определенные для базы данных.
В данном определении важно подчеркнуть, что должны быть выполнены не все вообще ограничения предметной области, а только те, которые определены в базе данных.
Для этого необходимо, чтобы СУБД обладала развитыми средствами поддержки ограничений целостности.
Если какая-либо СУБД не может отобразить все необходимые ограничения предметной области, то такая база данных хотя и будет находиться в целостном состоянии с точки зрения СУБД, но это состояние не будет правильным с точки зрения пользователя.
Таким образом, согласованность базы данных есть формальное свойство базы данных.
База данных не понимает "смысла" хранимых данных.
"Смыслом" данных для СУБД является весь набор ограничений целостности.
Если все ограничения выполнены, то СУБД считает, что данные корректны.
Вместе с понятием целостности базы данных возникает понятие реакции системы на попытку нарушения целостности.
Система должна не только проверять, не нарушаются ли ограничения в ходе выполнения различных операций, но и должным образом реагировать, если операция приводит к нарушению целостности.
Имеется два типа реакции на попытку нарушения целостности: 1.
Отказ выполнить "незаконную" операцию.
2.
Выполнение компенсирующих действий.
Например, если система знает, что в поле "Возраст_Сотрудника" должны быть целые числа в диапазоне от 18 до 65, то система отвергает попытку ввести значение возраста 66.
При этом может генерироваться какое-нибудь сообщение для пользователя.

[Back]