Выводы в таблицах
This commit is contained in:
@@ -690,11 +690,6 @@ $$;
|
||||
t & Транзакция 1 & Транзакция 2 \\
|
||||
\hline
|
||||
|
||||
\multirow{3}{*}{} & \multicolumn{2}{p{0.9\textwidth}|}{
|
||||
В первой транзакции обновляется запись в таблице \texttt{judge}. В момент после обновления вторая транзакция читает эту же запись из \texttt{judge}, однако в связи с отсутствием артефакта <<Грязное чтение>> она видит исходную таблицу до обновлений первой транзакции.
|
||||
}\\
|
||||
\cline{2-3}
|
||||
|
||||
\multirow{2}{*}{}
|
||||
& \multicolumn{2}{c|}{
|
||||
\texttt{SET TRANSACTION ISOLATION LEVEL READ COMMITTED;}
|
||||
@@ -706,7 +701,7 @@ $$;
|
||||
|
||||
$t_1$ &
|
||||
\specialcell{
|
||||
Изменение имени судьи с \texttt{id\_judge = 201}\\ \\
|
||||
Изменение имени судьи с \texttt{id\_judge = 201}\\
|
||||
\texttt{select id\_judge, name from judge}\\
|
||||
\texttt{where id\_judge = 201;}\\
|
||||
\texttt{update judge set name = 'Софа'}\\
|
||||
@@ -723,7 +718,8 @@ $$;
|
||||
&
|
||||
\specialcell{
|
||||
Получение имени судьи с \texttt{id\_judge = 201} \\
|
||||
и завершение транзакции\\ \\
|
||||
и завершение транзакции\\
|
||||
\texttt{begin;} \\
|
||||
\texttt{select id\_judge, name from judge}\\
|
||||
\texttt{where id\_judge = 201;}\\
|
||||
\texttt{commit;}\\
|
||||
@@ -743,6 +739,11 @@ $$;
|
||||
&
|
||||
\\
|
||||
\hline
|
||||
|
||||
& \multicolumn{2}{p{0.9\textwidth}|}{
|
||||
В первой транзакции у судьи c \texttt{id\_judge = 201} изменяется имя с <<София>> на <<Софа>>. В момент после обновления вторая транзакция читает эту же запись из \texttt{judge}, однако в связи с отсутствием артефакта <<Грязное чтение>> она видит имя <<Софа>>, то есть значение до обновлений первой транзакции.
|
||||
}\\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
@@ -761,11 +762,6 @@ $$;
|
||||
t & Транзакция 1 & Транзакция 2 \\
|
||||
\hline
|
||||
|
||||
\multirow{3}{*}{} & \multicolumn{2}{p{0.9\textwidth}|}{
|
||||
В первой транзакции происходит чтение записи из таблицы \texttt{judge}. После чего эта же запись обновляется во второй транзакции, изменения фиксируются и вторая транзакция успешно завершается. Затем первая транзакция повторно считывает эту запись и получает обновлённые данные, а не исходные, из-за наличия артефакта <<Неповторяемое чтение>>.
|
||||
}\\
|
||||
\cline{2-3}
|
||||
|
||||
\multirow{2}{*}{}
|
||||
& \multicolumn{2}{c|}{
|
||||
\texttt{SET TRANSACTION ISOLATION LEVEL READ COMMITTED;}
|
||||
@@ -802,7 +798,6 @@ $$;
|
||||
\includegraphics[width=0.9\linewidth]{img/transaction2_2.png}
|
||||
\\
|
||||
\hline
|
||||
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
@@ -831,6 +826,11 @@ $$;
|
||||
&
|
||||
\\
|
||||
\hline
|
||||
|
||||
& \multicolumn{2}{p{0.9\textwidth}|}{
|
||||
В первой транзакции происходит получение имени судьи с \texttt{id\_judge = 201} -- выводится имя <<София>>. После чего эта же запись обновляется во второй транзакции, имя изменяется на <<Софа>>, изменения фиксируются и вторая транзакция успешно завершается. Затем первая транзакция повторно считывает эту запись и получает обновлённые данные -- имя <<Софа>>, из-за наличия артефакта <<Неповторяемое чтение>>.
|
||||
}\\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
@@ -849,11 +849,6 @@ $$;
|
||||
t & Транзакция 1 & Транзакция 2 \\
|
||||
\hline
|
||||
|
||||
\multirow{3}{*}{} & \multicolumn{2}{p{0.9\textwidth}|}{
|
||||
В первой транзакции происходит чтение записей из таблицы \texttt{judge} с \texttt{id\_judge >= 250}. После чего в эту таблицу добовляется запись во второй транзакции, изменения фиксируются и вторая транзакция успешно завершается. Затем первая транзакция повторно получает записи с \texttt{id\_judge >= 250}. В этот раз она также получает данные о записи, добавленной второй транзакцией, из-за наличия артефакта <<Фантомы>>.
|
||||
}\\
|
||||
\cline{2-3}
|
||||
|
||||
\multirow{2}{*}{}
|
||||
& \multicolumn{2}{c|}{
|
||||
\texttt{SET TRANSACTION ISOLATION LEVEL READ COMMITTED;}
|
||||
@@ -919,6 +914,11 @@ $$;
|
||||
&
|
||||
\\
|
||||
\hline
|
||||
|
||||
& \multicolumn{2}{p{0.9\textwidth}|}{
|
||||
В первой транзакции происходит получение имён судей из таблицы \texttt{judge} с \texttt{id\_judge >= 250}, в ответ выводится один судья с именем <<анна>>. После чего в эту таблицу добовляется новый судья во второй транзакции с именем <<вика>>, изменения фиксируются и вторая транзакция успешно завершается. Затем первая транзакция повторно получает записи с \texttt{id\_judge >= 250}. В этот раз, по мимо судьи с именем <<анна>>, она также получает данные о записи, добавленной второй транзакцией -- судье с именем <<вика>>, эта запись и является артефактом <<Фантом>>.
|
||||
}\\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
\end{table}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user