Типичным представителем (наиболее известным и распространенным) является Information Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г. До сих пор поддерживается много баз данных, что создает существенные проблемы с переходом как на новую технологию БД, так и на новую технику.
1. Иерархические структуры данных. Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из упорядоченного набора нескольких экземпляров одного типа дерева.
Тип дерева состоит из одного "корневого" типа записи и упорядоченного набора из нуля или более типов поддеревьев (каждое из которых является некоторым типом дерева). Тип дерева в целом представляет собой иерархически организованный набор типов записи.
Рис. 3.1 Пример типа дерева (схемы иерархической БД) [3]:
Здесь “Отдел” является предком для “Начальник” и “Сотрудники”, а “Начальник” и “Сотрудники” - потомки “Отдел”. Между типами записи поддерживаются связи.
База данных с такой схемой могла бы выглядеть следующим образом (мы показываем один экземпляр дерева):
Рис. 3.2. Пример схемы базы данных [3]
Все экземпляры данного типа потомка с общим экземпляром типа предка называются близнецами. Для БД определен полный порядок обхода - сверху вниз, слева направо.
2. Манипулирование данными. Примерами типичных операторов манипулирования иерархически организованными данными могут быть следующие:
· Найти указанное дерево БД (например, отдел 310);
· Перейти от одного дерева к другому;
· Перейти от одной записи к другой внутри дерева (например, от отдела - к первому сотруднику);
· Перейти от одной записи к другой в порядке обхода иерархии;
· Вставить новую запись в указанную позицию;
· Удалить текущую запись.
3. Ограничения целостности. Автоматически поддерживается целостность ссылок между предками и потомками. Основное правило: никакой потомок не может существовать без своего родителя. Заметим, что аналогичное поддержание целостности по ссылкам между записями, не входящими в одну иерархию, не поддерживается (примером такой "внешней" ссылки может быть содержимое поля “Каф_Номер” в экземпляре типа записи “Куратор”).
В иерархических системах поддерживалась некоторая форма представлений БД на основе ограничения иерархии. Примером представления приведенной выше БД может быть иерархия, показанная на рисунке 3.3.