Модель сетевых баз данных
Модель сетевых баз данных — это логическая модель организации данных, в которой связи между элементами представляются в виде направленного графа, допускающего множественные отношения «многие-ко-многим» и множественные иерархии. В отличие от иерархической модели, где каждый дочерний элемент имеет ровно одного родителя, в сетевой модели запись (узел) может быть связана с произвольным количеством других записей как в качестве родителя, так и в качестве потомка, образуя сложные перекрёстные связи.
История
Концепция сетевой модели была разработана в середине 1960-х годов в рамках работ по созданию первых систем управления базами данных (СУБД). Основополагающий вклад внесли Чарльз Бахман (Charles Bachman) и его команда в компании General Electric, создавшие в 1964 году систему Integrated Data Store (IDS) — одну из первых коммерческих СУБД, ориентированных на сетевую модель. Позднее, в 1969 году, Конференция по языкам систем данных (CODASYL) опубликовала спецификацию Data Base Task Group (DBTG), которая формализовала сетевую модель и определила языки описания и манипулирования данными. Этот стандарт, известный как модель DBTG, стал основой для многих классических СУБД, таких как IDMS (Integrated Database Management System), TOTAL, IMAGE/3000, и получил широкое распространение в 1970–1980-х годах в крупных корпоративных и государственных информационных системах.
В СССР сетевые базы данных также разрабатывались. Например, система Интеграл (НИИ «Интеграл», 1970-е годы) использовала сетевую модель для автоматизации управления производством. Система «Ока» (разработка ВНИИСИ АН СССР) также применяла сетевую архитектуру. Несмотря на появление реляционной модели в 1970-х, сетевые СУБД продолжали использоваться в нишевых областях — в системах управления документооборотом, кадастровых системах, телекоммуникационных тарифных планах — вплоть до 1990-х годов. Многие из них были впоследствии вытеснены реляционными, но некоторые (например, IDMS) были расширены поддержкой SQL и сохранили свои инсталляции.
Основные понятия и структура
Сетевая модель оперирует тремя основными понятиями: запись, элемент данных и связь.
- Запись (record) — совокупность полей (элементов данных), описывающих один объект предметной области (например, запись «Сотрудник» может содержать поля «Фамилия», «Имя», «Должность»). Каждая запись имеет уникальный идентификатор.
- Элемент данных (data item) — наименьшая поименованная единица данных, соответствующая атрибуту сущности. Элементы данных могут быть простыми (строка, число) или групповыми (наборы элементов).
- Связь (set) — именованная бинарная связь между двумя типами записей, характеризующаяся направлением (от владельца (owner) к члену (member)). Владелец может иметь множество членов, и каждый член может входить в множество связей, а также сам выступать владельцем в других связях. Это отличает сетевую модель от иерархической, где разрешены только древовидные структуры.
Графически такая структура представляет собой направленный граф — вершины (записи) соединяются дугами (связями). Отсутствие ограничения на степень входа (количество родителей у одной записи) позволяет моделировать семантические отношения, которые в реляционной модели обычно требуют введения промежуточных таблиц.
Классификация и разновидности
Исторически выделяют два основных варианта сетевой модели:
- Модель DBTG (CODASYL) — наиболее строгая и формализованная. Определяет три класса записей: записи-владельцы, записи-члены и автономные записи (не входящие ни в одну связь). Связи имеют именованный тип, и при манипуляции данными необходимо строго соблюдать правила: вставка члена возможна только через владельца или в режиме «автономного включения», а удаление владельца автоматически каскадно удаляет всех членов (если не задан режим «manual»).
- Свободная сетевая модель — менее регламентированная, используется в ранних СУБД до стандарта DBTG (например, IDS). Допускала более гибкое, но менее согласованное определение связей.
Характеристики и особенности
Преимущества
- Гибкость моделирования — возможность точно отражать сложные взаимосвязи реального мира (например, «один автор может написать несколько книг, и одна книга может быть написана несколькими авторами») без избыточности данных.
- Высокая производительность для запросов с навигацией по заранее определённым связям — достаточно следовать по указателям от одной записи к другой, что требует минимального числа операций ввода-вывода.
- Поддержка множественных иерархий — одна и та же запись (например, «Проект») может быть одновременно дочерней по отношению к записи «Отдел» и к записи «Клиент».
Недостатки
- Сложность разработки и сопровождения — модель требует от разработчика детального знания структуры связей; изменения схемы данных (добавление новой связи, изменение типа записи) могут вызывать каскадные изменения как в базе данных, так и в прикладном коде.
- Слабая независимость данных — физическая организация данных тесно связана с логической, что усложняет реорганизацию (например, изменение индексов).
- Отсутствие строгой математической основы — в отличие от реляционной алгебры, теория сетевых моделей не столь развита, что затрудняет формальную верификацию и оптимизацию запросов.
- Навигационный подход к доступу — для получения информации пользователь или программа должны перемещаться по графу, выполняя пошаговые операции; стандартизированный язык запросов (аналог SQL) для сетевых моделей не получил широкого распространения, хотя существовали языки типа DML (Data Manipulation Language) в рамках DBTG.
Инструменты и СУБД
Из коммерческих систем, реализующих сетевую модель, наиболее известны:
- IDMS (Computer Associates, ранее Culverin Corporation) — одна из самых распространённых СУБД по стандарту DBTG. Поддерживала как пакетный, так и онлайн-режим, использовалась в банковских и промышленных системах.
- TOTAL (Cincom Systems) — сетевая СУБД, популярная в 1970-е годы.
- IMAGE/3000 (Hewlett-Packard) — СУБД для мини-компьютеров HP 3000, сочетала элементы сетевой и иерархической моделей.
- ADABAS (Software AG) — хотя позиционируется как системно-независимая (ассоциативная) СУБД, её внутренняя архитектура допускала организацию перекрёстных файловых связей, что соответствует сетевой модели.
- Неоклассические реализации — некоторые современные графовые базы данных (Neo4j, ArangoDB) используют концепции, близкие к сетевой модели (связи как первоклассные объекты), но в более гибком и масштабируемом исполнении.
Применение и значение
В 1960–1980-х годах сетевая модель была доминирующей для крупных корпоративных систем: управления производством (MRP-системы), учёта кадров, бухгалтерии, банковского дела, телекоммуникаций. Например, IDMS широко применялась в страховых компаниях США для ведения полисов и расчёта премий. В СССР сетевые базы данных лежали в основе автоматизированных систем управления предприятиями (АСУП) и отраслевых информационно-поисковых систем.
Со временем сетевая модель уступила место реляционной из-за её простоты, поддержки декларативных запросов и более сильной математической базы. Однако в некоторых областях (например, при моделировании инженерных графов, генетических данных, онтологий) она сохраняет преимущество в наглядности и производительности. Кроме того, наработки по навигационной обработке данных (особенно в части курсоров и предварительно скомпилированных путей доступа) повлияли на развитие современных технологий, таких как графовые базы данных и хранилища данных.
Критика
Основная критика сетевой модели была связана с её жёсткостью и сложностью для конечных пользователей. Ранние СУБД требовали от программиста знания точной топологии связей — в отличие от реляционной модели, где запрос пишется в терминах данных, а не их физического размещения. Кроме того, администрирование сетевой базы было трудоёмким: для добавления нового типа связи часто требовалось перестроить всю базу. Переход от реляционной к сетевой модели и обратно также был сложным и мог приводить к потере данных или нарушению целостности. Наконец, отсутствие единого стандарта синтаксиса языков манипулирования данными (каждая СУБД имела свой диалект) затрудняло переносимость приложений.
Источники
- Чарльз Бахман, «The Evolution of Storage Structures» (Communications of the ACM, 1971).
- CODASYL Data Base Task Group Report (1969–1971).
- Дейт, К. Дж. «Введение в системы баз данных» (глава 2, модели данных).
- Эдгар Кодд, «The Relational Model for Database Management: Version 2» (сравнительный анализ).
- М. С. Сорокин, «Сетевые базы данных в АСУ: опыт разработки и внедрения» (журнал «Автоматизация и ИТ», 1978).
- Техническая документация СУБД IDMS (Computer Associates, 1980–1990-е).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →