Реферат по предмету "Информатика, программирование"


Информационная система "Книга рецептов"

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ
Московский Государственный Институт Электроники и Математики
КУРСОВАЯ РАБОТА
по теме: «Книга рецептов»
по курсу «Информационные технологии в экономике»
Москва, 2005 г.

Введение
 
Анализ проблемы,функциональные требования к информационной системе.
Мы живём в векинформационных технологий, в век в котором техника может выполнять задачи,которые обременяют нас в повседневности. В настоящий момент существует массамультимедийных систем, которые контролируют и упрощают наш повседневный быт.Например, так называемая система «Умный дом». Она позволяет с помощьюсовременных технологий следить за функционированием дома и бытовых приборов. Вданную систему может входить такие функции как: автоматический заказ продуктов,случае их отсутствия в холодильнике; управление с пульта ДУ всей музыкальнойтехникой, телевизорами, системой вентиляции и т.д.
Каждый день, все мысталкиваемся с такими тривиальными задачами, как приготовление еды. Нужнознать, ЧТО ты хочешь приготовить, КАК и какие ПРОДУКТЫ необходимы. И прирешении этой задачи мы сталкиваемся с проблемой упорядочения этих трехпараметров: «ЧТО, КАК, Продукты?». А также актуальной задачей является экономиявремени и средств.
Поэтому целесообразныминструментом решения поставленных задач, на мой взгляд, является электроннаябаза данных, представляющая собой «Поваренную книгу». Функциями этой БДявляется: при выборе блюда из предложенного списка, БД выдаёт информацию орецепте, количестве входящих в него продуктов, о расходах на продукты, времениприготовления и о виде блюда (1, 2, 3).
Итак, решением проблемывозникающей при приготовлении любого блюда, будет информационная система.Основные цели данной информационной системы:
1)             упорядоченноехранение информации о:
1.1) продуктахнеобходимых для приготовления;
1.2) о блюдах,предлагаемых базой данных;
1.3) о рецептах, покоторым готовятся блюда;
2)             расчет расхода напродукты для блюдо;
3)             времяприготовления.

Функциональнаяструктура системы
 
Назначение проектируемойинформационной системы (ИС) – упорядоченное хранение информации и управлениерасходом продуктов на блюдо и их стоимостью. Исходная информация ИС: информацияо продуктах, информация о блюдах и информация, о рецептах. Основнымпользователем ИС будет владелец холодильника. На выходе ИС должна формироватьотчеты заданной формы. При функционировании ИС должны учитываться существующиеформы отчетности.
/>
Информацию о блюдах,изменении списка блюд, а также информацию о рецептах и продуктах (из повареннойкниги) вносит пользователь, имея в виду формы отчетности.
Учитывая уже имеющиесяданные о блюдах в базе данных и о рецептах приготовления этих блюд, по данным околичестве продуктов необходимом для приготовления блюда ИС рассчитывает расходпродуктов на блюдо и стоимость. Кроме того, ИС может сформироватьдополнительные отчеты. Отчеты формируются по формам отчетности.
/>
Итак, на выходе системымы получаем отчеты, главный из которых — расчет расхода продуктов по рецепту иих стоимость.
Расчет расхода продуктовна блюдо и стоимости продуктов затраченных на блюдо происходит следующимобразом: пользователь выбирает блюдо, для которого надо посчитать расходпродуктов и их стоимость. По блюду ИС находит рецепт. По данным о рецепте ипродуктах ИС рассчитывает расход каждого продукта в данном блюде и стоимость.Затем вклады всех продуктов суммируются, и на выходе мы получаем отчет орасходе продуктов и их общую стоимость.

/>
Помимо отчета о расходепродуктов и их стоимости ИС также может сформировать дополнительные отчетыследующим образом: из предложенных форм отчетности выбирается нужная. По нейуказываются параметры отчета. ИС обрабатывает хранящиеся в ней данные опродуктах, блюдах и рецептах — получаем отчеты.

/>
Структура базы данных
Наша информационнаясистема будет работать с такими объектами, как: продукты, блюда, рецепты. Дляработы ИС нам важно знать о них следующую информацию:
1) о продуктах:
1.1) наименованиепродукта;
1.2) код продукта (онбудет однозначно характеризовать продукт (для каждого продукта код уникален) икороче, чем наименование, – по нему легче ориентироваться);
1.3) цена за единицупродукта – дает возможность подсчитать стоимость продуктов необходимых дляприготовления блюда;
2) о блюдах:
2.1) код блюда (такжеоднозначно характеризует блюда и удобен в использовании);
2.2) наименование блюда;
2.3) время приготовления,сколько времени оно займет;
2.4) вид блюда (горячее,десерт и т.п.)
3) о рецептах: какиепродукты и в каком количестве необходимы для приготовления одной порции данногоблюда. То есть для каждого рецепта
будем указывать кодпродуктов и код блюда. Естественно, для приготовления блюда необходимо многопродуктов (для каждого – свое количество), все они должны быть указаны врецепте. А вот каждому блюду может соответствовать один и только один рецепт –разночтений по поводу рецептов к одному и тому же блюду быть не должно.
 
