Проектирование многопользовательской информационной системы "Университетская библиотека"

Порядок проектирования и реализации на основе клиент-серверных технологий базы данных вузовской библиотеки. Построение функциональной и логической моделей. Анализ и оценка системы управления авторизацией и ролями, управление средствами Transact SQL.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.09.2012
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

табельный_номер int NOT NULL,

Дата_выдачи datetime NULL,

Дата_приема char(18) NULL,

Шифр varchar(20) NOT NULL

)

go

ALTER TABLE Пользование_библиотекой1 // Изменение таблицы «Пользование_библиотекой1»

ADD PRIMARY KEY (табельный_номер, Шифр)

go

CREATE TABLE Пользование_библиотекой2 ( // Создание таблицы «Пользование_библиотекой2»

Читательский_номер int NOT NULL,

Дата_выдачи datetime NULL,

Дата_приема datetime NULL,

Табельный_номер int NULL,

Шифр varchar(20) NOT NULL

)

go

ALTER TABLE Пользование_библиотекой2 // Изменение таблицы «Пользование_библиотекой2»

ADD PRIMARY KEY (Читательский_номер, Шифр)

go

CREATE TABLE Пользование_библиотекой3 ( // Создание таблицы «Пользование_библиотекой3»

Читательский_номер int NOT NULL,

Дата_выдачи datetime NULL,

Дата_приема datetime NULL,

Табельный_номер int NULL,

Шифр varchar(20) NOT NULL

)

go

ALTER TABLE Пользование_библиотекой3 // Изменение таблицы «Пользование_библиотекой3

ADD PRIMARY KEY (Читательский_номер, Шифр)

go

CREATE TABLE Преподаватели // Создание таблицы «Преподаватели»

(

Читательский_номер int NOT NULL,

Имя varchar(20) NULL,

Отчество varchar(20) NULL,

Фамилия varchar(20) NULL,

Должность varchar(20) NULL

)

go

ALTER TABLE Преподаватели // Изменение таблицы «Преподаватели»

ADD PRIMARY KEY (Читательский_номер)

go

CREATE TABLE Сотрудники_библиотеки ( // Создание таблицы «Сотрудники_библиотеки»

табельный_номер int NOT NULL,

имя varchar(20) NULL,

фамилия varchar(20) NULL,

отчество varchar(20) NULL,

дата_рождения datetime NULL,

должность varchar(20) NULL,

Номер_отдела int NOT NULL

)

go

ALTER TABLE Сотрудники_библиотеки // Изменение таблицы «Сотрудники_библиотеки»

ADD PRIMARY KEY (табельный_номер)

go

CREATE TABLE Списанные_книги (/ /Создание таблицы «Списанные_книги»

 //

причина_списания varchar(20) NULL,

номер_протокола_списания int NULL,

Табельный_номер_списавшего int NULL,

Шифр varchar(20) NOT NULL

)

go

ALTER TABLE Списанные_книги / /Изменение таблицы «Списанные_книги»

ADD PRIMARY KEY (Шифр)

go

CREATE TABLE Студенты (/ /Создание таблицы «Студенты»

Читательский_номер int NOT NULL,

Имя varchar(20) NULL,

Фамилия varchar(20) NULL,

Отчество varchar(20) NULL,

год_поступления int NULL,

год_окончания int NULL,

факультет varchar(20) NULL,

специальность varchar(20) NULL,

форма_обучения varchar(20) NULL,

номер_приказа int NULL

)

go

ALTER TABLE Студенты / /Изменение таблицы «Студенты»

ADD PRIMARY KEY (Читательский_номер)

go

CREATE TABLE Экземпляр (/ /Создание таблицы «Экземпляр»

ISBN varchar(20) NOT NULL,

Отметка_о_списании varchar(20) NULL,

Отметка_о_замене varchar(20) NULL,

Предметная_область varchar(20) NULL,

Номер_отдела int NOT NULL,

Шифр varchar(20) NOT NULL

)

go

ALTER TABLE Экземпляр // Изменение таблицы «Экземпляр»

ADD PRIMARY KEY (Шифр)

go

ALTER TABLE Заказы // Изменение таблицы «Заказы»

ADD FOREIGN KEY (ISBN)

REFERENCES Книга

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Заказы // Изменение таблицы «Заказы»

ADD FOREIGN KEY (Читательский_номер)

REFERENCES Преподаватели

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Замена_экземпляров

 // Изменение таблицы «Замена_экземпляров»

ADD FOREIGN KEY (Шифр)

REFERENCES Экземпляр

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Периодические_издания

 // Изменение таблицы «Периодические_издания»

ADD FOREIGN KEY (Номер_отдела)

REFERENCES Отделы

go

ALTER TABLE Пользование_библиотекой1

 // Изменение таблицы «Пользование_библиотекой1»

