Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Блокировка (СУБД)24 марта 2011Блокировка в СУБД это отметка о захвате объекта транзакцией в ограниченный или исключительный доступ с целью предотвращения коллизий и поддержания целостности данных. Классификации блокировокПо области действия блокировки классифицируются на строчные, гранулярные и предикатные. По строгости блокировки разделяются на совместные и исключительные. По логике реализации блокировки делятся на оптимистические и пессимистические. По области действиядействуют только на одну строку таблицы базы данных, не ограничивая манипуляции над другими строками таблицы. Гранулярная блокировка действует на всю таблицу или всю страницу и все строки. Блокировка, ограничивающая манипуляции со страницей данных в таблице иногда называется страничной. Предикатные блокировки действуют на область, ограниченную предикатами. По строгостиСовместная блокировка накладывается транзакцией на объект в случае, если выполняемая ей операция безопасна, то есть не изменяет никаких данных и не имеет побочных эффектов. При этом, все транзакции могут выполнять операцию того же типа над объектом, если на него наложена совместная блокировка, обычно такая блокировка используется для операций чтения. Исключительная блокировка накладывается транзакцией на объект в случае, если выполняемая ей операция изменяет данные. Только одна транзакция может выполнять подобную операцию над объектом, если на него наложена эксклюзивная блокировка. Блокировка не может быть наложена на объект, если на него уже наложена совместная блокировка. По логике реализацииПессимистическая блокировка накладывается перед предполагаемой модификацией данных на все строки, которые такая модификация предположительно затрагивает. Всё время действия такой блокировки исключена модификация данных из сторонних сессий, данные из блокированных строк доступны согласно уровню изолированности транзакции. По завершению предполагаемой модификации гарантируется непротиворечивая запись результатов. Оптимистическая блокировка не ограничивает модификацию обрабатываемых данных сторонними сессиями, однако перед началом предполагаемой модификации запрашивает значение некоторого выделенного атрибута каждой из строк данных. Перед записью модификаций в базу данных перепроверяется значение выделенного атрибута, и если оно изменилось, то транзакция откатывается или применяются различные схемы разрешения коллизий. Если значение выделенного атрибута не изменилось производится фиксация модификаций с одновременным изменением значения выделенного атрибута для сигнализации другим сессиям о том, что данные изменились. Просмотров: 1133
|