В сетевых моделях связи могут устанавливаться произвольным образом. Кроме того в них допускаются связи М:М. Однако этот тип связей несет неопределенность соответствия записей. Этот тип связей показывает только характер соответствия записей, но не может быть использован для получения ответов на запросы. Проблемы, связанные с применением этого типа связей рассмотрим на следующем примере.
На машиностроительных, мебельных производствах часто решается задача разузлования, концептуальная модель БД которой имеет следующий вид.
Смысл модели состоит в следующем. Предприятие выпускает некоторые изделия, которые состоят из узлов. В свою очередь узлы состоят из деталей. При этом в каждое изделие входят несколько узлов, в то же время каждый узел может входить в несколько изделий. Такая же взаимосвязь между узлами и деталями.
Для того, чтобы представить проблемы этой модели, рассмотрим поэкземплярную схему базы данных.
Связи между экземплярами показывают: какие узлы входят в изделия и из каких деталей они состоят. Цифры рядом со связями показывают количество вхождений одних элементов в другие. Они называются данными пересечения. В рассматриваемой модели размещение данных пересечения является проблемой. Действительно, если поместить данные пересечения в запись об изделии, то для каждого экземпляра записи нужно будет иметь количество элементов (атрибутов) соответствующее числу узлов, входящих в изделие. Поскольку в каждое изделие входит разное количество узлов, то атрибутов в них должно быть переменное количество. Но структура записи не может быть переменной. Если оставить размещение данных пересечения в записях об изделии, то количество атрибутов под них надо брать по максимуму, а это ведет к большому перерасходу памяти. Такая же ситуация возникает, если попытаться разместить данные пересечения в записях об узлах.
Для решения этой проблемы необходимо преобразовать исходную модель к следующему виду.
В ней введены дополнительные записи, связанные с существовавшими связями М:1. В соответствии с этой моделью каждой записи об изделиях соответствует столько записей с данными пересечения «изделие-узел», сколько узлов в нем содержится. Каждой записи об узлах соответствует столько записей с данными пересечения «изделие-узел», во сколько изделий входит данный узел. Та же логика и в связях между узлами и деталями.
Таким образом из исходной модели удалены связи М:М и найдена возможность размещения данных пересечения с минимальной избыточностью хранения данных.