Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Понятия транзакции в СУБД. Свойства АСИД. Проблемы параллельного выполнения транзакции. Понятие блокировки, методы управления параллельностью




Транзакция – является логической единицей работы в БД и состоит из набора команд, которые выполняются обязательно все.

Любая транзакция переводит БД из одного согласованного состояния в другое. При успешном завершении результаты транзакции фиксируются. При неуспешном – транзакция отменяется полностью, БД откатывается назад. Зафиксированная транзакция не может быть отменена.

BEGIN TRANSACTION - начало

COMMIT - завершение

ROLLBACK – откатка

Свойства АСИД:

1- атомарность – любая транзакция может быть выполнена вся целиком или не выполнена.

2 – согласованность – переводит БД из одного согласованного состояния в другое.

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

4 – долговечность - результаты успешно завершенной (зафиксированной)
транзакции должны сохраняться в базе данных постоянно и не должны
быть утеряны в результате последующих сбоев.

Проблемы параллельного выполнения транзакции:

1) проблему потерянного обновления - Результаты вполне успешно завершенной операции обновления одной транзакции могут быть перекрыты результатами выполнения другой транзакции,

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

3) проблему несогласованной обработки -возникает в тех случаях, когда транзакция считывает несколько значений из базы данных, после чего вторая транзакция обновляет некоторые из этих значений непосредственно во время выполнения первой транзакции.

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

Блокировка для чтения - Если транзакция установила блокировку элемента данных для чтения, она сможет считать его, но не сможет обновить.

Блокировка для записи - Если транзакция установила блокировку элемента данных для записи, она может, как читать, так и обновлять этот элемент.

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

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

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

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

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

 


 

18. Язык структурированных запросов SQL. Основные положения.

 

Язык SQL – структурированный язык запросов, который дает возможность работать в БД.

Разделяют 2 вида использования: 1)интерактивные – пользователь пишет запрос и получает на него ответ; 2) вложенные – элементы языка встраиваются внутрь другого языка.

 

SQL имеет несколько частей:

-DDL – язык определения данных,

-DML – язык манипулирования данными,

-DCD – язык управления данными.

 

Основные термины:

ключевые слова – слова, которые имеют специальное значение SQL.

команды – инструкция с которой мы обращаемся к БД.

Команды состоят из 1 или более логических частей – предложений.

Предложение начинается ключевым словом и состоит из ключевых слов и аргументов.

Объекты – структуры в БД, которые имеют имена.

Запрос – команда, которая дается СУБД и сообщает ей о необходимости вывести определенную информацию из таблиц.

 


 




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


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


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



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




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