17234

Параллельная обработка транзакций

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 5 Параллельная обработка транзакций Цель работы Изучение возможностей параллельной обработки данных в SQL Server и приемов подключения приложений к серверу с использованием ODBC. Изучение действия блокировок накладываемых сервером. Задание

Русский

2013-06-30

104.5 KB

4 чел.

Лабораторная работа № 5

Параллельная обработка транзакций

Цель работы

Изучение возможностей параллельной обработки данных в SQL Server и приемов подключения приложений к серверу с использованием ODBC. Изучение действия блокировок, накладываемых сервером.

Задание на лабораторную работу

Ознакомиться с методическими указаниями к лабораторной работе.

Создать источник данных ODBC, обеспечивающий подключение к БД под управлением сервера.

Создать в БД под управлением SQL Server таблицу z_zakaz (ЗАРУБЕЖНЫЙ_ ЗАКАЗ, структура таблицы аналогична таблицы ЗАКАЗ см. л.р. № 1).

Провести эксперименты по одновременной работе с таблицей из Query Analyzer и из Access - приложения.

Оформить отчет о ходе выполнения работы.

Методические рекомендации по выполнению работы

Одним из способов, с помощью которых приложения могут подключиться к базам данных SQL Server является интерфейс Open Database Connectivity (открытый интерфейс подключения к базам данных). Доступ к БД осуществляется с помощью драйверов ODBC и библиотек DDL, содержащих функции для обеспечения таких возможностей. Драйверы ODBC устанавливаются в системе одновременно с установкой в ней утилит SQL Server. Кроме того, они могут устанавливаться совместно с некоторыми приложениями и средствами разработки, например Microsoft Office.

Утилита Источники данных ODBC позволяет настроить соединение ODBC для получения доступа к объектам баз данных. Диалоговое окно утилиты предлагает доступ к настройке трех типов источников данных (DSN).Одним из них является системный DSN.

После настройки этого источника к нему могут обращаться все программы и службы, установленные на этом компьютере.

(1)

Создание подключения к базе данных SQL Server 

После запуска сервера выберите Пуск Настройка Панель управления Администрирование Источники данных ODBC. В появившемся окне Data Source Administrator (Администратор источников данных ODBC) выберите закладку SYSTEM DSNистемный DSN)

Нажмите кнопку Add (Добавить) для перехода в окно Create a new data source (Создание нового источника данных) мастера создания источников данных, в котором из списка драйверов необходимо выбрать SQL Server. Нажатием кнопки Готово перейдите в окно мастера создания /настройки источника для SQL Server (Создание источника данных для SQL Server). В этом окне необходимо задать имя соединения (любое, например «Лабораторная работа»), его описание (например, «Подключение к SQL Server») и имя SQL-сервера, с которым производится соединение (при работе в автономном режиме – local, в компьютерных залах кафедры ЭВМ – EOM-SRV).

На следующем шаге мастер предложит окно для ввода параметров аутентификации. Выбрать подключение с помощью параметров аутентификации системы WINDOWS NT.

Примечание. В автономном режиме соответствующий флаг может не активизироваться. В этом случае для аутентификации подключения используется имя и пароль пользователя. Установите флаг получения параметров аутентификации от сервера и введите имя пользователя: sa (в компьютерных залах кафедры ЭВМ: имя пользователя – user, пароль – user).

Далее мастер предложит окно настройки использования создаваемого источника с объектами SQL-Server. Здесь в поле Использовать по умолчанию базу данных необходимо установить флажок, чем активизировать выпадающий список баз данных установленного сервера. Выбор базы данных позволит получить к ней доступ при подключении создаваемого источника к серверу.

По завершении работы мастера будет выведен отчет о проделанных настройках. Для проверки созданного источника данных на возможность соединения с SQL Server служит кнопка Проверить источник данных. Убедитесь в корректности созданного источника. Для изменения параметров созданного источника в рабочем поле окна администратора источников данных выберите этот источник и нажмите кнопку Настройка.

(2)

Организация связи приложений Access с сервером

