Разработка приложения базы данных "Гостиница"
Создание базы данных SQL Server для гостиницы с использованием хранимых процедур, запросов, представлений и триггеров. Информационная и даталогическая модели БД. Физическое проектирование БД. Языки программирования, на которых написана программа.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.04.2024 |
Размер файла | 4,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ «ПОЛЕССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Факультет инженерный
Кафедра информационных технологий и интеллектуальных систем
Специальность «Информационные системы и технологии (в экономике)»
Специализация (направление специальности) «Информационные технологии финансово-кредитной системы»
КУРСОВАЯ РАБОТА (ПРОЕКТ)
по дисциплине «Разработка приложений баз данных»
на тему: Разработка приложения базы данных «Гостиница»
Студент
Терещук Дарья Константиновна
Пинск 2023
- Оглавление
- Перечень основных элементов и терминов
- Введение
- Глава 1. Назначение и область применения
- 1.1 Назначение программы
- 1.2 Описание предметной области
- Глава 2. Технический проект базы данных информационной системы
- 2.1 Перечень сущностей
- 2.2 Информационная модель базы данных
- 2.3 Даталогическая модель базы данных
- 2.4 Физическое проектирование базы данных
- 2.5 SQL-определения запросов на выборку
- 2.6 SQL-определения представлений
- 2.7 Проектирование хранимых процедур
- 2.9 SQL-определения триггеров (не менее 2)
- Глава 3. Описание программы
- 3.1 Языки программирования, на которых написана программа
- 3.2 Среда разработки
- 3.3 Привязка проекта к GitHub
- 3.4 База данных
- 3.5 Схема классов
- Глава 4. Разработка клиентского приложения БД
- 4.1 Системные требования
- 4.2 Загрузка и запуск программы
- 4.3 Страница авторизации
- 4.4 Страница «Поиск»
- 4.5 Страница “Комнаты”
- 4.6 Страница “Постояльцы”
- Заключение
- Список использованных источников
- Приложение А
- Перечень основных элементов и терминов
- Элементы ООП:
1) Инкапсуляция
2) Полиморфизм
3) Наследование
4) Коллекции
5) События
6) Элементы управления
7) Обработка исключительных ситуаций
8) Коллекции
Созданные классы:
Program.cs ;
Room.cs ;
RoomAllocation.cs ;
User.cs ;
InternalData.cs ;
Guest.cs ;
Элементы БД:
1) Запросы (10)
2) Представления (5)
3) Хранимые процедуры (5)
4) Триггеры (3)
Созданные таблицы БД
Employees -Сотрудники.
Guests -Гости.
List Of Rendered Services - Список оказываемых услуг.
Positions - Позиции.
Room Allocation - Распределение номеров.
Rooms - Комнаты.
RoomService - Обслуживание номеров.
Users - Пользователи.
Services - Сервисы.
Введение
База данных - важнейший компонент любой информационной системы. База данных позволяет структурировано хранить большие объемы информации конкретного предприятия, что значительно рационализирует ведение отчетов и создание архивов. Оптимизированные базы данных значительно увеличивают производительность, построенных на их использовании, программ.
С развитием информационных технологий и предпринимательства, актуальность использования баз данных значительно увеличилось. Успешные и крупные компании не могут представить свой бизнес без четко построенной информационной системы. Базы данных, построенные на SQL Server, отвечают высоким требованиям производительности и безопасности.
Целью курсового проекта является систематизация, закрепление теоретических знаний и реализация программной системы "Гостиница" для автоматизации деятельности и обеспечения хранения, накопления и предоставления информации.
Процесс накопления, обработки и использования информации постоянно ускоряется. В связи с этим возникает необходимость использования вычислительной техники, позволяющей эффективно хранить, обрабатывать и распределять накопленные данные.
Предметом исследования является создание базы данных SQL Server для гостиницы с использованием хранимых процедур, запросов, представлений и триггеров.
Задачами курсового проекта являются:
- анализ и изучение предметной области по теме индивидуального задания
- использование основных принципов базы данных;
- разработка программного обеспечения, позволяющего упростить работу гостиничных комплексов.
Результатом выполнения проекта будет являться программа, обеспечивающая автоматизацию системы учёта деятельности гостиничного комплекса. Позволяет хранить данные о сотрудниках комплекса, его проживающих, номерах гостиницы и данных о внесённой оплате аренды номера.
Программный продукт позволит выполнять следующие функции:
- добавление данных;
- удаление данных;
- ведение учёта работы гостиничного комплекса.
server гостиница триггер даталогический
Глава 1. Назначение и область применения
1.1 Назначение программы
Программа предназначена для автоматизации системы учёта деятельности гостиничного комплекса. Позволяет хранить данные о проживающих в гостинице, сотрудниках и номерах комплекса, а также историю плат за аренду номера.
1.2 Описание предметной области
Гостиница -- средство размещения, состоящее из определённого количества номеров, имеющее единое руководство, предоставляющее набор услуг (минимум -- заправка постелей, уборка номера и санузла). Гостиницы подразделяются на различные классы в соответствии с предоставляемыми услугами и оборудованием номеров.
Входными данными является информация о сотрудниках, проживающих, номерах.
Входные данные заполняются администратором.
В курсовой работе разрабатывается база данных для гостиницы. Гостиница содержит в себе номера, которые имеют разный уровень комфортности, сервиса и, соответственно, оплаты. Оплата включает в себя код расчетной карточки и код услуги. Каждый номер имеет код номера, код типа, количество мест в номере и стоимость. Тип номера характеризуется кодом типа, названием, описанием типа.
Все пребывающие и размещаемые в гостинице граждане при заселении должны заполнить карточку регистрации. Карточка регистрации содержит код карточки, код номера, код гражданина, дату прибытия и дату убытия. Кроме того, для расчетов с клиентами администрация гостиницы заводит расчетные карточки, которые содержат данные о размещении клиента, оказанных услугах и всех расчетах с ним, а также код расчетной карты и код клиента.
Любой номер гостиницы имеет номер, по которому ведется учет проживающих в гостинице. Кроме задач ведения данных, в системе могут решаться задачи поиска, например, поиск номера или места в номере в соответствии с некоторыми критериями поиска. Другая задача поиска -- это поиск клиента, проживающего в гостинице в данный момент или проживавшего в ней ранее. Анализ предметной области курсовой на тему "Гостиница" является важным этапом в разработке курсовой работы. В ходе анализа необходимо учитывать все аспекты, описанные выше, и определить, какие из них будут включены в работу.
Первым шагом является изучение литературы по теме. Необходимо ознакомиться с основными понятиями и определениями, которые связаны с гостиничным бизнесом. Также следует изучить историю развития гостиничного бизнеса, особенности его функционирования в разных странах и регионах, а также текущие тенденции и перспективы развития данной отрасли. Далее необходимо проанализировать услуги, которые предоставляют гостиницы. Это позволит определить, какие виды услуг будут включены в работу и какие аспекты будут рассмотрены более подробно. Следует учитывать различные категории номеров, питание, транспортные услуги, услуги консьержа и другие виды услуг.
Маркетинг гостиницы также является важным аспектом, который необходимо проанализировать. В рамках курсовой работы можно рассмотреть различные стратегии маркетинга, используемые гостиницами для привлечения клиентов, а также их эффективность.
Управление гостиницей является одним из ключевых аспектов, который также должен быть проанализирован. Это включает управление персоналом, финансами, бронированием и инфраструктурой гостиницы. В рамках курсовой работы можно рассмотреть основные принципы управления гостиницей и определить, какие аспекты будут рассмотрены более подробно.
Конкуренция является еще одним важным аспектом, который необходимо проанализировать. В рамках курсовой работы можно рассмотреть конкуренцию между гостиницами в одном регионе или на одном рынке, а также конкуренцию с другими формами размещения, такими как апартаменты, хостелы и т.д.
Технологии также играют важную роль в гостиничном бизнесе. В рамках курсовой работы можно рассмотреть современные технологии, которые используются для улучшения качества обслуживания гостей, такие как системы бронирования, системы управления отелями и т.д.
Условия проживания гостей в гостинице также являются важным аспектом, который необходимо проанализировать. В рамках курсовой работы можно рассмотреть комфортные номера, чистоту, безопасность и другие условия проживания гостей в гостинице.
Экологические аспекты работы гостиницы также следует учитывать при анализе предметной области курсовой работы. В рамках курсовой работы можно рассмотреть экологические проблемы, с которыми сталкиваются гостиницы, и возможные пути их решения.
Таким образом, анализ предметной области курсовой на тему "Гостиница" является важным этапом в разработке работы и позволяет определить основные аспекты, которые будут рассмотрены в работе.
Для работы с программой «Hotel» не нужно специальных навыков, достаточно базовых знаний персонального компьютера.
Разрабатываемое приложение будет иметь удобный, понятный пользовательский интерфейс. Как и во всех приложениях данного типа будет определена функция выхода из программы, проверка корректности вводимых данных и обработка исключительных ситуаций.
В данной главе были сформированы назначение и область применения разрабатываемой программы, а также была описана предметная область по теме курсового проекта.
Глава 2. Технический проект базы данных информационной системы
2.1 Перечень сущностей
· Сотрудники.
· Гости.
· Список оказываемых услуг.
· Позиции.
· Распределение номеров.
· Комнаты.
· Обслуживание номеров.
· Пользователи.
· Сервисы.
2.2 Информационная модель базы данных
Для реализации ранее поставленной цели стоит выделить основные объекты, которые будут храниться в базе данных, с которыми будет происходить взаимодействие.
Гостиница - основной объект проекта, должен хранить информацию о комнатах и гостях, которая будет предоставлена администратору, рабочему и гостю.
Номера - объект проекта, должен хранить информацию о комнатах.
Сотрудники - объект проекта, должен хранить информацию о сотрудниках.
Пользователи - объект проекта, должна хранить информацию о пользователях.
Гости - объект проекта, должна хранить информацию о гостях.
Позиции - объект проекта, должна хранить информацию о должностях.
Сервисы - объект проекта, должна хранить информацию о сервисах.
Рисунок 2.2.1 - ER - диаграмма БД «Гостиница
2.3 Даталогическая модель базы данных
Рисунок 2.3.1 - Логическая модель БД
2.4 Физическое проектирование базы данных
Таблица 2.1 - Сущность Employees
Наименование атрибута |
Описание |
|
ID Employee |
Идентификационный номер сотрудника |
|
Full_Name |
Полное имя |
|
Phone |
Телефон |
|
ID_Position |
Идентификационный номер позиции |
Таблица 2.2 - Сущность Guests
Наименование атрибута |
Описание |
|
ID_Guest |
Идентификационный номер гостя |
|
Full Name |
Полное имя |
|
Gender |
Пол |
|
Passport_ID |
Дата прибытия |
|
Arrival_Date |
Продолжительность прибытия |
|
Length_Of_Stay |
Таблица 2.3 - Сущность ListOfRenderedServices
Наименование атрибута |
Описание |
|
ID Guest |
Идентификационный номер гостя |
|
ID Service |
Идентификационный номер сервиса |
|
Count |
Стоимость |
Таблица 2.4 - Сущность Positions
Наименование атрибута |
Описание |
|
ID Position |
Идентификационный номер позиции |
|
Name |
Название |
|
Salary |
Зарплата |
Таблица 2.5 - Сущность RoomAllocation
Наименование атрибута |
Описание |
|
ID Guest |
Идентификационный номер гостя |
|
Number_Of_Room |
Номер комнаты |
Таблица 2.6 - Сущность Rooms
Наименование атрибута |
Описание |
|
Number |
Номер |
|
Number_Of_Places |
Число мест |
|
Occupied_Places |
Занятые места |
|
Price |
Цена |
Таблица 2.7 - Сущность RoomService
Наименование атрибута |
Описание |
|
ID Employee |
Идентификационный номер сотрудника |
|
Number_Of_Room |
Номер комнаты |
Таблица 2.8 - Сущность Services
Наименование атрибута |
Описание |
|
ID_Service |
Идентификационный номер сервиса |
|
Name |
Название |
|
Price |
Цена |
Таблица 2.9 - Сущность Users
Наименование атрибута |
Описание |
|
Name |
Имя |
|
Login |
Логин |
|
Password |
Пароль |
|
Type_Of_User |
Тип пользователя |
Рисунок 2.4.1 - Физическая модель БД
2.5 SQL-определения запросов на выборку
Запрос -- объект базы данных, который может выполнять множество функций в базе данных. Одна из их основных функций -- находить информацию в таблицах. Нужная информация обычно содержится в нескольких таблицах, но, если использовать запросы, ее можно просматривать в одной. Кроме того, запросы дают возможность фильтровать данные (для этого задаются критерии поиска), чтобы отображались только нужные записи.
В курсовой работе все запросы написаны с помощью языка SQL. Запросы состоят из одиночной команды SELECT с достаточно простой структурой, однако, путем ее использования можно выполнить сложную обработку данных.
1 Запрос о сотруднике
Самый просто запрос, который отображает имя сотрудника, должность и телефон.
SELECT Employees.Full_Name AS Сотрудник, Positions.Name AS Должность, Employees.Phone AS Телефон
FROM Employees INNER JOIN
Positions ON Employees.ID_Position = Positions.ID_Position
ORDER BY Сотрудник
Рисунок 2.5.1 Запрос о сотруднике
2. Запрос , выводящий информацию о сотруднике
В данном запросе будет отражена информация о сотруднике, его должность , номер комнаты и телефон.
SELECT Employees.Full_Name AS Сотрудник, Positions.Name AS Должность, Rooms.Number AS [Номер комнаты], Employees.Phone AS Телефон
FROM Employees INNER JOIN
Positions ON Employees.ID_Position = Positions.ID_Position INNER JOIN
RoomService ON Employees.ID_Employee = RoomService.ID_Employee INNER JOIN
Rooms ON RoomService.Number_Of_Room = Rooms.Number
ORDER BY Сотрудник, [Номер комнаты]
Рисунок 2.5.2 Запрос , выводящий информацию о сотруднике
3. Запрос о информации о гостях
Вывод ФИО, пол, паспорт, дата прибытия и время прибывания, номер комнаты.
SELECT Guests.Full_Name AS Постоялец, Guests.Gender AS Пол,
Guests.Passport_ID AS Паспорт, Guests.Arrival_Date AS [Дата прибытия],
Guests.Length_Of_Stay AS [Время пребывания], Rooms.Number AS [Номер комнаты]
FROM Guests INNER JOIN
RoomAllocation ON Guests.ID_Guest = RoomAllocation.ID_Guest INNER JOIN
Rooms ON RoomAllocation.Number_Of_Room = Rooms.Number
ORDER BY Постоялец
Рисунок 2.5.3 Запрос гостей
4. Запрос позиций
В данном запросе будут отражены должности работников и их зарплаты.
SELECT Name AS Должность, Salary AS Зарплата
FROM Positions
ORDER BY Должность
Рисунок 2.5.4 Запрос позиции
5. Запрос сервиса
В таблице этого запроса отображается информация гостей, и названия услуг.
SELECT Guests.Full_Name AS Постоялец, Guests.Gender AS Пол,
Guests.Passport_ID AS Паспорт, Services.Name AS [Название услуги],
ListOfRenderedServices.Count AS [Кол-во]
FROM Services INNER JOIN
ListOfRenderedServices ON Services.ID_Service = ListOfRenderedServices.ID_Service INNER JOIN
Guests ON ListOfRenderedServices.ID_Guest = Guests.ID_Guest
ORDER BY Постоялец, [Название услуги]
Рисунок 2.5.5 Запрос сервиса
6. Запрос о комнатах
В данном запросе будет отражена информация и комнатах, количество мест, цена и занятые места.
SELECT Number AS [Номер комнаты], Number_Of_Places AS [Кол-во мест], Occupied_Places AS [Занятые места], Price AS Цена
FROM Rooms
ORDER BY [Номер комнаты]
Рисунок 2.5.6 Запрос о комнатах
7. Запрос о сотрудниках
В запросе будет выведена информация о сотрудниках, их должность и телефон.
SELECT Rooms.Number AS [Номер комнаты], Employees.Full_Name AS Сотрудник, Positions.Name AS Должность, Employees.Phone AS Телефон
FROM Rooms INNER JOIN
RoomService ON Rooms.Number = RoomService.Number_Of_Room INNER JOIN
Employees ON RoomService.ID_Employee = Employees.ID_Employee INNER JOIN
Positions ON Employees.ID_Position = Positions.ID_Position
ORDER BY [Номер комнаты], Сотрудник
Рисунок 2.5.7 Запрос о сотрудниках
8. Запрос о комнатах и постояльцев.
В запросе будет вывод комнат, постояльцы , которые в них проживают, информация о них, и количество мест.
SELECT Rooms.Number AS [Номер комнаты], Rooms.Number_Of_Places AS [Кол-во мест],
Guests.Full_Name AS Постоялец, Guests.Gender AS Пол, Guests.Passport_ID AS Паспорт
FROM Rooms INNER JOIN
RoomAllocation ON Rooms.Number = RoomAllocation.Number_Of_Room INNER JOIN
Guests ON RoomAllocation.ID_Guest = Guests.ID_Guest
ORDER BY [Номер комнаты], Постоялец
Рисунок 2.5.8 Запрос о постояльцев
9. Запрос сервисов 2
В данной таблице будет отражена информация о видах сервиса и их стоимости.
SELECT Name AS [Название услуги], Price AS Цена
FROM Services
ORDER BY [Название услуги]
Рисунок 2.5.9 Сервисы
10. Запрос пользователей
В данном запросе будет выведена информация о пользователях, их логин, пароль.
SELECT Name AS Пользователь, Login AS Логин, Password AS Пароль, Type_Of_User AS [Тип пользователя]
FROM Users
ORDER BY Пользователь
Рисунок 2.5.10 Пользователи
2.6 SQL-определения представлений
Представление 1 отображает информацию о сотрудниках и о закрепленных за ними комнатах. Данное представление содержит информацию о должности, номере, количестве мест.
Представление 2 отображает информацию о постояльцах и о комнатах, в которых они проживают. Данное представление содержит информацию о номере комнаты и цене.
Рисунок 2.6.1 Информация о клиентах
Рисунок 2.6.2 Информация о стоимости
Представление 3 отображает информацию о постояльцах, о комнатах, в которых они проживают, и о сотрудниках, которые закреплены за этими комнатами. Данное представление содержит информацию о телефоне, должности.
Рисунок 2.6.3 Информация о гостях
Представление 4 отображает информацию о постояльцах и об оказанных им услугах. Данное представление содержит информацию о постояльце, ФИО ,услуга, данные паспорта и стоимость услуги.
Рисунок 2.6.4 Информация о постояльце
Представление 5 отображает информацию о комнатах и о сотрудниках, которые закреплены за этими комнатами. Данное представление содержит информацию о комнатах ,ФИО сотрудника , должность и телефон.
Рисунок 2.6.5 Информация о комнатах
2.7 Проектирование хранимых процедур
Хранимая процедура -- объект базы данных, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть входные и выходные параметры и локальные переменные, в них могут производиться числовые вычисления и операции над символьными данными, результаты которых могут присваиваться переменным и параметрам.
Хранимая процедура -- это специальный тип пакета инструкций Transact-SQL, созданный, используя язык SQL и процедурные расширения. Основное различие между пакетом и хранимой процедурой состоит в том, что последняя сохраняется в виде объекта базы данных. Иными словами, хранимые процедуры сохраняются на стороне сервера, чтобы улучшить производительность и постоянство выполнения повторяемых задач.
Хранимая процедура предварительно компилируется перед тем, как она сохраняется в виде объекта в базе данных. Предварительно компилированная форма процедуры сохраняется в базе данных и используется при каждом ее вызове. Это свойство хранимых процедур предоставляет важную выгоду, заключающуюся в устранении (почти во всех случаях) повторных компиляций процедуры и получении соответствующего улучшения производительности. Это свойство хранимых процедур также оказывает положительный эффект на объем данных, участвующих в обмене между системой баз данных и приложениями. В частности, для вызова хранимой процедуры объемом в несколько тысяч байтов может потребоваться меньше, чем 50 байт. Когда множественные пользователи выполняют повторяющиеся задачи с применением хранимых процедур, накопительный эффект такой экономии может быть довольно значительным.
Всего, в данном курсовом проекте, реализовано 5 хранимых процедур: “Добавление гостя”, “Добавление пользователя”, “Удаление услуги по названию”, “Показ всех постояльцев”, “Поиск комнаты по данным”.
1. Добавление гостя. Данная хранимая процедура добавляет деталь в таблицу Guest .
Создание:
USE [HotelDB]
GO
/****** Object: StoredProcedure [dbo].[AddGuest] Script Date: 22.05.2023 16:12:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AddGuest]
@fullName nchar(50),
@gender nchar(10),
@passport nchar(20),
@arrivalDate nchar(20),
@lengthOfStay nchar(10),
@numberOfRoom int = null
AS
INSERT INTO Guests(Full_Name, Gender, Passport_ID, Arrival_Date, Length_Of_Stay)
VALUES (@fullName, @gender, @passport, @arrivalDate, @lengthOfStay)
IF @numberOfRoom is not null
BEGIN
INSERT INTO RoomAllocation(ID_Guest, Number_Of_Room)
VALUES ((SELECT TOP(1) ID_Guest FROM Guests WHERE Full_Name = @fullName AND Gender = @gender AND Passport_ID = @passport
AND Arrival_Date = @arrivalDate AND Length_Of_Stay = @lengthOfStay), @numberOfRoom)
UPDATE Rooms SET Occupied_Places = Occupied_Places - 1 WHERE Number = @numberOfRoom
END;
Запустим данную хранимую процедуру путем: Autoshop (название БД) - Программирование - Хранимые процедуры - ПКМ по dbo.Добавление постояльца - выполнить хранимую процедуру.
Далее нам высветится диалоговое окно.
Вручную заполним поля в столбце “Значения”.
В результате в таблицу Guests добавилась еще 1 деталь с заданными параметрами.
2. Добавление пользователя. Данная хранимая процедура добавляет клиента в таблицу Users.
Рисунок 2.7.2 Выполнение процедуры "Добавление гостя", часть 1
Рисунок 2.7.3 Выполнение процедуры "Добавление гостя", часть 2
Рисунок 2.7.4 Выполнение процедуры "Добавление гостя", часть 3
Создание:
USE [HotelDB]
GO
/****** Object: StoredProcedure [dbo].[AddUser] Script Date: 22.05.2023 16:12:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AddUser]
@name nchar(20),
@login nchar(30),
@password nchar(30),
@typeOfUser int = 2
AS
INSERT INTO Users(Name, Login, Password, Type_Of_User)
VALUES (@name, @login, @password, @typeOfUser)
Запустим данную хранимую процедуру путем: Autoshop (название БД) - Программирование - Хранимые процедуры - ПКМ по dbo.Добавление клиента - выполнить хранимую процедуру.
Далее нам высветится диалоговое окно.
Рисунок 2.7.6 Выполнение хранимой процедуры "Добавление пользователя"
Вводим все значения и нажимаем “ОК”.
В результате в таблицу Users добавится пользователь с заданными параметрами.
Рисунок 2.7.7 Выполнение хранимой процедуры "Добавление пользователя" часть 2
3. Удаление услуги по названию. Данная хранимая процедура удаляет деталь в таблицу Service.
Создание:
USE [HotelDB]
GO
/****** Object: StoredProcedure [dbo].[DeleteServiceByName] Script Date: 22.05.2023 17:05:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[DeleteServiceByName]
@name nchar(20)
AS
DELETE FROM Services WHERE Name = @name .
Вывод:
Рисунок 2.7.8 Выполнение хранимой процедуры " Удаление услуги по названию "
4.Показ всех постояльцев. Данная хранимая процедура показывает всех постояльцев
Создание:
USE [HotelDB]
GO
/****** Object: StoredProcedure [dbo].[SelectAllGuests] Script Date: 22.05.2023 17:09:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SelectAllGuests]
AS
SELECT
Full_Name AS 'ФИО',
Gender AS 'Пол',
Passport_ID AS 'Паспортные данные',
Arrival_Date AS 'Дата прибытия',
Length_Of_Stay AS 'Время пребывания'
FROM Guests
Вывод:
Рисунок 2.7.9 Вывод процедуры
5. Поиск комнаты по данным. Данная хранимая процедура ищет комнаты по данным.
Создание:
USE [HotelDB]
GO
/****** Object: StoredProcedure [dbo].[SelectRoomByPassportId] Script Date: 22.05.2023 17:09:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SelectRoomByPassportId]
@passport nchar(20)
AS
IF EXISTS(SELECT * FROM Guests WHERE Passport_ID = @passport)
SELECT * FROM Rooms WHERE Number = (SELECT Number_Of_Room FROM RoomAllocation WHERE ID_Guest =
(SELECT TOP(1) ID_Guest FROM Guests WHERE Passport_ID = @passport))
Вывод:
Рисунок 2.7.10 Вывод процедуры
2.9 SQL-определения триггеров (не менее 2)
Триггер 1
Триггер Users_INSERT_UPDATE срабатывает при каждой попытке добавления или обновления данных в таблице Users. Он проверяет тип пользователя у добавляемого/обновляемого элемента и, если он выходит за допустимый диапазон, присваивает ему стандартное значение.
Содержание:
USE [HotelDB]
GO
/****** Object: Trigger [dbo].[ListOfRenderedServices_INSERT] Script Date: 21.05.2023 14:05:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[ListOfRenderedServices_INSERT]
ON [dbo].[ListOfRenderedServices]
INSTEAD OF INSERT
AS
IF EXISTS(SELECT * FROM ListOfRenderedServices
WHERE ID_Guest = (SELECT ID_Guest FROM inserted) AND ID_Service = (SELECT ID_Service FROM inserted))
BEGIN
UPDATE ListOfRenderedServices SET Count = Count + (SELECT Count FROM inserted)
WHERE ID_Guest = (SELECT ID_Guest FROM inserted) AND ID_Service = (SELECT ID_Service FROM inserted)
END;
ELSE
INSERT INTO ListOfRenderedServices(ID_Guest, ID_Service, Count) VALUES
((SELECT ID_Guest FROM inserted), (SELECT ID_Service FROM inserted), (SELECT Count FROM inserted))
Триггер 2
Триггер Rooms_INSERT срабатывает при каждой попытке добавления данных в таблицу Rooms. Он проверяет кол-во занятых мест добавляемой комнаты и если оно больше, чем общее кол-во мест, автоматически присваивает ему значение общего количества комнат.
Содержание:
USE [HotelDB]
GO
/****** Object: Trigger [dbo].[Rooms_INSERT] Script Date: 21.05.2023 14:05:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Rooms_INSERT]
ON [dbo].[Rooms]
AFTER INSERT
AS
IF (SELECT Occupied_Places FROM inserted) > (SELECT Number_Of_Places FROM inserted)
UPDATE Rooms SET Occupied_Places = (SELECT Number_Of_Places FROM inserted)
WHERE Number = (SELECT Number FROM inserted)
Триггер 3
Триггер ListOfRenderedServices_INSERT срабатывает каждый раз при попытке добавления данных в таблицу ListOfRenderedServices. Он автоматически группирует данные этой таблицы с одинаковыми параметрами постояльца и услуги, суммируя при этом кол-во оказанных услуг.
Содержание:
USE [HotelDB]
GO
/****** Object: Trigger [dbo].[Users_INSERT_UPDATE] Script Date: 21.05.2023 14:06:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Users_INSERT_UPDATE]
ON [dbo].[Users]
AFTER INSERT, UPDATE
AS
UPDATE Users
SET Type_Of_User = 2
WHERE Type_Of_User < 0 OR Type_Of_User > 2
Глава 3. Описание программы
3.1 Языки программирования, на которых написана программа
Для написания данного курсового проекта был использован объектно-ориентированный язык программирования C# .
На сегодняшний момент язык программирования C# один из самых мощных, быстро развивающихся и востребованных языков в ИТ-отрасли. В настоящий момент на нем пишутся самые различные приложения: от небольших десктопных программок до крупных веб-порталов и веб-сервисов, обслуживающих ежедневно миллионы пользователей.
C# является языком с Си-подобным синтаксисом и близок в этом отношении к C++ и Java. Поэтому, если вы знакомы с одним из этих языков, то овладеть C# будет легче.
C# является объектно-ориентированным и в этом плане много перенял у Java и С++. Например, C# поддерживает полиморфизм, наследование, перегрузку операторов, статическую типизацию. Объектно-ориентированный подход позволяет решить задачи по построению крупных, но в то же время гибких, масштабируемых и расширяемых приложений. И C# продолжает активно развиваться, и с каждой новой версией появляется все больше интересных функциональностей, как, например, лямбды, динамическое связывание, асинхронные методы и т. д. .
Данный язык программирования позволяет реализовать весь необходимый функционал и сделать программу более отзывчивой и удобной для пользователя.
3.2 Среда разработки
Для написания данного курсового проекта была использована интегрированная среда разработки Visual Studio.
Интегрированная среда разработки (IDE) -- это многофункциональная программа, которая поддерживает многие аспекты разработки программного обеспечения. Интегрированная среда разработки Visual Studio -- это стартовая площадка для написания, отладки и сборки кода, а также последующей публикации приложений. Помимо стандартного редактора и отладчика, которые есть в большинстве сред IDE, Visual Studio включает в себя компиляторы, средства авто завершения кода, графические конструкторы и многие другие функции для улучшения процесса разработки [2].
3.3 Привязка проекта к GitHub
В ходе разработки данного проекта он был привязан к GitHub (рис. 2.1).
GitHub -- это облачная платформа для хостинга IT-проектов и совместной разработки, под капотом которой находится популярная система контроля версий Git, а также полноценная социальная сеть для разработчиков.
Рисунок 3.1 - Репозиторий GitHub
3.4 База данных
Доступ к базе данных в разработанном клиентском приложении реализован через строку подключения.
Строка подключения содержит ряд пар имя/значение, разделенных точками с запятой. Эта информация содержит имя машины, к которой нужно подключиться, необходимые параметры безопасности, имя базы данных на этой машине и другую информацию, зависящую от поставщика.
Разработанная строка подключения: Data Source=.\MSS;Initial Catalog=HotelDB;Integrated Security=true. Имя Data Source определяет имя машины, на которой расположена база данных. Элемент .\MSS позволяет указать текущую локальную машину (независимо от конкретного имени этой машины). Initial Catalog=HotelDB определяет имя базы данных. Кроме того, можно указать любое количество элементов, которые задают полномочия безопасности. В моём случае имени Integrated Security присвоено значение true (что эквивалентно SSPI), которое использует для аутентификации пользователя текущие полномочия учетной записи Windows.
Реляционная база данных (SQL) -- база, где данные хранятся в формате таблиц, они строго структурированы и связаны друг с другом. В таблице есть строки и столбцы, каждая строка представляет отдельную запись, а столбец -- поле с назначенным ей типом данных. В каждой ячейке информация записана по шаблону.
3.5 Схема классов
Схема классов представлена на рисунке 3.5.1
Класс InternalData предназначен для хранения всех экземпляров объектов и для проведения различных логических операций над ними.
Класс User предназначен для определения объекта, который представляет собой пользователя.
Класс Guest предназначен для определения объекта, который представляет собой постояльца гостиницы.
Класс RoomAllocation предназначен для определения объекта, который представляет собой заполнение комнаты (связь комнаты и постояльца).
Рисунок 3.5.1- Схема классов
Класс Room предназначен для определения объекта, который представляет собой жилую комнату гостиницы.
Глава 4. Разработка клиентского приложения БД
4.1 Системные требования
Для работы программы необходимо:
1. ОС: 64-разрядная Windows 7 и выше;
2. оперативная память: 20 MB ОЗУ;
3. место на диске: 1 MB;
4. Microsoft .NET Framework 4.0 и выше.
4.2 Загрузка и запуск программы
Для начала работы с программным обеспечение, необходимо запустить файл «Hotel» в корневой папке программы (см. Рисунок 4.1).
Рисунок 4.1 - Запуск программы
4.3 Страница авторизации
После запуска программы откроется страница авторизации (см. Рисунок 4.2). Данное окно отображает вход в программу, который имеет разделение ролей: администратор, гость и рабочий. Каждый из них имеет свои преимущества и недостатки.
Рисунок 4.2 - Страница авторизации
После запуска приложения пользователь может переходить на другие страницы, нажатием на соответствующие вкладки.
4.4 Страница «Поиск»
Чтобы просмотреть список комнат или информацию о постояльцев пользователю необходимо нажать на пустую ячейку любую букву или цифру, после чего откроется соответствующая страница с информацией о постояльце или комнате (см. Рисунок 4.3).
Данная страница обладает следующим функционалом:
1. Просмотр комнат;
2. Просмотр информации о постояльцев;
3. Поиск комнат по ФИО постояльца, паспортным данным и номерам комнат;
4. Сброс поиска.
Рисунок 4.3 - Страница «Поиск»
4.5 Страница “Комнаты”
В этой части программы пользователь может просмотреть комнату и найти , кто в ней расположен, а также узнать информацию о постояльце: его имя, данные, пол, и продолжительность проживания.
Рисунок 4.4 - Кнопка для открытия об информации о комнате
4.6 Страница “Постояльцы”
В данной вкладке пользователь может смотреть информацию о постояльцев, удалять его из списка или сохранять. Выбрав комнату в правой части программы, вы можете узнать информацию о содержании комнаты , что она хранит и сколько мест занято.
Рисунок 4.5 - Кнопка для открытия об информации о комнате
Рисунок 4.6 - Диалоговое окно об информации о комнате
Заключение
В процессе выполнения курсового проекта была спроектирована и реализована программа, обеспечивающая автоматизацию системы учёта деятельности гостиничного комплекса. Позволяет хранить данные о сотрудниках комплекса, его проживающих, номерах гостиницы и данных о внесённой оплате аренды номера.
Реализованная программа имеет ряд схожих функций с представителями данных систем.
В ходе достижения поставленной в начале курсового проекта цели были выполнены следующие задачи:
- проанализирована и изучена предметная область по теме индивидуального задания;
- созданы классы;
- создана база данных;
- использованы основные принципы объектно-ориентированного программирования;
- разработано программное обеспечения, позволяющее упростить работу администратора гостиницы.
Программный продукт предназначен для использования в отелях и гостиницах. Программа проста в освоении и не требует каких-либо специальных навыков и знаний.
Выбранный язык программирования значительно упростил разработку программы и позволил использовать в программе основы объектно-ориентированного программирования.
Список использованных источников
1. Аглицкий И. "Информационные технологии и бизнес" Эксперт автоматизации №29,97.
2. Руководство по WPF
3. Руководство по Entity Framework 7
4. Объектно-ориентированное программирование (C#)
5. Введение в C#
6. Интегрированная среда разработки Visual Studio
7. Павловская Т.А. C#. Программирование на языке высокого уровня: учебник для вузов / Т.А. Павловская. - СПб.: Питер, 2010.
8. Ишкова Э.А. Самоучитель С#. Начала программирования / Э.А. Ишкова. - М.: Наука и техника, 2013. - 496 c.
9. Краткий обзор языка C#
10. Томас Х. Кормен. Алгоритмы: вводный курс = Algorithms Unlocked. -- М.: «Вильямс», 2014. -- 208 с
Приложение А
Код программы
Класс Guest:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hotel
{
internal class Guest
{
public string FullName { get; set; }
public string Gender { get; set; }
public string PassportID { get; set; }
public string ArrivalDate { get; set; }
public string LengthOfStay { get; set; }
public Guest(string fullName, string gender, string passportID, string arrivalDate, string lengthOfStay)
{
FullName = fullName;
Gender = gender;
PassportID = passportID;
ArrivalDate = arrivalDate;
LengthOfStay = lengthOfStay;
}
public override string ToString()
{
return FullName;
}
}
}
Класс Room:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hotel
{
internal class Room
{
public int Number { get; set; }
public int NumberOfPlaces { get; set; }
public int OccupiedPlaces { get; set; }
public int Price { get; set; }
public int FreePlaces
{
get { return NumberOfPlaces - OccupiedPlaces; }
}
public Room(int number, int numberOfPlaces, int occupiedPlaces, int price)
{
Number = number;
NumberOfPlaces = numberOfPlaces;
OccupiedPlaces = occupiedPlaces;
Price = price;
}
public override string ToString()
{
if (Number != -1)
{
return Number + $" (Свободно: {FreePlaces} из {NumberOfPlaces})";
}
else
{
return "-";
}
}
public override bool Equals(object? obj)
{
if (obj is null || obj.GetType() != typeof(Room))
{
return false;
}
else
{
if (((Room)obj).Number == Number && ((Room)obj).NumberOfPlaces == NumberOfPlaces &&
((Room)obj).OccupiedPlaces == OccupiedPlaces && ((Room)obj).Price == Price)
{
return true;
}
return false;
}
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
}
Класс RoomAllocation:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;
namespace Hotel
{
internal class RoomAllocation
{
public int IDGuest { get; set; }
public int NumberOfRoom { get; set; }
public RoomAllocation(int idGuest, int numberOfRoom)
{
IDGuest = idGuest;
NumberOfRoom = numberOfRoom;
}
public override bool Equals(object? obj)
{
if (obj is null || obj.GetType() != typeof(RoomAllocation))
{
return false;
}
else
{
if (((RoomAllocation)obj).IDGuest == IDGuest && ((RoomAllocation)obj).NumberOfRoom == NumberOfRoom)
{
return true;
}
return false;
}
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
}
Класс User:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hotel
{
internal class User
{
public string Name { get; }
public int TypeOfUser { get; }
public User(string name, int typeOfUser)
{
Name = name;
TypeOfUser = typeOfUser;
}
public override bool Equals(object? obj)
{
if (obj is not User)
{
return false;
}
if (obj is null)
{
return false;
}
if (Name == ((User)obj).Name && TypeOfUser == ((User)obj).TypeOfUser)
{
return true;
}
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
Размещено на Allbest.ru
...Подобные документы
Проектирование модели разрабатываемой базы данных гостиниц. Разработка триггеров, хранимых процедур, запросов. Создание пользовательского интерфейса. Автоматизация работы по регистрации, учету, поиску, а также по формированию отчетности о работодателях.
курсовая работа [4,7 M], добавлен 29.11.2015Программные продукты, используемые при проектировании базы данных. Разработка базы данных "Библиотека" с использование программного проекта Microsoft SQL Server. Создание таблиц, триггеров, пользователей, репликации, запросов, функций, процедур.
курсовая работа [897,6 K], добавлен 21.11.2011Определение функциональных зависимостей. Разработка структуры базы данных. Организация запросов к базе данных. Использование триггеров для поддержки данных в актуальном состоянии. Разработка хранимых процедур и функций. Ограничения ведения базы данных.
курсовая работа [113,2 K], добавлен 17.06.2014Проектирование базы данных фирмы по предоставлению телекоммуникационных услуг с помощью СУБД MS SQL SERVER. Построение логической и физической модели данных. Описание информационных потребностей пользователя. Создание хранимых процедур и триггеров.
курсовая работа [2,3 M], добавлен 21.03.2015Исследование логической структуры реляционной базы данных на основе инфологической модели и её реализации в программе Microsoft SQL Server 2000. Характеристика разработки вложенных запросов на выборку записей, процедур, триггеров, создания представлений.
реферат [1,2 M], добавлен 11.05.2012Проектирование реляционной базы данных, организация выборки информации из нее. Разработка представлений для отображения результатов. Проектирование хранимых процедур. Механизм управления данными при помощи триггеров. Требования к техническому обеспечению.
дипломная работа [1,1 M], добавлен 03.07.2011Моделирование базы данных "Обязательное медицинское страхование" с использованием методологии IDEF1X. Разработка базы данных в программной среде FoxPro 9.0, с использованием языка программирования SQL. Описания хранимых в базе данных таблиц и запросов.
курсовая работа [257,2 K], добавлен 15.03.2016Цель инфологического моделирования базы данных. Создание с помощью СУБД Microsoft SQL Server шести сущностей с определенными атрибутами, представлений, основанных на соединении столбцов нескольких таблиц и связей между ними. Создание процедур и запросов.
курсовая работа [721,4 K], добавлен 29.11.2009Проектирование баз данных, реализация ее серверной части, методика создания таблиц, различных триггеров, хранимых процедур, клиентского приложения. Процедура поиска данных, фильтрации данных, вывода отчета, ввода SQL запросов и вывода хранимых процедур.
контрольная работа [50,1 K], добавлен 30.10.2009Тестирование сервера с помощью хранимых процедур MS SQL SERVER 8.0. Разработка триггеров и хранимых процедур для базы формата Dbase IV, программное обеспечение в среде Borland C++ Builder, обеспечивающее работу с ней. Двухуровневая модель "Клиент-Сервер".
курсовая работа [1,2 M], добавлен 07.07.2011Обеспечение целостности коэффициентов на уровне базы данных. Создание ER и реляционной модели данных "Выдача банком кредита". Проектирование запросов, хранимых процедур и таблиц в MS SQL Server 2000 для предметной области. Ввод и редактирование данных.
курсовая работа [1,2 M], добавлен 01.12.2014Логическая и физическая структура базы данных. Аппаратное и программное обеспечение системы. Создание представлений, хранимых процедур, пользовательских функций, триггеров. Описание основной структуры ASP.NET документов. Пользовательский интерфейс.
курсовая работа [4,2 M], добавлен 21.05.2013Разработка информационной базы данных "Поликлиника" с возможностью просмотра, редактирования, добавления сведений и получения результатов запросов. Создание механизмов управления данными при помощи триггеров. Проектирование пользовательского приложения.
курсовая работа [2,0 M], добавлен 21.06.2011Разработка базы данных для автоматизации деятельности гостиничного предприятия. Инфологическое проектирование БД, ее логическая и физическая структура. Реализация проекта БД: создание таблиц и представлений (готовых запросов), руководства пользователя.
курсовая работа [1018,3 K], добавлен 17.03.2015Рассмотрение вопроса автоматизации работы служб гостиницы. Разработка базы данных для работы с клиентами. Характеристика языка структурированных запросов SQL и его разновидности. Описание таблицы программы, ключей и диаграммы составленной базы данных.
курсовая работа [1,6 M], добавлен 27.05.2014Анализ предметной области и создание таблиц базы данных "Фирма по продаже запчастей". Простой выбор данных и обработка группирующих запросов с условием средствами MS SQL Server 2008. Создание хранимых процедур и функций, изменение структуры базы данных.
курсовая работа [6,1 M], добавлен 16.12.2015Разработка базы данных средствами СУБД Microsoft SQL Server 2008. Исследование понятия первичного и внешнего ключа. Реляционные отношения между таблицами базы данных. Ссылочная целостность и каскадные воздействия. Проектирование запросов и триггеров.
курсовая работа [1,0 M], добавлен 27.05.2015Создание базы данных для информационной системы "Грузоперевозки". Анализ предметной области, разработка концептуальной и логической модели базы данных, с использованием средства MS Micrоsоft SQL Server 2005, реализация физического проектирования базы.
курсовая работа [1,3 M], добавлен 01.07.2011Создание программ, позволяющих создавать базы данных. Создание таблицы базы данных. Создание схемы данных. Создание форм, отчетов, запросов. Увеличение объема и структурной сложности хранимых данных. Характеристика системы управления базой данных Access.
курсовая работа [2,1 M], добавлен 17.06.2013Освоение сервисной системы управления базами данных Microsoft SQL. Разработка базы данных "Служба АТС" в среде Microsoft SQL Server Management Studio и создание запросов на языке SQL. Апробация инфологической модели "сущность - связь" базы данных.
курсовая работа [2,9 M], добавлен 29.06.2015