17234

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

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

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

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

Русский

2013-06-30

104.5 KB

5 чел.

Лабораторная работа № 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.  

 

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

75322. Англия в XI-XII вв. Завершение феодализации английского общества 47 KB
  в Англии в основном уже господствовали феодальные порядки но процесс феодализации еще не завершился. Вильгельм со своим войском на больших ладьях переплыл ЛаМанш и высадился на юге Англии в бухте Павенси. Во главе последнего выступил избранный советом мудрых новый король Англии Гарольд. Герцог Нормандский же двинулся к Лондону захватил его и стал королем Англии под именем Вильгельма I Завоевателя.
75323. Особенности социально-экономического развития Италии в конце V- сер. XI веков 51 KB
  Особенности социальноэкономического развития Италии в конце V сер. Подвластное лангобардам коренное население Италии оставалось в сфере действия римского права. империи но не принесло Италии политического единства. Карл Великий изменил территориальноадминистративное деление своих владений в Италии: вместо герцогств были образованы 20 графств отданных в управление представителям франкской знати.
75324. Основные черты феодального строя в Западной Европе к концу XI века 32 KB
  Господствует феодальная земельная собственность в вид вотчины в сочетании с мелким индивидуальным крестьянским хозяйством. Основная масса крестьян находится уже в той или иной форме зависимости. На раннем этапе развития феодализма господствовало натуральное хозяйство; обмен был незначителен торговые связи не развиты; У лично зависимых крестьян особенно в крупных поместьях преобладала отработочная рента. Широко распространяется также натуральный оброк с крестьян находившихся в более легкой зависимости.
75325. Население и внешний вид средневековых городов. Борьба городов с сеньорами 36 KB
  В Западной Европе средневековые города раньше всего появились в Италии Венеция Генуя Пиза Неаполь Амальфи и др. Крестьяне бежавшие от своих господ или уходившие в города на условиях выплаты господину оброка становясь горожанами постепенно освобождались отличной зависимости феодалу. Лишь в дальнейшем в городах появились купцы новый общественный слой сферой деятельности которого являлось уже не производство а только обмен товаров. В отличие от странствующих купцов существовавших в феодальном обществе в предшествующий период и...
75327. Христианство, церковь, ереси в XI-XV вв. Раскол христианской церкви. Особенности греко-православной и римско-католической церкви 52.5 KB
  Раскол христианской церкви. Особенности грекоправославной и римскокатолической церкви. Единство христианской церкви уже задолго до её окончательного разделения было лишь видимым. За этими богословскими спорами скрывались совершенно реальные церковнополитические разногласия и в частности столкновения изза деятельности церковных миссий восточной церкви в IX Х вв.
75328. Феодально-рыцарская культура Западной Европы в XII-XV веков 37 KB
  Феодальнорыцарская культура Западной Европы в XIIXV вв. Рыцарские турниры имитировавшие настоящие сражения приобрели особую пышность в XIII XIV вв. В XII в. Магистром поэтов называли Гираута де Борнейля последняя треть XII начало XIII в.
75329. Торговля в средние веки, ее эволюция и роль 32.5 KB
  Возрождение торговли В XI в феодальное общество начало медленно просыпаться от тяжелого сна Страсть к путешествиям приключениям сразу рассеяла общее оцепенение таково завоевание Англии обеих Сицилии. Некоторые из этих предприятий носили политический другие религиозный характер; но все они способствовали развитию торговли потому что благодаря им устанавливались сношения между теми странами откуда выходили завоеватели и теми где они водружали свои знамена С этого времени руанские купцы пользуются правом свободной торговли в Лондоне где...
75330. Раннее Возрождение и гуманизм в Италии XIV-XV веков 36.5 KB
  Возникновение культуры Возрождения было подготовлено рядом общеевропейских и локальных исторических условий. Богатый процветающий итальянский город стал главной базой формирования культуры Возрождения светской по своей общей направленности и во многом отвечавшей потребностям его общественного развития. означал духовное обновление подъем культуры после ее тысячелетнего упадка в средние века: отношение деятелей новой культуры к средневековому варварству было подчеркнуто негативным. Идейной основой ренессансной культуры был гуманизм...