Аварийная служба

Конструирование базы данных, выявление требований и поиска проблем; реляционная модель для системы "аварийная служба", построение таблиц. Этапы создания БД: определение предметной области, выявление требований заказчика к системе, их атрибуты и связи.

Введение

Аварийная служба

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

Характеристика аварийной службы:

·Выезд аварийной бригады (прибытие на место аварии в течение 2 часов);

·Режим работы – круглосуточный (без выходных и праздников);

·Оперативная связь с мобильными аварийными бригадами;

·Современное диагностическое оборудование;

·Диспетчерский центр с многоканальной системой связи и компьютерной оптимизацией маршрутов движения аварийных бригад.

Основные задачи аварийной службы:

·Предотвращение и исключение поражения персонала электрическим током (перегретым паром) и повреждения оборудования, не затронутого аварией;

·срочное восстановление электро и теплоснабжения потребителей и нормальных параметров электрических и тепловых энергоносителей;

·создание наиболее надежной послеаварийной системы электро- и теплоснабжения объекта в целом и отдельных его частей;

·выяснение состояния отключившегося и отключенного оборудования при возможности – включение его в работу.

«Базы данных»

«Описание требований к предметной области»

Предметная область:

Предметная область «Аварийная служба». Возможные виды деятельности: учет рабочих смен работников побригадно; учет заявок на проведение работ; учет затраченных материалов при ликвидации аварий; оплата труда с расчетом премиальных в зависимости от продолжительности и сложности выполненных работ.

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

На самом базовом уровне требования можно разложить на рабочие цели, свойства объектов, правила и преимущества.

Рабочие цели:

1.учет рабочих смен работников - побригадно;

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

Объекты и их свойства:

Смена:

-день

-дневная

-ночная

Бригада:

-№ бригады

-Рабочий

2.учет заявок на проведение работ;

Данное требование принимает заявки на проведение аварийных работ. Здесь наиболее важно знать какое происшествие случилось и в каком месте.

Объекты и их свойства:

Заявка:

-Id

-Название

-ЧП

-адрес

3.учет затраченных материалов при ликвидации аварий;

Данное требование предназначено для учета материала потраченного на при ликвидации какой-либо аварии, т.е. какой вид материала был израсходован и его объем.

Объекты и их свойства:

Материал:

-Название

-Кол-во

-стоимость

4.оплата труда с расчетом премиальных в зависимости от продолжительности и сложности выполненных работ.

Данное требование определяет оплату труда, т.е. сколько ушло времени и какова была сложность работы при ликвидации аварии. Могут быть премии.

Объекты и их свойства:

ЧП:

-Вид ЧП

-стоимость

-премия

-время выполнения

Правила - это условные требования к свойствам объектов.

Правила:

Один сотрудник может работать в нескольких бригадах.

Одна бригада может работать в дневную и в ночную смену.

Предпочтения - это условие, которое относится к свойству объекта, которое выражает лучшее состояние.

Предпочтения:

Узнать какая бригада работала больше всех.

Узнать какая бригада выполнила самую тяжелую работу.

Узнать какая работа потребовала больше всего затрат.

Разработка концептуальной модели

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

Диаграмма сущность-связь системы “Аварийная служба”

Объекты данной модели

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

Бригада , включает идентификатор бригады и рабочих которые будут распределены на бригады.

Список работников , включает идентификатор, ФИО рабочего, адрес рабочего и его звание (бригадир, подчиненный и т.д.)

Заявка , включает идентификатор, название заявки, ЧП (чрезвычайное происшествие) которое случилось и адрес, чтобы знали куда выезжать.

Список материалов , включает идентификатор, название материала, кол-во материала и его стоимость.

Склад , включает идентификатор, материал на складе какой есть и его количество.

ЧП (чрезвычайное происшествие) , включает идентификатор, вид ЧП т.е. прорвало трубу, канализацию, газ. Стоимость ЧП т.е. сколько будет стоить ликвидация ЧП, премия – дополнительная стоимость при использовании дополнительного времени или затрат и сил рабочих, время выполнения – сколько было потрачено времени на ликвидацию ЧП.

