Курсова робота
"База даних лікарських препаратів"
Вступ
Останнім часом відбувається значний розвиток у хімічній промисловості, а саме в розробці лікарських препаратів. Щорічно реєструється понад чотири тисячі нових лікарських препаратів. Це свідчить про збільшення інформації в цій сфері, яку необхідно згрупувати. Тому темою моєї курсової роботи є розробка бази даних для лікарських препаратів.
В базі даних буде сформована залежність між виробником лікарських препаратів, постачальником даних препаратів від виробника до аптек, групою лікарських препаратів, лікарськими препаратами та їх властивостями.
В результаті використання даної бази даних можна дізнатися інформацію про лікарський препарат починаючи від його виробника, постачальника, до властивостей лікарського препарату та його застосування.
Тобто користувачем базою даних може бути безпосередньо як споживач, так і розповсюджувачі лікарських препаратів (постачальники, виробники).
1.Постановка задачі
Темою моєї курсової роботи обрано створення бази даних лікарських препаратів. Тому перед тим як створювати логічний та фізичний проекти БД необхідно було ознайомитись з даною темою.
Крім цього необхідно було вирішити ще ряд задач, таких як:
· Визначити основні властивості та характеристики лікарських препаратів, які повинні бути в базі даних;
· Встановити головні сутності;
· Визначити типи зв’язків між сутностями;
· Визначити якими типами даних повинні бути атрибути сутностей. [6]
Створення фізичного проекту БД відбувалося в такому порядку:
· Намалювати ER-діаграму з усіма атрибутами, яка відображатиме зв’язок між сутностями;
· Проаналізувати якість створеного логічного проекту БД;
· Вибрати оптимальну модель СКБД для створення БД;
· На основі логічного проекту створити фізичний проект БД.
Вхідною інформацією для даної бази даних буде інформація про виробників лікарських препаратів, постачальників, групи, властивості лікарських препаратів та багато інших характеристик. Користувач даною базою даних зможе змінювати дані про лікарські препарати за допомогою запитів на мові SQL.
Зміст вихідної інформації залежить від того що саме цікавить користувача. Вихідна інформація виводиться на екран у вигляді таблиці, після створення належного запиту.
Відношення можна класифікувати по типам аномалій модифікацій, яким вони підтверджені. Класи відношень та способи попередження аномалій називаються нормальними формами. В залежності від своєї структури, відношення може бути в першій, другій або в якійсь – іншій формі.
В 1970 р., Кодд та інші визначили першу, другу та третю нормальні форми (1НФ, 2НФ та 3НФ). Пізніше була виведена нормальна форма Бойса – Кодда (НФБК), а потім четверта та п’ята нормальні форми. Ці форми являються вкладеними, тобто відношення в 2НФ є також відношенням в 1НФ.[5, c. 175]
Перша нормальна форма.
Про будь – яку таблицю даних, яка задовольняє визначенню відношення, говорять, що вона знаходиться в першій нормальній формі.
Для того, щоб таблиця була відношенням, повинно виконуватися: комірки таблиці повинні містити одиночні значення та в якості значень не допускаються ні групи, які повторяються, ні масиви. Всі записи в одному стовпці повинні мати один і той самий тип. Кожен стовпець повинен мати унікальне ім’я. В таблиці не повинно бути двох однакових строк.
Тобто, відношення знаходиться в 1НФ, якщо всі його атрибути являються простими (мають єдине значення). [6, c. 151]
Дане відношення знаходиться в першій нормальній формі. Проте, як ми бачимо, воно може мати аномалії модифікації.
Для того, щоб усунути аномалії, треба розбити відношення на два або більше нових відношень. Коли ми це робимо, нові відношення перебувають в деякій іншій нормальній формі, а якій саме, залежить від того, які аномалії ми усунули, а також від того, яким аномаліям підтверджені отримані форми.
Друга нормальна форма.
Відношення знаходиться в другій нормальній формі, якщо воно знаходиться в першій нормальній формі та всі його не ключові атрибути залежать від всього ключа. [3 c. 50]
У відповідності з цим визначенням, якщо відношення має в якості ключа одиночний атрибут, то воно автоматично знаходиться в другій формі. Оскільки ключ є одиночним атрибутом, то при замовчуванні кожний не ключовий атрибут залежить від всього ключа, та часткових залежностей бути не може. Таким чином, друга нормальна форма містить інтерес тільки для тих відношень, які мають композитні ключі. [5]
Щоб зрозуміти, що таке друга нормальна форма, розглянемо попереднє відношення Поставщик – Производитель. Проблема з цим відношенням в тому, що воно містить залежність, яка стосується тільки частини ключа. Ключем комбінації (НазваниеПоставщика, НазваниеПроизводителя), проте містить залежність НазваниеПоставщика – КодПоставщика. В цій залежності НазваниеПоставщика являє собою лише частину ключа. Тому можна сказати, що атрибут Код поставщика частково залежить від ключа таблиці. Аномалії модифікації не було б, якщо б КодПоставщика залежив від всього ключа.
Відношення Поставщик – Производитель може бути розбито на два відношення в другій нормальній формі, а саме НазваниеПроизводителя – НазваниеПоставщика та НазваниеПоставщика – КодПоставщика. Нові відношення знаходяться в другій нормальній формі, оскільки обидва мають в якості ключів одиничні атрибути.
Третя нормальна форма.
Відношення знаходиться в третій нормальній формі, якщо воно знаходиться в другій нормальній формі та не має транзитивних залежностей.
Транзитивні залежності породжують надлишкове дублювання інформації у відношеннях. [5]
Ключем тут є ЛекарственныйПрепарат, та існують функціональні залежності ЛекарственныйПрепарат – ЛекарственнаяФорма та ЛекарственнаяФорма – КодЛекарственнойФормы. Оскільки ЛекарственныйПрепарат визначає атрибут ЛекарственнаяФорма, а ЛекарственнаяФорма визначає атрибут КодЛекарственнойФормы, тоді непрямим образом ЛекарственныйПрепарат – КодЛекарственнойФормы. Така структура функціональних залежностей називається транзитивною залежністю, оскільки атрибут ЛекарственныйПрепарат визначає атрибут КодЛекарственнойФормы через атрибут ЛекарственнаяФорма.
Для того, щоб видалити аномалії з відношення в другій нормальній формі необхідно позбутися транзитивної залежності.
Відношення ЛекарственныйПрепарат можна розділити на два відношення в третій нормальній формі: ЛекарственныйПрепарат – ЛекарственнаяФорма та ЛекарственнаяФорма – КодЛекарственнойФормы.
На практиці побудова третьої нормальної форми схем відношень в більшості випадків являється достатнім та приведенням до них процесу проектування реляційної бази даних закінчується.
Нормальна форма Бойса – Кодда (НФБК).
Оригінальне визначення Коддом для 3НФ не зовсім підходить для відношення з умовами:
· Відношення має два (або більше) потенційних ключа
· Два потенційних ключа є складними
· Вони перетинаються (тобто, мають по крайній мірі, один спільний атрибут). [6]
Тому оригінальне визначення 3НФ було замінено більш строгим визначенням Бойса – Кодда, для якого було прийнято окреме визначення – нормальна форма Бойса – Кодда. Комбінації умов 1, 2 та 3 не часто зустрічаються на практиці, та для відношень без цих умов 3НФ та НФБК еквівалентні. [3]
Відношення знаходиться в НФБК, якщо кожен детермінант є ключем – кандидатом.
Відношення в НФБК не мають аномалій, які відносяться до функціональних залежностей, проте аномалії можуть бути обумовлені і іншими причинами, крім функціональних залежностей. [5]
Логічне проектування полягає в визначенні кількості та структури таблиць, форматуванні запитів до бази даних, створення форм для введення та редагування даних в базі та розв’язку інших задач.
Процес проектування бази даних включає етапи:
· Виділення сутностей і зв'язків між ними;
· Побудова ER – діаграми;
· Формування набору попередніх відношень з вкладанням первинного ключа для кожного відношення та використанні діаграми ER – типа;
· Додавання не ключових атрибутів у відношення;
· Приведення відношень до нормальної форми Бойса – Кодда;
Перегляд ER – діаграм у випадках:
· деякі відношення не приводяться до нормальної форми Бойса – Кодда;
· деяким атрибути не знаходяться логічного обґрунтованих місць у відношеннях.
Метод «сутність – зв'язок» називають також методом ER – діаграм: по-перше, ER – абревіатура від слів Essence (сутність) та Relation (зв'язок), по-друге, метод основане на використанні діаграм, які називаються відповідно діаграмами ER – екземплярів та діаграмами ER – типа. [6]
Перед тим, як створювати фізичний проект БД необхідно створити первісний проект. Він вже буде містити всі необхідні сутності та зв’язки.
В первісному проекті бази даних будуть такі сутності:
· ПроизводительПоставщик – виробник лікарських препаратів;
· АнкетаПроизводителя – дані про виробника;
· АнкетаПоставщика – дані про постачальника лікарських препаратів;
· ГруппаЛекарственныхПрепаратов – поділ лікарських препаратів відповідно до їх груп;
· ЛекарственныеПрепараты – лікарські препарати та їх властивості;
Розглянемо дані сутності та зв'язок між ними та зобразимо їх на ER – діаграм, яка зображена на додатку «Додаток А».
ПроизводительПоставщик (Счетчик, КодМенеджера) – де Счетчик – номер п/п, КодМенеджера – код менеджера виробника лікарських препаратів.
АнкетаПроизводителя (КодМенеджера, НазваниеПроизводителя, ФИОМенеджера, Город, Адрес, Телефон) – де КодМенеджера – код менеджера виробника лікарських препаратів, НазваниеПроизводителя – назва виробника лікарських препаратів, ФИОМенеджера – прізвище, ім’я та по батькові менеджера виробника, Город – місто розташування виробника, Адрес – адреса виробника, Телефон – телефон виробника.