Главная » Просмотр файлов » Теория и практика построения баз данных

Теория и практика построения баз данных (1088289), страница 83

Файл №1088289 Теория и практика построения баз данных (Теория и практика построения баз данных) 83 страницаТеория и практика построения баз данных (1088289) страница 832018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 83)

Если бы, например, пользователь А па рисунке с самого цача.ча заблокировал и карандаши, и бумагу, взаимная блокировка не возникла бы. Второй способ предотвратить взаимную блокировку — потребовать от всех прикладных программ блокировать ресурсы в однол< и том же порядке. Даже если не все приложения будут налагать блокировки таким образом, вероятность возникновегнш взаимной блокировки снизится хотя бы для тех приложений, которые используют данную стратегию.

Эту философию можно распространить па организационные стандарты програлпгнровация следу<ош<иьт образом: «Всегдя<, когда происходит обработка строк нз таблиц в связи родитель-потомок, блокируй сначала родителя, затем потомка<с Это, по крайней мере, снизит вероятность взаимной блокировки, а может и вовсе исключить ее. 1. Заблокировать бумагу для А. 2. Заблокировать карандаши для В. 3. Обработать запрос А обновить данные о бумаге. 4. Обработать запрос В, обновить данные о карандашах. В. Перевести А в состояние ожидания (карандашей).

6. Перевести В в состояние ожидания (бумаги), '*Блокировка*' Рис. 11.7. Взаимная блокировка Почти в каждой СУБД имеются алгоритмы обнаружения взаимной блокировки. Когда происходит взаимная блокировка, обычное решение состоит в том, чтобы отменить одну из транзакций, тем самым удалив из базы данных произведенные ею изменения. Варианты того, как это сделать в Огас!е п ЗЯЕ Зегт ег, вы у д тев 13 1З. Оптимистическая и пессимистическая блокировки Блокировки могут налагаться двумя основными стилями. При олглияшсглической блокировке (орВтпгвсс !осй!пя) делается предположение, что конфликта Управление параллельной обработкой 391 вс произойдет.

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

В листинге 11.1 приведен пример каждого из стилей наложения блокировок лля транзакции, которая уменьшает количество карандашей в таблице ПРОДУКТ ца пять штук. Прн оптимистической блокировке сначала данные считываются, и текушее количество карандашей сохраняется в переменной СтароеКолнчество.

затем обрабатывается транзакц<и и в предположении, что все прошло успешно, налагается блокировка на таблицу ПРОДУКТ. Эта блокировка может затрап<вать <олько строку карандашей, но возможно, глубина детализации будет и большей. В любом случае, запускается ЯЯ1.-оператор, обновляюший строку карандашей, <. условием )Д)Н ЕДЕ Количество = СтароеКолнчество.

Если <шкакая другая транзакция нс измешша атрибут Количество в строке карандашей, тогда результат оператора ОРОАТЕ будет успешным. Если какая-то лругая транзакция изменила значения атрибута Количество в строке карандашей, выполнение оператора ОРОАТЕ будет неудачным, и транзакцию придется повторить. Листинг 11.1. Сравнение оптимистической и пессимистической блокировок Оптимистическая блокировка: 5ЕСЕСТ ПРОДУКТ. Название, ПРОДУКТ. Количество РКОМ ПРОДУКТ ИНЕСЕ ПРОДУКТ.Название='Карандаш' СтароеКопнчество = ПРОДУКТ. Количество 5е1 НовоеКспнчество = ПРОДУКТ. Количество — 5 (обработка транзакции — еспн НовоеКопнчество < О, генерируется исключение н т, д. Если все в порядке: ) СОСК ПРОДУКТ (с определенной глубиной детализации) ОРОЯТЕ ПРОДУКТ 5ЕТ ПРОДУКТ.Копнчество = НовоеКопнчество ИНЕКЕ ПРОДУКТ,Название = 'Карандаш' АИО ПРОДУКТ.Количество = СтароеКопкчество 392 Глава 11.

Многопользовательские базы данных Управление параллельной обработкой 393 Листинг 11.1 (продолженне) Пессимистическая блокировка: СОСК ПРОДУКТ (с определенной глубиной детализации) 5ЕСЕСТ ПРОДУКТ. Название. ПРОДУКТ. Количество ЕВОН ПРОДУКТ ШНЕКЕ ПРОДУКТ.Название='Карандаш' 5ес НовоеКоличество = ПРОДУКТ.Количество - 5 (обработка транзакции — если НовоеКопичество < О. генерируется иснлючение и т. д. Если все в порядке:) ОРОАТЕ ПРОДУКТ 5ЕТ ПРОДУКТ. Количество = НовоеКопичество ННЕКЕ ПРОДУКТ.

