Модели транзакций Уровни изолированности пользователей.

Презентация:



Advertisements
Похожие презентации
Модели транзакций Параллельное выполнение транзакций.
Advertisements

Лекция 7. Реализация многопользовательского режима. Транзакции. Важнейшей целью создания БД является организация параллельного доступа многих пользователей.
Лекция 26 Лекция 26 Параллельное выполнение транзакций. Типы конфликтов. Захваты и блокировки.
Транзакции Транзакция - это последовательность операций, производимых над базой данных и переводящих базу данных из одного непротиворечивого (согласованного)
3 Обработка транзакций в реальном масштабе времени (OLTP - технология)
Определение 2www.timurshamiladze.ru Уровень изоляции транзакции - набор правил, которые определяют насколько сильно необходимо.
ACID – свойства транзакций 1.Атомарность 2.Согласованность 3.Изолированность 4.Долговечность create table AccountInfo(Name varchar2(100), Account number(10));
Технология хранения, поиска и сортировки информации в базах данных
Базы данных Лекция 4 Базисные средства манипулирования реляционными данными: реляционная алгебра Кодда.
Модели транзакций Журнализация и буферизация. Зачем нужна буферизация Если бы запись об изменении базы данных, которая должна поступить в журнал при выполнении.
Схема данных в Access Преподаватель: Французова Г.Н.
Базы данных – это совокупность сведений (о реальных объектах, процессах, событиях или явлениях), относящихся к определенной теме или задаче, организованная.
Лекция 25 Лекция 25 Понятие целостности базы данных. Условия целостности. Транзакции. Обработка транзакций. Свойства транзакций. Модель ANSI/ISO. Назначение.
Учебная дисциплина «Базы данных и управление ими» для студентов специальности «Профессиональное обучение» Лекция 10 ОРГАНИЗАЦИЯ ПАРАЛЛЕЛЬНОГО.
Реляционная модель – это особый метод рассмотрения данных, содержащий данные в виде таблиц, способов работы и манипуляции с ними в виде связей. структура,
БАЗЫ ДАННЫХ ( ВВЕДЕНИЕ ). База данных это информационная модель, позволяющая упорядоченно хранить данные о группе объектов, обладающих одинаковым набором.
Обобщенная архитектура СУБД. Область SQL содержит данные связывания, временные буферы, дерево разбора и план выполнения для каждого оператора SQL, Область.
Определения Банк данных (БнД) это система специальным образом организованных дан­ных - баз данных, программных, технических, языковых, организационно-
Базы данных в электронных таблицах 1. Представление базы данных в виде таблицы и формы.
Подготовила: Бовина Елена М-063. это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих одинаковым набором.
Транксрипт:

Модели транзакций Уровни изолированности пользователей

4 уровня изолированности пользователей. уровень SERIALIZABLE уровень подтвержденного чтения REPEATABLE READ READ COMMITED уровень неподтвержденного, или грязного, чтения - READ UNCOMMITED

уровень SERIALIZABLE Самый высокий уровень изолированности соответствует протоколу сериализации транзакции уровень обеспечивает полную изоляцию транзакций и полную корректную обработку параллельных транзакций.

REPEATABLE READ На этом уровне транзакция не имеет доступа к промежуточным или окончательным результатам других транзакций Однако во время выполнения своей транзакции вы можете увидеть строку, добавленную в БД другой транзакцией. Поэтому один и тотже запрос, выполненный в течение одной транзакции, может дать разные результаты, то есть проблема строк-призраков остается. Однако если такая проблема критична, лучше се разрешать алгоритмически, изменяя алгоритм обработки, исключая повторное выполнение запроса в одной транзакции.

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

READ UNCOMMITED При этом уровне изолированности текущая транзакция видит промежуточные и несогласованные данные, и также ей доступны строки- призраки. Однако даже при этом уровне изолированности СУБД предотвращает пропавшие обновления.

