Разработка базы данных в среде Microsoft Access
Нижегородский Государственный
Политехнический Университет
Нижегородский Вечерний Факультет
Зачётная работа по курсу
"Информационные технологии"
Разработка базы данных в среде
Microsoft Access
Выполнили: Греков В.В.
Певченко Г.П.
Группа ИКУ – 99
Проверил: Штанюк А.А.
Кстово
2002
1. Задание
Спроектировать базу данных для хранения и обработки данных о
товарообороте овощной базы «Галина».
2. Таблицы и схема данных
Таблица - Владелец товара
Код владельца Наименование Город Улица Дом Телефон
1 ЧП"Суслов" Москва Северная 56 455655
2 ЧП"Иванов" Н.Новгород Гагарина 52 353632
3 ЧП"Петров" Кстово Победы 1 32658
4 ЧП"Сидоров" Н.Новгород Бекетова 41 353231
5 ЧП"Петренко" Петербург Раздольная 66 665544
6 ЧП"Геленко" Кстово Заводская 3 53537
7 ЧП"Павленко" Н.Новгород Ларина 19 665599
8 ЧП"Глуменко" Кстово Зелёная 4 53638
9 ЧП"Хохленко" Москва Ленина 78 456598
10 ЧП"Сидоренко" Кстово Заводская 35 45283
11 ЧП"Калентеенко" Москва Ванеева
11 456596
Таблица - Журнал приёма товаров
№ записи Владелец товара Товар Количество товара, тонн
Дата приёмки
1 ЧП"Иванов" Дыня 5 14.02.02
2 ЧП"Суслов" Капуста 5 15.02.02
3 ЧП"Петров" Картофель 12 15.02.02
4 ЧП"Сидоров" Перец 20 15.02.02
5 ЧП"Петренко" Яблоки 6 15.02.02
6 ЧП"Геленко" Огурцы 10 16.02.02
7 ЧП"Хохленко" Яблоки 11 16.02.02
8 ЧП"Павленко" Помидор 16 17.02.02
9 ЧП"Глуменко" Капуста 7 18.02.02
10 ЧП"Сидоренко" Лук 9 18.02.02
11 ЧП"Калентеенко" Арбуз 2 20.02.02
12 ЧП"Петров" Морковь 10 21.02.02
Таблица –Тара
Код тары Наименование тары Грузоподъёмность, кг Вес единицы
тары, кг
1 Ящик 30 0,5
2 Мешок 25 0,1
3 Сетка 30 0,1
4 Контейнер 500 50
Таблица - Журнал расхода товаров
№ записи Покупатель Товар Количество товара, тонн Вид тары
Дата отпуска
1 ЧП"Смирнов" Дыня 2 Ящик 15.01.02
2 ЧП"Круглов" Дыня 3 Ящик 18.02.02
3 ЧП"Смирнов" Картофель 4 Мешок 18.02.02
4 ЧП"Зайков" Перец 5 Ящик 18.02.02
5 ЧП"Смирнов" Яблоки 6 Сетка 19.02.02
6 ЧП"Горбачёв" Огурцы 7 Сетка 19.02.02
7 ЧП"Слюньков" Морковь 8 Ящик 19.02.02
8 ЧП"Абрамов" Помидор 9 Контейнер 23.02.02
9 ЧП"Андронов" Капуста 6 Мешок 23.02.02
10 ЧП"Карташов" Лук 4 Контейнер 23.02.02
11 ЧП"Кондрашов" Арбуз 1 Сетка 25.02.02
13 ЧП"Зайков" Капуста 12 Мешок 12.03.02
Таблица - Покупатель товара
Код покупателя Наименование Город Улица Дом Телефон
1 ЧП"Круглов" Москва Ленина 2 456598
2 ЧП"Зайков" Кстово Зелёная 3 563212
3 ЧП"Воротников" Н.Новгород Талалушкина 56 874565
4 ЧП"Слюньков" Выкса Гагарина 45 123225
5 ЧП"Горбачёв" Павлово Кутузова 23 585652
6 ЧП"Смирнов" Владимир Суворова 2 548765
7 ЧП"Карташов" Чкалов Суетинская 9 122345
8 ЧП"Кондрашов" Пенза Торговая 8 656719
9 ЧП"Андронов" Пермь Набережная 23 193372
10 ЧП"Абрамов" Владивосток Бекетова 89 462845
11 ЧП"Кондрашов" Чкалов Торговая 8 585652
Таблица – Прейскурант товаров
Код товара Наименование товара Цена закупки, руб/кг Цена продажи,
руб/кг
1 Арбуз 3,00р. 3,50р.
2 Дыня 5,00р. 5,60р.
3 Капуста 1,00р. 1,60р.
4 Картофель 6,50р. 7,00р.
5 Лук 15,00р. 16,00р.
6 Морковь 3,00р. 3,50р.
7 Огурцы 15,00р. 16,10р.
8 Перец 10,00р. 11,10р.
9 Помидор 15,00р. 16,20р.
10 Яблоки 5,00р. 5,80р.
Типы данных в полях
Для таблицы “Владелец товара”:
|Код владельца |-|Счётчик |
|Наименование | |Текстовый |
|владельца |-|Текстовый |
|Город | |Текстовый |
|Улица |-|Текстовый |
|Дом | |Числовой |
|Телефон |-| |
| | | |
| |-| |
| | | |
| |-| |
Для таблицы “Покупатель товара”:
|Наименование |-|Текстовый |
|покупателя | |Текстовый |
|Город |-|Текстовый |
|Улица | |Текстовый |
|Дом |-|Числовой |
|Телефон | | |
| |-| |
| | | |
| |-| |
Для таблицы “Журнал приёма товаров”:
|№ записи |-|Счётчик |
|Код владельца товара| |Числовой |
| |-|Числовой |
|Код товара | |Числовой |
|Количество товара, |-|Дата\Время |
|тонн Дата приёмки | | |
| |-| |
| | | |
| |-| |
Для таблицы “Журнал расхода товаров”:
|№ записи |-|Счётчик |
|Код покупателя | |Числовой |
|товара |-|Числовой |
|Код товара | |Числовой |
|Количество товара, |-|Числовой |
|тонн | |Дата\Время |
|Код тары |-| |
|Дата отпуска | | |
| |-| |
| | | |
| |-| |
Для таблицы “Тара”:
|Код тары |-|Числовой |
|Наименование тары | |Текстовый |
|Грузоподъёмность, кг|-|Числовой |
| | |Числовой |
|Вес единицы тары, кг|-| |
| | | |
| |-| |
Для таблицы “Прейскурант товаров”:
|Код товара |-|Счётчик |
|Наименование товара | |Текстовый |
|Цена закупки, руб/кг|-|Денежный |
| | |Денежный |
|Цена продажи, руб/кг|-| |
| | | |
| |-| |
3. Формы
Форма – это диалоговое окно, через которое осуществляется
интерфейс пользователя. Формы используются для различных целей:
- для ввода данных в таблицу;
- как кнопочная форма для открытия других форм или
отчётов;
- как специальное диалоговое окно для выбора,
предварительного просмотра и печати нужного отчёта.
Большая часть данных, представленных в форме, берётся из
таблицы или запроса. Другая информация, не связанная ни с
таблицей, ни с запросом, хранится в макете формы.
Для создания связи между формой и записями таблицы,
являющейся источником данных формы, используются графические
объекты, называемые элементами управления. Чаще всего для
отображения и ввода данных используется поле.
В данной базе используется главная кнопочная форма для
открытия форм "Владелец товара", " Покупатель товара", "Журнал
приёмки товара", " Журнал расхода товара", “Прейскурант
товаров”, “Тара - список”. Через эти формы осуществляется ввод
данных пользователем.
4. Запросы
С помощью запросов можно просматривать, анализировать и
изменять данные из нескольких таблиц. Они также используются в
качестве источника данных для форм и отчётов.
Наиболее часто используется запрос на выборку. При его
выполнении данные, удовлетворяющие условиям отбора, выбираются
из одной или нескольких таблиц и выводятся в определённом
порядке.
Запрос можно создать с помощью мастера или самостоятельно.
В базе данных использованы запросы на выборку и
перекрёстные запросы.
Приход товара на овощную базу – выдаёт количество каждого
вида товара, принятого на овощную базу для реализации:
SELECT DISTINCTROW [Журнал приёма товаров].[Код товара],
Sum([Журнал приёма товаров].[Количество товара, тонн]) AS
[Количество товара, тонн]
FROM [Журнал приёма товаров]
GROUP BY [Журнал приёма товаров].[Код товара];
Расход товара – выдаёт количество реализованного товара:
SELECT DISTINCTROW [Журнал расхода товаров].[Код товара],
Sum([Журнал расхода товаров].[Количество товара, тонн]) AS
[Количество товара, тонн]
FROM [Журнал расхода товаров]
GROUP BY [Журнал расхода товаров].[Код товара];
Прибыль по товарам – выдаёт прибыль по каждому виду товара
(подсчитывается по разнице закупочной и продажной цены товара,
зарегистрированного в прейскуранте):
SELECT [Приход товара - запрос].[Код товара], [Приход
товара - запрос].[Количество товара, тонн], [Расход товара -
запрос].[Количество товара, тонн], Sum([Приход товара -
запрос]![Количество товара, тонн]-[Расход товара -
запрос]![Количество товара, тонн]) AS [Остаток на базе, тонн],
Sum([Расход товара - запрос]![Количество товара,
тонн]*([Прейскурант]![Цена продажи, руб/кг]-[Прейскурант]![Цена
закупки, руб/кг]))*1000 AS [Прибыль, руб]
FROM (Прейскурант INNER JOIN [Приход товара - запрос] ON
Прейскурант.[Код товара] = [Приход товара - запрос].[Код
товара]) INNER JOIN [Расход товара - запрос] ON Прейскурант.[Код
товара] = [Расход товара - запрос].[Код товара]
GROUP BY [Приход товара - запрос].[Код товара], [Приход
товара - запрос].[Количество товара, тонн], [Расход товара -
запрос].[Количество товара, тонн] ORDER BY Sum([Расход товара -
запрос]![Количество товара, тонн]*([Прейскурант]![Цена продажи,
руб/кг]-[Прейскурант]![Цена закупки, руб/кг]))*1000 DESC;
Запрос на прибыльность по покупателям – выдаёт зависимость
прибыли, полученной при товарных сделках с каждым покупателем:
SELECT DISTINCTROW [Покупатель товара].[Наименование
покупателя], Sum([Количество товара, тонн]*([Прейскурант]![Цена
продажи, руб/кг]-[Прейскурант]![Цена закупки, руб/кг]))*1000 AS
[Прибыль, руб]
FROM Прейскурант INNER JOIN ([Покупатель товара] INNER
JOIN [Журнал расхода товаров] ON [Покупатель товара].[Код
покупателя товара] = [Журнал расхода товаров].[Код покупателя
товара]) ON Прейскурант.[Код товара] = [Журнал расхода
товаров].[Код товара]
GROUP BY [Покупатель товара].[Наименование покупателя]
ORDER BY Sum([Количество товара,
тонн]*([Прейскурант]![Цена продажи, руб/кг]-[Прейскурант]![Цена
закупки, руб/кг]))*1000 DESC;
Перекрёстный запрос – прибыльность по потребителям и
товарам – выдаёт зависимость полученной прибыли от конкретного
покупателя и приобретённого им продукта:
TRANSFORM Sum([Количество товара,
тонн]*([Прейскурант]![Цена продажи, руб/кг]-[Прейскурант]![Цена
закупки, руб/кг]))*1000 AS Выражение1
SELECT [Покупатель товара].[Наименование покупателя]
FROM Прейскурант INNER JOIN ([Покупатель товара] INNER
JOIN [Журнал расхода товаров] ON [Покупатель товара].[Код
покупателя товара] = [Журнал расхода товаров].[Код покупателя
товара]) ON Прейскурант.[Код товара] = [Журнал расхода
товаров].[Код товара]
GROUP BY [Покупатель товара].[Наименование покупателя]
PIVOT Прейскурант.[Наименование товара];
Перекрёстный запрос – прибыль по месяцам и товарам –
выдаёт зависимость полученной прибыли по каждому товару и в
зависимости от месяца его приобретения:
TRANSFORM Sum([Количество товара,
тонн]*([Прейскурант]![Цена продажи, руб/кг]-[Прейскурант]![Цена
закупки, руб/кг]))*1000 AS Выражение1
SELECT Month([Дата отпуска]) AS Месяц
FROM Прейскурант INNER JOIN ([Покупатель товара] INNER
JOIN [Журнал расхода товаров] ON [Покупатель товара].[Код
покупателя товара] = [Журнал расхода товаров].[Код покупателя
товара]) ON Прейскурант.[Код товара] = [Журнал расхода
товаров].[Код товара]
WHERE (((Year([Дата отпуска]))=2002))
GROUP BY Month([Дата отпуска]), Year([Дата отпуска])
ORDER BY Month([Дата отпуска])
PIVOT Прейскурант.[Наименование товара];
Отчёт № 2
Прибыль по товарам
Товар Прибыль, руб
Помидор 10800
Капуста 10800
Огурцы 7700
Перец 5500
Яблоки 4800
Морковь 4000
Лук 4000
Дыня 3000
Картофель 2000
Арбуз 500
5 марта 2002 г. Страница 1 из 1
6. Выводы
В деловой или личной сфере часто приходится работать с
данными из разных источников, каждый из которых связан с
определённым видом деятельности. Для координации всех этих
данных необходимы определённые знания и организационные навыки.
Microsoft Access объединяет сведения из разных источников в
одной реляционной базе данных. Создаваемые формы, запросы и
отчёты позволяют быстро и эффективно обновлять данные, получать
ответы на вопросы, осуществлять поиск нужных данных,
анализировать данные, печатать отчёты, диаграммы и почтовые
наклейки.
В базе данных сведения из каждого источника сохраняются в
отдельной таблице. При работе с данными из нескольких таблиц
устанавливаются связи между таблицами. Для поиска и отбора
данных, удовлетворяющих определённым условиям, создаётся запрос.
Запросы также позволяют обновить или удалить одновременно
несколько записей, выполнить встроенные и специальные сообщения.
Для просмотра, ввода или изменения данных прямо в таблице
применяются формы. Форма позволяет отобрать данные из одной или
нескольких таблиц и вывести их на экран, используя стандартный
или созданный пользователем макет.
Для анализа данных или распечатки их определённым образом
используются отчёты. Например, можно создать отчёт, группирующий
данные и подводящий итоги, или отчёт для распечатки почтовых
наклеек.
В окне базы данных можно работать со всеми её объектами.
Для просмотра объектов определённого типа следует выбрать
соответствующую вкладку. С помощью кнопок можно открывать и
изменять существующие объекты и создавать новые.
Разработанная база данных позволяет быстро и эффективно
управлять товарооборотом овощной базы. Удобный интерфейс
программы, с одной стороны, позволяет легко ориентироваться в
программе, не требуя от пользователя каких-либо специальных
навыков работы с электронно-вычислительными машинами, с другой
стороны предоставляет пользователю оперативную информацию о
спросе и предложении на отдельные виды товаров в зависимости от
вида продукции и времени года. Данные сведения позволяют
проводить достаточно глубокие маркетинговые исследования, на
основе которых можно анализировать текущее состояние рынка и
планировать дальнейшую предпринимательскую деятельность.