Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИОСУ лекции (мои).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4.74 Mб
Скачать

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

Строится по рекомендациям CODASYL (конференция по символьным языкам).

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

  • Модель не накладывает ограничения на связи.

  • Узлы сети описывают типы объектов.

  • Дуги – связи между экземплярами разных типов.

В описании базы включается множество описаний типов, множество описаний связей.

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

Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка.

Для описания типа описывается структура записи этого типа.

Структура может быть линейной:

По минимуму надо хранить: имя, тип и размерность.

Описание связок:

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

Важный элемент описания связи – класс членства. Указывается для подчиненного типа. Для главного типа – указание связи не обязательно.

Три класса членства:

  1. Не обязательное членство: подчиненная запись не обязана иметь владельца.

  2. Обязательное членство: подчиненная запись обязана иметь владельца, но может его сменить.

  3. Фиксированное членство: подчиненная запись обязана иметь владельца и не может его сменить.

По соединениям типов разрешается:

  1. множественное владение:

  1. множественное членство:

  1. множественное связывание двух:

  1. рекурсивная (петлевая) связь:

По соединениям типов НЕ разрешается:

  1. Отношение "многие ко многим".

  2. Включение экземпляра в несколько связей из одного набора.

Связывание реализуется с помощью физических указателей:

Основной вариант – кольцо:

Сетевая модель базы при выборке работает медленнее, чем реляционная.

Пример: Найти сотрудника Иванова и найти его отпуска.

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

  • высокое быстродействие

  • компактность

Недостатки:

  • низкая надежность за счет возможности потери указателей.

  • "позаписная" работа, т.е. привыборке последовательно просматриваются все записи.

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

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

1) Операции с данными:

  • удалить

  • добавить

  • изменить

2) Операции со связями:

  • подключить

  • отключить

  • переключить

3) Навигация по данным:

  • переход на подчиненную

  • возможность перехода на следующую подчиненную

  • переход на владельца

Отличие сетевой структуры от иерархической заключается в том, что каждый элемент в сетевой структуре может быть связан с любым другим элементом (см. рис. 2.3). Пример простой сетевой структуры показан на рис. 2.4.

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

Недостатком сетевой модели данных являются высокая сложность и жесткость схемы БД, построенной на ее основе.

Наиболее известными сетевыми СУБД являются IDMS , db_VistaIII , СЕТЬ, СЕТОР и КОМПАС.

Простой пример сетевой схемы БД приведен на рис. 2.22.

Рис. 2.22. Пример схемы сетевой БД

Примерный набор операций при использовании сетевой модели может быть следующим [8].

  • Найти конкретную запись в наборе однотипных записей (инженера Петрова).

  • Перейти от предка к первому потомку по некою рой связи (к первому сотруднику отдела 42).

  • Перейти к следующему потомку в некоторой связи (от Петрова к Иванову).

  • Перейти от потомка к предку по некоторой связи (найти отдел Петрова).

  • Создать новую запись.

  • Уничтожить запись.

  • Модифицировать запись.

  • Включить в связь.

  • Исключить из связи.

  • Переставить в другую связь и т.д.