Interested Article - Расписание (СУБД)

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

Последовательное расписание

Расписание последовательно, если оно подразумевает выполнение всех действий одной транзакции , а затем всех действий другой транзакции, и т.д.

Пример

В приведённой таблице отражены транзакции T 1 и T 2 , а также изменения переменных, которые эти транзакции затрагивают.

T 1 T 2 A B
25 25
READ(A,t)
t:=t+100
WRITE(A,t) 125
READ(B,t)
t:=t+100
WRITE(B,t) 125
READ(A,s)
s:=s*2
WRITE(A,s) 250
READ(B,s)
s:=s*2
WRITE(B,s) 250

Конфликт

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

Обозначим действия транзакции: r i (X), w i (X) , где r - операция чтения, w - операция записи, i - номер транзакции, X - элемент базы данных.

Неконфликтные пары действий

  • r i (X);r j (Y)
  • r i (X);w j (Y) при X≠Y
  • w i (X);r j (Y) при X≠Y
  • w i (X);w j (Y) при X≠Y

Конфликтные пары действий

  • Два последовательных действия одной транзакции, например r i (X);r i (Y)
  • Две операции записи значения одного элемента базы данных, выполняемых разными транзакциями: w i (X);w j (X)
  • Последовательные операции записи и чтения одного и того же элемента базы данных разными транзакциями: r i (X);w j (X)

Допустимые перестановки действий различных транзакций

Перестановки действий различных транзакций допустимы, если:

  • Они затрагивают разные элементы базы данных.

или

  • Ни одно из этих действий не связано с операцией записи данных.

Условно-последовательное расписание

Расписание называется условно-последовательным, если результат его реализации оказывается аналогичным результату реализации последовательного расписания. Смотри Граф предшествования .

Пример

T 1 T 2 A B
25 25
READ(A,t)
t:=t+100
WRITE(A,t) 125
READ(A,s)
s:=s*2
WRITE(A,s) 250
READ(B,t)
t:=t+100
WRITE(B,t) 125
READ(B,s)
s:=s*2
WRITE(B,s) 250
Источник —

Same as Расписание (СУБД)