Задание к самостоятельной работе Лабораторная работа 1 Тема:Система управления базами данных MS Access Телефонный справочник Задача 1. Составить простой телефонный справочник в виде обычного списка телефонов с указанием для каждого телефона номера, имени абонента, его адреса и его категории (друзья, родственники, мастерские, магазины и т.д.). Ключ к задаче: 1. Запустите Microsoft Access 2. В открывшемся диалоговом окне выберите строку Новая база данных 3. Откроется окно "База данных" 4. Дважды щелкните по строке Создание таблицы в режиме конструктора 5. Откроется окно конструктора таблицы. 6. Заполните таблицу в соответствии с рисунком 1:  Рис. 1. Окно проектирования структуры таблицы 7. Задайте имена полей, их описания и длины, согласно приведенной ниже таблице: Имя поля | Описание | Длина | Номер | Номер телефона | | Имя | Имя абонента | | Адрес | Адрес абонента | | Код_категории | Категория абонента | | 8. Нажав правой кнопкой мыши на строке Номер из выпадающего меню выберите пункт "Ключевое поле" 9. Справа от слова Номер появится значок ключа 10. Закройте окно таблицы с сохранением под именем"ТЕЛЕФОНЫ". 11. Создайте с помощьюконструктора таблицу - словарь категорий: Имя поля | Тип данных | Описание | Длина | Код | Текстовый | Код_категории | | Наименование | Текстовый | Наименование категории | | 12. Задайте ключевое поле - "Код". 13. Закройте окно таблицы с сохранением под именем "КАТЕГОРИИ" 12. Откройте таблицу "ТЕЛЕФОНЫ" в режиме конструктора, перейдите к типу данных поля "Код_категории" и из раскрывающегося списка выберите "Мастер подстановок". 13. Откроется диалоговое окно (см. рис. 2).  Рис. 2. Диалоговое окно мастера подстановок 12. Укажите следующие параметры (на каждом шаге нажимайте кнопку "Далее"): - Объект "столбец подстановки" будет использовать значения из таблицы или запроса - Значения будут выбираться из таблицы "КАТЕГОРИИ" - В столбец подстановки включить поле "Наименование" (надо выделить это поле и кнопкой переместить его из окна доступных полей в окно выбранных полей) - Оставить предложенные параметры ширины столбцов и скрытия ключевого столбца - Оставить подпись "Код_категории" для подстановочного столбца 13. По окончании нажмите кнопку "Готово" 14. Закройте окно проектирования таблицы "ТЕЛЕФОНЫ". 15. Выбирите пункт меню "Сервис - Схема данных". 16. Откроется окно "Схема данных" (см. рис. 3)  Рис. 3. Окно "Схема данных" 17. Добавьте в схему данных таблицы "ТЕЛЕФОНЫ" и "КАТЕГОРИИ". Закройте окно добавления таблиц. 18. Откройте окно "Изменение связей" для настраиваемой связи (см. рис. 4). Это можно сделать через контекстное меню линии связи или выделив линию связи щелчком мыши и дав команду меню "Связи - Изменить связь"  Рис. 4. Окно "Изменение связей" Установите флажок "Обеспечение целостности данных". Дайте подтверждение на изменение связей (нажмите кнопку "ОК"). 17. Сохраните макет схемы данных, дав команду меню "Файл > Сохранить" или нажав кнопку на панели инструментов. Закройте окно "Схема данных". 18. Откройте таблицу "КАТЕГОРИИ". 19. Заполните таблицу следующим образом:  Рис. 5. Окно таблицы "КАТЕГОРИИ" 20. Закройте таблицу. 21. Откройте таблицу "ТЕЛЕФОНЫ", заполните ее приведенными ниже данными: Номер | Имя | Адрес | Категория | 45-14-15 | Петр Иванович | Улица Большая, 1 | Родственники | 31-98-16 | Дядя Коля | Переулок Маленький, 15 | Родственники | 18-42-51 | Марина | Центральный Проспект, 21 | Друзья | 23-15-48 | Ремонт телевизоров | Переулок Мастеров, 5 | Мастерские | 92-15-30 | Цветочный магазин | Улица Фиалковая, 28 | Магазины | 77-12-53 | Андрей | Аллея Звезд, 4 | Друзья | 51-12-43 | Тетя Света | Улица Родная, 8 | Родственники | 22. Откройте окно "База данных" и переключитесь на вкладку объектов "Запросы". Выберите создание запроса в режиме конструктора. Вам будет предложено добавить таблицы. Сделайте это и закройте окно добавления таблиц. Откроется бланк запроса по образцу (см. рис. 6)  Рис. 6. Бланк запроса по образцу Бланк запроса по образцу состоит из двух частей. В верхней части расположены списки полей тех таблиц, на основе которых основывается запрос. Нижняя часть содержит таблицу, которая определяет структуру запроса, т.е. структуру результирующей таблицы, в которой будут содержаться данные, полученные по результатам запроса. 23. Перетащите поля "Имя", "Номер" и "Код_категории" в формируемую таблицу. Укажите также параметр "Сортировка" (по возрастанию) для поля "Код_категории". Это обеспечит группировку отображаемых записей по категориям. Сохраните составленный запрос (назовите, например, "Телефоны без адресов") и закройте бланк запросов по образцу. Чтобы посмотреть результаты работы запроса, откройте его, сделав двойной щелчок по соответствующей записи в окне "База данных". 24. Составим теперь запрос, который из всего списка телефонного справочника показывает только телефоны друзей. Запустите создание запроса в режиме конструктора и заполните бланк запроса по образцу согласно приведенному ниже примеру:  Рис. 7. Составление запроса "Телефоны друзей" 25. Включите поля "Имя", "Номер" и "Код_категории" (см. рис. 7). 26. Сохраните запрос под именем "Телефоны друзей", закройте бланк запросов по образцу и посмотрите результаты выполнения запроса. 27. Вернитесь в режим конструктора запросов и попробуйте вернуть на место флажок "Вывод на экран" для поля "Код_категории". 19. Откройте окно "База данных" и переключитесь на вкладку объектов "Формы". Выберите создание формы с помощью мастера. Перед вами откроется диалоговое окно, в котором будет необходимо ответить на ряд вопросов. Укажите следующие параметры создаваемой формы (на каждом шаге нажимайте кнопку "Далее"): o Форма строится на основе таблицы "ТЕЛЕФОНЫ". В форму необходимо включить все поля таблицы. o Внешний вид формы - "в один столбец". o Требуемый стиль - по вашему усмотрению. o Имя формы - "Телефоны" После выполнения работы мастера, перед вами сразу откроется созданная форма, с которой уже можно работать. Внесем, однако, в макет формы некоторые изменения. Добавим заголовок формы и примечания. Закройте созданную форму и откройте ее в режиме конструктора. Перед вами откроется макет формы, а также панель элементов, содержащая заготовки и инструменты для создания элементов управления формы (см. рис. 11).  Рис. 8. Макет формы "Телефоны". Добавление заголовка. Раздвиньте с помощью мыши область заголовка формы, добавьте в заголовок элемент "Надпись", введите туда текст "Телефонный справочник", укажите желаемые параметры текста (шрифт, размер, цвет и т.п.). Аналогичным образом оформите и примечанеи формы. Введите туда свое имя (как автора базы данных), год создания базы данных или аналогичную информацию. Сохраните и закройте макет формы. Откройте форму в обычном режиме. Если вы все правильно сделали, то у вас должно получиться примерно следующее:  Рис. 9. Форма "Телефоны". 20. Создадим форму со списком телефонов друзей. Запустите мастер создания форм, укажите следующие параметры: o Форма строится на основе запроса "Телефоны друзей" (включить все поля). o Внешний вид формы - "ленточный". o Требуемый стиль - по вашему усмотрению. o Имя формы - "Телефоны друзей" Аналогично прошлому примеру, задайте заголовок и подпись формы. Созданная вами форма должна иметь примерно следующий вид:  Рис. 10. Форма "Телефоны друзей". 21. Создадим список телефонов друзей в виде отчета. В окне "База данных" и переключитесь на вкладку объектов "Отчеты". Выберите создание отчета с помощью мастера. Укажите следующие параметры создаваемого отчета: o Отчет строится на базе запроса "Телефоны друзей". Необходимо выбрать все доступные поля. o Уровни группировки - не добавлять. o Порядок сортировки - по имени. o Макет для отчета - "табличный". o Стиль отчета - по вашему усмотрению. o Имя отчета - "Телефоны друзей". Если есть необходимость внести какие-либо изменения в созданный отчет (например, скорректировать заголовок), то откройте отчет в режиме конструктора и сделайте это. В результате у вас должен получиться документ, аналогичный представленному на рис. 14. Обратите также внимание на подпись документа, расположенную внизу страницы.  Рис. 11. Отчет "Телефоны друзей". Задание к самостоятельной работе Задача. Пусть некая фирма занимается торговлей кондитерскими изделиями. Клиентами (покупателями) фирмы являются рестораны, кафе, клубы и т.д. Необходимо разработать базу данных для учета и анализа заказов фирмы. Ключ к задаче: 1. Основная таблица проектируемой базы данных должна содержать сведения о заказах. В числе таких сведений должны быть: o Номер заказа o Код клиента o Наименование клиента o Адрес клиента o Код продукта o Название продукта o Количество o Дата поставки o Цена o Стоимость Каждая строка таблицы с такими полями содержит полную информацию о конкретном заказе, а вся таблица в целом - дает возможность не только вести учет, но и анализировать деятельность фирмы (по объемам продукции, стоимости, датам и т.п.). 2. Если таблица со сведениями о заказах будет оформлена в виде единой таблицы Microsoft Access, то это будет не самым лучшим вариантом организации данных. Например, значения полей "Наименование клиента" и "Адрес клиента" полностью определяются полем "Код клиента" и в базе будет наблюдаться дублирование информации. Может произойти и потеря информации: при удалении записей о заказах будут удаляться и сведения о клиентах. Аналогичная ситуация складывается и с полями "Код продукта", "Название продукта", "Цена". Кроме того, значение поле "Стоимость" является произведением цены на количество, поэтому данное поле можно вообще не включать в таблицу, при необходимости его следует вычислять. 3. Таким образом, имеет смысл организовать рассматриваемую нами базу данных в виде трех связанных таблиц: o Классификатор "КЛИЕНТЫ" ("Код клиента", "Наименование клиента", "Адрес клиента"); o Классификатор "ПРОДУКТЫ" ("Код продукта", "Название продукта", "Цена"); o "ЗАКАЗЫ" ("Номер заказа", "Код клиента", "Код продукта", "Количество", "Дата поставки"). Поля "Код клиента" и "Код продукта" таблицы "ЗАКАЗЫ" должны быть связаны с соответствующими полями таблиц "КЛИЕНТЫ" и "ПРОДУКТЫ". Подумайте о назначении ключевых полей в таблицах, типах данных и размерах полей, дополнительных параметрах (необходимости указания значений по умолчанию, признаков обязательности и т.п.). 4. Создайте макеты указанных выше таблиц. Настройте подстановочные поля и укажите параметры межтабличных связей (обеспечение целостности данных). 5. Создайте формы для работы с всеми таблицами. Сделайте так, чтобы формы для работы с таблицами "КЛИЕНТЫ" и "ПРОДУКТЫ" в каждый момент времени позволяли бы работать только с одной записью (например, с данными только одного клиента), а форма для работы с таблицей "ЗАКАЗЫ" отображала бы сразу группу заказов. 6. Заполните таблицы следующими данными: КЛИЕНТЫ Код клиента | Наименование клиента | Адрес клиента | | Кафе «Парус» | Зеленая, 12 | | Клуб «Белый попугай» | Лесная, 28 | | Закусочная «Сирена» | Весенняя, 45 | | Ресторан «Маяк» | Голубева, 10 | | Бистро «Париж» | Московская, 7 | | Клуб «Орфей» | Волжская, 51 | ПРОДУКТЫ Код продукта | Название продукта | Цена | | Конфеты «Южная ночь» | 32,60 | | Печенье «Столичное» | 16,40 | | Торт «Птичье молоко» | 35,20 | | Пастила фруктовая | 24,80 | Таблицу "ЗАКАЗЫ" заполните по своему усмотрению (10-30 записей). 7. Создайте запрос, который позволяет просматривать список заказов в более наглядном виде. Поместите в результирующую таблицу все поля таблицы "ЗАКАЗЫ", за исключением полей "Код клиента" и "Код продукта", а также дополнительное (вычисляемое) поле "Стоимость". | Для того, чтобы создать вычисляемое поле, в бланк запроса по образцу в одном из столбцов вместо имени поля следует поместить формулу. В формулу должны входить название нового поля, знак ":", после которого заключенные в квадратные скобки названия полей, участвующих в расчете, а также знаки математических операций. Например, в случае добавления поля "Стоимость" формула может выглядеть так: Стоимость: [Количество]*[Цена] | 8. Создайте запрос, который позволяет посмотреть сводные данные о стоимости всех заказов по каждому виду продуктов (т.е. необходимо получить таблицу, в которой перечислялись бы продукты и денежные суммы, которые были получены от реализации данных продуктов за все время деятельности фирмы). Подобные запросы требуют использования итоговых вычислений. | Итоговые запросы позволяют производить вычисления по некоторому полю в группах записей. Для того, чтобы вы смогли задать параметры групповых операций, необходимо открыть бланк запросов по образцу и нажать кнопку на панели инструментов Microsoft Access. В бланке запросов по образцу добавится дополнительная строка "Групповые операции", с помощью которой можно задать необходимые параметры. Здесь, в первую очередь, следует задать поля, по которым следует производить группировку. Это позволяет как бы объединить все записи с одинаковыми значениями в соответствующих полях в одну запись. Для остальных полей следует задать групповую операцию, которая будет произведена для всех записей в выделенных группах. К основным групповым операциям можно отнести суммирование (Sum), поиск минимального, максимального и среднего значений (Min, Max и Avg), определение количества записей (Count). | 9. Для решения поставленной задачи, необходимо составить запрос, который будет выполняться на основе анализа полей "Название продукта" и "Стоимость" составленного ранее (в п. 7) запроса. Группировку следует сделать по полю "Название продукта", а к полю "Стоимость" следует применить операцию суммирования. 10. Создайте запрос, который позволяет просматривать статистику по клиентам. Сделайте так, чтобы в результирующей таблице присутствовали сведения о количестве и суммарной стоимости заказов по каждому клиенту. 11. Измените предыдущие (создайте новые) запросы так, чтобы они показывали сведения не за весь период работы фирмы, а лишь за некоторое время (например, за последний год, месяц или день). (Используйте параметр "Условие отбора" в бланке запросов по образцу). 12. Создайте отчет, показывающий сводные данные за некоторый отрезок времени по фирмам о проделанных заказах. В отчете должны содержаться данные о том, какие фирмы, какие товары и на какие суммы приобретали. Подумайте, какой запрос и на основе каких итоговых вычислений вам понадобится. Создайте сначала этот запрос, и на его основе создайте отчет. Рекомендуемая к изучению литература: 1. Хэлворсон М., Янг М. Эффективная работа с MS Office 2003. – СПб.:Питер, 2000, 1232 с. 2. Робинсон С. Microsoft Access 2000: учебный курс. – СПб.:Питер, 2002, 512 с. 3.Келли Дж. Самоучитель Access 97. – СПб.:Питер, 2005, 336 с. |