НАЙТИ{(de.ImDet)/deÎDet}:(Ø$doÎDog)((do.DtN>’10.10.2006’ & do.Kdet=de.KDet) & 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

НАЙТИ{(de.ImDet)/deÎDet}:(Ø$doÎDog)((do.DtN>’10.10.2006’ & do.Kdet=de.KDet) &

Поиск

НАЙТИ{(de.ImDet)/deÎDet}:(Ø$doÎDog)((do.DtN>’10.10.2006’ & do.Kdet=de.KDet) &

(Ø$psÎPsts)(( ps.KPst=do.KPst)&(ps.AdrPst¹’Казань’))&

(Ø$pvÎPst)((pv.KPst=do.KPst)&(pv.KDet=do.KDet)))

 

Реализуя запрос на языке SQL, получим

SELECT Det.ImDet FROM DET

WHERE NOT EXISTS (SELECT * FROM DOG

  WHERE (dog.KDet=det.KDet) AND (dog.DtN>’10.10.2006’)

AND NOT EXISTS (SELECT * FROM PSTS WHERE (psts.KPst=dog.KPst)

                          AND (psts.AdrPst<>’Казань’))

AND NOT EXISTS (SELECT * FROM PST WHERE (pst.KPst=dog.KPst) AND (pst.Kdet=dog.KDet)))


Ниже приводится пример реализации запроса средствами языка DELPHI с использованием команд навигации по таблицам.

При реализации запроса учитываются следующие эквивалентные представления:

Учитывая, что семантически

 

§ реализация оператора «b:=$xÎFile(B(x))» может быть представлена в виде:

b:=false; RESET(File);

WHILENOT b ANDNOT EOF(File) DO

BEGIN READ(File,x); b:=B(x) END

§ реализация оператора «b:="xÎFile(B(x))»:

b:=true; RESET(File);

WHILE b ANDNOT EOF(File) DO

BEGIN READ(File,x); b:=B(x) END

Для проверки значения кванторной формулы на соответствующем наборе данных, после завершения цикла необходимо проверить значение переменной - селектора . Отметим, что изменение значения селектора завершает цикл, не перебирая все записи из таблицы File, что, вообще говоря, оптимизирует время выполнения программы

 

Вернемся к исходной форме запроса:

НАЙТИ{(de.ImDet)/deÎDet}:



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 43; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.006 с.)