Самостоятельные работы / сам раб
.docxСамостоятельная работа
Транзакции, оперативная обработка транзакций (oltp).
Цель: изучение принципов описания транзакций для баз данных в MS SQL Server.
-
Заполните таблицу «Книги» не менее чем 25 записями, введите разные годы издания, в большинстве 2017 или 2018.
-
В Query Analyzer установите уровень изолированности транзакции максимальный.
-
Напишите команду начала транзакции.
-
Внутри транзакции напишите команду обновления таблицы Books, увеличив на 1 все годы издания, которые менее текущего. Текущий год вычисляется стандартными функциями Year(Getdate()). Используйте уровень блокировки – таблица и сделайте блокировку исключительной (XLOCK)
-
Не завершать транзакцию оператором COMMIT.
-
В новом окне набрать команду вывода всех строк из таблицы Books.
-
Зафиксируйте результат в виде скриншотов, напишите объяснение полученному результату.
В конце транзакции UpdateBooks нет команд
COMMIT TRANSACTION или ROLLBACK TRANSACTION, это означает, что транзакция продолжает свою работу, а запросить данные (т.е. выборка всех данных из таблицы books) невозможно, так как стоит монопольная блокировка (XLOCK), т.е. блокировка, резервирующая ресурс для монопольного использования одной транзакцией.
-
Допишите отдельно команду COMMIT в первом окне и выделив ее выполните, проанализируйте изменение второго окна, зафиксируйте и прокомментируйте.
После выполнения команды COMMIT TRANSACTION, все изменения, произведенные транзакцией, были сохранены, и транзакция завершилась. Теперь второе окно показывает результат запроса и сохраненные изменения.
9. Проделайте аналогичную операцию со столбцом стоимость книг, увеличив стоимость на 10 рублей для каждой книги, изданной в текущем году. Установите минимальный уровень изолированности и так же не завершайте транзакцию и запустите в соседнем окне просмотр таблицы. Зафиксируйте результаты и прокомментируйте.