Теория баз данных

       

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


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

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

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

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

Операция



Назначение

READY

Обеспечение доступа данного процесса или пользователя к БД (сходна по смыслу с операцией открытия файла)

FINISH

Окончание работы с БД

FIND

Группа операций, устанавливающих указатель найденного объекта на текущий объект

GET

Передача найденного объекта в рабочую область. Допустима только после FIND

STORE

Помещение в БД записи, .сформированной в рабочей области

CONNECT

Включение текущей записи в текущий экземпляр набора

DISCONNECT

Исключение текущей записи из текущего экземпляра набора

MODIFY

Обновление текущей записи данными из рабочей области пользователя

ERASE

Удаление экземпляра текущей записи

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

  • текущая запись процесса (код или ключ последней записи, с которой работала данная программа);

  • текущая запись типа записи (для каждого типа записи ключ последней записи, с которой работала программа);

  • текущая запись типа набор (для каждого набора с владельцем Т1 и членом Т2 указывается, Т1 или Т2 были последней обрабатываемой записью).

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

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



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

    RECORD Цены

    02 Цена TYPE REAL

    02 Товар VIRTUAL

    SOURCE IS Товары.НаименованиеТовара

    OF OWNER OF Товар-Цены SET

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

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

    FIND <Имя записи> RECORD BY CALC KEY <Имя параметра>

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

    FIND DUPLICATE <Имя записи> RECORD BY CALC KEY

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

    FIND OWNER OF CURRENT <Имя набора> SET

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

    FIND (FIRST | NEXT) <Имя записи> RECORD IN CURRENT <Имя набора> SET

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

    FIND [DUPLICATE] <Имя записи> RECORD IN CURRENT <Имя набора> SET USING <Список полей>

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

    FIND CURRENT OF <Имя набора> SET

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

    FIND CURRENT OF <Имя записи> RECORD

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

    ФИО = "Петров"

    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


    Содержание раздела