АДИТ-2002. Тезисы доклада
Тема: "Учетно-хранительские технологии"
Игнатьев Сергей Валерьевич
  Москва
  Главный информационно-вычислительный центр Минкультуры России
  ведущий программист
  Тел.: 261-8345
  E-mail: frommon@smtp.ru

Программный модуль для работы с иерархическими справочниками в реляционных базах данных (на примере АС «Музей-3»).

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

При переводе DOS-версии музейной системы АС «Музей-2» в графическую среду и в новый формат данных, на указанную проблему было обращено особое внимание. Опыт, накопленный во время создания учетной системы АС «Памятники», в которой так же остро стояла проблема использования и обработки данных, имеющих иерархическую структуру, был учтен при создании новой версии АС «Музей-3».

Для решения указанной проблемы был разработан специальный программный модуль «Иерархические справочники». Программный модуль предназначен для формирования и работы с иерархическими справочниками в среде MS Access. Под иерархическими справочниками подразумеваются таблицы со специальными полями, предназначенные для хранения данных, имеющих родовидовые отношения, а также пользовательский интерфейс для отображения и работы с хранимой в этих таблицах информацией. Классификационная схема музейных предметов, список административно территориальных единиц, справочник археологических эпох – только несколько примеров информации, которую можно оформить в виде иерархического справочника.

При создании этого модуля были учтены следующие требования:
1. Неограниченное число уровней иерархии;
2. Возможность внесения изменений в иерархическую структуру;
3. Возможность определения всех предков элемента иерархии. Под предками элемента подразумеваются элементы иерархии вышестоящих уровней, к которым относится данный элемент;
4. Возможность определения всех потомков элемента иерархии. Под потомками элемента подразумеваются все элементы иерархии, которые имеют отношение к данному элементу и располагаются одним или несколькими уровнями иерархии ниже;
5. Выполнение двух предыдущих действий без использования рекурсивных алгоритмов и по возможности на языке запросов.

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

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

1. Набор средств, позволяющих сформировать единый программный интерфейс для работы с множеством иерархических справочников и связанных с ними таблиц;
2. Тщательно разработанная объектная модель, содержащая множество полезных методов, которые позволяют просто и эффективно работать с иерархичными данными в программной среде;
3. Возможность отображения иерархичных данных в виде древовидной структуры, при этом, действия, которые требуются от разработчика для реализации этой возможности сведены к минимуму;
4. Набор специальных окон (окно “Поиск”, окно “Свойства”) и контекстных меню, обеспечивающих эффективную работу с иерархическими справочниками в древовидном представлении;
5. Динамическое изменение иерархии, включая добавление, удаление, изменение порядка и места в иерархии элементов справочника;
6. Неограниченное число уровней иерархии;
7. Автономное восстановление поврежденных справочников;
8. Набор специальных функций, упрощающих разработку сложных запросов на основе иерархических справочников и связанных с ними таблиц.

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

 

 
  © АДИТ, 1997-2002