Для присоединения к приложению Access таблицы БД под управлением сервера необходимо выполнить команду меню ФАЙЛ приложения: ВНЕШНИЕ ДАННЫЕ → СВЯЗЬ С ТАБЛИЦАМИ. В результате появляется окно Связь, где в выпадающем списке ТИП ФАЙЛОВ необходимо выбрать ODBC Databases. В появившемся окне Select Data Source (Выбрать источник данных) открыть вкладку Mashine Data Source (Источник данных компьютера). Выбрать в списке необходимый источник данных DSN, созданный ранее. После этого система выведет на экран список таблиц, к которым осуществлено подключение. Выбрать нужные таблицы и нажать OK. В окне БД Microsoft Access появятся помеченные специальными символами таблицы базы данных сервера, с которыми установлена связь.

(3)

Пример выполнения лабораторной работы

На основе таблицы ЗАКАЗ (см. л.р № 1) в приложении СУБД SQL Server создать таблицу ЗАРУБЕЖНЫЙ_ЗАКАЗ (z_zakaz), установить соответствующий триггер (см. л.р № 1, 2-й триггер).

Для создания таблицы аналогичной существующей, можно использовать синтаксис команды SELECT следующим образом:

SELECT имена полей (или *) INTO имя новой таблицы

FROM имя таблицы – источника

WHERE условия выборки строк (если необходимо)

С использованием присоединенной к приложению СУБД Access таблицы ЗАРУБЕЖНЫЙ_ЗАКАЗ (z_zakaz) попытаться выполнить изменение данных, нарушающие условия триггера. Проанализировать результат.

Проанализировать действия блокировок, накладываемых сервером в различных ситуациях.

  1.  Выполните изменение данных в записи присоединенной (т.е. в СУБД Access) таблицы z_zakaz и не подтверждая выполненных изменений (не перемещая курсор на следующую строку или в другую ячейку), внесите другие изменения в туже строку в таблице СУБД SQL Server подтвердив выполнение (СУБД Access и СУБД SQL Server должны быть открыты “одновременно”).
  2.  Вернитесь в СУБД Access и подтвердите внесение изменений (перейти на другую строку).
  3.  Вернитесь в СУБД SQL Server и подтвердите изменение. При этом если блокировка не будет снята, необходимо закрыть таблицу и открыть ее повторно. Это происходит из-за того, что в СУБД Access нет возможности «вручную» отменить транзакцию.

Построить график запуска транзакций и граф ожидания.

График транзакций

Время

SQL Server (A)

Access (B)

t1

X-locks

wait

t2

t3

X-locks

wait

t4

Лас-Вегас  P

t5

commit

t6

commit

Результат: Изменение данных внесены транзакцией A.

Граф ожидания

  1.  Закройте присоединенную таблицу в СУБД Access. Создайте хранимую процедуру (см. л.р. № 2) реализующую следующую транзакцию:

CREATE PROCEDURE del_zakaz

AS

begin transaction T1

delete z_zakaz where (условие, определяющее удаление строк)

rollback transaction

  1.  Отладив команды, выполнить процедуру (EXEC del_zakaz), закоментировав команду rollback transaction (/*rollback transaction*/).
  2.  Перейти в СУБД Access и попытаться открыть присоединенную таблицу.
  3.  Перейти в СУБД SQL Server и выполнить запрос

select * from z_zakaz

Построить график запуска транзакций и граф ожидания.

График транзакций

Время

SQL Server QA (A)

Access (B)

SQL Server – QA (С)

t1

X-locks

Лас-Вегас  P

t2

wait

t3

S-locks

t4

wait

t5

S-locks

t6

wait

t7

Результат: Тупиковая ситуация – взаимное ожидание разблокировки.

Граф ожидания

Замечание: Здесь граф ожидания имеет цикл за счет того, что транзакция А является искусственно незавершенной и постоянно вступает в конфликт с транзакциями, пытающимися параллельно считать данные (транзакции В и С).

Для корректного завершения смеси транзакций, независимо выполните команду rollback transaction в Query Analyzer.

  1.  Выполнить те же действия, что и в п. 4, но с первоначально открытой таблицей в приложении СУБД Access, в которой до запуска транзакции в SQL Server выполнены (но не подтверждены) изменения. После выполнения процедуры del_zakaz без завершения (/*rollback transaction*/) вернитесь в СУБД Access и подтвердите сделанные изменения.