оператор задания уровня изолированности выполнения транзакции. SET TRANSACTION IZOLATION LEVEL [{SERIALIZABLE | REPEATABLE READ | READ COMMITED | READ UNCOMHITED}] [{READ WRITE | READ ONLY }]

Уровни изолированности транзакций

Гранулированные синхронизационные захваты При применении этого подхода синхронизационные захваты могут запрашиваться по отношению к объектам разного уровня: файлам, отношениям и кортежам. Требуемый уровень объекта определяется тем, какая операция выполняется(например, для выполнения операции уничтожения отношения объектом синхронизационного захвата должно быть все отношение, а для выполнения операции удаления кортежа этот кортеж). Объект любого уровня может быть захвачен в режиме S (разделяемом) или X (монопольном) Вводится специальный протокол гранулированных захватов и определены новые типы захватов: перед захватом объекта в режиме S или X соответствующий объект более высокого уровня должен быть захвачен в режиме IS. IX или SIX.

Intented for Shared lock IS (Intented for Shared lock, предваряющий разделяемую блокировку) по отношению к некоторому составному объекту 0 означает намерение захватить некоторый входящий в 0 объект в совместном режиме. Например, при намерении читать кортежи из отношения R это отношение должно быть захвачено в режиме IS (а до этого в таком же режиме должен быть захвачен файл).

Intented for exclusive lock IX (Intented for exclusive lock, предваряющий жесткую блокировку) по отношению к некоторому составному объекту 0 означает намерение захватить некоторый входящий в 0 объект в монопольном режиме. Например, при намерении удалять кортежи из отношения R это отношение должно быть захвачено в режиме IX (а до этого в таком же режиме должен быть захвачен файл),

Shared, Intented for exclusive lock SIX (Shared, Intented for exclusive lock, разделяемая блокировка объекта, предваряющая дальнейшие жесткие блокировки его составляющих) по отношениюк некоторому составному объекту О означает совместный захват всего этого объекта с намерением впоследствии захватывать какие-либо входящие в него объекты в монопольном режиме. Например, если выполняется длинная операция просмотра отношения с возможностью удаления некоторых просматриваемых кортежей, то экономичнее всего захватить это отношение в режиме SIX (а доэтого захватить файл в режиме IS)

Матрица совместимости блокировок.

Протокол гранулированных захватов требует соблюдения следующих правил: 1. Прежде чем транзакция установит S- блокировку на данный кортеж, она должна установить блокировку IS или другую, более сильную блокировку на отношение, в котором содержится данный кортеж. 2. Прежде чем транзакция установит Х- блокировку на данный кортеж, она должна установить IX-блокировку или другую более сильную блокировку на отношение, в которое входит кортеж.

Определение Блокировка L1 называется более сильной по отношению к блокировке L2 тогда и только тогда, когда для любой конфликтной ситуации (Нет недопустимо) в столбце блокировки L2 в некоторой строке матрицы совместимости блокировок(см. табл) существует также конфликт в столбце блокировки L1 в той же строке.

Диаграмма приоритетов блокировок

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

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

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

Суть метода Для этого каждой транзакции Т предписывается временная метка t, соответствующая времени начала Т. При выполнении операции над объектом r транзакция Т помечает его своей временной меткой и типом операции (чтение или изменение).

Перед выполнением операции над объектом г транзакция Т1 выполняет следующие действия: Проверяет, не закончилась ли транзакция Т, пометившая этот объект. Если Т закончилась, Т1 помечает объект г и выполняет свою операцию. а Если транзакция Т не завершилась, то Т1 проверяет конфликтность операций. Если операции неконфликтны, при объекте г остается или проставляется временная метка с меньшим значением, и транзакция Т1 выполняет свою операцию. Если операции Т1 и Т конфликтуют, то если t(T) > t(Tl) (то есть транзакция Т является более «молодой», чем Т1), производится откат Т и T1 продолжает работу. Если же t(T) < t(T1) (Т «старше» Т1), то Т1 получает новую временную метку и начинается заново.

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