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

СУБД, реализующие сетевую модель данных, появились почти одновременно с иерархическими СУБД. Обычно их оформление в виде отдельной ветви СУБД связывают с работой Data Base Task Group (DBTG), частью организации CODASYL (COnference on DAta SYstems Languages), отчет которой был опубликован в 1971 году. Вскоре после его опубликования и появилось несколько СУБД, реализующих архитектуру CODASYL, в том числе, существующая до настоящего времени СУБД IDMS (принадлежит компании Computer Associates и продается под наименованием CA IDMS/DB).

Сетевую модель данных можно считать расширением иерархической модели. Если в последней у записи-потомка может иметься только один предок, то в сетевой – произвольное количество. Сама СУБД представляет собой наборы экземпляров каждого типа записи из числа заданных в БД наборов типов записей, и наборы экземпляров каждого из наборов типов связи (для простоты будем называть их записи и связи).

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

Рисунок 2.2 Пример сущностей и связей в сетевой модели данных.

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

Кроме того, в некоторых сетевых СУБД записи могут иметь сложную структуру и включать в себя векторы (то есть, наборы полей, включаемые как в состав записи, например, поле «Адрес», включающее элементы «Индекс», «Город», «Улица», «Дом», «Квартира») и даже повторяющиеся группы (то есть, поля, для которых может иметься несколько значений). например, в записи «Сотрудник» может иметься поле «Владение иностранным языком», которое должно хранить несколько значений, если сотрудник владеет более чем одним иностранным языком. Кроме того, повторяющаяся группа может состоять из векторов (скажем, у организации может быть несколько адресов – юридический, почтовый и т. п.).

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

· найти конкретную запись в наборе однотипных записей (например, студента с именем Иванов);

· перейти от предка к первому потомку по некоторой связи (например, к первому студенту группы ПИ-31);

· перейти к следующему потомку в некоторой связи (например, от Иванова к Сидорову);

· перейти от потомка к предку по некоторой связи (например, найти группу, в которой учится Сидоров);

· создать новую запись;

· уничтожить запись;

· модифицировать запись;

· включить в связь;

· исключить из связи;

· переставить в другую связь и т.д.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: