metBD (1084482), страница 21

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

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

Рассмотрим три примера потенциальных проблем, которые могут иметь мести при параллельном выполнении транзакций – проблему потерянного обновления, проблему зависимости от нефиксированных результатов и проблему несогласованной обработки.

Проблема потерянного обновления

Результаты вполне успешной завершенной операции обновления одной транзакции могут быть перекрыты результатами выполнения другой транзакции. Эта аномалия известна как проблема потерянного обновления.

Таблица 36

Время

Транзакция Т1

Транзакция Т2

Поле а1

t1

начало

100

t2

начало

чтение а1

100

t3

чтение а1

а1=а1+100

100

t4

а1=а1-10

запись а1

200

t5

запись а1

commit

90

t6

commit

90

Например, транзакция Т2 выполняется параллельно с транзакцией Т1.Транзакция Т1 заключается в снятии 10 тысяч рублей со счета, на котором исходно находится 100 тыс. руб., транзакция Т2 предполагает помещение 100 тыс. руб. на этот же счет. Если обе транзакции выполняются последовательно, то в результате должно оказаться 190 тыс. руб. на счете.

Пусть они выполняются параллельно и начинаются практически одновременно Т2 увеличивает сумму на 100 т.р. и записывает результат, равный 200 т.р. Тем временем Т1 уменьшает значение своей копии исходной суммы на 10 т.р. и записывает результат 90 т.р., перекрывая результат предыдущего обновления. Избежать потери результатов выполнения транзакции Т2 можно, запретив транзакции Т1 считывать исходное значение на счету вплоть до завершения выполнения транзакции Т2.

Проблема зависимости от нефиксированных результатов

Таблица 37.

Время

Транзакция Т3

Транзакция Т4

Поле а1

t1

начало

100

t2

чтение а1

100

t3

а1=а1+100

100

t4

начало

запись а1

200

t5

чтение а1

200

t6

а1=а1-10

откат

100

t7

запись а1

190

t8

commit

190

Проблема зависимости от нефиксированных результатов возникает в том случае, если одна из транзакций получит доступ к промежуточным результатам выполнения другой транзакции до того, как они будут зафиксированы в БД. Пусть Например, пусть Т4 увеличивает значение суммы на счете до 200 т.р. , после чего выполнение транзакции отменяется, поэтому СУБД должна выполнить откат с восстановлением исходного состояния 100 т.р. Предположим, однако, что транзакция Т3 уже успела считать измененное значение счета и использовать это значение для операции снятия денег со счета. Тогда на счете останется не 90 т.р., а 190 т.р. Причина выполнения отката транзакции Т4 несущественна – допустим, что при ее выполнении была обнаружена некоторая ошибка. Источник ошибки заключается в предположении транзакции Т3, что выполненное в транзакции Т4 изменение будет успешно зафиксировано в БД, хотя на самом деле имел место откат этой транзакции. Проблему можно устранить, запретив транзакции Т3 считывать значение счета до тех пор, пока транзакция Т4 не будет либо зафиксирована, либо отменена.

Проблема несогласованной обработки.

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

Таблица 38

Время

Транзакция Т5

Транзакция Т6

Поле а1

Поле в1

Поле с1

Поле Sum

t1

начало

100

50

25

0

t2

начало

Sum=0

100

50

25

0

t3

чтение а1

чтение а1

100

50

25

0

t4

а1=а1-10

Sum= Sum+а1

100

50

25

100

t5

запись а1

чтение в1

90

50

25

100

t6

чтение с1

Sum= Sum+в1

90

50

25

150

t7

с1=с1+10

90

50

25

150

t8

запись с1

90

50

35

150

t9

commit

чтение с1

90

50

35

150

t10

Sum= Sum+с1

90

50

35

185

t11

commit

90

50

35

185

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

Например, Т6 – вычисляет сумму остатков на 3-х счетах, а Т5 – переносит 10 т.р. с одного счета на другой. Тогда Т1 взяла остаток на 1-м и 2-м счетах, а Т2 перенесла 10 т.р. с 1-го счета на 3-й. Итог окажется на 10 т.р. больше, чем нужно. Эту проблему можно устранить, запретив транзакции Т6 считывать значения на счетах, до тех пор, пока транзакция Т5 не зафиксирует выполненные ею обновления.

Упорядочиваемость и восстанавливаемость.

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

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

График – это последовательность запуска операций множества параллельно выполняемых транзакций, сохраняющая очередность выполнения операций в каждой отдельной транзакции.

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

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

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

В отношении достижения упорядоченности весьма важен порядок выполнения операций чтения и записи данных.

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

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

  • Если одна транзакция записывает элемент данных, а другая транзакция этот же элемент данных считывает или записывает, порядок их выполнения имеет существенное значение.

Пример эквивалентных графиков:

Вариант А – непоследовательный график S1

Вариант Б – непоследовательный график S2, эквивалентный графику S1

Вариант В – последовательный график S3, эквивалентный графикам S1 и S2.

Таблица 39

A

Б

В

Т7

Т8

Т7

Т8

Т7

Т8

начало

начало

начало

чтение а1

чтение а1

чтение а1

запись а1

запись а1

запись а1

начало

начало

чтение в1

чтение а1

чтение а1

запись в1

запись а1

чтение в1

commit

чтение в1

запись а1

начало

запись в1

запись в1

чтение а1

commit

commit

запись а1

чтение в1

чтение в1

чтение в1

запись в1

запись в1

запись в1

commit

commit

commit

Поскольку операции записи на счет а1 в Т8 не конфликтует с последующей операцией чтения в1 в Т7, можно изменить порядку выполнения этих операций и получить эквивалентный график S2.

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

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

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

Тип файла
Документ
Размер
1,9 Mb
Тип материала
Предмет
Высшее учебное заведение

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

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