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

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

Пример В приведённой таблице отражены транзакции T1 и T2, а также изменения переменных, которые эти транзакции затрагивают. T1 T2 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

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

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

Неконфликтные пары действий ri(X);rj(Y) ri(X);wj(Y) при X≠Y wi(X);rj(Y) при X≠Y wi(X);wj(Y) при X≠Y

Конфликтные пары действий Два последовательных действия одной транзакции, например ri(X);ri(Y) Две операции записи значения одного элемента базы данных, выполняемых разными транзакциями: wi(X);wj(X) Последовательные операции записи и чтения одного и того же элемента базы данных разными транзакциями: ri(X);wj(X)

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

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

Пример T1 T2 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

Категория:СУБД