Інформаційна система Книга рецептів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Московський Державний Інститут Електроніки та Математики

Курсова робота

на тему: «Книга рецептів»

з курсу «Інформаційні технології в економіці»

Москва, 2005 р.

Введення

Аналіз проблеми, функціональні вимоги до інформаційної системи.

Ми живемо в епоху інформаційних технологій, у вік в якому техніка може виконувати завдання, які обтяжують нас у повсякденні. На даний момент існує маса мультимедійних систем, які контролюють і спрощують наш повсякденний побут. Наприклад, так звана система «Розумний будинок». Вона дозволяє з допомогою сучасних технологій стежити за функціонуванням будинку та побутових приладів. У цю систему може входити такі функції як: автоматичний замовлення продуктів, разі їх відсутності в холодильнику; управління з пульта ДУ всієї музичної технікою, телевізорами, системою вентиляції і т.д.

Кожен день, всі ми стикаємося з такими тривіальними завданнями, як приготування їжі. Потрібно знати, ЩО ти хочеш приготувати, ЯК і які ПРОДУКТИ необхідні. І при вирішенні цього завдання ми стикаємося з проблемою впорядкування цих трьох параметрів: «ЩО, ЯК, Продукти?». А також актуальним завданням є економія часу та коштів.

Тому доцільним інструментом вирішення поставлених завдань, на мій погляд, є електронна база даних, що представляє собою «Куховарську книгу». Функціями цієї БД є: при виборі страви із запропонованого списку, БД видає інформацію про рецепт, кількість вхідних в нього продуктів, про витрати на продукти, часу приготування і про вид страви (1, 2, 3).

Отже, рішенням проблеми виникає при приготуванні будь-якої страви, буде інформаційна система. Основні цілі даної інформаційної системи:

  1. впорядковане зберігання інформації про:

1.1) продуктах необхідних для приготування;

1.2) про страви, пропонованих базами даних;

1.3) про рецепти, за якими готуються страви;

  1. розрахунок витрати на продукти для страву;

  2. час приготування.

Функціональна структура системи

Призначення проектованої інформаційної системи (ІС) - впорядковане зберігання інформації і керування витратою продуктів на блюдо і їх вартістю. Вихідна інформація ІС: інформація про продукти, інформація про страви та інформація, про рецепти. Основним користувачем ІС буде власник холодильника. На виході ІС повинна формувати звіти заданої форми. При функціонуванні ІС повинні враховуватися існуючі форми звітності.

Інформацію про страви, зміні списку страв, а також інформацію про рецепти і продуктах (з куховарської книги) вносить користувач, маючи на увазі форми звітності.

З огляду на вже наявні дані про страви в базі даних і про рецепти приготування цих страв, за даними про кількість продуктів необхідному для приготування страви ІС розраховує витрату продуктів на блюдо і вартість. Крім того, ІВ може сформувати додаткові звіти. Звіти формуються за формами звітності.

Отже, на виході системи ми отримуємо звіти, головний з яких - розрахунок витрати продуктів за рецептом та їх вартість.

Розрахунок витрати продуктів на блюдо і вартості продуктів витрачених на блюдо відбувається наступним чином: користувач вибирає блюдо, для якого треба порахувати витрати продуктів і їх вартість. За страві ІС знаходить рецепт. За даними про рецепт і продуктах ІС розраховує витрату кожного продукту в даному блюді і вартість. Потім вклади всіх продуктів підсумовуються, і на виході ми одержуємо звіт про витрату продуктів та їх загальну вартість.

Крім звіту про витрату продуктів та їх вартості ІС також може сформувати додаткові звіти таким чином: із запропонованих форм звітності вибирається потрібна. По ній вказуються параметри звіту. ІС обробляє зберігаються в ній дані про продукти, стравах та рецепти - отримуємо звіти.

Структура бази даних

Наша інформаційна система буде працювати з такими об'єктами, як: продукти, страви, рецепти. Для роботи ИС нам важливо знати про них наступну інформацію:

1) про продукти:

1.1) найменування продукту;

1.2) код продукту (він буде однозначно характеризувати продукт (для кожного продукту код унікальний) і коротше, ніж найменування, - по ньому легше орієнтуватися);

1.3) ціна за одиницю продукту - дає можливість підрахувати вартість продуктів необхідних для приготування страви;

2) про страви:

2.1) код страви (також однозначно характеризує страви і зручний у використанні);

2.2) найменування страви;

2.3) час приготування, скільки часу воно займе;

2.4) вигляд страви (гаряче, десерт і т.п.)

3) про рецепти: які продукти і в якій кількості необхідні для приготування однієї порції даної страви. Тобто для кожного рецепту

будемо вказувати код продуктів і код страви. Природно, для приготування страви необхідно багато продуктів (для кожного - своє кількість), всі вони повинні бути вказані в рецепті. А ось кожної страви може відповідати один і тільки один рецепт - різночитань з приводу рецептів до одного й того ж страви бути не повинно.

Логічна модель БД

Фізична модель БД:

Побудована таким чином база даних має третю нормальну форму.

Підтримка цілісності системи.

У системі повинні підтримуватися наступні правила:

а) Для продукту: при спробі видалення запису таблиці продукти ІС перевіряє, чи є в БД дані про рецепти, які містять цей продукт. Якщо такі рецепти знаходяться, то система видає повідомлення: «Таке видалення неможливо, так як є рецепти, для здійснення яких необхідний цей продукт». І дійсно, якщо ми видалимо дані про цей продукт, рецепти, що посилаються на нього, стануть марними.

