Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова робота СКБД, Олехнович К-91.docx
Скачиваний:
9
Добавлен:
15.08.2019
Размер:
158.01 Кб
Скачать

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 з використанням бази даних, визначеної у попередньому підрозділі.