Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Часть 1. Общие сведения о транзакциях и блокировках



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

Под транзакцией понимается неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чте­ния, удаления, вставки, модификации), приводящая к одному из двух возможных результатов: либо вся последовательность операций выполняется (если все операторы правильные), либо вся транзакция откатывается (если хотя бы один оператор не может быть успешно выполнен).

Обработка транзакций гарантирует целостность информации в базе данных. Таким образом, тран­закция переводит базу данных из одного целостного состояния в другое.

Попутно заметим, что поддержание механизма транзакций является показателем уровня развитости СУБД.

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

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

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

В частности, разработано четыре правила, извест­ные как требования ACID, которые гарантируют правильность и надежность работы системы.

ACID - Atomicity ( атомарность ), Consistency ( согласованность ), Isolation ( изолированность ), Durability ( устойчивость) представляет собой совокупность требований

1. неделимости (атомарности),

2. согласован­ности,

3. изолированности,

4. устойчивости.

Поясним:

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

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

Это свойство очень важно при разработке клиент-серверных систем, поскольку в хранилище данных поступает большое количество транзакций от разных систем и объектов. Если хотя бы одна из них нарушит цело­стность данных, то все остальные могут выдать неверные результаты.

3. Транзакция всегда изолирована в том смысле, что ее результаты не зависят от предыдущих или последующих транзак­ций. Это свойство называется сериализуемостью.

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

а) во-первых, сама транзакция сохраняется в системе;

б) во-вторых, происходит фиксация ее результатов.

То есть состояние БД уже нельзя вернуть в исходное состояние.

Перечисленные выше правила обязан выполнять сервер.

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

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

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





Дата публикования: 2014-12-08; Прочитано: 356 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...