Материал: Проектирование базы данных ортопедического отделения больницы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

‘Метронидазол’);into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’4’,

‘Дравмадол’);into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’5’,

‘Найс’);into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’6’,

‘Анальгин’);into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’7’,

‘Парацетамол’);into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’8’,

‘Цефазолин’);into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’9’,

‘Цефтриаксон’);into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’10’,

‘Аспирин’);table Grafik

(ID Number Not Null Primary key,

№brigadi Number,Date),FK_Graf Foreign Key (№brigadi) references Brigada (№brigadi);table Brigada

(ID_brigadi Number Not Null Primary key,

№brigadi Number);into Brigada (ID_brigadi, №brigadi) VALUES (’1’,

’1’);into Brigada (ID_brigadi, №brigadi) VALUES (’2’,

’2’);into Brigada (ID_brigadi, №brigadi) VALUES (’3’,

’3’);into Brigada (ID_brigadi, №brigadi) VALUES (’4’,

’4’);table Brigadi_rabotnikov

(ID_brigadi Number,_rabotnika Number),FK_Br Foreign Key (ID_brigadi) references Brigada (ID_brigadi),FK_Br2 Foreign Key (ID_rabotnika) references Medpersonal (ID_rabotnika);table Medpersonal

(ID_rabotnika Number Not Null Primary key,Varchar2(400),Varchar2(400),Date),FK_Med Foreign Key (Doljnost) references Doljnost (Doljnost);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’1’,’-’, ’Иванов Иван Иванович’, ’Январь’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’2’,’-’, ‘Мазур Леонид Исаакович’, ‘Февраль’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’3’,’-’, ‘ Петров Петр Антонович ’, ‘Февраль’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’4’,’-’, ‘ Сергеева Анна Ивановна ’, ‘ Май ’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’5’,’-’, ‘ Шиванчук Евгения Васильевна ’, ‘ Март ’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’6’,’-’, ‘ Борисова Майя Петровна ’, ‘ Октябрь ’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’7’,’-’, ‘ Страховая Инна Матвеевна ’, ‘ Декабрь ’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’8’,’-’, ‘ Деулин Максим Алексеевич ’, ‘ Июнь ’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’9’,’-’, ‘ Иванова Марья Петровна ’, ‘ Август ’);into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’10’,’-’, ‘ Стаканова Елена Алексеевна ’, ‘ Май ’);

2.3    Триггер

база данные оracle

Ниже описано создание триггера, который выполняет определенную проверку: в один рабочий день может работать только одна бригада в ортопедическом отделении. График работы бригад находится в таблице «Grafik». Операции может проводить в конкретный день, только та бригада, которая работает по графику в этот день. Если в операционном списке записана дата операции и номер бригады, которая не работает в этот день, то «всплывает» ошибка.

Скрипт триггера:

Сreate or replace trigger "AVB_OPERATING_LIST_T1"or update or delete on "AVB_OPERATING_LIST"each rowTRIGGER AVBinsert on AVB_OPERATING_LISTNUMBER;NUMBER;NUMBER;NUMBER;MIN(id) into MIN from AVB_OPERATING_LIST;MAX(id) into MAX from AVB_OPERATING_LIST;count(*) into X from AVB_GRAFIK where AVB_OPERATING_LIST. DATE_OPERATING=AVB_GRAFIK.DATE and AVB_OPERATING_LIST.№BRIGADI=AVB_GRAFIK.№Brigadi and AVB_OPERATING_LIST.ID_OPERATING=i;i in MIN..MAX loop(X=0 then NULLX=1 then DELETE FROM AVB_OPERATING_LIST where AVB_OPERATING_LIST.id=i;if;if;loop;

COMMIT;.

2.4    Процедура


Ниже описано создание процедуры, которая проверяет и заносит в переменную количество операций, запланированных на сегодняшний день (дата сегодняшнего дня берется из SYSDATE(системного времени)).

END;

Комментарий: при создании процедуры была использована вспомогательная таблица AVB_vspomog, которая не описана в системе и не отображена на рисунке 1.

Заключение

Благодаря изученному материалу была создана БД, которая имеет дополнительный триггер и процедуру для выполнения условия задачи. Был изучен программный продукт Oracle Application Express и был закреплен материал по изученному ранее языку MySql.

Список литературы

1.      «Первые шаги - PL/SQL в Oracle» [<http://www.firststeps.ru/sql/oracle/>]

2.      «Oracle Application Express»[ <http://apex.oracle.com/i/index.html>]

3.      «Форум программистов» [<http://www.sql.ru>]

.        Санжей Мишра «Секреты Oracle SQL». Издательство «Символ-плюс» 2010г.

.        Коннор МакДональд «Oracle PL/SQL». Издательство «ДиаСофтЮП» 2009г.

.        Скотт Урман «Программирование на языке PL/SQL. Руководство для программистов». Издательство «Лори» 2009г.