2 Практическая часть
Задание 1.
Клиенты размещают заказы на поставку товара на фирме. За каждым заказом закреплен сотрудник фирмы. При оформлении заказа указывается дата размещения заказа. Дата исполнения указывается только тогда, когда заказ выполнен. До этого поле «Дата исполнения» остается пустым. Разработать схему базы данных, содержащую следующие таблицы (таблицы 2 и таблица 3).
Таблица 2 - Клиенты
Имя поля |
Тип данных |
Код клиента (РК) |
Числовой |
ФИО клиента |
Текстовый |
Адрес |
Текстовый |
Город |
Текстовый |
Страна |
Текстовый |
Телефон |
Числовой |
Таблица 3 – Заказы
Имя поля |
Тип данных |
Номер заказа (РК) |
Числовой |
ФИО сотрудника |
Текстовый |
Дата размещения |
Дата/время |
Дата исполнения |
Дата/время |
Сумма заказа |
Денежный |
Код клиента |
Числовой |
Курсивом выделены первичные ключи (РК). Связать таблицы, обеспечив целостность данных, по полям «Код клиента». Заполнить таблицы самостоятельно, учитывая следующую информацию: клиентов – пять-шесть, заказов – 12-15. Два-три клиента не из Беларуси. Некоторые клиенты разместили только по одному заказу, а некоторые более одного, причем хотя бы один из клиентов разместил более трех заказов. Три-четыре заказа еще не выполнены.
Разработать следующие запросы:
1 Получить ФИО, адрес и страну клиентов, чьи заказы еще не выполнены.
2 Получить ФИО и адрес постоянных клиентов, которые разместили более трех заказов.
3 Получить ФИО сотрудников, которые работали с иностранцами.
4 Перекрестный запрос: сколько раз каждый покупатель заключал контракт за год. Подвести итог для клиентов. Сортировка по ФИО клиента.
Разработка отчетов.
Создать отчет, содержащий сведения о всех заказах за указанный период (задать самостоятельно). Сгруппировать сведения по странам. Подсчитать количество заказов и общую сумму заказов по странам и всего.
Разработка форм.
Разработать сложную форму: главная форма должна содержать всю информацию о клиенте, подчиненная – информацию о всех заказах, сделанных этим клиентом. На форме пометить кнопки для поиска записей и просмотра отчета, перехода к первой и последней записям.
Задание 2.
Клиенты размещают заказы на поставку товара на фирме. За каждым заказом закреплен сотрудник фирмы. При оформлении заказа указывается дата размещения заказа. Дата исполнения указывается только тогда, когда заказ выполнен. До этого поле «Дата исполнения» остается пустым. Разработать схему базы данных, содержащую следующие таблицы (таблицы 2 и таблица 3).
Связать таблицы, обеспечив целостность данных, по полям «Код клиента».
Заполнить таблицы самостоятельно, учитывая следующую информацию: клиентов – пять-шесть, заказов – 12-15. Два-три клиента не из Беларуси. Некоторые клиенты разместили только по одному заказу, а некоторые более одного, причем хотя бы один из клиентов разместил более трех заказов. Три-четыре заказа еще не выполнены.
Разработать следующие запросы:
1 Получить номера заказов, которые разместили иностранные клиенты.
2 Определить сколько заказов было сделано из каждой страны. На экран вывести страну и количество заказов.
3 Определить для каждого клиента общую сумму по всем заключенным контрактам за указанный год. Отсортировать записи в порядке убывания суммы.
4 Определить для каждого сотрудника общую сумму по всем заключенным контрактам, максимальную и среднюю величину заказа. Отсортировать записи в порядке убывания суммы.
5 Получить список покупателей и номера контрактов, заключенных в период с _ по _ (период выбрать самостоятельно).
Разработка отчетов.
Создать отчет, содержащий сведения о клиентах и заказах, которые еще не выполнены. Сгруппировать сведения по сотрудникам. Подсчитать количество невыполненных заказов и их общую сумму по каждому сотруднику и всего.
После создания отчета с помощью мастера его следует, при необходимости, отредактировать в режиме конструктора.
Разработка форм.
Разработать сложную форму: главная форма должна содержать всю информацию о клиенте, подчиненная – информацию о всех заказах, сделанных этим клиентом. На форме пометить кнопки для поиска записей и просмотра запросов.
Задание 3.
В магазин поступают продукты питания. Для каждого товара указаны его единицы измерения и срок реализации (в днях). Цена единицы товара может быть разной у разных поставщиков. Необходимо разработать схему базы данных, содержащую следующие таблицы (таблица 4 и таблица 5).
Таблица 4 - Продукты
Имя поля |
Тип данных |
Код продукта (РК) |
Числовой |
Продукт |
Текстовый |
Ед_Изм |
Текстовый |
Срок реализации |
Числовой |
Таблица 5 - Поставка
Имя поля |
Тип данных |
Номер записи (РК) |
Числовой |
Код продукта |
Числовой |
Поставщик |
Текстовый |
Дата поставки |
Дата/время |
Цена за единицу |
Денежный |
Объем поставки |
Числовой |
Курсивом выделены первичные ключи (РК).
Связать таблицы, обеспечив целостность данных, по полям «Код продукта».
Заполнить таблицы самостоятельно, учитывая следующую информацию: продуктов – три-четыре, поставок – 12-15. Срок реализации одного-двух продуктов не более двух дней. Для таких продуктов время с последней поставки больше срока реализации. Даты поставок – в течение месяца до даты выполнения контрольной работы. Один-два поставщика поставляют более трех наименований продуктов. Один-два поставщика поставляли продукты более пяти раз.
Разработать следующие запросы:
1 Определить минимальную, максимальную и среднюю цену поставки каждого продукта.
2 Определить последнюю дату поставки каждого продукта.
3 Определить продукты, для которых количество дней, прошедшее с последней даты поставки превышает срок их реализации.
4 Получить список скоропортящихся продуктов (срок реализации меньше пяти дней).
Разработка отчетов.
Предварительно рекомендуется создать запрос, в котором кроме выбора нужных полей из таблиц необходимо рассчитать сумму поставки для каждого продукта как произведения цены за единицу на объем.
Создать отчет, содержащий полные сведения о всех поставках. Выполнить группировку по продуктам. Подсчитать количество поставок, суммарный объем, среднюю цену, общую сумму по каждому продукту и общее количество поставок, общую сумму в целом по магазину.
Разработка форм.
Разработать сложную форму: главная форма должна содержать всю информацию о продукте, подчиненная – информацию о поставках данного продукта. На форме поместить кнопки для перехода по записям и просмотра отчетов.
Задание 4.
В магазин поступают продукты питания. Для каждого товара указаны его единицы измерения и срок реализации (в днях). Цена единицы товара может быть разной у разных поставщиков. Необходимо разработать схему базы данных, содержащую следующие таблицы (таблица 4 и таблица 5).
Связать таблицы, обеспечив целостность данных, по полям «Код продукта».
Заполнить таблицы самостоятельно, учитывая следующую информацию: продуктов – три-четыре, поставок – 12-15. Срок реализации одного-двух продуктов не более двух дней. Для таких продуктов время с последней поставки больше срока реализации. Даты поставок – в течение месяца до даты выполнения контрольной работы. Один-два поставщика поставляют более трех наименований продуктов. Один-два поставщика поставляли продукты более пяти раз.
Разработать следующие запросы:
1 Получить список поставщиков, которые поставляют более трех наименований товаров.
2 Получить список постоянных поставщиков (осуществивших более пяти поставок).
3 Получить список поставщиков, которые заданного числа привезли заданный продукт, цену продукта и объем поставки (дату и продукт задать самостоятельно).
4 Перекрестный запрос: какой объем каждого продукта поставил каждый поставщик? Подвести итог по товарам.
Разработка отчетов.
Предварительно рекомендуется создать запрос, в котором кроме выбора нужных полей из таблиц необходимо рассчитать сумму поставки для каждого продукта как произведения цены за единицу на объем.
Создать отчет, содержащий сведения о всех поставках. Выполнить группировку по поставщикам. Подсчитать количество поставок и общую сумму по поставщикам и в целом по магазину.
Разработка форм.
Разработать сложную форму: главная форма должна содержать всю информацию о продукте, подчиненная – информацию о поставках данного продукта. На форме поместить кнопки для закрытия формы и просмотра запросов.
Пример выполнения задания
Задание.
Разработать базу данных, которая содержит информацию, учитывающую ремонтов транспортных средств клиентов, выполняемых сотрудниками авторемонтной мастерской, в следующей последовательности.
1 Создать таблицы базы данных согласно приведенной на рисунке 1 информации. Курсивом выделены первичные ключи.
Имя поля |
Тип поля |
|
Имя поля |
Тип поля |
Таблица АВТОМОБИЛИ |
|
Таблица СОТРУДНИКИ |
||
КодАвто |
Числовой |
|
КодСотрудника |
Числовой |
Марка |
Текстовый |
|
Фамилия |
Текстовый |
ГодВыпуска |
Числовой |
|
Имя |
Текстовый |
ФИОвладельца |
Текстовый |
|
Отчество |
Текстовый |
Арес |
Текстовый |
|
Должность |
Текстовый |
Телефон |
Текстовый |
|
Телефон |
Текстовый |
Таблица РЕМОНТЫ |
|
|
|
|
КодРемонта |
Числовой |
|
|
|
КодАвто |
Числовой |
|
|
|
КодСотрудника |
Числовой |
|
|
|
ДатаРемонта |
Дата/время |
|
|
|
СтоимостьРемонта |
Числовой |
|
|
|
СтавкаНДС |
Числовой |
|
|
|
ОбщаяСтоимость |
Числовой |
|
|
|
Рисунок 1 – Таблицы для хранения данных о ремонте автомобилей
2 Связать таблицы.
3 Заполнить все таблицы исходными данными. Вычисляемое поле ОбщаяСтоимость в таблице Ремонты не заполнять.
4 Разработать следующие запросы.
4.1 Показать сведения о ремонтах автомобилей определенной марки (марку выбрать самостоятельно). Выполнить сортировку по дате ремонта.
4.2 Показать фамилии, имена, отчества и должности сотрудников, которые выполняли ремонтные работы в определенный период времени (период выбрать самостоятельно).
4.3 Обновить в таблице Заказы поле ОбщаяСтоимость, которое вычисляется следующим образом:
СтоимостьРемонта * (1 + СтавкаНДС / 100)
4.4 Итоговый запрос: вычислить для каждого сотрудника количество отремонтированных автомобилей и общую стоимость ремонта и показать фамилии сотрудников, количество и общую стоимость ремонтов.
4.5 Перекрестный запрос: вычислить количество ремонтов, выполненных для каждой марки автомобиля каждым сотрудником, и подвести общий итог по маркам.
5 Создать следующие формы:
5.1 Простая форма для таблицы Сотрудники. На форме разместить кнопку для закрытия формы.
5.2 Сложная форма для таблиц Автомобили и Ремонты, где главная форма будет содержать информацию об автомобилях, а подчиненная – о выполненных ремонтах. На форме разместить кнопку для открытия формы Сотрудники и кнопки для перехода к следующей и предыдущей записям и просмотра отчета.
6 Создать отчет, содержащий сведения об автомобилях и выполненных ремонтных работах, выполнив группировку по автомобилям. В отчете должны содержаться сведения о номере, марке и владельце автомобиля, а также об общей сумме ремонтов по каждому автомобилю. Подвести итог по общей сумме ремонтов по каждому автомобилю и по предприятию в целом.
В Access в режиме конструктора создаём три таблицы. В первой таблице «Автомобили» (рисунок 3) содержатся такие сведения об авто, как код авто, марка, год выпуска, ФИО владельца, адрес, телефон. Поле КодАвто является ключевым (курсор на поле КодАвто, правая клавиша мыши, ключевое поле).
Рисунок 3 – Структура таблицы Автомобили
Во второй таблице «Сотрудники» (рисунок 4) содержатся следующие сведения о сотрудниках: код сотрудники, фамилия, имя, отчество, должность, телефон. КодСотрудника является ключевым полем.
Рисунок 4 – Структура таблицы Сотрудники
В третьей таблице «Ремонты» (рисунок 5) содержатся следующие сведения о ремонтах: код ремонта, код авто, код сотрудника, дата ремонта, стоимость ремонта, ставка НДС, общая стоимость (вычисляемое поле). КодРемонта является ключевым полем.
Рисунок 5 – Структура таблицы Ремонты
Таблицы сохранить, затем снова возвратиться в конструктор таблиц для таблицы «Ремонты».
Поле КодАвто заполняется из списка, значения в который заносятся из таблицы Автомобили (КодАвто – (SELECT Автомобили.КодАвто FROM Автомобили;): закладка «Подстановка» – тип элемента управления: список – источник строк: Автомобили.
Поле КодСотрудника заполняется из списка, значения в который заносятся из таблицы Сотрудники (КодСотрудника) – (SELECT Сотрудники.КодСотрудника FROM Сотрудники;).
Это условие позволяет исключить создание записей в таблице ремонты для несуществующих автомобилей и сотрудников.
Для организации постоянных связей между таблицами нажать кнопку «Схема данных» (закладка «Работа с базами данных» и добавить таблицы. Перетащить курсором мыши с нажатой левой клавишей от поля КодАвто таблицы Автомобили к полю КодАвто таблицы Ремонты, и создать связь один-ко-многим. Аналогично от поля КодСотрудника таблицы Сотрудники – к полю КодСотрудника таблицы Ремонты. Вид схемы данных представлен на рисунке 6.
Рисунок 6 – Схема базы данных
Занести в таблицы данные. Вид данных заполненных таблиц представлен на рисунке 7.
Разработать запрос на выборку всех сведения о ремонтах автомобилей определенной марки (Ауди). Выполнить сортировку по дате ремонта.
Создать запрос в режиме конструктора. В поле конструктора добавить таблицы Ремонты, Авто. Для запроса выбрать поля: КодАвто, Марка, КодРемонта, КодСотрудника, ДатаРемонта, СтоимостьРемонта. В столбце Марка в строке условие отбора записать следующую команду «Ауди».
Рисунок 7 - Вид заполненных таблиц
Подобное условие позволяет выбрать из таблицы Ремонты те записи, которые производились с авто данной марки. Сортировка выполнить по ДатаРемонта. Вид данного запроса в режиме конструктора представлен на рисунке 8.
Рисунок 8 – Запрос 1
Разработать запрос 2, позволяющий показать фамилии, имена, отчества и должности сотрудников, которые выполняли ремонтные работы в определенный период времени ( с 01.01.2014 по 20.01.2014). Создать запрос в режиме конструктора.
В поле конструктора запросов добавить таблицы Ремонты, Сотрудники. Для запроса выбрать поля: КодСотрудника, фамилия, имя, отчество, должность, ДатаРемонта. В столбце ДатаРемонта в строке условие отбора записать следующую команду between [“Начало”] Аnd [“Конец”]. Подобное условие позволяет выбрать из таблицы Ремонты данные за указанный период. Вид данного запроса в режиме конструктора представлен на рисунке 9.
Рисунок 9 – Запрос 2
Создать запрос на обновление.
Открыть создание запроса в режиме конструктора. Добавить в запрос таблицу Ремонты. Выбрать в панели быстрого доступа тип запроса – обновление. Поле ОбщаяСтоимость ввести в строке обновление с помощью построителя выражения (закладка «Конструктор»- построитель выражений) записать: [Ремонты]![СтоимостьРемонта] *(1+ [Ремонты]![СтавкаНДС] /100).
Вид данного запроса в режиме конструктора представлен на рисунке 10.
Рисунок 10 – Запрос на обновление
Создание перекрестного запроса.
Открыть создание запроса в режиме конструктора. Добавить в запрос таблицы Автомобили, Сотрудники, Ремонты. Выбрать в панели быстрого доступа тип запроса – перекрестный. Поле Марка становится заголовком строк, поле Фамилия – заголовком столбцов, поле КодРемонта – значением на пересечении строк и столбцов (количество ремонтов). Ввести новое поле Итого, в которое будет заносится количество поставок по товару – оно становится заголовком строки. Добавить групповые операции: по полям Марка и Фамилия. По полям КодРемонта и Итого - Count (функция вычисляет количество).
Вид данного запроса в режиме конструктора представлен на рисунке 11.
Рисунок 11 – Перекрестный запрос
Создание итогового запроса: вычислить для каждого сотрудника количество отремонтированных автомобилей и общую стоимость ремонта и показать фамилии сотрудников, количество и общую стоимость ремонтов.
В режиме конструктора создать запрос. Добавить таблицы: Сотрудники, Ремонты. Выбрать поле Фамилия из таблицы Сотрудники, поля КодРемонта и ОбщаяСтоимость из таблицы Ремонты. Добавить групповые операции. По полю Фамилия: группировка, по полю КодРемонта:Count , по полю ОбщаяСтоимость: Sum. Результаты на рисунке 12.
Рисунок 12 – Итоговый запрос
Создать простую форму Сотрудники с помощью мастера форм:
1 Выбрать источник формы – таблица Сотрудники и поля, которые будут содержаться в форме: КодСотрудника, Фамилия, Имя, Отчество, Должность, Телефон.
2 Выбрать внешний вид формы – в один столбец.
3 Задать имя формы - Сотрудники. И выбрать «Изменить макет формы». Нажать «Готово».
В режиме конструктора из Панели элементов перетащить на форму элемент «Кнопка». В отрывшемся мастере выбрать категорию «Работа с формой», в окне действия – «Закрыть форму». На следующем шаге выбрать изображение на кнопке «Выход» и нажать «Готово». Выйти из режима конструктора и сохранить изменения.
Форму Автомобили создать следующим образом: стать на таблицу «Автомобили» в области переходов и нажать иконку «Форма» на закладке «Создание». Далее изменить макет формы в режиме конструктора.
С помощью Мастера отчётов на основании таблицы Ремонты и Автомобили разрабатывается отчёт об авто и выполненных ремонтах с расчетом итоговой суммы ремонта. В отчете содержатся сведения о коде ремонта, дате ремонта, марке фамилии владельца, общей сумме ремонта.
На первом шаге выбрать источник отчета – таблица Ремонты и поля, которые должны содержаться в отчете: КодРемонта, ДатаРемонта, ОбщаяСтоимость, из таблицы Автомобили: поля Марка, Датавыпуска, ФИОВладельца.
На втором шаге выбрать уровень группировки: Марка.
На третьем шаге, нажав кнопку «Итоги» выбрать по полю ОбщаяСтоимость итог – Sum, что позволит суммировать стоимость ремонта как по авто, так и в целом по предприятию.
На четвертом шаге выбрать тип макета: ступенчатый и ориентацию: книжная.
На пятом шаге назвать отчет: Ремонты и нажать «Готово».
С помощью конструктора отчетов можно редактировать макет отчета: вместо слова Sum написать «Итоговая сумма ремонта».
