Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы БД.doc
Скачиваний:
144
Добавлен:
02.04.2015
Размер:
390.14 Кб
Скачать

4. Даны отношения, моделирующие работу фирмы, занимающейся разработкой программных систем:

R1

Название файла

Имя владельца файла

R2

Название файла

Название диска

R3

Название программы

Название файла

  1. Диски, на которых расположено больше всего файлов.

SELECT R5.DISK (SELECT Max(R4.CFile), R4.Disk FROM (SELECT Disk, Count(File) as CFile FROM R2 GROUP BY Disk) AS R4 GROUP BY R4.DISK) AS R5

  1. Программы, которые работают только с одним файлом.

SELECT PROG FROM R3 GROUP BY PROG HAVING COUNT(*)=1

  1. Файлы, которые имеют одно и тоже имя, но расположены, на различных дисках.

SELECT FILE FROM (SELECT FILE, DISC FROM R2 GROUP BY FILE, DISC)

GROUP BY File, Disc HAVING COUNT(*)>1

  1. Файлы, с которыми работают все программы.

SELECT File, Prog FROM R3 GROUP BY File, Prog HAVING COUNT(*) = (SELECT COUNT(DISTINCT Prog) FROM R3)

  1. Файлы, владельцами которых являются все пользователи ПЭВМ.

SELECT File FROM R1 GROUP BY File HAVING COUNT(*)= (SELECT COUNT(DISTINCT OWNER) FROM R1)

5. Даны отношения, моделирующие работу программных продуктов в фирме.

R1

Имя пользователя

Название приложения

Операционная система

R2

Имя БД

Имя сервера БД

R3

Название приложения

Имя БД

  1. Пользователей, которые работают в нескольких операционных системах, но в каждой из них запускают не более одного приложения.

SELECT DISTINCT User FROM (SELECT User, OS FROM R1

GROUP BY User, OS HAVING COUNT(*) > 1 and COUNT(OS) = COUNT(DISTINCT OS))

  1. Серверы БД, которые работают только с одной БД.

SELECT Serv FROM (SELECT Serv, BD FROM R2 GROUP BY SERV HAVING COUNT(BD) = 1)

  1. Приложения, которые работают со всеми серверами БД.

SELECT Pril FROM (SELECT R3.Pril, R2,Serv FROM R2, R3 WHERE R2.BD = R3.BD GROUP BY R3.Pril, R2.Serv

HAVING COUNT(R2.Serv) = (SELECT (COUNT(DISTINCT Serv) FROM R2 )))

  1. Пользователи, которые работают только с одним сервером БД.

SELECT User FROM (SELECT R1.User, R2.Serv FROM R1, R2, R3 WHERE R1.Pril = R3.Pril and R3.BD = R2.BD GROUP By R1.User, R2.Serv HAVING COUNT(DISTINCT Serv) = 1)

6. Даны отношения, моделирующие работу программного обеспечения в некоторой организации:

R1

Название программного обеспечения

Рабочая станция

R2

ФИО оператора

Рабочая станция

Название программного обеспечения

R3

Сервер

Рабочая станция

  1. Операторов, работающих с одинаковым программным обеспечением на нескольких рабочих станциях.

SELECT FIO FROM R2 WHERE FIO IN (SELECT R3.FIO FROM R2 GROUP BY R2.FIO HAVING Count(R2.WSTAT)>1)

GROUP BY SOFT, FIO HAVING COUNT(SOFT)>1

  1. Рабочие станции, связанные с несколькими серверами.

SELECT R3.WSTAT FROM R3 GROUP BY R3.WSTAT HAVING Count(R3.SERVER)>1

  1. Программное обеспечение, установленное только на одной рабочей станции.

SELECT R2.SOFT FROM R2 GROUP BY R2.SOFT HAVING Count(*)=1

  1. Серверы, связанные со всеми рабочими станциями.

SELECT R3.SERVER FROM R3 GROUP BY R3.SERVER HAVING Count(R3.SERVER)= (SELECT COUNT(DISTINCT WSTAT) FROM R3)

  1. Операторов, работающих со всем программным обеспечением (указанным в R2).

SELECT FIO FROM R3 GROUP BY FIO HAVING Count(FIO)= (SELECT COUNT(DISTINCT SOFT) FROM R2)