- •Министерство образования и науки российской федерации
- •Лабораторная работа 1. Создание и заполнение таблиц базы данных. Часть 1.
- •Базы данных и субд
- •Таблицы
- •Типы данных sql
- •Ссылочная целостность
- •Выполнение лабораторной работы
- •Изменение данных
- •Удаление данных
- •Изменение определения таблицы
- •Выполнение лабораторной работы
- •Разработка запросов
- •Выполнение лабораторной работы
- •Директивы, используемые в условиях запросов
- •Выполнение лабораторной работы
- •Объединение, пересечение, разность запросов
- •Выполнение лабораторной работы
- •Экзистенциальные запросы
- •Выполнение лабораторной работы
- •Хранимые процедуры
- •Выполнение лабораторной работы
- •Содержание отчета
- •Варианты заданий
- •Лабораторная работа 8 — Разработка триггеров
- •Виды триггеров
- •Создание триггеров в диалекте Transact sql
- •Выполнение лабораторной работы
- •Рекомендации по выбору индексов
- •Операторы языка sql для создания и удаления индексов
- •Генерация тестовых данных
- •Анализ использования индексов
- •Выполнение лабораторной работы
- •Проблемы многопользовательского доступа к данным, их решение с помощью блокировок
- •Уровни изоляции транзакций
- •Конфигурирование блокировок, отчеты о блокировках
- •Выполнение лабораторной работы
- •Основные объекты и виды репликации
- •Организация репликации транзакций
- •Выполнение репликации транзакций
- •Выполнение лабораторной работы
- •Схемы хранилищ данных
- •Проектирование хранилища
- •Реализация хранилища
- •Выполнение лабораторной работы
- •Содержание отчета
- •Варианты заданий
- •Библиографический список
- •Содержание
Конфигурирование блокировок, отчеты о блокировках
Для конфигурирования блокировок используются директивы, позволяющие задать:
(i) тайм-аут установления блокировки — set lock_timeout <количество миллисекунд>, значение параметра находится в глобальной системной переменной @@lock_timeout;
(ii) максимальное количество блокировок — sp_configure ”locks”, <количество>, если в качестве количества указан 0 — память распределяется автоматически; параметр, в том числе, оказывает влияние на решение о повышении уровня блокировки (http://msdn.microsoft.com/ru-ru/library/ms184286%28v=sql.105%29.aspx).
Для получения отчетов о блокировках используются директивы:
(i) sp_lock [ <процесс 1> [ , … ] ] — возвращает сведения о всех блокировках или блокировках для указанных процессов (сеансов работы) (http://msdn.microsoft.com/ru-ru/library/ms187749%28SQL.105%29.aspx);
(ii) sp_who [ <имя пользователя> ] — возвращает сведения о всех процессах или процессах указанного пользователя (http://msdn.microsoft.com/ru-ru/library/ms174313%28v=sql.105%29.aspx).
Альтернативными способами получения сведений о блокировках являются системные представления sys.dm_tran_locks (http://msdn.microsoft.com/ru-ru/library/ms190345%28v=sql.105%29.aspx), sys.syslockinfo (http://msdn.microsoft.com/ru-ru/library/ms189497(v=sql.105).aspx).
SQL-сервера поддерживают средства для предоставления отчетов о тупиках, это могут быть СХП, как например (http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc36273.1572/html/sprocs/X25628.htm) или отдельные приложения, например, SQL Server Profiler, входящий в состав MS SQL.
SQL Server Profiler позволяет отображать данные о тупиках, в том числе, в графическом виде. Запуск SQL Server Profiler — Пуск\Все программы\Microsoft SQL Server 2008\ Средства обеспечения производительности\SQL Server Profiler. Для выполнения трассировки — Файл\Создать трассировку…\Соединить, далее на вкладке Выбор событий установить флаг Показать все события, после чего выбрать раздел Locks, установить флаг Deadlock graph (другие установленные флаги можно сбросить) и нажать кнопку Запустить (http://msdn.microsoft.com/ru-ru/library/ms190465%28v=sql.105%29.aspx).
Выполнение лабораторной работы
Смоделировать в БД1грязное чтение, неповторяемое чтение, фантомы, изменяя уровень изоляции транзакций продемонстрировать их исключение, сформировать отчеты о блокировках, пояснить их содержание.
Смоделировать в БД тупик (взаимную блокировку), получить с помощью приложения SQL Server Profiler отчет о тупике, пояснить его содержание.
Содержание отчета
Содержание отчета:
— скрипты транзакций;
— отчеты о блокировках и пояснения к ним;
— отчет о тупике, пояснения к нему.
Варианты заданий
Варианты заданий приведены в ПРИЛОЖЕНИИ.
Лабораторная работа 11 — Организация репликация
Репликация
Современные СУБД, в том числе SQL-сервера, позволили реализовать базовый принцип построения информационных систем «одно данное должно храниться в одном месте и изменяться один раз» за счет:
(i) интеграции в БД данных, необходимых всем пользователям приложений информационной системы предприятия;
(ii) обеспечения корректного многопользовательского доступа к данным, хранящимся в БД.
Вместе с тем, по мере увеличения масштабов информационных систем такое решение оказалось не всегда:
(i) удобным, из-за того что часть данных используется локально (в таких системах как отдел социальной защиты районной администрации—городской комитет—министерство или штаб-квартира транснациональной корпорации—представительство в стране—офисы в регионах не обязательно вся информация, вводимая на нижнем уровне, должна стекаться в центр);
(ii) возможным, из-за отсутствия постоянных высокоскоростных соединений между территориально удаленными офисами или офисом и мобильными пользователями.
Для решения таких задач были предложены механизмы репликации, которые реализуют автоматическую передачу данных между несколькими БД, осуществляя в том числе:
— горизонтальную (отбор подмножества строк таблиц);
— вертикальную (отбор подмножества столбцов таблиц);
— смешанную фрагментацию (сочетание горизонтальной и вертикальной).
В литературе различают гомогенные и гетерогенные распределенные БД (РБД). В гомогенных на всех узлах используется одна и та же СУБД и часто БД с тождественными структурами. В гетерогенных используются СУБД различных производителей, а БД могут иметь различные структуры.
Типовыми случаями, когда оказываются полезны механизмы репликации, являются (http://msdn.microsoft.com/ru-ru/library/ms151787%28v=sql.105%29.aspx) или (http://msdn.microsoft.com/ru-ru/library/ms152485%28v=sql.105%29.aspx) или (http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc32580.1571/doc/html/san1271105857839.html).