ADD FOREIGN KEY (Шифр)

REFERENCES Экземпляр

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Пользование_библиотекой1

 // Изменение таблицы «Пользование_библиотекой1»

ADD FOREIGN KEY (табельный_номер)

REFERENCES Сотрудники_библиотеки

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Пользование_библиотекой2

 // Изменение таблицы «Пользование_библиотекой2»

ADD FOREIGN KEY (Шифр)

REFERENCES Экземпляр

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Пользование_библиотекой2

 // Изменение таблицы «Пользование_библиотекой2»

ADD FOREIGN KEY (Читательский_номер)

REFERENCES Студенты

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Пользование_библиотекой3

 // Изменение таблицы «Пользование_библиотекой3»

ADD FOREIGN KEY (Читательский_номер)

REFERENCES Преподаватели

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Пользование_библиотекой3

 // Изменение таблицы «Пользование_библиотекой3»

ADD FOREIGN KEY (Шифр)

REFERENCES Экземпляр

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Сотрудники_библиотеки

 // Изменение таблицы «Сотрудники_библиотеки»

ADD FOREIGN KEY (Номер_отдела)

REFERENCES Отделы

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Списанные_книги

 // Изменение таблицы «Списанные_книги»

ADD FOREIGN KEY (Шифр)

REFERENCES Экземпляр

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Экземпляр

 // Изменение таблицы «Экземпляр»

ADD FOREIGN KEY (ISBN)

REFERENCES Книга

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

ALTER TABLE Экземпляр

 // Изменение таблицы «Экземпляр»

ADD FOREIGN KEY (Номер_отдела)

REFERENCES Отделы

ON DELETE NO ACTION

ON UPDATE NO ACTION

go

create trigger tD_Заказы on Заказы for DELETE as

 // Создание триггера на удаление из таблицы «Заказы»

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Заказы */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Книга Заказы ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Книга

where

/* deleted.ISBN = Книга.ISBN */

deleted.ISBN = Книга.ISBN and

