Разработка информационной системы гостиничного комплекса

Анализ предметной области, уточнение и дополнение ее необходимыми сущностями. Свойства объектов для информационной системы гостиничного комплекса. Построение реляционной схемы из ER-модели данных. Написание кода программы и тестирование базы данных.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 10.10.2017
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

ГОУВПО “Комсомольский-на-Амуре государственный технический университет”

Факультет компьютерных технологий

Кафедра информационных систем

Курсовая работа

по курсу:

«Базы данных»

на тему:

«Гостиничный комплекс»

2009 г.

Содержание

  • 1. Задание
  • 2. Построение инфологической концептуальной модели (ER-модели)
  • 3. Построение реляционной схемы из ER-модели данных
  • 4. Описание приложения
  • 5. Проектирование форм, запросов и отчетов
  • 6. Код программы
  • 7. Тестирование базы данных
  • Список использованной литературы
  • 1. Задание
  • Разработать информационную систему гостиничного комплекса, которая несет собой следующую информацию: занятость номеров, заказ (дата заказа, дата въезда/выезда, стоимость), сведения о клиенте, занимающего тот или иной номер (ФИО, сведения о документе, удостоверяющем личность, адрес) и о самом номере (расположение, вид, стоимость периодичность обслуживания), а также использование служб быта: ежедневная уборка номера, прачечная, химчистка, питание (рестораны, бары) и развлечения (бассейн, сауна, бильярд и пр.).
  • Необходимо составить пакет из процедур и функций, который позволяет:
  • получить перечень и общее число постояльцев, заселявшихся в номера с указанными характеристиками за некоторый период;
  • получить список свободных номеров на данный момент;
  • получить сведения о постояльце из заданного номера: его счет гостинице за дополнительные услуги, виды услуг, которыми он пользовался;
  • получить сведения о наиболее часто посещающих гостиницу постояльцах;
  • получить список занятых сейчас номеров, которые освобождаются к указанному сроку;
  • получить сведения о конкретном номере: кем он был занят в определенный период.
  • Список требований к выполнению работы:
  • 1. Построить инфологическую концептуальную модель (ER-модель), для чего:
  • · Проанализировав предметную область, при необходимости уточнив и дополнив ее, выявить необходимый набор сущностей;
  • · Определить требуемый набор атрибутов для каждой сущности, выделив идентифицирующие атрибуты;
  • · Определить связи между объектами;
  • · Описать полученную ER-модель на языке инфологического проектирования и на языке ER-диаграмм.
  • · Получить реляционную схему из ER-модели, для чего:
  • · Построить набор необходимых отношений базы данных;
  • · Выделить первичные и внешние ключи определенных отношений;
  • · Привести полученные отношения к третьей нормальной форме;
  • · Определить ограничения целостности для внешних ключей отношений и для отношений в целом.
  • 2. Используя имеющуюся СУБД создать спроектированную базу данных.
  • 3. На языке SQL записать выражения для указанных в варианте задания типов запросов.
  • 4. Проверить работоспособность написанных запросов в интерактивном режиме.
  • 2. Построение инфологической концептуальной модели (ER-модели)
  • В результате анализа предметной области было выделено три класса объектов: заказ, клиент, описание номера, класс обслуживания, перечень услуг и используемые услуги.
  • Опишем, какими свойствами обладает каждый класс объектов для нашей конкретной задачи:
  • · «Заказ» - номер заказа, дата заказа, дата прибытия, дата выезда, номер клиента, № номера, стоимость заказа.
  • · «Клиент» - ФИО, номер клиента, номер паспорта, серия, адрес, гражданство
  • · «Описание номера» - № номера, расположение, вид.
  • · «Класс обслуживания» - вид номера, стоимость номера, периодичность обслуживания.
  • · «Перечень услуг» - номер услуги, наименование, стоимость, ед. измерения.
  • · «Используемые услуги» - номер заказа, номер услуги, дата, количество, общая стоимость.
  • Изобразим графически каждый объект и его свойства (см. рис. 1 - 6).
  • Рис. 1 Изображение связи «Объект - Свойство» для объекта «Заказ»
  • Рис. 2 Изображение связи «Объект- Свойство» для объекта «Клиент»
  • Рис. 3 Изображение связи «Объект - Свойство» для объекта «Описание номера»
  • Рис. 4 Изображение связи «Объект - Свойство» для объекта «Класс обслуживания»
  • Рис. 5 Изображение связи «Объект - Свойство» для объекта «Перечень услуг»
  • Рис. 6 Изображение связи «Объект - Свойство» для объекта «Используемые услуги»
  • Однако инфологическая модель предполагает наличие в себе отображения не только отдельных объектов и их свойств, но также связей между различными объектами. Изобразим графически инфологическую модель всей базы данных (см. рис. 7).
  • Рис. 7 Инфологическая модель базы данных гостиничного комплекса
  • 3. Построение реляционной схемы из ER-модели данных
  • Следующим шагом выполнения курсовой работы было построение реляционной схемы базы данных из ER-модели. Для этой цели были использованы следующие правила:
  • 1. Для каждого простого объекта и его единичных свойств строится таблица, атрибутами которой являются идентификатор объекта и реквизиты, соответствующие каждому из свойств.
  • 2. Если у объекта имеются множественные свойства, то каждому из них ставиться в соответствии отдельная таблица.
  • 3. Если между объектом и его свойствам имеется условная связь, то при отображении в реляционной модели возможны следующие варианты:
  • · Если многие из объектов обладают рассматриваемым свойством, то его можно хранить в базе данных так же, как и обычное.
  • · Если только незначительное число обладает указанным свойством, то при использовании предыдущего решения для многих записей в таблице значение соответствующего поля будет пустым. Для устранения этого недостатка выделяют отдельную таблицу, которая включает в себя идентификатор объекта и атрибут, соответствующий рассматриваемому свойству (аналогично пункту 2).
  • 4. Если у объекта имеется составное свойство, то составляющие составного свойства либо помещаются в отдельные поля реляционной таблицы, либо в одно поле.
  • 5. Если связь между объектами 1:1 и классы принадлежности обоих объектов являются обязательными, то для отображения данных объектов и связей между ними можно:
  • · Использовать одну таблицу, первичным ключом которой может быть идентификатор любого из двух объектов.
  • · Для каждого из этих объектов использовать отдельные таблицы, а связь между ними отразить включив в одну из таблиц идентификатор связанного объекта из другой таблицы.
  • 6. Если связь между объектами 1:1 и класс принадлежности одного объекта является обязательным, а другого - нет, то для каждого из этих объектов используют отдельные таблицы, а идентификатор объекта, для которого класс принадлежности является необязательным, добавляется в таблицу, соответствующую тому объекту, для которого класс принадлежности обязателен.
  • 7. Если между объектами связь 1:1 и класс принадлежности является необязательным, то следует воспользоваться тремя таблицами: по одной для каждого объекта и одну для отображения связи между ними.
  • 8. Если между объектами связь 1:М и класс принадлежности одного из них обязателен, то используют две таблицы - по одной для каждого объекта. При этом в таблицу, соответствующую объекту, класс принадлежности которого является обязательным, добавляется идентификатор второго объекта.
  • 9. Если между объектами предметной области имеется связь 1:М и оба класса принадлежности не обязательны, то поступают аналогично пункту 7 (создают три таблицы: по одной для каждого объекта и одну для связи между ними)
  • 10. Если между объектами предметной области имеется связь М:М, то для хранения информации требуется три таблицы: по одной для каждого объекта и одна для отображения связи между ними (классы принадлежности могут быть любыми).
  • 11. Агрегированному объекту, имеющему место в предметной области, ставится в соответствии одна таблица, атрибутами которой являются идентификаторы всех объектов, задействованных в данном агрегированном объекте, а так же реквизиты, соответствующие свойствам этого объекта.
  • Такое объединение информации в одну таблицу возможно только в том случае, если между объектами связь 1:1, если связь другая, то выделяют по одной таблице для каждого объекта и одну для связи.
  • 12. При отображении обобщенных объектов могут быть приняты разные решения:
  • · Всему обобщенному объекту может быть поставлена в соответствии одна таблица.
  • · Каждой из категорий ставится в соответствии отдельная таблица, которая содержит в себе идентификатор объекта, общие свойства и свойства данной категории.
  • Кроме этого, возможны и комбинированные варианты. Выбор конкретного решения будет зависеть от того, насколько часто информация о разных категориях объекта обрабатывается совместно, как велико различие видовых свойств и т.п.
  • 13. При отображении составного объекта так же возможны варианты:
  • · Если речь идет о составе изделий, то между изделием и деталью связь будет М:М. В этом случае - см. пункты 7, 9, 10.
  • · Если речь идет о составе какой-нибудь организации, то между объектами скорее всего будет связь 1:М. В этом случае - см. пункты 8, 9.
  • В результате применения данных рекомендаций к инфологической модели была получена следующая реляционная модель:
  • Заказ (Номер заказа, Дата заказа, Дата прибытия, Дата выезда, Номер клиента, № номера, Стоимость);
  • Клиент (ФИО, Номер клиента, Номер паспорта, Серия, Адрес, Гражданство);
  • Описание номера (№ Номера, Расположение, Вид);
  • Класс обслуживания (Вид номера, Стоимость номера, Периодичность обслуживания);
  • Перечень услуг (Номер услуги, Наименование, Стоимость, Ед. измерения);
  • Используемые услуги (Номер заказа, Номер услуги, Дата, Количество, Общая стоимость).
  • Проверим соответствие данной модели нормальной форме Бойса-Кодда.
  • Данная модель удовлетворяет 1НФ, т.к. все атрибуты всех отношений имеют и всегда будут иметь атомарные значения.
  • Данная модель удовлетворяет 2НФ, т.к. она удовлетворяет 1НФ и во всех отношениях имеющих сложный первичный ключ, каждый не ключевой атрибут полностью зависит от первичного ключа.
  • Данная модель удовлетворяет 3НФ, т.к. она удовлетворяет 2НФ и никакой не ключевой атрибут не зависит от другого не ключевого атрибута.
  • Данная модель удовлетворяет НФБК, т.к. она удовлетворяет 3НФ и каждый из детерминантов отношений модели является ее ключом.
  • 4. Описание приложения
  • Для хранения данных было создано 6 таблиц, структура которых приведена в таблице 1.
  • Таблица 1. Структура таблиц
  • Название поля

    Тип данных

    Заказ

    Номер заказа

    Счетчик

    Дата заказа

    Дата/время

    Дата прибытия

    Дата/время

    Дата выезда

    Дата/время

    Номер клиента

    Числовой

    № номера

    Числовой

    Стоимость

    Денежный

    Клиент

    Номер клиента

    Числовой

    ФИО

    Текстовый

    Номер паспорта

    Числовой

    Серия паспорта

    Числовой

    Адрес

    Текстовый

    Гражданство

    Текстовый

    Описание номера

    № номера

    Числовой

    Расположение

    Текстовый

    Вид номера

    Текстовый

    Класс обслуживания

    Вид номера

    Текстовый

    Стоимость номера

    Денежный

    Периодичность обслуживания

    Текстовый

    Перечень услуг

    Номер услуги

    Счетчик

    Наименование

    Текстовый

    Стоимость

    Денежный

    Единицы измерения

    Текстовый

    Используемые услуги

    Номер заказа

    Числовой

    Номер услуги

    Числовой

    Дата

    Дата/время

    Количество раз

    Числовой

    Общая стоимость

    Денежный

    • Для связи таблиц использовалась следующая схема, изображенная на рис. 8.
    • Рис. 8. Схема данных
    • Целостность данных обеспечена включением специальной опции «Обеспечение целостности данных», а затем ставших доступными «Каскадное обновление связанных полей» и «Каскадное удаление связанных полей», что изображено на рис. 9.
    • Рис. 9. Целостность данных
    • 5. Проектирование форм, запросов и отчетов
    • Разработанное мною приложение состоит из 2 форм. Подробное описание создания каждой из них следует ниже.
    • Все формы были созданы в режиме конструктора и при помощи встроенного редактора Visual Basic для некоторых событий элементов этих форм были написаны макросы.
    • Форма «Клиент» создавалась для просмотра, изменения, и добавления информации о клиентах и их заказах. Данная форма включает в себя подчиненную форму «Заказ (рис. 10).
    • Рис. 10. Форма «Книга». Режим конструктора
    • Для отображения в поле «Номер» списка свободных относительно данных дат номеров был построен специальный запрос на выборку (рис. 11).
    • Рис. 11. Запрос по свободным номерам
    • При этом были использованы некоторые параметры объединения (рис. 12).
    • Рис 12. Окно «Параметры объединения»
    • Форма «Заказ услуг» предназначена для работы с информацией об услугах, которыми клиент пользовался в течение пребывания в гостинице. Данная форма содержит в себе две подчиненных формы: «Заказ» и «Используемые услуги» (рис. 13).
    • Рис. 13. Форма «Заказ услуг»
    • Помимо форм, для работы с базой данных было создано 5 запросов. Все запросы были спроектированы в мастере запросов и отредактированы в режиме конструктора.
    • Первый запрос называется «Все свободные номера» и определяет перечень свободных номеров на текущий момент (рис. 14).
    • Рис. 14 Запрос «Все свободные номера»
    • Следующий запрос называется «Заняты до даты». Его назначение состоит в определении занятых на текущий момент до определенного времени номеров (рис. 15).
    • Рис. 15. Запрос «Заняты до даты»
    • Третий запрос называется «Номер за время». Результатом выполнения этого запроса является список клиентов, которые проживали в этом номере в течение определенного периода времени (рис. 16).
    • Рис. 16. Запрос «Номер за время»
    • Четвертый запрос называется «Посещаемость». Он определяет тот факт, как часто клиент посещал гостиницу. И на основании этого мы получаем сведения о наиболее часто посещающих гостиницу постояльцах (рис. 17).
    • Рис. 17. Запрос «Посещаемость»
    • Наконец последний запрос называется «Номер/Клиент/Услуги». В результате выполнения запроса (рис. 18) получаем сведения об услугах, которыми пользовались клиенты данного гостиничного номера.
    • Рис. 18. Запрос «Номер/Клиент/Услуги»
    • Для отображения данных последнего запроса составим отчет с одноименным названием. В отчете пропишем сведения о постояльце из заданного номера: его счет гостинице за дополнительные услуги, виды услуг, которыми он пользовался.
    • база гостиничный информационный программа
    • 6. Код программы
    • Подчиненная форма «Заказ» формы «Клиент»
    • Option Compare Database
    • Dim kolvo As Single
    • Private Sub Дата_выезда_AfterUpdate()
    • kolvo = [Дата_выезда] - [Дата_прибытия]
    • [Стоимость] = kolvo * [Стоимость_номера]
    • Refresh
    • End Sub
    • Private Sub Дата_прибытия_AfterUpdate()
    • kolvo = [Дата_выезда] - [Дата_прибытия]
    • [Стоимость] = kolvo * [Стоимость_номера]
    • Refresh
    • End Sub
    • Private Sub Номер_номера_AfterUpdate()
    • kolvo = [Дата_выезда] - [Дата_прибытия]
    • [Стоимость] = kolvo * [Стоимость_номера]
    • Refresh
    • End Sub
    • Private Sub Номер_номера_Click()
    • End Sub
    • Подчиненная форма «Заказ» формы «Заказ услуг»
    • Option Compare Database
    • Sub Form_Current()
    • Dim ParentDocName As String
    • On Error Resume Next
    • ParentDocName = Me.Parent.Name
    • If Err <> 0 Then
    • GoTo Form_Current_Exit
    • Else
    • On Error GoTo Form_Current_Err
    • Me.Parent![Используемые услуги подчиненная форма].Requery
    • End If
    • Form_Current_Exit:
    • Exit Sub
    • Form_Current_Err:
    • MsgBox Error$
    • Resume Form_Current_Exit
    • End Sub
    • Подчиненная форма «Используемые услуги» формы «Заказ услуг»
    • Option Compare Database
    • Private Sub Дата_Change()
    • Refresh
    • If [Дата] < Forms![Заказ услуг]![Заказ подчиненная форма].Form![Дата прибытия] Or [Дата] > Forms![Заказ услуг]![Заказ подчиненная форма].Form![Дата выезда] Then
    • MsgBox "Дата не соответствует времени вашего пребывания в гостинице.", vbExclamation
    • [Дата].Value = ""
    • End If
    • End Sub
    • Private Sub Количество_раз_AfterUpdate()
    • [Общая стоимость] = [Стоимость] * [Количество раз]
    • Refresh
    • End Sub
    • Private Sub Номер_услуги_AfterUpdate()
    • [Общая стоимость] = [Стоимость] * [Количество раз]
    • Refresh
    • End Sub
    • 7. Тестирование базы данных
    • Запустим разработанное приложение.
    • Взаимодействие с пользователем осуществляется при помощи форм и запросов. Подробное их описание следует ниже.
    • Откроем форму «Клиент», которая предназначена для работы с информацией о клиентах и заказах (рис. 19).
    • Рис. 19. Форма «Книга»
    • Первоначально вводится информация о клиенте (ФИО, номер и серия паспорта, адрес, гражданство), а затем на подчиненной форме вводятся сведения о самом заказе. В поле со списком «Номер» пользователь может выбрать один из свободных на текущий момент номеров или же изменить свой выбор. В последнем случае информация об общей стоимости заказа обновиться.
    • Заполнив сведения о клиенте и заказе мы можем перейти к форме «Заказ услуг» (рис. 20), которая позволяет оформлять на клиента любые услуги, предоставляемые гостиницей.
    • Рис. 20. Форма «Заказ услуг»
    • Подчиненная форма «Заказ» содержит неизменную информацию, которая отображает некоторые сведения о заказе. В подчиненной форме «Используемые услуги» в поле со списком «Номер услуги» пользователь может выбрать любую доступную услугу. Некоторые сведения о ней автоматически появятся в соответствующих полях. В поле «Дата» ведется проверка на значение: дата должна соответствовать времени пребывания клиента в гостинице (в противном случае будет выдано сообщение об ошибке и просьба повторить ввод).
    • Помимо форм, важную роль играют запросы.
    • Так, нажав на запрос о свободных номерах, пользователь в любой момент может узнать список незанятых номеров на текущий момент (рис. 21).
    • Рис. 21 Список свободных номеров
    • Или наоборот, щелкнув по запросу «Заняты до даты», пользователь сможет узнать перечень номеров, занятых до определенной даты календаря (рис. 22).
    • Рис. 22. Постановка даты
    • Рис. 23 Выполнение запроса «Заняты до даты»
    • Следующим на очереди идет запрос «Номер за время». После нажатия на запрос пользователю будет предложено несколько окон ввода (Введите номер номера, Введите начальную дату, Введите конечную дату). После ввода появиться таблица, характеризующая занятость номера в течение определенного периода времени (рис. 24).
    • Рис. 24. Выполнение запроса «Номер за время»
    • Последним запросом является «Посещаемость». В результате выполнения этого запроса на экране отображаются сведения о регулярности посещения гостиницы теми или иными клиентами (рис. 25). На основании этой информации можно сделать вывод о наиболее часто посещающих гостиницу постояльцах.
    • Рис. 25. Выполнение запроса «Посещаемость»
    • Кроме всего вышеперечисленного, немалое значение имеет отчет «Номер/Клиент/Услуги». По заданному гостиничному номеру выдается список клиентов, проживавших в этом номере и их счета гостинице за использованные дополнительные услуги (рис. 26).
    • Рис. 26. Отчет «Номер/Клиент/Услуги»
    • Заключение
    • В результате выполнения курсовой работы мною была создана база данных, содержащая следующую информацию: занятость номеров, заказ (дата заказа, дата въезда/выезда, стоимость), сведения о клиенте, занимающего тот или иной номер (ФИО, сведения о документе, удостоверяющем личность, адрес) и о самом номере (расположение, вид, стоимость периодичность обслуживания), а также использование служб быта: ежедневная уборка номера, прачечная, химчистка, питание (рестораны, бары) и развлечения (бассейн, сауна, бильярд и пр.).
    • Разработан пакет, состоящий из процедур и функций, позволяющий:
    • получить перечень и общее число постояльцев, заселявшихся в номера с указанными характеристиками за некоторый период;
    • получить список свободных номеров на данный момент;
    • получить сведения о постояльце из заданного номера: его счет гостинице за дополнительные услуги, виды услуг, которыми он пользовался;
    • получить сведения о наиболее часто посещающих гостиницу постояльцах;
    • получить список занятых сейчас номеров, которые освобождаются к указанному сроку;
    • получить сведения о конкретном номере: кем он был занят в определенный период.
    • А также закреплены знания и умения по дисциплине «Базы данных», получены навыки разработки ИС, выработаны новые навыки для разработки реляционных баз данных.
    • Список использованной литературы
    • 1) Лекции по курсу «Базы данных» - Д.Н. Кузнецов, 2007.
    • 2) Нормативный документ КнАГТУ - Текстовые студенческие работы. Правила оформления. РД КнАГТУ 013-97. - Комсомольск-на-Амуре: Комсомольский-на-Амуре гос. техн. ун-т, 2005. - 44 c.
    • 3) Карпов Б. «Microsoft Access 2000 Справочник» - СПб: Питер, 2001.
    • Размещено на Allbest.ru