Логическая модель БД
 
/>
Физическая модель БД:
/>
Построенная таким образомбаза данных имеет третью нормальную форму.
Поддержаниецелостности системы.
В системе должныподдерживаться следующие правила:
а) Для продукта:при попытке удаления записи таблицы продукты ИС проверяет, есть ли в БД данныео рецептах, содержащих этот продукт. Если такие рецепты находятся, то системавыдает сообщение: «Такое удаление невозможно, так как есть рецепты, дляосуществления которых необходим этот продукт». И действительно, если мы удалимданные об этом продукте, рецепты, ссылающиеся на него, станут бесполезными.
При изменении записи опродуктах необходимо помнить, что изменять коды продуктов нельзя — этоуникальный атрибут каждого продукта. Если изменим код, то, по сути, мы удалимданные об одном продукте и заменим их данными о другом. Поэтому еслипользователь попробует изменить код продукта, то система выдаст ему сообщениевида: «Код продукта менять нельзя; он должен совпадать с кодом продукта вкаталоге продуктов». Но нулевых кодов у продукта также не может быть. Поэтомуесли пользователь захочет изменить код, который был введен нулевым, то системапозволит ему это сделать.
Если пользователь не изменитнулевой код в ходе обновления записи, то система запретит такое обновление:«Код продукта не может быть нулевым».
б) Для блюда:записей в таблице рецепты без соответствующих записей в таблице блюда быть недолжно, так как рецепт пишется именно для блюда. Поэтому если пользовательзахочет удалить из БД данные о блюде, ИС попросит его сначала удалитьсоответствующие данные из таблицы рецепты: «В БД хранятся рецепт для этогоблюда. Данные о блюде могут быть удалены только после удаления соответствующегорецепта».
Как и в случае спродуктами, коды блюд нельзя изменять. Поэтому пользователь, делая изменения втаблице блюда, не должен менять код – иначе это будет совершенно новое блюдо.ИС выдаст ошибку с объяснением: «Код блюда менять нельзя; он должен совпадать скодом блюда в каталоге блюд». Но аналогично ситуации с продуктом заменанулевого кода позволяется, но оставить нулевой код нулевым нельзя.
в) Для рецепта:При внесении измененной информации в таблицу рецепты возможны две проблемы.Первое – в состав рецепта включили продукт, о котором нет информации в БД. Втаком случае система предложит пользователю следующее: «Данных о таком продуктенет в БД. Внесите, пожалуйста, сначала информацию в таблицу продукты». Второе –пользователь отнес измененный рецепт к блюду, о котором нет данных в системе.ИС поступит аналогично предыдущему случаю: «Данных о таком блюде нет в БД.Внесите, пожалуйста, сначала информацию в таблицу блюда».

Приложения
 
1) Для продуктов:
а) Триггер на удаление записитаблицы продукты.
TRIGGERPROCEDURE FOR DELETE OF Product.
IFCAN-FIND(FIRST Recipe WHERE
Recipe.prod_code= Product.prod_code)
THEN DO:
MESSAGE «Такое удалениене возможно, так как есть рецепты, для осуществления которых необходим этотпродукт.».
RETURN ERROR.
END.
б) Триггер наизменение записи таблицы продукты.
TRIGGERPROCEDURE FOR WRITE OF Product
NEW insertedOLD deleted.
IFdeleted.prod_code 0 AND
deleted.prod_code inserted.prod_code
THEN DO:
MESSAGE «Код продукта менять нельзя; ондолжен совпадать с кодом продукта в каталоге продуктов.»
RETURN ERROR.
END.
IFinserted.prod_code = 0
THEN DO:
ESSAGE «Код продукта не может бытьнулевым.»
RETURN ERROR.
END.
2) Для блюд:
а) Триггер на удалениязаписи таблицы блюда.
TRIGGERPROCEDURE FOR DELETE OF Dish.
IF CAN-FIND(FIRSTRecipe WHERE
Recipe.dish_code= Dish.dish_code)
THEN DO:
MESSAGE «В БД хранитсярецепт для этого блюда. Данные о блюде могут быть удалены только после удалениясоответствующего рецепта.».
RETURN ERROR.
END.
б) Триггер наизменение записи таблицы блюда.
TRIGGERPROCEDURE FOR WRITE OF Dish
NEW insertedOLD deleted.
IFdeleted.dish_code 0 AND
deleted.dish_code inserted.dish_code
THEN DO:
MESSAGE «Код блюда менять нельзя; ондолжен совпадать с кодом блюда в каталоге блюд.»
RETURN ERROR.
END.
IF inserted.dish_code= 0
THEN DO:
MESSAGE «Код блюда не может бытьнулевым.».
RETURN ERROR.
END.
3) Для рецептов.
а) Триггер наизменение записи таблицы рецепты.
TRIGGERPROCEDURE FOR WRITE OF Recipe
NEW insertedOLD deleted.
IFNOT(CAN-FIND(FIRST Dish WHERE
inserted.dish_code= Dish.dish_code))
THEN DO:
MESSAGE «Данных о такомблюде нет в БД. Внесите, пожалуйста, сначала информацию в таблицу блюда.».
RETURN ERROR.
END.
IFNOT(CAN-FIND(FIRST Product WHERE
inserted.prod_code= Product.prod_code))
THEN DO:
MESSAGE «Данных о такомпродукте нет в БД. Внесите, пожалуйста, сначала информацию в таблицу продукты.»
RETURN ERROR.
END.
/>
/>

