Автор работы: Пользователь скрыл имя, 22 Мая 2013 в 21:28, курсовая работа
Метою роботи є створення програми, яка прискорить роботу швидкої допомоги. Для досягнення поставленої мети необхідно виконати такі завдання:
1) вивчення предметної області для формування технічного завдання;
2) розробка концептуальної та фізичної моделі бази даних;
3) розробка програмного інтерфейсу, для зручного використання бази даних;
4) написання програми управління бази даних.
ВСТУП 3
ПОСТАНОВКА ЗАДАЧІ 5
1 ПРЕДМЕТНА ОБЛАСТЬ 7
1.1 Задачі швидкої медичної допомоги 7
1.2 Структура швидкої медичної допомоги 9
2 ІНФОЛОГІЧНЕ ПРОЕКТУВАННЯ 12
2.1 Сутності 12
2.2 Зв’язки 15
3 МОДЕЛІ БАЗИ ДАНИХ 19
3.1 Логічна модель бази даних 19
3.2 Фізична модель бази даних 21
3.3 Правила цілісності даних 24
3.3.1 Цілісність сутностей 24
3.3.2 Цілісність посилань 25
3.3.3 Тригери 25
3.3.4 Цілісність доменів 26
3.4 Інформаційні потоки 26
ВИСНОВКИ 28
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 29
Під поняттям «сутність» ми розуміємо абстракцію деякого реально об’єкту.
Розглянемо специфікацію основних сутностей: виклик (табл. 1), пацієнти (табл. 2), машини (табл. 3) та робітники (табл. 4).
Таблиця 1
Специфікація атрибутів сутності «Виклик»
Назва |
Опис |
Код виклику |
Визначає номер виклику. Ключове поле. Значення повинно бути унікальним. |
Час виклику |
Час надходження виклику |
Час прибуття |
Час прибуття бригади до пацієнта. |
Номер бригади |
Номер бригади яка робила на даному виклику. Вторинний ключ. |
Машина |
Машина яка робила на даному виклику. Вторинний ключ. |
Тип машини |
Визначається тип машини, який необхідне для виклику. Вторинний ключ. |
Попередній діагноз |
Діагноз який припускає
пацієнт при виклику або |
Точний діагноз |
Точний діагноз хворого з урахування усіх додаткових обстежень. Вторинний ключ. |
Таблиця 2
Специфікація атрибутів сутності «Пацієнти»
Назва |
Опис |
Код пацієнта |
Визначає номер пацієнта. Ключове поле. Значення повинно бути унікальним. |
Ім’я пацієнта |
Ім’я поточного пацієнта. |
Вік |
Вік пацієнта. |
Адреса |
Адреса за якої знаходиться пацієнт |
Таблиця 3
Специфікація атрибутів сутності «Машини»
Назва |
Опис |
Номер машини |
Номер машини. Складається з двох великих латинських літер, чотирьох чисел та двох великих латинських літер. Ключове поле. Значення повинно бути унікальним. |
Водій |
Код водія, якого закріплено за даною машиною. Вторинний ключ. |
Тип машини |
Зазначається тип машини: загальна, токсикологічна або кардіологічна. |
Таблиця 4
Специфікація атрибутів сутності «Робітники»
Назва |
Опис |
Код робітника |
Визначає номер робітника. Ключове поле. Значення повинно бути унікальним. |
Ім’я робітника |
Ім’я поточного робітника. |
2.2 Зв’язки
Розглянемо зв’язки між сутностями.
Для формування виклику необхідно знати данні про пацієнта. Також у виклику може бути тільки один пацієнт, але цей пацієнт може декілька разів викликати швидку, тому зв’язок між ними один-до-багатьох (рис. 1).
Рис. 1 Зв’язок між сутностями виклик та пацієнт
Після внесення даних про пацієнта необхідно визначити яка бригада поїде за викликом. Одна бригада може виїхати на багато викликів, тому зв’язок один-до-багатьох (рис. 2).
Рис. 2 Зв’язок між сутностями виклик та бригада
Бригада в свою чергу складається з доктора, медсестри та санітара, які в свою чергу є підкласом класу робітники. До класу робітники також входить підклас водії. Також необхідно знати данні на якій машині бригада може їздить, оскільки бригада може їздить на машинах різного типа, та на машині одного типу може їздить багато бригад, тому робимо зв’язок багато-до-багатьох (рис. 3).
Рис. 3 Зв’язок між підкласами класу робітники та сутністю бригада
Також в виклику повинна міститись інформація про попередній та точний діагноз пацієнта. Один діагноз може бути поставлено багатьом пацієнтам, та одному пацієнту можна поставити тільки один попередній діагноз та один точний діагноз, тому робимо зв’язок один до багатьох (рис. 4).
Рис. 4 Зв’язок між сутностями виклик та діагнози
Сутність виклик зв’язана з сутністю тип машини та машина, які між собою зв’язані зв’язком один-до-багатьох. Оскільки одна машина може робити в багатьох викликах, так само як і тип машини, тому використовуємо зв’язок багато-до-одного (рис. 5).
Рис. 5 Зв’язок між сутностями виклик, машина та тип машини
У кожної машини є водій, тому необхідно зв’язати сутність машини та підклас водії (рис. 6).
Рис. 6 Зв’язок між сутністю машина та підкласом водії
Після проведеної роботи була побудована концептуальна модель, вона представлена на рис. 7.
Рис. 7 Концептуальна модель бази даних
3 МОДЕЛІ БАЗИ ДАНИХ
3.1 Логічна модель бази даних
Відобразимо отриману інфологічну модель на реляційну модель.
Розглянемо зв’язок між сутностями «Виклик». Про виклик ми повинні знати : час виклику та час прибуття карети швидкої до пацієнта. Також це сильна сутність тому в ній є первинний ключ. Сутність «Виклики» представлена в табл. 5
Таблиця 5
Таблиця «Виклики»
Код виклику |
LongInteger |
Час виклику |
DataTime |
Час прибуття |
DataTime |
Попередній діагноз |
Varchar |
Точний діагноз |
Varchar |
Розглянемо сутність «Пацієнти». Про пацієнта ми повинні зберіацігати данні про його ім’я, вік та адресу. Також додамо первинний ключ (табл. 6).
Розглянемо сутності машини та типи машин. Машина може бути 3 типів: загальні, кардіологічні та токсикологічні, для цього в таблиці типів машини ми створюємо поле типи (табл. 7). Сутність машини повинна містити дані о номері машини, водії та о її типі (табл. 8).
Таблиця 6
Таблиця «Пацієнти»
Код пацієнта |
LongInteger |
Ім’я пацієнта |
Varchar |
Вік |
Integer |
Адреса |
Varchar |
Таблиця 7
Таблиця «Типи машини»
Код типу |
Integer |
Тип |
Varchar |
Таблиця 8
Таблиця «Машини»
Номер машини |
Varchar |
Водій |
Integer |
Тип машини |
Varchar |
Розглянемо клас робітники, в ньому є два поля код робітника та ім’я робітника (табл. 9). Також клас має чотири підкласу: доктора, медсестри, санітари та водії. Доктора, санітари та медсестри входять складаються в бригади (табл. 10).
Таблиця 9
Клас «Робітники»
Код робітника |
LongInteger |
Ім’я робітника |
Varchar |
Таблиця 10
Клас «Робітники»
Код бригади |
LongInteger |
У сутності хвороби є два поля первинний ключ та назва хвороби (табл. 11).
Таблиця 11
Таблиця «Хвороби»
Код хвороби |
LongInteger |
Ім’я робітника |
Varchar |
Оскільки між сутностями «Тип машини» та «Бригади» зв’язок багато до багатьох, тому додаємо таблицю «Тип-Бригада» яка буде зв’язком між даними таблицями.
Провівши попередню роботу було створено логічну модель за допомогою програми PowerDisigner. Отримана модель наведена на рис. 8.
Рис. 8 Логічна модель бази даних
3.2 Фізична модель бази даних
Після розробки логічної моделі необхідно створити фізичну модель шляхом представлення ключів зв’язаних сутностей в одне відношення.
Розглянемо таблиці «Бригада», «Тип машини» та «Тип-Машина». Оскільки між таблицями «Бригада» та «Тип машини» зв’язок один-до-одного, тому в таблицю «Тип-машина» додаємо два вторинних ключа з кожної таблиці (табл. 12).
Таблиця 12
Таблиця «Тип-Машина»
Код бригади |
LongInteger |
Код типу машини |
LongInteger |
Таблиця «Виклики» має зв’язок багато-до-одного з таблицями «Пацієнти», «Бригади», «Машини», «Типи машин», «Діагнози» тому в таблицю «Виклики» додаємо вторинний ключ з цих таблиць (табл. 13). З таблиці діагнози додаємо два вторинні ключі, оскільки нам необхідна інформація про попередній діагноз та точний діагноз.
Таблиця 13
Таблиця «Виклики»
Код виклику |
LongInteger |
Код пацієнта |
LongInteger |
Код бригади |
LongInteger |
Код машини |
LongInteger |
Код типу машини |
LongInteger |
Код попереднього діагноза |
LongInteger |
Код точного діагноза |
LongInteger |
Час виклику |
DataTime |
Час прибуття |
DataTime |
Попередній діагноз |
Varchar |
Точний діагноз |
Varchar |
При перетворенні класу «Робітники» в підкласи «Доктора», «Медсестри», «Санітари» та «Водії» додається вторинний ключ «Код робітника». Підклас «Доктора» представлено в табл. 14.
Таблиця 14
Підклас «Доктора»
Код робітника |
LongInteger |
Таблиця «Бригада» має зв’язки багато-до-одного з підкласами «Доктора», «Медсестри», «Санітари», тому додаємо в цю таблицю зовнішні ключі з цих підкласів (табл. 15).
Таблиця 15
Таблиця «Бригади»
Код бригади |
LongInteger |
Код доктора |
LongInteger |
Код медсестри |
LongInteger |
Код санітара |
LongInteger |
В таблицю «Машини» додаємо вторинний ключ з таблиці «Тип машини», оскільки між ними зв’язок багато-до-одного (табл. 16).
Таблиця 15
Таблиця «Машини»
Номер машини |
Varchar |
Код типу машини |
LongInteger |
Провівши попередню роботу було створено логічну модель за допомогою програми PowerDisigner. Отримана модель наведена на рис. 9.
Рис. 8 Логічна модель бази даних
3.3 Правила цілісності даних
Цілісність даних життєво важлива для будь-якої бази. Якщо значення даних сумнівні, то яку видобувають з бази інформація буде або повністю марна, або значно знецінена.
3.3.1 Цілісність сутностей
Цілісність сутностей припускає, що для кожного рядка таблиці є унікальний ідентифікатор, який у разі необхідності дозволить знайти цей рядок. Концепція цілісності сутностей є основоположною для проектування і створення баз даних. Первинний ключ таблиці – це один або декілька стовпців, які однозначно визначають кожну її рядок. Значення первинного ключа унікальні – не може бути двох співпадаючих значень.
Цілісність
сутностей реалізується через первинні
ключі. Правила забезпечення цілісності
сутностей забороняють