Загрузка данных


Практическая работа № 3. Проектирование информационной системы

Тема: «Информационная система учёта питания и порций в школьной столовой»

Ниже готовая часть 1, составленная по заданию на фотографии. Текст можно копировать и вставлять в Word. Оформление: Times New Roman, 12 пт.

ЧАСТЬ 1. Постановка задачи и анализ предметной области

Задание 1.1. Формирование требований

1. Цель автоматизации

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

2. Обязательные функции системы

Справочники:

* ведение справочника блюд;
* хранение названий блюд, их стоимости и описаний.

Документы:

* создание меню на определённый день;
* регистрация выдачи порций;
* регистрация оплаты за питание;
* сохранение сведений о количестве выданных порций.

Отчёты:

* формирование отчёта о количестве выданных порций за выбранную дату;
* просмотр сведений об оплате;
* получение информации о блюдах, включённых в меню.

Печатные формы:

* формирование печатной формы меню на день;
* вывод меню на печать.

Сервисные функции:

* контроль установленного лимита порций;
* предупреждение при достижении лимита;
* проверка корректности введённых данных;
* уведомление об ошибках при заполнении документов.

3. Границы системы

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

Система не предназначена для закупки продуктов, ведения бухгалтерского учёта, расчёта заработной платы работников, управления поставщиками и составления медицинских диет. Эти процессы не входят в задачи разрабатываемого приложения.

4. Роли пользователей

1. Администратор

* управление справочником блюд;
* настройка лимита порций;
* просмотр всех документов и отчётов;
* контроль работы системы.

2. Работник столовой

* просмотр справочника блюд;
* составление меню на день;
* регистрация выдачи порций;
* внесение сведений об оплате;
* формирование и печать меню.

3. Руководитель столовой

* просмотр ежедневных отчётов;
* контроль количества выданных порций;
* проверка соблюдения лимита;
* анализ сведений об оплате и питании.

Задание 1.2. Пул сущностей и ER-модель

1. Пул потенциальных сущностей

Для проектирования информационной системы учёта питания и порций в школьной столовой выделены следующие потенциальные сущности:

* Блюдо.
* Категория блюда.
* Ингредиент.
* Состав блюда.
* Меню.
* Позиция меню.
* Приём пищи.
* Выдача порции.
* Оплата.
* Пользователь.
* Роль пользователя.
* Работник столовой.
* Ученик.
* Класс.
* Лимит порций.
* Отчёт.
* Единица измерения.
* Цена блюда.
* История изменений.
* Способ оплаты.

После анализа для основной ER-модели выбраны сущности, непосредственно необходимые для работы системы. Ингредиенты, состав блюда, история изменений и другие дополнительные сущности можно добавить при расширении функциональности.

2. ER-диаграмма

ER-диаграмма отражает основные сущности системы, их атрибуты и связи между ними.

Для создания схемы скопируй код ниже и вставь его на сайт Mermaid Live Editor⁠. После этого диаграмму можно экспортировать в PNG или SVG и вставить в Word.

erDiagram
    CATEGORY ||--o{ DISH : "содержит"
    DISH ||--o{ MENU_ITEM : "включается"
    MENU ||--|{ MENU_ITEM : "содержит"
    MENU ||--o{ MEAL_ISSUE : "используется"
    DISH ||--o{ MEAL_ISSUE : "выдается"
    USER ||--o{ MEAL_ISSUE : "оформляет"
    MEAL_ISSUE ||--o| PAYMENT : "оплачивается"
    USER ||--o{ MENU : "создает"
    CATEGORY {
        int category_id PK
        string name
    }
    DISH {
        int dish_id PK
        int category_id FK
        string name
        decimal price
        string description
    }
    MENU {
        int menu_id PK
        int user_id FK
        date menu_date
    }
    MENU_ITEM {
        int menu_item_id PK
        int menu_id FK
        int dish_id FK
        int planned_portions
    }
    MEAL_ISSUE {
        int issue_id PK
        int menu_id FK
        int dish_id FK
        int user_id FK
        int portions
        datetime issue_date
    }
    PAYMENT {
        int payment_id PK
        int issue_id FK
        decimal amount
        string payment_status
        string payment_method
    }
    USER {
        int user_id PK
        string full_name
        string login
        string role
    }

3. Наследование сущностей

Для системы можно предусмотреть наследование на основе сущности «Пользователь». Она содержит общие данные пользователей, а специализированные типы определяют их полномочия.

* Администратор - управляет справочниками и настройками системы.
* Работник столовой - составляет меню и регистрирует выдачу порций.
* Руководитель столовой - контролирует отчёты и соблюдение лимитов.

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

4. Первичные и внешние ключи, типы связей

Первичные ключи (PK) используются для уникальной идентификации записей в таблицах. Например, dish_id определяет конкретное блюдо, а menu_id - конкретное меню.

Внешние ключи (FK) связывают таблицы между собой. Например, category_id в таблице «Блюдо» ссылается на таблицу «Категория блюда».

Основные связи между сущностями:

* Категория - Блюдо (1:M): одна категория может содержать несколько блюд.
* Меню - Позиция меню (1:M): одно меню включает несколько позиций.
* Блюдо - Позиция меню (1:M): одно блюдо может встречаться в разных меню.
* Блюдо - Выдача порции (1:M): одно блюдо может выдаваться много раз.
* Пользователь - Выдача порции (1:M): один работник может оформлять множество операций выдачи.
* Выдача порции - Оплата (1:1): одной операции выдачи соответствует не более одной записи об оплате.
* Пользователь - Меню (1:M): один пользователь может создавать несколько меню.

Вывод: в результате выполнения первой части работы определены цель автоматизации, основные функции и ограничения системы, роли пользователей, потенциальные сущности и связи между ними. Полученная ER-модель станет основой для дальнейшего проектирования базы данных информационной системы учёта питания и порций в школьной столовой.