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

4. Мирошник И. В. Теория автоматического управления. Нелинейные и оптимальные системы / И. В. Мирошник. СПб. : Питер, 2006. 272 с.

Поступила 27.02.2012.

УДК 004.632.5

ПОСТРОЕНИЕ ИНДЕКСНЫХ СТРУКТУР В ТЕМПОРАЛЬНЫХ БАЗАХ ДАННЫХ

М. В. Мелешкин

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

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

К основным задачам, решаемым SCADA-системами, относятся следующие:

— сбор данных с приборов коммерческого учета электроэнергии;

— сбор данных со специальных датчиков (например, датчиков магнитного поля);

— ведение журналов показателей качества электроэнергии;

— контроль за соблюдением лимита потребления;

— многотарифный учет;

— ведение единого времени;

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

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

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

— считываются оперативные данные о текущих значениях силы тока (I) и напряжения (U) и заносятся в темпоральную базу данных [5, с. 3] с заданием метки времени;

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

— если обрыв зафиксирован, то система формирует управляющее воздействие (разъединяются контакты пускателя или вакуумного выключателя).

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

— хранят мгновенный снимок (snapshot) состояния модели предметной области;

— развиваются посредством транзакци-

© Мелешкин М. В., 2012

Серия «Физико-математические науки»

181

онного изменения одного состояния на другое;

— любое изменение приводит к тому, что предыдущее состояние становится недоступным;

— не предоставляют никакой информации о прошлом.

Взамен этого темпоральные базы данных:

— поддерживают историческую информацию;

— изменения рассматривают в качестве дополнения к фактам, уже хранящимся в базе данных (БД);

— позволяют ввести понятие времени в системе;

— эффективно предоставляют доступ к прошлым состояниям.

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

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

— выбрать все состояния объекта с ключом К на временном интервале [М, t2];

— получить состояние всех объектов, которые были актуальны на момент времени t (произвести срез по времени).