Подобные документы

  • Создание систем автоматизированного сбора и обработки данных. Разработка информационной системы гостиничного комплекса. Выбор требуемой СУБД и программного обеспечения. Концептуальное, логическое проектирование. Организация ввода данных в базу данных.

    дипломная работа [790,1 K], добавлен 13.02.2016

  • Анализ деятельности гостиницы. Структурный анализ бизнес-процесса на основе IDEF0-модели. Особенности построения инфологической и даталогической модели данных. Аспекты проектирования базы данных гостиницы с использованием программного языка Delphi.

    курсовая работа [1,6 M], добавлен 15.02.2014

  • Описание предметной области и определение предметной области информационной системы детского сада. Разработка логической и физической модели базы данных дошкольного образовательного учреждения. Анализ функционала информационной системы детского сада.

    курсовая работа [1,6 M], добавлен 20.04.2015

  • Системный анализ предметной области проектируемой базы данных. Экономическая сущность комплекса экономических информационных задач. Проектные решения по программному обеспечению комплекса задач. Структура базы данных и технологическое обеспечение.

    курсовая работа [303,7 K], добавлен 27.02.2009

  • Системный анализ предметной области. Построение концептуальной и даталогичной модели базы данных. Физическое проектирование базы данных. Описание функциональной модели системы управления базами данных. Разработка экранных форм ввода-вывода и отчета.

    курсовая работа [1,1 M], добавлен 09.12.2014

  • Оценка предметной области: концептуальные требования; выявление информационных объектов и связей между ними; построение базы данных. Описание входных и выходных данных информационной системы "Магазин компьютерной техники". Анализ диаграммы прецедентов.

    курсовая работа [294,8 K], добавлен 13.04.2014

  • Модели данных в управлении базами данных. Концептуальные модели данных. Роль баз данных в информационных системах. Реляционная модель данных. Определение предметной области. Построение модели базы данных для информационной системы "Домашние животные".

    курсовая работа [1,9 M], добавлен 19.04.2011

  • Анализ предметной области. Обеспечение качества проектной документации. Построение инфологической (концептуальной) модели предметной области. Проектирование физической структуры базы данных. Разработка интерфейса, организация ввода и поиска данных.

    курсовая работа [2,5 M], добавлен 10.01.2016

  • Создание модели "сущность-связь" и нормализация данных средствами программы Microsoft Access. Идентификация объектов предметной области и отношений между ними, разработка структуры физической модели, запросов и отчетов базы данных о студентах ВУЗа.

    контрольная работа [742,8 K], добавлен 08.06.2011

  • Основы визуального программирования интерфейса. Архитектура программных систем. Проектирование базы данных. Анализ предметной области и связей между сущностями. Построение модели "сущность-связь". Разработка автоматизированной информационной системы.

    курсовая работа [4,4 M], добавлен 16.11.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.