Научная статья на тему 'Оптимизация обработки информационных запросов в СУБД'

Оптимизация обработки информационных запросов в СУБД Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
167
44
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Оптимизация обработки информационных запросов в СУБД»

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

говорить о том, что использование предложенного метода должно положительно отразиться на качестве разрабатываемого ПС.

Список литературы

1. Kotonya G., Sommerville I. Requirements Engineering. Processes and techniques. John Wiley & Sons, 1998.

2. Анализ требований и создание архитектуры решений на основе Microsoft .NET: Учебный курс MCSD /Пер. с англ. -М.: Издат.-торг. дом "Русская Редакция", 2004.

3. Leffingwell D., Widrig D. Managing Software Requirements. Addison Wesley, 1999.

4. Вигерс К. Разработка требований к программному обеспечению. - М., 2004.

5. Оре О. Теория графов. - М.: Наука, 1980.

ОПТИМИЗАЦИЯ ОБРАБОТКИ ИНФОРМАЦИОННЫХ ЗАПРОСОВ В СУБД

Э.П. Голенищев, С.А. Дербанов

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

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

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

В результате от пользователя АИС не требуется каких-либо знаний о существующих стратегиях обработки запросов; перенос ответственности за выбор оптимальной стратегии обработки запросов на систему управления базами данных (СУБД) предотвращает выбор пользователем заведомо неэффективных стратегий и предоставляет СУБД больше возможностей контролировать общую производительность всей системы.

По результатам проведенного анализа выявлено два основных метода обработки запросов (на практике чаще используется их комбинация).

Первый метод для определения порядка выполнения запроса предполагает использование эвристических правил [2]. Второй метод заключается в сравнительной оценке стоимости различных вариантов выполнения запроса и выборе того варианта, который предполагает минимальное использование ресурсов [5,6].

Поскольку скорость доступа к данным на диске невелика, в качестве основного показателя оценки стоимости выполнения запроса обосновано использовать количество (время, стоимость) дисковых операций [2].

Целесообразно проанализировать последовательность основных этапов обработки запросов СУБД, представленную на рисунке.

Время обработки запросов в общем случае складывается из времен его компиляции и выполнения. Сокращение любой из этих составляющих должно уменьшать общее время обработки запро-

Запрос на языке высокого уровня (обычно на SQL)

Время обработки запроса

Время компиляции.

Декомпозиция запроса

Выражения реляционной алгебры

Оптимизация запроса

Системный каталог

БД

статистики

План выполнения запроса

Генерация кода

Время выполнения

Сгенерированный код

Выполнение запроса

Основная БД

Результаты запроса

Основные этапы процесса обработки запросов

са, но интуитивно понятно, что между ними должна существовать зависимость. Так, можно предположить, что чем больше времени отводится на компиляцию, тем выше вероятность получения оптимального плана, следовательно, запрос выполняется за наименьшее время.

В условиях ограничений, определяемых требованиями пользователей ко времени реакции системы, возникает следующая экстремальная задача: путем декомпозиции и выбора метода оптимизации, автоматической генерации кода СУБД необходимо представить пользователю результаты выполнения корректного информационного запроса пользователю за наименьшее время с учетом имеющихся системных ресурсов.

Выделим основные частные задачи:

- проверка корректности пользовательского запроса;

- обоснование и выбор метода оптимизации запроса в зависимости от временных и ресурсных ограничений;

- оптимальное распределение функций компиляции между программной и аппаратной частями АИС.

Первые две задачи предлагается свести к известной задаче о наименьшем покрытии (ЗНП) [3,4,7]. ЗНП своим названием обязана следующей теоретико-множественной интерпретации.

Даны множество К={гь ..., гм} и семейство 3={§1, ..., множеств Любое подсемей-

ство 3'={8д, семейства 3 такое, что

к

и = К является покрытием множества К, а 1=1

множества являются покрывающими множествами.

Если каждому Sje 3 поставлена в соответствие положительная стоимость су, то необходимо найти покрытие множества К, имеющее наименьшую стоимость, причем стоимость семейства 3'=^ь

к _

Sj2,..., Sjk} определяется как ЕПу .

В матричной форме, когда строки (Мх^-мат-рицы [Чу], состоящей из нулей и единиц, покрываются столбцами, ЗНП может быть сформулирована аналогично задаче линейного программирования:

N

минимизировать z = 2 1 ■ ¡¡=1

N

при ограничениях 2 1 > 1, 1=1, 2, ..., М, ¡¡=1

(1,апёе е 3', (1, апёе г1 е

где су>0,\у = \ „_..ч 1 , и ^ = •! „_..ч -1 ' ^ 1 0, апёе е 3 11 10, апёе г1 е

При исследовании решаемой задачи удалось сделать следующие выводы и упрощения.

1. Если для некоторого элемента г1 из К справедливы соотношения г1е8у У1=1,...^, то г1 по-

крыть нельзя и, следовательно, задача не имеет решения (некорректно сформулирован запрос).

2. Если Зг1е К такое, что г1е 8к и г1е ЭД^к, то 8к должно присутствовать во всех решениях и задачу можно свести к «меньшей», положив К=К-{Г1} и 3=3-{8к}.

3. Пусть У1={11 г1е8у}; тогда если Эр, яе{1, ..., М} такие, что УрсУч, то гч можно удалить из К, поскольку любое множество, которое покрывает гр, должно также покрывать гф то есть гр доминирует над гч.

4. Если для некоторого семейства множеств 3с3 справедливы соотношения

и_ э 8к и П < ск для любых 8ке3- 3,

8к может быть вычеркнуто из 3, поскольку

то

и доминирует над 8к.

Когда все упрощения выполнены (если они возможны) и исходная задача переформулирована в соответствующей неприводимой форме, наступает этап ее решения.

В качестве К целесообразно рассматривать запрос, сформулированный пользователем АИС, а в качестве 3 - семейство операций реляционной алгебры (РА) [1,5]. Запрос К будет выполнен за наименьшее время, если он будет представлен совокупностью операций реляционной алгебры, в сумме имеющих наименьшую стоимость.

В свою очередь, вопрос определения стоимостей различных операций РА может решаться на основе статистической информации, накапливаемой службами современных СУБД. Так, типичная СУБД сохраняет в своем системном каталоге следующие статистические данные [2].

1. Для каждого базового отношения X:

п1цр1е8(Х) - количество кортежей в отношении X (то есть его кардинальность);

bfactor(X) - показатель блокирования отношения X (то есть количество кортежей отношения Х, размещаемых в одном дисковом блоке);

пЫоскэ^) - количество блоков вторичной памяти, необходимых для сохранения отношения Х. Если кортежи отношения Х физически размещаются на одном участке, то справедлива формула: пЫоскэ^^ [п^р^ОД/ ЬГа^ог®].

2. Для каждого атрибута А базового отношения Х:

п^йпс^^) - количество уникальных значений атрибута А в отношении Х;

