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

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