Проектирование многопользовательской информационной системы "Университетская библиотека"
Порядок проектирования и реализации на основе клиент-серверных технологий базы данных вузовской библиотеки. Построение функциональной и логической моделей. Анализ и оценка системы управления авторизацией и ролями, управление средствами 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