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

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

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

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

Таким образом, АС1Е)-транзакция — это транзакция, обладающая всеми перечисленными свойствами. Как вы только что узнали, атомарная транзакция — это такая транзакция, в которой либо выполняются все солержашиеся в ней действия с базой данных, либо ие выполняется ни одно из них. Устойчивая транзакция — это транзакция, в которой все сохраненные изменения остаются в базе данных. СУБД не будет улалять эти изменения даже в случае ошибки.

Если транзакция устойчивая, СУБД прп необходимости предоставит возможность для восстановления изменений, произведенных всеми записанными действиями. Однако термины согласованыая и изолированная не являтотся столь же определенными, как термины атомарная и устойчивая. Рассмотрим слелугощий обновляющий БЯ1 -оператор: ОРОАТЕ КЛИЕНТ 5ЕТ КодРегиона = '425' ННЕКЕ Индекс = '98050' Предположим, что в таблице КЛИЕНТ имеется 500 000 строк, и в 500 из них атрибут Индекс имеет значение «98050». Чтобы найти все этн 500 строк, СУБД потребуется некоторое время. Будет ли на протяжении этого времени разрешено другим транзакциям обновлять поля КодРегиона и Индекс таблицы КЛИЕНТ? Если Я(2! -оператор является согласованным, такие обновления будут запрещены.

Обновление будет применено к набору строк в том ниде, в каком они существовали в момент запуска 5Я).-оператора. Такая согласованность называется сог«тасовагтпоолью па уровне оператора (втагешепс !ече! сопя!зсепсу). Теперь рассмотрим транзакцию, которая содержит два оператора обновления: ВЕ61Н ТЛАМ5ЯСТ!ОМ ОРОАТЕ КЛИЕНТ 5ЕТ КодРегиОна - '425' ИНЕКЕ Индекс - '98050' !прочие действия втой транзакции) ОРОАТЕ КЛИЕНТ 5ЕТ Скидка = 0.05 ИНЕСЕ КодРегиона = '425' (прочие действия втой транзакции) СОММ1Т ТКАН5АСТ!ОН Что в данном контексте означает термин согласованность? Согласованность на уровне оператора означает, что каждый из операторов независимо обрабатывает согласованные строки, но в интервале между двумя операторами указанные строки могут изменяться другими пользователями.

Согласованность па уровне траггзакдии (сгапвасбоп !ече! сопв|втепсу) означает, что все строки, затронутые любым из 5(21 -операторов, защищены от изменений на протяжении всей транзакции. Обратите шшмание, однако, что при некоторых реализациях согласованности транзакпия пе будет видеть свои же собствешгые изменения, В данном примере второй оператор не будет видеть строк, измененных псрным гшератором. Таким образом, когда вы слышите термин согдасоваппосгль, следует выяснить, какой тип согласованности имеется в виду. Следует также знать и о ловушке, которую может содержать в себе согласованность на уровне транзакции. Еше более сложной является ситуация с термином изаяировантсость.

Рассмотрим его в следующем разделе. Уровень изоляции транзакции Блокировки предотвращают потерю ггзмеггетгттгт при параллельной обработке. Тем не менее, существует рял проблем, которые оии предотвратить не в состоянии. Одной из таких проблем является грязное» чте>тив (Йггу геат)) — чтение транзакцией записи, которая изменена, по еще пе записана в базе данных. Это может произойти, например, когда одна транзакция считывает строку, нзмевешгую другой незавершенной транзакцией, а эта другая транзакцтш впоследствии о гменяется.

Е1евоспроизводилтое птепив (попгсреатаЫе геас)в) — это ситуация, когда при повторполг чтении дациых, уже считанных ранее, транзакция обнаруживает модификации илп удаления, вызванные другой завершенной транзакцией, Наконец, фаитомное чтение (р!таптош геагЬ) — это ситуация, когда при повторном чтешш данных транзакция обнаруживает иовыс строки, вставленные другой завершенной транзакцией после предыдущего чтения. В стандарте 5О! 1992 г, определены четыре уровня изоляции транзакций (тгапзасцоп !во!ат!оп 1ечеь), которые определяют допустимость перечисленных выше проблем, Цель состоит в том, чтобы разработчик прикладной программы мог указать желаемый уровень изоляции, а СУБД осуптествляла бы управление блокировками в соответствии с этим указанием, уровень изоляции Таблица 11.1.

