Время выполнения запроса можно представить в виде формулы:
, где =1, если i-ая таблица, принадлежит запросу; 0 - иначе; n-количество таблиц; - объем блока; - объем i-й таблицы; - время открытия i-й таблицы; - время закрытия i-й таблицы; - время чтения блока; - общее время выполнения операций соединения.
Для выбора оптимального маршрута соединения таблиц из нескольких семантически альтернативных, представим схему БД в виде графа, выполнив переход от таблиц к вершинам и от связей к дугам. Каждой вершине графа сопоставим нагрузку - время доступа и чтения таблицы, каждой дуге сопоставим нагрузку - время на соединение инцидентных ей таблиц. Таким образом, для выбора оптимального маршрута соединения необходимо решить задачу оптимизации на графе с нагруженными вершинами и дугами.
Задача оптимизации на графе состоит в выборе минимально нагруженного подграфа при условии, что результирующий подграф является связным:
(1)
где , - нагрузка на i-ю вершину; = 1, если i-ая вершина, принадлежит подграфу, 0 - иначе; n - количество вершин; yj= 1, если j-ая дуга принадлежит подграфу, 0 - иначе; m - количество дуг; - нагрузка на j-ю дугу.
Для задачи (1) существуют методы решения (например [2]), но они ограниченны определенной предметной областью и специфической структурой графа. Поэтому для случая, когда граф имеет произвольную структуру, разработан следующий алгоритм оптимизации на графе.
В основе данного алгоритма используется поиск на графе в ширину, модифицированный для учета суммарной нагрузки на вершинах и дугах маршрута достижения искомой цели. Кроме того, кратчайший путь находится между несколькими отмеченными вершинами. В результате работы данного алгоритма получается минимальный маршрут, соединяющий все отмеченные вершины, т.е. те, которые используются в запросе.
Выводы: разработаны методика выбора оптимального маршрута соединения таблиц в БД, имеющих сложную структуру организации данных; алгоритм поиска оптимального маршрута соединения отмеченных вершин на графе, имеющем циклы, с нагруженными вершинами и дугами.
СПИСОК ЛИТЕРАТУРЫ
- Гарсиа-Молина Г., Ульман Д., Уидом Д. Системы баз данных. Полный курс. Пер. с англ.- М.: Издательский дом «Вильямс», 2003 - 1088 с.
- Погодаев А.К., Анненков А.В. Метод оптимизации графов с нагруженными вершинами /Вестник ЛГТУ - ЛЕГИ 2001 №1(7) - 37-39с.