ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

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

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Спонсор статьи: http://softdroid.net/ как скачать с ютуба на телефон - как скачивать видео с ютуба.

Все о MySQL. Транзакции и свойства ACID


28-12-2009

Система транзакций MySQL полностью соответствует стандарту ACID по безопасности транзакций для таблиц типа InnoDB и BDB. В более старых типах таблиц, таких как MyISAM, механизм транзакции не предусмотрен. Транзакции в таких системах можно реализовать с помощью явной блокировки таблиц (подробнее об этой процедуре можно узнать в разделе "Блокировка таблиц как замена транзакций").
Термин ACID является аббревиатурой, определяющей четыре основных условия, ко­торым должны удовлетворять реляционные СУБД, поддерживающие работу с транзак­циями. Для того чтобы удовлетворять требованиям ACID, реляционная СУБД должна обладать следующими характеристиками: атомарность (atomicity), целостность (consistency), изолированность (isolation) и живучесть (durability).
Атомарность
Атомарность означает, что каждая транзакция рассматривается как единый и не­делимый блок. При условии, что транзакция состоит из двух или более задач, транзакция считается успешной, если все входящие в нее операторы завершаются успешно. В случае если транзакция завершится ошибкой, система должна быть возвращена в исходное состояние. 
Обратимся к предыдущему примеру с фондовой биржей. Здесь атомарность означает следующее: для того чтобы транзакция считалась завершенной, продажа акций маклером A и покупка их маклером B не могут проходить независимо друг от друга. Аналогично, в примере с наймом служащих атомарность означает, что невозможно добавить служащего в базу данных без создания соответствующей записи в списочном составе и журнале учета ведомости отдела.
Атомарное выполнение представляет собой решение "все или ничего". При атомар­ном выполнении, если какой-либо из операторов в транзакции по какой-либо причине не будет выполнен, всем предыдущим операторам будет дан откат для того, чтобы не была нарушена целостность базы данных. Это очень важно для реальных приложений целевого назначения (какими бывают финансовые системы), выполняющие ввод или изменение данных и предлагающие высокую степень защиты от скрытых потерь данных.
Целостность
Целостность поддерживается, если каждая транзакция после своего завершения ос­тавляет систему в целостном состоянии независимо от успешности или неуспешности завершения транзакции. Опять вернемся к предыдущему примеру с фондовой биржей. Здесь целостность означает, что вычитание со счета продавца должно привести к равно­сильному начислению на счет покупателя. Если транзакция уменьшает счет маклера A на 400 акций, увеличивая при этом счет маклера B на 300 акций, ограничение по целостности будет нарушено, т.к. общее количество акций в системе изменится. Аналогично, свойство целостности необходимо обеспечить при удалении служащего из системы: удаление всех данных, имеющих отношение к этому служащему, включая данные в общей ведомости.
В MySQL целостность обеспечивается, прежде всего, механизмами регистрации MySQL, записывающими все изменения в базе данных и прослеживающими аудиторский след для восстановления транзакции. Если система отказывает в процессе выполнения транзакции, процедура восстановления MySQL определит успешность завершения транзакции по регистрационным журналам и при необходимости сделает откат. Таким образом, свойство целостности гарантирует, что ни в какой момент времени не должно быть незаконченной транзакции.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Транзакции Все о MySQL. Транзакции и свойства ACID. Продолжение.