Материалы, подготовленные в результате оказания услуги, помогают разобраться в теме и собрать нужную информацию, но не заменяют готовое решение.

Статью подготовили специалисты образовательного сервиса Zaochnik.

Сетевая модель данных: групповые отношения, операции и целостность

Содержание:

Сетевая модель данных: операции и целостность

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

Как появилась сетевая модель

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

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

Определение 1

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

Чем сетевая модель отличается от иерархической

Разница между двумя моделями кроется в одном, но решающем моменте.

Замечание 1

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

Каждое групповое отношение имеет собственное имя, а также различается по типу и экземпляру. Тип группового отношения задаёт свойства, общие для всех его экземпляров. Экземпляр же — это конкретная запись-владелец вместе с набором подчинённых записей, причём этот набор может оказаться и пустым.

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

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

Признаки экземпляра группового отношения

У каждого экземпляра группового отношения есть определённый набор признаков, которые задают его поведение.

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

Подчинённые записи внутри отношения можно упорядочивать по-разному:

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

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

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

Здесь возможны два варианта:

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

Режим исключения и классы членства

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

Определение 2

Класс членства — это правило, задающее, насколько жёстко подчинённая запись привязана к своему владельцу и может ли она существовать без него.

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

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

Работа с данными в сетевой модели опирается на набор чётко определённых операций.

  • Добавление — внесение записи в базу. В зависимости от режима включения запись либо сразу попадает в групповое отношение как подчинённая, либо не включается ни в какое отношение.
  • Включение в групповое отношение — связывание уже существующей подчинённой записи с записью-владельцем.
  • Переключение — перенос существующей подчинённой записи к другому владельцу в рамках того же группового отношения.
  • Обновление — изменение значений элементов предварительно извлечённой записи.
  • Извлечение — последовательное получение записи по значению ключа, а также при помощи групповых отношений: от владельца можно перейти к членам, а от подчинённой записи — обратно к владельцу.
  • Удаление — удаление записи из базы. Если удаляемая запись является владельцем группового отношения, анализируется класс членства её подчинённых. Обязательных членов предварительно исключают из отношения, фиксированных — удаляют вместе с владельцем, а необязательные остаются в базе.
  • Исключение из группового отношения — разрыв связи между записью-владельцем и записью-членом.

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

В завершение стоит сказать о том, как сетевая модель следит за корректностью связей.

Подобно иерархической модели, сетевая обеспечивает только поддержание целостности по ссылкам — то есть корректность связей «владелец — член». Более сложные виды контроля целостности в рамках самой модели не предусмотрены, и заботиться о них приходится на уровне приложения. Это одновременно и упрощает саму модель, и перекладывает часть ответственности за согласованность данных на разработчика.

Навигация по статьям

Выполненные работы по базам данных

  • Базы данных

    Тема Цифровой атлас мифологических персонажей

    • Вид работы:

      Курсовая работа

    • Выполнена:

      10 июня 2026

    • Стоимость:

      11 300 руб.

    Заказать такую же работу
  • Базы данных

    Проектирование информационной системы Автоматизация деятельности Разработка прототипа информационной системы

    • Вид работы:

      Исправление и доработка готовой работы

    • Выполнена:

      6 июня 2026

    • Стоимость:

      4 300 руб.

    Заказать такую же работу
  • Базы данных

    Программирование и разработка базы данных на примере предметной области Прокат товаров

    • Вид работы:

      Курсовая работа

    • Выполнена:

      21 мая 2026

    • Стоимость:

      8 600 руб.

    Заказать такую же работу
  • Базы данных

    продолжение проектной работы

    • Вид работы:

      Лабораторная работа

    • Выполнена:

      30 марта 2026

    • Стоимость:

      13 700 руб.

    Заказать такую же работу
  • Базы данных

    Проектирование и поставка на сервер базы данных для предметной области Управление продажами канцтоваров

    • Вид работы:

      Курсовая работа

    • Выполнена:

      24 марта 2026

    • Стоимость:

      10 200 руб.

    Заказать такую же работу
  • Базы данных

    Системы обработки больших данных Big Data

    • Вид работы:

      Практическая работа

    • Выполнена:

      2 февраля 2026

    • Стоимость:

      1 300 руб.

    Заказать такую же работу