Научная статья на тему 'Представление данных при разработке программного обеспечения по ведению информации о состоянии поисково-спасательных технических средств'

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

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

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

0

w

60

га

1E+25 1E+23 1E+21 1E+19 1E+17 о 1E+15 * 1E+13

(D

- 1E+11 1E+09 10000000 100000 1000 10 0,1 0,001 J

• Полный перебор----Второй "жадный" метод

В таблице приведено среднее значение точности ЖМ для решения задачи (7) с размерностью ^=20. Под точностью понимается отношение

-

W = -a *100%,

(11)

где Zg - экстремальное значение целевой функции (7), полученное ЖМ; Za - экстремальное значение целевой функции (7), полученное точным методом.

ЖМ Средний коэффициент точности W, % Количество задач, для которых не было найдено решение

Первый 74,6 7

Второй 48,9 0

Третий 90,0 9

Комплексный 96,7 0

Для каждого ЖМ проводилось 100 испытаний. Испытанием являлось решение задачи (7), составленной по первоначальной задаче (1), с п=1, ш=1, Х°1=ХС1 =0,001 с-1, /ц =¿1 = 1 с. Векторы стоимостей, массогабаритных и энергетических характеристик задавались случайным образом.

На основании проведенных экспериментальных исследований установлено, что комплексный ЖМ обладает наибольшей точностью.

Таким образом, предложен метод обеспечения функциональной надежности КСА систем управления радиоэлектронными средствами на основе применения средств и методов избыточности различного вида. Для задач выбора средств избыточности, имеющих большую размерность, целесообразно применять, например, предложенный комплексный ЖМ или другие эвристические методы.

Литература

1. Малафеев С.И., Копейкин А.И. Надежность технических систем. Примеры и задачи. СПб: Лань, 2012. 320 с.

2. Коваленко К.А., Лясковский В.Л., Прохоров А.Г. К вопросу повышения надежности функционирования многомашинных вычислительных комплексов с использованием аппаратурных средств и программно-логических методов // Автоматика и телемеханика. 1997. № 3. С. 226-233.

3. Саати Т. Целочисленные методы оптимизации и связанные с ними экстремальные проблемы. М.: Мир, 1973. 304 с.

4. Лясковский В.Л., Догадов А.А. Об одном подходе к решению задачи обеспечения отказоустойчивости параллельных вычислительных систем // Технические и технологические системы: матер. IV междунар. науч. конф. Краснодар: Изд-во ВУНЦ ВВС ВВА, 2012. С. 243-247.

References

1. Malafeev S.I., Kopeykin A.I., Nadyozhnost tekhnicheskikh sistem. Primery i zadachi (Reliability of Technical Systems. Examples and Problems), St. Petersburg, Lan, 2012, 320 p.

2. Kovalenko K.A., Lyaskovsky V.L., Prokhorov A.G., Avtomatika i telemekhanika [Automatics and telemechanics], 1997, no. 3, pp. 226-233.

3. Saaty T., Optimization in Integers and Related Extremal Problems, McGraw-Hill, NY, 1970.

4. Lyaskovsky V.L., Dogadov A.A., Materialy 4 mezhdunar. nauch. konf. «Tekhnicheskie i tekhnologicheskie sistemy» (Proc. 4th Int. Sci. Conf. «Technic. and technolog. systems»), Krasnodar, Military and Training Research Center of the Air Force of the Military Air Acad., 2012, pp. 243-247.

20

40

80

100

120

УДК 004.652

ПРЕДСТАВЛЕНИЕ ДАННЫХ ПРИ РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПО ВЕДЕНИЮ ИНФОРМАЦИИ О СОСТОЯНИИ ПОИСКОВО-СПАСАТЕЛЬНЫХ ТЕХНИЧЕСКИХ СРЕДСТВ

Е.В. Реут, инженер-программист (НИИ «Центрпрограммсистем», просп. 50 лет Октября, 3а, г. Тверь, 1 70024, Россия,

теиХекаХеппа. cps.tver@gm.ail. сот)

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

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

Ключевые слова: реляционная БД, структурированные данные, древовидная структура, матрица смежности, метод смежных вершин, метод материализации пути в дереве, метод вложенных множеств.

DATA PRESENTATION IN SOFTWARE DEVELOPING OF SEARCH-AND-RESCUE TECHNICAL RESOURCES INFORMATION PROCESSING Reut E. V., engineer-programmer (R&D Institute «Centrprogrammsystem», 50 let Oktyabrya Av., 3a, Tver, 170024, Russia, reutekaterina.cps.tver@gmail.com)

Abstract. The article considers a presentation form of structured data in relational database taking into account condition of search-and-rescue resources information specificity - data are presented as a tree-structured relation. In this case tree-structured relation has a limited quantity of nesting levels and various entities of tree nodes. The article shows certain description methods of the similar structure type in relational database analyzing each method and recommending the presentation form of that kind of structure in a relational database.

While choosing presentation form it is necessary to implement such data in software equally as a folded tree and as unfolded structure.

Keywords: relational database, structured data, tree-type structure, adjacency matrix, adjacent vertices method, path in a tree materialization method, nests method.

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

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

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

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

При разработке ПО по ведению информации о состоянии поисково-спасательных технических средств необходимо реализовать

- подготовку решения на проведение спасательных работ;

- оценку готовности технических средств к выполнению поставленных задач;

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

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

- фиксирование части оперативной информации, связанной с эксплуатацией технических средств;

- возможность восстановления последовательности событий при анализе аварийных ситуаций.

В ходе подготовки технических средств различных типов к работе, контроля за их техниче-

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

Шаблон проверки можно представить в виде дерева, схема которого изображена на рисунке 2.

При разработке ПО по ведению информации о состоянии технических средств необходимо решить следующие подзадачи:

- реализация механизма формирования шаблонов проверки технических средств;

- реализация функций занесения фактических данных проверяемых параметров в ходе проверки;

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

- хранение информации о проведенных проверках для каждого экземпляра технического средства.

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

Контрольно-проверочный лист проверки технических средств

№ п.п. Проверяемые параметры Отметка

Наименование проверки норма фактическое о готов-

значение ности

1 2 3 4 5

1 Группа параметров 1

1.1 - проверяемый параметр 1.1 норма проверки 1

1.2 - проверяемый параметр 1.2 норма проверки 1

2 Группа параметров 2

2.1 Группа параметров 2.1

2.1.1 - проверяемый параметр 2.1.1 норма проверки 1

2.1.2 - проверяемый параметр 2.1.2 норма проверки 2

2.1.3 - проверяемый параметр 2.1.3 норма проверки 1

Ф.И.О. лица, ответственного за проверку группы параметров 1 и группы

параметров 2

3 Группа параметров 3

3.1 Группа параметров 3.1

3.1.1 - проверяемый параметр 3.1.1 норма проверки 1

3.1.2 - проверяемый параметр 3.1.2 норма проверки 3

3.1.3 - проверяемый параметр 3.1.3 норма проверки 4

3.2 Группа параметров 3.2

3.2.1 Группа параметров 3.2.1

3.2.1.1 - проверяемый параметр 3.2.1.1 норма проверки 5

3.2.1.2 - проверяемый параметр 3.2.1.2 норма проверки 6

3.2.1.3 - проверяемый параметр 3.2.1.3 норма проверки 1

3.2.2 Группа параметров 3.2.2

3.2.2.1 - проверяемый параметр 3.2.2.1 норма проверки 2

3.2.2.2 - проверяемый параметр 3.2.2.2 норма проверки 7

3.2.2.3 - проверяемый параметр 3.2.2.3 норма проверки 1

Ф.И.О. лица, ответственного за проверку группы параметров 3

Ф.И.О. лица, проведшего проверку технических средств

Ф.И.О. лица, ответственного за проверку технических средств

Готовность технического средства к работе/исправность технического средства

Рис. 1. Структура списков проверки технических средств

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

При построении реляционной БД, где между данными существует структурированная зависимость, разработчикам необходимо выбрать метод представления такой зависимости в реляционной модели. Существует несколько методов представления подобной зависимости в реляционной БД [2-5]. На примере представления конкретных данных рассмотрим три метода представления дерева: список связных вершин (с использованием матрицы смежности), метод материализации пути в дереве, метод вложенных множеств.

В рассматриваемом случае представлены данные, структура которых заранее известна и четко определена. Анализ этих данных показывает, что это список деревьев одинаковой структуры. Каждый список проверки технических средств состоит из элементов трех типов («Группа параметров», «Параметр» и «Подпись»), множество которых представляет собой иерархическую древовидную структуру (см. рис. 2).

В данном случае можно представить, что в качестве исходящей вершины (родителя) рассматриваемого дерева всегда выступает тип элемента «Группа параметров», он же может являться и входящей вершиной (потомком) для элементов этого же типа. Тип элемента «Подпись» можно

представить как потомка элемента «Группа параметров», и вопрос его правильного отображения в

' Шаблон ^

проверки )

