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.  

 

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

36880. Определение заряда иона водорода 63.5 KB
  Тема: Определение заряда иона водорода. Цель работы: изучить прохождение тока в электролитах определить заряд иона водорода оценить погрешность данного метода определения заряда иона водорода и ознакомиться с явлением наводораживания металлов. КРАТКАЯ ТЕОРИЯ Для определения заряда иона водорода можно использовать прохождение тока в электролитах явление электролиза.
36882. Word: Ввод и редактирование текста. Операции с фрагментами текста 99 KB
  ввод пробела: при нажатии клавиши Пробел вводится занимающий определенное место в строке символ пробела; наличие или отсутствие пробела в конце строки может быть определено при нажатии на кнопку Непечатаемые знаки на Стандартной панели инструментов в правой стороне; Введите в расположенной ниже строке по одному пробелу между цифрами 1 и 2 и еще три пробела в конце строки. Ввод пробелов: 1111122222311112222311122231122313 Отобразите на экране символы пробела абзаца разрыва строки нажатием на кнопку Непечатаемые знаки на Стандартной панели...
36883. Визначення відношення теплоємності повітря при постійному тиску до теплоємності повітря при постійному об’ємі 544 KB
  Визначення відношення теплоємності повітря при постійному тиску до теплоємності повітря при постійному об’ємі. Якщо у балон з’єднаний з відкритим водяним манометром накачати повітря і зачекати встановлення теплової рівноваги повітря в балоні з навколишнім середовищем то в цьому початковому стані 1 газ має параметри причому температура газу в балоні дорівнює температурі навколишнього середовища а тиск трохи більший від атмосферного. Якщо тепер на короткий час з’єднати балон з атмосферою то станеться адіабатичне розширення повітря....
36884. Прилади індукційної, електростатичної, термоелектричної та випрямляючої систем 301 KB
  Прилади індукційної системи ПРИЗНАЧЕННЯ Й ОБЛАСТЬ ЗАСТОСУВАННЯ Електровимірювальні прилади індукційної системи призначаються для вимірювання електричних величин тільки в ланцюгах змінного струму. Причому на відміну від приладів змінного струму інших систем індукційні прилади можуть бути застосовані в ланцюгах з однією певною частотою і незначна зміна цієї частоти в ту або іншу сторону від номінальної спричиняє більші погрішності показань. У цей час із числа індукційних приладів наші заводи виготовляють тільки лічильники електричної енергії...
36885. Ознайомлення з роботою програмного симулятора dScope-51 123.5 KB
  1 Запуск програми dScope відбувається в середовищі Windows з вікна програм DSW51 Після запуску на екрані монітору з`являється типове вікно Windows з строчкою заголовку вікна кнопками системного меню згортання мінімізації та розгортання. За допомогою команда меню View Вид викликаються робочі вікна: Toolbr дозволяють підключати в вікно програми лінійку кнопкових перемикачів прискореного доступу до певних команд та вікон. Sttus Br дозволяють підключати в вікно програми лінійку статусу де наводиться інформація про...
36886. Прилади магнітоелектричної, електродинамічної та електромагнітної систем 229 KB
  Мета роботи: Вивчення будови принципу дії приладів магнітоелектричної електродинамічної та електромагнітної системи та методами їх використання. Завдання: Ознайомитись з призначенням та областю використання приладів магнітоелектричної електродинамічної та електромагнітної систем. Вивчити принцип дії приладів та методику їх використання. Ознайомитись із властивостями та технічними характеристиками приладів.
36887. Дослідження простої випадкової вибірки за допомогою функції «Выборка» Microsoft Excel 16.4 KB
  Загальні відомості Процедура отримання простої випадкової вибірки проілюстрована на наступному прикладі. Побудова простої випадкової вибірки здійснюється у такій послідовності: Генеральна сукупність – дані таблиці 1. Основа вибірки – нумерація елементів таблиці.
36888. Ознайомитись з основними командами програмного симулятора dScope-51 56.5 KB
  1 При введенні команд перед командою ставиться SM без нього введення команди не відбудеться. Всі команди проводяться через акумулятор А Основні команди симулятора: DD – додавання; SUBB – віднімання; CPL – інверсія; RL – зсув вліво на один; RR – зсув в право на один; XCH – обмін; CJNE – порівняння; CLR – встановлення нулів; DEC – віднімання від регістра одиниці; INC – додавання до регістру одиниці; h ставиться в кінці вводу команди для того щоб показати що число вводиться в шістнадцятирічній СЧ; означає що ми вводимо до...