Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700382.doc
Скачиваний:
13
Добавлен:
01.05.2022
Размер:
4.28 Mб
Скачать

4.5. Эвристическая оптимизация структуры базы данных

При разработке модели данных был использован стандарт IDEF0 [75].

В IDEF0 система представляется как совокупность взаимодействующих работ или функций. Функции системы анализируются независимо от объектов, которыми они оперируют. Это позволяет более четко смоделировать логику и взаимодействие процессов организации [76, 77]. Основу методологии IDEF0 составляет графический язык описания бизнес-процессов. Модель в интерпретации IDEF0 представляет собой совокупность иерархически упорядоченных и взаимосвязанных диаграмм [29]. Каждая диаграмма является единицей описания системы и располагается на отдельном листе. При разработке информационных моделей ОБД и ДБД использовались модели «сущность-связь» (ER-модели) [68]. Модель "сущность-связь" представляет собой высокоуровневую концептуальную модель данных. Данная модель – это набор концепций, которые описывают структуру БД и связывают с ней транзакции обновления и извлечения данных. На основании модели «сущность-связь» были построены таблицы для занесения данных. Таблицы строились с помощью программного средства Database Desktop в среде визуального программирования Delphi 7.0 с использованием Paradox 7. Процесс их проектирования проводился с помощью программы BP-Win [68] и затруднений не вызывал в отличие от оптимизации их структур. Для реализации последнего был разработан специальный алгоритм эвристической оптимизации, блок-схема которого представлена на рис. 4.4.

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

В блоке 2 реализован ввод исходных данных, таких как число уровней нормализации и число индексируемых полей.

В блоке 3 реализована многоуровневая нормализация БД. Нормализация - это формальный метод анализа отношений на основе их первичного ключа и существующих функциональных зависимостей. В ходе нормализации формат отношений становится все более ограниченным (строгим) и менее восприимчивым к аномалиям обновления. В теории реляционных баз могут использоваться 5 нормальных форм. Любой нормальной форме соответствует известный набор ограничений. Отношение находится в определенной нормальной форме, если оно удовлетворяет набору ограничений этой формы. С переводом структуры отношений базы данных в формы более высокого порядка происходит удаление из

таблиц избыточной неключевой информации [135].

Первая нормальная форма (1НФ) - отношение, в котором на пересечении каждой строки и каждого столбца содержится одно и только одно значение.

Вторая нормальная форма (2НФ) - отношение, которое находится в первой нормальной форме и каждый атрибут которого, не входящий в состав первичного ключа, характеризуется полной функциональной зависимостью от этого первичного ключа

Третья нормальная форма (ЗНФ) - отношение, которое находится в первой и во второй нормальных формах и не имеет атрибутов, не входящих в первичный ключ атрибутов, которые находились бы в транзитивной функциональной зависимости от этого первичного ключа.

Четвертая нормальная форма (4НФ) - отношение в нормальной форме Бойса-Кодда, которое не содержит нетривиальных многозначных зависимостей.

Пятая нормальная форма (5НФ) - отношение без зависимостей соединения.

Чтобы избежать аномалий обновления, нормализацию рекомендуется выполнять как минимум до третьей нормальной формы (ЗНФ) [36]. Также третья нормальная форма (3НФ) служит компромиссом между полной нормализацией и функциональностью в совокупности с легкостью реализации. Нормальные формы, выше третьей, затрудняют разработку структур данных и снижают их функциональность. Поэтому была проведена нормализация до ЗНФ.

Блок 4 обеспечивает проверку достаточности уровня нормализации БД. Если он достаточен, то управление передается в блок 5. В противном случае управление передается в блок 3.

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

Блок 6 обеспечивает проверку уровня достаточности индексирования БД. Если он достаточен, то управление передается в блок 7. В противном случае управление передается в блок 5.

Блок 7 обеспечивает вывод результатов. В качестве результатов выступает оптимизированная БД.

В качестве примера в табл. 4.2 приведены данные, хранящиеся в БД, предназначенные для обучения искусственной нейронной сети. В качестве данных приведены значения котировок акций ОАО «Газпром», имевших место в период с 25.03.2011 по 04.04.2011 г.

Таблица 4.2

Данные, хранящиеся в БД для обучения ИНС

Дата

25.03.11

28.03.11

29.03.11

30.03.11

31.03.11

01.04.11

04.04.11

Цены открытия

224,87

223,01

225,9

225,51

229,38

229,1

235,98

Норм. цена открытия

0,23

0,15

0,27

0,26

0,42

0,40

0,69

Цены закрытия

222,81

225,5

224,01

229,32

229,09

235,1

237,7

Норм. цена закрытия

0,11

0,22

0,16

0,38

0,37

0,62

0,73

Прогнозная цена

223,01

225,9

225,51

229,38

229,1

235,98

238,46

Норм. прогноз

0,14

0,26

0,25

0,41

0,40

0,68

0,79

В строках данной таблицы используются значения таких характеристик, как:

- «Дата» – дата, на которую приведены значения акций;

- «Цена откр.» – цена за акцию на момент открытия торгов;

- «Цена закр.» – цена за акцию на момент закрытия торгов;

- «Прогнозная цена» – цена открытия торгов на следующий день, значение которой необходимо спрогнозировать;

- «Норм. цена откр.», «норм. цена закр.», «норм. прогноз» – нормализованные значения.

Определение наиболее рациональной структуры базы данных проводилось экспериментальным (эвристическим ) путем.

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

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

Полученные значения усредненного времени реализации запросов приведены в табл. 4.3.

Таблица 4.3

Значения усредненного времени реализации запросов

Количество записей в базе данных:10000

Значения среднего времени выполнения запросов: мсек

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

1НФ

Цена открытия

Нормальная цена открытия

Цены закрытия

Нормальная цена закрытия

Прогнозная цена

Нормальный прогноз

700

790

775

770

680

700

3НФ

Цена открытия

Нормальная цена открытия

Цены закрытия

Нормальная цена закрытия

Прогнозная цена

Нормальный прогноз

400

380

390

370

410

415

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

1НФ

Цена открытия

Нормальная цена открытия

Цены закрытия

Нормальная цена закрытия

Прогнозная цена

Нормальный прогноз

518

500

490

530

515

530

3НФ

Цена открытия

Нормальная цена открытия

Цены закрытия

Нормальная цена закрытия

Прогнозная цена

Нормальный прогноз

180

150

160

130

160

150

Анализ полученных данных показывает, что время обработки запросов для базы данных в 1НФ гораздо больше, чем время обработки запросов для базы данных в 3НФ. Таким образом, можно сделать вывод о том, что оптимальной структурой базы данных для подсистемы нейросетевого прогнозирования временных рядов является структура базы данных, приведенная к 3НФ, все поля которой проиндексированы.

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

Следует заметить, что важное значение для повышения оперативности функционирования АРМ имеет использование рациональных методов и инструментов архивации данных, используемых в рамках взаимодействия между ДБД в ОБД.