Create VIew w3 (kpst) AS. Select kpst FROM W1. Create VIew W1 (kdet,kpst) AS. Select kdet,kpst FROM Dog. Create VIew w2 (kpst) AS. Select kpst FROM psts. Create VIew w3 (kdet) AS. Select Distinct kdet FROM W1 psw1 //псевдоним важно ставить при первом обра 


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



ЗНАЕТЕ ЛИ ВЫ?

Create VIew w3 (kpst) AS. Select kpst FROM W1. Create VIew W1 (kdet,kpst) AS. Select kdet,kpst FROM Dog. Create VIew w2 (kpst) AS. Select kpst FROM psts. Create VIew w3 (kdet) AS. Select Distinct kdet FROM W1 psw1 //псевдоним важно ставить при первом обра

Поиск

CREATE VIEW W3 (KPst) AS

SELECT KPst FROM W1

       WHERE NOT EXISTS (SELECT * FROM W2

        WHERE W2.KPst=W1.KPst)

 

2.([KDet,KPst][DtN>’01.01.2002’]Dog)¸

([KPst][AdrPst=’КАЗАНЬ’]Psts)

 

Содержательная формулировка запроса:

Найти все детали(коды деталей), что для любого поставщика из Казани найдется договор по закупке этих деталей с датой начала после ’01.01.2002’.

 

Представим данный запрос в виде суперпозиции следующих формул:

=[KDet,KPst][DtN>’01.01.2002’]Dog

=[KPst][AdrPst=’КАЗАНЬ’]Psts

.

При реализации запроса используем представления. Формируем делимое ( ):

CREATE VIEW W1 (Kdet,KPst) AS

SELECT Kdet,KPst FROM DOG

   WHERE DtN>’01.01.2002’

 

Формируем делитель ( ):

CREATE VIEW W2 (KPst) AS

SELECT KPst FROM PSTS

   WHERE AdrPst=’КАЗАНЬ’

 

Операция деления реализуется по следующей формуле:

W3=(W1¸W2) = НАЙТИ{(r.KDet)/rÎW1}

"sÎW2 $tÎW1 ((t.KPst=s.KPst)&(t.KDet=r.KDet))

 

CREATE VIEW W3 (KDet) AS

SELECT Distinct KDet FROM W1 psW1 //псевдоним важно ставить при первом обращениии!!!!!!

WHERE NOT EXISTS (SELECT * FROM W2

  WHERE NOT EXISTS (SELECT * FROM W1

    WHERE ((W1.KDet=psW1.Kdet) AND (W1.KPst=W2.KPst))))

Внимание! Поскольку данный запрос дважды использует таблицу W1 необходимо при формировании оператора Select использовать псевдонимы, причем для правильной реализации запроса в InterBase псевдоним необходимо определить при первом обращении к таблице.

1-пронумировать операции, разбиться их на операнды

2 внимательно разбираться в скобках


[1] Для запросов, построенных с использованием операторов реляционной алгебры, реализация запроса на языке PASCAL не приводится. См. соответствующую реализацию подобного запроса для реляционного исчисления кортежей.



Поделиться:


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

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