База Данных Аптека Курсовая

База Данных Аптека Курсовая
ОПРЕДЕЛЕНИЯ, ОБОЗНА ЧЕНИЯ И СОКРАЩЕНИЯ.......... ... .... ... ... ... .... ... ... . 4
ВВЕДЕНИЕ....................................................................................................... ... ... . 5
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ................................................................6
2 ПОСТРОЕНИЕ ИНФОЛОГИЧ ЕСКОЙ МОДЕЛИ............... ... ... ... .... ... ... ... .... .. 8
3 СОСТАВЛЕНИЕ СПИСК А НЕОБХОДИМЫХ АТРИБУТОВ. .... ... ... ... ... . .. . .. 9
4 ПОСТРОЕНИЕ НАБОРА НЕОБ ХОДИМЫХ ОТНОШЕНИЙ И ИХ
НОРМАЛИЗАЦИЯ................................................................................................ 10
4.1 Набор необходимых отношений базы данных.......... .... ... ... ... ... .... ... ... ... .. 11
4.2 Нормализация......................................................................................... ... ... 13
5 ПОСТРОЕНИЕ СХЕМЫ ДАННЫХ.................................................................15
6 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦ ИЯ ЗАПРОСОВ К БД.. ... ... .... ... . .. . .. . .. . 16
ЗАКЛЮЧЕНИЕ........................................................................... .... ... ... ... .... ... ... ... 28
СПИСОК ИСПОЛЬЗОВАННЫ Х ИСТОЧНИКОВ............................... ... ... .... ... 29
Share your documents to get free Premium access
Upgrade to Premium to read the full document
У вас уже есть аккаунт? Войти в систему
This website uses cookies: By clicking anywhere on our website or "Accept", you agree to the use of cookies and other technologies to process personal data. Cookies are used by us and our trusted partners to enhance, analyse and personalize your experience across StuDocu.com
Курсовая работа на тему "база данных аптеки"
База данных (БД) – некая именованная совокупность данных,
отражающая состояние объектов или явлений в некоторой выбранной
предметной области и связи между ними. Она создаётся для хранения
данных и доступа к ним.
Предметная область (ПО) – любая область деятельности человека
или часть реального мира, подлежащую изучению для организации
управления ею и автоматизации.
Система управления базами данных (СУБД) – совокупность
программных и лингвистических средств общего или специального
назначения, обеспечивающих управление созданием и использованием баз
данных.
Сущность – это собирательное понятие (некоторая абстракция
реально существующего объекта, процесса или явления о котором
необходимо хранить информацию в системе) [1].
Реляционная БД – множество взаимосвязанных двумерных таблиц –
реляционных таблиц, называемых также отношениями, в каждой из
которых содержатся сведения об одной сущности автоматизируемой
предметной области [2].
ER-модель (англ. entity-relationship model) – модель данных,
позволяющая описывать концептуальные схемы предметной области. С её
помощью можно выделить ключевые сущности и обозначить связи,
которые могут устанавливаться между этими сущностями [3].
Атрибут – поименованная характеристика сущности.
Ключ – это минимальный набор атрибутов, по значениям которых
можно однозначно найти требуемый экземпляр сущности.
Нормализация – процесс преобразования отношений базы данных к
виду, отвечающему нормальным формам.
Декомпозиция – замена отношения на совокупность отношений
такую, что каждое из них есть проекция исходного, и каждый атрибут
входит хотя бы в одну из проекций декомпозиции.
Создание базы данных начинается с изучения и анализа предметной
области. В нашем случае необходимо создать базу данных для нужд аптеки:
Аптека продает медикаменты и изготавливает их по рецептам.
Лекарства могут быть разных типов:
Готовые лекарства: таблетки, мази, настойки...
Изготовляемые аптекой: микстуры, мази, растворы, настойки,
порошки.
Различие в типах лекарств отражается в различном наборе
атрибутов, их характеризующих. Микстуры и порошки изготавливаются
только для внутреннего применения, растворы для наружного, внутреннего
применения и для смешивания с другими лекарствами и мази только для
наружного применения. Лекарства различны также по способу
приготовления и по времени приготовления. Порошки и мази
изготавливаются смешиванием различных компонент. При изготовлении
растворов и микстур ингредиенты не только смешивают, но и
отстаивают с последующей фильтрацией лекарства, что увеличивает время
изготовления.
В аптеке существует справочник технологий приготовления
различных лекарств. В нем указываются: идентификационный номер
технологии, название лекарства и сам способ приготовления. На складе
на все медикаменты устанавливается критическая норма, т.е. когда
какого-либо вещества на складе меньше критической нормы, то
составляются заявки на данные вещества и их в срочном порядке привозят
с оптовых складов медикаментов.
Для изготовления аптекой лекарства, больной должен принести
рецепт от лечащего врача. В рецепте должно быть указано: ФИО, подпись
и печать врача, ФИО, возраст и диагноз пациента, также количество
лекарства и способ применения. При этом, надо учитывать и категории
пациентов: не льготники, инвалиды, участники войны, пенсионеры по
болезни, пенсионеры по старости и т.д. Больной отдает рецепт
регистратору, он принимает заказ и смотрит, есть ли компоненты
заказываемого лекарства. Если не все компоненты имеются в наличии, то
делает заявки на оптовые склады лекарств и фиксирует ФИО, категорию,
телефон и адрес необслуженного покупателя, чтобы сообщить ему, когда
доставят нужные компоненты. Такой больной пополняет справочник
заказов - это те заказы, которые находятся в процессе приготовления, с
пометкой, что не все компоненты есть для заказа. Если все компоненты
имеются, то они резервируются для лекарства больного. Покупатель
выплачивает цену лекарства, ему возвращается рецепт с пометкой о
времени изготовления. Больной также пополняет справочник заказов в
производстве. В назначенное время больной приходит и по тому же
рецепту получает готовое лекарство. Такой больной пополняет список
отданных заказов.
Ведется статистика по объемам используемых медикаментов.
Через определенный промежуток времени производится инвентаризация
склада. Это делается для того, чтобы определить, есть ли лекарства с
критической нормой, или вышел срок хранения или недостача.
В приведённом выше описании ПО были выделены следующие
сущности: готовые лекарства, изготовляемые лекарства, вещества
(компоненты), справочник технологий, клиенты, заказы, рецепты и
статистика. К этим сущностям также можно добавить состав лекарств,
назначения (медикаменты, указанные в рецепте и их количество) и склад,
на котором будут храниться медикаменты.
Врач выписывает больному рецепт, тот приходит в аптеку,
приобретает готовые лекарства и делает заказ на изготовляемые лекарства.
Для их изготовления по определённой технологии необходимы
медикаменты.
Атрибутом сущности является любая деталь, которая служит для
уточнения, идентификации, классификации, числовой характеристики или
выражения состояния сущности. Его наименование должно быть
уникальным для конкретного типа сущности, но может быть одинаковым
для различного типа сущностей [4].
Выявленные сущности будут иметь следующие наборы атрибутов:
Готовые лекарства (номер лекарства, наименование, форма,
стоимость);
Изготовляемые лекарства (номер лекарства, наименование, форма,
стоимость);
Компоненты (номер компонента, наименование, форма, стоимость);
Справочник технологий (номер технологии, номер лекарства,
способ приготовления, время приготовления);
Клиенты (номер клиента, фамилия, имя, отчество, дата рождения,
адрес, телефон, категория);
Рецепты (номер рецепта, номер клиента, ФИО врача, диагноз);
Заказы (номер заказа, номер рецепта, дата приёма, дата
изготовления, дата выдачи, стоимость, статус);
Назначения (номер рецепта, номер лекарства, количество);
Состав (номер лекарства, номер ингредиента, количество);
Склад (номер товара, количество, критическая норма);
Статистика (номер товара, продано, дата).
Для построения схемы реляционной базы данных необходимо
определить совокупность отношений, составляющих базу данных. Эта
совокупность отношений будет содержать всю информацию, которая
должна храниться в базе данных. На основе полученной инфологической
модели можно определить набор необходимых отношений базы данных.
В реляционной базе данных каждому объекту и сущности реального
мира соответствуют кортежи отношений. Каждое отношение должно
обладать хотя бы одним ключом.
Существуют ключи двух типов: первичные и внешние.
Первичный ключ – это одно или несколько полей (столбцов),
комбинация значений которых однозначно определяет каждую запись в
таблице. Первичный ключ не допускает значений Null и всегда должен
иметь уникальный индекс. Первичный ключ используется для связывания
таблицы с внешними ключами в других таблицах.
Внешний ключ – это одно или несколько полей (столбцов) в таблице,
содержащих ссылку на поле или поля первичного ключа в другой таблице.
Внешний ключ определяет способ объединения таблиц.
Из двух логически связанных таблиц одну называют таблицей
первичного ключа или главной таблицей, а другую таблицей внешнего
ключа или подчиненной таблицей.
Существует три типа первичных ключей: ключевые поля счетчика
(счетчик), простой ключ и составной ключ.
Поле счетчика. Тип данных поля в базе данных, в котором для каждой
добавляемой в таблицу записи в поле автоматически заносится уникальное
числовое значение.
Простой ключ. Если поле содержит уникальные значения, такие как
коды или инвентарные номера, то это поле можно определить как
первичный ключ. В качестве ключа можно определить любое поле,
содержащее данные, если это поле не содержит повторяющиеся значения
или значения Null.
Составной ключ. В случаях, когда невозможно гарантировать
уникальность значений каждого поля, существует возможность создать
ключ, состоящий из нескольких полей. Чаще всего такая ситуация
возникает для таблицы, используемой для связывания двух таблиц многие-
ко-многим [1].
2 Количество INT
3 Критическая норма INT
No Имя поля Тип данных Тип ключа
1 Номер товара INT Первичный
2 Дата DATE Первичный
3 Продано INT
No Имя поля Тип данных Тип ключа
1 Номер клиента INT Первичный
2 Фамилия VARCHAR(20)
3 Имя VARCHAR(20)
4 Отчество VARCHAR(20)
5 Дата рождения DATE
6 Адрес VARCHAR(50)
7 Телефон VARCHAR(25)
8 Категория VARCHAR(20)
No Имя поля Тип данных Тип ключа
1 Номер рецепта INT Первичный
2 Номер клиента INT Внешний
3 ФИО врача VARCHAR(60)
4 Диагноз VARCHAR(20)
No Имя поля Тип данных Тип ключа
1 Номер заказа INT Первичный
2 Номер рецепта INT Внешний
3 Дата приёма DATE
4 Дата изготовления DATE
Продолжение таблицы 4.
5 Дата выдачи DATE
6 Стоимость INT
7 Статус VARCHAR(15)
No Имя поля Тип данных Тип ключа
1 Номер рецепта INT Первичный
2 Номер лекарства INT Первичный
3 Количество INT
No Имя поля Тип данных Тип ключа
1 Номер лекарства INT Первичный
2 Номер ингредиента INT Первичный
3 Количество, мг INT
Нормализация предназначена для приведения структуры базы данных
к виду, обеспечивающему минимальную избыточность, то есть
нормализация не имеет целью уменьшение или увеличение
производительности работы или же уменьшение или увеличение объёма
БД. Конечной целью нормализации является уменьшение потенциальной
противоречивости хранимой в БД информации [5].
Процесс нормализации основан на концепции нормальных форм.
Отношение находится в некоторой нормальной форме, если оно
удовлетворяет всем её ограничениям. Существует множество нормальных
форм, но для наших целей достаточно рассмотреть три из них: первую,
вторую и третью.
Отношение входит в первую нормальную форму, если его атрибуты
содержат только скалярные значения (если оно представимо в виде плоской
двумерной таблицы). Любое отношение входит в первую нормальную
форму по умолчанию, поскольку реляционная модель данных требует,
чтобы значения всех атрибутов были только скалярными.
Отношение входит во вторую нормальную форму, если оно находится
в первой нормальной форме, и нет неключевых атрибутов, функционально
зависящих от части сложного первичного ключа. Если первичный ключ
простой, то отношение автоматически входит во вторую нормальную
форму. В случае выявления каких-либо аномалий производится
декомпозиция.
В построенной выше логической модели все отношения либо имеют
простой ключ, либо не имеют функционально зависимых от части ключа
Для построения базы данных используется система управления
базами данных Microsoft Access 2003. Выбор СУБД Access объясняется тем,
что она входит в состав пакета прикладных программ Microsoft Office,
установленного практически на всех персональных компьютерах.
Сначала необходимо создать новую базу данных, затем в режиме
конструктора создать все таблицы, соответствующие отношениям,
определенным ранее в пункте 4.1.
После создания всех таблиц необходимо установить между ними
связи. В Microsoft Access 2003 это делается предельно просто: создаётся
новая схема данных, на неё добавляются все таблицы БД, после чего связь
устанавливается путём перетаскивания поля-источника данных из
родительской таблицы на поле в дочерней. Тип данных обоих полей должен
совпадать, одно из полей (поле-источник) должно быть ключевым. После
установления всех связей в соответствии с логической моделью БД, мы
получим схему данных, представленную на рисунке 5.1.
Теперь созданные таблицы необходимо заполнить, причём начинать
заполнение данными нужно с тех таблиц, которые являются источниками
данных для других.
После заполнения всех таблиц данными можно приступить к
последней части данной работы - реализации информационных запросов к
БД.
Рисунок 6.1 – Результат выполнения запроса 1а
б) Количество клиентов можно получить, выполнив следующий
запрос:
SELECT COUNT(*) AS Количество
FROM (Клиенты INNER JOIN Рецепты ON Клиенты.[Номер клиента] =
Рецепты.[Номер клиента]) INNER JOIN Заказы ON Рецепты.[Номер рецепта] =
Заказы.[Номер рецепта]
WHERE (((Заказы.[Дата изготовления]) < Date()) AND ((Заказы.Статус) = "В
процессе"));
WHERE (((Заказы.Статус)="Завершён" Or (Заказы.Статус)="В процессе"))
GROUP BY Компоненты.[Номер компонента], Компоненты.Наименование
ORDER BY Sum(Состав.[Количество, мг]*Назначения.Количество) DESC;
Рисунок 6.4 – Результат выполнения запроса 3
Рисунок 6.5 – Результат выполнения запроса 4
SELECT Клиенты.[Номер клиента], Клиенты.Фамилия, Клиенты.Имя,
Клиенты.Отчество, Заказы.[Номер заказа], Заказы.[Номер рецепта], Заказы.[Дата
приёма]
FROM ((Клиенты INNER JOIN Рецепты ON Клиенты.[Номер клиента] =
Рецепты.[Номер клиента]) INNER JOIN Заказы ON Рецепты.[Номер рецепта] =
Заказы.[Номер рецепта]) INNER JOIN ([Изготовляемые лекарства] INNER JOIN
Назначения ON [Изготовляемые лекарства].[Номер лекарства] = Назначения.
[Номер лекарства]) ON Рецепты.[Номер рецепта] = Назначения.[Номер рецепта]
WHERE (((Заказы.[Дата приёма]) Between Date()-31 And Date()) AND
(([Введите название лекарства (например, Порошок от
простуды)])=[Изготовляемые лекарства].[Наименование]));
Рисунок 6.6 – Результат выполнения запроса 5а
б) Запрос по определенному типу лекарств (на рисунке 6.
представлен результат за последний месяц с параметром «Порошок»):
SELECT Клиенты.[Номер клиента], Клиенты.Фамилия, Клиенты.Имя,
Клиенты.Отчество, Заказы.[Номер заказа], Заказы.[Номер рецепта], Заказы.[Дата
приёма], [Изготовляемые лекарства].[Номер лекарства], [Изготовляемые
лекарства].Наименование, [Изготовляемые лекарства].Форма
FROM ((Клиенты INNER JOIN Рецепты ON Клиенты.[Номер клиента] =
Рецепты.[Номер клиента]) INNER JOIN Заказы ON Рецепты.[Номер рецепта] =
Заказы.[Номер рецепта]) INNER JOIN ([Изготовляемые лекарства] INNER JOIN
Назначения ON [Изготовляемые лекарства].[Номер лекарства] = Назначения.
[Номер лекарства]) ON Рецепты.[Номер рецепта] = Назначения.[Номер рецепта]
WHERE (((Заказы.[Дата приёма]) Between Date()-31 And Date()) AND
(([Введите тип лекарства (например, Порошок)])=[Изготовляемые лекарства].
[Форма]));
Рисунок 6.7 – Результат выполнения запроса 5б
которого будет представлен на рисунке 6.10:
SELECT [Выборка всех товаров на складе].[Номер товара], [Выборка всех
товаров на складе].[Номер лекарства], [Выборка всех товаров на
складе].Наименование, [Выборка всех товаров на складе].Форма, [Выборка всех
товаров на складе].Количество, [Выборка всех товаров на складе].[Критическая
норма]
FROM [Выборка всех товаров на складе]
WHERE ((([Выборка всех товаров на складе].Количество)<=[Выборка всех
товаров на складе].[Критическая норма]));
Рисунок 6.10 – Результат выполнения запроса 7
Рисунок 6.11 – Результат выполнения запроса 8а
б) Запрос по указанной категории медикаментов. На рисунке 6.
представлены результаты работы запроса с параметром «Мазь»:
SELECT TOP 10 [Выборка всех товаров на складе].[Номер товара], [Выборка
всех товаров на складе].[Номер лекарства], [Выборка всех товаров на
складе].Наименование, [Выборка всех товаров на складе].Форма, [Выборка всех
товаров на складе].Количество
FROM [Выборка всех товаров на складе]
WHERE ((([Введите категорию (например, Мазь)])=[Выборка всех товаров на
складе].[Форма]))
ORDER BY [Выборка всех товаров на складе].Количество;
Рисунок 6.12 – Результат выполнения запроса 8б
Рисунок 6.13 – Результат выполнения запроса 9а
б) Запрос на получение общего числа заказов:
SELECT Count(*) AS Количество
WHERE Заказы.Статус = "В процессе";
Эта страница не доступна в окне предварительного просмотра.
Эта страница не доступна в окне предварительного просмотра.
Эта страница не доступна в окне предварительного просмотра.
Эта страница не доступна в окне предварительного просмотра.
Эта страница не доступна в окне предварительного просмотра.
Эта страница не доступна в окне предварительного просмотра.
Copyright © 2020 StudeerSnel B.V., Keizersgracht 424, 1016 GC Amsterdam, KVK: 56829787, BTW: NL852321363B01
123 - Курсовая работа на тему " база данных аптеки " - StuDocu
Разработка базы данных ' Аптека '. Курсовая работа...
Разработка базы данных " Аптека "
Проектирование и реализация базы данных аптеки
Курсовая работа (Теория) на тему " База данных " Аптека " скачать...
Портрет Мальчика Сочинение Описание Водкин
Механизмы Межличностного Восприятия Реферат
Сочинение Отношение Владимира Дубровского К Маше
Біздің Облыста Туризм Қалай Дамып Келеді Эссе
Распространение Английского Языка За Пределами Англии Реферат