Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Приступаем к изучению ключевых концепций использования СУБД в многопользовательском режиме - транзакций, блокировок и механизма обработки ошибок. В результате применения этих механизмов приложение, работающее с базой данных, становится менее уязвимым со стороны всякого рода случайностей.
Под транзакцией понимается неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации), приводящая к одному из двух возможных результатов: либо вся последовательность операций выполняется (если все операторы правильные), либо вся транзакция откатывается (если хотя бы один оператор не может быть успешно выполнен).
Обработка транзакций гарантирует целостность информации в базе данных. Таким образом, транзакция переводит базу данных из одного целостного состояния в другое.
Попутно заметим, что поддержание механизма транзакций является показателем уровня развитости СУБД.
Одна из основных задач СУБД - обеспечение изолированности, т.е. создание такого режима функционирования, при котором каждому пользователю казалось бы, что БД доступна только ему. Такую задачу СУБД принято называть параллелизмом транзакций.
Большинство выполняемых действий производится в теле транзакций. По умолчанию каждая команда выполняется как самостоятельная транзакция. При необходимости пользователь может явно указать ее начало и конец, чтобы иметь возможность включить в нее несколько команд.
При выполнении транзакции система управления базами данных должна придерживаться определенных правил обработки набора команд, входящих в транзакцию.
В частности, разработано четыре правила, известные как требования ACID, которые гарантируют правильность и надежность работы системы.
ACID - Atomicity ( атомарность ), Consistency ( согласованность ), Isolation ( изолированность ), Durability ( устойчивость) представляет собой совокупность требований
1. неделимости (атомарности),
2. согласованности,
3. изолированности,
4. устойчивости.
Поясним:
1. Транзакция неделима в том смысле, что она не может быть выполнена частично. Если может быть выполнена лишь часть транзакции, она отклоняется.
2. Транзакция является согласованной в том смысле, что она не нарушает бизнес-логику и отношения между элементами данных.
Это свойство очень важно при разработке клиент-серверных систем, поскольку в хранилище данных поступает большое количество транзакций от разных систем и объектов. Если хотя бы одна из них нарушит целостность данных, то все остальные могут выдать неверные результаты.
3. Транзакция всегда изолирована в том смысле, что ее результаты не зависят от предыдущих или последующих транзакций. Это свойство называется сериализуемостью.
4. Транзакция устойчива. Под устойчивостью транзакции понимается то, что после ее завершения
а) во-первых, сама транзакция сохраняется в системе;
б) во-вторых, происходит фиксация ее результатов.
То есть состояние БД уже нельзя вернуть в исходное состояние.
Перечисленные выше правила обязан выполнять сервер.
Программист лишь выбирает нужный уровень изоляции, заботится о соблюдении логической целостности данных и бизнес-правил.
На него возлагаются обязанности по созданию эффективных и логически верных алгоритмов обработки данных. Он решает, какие команды должны выполняться как одна транзакция, а какие могут быть разбиты на несколько последовательно выполняемых транзакций.
Следует по возможности использовать небольшие транзакции, т.е. включающие как можно меньше команд и изменяющие минимум данных. Соблюдение этого требования позволит наиболее эффективным образом обеспечить одновременную работу с данными множества пользователей.
Дата публикования: 2014-12-08; Прочитано: 357 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!