Транспорт , включает идентификатор, тип транспорта (определяется по ЧП) и вместимость – сколько человек поместиться в транспорт.

Связи объектов

Смена и бригада:

Связь 1:M (один ко многим), т.е. смена включает в себя много бригад, а у бригады может быть одна смена.

Бригада и список работников:

Связь M:M (многие ко многим), т.е. у бригады может быть много работников, а работник может работать в нескольких бригадах.

Бригада и ЧП:

Связь М:М, на ЧП может выехать несколько бригад и у бригады может быть несколько ЧП.

Бригада и транспорт:

Связь М:М, у бригады должен быть несколько транспортов, т.к. один может предназначен для вывоза рабочих, а второй для оборудования. У транспорта может быть несколько бригад, т.к. я говорил раньше, что на ЧП может выехать несколько бригад, поэтому у они могут быть и в 1 транспорте.

Заявка и ЧП:

Связь 1:1, на ЧП подается одна заявка и у заявки может быть только одно ЧП.

ЧП и список материалов:

Связь 1:М, на ЧП может понадобится несколько и разных материалов , а у списка может быть только одно ЧП.

Список материалов и склад:

Связь М:1, на складе может быть много материалов, у материалов может быть много складов.

Разработка реляционной модели

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

Реляционная модель для системы “Аварийная служба”.

Смена

id Вид Дата

Id– первичный ключ

Бригада

Т.к. как объекты бригада и смена связаны отношение 1:М мы добавляем в таблицу М (Бригада) столбец, который соответствует ключу объекта, мощность со стороны которого равняется “один” т.е. id смены, этот столбец будет внешним ключом

Id Id смены Id рабочего Кол-во рабочих

Id – первичный ключ

Id смены – вторичный ключ

Id рабочего – вторичный ключ

Список работников

Id ФИО Адрес Должность

Id – первичный ключ

Заявка

Id Название ЧП Дата Адрес

Список материалов

Этот объект связан отношением 1:М с объектами Склад и ЧП, поэтому в эту таблицу мы добавляем ключи из таблиц со стороны 1. Это idЧП и idсклада.

Id Id ЧП Название Стоимость Кол-во

Id– первичный ключ

Idчп – вторичный ключ

Склад

Id Материал Всего материала на складе

Id – первичный ключ


ЧП

Id Вид ЧП Стоимость Премия Время выполнения

Id – первичный ключ

Транспорт

Транспорт связан отношение 1:М с объектом ЧП, поэтому мы добавляем в эту таблицу ключ из объекта с отношением 1, этот ключ id ЧП.

Id Id ЧП Тип транспорта Вместимость

Id– первичный ключ

Idчп – вторичный ключ

При связи М:Мсоздается третья дополнительная таблица, которая включает ключи двух других таблиц.

Это таблицы:

Бригада - Список работников

Id бригады Id работника

Бригада – ЧП

Id бригады Id ЧП

Бригада – транспорт

Id бригады Id транспорта

Формирование запросов к БД

1.Выбор из нескольких таблиц с сортировкой

1.1 Список айди склада и списка материалов, где используется заданный материал

2.Задание условия отбора с использованием предиката LIKE

2.1Найти название ЧП начинающее на “Боч”

3.Задание условия отбора с использованием предиката BETWEEN.

3.1 Список названий ЧП в последние пол года

4.Использование предиката ALL или ANY

4.1Вывести максимальную стоимость, где название ЧП равно ‘Авария’

5.Запрос на отрицание

5.1Вывести стоимость, где id не равен idЧП.

6. Операция объединения UNION с включением комментария в каждую строку.

6.1 Список рабочих с комментарием “адрес” и адресом.

Привилегии - это то, что определяет, может ли указанный пользователь выполнить данную команду. Имеется несколько типов привилегий, соответствующих нескольким типам операций.

Группы пользователей

Привилегированные пользователи (admin):

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

Средние пользователи (user):

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

