Краткое описание

advertisement
Задание №3 по базам данных. SQL: выборки данных из БД
Краткое описание
Необходимо написать осмысленные запросы на выборку данных из таблиц БД,
предварительно созданных и заполненных в результате задания №2. [Если задание №2
почему-либо не выполнялось, можно использовать стандартные таблицы «Отдел кадров» (схема
SCOTT в стандартной БД Oracle) или чужие таблицы; но это дает меньше баллов.]
Детальное описание
Задание принимается в виде кода SQL-скрипта c операторами select для Oracle
(возможно использование PostgreSQL или MySQL на личном компьютере в сети МФТИ, но в
этих случаях задание сложно выполнить полностью). Инструкции select перед сдачей должны быть
проверены (последовательно исполнены) в каком-либо SQL-клиенте (в классе имеется только
Oracle SQL Plus и SQL Plus Worksheet). При сдаче каждого запроса должен быть четко
сформулирован соответствующий вопрос на русском языке.
Примерный набор требуемых запросов (может быть изменен преподавателем, в том
числе в соответствие с индивидуальной схемой БД):
1. Выбор значений заданных атрибутов из более чем двух таблиц (соединение) с
сортировкой * – 1 балл
2. Использование условий WHERE, отличных от (=, <, >), – 1 балл
3. Запрос с использованием внешнего соединения * – 1 балл
4. Уместное использование однострочных функций (минимум, двух) – 1 балл
5. Вычисление групповой функции (GROUP BY) * – 1 балл (с HAVING или с
несколькими таблицами – 2 балла).
6. Запрос с использованием подзапросов * – 1 балл (многострочный подзапрос – 2)
7. Уместное использование представления (view) – 1 балл
8. Запрос с использованием какой-нибудь теоретико-множественной операции
(объединение, пересечение, разность) над результатами выборок – 1 балл
9. Древовидный запрос CONNECT BY (Oracle) – 1 балл (+ 1, если потребовалось
добавлять столбец в таблицу).
10. Другой сложный запрос, включающий хитрые условия – 2 балла.
Помеченные звездочками (*) запросы являются обязательными.
Все запросы (кроме 5, 8, 9) должны затрагивать не менее двух таблиц.
Два (но не более) запроса одинакового типа оцениваются (указанным числом баллов) в том
случае, если они существенно различаются (используемыми таблицами или еще чем-либо –
больше, чем просто различие критериев отбора строк или сортировки). Таких повторений
типа запросов должно быть не более трех.
Итого за задачу: 6-15 баллов.
Варианты задания
Варианты отличаются предметной областью и вытекают из выбранного ранее варианта
задания №1. Как и в реальных условиях, конкретные вопросы специалиста предметной
области, на которые должны отвечать SQL-запросы, формулируются самостоятельно, но не
являются заданными извне. Они лишь могут корректироваться извне (в данном случае,
преподавателем) при предварительном показе работы.
Сроки выполнения задания
Примерно половина запросов делается на 8-9 паре (можно не дожидаться приема
преподавателем предыдущего задания, поскольку требования к наполнению таблиц
диктуется запросами на выборку). 10 пара посвящается разбору проблем построенных
запросов, доработке и сдаче задания.
Дополнительная информация
Любые учебные пособия по SQL, например,
http://www.mysql.ru/docs/gruber/ (Классическая книга М.Грубера «Введение в SQL»),
http://www.sql.ru/docs/sql/u_sql/index.shtml («Продвинутая» книга -//- «Понимание SQL»)
http://www.citforum.ru/database/osbd/glava_62.shtml (Лекция 15 учебника С.Д. Кузнецова)
http://www.sql.ru/books/books.aspx?g=6&s=0 (список других книг)
Download