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

Теоретико-графовые модели данных

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

  • шаблоны всех записей логических баз данных, доступных пользователю;
  • указатели на текущий экземпляр сегмента данного типа — для всех типов сегментов.

Язык манипулирования данными в иерархической модели поддерживает в явном виде навигационные операции . Эти операции связаны с перемещением указателя, который определяет текущий экземпляр конкретного сегмента.

Все операторы в языке манипулирования данными можно разделить на 3 группы. Первую группу составляют операторы поиска данных.

Операторы поиска данных

список поиска состоит из последовательности условий вида:

условия могут быть соединены логическими операциями И и ИЛИ < & , ∨ >.

Получить единственное значение.

Найти типовую модель стоимостью не более $600, которая существует не менее чем в 10 экземплярах.

GET UNIQUE ТИПОВЫЕ МОДЕЛИ WHERE Типовые модели.Стоимость = 10

Данная команда всегда ищет с начала БД и останавливается, найдя первый экземпляр сегмента, удовлетворяющий условиям поиска.

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

Напечатать полный список заказов стоимостью не менее $500.

GET UNIQUE ИНДИВИДУАЛЬНЫЕ МОДЕЛИ WHERE Индивидуальные модели.Стоимость >= $500 WHILE NOT FAIL (пока не конец поиска) DO PRINT № заказа, Стоимость, Количество GET NEXT ИНДИВИДУАЛЬНЫЕ МОДЕЛИ END
GET NEXT WITHIN PARENT [ where ]

Получить следующий для того же исходного.

Получить перечень винчестеров, имеющихся на складе номер 1, в количестве не менее 10 с объемом 10 Гбайт.

GET UNIQUE СКЛАД WHERE Склад.Номер = 1 GET NEXT ИЗДЕЛИЕ WITHIN PARENT WHERE Изделие.Наименование = "Винчестер" GET NEXT ХАРАКТЕРИСТИКИ WITHIN PARENT WHERE ХАРАКТЕРИСТИКИ.Параметр = 10 AND ХАРАКТЕРИСТИКИ.Единицы Измерения = Гб AND ХАРАКТЕРИСТИКИ.Величина > 10 WHILE NOT FAIL (пока поиск не завершен) DO GET NEXT WITHIN PARENT end

Операторы поиска данных с возможностью модификации

  1. Найти и удержать единственный экземпляр сегмента. Эта операция подобна первой операции поиска GET UNIQUE, единственным отличием этой операции является то, что после выполнения этой операции над найденным экземпляром сегмента допустимы операции модификации (изменения) данных. Синтаксис:
GET HOLD NEXT [WHERE дополнительные условия>]
GET HOLD NEXT WITHIN PARENT [ where ]

Операторы модификации данных

Эта команда не имеет параметров. Почему? Потому что операции модификации действуют на экземпляр сегмента, найденный командами поиска с удержанием. А он всегда единственный текущий найденный и удерживаемый для модификации экземпляр конкретного сегмента. Поэтому при выполнении команды удаления будет удален именно этот экземпляр сегмента.

Читайте также:  Что означает название всемирная паутина www название глобальной компьютерной сети

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

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

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

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

Стандарт сетевой модели впервые был определен в 1975 году организацией CODASYL ( Conference of Data System Languages), которая определила базовые понятия модели и формальный язык описания.

Базовыми объектами модели являются:

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

Агрегат данных соответствует следующему уровню обобщения в модели. В модели определены агрегаты двух типов: агрегат типа вектор и агрегат типа повторяющаяся группа.

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

Агрегат типа повторяющаяся группа соответствует совокупности векторов данных. Например, агрегат Зарплата соответствует типу повторяющаяся группа с числом повторений 12.

Читайте также:  Топология сетей с последовательным обслуживанием узлов называется

Записью называется совокупность агрегатов или элементов данных, моделирующая некоторый класс объектов реального мира. Понятие записи соответствует понятию «сегмент» в иерархической модели. Для записи, так же как и для сегмента, вводятся понятия типа записи и экземпляра записи .

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

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

Для любых двух типов записей может быть задано любое количество наборов, которые их связывают. Фактически наличие подобных возможностей позволяет промоделировать отношение » многие-ко-многим » между двумя объектами реального мира, что выгодно отличает сетевую модель от иерархической. В рамках набора возможен последовательный просмотр экземпляров членов набора, связанных с одним экземпляром владельца набора.

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

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

Преподаватель Группа День недели № пары Аудитория Дисциплина
Иванов 4306 Понедельник 1 22-13 КИД
Иванов 4307 Понедельник 2 22-13 КИД
Карпова 4307 Вторник 2 22-14 БЗ и ЭС
Карпова 4309 Вторник 4 22-14 БЗ и ЭС
Карпова 4305 Вторник 1 22-14 БД
Смирнов 4306 Вторник 3 23-07 ГВП
Смирнов 4309 Вторник 4 23-07 ГВП

Экземпляров набора Ведет занятия будет 3 (по числу преподавателей), экземпляров набора Занимается у будет 4 (по числу групп). На рис. 3.6 представлены взаимосвязи экземпляров данных наборов.

Пример взаимосвязи экземпляров двух наборов

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

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

Читайте также:  Компьютерные системы сети лекции

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

Источник

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

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

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

В 1971 году был опубликован официальный стандарт сетевых баз данных, который получил название CODASYL. Появление стандарта увеличило популярность сетевой модели, и многие компании создали свои версии сетевой СУБД. Хотя сетевая модель данных в будущем может все больше уступать место на рынке СУБД реляционной модели данных, сегодня она эффективно служит во многих информационных системах.

6.2. Основные понятия и определения

В сетевой модели существуют два основных понятия: типы записей и наборы. Типы записей — это совокупность логически связанных записей. Например, тип записи клиент может включать такие элементы данных, как ИД-Клиент, Имя, Адрес, Сумма-Счета, Дата-Последнего-Платежа. Все типы записей — это заданные имена, такие как КЛИЕНТ, СЧЕТ, ТОРГОВЫЙ АГЕНТ и т.д.

Наборы— это отношения один-ко-многим (или один-к-одному) между двумя типами записей. Например, один набор выражает отношения один-ко-многим между записями клиентов и подлежащих оплате ими счетов. В любом сетевом наборе один тип записей является владельцем, а остальные — членами. В данном примере тип записи клиент является владельцем, а тип записи счета – членом.Отношение один-ко-многим допускает возможность, что с записью клиент может быть связано ноль, одна или несколько записей счетов. Конечно, бывают ситуации, когда отношения  строго один-к-одному, как, например, между грузовиком и его водителем, но они обрабатываются таким же образом. Имя набора — это метка, которая присвоена стрелке. Все эти понятия проиллюстрированы примером, приведенным на рис.6.1.

Источник

Оцените статью
Adblock
detector