Введение
Аварийная служба
Аварийная служба создана и предназначена для оперативной локализации и ликвидации аварийных ситуаций в сетях тепло и водоснабжения, канализационных сетях, сетях электроснабжения, слаботочных сетях и устранения неисправностей оборудования систем вентиляции и кондиционирования воздуха. Специалисты аварийной службы обладают большим опытом в ликвидации аварийных ситуаций различной степени сложности, в работе используются современные технологии и применяется профессиональное оборудование, что в комплексе позволяет оперативно и успешно решать проблемы, возникающие на объекте.
Характеристика аварийной службы:
·Выезд аварийной бригады (прибытие на место аварии в течение 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.