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

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

К-во Просмотров: 330
Бесплатно скачать Курсовая работа: Информационная система "Книга рецептов"