/ Группа"\ I парамет- | У ров 1.1 / fГруппа\ 1 парамет- \ У ров N у

СписокЧ парамет-V ров 1.2.1 У Х----ч /Список\ /ГруппаЧ парамет- параметров N.1 ров N.N Список

Г Подпись ) парамет-\ров N.N.1J ( Подпись J

Рис. 2. Структура шаблона проверки технических средств в виде дерева

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

В случае хранения данной древовидной структуры в реляционной БД с использованием матрицы смежности представим ее не в классическом виде [6], а в виде списка смежных вершин. Сочетание идентификаторов исходящей вершины (родителя^ 1ё_рагвШ и входящей (потомка) 1ё_в1 будет ключом такого реляционного отношения. При этом узлы дерева обычно выделяются в отдельную таблицу (рис. 3).

Матрица смежности Элементы дерева

id_el первичный ключ id_el первичный ключ

id_parent data

Рис. 3. Представление древовидных данных с использованием метода смежных вершин

Каждый узел рассматриваемого дерева имеет одно или несколько информационных полей. Типы этих полей соответствуют информации, которую в них хранят. Элементы «Группа параметров» имеют одно информационное поле строкового типа data, определяющее название группы проверяемых параметров. Элемент «Подпись» содержит в частном случае одно информационное поле строкового типа, отражающее сущность подписи (например «Ф.И.О. лица, ответственного за проведение проверки группы параметров 1», «Ф.И.О. лица, проверившего результаты проверки всех технических средств»). Поскольку данные о лице, ответственном за проведение проверки группы параметров/проведение данного вида проверки определенного типа технических средств, могут представлять собой в общем случае одно или несколько полей (Ф.И.О., должность, звание), эти данные уже на начальном этапе проектирования целесообразно выделить в отдельную таблицу.

Элемент дерева «Проверяемый параметр» имеет как минимум два информационных поля - название проверяемого параметра и норма проверки. Поскольку фактическое значение проверяемого параметра может являться диапазоном значений, норма для проверки соответствия фактического значения нормативному тоже будет представлена двумя значениями. Для осуществления проверки необходимо хранить идентификатор проверки id_prov. В данной ситуации выделены следующие нормы проверки: логическая проверка (да-нет), попадание в диапазон значений, равенство значений, больше или равно, меньше или равно, больше, меньше, которые хранятся в отдельной таблице типов норм проверки. Для каждого элемента «Параметр» необходимо хранить и конкретные значения норм проверки id norm (одно или два

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

Дерево не имеет обратно направленных связей и петель, а исходящими вершинами могут быть только элементы типа «Группа параметров». Таким образом, для описания всех элементов дерева необходимо выделить их в три таблицы - отдельно для каждой сущности элемента дерева (рис. 4). Для разделения различных шаблонов проверки технических средств между собой введем идентификатор шаблона ¡ё^вшрШв.

Матрица смежности

id_el первичный ключ

id_parent

Элементы дерева: Группа параметров

id_el первичный ключ

id template

data

Элементы дерева:

Параметр

id_el первичный ключ

id template

data

id_prov

id norm

Элементы дерева: Подпись

id_el первичный ключ

id template

datai

data2

Рис. 4. Представление древовидных данных с использованием матрицы смежности и вспомогательных таблиц

При разработке ПО необходимо осуществить реализацию двух механизмов работы с деревом.

1. Формирование дерева. При этом начальная загрузка дерева для отображения на экране представляет собой только список корневых вершин (элемент «Группа параметров») и исходящих элементов типа «Подпись». Раскрытие дерева, как правило, происходит постепенно, от исходящей вершины, вычитывание всех входящих веток дерева на всю глубину не требуется; нет необходимости и в сложном поиске элементов по дереву.

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

В связи с этим, а также для удобства разработки ПО целесообразно разделение матрицы смежности элементов на три при одновременном объединении ее со вспомогательной таблицей (рис. 5). При этом поле 1ё_рагвШ во всех трех таблицах будет представлять собой идентификатор элемента «Группа параметров» из первой таблицы.

Матрица смежности: элементы дерева «Группа параметров» Матрица смежности: элементы дерева «Параметр» Матрица смежности: элементы дерева «Подпись»

id_el первичный ключ id_el первичный ключ

id_el первичный ключ

id template id template

id template id_parent id_parent

id_parent data data1

data id_prov data2

id norma

Рис. 5. Представление древовидных данных с использованием матрицы смежности без вспомогательных таблиц

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

Шаблон проверки технических средств

1

Группа параметров 1 Подпись 1 Группа параметров N

1.1 1.2

Список параметров 1

Список параметров N. 1

Группа параметров

N.N

Список параметров N.N.1

Список параметров N.N.2

Рис. 6. Схема представления древовидных данных с использованием метода материализации пути в дереве

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

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

Связи между элементами

id el первичный ключ

type el

id template

path

Элементы дерева: Группа параметров

id_el первичный ключ

id template

data

Элементы дерева: Параметр Элементы дерева: Подпись

id_el первичный ключ id_el первичный ключ

id template

id template data1

data data2

id_prov

id norma

Рис. 7. Представление древовидных данных с использованием метода материализации пути в дереве

таблицы, хранящие информационные поля каждого типа элементов нашего дерева. При этом для идентификации каждого типа элемента следует иметь поле 1урв_в1. Однако поскольку есть три типа элементов, данное поле не может быть представлено в виде бинарного значения, а требуется его представление целочисленным типом (например: 1 - «Группа параметров», 2 - «Параметр», 3 -«Подпись»). Для улучшения данного метода возможно комбинирование его с методом смежных вершин, при этом в таблицу связей добавляется поле 1ё_рагеШ, хранящее родителя данного элемента дерева, что позволяет улучшить операции выборки предков и потомков для заданного элемента.

Еще одним вариантом представления древовидной структуры является метод вложенных множеств [6]. При его использовании каждому элементу дерева присваиваются два числовых значения - левое и правое (рис. 8).

Представим такую структуру в контексте таблицы БД (рис. 9).

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

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

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

1.1.1

1.N.1

1.N.N

1.N.N.1

1.N.N.2

Шаблон проверки

1 18

Группа параметров 1

Группа параметров N

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

Список параметров 1

17

Список параметров N. Ш1

9 10

Подпись 1

Группа параметров N.N

11

16

Список параметров NN. 1

12 13

Список параметров N.N.2

14 15

Рис. 8. Схема представления древовидных данных с использованием метода материализации пути в дереве

ней вложенности дерева производительность метода падает.

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

Тем не менее он довольно уверенно работает и с большими деревьями, если считывать их порциями вида «родитель-чтение всех наследников». Хороший пример данного случая - динамически подгружаемые деревья. Алгоритм практически оптимизирован для такого поведения. Однако он плохо применим, когда нужно вычитывать какие-либо иные куски дерева, находить пути, предыдущие и следующие узлы при обходе и вычитывать ветки дерева целиком (на всю глубину).

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

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

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

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

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

Связи между элементами

id el первичный ключ

type el

id template

left el

right el

Элементы дерева: Группа параметров

id_el первичный ключ

id template

data

Элементы дерева: Параметр

id_el первичный ключ

id template

data

id test

id norma

Элементы дерева: Подпись

id_el первичный ключ

id template

data1

data2

Рис. 9. Представление древовидных данных с использованием метода вложенных множеств

2

7

8

3

6

4

5

дерева. Это метод материализации пути в дереве и метод вложенных множеств.

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

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

К тому же метод списка смежных вершин хорошо работает на динамически подгружаемых деревьях, что и происходит в ситуации формирования дерева (последовательная загрузка данных по принципу родитель-потомки). Загрузка шаблона проверки технических средств для проведения самой проверки происходит перед ее началом целиком, и при использовании этого метода можно реализовать выгрузку всех данных не на уровне работы с БД, а на уровне ПО. А так как количество уровней вложенности в шаблоне проверки технических средств не является значимым (менее десятка уровней) и количество узлов в дереве не превышает 1 000, метод списка смежных вершин будет обладать достаточной производительностью [7], а система - необходимым быстродействием наряду с обеспечением скорости разработки ПО.

Литература

1. Гладков М., Шибанов С. Сложные структуры в реляционных базах данных // Открытые системы. 2004. № 2.

2. Стадник М. PHP, SQL, Архитектуры, Базы данных ^ Иерархические структуры данных и производительность Doctrine. URL: http://mikhailstadnik.com/hierarchical-data-structu-res-and-doctrine (дата обращения: 19.02.2013).

3. Хранение древовидных структур в базах данных. URL: http://phpclub.ru/detail/article/db_tree (дата обращения: 19.02.2013).

4. Архангельский А.Г. Деревья как вложенные множества. URL: http://www.az-design.ru/Support/DataBase/DBTree2/ 5000.shtml (дата обращения: 19.02.2013).

5. Седжвик Р. Алгоритмы на С++. Фундаментальные алгоритмы и структуры данных. Анализ/Структуры данных/Сортировка/Поиск/Алгоритмы на графах; [пер. с англ.]. М.: Виль-ямс, 2011.

6. Celko J., Joe Celko's Trees and Hierarchies, Morgan Kaufmann Publ., 2004.

7. Стадник М. SQL, Базы данных ^ Иерархические структуры данных и производительность. URL: http://mikhail-stadnik.com/hierarchical-data-structures-and-perfomance (дата обращения: 19.02.2013).

References

1. Gladkov M., Shibanov S., Otkrytye Sistemy [Open Systems], 2004, no. 2.

2. Stadnik M., Ierarkhicheskie struktury dannykh i Doctrine [Database hierarchy structures and Doctrine], Available at: http://mikhailstadnik.com/hierarchical-data-structures-and-doctrine (accessed 19 Feb. 2013).

3. Khranenie drevovidnykh struktur v bazakh dannykh [Tree-type structure holding in databases], Available at: http://phpclub.ru/ detail/article/db_tree (accessed 19 Feb. 2013).

4. Arkhangelsky A.G., Derevya kak vlozhennye mnozhestva [Trees as nested sets], Available at: http://www.az-design.ru/Sup-port/DataBase/DBTree2/5000.shtml (accessed 19 Feb. 2013).

5. Sedgewick R., Bundle of Algorothms in C++. Parts 1-5: Fundamentals, Data Structures, Sorting, Searching and Graph A l-gorithms, Addison-Wesley Professional, 3rd ed., 2002.

6. Celko J., Joe Celko's Trees and Hierarchies, Morgan Kaufmann Publ., 2004.

7. Stadnik M., Ierarkhicheskiye struktury dannyhk i proizvo-ditelnost [Database hierarchy structures and productivity], Available at: http://mikhailstadnik.com/hierarchical-data-structures-and-performance (accessed 19 Feb. 2013).

УДК 681.3.07

МЕТОД ИСКУССТВЕННОГО СООТВЕТСТВИЯ Бдь-ЗАПРОСОВ ИНДЕКСАМ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ

В.Е. Сорокин, к.т.н., зав. отделом (НИИ «Цептрпрограммсистем», просп. 50лет Октября, 3а, г. Тверь, 170024, Россия, sorokinve@yandex.ru)

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

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