Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к зачету.doc
Скачиваний:
36
Добавлен:
16.04.2019
Размер:
906.75 Кб
Скачать

20. Транзакции и параллелизм, понятия смеси транзакций и графика запуска набора транзакций.

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

Свойства транзакций:

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

  2. Элементарные операции выполняются строго поочерёдно. В момент выполнения одной элементарной операции никакие другие элементарные операции этой или другой транзакции выполняться не будут.

Задача: выполнить три транзакции, состоящие из элементарных операций.

транз-ии

S=S1,S2,…,Sm

элемент.операции

Т=Т12,…,Тк

Q=Q1,Q2,…,Ql

Первый вариант выполнения:  S1,Т12,Q1,S2,….

Второй вариант выполнения:  Т1,Q1,Q2,Q3,S1,Т2….

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

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

21.Проблемы параллельной работы транзакций. Проблема потери результатов обновления.

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

Проблема №1: проблема потерь результатов обновления.

Проблема №2: проблема незафиксированной зависимости (неаккуратное считывание),(чтение грязных данных).

Проблема №3: проблема несовместимого анализа.

Проблема потери результатов обновления.

P- транзакция, Р=Ро – чтение, Р → Р1 – запись, откат, фиксация

Транзакция А

время

Транзакция В

Р=Ро

-

Р → Р1

-

Фиксация

х

t1

t2

t3

t4

t5

t6

Р=Ро

-

Р → Р1

-

Фиксация

Потеря результатов обновления

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

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

Проблема №1: проблема потерь результатов обновления.

Проблема №2: проблема незафиксированной зависимости (неаккуратное считывание),(чтение грязных данных).

Проблема №3: проблема несовместимого анализа.

Проблема незафиксированной зависимости.

Транзакция А

время t

Транзакция В

х

х

чтение Р=Р1

работа с Р1

-

Фиксация

t1

t2

t3

t4

t5

t6

чтение Р=Ро

запись Р1 → Р

-

-

Откат транзакции

Неповторяемое считывание

Транзакция А

время t

Транзакция В

чтение Р=Ро

х

Повторное чтение Р=Ро

t1

t2

t3

t4

t5

х

чтение Р=Ро

запись1 Р → Р

Фиксация

Фиктивные Элементы

Транзакция А

время t

Транзакция В

Выборка по условию α (отобрано n строк)

-

-

Выборка по условию α (отобрано (n+1) строк)

Фиксация

t1

t2

t3

t4

t5

х

Вставка строки, удовлетвор. условию α

Фиксация

х