База данных Меню ресторана

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



Ресторану требуется разработать автоматизированную систему для учета блюд, ингредиентов, напитков, заказов, ценовых характеристик, расчета стоимости заказов. Одним из фрагментов системы является подсистема составления блюд из ингредиентов, которая позволяет «набирать» блюда из ингредиентов с вычислением себестоимости, набирать заказы из блюд, печатать меню, заказы и блюда и т.д. Обратить внимание, что количество ингредиента измеряется в разных единицах измерения (штуки, граммы и т.п.). Разработать базу данных «Меню». В пояснительной записке последовательно описать весь процесс разработки и разместить все экранные формы.

	Задача курсовой работы состоит в том, чтобы создать информационную систему (базу данных), отражая, таким образом, полученные в пройденном курсе знания.

	База данных - центральная часть ИС (информационной системы), совокупность данных для машинной обработки, которая отражает информационную модель некоторой предметной области. Современные БД (базы данных) хранят данные в виде таблиц, которые определенным образом связаны между собой, по этому свойству БД называются реляционными.

БД создается с помощью СУБД (системы управления БД). СУБД - программная инструментальная система, основные назначения которой:

описать БД, таблицы  и связи между ними, описать операции над данными в таблицах;

контролировать целостность и непротиворечивость данных;

автоматически отображать описанную информационную модель в физическую БД на магнитных носителях компьютера.

Основы проектирования реляционных БД

Жизненный цикл БД можно разбить на три основные стадии:

проектирование (на бумаге или с помощью специальных программ);

программная реализация;

эксплуатация.

На этапе проектирования решаются следующие вопросы:

изучение задачи (обследование предметной области), выделение объектов и связей, о которых надо хранить информацию;

составление исходных таблиц БД;

нормализация (декомпозиция) таблиц и назначение ключевых полей.

На этапе реализации происходит:

описание полученных таблиц средствами СУБД и ввод их в компьютер;

разработка отчетов, экранных форм, запросов, макросов и программ;

отладка и тестирование программ из ИС и обучение персонала.

На стадии эксплуатации происходит наполнение ИС реальными данными, использование, доработка и сопровождение.

Реализация настоящей БД произведена в Access 2003

Реализация БД в Access начинается с описания полученных таблиц, но, кроме того, в Access также разрабатываются следующие категории объектов:

запросы (queries) - для отбора и фильтрации данных из таблиц по определенным критериям;

формы (forms) - для отображения данных из таблиц на экране в удобном виде;

отчеты (reports) - для оформления данных из таблиц в виде распечаток на бумаге.

Главное окно Access:

отображает состав БД, то есть содержит перечень всех объектов, сгруппированных по категориям в отдельных закладках;

содержит три кнопки (справа) для выполнения над объектами следующих действий:





открытькнопка    просмотра   содержимого               объекта; 





конструкторкнопка перехода в режим разработки, конструирование объекта;





создатькнопка создания нового объекта с переходом в режим конструктора.



2. Разработка таблиц и схемы базы данных



Для создания данной информационной системы нам понадобятся различные сведения (название блюд, напитков, информация об ингредиентах, ценовых характеристиках и т. п.), которые необходимо связать для обеспечения непротиворечивости данных.

В нашей ИС можно выделить следующие таблицы: «Блюда», «Напитки», «Ингредиенты», «Группы», «Состав блюда», «Официанты», «Заказы» и «Заказы из меню».

Для создания таблицы в Access следует описать ее структуру в режиме конструктора. Описание поля включает: 

Имя поля

Тип данных

Примечания

Свойства поля

Создание таблицы «Блюда»

Вид таблицы:



В столбец «имя поля» вводятся следующие записи: «Код блюда», «Название», «Код группы», «Себестоимость», «Цена» и «Наценка».

В столбец «тип данных» вводятся типы полей таблицы, которые выбираются из списка. Поля таблицы могут быть следующих типов:

Текстовое поле

Поле МЕМО

Числовое поле

Поле дата/Время

Денежное поле

Счетчик

Логическое поле

Поле объекта OLE

Поле гиперссылки

 Мастер подстановок



В нашей таблице именам поля соответствуют следующие типы: 

Код блюда - Числовой;

Название - Текстовый;

Код группы - Числовой;

Себестоимость - Денежный;

Цена - Денежный;

Наценка  - Числовой;



Также описаны и свойства полей:

Для поля «Код блюда» с типом «Числовой» определены следующие свойства: 

Размер поля - Длинное целое;

Число десятичных знаков – Авто;

Индексированное поле – Да (совпадения не допускаются);

Выравнивание текста – Общее.



Для поля «Название» с типом «Текстовый» определены следующие свойства: 

Размер поля - 50;

Индексированное поле – нет.



Для полей «Код группы» и «Наценка» с типом «Числовой» определены следующие свойства: 

