Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обеспечение согласованности




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

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

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

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

Идеалом при обработке тран-ий является достижение ACID-свойств: атомарно­сти, согласованности, изолированности и продолжительности. Тран-я, не удовле­творяющая свойствам ACID, может с высокой вероятностью привести к повреждению БД или других тран-ий.

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

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

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

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

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

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

График набора тран-ий — это упорядочение их операций. График называется последовательным, если отсутствует чередование операций различных тран-ий. График является упорядоченным, если он эквивалентен последовательному графику. Упорядоченные графики идеальны потому, что каждая тран-я остается изолиро­ванной от влияния других тран-ий. Каждая тран-я видит согласованное со­стояние БД, как, если бы она выполнялась как единственная тран-я.

Протокол двухфазной блокировки требует, чтобы процесс установки и освобожде­ния блокировок каждой транзакцией состоял из двух фаз: фазы нарастания и фазы сжатия. График, удовлетворяющий этому протоколу, является также и упорядоченным графиком. Хотя взаимовлияние тран-ий исключается, они все же могут оказывать­ся в ситуациях взаимной блокировки. Наиболее популярным вариантом двухфазной блокировки является строгая двухфазная блокировка (2PL), при которой все блоки­ровки удерживаются до конца тран-ии и освобождаются во время фиксации или отката. Строгая 2PL используется коммерческими системами с СУБД для получения упорядоченных графиков.

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 452; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.