Каждый пользователь в этой группе будет просматривать данные, не изменяя их. Смотреть запросы, отчеты.


Диаграмма вариантов использования

ER Модель с данными и ключами

Рис. 1. ER-модель с данными и ключами

Это готовая таблица представления данных в БДSQLServer. Здесь показаны все типы данных для свойств таблицы, а также указаны первичные и внешние ключи.

Реализация запросов и отчетов

Запросы на выборку

1.Выбор из нескольких таблиц с сортировкой

1.1 Список айди склада и списка материалов, где используется заданный материал

SELECT Материалы.id, Склад.id, Материалы.Название

FROM Материалы, Склад

WHERE Материалы.СНазвание = Склад.Материал

2.Задание условия отбора с использованием предиката LIKE

2.1 Найти название ЧП начинающее на “Боч”

SELECT[Название_ЧП]

FROMЗаявка

WHERE(Адрес LIKE '%Боч%')

3.Задание условия отбора с использованием предиката BETWEEN.

3.1 Список названий ЧП в последние пол года.

SELECT Название_ЧП FROM Заявка WHERE EndDate BETWEENMONTH(GetDate())-6 ANDGetDate()

4.Использование предиката ALL или ANY.

4.1 Вывести максимальную стоимость где название ЧП равно ‘Авария’.

SELECT MAX(Стоимость) AS Expr1

FROM Чп

WHERE ([Вид_ЧП] = 'Авария')

5.Запрос на отрицание.

5.1 Вывести стоимость где id не равен id_ЧП

SELECTСтоимость

FROMМатериалы

