
- •Оглавление
- •Постановка задачи. Описание проекта
- •Документы предметной области
- •Описание серверной части
- •Диаграмма базы данных, полученная средствами ibExpert:
- •Полный документированный скрипт на создание базы данных Создание таблиц
- •Создание индексов
- •Триггеры
- •Генераторы
- •Хранимые процедуры
- •Описание клиентской части
- •Руководство пользователя.
- •Руководство разработчика.
- •Заключение
- •Список используемого программного обеспечения
- •Список используемой литературы
- •Полный код программы
Создание индексов
Создание первичного ключа для таблицы VRACHI. Первичный ключ создаем командой ALTER TABLE, эта команда дает возможность изменить структуру существующей таблицы. CONSTRAINT служит для работы с ограничениями ссылочной целостности, накладываемых на таблицу.
ALTER TABLE VRACHI ADD CONSTRAINT PK_VRACHI PRIMARY KEY (ID_VRACHA);
Создание первичного ключа для таблицы PACIENTI.
ALTER TABLE PACIENTI ADD CONSTRAINT PK_PACIENTI PRIMARY KEY (ID_PACIENTA);
Создание первичного ключа для таблицы SKIDKI.
ALTER TABLE SKIDKI ADD CONSTRAINT PK_SKIDKI PRIMARY KEY (KATEGORIYA_SKIDKI);
Создание первичного ключа для таблицы STOIMOST.
ALTER TABLE STOIMOST ADD CONSTRAINT PK_STOIMOST PRIMARY KEY (VID_NAZNACHENIYA);
Создание первичного ключа для таблицы OBRASHENIYA.
ALTER TABLE OBRASHENIYA ADD CONSTRAINT PK_OBRASHENIYA PRIMARY KEY (N);
Создание внешнего ключа для таблицы PACIENTI. Внешний ключ строится по столбцу (KATEGORIYA_SKIDKI) в дочерней таблице (в таблице PACIENTI) , значения которого ссылается на значения записи в родительской таблице (в таблице SKIDKI). Указание ON DELETE CASCADE приведет к автоматическому удалению подчиненных записей.
ALTER TABLE PACIENTI ADD CONSTRAINT FK_PACIENTI_1 FOREIGN KEY (KATEGORIYA_SKIDKI) REFERENCES SKIDKI (KATEGORIYA_SKIDKI) ON DELETE CASCADE;
Создание внешних ключей для таблицы OBRASHENIYA.
ALTER TABLE OBRASHENIYA ADD CONSTRAINT FK_OBRASHENIYA_1 FOREIGN KEY (ID_PACIENTA) REFERENCES PACIENTI (ID_PACIENTA) ON DELETE CASCADE;
ALTER TABLE OBRASHENIYA ADD CONSTRAINT FK_OBRASHENIYA_2 FOREIGN KEY (ID_VRACHA) REFERENCES VRACHI (ID_VRACHA) ON DELETE CASCADE;
ALTER TABLE OBRASHENIYA ADD CONSTRAINT FK_OBRASHENIYA_3 FOREIGN KEY (VID_NAZNACHENIYA) REFERENCES STOIMOST (VID_NAZNACHENIYA) ON DELETE CASCADE;
Триггеры
Триггер – это процедура, автоматически вызываемая СУБД при изменении базы данных. Используется для реализации бизнес-правил (каскадных изменений), для формирования очередного значения первичного ключа, накопления статистики, резервного копирования данных.
Создадим триггеры для генерации ID.
CREATE OR ALTER TRIGGER VRACHI_BI FOR VRACHI
ACTIVE BEFORE INSERT POSITION 0
as
begin
if (new.id_vracha is null) then
new.id_vracha = gen_id(gen_vrachi_id,1);
end
CREATE OR ALTER TRIGGER PACIENTI_BI FOR PACIENTI
ACTIVE BEFORE INSERT POSITION 0
as
begin
if (new.id_pacienta is null) then
new.id_pacienta = gen_id(gen_pacienti_id,1);
end
CREATE OR ALTER TRIGGER OBRASHENIYA_BI FOR OBRASHENIYA ACTIVE BEFORE INSERT POSITION 0
as
begin
if (new.n is null) then
new.n = gen_id(gen_obrasheniya_id,1);
end
Триггер для каскадного удаления записи о пациенте из таблицы OBRASHENIYA после удаления его записи из таблицы PACIENTI.
CREATE OR ALTER TRIGGER DELETE_P FOR PACIENTI
ACTIVE BEFORE DELETE POSITION 0
AS
begin
delete from OBRASHENIYA
where old.id_pacienta=OBRASHENIYA.id_pacienta;
end
Триггер на добавление ID_PACIENTA в таблицу OBRASHENIYA с автоматической генерацией кода N, после добавления новой записи в таблицу PACIENTI.
CREATE OR ALTER TRIGGER INSERT_OB FOR PACIENTI
ACTIVE AFTER INSERT POSITION 0
AS
begin
insert into OBRASHENIYA (N,ID_PACIENTA)
values (gen_id(gen_obrasheniya_id,1),new.ID_PACIENTA);
end