Разработка логического и физического уровней модели данных с помощью CASE-средства. Практические навыки логического и физического проектирования реляционных данных с использованием средств программного пакета AllFusion ERwin Data Modeler, страница 4

Чтение  varchar(20)  NULL ,

Досуг  varchar(20)  NULL ,

Спорт  varchar(20)  NULL

)

go

ALTER TABLE Хобби

ADD CONSTRAINT  XPKХобби PRIMARY KEY   NONCLUSTERED (Код_хобби  ASC)

go

CREATE VIEW Увлечение_клиента AS

SELECT Клиенты.ФИО,Хобби.Музыка,Хобби.Чтение,Хобби.Спорт

FROM Клиенты,Хобби

go

CREATE VIEW Описание_сотрудника AS

SELECT Сотрудники.Образование,Должность.Наименование,Сотрудники.ФИО,Послужной_список.Дата_занятия_должности,Послужной_список.Характеристика

FROM Сотрудники,Послужной_список,Должность

go

CREATE VIEW Описание_заказа AS

SELECT Клиенты.Фото,Клиенты.Паспортные_данные,Заказы.Код_заказа,Заказы.Дата,Заказы.Стоимость,Сотрудники.ФИО,Сотрудники.Код_должности

FROM Клиенты,Заказы,Сотрудники

go

ALTER TABLE Заказы

ADD CONSTRAINT  R_8 FOREIGN KEY (Код_сотрудника) REFERENCES Сотрудники(Код_сотрудника)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Клиенты

ADD CONSTRAINT  R_9 FOREIGN KEY (Код_заказа) REFERENCES Заказы(Код_заказа)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Клиенты

ADD CONSTRAINT  R_12 FOREIGN KEY (Код_партнера) REFERENCES Партнер(Код_партнера)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Клиенты

ADD CONSTRAINT  R_13 FOREIGN KEY (Код_национальности) REFERENCES Национальность(Код_национальности)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Клиенты

ADD CONSTRAINT  R_14 FOREIGN KEY (Код_знака) REFERENCES Знак_задиака(Код_знака)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Клиенты

ADD CONSTRAINT  R_17 FOREIGN KEY (Код_параметра) REFERENCES Параметры(Код_параметра)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Клиенты

ADD CONSTRAINT  R_18 FOREIGN KEY (Код_развития) REFERENCES Развитие(Код_развития)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Клиенты

ADD CONSTRAINT  R_19 FOREIGN KEY (Код_хобби) REFERENCES Хобби(Код_хобби)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Послужной_список

ADD CONSTRAINT  R_7 FOREIGN KEY (Код_должности) REFERENCES Должность(Код_должности)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Сотрудники

ADD CONSTRAINT  R_5 FOREIGN KEY (Код_должности) REFERENCES Должность(Код_должности)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Сотрудники

ADD CONSTRAINT  R_6 FOREIGN KEY (Код_списка) REFERENCES Послужной_список(Код_списка)

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

CREATE TRIGGER tD_Должность ON Должность FOR DELETE AS

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

/* DELETE trigger on Должность */

BEGIN

DECLARE  @errno   int,

@errmsg  varchar(255)

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

/* Должность R/5 Сотрудники on parent delete no action */

/* ERWIN_RELATION:CHECKSUM="00021254", PARENT_OWNER="", PARENT_TABLE="Должность"

CHILD_OWNER="", CHILD_TABLE="Сотрудники"

P2C_VERB_PHRASE="R/5", C2P_VERB_PHRASE="R/5",

FK_CONSTRAINT="R_5", FK_COLUMNS="Код_должности" */

IF EXISTS (

SELECT * FROM deleted,Сотрудники

WHERE

/*  %JoinFKPK(Сотрудники,deleted," = "," AND") */

Сотрудники.Код_должности = deleted.Код_должности

)

BEGIN

SELECT @errno  = 30001,

@errmsg = 'Cannot delete Должность because Сотрудники exists.'

GOTO ERROR

END

/* ERwin Builtin 18 марта 2014 г. 8:14:00 */

/* Должность R/7 Послужной_список on parent delete no action */

/* ERWIN_RELATION:CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Должность"

CHILD_OWNER="", CHILD_TABLE="Послужной_список"

P2C_VERB_PHRASE="R/7", C2P_VERB_PHRASE="R/7",

FK_CONSTRAINT="R_7", FK_COLUMNS="Код_должности" */

IF EXISTS (

SELECT * FROM deleted,Послужной_список

WHERE

/*  %JoinFKPK(Послужной_список,deleted," = "," AND") */

Послужной_список.Код_должности = deleted.Код_должности

)

BEGIN

SELECT @errno  = 30001,