Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по серверам.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
749 Кб
Скачать
    1. Моделирование отношений 1:м на файловых структурах

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

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

В этом случае связываются 2 файла, например, Ф1 и Ф2, причем предполагается, что одна запись в файле Ф1 может быть связана с несколькими записями в файле Ф2. При этом файл Ф1 в этом комплексе условно называется основным, а файл Ф2 – подчиненным. Структура основного файла может быть представлена в виде 3 областей:

Ключ

Запись

Ссылка-указатель на первую запись в подчиненном файле, с которой начинается цепочка записей файла Ф2, связанных с данной записью в файле Ф1

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

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

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

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

Содержимое записи

В качестве примера рассмотрим связь между таблицами Преподаватели и Занятия.

Преподаватели

Ф1

Номер записи

Ключ и остальная запись

Указатель

1

Иванов И.И.

1

2

Петров П.П.

3

Занятия

Ф2

Номер записи

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

Содержимое записи

1

4

Моделирование

2

-

Вычислительные сети

3

6

Исследование операций

4

5

ЭВМ и программирование

5

-

Модели данных и СУБД

6

-

Преподаватель Иванов ведет Моделирование, ЭВМ и программирование, Модели данных и СУБД. Запись № 5 – последняя в этой цепочке, так как она не имеет указателя на следующую записью.

Алгоритм поиска нужных записей подчиненного файла:

  • Ищем запись в основном файле в соответствии с ее организацией. Если требуемая запись найдена, то переходим к шагу 2, в противном случае выводим сообщение об отсутствии записи основного файла.

  • Анализируем указатель в основном файле. Если он пустой, это значит, что для этой записи нет связанной записи в подчиненном файле, выводим соответствующее сообщение. В противном случае переходим к следующему шагу.

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

  • Анализируем текущую запись на содержание. Если это искомая запись, то заканчиваем поиск, в противном случае переходим к шагу 5.

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

Использование цепочек позволяет эффективно организовывать модификацию взаимосвязанных файлов.