Главная » Просмотр файлов » С.Д. Кузнецов - Основы баз данных

С.Д. Кузнецов - Основы баз данных (1121716), страница 91

Файл №1121716 С.Д. Кузнецов - Основы баз данных (С.Д. Кузнецов - Основы баз данных) 91 страницаС.Д. Кузнецов - Основы баз данных (1121716) страница 912019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Наконец, для транзакций, выполняемых на уровне изоляции ккктлктклвьк, невозможно и проявление феномена фантомов. Термин тела))саЫе (сериализуемый) используется по той причине, что при работе 434 Лекция 18 Авторизация доступа к денным, управление транзакциями и сессиями на данном уровне изоляции суммарный эффект выполнения набора транзакций [т1, те, ..., тп) идентичен эффекту некоторого последовательного выполнения этих транзакций. Это означает предельную изолированность транзакций.

Общая картина взаимосвязи уровней изоляции и феноменов транзакций показана в таблице ]8.2. Таб. 18.2. Уровни изоляции и феномены Фантомы Неповторясмос чтение «Грязное» чтение Уровень Возможно Возмо:кис Возможны ЕЕАР 1)МСОММ1ТТЕР Возможно Возможны Невозможно ЕЕАР РОММ ПЕР Невозможно Невозможно Невозможно Невозможно Возможны Невозможны ЕЕРЕАТАВЬЕ ЕЕАР ЕЕЕ1АЫЕАЕЬЕ Завершение транзакций Как мы отмечали в начале этого раздела, транзакции могут инициироваться как явным способом (с помощью оператора Втлет теАНВАст1ом), так и неявно, при выполнении первого оператора, требующего наличия контекста транзакции.