Размер поля – Длинное целое;

Число десятичных знаков – Авто;

Индексированное поле – Нет.



Для полей «Себестоимость» и «Цена» с типом «Денежный» определены следующие свойства: 

Формат поля – Денежный;

Число десятичных знаков – Авто;

Индексированное поле – Нет.



После введения этих данных необходимо задать «ключевое поле». В таблице «Блюда» этим полем является «Код блюда».

Созданная в итоге таблица имеет такой вид: 



При сохранении задается имя «Блюда».

Таким же образом создаются остальные таблицы: «Группы», «Заказы из меню», «Заказы», «Ингредиенты», «Напитки», «Официанты», «Состав блюда».

В таблице «Группы» именам поля соответствуют следующие типы: 

Код группы - Счетчик;

Название группы – Текстовой.

Ключевое поле – Код группы.





В таблице «Заказы из меню» именам поля соответствуют типы: 

Код заказа - Числовой;

Код блюда - Числовой;

Код напитка - Числовой;

Количество - Числовой;

Сумма – Денежный.

















В таблице «Заказы» именам поля соответствуют следующие типы: 

Код заказа – Счетчик;

Дата заказа – Дата/Время;

Номер столика – Числовой;

Официант – Числовой;

Общая сумма – Денежный.

Ключевое поле – Код заказа.





В таблице «Ингредиенты» именам поля соответствуют следующие типы: 

Код ингредиента – Числовой;

Название – Текстовый;

Себестоимость – Денежный;

Единица измерения – Текстовый;

Ключевое поле – Код ингредиента.

 

В таблице «Напитки» именам поля соответствуют следующие типы: 

Код напитка – Счетчик;

Название – Текстовый;

Код группы – Числовой;

Себестоимость – Денежный;

Цена – Денежный;

Наценка – Числовой.

Ключевое поле – Код напитка.









В таблице «Состав блюда» именам поля соответствуют следующие типы: 

Код блюда – Числовой;

Код ингредиента – Числовой;

Количество – Числовой;

Себестоимость – Денежный.







В таблице «Официанты» именам поля соответствуют следующие типы: 

Код официанта – Счетчик;

ФИО – Текстовый.

Ключевое поле – Код официанта.



После вышеперечисленных действий окно базы данных выглядит так:

	



Создание связи таблиц – схема данных



Данная операция состоит из двух действий:

добавление таблиц в схему данных;

установка связи. 



После нажатия кнопки   добавляем все созданные таблицы.









Затем переходим к непосредственному связыванию таблиц. Общий вид получается таковым: 









3. Разработка запросов



Запросы позволяют отбирать необходимую информацию из таблиц и представлять ее опять же в табличном виде.

Для Базы данных «Ресторан» потребовалось несколько запросов.                                Запрос «Блюда с ингредиентами»:

Данный запрос необходим для сформирования наглядного перечня блюд и входящих в них ингредиентов с точным указанием количества и себестоимости. 

Запрос создается к таблицам «Блюда», «Состав блюда» и «Ингредиенты». 

В режиме конструктора добавляем запрос на эти таблицы. Затем перетаскиваем необходимые поля из таблиц в строку «Поле» нижнего окна, где автоматически фиксируется начальное местоположение каждого поля (таблицы).



 Сохраняем запрос с именем «Блюда с ингредиентами». Запрос выглядит так:



Запрос «Запрос заказы»: 

Данный запрос необходим для сформирования наглядного списка заказов с учетом цены, количества, суммы, с указанием номеров обслуженных столиков и ФИО официантов, которые приняли заказ, а также в данный запрос включена дата заказа. 

Запрос создается к таблицам «Блюда», «Заказ из меню», «Заказы» и «Официанты». 

В режиме конструктора добавляем запрос на эти таблицы. Затем перетаскиваем необходимые поля из таблиц в строку «Поле» нижнего окна, где автоматически фиксируется начальное местоположение каждого поля (таблицы).









Запрос «Официанты и сумма заказа»: 

Данный запрос необходим для формирования списка официантов с указанием даты и общей суммы заказа. 

Запрос создается к таблицам «Официанты» и «Заказы». 

В режиме конструктора добавляем запрос на эти таблицы. Затем перетаскиваем необходимые поля из таблиц в строку «Поле» нижнего окна, где автоматически фиксируется начальное местоположение каждого поля (таблицы).











4. Разработка основных форм и отчетов



Форма - это объект Access, который отображает данные на экране в рамках некоторого окна. Для формы, как правило, определен источник данных - таблица или запрос. Данные из источника данных обычно размещаются в области данных формы.

Форма, отображающая в области данных последовательность, является ленточной.

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