Название = 'Карандаш' ОНСОСК ПРОДУКТ (проверка на успешность обновления не требуется) В случае пессимистической блокировки еще до начала работы на таблицу ПРОДУКТ налагается блокировка (с некоторой глубиной детализации). Затем считываются значения, обрабатывается транзакция, выполняется оператор ОРОАТЕ и таблица ПРОДУКТ разблокируется. Преимущество оптимистической блокировки состоит в том, что она налагается только после обработки транзакции.

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

Недостаток оптимистической блокировки заключается в том, что если со строкой карандашей происходит иного активных действий, транзакцию, возможно, придется повторить многократно. Таким образом, транзакции, которые связаны с большой активностью по отношению к конкретной строке (например, покупка популярного товара), плохо приспособлены для оптимистической блокировки. Вообще говоря, Интернет — место дикое и непредсказуемое, и пользователи часто предпринимают неожиданные действия вроде прерывания транзакций на середине.

Поэтому, если только пользователи Интернета не были предварительно отобраны (например, путем записи в план интерактивных покупок), оптимистическая блокировка являет собой более удачный выбор. В иптрасетях, однако, принять решение сложнее. Возможно, оптимистическая блокировка и здесь ока- жется предпочтительнее, если нет какой-либо характеристики приложения, кото ая вызывала бы значительную активность по отношению к отдельным !'о' р бг грокам, или если требования приложения почему-лиоо делают повторную орлботку транзакций особенно нежелательной.

Объявление характеристик блокировки Клк вы можете видеть, управление параллельной обработкой — предмет слож))ый; некоторые решения о типах и стратегиях блокировок должны приниматься методом проб и ошибок. По этой и другим причинам прикладные программы (шзы данных обычно не налагагот явных блокпровок, Вместо этого они указывают рамки транзакций, а затем объявляют, какой тип поведения им хотелось бы наблюдать у СУБД. Таким образом, если поведение при блокировке нужно изменить, то нет необходимости переписывать приложение, чтобы налагать блокировки в других его местах.

Вместо этого просто меняются объявления характеристик блокировки. В листинге 11.2 показана транзакция с карандашаьти, в которой рамки транзакции указаны с помощью операторов ВЕ61Н ТКАН5АСТ1ОН, СОММ1Т ТКАН5АСТ1ОН н КОЕЕВАСК ТКАН5АСТ1ОН. Рамки транзакции — зто та информация, которая жизненно необходима СУБД, чтобы реализовывать различные стратегии блокировки, Если разработчик объявит теперь (через системный параметр пли каким-либо другим способом), что ему нужна оптимистическая блокировка, СУБД неявным образом наложит блотгировки, соответствующие этой стратегии, в правильном месте. Если после этого разработчик сменит тактику и запросит пессимистическую блокировку, СУБД неявно наложит свои блокировки в другом штесте.

Листинг 11.2. Обозначение рамок транзакции ВЕО!Н ТЙАН5АСТ!ОРН 5ЕСЕСТ ПРОДУКТ. Название, ПРОДУКТ.Количество РКОН ПРОДУКТ й)НЕЙЕ ПРОДУКТ Название='Карандаш' СтароеКоличество = ПРОДУКТ. Количество 5ег НовоеКопичество = ПРОДУКТ.Количество — 5 (обработка части транзакции — если НовоеКоличество < О, генерируется исключение, и т. д.) СОСК ПРОДУКТ (с определенной глубиной детализации) ОРОАТЕ ПРОДУКТ 5ЕТ ПРОДУКТ. Количество - НовоеКоличество ННЕЙЕ ПРОДУКТ.

Название - 'Карандаш' щюдолжениеи) 394 Глава 11.Многопользовательские базы данных Управление параллельной обработкой 395 Листинг 11.2 (продолжение) (продопнение обработки транзакции),. !Р транзакция выполнена успение ТКЕМ СОММ1Т ТЙАМВАСТ10Н ЕСВЕ КОС(ВАСК ТКАН5АСТ!ОМ ЕМО !Р Далее выпопняотся другие действия, не входящие в зту транзакцио... Согласованные транзакции Иногда встречается аббревиатура АСП), относящаяся к транзакциям. Она расшифровывается так: «атопцсйу, сопя)вгепсу, !во!аг!оп, г)игам!!ту», что в переводе с английского означает «атомарность, согласованность, изолированность и устойчивость».

Характеристики

Тип файла
DJVU-файл
Размер
9,56 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее