Разработка базы данных для автоматизации учета поступления и реализации продуктов в кафе
Разработка базы данных в среде СУБД MS Access для автоматизации учета поступления и реализации продуктов в кафе. Программа обработки информации о поставщиках, поставках продуктов, а также об изъятии продуктов на кухню. Систематизация данных и информации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 06.06.2014 |
Размер файла | 1,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
43
Размещено на http://www.allbest.ru/
Разработка базы данных для автоматизации учета поступления и реализации продуктов в кафе
Введение
информация кафе программа
В современном мире информация приобретает все большее значение, объемы и размеры её увеличиваются. Необходимость систематизирования информации заставила человека изобретать различные схемы, каталоги, таблицы для удобного использования данных. Век компьютеризации предоставляет возможность быстрого и удобного систематизирования данных с помощью баз данных.
База данных является организованной на машинном носителе совокупностью взаимосвязанных данных и содержит сведения о различных сущностях одной предметной области, реальных объектах, процессах, событиях или явлениях. В настоящее время базы данных расцениваются как электронные хранилища информации, доступ к которым осуществляется с одного или нескольких компьютеров в зависимости от архитектуры.
Будущим специалистам экономического профиля придется работать с базами данных в среде различных экономических автоматизированных информационных систем, поэтому они должны владеть технологиями организации, хранения и обработки данных.
В области технологий баз данных (БД) происходят существенные перемены, которые обусловлены достижениями в развитии операционных систем, языков и технологий программирования, искусственного интеллекта, вычислительной и коммуникационной техники.
Роль баз данных в качестве экономических активов непрерывно возрастает, они шире используются во всех сферах бизнеса и экономической деятельности: маркетинге, финансовом менеджменте, бухгалтерском учете и других областях.
Для успешного управления базами данных необходимы знания о представлении информации в информационных системах, концепциях моделирования данных, принципах организации баз данных и методах их проектирования, программных средствах для работы с базами данных, принципах обработки многопользовательских баз данных, их администрировании.
Целью выполнения моей курсовой работы является проектирование и создание собственной базы данных по учету товара на складе в кафе, а также изучение основных понятий, определений, свойств баз данных и систем управления ими.
Разрабатываемая БД должна обеспечить ввод соответствующих данных, а также удобный пользовательский интерфейс. Основные задачи курсовой работы:
1) проектирование структуры базы данных;
2) создание таблиц, которые содержат всю необходимую информацию для работы с БД;
3) создание запросов, дающих возможность извлечения необходимой информации из БД;
4) создание форм, позволяющих пользователю просматривать нужную информацию и вносить изменения;
5) создание отчета.
1. Постановка задачи на разработку базы данных
1.1 Анализ предметной области
Информационная система для автоматизации учета информации о движении товаров на складе кафе должна учитывать сведения о поставщиках, номенклатуре поставляемой продукции, о сотрудниках и о количестве взятой со склада продукции.
Каждый продукт характеризуется следующими показателями:
1) код продукта;
2) наименование;
3) вид продукта;
4) единицы измерения;
5) стоимость одной единицы;
6) количество продукта в наличии.
Наименования продуктов могут быть одинаковыми, однако продукт должен иметь свой уникальный шифр.
Все продукты объединены в группы по видам продукта. Для этого нам необходимы следующие данные:
- Код вида продукта;
- Название вида.
Для учета товаров на складе необходимо знать, какое количество товаров поступает на склад, и какое изымается.
Для отслеживания поставок продуктов нам необходимы сведения о поставщиках.
Для каждого поставщика характерны следующие данные:
1) уникальный код;
2) наименование фирмы;
3) адрес;
4) телефон;
5) лицевой счет.
Поставщики должны различаться по своему уникальному коду.
Для каждой поставки продуктов должны быть учтены:
- Дата поставки;
- Поставщик;
- Общая стоимость.
Количество продуктов, входящих в поставку, указывается в товарно-транспортных накладных. Для ТТН выделяют следующие параметры:
- Код ТТН;
- Продукт;
- Стоимость.
Для отслеживания изъятия товаров со склада необходимо знать сведения о сотрудниках кафе, которые берут со склада продукцию. Сотрудники характеризуются следующими данными:
1) код сотрудника;
2) имя;
3) фамилия;
4) должность;
5) заработная плата.
Также необходимо знать, в каком отделе кафе работает сотрудник, для этого необходима информация об отделах, а именно:
- Код отдела;
- Название.
Каждый раз, когда сотрудник берет со склада продукт, он делает запрос, который включает в себя:
1) код запроса;
2) код сотрудника;
3) код продукта;
4) количество;
5) дату запроса.
1.2 Требования к информационной системе
С базой данных должны работать следующие группы пользователей:
1) администратор кафе;
2) кладовщик, который принимает товар;
3) сотрудники, которые берут товар со склада;
4) директор кафе.
При работе с системой администратор кафе должен иметь возможности просматривать информацию о поступившей продукции и о правильности внесения данных в БД.
Кладовщик, работая с системой, может решать следующие задачи:
- вносить данные о поступившем продукте, его количестве и стоимости;
- изменять данные о поставщиках (добавлять новых поставщиков, изменять лицевой счет поставщика, телефон, адрес, если это необходимо);
- просматривать информацию о наличии продуктов на складе (для того, чтобы знать, делать новый заказ на продукт или нет);
- изменять данные о продуктах (вносить в список новые продукты, удалять те, которые больше не поставляются).
Сотрудники компании с помощью системы могут выполнять следующие действия:
- просматривать информацию о наличии необходимого продукта;
- делать запрос на продукты.
Директор кафе имеет возможность:
- просматривать данные о поставщиках;
-получать данные о стоимости отдельных продуктов, а также общую стоимость поставок;
-отслеживать количество поставок за месяц в общем, и для каждого поставщика отдельно.
2. Проектирование модели данных
2.1 Семантическая модель данных
Разработку модели начнем с выделения основных сущностей и связей между ними.
Прежде всего, существует сущность «Продукт». Каждый продукт имеет уникальный шифр, который является её ключом, и дополнительные атрибуты «Наименование», «Остаток», «Единицы измерения» и «Стоимость одной единицы».
Продукты можно объединить по видам, поэтому вводится сущность «Вид продукта» с атрибутами «Код вида продукта» (ключ) и «Название вида». Между этими сущностями существует связь (1:*) с обязательным участием с обеих сторон, что означает, что один вид содержит много продуктов, а каждый продукт относится только к одному виду.
Информация о сотрудниках кафе отражена в сущности «Сотрудник», которая содержит «Код сотрудника» (ключ), а также атрибуты «Фамилия», «Имя», «Должность» и «Зарплата». Каждый сотрудник работает в каком-либо отделе кафе, поэтому добавляем сущность «Отдел» с атрибутами «Код отдела» (ключ), «Название» и «Количество сотрудников». Эти две сущности связаны по принципу (1:*). Это значит, что в каждом отделе работает несколько сотрудников, а любой сотрудник может работать только в одном отделе. Причем участие в связи обязательно с обеих сторон (в каждом отделе работают сотрудники, и каждый из сотрудников работает в каком-либо отделе).
Так как каждый сотрудник запрашивает необходимый продукт на складе, то нам необходима сущность «Запрос на продукт», содержащая атрибуты «Код запроса» и «Код продукта» в качестве составного первичного ключа и атрибуты «Количество» и «Дата запроса».
Данная сущность связана с сущностью «Продукт» связью (1:*) (в одном запросе могут быть несколько продуктов, а один продукт не может входить в несколько запросов). Участие с обеих сторон обязательное - каждый запрос обязательно содержит продукт, а каждый продукт обязательно учитывается в запросе.
В базе данных учитываются поставки продуктов, поэтому вводим сущность «Поставщик». Эта сущность имеет следующие атрибуты: «Код поставщика» (ключ), «Фирма», «Адрес», «Телефон» и «Лицевой счет». Поставщики осуществляют поставки продуктов в кафе, следовательно, появляется сущность «Поставка» с атрибутом «Код ТТН» в роли ключа, а также «Дата поставки» и «Стоимость поставки». Поставки продуктов учитываются в накладных. Сущность «Накладная» имеет атрибуты «Код ТТН» и «Код продукта» в качестве составного первичного ключа, а также атрибуты «Количество» и «Стоимость».
Между сущностями «Поставщик» и «Поставка» существует связь (1:*) с обязательным участием с обеих сторон. Это означает, что каждый поставщик может осуществить множество поставок, а каждая поставка осуществляется только одним поставщиком. И при этом каждый поставщик осуществляет поставки, а каждая поставка обязательно осуществляется поставщиком.
В свою очередь, сущность «Поставка» связана с сущность «Накладная» связью (1:*), также с обязательным участием с каждой стороны (каждая поставка учитывается в накладных, и каждая накладная должна содержать данные о поставке.
Ну и наконец, сущность «Накладная» связана с сущностью «Продукт» по принципу (1:*). Причем в сущности «Накладная» атрибуты «Код ТТН» и «Код продукта» образуют составной первичный ключ. Следовательно, у нас одна накладная может содержать несколько продуктов, но один и тот же продукт не может входить в несколько накладных. Степень участия - обязательное с обеих сторон (в каждой накладной должны находится сведения о продуктах, и каждый продукт обязательно учитывается в накладной).
Семантическая модель представлена в приложении А.
2.2 Логическая модель данных
Формирование отношений начинается с выделения родительской (главной) и дочерней (подчиненной) сущностей.
В отношении определения вида связи определяющим фактором является степень участия. Так, в двухсторонней связи типа «один ко многим» степень участия со стороны «многие» обязательная, то в результате будут получены два отношения, если необязательная, то три отношения. Степень участия в связи сущности со стороны «один» не влияет на результат.
Начнем с сущностей «Отдел» и «Сотрудник» со связью типа (1:*). Сущность отдел находится со стороны 1, поэтому она является родительской и передает копию своего первичного ключа в сущность «Сотрудник». Эта сущность дочерняя и использует копию первичного ключа в качестве внешнего ключа.
Затем рассмотрим связь между сущностями «Сотрудник» и «Запрос на продукт». Сущность «Сотрудник» является родительской (т.к. расположена со стороны 1), а «Запрос на продукт» - дочерней (со стороны *). Следовательно, копия первичного ключа из родительской передается в дочернюю сущность и используется там в качестве внешнего ключа.
Далее рассмотрим сущности «Вид продукта» и «Продукт». Сущность «Вид продукта» является главной, а «Продукт» - подчиненной. Следовательно, копия первичного ключа «Код вида продукта» в сущности «Продукт» выполняет функцию внешнего ключа.
Сущности «Продукт» и «Запрос на продукт» связаны также посредством связи типа (1:*), поэтому определяем главную и подчиненную сущность. Главной является сущность «Продукт», она передает копию своего первичного ключа в сущность «Запрос на продукт», где он используется в качестве внешнего ключа.
Рассмотрим сущности «Поставщик» и «Поставка». Родительская сущность «Поставщик» передает копию первичного ключа («Код поставщика») в сущность «Поставка», где он выполняет функцию внешнего ключа.
Сущности «Поставка» и «Накладная» связаны посредством связи (1:*), и «Поставка» является главной сущностью. Соответственно, копия первичного ключа «Код ТТН» передается в сущность «Накладная» и выполняет там роль внешнего ключа.
Далее рассмотрим сущности «Продукт» и «Накладная». Сущность «Продукт» является главной, она передает копию первичного ключа в сущность «Накладная», где он является внешним ключом.
После того как отношения сформированы, выполняется их обязательная проверка на соответствие нормальным формам.
Отношение находится в первой нормальной форме тогда и только тогда, когда на пересечении каждого столбца и каждой строки находятся только элементарные значения атрибутов. Все отношения находятся в первой нормальной форме, потому что на пересечении каждого столбца и каждой строки находятся только элементарные значения атрибутов.
На соответствие второй нормальной форме проверяются только отношения, имеющие составной первичный ключ. Отношение находится во второй нормальной форме тогда и только тогда, когда оно находится в первой нормальной форме и не содержит неполных функциональных зависимостей неключевых атрибутов от атрибутов первичного ключа.
Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится во второй нормальной форме и не содержит транзитивных зависимостей, то есть зависимостей неключевых атрибутов от неключевых.
Отношение находится в нормальной форме Бойса-Кодда, если оно находится в третьей нормальной форме, и каждый детерминант отношения является возможным ключом отношения, то есть отношение не должно содержать зависимостей ключевых атрибутов от неключевых.
Достижение нормальной формы Бойса-Кодда в большинстве случае является достаточным для окончания процесса нормализации отношений.
На соответствие четвертой нормальной форме проверяются отношения, имеющие многозначные атрибуты. Отношение находится в четвертой нормальной форме, если оно находится в третьей нормальной форме, и в нем отсутствуют многозначные зависимости неключевых атрибутов от ключевых.
Логическая модель представлена в приложении Б.
2.3 Определение физических характеристик атрибутов
Таблица 1 - Физические характеристики атрибутов
Имя атрибута |
Тип |
Размер |
Обязательность заполнения |
|
1 |
2 |
3 |
4 |
|
Таблица ОТДЕЛ |
||||
кодОтдела |
Числовой |
Длинное целое |
Да |
|
отдел |
Текстовый |
50 символов |
Да |
|
количествоСотрудников |
Числовой |
Длинное целое |
Нет |
|
Таблица СОТРУДНИК |
||||
кодСотрудника |
Числовой |
Длинное целое |
Да |
|
Фамилия |
Текстовый |
50 символов |
Да |
|
имя |
Текстовый |
50 символов |
Да |
|
должность |
Текстовый |
50 символов |
Нет |
|
зарплата |
Денежный |
Нет |
||
Таблица ПРОДУКТЫ |
||||
кодПродукта |
Числовой |
50 символов |
Да |
|
наименование |
Текстовый |
225 символов |
Да |
|
едИзмерения |
Текстовый |
10 символов |
Да |
|
стоимостьОднойЕд |
Денежный |
Нет |
||
вНаличии |
Числовой |
Длинное целое |
Нет |
|
Таблица ВИД ПРОДУКТА |
||||
кодВидаПродукта |
Числовой |
Длинное целое |
Да |
|
названиеВида |
Текстовый |
50 символов |
Да |
|
Таблица ПОСТАВЩИК |
||||
кодПоставщика |
Числовой |
Длинное целое |
Да |
|
фирма |
Текстовый |
225 символов |
Да |
|
адрес |
Текстовый |
225 символов |
Нет |
|
телефон |
Текстовый |
20 символов |
Нет |
|
лицевойСчет |
Текстовый |
20 символов |
Нет |
|
Таблица ПОСТАВКА |
||||
кодТТН |
Числовой |
Длинное целое |
Да |
|
датаПоставки |
Дата/время |
Да |
||
общаяСтоимость |
Денежный |
|||
Таблица НАКЛАДНАЯ |
||||
количество |
Числовой |
Длинное целое |
Да |
|
стоимость |
Денежный |
|||
Таблица ЗАПРОС НА ПРОДУКТ |
||||
кодЗапроса |
Числовой |
Длинное целое |
Да |
|
количество |
Числовой |
Длинное целое |
Да |
|
датаЗапроса |
Дата/время |
Да |
3. Реализация системы
3.1 Создание, связывание и заполнение таблиц
Запускаем MS Access, выбираем создание новой базы данных, после этого нам предлагается ввести имя новой базы данных, вводим «» и нажимаем кнопку «создать».
Для создания таблицы выбираем в окне открытой базы слева из списка «группы» - таблицы, затем справа выбираем «создание таблицы в режиме конструктора». В появившемся окне заполняем нужные нам поля и ставим там необходимый тип поля. После того как указано имя поля и выбран тип данных, можно выполнить дополнительную настройку свойств каждого поля. Это делается в нижней части окна, которая называется «Свойства поля».
Теперь нужно установить первичный ключ. Для этого выделяем поле (щелчок мыши по строке поля), которое будет ключевым, в данном случае это поле «КодОтдела», нажмем пункт меню «Правка/Ключевое поле» или кнопку на панели инструментов. Пример структуры таблицы в режиме конструктора приведен на рисунке 1.
Рисунок 1 - Структура таблицы «Отдел» в режиме конструктора
Остальные таблицы создаем аналогично. Структура таблиц базы данных представлена на рисунках 2-8.
Рисунок 2 - Структура таблицы «Сотрудник» в режиме конструктора
Рисунок 3 - Структура таблицы «ВидПродукта» в режиме конструктора.
Рисунок 4 - Структура таблицы «Продукты» в режиме конструктора
Рисунок 5 - Структура таблицы «Поставщик» в режиме конструктора
Рисунок 6 - Структура таблицы «Поставка» в режиме конструктора
Рисунок 7 - Структура таблицы «Накладная» в режиме конструктора
Рисунок 8 - Структура таблицы «ЗапросНаПродукт» в режиме конструктора
После создания всех таблиц необходимо определить связи между ними. Для этого переключаемся на вкладку «Работа с базами данных» и нажимаем на значок «Схема данных». В появившееся окно добавляем все таблицы, а далее простым перетягиванием переносим копию первичного ключа главной таблицы в подчиненную. При этом в разделе «Тип отношения» автоматически устанавливается тип связи - Один-ко-многим. Определим параметры связи, установив флажки «Обеспечение целостности данных» и «Каскадное обновление связанных полей». Нажмем кнопку «Создать». В результате получим схему данных, представленную на рисунке 9.
Рисунок 9 - Схема базы данных.
После этого можно заполнять таблицы исходными данными. При этом сначала заполняются главные таблицы, а затем подчиненные (Рисунок 10-17).
Рисунок 10 - Таблица «Отдел»
Рисунок 11 - Таблица «Сотрудник»
Рисунок 12 - Таблица «ВидПродукта»
Рисунок 13 - Таблица «Продукты»
Рисунок 14 - Таблица «ЗапросНаПродукт»
Рисунок 15 - Таблица «Поставщик»
Рисунок 16 - Таблица «Поставка»
Рисунок 17 - Таблица «Накладная»
3.2 Реализация запросов к базе данных
Запрос 1. Запрос на обновление стоимости поставленного количества определенного продукта по накладной. На вкладке Создание выбираем Конструктор запросов - запрос на обновление. В появившемся окне выбираем таблицы «Накладная» и «Продукты». В строке «Поле» выбираем «стоимость» из таблицы «Накладная». Далее в строке «Обновление» с помощью построителя строим следующее выражение: [Накладная]![количество]*[Продукты]![стоимостьОднойЕд].
Рисунок 18 - Запрос №1 в режиме конструктора
Запрос №1 в режиме SQL:
UPDATE Продукты INNER JOIN Накладная ON Продукты.кодПродукта = Накладная.кодПродукта SET Накладная.стоимость = [Накладная]![количество]*[Продукты]![стоимостьОднойЕд];
Рисунок 19 - Результат запроса №1(столбец Стоимость)
Запрос №2. Запрос на вычисление общей стоимости поставки. Данный запрос выполняется в 2 этапа. На первом этапе в режиме Конструктора создаем запрос на создание таблицы «Общая стоимость». Для этого необходимо из таблицы «Накладная» выбрать поля «Код ТТН» и «Стоимость». Затем выбрать на панели инструментов значок «Итоги» и в строке Групповая операция под «Кодом ТТН» выбрать Группировку, а под «Стоимостью» - Sum. Также в столбце «Код ТТН» в графе Условие отбора необходимо написать [введите код ТТН]. В результате в новую таблицу каждый раз будут заноситься данные об определенной поставке.
Рисунок 20 - Запрос на создание таблицы в режиме конструктора.
Рисунок 21 - Выполнение запроса на создание таблицы
В результате в новую таблицу вносятся данные о стоимости определенной поставки.
Рисунок 22 - результат запроса на создание таблицы
Второй этап Запроса №2 состоит в следующем: в режиме конструктора запросов выбираем две таблицы - «Поставка» и «Стоимость поставки по ТТН» (созданная на предыдущем этапе таблица). Далее выбираем атрибут «Общая стоимость» из таблицы «Поставка» и в строке Обновление указываем: [Стоимость поставки по ТТН]![Общая стоимость].
Рисунок 23 - Запрос №2 в режиме конструктора
Запрос №2 на языке SQL:
UPDATE Поставка INNER JOIN [Стоимость поставки по ТТН] ON Поставка.кодТТН = [Стоимость поставки по ТТН].кодТТН SET Поставка.общаяСтоимость = [Стоимость поставки по ТТН]![Общая стоимость];
Рисунок 24 - Результат запроса №2
Запрос №3. Запрос на обновление количества товаров на складе (добавление вновь привезенных). Для этого создается запрос на обновления с использованием таблиц «Продукты» и «Накладная». Из них выбираем поля «вНаличии» и «кодТТН» соответственно. В поле Обновление указываем выражение [Продукты]![вНаличии]+[Накладная]![количество], а в Условии отбора выражение [Введите код ТТН].
Рисунок 25 - Запрос №3 в режиме конструктора
При запуске запроса на выполнение нам необходимо ввести номер ТТН, после чего в таблице «Продукты» обновится значение атрибута «вНаличии» для определенного продукта.
Рисунок 26 - Выполнение запроса №3
Запрос №3 на языке SQL:
UPDATE Продукты INNER JOIN Накладная ON Продукты.кодПродукта = Накладная.кодПродукта SET Продукты.вНаличии = [Продукты]![вНаличии]+[Накладная]![количество]
WHERE (((Накладная.кодТТН)=[Введите код ТТН]));
Рисунок 27 - Результат запроса №3
Запрос №4. Данный запрос также для обновления количества товаров на складе, но уже при изъятии продукта в производство.
Используем таблицы «Продукты» и «ЗапросНаПродукт» и создаем запрос на обновление. Выбираем атрибуты «вНаличии» и «кодПродукта», и в поле Обновление указываем выражение [Продукты]![вНаличии]-[ЗапросНаПродукт]![количество]. В поле Условие пишем выражение [Введите код продукта].
Рисунок 28 - Запрос №4 в режиме конструктора
Рисунок 29 - Выполнение запроса №4
В результате выполнения запроса №4 от данных из столбца «вНаличии» отнимаются данные о количестве продукта, взятого для приготовления.
Запрос №4 на языке SQL:
UPDATE Продукты INNER JOIN ЗапросНаПродукт ON Продукты.кодПродукта = ЗапросНаПродукт.кодПродукта SET Продукты.вНаличии = [Продукты]![вНаличии]-[ЗапросНаПродукт]![количество]
WHERE (((ЗапросНаПродукт.кодПродукта)=[Введите код продукта]));
Запрос №5. Данный запрос для отображения даты поставки продукта.Дата поставки учитывается в таблице «Поставка», а наименование продукта в таблице «Продукты», а они связаны через таблицу «Накладная», поэтому мы выбираем эти 3 таблицы для создания запроса. Далее выбираем поле «наименование» из таблицы «Продукты» и поле «датаПоставки» из таблицы «Поставка».
Рисунок 30 - Запрос №5 в режиме конструктора.
Запрос №5 на языке SQL:
SELECT Продукты.наименование, Поставка.датаПоставки
FROM Продукты INNER JOIN (Поставка INNER JOIN Накладная ON Поставка.кодТТН = Накладная.кодТТН) ON Продукты.кодПродукта = Накладная.кодПродукта;
Рисунок 31 - Результат запроса №5
Запрос №6. Запрос, который отображает фамилии и имена сотрудников и продукты, которые эти сотрудники взяли. Для этого выбираем столбцы «фамилия» и «имя» из таблицы «Сотрудник», а также столбец «наименование» из таблицы «Продукты». Также указываем Условие отбора - [Введите фамилию].
Рисунок 32 - Запрос №6 в режиме конструктора
Рисунок 33 - Выполнение запроса №6
Запрос №6 на языке SQL:
SELECT Сотрудник.фамилия, Сотрудник.имя, Продукты.наименование
FROM Сотрудник INNER JOIN (Продукты INNER JOIN ЗапросНаПродукт ON Продукты.кодПродукта = ЗапросНаПродукт.кодПродукта) ON Сотрудник.кодСотрудника = ЗапросНаПродукт.кодСотрудника
WHERE (((Сотрудник.фамилия)=[Введите фамилию]));
Рисунок 34 - Результат запроса №6
Запрос №7. Запрос на вычисление общего количества поставок для каждого поставщика. Для этого выбираем таблицы «Поставщик» и «Поставка» и функцию Итоги. Затем в графе Групповая операция под атрибутом Фирма выбираем Группировку, а под атрибутом Код поставщика - Count. При этом столбец Код поставщика переименовываем в Кол-во поставок.
Рисунок 35 - Запрос №7 в режиме конструктора
Запрос №7 на языке SQL:
SELECT Поставщик.фирма, Count(Поставка.кодПоставщика) AS [Кол-во поставок]
FROM Поставщик INNER JOIN Поставка ON Поставщик.кодПоставщика = Поставка.кодПоставщика
GROUP BY Поставщик.фирма;
Рисунок 36 - Результат запроса №7
Запрос №8. Запрос на отображение стоимости максимальной поставки и поставщика, её осуществившего. Выбираем групповую операцию Max для атрибута ОбщаяСтоимость, группировка - для атрибута Фирма, а также указываем следующее условие отбора для ОбщейСтоимости: (Select Max(общаяСтоимость) From Поставка).
Рисунок 37 - Запрос №8 в режиме конструктора
Запрос №8 на языке SQL:
SELECT Max(Поставка.общаяСтоимость) AS [Max-общаяСтоимость], Поставщик.фирма
FROM Поставщик INNER JOIN Поставка ON Поставщик.кодПоставщика = Поставка.кодПоставщика
GROUP BY Поставщик.фирма
HAVING (((Max(Поставка.общаяСтоимость))=(Select Max(общаяСтоимость) From Поставка)));
Рисунок 38 - Результат запроса №8
Запрос №9. Запрос на определение общего количества поставок за месяц и их стоимости. Для выполнения данного запроса необходимо ввести функцию выбора определенного месяца и года. Для этого с помощью построителя именуем поле Дата поставки следующим образом: Month([Поставка]![датаПоставки]) и Year([Поставка]![датаПоставки]) и указываем условия отбора: [введите месяц] и [введите год] соответственно. Для столбца КодТТН указываем групповую операцию Count, а для столбца ОбщаяСтоимость - Sum.
Рисунок 39 - Запрос №9 в режиме конструктора
Запрос №9 на языке SQL:
SELECT Count(Поставка.кодТТН) AS [Кол-во поставок], Sum(Поставка.общаяСтоимость) AS Стоимость
FROM Поставка
GROUP BY Month([Поставка]![датаПоставки]), Year([Поставка]![датаПоставки])
HAVING (((Month([Поставка]![датаПоставки]))=[введите месяц]) AND ((Year([Поставка]![датаПоставки]))=[введите год]));
Рисунок 40 - Результат запроса №9
Запрос №10. Запрос на определение общей суммы всех поставок для каждого поставщика. Для выполнения запроса добавляем таблицы «Поставщик» (столбец «фирма»), «Поставка» и «Накладная» (столбец «стоимость»). Для первого определяем групповую операцию, как Группировка, а для второго - Sum. Переименовываем столбец «стоимость» в «Сумма поставок».
Рисунок 41 - Запрос №10 в режиме конструктора
Запрос №10 на языке SQL:
SELECT Поставщик.фирма, Sum(Накладная.стоимость) AS [Сумма поставок]
FROM Поставщик INNER JOIN (Поставка INNER JOIN Накладная ON Поставка.кодТТН = Накладная.кодТТН) ON Поставщик.кодПоставщика = Поставка.кодПоставщика
GROUP BY Поставщик.фирма;
Рисунок 42 - Результат запроса №10
Запрос №11.Запрос на отображение информации о количестве продукта, взятого сотрудником. Для выполнения данного запроса выбираем на панели инструментов «Перекрестный» и добавляем таблицы «Продукты», «ЗапросНаПродукт» и «Сотрудник», а из них атрибуты Наименование, Количество и Фамилия соответственно. Для атрибута Количество устанавливаем групповую операцию Count. В строке перекрестная таблица для атрибута Фамилия указываем Заголовки столбцов, для Наименования - Заголовки строк, а для Количества - Значение.
Рисунок 43 - Запрос №11 в режиме конструктора
Запрос №11 на языке SQL:
TRANSFORM Count(ЗапросНаПродукт.количество) AS [Count-количество]
SELECT Продукты.наименование
FROM Сотрудник INNER JOIN (Продукты INNER JOIN ЗапросНаПродукт ON Продукты.кодПродукта = ЗапросНаПродукт.кодПродукта) ON Сотрудник.кодСотрудника = ЗапросНаПродукт.кодСотрудника
GROUP BY Продукты.наименование
PIVOT Сотрудник.фамилия;
Рисунок 44 - Результат запроса №11
Запрос №12. Запрос на отображение общей стоимости поставок за месяц. Создаем перекрестный запрос. Для группировки поставок по месяца с помощью построителя даем название Выражение1: Month([Поставка]![датаПоставки]) одному из столбцов.
Рисунок 45 - Запрос №12 в режиме конструктора
Запрос №12 на языке SQL:
TRANSFORM Sum(Поставка.общаяСтоимость) AS [Sum-общаяСтоимость]
SELECT Поставщик.фирма
FROM Поставщик INNER JOIN (Поставка INNER JOIN Накладная ON Поставка.кодТТН = Накладная.кодТТН) ON Поставщик.кодПоставщика = Поставка.кодПоставщика
GROUP BY Поставщик.фирма
PIVOT Month([Поставка]![датаПоставки]);
Рисунок 46 - Результат запроса №12
3.3 Создание отчетов
Отчётом обычно называется документ, который создается для распечатки на бумаге. Основное назначение отчета - формировать в нужном виде информацию, которая затем будет выведена на экран или на печать. Отчеты всегда создаются на основе какой-нибудь таблицы или запроса. Все отчеты базы данных создаются с помощью мастера.
Для удобства просмотра информации о наличии продуктов, создадим отчет Продукты. Для этого выберем поля Наименование и ВНаличии из таблицы Продукты, вид макета «Табличный» и зададим отчету имя Продукты.
Отчет представлен в приложении В.
Также нас интересует сколько продуктов брали сотрудники кафе за определенный месяц. Для создания отчета используем таблицы ЗапросНаПродукт, Сотрудник и Продукты. Делаем группировку данных по месяцам. Задаем отчету имя Запросы на продукт.
Отчет представлен в приложении Г.
Создадим также отчет о стоимости поставок, осуществленных каждым поставщиком, с подведением общей стоимости всех поставок. Для этого выбираем таблицы Поставщик и Поставка (поля Фирма, ДатаПоставки и ОбщаяСтоимость). Группируем по наименованию фирмы и подводим итоги с помощью функции Sum. Имя отчета - Сумма поставок.
Отчет представлен в приложении Д.
3.4 Создание форм
Формы служат удобным средством для ввода, просмотра и редактирования информации в базе данных.
1.Создадим форму «Отдел». Для этого добавим все поля из таблицы отдел и внешний вид формы - в один столбец. Сохраним форму под именем Отдел.
Затем откроем форму в режиме конструктора, добавим изображение в качестве фона. Теперь необходимо добавить кнопки для удобства пользования. Выбираем категорию кнопки Переходы по записям и действие «Предыдущая запись» для одной кнопки и «Следующая запись» для второй. Также необходимо осуществлять переход от данной формы к форме сотрудники. Для этого выбираем кнопку из категории Работа с формой, выполняющую действие «Открыть форму». Далее выбираем форму, которую необходимо открыть, и задаем имя кнопке.
Рисунок 47 - Форма «Отдел»
2. Форма, отображающая сотрудников и запросы на продукт, которые они сделали. Для этого выбираем все поля из таблиц Сотрудники и ЗапросНаПродукт, и определяем главную и подчиненную формы. В данном случае главной формой является форма Сотрудники. Сохраняем форму под именем «Запросы сотрудников» и переходим в режим конструктора.
Здесь мы добавляем фоновое изображение и кнопки Первая запись и Последняя запись, а также кнопку для перехода к форме «Отдел». Теперь добавим элемент под названием Поле со списком, для удобства выбора записи. При этом выберем поле, по которому будем искать запись (поле Фамилия). Еще один элемент - кнопка для добавления новой записи. Это кнопка из категории Обработка записей - Добавить запись. Назовем ее «Новый сотрудник». Также добавим кнопку для просмотра отчета о запросах продуктов (Категория Работа с отчетом - Открыть отчет) и переименуем ее в «Отчет по запросам».
Рисунок 48 - Форма «Запросы сотрудников»
3. Создадим форму, отображающую продукты с их видами, а также накладные. Выберем данные из таблиц ВидПродукта, Продукты и Накладная. Добавим на форму элемент Поле со списком (по наименованию продукта) и кнопку Новый продукт (Категория Обработка записей - Добавить запись). Также добавим кнопку для перехода к форме «Поставщики».
Рисунок 49 - Форма «Продукты»
4. Создадим форму для просмотра информации о поставщиках и поставках. Используем данные из таблиц Поставщик и Поставка. Добавляем кнопку для перехода к форме «Продукты», элемент Поле со списком (по атрибуту Фирма), кнопки для перехода к первой и последней записи (Категория Переходы по записям), а также кнопки для добавления или удаления поставщика (Категория обработка записей).
Рисунок 50 - Форма «Поставщики»
И наконец, создается Главная форма. На вкладке Создание выбираем пустую форму, а на нее добавляем кнопки для перехода ко всем формам, а также для просмотра отчетов и выполнения запросов.
Рисунок 51 - Главная форма
Заключение
В данной работе была разработана база данных по автоматизации учета поступления и реализации продуктов в кафе. С помощью данной программы можно вести базу данных, отслеживать всю информацию о поставщиках, поставках продуктов, а также об изъятии продуктов на кухню. Также все эти данные можно с легкостью корректировать, удалять и добавлять записи в таблицы. Совершать все эти действия не составит никакого труда при использовании этой программы.
Кнопочные формы позволят просмотреть все необходимые отчеты и запросы о поставках товаров. На примере проделанной работы были рассмотрены практически все функции и возможности Microsoft Accsess. Программа проста в обращении и позволяет систематизировать все данные и заметно сокращает время на их обработку.
База данных в среде СУБД MS Access в практическом применении удобна и достаточно эффективна. При наличии определенных знаний данная программа намного упрощает работу с данными.
Список использованных источников
1 Кириллов, В.В. Введение в реляционные базы данных / В.В. Кириллов, Г.Ю. Громов. - СПб. : БХВ-Петербург, 2009. - 464 с.
2 Хомоненко, А.Д. Базы данных: учебник / А.Д. Хомоненко, В.М. Цыганков, М.Г. Мальцев. - 2-е изд., перераб. и доп. - СПб.: КОРОНА принт, 2002. - 672 с.
3 Оскерко, В.С. Технологии организации, хранения и обработки данных: учеб.-практ. пособие / В.С. Оскерко. - Минск.: БГЭУ, 2002. - 120 с.
4 Карпова, Т.С. Базы данных: модели, разработка, реализация / Т.С. Карпова. - СПб.: Питер, 2002. - 304 с.
5 Хансен, Г. Базы данных: разработка и управление: пер с англ. / Г. Хансен, Дж. Хансен. - М.: БИНОМ, 1999. - 704 с.
6 Вейскас, Дж. Эффективная работа с Мicrosoft Access 2000 / Дж. Вейскас. - СПб.: Питер, 2000. - 1040 с.
7 Ролланд, Ф. Д. Основные концепции баз данных: пер. с англ. / Ф. Д. Ролланд. _ М.: Вильямс, 2002. - 256 с.
8 Оскерко, В.С. Практикум по технологиям баз данных: учеб. пособие / В.С. Оскерко, З.В. Пунчик. _ Минск.: БГЭУ, 2004. - 170 с.
9 Туманов, В.Е. Основы проектирования реляционных баз данных: учеб. пособие для вузов / В.Е. Туманов. - М.: Интернет-Университет Информационных Технологий, БИНОМ, 2007. - 420 с.
10 Диго, С.М. Базы данных: проектирование и использование: учебник / С.М. Диго. - М.: Финансы и статистика, 2005. - 592 с.
11 Кузин, А.В. Базы данных: учеб. пособие / А.В. Кузин, С.В. Левонисова - М.: Академия, 2005. - 320 с.
12 Левчук, Е.. Технологии организации, хранения и обработки данных: учеб. пособие / Е.А. Левчук. - Минск.: Выш. шк., 2005. - 239 с.
13 Роб, П. Системы баз данных: проектирование, реализация и управление: пер. с англ. - 5-е изд., перераб. и доп. / П. Роб. - СПб.: БХВ-Петербург, 2004. - 1040 с.
14 Диго, С.М. Access: учеб.-практ. пособие / С.М. Диго. - М. : Велби; Проспект, 2008. - 240 с.
15 Microsoft Access 2003. Шаг за шагом: практ. пособие: пер. с англ. - М.: ЭКОМ, 2007. - 432 с.
16 Сеннов, А.С. Access 2003. Практическая разработка баз данных: учеб. курс / А.С. Сеннов. - СПб.: Питер, 2006. - 256 с.
17 Михеева, В.Д. Microsoft Access 2003 / В.Д. Михеева, И.А. Харитонова. - СПб.: БХВ-Петербург, 2006. - 1072 с.
18 Бекаревич, Ю.Б. Самоучитель Microsoft Access 2002 / Ю.Б. Бекаревич, Н.В. Пушкина. - СПб.: БХВ-Петербург, 2002. - 720 с.
19 Microsoft Access 2002. Русская версия. Шаг за шагом: практ. пособ.: пер. с англ. - М.: ЭКОМ, 2002. - 352 с
Приложение А
Рисунок А.1 - Семантическая модель
Рисунок Б.1 - Логическая модель
Размещено на Allbest.ru
Подобные документы
Инструментальные средства для разработки структуры информационной базы данных "Программа автоматизации учета расчетов с поставщиками", пользовательский интерфейс СУБД Access. Разработка запросов отбора данных и вычислений, экранных форм коррекции данных.
лабораторная работа [2,4 M], добавлен 15.11.2010Изучение основных понятий баз данных: структура простейшей базы данных, компоненты базы данных Microsoft Access. Проектирование базы данных "Туристическое агентство" в СУБД Access 2010, в которой хранятся данные о клиентах, которые хотят поехать отдыхать.
курсовая работа [3,3 M], добавлен 20.09.2013Разработка базы данных "Поставка и реализация продуктов питания". Применение базы данных. Цель инфологического проектирования. Выборка информации при помощи запросов. Подпрограммы, работающие на сервере и управляющие процессами обработки информации.
курсовая работа [326,0 K], добавлен 28.06.2011Проектирование базы данных в среде СУБД MS Access. Автоматизация учета информации о товаре в магазине. Определение требований и функций системы. Анализ предметной области. Разработка, создание таблиц, запросов, форм и отчетов. Инструкция для пользователя.
отчет по практике [523,6 K], добавлен 21.04.2014Разработка базы данных для спортивной школы с целью ведения учета, контроля и получения информации о нужном студенте. Создание диалогового окна входа в приложение. Составление схемы и структуры базы данных. Разработка пользовательского интерфейса.
курсовая работа [3,4 M], добавлен 08.09.2015Разработка базы данных для автоматизации учета и хранения сведений о заявках от работодателей. Проектирование приложения в СУБД Access. Описание запросов, отчетов и представлений данных. Интерфейс, условия выполнения и тестирование программного продукта.
курсовая работа [3,7 M], добавлен 05.04.2012Создание программы для автоматизации продаж программных продуктов, ведение базы данных по клиентам, формирование отчетов по реализованным товарам и вырученным средствам. Алгоритмизация задачи. Аномалии и защитное программирование. Тестирование и отладка.
курсовая работа [2,9 M], добавлен 17.07.2014СУБД - многопользовательские системы управления базой данных, специализирующиеся на управлении массивом информации. Запросы на выборку и изменение данных, формирование отчетов по запросам выборки. Схема базы данных. Программа по управлению базой данных.
реферат [1,9 M], добавлен 27.12.2013Создание базы данных при помощи Microsoft Access по ведению учета продукции склада, её стоимости при покупке и продаже продуктов. Проектирование таблиц "Клиенты", "Документы", "Товары", "Содержание документов". Реализация пользовательского интерфейса.
курсовая работа [2,1 M], добавлен 30.03.2013Системы управления базами данных: сущность и характеристика. Типы данных и свойства полей СУБД Access. Объекты базы данных: таблицы, схемы данных, формы, запросы, отчеты. Разработка и проектирование базы данных "Продажи книг" в среде Microsoft Access.
курсовая работа [1,8 M], добавлен 04.02.2013