Открыть сервис

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

Сетевая модель данных — это логическая модель представления данных, основанная на графовой структуре, в которой данные организованы в виде множества записей (узлов), соединённых между собой связями (рёбрами), допускающими произвольную кратность и направление. В отличие от иерархической модели, где каждый дочерний элемент имеет только одного родителя, сетевая модель позволяет записи иметь несколько родительских и дочерних записей, что обеспечивает более гибкое отображение сложных взаимосвязей реального мира. Модель была формализована в 1969 году в рамках стандарта CODASYL (Conference on Data Systems Languages) и стала одной из первых альтернатив иерархической модели, широко применявшейся в базах данных 1970–1980-х годов.

История

Предпосылки возникновения

В 1960-х годах доминирующей моделью данных была иерархическая, реализованная, например, в системе IMS (IBM). Однако она не могла эффективно описывать ситуации, где объект (например, сотрудник) участвует в нескольких иерархиях одновременно (отдел, проект, подразделение). Это ограничение стимулировало поиск более универсальных структур.

Разработка стандарта CODASYL

В 1965 году в рамках комитета CODASYL была сформирована группа Data Base Task Group (DBTG), которая к 1969 году опубликовала первый отчёт, содержащий спецификацию сетевой модели данных. В 1971 году вышла уточнённая версия, ставшая основой для большинства реализаций. Модель CODASYL предусматривала три уровня абстракции: схему (общее описание базы данных), подсхемы (представления для приложений) и физическое хранение.

Коммерческие реализации

Наиболее известные системы управления базами данных (СУБД), поддерживавшие сетевую модель:

К концу 1980-х годов сетевая модель была вытеснена реляционной моделью (Codd, 1970) благодаря её математической строгости, простоте запросов (SQL) и независимости от физического хранения.

Основные понятия

Запись (record)

Запись — это совокупность полей (атрибутов), описывающих сущность. Каждая запись имеет уникальный идентификатор (ключ) и может принадлежать к одному или нескольким типам записей.

Связь (set)

Связь — это именованное отношение между двумя типами записей, определяющее направление от «владельца» (owner) к «члену» (member). В отличие от иерархической модели, один и тот же тип записи может быть членом нескольких связей и владельцем других. Связи могут быть:

Графовая структура

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

Навигационный доступ

Доступ к данным осуществляется путём навигации по графу: программа последовательно переходит от записи к записи по связям, используя указатели (например, «следующий член набора»). Это требовало от разработчиков знания физической структуры базы данных.

Классификация

По типу связей

По способу реализации

Структура и устройство

Схема базы данных

Схема определяет типы записей, типы связей и их атрибуты. Например, для учебной базы «Университет»:

Физическое хранение

Записи хранятся в файлах, а связи реализуются через цепочки указателей (например, однонаправленные или двунаправленные списки). Для ускорения доступа могли использоваться индексы.

Язык манипулирования данными

Стандарт CODASYL определял язык DML (Data Manipulation Language), включающий команды:

Запросы выполнялись в процедурном стиле, шаг за шагом.

Применение

Области использования

В 1970–1980-х годах сетевая модель применялась в:

Примеры

Преимущества и недостатки

Преимущества

Недостатки

Сравнение с другими моделями

С иерархической моделью

С реляционной моделью

С графовой моделью (современной)

Интересные факты

Критика

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

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →