Базы данных - модели, разработка, реализация

       

Моделирование отношения 1:М с использованием однонаправленных указателей


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

Рис. 9.10. Иерархическая связь между файлами

При этом файл F1 в этом комплексе условно называется "Основным", а файл F2 - "зависимым" или "подчиненным". Структура основного файла может быть условно представлена в виде трех областей.

"Основной файл" F1.

Ключ Запись Ссылка - указатель на первую запись в "Подчиненном" файле, с которой начинается цепочка записей файла F2, связанных с данной записью файла F1

178

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

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

Структура записи "подчиненного" файла.



Указатель на следующую запись в цепочке Содержимое записи

В качестве примера рассмотрим связь между преподавателями и занятиями, которые эти преподаватели проводят. В файле F1 приведен список преподавателей, а в файле F2 - список занятий, которые они ведут.

F1
Номер записи Ключ и остальная запись Указатель
1 Иванов И. Н. ... 1
2 Петров А. А. 3
3 Сидоров П. А. 2
4 Яковлев В. В.  

F2
Номер записи Указатель на следующую запись в цепочке Содержимое записи
1 4 4306 Вычислительные сети
2 - 4307 Контроль и диагностика
3 6 4308 Вычислительные сети
4 5 84305 Моделирование
5 - 4309 Вычислительные сети
6 - 84405 Техническая диагностика
7 -  

В этом случае содержимое двух взаимосвязанных файлов F1 и F2 может быть расшифровано следующим образом: первая запись в файле F1 связана с цепочкой записей файла F2, которая начинается с записи номер 1, следующая запись номер 4 и последняя запись в цепочке - запись номер 5. Последняя - потому что пятая запись не имеет ссылки на следующую запись в цепочке. Аналогично можно расшифровать и остальные связи. Если мы проведем интерпретацию данных связей на уровне предметной области, то можно утверждать, что преподаватель Иванов ведет предмет " Вычислительные сети" в группе 4306, "Моделирование" в группе 84305 и "Вычислительные сети" в группе 4309.

Аналогично могут быть расшифрованы и остальные взаимосвязанные записи.

179



Содержание раздела