- •И.Б. Кушнир
- •Оглавление
- •Введение
- •1. Основы информационных систем и баз данных
- •1.1. Информационные системы1
- •1.2. Базы данных
- •Контрольные вопросы
- •Тестовые задания
- •2. Общие вопросы разработки баз данных субд Access
- •2.1. Рабочая среда Access
- •Концепция базы данных
- •Таблицы
- •Запросы
- •Страницы
- •Макросы
- •2.2. Задание для самостоятельной работы
- •Варианты заданий
- •2.3. Пример выполнения задания2
- •Поставщики
- •Контрольные вопросы
- •Тестовые задания
- •3. Создание и корректировка базы данных в субд
- •Типы данных и задание связей в базе данных
- •Типы данных, обрабатываемых в Access [8, с. 45]
- •3.2. Задание для самостоятельной работы
- •3.3. Пример выполнения работы
- •3.3.1. Создание базы данных
- •3.3.2. Создание структуры таблиц в режиме конструктора Создание структуры таблицы Поставщики
- •Создание структуры таблицы Товары
- •3.3.3. Связывание таблиц
- •3.3.4. Ввод данных3
- •3.3.5. Редактирование записи
- •3.3.6. Удаление записи
- •3.3.7. Поиск и сортировка данных
- •Сортировка
- •Поиск записи
- •Фильтрация записей
- •Расширенный фильтр
- •3.3.8. Печать в режиме таблицы
- •Контрольные вопросы
- •Тестовые задания
- •4. Запросы на выборку
- •4.1. Способы создания запроса4
- •Примеры часто используемых операторов и функций5
- •4.2. Задание для самостоятельной работы
- •Варианты заданий
- •4.3. Пример выполнения задания
- •4.3.1. Создание запроса
- •4.3.2. Редактирование запроса
- •Контрольные вопросы
- •Тестовые задания
- •5. Вычисления в запросах: простые, групповые
- •5.1. Общие сведения о расчетах в запросах6
- •Типы операций [8, с. 128]
- •Сведения о стипендиатах
- •Перекрестная таблица
- •5.2. Задание для самостоятельной работы
- •Варианты заданий
- •5.3. Пример выполнения задания
- •5.3.1. Вычисления в запросе
- •5.3.2. Итоговые запросы
- •5.3.3. Сводные таблицы7
- •Изменение структуры сводной таблицы
- •Фильтрация
- •Авс-анализ
- •Детализация
- •Контрольные вопросы
- •Тестовые задания
- •6. Формы
- •6.1. Общая характеристика экранных форм8
- •6.2. Задание для самостоятельной работы
- •Варианты заданий
- •6.3. Пример выполнения задания
- •6.3.1. Простая форма
- •6.3.2. Составная форма, основанная на двух таблицах
- •6.3.3. Составная форма, основанная на таблице и запросе
- •6.3.4. Составная форма с вычисляемым полем в главной форме
- •6.3.5. Редактирование формы
- •Контрольные вопросы
- •Тестовые задания
- •7. Отчеты
- •7.1. Общая характеристика отчетов9
- •7.2. Задание для самостоятельной работы
- •Варианты заданий
- •7.3. Пример выполнения задания
- •7.3.1. Создание автоотчета
- •7.3.2. Нумерация и сортировка данных в отчете
- •7.3.3. Группировка и подсчет итогов в отчете
- •7.3.4. Подотчет в отчете
- •Контрольные вопросы
- •Тестовые задания
- •8. Web-интерфейс к базам данных Access
- •8.1. Общая характеристика страниц доступа к данным10
- •8.2. Задание для самостоятельной работы
- •Варианты заданий
- •8.3. Пример выполнения задания
- •8.3.1. Создание автостраницы
- •8.3.2. Создание страницы с помощью Мастера
- •8.3.3. Создание и изменение страниц доступа к данным в режиме Конструктора
- •Контрольные вопросы
- •Тестовые задания
- •9. Настройка пользовательского интерфейса
- •9.1. Общая характеристика элементов управления и их свойств
- •9.2. Задание для самостоятельной работы
- •9.3. Пример выполнения задания
- •9.3.1. Создание кнопочной формы
- •9.3.2. Добавление кнопок в форму
- •9.3.3. Макрос для открытия запроса
- •9.3.4. Задание условий отбора в макросе
- •9.3.5. Настройка параметров запуска
- •Контрольные вопросы
- •Тестовые задания
- •Заключение
- •Библиографический список
- •Приложение 1 (справочное) Типы связи
- •Приложение 2 (справочное) Синтаксис масок ввода
- •Маски ввода
- •Примеры масок ввода
- •Учебное издание
2.3. Пример выполнения задания2
Требуется разработать базу данных для фирмы «Борей», которая занимается оптовой продажей продуктов питания. Процесс продажи проистекает следующим образом. Покупатель производит заказ на покупку продуктов, пользуясь предоставленным ему фирмой каталогом. Представитель фирмы выписывает счет на выбранные продукты и одновременно с этим отправляет запрос о приобретении данных продуктов фирме-произ-водителю (поставщику). Фирма «Борей» заключила юридические соглашения о поставках с рядом фирм-изготовителей продуктов и крупных дистрибьюторов. После оплаты по соответствующему счету фирма «Борей» подтверждает запрос о приобретении и обязуется в течение четырехнедельного периода предоставить покупку соответствующему покупателю.
На основании исследований рынка потенциальных покупателей и предложений служба или отдельный специалист разрабатывает каталог предлагаемых к продаже продуктов; в большой фирме такую службу назвали бы отделом маркетинга. Каталог распространяется на рынке потенциальных покупателей. С клиентом, решившим совершить оптовую закупку, работает служба оформления заказов. Специалисты, входящие в эту службу, принимают заказ, уточняют состав заказа (количество и т.д.), отправляют счета, следят за их оплатой и, наконец, вручают клиенту поступивший заказ.
Начнем разработку инфологической модели с выявления основных сущностей. Исходя из описанной выше задачи, выделим следующие сущности:
ТИП;
ТОВАР;
ПОСТАВЩИК;
КЛИЕНТ;
Сотрудники;
ЗАКАЗ;
ЗАКАЗАНО;
ДОСТАВКА.
Определим взаимосвязи для включенных в модель сущностей.
Основным объектом учета в нашей информационной системе будет товар, вот почему прежде всего нам необходимо ввести сущность «Товар», который будет характеризоваться уникальным кодом товара, а также набором атрибутов: наименование товара, цена, единица измерения и сведения о поставщике и о категории товара.
Чтобы упорядочить учет товаров, а также наладить работу с поставщиками товара, нам необходимо ввести сущности «Типы» и «Поставщики», которые будут связаны с сущностью «Товары» отношением «один-ко-многим». В одной категории товаров, например, кондитерские изделия, могут присутствовать множество товаров. Один поставщик может поставлять множество товаров.
Теперь нам необходимо определить, как в нашей системе будут представлены продавцы. Естественно предположить ввести для этого сущность «Сотрудники», каждый экземпляр которой будет соответствовать конкретному сотруднику фирмы. Каждому сотруднику присваивается уникальный номер, который будет однозначно его идентифицировать и являться ключевым атрибутом. Кроме того, в сущности Сотрудники должны присутствовать дополнительные атрибуты, которые требуются для решения поставленных задач: Фамилия, Имя, должность и т.д.
Сотрудники оформляют продажу товаров клиентам, обратившимся в фирму «Борей». Поэтому нам необходимо обеспечить ведение клиентской базы, которая впоследствии может послужить основой для разработок маркетинговых стратегий. Итак, мы вводим в проект сущность «Клиент». Информация о каждом Клиенте включает: наименование клиента, адрес, телефон и др. Таким образом, атрибутами сущности КЛИЕНТ являются «УНИКАЛЬНЫЙ КЛЮЧ КЛИЕНТА», «НАИМЕНОВАНИЕ КЛИЕНТА», «АДРЕС КЛИЕНТА» и т.д.
Каждый сотрудник может оформлять продажи множеству клиентов; с другой стороны, каждый клиент может быть обслужен множеством сотрудников. Таким образом, между сущностями «Сотрудники» и «Клиенты» существует связь «многие-ко-многим» (М:М), для реализации которой вводим связующую сущность «Заказ». Сущности «Клиенты» и «Заказ» связаны отношением «один-ко-многим» (1:М), так как один клиент может множество раз обращаться в фирму «Борей», делая заказы. Также отношением «один-ко-многим» (1:М) связаны сущности «Сотрудники» и «Заказ», так как один и тот же сотрудник может оформлять множество заказов.
Теперь рассмотрим атрибуты сущности «Заказ», содержащие сведения о дате заказа, клиенте, продавце, способе доставки заказа и т.д. Каждому заказу присваивается уникальный код заказа.
В каждый заказ может входить определенный перечень заказанных товаров и их количество, между сущностями «Товар» и «Заказ» также присутствует связь «многие-ко-многим» (М:М), так как один заказ может включать в себя множество товаров, но и один и тот же товар может присутствовать во множестве заказов. Для реализации связи «многие-ко-многим» вводим дополнительную сущность «Заказано», в которой будут присутствовать сведения о заказе, товаре и количестве заказанных товаров. Сущности «Заказ» и «Заказано» связаны отношением «один-ко-многим» (1:М), так как в один заказ может входить несколько товаров, например, молоко, колбаса, хлеб. Также отношением «один-ко-многим» (1:М)связаны сущности «Товар» и «Заказано», так как один и тот же товар, например хлеб, может заказываться многократно.
Из описания предметной области мы знаем, что фирма «Борей» обеспечивает доставку сделанного клиентом заказа. Следовательно, нам следует ввести еще сущность «Доставка», каждый экземпляр которой будет однозначно идентифицироваться кодом доставки – ключевым атрибутом сущности. Кроме того, в сущности «Доставка» должны присутствовать дополнительные атрибуты: Наименование и Стоимость. Между сущностями «Заказ» и «Доставка» установлена связь «один-ко-многим» (1:М), так как один и тот же способ доставки, например автотранспортом, может присутствовать во множестве заказов.
Инфологическая модель представлена на рисунке 2.9.
Рис. 2.9. Инфологическая модель предметной области
Теперь мы можем получить нормализованные таблицы на основе ER-диаграммы предметной области [2, с. 129–134]: каждая сущность и каждая связь выделяется в отдельную таблицу; таблица, отражающая сущность, хранит экземпляры сущности, т.е. записи; свойства сущности, называемые атрибутами, хранятся в полях (столбцах) таблицы (сущность); таблица, отражающая связь, хранит связи между конкретными экземплярами сущностей.
Таким образом, мы можем сразу получить «хорошую» структуру данных, которая характеризуется непротиворечивостью и неизбыточностью информации и очевидностью операций удаления, добавления и изменения. В итоге мы получили логическую модель, представленную на рисунке 2.10.
Теперь нам осталось подготовить содержимое каждой таблицы без указания ее структуры. Например, содержимое таблицы Товары будет выглядеть так, как показано в таблице 2.1, а таблицы Типы – в таблице 2.2.
Отчет должен содержать: тему и цель работы, задание к работе, инфологическую и логическую модели предметной области и содержимое таблиц.
Рис. 2.10. Логическая модель
Таблица 2.1
Товары
Код Товара |
Марка |
Код Поставщика |
Единица измерения |
Цена, руб. |
1 |
Genen Shouyu |
1 |
24 бутылок по 250 мл |
697,50 |
2 |
Pavlova |
2 |
32 коробок по 500 г |
785,25 |
3 |
Alice Mutton |
3 |
20 банок по 1 кг |
1 755,00 |
4 |
Carnarvon Tigers |
3 |
16 кг упаковка |
2 812,50 |
5 |
Teatime Chocolate Biscuits |
2 |
10 коробок по 12 шт. |
414,00 |
Таблица2.2