В базе данных имеются 9 форм для ввода данных в таблицы. Формы Блюда, Группы, Заказы из меню, Заказы, Ингредиенты, Напитки, Официанты, Ресторан, Состав блюда служат для ввода данных в одноименные базовые таблицы. Для создания формы нужно активировать вкладку Формы в окне базы данных, нажать кнопку создать, выбрать из списка тип формы или режим конструктора, выбрать из списка внизу таблицу, в которую будут заноситься данные. В результате автоматически будет создана требуемая форма. В нашем случае все формы для ввода данных имеют тип автоформа в столбец. Как правило соответствующие поля из таблицы представлены в форме строками или полями со списками для ввода текста. Внизу формы располагается элемент управления для перемещения по записям таблицы.

Следует отметить особенности форм Заказы из меню, Состав блюда и Ресторан. После создания они были открыты в режиме конструктора, на них были помещены командные кнопки, которые служат для запуска вспомогательных справочных запросов. Этим достигается удобство для пользователя при вводе данных в таблицы, справочная информация находится на экране. При открытии формы в режиме конструктора из главного меню Вид выбирается команда Панель элементов. Из Панели элементов выбирается значок Кнопка и устанавливается на форме.



После создания формы Заказы из меню открыть ее в режиме конструктора и поместить на ней командные кнопки для запуска вспомогательных справочников Заказы, Блюда, Напитки.



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



Форма Ресторан создается главного окна для просмотра всей необходимой информации о ресторане, поэтому она состоит только из командных кнопок для запуска вспомогательных справочников:

Ингредиенты – отчет по ингредиентам.

Блюда – отчет по блюдам.

Заказы – отчет по заказам.

Подраздел Меню включает в себя командные кнопки Блюда и Напитки, которые распечатываются после нажатия на соответствующие кнопки.

Командная кнопка Закрыть – закрывает Форму Ресторан.



Формирование отчетов:

Для создания отчета необходимо активировать в окне базы данных вкладку Отчеты, нажать кнопку Создать, выбрать из открывшегося списка тип отчета или режим конструктора, выбрать из списка таблицу или запрос, на основе которых будет создан отчет. 

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

Отчеты по своей сути дублируют содержания запросов, но информация в отчете представлена в отформатированном виде, удобна для вывода на принтер.

Сформированы отчеты следующего содержания на основании одноименных запросов:

- Блюда;

- Заказы;

- Ингредиенты;

- Меню блюд;

- Меню напитков.

Фрагмент отчета Меню блюд:



Рекомендации по дальнейшей модернизации системы



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

Также создать запросы для расчета себестоимости на определенные блюда, заказы. Наличие в форме «Блюда» цветных изображений соответствующих блюд.

Создать удобный дизайн программы с понятным интерфейсом и оригинальными кнопочными формами. Автоматизация необходимых расчётов.

Создание при запуске базы данных автоматической Главной кнопочной формы, с представлением необходимых данных, например, возможно Форму Ресторан преобразовать в автоматическую форму.



Руководство пользователя



После запуска базы данных, чтобы видеть все необходимые данные, надо открыть форму «Ресторан». На ней представлены кнопки:



Ингредиенты – необходима для открытия отчета «Ингредиенты»;

Блюда – открывает отчет «Блюда»;

Заказы – открывает отчет «Заказы»;

Для того чтобы распечатать Меню блюд или напитков, нужно нажать на кнопки, которые находятся в подразделе «Меню»;

Форма закрывается через кнопку «Закрыть».

Для ввода новых блюд необходимо заполнить таблицу «Блюда». Выполняется данная операция при помощи одноименной формы «Блюда». Таким же образом возможно проделать операции с таблицами «Напитки», «Ингредиенты», «Состав блюда», Официанты», соответственно при помощи форм «Напитки», «Ингредиенты», «Состав блюда», Официанты». После выполнения всех описанных операций можно приступать к составлению блюд из ингредиентов.

Для составления заказа необходимо:

Убедиться, что данное блюдо присутствует в меню при помощи одного из отчетов: «Меню блюд», «Блюда». Для открытия одного из данных отчетов необходимо выполнить следующее действие: Главная кнопочная форма – «Ресторан», и в открывшейся кнопочной форме выбрать необходимый отчет. 

Проверить наличие официанта в списках официанты, и при необходимости добавить его при помощи формы Официанты.

Открыть форму «Заказы». Заполнить данную форму.

При необходимости распечатать отчет «Заказы», расположенный на кнопочной форме Отчеты.

Для полного описания работы ресторана был разработан ряд отчетов: 

Блюда  – выводит количество реально существующих блюд на данном ресторане;

Ингредиенты – выводит название и себестоимость ингредиентов;

Также есть Меню блюд и Напитков на настоящее время работы ресторана, с указанием стоимости.

Самый главный отчет – это Заказы, полное отображение сведений по заказам, которая включает в себя: Дата заказа (по месяцам), Номер столика, код официанта, Общая сумма заказа.

Все описанные выше отчеты открываются со страницы Базы данных.





          





4