WHERE(id <> [id_ЧП]


6. Операция объединения UNION с включением комментария в каждую строку.

6.1 Список рабочих с комментарием “адрес” и адресом. select id, 'адрес', Адрес from Рабочие

Реализация отчетов

С того момента как пользователь вошел в систему, ведутся так называемые «системные логи» о данном сотруднике: его имя, действие, дата входа и выхода. Для реализации данной возможности, после каждой функции выполняется запись таблицу logi, со всеми необходимыми данными.

Ведение таких «логов» позволяет проанализировать и исправить ошибки (если таковы имелись) при выполнении того или иного запроса. Также это удобно и для администратора системы, за слежением того чем занят пользователь, и что он делал в системе.

Интерфейс ИС

Система начинается с авторизации и регистрации. В Данной системе пользователя зарегистрировать может только админ.

Рис.1. Вход в систему


Рис.2. Регистрация пользователя

Если пользователь вошел успешно, появляется главное окно программы (рис.3)

Рис. 3. Главное окно

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

Рис. 4. Просмотр и редактированние данных(Admin)


Рис. 5. Просмотр данных(User)

Просмотр данных таблицы Смена

Рис. 6. Просмотр и редактированние данных

Просмотр данных таблицы Материалы

Рис. 7. Просмотр и редактирование данных

Просмотр данных таблицы Бригада


Рис. 8. Просмотр и редактированние данных

Просмотр данных таблицы Рабочие

Рис. 9. Просмотр и редактированние данных

Просмотр данных таблицы Заявка

Рис. 10. Просмотр и редактированние данных


Просмотр данных таблицы Склад

Рис. 11. Просмотр и редактированние данных

Просмотр данных таблицы Транспорт

Рис. 12. Просмотр и редактированние данных

Из главного меню программы можно перейти в отчеты, где можно посмотреть какой пользователь, в какую дату и время вошел и вышел.

Рис. 13. Просмотр отчетов

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

Перед тем как начать работу в системе, требуется зарегистрироваться. После прохождения регистрации, можно входить в систему под тем логином, который Вы указали при регистрации. После входа Вам будем присвоен уровень доступа 2 – возможность только просматривать данные некоторых таблиц. Для работы, требуется иметь 1 уровень, который может присвоить только администратор системы.

Как видно из предыдущего пункта, программа состоит из множества диалоговых окон, в каждом из которых есть своя таблица. Таблица служит только для просмотра данных из БД, чтобы добавить туда запись следует нажать на кнопку «Редактор», появиться новое диалоговое окно управления записями в заданной таблице. Там можно создать новую запись, либо изменить уже существующую, нажав на соответствующие клавиши. Также в этом окне можно произвести поиск по таблице, заполнив любые поля. Если требуется изменить данные о уже существующей записи в таблице БД, следует ей выделить в поле таблицы, затем нажать на кнопку «Дополнительно», в новом окне уже будут заполнены все поля, остается только изменить нужное нам поле и нажать на соответствующую кнопку.

Для просмотра дополнительной информации об интересующей нас записи следует выделить нужную нам запись в таблице, а затем нажать на кнопку «Дополнительно» и в новом окне отобразиться информация о данной записи.

В любом окне, где есть таблица, присутствуют два текстовых поля: поле для ввода SQLзапроса и поля для вывода результата. Например, можно ввести selectName, AddrfromUsersнажать на кнопку «Выполнить» и будет выведен результат запроса. Также чтобы узнать поля в той или иной таблице требуется ввести запрос следующей структуры: getcolumnsform [Имятаблицы], результатом будет имена всех полей в той таблице, в которой Вы указали в запросе.

Контрольный пример

Рассмотрим некоторые действия со стороны нового пользователя системы. В окне авторизация пройдем регистрацию как в рис 2. Нажмем на «ОК». В случае если мы заполнили все поля верно, то получим сообщение об успешном создании новой учетной записи.Войдем в систему под тем логином, под которым зарегистрировались – login. Как уже писалось выше, по умолчанию мы получили 2-ой уровень доступа, когда все заблокировано, чтобы это исправить войдем в систему под администратором, с логином admin. Теперь перейдем из главного меню в пункт «Пользователи». Будет предоставлена таблица со всеми зарегистрированными пользователями в системе. Нажимаем на кнопку «Редактор» и логин: login, а в поле уровень доступа выбираем 1. Нажимаем на ОК и теперь данный пользователь может работать с системой, редактируя и добавляя новые записи в таблицы БД.

Создадим новую запись для юридического лица. Перейдем из главного меню в соответствующий пункт и в появившемся окне нажмем на «Редактор». Если все верно заполнено, то получите сообщение об успешном создании новой записи. Далее нажмем на кнопку «обновить» и в таблице появиться только что созданная нами запись. Если же нам нужно просмотреть дополнительную информацию о юридическом лице, выделим данную запись из таблице и нажмем на кнопку «Дополнительно». В новом окне появится информация о лицензии, счете, а также все должности в заданном юр. лице.

Для просмотра «логов», достаточно зайти в директорию программы, и найди файл с именем login.log, где loginинтересующий нас пользователь. В файле будем предоставлены все действия совершенные этим пользователем: посылаемые запросы к СУБД, результат запроса, а также системные ошибки, если таковы имеются.

ЗАКЛЮЧЕНИЕ

Пройдя все этапы конструирования баз данных, начиная от выявления требований и поиска проблем до проектирования программных классов и построением таблиц в СУБД, была написана системадля налоговой инспекции на языке высокого уровня Java с использованием СУБД MSSQLServer. Этапы проектирования БД помогли выявить и определить все требования заказчика к системе, а также определить на раннем этапе все трудности и ошибки будущей системы. Также построенная диаграмма сущность-связь наглядно показала, какие объекты взаимодействуют с системой, их атрибуты и связи между ними, что в дальнейшем позволило уже спроектировать нашу БД для данной предметной области.

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


СПИСОК ЛИТЕРАТУРЫ

1. Вячеслав П. Основы программных требований.

2. НоутонП., ШилдтГ. - Java 2. Наиболее полное руководство. BHV - Санкт - Петербург, 2007.

3. Брюс Эккель. Философия Java, 4-е издание. Питер, 2009.

4. http://khpi-iip.mipk.kharkiv.edu/library/case/leon/index.html - Леоненков А. Самоучитель UML.

5. Джеймс Р. Грофф, Пол Н. Вайнберг – SQL полное руководство. BHV, “Ирина”, Киев, 2001.