not exists (

select * from Заказы

where

/* Заказы.ISBN = Книга.ISBN */

Заказы.ISBN = Книга.ISBN

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Заказы because Книга exists.'

goto error

end

 // Создание триггера на удаление из таблицы «Преподаватели»

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Преподаватели Делают Заказы ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Преподаватели

where

/* deleted. Читательский_номер = Преподаватели. Читательский_номер */

deleted. Читательский_номер = Преподаватели. Читательский_номер and

not exists (

select * from Заказы

where

/* Заказы. Читательский_номер = Преподаватели. Читательский_номер */

Заказы. Читательский_номер = Преподаватели. Читательский_номер

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Заказы because Преподаватели exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

create trigger tU_Заказы on Заказы for UPDATE as

 // Создание триггера на обновление таблицы «Заказы»

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Заказы */

begin

declare @numrows int, // объявление переменных

@nullcnt int,

@validcnt int,

@insЧитательский_номер int,

@insISBN varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Книга Заказы ON CHILD UPDATE NO ACTION */

if

/* update(ISBN) */

update(ISBN)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Книга

where

/* inserted.ISBN = Книга.ISBN */

inserted.ISBN = Книга.ISBN

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Заказы because Книга does not exist.'

goto error

end

end

 // Создание триггера на обновление таблицы «Преподаватели»

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Преподаватели Делают Заказы ON CHILD UPDATE NO ACTION */

if

/* update (Читательский_номер) */

update (Читательский_номер)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Преподаватели

where

/* inserted. Читательский_номер = Преподаватели. Читательский_номер */

inserted. Читательский_номер = Преподаватели. Читательский_номер

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Заказы because Преподаватели does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Замена_экземпляров»

create trigger tD_Замена_экземпляров on Замена_экземпляров for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Замена_экземпляров */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр Заменили Замена_экземпляров ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Экземпляр

where

/* deleted. Шифр = Экземпляр. Шифр */

deleted. Шифр = Экземпляр. Шифр and

not exists (

select * from Замена_экземпляров

where

/* Замена_экземпляров. Шифр = Экземпляр. Шифр */

Замена_экземпляров. Шифр = Экземпляр. Шифр

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Замена_экземпляров because Экземпляр exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Замена_экземпляров»

create trigger tU_Замена_экземпляров on Замена_экземпляров for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Замена_экземпляров */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insШифр varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр Заменили Замена_экземпляров ON CHILD UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Экземпляр

where

/* inserted. Шифр = Экземпляр. Шифр */

inserted. Шифр = Экземпляр. Шифр

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Замена_экземпляров because Экземпляр does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление таблицы «Книга»

create trigger tD_Книга on Книга for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Книга */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Книга зарегестрировали в Экземпляр ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Экземпляр

where

/* Экземпляр.ISBN = deleted.ISBN */

Экземпляр.ISBN = deleted.ISBN

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Книга because Экземпляр exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Книга Заказы ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Заказы

where

/* Заказы.ISBN = deleted.ISBN */

Заказы.ISBN = deleted.ISBN

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Книга because Заказы exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Книга»

create trigger tU_Книга on Книга for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Книга */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insISBN varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Книга зарегестрировали в Экземпляр ON PARENT UPDATE NO ACTION */

if

/* update(ISBN) */

update(ISBN)

begin

if exists (

select * from deleted, Экземпляр

where

/* Экземпляр.ISBN = deleted.ISBN */

Экземпляр.ISBN = deleted.ISBN

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Книга because Экземпляр exists.'

goto error

end

end

 // Создание триггера на обновление таблицы «Заказы»

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Книга Заказы ON PARENT UPDATE NO ACTION */

if

/* update(ISBN) */

update(ISBN)

begin

if exists (

select * from deleted, Заказы

where

/* Заказы.ISBN = deleted.ISBN */

Заказы.ISBN = deleted.ISBN

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Книга because Заказы exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Отделы»

create trigger tD_Отделы on Отделы for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Отделы */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы находятся в Периодические_издания ON PARENT DELETE SET NULL */

update Периодические_издания

set

/* Периодические_издания. Номер_отдела = NULL */

Периодические_издания. Номер_отдела = NULL

from Периодические_издания, deleted

where

/* Периодические_издания. Номер_отдела = deleted. Номер_отдела */

Периодические_издания. Номер_отдела = deleted. Номер_отдела

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы Экземпляр ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Экземпляр

where

/* Экземпляр. Номер_отдела = deleted. Номер_отдела */

Экземпляр. Номер_отдела = deleted. Номер_отдела

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Отделы because Экземпляр exists.'

goto error

end

 // Создание триггера на удаление из таблицы «Сотрудники_библиотеки»

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы Сотрудники_библиотеки ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Сотрудники_библиотеки

where

/* Сотрудники_библиотеки. Номер_отдела = deleted. Номер_отдела */

Сотрудники_библиотеки. Номер_отдела = deleted. Номер_отдела

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Отделы because Сотрудники_библиотеки exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Отделы»

create trigger tU_Отделы on Отделы for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Отделы */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insНомер_отдела int,

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы находятся в Периодические_издания ON PARENT UPDATE SET NULL */

if

/* update (Номер_отдела) */

update (Номер_отдела)

begin

update Периодические_издания

set

/* Периодические_издания. Номер_отдела = NULL */

Периодические_издания. Номер_отдела = NULL

from Периодические_издания, deleted

where

/* Периодические_издания. Номер_отдела = deleted. Номер_отдела */

Периодические_издания. Номер_отдела = deleted. Номер_отдела

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы Экземпляр ON PARENT UPDATE NO ACTION */

if

/* update (Номер_отдела) */

update (Номер_отдела)

begin

if exists (

select * from deleted, Экземпляр

where

/* Экземпляр. Номер_отдела = deleted. Номер_отдела */

Экземпляр. Номер_отдела = deleted. Номер_отдела

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Отделы because Экземпляр exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы Сотрудники_библиотеки ON PARENT UPDATE NO ACTION */

if

/* update (Номер_отдела) */

update (Номер_отдела)

begin

if exists (

select * from deleted, Сотрудники_библиотеки

where

/* Сотрудники_библиотеки. Номер_отдела = deleted. Номер_отдела */

Сотрудники_библиотеки. Номер_отдела = deleted. Номер_отдела

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Отделы because Сотрудники_библиотеки exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на вставку в таблицу «Периодические_издания»

create trigger tI_Периодические_издания on Периодические_издания for INSERT as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* INSERT trigger on Периодические_издания */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы находятся в Периодические_издания ON CHILD INSERT SET NULL */

if

/* update (Номер_отдела) */

update (Номер_отдела)

begin

update Периодические_издания

set

/* Периодические_издания. Номер_отдела = NULL */

Периодические_издания. Номер_отдела = NULL

from Периодические_издания, inserted

where

/* Периодические_издания. Шифр_периодики = inserted. Шифр_периодики */

Периодические_издания. Шифр_периодики = inserted. Шифр_периодики and

not exists (

select * from Отделы

where

/* inserted. Номер_отдела = Отделы. Номер_отдела */

inserted. Номер_отдела = Отделы. Номер_отдела

)

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Периодические_издания»

create trigger tU_Периодические_издания on Периодические_издания for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Периодические_издания */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insШифр_периодики varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы находятся в Периодические_издания ON CHILD UPDATE SET NULL */

if

/* update (Номер_отдела) */

update (Номер_отдела)

begin

update Периодические_издания

set

/* Периодические_издания. Номер_отдела = NULL */

Периодические_издания. Номер_отдела = NULL

from Периодические_издания, inserted

where

/* Периодические_издания. Шифр_периодики = inserted. Шифр_периодики */

Периодические_издания. Шифр_периодики = inserted. Шифр_периодики and

not exists (

select * from Отделы

where

/* inserted. Номер_отдела = Отделы. Номер_отдела */

inserted. Номер_отдела = Отделы. Номер_отдела

)

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на на удаление из таблицы «Пользование_библиотекой1»

create trigger tD_Пользование_библиотекой1 on Пользование_библиотекой1 for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Пользование_библиотекой1 */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/16 Пользование_библиотекой1 ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Экземпляр

where

/* deleted. Шифр = Экземпляр. Шифр */

deleted. Шифр = Экземпляр. Шифр and

not exists (

select * from Пользование_библиотекой1

where

/* Пользование_библиотекой1. Шифр = Экземпляр. Шифр */

Пользование_библиотекой1. Шифр = Экземпляр. Шифр

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Пользование_библиотекой1 because Экземпляр exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Сотрудники_библиотеки R/15 Пользование_библиотекой1 ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Сотрудники_библиотеки

where

/* deleted.табельный_номер = Сотрудники_библиотеки. табельный_номер */

deleted.табельный_номер = Сотрудники_библиотеки. табельный_номер and

not exists (

select * from Пользование_библиотекой1

where

/* Пользование_библиотекой1.табельный_номер = Сотрудники_библиотеки. табельный_номер */

Пользование_библиотекой1.табельный_номер = Сотрудники_библиотеки. табельный_номер

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Пользование_библиотекой1 because Сотрудники_библиотеки exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Пользование_библиотекой1»

create trigger tU_Пользование_библиотекой1 on Пользование_библиотекой1 for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Пользование_библиотекой1 */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insтабельный_номер int,

@insШифр varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/16 Пользование_библиотекой1 ON CHILD UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Экземпляр

where

/* inserted. Шифр = Экземпляр. Шифр */

inserted. Шифр = Экземпляр. Шифр

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Пользование_библиотекой1 because Экземпляр does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Сотрудники_библиотеки R/15 Пользование_библиотекой1 ON CHILD UPDATE NO ACTION */

if

/* update (табельный_номер) */

update (табельный_номер)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Сотрудники_библиотеки

where

/* inserted.табельный_номер = Сотрудники_библиотеки. табельный_номер */

inserted.табельный_номер = Сотрудники_библиотеки. табельный_номер

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Пользование_библиотекой1 because Сотрудники_библиотеки does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на на удаление из таблицы «Пользование_библиотекой2»

create trigger tD_Пользование_библиотекой2 on Пользование_библиотекой2 for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Пользование_библиотекой2 */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/13 Пользование_библиотекой2 ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Экземпляр

where

/* deleted. Шифр = Экземпляр. Шифр */

deleted. Шифр = Экземпляр. Шифр and

not exists (

select * from Пользование_библиотекой2

where

/* Пользование_библиотекой2. Шифр = Экземпляр. Шифр */

Пользование_библиотекой2. Шифр = Экземпляр. Шифр

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Пользование_библиотекой2 because Экземпляр exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Студенты R/12 Пользование_библиотекой2 ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Студенты

where

/* deleted. Читательский_номер = Студенты. Читательский_номер */

deleted. Читательский_номер = Студенты. Читательский_номер and

not exists (

select * from Пользование_библиотекой2

where

/* Пользование_библиотекой2. Читательский_номер = Студенты. Читательский_номер */

Пользование_библиотекой2. Читательский_номер = Студенты. Читательский_номер

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Пользование_библиотекой2 because Студенты exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Пользование_библиотекой1»

create trigger tU_Пользование_библиотекой2 on Пользование_библиотекой2 for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Пользование_библиотекой2 */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insЧитательский_номер int,

@insШифр varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/13 Пользование_библиотекой2 ON CHILD UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Экземпляр

where

/* inserted. Шифр = Экземпляр. Шифр */

inserted. Шифр = Экземпляр. Шифр

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Пользование_библиотекой2 because Экземпляр does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Студенты R/12 Пользование_библиотекой2 ON CHILD UPDATE NO ACTION */

if

/* update (Читательский_номер) */

update (Читательский_номер)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Студенты

where

/* inserted. Читательский_номер = Студенты. Читательский_номер */

inserted. Читательский_номер = Студенты. Читательский_номер

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Пользование_библиотекой2 because Студенты does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Пользование_библиотекой3»

create trigger tD_Пользование_библиотекой3 on Пользование_библиотекой3 for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Пользование_библиотекой3 */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Преподаватели R/11 Пользование_библиотекой3 ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Преподаватели

where

/* deleted. Читательский_номер = Преподаватели. Читательский_номер */

deleted. Читательский_номер = Преподаватели. Читательский_номер and

not exists (

select * from Пользование_библиотекой3

where

/* Пользование_библиотекой3. Читательский_номер = Преподаватели. Читательский_номер */

Пользование_библиотекой3. Читательский_номер = Преподаватели. Читательский_номер

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Пользование_библиотекой3 because Преподаватели exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/10 Пользование_библиотекой3 ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Экземпляр

where

/* deleted. Шифр = Экземпляр. Шифр */

deleted. Шифр = Экземпляр. Шифр and

not exists (

select * from Пользование_библиотекой3

where

/* Пользование_библиотекой3. Шифр = Экземпляр. Шифр */

Пользование_библиотекой3. Шифр = Экземпляр. Шифр

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Пользование_библиотекой3 because Экземпляр exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Пользование_библиотекой3»

create trigger tU_Пользование_библиотекой3 on Пользование_библиотекой3 for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Пользование_библиотекой3 */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insЧитательский_номер int,

@insШифр varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Преподаватели R/11 Пользование_библиотекой3 ON CHILD UPDATE NO ACTION */

if

/* update (Читательский_номер) */

update (Читательский_номер)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Преподаватели

where

/* inserted. Читательский_номер = Преподаватели. Читательский_номер */

inserted. Читательский_номер = Преподаватели. Читательский_номер

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Пользование_библиотекой3 because Преподаватели does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/10 Пользование_библиотекой3 ON CHILD UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Экземпляр

where

/* inserted. Шифр = Экземпляр. Шифр */

inserted. Шифр = Экземпляр. Шифр

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Пользование_библиотекой3 because Экземпляр does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Преподаватели»

create trigger tD_Преподаватели on Преподаватели for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Преподаватели */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Преподаватели R/11 Пользование_библиотекой3 ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Пользование_библиотекой3

where

/* Пользование_библиотекой3. Читательский_номер = deleted. Читательский_номер */

Пользование_библиотекой3. Читательский_номер = deleted. Читательский_номер

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Преподаватели because Пользование_библиотекой3 exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Преподаватели Делают Заказы ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Заказы

where

/* Заказы. Читательский_номер = deleted. Читательский_номер */

Заказы. Читательский_номер = deleted. Читательский_номер

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Преподаватели because Заказы exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Преподаватели»

create trigger tU_Преподаватели on Преподаватели for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Преподаватели */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insЧитательский_номер int,

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Преподаватели R/11 Пользование_библиотекой3 ON PARENT UPDATE NO ACTION */

if

/* update (Читательский_номер) */

update (Читательский_номер)

begin

if exists (

select * from deleted, Пользование_библиотекой3

where

/* Пользование_библиотекой3. Читательский_номер = deleted. Читательский_номер */

Пользование_библиотекой3. Читательский_номер = deleted. Читательский_номер

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Преподаватели because Пользование_библиотекой3 exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Преподаватели Делают Заказы ON PARENT UPDATE NO ACTION */

if

/* update (Читательский_номер) */

update (Читательский_номер)

begin

if exists (

select * from deleted, Заказы

where

/* Заказы. Читательский_номер = deleted. Читательский_номер */

Заказы. Читательский_номер = deleted. Читательский_номер

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Преподаватели because Заказы exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Сотрудники_библиотеки»

create trigger tD_Сотрудники_библиотеки on Сотрудники_библиотеки for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Сотрудники_библиотеки */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Сотрудники_библиотеки R/15 Пользование_библиотекой1 ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Пользование_библиотекой1

where

/* Пользование_библиотекой1.табельный_номер = deleted.табельный_номер */

Пользование_библиотекой1.табельный_номер = deleted.табельный_номер

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Сотрудники_библиотеки because Пользование_библиотекой1 exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы Сотрудники_библиотеки ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Отделы

where

/* deleted. Номер_отдела = Отделы. Номер_отдела */

deleted. Номер_отдела = Отделы. Номер_отдела and

not exists (

select * from Сотрудники_библиотеки

where

/* Сотрудники_библиотеки. Номер_отдела = Отделы. Номер_отдела */

Сотрудники_библиотеки. Номер_отдела = Отделы. Номер_отдела

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Сотрудники_библиотеки because Отделы exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Сотрудники_библиотеки»

create trigger tU_Сотрудники_библиотеки on Сотрудники_библиотеки for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Сотрудники_библиотеки */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insтабельный_номер int,

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Сотрудники_библиотеки R/15 Пользование_библиотекой1 ON PARENT UPDATE NO ACTION */

if

/* update (табельный_номер) */

update (табельный_номер)

begin

if exists (

select * from deleted, Пользование_библиотекой1

where

/* Пользование_библиотекой1.табельный_номер = deleted.табельный_номер */

Пользование_библиотекой1.табельный_номер = deleted.табельный_номер

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Сотрудники_библиотеки because Пользование_библиотекой1 exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы Сотрудники_библиотеки ON CHILD UPDATE NO ACTION */

if

/* update (Номер_отдела) */

update (Номер_отдела)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Отделы

where

/* inserted. Номер_отдела = Отделы. Номер_отдела */

inserted. Номер_отдела = Отделы. Номер_отдела

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Сотрудники_библиотеки because Отделы does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Списанные_книги»

create trigger tD_Списанные_книги on Списанные_книги for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Списанные_книги */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр Списали Списанные_книги ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Экземпляр

where

/* deleted. Шифр = Экземпляр. Шифр */

deleted. Шифр = Экземпляр. Шифр and

not exists (

select * from Списанные_книги

where

/* Списанные_книги. Шифр = Экземпляр. Шифр */

Списанные_книги. Шифр = Экземпляр. Шифр

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Списанные_книги because Экземпляр exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера обновление таблицы «Списанные_книги»

create trigger tU_Списанные_книги on Списанные_книги for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Списанные_книги */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insШифр varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр Списали Списанные_книги ON CHILD UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Экземпляр

where

/* inserted. Шифр = Экземпляр. Шифр */

inserted. Шифр = Экземпляр. Шифр

/* */

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Списанные_книги because Экземпляр does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Студенты»

create trigger tD_Студенты on Студенты for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Студенты */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Студенты R/12 Пользование_библиотекой2 ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Пользование_библиотекой2

where

/* Пользование_библиотекой2. Читательский_номер = deleted. Читательский_номер */

Пользование_библиотекой2. Читательский_номер = deleted. Читательский_номер

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Студенты because Пользование_библиотекой2 exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Студенты»

create trigger tU_Студенты on Студенты for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Студенты */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insЧитательский_номер int,

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Студенты R/12 Пользование_библиотекой2 ON PARENT UPDATE NO ACTION */

if

/* update (Читательский_номер) */

update (Читательский_номер)

begin

if exists (

select * from deleted, Пользование_библиотекой2

where

/* Пользование_библиотекой2. Читательский_номер = deleted. Читательский_номер */

Пользование_библиотекой2. Читательский_номер = deleted. Читательский_номер

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Студенты because Пользование_библиотекой2 exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на удаление из таблицы «Экземпляр»

create trigger tD_Экземпляр on Экземпляр for DELETE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* DELETE trigger on Экземпляр */

begin

declare @errno int,

@errmsg varchar(255)

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/16 Пользование_библиотекой1 ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Пользование_библиотекой1

where

/* Пользование_библиотекой1. Шифр = deleted. Шифр */

Пользование_библиотекой1. Шифр = deleted. Шифр

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Экземпляр because Пользование_библиотекой1 exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/13 Пользование_библиотекой2 ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Пользование_библиотекой2

where

/* Пользование_библиотекой2. Шифр = deleted. Шифр */

Пользование_библиотекой2. Шифр = deleted. Шифр

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Экземпляр because Пользование_библиотекой2 exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/10 Пользование_библиотекой3 ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Пользование_библиотекой3

where

/* Пользование_библиотекой3. Шифр = deleted. Шифр */

Пользование_библиотекой3. Шифр = deleted. Шифр

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Экземпляр because Пользование_библиотекой3 exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр Списали Списанные_книги ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Списанные_книги

where

/* Списанные_книги. Шифр = deleted. Шифр */

Списанные_книги. Шифр = deleted. Шифр

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Экземпляр because Списанные_книги exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр Заменили Замена_экземпляров ON PARENT DELETE NO ACTION */

if exists (

select * from deleted, Замена_экземпляров

where

/* Замена_экземпляров. Шифр = deleted. Шифр */

Замена_экземпляров. Шифр = deleted. Шифр

)

begin

select @errno = 30001,

@errmsg = 'Cannot DELETE Экземпляр because Замена_экземпляров exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Книга зарегестрировали в Экземпляр ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Книга

where

/* deleted.ISBN = Книга.ISBN */

deleted.ISBN = Книга.ISBN and

not exists (

select * from Экземпляр

where

/* Экземпляр.ISBN = Книга.ISBN */

Экземпляр.ISBN = Книга.ISBN

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Экземпляр because Книга exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Отделы Экземпляр ON CHILD DELETE NO ACTION */

if exists (select * from deleted, Отделы

where

/* deleted. Номер_отдела = Отделы. Номер_отдела */

deleted. Номер_отдела = Отделы. Номер_отдела and

not exists (

select * from Экземпляр

where

/* Экземпляр. Номер_отдела = Отделы. Номер_отдела */

Экземпляр. Номер_отдела = Отделы. Номер_отдела

)

)

begin

select @errno = 30010,

@errmsg = 'Cannot DELETE last Экземпляр because Отделы exists.'

goto error

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

 // Создание триггера на обновление таблицы «Экземпляр»

create trigger tU_Экземпляр on Экземпляр for UPDATE as

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* UPDATE trigger on Экземпляр */

begin

declare @numrows int,

@nullcnt int,

@validcnt int,

@insШифр varchar(20),

@errno int,

@errmsg varchar(255)

select @numrows = @@rowcount

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/16 Пользование_библиотекой1 ON PARENT UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

if exists (

select * from deleted, Пользование_библиотекой1

where

/* Пользование_библиотекой1. Шифр = deleted. Шифр */

Пользование_библиотекой1. Шифр = deleted. Шифр

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Экземпляр because Пользование_библиотекой1 exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/13 Пользование_библиотекой2 ON PARENT UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

if exists (

select * from deleted, Пользование_библиотекой2

where

/* Пользование_библиотекой2. Шифр = deleted. Шифр */

Пользование_библиотекой2. Шифр = deleted. Шифр

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Экземпляр because Пользование_библиотекой2 exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр R/10 Пользование_библиотекой3 ON PARENT UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

if exists (

select * from deleted, Пользование_библиотекой3

where

/* Пользование_библиотекой3. Шифр = deleted. Шифр */

Пользование_библиотекой3. Шифр = deleted. Шифр

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Экземпляр because Пользование_библиотекой3 exists.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 */

/* Экземпляр Списали Списанные_книги ON PARENT UPDATE NO ACTION */

if

/* update(Шифр) */

update(Шифр)

begin

if exists (

select * from deleted, Списанные_книги

where

/* Списанные_книги. Шифр = deleted. Шифр */

Списанные_книги. Шифр = deleted. Шифр

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Экземпляр because Списанные_книги exists.'

goto error

end

end

/* Экземпляр Заменили Замена_экземпляров ON PARENT UPDATE NO ACTION */

if /* update(Шифр) */

update(Шифр)

begin

if exists (

select * from deleted, Замена_экземпляров

where

/* Замена_экземпляров. Шифр = deleted. Шифр */

Замена_экземпляров. Шифр = deleted. Шифр

)

begin

select @errno = 30005,

@errmsg = 'Cannot UPDATE Экземпляр because Замена_экземпляров exists.'

goto error

end

end

if /* update(ISBN) */

update(ISBN)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Книга

where

/* inserted.ISBN = Книга.ISBN */

inserted.ISBN = Книга.ISBN

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Экземпляр because Книга does not exist.'

goto error

end

end

/* ERwin Builtin Tue May 29 17:12:41 2007 Отделы Экземпляр ON CHILD UPDATE NO ACTION */

if /* update (Номер_отдела) */

update (Номер_отдела)

begin

select @nullcnt = 0

select @validcnt = count(*)

from inserted, Отделы

where

/* inserted. Номер_отдела = Отделы. Номер_отдела */

inserted. Номер_отдела = Отделы. Номер_отдела

if @validcnt + @nullcnt!= @numrows

begin

select @errno = 30007,

@errmsg = 'Cannot UPDATE Экземпляр because Отделы does not exist.'

goto error

end

end

return

error:

raiserror @errno @errmsg

rollback transaction

end

go

6. Результат тестирования информационной системы

Для нормальной работы системы необходимо 256 Мбайт оперативной памяти, Windows NT/2000/XP и выше, Access2000 и выше.

Результатом тестирования в данном случае может послужить создание отчета, содержащего информацию о работе библиотеке.

После тестирования получили результаты:

- Информационная система поддерживает многопользовательский режим.

- Тестирование запросов прошло успешно.

В данном курсовом проекте разработана база данных с тремя клиентскими приложениями, которая хранится на SQL сервере. Для каждого пользователя составлены запросы формы и отчеты. Формы составлены на основе запросов и таблиц, и используются для занесения и модификации информации в базе данных.

Отчеты составлены на основе запросов и используются для получения информации и оформления документации.

Заключение

Прогресс, достигнутый за последние несколько лет во всех аспектах вычислительной техники, включая теорию, технологию и приложения, привели к значительному расширению области применения компьютеров и росту числа их пользователей. Существенной частью современного общества являются разнообразные системы доступа и хранения информации, которые являются неотъемлемой составляющей современного научно-технического прогресса. Существует много веских причин перевода существующей информации на компьютерную основу, т.к. более быстрая обработка данных и централизация их хранения с использованием клиент / серверных технологий позволяют сберечь значительные средства, а главное и время для получения необходимой информации, а также упрощает доступ и ведение.

Современные СУБД - многопользовательские системы управления базой данных, которые специализируется на управлении массивом информации одним или множеством одновременно работающих пользователей.

Во время выполнения курсовой работы было разработано многопользовательская информационная система «Университетская библиотека».

При создании ИС использовались СУБД Microsoft ACCESS 2000, средство моделирования баз данных All Fusion Data Modeler 4.1, средство моделирования бизнес-процессов All Fusion Process Modeler 4.1, сервер баз данных Microsoft SQL server 2000, язык баз данных T-SQL.

Функциональная модель ИС описывает три клиентских приложения. При разработке программного обеспечения использовались представления, хранимые процедуры с параметрами, триггеры, курсоры.

Все пункты курсового задания были выполнены, разработанная система выполняет поставленную перед ним задачу.

Список использованных литературных источников

1. Microsoft SQL Server 7 для профессионалов. - СПб.: Питер, 2000. - 896 с.

2. Алан Бьюли, Энди Оппель. Изучаем SQL. - М.:Символ, 2007. - 312 с.

3. Жилинский А. Самоучитель Microsoft SQL Server 2005. - СПб:BHV, 2004. - 224 с.

4. Кишори Бхамидипати. SQL. Справочник программиста.-М.:Эком, 2003. - 304 с.

5. Конспект лекций «Базы данных»

6. Литвин П., Гетц К., Гунделой М. Разработка настольных приложений в Access 2002. Для профессионалов. - СПб.:Питер; К.: Издательская группа BHV, 2002. - 1008 с.

7. Литвин П., Гетц К., Гунделой М. Разработка корпоративных приложений в Access 2002. Для профессионалов. - СПб.:Питер; Киев: BHV, 2002. - 1008 с.

8. Роберт Виейра. Программирование баз данных Microsoft SQL Server 2005. Базовый курс. - М.:Вильямс, 2003. - 848 с.

9. Уилтон П., Колби Дж. SQL для начинающих. - М.: Вильямс, 2006. - 496 с.

10. Фленов М. Transact SQL в подлиннике. - СПб:BHV, 2006. - 576 с.

11. Практическое руководство по SQL. - М.: Вильямс, 2002. - 352 с.

12. Моисеенко С. SQL. Задачи и решения. СПб.: Питер, 2006. - 256 с.

Размещено на Allbest.ru


Подобные документы

  • Формулировка предметной задачи. Анализ требований к программе. Функциональная модель системы. Выбор языка и программных средств реализации. Описание логической модели базы данных. Концептуальная модель данных информационной системы Интернет-библиотеки.

    курсовая работа [4,4 M], добавлен 13.10.2017

  • Библиотека как элемент образовательной среды. Основные технологии работы библиотеки общеобразовательного учреждения. Описание входных и выходных потоков информации. Выбор системы управления базами данных и создание схемы данных. Тестирование базы данных.

    дипломная работа [1,5 M], добавлен 13.10.2015

  • Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.

    курсовая работа [3,9 M], добавлен 18.01.2017

  • Общая характеристика инфологической модели информационной системы. Знакомство с особенностями проектирования базы данных "Библиотека", анализ основных этапов. Рассмотрение способов составления запросов по выборке информации из таблиц базы данных.

    контрольная работа [831,2 K], добавлен 08.12.2013

  • Анализ проектирования автоматизированной информационной системы компьютерного магазина "Джей". Разработка базы данных на языке Transact-SQL в системе управления базами данных Microsoft SQL Server 2000. Расчет себестоимости и цены программного продукта.

    курсовая работа [2,3 M], добавлен 16.08.2012

  • Построение информационно-логической модели базы данных. Корректировка данных средствами запросов. Проектирование алгоритмов обработки данных. Реализация пользовательского интерфейса средствами форм. Разработка запросов для корректировки и выборки данных.

    курсовая работа [680,9 K], добавлен 19.10.2010

  • Анализ предметной области разрабатываемой информационной системы "Библиотека". Проектирование базы данных в среде MS Access. Физическая реализация данной информационной системы средствами Delphi 7 и MS Access 2003. Области применения технологии BDE.

    курсовая работа [2,4 M], добавлен 12.01.2016

  • Создание контекстной диаграммы информационной системы библиотеки. Основные компоненты и особенности ведения каталогов книг и читателей. Моделирование систем поиска и формирования заказов. Разработка диаграммы дерева узлов и логической модели базы данных.

    курсовая работа [1,1 M], добавлен 24.06.2013

  • Создание информационной системы товарооборота на основе использования технологий баз данных кирпичного завода. Физическая модель базы данных. Проектирование БД в СУБД Microsoft SQL Server. Схема функциональной структуры программной системы. Запросы к БД.

    курсовая работа [3,5 M], добавлен 05.03.2015

  • Анализ проектирования баз данных на примере построения программы ведения информационной системы картотеки ГИБДД. Основные функции базы данных. Обоснование выбора технологий проектирования и реализации базы данных. Описание информационного обеспечения.

    курсовая работа [753,0 K], добавлен 27.08.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.