В этом случае связываются два файла, например F1 и F2, причем предполагается, что одна запись в файле F1 может быть связана с несколькими записями в файле F2. Условно это можно представить в виде, изображенном на рис. 9.10.
Рис. 9.10. Иерархическая связь между файлами
При этом файл F1 в этом комплексе условно называется «Основным», а файл F2 — «зависимым» или «подчиненным». Структура основного файла может быть условно представлена в виде трех областей.
«Основной файл» F1.
Ключ | Запись | Сcылка-указатeль на первую запись в «Подчиненном» файле, с которой начинается цепочка записей файла F2, связанных с данной записью файла F1 |
В подчиненном файле также к каждой записи добавляется специальный указатель, в нем хранится номер записи, которая является следующей в цепочке записей «подчиненного» файла, связанной с одной записью «основного» файла.
Таким образом, каждая запись «подчиненного файла» делится на две области: область указателя и область, содержащую собственно запись.
Структура записи «подчиненного» файла.
|
|
Указатель на следующую запись в цепочке | Содержимое записи | ||
В качестве примера рассмотрим связь между преподавателями и занятиями, которые эти преподаватели проводят. В файле F1 приведен список преподавателей, а в файле F2 — список занятий, которые они ведут.
F1 | ||||
Номер записи | Ключ и остальная запись | Указатель | ||
Иванов И. Н.... | ||||
Петров А. А. | ||||
Сидоров П. А. | ||||
Яковлев В. В. | ||||
F2 | ||||
Номер записи | Указатель на следующую запись в цепочке | Содержимое записи | ||
4306 Вычислительные сети | ||||
- | 4307 Контроль и диагностика | |||
4308 Вычислительные сети | ||||
84305 Моделирование | ||||
- | 4309 Вычислительные сети | |||
- | 84405 Техническая диагностика | |||
- | ||||
В этом случае содержимое двух взаимосвязанных файлов F1 и F2 может быть расшифровано следующим образом: первая запись в файле F1 связана с цепочкой записей файла F2, которая начинается с записи номер 1, следующая запись номер 4 и последняя запись в цепочке — запись номер 5. Последняя — потому что пятая запись не имеет ссылки на следующую запись в цепочке. Аналогично можно расшифровать и остальные связи. Если мы проведем интерпретацию данных связей на уровне предметной области, то можно утверждать, что преподаватель Иванов ведет предмет «Вычислительные сети» в группе 4306, «Моделирование» в группе 84305 и «Вычислительные сети» в группе 4309.
|
|
Аналогично могут быть расшифрованы и остальные взаимосвязанные записи.