Язык манипулирования данными в сетевой модели

Все операции манипулирования данными в сетевой модели делятся на навигационные операции и операции модификации.

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

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

Таблица 3.1. Операторы манипулирования данными в сетевой модели

Операция Назначение
READY Обеспечение доступа данного процесса или пользователя к БД (сходна по смыслу с операцией открытия файла)
FINISH Окончание работы с БД
FIND Группа операций, устанавливающих указатель найденного объекта на текущий объект
GET Передача найденного объекта в рабочую область. Допустима только после FIND
STORE Помещение в БД записи, сформированной в рабочей области
CONNECT Включение текущей записи в текущий экземпляр набора
DISCONNECT Исключение текущей записи из текущего экземпляра набора
MODIFY Обновление текущей записи данными из рабочей области пользователя
ERASE Удаление экземпляра текущей записи

В рабочей области пользователя хранятся шаблоны записей, программные переменные и три типа указателей текущего состояния:

На рис. 3.7 представлена концептуальная модель торгово - посреднической организации.

44

Рис. 3.7. Схема БД "Торговая фирма"
Рис. 3.7. Схема БД "Торговая фирма"

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

Наиболее интересна операция поиска (FIND), так как именно она отражает суть навигационных методов, применяемых в сетевой модели. Всего существует семь типов операций поиска:

1. По ключу (запись должна быть описана через CALC USING ...):

2. Последовательный просмотр записей данного типа:

3. Найти владельца текущего экземпляра набора:

4. Последовательный просмотр записей-членов текущего экземпляра набора:

45

5. Просмотр записей - членов экземпляра набора, специфицированных рядом полей:

6. Сделать текущей записью процесса текущий экземпляр набора:

7. Установить текущую запись процесса:

Например, алгоритм и программа печати заказов, сделанных Петровым, будут выглядеть так:

ФИО = "Петров"
FIND Люди RECORD BY CALC KEY
FIND FIRST Заказы RECORD IN
CURRENT Люди-Заказы SET
WHILE NOT FAIL DO
FIND OWNER OF CURRENT
Товары-Заказы SET
GET Товары
PRINT Найм Товара
FIND NEXT Заказы RECORD IN
CURRENT Люди-Заказы SET
END

46