Задание:
Пусть некая фирма занимается торговлей кондитерскими изделиями. Клиентами (покупателями) фирмы являются рестораны, кафе, клубы и т.д. Необходимо разработать базу данных для учета и анализа заказов фирмы.
содержание |
Основная таблица проектируемой базы данных должна содержать сведения о заказах. В числе таких сведений должны быть:
Каждая строка таблицы с такими полями содержит полную информацию о конкретном заказе, а вся таблица в целом - дает возможность не только вести учет, но и анализировать деятельность фирмы (по объемам продукции, стоимости, датам и т.п.).
Если таблица со сведениями о заказах будет оформлена в виде единой таблицы Microsoft Access, то это будет не самым лучшим вариантом организации данных. Например, значения полей "Наименование клиента" и "Адрес клиента" полностью определяются полем "Код клиента" и в базе будет наблюдаться дублирование информации. Может произойти и потеря информации: при удалении записей о заказах будут удаляться и сведения о клиентах.
Аналогичная ситуация складывается и с полями "Код продукта", "Название продукта", "Цена". Кроме того, значение поле "Стоимость" является произведением цены на количество, поэтому данное поле можно вообще не включать в таблицу, при необходимости его следует вычислять.
Таким образом, имеет смысл организовать рассматриваемую нами базу данных в виде трех связанных таблиц:
Поля "Код клиента" и "Код продукта" таблицы "ЗАКАЗЫ" должны быть связаны с соответствующими полями таблиц "КЛИЕНТЫ" и "ПРОДУКТЫ".
Подумайте о назначении ключевых полей в таблицах, типах данных и размерах полей, дополнительных параметрах (необходимости указания значений по умолчанию, признаков обязательности и т.п.).
Создайте макеты указанных выше таблиц. Настройте подстановочные поля и укажите параметры межтабличных связей (обеспечение целостности данных).
Создайте формы для работы с всеми таблицами. Сделайте так, чтобы формы для работы с таблицами "КЛИЕНТЫ" и "ПРОДУКТЫ" в каждый момент времени позволяли бы работать только с одной записью (например, с данными только одного клиента), а форма для работы с таблицей "ЗАКАЗЫ" отображала бы сразу группу заказов.
Заполните таблицы следующими данными:
Кафе «Парус» | Зеленая, 12 | |
Клуб «Белый попугай» | Лесная, 28 | |
Закусочная «Сирена» | Весенняя, 45 | |
Ресторан «Маяк» | Голубева, 10 | |
Бистро «Париж» | Московская, 7 | |
Клуб «Орфей» | Волжская, 51 |
Конфеты «Южная ночь» | ||
Печенье «Столичное» | ||
Торт «Птичье молоко» | ||
Пастила фруктовая |
Таблицу "ЗАКАЗЫ" заполните по своему усмотрению (10-30 записей).
Создайте запрос, который позволяет просматривать список заказов в более наглядном виде. Поместите в результирующую таблицу все поля таблицы "ЗАКАЗЫ", за исключением полей "Код клиента" и "Код продукта", а также дополнительное (вычисляемое) поле "Стоимость".
Для того, чтобы создать вычисляемое поле, в бланк запроса по образцу в одном из столбцов вместо имени поля следует поместить формулу. В формулу должны входить название нового поля, знак ":", после которого заключенные в квадратные скобки названия полей, участвующих в расчете, а также знаки математических операций. Например, в случае добавления поля "Стоимость" формула может выглядеть так: |
Создайте запрос, который позволяет посмотреть сводные данные о стоимости всех заказов по каждому виду продуктов (т.е. необходимо получить таблицу, в которой перечислялись бы продукты и денежные суммы, которые были получены от реализации данных продуктов за все время деятельности фирмы). Подобные запросы требуют использования итоговых вычислений.
Итоговые запросы позволяют производить вычисления по некоторому полю в группах записей. Для того, чтобы вы смогли задать параметры групповых операций, необходимо открыть бланк запросов по образцу и нажать кнопку на панели инструментов Microsoft Access. В бланке запросов по образцу добавится дополнительная строка "Групповые операции", с помощью которой можно задать необходимые параметры.
Здесь, в первую очередь, следует задать поля, по которым следует производить группировку. Это позволяет как бы объединить все записи с одинаковыми значениями в соответствующих полях в одну запись. Для остальных полей следует задать групповую операцию, которая будет произведена для всех записей в выделенных группах.
К основным групповым операциям можно отнести суммирование (Sum), поиск минимального, максимального и среднего значений (Min, Max и Avg), определение количества записей (Count).
|
Для решения поставленной задачи, необходимо составить запрос, который будет выполняться на основе анализа полей "Название продукта" и "Стоимость" составленного ранее (в п. 7) запроса. Группировку следует сделать по полю "Название продукта", а к полю "Стоимость" следует применить операцию суммирования.
Создайте запрос, который позволяет просматривать статистику по клиентам. Сделайте так, чтобы в результирующей таблице присутствовали сведения о количестве и суммарной стоимости заказов по каждому клиенту.
Измените предыдущие (создайте новые) запросы так, чтобы они показывали сведения не за весь период работы фирмы, а лишь за некоторое время (например, за последний год, месяц или день). (Используйте параметр "Условие отбора" в бланке запросов по образцу).
Создайте отчет, показывающий сводные данные за некоторый отрезок времени по фирмам о проделанных заказах. В отчете должны содержаться данные о том, какие фирмы, какие товары и на какие суммы приобретали. Подумайте, какой запрос и на основе каких итоговых вычислений вам понадобится. Создайте сначала этот запрос, и на его основе создайте отчет.
Сергеев А.Н. КАГИ ВГПУ. Сентябрь 2003