Язык манипулирования данными в сетевой модели
Все операции манипулирования данными в сетевой модели делятся на навигационные операции и операции модификации.
Навигационные операции осуществляют перемещение по БД путем прохождения по связям, которые поддерживаются в схеме БД. В этом случае результатом является новый единичный объект, который получает статус текущего объекта.
Операции модификации осуществляют как добавление новых экземпляров отдельных типов записей, так и экземпляров новых наборов, удаление экземпляров записей и наборов, модификацию отдельных составляющих внутри конкретных экземпляров записей. Средства модификации данных сведены следующей таблице:
Таблица. Операторы манипулирования данными в сетевой модели | |
Операция | Назначение |
READY | Обеспечение доступа данного процесса или пользователя к БД (сходна по смыслу с операцией открытия файла) |
FINISH | Окончание работы с БД |
FIND | Группа операций, устанавливающих указатель найденного объекта на текущий объект |
GET | Передача найденного объекта в рабочую область. Допустима только после FIND |
STORE | Помещение в БД записи, сформированной в рабочей области |
CONNECT | Включение текущей записи в текущий экземпляр набора |
DISCONNECT | Исключение текущей записи из текущего экземпляра набора |
MODIFY | Обновление текущей записи данными из рабочей области пользователя |
ERASE | Удаление экземпляра текущей записи |
В рабочей области пользователя хранятся шаблоны записей, программные переменные и три типа указателей текущего состояния:
· текущая запись процесса (код или ключ последней записи, с которой работала данная программа);
· текущая запись типа записи (для каждого типа записи ключ последней записи, с которой работала программа);
· текущая запись типа набор (для каждого набора с владельцем T1 и членом T2 указывается, T1 или T2 были последней обрабатываемой записью).
На рис. 21 представлена концептуальная модель торгово-посреднической организации.
Рис. 21.Схема БД "Торговая фирма"
При необходимости возможно описание элементов данных, которые не принадлежат непосредственно данной записи, но при ее обработке часто используются. Для этого используется тип VIRTUAL с обязательным указанием источника данного элемента данных.
RECORD Цены
02 Цена TYPE REAL
02 Товар VIRTUAL
SOURCE IS Товары.НаименованиеТовара
OF OWNER OF Товар-Цены SET
Наиболее интересна операция поиска ( FIND ), так как именно она отражает суть навигационных методов, применяемых в сетевой модели. Всего существует семь типов операций поиска:
1. По ключу (запись должна быть описана через CALC USING ...):
2. FIND <Имя записи>
RECORD BY CALC KEY <Имя параметра>
3. Последовательный просмотр записей данного типа:
4. FIND DUPLICATE <Имя записи>
RECORD BY CALC KEY
5. Найти владельца текущего экземпляра набора:
FIND OWNER OF CURRENT <Имя набора> SET
6. Последовательный просмотр записей—членов текущего экземпляра набора:
7. FIND (FIRST | NEXT) <Имя записи>
8. RECORD IN CURRENT <Имя набора>
SET
9. Просмотр записей—членов экземпляра набора, специфицированных рядом полей:
10. FIND [DUPLICATE] <Имя записи>
11. RECORD IN CURRENT <Имя набора>
SET USING <Список полей>
12.Сделать текущей записью процесса текущий экземпляр набора:
FIND CURRENT OF <Имя набора> SET
13.Установить текущую запись процесса:
FIND CURRENT OF <Имя записи> RECORD
Например, алгоритм и программа печати заказов, сделанных Петровым, будут выглядеть так: