Автор работы: Пользователь скрыл имя, 29 Мая 2013 в 17:56, курсовая работа
Необходимо спроектировать базу данных «Аптека». Также целью данной работы является ознакомление с основными принципами построения, использования и оптимизации реляционных баз данных.
Данная тема актуальна, так как большое количество людей заинтересовано в получении информации о представленных лекарствах в конкретной аптеке.
Необходимо предоставить пользователю информацию о составе представленных лекарств, цене.
Таблица 2.25– Лечение | ||
Наименование термина |
Примеры значений | |
Полное |
Краткое | |
1 |
2 |
3 |
Код назначения |
kodnazn |
dihanie1 |
болезни |
bolezni |
Болезни органов дыхания |
Словарь понятий и терминов для сущности «Болезни органов дыхания» приведен в таблице 2.26
Таблица 2.26– Болезни органов дыхания | ||
Наименование термина |
Примеры значений | |
Полное |
Краткое | |
1 |
2 |
3 |
Болезни органов дыхания |
boldih |
Пневмония |
Код болезни органов дыхания |
kboldih |
dihanie1 4 |
Словарь понятий и терминов для сущности «Болезни органов кровообращения» приведен в таблице 2.27
Таблица 2.27– Болезни органов кровообращения | ||
Наименование термина |
Примеры значений | |
Полное |
Краткое | |
1 |
2 |
3 |
Болезни органов кровообращения |
krovoobr |
Аневризма аорты |
Код болезни органов кровообращения |
kodkrov |
krovoobrac1 |
Словарь понятий и терминов для сущности «Болезни органов пищеварения» приведен в таблице 2.28
Таблица 2.28– Болезни органов пищеварения | ||
Наименование термина |
Примеры значений | |
Полное |
Краткое | |
1 |
2 |
3 |
Болезни органов пищеварения |
bolzhkt |
Гастрит |
Код болезни органов пищеварения |
kodzhkt |
zh_k_t12 |
Не может такого быть, чтобы один и тот же препарат в один и тот же день один и тот же клиент купил у двух и более сотрудников:
kodprepar, dataispoln, kodklient -> kodsotr .
Не может такого быть, чтобы один и тот же сотрудник получил дважды зарплату за месяц:
kodsotr -> zarplata ,
zarplata -> kodsotr.
Не может такого быть, чтобы два поставщика имели одинаковый код поставщика:
nazvanie -> kodpost ,
kodpost -> nazvanie .
Не может такого быть, чтобы один и тот же препарат имел два одинаковых кода:
nazvanprep -> kodprep ,
kodprep -> nazvanprep .
Формальное описание функциональных зависимостей представлено на рисунке 2.1.
kodprepar, dataispoln, kodklient -> kodsotr kodsotr -> zarplata nazvanie -> kodpost nazvanprep -> kodprep zarplata -> kodsotr kodpost -> nazvanie kodprep -> nazvanprep kodprep, kodnachen, kodpost -> nazvanprep, edizmer, cenazakup, cenarealiz kodzakaza, kodklient, kodsotr -> datarazmes, datanaznach, dataispoln, stoimdostav kodsotr -> familia, name, soname, dolzhnost, datarozhd, datanaima, addres, gorod, strana, telefon kodklient -> nazvanie, predstavitel, address, gorod, strana, telefon kodzakaza, kodpost -> kodprepar, cenarealiz, kolichestvo kodpost -> nazvanie, predstavitel, dolzhnost, address, gorod, strana, telefon kodgr -> gruppa kodvyazh -> vyazhobv kodgrup -> antibiot kodnazn -> bolezni kodanalg -> analget kodspazm -> spazmog kodantik -> antikoag kboldih -> boldih kodkrov -> krovoobr kodzhkt -> bolzhkt kodnepr -> antnepr kodpryam -> antpryam kodtetr -> tetrasik kodamin -> aminogl kodlev -> levomis kodmakr -> makrolid kodpen -> penisil kodgrib -> gribkov |
Рисунок 2.1
Минимизация системы функциональных зависимостей производится при помощи программы MINDB.
Результат работы программы приведен на рисунке 2.2.
Рисунок 2.2 – Построение неизбыточного покрытия
Этапы построения леворедуцированного покрытия представлены на рисунке 2.3.
Рисунок 2.3 - Построение леворедуцированного покрытия
Этапы построения праворедуцированного покрытия представлены на рисунке 2.4
Рисунок 2.4- Построение праворедуцированного покрытия.
Этапы построения классов эквивалентности представлены на рисунках 2.5(1)-(2). Этапы построения минимального покрытия представлены на рисунке 2.6.
Рисунок 2.5(1) - Построение классов эквивалентности
Рисунок 2.5 (2) - Построение классов эквивалентности
Рисунок 2.6-Построение минимального покрытия.
Определение CF-зависимостей
по классам эквивалентности
Рисунок 2.7 - Построение редуцированного минимального кольцевого
покрытия
Рисунок 2.8 - Построение редуцированного минимального кольцевого покрытия
Рисунок 2.9 - Построение редуцированного минимального кольцевого
покрытия
Рисунок 2.10 - Построение редуцированного минимального кольцевого
покрытия
Рисунок 2.11 - Построение редуцированного минимального кольцевого
покрытия
Запрос на выборку
Вывести сведения о сотрудниках, получающих больше 20 000 и занимающих должность «заведующий-провизор», которые приняли заказ после 05/01/12 у клиента «РАОМЕД» на препарат «Аминазин» поставщика «НижФарм» в количестве 20.
2.5.2 Текст запроса на языке SQL
Текст запроса представлен на рисунке 2.12.
Дерево запроса представлено на рисунке 2.13.
Рисун ок 2.13
Текст оптимизированного запроса представлен на рисунке 2.15.
select zarplata, kodsotr; from staff; where staff.zarplata > 15000; into table a1;
select familia, kodsotr, dolzhnost; from sotrudniki; where sotrudniki.dolzhnost = "заведующий-провизор"; into table a2;
select kodsotr , kodklient, dataispoln, kodzakaza; from zakazi; where zakazi.dataispoln > DATE(2012,03,05); into table a3;
select kodklient, nazvanie; from klienti; where klienti.nazvanie = "РАОМЕД"; into table a4;
select kodzakaza, kolichestvo, kodpost; from zakazano; where zakazano.kolichestvo = 20; into table a5;
select kodpost, nazvanie; from postavsiki; where postavsiki.nazvanie = "НижФарм"; into table a6;
select kodpost, nazvanprep; from preparati; where preparati.nazvanprep = "Аминазин"; into table a7;
SELECT staff.zarplata,sotrudniki. zakazano.kodprepar,postavsiki. from((((((a1 inner join a2 on a1.kodsotr = a2.kodsotr); inner join a3 on a3. kodsotr = a2. kodsotr); inner join a4 on a4. kodklient = a3. kodklient); inner join a5 ON a5.kodzakaza = a3. kodzakaza); inner join a6 ON a6. kodpost = a5. kodpost); inner join a7 ON a7. kodpost = a6. kodpost); |
В ходе выполнения курсовой работы была достигнута цель работы – проектирование базы данных аптеки.
Для достижения цели был решен ряд задач: составление описания предметной области; составление словаря понятий и терминов; построение исходной модели (ER-диаграммы) базы данных; определение функциональных зависимостей; синтез схемы базы данных на основании функциональных зависимостей; построение оптимизированной концептуальной модели; построение запросов.