Файл: Курсовая работа на тему " Информационная система гостиничного комплекса " студентка 2 курса гр. Ист411 Эрдман Ю. Р.docx
Добавлен: 04.12.2023
Просмотров: 109
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
"Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М.А. Бонч-Бруевича"
Дисциплина «Управление данными»
КУРСОВАЯ РАБОТА
на тему "Информационная система гостиничного комплекса"
Выполнила: студентка 2 курса гр. ИСТ-411
__________ Эрдман Ю. Р.
Принял:
__________ Сабинин О. Ю.
Санкт-Петербург
2016
Оглавление
Введение 3
1Предметная область 4
2Анализ предметной области 6
3Проверка разработанной модели средствами Validator 6
4Прямое проектирование 8
5Проверка базы данных в Oracle 8
6Обратное проектирование 10
7Описание модели 12
8Нормализация 13
9Выполнение запросов 14
12Заключение 20
Введение
У гостиничного комплекса есть ряд важных функциональных задач, преведенных ниже:
-
автоматизация процесса пополнения, хранения, поиска и обработки информации о номерах (номерном фонде), клиентах, служащих гостиницы; -
предоставление справочной информации клиентам; -
повышение эффективности делопроизводства; -
повышение уровня безопасности в хранении и доступе к данным.
Для эффективного решения данных задач необходима информационная система, с помощью которой появится возможность организовать и структурировать работу гостиничного комплекса.
Выбранная мной тема является актуальной, так как база данных позволяет за короткое время получить полную информацию о каком-либо номере или постояльце. Программа автоматизирует работу с базой данных.
Так же актуальность заключается в том, что программа будет востребована в связи с большим количеством гостиничных комплексов в наше время.
-
Предметная область
Областью применения базы данных является Гостиница. Задачей администратора гостиницы является отслеживание финансовой стороны работы гостиничного комплекса. Его деятельность организована следующим образом: гостиничный комплекс предоставляет нoмeра клиентам на определенный срок. Каждое здание хaрaктеризуется следующими параметрами:
-
количество этажей; -
общее количество комнат; -
количество комнат на этаже; -
количество мест в номерах; -
наличием служб быта (уборка номера, прачечная, химчистка, питание); -
наличие развлечений.
Клиентами гостиницы являются различные лица, о которых администратор собирает определенную информацию (фамилия, имя, отчество, номер паспорта, дата рождения). При поселении фиксируeтся дата пoселения. При выезде из гостиницы для каждого места запоминается дата освобождения.
Так же, ведется статистика популярности номеров, считаются долги постояльцев за все дополнительные услуги.
Для целостности информации необходима общая база данных, которая будет содержать всю необходимую информацию. Основные запросы информационной системы:
-
перечень и общее число постояльцев, заселившихся в номера с указанными характеристиками за некоторый период; -
сведения о количестве свободных номеров с указанными характеристиками; -
список занятых сейчас номеров, которые освобождаются к указанному сроку; -
список недовольных клиентов и их жалобы; -
сведения о постояльце из заданного номера: его счет за дополнительные услуги, поступавшие от него жалобы.
Программа является очень актуальной на сегодняшний день, т.к. она автоматизирует работу с базой данных.
-
Анализ предметной области
Проанализировав заданную предметную область, была создана логическая модель базы данных. (Приложение 1)
«Рис. 1 ̶ Логическая модель»
Затем была создана физическая модель базы данных, в которой предусмотрены значения по умолчанию и условия проверки вводимых пользователем значений. (Приложение 2)
«Рис. 2 ̶ Физическая модель»
-
Проверка разработанной модели средствами Validator
Далее была произведена проверка разработанной модели средствами Validator на наличие ошибок и проведена работа по их исправлению.
«Рис. 3 Проверка ошибок»
-
Прямое проектирование
После было произведено прямое проектирование – созданы объекты базы данных в Oracle.
«Рис. 4 ̶ Прямое проектирование»
-
Проверка базы данных в Oracle
Далее была произведена проверка базы данных в Oracle:
-
наличие ключевых полей, -
наличие значений по умолчанию, -
наличие условий проверки вводимых пользователем значений, -
наличие связей между таблицами.
Для проверки работоспособности базы данных были внесены в таблицы по несколько записей.
«Рис. 5 Таблица "Клиент"»
«Рис. 6 ̶ Таблица "Оказанные услуги"»
-
Обратное проектирование
Далее было произведено обратное проектирование базы данных из Oracle.
«Рис. 7 Обратное проектирование»
«Рис. 8 ̶ Физическая модель после обратного проектирования»
-
Описание модели
Сущность | Атрибуты | Расшифровка атрибутов |
Корп (корпус) | ном_корп класс кол_этаж кол_комн нал_еж_уб | номер корпуса класс количество этажей количество комнат наличие ежедневной уборки |
Этаж | код_этаж ном_этаж ном_корп кол_комн_эт | код этажа номер этажа номер корпуса количество комнат корпуса |
Комн (комната) | цена кол_мест ном_комн код_этаж | цена количество мест номер комнаты код этажа |
Доп_усл (дополнительные услуги) | ном_усл назв_усл | номер услуги название услуги |
Нал_в_корп (наличие в корпусах) | ном_корп ном_усл | номер корпуса номер услуги |
Оказ_усл (оказанные услуги) | дата ном_оказ_усл ном_усл сумм_к_опл оплачено ном_клиен | дата номер оказанной услуги номер услуги сумма к оплате оплачено номер клиента |
Клиент | ном_клиент фам_клиент имя_клиент отч_клиент ном_сер_пасп дата_рож | номер клиента фамилия клиента имя клиента отчество клиента номер серии паспорта дата рождения |
Жал (жалоба) | ном_жал жалоба ном_клиент | номер жалобы жалоба номер клиента |
Орган (организация) | ном_орган назв_орган фам_рук имя_рук отч_рук скидка | номер организации название организации фамилия руководителя имя руководителя отчество руководителя скидка |
Бран (забронировано) | год ном_брон ном_корп код_этаж ном_орган ном_клиент дата_въезд | год номер брони номер корпуса код этажа номер организации номер клиента дата въезда |
Бр_комн (бронь комната) | год ном_брон код_комн | год номер брони код комнаты |
-
Нормализация
Ниже представлен пример нормализации.
Клиент | ном_клиент фам_клиент имя_клиент отч_клиент ном_сер_пасп дата_рож | номер клиента фамилия клиента имя клиента отчество клиента номер серии паспорта дата рождения |
ном_клиент -> фам_клиент
ном_клиент -> имя_клиент
ном_клиент -> отч_клиент
ном_клиент -> ном_сер_пасп
ном_клиент -> дата_рож
1НФ: Все значения атомарны
2НФ: Каждый неключевой атрибут зависит от ключа полностью
3НФ: Все неключевые атрибуты зависят только от ключа, взаимонезависимы
БКНФ: Отношение находится в БКНФ, если оно находится во 3НФ и в ней отсутствуют зависимости атрибутов первичного ключа от неключевых атрибутов
4НФ: Отношение находится в 4НФ, если оно находится в БКНФ и в нем отсутствуют многозначные зависимости атрибутов, не являющиеся функциональными зависимостями
-
Выполнение запросов
С помощью средств запросов SQL были построены выражения для 5 вариантов запросов, согласно заданию. Так же была проведена проверка работоспособности написанных запросов.
Запросы:
-
Перечень и общее число постояльцев, заселявшихся в номера с указанными характеристиками за некоторый период
select kl."ФАМ_КЛИЕН" from "КЛИЕНТ" kl
join "БРОН" br on kl."НОМ_КЛИЕН" = br."НОМ_КЛИЕН"
join "БР_КОМН" bk on br."НОМ_БРОН" = bk."НОМ_БРОН"
join "КОМН" ko on ko."КОД_КОМН" = bk."КОД_КОМН"
where ko."КОЛ_МЕСТ"=2 and br."ДАТА_ВЪЕЗД" between '01-ЯНВ-15' and '01-НОЯ-16';
«Рис. 9 Результат выполнения запроса “Перечень постояльцев”»
select count (distinct kl."НОМ_КЛИЕН") as col from "КЛИЕНТ" kl
join "БРОН" br on kl."НОМ_КЛИЕН" = br."НОМ_КЛИЕН"
join "БР_КОМН" bk on br."НОМ_БРОН" = bk."НОМ_БРОН"
join "КОМН" ko on ko."КОД_КОМН" = bk."КОД_КОМН"
where ko."КОЛ_МЕСТ"=2 and br."ДАТА_ВЪЕЗД" between '01-ЯНВ-15' and '01-НОЯ-16';
«Рис. 10 Результат выполнения запроса “Общее число постояльцев”»
-
Сведения о количестве свободных номеров с указанными характеристиками
select distinct ((select count(ko."КОД_КОМН") from "КОМН" ko where ko."КОЛ_МЕСТ"=2) - (select count(ko."КОД_КОМН")
from "КОМН" ko
join "БР_КОМН" bk on ko."КОД_КОМН" = bk."КОД_КОМН"
join "БРОН" br on br."НОМ_БРОН" = bk."НОМ_БРОН" and br."ГОД" = bk."ГОД"
where ko."КОЛ_МЕСТ"=2 and br."ДАТА_ВЫ" between '17-НОЯ-16' and '01-ЯНВ-17' and br."ДАТА_ВЪЕЗД" between '01-ЯНВ-01' and '17-НОЯ-16')) as col
from "КОМН" ko;
«Рис. 11 ̶ Результат выполнения запроса “Количество свободных номеров”»
-
Список занятых сейчас номеров, которые освобождаются к указанному сроку
select ko."НОМ_КОМН", et."НОМ_ЭТАЖ", et."НОМ_КОРП", ko."КОЛ_МЕСТ" from "КОМН" ko
join "ЭТАЖ" et on ko."КОД_ЭТАЖ" = et."КОД_ЭТАЖ"
join "БР_КОМН" bk on ko."КОД_КОМН" = bk."КОД_КОМН"
join "БРОН" br on br."НОМ_БРОН" = bk."НОМ_БРОН" and br."ГОД" = bk."ГОД"
where br."ДАТА_ВЫ" between '17-НОЯ-16' and '18-НОЯ-16' and br."ДАТА_ВЪЕЗД" between '01-ЯНВ-16' and '17-НОЯ-16';
«Рис. 12 ̶ Результат выполнения запроса “Список занятых номеров”»
-
Список недовольных клиентов и их жалобы
select kl."ФАМ_КЛИЕН", zl."ЖАЛОБА" from "КЛИЕНТ" kl
join "ЖАЛ" zl on zl."НОМ_КЛИЕН" = kl."НОМ_КЛИЕН";
«Рис. 13 Результат выполнения запроса “Список недовольных клиентов”»
-
Сведения о постояльце из заданного номера: его счет за дополнительные услуги, поступавшие от него жалобы.
select kl."ФАМ_КЛИЕН", zl."ЖАЛОБА",
(select sum(ou."СУМ_К_ОПЛ") from "ОКАЗ_УСЛ" ou
join "КЛИЕНТ" kl on ou."НОМ_КЛИЕН" = kl."НОМ_КЛИЕН"
join "БРОН" br on kl."НОМ_КЛИЕН" = br."НОМ_КЛИЕН"
join "БР_КОМН" bk on br."ГОД" = bk."ГОД" and br."НОМ_БРОН" = bk."НОМ_БРОН"
where bk."КОД_КОМН"=2 and ou."ОПЛАЧЕНО" is null) as summ
from "КЛИЕНТ" kl
join "ЖАЛ" zl on zl."НОМ_КЛИЕН" = kl."НОМ_КЛИЕН"
join "БРОН" br on kl."НОМ_КЛИЕН" = br."НОМ_КЛИЕН"
join "БР_КОМН" bk on br."ГОД" = bk."ГОД" and br."НОМ_БРОН" = bk."НОМ_БРОН"
where bk."КОД_КОМН"=2;
«Рис. 14 ̶ Результат выполнения запроса “Сведения о постояльце”»
-
Заключение
В результате выполнения работы была реализована информационная система гостиничного комплекса.
На первом этапе работы была проанализирована предметная область, возможные средства проектирования базы данных, а также физические платформы для реализации базы данных.
На втором этапе, проведенный анализ технического задания позволил выделить общие требования к системе, на основании которых было произведено проектирование базы данных. Была построена логическая и физическая модели базы данных, а также произведен экспорт схемы данных в