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


         

Язык манипулирования данными в иерархических базах данных


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

  • шаблоны всех записей логических баз данных, доступных пользователю;

  • указатели на текущий экземпляр сегмента данного типа — для всех типов сегментов.

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

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

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

    Синтаксис:

    GET UNIQUE <имя сегмента> WHERE <список поиска>;

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

    <имя сегмента>.<имя поля>ОС <constant или имя другого поля данного сегмента или имя переменной>:

    ОС — операция сравнения;

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

    Назначение:

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

    Пример:

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

    GET UNIQUE ТИПОВЫЕ МОДЕЛИ

    WHERE Типовые модели.Стоимость <= $600

    AND Типовые модели,Количество на складе >= 10

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

    Синтаксис:

    GET NEXT <имя сегмента> WHERE <список аргументов поиска>

    Назначение:

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

    Пример:

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

    GET UNIQUE ИНДИВИДУАЛЬНЫЕ МОДЕЛИ

    WHERE Индивидуальные модели.Стоимость >- $500

    WHILE NOT EAIL (пока не конец поиска) DO

    PRINT № заказа. Стоимость, Количество

    GET NEXT ИНДИВИДУАЛЬНЫЕ МОДЕЛИ

    END

    Синтаксис:

    GET NEXT <имя сегмента> WITHIN PARENT [ where <дополн.условия>]

    Назначение:

    Содержание  Назад  Вперед