![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
ВОПРОС12! Язык манипулирования данными в иерархических базах данных
Для доступа к базе данных у пользователя должна быть сформирована специальная среда окружения, поддерживающая в явном виде имеющиеся навигационные операции. Для этого в ней должны храниться: · шаблоны всех записей логических баз данных, доступных пользователю; · указатели на текущий экземпляр сегмента данного типа — для всех типов сегментов. Язык манипулирования данными в иерархической модели поддерживает в явном виде навигационные операции. Эти операции связаны с перемещением указателя, который определяет текущий экземпляр конкретного сегмента. Все операторы в языке манипулирования данными можно разделить на 3 группы. Первую группу составляют операторы поиска данных. Операторы поиска данных Синтаксис: GET UNIQUE < имя сегмента> WHERE < список поиска>;список поиска состоит из последовательности условий вида: < имя сегмента>.< имя поля> ОС < constant или имя другого поля данного сегмента или имя переменной>; ОС — операция сравнения; условия могут быть соединены логическими операциями И и ИЛИ { &, ∨ }. Назначение: Получить единственное значение. Пример: Найти типовую модель стоимостью не более $600, которая существует не менее чем в 10 экземплярах. GET UNIQUE ТИПОВЫЕ МОДЕЛИ WHERE Типовые модели.Стоимость < = $600 AND Типовые модели.Количество на складе > = 10 Данная команда всегда ищет с начала БД и останавливается, найдя первый экземпляр сегмента, удовлетворяющий условиям поиска. Синтаксис: GET NEXT < имя сегмента> WHERE < список аргументов поиска>Назначение: Получить следующий экземпляр сегмента для тех же условий. Пример: Напечатать полный список заказов стоимостью не менее $500. GET UNIQUE ИНДИВИДУАЛЬНЫЕ МОДЕЛИ WHERE Индивидуальные модели.Стоимость > = $500 WHILE NOT FAIL (пока не конец поиска) DO PRINT № заказа, Стоимость, Количество GET NEXT ИНДИВИДУАЛЬНЫЕ МОДЕЛИ ENDСинтаксис: GET NEXT < имя сегмента> WITHIN PARENT [ where < дополн.условия> ]Назначение: Получить следующий для того же исходного. Пример: Получить перечень винчестеров, имеющихся на складе номер 1, в количестве не менее 10 с объемом 10 Гбайт. GET UNIQUE СКЛАД WHERE Склад.Номер = 1GET NEXT ИЗДЕЛИЕ WITHIN PARENT WHERE Изделие.Наименование = " Винчестер" GET NEXT ХАРАКТЕРИСТИКИ WITHIN PARENT WHERE ХАРАКТЕРИСТИКИ.Параметр = 10 AND ХАРАКТЕРИСТИКИ.Единицы Измерения = Гб AND ХАРАКТЕРИСТИКИ.Величина > 10WHILE NOT FAIL (пока поиск не завершен) DO GET NEXT WITHIN PARENTend
|