Построить график запуска транзакций и граф ожидания.

График транзакций

Время

SQL Server QA (A)

Access (B)

SQL Server – QA (С)

t1

X-locks

Лас-Вегас  P

t2

wait

t3

X-locks

t4

wait

t5

S-locks

t6

wait

t7

Результат: Тупиковая ситуация – взаимное ожидание разблокировки.

Граф ожидания

Замечание: Здесь также граф ожидания имеет цикл за счет того, что транзакция А и В являются искусственно незавершенными и постоянно вступают в конфликт с транзакциями, пытающимися параллельно считать данные.

Для корректного завершения смеси транзакций, независимо выполните команду rollback transaction в Query Analyzer.

(4)

Задания для самостоятельного выполнения.

Реализовать взаимную работу трех транзакций, кратко описать результат, построить графики их выполнения, графы предшествования и графы ожидания (в графе будет три вершины).

Используя созданное соединение Access и SQL Server открыть три приложения

  •  Query Analyzer (QA)
  •  Access 1
  •  Access 2

Использовать текст хранимой процедуры описанной в разделе 3 для модификации данных (удаление строк). В двух приложениях СУБД Access присоединить таблицу z_zakaz. Выполнить следующие последовательности действий и построить графики и графы (предшествования и ожидания) совместной работы транзакций:

Задание 1.

Закрываем таблицы в Access 1 и Access 2.

Запускаем процедуру del_zakaz с незавершенной транзакцией (без rollback transaction).

  1.  В Access 1 пытаемся открыть для просмотра (чтения) таблицу z_zakaz.
  2.  В Access 2 пытаемся открыть для просмотра (чтения) таблицу z_zakaz.
  3.  Наблюдаем результат в приложениях Access 1 и Access 2.

Если зависание долгое время не отменяется нужно вернуться в QA и отдельно запустить команду rollback transaction.

Задание 2.

Открываем таблицу в Access 1 и закрываем в Access 2.

Запускаем процедуру del_zakaz с незавершенной транзакцией (без rollback transaction).

  1.  В Access 1 пытаемся изменить данные таблицы z_zakaz в поле Adress и не фиксируем результат (не переходим на другую строку или в другую ячейку).
  2.  В Access 2 пытаемся открыть для просмотра (чтения) таблицу z_zakaz.
  3.  Запускаем процедуру del_zakaz с завершенной транзакцией (с rollback transaction).
  4.  Наблюдаем результат в приложениях Access 1 и Access 2.

Задание 3.

Открываем таблицы в Access 1 и Access 2.

Запускаем процедуру del_zakaz с незавершенной транзакцией (без rollback transaction).

  1.  В Access 1 пытаемся изменить данные таблицы z_zakaz в поле Adress и не фиксируем результат (не переходим на другую строку или в другую ячейку).
  2.  В Access 2 изменяем данные таблицы z_zakaz в поле Adress и фиксируем результат (переходим на другую строку).
  3.  Запускаем процедуру del_zakaz с завершенной транзакцией (с rollback transaction).
  4.  Переходим в Access 1 и фиксируем изменение и наблюдаем результат.
  5.  Переходим в Access 2 и наблюдаем результат.

Оформление отчета

(5)

  1.  Титульный лист оформляется согласно традиционным требованиям, включая Номер работы, Номер группы и ФИО студента, а также кто принимал данную работу.
  2.  Содержание должно включать Тему лабораторной работы и Ход ее выполнения.
  3.  Ход выполнения работы должен содержать графики реализованных транзакций и соответствующие графы ожидания.
  4.  Выводы.

