Курсовая Работа Информационная Система Аптеки

Курсовая Работа Информационная Система Аптеки



>>> ПОДРОБНЕЕ ЖМИТЕ ЗДЕСЬ <<<






























Курсовая Работа Информационная Система Аптеки
Задачи баз данных и основные ограничения при работе с ними. Проектирование логической структуры базы данных и заполнение её данными. Создание экранных форм. Реализация информационных запросов. Структура, форма и назначение отчёта, схема его создания.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ»
по дисциплине «Информационное обеспечение баз данных»
на тему «Информационная система аптеки»
Цель курсовой работы - создание базы данных аптеки готовых лекарственных форм для повышения эффективности ее работы и автоматизации обработки результатов её деятельности. Аптеки готовых лекарственных форм занимаются продажей лекарств, изготовленных на заводах фирм-производителей. Каждое лекарственное средство имеет свое назначение, весь ассортимент лекарств классифицирован по группам и лекарственным формам.
В базе данных необходимо хранить разнообразную информацию о клиентах, заказах, препаратах и поставщиках данных препаратов, чтобы можно было оперативно определять информацию о принадлежности того или иного препарата к определенному изготовителю, просматривать заказы, выполненные определённым сотрудником, вести учёт прибыли от реализации препаратов или убытков при списании просроченных препаратов.
Могут существовать следующие ограничения при работе с базой данных:
1. Один изготовитель может производить несколько препаратов
2. Один и тот же препарат может быть изготовлен разными производителями
3. На складе могут храниться одинаковые препараты от разных поставщиков, иметь разные цены, разную лекарственную форму и разный срок годности
4. Препараты, срок годности которых истек, нельзя заказать. Также их стоимость учитывается в расчёте прибыли как убыток
2. Добавление новых торговых названий
3. Добавление новых лекарственных форм
4. Добавление новых поставщиков (изготовителей)
6. Классификация препаратов по изготовителям
7. Контроль срока годности препаратов
9. Подсчёт прибылей/убытков от реализации препаратов
Разрабатываемая БД включает в себя следующие сущности (отношения):
База данных предназначена для сотрудников (обеспечение полного учета товаров аптеки, контроль работы аптеки в целом), клиентов (обеспечение удобного поиска нужного препарата) и для директора (информация о прибылях/убытках аптеки).
Входными данными для сотрудников являются:
Для клиентов - просмотр информации о препаратах и сотрудниках аптеки в виде отчётов.
Информация об изготовителе (поставщике):
БД можно расширять путём добавления новых препаратов, клиентов, поставщиков и принятия на работу новых сотрудников.
Система управления базами данных Access (СУБД Access) входит в стандартный набор прикладных программ пакета Microsoft Office, который используется практически в каждой организации нашей страны. Она предоставляет значительные возможности по работе с хранящимися данными, их обработке и совместному использованию.
Все объекты, относящиеся к одной базе данных, Access хранит в одном файле с расширением mdb, среди объектов разрабатываемой БД предусмотрено:
1. Таблицы - основные объекты любой базы данных. В таблицах хранятся все данные, имеющиеся в базе, кроме того, таблицы хранят и структуру базы (поля, их типы и свойства).
2. Запросы - служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. С помощью запросов выполняются такие операции, как отбор данных, их сортировку и фильтрацию. С помощью запросов можно выполнять преобразования данных по заданному алгоритму, выполнять автоматическое наполнения таблиц данными, импортированными из других источников, выполнять простейшие вычисления в таблицах и многое другое.
3. Формы - это средства для ввода данных. Смысл их - предоставить пользователю средства для заполнения только тех полей, которые ему заполнять положено. Одновременно с этим в форме можно разместить специальные элементы управления для автоматизации ввода.
4. Отчеты по своим свойствам и структуре во многом похожи на формы, но предназначены только для вывода данных. В связи с этим отчеты отличаются тем, что в них приняты специальные меры для группирования выводимых данных и для вывода специальных элементов оформления, характерных для печатных документов.
На этапе логического проектирования БД строится модель предметной области, которая должна отражать взаимосвязь объектов предметной области. Диаграмма, отражающая связи объектов предметной области, называется диаграммой ER-типа (от англ. Entity - сущность, Relationship - связь). Сущность - класс однотипных объектов, информация о которых должна быть учтена в модели. Связь - ассоциация между двумя сущностями. Одна сущность может быть связана с другой сущностью или сама с собою. Атрибут сущности - именованная характеристика, являющаяся некоторым свойством сущности. Ключ сущности - неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности.
Выделим основные сущности (таблицы базы данных):
В отдельной секции в каждом отношении на схеме обозначены ключевые атрибуты.
Жирным шрифтом обозначены поля, обязательные для заполнения.
Таблицы связаны между собой, что обеспечивает целостность данных. Обеспечение целостности данных означает выполнение для взаимосвязанных таблиц следующих условий корректировки базы данных:
· в подчиненную таблицу не может быть добавлена запись, для которой не существует в главной таблице ключа связи
· в главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице
· изменение значений ключа связи главной таблицы должно приводить к изменению соответствующих значений в записях подчиненной таблицы
В случае если пользователь нарушил эти условия в операциях обновления или удаления данных в связанных таблицах, Access выводит соответствующее сообщение и не допускает выполнения операции. Access автоматически отслеживает целостность данных, если между таблицами в схеме данных установлена связь с параметрами обеспечения целостности. При вводе некорректных данных в связанные таблицы выводится соответствующее сообщение. Access не позволяет создавать связи с параметрами обеспечения целостности в схеме данных, если ранее введенные в таблицы данные не отвечают требованиям целостности.
Установление между двумя таблицами связи типа один ко многим и задание параметров целостности данных возможно только при следующих условиях:
· связываемые поля имеют одинаковый тип данных, причем имена полей могут быть различными
· обе таблицы сохраняются в одной базе данных Access
· главная таблица связывается с подчиненной по первичному простому или составному ключу (уникальному индексу) главной таблицы
Для связей заданы режимы каскадного обновления связанных записей.
В режиме каскадного обновления связанных записей при изменении значения в поле связи главной таблицы Access автоматически изменит значения в соответствующем поле в подчиненных записях.
Сущность «Препараты» содержит список всех производимых препаратов. Первичным ключом является код препарата. Характеристики препарата включают в себя название и лекарственную форму.
Сущность «Поставки» содержит список всех медикаментов, имеющихся на складе. Первичным ключом является код поставки. Характеристики препарата на складе включают в себя: код поставщика, цену закупочную, цену реализации, количество и срок годности.
Сущность «Группы» дает характеристику препаратов, определяет их группу принадлежности, а также содержит описание каждой группы. Первичным ключом является название группы.
Сущность «Сотрудники» содержит информацию о сотрудниках аптеки. Полями таблицы являются персональные данные сотрудника: ФИО, дата рождения, дата найма, должность, адрес, телефон, фотография. Сотрудники работают в аптеке, обслуживают клиентов, отправляют заказы. Каждому сотруднику присваивается уникальный код (первичный ключ).
Сущность «Поставщики» включает в себя информацию о поставщиках аптеки. Каждому поставщику присваивается уникальный код (первичный ключ). Полями таблицы являются характеристики поставщика: название, представитель, адрес, город, страна и контактный телефон.
Сущность «Клиенты» содержит информацию о клиентах аптеки: ФИО, адрес и телефон. Каждому клиенту присваивается уникальный код (первичный ключ).
Сущность «Заказы» содержит информацию о заказах, которые поступают в аптеку от клиентов. Каждый заказ обрабатывает определённый сотрудник аптеки. Каждому заказу соответствует уникальный код (первичный ключ).
Сущность «Заказано» включает в себя характеристику полученных заказов (код поставки, количество). Реализован составной ключ по атрибутам «код заказа» и «код поставки».
Сущность «Торговые названия» включает в себя информацию о торговых названиях, под которыми могут выпускаться препараты. Первичным ключом является торговое название.
Сущность «Лекарственные формы» включает в себя информацию о лекарственных формах, в которых могут выпускаться препараты под одним торговым названием. Также каждой форме даётся краткое описание. Первичным ключом является название формы.
Сущность «Буфер» используется для хранения информации о коде сотрудника, вошедшего через форму «Логин» для вывода приветствия в интерфейсе сотрудника.
Сущность «Директор» включает в себя информацию о ФИО директора аптеки, его пароле и балансе аптеки.
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (15 символов)
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (50 символов)
Тип данных - Текстовый (15 символов)
Тип данных - Текстовый (15 символов)
Счётчик. Ключевое поле. Совпадения не допускаются. Ключевое поле
Тип данных - Текстовый (30 символов)
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (50 символов)
Тип данных - Текстовый (15 символов)
Счётчик. Ключевое поле. Совпадения не допускаются. Ключевое поле
Тип элемента управления - поле со списком
Тип элемента управления - поле со списком
Таблица. Отношение «Лекарственные формы»:
Тип данных - Текстовый (25 символов)
мягкая лекарственная форма, предназначенная для нанесения на кожу, раны и слизистые оболочки
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (15 символов)
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (50 символов)
Тип данных - Текстовый (15 символов)
Тип элемента управления - поле со списком
Тип элемента управления - поле со списком
Тип элемента управления - поле со списком
Тип элемента управления - поле со списком
Тип данных - Текстовый (25 символов)
психотропные вещества, активизирующие психическую и, в меньшей степени, физическую активность организма
Таблица. Отношение «Торговые названия»:
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (15 символов)
Тип данных - Текстовый (25 символов)
Тип данных - Текстовый (15 символов)
Тип данных - Текстовый (15 символов)
Все отношения содержат только атомарные значения, что обеспечивает 1-ю нормальную форму.
В отношении нет неключевых атрибутов, зависящих от части сложного ключа, что обеспечивает 2-ю нормальную форму. Потенциальный ключ в остальных отношениях является простым, поэтому эти отношения автоматически находится во 2НФ.
В отношениях нет зависимости неключевых атрибутов от других неключевых атрибутов, что обеспечивает 3-ю нормальную форму.
В отношениях детерминант каждой функциональной зависимости является потенциальным ключом, что обеспечивает нормальную форму Бойса-Кодда.
Взаимосвязь между таблицами реализуем на схеме данных:
Заполним созданные таблицы данными.
Формы - это средства для ввода данных. Смысл их - предоставить пользователю средства для заполнения только тех полей, которые ему заполнять положено. Одновременно с этим в форме можно разместить специальные элементы управления для автоматизации ввода.
Запускается автоматически при запуске БД. С помощью данной формы клиенты могут войти в интерфейс клиента, где можно узнать информацию о препаратах в наличии, посмотреть информацию о сотрудниках аптеки. Сотрудники, введя логин и пароль, могут войти в интерфейс сотрудника, где они могут войти в форму «Заказы» для продажи препаратов клиентам, посмотреть кол-во и сумму продаж за сегодняшний день, месяц, год. Директор может войти в свой собственный интерфейс, где он может полностью управлять аптекой (принимать на работу новых сотрудников, добавлять новых поставщиков, добавлять поставки, клиентов), просматривать графики продаж, следить за балансом аптеки и расслабляться, играя в казино(!).
Используется для входа в интерфейс сотрудника. При нажатии на кнопку «Войти» проверяется соответствие введённого пароля введённому коду сотрудника. В случае ввода правильного пароля в таблицу «Буфер» заносится код сотрудника и в открывшейся форме интерфейса выводится приветствие по имени. Реализовано на VBA (Visual Basic for Applications - упрощённая реализация языка программирования Visual Basic, встроенная в MS Access), код с комментариями см. в Приложении 1.
Появляется после ввода правильного пароля для конкретного сотрудника. Выводит приветствие, отображает доступные действия:
· Касса - открывает форму «Заказы» для создания нового заказа
· Список препаратов - показывает список препаратов в наличии в виде отчёта
Также нажав на кнопку «Добавить новый» можно добавить новый препарат в базу. Примечание: препарат попадает в список существующих комбинаций торговых названий и лекарственных форм, а не на склад, создавать поставки может только директор.
Директор с помощью своего собственного интерфейса может полностью управлять аптекой. Чтобы войти в интерфейс, нужно ввести пароль. При загрузке интерфейса проверяется наличие просроченных препаратов на складе и выводится соответствующее сообщение.
С помощью данной формы клиенты аптеки могут просматривать информацию о препаратах в наличии, сотрудниках аптеки и скидках.
Используется для создания нового заказа. Одним клиентом может быть заказано несколько товаров, для этого используется подчинённая форма «Заказано». Для создания нового заказа необходимо указать код клиента, если клиент уже есть в базе или нажать на кнопку «Новый клиент» для добавления нового клиента (созданный клиент после закрытия формы «Клиенты» сразу же появится в списке клиентов, это реализовано с помощью кода VBA: Forms![Заказы]![Код_клиента].Requery, который выполняется после закрытия формы «Клиенты»), код сотрудника подставляется автоматически из таблицы «Буфер», текущая дата ставится автоматически. После этого нужно добавить в заказ товары. Это можно сделать с помощью списка в поле «Препарат» (выводятся только препараты с неистёкшим сроком годности) или с помощью поиска по складу нажав на кнопку «Поиск по складу». После добавления препаратов в заказ необходимо нажать кнопку «Подтвердить заказ», при этом вычислится скидка и посчитается сумма. После этого можно ввести в поле «Получено» полученную от клиента сумму, после чего в поле «Сдача» появится сумма сдачи. Далее вместо кнопки «Подтвердить заказ» появится кнопка «Новый заказ». При нажатии на неё к балансу аптеки прибавляется сумма выручки, затем форма переходит к добавлению нового заказа. Изменение баланса аптеки реализовано на VBA:
a = Поле19 ' Присваиваем переменной а значение выручки
strSQL = "UPDATE Директор SET Баланс = Баланс +" & a & "" ' Запрос на увеличение баланса на сумму выручки
CurrentDb.Execute (strSQL) ' Выполняем запрос
Поля «Скидка», «Итого» и «Сдача» заблокированы с целью недопущения обмана со стороны сотрудника. Код обновления кол-ва препаратов на складе и вычисления скидки при нажатии на кнопку «Подтвердить заказ» с комментариями см. в Приложении 2.
Позволяет выполнить поиск по названию препарата или по симптомам (тип поиска выбирается с помощью переключателей). Список препаратов обновляется в режиме реального времени и берётся с помощью запроса:
SELECT Поставки.Код_поставки, Препараты.Код_препарата, Препараты.Название, Препараты.Название_формы, Поставки.Цена_реализации, Поставки.Количество, Поставки.Годен_до FROM Препараты INNER JOIN Поставки ON Препараты.Код_препарата = Поставки.Код_препарата WHERE (((Препараты.Название) Like [Forms]![Выбор]![Поиск] & "*") AND ((Поставки.Количество)>0) AND ((Поставки.Годен_до)>=Date()));
Выводит только препараты с неистёкшим сроком годности.
Используется для добавления новой поставки. При вводе данных можно с помощью кнопок 25%, 50% и 100% автоматически установить цену реализации на 25%, 50% и 100% соответственно выше цены закупочной. С помощью кнопки «Сколько это будет стоить?» можно узнать стоимость поставки. Доступна только директору. После добавления поставки из баланса аптеки вычитается стоимость закупленных препаратов, реализовано на VBA:
a = Цена_закупочная * Количество ' Записываем в переменную а стоимость поставки
strSQL = "UPDATE Директор SET Баланс = Баланс -" & a & "" ' Запрос на вычитание из баланса стоимости поставки
CurrentDb.Execute (strSQL) ' Выполняем запрос
DoCmd.GoToRecord , , acNext ' Переходим к новой записи
Используется для добавления в базу новых препаратов. Реализован запрет на добавление препарата, уже имеющегося в базе, с помощью VBA:
a = DCount("Код_препарата", "Препараты", "[Название]='" & Me.Название & "' AND [Название_формы]='" & Me.Название_формы & "'") ' Определяем число записей в таблице «Препараты», в которых название и форма совпадают с теми, что мы ввели в форму «Препараты»
If a > 0 Then ' Если такие записи есть, то выводим сообщение, что такой препарат уже есть
Me.Название = "" ' Очищаем поле «Название»
Используется для добавления в базу нового клиента.
Позволяет просмотреть информацию о просроченных препаратах и, если Вы - нечестный человек, немного подправить срок годности просроченных препаратов.
Используется для добавления нового сотрудника. Для добавления фото необходимо щёлкнуть правой кнопкой мыши по области, указанной на скриншоте рамкой, выбрать пункт «Добавить объект…», установить переключатель в режим «Создать из файла», поставить галочку «Связь», с помощью кнопки «Обзор…» выбрать фотографию и нажать на кнопку «ОК».
Позволяет добавить новое торговое название. Используя торговое название и лекарственную форму можно добавить новый препарат.
Позволяет добавить новые лекарственные формы. Используя торговое название и лекарственную форму можно добавить новый препарат.
Используется для добавления нового поставщика. Доступна только директору.
Сводная таблица «Сводная_таблица_по_заказам»:
Показывает статистическую информацию о кол-ве проданных препаратов клиентам.
Диаграмма «Диаграмма_по_количеству_и_фамилиям»:
Показывает статистическую информацию о кол-ве проданных препаратов клиентам.
В казино директор может играть в различные игры на деньги из баланса аптеки.
Одна из игр в казино. Правила: Компьютер случайным образом выбирает число. Вы делаете ставку и выбираете с помощью кнопок: больше или меньше будет следующее число. Если Вы угадали, то получаете выигрыш = Ваша ставка * 1.5
Одна из игр в казино. Правила: Сейф с 4-значным кодом. Игроку предлагается возможность отгадать комбинацию неповторяющихся цифр не более чем за 5 попыток путем логических умозаключений. После каждой попытки игрок получает ответ в виде двух цифр: первая говорит о том, сколько цифр угадано, а вторая - сколько из угаданных на своем месте. Если игрок за 5 попыток отгадал код - он выиграл. Выигрыш: ставка * 3
Одна из игр в казино. Правила: Минное поле 7x7, 11 мин. Разминировать!
Игрок имеет возможность открыть любую ячейку, щелкнув по ней левой кнопкой мыши. Если открываемая ячейка содержит мину, Вы проиграли. Если мины нет, в ячейке появится цифра, которая указывает, сколько мин находится в восьми смежных с ней ячейках.
Выигрыш за полностью разминированное поле равен ставка * 5
Код на VBA с комментариями см. в Приложении 3.
Все формы защищены от ввода данных, нарушающих целостность БД.
Запросы - служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. С помощью запросов выполняются такие операции, как отбор данных, их сортировку и фильтрацию. С помощью запросов можно выполнять преобразования данных по заданному алгоритму, выполнять автоматическое наполнения таблиц данными, импортированными из других источников, выполнять простейшие вычисления в таблицах и многое другое.
Запрос 1 (Список_препаратов_в_наличии). Выводим препараты в наличии (сортировка по названию по алфавиту):
SELECT Поставки.Код_поставки, Препараты.Название, Препараты.Название_формы, Поставки.Цена_реализации, Поставки.Количество, Поставки.Годен_до FROM Торговые_названия INNER JOIN ((Лекарственные_формы INNER JOIN Препараты ON Лекарственные_формы.Название_формы = Препараты.Название_формы) INNER JOIN Поставки ON Препараты.Код_препарата = Поставки.Код_препарата) ON Торговые_названия.Название = Препараты.Название ORDER BY Препараты.Название;
Запрос 2 (Запрос_по_названию_препарата). Выводим список препаратов в наличии по названию:
Результат выполнения запроса (при вводе буквы «Л»):
SELECT Препараты.Название, Препараты.Название_формы, Поставки.Цена_реализации, Поставки.Количество, Поставки.Годен_до FROM Препараты INNER JOIN Поставки ON Препараты.Код_препарата = Поставки.Код_препарата WHERE (((Препараты.Название) Like [Введите название] & "*") AND ((Поставки.Количество)>0) AND ((Поставки.Годен_до)>=Date()));
Запрос 3 (Повысить_зарплату). Увеличиваем зарплату в 2 раза сотрудникам, продавшим препараты на сумму более Х рублей:
UPDATE Сотрудники SET Сотрудники.Зарплата = [Сотрудники].[Зарплата]*2 WHERE Сотрудники.Код_сотрудника IN (SELECT Заказы.Код_сотрудника FROM Поставки INNER JOIN (Заказы INNER JOIN Заказано ON Заказы.Код_заказа = Заказано.Код_заказа) ON Поставки.Код_поставки = Заказано.Код_поставки GROUP BY Заказы.Код_сотрудника HAVING SUM([Поставки].[Цена_реализации]*[Заказано].[Количество])>[Введите параметр])
Запрос 4 (ДР_сотрудников_ в_следующ_мес). Выводим ФИО сотрудников, у которых в следующем месяце день рождения:
SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Сотрудники.Дата_рождения FROM Сотрудники WHERE ((Month((Сотрудники.Дата_рождения))=Month(Date())+1));
Запрос 5 (Количество_просроченных_препаратов). Выводим количество просроченных препаратов на складе:
SELECT Count([Поставки].[Годен_до]) AS [Кол-во просроченных товаров]
FROM (Лекарственные_формы INNER JOIN Препараты ON Лекарственные_формы.Название_формы = Препараты.Название_формы) INNER JOIN Поставки ON Препараты.Код_препарата = Поставки.Код_препарата

Информационная система аптеки
Проектирование информационной системы « Аптека »
Курсовая работа : Разработка информационно -справочной...
Информационная система аптеки | Работа состоит из 1 файл
Курсовая работа (Теория) на тему "Разработка..."
Представление О Дизонтогенезе Реферат
Контрольная Работа По Теме Многочлены 11 Класс
План Сочинения На Тему Краски Осени
Реферат На Тему Форматы Кодирования
Архитектура Предприятия Курсовая Работа

Report Page