Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Poyasnitelnaya_zapiska_-_Platnaya_poliklinika.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
523.26 Кб
Скачать

Создание индексов

  1. Создание первичного ключа для таблицы VRACHI. Первичный ключ создаем командой ALTER TABLE, эта команда дает возможность изменить структуру существующей таблицы. CONSTRAINT служит для работы с ограничениями ссылочной целостности, накладываемых на таблицу.

ALTER TABLE VRACHI ADD CONSTRAINT PK_VRACHI PRIMARY KEY (ID_VRACHA);

  1. Создание первичного ключа для таблицы PACIENTI.

ALTER TABLE PACIENTI ADD CONSTRAINT PK_PACIENTI PRIMARY KEY (ID_PACIENTA);

  1. Создание первичного ключа для таблицы SKIDKI.

ALTER TABLE SKIDKI ADD CONSTRAINT PK_SKIDKI PRIMARY KEY (KATEGORIYA_SKIDKI);

  1. Создание первичного ключа для таблицы STOIMOST.

ALTER TABLE STOIMOST ADD CONSTRAINT PK_STOIMOST PRIMARY KEY (VID_NAZNACHENIYA);

  1. Создание первичного ключа для таблицы OBRASHENIYA.

ALTER TABLE OBRASHENIYA ADD CONSTRAINT PK_OBRASHENIYA PRIMARY KEY (N);

  1. Создание внешнего ключа для таблицы 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;

  1. Создание внешних ключей для таблицы 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;

Триггеры

Триггер – это процедура, автоматически вызываемая СУБД при изменении базы данных. Используется для реализации бизнес-правил (каскадных изменений), для формирования очередного значения первичного ключа, накопления статистики, резервного копирования данных.

  1. Создадим триггеры для генерации ID.

    1. 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

    1. 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

    1. 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

  1. Триггер для каскадного удаления записи о пациенте из таблицы 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

  1. Триггер на добавление 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]