Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оригинал диплом(готов).docx
Скачиваний:
47
Добавлен:
10.02.2016
Размер:
2.5 Mб
Скачать

4.3 Проектування

4.3.1 Визначення сутностей

Виходячи з поставленого завдання, описаної вище, виділимо наступні сутності:

  • LIKARI – таблиця, що містить інформацію про фамілію та ініціали

лікарів, а також їх посаду у медичному закладі;

  • PACIENTI – таблиця, що містить інформацію про фамілію та ініціали

пацієнтів, хворобу, дату початку та кінця захворювання, та ліки і процедури які він приймає;

  • LEKARSTVA – таблиця, що містить інформацію про ліки.

  • PROCEDURI – таблиця, що містить інформацію про наявні процедури;

  • POSESHENIE – таблиця, що містить інформацію про відвідувачів

пацієнтів.

4.3.2 Визначченя взаємозв’язку між сутностями

Для визначення взаємозв’язку між сутностями було зображена схема (рис. 4.1).

LIKARI

id_Likar

FIO_Likar9

Doljnost

PACIENTI

id_Pacienta

FIO_Pacienta

Zabolevanie

id_Likar

Na4alo_zabolevani9

Konec_zabolevani9

id_Lekarstva

id_Proceduri

PROCEDURI

id_Proceduri

Nazvanie_Proceduri

LEKARSTVA

id_Lekarstva

Nazvanie_Lekarstva

POSESHENI9

id_Posetitel9

FIO_Posetitel9

id_Pacienta

Рисунок 4.1 – Схема зв’язку між сутностями

4.3.3 Завдання первинних ключів, визначення атрибутів сутностей

Первинний ключ - це атрибут (або група атрибутів), які єдиним чином ідентифікують кожну рядок у таблиці. Для кожної суті визначимо атрибути, які будемо зберігати в БД.

Таблиця 4.1 – Атрибути та первинні ключі сутностей інформаційної моделі

Сутність

Первинний ключ

Атрибути

LIKARI

id_Likar

id_Likar – порядковий номер лікаря

FIO_Likar9 – фамілія та ініціали лікаря

Doljnost – Посада, яку займає лікар

PACIENTI

id_Pacienta

id_Pacienta – порядковий номер пацієнта

FIO _Pacienta– фамілія та ініціали пацієнта

Zabolevanie – назва хвороби у пацієнта

id_Likar – код лікуючого лікаря

Na4alo_zabolevani9 – дата початку хвороби

Konec_zabolevani9 – дата кінця хвороби

id_Lekarstva – код призначених ліків

id_Proceduri – код призначених процедур

LEKARSTVA

id_Lekarstva

id_ Lekarstva – порядковий номер лікування

Nazvanie_Lekarstva ­– назва ліків

PROCEDURI

id_Proceduri

id_Proceduri – порядковий номер процедури

Nazvanie_Proceduri – назва процедури

POSESHENI9

id_Posetitel9

id_Posetitel9 – порядковий номер відвідувача

FIO_Posetitel9 – фамілія та ініціали відвідувача

id_Pacienta – код пацієнта

4.4 Створення бази даних

Після того, як на персональний комп'ютер було встановлено усе необхідне програмне забезпечення для створення бази даних (див. пункт 4.2), заходимо до будь-якого браузеру та у командний рядок записуємо наступну команду: “http://localhost/phpMyAdmin/index.php”.

Перед нами постає командне меню програми phpMyAdmin, яке має наступний вигляд (рис. 4.2):

Рисунок 4.2 – Командне меню програми phpMyAdmin

Для того, щоб створити базу даних, таблиці та наповнити іх необхідною інформацією можна використовувати один із двох методів:

  • за допомогою директиви SQL, використовуючи SQL запити;

  • графічно.

В дипломній роботі були використані обидва методи.

Для початку буде описан метод з використанням SQL запитів.

У командному меню програми phpMyAdmin натискаємо на вкладку “SQL”. У робочу область, для створення бази даних вписуємо наступний запит:

CREATE DATABASE <ім’я бази даних>;

У нашому випадку, для створення бази даних з назвою телемедецина SQL запит буде виглядати наступним чином:

CREATE DATABASE telemedicina;

Далі у базі даних telemedicine треба створити необхідні таблиці.

Щоб створити таблицю використовуємо наступний SQL запит:

CREATE TABLE <ім'я таблиці>(<ім'я стовпця> <тип даних> [(<розмір>)]);

В дипломній роботі було створено 5 таблиць, та використані наступні SQL запити:

1. Для таблиці лікарів:

CREATE TABLE `LIKARI`

(`id_Likar` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`FIO_Likar9` VARCHAR(255),

`Doljnost `VARCHAR(255));

2. Для таблиці пацієнтів:

CREATE TABLE `PACIENTI`

(`id_Pacienta` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`FIO_Pacienta` VARCHAR(255),

`Zabolevanie` VARCHAR(255),

`id_Likar` int(11),

`Na4alo_zabolevani9` DATE,

`Konec_zabolevani9` DATE,

`id_Lekarstva` int(11),

`id_Proceduri` int(11));

3. Для таблиці ліків:

CREATE TABLE `LEKARSTVA`

(`id_Lekarstva` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`Nazvanie_Lekarstva` VARCHAR(255));

4. Для таблиці процедур:

CREATE TABLE `PROCEDURI`

(`id_Proceduri` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`Nazvanie_Proceduri` VARCHAR(255));

5. Для таблиці відвідувачів:

CREATE TABLE `POSESHENI9`

(`id_Posetitel9` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`FIO_Posetitel9` VARCHAR(255),

`data_poslednego_vizita ` DATETIME,

`id_Pacienta` int(11));

Щоб графічно створити таблицю треба зліва вибрати зі списка баз даних базу з назвою “telemedicina”. Після цього треба буде вибрати назву нашої табилці, а також задати необхідне число стовпців.

Наприклад, для того щоб створити таблицю “PACIENTI”, треба ввести число 8. В наступному вікні треба буде ввести:

  • назву стовпця (“поле”);

  • тип даних стовпця;

  • довжину даних;

  • кодування типу даних (“сравнение”), тільки там де використовуються

строкові типи даних;

  • поставити галочку на NULL напротив того стовпця, який може буди

незаповненим;

  • виставити необхідні індекси;

  • поставити галочку на AI(аутоінкремент – при додаванні нового запису

в таблицю поле автоматично буде збільшуватися на +1);

  • вибрати тип таблиці.

На рис. 4.3(а,б) наглядно продемонстровано створення таблиці пацієнтів.

Рисунок 4.3(а) – Створення таблиць графічним способом

Рисунок 4.3(б) – Створення таблиць графічним способом

Після того, як заповнимо усі дані про стовпці та оберемо тип таблиці натискаємо вкладку “сохранить ” .

Готова таблиця буде виглядати наступним чином(рис 4.4):

Рисунок 4.4 – Готова таблиця пацієнтів

Після завершення складання таблиць, заповнимо їх необхідною інформацією. Щоб зробити це за допомогою SQL запитів, треба натиснути на вкладку SQL , вибравши до цього необхідну таблицю, у лівій частині робочої області програми phpMyAdmin . Оператор вставки нових записів має формати двох видів:

INSERT INTO <ім'я таблиці>

[(<список стовпців>)]

VALUES (<список значень>);

або

INSERT INTO <ім'я таблиці>

[(<список стовпців>)]

<пропозицію SELECT>;

У першому форматі оператор INSERT призначений для введення нових записів із заданими значеннями у стовпцях. Порядок перерахування імен стовпців повинен відповідати порядку значень, перерахованих в списку операнда VALUES. Якщо <список стовпців> опущений, то в <списку значень> повинні бути перераховані всі значення в порядку стовпців структури таблиці.У другому форматі оператор INSERT призначений для введення в задану таблицю нових рядків, відібраних з іншої таблиці за допомогою пропозиції SELECT.

Заповнення таблиці лікарів виглядає наступним чином:

INSERT INTO LIKARI VALUES

(1,'Петров О.В','Хирург'),

(2,'Степанов И.А','Терапевт'),

(3,'Михальцова А.Н.','Невропатолог'),

(4,'Юдин Р.В','Травматолог'),

(5,'Чкалов Б.К.','Нейрохирург'),

(6,'Карпов Ч.Р.','Кардиолог'),

(7,'Старинский К.Д.','Онколог'),

(8,'Верба Ж.И.','Гинеколог'),

(9,'Шульга Д.А.','Педиатр'),

