Научная статья на тему 'Организация эффективных полиморфных алгоритмов в сложных системах управления информацией'

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

CC BY
131
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОЛИМОРФИЗМ / POLYMORPHISM / РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ / RELATIONAL DATABASE / ИЕРАРХИЯ РЕЛЯЦИОННЫХ СУЩНОСТЕЙ / ДИНАМИЧЕСКОЕ СВЯЗЫВАНИЕ / DYNAMIC BINDING / МНОЖЕСТВЕННЫЙ КОНТЕКСТ ВЫПОЛНЕНИЯ / MULTIPLE DATA CONTEXT / HERARCHY OF RELATION ENTITIES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Левков А. А.

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

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

Building effective polymorphic algorithms in complex information management system

A method of polymorphic execution of the algorithms on multiple data context is suggested. The method allows us to construct efficient algorithms without duplicating code and can work seamlessly with relational data structures.

Текст научной работы на тему «Организация эффективных полиморфных алгоритмов в сложных системах управления информацией»

ПРИКЛАДНАЯ ИНФОРМАТИКА /-

' № 5 (35) 2011

А. А. Левков, канд. техн. наук, доцент Уфимского государственного авиационного технического университета

Организация эффективных полиморфных алгоритмов в сложных системах управления информацией

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

Введение

В настоящее время не существует таких областей человеческой деятельности, для управления которыми не использовались бы информационные системы. К ним относятся системы типа ERP, MRP, MES, WMS, CRM и их агрегации, которые особенно активно используются при управлении предприятиями [1, 2]. С ростом уровня информатизации общества эти системы все больше интегрируются друг с другом и представляют собой уже не изолированные информационные объекты, а единую информационную среду, отражающую и обеспечивающую деятельность предприятия.

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

ной организацией, получаемых с гетерогенных источников, современные СУИ должны производить сложную предварительную обработку данных, их согласование и на их основе формировать управленческие решения, затрагивающие множество различных объектов. Дополнительную трудность создает высокая динамика самих СУИ — в процессе постоянного развития находятся как положенные в их основу структуры данных, так и применяемые в них алгоритмы обработки данных. Это делает особенно актуальным вопрос реализации гибкой системы управления выполняемыми алгоритмами, которая должна исключать дублирование кода алгоритмов, обеспечивать возможность их легкого повторного использования и упрощать тестирование [3].

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

-n ПРИКЛАДНАЯ ИНФОРМАТИКА

№ 5 (35) 2011 '

<u w

SI &

■& % %

I

<u §

t

¡5 §

В

5

CO §

f! !S

IT

■I

>5 £

* §

I

-Q

S

S

<u

съ §

I

¡2 §

потери высокой производительности и реляционного формализма (как в процедурно-реляционных расширениях) [5].

Организация реляционной иерархии сущностей

