diff --git a/report/img/transaction3_1.png b/report/img/transaction3_1.png new file mode 100644 index 0000000..533f39e Binary files /dev/null and b/report/img/transaction3_1.png differ diff --git a/report/img/transaction3_2.png b/report/img/transaction3_2.png new file mode 100644 index 0000000..4140f32 Binary files /dev/null and b/report/img/transaction3_2.png differ diff --git a/report/img/transaction3_3.png b/report/img/transaction3_3.png new file mode 100644 index 0000000..9fb7080 Binary files /dev/null and b/report/img/transaction3_3.png differ diff --git a/report/report.tex b/report/report.tex index 27f363b..40ee7cc 100644 --- a/report/report.tex +++ b/report/report.tex @@ -816,5 +816,71 @@ $$; \end{table} +В таблице~\ref{tbl:fantom} представлены транзакции, на примере которых демонстрируется наличие артефакта <<Фантомы>>. + +\begin{table}[h!] + \centering + % \addtocounter{table}{-1} + \caption{Транзакции для демонстрации наличия артефакта <<Фантомы>>.} + \label{tbl:fantom} + \footnotesize + \begin{tabularx}{\textwidth}{|c|X|X|} + \hline + t & Транзакция 1 & Транзакция 2 \\ + \hline + + \multirow{3}{*}{} & \multicolumn{2}{c|}{ + \specialcell{ + В первой транзакции происходит чтение записей из таблицы \texttt{judge} с \texttt{id\_judge >= 250}.\\ После чего в эту таблицу добовляется запись во второй транзакции, изменения\\ фиксируются и вторая транзакция успешно завершается. Затем первая транзакция\\ повторно получает записи с \texttt{id\_judge >= 250}. В этот раз она также получает данные\\о записи, добавленной второй транзакцией, из-за наличия артефакта <<Фантомы>>. + } + }\\ + \cline{2-3} + + & \multicolumn{2}{c|}{Тут что-то ещё. }\\ + \cline{2-3} + + & \specialcell{Запуск транзакции 1 \\ \texttt{begin;}} & \specialcell{Запуск транзакции 2 \\ \texttt{begin;}}\\ + \hline + + $t_1$ & + \specialcell{ + Получение имён судей с \texttt{id\_judge >= 250}\\ \\ + \texttt{select id\_judge, name from judge}\\ + \texttt{where id\_judge >= 250;}\\ + } + \includegraphics[width=1\linewidth]{img/transaction3_1.png} + & + \\ + \hline + + $t_2$ & + & + \specialcell{ + Добавление нового судьи и фиксация \\ транзакции\\ \\ + \texttt{insert into judge (name, surname,}\\ + \texttt{patronymic, category)}\\ + \texttt{values ('анна', 'иванова', 'петровна',}\\ + \texttt{'высшая');}\\ + \texttt{commit;}\\ + } + \includegraphics[width=1\linewidth]{img/transaction3_2.png} + \\ + \hline + + $t_3$ & + \specialcell{ + Получение имён судей с \texttt{id\_judge >= 250}\\ \\ + \texttt{select id\_judge, name from judge}\\ + \texttt{where id\_judge >= 250;}\\ + \texttt{commit;}\\ + } + \includegraphics[width=1\linewidth]{img/transaction3_3.png} + & + \\ + \hline + \end{tabularx} +\end{table} + + \end{document} \ No newline at end of file