Задание 3. Построение SQL

advertisement
Задание №3
Где делать: Oracle
Срок сдачи: 3 декабря.
На базе сделанного задания №1 требуется создать структуру БД в Oracle, заполнить
её, дабы продемонстрировать выполнение последующих запросов, и выполнить
следующие задания.
Предлагается изменить структуру БД путем (можно в процессе создания):




добавления новых полей;
изменения существующих полей в таблицах;
добавление новых таблиц;
добавление и изменение связей между таблицами.
Требуется:






Добавить информацию о научной степени, должности, домашнем адресе и номере
страхового полиса преподавателя. Информация о домашнем адресе не должна
содержать более 100 букв. Номер страхового полиса должен иметь границы: от
100000 до 999999.
Добавить информацию о количестве часов лекций и семинаров по каждому
предмету (т.е. должно быть расписание, в котором бы указывалось, какой предмет
ведётся в какой аудитории с указанием лекция это или семинар (лекции и
семинары могут быть в разных аудиториях в разное время)).
Добавить информацию о группах, у которых ведется конкретный предмет.
Добавить информацию о месте проведения занятия (учебный корпус, аудитория).
Добавить информацию о воинской обязанности студента, о типе обучения
(бюджетное, платное).
Добавить информацию о местопроживании студента. Хотелось бы знать проживает
ли студент в общежитии, сумму задолженности за проживание.
Добавить информацию о результатах сессий студента: какие экзамены были
сданы/перенесены/не сданы, оценки, Ф.И.О. о принимающем экзамен
преподавателе, сколько пересдач было по каждому предмету (надо учесть, что
есть разные сессии, проводимые в разное время; у студента есть пересдачи (до 2х)).
Нужно продемонстрировать применение всех операторов DDL и DML: CREATE, ALTER, DELETE,
UPDATE, INSERT. Все запросы хранить в виде последовательности в SQL-скриптах (начиная от
самого начала создания таблицы; не забывайте вначале делать последовательность DROP-ов
будущих таблиц, дабы при запуске скрипта не возникало казусов).
Запросы
Требуется:
1. Получить весь список преподавателей, проживающих в Академгородке и в Нижней
Ельцовке (1).
2. Узнать информацию о преподавателях, которые ведут более 45 академических
часов лекций (1)
3. Какие группы имеют самое большое кол-во часов семинаров? (2)
4. Получить список старост, которые являются «бюджетниками», посещающие
военную кафедру и не проживающие в общежитии (1).
5. Вывести информацию о студентах, которые не сдали 3 экзамена за последнюю
сессию, с названиями соотвествующих предметов и Ф.И.О преподавателей,
поставивших «банан» ;-) (1).
6. Вывести преподавателя с максимальным несоответствием: разница между
средним баллом его оценок на экзамене и средним баллом успеваемости в
течение семестра максимален (2).
7. Вывести ФИО преподавателя, у которого больше всего студентов (у которых он чтото ведёт) (2).
8. Посчитать среднюю успеваемость студентов в группах (1).
9. Посчитать среднюю успеваемость студентов у каждого преподавателя (по его
предмету) (2).
10. Вывести группу с максимальным средним баллом (1).
11. Вывести преподавателя с максимальной успеваемостью в своих группах (2).
12. Вывести наиболее активную группу (количество полученных оценок максимально)
(2).
13. Вывести самого доброго преподавателя: того, средняя успеваемость студентов
которого по его предмету больше, чем средняя успеваемость студентов других
преподавателей (по их предметам) (1, 2).
Download