Язык манипулирования данными в сетевой модели
Все операции манипулирования данными в сетевой модели делятся на навигационные операции и операции модификации.
Навигационные операции осуществляют перемещение по БД путем прохождения по связям, которые поддерживаются в схеме БД. В этом случае результатом является новый единичный объект, который получает статус текущего объекта.
Операции модификации осуществляют как добавление новых экземпляров отдельных типов записей, так и экземпляров новых наборов, удаление экземпляров записей и наборов, модификацию отдельных составляющих внутри конкретных экземпляров записей. Средства модификации данных сведены в табл. 3.1:
Таблица 3.1. Операторы манипулирования данными в сетевой модели
Операция | Назначение |
READY | Обеспечение доступа данного процесса или пользователя к БД (сходна по смыслу с операцией открытия файла) |
FINISH | Окончание работы с БД |
FIND | Группа операций, устанавливающих указатель найденного объекта на текущий объект |
GET | Передача найденного объекта в рабочую область. Допустима только после FIND |
STORE | Помещение в БД записи, сформированной в рабочей области |
CONNECT | Включение текущей записи в текущий экземпляр набора |
DISCONNECT | Исключение текущей записи из текущего экземпляра набора |
MODIFY | Обновление текущей записи данными из рабочей области пользователя |
ERASE | Удаление экземпляра текущей записи |
В рабочей области пользователя хранятся шаблоны записей, программные переменные и три типа указателей текущего состояния:
На рис. 3.7 представлена концептуальная модель торгово - посреднической организации.
44
Рис. 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 |