- •Введение
- •1 ИНФОЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
- •1.2 Концептуальная модель данных
- •2 ДАТОЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БД
- •2.1 Логическое проектирование
- •2.2 Физическое проектирование
- •2.2.1 Создание базы данных в СУБД PostgreSQL
- •2.2.2 Вопросы безопасности данных
- •3 ОПИСАНИЕ ПРИКЛАДНОЙ ПРОГРАММЫ
- •3.1 Создание функций для работы прикладной программы
- •3.2 Внешний вид и описание работы программы
- •3.3 Поиск и манипулирование данными
- •Заключение
- •Список использованных источников
3 ОПИСАНИЕ ПРИКЛАДНОЙ ПРОГРАММЫ
3.1 Создание функций для работы прикладной программы
Для работы с разработанной базой данных было создано оконное приложение с применением WindowsForms на языке C# для роли гостя. Приложение обеспечивает взаимодействие пользователя с базой данных через набор специализированных функций, реализованных непосредственно на уровне СУБД PostgreSQL.
На рисунке 3.1 представлен скрипт функции get_all_rooms() для отображения таблицы гостиничных номеров в приложении. Функция возвращает все столбцы таблицы «Гостиничный номер» с помощью SELECT.
Рисунок 3.1 – Функция отображения таблицы гостиничных номеров
На рисунке 3.2 представлена функция get_room_numbers(), которая возвращает значения столбца «Номер комнаты» в порядке возрастания из таблицы «Гостиничный номер» для списка в форме для заполнения новой заявки.
Рисунок 3.2 – Функция отображения списка комнат
35
На рисунке 3.3 представлен скрипт функции create_request() для создания новой записи в таблице «Заявка». Функция принимает на вход значения для столбцов «Номер комнаты», «Код гостя», «Количество гостей», «Дата и время заселения», «Дата и время выселения», оставшиеся столбцы («Код администратора» и «Итоговая цена») записываются как NULL.
Рисунок 3.3 – Функция добавления новой заявки на заселение
На рисунке 3.4 представлен скрипт функции get_guest_data() для получения информации о госте из таблицы «Гость». Функция принимает на вход идентификационный номер гостя (в рамках приложения он установлен по умолчанию), находит соответствующую ему запись и возвращает столбцы таблицы «Гость».
36
Рисунок 3.4 – Функция отображения информации о госте
На рисунке 3.5 представлен скрипт функции update_guest_data() для изменения информации о пользователе в таблице «Гость». Функция принимает на вход значения, вводимые в форме и изменяет соответствующую текущему пользователю запись с помощью UPDATE.
Рисунок 3.5 – Функция изменения информации о госте
37
На рисунке 3.6 представлен скрипт функции get_user_requests() для отображения истории заявок пользователя в виде таблицы. Функция соединяет информацию из таблиц «Заявка» и «Администратор» с помощью LEFT JOIN, в качестве столбцов пользователю возвращаются «Номер заявки» (имеется в виду порядковый номер в списке заявок гостя), «Менеджер» (имя и фамилия администратора, который обрабатывал заявку), «Контактный телефон», «Гостиничный номер», «Количество гостей», «Заселение», «Выселение» и «Итоговая стоимость».
Рисунок 3.6 – Функция отображения истории заявок пользователя
На рисунке 3.7 представлен скрипт функции register_guest() для регистрации новых пользователей в системе. Функция принимает на вход информацию о пользователе, вводимую в форме, и формирует новую запись в таблице «Гость» и нового пользователя базы данных с ролью «Гость».
Рисунок 3.7 – Функция для регистрации новых гостей в системе
38
В приложении И представлен полный скрипт с функциями, реализованными на уровне СУБД.
Все созданные на уровне СУБД функции вызываются в приложении в классе «DatabaseFunctions», который хранит в себе определения используемых функций и методов. В методах и функциях также прописана дополнительная обработка ошибок.
На рисунке 3.8 представлена функция GetConnectionString(), использующаяся для формирования параметров подключения к СУБД. В качестве параметров «username» и « password» задаются данные текущего пользователя, вводимые в форме авторизации.
Рисунок 3.8 – Функция формирования параметров подключения к СУБД
Для регистрации новых пользователей также есть отдельная функция
GetRegistrationConnectionString(), с параметрами подключения от имени администратора (рисунок 3.9).
Рисунок 3.9 – Функция подключения от имени администратора БД
При каждом обращении к базе данных вызывается функция TestConnection() для проверки доступа к базе, в случае ошибки пользователю выводится сообщение об ошибке на уровне СУБД (рисунок 3.10).
Рисунок 3.10 – Функция проверки подключения к базе данных
39
При авторизации в систему из логина текущего пользователя извлекается уникальный идентификатор (цифры в конце логина) записи в таблице «Гость» с помощью функции GetGuestIdByUsername() (рисунок
3.11).
Рисунок 3.11 – Функция извлечения уникального идентификатора текущего пользователя
Метод GetAllRooms() вызывает функцию СУБД get_all_rooms(),
получает записи из таблицы «Гостиничный номер» и выводит их в элементе
DataGridView (рисунок 3.12).
Рисунок 3.12 – Метод для отображения таблицы «Гостиничный номер» внутри формы
40
Функция GetRoomNumbers() вызывает функцию СУБД get_room_numbers(), получает номера комнат из таблицы «Гостиничный номер» и добавляет их в список roomNumbers, который впоследствии будет отображаться в форме для заполнения новой заявки (рисунок 3.13).
Рисунок 3.13 – Функция получения списка комнат гостиничных номеров
Функция CreateRequest() вызывает функцию СУБД create_request() для формирования новой записи в таблице «Заявка» (рисунок 3.14).
Рисунок 3.14 – Функция формирования новой заявки
41
Функция GetGuestData() вызывает функцию СУБД get_guest_data() для получения информации о текущем пользователе системы из таблицы «Гость»
(рисунок 3.15).
Рисунок 3.15 – Функция получения информации о госте из базы данных
Функция UpdateGuestData() вызывает функцию СУБД update_guest_data() для изменения информации о текущем пользователе системы в таблице «Гость» (рисунок 3.16).
42
Рисунок 3.16 – Функция обновления информации о госте в базе данных
Функция RegisterNewGuest() вызывает функцию СУБД register_guest() для регистрации пользователя в таблице «Гость» и в качестве пользователя базы данных, при успешной регистрации появляется окно с логином и паролем для последующей авторизации (рисунок 3.17).
Рисунок 3.17 – Функция регистрации новых пользователей системы
43
Метод GetUserRequests() вызывает функцию СУБД get_user_requests(), получает данные из таблиц «Заявка» и «Администратор» и выводит их в элементе DataGridView (рисунок 3.18).
Рисунок 3.18 – Метод для отображения столбцов таблиц «Заявка» и «Администратор» в виде единой таблицы внутри формы
Содержимое класса «DatabaseFunctions» со всеми описанными методами, функциями и атрибутами класса для хранения информации о текущем пользователе системы представлено в приложении К.
44
