2. Практическая часть

2.1. Постановка задачи

Результатом выполнения данной работы является создание базы данных «Книги» в СУБД Access.

Данные таблиц базы данных и их структура должны соответствовать приведённым выше таблицам 1 – 3.

При помощи запросов, должна быть реализована возможность получения следующих данных:

·        сколько всего книг серии «Финансы» было продано в течение первого полугодия 2000 года?

·        кто из продавцов продавал книги серии «Спорт» в 2001 году?

·        кто из продавцов стал лидером продаж в 2001 году?

2.2. Создание структуры таблиц

2.2.1. Структура таблицы Продавцы

Имя поля

Тип данных

B

КодПродавца

Счетчик


Продавец

Текстовый


Телефон

Текстовый

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

2.2.2. Структура таблицы Серии книг

Имя поля

Тип данных

B

КодСерии

Счетчик


Серия

Текстовый

После создания структуры таблицы Серии книг в неё нужно занести данные из Таблицы 1 (см. Теоретическую часть).

2.2.3. Структура таблицы Продажи

Имя поля

Тип данных

B

КодПродажи

Счетчик


Дата

Дата/время


КодПродавца

Числовой


КодСерии

Числовой


Количество

Числовой


Цена

Денежный

После создания структуры таблицы Продажи в неё нужно занести данные из Таблицы 3 (см. Теоретическую часть).

2.3. Создание связей между таблицами

Связывание нескольких таблиц в базе данных позволяет производить выборку данных из разных таблиц.

Для связывания таблиц, необходимо открыть окно Схема данных, нажав одноименную кнопку на панели инструментов. После этого нужно при помощи контекстного меню добавить в Схему данных все ранее созданные 3 таблицы. После чего, путем перетаскивания полей из одной таблицы на соответствующие поля другой таблицы, создать связи. При создании каждой связи, для неё нужно установить такие параметры, как: Обеспечение целостности данных, Каскадное обновление связанных полей, Каскадное удаление связанных записей.

В итоге Схема данных примет следующий вид:

2.4. Создание запросов

Для отбора и анализа данных, хранящихся в базе данных служат запросы. Ещё запросы позволяют выводить необходимые данные в компактном виде, наподобие электронной таблицы. При этом можно производить различные математические вычисления.

2.4.1. Создание запроса для подсчёта количества проданных книг серии «Финансы» в течение первого полугодия 2001 года

Создадим простой запрос. Добавим в него поля из трёх ранее созданные таблиц. Поля Дата и Количество из таблицы Продажи, поле Серия из таблицы СерииКниг, а поле  Продавец – из таблицы Продавцы.

Установим Условия отбора для поля Дата, задающее интервал с 1 января до 30 июня 2000 г. И Финансы для поля Серия, позволяющее отобрать только книга данной серии.

 В Конструкторе запроса он будет выглядеть следующим образом:

В результате выполнения созданного запроса будет выведен список книг по финансам, проданным за первое полугодие 2000 года:

Количество проданных книг по финансам за 1 полугодие 2000 года

Дата

Серия

Продавец

Количество

05.05.2000

Финансы

Николаев

23


2.4.2. Создание запроса для отбора продавцов, продававших книги серии «Спорт» в 2001 году

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

Зададим в качестве условия отбора для поля Дата  интервал с 1 января 2001 г. по 31.12.2001 г., а для поля Серия - Спорт.

В результате Конструктор запроса примет вид:

Сохраним полученный запрос присвоим ему имя «Продавцы серии спорт в 2001 году».

Этот запрос выдаст следующий набор записей:

Продавцы серии Спорт в 2001 году

Дата

Серия

Продавец

Количество

16.05.2001

Спорт

Петров

25

16.05.2001

Спорт

Николаев

1

13.09.2001

Спорт

Николаев

21

14.09.2001

Спорт

Петров

14

18.11.2001

Спорт

Петров

25

15.12.2001

Спорт

Сомолов

15

20.12.2001

Спорт

Петров

27

По только что созданному простому запросу создадим перекрестный запрос, нажав кнопку Создать в главном меню Microsoft Access и выбрав Перекрестный запрос.

Первоначально запустившийся мастер требует выбрать простой запрос на основании которого и будет строиться перекрестный запрос. Выберем только что созданный запрос.

Для Заголовков строк выберем поле Продавец, а в качестве Заголовков столбцов выберем поле Дата. В качестве Интервала группировки Месяц и для поля Количество зададим функцию Сумма.. Сохраним полученный запрос.

В результате выполнения запроса получим следующую Сводную таблицу:

Продавцы серии Спорт в 2001 году_перекрестный

Продавец

Итоговое значение Количество

янв

фев

мар

апр

май

июн

июл

авг

сен

окт

ноя

Дек

Николаев

22





1




21




Петров

91





25




14


25

27

Сомолов

15












15

2.4.3. Создание запроса для определения лидера продаж в 2001 году

Создадим простой запрос с полями Дата и Количество из таблицы Продажи и полем Продавец из таблицы Продавцы. Зададим Условие отбора для поля Дата с 01.01.2001 по 31.12.2001. Также зададим сортировку по убыванию для поля Количество. В режиме Конструктора созданный запрос будет иметь вид:

Выполнив созданный запрос, получим следующие данные:

Продажи в 2001 году

Дата

Продавец

Количество

07.12.2001

Рябов

36

20.12.2001

Петров

27

25.04.2001

Сомолов

26

25.04.2001

Рябов

26

25.04.2001

Рябов

26

18.11.2001

Петров

25

13.04.2001

Рябов

25

13.04.2001

Соловьев

25

16.05.2001

Петров

25

23.11.2001

Петров

23

13.09.2001

Николаев

21

28.02.2001

Николаев

21

14.12.2001

Сомолов

19

17.11.2001

Николаев

16

15.12.2001

Сомолов

15

25.04.2001

Рябов

14

14.09.2001

Петров

14

14.09.2001

Петров

12

18.05.2001

Петров

11

14.09.2001

Петров

11

20.09.2001

Рябов

11

30.11.2001

Николаев

6

06.05.2001

Рябов

3

30.11.2001

Николаев

3

15.12.2001

Петров

3

14.09.2001

Рябов

3

16.05.2001

Николаев

1

09.06.2001

Соловьев

1

Теперь на основе созданного простого запроса создадим перекрестный запрос. Выберем его в качестве источника.

В качестве заголовков строк выберем поле Продавец, а в качестве Заголовков столбцов выберем поле Дата. Как интервал группировки зададим месяц. Для поля Количество зададим функцию Сумма.

Созданный запрос выдаст следующий результат:

Продажи в 2001 году_перекрестный

Продавец

Итоговое значение Количество

янв

фев

мар

Апр

май

июн

июл

авг

сен

окт

ноя

дек

Николаев

68


21



1




21


25


Петров

151





36




37


48

30

Рябов

144




91

3




14



36

Соловьев

26




25


1







Сомолов

60




26








34

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

Полученный запрос выведет упорядоченные по убыванию итоговые данные по Количеству продаж:

Продажи в 2001 году_по_убыванию

Продавец

Итоговое значение Количество

янв

фев

мар

Апр

май

июн

июл

авг

сен

окт

ноя

дек

Петров

151





36




37


48

30

Рябов

144




91

3




14



36

Николаев

68


21



1




21


25


Сомолов

60




26








34

Соловьев

26




25


1