Упражнение 2. Учет заказов


Задание:
Пусть некая фирма занимается торговлей кондитерскими изделиями. Клиентами (покупателями) фирмы являются рестораны, кафе, клубы и т.д. Необходимо разработать базу данных для учета и анализа заказов фирмы.

 
содержание



 

Шаг 1. Проектирование базы данных

  1. Основная таблица проектируемой базы данных должна содержать сведения о заказах. В числе таких сведений должны быть:

    Каждая строка таблицы с такими полями содержит полную информацию о конкретном заказе, а вся таблица в целом - дает возможность не только вести учет, но и анализировать деятельность фирмы (по объемам продукции, стоимости, датам и т.п.).

  2. Если таблица со сведениями о заказах будет оформлена в виде единой таблицы Microsoft Access, то это будет не самым лучшим вариантом организации данных. Например, значения полей "Наименование клиента" и "Адрес клиента" полностью определяются полем "Код клиента" и в базе будет наблюдаться дублирование информации. Может произойти и потеря информации: при удалении записей о заказах будут удаляться и сведения о клиентах.

    Аналогичная ситуация складывается и с полями "Код продукта", "Название продукта", "Цена". Кроме того, значение поле "Стоимость" является произведением цены на количество, поэтому данное поле можно вообще не включать в таблицу, при необходимости его следует вычислять.

  3. Таким образом, имеет смысл организовать рассматриваемую нами базу данных в виде трех связанных таблиц:

    Поля "Код клиента" и "Код продукта" таблицы "ЗАКАЗЫ" должны быть связаны с соответствующими полями таблиц "КЛИЕНТЫ" и "ПРОДУКТЫ".

    Подумайте о назначении ключевых полей в таблицах, типах данных и размерах полей, дополнительных параметрах (необходимости указания значений по умолчанию, признаков обязательности и т.п.).

 

Шаг 2. Создание базы данных

  1. Создайте макеты указанных выше таблиц. Настройте подстановочные поля и укажите параметры межтабличных связей (обеспечение целостности данных).

  2. Создайте формы для работы с всеми таблицами. Сделайте так, чтобы формы для работы с таблицами "КЛИЕНТЫ" и "ПРОДУКТЫ" в каждый момент времени позволяли бы работать только с одной записью (например, с данными только одного клиента), а форма для работы с таблицей "ЗАКАЗЫ" отображала бы сразу группу заказов.

  3. Заполните таблицы следующими данными:
     

    КЛИЕНТЫ
     Код клиента 
     Наименование клиента 
     Адрес клиента 
    10
    Кафе «Парус» Зеленая, 12
    20
    Клуб «Белый попугай» Лесная, 28
    30
    Закусочная «Сирена» Весенняя, 45
    40
    Ресторан «Маяк» Голубева, 10
    50
    Бистро «Париж» Московская, 7
    60
    Клуб «Орфей» Волжская, 51

     

    ПРОДУКТЫ
     Код продукта 
     Название продукта 
     Цена 
    200
    Конфеты «Южная ночь»
    32,60
    300
    Печенье «Столичное»
    16,40
    400
    Торт «Птичье молоко»
    35,20
    500
    Пастила фруктовая
    24,80

    Таблицу "ЗАКАЗЫ" заполните по своему усмотрению (10-30 записей).
     

 

Шаг 3. Анализ информации в базе данных

  1. Создайте запрос, который позволяет просматривать список заказов в более наглядном виде. Поместите в результирующую таблицу все поля таблицы "ЗАКАЗЫ", за исключением полей "Код клиента" и "Код продукта", а также дополнительное (вычисляемое) поле "Стоимость".

    Для того, чтобы создать вычисляемое поле, в бланк запроса по образцу в одном из столбцов вместо имени поля следует поместить формулу. В формулу должны входить название нового поля, знак ":", после которого заключенные в квадратные скобки названия полей, участвующих в расчете, а также знаки математических операций. Например, в случае добавления поля "Стоимость" формула может выглядеть так:

    Стоимость: [Количество]*[Цена]

  2. Создайте запрос, который позволяет посмотреть сводные данные о стоимости всех заказов по каждому виду продуктов (т.е. необходимо получить таблицу, в которой перечислялись бы продукты и денежные суммы, которые были получены от реализации данных продуктов за все время деятельности фирмы). Подобные запросы требуют использования итоговых вычислений.

    Итоговые запросы позволяют производить вычисления по некоторому полю в группах записей. Для того, чтобы вы смогли задать параметры групповых операций, необходимо открыть бланк запросов по образцу и нажать кнопку на панели инструментов Microsoft Access. В бланке запросов по образцу добавится дополнительная строка "Групповые операции", с помощью которой можно задать необходимые параметры.

    Здесь, в первую очередь, следует задать поля, по которым следует производить группировку. Это позволяет как бы объединить все записи с одинаковыми значениями в соответствующих полях в одну запись. Для остальных полей следует задать групповую операцию, которая будет произведена для всех записей в выделенных группах.

    К основным групповым операциям можно отнести суммирование (Sum), поиск минимального, максимального и среднего значений (Min, Max и Avg), определение количества записей (Count).

    Для решения поставленной задачи, необходимо составить запрос, который будет выполняться на основе анализа полей "Название продукта" и "Стоимость" составленного ранее (в п. 7) запроса. Группировку следует сделать по полю "Название продукта", а к полю "Стоимость" следует применить операцию суммирования.

  3. Создайте запрос, который позволяет просматривать статистику по клиентам. Сделайте так, чтобы в результирующей таблице присутствовали сведения о количестве и суммарной стоимости заказов по каждому клиенту.

  4. Измените предыдущие (создайте новые) запросы так, чтобы они показывали сведения не за весь период работы фирмы, а лишь за некоторое время (например, за последний год, месяц или день). (Используйте параметр "Условие отбора" в бланке запросов по образцу).

  5. Создайте отчет, показывающий сводные данные за некоторый отрезок времени по фирмам о проделанных заказах. В отчете должны содержаться данные о том, какие фирмы, какие товары и на какие суммы приобретали. Подумайте, какой запрос и на основе каких итоговых вычислений вам понадобится. Создайте сначала этот запрос, и на его основе создайте отчет.

 



Сергеев А.Н. КАГИ ВГПУ. Сентябрь 2003