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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Сетевая модель данных

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

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

Набор данных имеет следующие свойства:

Набор данных есть поименованная совокупность связанных записей.

В каждом экземпляре набора данных имеется только один экземпляр записи владельца.

Экземпляр набора может содержать 0,1 или несколько записей-членов.

Набор данных считается пустым, если ни один экземпляр записи-члена не связан с соответствующим экземпляром записи владельца.

Экземпляр набора данных связан с записью владельца.

Тип набора предполагает логическую взаимосвязь 1:M между владельцем и членом набора.

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

Концепция сетевой модели данных связана с именем Ч. Бахмана, известного специалиста в области обработки данных, который оказал определяющее влияние на создание проекта DBTG CODASYL (1971 год). Сетевая модель данных является моделью объектов-связей, где допускаются только бинарные связи типа «многие-к-одному», что позволяет использовать для представления данных простую модель ориентированных графов. В некоторых определениях сетевой модели допускаются связи типа «многие-ко-многим», но требование бинарности связи остается в силе.

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

Для моделирования представления данных в сетевой модели используются следующие элементы данных:

простое поле (элемент данных, итем) — наименьшая единица структуры данных, имеет уникальное имя, размер и тип: (табельный номер служащего);

множественное поле (агрегат данных, периодическая группа) — поименованная совокупность простых полей или агрегатов; (простой агрегат: Дата = (день, месяц, год)), (составной агрегат: Организация = (наименование, адрес = (почтовый_индекс, город, улица, дома_номер))), (повторяющаяся группа: зарплата (12) = (ФИО, оклад));

запись (группа данных) — поименованный агрегат, который не входит в состав никакого другого агрегата и представляет сущность ПО БД (тип записи);

групповое отношение (связь, набор) — иерархическое отношение между различными записями (графическое представление группового отношения в сетевой модели называется диаграммой Бахмана);

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

Источник

Читайте также:  Что такое сетевая модель компании
Оцените статью
Adblock
detector