Б Nir
Б jir
Q ir*
R i
Q ir1
ГЛАВА 4
БАЗА ДАННЫХ ПОДСИСТЕМЫ «ДИЕТПИТАНИЕ»
4.1. Представление и описание базы данных
подсистемы «Диетпитание»
Объектом автоматизации дипломного проекта, как уже говорилось выше, является подсистема «Диетпитание» санаторного комплекса «Валуево». Автоматизация санаторного комплекса и, в частности, его подсистемы не может происходить без создания и дальнейшего внедрения системы управления базами данных. За счет использования СУБД достигается оперативность ввода и корректировки данных, их корректность, воспроизводимость и надежность.
Используемая СУБД должна отвечать следующим требованиям:
- простота создания новых баз данных;
- возможность корректировки отдельных полей;
- частичная логическая независимость представления данных;
- полная физическая независимость представления данных;
- использование диалоговых режимов работы.
Всем вышеперечисленным требованиям удовлетворяет система управления базами данных Access версии XP и язык программирования Visual Basic for Applications. Это программное обеспечение используется в данном дипломном проекте для автоматизации подсистемы «Диетпитание» санаторного комплекса «Валуево» и создания базы данных для этой подсистемы.
В базе данных подсистемы «Диетпитание» будут храниться и обрабатываться данные о пациентах, диетах, блюдах, продуктах, заболеваниях, диетах и др.
Каждому поступившему пациенту в зависимости от диагноза заболевания рекомендуется соответствующая диета, пациент может согласиться и принять назначенную врачом-диетологом диету, а может отказаться и принимать свободное питание по своему выбору.
В тоже время каждой диете ставится в соответствие свой набор приемов пищи (завтрак, обед, полдник и ужин), каждый из которых состоит из различных сочетаний категорий блюд (закуска, 1-е блюдо, 2-е блюдо, 3-е блюдо и десерт). Каждая категория включает в себя свой набор блюд, а каждому блюду ставятся в соответствие свои продукты. В базе данных также хранятся калорийность и энергетическая ценность каждого продукта, содержание в нем белков, жиров, углеводов, витаминов (А, В1, С), а также минеральных веществ (Са, Fe, Ka).
Информация о калорийности и энергетической ценности, содержании белков, жиров, углеводов, витаминов и минеральных веществ каждого блюда будет высчитываться из уже введенных соответствующих данных о продуктах. Аналогичные данные по каждой диете вводятся в базу данных врачом-диетологом.
Каждой диете также ставится в соответствие свой набор столов в столовой, и данные о том, какой стол и какое место занимает каждый пациент санатория, тоже хранятся в БД подсистемы.
Системно-комплексный анализ
объекта автоматизации
При системно-комплексном анализе объект автоматизации рассматривается как концептуальная модель:
, где
- информационная страта;
- материальная страта;
- энергетическая страта;
- экономическая страта;
- организационная страта.
Организационная, экономическая, материальная и частично информа ционная страты объекта автоматизации были рассмотрены в предыдущих главах дипломного проекта. Теперь более подробно будем рассматривать информационную страту объекта автоматизации, так как для создания базы данных нам необходимо проанализировать движение информационных потоков в автоматизируемом объекте.
Концептуальную модель базы данных можно представить следующим образом:
, где
- структурный аспект.
- функциональный аспект.
- аспект управления.
Структурный аспект информационной страты
объекта автоматизации
1. Концептуальная модель структурного аспекта информационной страты объекта автоматизации 1-го уровня имеет вид:
, где
- информационные элементы объекта автоматизации;
- связи между информационными элементами;
- конфигурация связей между информационными элементами;
- параметр связи между информационными элементами,
где k, l – номера информационных элементов
;
- параметр изменения во времени предыдущих параметров.
Рассмотрев и проанализировав подсистему «Диетпитание», в ней можно выделить следующие информационные элементы:
Е1– пациенты;
Е2– заболевания;
Е3– диеты;
Е4– приемы пищи;
Е5– категории;
Е6– блюда;
Е7– продукты;
Е8– столы.
Связи между информационными элементами представлены графически на рис. 4.1.1.
Рис. 4.1.1. Связи между информационными элементами базы данных
Обозначения на рис. 4.1.1:
связь «один ко многим»;
связь «многие ко многим».
2. Концептуальная модель структурного аспекта информационной страты объекта автоматизации 2-го уровня имеет вид:
, где
- компонента информационного элемента объекта автоматизации,
где i – номер информационного элемента
,
j – номер компонента е информационного элемента;
- связи между компонентами
и
,
где k - номер компонента е, с которым связан компонент
;
- конфигурация связей между компонентами;
- параметр связи между компонентами
и
;
- параметр изменения во времени предыдущих параметров.
Рассмотрим компоненты каждого информационного элемента и изобразим связи между этими компонентами (рис. 4.1.2).
Рис. 4.1.2. Связи между компонентами
информационных элементов базы данных
Как видно на рис. 4.1.1 между элементами существуют множественные зависимости. Для представления этих данных в таблицах базы данных необходимо, чтобы отношения между элементами БД находились в четвертой нормальной форме.
Функциональный аспект информационной страты
объекта автоматизации
Концептуальная модель функционального аспекта информационной страты объекта автоматизации представляется в виде:
,
где
- вектор входных воздействий;
- вектор выходных реакций системы;
- функция преобразования вектора
в вектор
;
- параметр функции преобразования;
- параметр изменения во времени параметров
,
,
и
.
Рассмотрим объект автоматизации, то есть подсистему «Диетпитание», как объект управления с входными и выходными параметрами Х и У:
={
}.
Рассмотрим входные вектора объекта:
= ( номер пациента, фамилия, имя, отчество пациента, дата рождения пациента, заболевание пациента) – карта пациента.
=( номер диеты, название диеты, энергетическая ценность диеты, белки диеты, жиры диеты, углеводы диеты, витамин А, витамин В1, витамин С, минерал Са, минерал Fe, минерал Ka) – содержание диет.
=( номер блюда, название блюда, рецепт блюда) – список блюд.
=( номер продукта, название продукта, энергетическая ценность продукта, белки продукта, жиры продукта, углеводы продукта, витамин А, витамин В1, витамин С, минерал Са, минерал Fe, минерал Ka) – содержание продуктов.
= (номер диеты, номер стола диеты) – соответствие столов диетам.
= (номер диеты, номер приема пищи, прием пищи) – соответствие приемов пищи диетам.
= (номер приема пищи, номер категории, категория) – соответствие категорий приемам пищи.
= (номер блюда, номер категории) - соответствие блюд категориям.
= (диета, заболевания) - соответствие заболеваний диетам.
На выходе базы данных будут:
–рекомендуемая диета пациента;
–содержание блюд;
– подборка альтернативного блюда;
– подборка альтернативного продукта;
– рацион питания пациентов;
– количество каждого блюда;
– количество пациентов каждой диеты.
Рис. 4.1.3. Схема функционального аспекта
информационной страты объекта автоматизации
Таким образом, все выходные параметры базы данных У1,…, У7должны выполняться и являться выходными параметрами форм базы данных подсистемы «Диетпитание».
Функциями администратора базы данных будут следующие:
– добавление записи в базу данных;
– удаление записи;
– редактирование записи;
– поиск записи;
– сохранение введенных изменений;
– ответы на стандартные запросы.
Функционально-структурный аспект информационной страты объекта автоматизации
Объединяя функциональный и структурный аспекты, получим функционально-структурный аспект информационной страты объекта автоматизации, графически представленный на рис. 4.1.4.
Е1, Е2, …, Е7, Е8– информационные элементы объекта автоматизации.
Рис. 4.1.4. Схема функционально-структурного аспекта
информационной страты объекта автоматизации
Таким образом, разбив отношения на компоненты и проведя их нормализацию, можем сгенерировать таблицы базы данных и установить связи между ними с помощью ключей (рис. 4.1.5).
Атрибуты с именем, начинающимся с ID, введены в качестве идентификационных номеров соответствующих данных и во всех таблицах выполняют функцию первичного или составного (сцепленного) ключа.
Рис. 4.1.5. Схема связей таблиц базы данных
На основе таблиц создадим формы базы данных для каждого подразделения подсистемы «Диетпитание» в соответствии с их задачами.
4.2. Структура и описание экранных форм и меню
пользовательского интерфейса базы данных
4.2.1. Структура экранных форм базы данных
Разобъем все данные на группы в соответствии с подразделениями подсистемы «Дитепитание», то есть в каком подразделении какие данные будут использоваться.
1. Врачу-диетологу необходимы следующие данные:
·фамилия, инициалы имени и отчества пациента;
·дата рождения пациента;
·диагноз заболевания пациента;
·поставленная в соответствии с заболеванием диета питания;
·наименования всех блюд в столовой;
·калорийность блюд;
·содержание белков, жиров, углеводов в блюде;
·содержание витаминов А, В1, С в блюде;
·содержание минеральных веществ Са, Fe, Ka;
·наименования всех продуктов на складе;
·калорийность продуктов;
·содержание белков, жиров, углеводов в продукте;
·содержание витаминов А, В1, С в продукте;
·содержание минеральных веществ Са, Fe, Ka в продукте;
·количество пациентов каждой диеты;
·рационы питания пациентов.
2. Подразделению «Столовая» необходимы данные:
·количество пациентов каждой диеты;
·стол, выбранный в соответствии с диетой;
·место пациента за столом;
·наименования всех блюд в столовой.
3. Подразделению «Кухня» необходимы данные:
·наименования всех блюд в столовой;
·количество каждого блюда;
·рецепты блюд;
·перечень продуктов;
·количество продуктов для каждого блюда.
В соответствии с функциями объекта автоматизации составим структуру экранных форм и меню, представленную на рис. 4.
Рис. 4.2.1. Структура экранных форм базы данных
4.2.2. Описание экранных форм базы данных
В соответствии со структурой экранных форм для каждого подразделения подсистемы «Диетпитание» создадим экранные формы. Форма главного меню представлена на рис. 4.2.2.
Рис. 4.2.2. Форма «Главное меню»
Для врача-диетолога созданы экранные формы, представленные на рис. 4.2.3 – 4.2.11.
Рис. 4.2.3. Форма «Врач-диетолог»
Рис. 4.2.4. Форма «Содержание продуктов»
Рис. 4.2.5. Форма «Содержание блюд»
Рис. 4.2.6. Форма «Содержание диет»
Рис. 4.2.7. Форма «Диета и заболевания»
Рис. 4.2.8. Форма «Карта пациента»
Рис.4.2.9. Форма «Рацион питания»
Рис. 4.2.10. Форма «Эквивалентный продукт»
Рис. 4.2.11. Форма «Эквивалентное блюдо»
Для столовой созданы экранные формы, представленные на рис. 4.2.12 – 4.2.15.
Рис. 4.2.12. Форма «Столовая»
Рис. 4.2.13. Форма «Стол и место пациента»
Рис. 4.2.14. Форма «Диета и столы»
Рис. 4.2.15. Форма «Число пациентов диеты»
Для кухни созданы экранные формы, представленные на рис. 4.2.16 и 4.2.17.
Рис. 4.2.16. Форма «Кухня»
Рис. 4.2.17. Форма «Рецепты блюд»
Форма «Продукты» была представлена выше на рис. 4.2.4.
4.3. Руководство пользователя
Для работы с базой данных подсистемы «Диетпитание» необходимо открыть СУБД Access XP, загрузить файл с базой данных и открыть закладку «Формы».
Далее надо нажать двойным щелчком мыши на форме «Главное меню». На экране откроется форма с тремя кнопками: «Врач-диетолог», «Столовая» и «Кухня», а также кнопкой «Выход».
Для работы с базой данных врача-диетолога надо выбрать соответствующую кнопку. Аналогично для работников (операторов) столовой и кухни. Кнопка «Выход» позволит выйти из главного меню.
В каждой форме записи можно удалять, редактировать, сохранять, а также переходить к следующей, предыдущей, первой и последней записям с помощью кнопок в левой нижней части формы. Нажав кнопку «Назад» пользователь возвращается в предыдущую форму.
Выбрав и нажав кнопку «Врач-диетолог», пользователь увидит экранную форму со следующими кнопками:
- «Содержание продуктов» - откроется форма со списком наименований продуктов и следующими значениями каждого продукта: энергетическая ценность, белки, жиры, углеводы, витамины А, В1, С и минералы кальций, железо и калий. Если значения продуктов отсутствуют, их необходимо ввести.
- «Содержание блюд» - откроется форма со списком наименований блюд и следующими значениями каждого блюда: энергетическая ценность, белки, жиры, углеводы, витамины А, В1, С и минералы кальций, железо и калий. Все значения блюд считаются автоматически, если были правильно введены соответствующие значения для каждого продукта.
- «Содержание диет» - откроется форма со списком наименований диет и следующими значениями суточной нормы для каждой диеты: энергетическая ценность, белки, жиры, углеводы, витамины А, В1, С и минералы кальций, железо и калий. Все значения необходимо ввести.
- «Заболевания» - откроется форма всех наименований заболеваний пациентов санаторного комплекса (при их отсутствии их необходимо ввести).
- «Карты пациентов» - это список всех пациентов, проживающих в санатории, т.е. имя и инициалы каждого пациента, его дата рождения и заболевание (их может быть несколько), найденные у пациента терапевтом и врачом-диетологом.
- «Рацион питания» - после нажатия откроется форма, в которой необходимо выбрать из списка пациента и щелкнуть на кнопке «Вариант меню», и в правой части формы для каждого приема пищи будут предложены варианты блюд для пациента. Нажав на кнопке «Вариант меню» еще раз, можно получить следующий другой вариант подбора блюд для суточного рациона пациента.
- «Эквивалентный продукт» - откроется форма, которая позволит найти и подобрать продукт, эквивалентный по своему составу (энергетической ценности, белкам, жирам, углеводам) продукту, который необходимо выбрать из списка. Щелкнув на одном продукте из списка представленных и нажав на кнопку «Следующая альтернатива», пользователь увидит в текстовом поле «Эквивалентный продукт» его значение. Если результат не удовлетворил пользователя, то каждое следующее нажатие кнопки «Следующая альтернатива» позволит найти другой вариант.
- «Эквивалентное блюдо» - откроется форма, которая позволит найти и подобрать блюдо, эквивалентное по своему составу (энергетической ценности, белкам, жирам, углеводам) блюду, которое необходимо выбрать из списка. Щелкнув на одном блюде из списка представленных слева и нажав на кнопку «Следующая альтернатива», пользователь увидит в текстовом поле «Эквивалентный продукт» его значение. Если результат не удовлетворил пользователя, то каждое следующее нажатие кнопки «Следующая альтернатива» позволит найти другой вариант эквивалентного блюда.
- «Назад» - нажатие на кнопку позволит вернуться в главное меню.
После нажатия кнопки «Столовая» в главном меню открывается форма со следующими кнопками:
- «Стол и место пациента» - позволит увидеть и редактировать список пациентов с указанными для каждого: диетой, столом в столовой, за которым каждый сидит, и место за столом.
- «Диета и столы» - позволит увидеть и редактировать списки номеров столов для каждой диеты.
- «Число пациентов диеты» - откроется форма, в которой можно получить количество пациентов, которые придерживаются каждой диеты. Для этого необходимо щелкнуть на одной из диет в списке.
После нажатия кнопки «Кухня» в главном меню открывается форма со следующими кнопками:
- «Рецепты блюд» - здесь можно выбрать любое блюдо из списка представленных, и ниже пользователь увидит рецепт этого блюда, состав и количество каждого продукта для его приготовления. Нажав на кнопке «Число порций», пользователю будет представлено количество порций блюда, которое он выбрал, в соответствии с назначенным рационом питания каждого пациента.
Как уже говорилось выше, закончить работу с базой данных можно, вернувшись в форму «Главное меню» и нажав на кнопке «Выход».
4.4. Выводы
Итак, в четвертой главе было представлено описание информационных элементов подсистемы «Диетпитание» и их компонентов, рассмотрены и нормализованы связи между ними, в результате чего были сгенерированы таблицы базы данных. Соединив таблицы связями, мы получили единую базу для хранения и обработки всех данных подсистемы «Диетпитание». На основе этих таблиц были сформированы экранные формы пользовательского интерфейса, которые также были представлены выше.