Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПЗ бд и субд турникеты

.docx
Скачиваний:
23
Добавлен:
23.01.2014
Размер:
296.34 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

Уфимский государственный авиационный технический университет

Кафедра вычислительной математики и кибернетики

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

Дисциплина:

«БД и СУБД»

на тему:

«АИС службы безопасности предприятия»

Выполнила:

отделения факультета ИРТ

группы МО-201

Фатхутдинова Л.М.

Проверил:

Макеев Г.А.

Уфа – 2013

Введение

Задание на курсовую работу

Разработать такую базу данных, которая обеспечивает допуск и учёт прохождения в и из университета.

Актуальность

В нашем университете установлены турникеты со считывающими устройствами. Но у входа всё равно стоят вахтёрши и проверяют студенческие билеты или паспорта. Чтобы улучшить безопасность, используя имеющиеся возможности, решила попробовать написать базу данных и приложение для работы с ним.

Требования

В данной БД необходимо хранить данные о пропусках, пользователях пропусков, турникетах, времени использования.

Проектирование базы данных

ER-диаграмма

Разработка базы данных

Триггеры

Триггер (англ. trigger) — это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено действием по модификации данных: добавлением INSERT, удалением DELETE строки в заданной таблице, или изменением UPDATE данных в определенном столбце заданной таблицы реляционной базы данных. Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан.

В данной БД есть несколько триггеров.

Например, триггер для таблицы HISTORY, в которой хранять данные о том кто и когда зашёл или вышел. Перед внесением новой строки в эту таблицу проверяется:

  1. в каком направлении прошёл пользователь последний раз. Если вошёл, записывается что выходит. Если вышел, записывается что входит.

  2. Из последовательности seqhis берётся следующее значение для первичного ключа таблицы.

  3. Для значения атрибута 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:

  1. Таблицы;

  2. Ограничения целостности;

  3. Последовательности;

  4. Пакет;

  5. Индексы.

Разработка приложения

Руководство программиста

Приложение реализовано в среде разработки 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;";.

В ней нужно указать название БД, пользователя и пароль. Затем компилируем и создаем установщик. Полученную программу установить на компьютере.

Основные созданные формы в приложении:

  1. MainForm – форма регистрации входа/выхода;

  2. LoginForm – форма для входа пользователя в личный кабинет;

  3. AdminForm – форма для администратора системы;

  4. VachterForm – форма для вахтёра;

  5. AnaliticForm – форма для аналитика.

Часто используемые компоненты:

  1. Label – подпись для компонент;

  2. TextBox – текстовое поле для ввода данных из списка;

  3. 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-диаграммы.

  • Приложение

  • Руководство пользователя.

Приложение умеет:

  1. Добавлять информацию о входе/выходе пользователя с пропуском

  2. Осуществить вход в личный кабинет в соответствии с ролью входящего

  3. Добавлять новых пользователей

  4. Просматривать оставшихся в помещениях людей

И многое другое.

Недостатки работы

Не реализована проверка вводимых данных. В данный момент приложение и БД позволяют следующие:

Выдать пропуск уже имеющему пользователю;

Срок действия пропуска может быть абсолютно любым(вчерашним, например);

Нет запросов для аналитика.

Возможное развитие

Возможным развитием данной программы может быть её доработка в плане проверки данных на предмет соответствия логике БД и здравому смыслу.

Соседние файлы в предмете Базы данных