Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Размещение таблиц базы данных на серверах





 

1. Цель работы: изучить методику размещения таблиц распределенной базы данных на SQL-серверах.

 

Базовые сведения

 

В распределенной базе данных (РБД) используется коллектив SQL-серверов в отличие от клиент-серверной системы. Поэтому одна из важнейших задач проектирования – распределить табличные данные между серверами так, чтобы уменьшить нагрузку на линии связи между серверами и по возможности уменьшить среднее время выполнения запросов к базе данных.

В данной работе рассматривается задача размещения таблиц распределенной базы данных на SQL-серверах. К каждому серверу подключено множество пользователей РБД. При поступлении запроса от пользователя соответствующий сервер выясняет, на каких серверах размещены требуемые данные, после этого формирует локальные запросы к остальным серверам, получает от них результаты локальных запросов и формирует из них общий результат, выдаваемый пользователю. В частном случае, если запрос не является распределенным, все требуемые данные находятся на каком-то одном сервере. Тогда запрос пересылается ему и полученный ответ выдается пользователю.

Рассмотрим следующий пример. В базе данных имеется две таблицы: Т1 и Т2. Для работы с базой данных выделены два SQL –сервера: С1 и С2. От пользователей поступают запросы трех типов: запрос к таблице Т1 - Зап (Т1), запрос к таблице Т2 - Зап (Т2) и двухтабличный запрос к таблицам Т1, Т2 - Зап (Т1,Т2).

Для каждого сервера известны интенсивности поступления запросов от его пользователей. Интенсивность поступления запросов определяется как среднее число запросов, поступающих за единицу времени. Таким образом, для сервера С1 заданы интенсивности И1(Т1), И1(Т2), И1(Т1,Т2) поступления соответственно запросов Зап(Т1), Зап(Т2), Зап(Т1, Т2). Аналогично, заданы интенсивности И2(Т1), И2(Т2), И2(Т1,Т2) для сервера С2.

Для каждого запроса известно среднее количество запрашиваемых данных, т.е. заданы значения Д(Т1), Д(Т2), Д1(Т1,Т2), Д2(Т1,Т2), где последние две величины – средние объемы запрашиваемых данных из таблиц соответственно Т1 и Т2 при поступлении запроса Зап(Т1,Т2).

Требуется разместить таблицы Т1 и Т2 на серверах С1 и С2 так, чтобы минимизировать объем табличных данных, передаваемых между серверами (ОПД).

Сформулированную задачу можно решить простым перебором всех возможных вариантов размещения. Перечислим эти варианты:

1) Т1, Т2 – на С1;

2) Т1 – на С1, Т2 – на С2;

3) Т2 – на С1, Т1 – на С2;

4) Т1, Т2 – на С2.

Для каждого варианта вычислим объем передаваемых табличных данных.

Для варианта 1 данные будут передаваться только при поступлении запроса на сервер С2, следовательно,

 

ОПД1=И2(Т1)*Д(Т1)+И2(Т2)*Д(Т2)+И2(Т1,Т2)*(Д1(Т1,Т2)+ Д2(Т1,Т2)).

 

 

Для варианта 2 данные будут передаваться в следующих ситуациях:

- при поступлении на С1 запросов Зап(Т2), Зап(Т1,Т2);

- при поступлении на С2 запросов Зап(Т1), Зап(Т1,Т2);

Следовательно,

 

ОПД2= И1(Т2)*Д(Т2)+И1(Т1,Т2)*Д2(Т1,Т2)+ И2(Т1)*Д(Т1)+И2(Т1,Т2)*Д1(Т1,Т2).

 

Рассуждая аналогично, получим

 

ОПД3= И1(Т1)*Д(Т1)+И1(Т1,Т2)*Д1(Т1,Т2)+ И2(Т2)*Д(Т2)+И2(Т1,Т2)*Д2(Т1,Т2),

 

ОПД4=И1(Т1)*Д(Т1)+И1(Т2)*Д(Т2)+И1(Т1,Т2)*(Д1(Т1,Т2)+ Д2(Т1,Т2)).

 

Оптимальный вариант размещения таблиц на серверах соответствует наименьшему значению ОПД. Если в оптимальном варианте обе таблицы размещаются на одном сервере, это означает, что использовать распределенную базу данных нецелесообразно с точки зрения выбранного критерия.

Для программирования описанного алгоритма в общем случае требуется ввести следующие переменные и массивы:

КолСерв – число серверов;

КолТаб – число таблиц;

КолЗапр – число запросов;

ИнтенсЗапр(1:КолЗапр, 1:КолСерв), элемент (i, j) которого равен интенсивности i-го запроса, поступающего на j-й сервер;

ЗапрТаб(1:КолЗапр, 1:КолТаб), элемент (i, j) которого равен объему данных, извлекаемых i-м запросом из j-й таблицы;

ТабСерв(1:КолТаб, 1:КолСерв), элемент (i, j) которого равен 1, если i-я таблица размещена на j-м сервере, и равен нулю в противном случае.

Основной цикл программы соответствует перебору по всевозможным размещениям таблиц на серверах. При этом на каждой итерации цикла используются различные варианты заполнения массива ТабСерв(). Ниже приведены 9 вариантов заполнения массива ТабСерв для случая, когда КолТаб=3, КолСерв=2.

1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1

1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1

1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1

 

 

Порядок выполнения работы

 

3.1. Для выбранного варианта задания составить множество вариантов размещения таблиц на серверах.

3.2. Для всех полученных вариантов размещения составить формулы, по которым вычисляется ОПД.

3.3. Составить и отладить программу для определения оптимального размещения таблиц на серверах.

3.4. Протестировать разработанную программу на примерах, выполненных вручную.

3.5. Определить вариант с минимальным значением ОПД и сделать вывод о целесообразности использования распределенной базы данных.

 

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

 

