Главная » Просмотр файлов » Диго С.М. Базы данных проектирование и использование

Диго С.М. Базы данных проектирование и использование (1084447), страница 62

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

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

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

10.4.2. Блокировки

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

Обобщенная схема классификации блокировок приведена на рис. 10.6.

Блокировки накладываются в соответствии с правилами совмес­тимости блокировок, исключающими конфликты чтение-запись, запись-чтение и запись-запись. Сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно вы­полняемым транзакциям, удовлетворяют следующему правилу: «Ни одна блокировка от имени какой-либо транзакции не должна уста­навливаться, пока не будет снята ранее установленная блокировка». Это правило известно под названием двухфазового блокирования, поскольку транзакция проходит при этом сначала фазу роста, когда она устанавливает блокировки, а затем фазу сжатия, когда блоки­ровки снимаются. В общем случае снятие блокировок до завершения транзакции проблематично, поэтому в большинстве алгоритмов уп­равления одновременным доступом применяется подход, когда бло­кировки не снимаются до конца транзакции.

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

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

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

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

В конкретных СУБД могут быть реализованы не все, а только не­которые из перечисленных уровней блокировок. Так, практически нигде не реализована блокировка на уровне поля. В Microsoft SQL Server только начиная с версии 6.5 был добавлен уровень блокировки записи, и то только для операций типа INSERT. В dBase, FoxPro предусматривается блокировка на уровне таблиц и записей.

Блокировка на нижних уровнях приводит к перегрузке менеджера блокировок и, как следствие, к падению производительности системы. С другой стороны, блокировка на более высоком уровне мешает конку­рирующим пользователям получить доступ к нужным данным.

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

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

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

10.4.3. Режимы доступа к информации

При работе в многопользовательской среде файлы могут быть открыты в одном из режимов - разделяемом или исключительном. При исключительном (монопольном, эксклюзивном) режиме досту­па с данной информационной единицей может работать только тот пользователь, который первый открыл файл. Эксклюзивное исполь­зование иногда называют блокировкой типа X (eXclusive lock), а раз­деляемое (блокировка с взаимным доступом) - S (Shared lock). Ис­ключительные блокировки используются для операторов, изменяю­щих структуру таблицы или значения тех или иных полей.

Возможные сочетания видов блокировок приведены ниже.

X

S

-

X

N

N

Y

S

N

Y

Y

-

Y

Y

Y

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

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

10.4.4. Уровни изоляции в SQL

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

В SQL-92 определены так называемые уровни изоляции (isolation level).

  1. Уровень SERIALIZABLE (последовательное выполнение) -обеспечивает максимальную степень целостности и соответствует требованиям предыдущих стандартов. Обычно именно этот уровень устанавливается по умолчанию. При его выборе каждая транзакция выполняется изолированно.

  2. Уровень REPEATABLE READ (повторяющееся чтение) - до­пускает вставку новой записи в таблицу, обрабатываемую транзакци­ей. При этом в принципе может возникать эффект так называемой фантомной вставки.

  3. Уровень READ COMMITTED (чтение с фиксацией) - допуска­ет выполнение запроса при условии, что результаты параллельных транзакций были зафиксированы.

  4. Уровень READ UNCOMMITTED (чтение без фиксации) - до­пускает выполнение запроса независимо от того, были зафиксирова­ны результаты параллельных транзакций или нет.

Если транзакция объявлена как READ ONLY, то это переводит ее на уровень READ UNCOMMITTED.

Уровень изоляции определяется в предложении SET TRAN­SACTION, которое имеет следующий синтаксис:

SET TRANSACTION {ISOLATION LEVEL

{READ UNCOMMITTED

| READ COMMITTED

| REPEATABLE READ

| SERIALIZABLE}

| {READ ONLY | READ WRITE}

| {DIAGNOSTICS SIZE число условий}}.,..;

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

Уровень изоляции и характер транзакции (только чтение или чте­ние/запись) являются взаимозависимыми. Если задано READ WRITE, то ISOLATION LEVEL не может быть READ UNCOMMITTED. Если ISOLATION LEVEL определен как READ UNCOMMITTED, транзак­ция становится по умолчанию READ ONLY. В противном случае тран­закция по умолчанию считается READ WRITE.

10.4.5. Использование хранимых процедур и триггеров для контроля целостности БД

Как отмечалось выше, при использовании технологии «клиент-сервер» запрос передается для выполнения на сервер. На практике часто встречается ситуация, когда один и тот же запрос выполняется многократно. Для сокращения времени выполнения таких запросов можно использовать хранимые процедуры. При этом запрос в оттран­слированном виде хранится на сервере и при возникновении потреб­ности в обработке данных на сервер передается не весь текст запроса целиком, а только обращение к соответствующей процедуре. Время выполнения запроса уменьшается не только за счет уменьшения се­тевого трафика, но и в связи с тем, что процедура уже заранее и одно­кратно транслирована, а оптимальный план ее выполнения можно определять сравнительно редко.

Другой способ выполнения некоторых стандартных для данной прикладной области операций - использование триггеров. Триггеры срабатывают каждый раз, когда выполняется заданная операция над заданной таблицей. В результате может быть выполнен один опера­тор SQL или вызвана хранимая процедура.

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

10.5. Тиражирование данных

10.5.1. Основные понятия

Тиражирование - используемая в РБнД технология, предусмат­ривающая поддержку копий всей БД или ее фрагментов в нескольких узлах сети. Копия базы данных, являющаяся членом набора других копий, которые могут быть синхронизированы между собой, называ­ется репликой. Копии БД обычно приближены к местам использования информации. Как синоним понятию «тиражирование» использу­ется термин «репликация». Тиражирование является сравнительно новой технологией.

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

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

В некоторых системах используются метафоры из издательской деятельности (издатель, публикация, подписчик).

Совокупность данных, которые могут подвергаться тиражирова­нию, называется публикацией.

В системах с тиражированием присутствуют все функции, прису­щие другим видам распределенных систем, плюс еще специфичес­кие функции, вызванные именно тиражированием. Это функции, обес­печивающие пересылку изменений всем узлам-пользователям; функ­ции поддержания идентичности всех копий (реплик) БД; если эталонная база - единственная, то функции формирования базы данных-эталона и некоторые другие. Причем часть этих функций может быть совмещена на одном узле, а часть - отсутствовать, в зависимос­ти от использованной технологии тиражирования.

10.5.2. Преимущества и недостатки тиражирования

Преимущества. Использование технологии тиражирования име­ет следующие преимущества:

  • сокращение сетевого трафика при выполнении запросов;

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

  • повышение производительности (за счет приближения данных к месту их использования, а также за счет специфики технологии выполнения запроса: не нужно ждать, чтобы все части распределен­ной БД были одновременно доступны);

  • повышение автономности рабочих мест пользователей;

  • повышение надежности системы (наличие множества копий по­вышает вероятность восстановления системы в критических ситуа­циях);

  • уменьшение трафика (при определенных условиях);

  • уменьшение конкуренции за ресурсы со стороны пользователей.

Недостатки. Дублирование данных при использовании технологии тиражирования влечет за собой следующие очевидные недостатки:

  • дополнительный расход памяти;

  • сложность обеспечения целостности данных; возможность воз­никновения конфликтов при корректировке;

  • наличие временного лага между фиксацией события в БД и до­ступностью этой информации для всех пользователей сети;

  • повышенные требования к рабочим станциям;

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

10.5.3. Виды тиражирования

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

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

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

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

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