Структура СУБД
- 1 year ago
- 0
- 0
Расписанием называется упорядоченная последовательность действий, предпринимаемых в процессе выполнения одной или нескольких транзакции .
Расписание последовательно, если оно подразумевает выполнение всех действий одной транзакции , а затем всех действий другой транзакции, и т.д.
В приведённой таблице отражены транзакции 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 - элемент базы данных.
Перестановки действий различных транзакций допустимы, если:
или
Расписание называется условно-последовательным, если результат его реализации оказывается аналогичным результату реализации последовательного расписания. Смотри Граф предшествования .
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 |