4.1 Титульный лист

4.2 Цель работы

4.3 Вариант задания

4.4 Перечень вариантов размещения таблиц на серверах

4.5 Формулы для расчета ОПД

4.6 Результаты расчета ОПД

4.7 Вывод о целесообразности использования распределенной базы данных.

4.8 Текст разработанной программы

4.9 Результаты тестирования программы

4.10 Список использованной литературы

 

 

Вопросы для самопроверки

5.1. Как определяется распределенная база данных?

5.2. Как составляется множество вариантов размещения таблиц на серверах?

5.3. Какие характеристики запросов должны быть заданы для оптимизации размещения таблиц на серверах?

5.4. Что является критерием оптимизации размещения таблиц на серверах?

5.5. Как определяется общий объем передаваемых данных между серверами?

 

 

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

Выбор координатора распределенного запроса в РБД

 

1. Цель работы: изучить методику выбора координатора распределенного запроса в РБД.

 

Базовые сведения

 

Запрос к РБД называется распределенным, если в его выполнении участвуют два и более SQL – сервера. Координатором распределенного запроса называется сервер, выполняющий следующие действия:

- декомпозиция исходного запроса с целью формирования локальных запросов для остальных серверов;

- рассылка локальных запросов серверам-соисполнителям;

- сбор результатов локальных запросов;

- формирование результата распределенного запроса;

- передача ответа на запрос серверу – источнику запроса.

В данной работе предполагается, что известно размещение таблиц РБД на нескольких SQL-серверах. При выполнении распределенного запроса серверы – участники передают Координатору результаты выполнения своих локальных запросов, а Координатор, сформировав общий ответ, передает его серверу – источнику запроса. Таким образом, с выполнением каждого распределенного запроса связан определенный объем передаваемых по сети данных (передачей самих запросов по сети при этом можно пренебречь). Требуется так выбрать Координатора распределенного запроса, чтобы минимизировать суммарный объем передаваемых по сети данных.

Рассмотрим следующий пример. В базе данных имеется две таблицы: Т1 и Т2. Для работы с базой данных выделены два SQL –сервера: С1 и С2. На сервере С1 размещена таблица Т1, на сервере С2 - таблица Т2. При выполнении распределенного запроса Зап(Т1,Т2) Координатор формирует локальные запросы Зап(Т1), Зап(Т2), получает ответы объема Д1 и Д2 соответственно, формирует ответ (объема Д) на распределенный запрос и посылает его (если это требуется) серверу – источнику запроса.

В данном случае требуется рассмотреть 4 ситуации в зависимости от того, какой сервер является источником запроса (Источником) и какой сервер назначен Координатором выполнения запроса (Координатором). Для каждой ситуации общий объем передаваемых данных обозначим ОПДХХ, где ХХ – двухразрядное целое число, первая цифра которого – номер сервера – Источника, а вторая цифра – номер сервера – Координатора.

1. Источником и Координатором является сервер С1. Тогда ОПД11 = Д2.

2. Источник - С1, Координатор – С2. Тогда ОПД12 = Д1+Д.

3. Источник – С2, Координатор – С1. Тогда ОПД21 = Д2+Д.

4. Источником и Координатором является сервер С2. Тогда ОПД11 = Д1.

Из полученных формул следует, что при поступлении Зап(Т1,Т2) от сервера С1 нужно назначить Координатором сервер С1, если Д2 < Д1+Д, и назначить сервер С2 в противном случае. Если Источником является сервер С2, то Координатором назначается С1 или С2 в зависимости от того, выполнено или нет условие Д2+Д < Д1.

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

 

 

Для программирования описанного алгоритма в общем случае требуется ввести следующие переменные и массивы:

 

КолСерв – число серверов;

КолТаб – число таблиц;

ЗапрОбъемОтвета - объем итогового ответа на запрос;

ЗапрТаб(1:КолТаб), i-й элемент которого равен объему данных, извлекаемых запросом из i-й таблицы;

ТабСерв(1:КолТаб, 1:КолСерв), элемент (i, j) которого равен 1, если i-я таблица размещена на j-м сервере, и равен нулю в противном случае.

Во внешнем цикле программы цикловая переменная задает номер сервера – источника запроса. Во внутреннем цикле цикловая переменная задает номер сервера – координатора выполнения запроса. При этом на каждой итерации внешнего цикла требуется определить номер сервера – координатора запроса, для которого общий объем передаваемых данных (величина ОПД) минимален.

 

Порядок выполнения работы

 

3.1. Для выбранного варианта задания составить множество пар (сервер-Источник, сервер-Координатор) и вычислить для них значения ОПД.

3.2. Составить таблицу соответствия между сервером-Источником и сервером-Координатором, выбранным по критерию минимизации ОПД.

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

3.4. Протестировать разработанную программу на примерах, выполненных вручную.

 

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

 

4.1 Титульный лист

4.2 Цель работы

4.3 Вариант задания

4.4 Перечень пар (сервер-Источник, сервер-Координатор).

4.5 Формулы для расчета ОПД

4.6 Результаты расчета ОПД

4.7 Таблица соответствия между сервером-источником и сервером-координатором запроса

4.8 Текст разработанной программы

4.9 Результаты тестирования программы

4.10 Список использованной литературы

 

 

Вопросы для самопроверки

5.1. Как определяется распределенный запрос в распределенной базе данных?

5.2. Какие действия выполняет Координатор распределенного запроса?

5.3. Что должно быть задано в задаче оптимального выбора Координатора распределенного запроса?

5.4. Что является критерием оптимизации в задаче оптимального выбора Координатора распределенного запроса?

5.5. Как определяется общий объем передаваемых данных между серверами при выполнении распределенного запроса?

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







Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.