- •1. Даны отношения, моделирующие работу банка и его филиалов:
- •2. Даны отношения, моделирующие работу туристического агентства, имеющего много филиалов в различных странах:
- •3. Даны отношения, моделирующие работу фирмы, имеющей несколько филиалов:
- •4. Даны отношения, моделирующие работу фирмы, занимающейся разработкой программных систем:
- •5. Даны отношения, моделирующие работу программных продуктов в фирме.
- •6. Даны отношения, моделирующие работу программного обеспечения в некоторой организации:
- •7. Даны отношения:
- •8. Даны отношения, моделирующие работу фондовых магазинов:
- •9. Даны отношения, моделирующие проведение выставок:
- •10. Даны отношения, моделирующие производство деталей:
- •11. Даны отношения, моделирующие обмен жилплощади:
- •12 Даны отношения, моделирующие работу туристического агентства, имеющего много филиалов в различных странах:
- •13. Даны отношения:
- •14. Даны отношения:
- •18. Даны отношения, моделирующие получении стипендии студентами. Не все студенты получают стипендию, отсутствие стипендии может быть отмечено 0% или отсутствием записи в r1:
- •19. Даны отношения:
- •20. Даны отношения:
- •21. Даны отношения:
- •22. Даны отношения:
- •23. Даны отношения, моделирующие работу банка и его филиалов:
- •24. Даны отношения, моделирующие работу фирмы, имеющей несколько филиалов:
- •25. Даны отношения, моделирующие работу фирмы , занимающейся разработкой программных систем:
- •26. Даны отношения:
- •27. Даны отношения, моделирующие подготовку конкурсных работ студентами вуза:
- •28. Даны отношения, моделирующие получение стипендии студентами вуза:
- •30. Даны отношения, моделирующие реальный учебный процесс:
- •31. Даны отношения, моделирующие архив периодических изданий:
- •33. Даны отношения, моделирующие представление студентами вуза работ на некоторый конкурс:
- •34. Даны отношения, которые моделирует планируемый учебный процесс:
- •35. Даны отношения, которые моделируют представление студенческих работ на международные конкурсы:
- •36. Даны отношения, моделирующие представление студентами научных разработок на конкурс:
- •37. Даны отношения, моделирующие представления студенческих работ на институтский конкурс:
- •38. Даны отношения:
- •39. Даны отношения, моделирующие сдачу предыдущей сессии и текущую успеваемость:
- •40. Даны отношения, моделирующие текущую издательскую деятельность:
- •41. Даны отношения, моделирующие научно-исследовательскую работу студентов (нирс)
- •42. Даны отношения:
- •43. Даны отношения:
- •44. Даны отношения:
- •45. Даны отношения, моделирующие подачу заявок на международные гранты студентами некоторого вуЗа:
- •46. Даны отношения:
- •47. Даны отношения, моделирующие информацию о текущей успеваемости студентов
- •48. Даны отношения, моделирующие работу цеха:
- •49. Даны отношения:
- •50. Даны отношения:
- •51. Даны отношения:
- •52. Даны отношения:
1. Даны отношения, моделирующие работу банка и его филиалов:
R1
-
N филиала
Район
R2
-
ФИО клиента
N филиала
N счета
Остаток
Филиалы, клиенты которых не имеют счетов в других филиалах.
SELECT DISTINCT FILIAL FROM (SELECT R2.FILIAL, R2.FIO FROM R2 GROUP BY R2.FILIAL, R2.FIO)
GROUP BY FILIAL,FIO HAVING COUNT(*)=1
Клиентов, которые имеют счета во всех филиалах данного банка.
SELECT R3.FIO FROM (SELECT DISTINCT FIO,FILIAL FROM R2 GROUP BY FIO,FILIAL) AS R3
GROUP BY R3.FIO HAVING Count(R3.FIO)=(SELECT COUNT(*) FROM R1)
Клиентов, которые имеют только один счет в одном филиале банка.
SELECT R2.FIO FROM R2 GROUP BY R2.FIO HAVING COUNT(*)=1
Клиенты, которые имеют счета в нескольких филиалах банка, расположенных только в одном районе.
SELECT R3.FIO FROM (SELECT R2.FIO, R1.RAION FROM R2 INNER JOIN R1 ON R2.FILIAL = R1.FILIAL
GROUP BY R2.FIO, R2.FILIAL, R1.RAION) AS R3 GROUP BY R3.FIO, R3.RAION HAVING (((Count(*))>1))
2. Даны отношения, моделирующие работу туристического агентства, имеющего много филиалов в различных странах:
R1
-
Филиал
Страна
Город
R2
-
Клиент
Страна
Номер договора
R3
-
Номер договора
Филиал
Дата начала
Дата окончания
Клиентов, заключивших договоры с несколькими филиалами, расположенными в той же стране.
SELECT DISTINCT Client FROM(SELECT R2.Client, R3.Filial from R1, R2, R3 WHERE R2.NDog = R3.NDog and R1.Filial = R3.Filial GROUP BY R2.Client, R3.Filial HAVING (Count(distinct R1.Country) = 1) and (Count(*)>1))
Филиалы, которые работают с клиентами только той страны, в которой расположен филиал.
SELECT FILIAL FROM (SELECT R1.Filial, R1.Country, R2.Country
FROM (R2 INNER JOIN R3 ON R2.NDog = R3.NDog) INNER JOIN R1 ON R3.Filial = R1.Filial
GROUP BY R1.Filial, R1.Country, R2.Country) GROUP BY R1.FILIAL, R1.COUNTRY HAVING COUNT(*)=1
Филиалы, в которые никто не пожелал обратиться повторно.
SELECT Filial FROM R3 WHERE Filial NOT IN
(SELECT Filial FROM (SELECT R2.Client, R3.Filial FROM R2 INNER JOIN R3 ON R2.NDog = R3.NDog
GROUP BY R2.Client, R3.Filial) GROUP BY Filial HAVING COUNT(*)>1) GROUP BY Filial HAVING COUNT(*)>1
Города, в которых расположено не более трех филиалов.
SELECT R1.Gorod FROM R1 GROUP BY R1.Gorod HAVING COUNT(*)<=3
3. Даны отношения, моделирующие работу фирмы, имеющей несколько филиалов:
R1
-
Филиал
Страна
R2
-
N заказа
Товар
Количество
R3
-
Филиал
Заказчик
N заказа
Заказчиков, которые работают со всеми филиалами фирмы, но покупают только один товар.
SELECT R4.Zak FROM (SELECT R3.Filial, R3.Zak, R2.Tovar FROM R3, R2
WHERE R2.NZak = R3.NZak GROUP BY R3.Filial, R2.Zak HAVING (Count(Distinct Filial) = (SELECT Count(Filial) FROM R1))
AND Count(DISTINCT R2.Tovar) = 1) AS R4
Филиалы фирмы которые торгуют всеми товарами.
SELECT FILIAL FROM(SELECT DISTINCT R3.Filial, R2.Tovar FROM R2 INNER JOIN R3 ON R2.NZak = R3.NZAK GROUP BY R3.Filial, R2.Tovar)GROUP BY FILIAL HAVING COUNT(*)= (SELECT COUNT(DISTINCT TOVAR) FROM R2))
Товары, которые фирма продает только в одной стране.
SELECT TOVAR FROM(SELECT TOVAR,COUNTRY FROM (R1 INNER JOIN R2 ON R1.FILIAL=R2.FILIAL) INNER JOIN R3 ON R2.NZAK=R3.NZAK GROUP BY TOVAR, COUNTRY)GROUP BY TOVAR, COUNTRY HAVING COUNT(*)=1
Заказчики, которые работают с филиалами фирмы, которые расположены только в одной стране.
SELECT ZAK FROM(SELECT R1.FILIAL, R3.ZAK FROM R1 INNER JOIN R3 ON R1.FILIAL= R3.FILIAL GROUP BY R3.ZAK,R1.FILIAL)GROUP BY ZAK HAVING COUNT(*)=1