УПРАЖНЕНИЯ

 

8.1. Определите отношение SP из базы данных поставщиков и деталей как представление отношения SPJ из базы данных поставщиков, деталей и изделий.

8.2. Создайте для базы данных поставщиков, деталей и изделий представление. состоящее из всех изделий (включающее только поля номера изделия и города), которые поставляются поставщиком S1 и используют деталь Р1.

8.3. Является ли Ваше решение упражнения 8 2 обновляемым представлением?

а) Если да, то можно ли для него специфицировать вариант CHECKS

б) Если нет, найдите обновляемую версию представления и повторите это упражнение.

8.4. Создайте представление, состоящее из номеров поставщиков и номеров деталей, для таких поставщиков и деталей, которые не «соразмещены».

8.5. Создайте представление, состоящее из записей поставщиков, только для тех поставщиков, которые находятся в Лондоне

8.6. При условии, что задано определение представления:

CREATE VIEW СВОДКА (НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ,

МАКС_КОЛИЧЕСТВО, МИН_КОЛИЧЕСТВО,

СРЕДНЕЕ_КОЛИЧЕСТВО)

AS SELECT НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ, MAX

(КОЛИЧЕСТВО), MIN (КОЛИЧЕСТВО),

AVG (КОЛИЧЕСТВО)

FROM SPJ

GROUP BY НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ

HAVING SUM (КОЛИЧЕСТВО) > 50;

установите, какие из следующих операций корректныи приведите для них полученный в результате трансляции эквивалент.

а) SELECT *

FROM СВОДКА;

б) SELECT *

FROM СВОДКА

WHERE НОМЕР_ПОСТАВЩИКА Ø= ‘S1';

в) SELECT

FROM СВОДКА

WHERE МАКС_КОЛИЧЕСТВО > 250;

г) SELECT МАКС_КОЛИЧЕСТВО - МИН_КОЛИЧЕСТВО,

НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ

FROM СВОДКА

WHERE НОМЕР_ПОСТАВЩИКА ='S1'

AND НОМЕР_ДЕТАЛИ = 'Р1';

д) SELECT НОМЕР_ПОСТАВЩИКА

FROM СВОДКА

GROUP BY НОМЕР_ПОСТАВЩИКА;

e) SELECT НОМЕР_ПОСТАВЩИКА, МАКС_КОЛИЧЕСТВО

FROM СВОДКА

GROUP BY НОМЕР_ПОСТАВЩИКА, МАКС_КОЛИЧЕСТВО;

ж) SELECT S.НОМЕР_ПОСТАВЩИКА, СВОДКА. СРЕДНЕЕ_КОЛИЧЕСТВО

FROM S,CBOДKA

WHERE S.HOMEP_ПОСТАВЩИКА = СВОДКА. НОМЕР_ПОСТАВЩИКА;

з) UPDATE СВОДКА

SET НОМЕР_ПОСТАВЩИКА = 'S2'

WHERE НОМЕР_ПОСТАВЩИКА = ‘S1';

и) UPDATE СВОДКА

SET МАКС_КОЛИЧЕСТВО = 1000

WHERE НОМЕР_ПОСТАВЩИКА = 'S1';

к)DELETE

FROM СВОДКА

WHERE НОМЕР_ПОСТАВЩИКА = 'S1';

8.7. Сформулируйте правила, касающиеся обновляемости представлений в системе DB2.

8.8. Сформулируйте правила, касающиеся спецификации CHECK.

8.9. Предположим, что база данных реструктуризуется таким образом, что таблицы А и В заменяются их естественным соединением С. В какой степени механизм представлений может скрыть эту реструктуризацию от существующих пользователей?