Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Представления

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

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

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

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

7.1.3.5. При условии, что задано определение представления:
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';

7.1.3.1.

CREATE VIEW SP (НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ, КОЛИЧЕСТВО)
AS SELECT НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ, SUM (КОЛИЧЕСТВО)
FROM SPJ GROUP BY НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ;

7.1.3.2.

CREATE VIEW JC(НОМЕР_ИЗДЕЛИЯ, ГОРОД)
AS SELECT DISTINCT J. НОМЕР_ИЗДЕЛИЯ. J.ГОРОД FROM J,SPJ
WHERE J.НОМЕР_ИЗДЕЛИЯ = SPJ.НОМЕР_ИЗДЕЛИЯ
AND (SP J.НОМЕР_ПОСТАВЩИКА = 'S1' OR SP J.НОМЕР_ДЕТАЛИ = 'P1');

7.1.3.3.

CREATE VIEW НЕ_СОРАЗМЕЩЕННЫЕ
AS SELECT НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ

FROM S, Р WHERE S.P.ГОРОД Ø= S.ГОРОД;

7.1.3.4.

CREATE VIEW ЛОНДОНСКИЕ_ПОСТАВЩИКИ
AS SELECT НОМЕР_ПОСТАВЩИКА, ФАМИЛИЯ, СОСТОЯНИЕ FROM S
WHERE ГОРОД = 'Лондон';

7.1.3.5.

Корректны только операции а), б) и г). В частности, отметим, что операция ж) некорректна, так как представление, определение которого включает фразу GROUP BY, не может соединяться с другими таблицами. Приведем эквивалент, полученный в результате трансляции, только для случая г):

SELECT MAX (КОЛИЧЕСТВО) - MIN (КОЛИЧЕСТВО),
НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ FROM SPJ
WHERE НОМЕР_ПОСТАВЩИКА ='S1' AND НОМЕР_ДЕТАЛИ = 'Р1’
GROUP BY НОМЕР_ПОСТАВЩИКА, НОМЕР_ДЕТАЛИ
HAVING SUM(КОЛИЧЕСТВО) > 50;




Поделиться с друзьями:


Дата добавления: 2014-12-10; Просмотров: 2368; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.