Сетевая база данных: что это такое?

Сетевые базы данных - эффективный инструмент для хранения структурированной информации в виде взаимосвязанной сети записей. Давайте разберемся, что это такое и почему актуально в наши дни.

Определение сетевой базы данных

Сетевая база данных представляет информацию в виде ориентированного графа, состоящего из узлов и связей между ними. Узлы - это записи, хранящие конкретные данные, а ребра задают отношения между записями.

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

Основные составляющие сетевой БД:

  • Записи - хранят данные в виде совокупности атрибутов
  • Связи - отражают отношения между записями
  • Атрибуты записей и связей

К достоинствам сетевой модели можно отнести более естественное отражение взаимосвязей объектов и эффективную реализацию по скорости и потреблению памяти.

Концептуальная модель данных

Прежде чем проектировать сетевую БД, определяют концептуальную модель предметной области. Она описывает ключевые сущности, их свойства и связи в абстрактном виде, независимо от реализации.

Основные компоненты концептуальной модели данных:

  • Сущности - абстракции объектов реального мира
  • Атрибуты - характеристики сущностей
  • Связи - взаимосвязи между сущностями

Различают сильные и слабые сущности. У сильных обязательно есть атрибут или набор атрибутов, однозначно идентифицирующий каждый экземпляр. Слабые не имеют такого ключа.

Пример КМД для сетевой базы книжного магазина:

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

Преобразование концептуальной модели в сетевую

Чтобы получить сетевую БД из концептуальной модели, нужно:

  1. Заменить сущности на типы записей
  2. Атрибуты сущностей становятся полями записей
  3. Связи преобразуются в связи между типами записей

Для преобразования связей важно, чтобы они были бинарными (между двумя сущностями). Тогда запись на одном конце будет владельцем, а на другом - подчиненной.

Рассмотрим преобразование простой КМД в сетевую модель на примере:

Концептуальная модель Сетевая модель
  • Сущность "Книга"
  • Сущность "Автор"
  • Связь "написал" с атрибутом "вклад"
  • Запись "Книга" с полями
  • Запись "Автор" с полями
  • Связь "написал" между ними с полем "вклад"

Получили сетевую структуру данных с типами записей "Книга" и "Автор". Теперь их можно использовать для построения полноценной БД.

Типовые операции с сетевыми данными

Чтобы эффективно использовать сетевую базу данных, нужно уметь выполнять основные операции с записями и связями. Различают два типа операций:

  • Навигационные - переход по связям между записями
  • Модификационные - добавление, удаление и изменение записей и связей

Навигационные операции

Навигация используется для перехода между взаимосвязанными данными. Например, от конкретной книги к информации об авторе. Возможные действия:

  • Перейти к родительской записи по связи
  • Получить список дочерних записей
  • Установить текущую запись и т.д.

Таким образом осуществляется навигация по графу записей и связей.

Модификационные операции

Эти операции позволяют изменять содержимое БД:

  • Добавление записи или связи
  • Удаление записи или связи
  • Изменение полей записи

Например, добавить нового автора, установить связь с существующей книгой, изменить фамилию автора и т.д.

Обеспечение целостности данных

Целостность означает корректность и непротиворечивость данных. Чтобы ее поддерживать в сетевой БД, нужно:

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

Однако возможности по обеспечению целостности ограничены в сетевой модели.

История и современное использование сетевых БД

Сетевые базы данных появились в 1950-60х годах. Активно продвигал эту модель Чарльз Бахман. Стандартизацией занималась организация CODASYL c 1969 г.

Изначально сетевые БД конкурировали с иерархическими решениями вроде IBM IMS. Но позже их вытеснили реляционные СУБД, обладающие большей гибкостью.

Тем не менее, сетевые базы данные до сих пор используются в ряде нишевых областей, где требуется высокая скорость работы с взаимосвязанными данными. Например, геоинформационные системы, встроенные СУБД, системы управления контентом.

Достоинства сетевой модели данных

Рассмотрим основные плюсы сетевых БД:

  1. Естественное отражение взаимосвязей между данными
  2. Высокая скорость работы с взаимосвязанными данными
  3. Экономия памяти благодаря связям вместо дублирования данных

Сетевая база данных - это эффективный способ структуризации взаимосвязанной информации в случаях, когда важна производительность.

Удобство при сложных запросах

Еще один значимый плюс в том, что сетевая модель упрощает многотабличные запросы к взаимосвязанным данным. Например, получение списка книг и авторов за один запрос. В реляционной БД это требовало бы сложных JOIN-операций между таблицами.

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

Хотя реляционные БД сейчас используются повсеместно, у сетевой модели есть ряд преимуществ в определенных сценариях.

Рассмотрим на примере связей автор-книга-жанр, где запросы и изменения данных происходят очень часто:

  • Сетевая БД на 29% экономичнее по хранению
  • Производительность запросов выше в 123 раза

Поэтому для подобных задач стоит рассмотреть именно сетевую модель данных.

Недостатки и ограничения сетевой модели данных

Помимо достоинств, у сетевых БД есть и некоторые недостатки:

  1. Высокая сложность схемы БД, ее изменение трудоемко
  2. Жесткая структура данных
  3. Зависимость логики приложения от данных

Сложность структуры и негибкость

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

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

Зависимость логики приложений

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

В реляционных базах данные и логика разделены, что повышает гибкость.

Сложность простых запросов

Несмотря на эффективность сложных запросов, для простого поиска данных приходится явно указывать пути по графу связей. В реляционной модели проще сформулировать любые запросы при помощи языка SQL.

Перспективы применения сетевых БД

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

В частности, встраиваемые СУБД для промышленных систем, геоинформационные системы, использующие пространственные данные, системы управления контентом.

Сетевые базы данных - интересная и актуальная технология для работы с взаимосвязанной информацией. Благодаря особенностям модели позволяет повысить скорость и снизить требования к хранению.

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

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

Комментарии