(10,'Бобров К.Н.','Ревматолог'),

(11,'Семак Б.Е.','Фтизиатр'),

(12,'Камаров И.Р.','Эндокринолог'),

(13,'Жолудь А.Б.','Токсиколог'),

(14,'Рыбак Е.Т.','Логопед'),

(15,'Мартынов К.С.','Стоматолог'),

(16,'Иванов К.О.','Психиатр'),

(17,'Соболь И.Д.','Нарколог'),

(18,'Лукъянова И.Н.','Аллеролог'),

(19,'Шишкина А.А.','Эпидемиолог'),

(20,'Федоров Н.Б.','Генетик');

Для того, щоб заповнити таблицю лікарів за допомогою графічного методу треба обрати таблицю “LIKARI”, та зверху натиснути на вкладку “Вставить”. У наступному вікні треба буде заповнити наступні рядки:

  • id_Likar( заповнювати не треба, так як ми при створенні таблиці в цьому полі поставили аутоінкремент(AI);

  • FIO;

  • Doljnost;

Заповнення 3 рядків таблиці лікарів показано на рис. 4.5.

Рисунок 4.5 – Запис інформації до таблиці

Після заповненні таблиці лікарів, можна переглянути всю інформацію. Для цього треба вибрати таблицю лікарів, та натиснути на вкладку “Обзор”.

Заповнена таблиця виглядає наступним чином(рис. 4.6):

Рисунок 4.6 – Заповнена таблиця лікарів

Інші таблиці створюються аналогічно.

Створивши та наповнивши усі таблиці, покажемо як за допомогою SQL запитів робити необхідні вибірки.

Отже, в нашій БД telemedicina є п’ять таблиць: LIKARI (лікарі), PACIENTI (пацієнти), LEKARSTVA (лікування), PROCEDURI (процедури), POSETITELI (відвідувачі). І ми хочемо подивитися, які дані в них містяться. Для цього в SQL існує оператор SELECT. Синтаксис його використання наступний:

SELECT <що обрати>

FROM <звідки вибрати>;

Для того, щоб з таблиці лікарів вивести тільки їх фамілію та посаду треба написати наступний SQL запит:

SELECT FIO_Likar9, Doljnost

FROM LIKARI ;

Отримані результати показано на рис. 4.7.

Рисунок 4.7 – Вибірка даних з однієї таблиці

Для того, щоб отримати дані з декількох таблиць треба використати об'єднання з умовою. Синтаксис об'єднання з умовою виглядає так:

SELECT ім’я_таблиці_1. ім’я _стовпця1_таблиці_1,

ім’я_таблиці_1. ім’я _стовпця2_таблиці_1,

ім’я_таблиці_2. ім’я _стовпця1_таблиці_2,

ім’я_таблиці_2. ім’я _стовпця2_таблиці_2

FROM

ім’я_таблиці_1, ім’я_таблиці_2

WHERE

ім’я_таблиці_1. ім’я _стовпця_по_якому_об’єднуємо=

ім’я_таблиці_2. ім’я _стовпця_по_ якому_об’єднуємо;

Щоб отримати інформацію про ім’я пацієнта, його хворобу та ім’я його лікаря об'єднання з умовою буде виглядати наступним чином:

SELECT PACIENTI.FIO_Pacienta,

PACIENTI.Zabolevanie,

LIKARI.FIO_Likar9

FROM PACIENTI, LIKARI

WHERE PACIENTI.id_Likar=LIKARI.id_Likar

Результати такої вибірки на рис. 4.8.

Рисунок 4.8 – Вибірка даних з декількох таблиць

Для того, щоб вистроїти фамілії пацієнтів по алфавіту, треба у кінці синтаксису долучити таку команду:

ORDER BY ім’я_стовпця_ сортування;

Тобто тепер об'єднання з умовою (з сортуванням) буде таким:

SELECT PACIENTI.FIO_Pacienta,

PACIENTI.Zabolevanie,

LIKARI.FIO_Likar9

FROM PACIENTI, LIKARI

WHERE PACIENTI.id_Likar=LIKARI.id_Likar

ORDER BY FIO_Pacienta

Отримані результати на рис. 4.9.

Рисунок 4.9 – Вибірка даних з декількох таблиць з сортуванням

Інші виборки робляться аналогічно.