КАТЕГОРИИ: Архитектура-(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; Просмотров: 476; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |