Справочник от Автор24
Нужна помощь?
Найдем эксперта за 5 минут
Подобрать эксперта
+2

Сетевая модель

Срочно нужна работа?
Мы готовы помочь!
Найти эксперта

Структура данных сетевой модели

Большое влияние при разработке стандарта сетевой модели оказал американский ученый Ч. Бахман. Разработка основных принципов сетевой модели данных началась в середине 1960-х гг., а ее эталонный вариант в 1971 г. описала CODASYL (COnference on DAta SYstem Languages) – рабочая группа по языкам баз данных.

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

Замечание 1

Основным различием иерархической и сетевой модели является то, что в сетевой модели запись может являться членом более одного группового отношения. Каждое групповое отношение в сетевой модели имеет имя и различается его тип и экземпляр. Типом группового отношения определяются свойства, которые являются общими для всех экземпляров данного типа. Экземпляром группового отношения является запись-владелец и множество подчиненных записей, которое может быть пустым. При этом существует ограничение: экземпляр записи не может являться членом 2-х экземпляров групповых отношений одного типа (например, сотрудник не может быть работником двух отделов).

При организации сетевой структуры:

  • запись СОТРУДНИК содержится в двух групповых отношениях;
  • для отображения связи типа m:n вводят запись СОТРУДНИК_КОНТРАКТ, которая не содержит полей и существует лишь с целью связать записи КОНТРАКТ и СОТРУДНИК (рисунок 1). Следует отметить, что данная запись может хранить и полезную информацию (например, долю сотрудника в общем вознаграждении по заданному контракту).

У каждого экземпляра группового отношения имеются определенные признаки:

  1. Способ упорядочивания подчиненных записей:

    • произвольный;
    • сортированный;
    • хронологический (очередь);
    • обратный хронологический (стек).

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

  2. Режим включения подчиненных записей:

    • ручной, при котором подчиненная запись может быть запомнена в БД и не включена немедленно в экземпляр группового отношения. Эту операцию позже инициирует пользователь;
    • автоматический, при котором не представляется возможным занесение в БД записи без того, чтобы ее сразу же не закрепили за определенным владельцем.
  3. Режим исключения. Выделяют 3 класса членства подчиненных записей в групповых отношениях:

    • Обязательное. Переключение подчиненной записи на другого владельца допускается, но она не может существовать без владельца. Для того, чтобы удалить запись-владелец необходимо, чтобы она не имела подчиненные записи с обязательным членством. Такое отношение существует между записями СОТРУДНИК и ОТДЕЛ. В случае расформирования отдел всех его сотрудников необходимо перевести в другие отделы или уволить.
    • Необязательное. Исключение записи из группового отношения возможно при сохранении ее в базе данных без прикрепления к другому владельцу. При удалении записи-владельца происходит сохранение в базе ее подчиненных записей (необязательных членов), которые больше не участвуют в групповом отношении этого типа. Пример необязательного группового отношения: ВЫПОЛНЯЕТ между записями СОТРУДНИКИ и КОНТРАКТ, т.к. на предприятии могут работать сотрудники, которые не выполняют какие-либо договорные обязательства перед заказчиками.
    • Фиксированное. Жесткая связь подчиненной записи с записью-владельцем и ее возможно исключить из группового отношения лишь при удалении. При удалении записи-владельца происходит автоматическое удаление всех ее подчиненных записей. Пример фиксированного членства: групповое отношение ЗАКЛЮЧАЕТ между записями КОНТРАКТ и ЗАКАЗЧИК, т.к. контракт не существует без заказчика.

Операции над данными в сетевой модели

Добавление – внесение записи в базу данных и, в зависимости от режима включения, или включение ее в групповое отношение, где она является подчиненной, или не включение ни в какое групповое отношение.

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

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

Обновление – изменение значения элементов предварительно извлеченной записи.

Извлечение – извлечение записи последовательно по значению ключа и при использовании групповых отношений:– от записи-владельца можно перейти к записям-членам, а от подчиненной записи – к владельцу.

Удаление – удаление записи из базы данных. Если запись – это владелец группового отношения, то происходит анализ класса членства подчиненных записей. Обязательные члены необходимо предварительно исключить из группового отношения, фиксированные – удалить вместе с владельцем, необязательные останутся в базе данных.

Исключение из группового отношения – разрыв связи между записью-владельцем и записью-членом.

Ограничения целостности

Подобно иерархической модели обеспечивается только поддержание целостности по ссылкам (владелец – член).

Дата написания статьи: 27.07.2016