Контрольные вопросы

  1.  Основной принцип работы транзакции.
  2.  Работа транзакций в смеси.
  3.  Последовательный и чередующийся график транзакций.
  4.  Конкурирующие и сериализуемые графики.
  5.  Признаки, определяющие ошибки параллельной работы транзакций.
  6.  Граф предшествования. Свойства графа предшествования.
  7.  Разрешения проблем параллельной обработки транзакций.
  8.  Блокировки. Виды блокировок.
  9.  Граф ожидания. Свойства графа ожидания.
  10.  Преднамеренные блокировки.
  11.  Протокол двухфазной блокировки. Теорема Есварана.

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

  1.  Дейт К. Введение в системы баз данных.: Пер. с англ. – К: Диалектика, 1998. –    6-е издание – 848 с.
  2.  Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. – М.: Издательский дом “Вильямс”, 2003. – 1088 с.: ил.
  3.  Шкарина Л. Язык SQL: учебный курс. – СПб.: Питер, 2001.
  4.  Тихомиров Ю. MS SQL Server в подлиннике. – СПб.: БХВ, 2000.
  5.  Дж. Грофф, П. Вайньерг SQL: Полное руководство. – 2-е изд., перераб. и доп. – К.: Издательская группа BHV, 2001 – 816 с., ил.


S - X

B

A

- X

C

A

B

X - X

X - S

X - S

A

B

X - X

C

X - S

X - X

X - S

  1.  

 

А также другие работы, которые могут Вас заинтересовать

55784. Музично-виконавський розвиток учня-піаніста в процесі роботи над творами малої форми в 4 класі ДМШ 144.5 KB
  Педагог оголошує тему уроку план уроку в який входять такі твори: П. Педагог. Кілька пєс з цих альбомів вже були в твоєму репертуарі Лєра багато ти чула в концертах Дитячої Філармонії школи а також у записах відомих виконавцівпедагогів. Педагог.
55785. Омбудсмени року 384.5 KB
  Ми не просто розпочати нашу програму з визначення права. Справа в тому що так ми наблизились до першого нашого конкурсу яке і має таку назву Знавці права.
55786. Ой, не вітер в полі грає, не орел літає – ото Сірко з товариством по степу гуляє! 61.5 KB
  Мета: увіковічення та вшанування визначного військово-політичного діяча козацького періоду Івана Сірка; популяризація козацьких звичаїв та традицій серед учнівської...
55787. ПОЛІТИКА ВЛАДИ У ЦАРИНІ КУЛЬТУРИ В 1921-1928 рр. УКРАЇНІЗАЦІЯ (КОРЕНІЗАЦІЯ) 311 KB
  Мета: методична – удосконалення методики проведення лекціїдіалогу та активізації пізнавальної діяльності студентів шляхом використання групових форм роботи...
55788. Які правила визначають гармонію людини із собою та найближчим оточенням 245 KB
  Стежка Правдивості Команди слухають визначення понять Додаток 3 які вивчали на попередніх уроках етики потім радяться 30 секунд і записують кожне слово на окремому аркуші паперу.
55789. Розвиток розумових здібностей учнів засобами математики 4.37 MB
  Система роботи вчителя на уроці Документи які відображають офіційну оцінку роботи вчителя. З певністю можу сказати що наукове товариство дає навички роботи з науковою літературою ресурсами Інтернету вчить учнів формулювати свої думки планувати роботу. Організація науководослідної роботи учнів та вчителів Положення про роботу наукового товариства Інтелект Загальні положення Наукове товариство Інтелект об’єднує учнів школи зацікавлених у підвищенні свого інтелектуального та культурного рівня які...
55790. Розвиток здібностей школярів до словесної творчості на уроках української літератури в 5 класі 101 KB
  Як запалити у дитини вогник творчого розповідання У педагогічній науці і практиці постійно ведеться інтенсивний пошук дієвих і цікавих дітям методів і прийомів навчання спрямованих на розвиток їхньої словесної творчості.
55791. Развитие творчества и художественных способностей детей средствами изобразительной деятельности 44.5 KB
  На все руки мастер Если краска есть у вас Кисть не обязательна: Можно пальцем рисовать Просто замечательно Пальцем я зеленой краской Нарисую огурец Помидорку красной краской Вот какой я молодец...
55792. Розвиток критичного мислення школярів на уроках української літератури. Як вчити добувати необхідну інформацію з друкованого джерела та критично її осмислювати 56.5 KB
  Метод Читання тексту з позначками. Метод Читання в парах Узагальнення в парах. Ця стратегія розрахована на читання тексту в парах і є ефективною при роботі з художніми творами.