2015-12-11 2 views
3

Я перехожу к практическим проблемам для своего курса базы данных.Почему этот график транзакций не сериализуем?

Мы дали график сделки:

T1   T2 
Read(A) 
       Write(B) 
       Commit 
Read(B) 
Write(B) 
Commit(B) 

В книге говорится, что выше не серийный, но почему?
Мне кажется, вы можете запустить T2, затем запустить T1 и получить тот же результат.

+0

Вы говорите о SQL Server? –

+0

Этот пример является серийным, результат равен результату вы запускаете две транзакции серийно –

+0

Возможно, ошибка в практике вопроса/ответа: - |? –

ответ

1

Это просто вопрос определения - ваш пример является сериализуемым, но не последовательным.

A Серийный график - это график, в котором каждая транзакция происходит по одному за раз.

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

+0

Я закончил курс, относящийся к этому вопросу, как год назад, но это делает меня теплой и нечеткой внутри, зная, что кто-то ответил на мой вопрос. –

+0

Привет, Иона, как бы вы поняли, если что-то подобное сериализуемо или нет? ПРИМЕРЫ: Таблица 1: T2: R (B), T2: W (B), T1: T2: W (A) Таблица 2: T1: R (B), T3: R (A), T3: W (A), T2: R (B), T2: W (A), T3: W (C), T1: R (A), T2: R (C) Возможно, вы просто вручную посмотрите на него и поменяйтесь вокруг txns, пока не получите результат, такой же, как и серийный (и если это невозможно, сериализуемый). Я не говорю о «конфликтной сериализации» здесь, поскольку я могу это сделать. любая помощь, которую вы можете предоставить, очень ценится (я работаю на экзамене в колледже). Приветствия! – TheDavil

Смежные вопросы