Задание №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 (список других книг)