ПЗ бд и субд турникеты
.docxФедеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
Уфимский государственный авиационный технический университет
Кафедра вычислительной математики и кибернетики
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
Дисциплина:
«БД и СУБД»
на тему:
«АИС службы безопасности предприятия»
Выполнила:
отделения факультета ИРТ
группы МО-201
Фатхутдинова Л.М.
Проверил:
Макеев Г.А.
Уфа – 2013
Введение
Задание на курсовую работу
Разработать такую базу данных, которая обеспечивает допуск и учёт прохождения в и из университета.
Актуальность
В нашем университете установлены турникеты со считывающими устройствами. Но у входа всё равно стоят вахтёрши и проверяют студенческие билеты или паспорта. Чтобы улучшить безопасность, используя имеющиеся возможности, решила попробовать написать базу данных и приложение для работы с ним.
Требования
В данной БД необходимо хранить данные о пропусках, пользователях пропусков, турникетах, времени использования.
Проектирование базы данных
ER-диаграмма
Разработка базы данных
Триггеры
Триггер (англ. trigger) — это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено действием по модификации данных: добавлением INSERT, удалением DELETE строки в заданной таблице, или изменением UPDATE данных в определенном столбце заданной таблицы реляционной базы данных. Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан.
В данной БД есть несколько триггеров.
Например, триггер для таблицы HISTORY, в которой хранять данные о том кто и когда зашёл или вышел. Перед внесением новой строки в эту таблицу проверяется:
-
в каком направлении прошёл пользователь последний раз. Если вошёл, записывается что выходит. Если вышел, записывается что входит.
-
Из последовательности seqhis берётся следующее значение для первичного ключа таблицы.
-
Для значения атрибута dateofpassage, отвечающего за время прохода берётся значение текущего времени sysdate из системной таблицы dual.
CREATE OR REPLACE TRIGGER TR_HISTORY_BI
BEFORE INSERT
ON LAYSAN04KA.HISTORY
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
If (fun_his_rout(:New.id_permit)=0)
then
:New.route:=1;
else :New.route:=0;
end if;
select seqhis.NEXTVAL
into :new.id_passage
from dual;
select sysdate into :new.dateofpassage
from dual;
END;
/
Обзоры
Текущая БД содержит несколько обзоров. Представление – это виртуальная таблица. В действительности представление – всего лишь результат выполнения оператора SELECT, который хранится в структуре памяти, напоминающей SQL таблицу.
Например, обзор для вахтёра. В конце смены он видит отчет, остался ли кто-нибудь в здании.
CREATE OR REPLACE VIEW VIEW_FOR_VACHTER
(FULLNAME, MAXTIME, KORPUS)
AS
select g.fullname,g.maxtime, VIEW_HISTORY.korpus
from
(select fullname, max(dateofpassage) as maxtime
from VIEW_HISTORY
group by fullname) g, VIEW_HISTORY
where g.fullname = VIEW_HISTORY.fullname and VIEW_HISTORY.dateofpassage=maxtime
/
Или обзор для администратора, позволяющий увидеть пользователей имеющихся в системе.
CREATE OR REPLACE VIEW ADMINRAZ
(PERM, FIO, POSITION, PHONE)
AS
select
permit.id_permit as Perm,
FIO,
Position,
Phone
from(
select factdelpermit.id_permit as permitid,
factdelpermit.id_user as userid,
users.fullname as FIO,
positions.positionname as Position,
users.phone as Phone
from
factdelpermit,
users,
positions
where
positions.id_pos=users.id_pos AND factdelpermit.id_user=users.id_user
),permit
where
permit.id_permit=permitid(+)
/
Процедуры
Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий.
В данной БД использовалось несколько процедур.
Рассмотрим одну из них.
Процедура добавления строки в таблицу с данными о пользователях USERS. Она принимает три параметра строкового типа. Первый и третий добавляются напрямую. Второй параметр принимается процедурой в виде строки (вводится имя пользователя), записывается целочисленное значение, соответствующее условию, описанному SELECT-запросом.
CREATE OR REPLACE procedure line_to_users (fio varchar2, dol varchar2, telefon varchar2)
is
var_pos integer;
begin
select id_pos into var_pos
from positions
where positionname = dol;
insert into users (fullname, id_pos, phone)
values (fio, var_pos, telefon);
end;
/
Прочие объекты
Так же были использованы следующие объекты схемы ORACLE:
-
Таблицы;
-
Ограничения целостности;
-
Последовательности;
-
Пакет;
-
Индексы.
Разработка приложения
Руководство программиста
Приложение реализовано в среде разработки Microsoft Visual Studio 2008 на языке C#. Графический интерфейс пользователя будет реализован с использованием интерфейса программирования Windows Forms. В качестве системы управления базами данных использовался Oracle.
В качестве системы управления базами данных необходимо использовать TOAD for Oracle.
Действия для установки приложения клиент-сервер
Чтобы установить клиент-сервер откройте проект файл БД.sln в среде Microsoft Visual Studio 2008 и внесите изменения в строчку
string ConnectionString = "Data Source=XE_FAQ; User ID=RUS;Password=RUS;";.
В ней нужно указать название БД, пользователя и пароль. Затем компилируем и создаем установщик. Полученную программу установить на компьютере.
Основные созданные формы в приложении:
-
MainForm – форма регистрации входа/выхода;
-
LoginForm – форма для входа пользователя в личный кабинет;
-
AdminForm – форма для администратора системы;
-
VachterForm – форма для вахтёра;
-
AnaliticForm – форма для аналитика.
Часто используемые компоненты:
-
Label – подпись для компонент;
-
TextBox – текстовое поле для ввода данных из списка;
-
Button – кнопка.
Чтобы использовать приложение для внесения данных о входе/выходе,
в главном файле приложения раскомментируйте последнюю осмысленную строки и закомментируйте предпоследнюю:
//Application.Run(new LoginForm());
Application.Run(new MainForm()); .
Чтобы использовать приложения для внесения, изменения и удаления других данных, в главном файле приложения закомментируйте последнюю осмысленную строки и раскомментируйте предпоследнюю:
Application.Run(new LoginForm());
//Application.Run(new MainForm());
Руководство администратора
Для входа в систему в форму LoginForm введите в поля “Логин” и “Пароль” Admin как показано на ниже:
.
Нажмите кнопку “Войти”. Откроется форма для администратора:
.
При нажатии на копку “Посмотреть пользователей”, увидите таблицу:
.
Например, при нажатии на кнопку “Добавить пользователя” появятся следующие элементы:
.
Можно заполнить поля, в частности: выбрать должность из выпадающего списка. Нажимаем кнопку “Добавить”. Видим уведомление об успешно проведённой операции: “Данные внесены!” или о неудаче: ”Ошибка БД!”.
Руководство вахтёра
Для входа в систему в форму LoginForm введите в поля “Логин” и “Пароль” Vachter как показано на ниже:
.
Нажмите кнопку “Войти”. Откроется форма для вахтёра:
.
Нажмите кнопку “Посмотреть”. Увидите таблицу с данными о пользователях, не вышедших из помещений ВУЗа, когда и куда они последний раз вошли:
.
Руководство для аналитика
Для входа в систему в форму LoginForm введите в поля “Логин” и “Пароль” Analitic как показано на ниже:
.
Нажмите кнопку “Войти”. Откроется форма для аналитика:
.
Заключение
Результаты
В процессе проектирования было разработано:
-
Техническое задание.
-
ER-диаграмма (логический и физический уровень).
-
Программная реализация ER-диаграммы.
-
Приложение
-
Руководство пользователя.
Приложение умеет:
-
Добавлять информацию о входе/выходе пользователя с пропуском
-
Осуществить вход в личный кабинет в соответствии с ролью входящего
-
Добавлять новых пользователей
-
Просматривать оставшихся в помещениях людей
И многое другое.
Недостатки работы
Не реализована проверка вводимых данных. В данный момент приложение и БД позволяют следующие:
Выдать пропуск уже имеющему пользователю;
Срок действия пропуска может быть абсолютно любым(вчерашним, например);
Нет запросов для аналитика.
Возможное развитие
Возможным развитием данной программы может быть её доработка в плане проверки данных на предмет соответствия логике БД и здравому смыслу.