В базе данных создать отчеты по запросам на выборку.
Задания на краевую олимпиаду по базам данных для отделения АСУ
ЗАДАНИЕ I.
База данных klinika.mdb содержит информацию о больных небольшой частной клиники за 2013 год. Больной может обращаться к разным врачам, информация о каждом посещении клиники содержится в таблице «Карта посещения».
Внимательно изучите структуру базы данных klinika.mdb и используя язык запросов SQL и конструктор запросов составьте запросы к базе данных согласно заданиям. При выполнении этих упражнений нельзя создавать вспомогательные таблицы или запросы, за исключением запроса №12.
ЗАПРОСЫ
1.Определить количество обращений к каждому конкретному врачу в феврале. Упорядочить посещения в порядке убывания (5 баллов).
2.Для врача, ФИО которого вводится с клавиатуры (запрос с параметром) вывести количество посещений за февраль (5 баллов).
3.Определить врача, к которому было больше всего посещений в феврале. Результат должен содержать ФИО врача. (25 баллов)
4.Посчитать количество посещений клиники больными из разных городов в феврале. Результат должен содержать следующие поля: «Название города», «Кол-во посещений», «На общую сумму». Упорядочить названия городов в порядке возрастания суммы.
(10 баллов)
5.Посчитать количество посещений по месяцам года. Результат должен содержать следующие поля: название месяца, количество посещений, на общую сумму. Используйте дополнительную таблицу «Месяцы». Упорядочите таблицу по месяцам (25
баллов)
6.Выбрать фамилии больных, оплативших посещение врачей в феврале наличными. Результат должен содержать ФИО больного, количество оплаченных наличными посещений, а также сумму, которую они заплатили. Упорядочите список в порядке возрастания суммы (15 баллов)
7.Выбрать фамилии больных, которые в феврале произвели максимальное количество посещений. Результат должен содержать ФИО больного, количество посещений. (25 баллов)
8.Вывести фамилии больных, посетивших врачей на сумму более 500 рублей в феврале. (10 баллов)
9.Выбрать ФИО врачей, которые в феврале принимали больных только из Хабаровска и больше ниоткуда. (25 баллов)
10.Выбрать ФИО врачей, которые принимали больных и из Хабаровска и из Комсомольск-на-Амуре в феврале. (20 баллов)
11.Определить названия городов, из которых ни разу не поступали больные в течение февраля. Исключить дублирование записей. (15 баллов)
12.Создать перекрестный запрос, в строках которого ФИО больных, а в столбцах ФИО врачей. На пересечении строк и столбцов общая сумма стоимости посещений конкретного врача данным больным за февраль. Для выполнения этого задания можно использовать вспомогательный запрос. (15 баллов)
13.Определить даты в феврале, когда количество посещений врачей было максимальным. (15 баллов)
14.Определить ФИО врачей, которые заработали для клиники самую большую и самую маленькую суммы. (20 баллов)
15.Определить распределение количество посещений больными клиники по месяцам в процентах. Результат должен содержать: название месяца, отношение в процентах количества разговоров в данный месяц к общему количеству разговоров за год. Отформатировать столбец «Процент посещений» как процентный с точностью 2 цифры после точки. (20 баллов)
ЗАДАНИЕ II.(130 баллов)
Инструкторы центра занятости владеют информацией о вакантных рабочих местах. Они же регистрируют все данные о безработных, приходящих в центр занятости. Если безработный трудоустраивается, информацию о нем удаляют и корректируют данные о количестве вакантных рабочих мест.
1.В базе данных должна храниться следующая информация: коды инструкторов и их рабочие телефоны; для каждого безработного его паспортные данные, пол, ФИО, адрес, телефон, дата рождения, образование, последнее место работы, статья увольнения, дата увольнения, названия специальностей, которыми он владеет с указанием разряда по каждой из них; названия предприятий, которым требуются работники; информация о том, кто им нужен и в каком количестве.
(Создание несвязанных таблиц – 10 баллов)
При создании объектов в конструкторе, необходимо воспользоваться столбцом ОПИСАНИЕ, для пояснения того, какую информацию содержит данное поле. Для всех отношений должны быть заданы первичные ключи и указаны связи между отношениями. При создании отношений, необходимо указать тип связей: один-к-одному, один-ко-многим, соблюсти требования целостности данных, исключить избыточность информации в таблицах. Все отношения должны быть нормализованы и приведены к третьей нормальной форме.
(Создание связанных таблиц – 10 баллов)
2. В базе данных создать следующие запросы на выборку:
o выяснить, кого больше среди безработных: мужчин или женщин (3 балла);
o определите самую не востребованную специальность (5 баллов);
o определить самую не востребованную специальность (5 баллов);
o найти среди безработных всех, кто более полугода не может трудоустроиться (7 баллов);
o найти среди безработных всех мужчин в возрасте не старше тридцати пяти лет, имеющих определенную специальность, и разряд, больше определенного значения (5 балла).
3.В базе данных создать следующие запросы на изменение:
o изменить адрес и телефон определенного безработного (5 баллов);
o увеличить количество мест по одной из требуемых специальностей (4 балла);
o безработный освоил еще одну специальность - выполнить запрос на добавление соответствующей информации (5 баллов);
o с помощью запроса на создание таблицы создать архив, который будет содержать информацию обо всех трудоустроившихся (5 баллов);
o безработный трудоустроился - удалить из соответствующей таблицы информацию о нем (5 баллов).
4.Создать перекрестный запрос вида (8 баллов):
Название предприятия | Общее количество мест | Распределение по специальностям |
5.В базе данных создать следующие формы:
o появление нового безработного (5 баллов);
o появление новых вакантных рабочих мест: выбор названия предприятия, выбор названия специальности и собственно добавление количества рабочих мест (5 баллов);
o организация трудоустройства: выбор безработного, выбор предприятия и специальности (должности), отметка о трудоустройстве и уменьшение количества мест по соответствующей специальности для соответствующего предприятия (7 баллов).
Все формы должны иметь удобную навигацию. Создайте кнопки для перехода к предыдущей и последующей записям и кнопку Выход.
В базе данных создать отчеты по запросам на выборку.
o найти среди безработных всех, кто более полугода не может трудоустроиться (3 балла);
o найти среди безработных всех мужчин в возрасте не старше тридцати пяти лет, имеющих определенную специальность, и разряд, больше определенного значения (3 балла).
7.Для автоматизации процесса работы с базой данных, создайте следующие макросы:
o Создайте макрос, который при просмотре данных о безработных в форме при условии, что профессия человека - «программист» создает надпись с текстом "Годен!" (20 баллов).
8. В базе данных создать главную кнопочную форм.
Добавьте рисунок на главную кнопочную форму (5 баллов).
Обеспечьте открытие главной кнопочной формы при запуске базы данных (5 баллов).