Известно, в любой СУБД наиболее затратными операциями являются операции ввода/вывода. Таблицы в базе данных имеют большое число строк, которые хранятся в произвольном порядке и поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занять много времени. В этом случае время, требуемое для поиска заданной критерием записи, пропорционально числу записей таблице (сложность О (Ю) [1, с. 347].

Для увеличения скорости выборки в большинстве СУБД применяются индексы [2, с. 356]. Ускорение работы при этом достигается за счет того, что индекс имеет структуру, оптимизированную под поиск (например, дерево). В таком случае порядок записей строго соответствует дереву, постро-

енному по заданному (индексируемому) полю. Если в качестве индексирующих структур применяется дерево, то время поиска заданной записи пропорционально логарифму от числа записей в таблице (сложность O (log (N))) [1, c. 358]. В темпоральных базах данных, где большое значение отводится полю, обозначающему атрибут «время», приходится строить индекс не по одному, а по меньшей мере по двум полям, одним из которых является время.

Таким образом, мы имеем дело не с одномерным, а с двух- или трехмерным (в общем случае n-мерным) индексом. При этом возникает сложность с отображением n-мерного пространства темпоральной информации в линейный список плоской структуры базы данных. Однако похожая задача решается в пространственных (spatial) базах данных [3, с. 94]. В таких базах данных для построения индекса по нескольким атрибутам (для двух столбцов — «прямоугольного» индекса) применяется структура, называемая R-tree [4]. В пространственных базах данных R-tree строится, например, по двум координатам (x, y) точки, причем каждая координата является самостоятельным атрибутом (отдельным столбцом в таблице).

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

Основное свойство R-tree — это его высокая арность, т. е. большое количество узлов на каждом уровне дерева (сильно ветвящееся дерево) и, следовательно, такое дерево может значительно сократить процесс поиска нужной записи. Внутренние (не листовые) узлы дерева представляют собой запись вида (child_pointer, MBR), состоящую из ссылки на дочерний узел (сhild_pointer) и минимального прямоугольника (MBR), покрывающего все прямоугольники дочерних узлов. Листовой (наружный) узел имеет вид (MBR, tuple_id), где tuple_id является ссылкой на запись в базе данных, а MBR (Minimal Border Rectangle) — это прямоугольник, который является минимальным охватывающим прямоугольником для пространственного объекта.

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

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

М

т < —.

2

Кроме этого Л^гее должно удовлетворять следующим требованиям:

— каждый узел, если он не является корнем, должен содержать не больше М и не меньше т записей;

— корень, если он не является листом, должен содержать не менее двух и не более М элементов;

— для каждой индексной записи листового узла MBR является минимальным прямоугольником, который полностью вмещает в себя объект, на который ссылается запись;

— для каждой индексной записи не листового узла MBR является минимальным

прямоугольником, который полностью вмещает все MBR дочерних узлов;

— дерево сбалансировано, т. е. все листовые узлы расположены на одном уровне.

Можно привести оценку высоты Л^гее при числе элементов в нем N. Из свойств описанной выше структуры видно, что каждый узел дерева содержит минимум т потомков. Следовательно, наибольшая высота дерева, содержащего N записей, будет не больше

N -1-

При этом максимальное число узлов в таком дереве будет

N

N

„2

- + —2 + --- + 1т т

На рисунке показан пример структуры Л^гее и проиллюстрированы отношения между прямоугольниками, существующими в подобной структуре.

Рисунок. Л4гее поиска по timestamp и К Серия «Физико-математические науки»

Показанная структура позволяет выполнять запросы на извлечение данных по двум параметрам (атрибутам) — метке времени («Timestamp») и отношению значения напряжения и к значению тока I (атрибут «К»), Она позволяет, например, выбирать

все объекты, имеющие на временном интервале значение коэффициента К в диапазоне от 50 до 60 (на рисунке на эти объекты ссылаются указатели Е5 и Ец). Причем в такой схеме оба атрибута, являющиеся условиями в запросе, попадают в создаваемый индекс.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Лафоре Р. Структуры данных и алгоритмы Java / Р. Лафоре. СПб. : Питер, 2011. 704 с.

2. Луни К. Oracle database 10g. Полн. справ. / К. Луни. М. : Лори, 2006. 1456 с.

3. Albert K. W. Yeung. Spatial Database Systems : Design, Implementation and Project Management / Albert K. W. Yeung, G. Brent Hall. Springer, 2007. 553 p.

4. Guttman A. R-trees : A dynamic index structure for spatial searching / Antonio Guttman // SIGMOD'84, Proceedings of Annual Meeting, Boston, Massachusetts. 1984. June 18 21. С. 47 57.

5. Theophano M. Temporal Data Mining / M. Theophano. University of Minnesota, 2010. 337 p.

Поступила 03.04.2012.

УДК 512.643

МЕТОДЫ ПОСТРОЕНИЯ ПОЛЯРНОГО РАЗЛОЖЕНИЯ МАТРИЦЫ*

А. Ф. Зубова, М. В. Стрекопытова

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

Рассмотрим метод построения ортогональной матрицы полярного разложения матрицы, использующий аппарат матричных функций Ляпунова [2]. Пусть А — заданная невырожденная (п х п) — матрица. Требуется найти симметричную положительно определенную матрицу ¥ и ортогональную матрицу и такие, что выполняется соотношение

А = ¥и.

Введем в рассмотрение множество Мп

квадратных матриц порядка (п х п) и множество Dn невырожденных матриц того же порядка. Множество Мп является линейным нормированным пространством с нормой, определяемой соотношением

С = та^^—

Хе£„ 1X11

где С е Мп, X е Еп.

На множестве Мп можно задать динами© Зубова А. Ф., Стрекопытова М. В., 2012

* Работа выполнена при поддержке Российского фонда фундаментальных исследований (РФФИ) (проект № 10-08-00624).