minA(X), maxA(X) - минимальное и максимальное количество возможных значений атрибута А в отношении Х;

- кардинальность выборки атрибута А в отношении Х. Оно представляет собой среднее количество кортежей, которые удовлетворяют условию, заданному для атрибута А. В предположении, что значения атрибута А равномерно распределены по отношению Х и что существует по

крайней мере одно значение, удовлетворяющее заданному условию, 8СА(Х) может принимать значения: 1 - если атрибут А является ключевым для отношения Х, и [п1;ир1е8(Х)/пШ81;1пс1;А(Х)] - в противном случае.

Кроме того, может быть выполнена оценка кардинальности выборки для различных условий. В этом случае значение 8СА(Х) может быть определено по следующим соотношениям:

а) для А>ч:

[ШирМХ)*( тахА(Х)-ч)/(тахА(Х)-ттА(Х))],

б) для А<ч:

[п1ирМХ)*(я-тахА(Х))/(тахА(Х)-ттА(Х))],

в) для Ае(ях, 42, ..., Ч„}: [(п1;ир1е8(Х)/пШ81;тс1А(Х))*п],

г) для Ауб: 8СА(Х)*8Св(Х),

д) для АлБ: 8са(х)*8св(х)-8са(х)-8св(х).

3. Для каждого атрибута многоуровневого индекса I множества значений атрибута А:

п1еуекА(1) - количество уровней индекса I;

п11Ыоск8А(1) - количество листовых блоков индекса I.

Конечно, поддержание всех этих статистических показателей в актуальном состоянии может представлять собой серьезную проблему. Так, если СУБД будет выполнять их обновление каждый раз при вставке, удалении или обновлении кортежа, то это скажется отрицательно на производи-

тельности системы. Процедуры обновления статистики целесообразно выполнять либо в моменты простоя системы, либо с установленным периодом.

Накопление результатов многократного решения поставленной задачи может способствовать выработке или уточнению эвристических правил оптимизации запросов.

Таким образом, постановка задачи оптимизации запросов в реляционных СУБД возможна в терминах линейного или целочисленного программирования.

Список литературы

1. Голенищев Э.П., Клименко И.В. Информационные обеспечение систем управления. - Р-н-Д: Феникс, 2003. - 352с.

2. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика. 2-е изд. /Пер. с англ. - М.: Издат. дом «Вильямс», 2000. -1120с.

3. Кофман А. Введение в прикладную комбинаторику. -М.: Наука, 1975. - 480с.

4. Кристофидес Н. Теория графов. Алгоритмический подход. - М.: Мир, 1978. - 432с.

5. Мейер Д. Теория реляционных баз данных. / Пер. с англ. - М.: Мир, 1987. - 608с.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6. Озкарахан Э. Машины баз данных и управление базами данных. / Пер. с англ. - М.: Мир, 1989. - 696с.

7. Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность / Пер. с англ. - М.: Мир, 1985. - 512с.

ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ ДАННЫХ И РЕАЛИЗАЦИЯ МОДЕЛЕЙ ПОРТФЕЛЬНОГО АНАЛИЗА

В СРЕДЕ MS EXCEL

(Работа выполнена при частичной поддержке РФФИ, проект № 04-01-96720)

Е.Н. Гришина, A.B. Язенин

При формировании баз данных моделей портфельного анализа часто используется информация, предоставляемая аналитико-информационны-ми центрами, о биржевых характеристиках финансовых активов. Первичная информация, как правило, должна быть подвергнута обработке методами интеллектуального анализа данных. Эта технология основана на статистических методах и служит для выявления заранее неизвестных закономерностей. Интеллектуальный анализ данных распространен на практике для поддержки принятия стратегически важных финансовых решений, в том числе и на модели портфельного анализа.

В настоящей статье методы интеллектуального анализа данных применены для обработки информации с целью получения временных рядов для оценки параметров возможностных распреде-

лений в модели финансового актива, основанного на нечеткой случайной переменной.

Реализация технологии интеллектуального анализа данных

Как правило, информация о торгуемых ценных бумагах (элемент временного ряда) предоставляется в виде структуры данных: дата торгов, средневзвешенная цена, покупка (открытие), продажа (открытие), покупка (закрытие), продажа (закрытие), минимальная цена сделки, максимальная цена сделки.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.