Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры готовые ДБ ПО.doc
Скачиваний:
19
Добавлен:
27.08.2019
Размер:
333.31 Кб
Скачать

57. Механизм транзакций. Основные свойства.

Транзакции - это пакет запросов, который последовательно производит изменения БД и либо принимается, если все изменения записи подтверждены, либо отвергается, если хоть один запрос завершился неуспешно.

Существуют различные модели транзакций, которые могут быть классифицированы на основании различных свойств, включающих структуру транзакции, параллельность внутри транзакции, продолжительность и т.д. Чаще всего имеют в виду традиционные транзакции, характеризуемые четырьмя классическими свойствами: атомарности, согласованности, изолированности, долговечности (прочности).

1. Свойство атомарности выражается в том, что транзакция должна быть выполнена в целом или не выполнена вовсе.

2. Свойство согласованности гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое — транзакция не разрушает взаимной согласованности данных.

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

4. Свойство долговечности трактуется следующим образом: если транзакция завершена успешно, то те изменения в данных, которые были ею произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок).

Возможны два варианта завершения транзакции. Если все операторы выполнены успешно, и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется.

58. Транзакции. Блокировки.

Повышение эффективности работы при использовании небольших транзакций связано с тем, что при выполнении транзакции сервер накладывает на данные блокировки.

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

Блокировка представляет собой метод управления параллельными процессами, при котором объект БД не может быть модифицирован без ведома транзакции, т.е. происходит блокирование доступа к объекту со стороны других транзакций, чем исключается непредсказуемое изменение объекта. Различают два вида блокировки:

  • блокировка записи – транзакция блокирует строки в таблицах таким образом, что запрос другой транзакции к этим строкам будет отменен;

  • блокировка чтения – транзакция блокирует строки так, что запрос со стороны другой транзакции на блокировку записи этих строк будет отвергнут, а на блокировку чтения – принят.

59.Транзакция. Временные отметки.

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

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

Временная отметка (timestamp) – уникальный идентификатор, создаваемый СУБД с целью обозначения относительного момента времени запуска транзакции. /*относительное, потому что может быть и не время, а просто какой-то счетчик */

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

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

Элементы данных в таких системах должны иметь временную отметку чтения и временную отметку записи. Значение этих отметок равно временным отметкам транзакций, которые последними выполняли операцию чтения и записи.