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

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

R1

ФИО студента

группы

R2

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

ФИО автора

Вид работ

Алмаз

Иванов

УИРС

Квант

Сидоров

Статья

Рубин

Петров

Программа

R3

группы

Факультет

R4

Вид работ

Количество баллов

  1. Работы, подготовленные студентами 4-го факультета.

SELECT R3.NameRab FROM R1, R2, R3 WHERE R1.NGroup=R2.NGroup and R1.Stud =R3.Stud and R2.Fak=4

  1. Факультеты, студенты которых подготовили только УИРС.

SELECT DISTINCT R2.Fak FROM R1, R2, R4 WHERE R2.NGroup=R1.NGroup and R1.Stud=R3.Stud and R3.Work_Type='УИРС' and (R2.Fak not in(SELECT R2.Fak FROM R2, R3, R1 WHERE R2.NGroup=R1.NGroup and R1.Stud=R3.Stud and R2.Work_Type<>' УИРС’));

  1. Студентов, которые представили более одной статьи (вид работы — «Статья»).

SELECT R3.Stud FROM R3 WHERE R3.Wid_Rab=’Статья’ GROUP BY Stud HAVING Count(*)>1

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

SELECT Stud FROM R3 WHERE GROUP BY Stud HAVING Count(DISTINCT Woprk_Type) > 1

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

R1

ФИО

группы

Курс

R2 R5

группы

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

Кафедра

Факультет

R3

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

Вид работы

ФИО студента

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

R4

Вид работы

Баллы

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

SELECT R3.KAFEDRA FROM R3, R1 WHERE R1.FIO=R3.FIO GROUP BY R3.KAFEDRA HAVING COUNT( R3.WORK_TYPE) = (SELECT COUNT(*) FROM R4)

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

SELECT DISTINCT Facultet FROM R5 WHERE Kafedra not in(SELECT Kafedra FROM R3)

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

SELECT DISTINCT R1.Group_Num FROM R1, R3 WHERE R1.FIO=R3.FIO and (R1.Group_Num not in (SELECT DISTINCT R1.GROUP_NUM FROM R1, R3 WHERE R3.WORK_TYPE<>'статья' and R1.FIO=R3.FIO))

  1. Студентов 1-го курса, подготовивших работы на своей выпускающей кафедре.

SELECT R1.FIO FROM R1,R2,R3 WHERE R1.FIO=R3.FIO and R2.Kafedra= R3.Kafedra and R1.Kurs=1 R1.GROUP_NUM=R2.GROUP_NUM

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

R1

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

Название дисциплины

Вид занятий

R2

группы

Название дисциплины

Вид занятий

R3

группы

Курс

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

SELECT DISTINCT Prepod FROM (SELECT Prepod, Vid FROM R1 GROUP BY Prepod, Vid HAVING Count(*) = (SELECT Count(DISTINCT Vid) FROM R1))

  1. Группы, у которых назначены все виды занятий.

SELECT DISTINCT NGroup FROM (SELECT NGroup, Vid FROM R2 GROUP BY NGroup, Vid HAVING Count(*) = (SELECT Count(DISTINCT Vid) FROM R1))

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

SELECT DISTINCT Kurs FROM (SELECT DISTINCT R3.Kurs, R2.Vid FROM R2, R3 WHERE R2.NGroup = R3.NGroup and R3.Kurs not in(SELECT Kurs FROM R3, R2 WHERE R3.NGroup = R2.NGroup and R2.Vid = ‘Курсовая’))

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

SELECT Prepod FROM((SELECT DISTINCT Prepod, Vid FROM R1 GROUP BY Prepod, Vid HAVING Count(*) = 1))

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

SELECT R1.Prepod, R3.Kurs FROM R1, R2, R3 WHERE R1.Disc = R2.Disc and R2.NGroup = R3.NGroup GROUP BY R1.Prepod, R3.Kurs HAVING Count(R3.Kurs) > 1