Для завершения транзакции всегда* требуется выполнение одного из двух операторов сомм1т (фиксация транзакции) или ЕОььВАск (откат транзакции), которые имеют следующий синтаксис: СОММ1Т [ ХОКК ] [ АМР [ МО ] СМА1М ЕОЬЬВАСК [ МОЕК ] [ АМР [ ИО ] СНА1М ТО БАЧЕРО1МТ зауероупс Радге ] При желании завершить транзакцию таким образом, чтобы все произведенные ею изменения были навсегда сохранены в базе данных, следует завершать транзакцию оператором СОММ1Т (как вндно из синтаксиса, допускается эквивалентный вид соммТТ мокк). Если требуется завершить транзакцию с аннулированием всех произведенных изменений, то нужно использовать оператор ЕОЬЬВАСК [ЕОЬЬВАСК МОЕК).

Заметим, что и операция фиксации транзакции, и операция отката являются достаточно сложными и выполняются не мгновенно. Поэтому в ходе выполнения этих операций, вообще говоря, может произойти ава- 438 ' Правильисс было бы сказать почти всегда, поскольку в ЕОЬ предусматривается особый способ тсрмииации гркиээкций, инициированных программными агентами. Нс в данном курсе иы этого ис касаемся.

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

Аварийная ситуация во время выполнения операции ВОББВйСК ничем не отличается от аварийной ситуации, возникшей в процессе выполнения транзакции. В этом случае (при восстановлении базы данных) прерванная транзакция считается незафиксированной (что так и есть), и все ее изменения автоматически удаляются из состояния базы данных. Поэтому окончательный результат выполнения операции фиксации транзакции, прерванной аварийным отказом системы, эквивалентен успешному выполнению операции отката транзакции*. Синтаксис обоих операторов показывает, что в каждом из них может содержаться раздел йнп , 'КО ] Снйтн.

Постараемся кратко пояснить смысл этого раздела (не вдаваясь в детали, поскольку стандарт ЯЯЕ:1999 оставляет окончательное решение за реализацией). Операции образования и завершения транзакции являются достаточно дорогостоящими. В особенности это касается операции завершения транзакции, при выполнении которой необходимо выполнить обмены с внешней памятью.

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

Именно эту возможность поддерживает раздел й(чп ( но 1 снйтн операторов СОИИтт и ВОББВйсд. Если такой раздел отсутствует в операторе завершения транзакции, то подразумевается наличие раздела й(чп ПО СНй:К, и новая транзакция не образуется. Если же раздел ЛНО Снйти присутствует, то немедленно после завершения выполнения сони:т или ДОЫ.ВйсК текущей транзакции образуется новая транзакция, наследуюшая все характеристики завершенной транзакции. Семантику раздела тО Бйчдротнт мы поясним немного позже. ' Возможно, некоторым читателям эти рассужления покажутся несколько расплывчатыми, но в действительности за ними стоит развитая техника журнализации и восстановления, применяемая во всех развитых ЗОь-ориентированных СУБД.

"' При этом экономятся хотя бы ресурсы, требуемые для создания транзакций. Иногда такие цепочки транзакций поэтически называют сагами: если вы когда-нибуль пробовали писать саги, то должны были почувствовать, что это проще, чем писать отдельные сказания. Лекция 18 Авторизация доступа к данным, управление транзакцияыи и сессиями Транзакции и ограничения целостности Материал этого подраздела уже излагался в лекции ) 3, но там это делалось в контексте определений ограничений целостности. Для полноты картины мы воспроизведем часть этого материала в контексте управления транзакциями. Итак, любое ограничение целостности обладает атрибутом, определяющим время проверки данного ограничения. Этот атрибут может иметь значения РеееееАеье (отложенная проверка) или нот РеееееАЕРе (немедленная проверка). Чтобы данное ограничение целостности могло когда-либо обладать свойством отложенной проверки, нужно, чтобы в определении такого ограничения присутствовали ключевые слова 1итт1АРРу Рееееееп или 1М1т1АРРу 1ммеР1Ате.

В любом случае, в каждый момент времени выполнения транзакции любое ограничение целостности находится в одном из двух состояний — отложенная проверка или немедленная проверка. Если начальным состоянием ограничения является 1М1т1АРРу Рееееееп, то в начале любой транзакции его текущим состоянием будет отложенная проверка. Аналогично для ограничений с начальным состоянием 1н1т1АРРу 1ммеР1Ате. Любое ограничение, находящееся в состоянии немедленной проверки, всегда проверяется в конце выполнения любого оператора Я0Е*. Немедленно проверяются и те ограничения, которые были определены как нот РеееееАВРе, но для которых впоследствии был установлен режим немедленной проверки. Однако если текущим состоянием ограничения является отложенная проверка, оно будет проверяться только тогда, когда перейдет в состояние немедленной проверки. Это делается неявно при выполнении оператора сомМ1Т или явно при выполнении оператора ЯЕТ СОНЯТЕА1НТЯ.

Этот оператор имеет следующий синтаксис: ЯЕТ СОНЯТЕА1МТЯ ( АРР ~ сопзПга(пп паше согиаа11зп) ( РЕЕЕЕЕЕР ) 1ММЕР1АТЕ ) Ключевое слово АРР является сокращенной формой задания списка имен всех ограничений целостности, определенных в базе данных, которые специфицированы с указанием ключевого слова РеееееАеье. Если список имен ограничений задается явно, то все входящие в него имена должны соответствовать ограничениям, определенным с указанием ключевого слова РЕЕЕЕЕАЕРЕ.

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

Конечно, теоретически можно было бы оформлять выполнение каждой такой подозрительной операции в виде отдельной транзакции, но это часто противоречит общей логике приложения, когда последовательность действий должна быть атомарной. Частичное решение этой проблемы предоставляет механизм точек сохранения (захеро)пг) 89ь:!999. Точка сохранения представляет собой своего рода пометку в последовательности операций транзакции, которую в дальнейшем можно использовать для частичного отката транзакции с сохранением жизнеспособности транзакции и результатов операций, выполненных в транзакции до точки сохранения. Пример использования точки сохранения показан на рис. 18.7. Рис.

18.7. Пример транзакции с точкой сохранения Лекция 18 Авторизация доступа к данным, управление транзакцмнмм и сессиями На этом рисунке после выполнения последовательности проверенных «безопасных» операций, которые, по мнению пользователя, не могут нарушить ограничения целостности с отложенной проверкой, устанавливается точка сохранения. За этой точкой следует серия «рискованных» операций. Если по какнм-то причинам (например, путем немедленной проверки отложенных ограничений) затем принимается решение о нецелесообразности фиксации результатов данных операций, то выполняется частичный откат транзакции к точке сохранения, а затем фиксируются результаты безопасных операций.

Допускается установка в одной транзакции нескольких последовательных точек сохранения. При установке каждой точки сохранения ей назначается некоторое (локальное в пределах транзакции) имя, которое в дальнейшем может использоваться в операции ЕОЬЬВАОК для задания точки частичного отката транзакции (см. выше синтаксис оператора Роььвлск). Если последонательно устанавливаются две точки сохранения БР1 и ЯР2 и затем выполняется операция БОЬЬВАСК то ЯАРЕР01нт БР1, то восстановление производится до ЯР1 (через ЯР2), и точка сохранения БР2 «забывается»». Для установления точки сохранения используется оператор ЯАУЕР01НТ с очевидным синтаксисом БАРЕР01ИТ зачеро(пс паше Можно также отказаться от ранее установленной точки сохранения, удалив ее из контекста транзакции.

Для этого предназначен оператор ЕЕЬЕАЯЕ, синтаксис которого также очевиден; ЕЕЬЕАБЕ ЯАУЕР01ИТ зачероупс папе После выполнения этой операции в данной транзакции невозможно выполнять какие-либо другие операции над точкой сохранения с данным именем, пока не будет образована другая одноименная точка сохранения. ' Обратите внимание, что оператор коььвлск то злчвяо нт в«терез пг паше, хотя и синтаксически вхож с «обычным» оператором воььвлск, принципиально отличается по своей семантике. Откат транзакции до указанной точки сохранения не означает завершения транзакции.

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

Тип файла
PDF-файл
Размер
5,28 Mb
Тип материала
Предмет
Высшее учебное заведение

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

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