Каждый экземпляр группового отношения характеризуется следующими признаками:
· способ упорядочения подчиненных записей:
o произвольный,
o хронологический /очередь/,
o обратный хронологический /стек/,
o сортированный.
Если запись объявлена подчиненной в нескольких групповых отношениях, то в каждом из них может быть назначен свой способ упорядочивания.
· режим включения подчиненных записей:
o автоматический - невозможно занести в БД запись без того, чтобы она была сразу же закреплена за неким владельцем;
o ручной - позволяет запомнить в БД подчиненную запись и не включать ее немедленно в экземпляр группового отношения. Эта операция позже инициируется пользователем).
· режим исключения Принято выделять три класса членства подчиненных записей в групповых отношениях:
1. Фиксированное. Подчиненная запись жестко связана с записью владельцем и ее можно исключить из группового отношения только удалив. При удалении записи-владельца все подчиненные записи автоматически тоже удаляются. В рассмотренном выше примере фиксированное членство предполагает групповое отношение "ЗАКЛЮЧАЕТ" между записями "КОНТРАКТ" и "ЗАКАЗЧИК", поскольку контракт не может существовать без заказчика.
2. Обязательное. Допускается переключение подчиненной записи на другого владельца, но невозможно ее существование без владельца. Для удаления записи-владельца необходимо, чтобы она не имела подчиненных записей с обязательным членством. Таким отношением связаны записи "СОТРУДНИК" и "ОТДЕЛ". Если отдел расформировывается, все его сорудники должны быть либо переведены в другие отделы, либо уволены.
3. Необязательное. Можно исключить запись из группового отношения, но сохранить ее в базе данных не прикрепляя к другому владельцу. При удалении записи-владельца ее подчиненные записи - необязательные члены сохраняются в базе, не участвуя более в групповом отношении такого типа. Примером такого группового отношения может служить "ВЫПОЛНЯЕТ" между "СОТРУДНИКИ" и "КОНТРАКТ", поскольку в организации могут существовать работники, чья деятельность не связана с выполнением каких-либо договорных обязательств перед заказчиками.
Вот примерный набор операций манипулирования данными:
· найти конкретную запись в наборе однотипных записей (например, служащего с именем Иванов);
· перейти от предка к первому потомку по некоторой связи (например, к первому служащему отдела 625);
· перейти к следующему потомку в некоторой связи (например, от Иванова к Сидорову);
· перейти от потомка к предку по некоторой связи (например, найти отдел, в котором работает Сидоров);