From d0c27b255316ddf650252168788a0b8de0ea468f Mon Sep 17 00:00:00 2001 From: Arity-T Date: Tue, 12 Nov 2024 14:33:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=B2=D0=BE=D0=B4=D1=8B=20=D0=B2?= =?UTF-8?q?=20=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- report/report.tex | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/report/report.tex b/report/report.tex index 4424961..f1686ed 100644 --- a/report/report.tex +++ b/report/report.tex @@ -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}