Одной из наиболее существенных проблем, приводящих к дублированию кода в алгоритмах, является описательная природа языка запросов к БД (SQL). SQL требует явного определения имен отношений в запросе, это связано с тем, что SQL — язык высокого уровня, и запрос на нем компилируется на язык более низкого уровня, что позволяет эффективно выполнять сложные запросы и не требует явного указания разработчиком способа навигации в БД. Данное требование делает невозможным создание макроописания алгоритмов, позволяющих определять универсальные действия над подобными отношениями. Предположим, есть }, С2(а1с2, а22...}, такие, af (семантически тождественные атрибуты). Тогда могут существовать алгоритмы p1, p2 определенные на a(c1 и ac2, соответственно, т. е. p1 = p2. Реляционные СУБД не предоставляют возможности объявления и использования едино-

отношения C1(a1c1, a^1. что существуют a(c1 е

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

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

Общий вид данной структуры представлен на рис. 1.

Рис. 1. Общий вид иерархической организации реляционных сущностей

№ 5 (35) 2011

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

Еи =

AEu = ■

если 3 Епред, то E E pk еы

q пред

[еСЛИ 3 Епред , Т0 AE

I Ае ^ AEfui

I Е пред

Как видно из выражений, кортежи полной сущности определяются как пересечение кортежей всех сущностей в ветви наследования по первичным ключам, тогда как атрибуты полной сущности определяются как объединение всех атрибутов всех сущностей в ветви наследования. Т. е.

PK,

PK,

CU = (fíoot^(C12^(C1),

q

q

AC1 U = ARoot U AC12 U AC1 .

Используя предложенные правила преобразования, можно осуществить прозрачную трансляцию реляционных структур данных из классической формы в иерархическую, что создает основу для построения полиморфных алгоритмов, реализующих гибкое, контекстно-зависимое поведение системы СУИ. Следует отметить, что использование иерархической организации реляционной схемы данных не только позволяет формулировать универсальные алгоритмы обработки данных, но и делает невозможным создание семантически эквивалентных алгоритмов в одной ветви иерархии. Иначе говоря, для иерархической организации реляционных сущностей справедливо утверждение: если р1 = р2, то р1 = р2.

Полиморфизм и множественный контекст данных

Важной особенностью сложных СУИ является их ориентация на массовую обработ-

ку данных: специфика работы современных СУИ такова, что данные обрабатываются большими пакетами — алгоритмы обрабатывают одновременно множество гомоморфных данных. Это типично для работы всех реляционных систем: операции выполняются не над кортежами (строками), а над отношениями (множествами кортежей). Именно массовая обработка данных и делает реляционные системы более эффективными по сравнению с системами, в которых реализован принцип прямой навигации: для изолированной обработки пары связных сущностей С1, С2 (представленных в виде B-де-рева) нужно выполнить Om = C + |C2| I/Os операций ввода/вывода, тогда как при массовой затрачивается только Om = C + |C2| I/Os операций [7, 8]. Все это делает массовую обработку данных единственно приемлемой в сложных СУИ.

Таким образом, для работы в СУИ необходимо реализовать способ организации множественного контекста выполнения алгоритма. Если при объектном подходе контекст создается ссылкой на область памяти, содержащей объект, то в случае СУИ основой хранения данных выступает РБД, объем которой существенно превышает объем доступной оперативной памяти, кроме того РБД оперирует собственными абстракциями и не предоставляет средств прямого доступа к данным.

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

S

129

-\ ПРИКЛАДНАЯ ИНФОРМАТИКА

№ 5 (35) 2011 '

£ I

С §

i <ъ

i

si

¡S §

I

is

§

!S f

t &

I £

■st w

со §

e §

определение должно быть более жестким, но не противоречащим классическому реляционному определению: ПК любого отношения в БД должен быть суррогатным, атомарным и уникальным в пределах всей БД. Такое определение позволяет однозначно идентифицировать кортеж и не приводит к появлению омонимов (следует отметить, что обратная задача в этом контексте не выполняется — по кортежу нельзя определить отношение). Используя данное определение, можно сконцентрировать все ПК в одной сущности, являющейся корневой для всей БД (сущность Root на рис. 1).

Чтобы определить множественный контекст выполнения алгоритмов, недостаточно сформировать ссылку на один объект (кортеж): необходимо сформировать ссылку на множество объектов (кортежей). Таким образом, в иерархической реляционной системе стек может быть определен как служебное отношение Stack (stack_id, contextjd), где context_id является ссылкой на ПК корневой сущности в иерархии, содержащее множество ПК, формирующих множественный контекст выполнения алго-

ритма, а stackJd — идентификатором множественного контекста. Такая структура позволяет использовать стандартизированную передачу единственного параметра stack_ Ш каждому алгоритму, осуществив выборку по которому, возможно установить полный контекст выполнения.

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

В указанном примере при вызове алгоритма т1 на сущности С12 в реальности должен произойти мультивызов: на кортежах

Рис. 2. Множественный вызов в иерархической реляционной структуре

№ 5 (35) 2011

Л

Л

Рис. 3. Введение типизации кортежей в иерархической реляционной модели

сущности C1 должен реально произойти вызов алгоритма ml', а на кортежах сущности C2 — вызов алгоритма ml".

Для реализации концепции полиморфизма при множественном контексте данных требуется разработка оригинального механизма динамического связывания, способного работать с реляционной параметризацией и обрабатывать мультивызо-вы. Основным препятствием осуществлению множественного вызова является отсутствие решения обратной задачи идентифицирования кортежей — определения отношения по кортежу. Для решения этой задачи в настоящей работе предлагается ввести дополнительный атрибут на уровне корня дерева наследования, указывающего на «лист» в дереве наследования сущностей, содержащий данный ПК. То есть предлагается реализовать не только метаописа-ние данных, но и прямую связь между данными и метаданными, как показано на рис. 3 (пунктирной линией выделена связь мно-гие-к-одному, реализующая прямую связь данных и метаданных: сущность Entity хранит информацию обо всех сущностях в БД, т. е. описывает метаданные).

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

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

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

131

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

№ 5 (35) 2011

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

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

1. Демидов В. М. Интеграция систем MES и ERP на промышленном предприятии // Автоматизация в промышленности. 2008. № 9. С. 27 - 31.

2. Александров А. Г., Трошин Ю. В. Анализ бизнес-процессов подразделения предприятия в интересах внедрения корпоративной информационной системы с целью повышения эффективности и качества управления // Инфокоммуникаци-онные технологии. 2009. № 1. С. 63 - 67.

3. Махортов С. Д. LP-структуры на решетках типов и некоторые задачи рефакторинга // Программирование. 2009. № 4. С. 5 - 14.

4. Махортов С. Д. Методы исследования и преобразования иерархий типов на основе логических структур // Вестник Воронежского государственного университета. Серия «Системный анализ и информационные технологии». 2006. № 2. С. 24 - 27.

5. Тимофеев Д. В. Использование свойств операции реляционной алгебры для оптимизации вычисления выражений // Труды СПИИРАН. 2007. № 4. С. 136 - 147.

6. Дейт К. Дж. Введение в системы баз данных. 8-е изд. М.: Вильямс, 2006. С. 437 - 457.

7. Patel J. M., Dewitt D. J. Partition based spatial-merge join // ACM SIGMOD International Conference on Management of Data, 1996. С. 259 - 270.

8. Ramasamy K., Patel J. M., Naughton J. F., Kaushik R. Set containment joins: The good, the bad and the ugly // Proceedings of VLDB Endowment. 2000. С. 351-363.

132 j

Определение набора сущностей гетерогенного контекста

Цикл по сущностям

Формирование гомогенного субконтекста

> г

'S

ÎI

I t Ii S t

I Й

I

I «

« о

s !

«

! с

I

<u

sil I I

Выполнение полиморфного метода-потомка на гомогенном субконтексте

Цикл по сущностям

Рис. 4. Блок-схема алгоритма мультивызова

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

Заключение

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

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