УДК 330:002 ББК 65с51 Н 16
АЛ. Нагоев, Н.П. Орлянская
Оптимизация запросов к базе данных в информационной системе учета работы автотранспорта средствами реляционной алгебры
Аннотация:
Предложена методика оптимизации запросов к базе данных информационной системы учета автотранспорта средствами реляционной алгебры.
:
Учет работы автотранспорта; оптимизация; запросы; базы данных; операции; путевые листы; вход за; ; ; ; .
В информационных системах учета работы автотранспорта особое внимание уделяется различным вы,
. -
: -
бильного транспорта для учета расхода автозапчастей при ; -
го средства по норме и пробегу, учета взаиморасчетов с клиентами.
Выборка по запросу предшествует формированию статистической отчетности о деятельности автопредприятия: по пробегу автомобилей, по расходу горючего, по сумме начисленной зарплаты водителям по путевым листам. В теории баз данных описывается технология организации запроса к базе данных. Она предусматривает перестановку операций в пределах запроса, идентификацию общих подвыражений и однократном их выполнении, на трансляции и оптимизации запроса относительно фраг-.
Вместе с тем нельзя не отметить, что в действующих информационных системах запросы в большинстве слу-« ». -
,
дают пользователю в руки инструментарий создания за. -ний удовлетворения пользовательских потребностей, но в них не применяются возможности реляционной аналитики для оптимизации этой операции.
Если обозначить
А - имя некоторого неключевого атрибута;
V - одно из его значений;
е - соответствующее значение первичного ключу;
@ - один из знаков сравнения =; #; <>; <=;>=;
Когда величины V или Е найдены, они обозначаются знаком «?»
Можно выделить три класса запросов:
1. Нахояедение значения атрибута по известному :
А=(е)=?
2. Нахояедение записи с заданным значением неключевого атрибута
А(?)@ V
условия этого типа запросов могут комбинироваться с помощью логических связок «не» «и» «ЩШ»
3. Перечислить значения данного атрибута для каждой записи
А(?)=?
Обозначим Т - имена атрибутов входа запроса;
1 - значение атрибута;
Р - множество атрибутов на выходе запроса.
Входом запроса называется множество имен атрибутов, для которых заданы условия вида А(?)@а; оболочкой запроса называется множество имен атрибутов, упоминаемых в формулировке запроса. Тогда запрос для информационной технологии учета работы автотранспорта можно записать в виде:
Выбрать Р? где Т@1
Для оптимизации запроса к реляционной базе данных используются следующие преобразования [1, 2]:
• Объединение операций выборки по нескольким условиям в одну операцию с составным условием;
•
выполнения пересечения, вычитания, или натурального соединения двух отношений, то она может быть предварительно применена к каяедому исходному отношению;
•
, , натурального соединения двух отношений, то она может бьггь предварительно применима к каждому исходному .
Применим описанную выше технологию для базы данных путевых листов информационной системы учета .
Пусть необходимо определить реквизиты клиентов фегаизит Клиент. Организация), которые произвели конкретную группу перевозок (Условно обозначим Группа в ) ( ), которые разместим в таблице Перевозки. Из построенной ранее инфологической модели Информационной системы учета работы автотранспорта видно что эти две таблицы взаимосвязаны по ключевому полю Код ^од клиента).
Реализацию этого запроса к базе данных с помощью оператора реляционной алгебры можно записать :
1 способ:
(^ртевойЛист^Код т Клиент ^Регаизит) т ^ртевойЛист ^ Перевозки=Группа))пфта=Регаизит;
где т - операция полусоединения; п - операция объединения;
Оптимизируем запрос с учетом двух отношений эквивалентности:
1. Каскадность унарных операций позволяет разбить запрос на части, выполняемые последовательно. Унарные операции - это селекция и проекция, уменьшающие размеры отношения по горизонтали и вертикали
R[A1@C1 and A2@C2]=(R[A1@C1])[A2@C2].
2. Дистрибутивность унарных операций относительно бинарных позволяет распространить их на операнды бинарных операций
(R*S) [A@C] = (R[A@C]*S[A@C]; где R, S отношения,
- ,
C - ,
@ - оператор сравнения
Известно, [1,2] более раннее применение операций редукции приводит к оптимальному выполнению запро-, :
2 способ
((^ртевойЛист^Перевозки=Группа)п^ртевойЛист ^ Дата=фта))т ^^евойЛист ^Код т Клиент ^
)=
Разделим запрос на две части (подемфосы), пусть Q1=n^eBoiLTIiiCT ^ Пое здки=Группа; Q2=n^eBOiLTbiCT ^ Дата=фта; р3=ПртевойЛист ^ Код и Клиент ^ Рекв изит;
, 1 -лагает вьшолнение запроса снизу вверх, т.е.
Q3;
Q2;
Q1.
Действительно порядок выполнения операций в выражении запроса слева направо, что соответствует обходу
дерева «сшгзу вверх». Этот способ не является наилучшим с точки зрения затрат на обработку на местах, те выполнения операций в узлах и передачи данных. В этом случае надо передавать атрибут Клиент ^ Реквизит при
2 . сверху вниз соответствует «2 способу» И соответствует выполнению запроса «сверху вниз»
01;
02;
03.
Оба способа приведут к требуемому результату. Однако способ сверху вниз более экономичен, Как с точки зрения времени выполнения, так и объема перемещаемых данных. Эго объясняется тем, что мы начинаем с редукции (т.е. селекции), а затем можем использовать полисо-, -ние соединяемых атрибутов.
Произведено распределение селекции относительно естественного соединения и последовательное вьшолнение проекции на нужные компоненты, а затем распреде-. , выполняться над атрибутом соединения из соответст-,
.
Примечания:
1. Мишенин АЛ. Теория экономических информационных систем: Учебник. - 4-е изд., доп. и пераб. - М.: Финансы и статистика, 1999. - 240 с.: ил.
2. Цикритзис Д., Лоховски Ф. Модели данных. - М.: Финансы и статистика, 1985. - 320 с.
3. Орлянская Н.П. Информационная технология бухгалтерского учета. Диссертация на соискание ученой степени канд. техн. наук. - Краснодар, 2001. - 169 с.