- •Оглавление
- •1 Анализ проблем предприятия
- •2 Постановка проблемы
- •3 Анализ способов решения проблемы
- •3.1 Выбор формы представления данных
- •3.2 Выбор субд
- •3.3 Выбор языка программирования
- •4 Реализация решения
- •4.1 Проектирование бд
- •4.1.1 Концептуальное проектирование
- •4.1.2 Логическое проектирование
- •4.1.3 Физическое проектирование
- •4.2 Создание пользовательского интерфейса
- •Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
4.1.2 Логическое проектирование
Логическое проектирование – создание схемы базы данных на основе конкретной модели данных, например, реляционной модели данных. Для реляционной модели данных даталогическая модель — набор схем отношений, обычно с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.
Преобразование концептуальной модели в логическую модель, как правило, осуществляется по формальным правилам. На этапе логического проектирования учитывается специфика конкретной модели данных, но может не учитываться специфика конкретной СУБД.
Создадим логическую схему для реляционной базы данных.
4.1.3 Физическое проектирование
Физическое проектирование — создание схемы базы данных для конкретной СУБД. Специфика конкретной СУБД может включать в себя ограничения на именование объектов базы данных, ограничения на поддерживаемые типы данных и т. п. Кроме того, специфика конкретной СУБД при физическом проектировании включает выбор решений, связанных с физической средой хранения данных (выбор методов управления дисковой памятью, разделение БД по файлам и устройствам, методов доступа к данным), создание индексов и т. д.
Используя СУБД Microsoft Access, создадим базу данных (рис. 4.2).
Рисунок 4.2 – Схема данных базы Microsoft Access
На рисунке 4.2 видим структуру созданной базы данных. Таблицы связаны между собой ключевыми полями и связями «один-ко-многим». Связь «один-ко-многим» означает, что, например, у одного отделения почтовой связи может быть только один адрес, но на одном адресе может находиться несколько отделений.
Создана дополнительная таблица Users для реализации многопользовательского доступа к базе данных через интерфейс пользователя.
Следующим пунктом является заполнение базы данных. На данном этапе были по достоинству оценены плюсы реляционной модели данных: при заполнении таблицы «ИнтернетКанал» в поле «Название оператора» вводится только индекс оператора, в то время как в таблице «Оператор» содержится 8 пунктов с названиями операторов.
Оценить правильность проектирования базы данных можно путём составления запроса. Выполняется он на языке структурированных запросов SQL (Structured Query Language).
Для начала выполним запрос на выборку, где выведем основные столбцы базы данных со всеми записями. Сделать это можно, используя «Конструктор запросов» или «Режим SQL» в СУБД Microsoft Access. Текст запроса представлен в приложении А.
Результат выполнения запроса можно увидеть на рисунке 4.3. С помощью запроса выведены все данные таблицы, значит база данных спроектирована правильно.
Рисунок 4.3 – Результат выполнения запроса
Далее, создадим запрос, который покажет все отделения почтовой связи, находящиеся в городе Томск, имеющие 3 операционных окна и выведет только название ОПС, его адрес и телефон. Результат представлен на рисунке 4.4.
Рисунок 4.4 – Результат выполнения запроса «Томск, 3 окна»
4.2 Создание пользовательского интерфейса
После того, как база данных спроектирована и заполнена, приступаем к реализации пользовательского интерфейса управления базой данных.
В ходе анализа потребностей работников отдела информационных технологий выяснено, что необходимы следующие функции пользовательского интерфейса:
– Лёгкий дизайн для простоты использования;
– Многопользовательский режим, включая регистрацию пользователя;
– Просмотр общей таблицы с данными;
– Просмотр таблиц, составляющих базу данных;
– Сортировка по ключевым параметрам.
Таблица Users была создана для хранения данных о пользователях. Она включает в себя три поля: Login, Password, isAdmin – логин, пароль и является ли пользователь администратором соответственно.
Создано три формы Windows Forms. Первая из них, LoginForm(рис. 4.5), содержит два объекта TextBox, LinkLabel для перехода к другой форме и кнопку Button. Код формы LoginForm представлен в приложении Б.
Рисунок 4.5 – Форма LoginForm
Текст из полей TextBox передаётся в переменные login и password, далее с помощью запроса на выборку и метода ExcecuteScalar() в таблице Users ищется совпадение. Если пользователь найден, то осуществляется переход на форму Datas. Иначе, пользователь получает сообщение об ошибке.
Нажатие на LinkLabel ведёт на форму под названием Register, содержащую два поля TextBox и кнопку Button, где пользователю предлагается придумать свои авторизационные данные. Затем осуществляется возврат к форме LoginForm. Код формы Register представлен в приложении В.
Запрос написан с применением параметров в теле запроса, что исключает возможность SQL-инъекций. SQL-инъекция — это атака, направленная на приложение, в ходе которой конструируется SQL-выражение из пользовательского ввода путем простой конкантенации. В случае успеха атакующий может изменить логику выполнения SQL-запроса так, как это ему нужно. Чаще всего, злоумышленники извлекают из базы данных нужную информацию, а затем удаляют данные при помощи DROP DATATABLE.
Основная форма программы Datas (рис. 4.6) состоит из поля отображения информации из базы данных, строки меню и области управления. Последняя, в свою очередь, включает в себя кнопку Button для отображения всей таблицы, поля для сортировки, потабличный вывод информации. Расположены органы управления базой данных на вкладках TabPages. Код формы Datas представлен в приложении Г.
Рисунок 4.6 – Основная форма Datas
В результате проделанной работы были соблюдены все пожелания работников отдела информационных технологий:
– Минималистичный дизайн прост в освоении;
– Многопользовательский режим реализован в виде таблицы с данными пользователей, при первом запуске программа запрашивает путь к базе данных, которая хранится в общем доступе отдела;
– Реализован потабличный просмотр, а также просмотр основной таблицы базы данных;
– Добавлена сортировка по ключевым параметрам (рис. 4.7);
Рисунок 4.7 – Сортировка по ключевым параметрам
В процессе тестирования готового программного обеспечения на предприятии был получен запрос на добавление новой функции в приложение – выгрузку таблиц в файл электронной таблицы. Данная функция необходима, когда в срочном порядке нужно сохранить отсортированные данные и передать информацию. Таким образом, добавлена функция выгрузки таблиц в формат Microsoft Excel *.xlsx (рис. 4.8).
Рисунок 4.8 – Экспорт таблицы в Microsoft Excel
ЗАКЛЮЧЕНИЕ
В процессе преддипломной практики спроектирована база данных с помощью СУБД Microsoft Access, а также создан пользовательский интерфейс с помощью среды программирования Microsoft Visual Studio, используя язык программирования и Windows Form API. Получены практические навыки проектирования баз данных, разработки и тестирования ПО.
Следует отметить, что полученное программное обеспечение успешно используется в отделе информационных технологий предприятия УФПС Томской области – филиала ФГУП «Почта России».
СПИСОК ИСПОЛЬЗОВАННЫЫХ ИСТОЧНИКОВ
1. Евсеева, А.Б. Работа с базами данных на языке C#. Технология ADO.NET: Учебное пособие / сост. О. Н. Евсеева, А. Б. Шамшев. – Ульяновск: УлГТУ, 2009. – 170 с.
2. ADO.NET: Обзор технологии [Электронный ресурс]. – Режим доступа: http://www.cyberguru.ru/dotnet/ado-net/adonet-overview.html, свободный. – (Дата обращения 12.05.2017).
3. ADO. NET [Электронный ресурс] / П. В. Ветров, Тюменский государственный университет. Институт математики и компьютерных наук. – Режим доступа: http://www.codenet.ru/db/other/ado-dot-net/, свободный. – (Дата обращения 12.05.2017).
4. Евсеева, О.Н. ОСНОВЫ ЯЗЫКА C# 2005: Учебное пособие / сост. О. Н. Евсеева, А.Б.Шамшев. – Ульяновск: УлГТУ, 2008. – 132 с.
5. C Sharp – Wikipedia [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/C_Sharp, свободный. – (Дата обращения 12.05.2017).
6. Евсеева, О.Н. Отладка и тестирование приложений в среде Visual Studio 2005 : учебное пособие / сост. О. Н. Евсеева, А. Б. Шамшев. – Ульяновск : УлГТУ, 2008. – 96 с.
7. Достоинства и недостатки СУБД [Электронный ресурс]. – Режим доступа: http://pivot-table.ru/dostoinstva-i-nedostatki-subd.html, свободный. – (Дата обращения 12.05.2017)..
8. Проектирование баз данных – Wikipedia [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Проектирование_баз_данных, свободный. – (Дата обращения 12.05.2017).
9. Советов, Б.Я. Базы данных: теория и практика: Учебник для бакалавров / Б.Я. Советов, В.В. Цехановский, В.Д. Чертовской. – М.: Юрайт, 2013. – 463 c.
10. Кириллов, В.В. Введение в реляционные базы данных.Введение в реляционные базы данных / В.В. Кириллов, Г.Ю. Громов. – СПб.: БХВ-Петербург, 2012. – 464 c.
11. Кузин, А.В. Базы данных: Учебное пособие для студ. высш. учеб. заведений / А.В. Кузин, С.В. Левонисова. – М.: ИЦ Академия, 2012. – 320 c.
12. Р. Фрост Базы данных. Проектирование и разработка / Рэймонд Фрост, Джон Дей, Крейг Ван Слайк. – М.: – НТ Пресс, 2007. – 592с.
13. Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: Учебное пособие / В.Ю. Пирогов. – СПб.: БХВ-Петербург, 2009. – 528 c.
14. Д. Шарп Microsoft Visual C#. Подробное руководство. / Д. Шарп. – СПб.: – Питер, 2017. – 848с.
15. Database comparsion – Digitalocean [Электронный ресурс]. – Режим доступа: https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql-a-comparison-of-relational-database-management-systems, свободный. – (Дата обращения 12.05.2017).