/>
/>

/>
 
Отчёт
Table Name Description
----------------------------------------------------------------------------
Dish
Product
Recipe
=========================================================================
============================= Table: Dish ===============================
Table Flags: «f» = frozen, «s» = a SQL table
Table Dump Table Field Index Table
Name Name Flags Count Count Label
— — — — — -------------------
Dish Dish 4 1 ?
Storage Area: N/A
Trigger Event Trigger Procedure Overridable? Check CRC?
— — — ---------
DELETE D_Dish.p no no
WRITE W_Dish.p no no
============================= FIELD SUMMARY =============================
============================= Table: Dish ===============================
Flags: ase sensitive, ndex component,andatory, iew component
Order Field Name Data Type Flags Format Initial
— — — — — ----------
10 dish_code inte i ->,>>>,>>9 0
20 dish_name char X(18)
30 level inte ->,>>>,>>9 0
40 feature char X(18)
Field Name Label Column Label
— — ----------------------
dish_codeкод блюда код блюда
dish_nameнаименование блюда наименование блюда
levelуровень сложности уровень сложности
featureвид вид
============================= INDEX SUMMARY =============================
============================= Table: Dish ===============================
Flags: rimary, nique, ord,bbreviated, nactive, + asc, — desc
Flags Index Name Cnt Field Name
— — — ---------------------------------
pu XPKDish 1 + dish_code
** Index Name: XPKDish
Storage Area: N/A
============================= FIELD DETAILS =============================
============================= Table: Dish ===============================
=========================================================================
============================= Table: Product ============================
Table Flags: «f» = frozen, «s» = a SQL table
Table Dump Table Field Index Table
Name Name Flags Count Count Label
— — — — — -------------------
Product Product 3 1?
Storage Area: N/A
Trigger Event Trigger Procedure Overridable? Check CRC?
— — — ----------
DELETE D_Product.p no no
WRITE W_Product.p no no
=============================FIELD SUMMARY =============================
============================= Table: Product ============================
Flags: ase sensitive, ndex component,andatory, iew component
Order Field Name Data Type Flags Format Initial
— — — — — ----------
10 prod_code inte i ->,>>>,>>9 0
20 prod_name char X(18)
30 unit_price deci-2 ->>,>>9.99 0
Field Name Label Column Label
— — ----------------------
prod_codeкод продукта код продукта
prod_nameнаименование продукта наименование продукта
unit_priceцена за единицу цена за единицу
=============================INDEX SUMMARY =============================
=============================Table: Product ============================
Flags: rimary, nique, ord,bbreviated, nactive, + asc, — desc
Flags Index Name Cnt Field Name
— — — ---------------------------------
pu XPKProduct 1 + prod_code
** Index Name: XPKProduct
StorageArea: N/A
=============================FIELD DETAILS =============================
=============================Table: Product ============================
=========================================================================
============================= Table: Recipe =============================
Table Flags: «f» = frozen, «s» = a SQL table
Table Dump Table Field Index Table
Name Name Flags Count Count Label
— — — — — -------------------
Recipe Recipe 3 1?
Storage Area: N/A
Trigger Event Trigger Procedure Overridable? Check CRC?
— — — ----------
CREATE C_Recipe.p no no
WRITE W_Recipe.p no no
============================= FIELD SUMMARY =============================
============================= Table: Recipe =============================
Flags: ase sensitive, ndex component,andatory, iew component
Order Field Name Data Type Flags Format Initial
— — — — — ----------
10 prod_code inte im ->,>>>,>>9 0
20 dish_code inte im ->,>>>,>>9 0
30needed_amount deci-2 ->,>>>,>>9.99 0
Field Name Label Column Label
— — ----------------------
prod_codeкод продукта код продукта
dish_codeкод блюда код блюда
needed_amountнеобходимое количество необходимое количество
============================= INDEX SUMMARY =============================
============================= Table: Recipe =============================
Flags: rimary, nique, ord,bbreviated, nactive, + asc, — desc
Flags Index Name Cnt Field Name
— — — ---------------------------------
pu XPKRecipe 2 + prod_code
+ dish_code
** Index Name: XPKRecipe
Storage Area: N/A
============================= FIELD DETAILS =============================
============================= Table: Recipe =============================
============================= SEQUENCES =================================


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.