Типы курсоров Завершенное чтение Васи раизвв(имая чтение Сериализуемосп Свойства Описание тип куроорв Последовательный Приложение может перебирать набор записей только в одном направлении — вперед »Грязное» чтение Вазважна Не«азиопа Невоспраизвадим ое чтение Тип проблемы Незазиаюо Нееииазно Фантомное чтение Невозможна Статический Приложение видит данные в том состоянии, в каком они были на момент открытия курсора Рис. 11.8. уровни изоляции 'Ключевой При открытии курсора для каждой строки набора записей сохраняется значение первичного ключа.

Обращаясь к строке, приложение использует этот ключ для получения текущего значения строки 0ЕСЕАРЕСНР50Р ТгапзСцгзсг А5 5ЕЕЕСТ* РРОНТЙАН5АСТ10Н ННЕРЕРцгсйазерг(се > '10000' Приложение видит любые изменения вызванные любым источником Динамический 396 Глава 11. Многопользовательские базы данных Как можно видеть на рис.

11.8, уровень изоляции под названием «незавершенное чтение» Егеаг( цпсоптш(г(ег() допускает «грязное» чтение, невоспроизводимое чтение и фантомное чтение. Уровень изоляции «заввршешгое чтение» (геад сошппггед) предотврап(ает «грязное» чтение. Урогтень изоляции «воспроизводимое чтение» ЕгереагаЫе геадз) предотврагдает «грязное» чтение и невоспроизгзолимое чтение. Уровень изоляции сериализуемости» Езег(а1(хаЫе) не попускает возникновения ни одной из этих трех проблем. Вообще говоря, чем большие ограничения предусматривает уровень изоляции, тем меньше пропускная способность базы данных, хотя многое зависит от нагрузки и от того, как написаны прикладные программы. Кроме того, не всеми СУБД поддерживаются все четыре уровня изоляпин.

Могут также различаться способы поддержки и бремя, которое они возлагают на программиста. О том, как уровни изоляции поддерживаются в Огас1е и БЯ1. Бегуег, вы узнаете из следующих двух глав, Тип курсора Курсор — это указатель на набор строк. Обычно курсоры определяются с помощью операторов 5ЕЕЕСТ. Например, оператор определяет курсор пол названием ТгапзСцгзог, действующий на наборе строк, указанном в операторе 5ЕЕЕСТ, Когда прикладная программа открывает курсор и считывает первую строку, о курсоре говорят, что он «указывает на первую строку».

Транзакция может открывать несколько курсоров — как последовательно, так и одновременно. Кроме того, на одной и той же таблице можно открыть два и более курсора; это можно слелать как на самой таблице, так и на ее 5ОЕ-представлении. Поскольку курсоры потребляют значительное количество памяти, то открытие нескольких курсоров, к примеру, для тысячи параллельных транзакций, может оказаться накладным в отношении памяти и процессорного времени. Один из способов снизить потребление ресурсов при работе с курсорами— Управление параллельной обработкой 397 использовать курсоры с ограниченными возможностями в случаях, когда полнофункциональный курсор не требуется.

В табл. 11.1 перечислены четыре типа курсоров, используемых в среде Ъ'(иг(г>цгз 2000, ГВ других системах типы курсоров аналогичны.) Простейший тип курсора — последовательный (1огьуагд оп1у сцгзог). Он позволяет приложению передвигаться по набору строк только вперед. Изменения, произведенные другими курсорами в данной транзакции, а также лругими транзакциями, будут видны только в том случае, если затронутые ими строки находятся впереди курсора. Изменения, производимые другими курсорами в данной транзакции или другими транзакциями, будут видимы только в том случае, если они затрагивают строки, находящиеся перед курсором Изменения, производимые данным курсором, являются видимыми. Изменения, инициированные другими источниками, не видны.

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

Изменения в порядке строк не видны. Если выставлен уровень изоляции «незавершенное чтение» (то есть допускается «грязное» чтение), то несохраненные обновления и удаления являются видимыми; а противном случае видны только сохраненные обновления и удаления Все вставки, обновления, удаления и изменения в порядке записей являются видимыми. Если выставлен уровень изоляции «незавершенное чтение» (то есть допускается «грязное» чтение), то несохраненные изменения являются видимыми.

В противном случае видны тоько сохраненные изменения Остальные три типа курсоров называются двуниправлвнлыми курсорами (зсго1- 1аЫе сцгзогз), поскольку приложение может передвигаться по набору записей 398 Глава 11. Многопользовательские базы данных Безопасность базы данных 399 как вперед, так и назад. Сшаглический курсор (згабс сшзог) обрабатывает «снимок» отношения, сделанный в момент открытия курсора, Изменения, сделанные таким курсором, являются видимыми для самого курсора; изменения из люоых других источников являготся невидимыми.

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

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

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

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