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

20. Даны отношения:

R1

ФИО автора

Название статьи

Область знаний

Название журнала

№ выпуска

Год издания

R2

Название журнала

Страна

Издание

  1. Страны, которые издают несколько журналов по одной области знаний.

SELECT Country FROM (SELECT DISTINCT R2.Country, R1.Area FROM R1, R2 WHERE R1.NameMag = R2.NameMag GROUP BY R2.Country, R1.Area HAVING Count(*) = 1)

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

SELECT DISTINCT Country FROM R2 WHERE Country not in(SELECT Country FROM (SELECT R2.Country, R1.Area, R1.NameMag FROM R1, R2 WHERE R1.NameMag = R2.NameMag GROUP BY R2.Country, R1.Area, R1.NameMag HAVING Count(*) > 1) as R3)

  1. Специализированные журналы за 1994 г., т.е. содержащие статьи только по одной области знаний).

SELECT NameMag, Area FROM R1 WHERE Year = 1994 GROUP BY NameMag, Area HAVING Count(Area) = 1

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

SELECT NameMag, Area FROM R1 GROUP BY NameMag, Area HAVING Count(Area) = (SELECT Count(DISTINCT Area) FROM R1)

21. Даны отношения:

R1

Дисциплина

Курс

R2

ФИО преподавателя

Кафедра

R3

ФИО преподавателя

Дисциплина

Тип занятия

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

SELECT DISTINCT Prepod FROM R3 WHERE Tip = ‘Лекция’ and Prepod in(SELECT DISTINCT Prepod, Tip FROM R3 GROUP BY Prepod, Tip HAVING Count(*) = 1)

  1. Кафедры, преподаватели которых не ведут курсового проектирования.

SELECT DISTINCT R2.Kaf, R3.Tip FROM R2, R3 WHERE R2.Prepod = R3.Prepod and R3.Tip <> ‘Курсовая’

  1. Курсы, на которых ведут занятия преподаватели кафедры 33.

SELECT DISTINCT Kurs FROM (SELECT DISTINCT R1.Kurs, R2.Kaf FROM R1, R2, R3 WHERE R1.Disc = R3.Disc and R3.Prepod = R2.Prepod and R2.Kaf = 33)

  1. Кафедры, преподаватели которых работают только на младших курсах (1-ом или 2-ом).

SELECT DISTINCT Kaf FROM (SELECT DISTINCT R1.Kurs, R2.Kaf FROM R1, R2, R3 WHERE R1.Disc = R3.Disc and R3.Prepod = R2.Prepod and R1.Kurs < 3)

22. Даны отношения:

R1

ФИО студента

№ группы

Курс

R2 R4

№ группы

Выпускающая кафедра

Кафедра

Факультет

R3

Название работы

ФИО студента

Представляющая кафедра

  1. Студентов, представивших работы более чем от одной кафедры.

SELECT DISTINCT a.FIO FROM R3 as a, R3 as b WHERE a.FIO=b.FIO and a.Kafedra<>b.kafedra

  1. Кафедры, на которых подготовили работы студенты 3-го курса.

SELECT DISTINCT R3.Kafedra FROM R, R3 WHERE R1.FIO=R3.FIO and R1.Kurs=3

  1. Кафедры, на которых подготовили работы студенты других факультетов.

SELECT DISTINCT a.Kafedra FROM R4 AS a, R4 AS b, R1, R2, R3 WHERE R1.FIO=R3.FIO and R1.GROUP_NUM=R2.GROUP_NUM and (b.Fackultet in (SELECT R4.Fackultet FROM R3, R4 WHERE R3.KAFEDRA=R4.KAFEDRA)) and (a.Fackultet in(SELECT R4.Fackultet FROM R4, R3, R2, R1 WHERE R4.KAFEDRA=R2.KAFEDRA and R1.FIO=R3.FIO and R1.GROUP_NUM=R2.GROUP_NUM)) and a.Fackultet<>b.Fackultet and a.Kafedra=R2.KAFEDRA and b.Kafedra=R3.KAFEDRA;

  1. Работы, подготовленные студентами различных факультетов.

SELECT DISTINCT R3.Work_Name FROM R1, R2, R3, R4 WHERE R4.Kafedra = R2.Kafedra and R1.FIO = R3.FIO and R1.NGroup = R2.NGroup and R3.Kafedra = R4.Kafedra GROUP BY R3.Work_Name HAVING Count(*)>1