При зміні запису про продукти необхідно пам'ятати, що змінювати коди продуктів не можна - це унікальний атрибут кожного продукту. Якщо змінимо код, то, по суті, ми видалимо дані про одному продукті і замінимо їх даними про інше. Тому якщо користувач спробує змінити код продукту, то система видасть йому повідомлення вигляду: «Код продукту міняти не можна, він повинен співпадати з кодом продукту в каталозі продуктів». Але нульових кодів у продукту також не може бути. Тому якщо користувач захоче змінити код, який був введений нульовим, то система дозволить йому це зробити.

Якщо користувач не змінить нульовий код під час оновлення запису, то система заборонить таке оновлення: «Код продукту не може бути нульовим».

б) Для страви: записів у таблиці рецепти без відповідних записів у таблиці страви бути не повинно, тому що рецепт пишеться саме для страви. Тому якщо користувач захоче видалити з БД дані про страву, ІС попросить його спочатку видалити відповідні дані з таблиці рецепти: «В БД зберігаються рецепт для цієї страви. Дані про страву можуть бути видалені тільки після видалення відповідного рецепту ».

Як і у випадку з продуктами, коди страв не можна змінювати. Тому користувач, роблячи зміни в таблиці страви, не повинна змінювати код - інакше це буде абсолютно нове блюдо. ІС видасть помилку з поясненням: «Код страви міняти не можна, він повинен співпадати з кодом страви в каталозі страви». Але аналогічно ситуації з продуктом заміна нульового коду дозволяється, але залишити нульовий код нульовим не можна.

в) Для рецепту: При внесенні зміненої інформації в таблицю рецепти можливі дві проблеми. Перше - до складу рецепта включили продукт, про який немає інформації в БД. У такому разі система запропонує користувачеві наступне: «Даних про такий продукт немає в БД. Внесіть, будь ласка, спочатку інформацію в таблицю продукти ». Друге - користувач відніс змінений рецепт до страви, про який немає даних у системі. ІС вчинить аналогічно попередньому випадку: «Даних про такий блюді немає в БД. Внесіть, будь ласка, спочатку інформацію в таблицю страви ».

Програми

1) Для продуктів:

а) Тригер на видалення запису таблиці продукти.

TRIGGER PROCEDURE FOR DELETE OF Product.

IF CAN-FIND (FIRST Recipe WHERE

Recipe.prod_code = Product.prod_code)

THEN DO:

MESSAGE «Таке видалення не можливо, так як є рецепти, для здійснення яких необхідний цей продукт.».

RETURN ERROR.

END.

б) Тригер на зміну запису таблиці продукти.

TRIGGER PROCEDURE FOR WRITE OF Product

NEW inserted OLD deleted.

IF deleted.prod_code <> 0 AND

deleted.prod_code <> inserted.prod_code

THEN DO:

MESSAGE "Код продукту міняти не можна, він повинен співпадати з кодом продукту в каталозі продуктів."

RETURN ERROR.

END.

IF inserted.prod_code = 0

THEN DO:

ESSAGE "Код продукту не може бути нульовим."

RETURN ERROR.

END.

2) Для страв:

а) Тригер на видалення запису таблиці страви.

TRIGGER PROCEDURE FOR DELETE OF Dish.

IF CAN-FIND (FIRST Recipe WHERE

Recipe.dish_code = Dish.dish_code)

THEN DO:

MESSAGE «У БД зберігається рецепт для цієї страви. Дані про страву можуть бути видалені тільки після видалення відповідного рецепту. ».

RETURN ERROR.

END.

б) Тригер на зміну запису таблиці страви.

TRIGGER PROCEDURE FOR WRITE OF Dish

NEW inserted OLD deleted.

IF deleted.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) Для рецептів.

а) Тригер на зміну запису таблиці рецепти.

TRIGGER PROCEDURE FOR WRITE OF Recipe

NEW inserted OLD deleted.

IF NOT (CAN-FIND (FIRST Dish WHERE

inserted.dish_code = Dish.dish_code))

THEN DO:

MESSAGE «Даних про такий блюді немає в БД. Внесіть, будь ласка, спочатку інформацію в таблицю страви. ».

RETURN ERROR.

END.

IF NOT (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 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: <c> ase sensitive, <i> ndex component, <m> andatory, <v> 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: <p> rimary, <u> nique, <w> ord, <a> bbreviated, <i> 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 січня?

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: <c> ase sensitive, <i> ndex component, <m> andatory, <v> 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: <p> rimary, <u> nique, <w> ord, <a> bbreviated, <i> nactive, + asc, - desc

Flags Index Name Cnt Field Name

----- -------------------------------- --- ---------- -----------------------

pu XPKProduct 1 + prod_code

** Index Name: XPKProduct

Storage Area: 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 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: <c> ase sensitive, <i> ndex component, <m> andatory, <v> iew component

Order Field Name Data Type Flags Format Initial

----- ------------------------- ----------- ----- ---- ----------- ----------

10 prod_code inte im ->,>>>,>> 9 0

20 dish_code inte im ->,>>>,>> 9 0

30 needed_amount deci-2 ->,>>>,>> 9.99 0

Field Name Label Column Label

------------------------------ -------------------- - ----------------------

prod_code код продукту код продукту

dish_code код страви код страви

needed_amount необхідну кількість необхідну кількість

============================= INDEX SUMMARY =================== ==========

============================= Table: Recipe ================== ===========

Flags: <p> rimary, <u> nique, <w> ord, <a> bbreviated, <i> 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 ==================== =============

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
51кб. | скачати


Схожі роботи:
Інформаційна система в логістиці
Інформаційна система WinPost
Інформаційна логістика та її система
Сайт як інформаційна система
Сайт - як інформаційна система
Бухгалтерський уч т як інформаційна система
Інформаційна система НБУ
Інформаційна система організації
Інформаційна система ВНЗ
© Усі права захищені
написати до нас