Структурированный язык запросов SQL к базам данных в многопользовательских системах
Уровень реализуется с помощью проверки: стоит ли на данных исключающий замок. Если замок стоит, то данные игнорируются, в противном случае - данные читаются, при этом разделяемый замок на данные не устанавливается. CURSOR STABILITY (стабильное чтение) Уровень реализуется с помощью установки на читаемые данные разделяемого замка. Уровень используется тогда, когда для поддержания целостности данных необходимо гарантировать, что данные не будут изменены в процессе работы определенной части приложения. Например, приложение читает первичный ключ кортежа из базы и на его основе обновляет кортежи в других отношениях. Очевидно, что при этом читаемый первичный ключ не должен быть изменен. При данном уровне изоляции данные будут заблокированы для модификации как для других пользователей, так и для пользователя, установившего блокировку. Таким образом, используя стабильное чтение, множество пользователей могут установить разделяемые замки на конкретный кортеж, который становится доступным для модификации только после снятия всех замков. Следует заметить, что установка разделяемого замка не предоставляет пользователю особых прав на данный кортеж в текущий момент, а только ограничивает права на нее других пользователей. Если невозможно поставить разделяемый замок на читаемые данные, то чтение завершается с ошибкой, о чем сообщается пользователю. Когда курсор переходит к чтению следующей записи или закрывается транзакция, то разделяемый замок с предыдущей записи снимается. Если чтение осуществляется не с помощью курсора, а обычным оператором SELECT, установленный уровень изоляции обрабатывается системой как COMMITED READ, то есть замки не устанавливаются и блокированные исключающими замками записи игнорируются.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy