Блокировка (СУБД)

Блокировка (СУБД)

Блокировка (англ. lock) в СУБД — это отметка о захвате объекта транзакцией в ограниченный или исключительный доступ с целью предотвращения коллизий и поддержания целостности данных.

Содержание

Классификации блокировок

По области действия блокировки классифицируются на строчные, гранулярные и предикатные. По строгости блокировки разделяются на совместные (англ. shared) и исключительные (эксклюзивные, англ. exclusive). По логике реализации блокировки делятся на оптимистические и пессимистические.

По области действия

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

Гранулярная блокировка — действует на всю таблицу или всю страницу и все строки. Блокировка, ограничивающая манипуляции со страницей данных в таблице (набор строк, объединённый признаком совместного хранения) иногда называется страничной (англ. page locking).

Предикатные блокировки действуют на область, ограниченную предикатами[уточнить].

По строгости

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

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


По логике реализации

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

Оптимистическая блокировка не ограничивает модификацию обрабатываемых данных сторонними сессиями, однако перед началом предполагаемой модификации запрашивает значение некоторого выделенного атрибута каждой из строк данных (обычно используется наименование VERSION и целочисленный тип с инициальным значением 0). Перед записью модификаций в базу данных перепроверяется значение выделенного атрибута, и если оно изменилось, то транзакция откатывается или применяются различные схемы разрешения коллизий. Если значение выделенного атрибута не изменилось — производится фиксация модификаций с одновременным изменением значения выделенного атрибута (например, инкрементом) для сигнализации другим сессиям о том, что данные изменились.



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Блокировка (СУБД)" в других словарях:

  • Блокировка — Блокировка: Блокировка в энергетике компактная компоновка основных (энергоблоков) и вспомогательных сооружений ТЭС или АЭС. Блокировка (СУБД) Блокировка (железнодорожный транспорт) (см.Блокировка //ЭНЭ и Семафор (железная дорога)) Блокировка… …   Википедия

  • Блокировка (программирование) — У этого термина существуют и другие значения, см. Блокировка. В информатике, блокировка это механизм синхронизации позволяющий обеспечить исключительный доступ к разделяемому ресурсу между несколькими потоками. Блокировки один из способов… …   Википедия

  • Взаимная блокировка — двух процессов P1 и P2 нуждающихся в двух ресурсах. Взаимная блокировка (англ. deadlock)  ситуация в многозадачной с …   Википедия

  • Коллизия (базы данных) — У этого термина существуют и другие значения, см. Коллизия. В базах данных коллизия событие, когда один пользователь запускает на выполнение транзакцию по изменению содержимого базы данных, а другой – на выборку из нее данных. Суть явления… …   Википедия

  • OpenEdge — RDBMS высокопроизводительная встраиваемая реляционная система управления базами данных (СУБД), производства компании Progress Software Corp. Progress OpenEdge® RDBMS открытый, удобный и высоко доступный проект СУБД, которая поддерживает почти… …   Википедия

  • Adaptive Server Enterprise — Тип Реляционная СУБД Автор Sybase Разработчик SAP Написана на C, C++ Операционная система Windows, AIX, HP UX, So …   Википедия

  • Database engine — Для термина «Движок» см. другие значения. В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете …   Википедия

  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му …   Википедия

  • Пайтон — Python Класс языка: функциональный, объектно ориентированный, императивный, аспектно ориентированный Тип исполнения: интерпретация байт кода, компиляция в MSIL, компиляция в байт код Java Появился в: 1990 г …   Википедия

  • Адаптер (шаблон проектирования) — У этого термина существуют и другие значения, см. Адаптер. Шаблон проектирования Адаптер Adapter …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»