- •1. Стратегія автоматизації предметної області
- •1.1. Загальні положення
- •1.2. Мета, цілі та задачі створення бази даних
- •1.3. Вимоги до інформаційного забезпечення
- •2. Аналіз предметної області
- •2.1. Загальні положення системного аналізу по.
- •2.2. Загальні положення роботи лікарні.
- •2.3. Системний аналіз предметної області
- •2.3.1. Сутність Людина
- •2.3.2. Сутність Посада
- •2.3.3. Сутність Працівник
- •2.3.4. Сутність Ліки
- •2.3.5. Сутність Діагноз
- •2.3.6. Сутність Ліки_діагноз
- •2.3.7. Сутність Історія хвороби
- •2.3.8. Сутність Лікування
- •2.4. Інформаційно-довідкові задачі
- •3. Концептуальне моделювання предметної області
- •3.1. Теоретичні положення концептуального моделювання
- •3.2. Мова er—моделювання по
- •3.3. Побудова концептуальної моделі роботи лікарні
- •4. Логічне та фізичне проектування бази даних
- •4.1. Логічне проектування
- •Istorija_boleznej
- •4.2. Фізичне проектування
- •4.2.1. Скрипти створення бази даних
- •4.2.2. Інформаційно– пошукові запити
- •4.2.2.1. Інформаційні запити, що пов’язані з роботою лікарні
- •4.2.2.2. Інформація організаційного характеру
- •4.2.2.3. Інформація, що відноситься до процесу керування лікарнею
4.2.1. Скрипти створення бази даних
Наведемо скрипт мови SQL Oracle, який створює таблиці БД.
-- Створення таблиці DIAGNOZY
CREATE TABLE DIAGNOZY (
ID NUMBER(4) CONSTRAINT "Povtor koda diagnoza" PRIMARY KEY
, NAZVANIE VARCHAR2(50) NOT NULL UNIQUE
, OPISANIE VARCHAR2(1700) NOT NULL);
-- Створення таблиці DOLGNOST
CREATE TABLE DOLGNOST (
ID NUMBER(2) CONSTRAINT "Povtor koda dolzhnosti" PRIMARY KEY
, NAZVANIE VARCHAR2(20) NOT NULL UNIQUE
, ZARPLATA NUMBER(6) NOT NULL CONSTRAINT "Nevernaja z/p" CHECK(ZARPLATA > 0));
-- Створення таблиці LEKARSTVA
CREATE TABLE LEKARSTVA (
ID NUMBER(5) CONSTRAINT "Povtor koda Lekarstva" PRIMARY KEY
, NAZVANIE VARCHAR2(20) NOT NULL UNIQUE
, OPISANIE VARCHAR2(1000) NOT NULL);
-- Створення таблиці CHELOVEK
CREATE TABLE CHELOVEK (
ID NUMBER(8) CONSTRAINT "Povtor koda Cheloveka" PRIMARY KEY
, FAMILIJA VARCHAR2(30) NOT NULL
, IMJA VARCHAR2(30)
, OTCHESTVO VARCHAR2(30)
, PASPORT VARCHAR2(15) NOT NULL UNIQUE);
-- Створення таблиці SOTRUDNIK
CREATE TABLE SOTRUDNIK (
ID NUMBER(4) CONSTRAINT "Povtor koda Sotrudnika" PRIMARY KEY
, CHELOVEK_ID NUMBER(8) REFERENCES CHELOVEK(ID) ON DELETE CASCADE
, DOLGNOST_ID NUMBER(2) REFERENCES DOLGNOST(ID)
, KOGDA_USTROILSJA DATE DEFAULT SYSDATE NOT NULL
, KOGDA_UVOLILSJA DATE
, KONTAKTNYJ_TELEFON VARCHAR2(15)
, CONSTRAINT "Nevernaja data uvol'nenija" CHECK(KOGDA_UVOLILSJA > KOGDA_USTROILSJA));
-- Створення таблиці ISTORIJA_BOLEZNEJ
CREATE TABLE ISTORIJA_BOLEZNEJ (
ID NUMBER(9) CONSTRAINT "Povtor koda istorii boleznej" PRIMARY KEY
, DIAGNOZ_ID NUMBER(4) REFERENCES DIAGNOZY(ID) ON DELETE CASCADE
, BOLNOJ_ID NUMBER(8) REFERENCES CHELOVEK(ID) ON DELETE CASCADE
, DATA_POSTUPLENIJA DATE DEFAULT SYSDATE NOT NULL
, OSMOTREVSHIJ_ID NUMBER(4) REFERENCES SOTRUDNIK("ID") ON DELETE CASCADE
, DATA_SMERTI DATE
, CONSTRAINT "Nevernaja data smerti" CHECK(DATA_SMERTI IS NULL OR DATA_SMERTI > DATA_POSTUPLENIJA));
-- Створення таблиці LECHENIE
CREATE TABLE LECHENIE (
VRACH_ID NUMBER(4) REFERENCES SOTRUDNIK(ID) ON DELETE CASCADE
, LEKARSTVO_ID NUMBER(5) REFERENCES LEKARSTVA(ID) ON DELETE CASCADE
, ISTORIJA_ID NUMBER(9) REFERENCES ISTORIJA_BOLEZNEJ(ID) ON DELETE CASCADE
, KOGDA DATE NOT NULL
, KOLICHESTVO NUMBER NOT NULL CONSTRAINT "Nevernoe kol-vo preparata" CHECK(KOLICHESTVO BETWEEN 1 AND 99)
, CONSTRAINT "Povtor kodov lechenija" PRIMARY KEY(ISTORIJA_ID, KOGDA));
-- Створення таблиці LEKARSTVA_DIAGNOZY
CREATE TABLE LEKARSTVA_DIAGNOZY (
LEKARSTVO_ID NUMBER(5) REFERENCES LEKARSTVA(ID) ON DELETE CASCADE
, DIAGNOZ_ID NUMBER(4) REFERENCES "DIAGNOZY"(ID) ON DELETE CASCADE
, CONSTRAINT "Povtor sootvetstvija l/d" PRIMARY KEY(LEKARSTVO_ID, DIAGNOZ_ID));
4.2.2. Інформаційно– пошукові запити
Наведемо приклади інформаційно пошукових запитів відносно тих задач, які були окреслені в підрозділі «2.4. Інформаційно-довідкові задачі». Приклади наведемо у мові SQL Oracle з використанням бази даних, визначеної у попередньому підрозділі.