Материал: Методические указания к лабораторным работам № 6–9 по дисциплинам «Основы построения защищенных СУБД», «Безопасность систем баз данных». Плотников Д.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ФГБОУ ВПО «Воронежский государственный технический университет»

Кафедра систем информационной безопасности

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам № 6–9 по дисциплинам «Основы построения защищенных СУБД»,

«Безопасность систем баз данных» для студентов специальностей 090301 «Компьютерная безопасность», 090303 «Информационная безопасность автоматизированных систем»

очной формы обучения

Воронеж 2015

Составитель канд. техн. наук Д. Г. Плотников

УДК 004.056.5

Методические указания к лабораторным работам № 6–9

по дисциплинам «Основы построения защищенных СУБД», «Безопасность систем баз данных» для студентов специальностей 090301 «Компьютерная безопасность», 090303 «Информационная безопасность автоматизированных систем» очной формы обучения / ФГБОУ ВПО «Воронежский государственный технический университет»; сост. Д. Г. Плотников. – Воронеж, 2015. 65 с.

Выполняя лабораторные работы, студенты получают знания и навыки по современным базам данных и системам управления базами данных, в частности для построения систем баз данных, управления данными с помощью языка SQL и других средств современных СУБД. В издании рассматриваются реляционные базы данных и системы управления базами данных.

Методические указания подготовлены в электронном виде в текстовом редакторе MS Word 2013 и содержатся в файле Плотников_ЛР_БД_6-9.pdf.

Табл. 7. Ил. 8. Библиогр.: 7 назв.

Рецензент д-р техн. наук, проф. А.Г. Остапенко

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. А.Г. Остапенко

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

© ФГБОУ ВПО «Воронежский государственный технический университет», 2015

Лабораторная работа № 6 Управление транзакциями

Цель работы

Освоение способов управления транзакциями в среде

MS SQL Server.

Темы для предварительной проработки

•Свойства транзакций и управление транзакциями.

•Уровни изоляции.

Подготовка к работе

Подготовить SQL-скрипты для выполнения проверок изолированности транзакций. Ваши скрипты должны работать с одной из таблиц, созданных в лабораторной работе №2.

Выполнение работы

•Запустить Microsoft Query Analyzer и соединиться

сбазой данных. Открыть второе окно для ввода текста запросов (Ctrl+N в первом окне).

•Установить в обоих сеансах уровень изоляции READ UNCOMMITTED . Выполнить сценарии проверки:

потерянных изменений,

грязного чтения.

•Записать протокол выполнения сценариев.

•Установить в обоих сеансах уровень изоляции READ COMMITTED. Выполнить сценарии проверки:

грязного чтения.

неповторяющегося чтения.

•Записать протокол выполнения сценариев.

•Установить в обоих сеансах уровень изоляции REPEATABLE READ. Выполнить сценарии проверки:

неповторяющегося чтения, фантома.

•Записать протокол выполнения сценариев.

•Установить в обоих сеансах уровень изоляции SERIALIZABLE. Выполнить сценария проверки фантома. Записать протокол выполнения сценария.

•Закончить работу с Microsoft Query Analyzer.

Содержание отчета

•Сценарий и протокол его выполнения в среде

Microsoft Query Analyzer.

•Краткие выводы о навыках, приобретенных в ходе выполнения работы.

Теоретические сведения

Уровни изоляции

Стандарт SQL/92 определяет уровни изоляции транзакций в многопользовательской системе через отсутствие таких аномалий доступа к базе данных, которые могут в конечном итоге угрожать целостности данных. В стандарте различаются следующие аномалии:

Потерянные изменения. Транзакция Т1 читает данные. Транзакция Т2 читает те же данные. Транзакция T1 на основании прочитанного значения вычисляет новое значение данных, записывает его в базу данных и завершается. Транзакция T2 на основании прочитанного значения вычисляет новое значение данных, записывает его в базу данных и завершается. В результате значение, записанное транзакцией Т2, "затрет" значение, записанное транзакцией Т1.

Грязное чтение. Транзакция Т1 изменяет некоторые данные, но еще не завершается. Транзакция Т2 читает эти же данные (с изменениями, внесенными транзакцией Т1) и принимает на их основе какие-то

2

решения. Транзакция Т1 выполняет откат. В результате решение, принятое транзакцией Т2 основано на неверных данных.

Неповторяющееся чтение. Транзакция Т1 в ходе своего выполнения несколько раз читает одни и те же данные. Транзакция Т2 в интервалах между чтениями транзакцией Т1 изменяет эти данные и фиксируется. В результате оказывается, что чтения одних и тех же данных в транзакции Т1 дает разные результаты.

Фантом. Транзакция Т1 в ходе своего выполнения несколько раз выбирает множество строк по одним и тем же критериям. Транзакция Т2 в интервалах между выборками транзакции Т1 добавляет или удаляет строки или изменяет столбцы некоторых строк, используемых в критерии выборки, и фиксируется. В результате оказывается, что одни и те же выборки в транзакции Т1 выбирают разные множество строк.

Промышленные СУБД в том или ином объеме выполняют требования стандарта по дифференциации уровней изоляции, но при формально одном и том же уровне изоляции поведение транзакций может существенно различаться в разных СУБД.

Определение уровней изоляции в стандарте и в рассматриваемых нами СУБД сведено в табл. 1:

3

Источник: https://studfile.net/preview/16563472/