Сетевая модель данных
Сетевая модель данных — логическая модель данных, являющаяся расширением иерархического подхода, строгая математическая теория, описывающая структурный аспект, аспект целостности и аспект обработки данных в сетевых базах данных.
Описание
Разница между иерархической моделью данных и сетевой состоит в том, что в иерархических структурах запись-потомок должна иметь в точности одного предка, а в сетевой структуре данных у потомка может иметься любое число предков.
Сетевая БД состоит из набора экземпляров определенного типа записи и набора экземпляров определенного типа связей между этими записями.
Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и типом записи потомка C должны выполняться следующие два условия:
- каждый экземпляр типа записи P является предком только в одном экземпляре типа связи L;
- каждый экземпляр типа записи C является потомком не более чем в одном экземпляре типа связи L.
Аспект манипуляции
Примерный набор операций манипулирования данными:
- найти конкретную запись в наборе однотипных записей;
- перейти от предка к первому потомку по некоторой связи;
- перейти к следующему потомку в некоторой связи;
- перейти от потомка к предку по некоторой связи;
- создать новую запись;
- уничтожить запись;
- модифицировать запись;
- включить в связь;
- исключить из связи;
- переставить в другую связь и т. д.
Аспект целостности
Имеется (необязательная) возможность потребовать для конкретного типа связи отсутствие потомков, не участвующих ни в одном экземпляре этого типа связи (как в иерархической модели).
Достоинства
Достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности.
Недостатки
Недостатком сетевой модели данных являются высокая сложность и жесткость схемы БД, построенной на её основе. Поскольку логика процедуры выборки данных зависит от физической организации этих данных, то эта модель не является полностью независимой от приложения. Другими словами, если необходимо изменить структуру данных, то нужно изменить и приложение.
История
Сетевая модель была одним из первых подходов, использовавшимся при создании баз данных в конце 50-х — начале 60-х годов. Активным пропагандистом этой модели был Чарльз Бахман. Идеи Бахмана послужили основой для разработки стандартной сетевой модели под эгидой организации CODASYL. После публикации отчетов рабочей группы этой организации в 1969, 1971 и 1973 годах многие компании привели свои сетевые базы данных более-менее в соответствие со стандартами CODASYL. До середины 70-х годов главным конкурентом сетевых баз данных была иерархическая модель данных, представленная ведущим продуктом компании IBM в области баз данных — IBM IMS[1].
В конце 60-х годов Эдгаром Коддом была предложена реляционная модель данных и после долгих и упорных споров с Бахманом[2] реляционная модель приобрела большую популярность и теперь является доминирующей на рынке СУБД.
Сетевые СУБД
Сетевая СУБД — СУБД, построенная на основе сетевой модели данных.
К основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь.
Узел — это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. В сетевой структуре каждый элемент может быть связан с любым другим элементом.
Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию.
Несмотря на то, что эта модель решает некоторые проблемы, связанные с иерархической моделью, выполнение простых запросов остается достаточно сложным процессом.
Также, поскольку логика процедуры выборки данных зависит от физической организации этих данных, то эта модель не является полностью независимой от приложения. Другими словами, если необходимо изменить структуру данных, то нужно изменить и приложение.
Список самых значимых сетевых СУБД на 1978 год[3]:
- IDS (Integrated Data Store) компании General Electric — самая первая сетевая СУБД, разработанная Чарльзом Бахманом в 1960 году
- IDS/2 или IDS/II) компании Honeywell, купившей IDS у General Electric, позднее — компании Bull[4][5]
- Integrated Database Management System (IDMS) компании Cullinet, развитие IDS на основе её исходных кодов
- DMS-1100 (для мейнфреймов UNIVAC 1100) и DMS-90 (для мини-компьютеров, первый релиз — ноябрь 1974) компании UNIVAC
- DBMS-10 компании DEC для Decsystem-10 и Decsystem-20
- CDC DMS-170
- Burroughs Data Management System (DMS-2[6]). Продукт представлен на рынке в октябре 1974 года.
Другие подобные СУБД:
- IMAGE/3000 компании Hewlett-Packard (1974 г.)
- Norsk-Data SYBAS
- NCR IDM-9000
- Cincom TOTAL
- dbVista
- Universal Datenbank System (UDS) от Siemens
- СООБЗ Cerebrum[7]
- ИСУБД «CronosPRO»
- Caché
- GT.M
Примечания
- Liu and Ozsu, 2009, p. 1900.
- Знаменитый спор под названием "The Great Debate произошел в 1974 году на конференции ACM SIGMOD Workshop on Data Description, Access, and Control, где Бахман и Кодд решали одну и ту же бизнес-задачу, используя каждый свой подход. Кодд решил её правильно, хоть и не с первого раза, а Бахман предложил громоздкое решение, которое оказалось неверным.
- Computerworld 5 июн 1978, стр.160 — обзор главных СУБД на то время
- Celko, 2012, p. 6.
- Computerworld 5 Jun 1978// Data Base Systems: Design, Implementation and Management, Part III
- или DMS-II см. Computerworld 5 июн 1978
- Cerebrum : Сетевая объектно-ориентированная система управления базой знаний
Литература
- Ling Liu, M. Tamer Ozsu. Encyclopedia of Database Systems. — Springer Science, 2009. — 3818 p. — ISBN 9780387355443. (англ.)
- Joe Celko. Trees and Hierarchies in SQL for Smarties, 2nd Edition. — Morgan Kaufmann, 2012. — 296 p. — ISBN 0123877334. (англ.)
Ссылки
- С. Кузнецов. Базы данных. Вводный курс (3.3. Сетевые системы) (рус.)