Разработка базы данных для гостиницы

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

Анализ предметной области

можно выделить следующие сущности:

1. Номер(Код номера);

2. Тип (Код типа);

3. Гражданин (Код гражданина, Дата въезда);

4. Карточка регистрации (Код карточки регистрации);

5. Расчетная карточка (Код расчетной карточки);

6. Счет (Код счета).

Все связи между объектами можно отобразить в виде таблицы.

Таблица 1

Связи между объектами

Главный объект

Глагол связи

Подчиненный объект

Номер

Имеет

Тип

Гражданин

Заполняет

Карточка регистрации

Гражданин

заселяется

Номер

Гражданин

Оплачивает

Счет

Расчетная карточка

Заводится

Гражданин

Рис. 1 Диаграмма «сущность — связь»

  • Несколько номеров могут иметь один тип;
  • Один номер может иметь только один тип;
  • Каждый тип принадлежит номеру;

В соответствии с правилами построения предварительных отношений для рассматриваемой ситуации необходимо записать следующий набор предварительных отношений:

1 1

  • Каждый гражданин заполняет только одну карточку регистрации на определенную дату
  • Одну карточку регистрации может заполнить только один клиент;
  • Клиент на определенную дату обязательно заполняет карточку регистрации;
  • Карточка регистрации обязательно заполняется клиентом;

В соответствии с правилами построения предварительных отношений для рассматриваемой ситуации необходимо записать следующий набор предварительных отношений:

  • Каждый гражданин обязательно заселяется в номер на определенную дату;

В соответствии с правилами построения предварительных отношений для рассматриваемой ситуации необходимо записать следующий набор предварительных отношений:

1 1 1

Код расчетной карточки Код гражданина, Дата въезда

На представленной диаграмме показана связь «заводится» между сущностями «расчетная карточка» и «гражданин» степени 1: 1 с обязательным характером принадлежности для сущности «расчетная карточка» и необязательным для сущности «гражданин». Из этого следует, что в рассматриваемой предметной области действуют следующие бизнес-правила:

  • На каждого гражданина заводится только одна расчетная карточка;
  • Одна расчетная карточка может быть заведена только на одного гражданина;
  • Расчетная карточка обязательно заводится на гражданина;
  • Найдется такой гражданин, на которого не завелась расчетная карточка;

В соответствии с правилами построения предварительных отношений для рассматриваемой ситуации необходимо записать следующий набор предварительных отношений:

Расчетная карточка, Гражданин

1 1

Код гражданина, Дата въезда Код счета

На представленной диаграмме показана связь «оплачивает» между сущностями «гражданин» и «счет» степени 1:1 с обязательным характером принадлежности для сущности «счет» и необязательным для сущности «гражданин». Из этого следует, что в рассматриваемой предметной области действуют следующие бизнес-правила:

  • Один гражданин оплачивает один счет;
  • Один счет оплачивается одним гражданином;
  • Найдется такой гражданин, который не оплачивает счет;
  • Каждый счет обязательно оплачивается гражданином;

В соответствии с правилами построения предварительных отношений для рассматриваемой ситуации необходимо записать следующий набор предварительных отношений:

Счет (Код счета, Код гражданина, Дата въезда, … );

Гражданин

1 N

На представленной диаграмме показана связь «указывается» между сущностями «номер» и «карточка регистрации» степени 1: N c обязательным характером принадлежности для обеих сущностей. Из этого следует, что в рассматриваемой предметной области действуют следующие бизнес-правила:

  • один номер может указываться в нескольких карточках регистрации
  • В одной карточке регистрации может указываться только один номер
  • Каждый номер обязательно указывается в карточке регистрации
  • В каждой карточке регистрации обязательно указывается номер

В соответствии с правилами построения предварительных отношений для рассматриваемой ситуации необходимо записать следующий набор предварительных отношений:

Номер (Код номера…);

Карточка регистрации

1. Номер (Код номера, Код типа, …);

2. Тип (Код типа, …);

3. Карточка регистрации

4. Гражданин

5. Номер (Код Номера, …);

6. Расчетная карточка

7. Гражданин

8. Счет (Код счета, Код гражданина, Дата въезда, … );

9. Гражданин

10. Номер, Карточка регистрации

Проведем минимизацию отношений, для этого:

  • Исключаем из рассмотрения «5» и «10», так как они входят в состав «1»;
  • Исключаем из рассмотрения «7» и «9», так как они входят в состав «4»;
  • Для отношений «3» и «11» создаем отношение с тем же именем, включающим все ключи этих отношений:

После предварительных операций осталось отношений:

1. Номер (Код номера, Код типа, …);

2. Тип (Код типа, …);

Карточка регистрации, Гражданин, Расчетная карточка

6. Счет (Код счета, Код гражданина, Дата въезда, … );

Те отношения, что остались, приведем к полному виду:

1. Номер (Код номера, Код типа, количество мест, стоимость);

2. Тип (Код типа, название, описание типа);

3. Карточка регистрации

4. Гражданин

5. Расчетная карточка

6. Счет (Код счета, Код гражданина, Дата въезда, Код номера, количество минут, стоимость минуты, дата звонка).

Структура каждой таблицы реляционной модели определяется составом отношений: набором ключевых и описательных атрибутов, которые были получены в предыдущем разделе.

№ п/п

Имя атрибута

Название атрибута

Признак ключа

Тип данных

Длина

Точность

1

Kod_Nomera

Код номера

ПП

Числовой

10

2

Kod_Tipa

Код типа

ВП

Числовой

10

3

Kol_mest

Количество мест

Числовой

6

4

Stoimost

Стоимость

Денежный

10

«Тип»

№ п/п

Имя атрибута

Название атрибута

Признак ключа

Тип данных

Длина

Точность

1

Kod_Tipa

Код типа

ПП

Числовой

10

2

Nazvanie

Название

Текстовый

15

3

Opis_tipa

Описание типа

Текстовый

255

№ п/п

Имя атрибута

Название атрибута

Признак ключа

Тип данных

Длина

Точность

1

Kod_grazd

Код гражданина

ПП

Числовой

10

2

Data_vjezda

Дата въезда

ПП

Дата

15

3

Kod_kart_reg

Код карточки регистрации

ВП

Числовой

10

4

Kod_Nomera

Код номера

ВП

Числовой

10

5

FIO

ФИО

Текстовый

40

6

№_pas

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

Текстовый

12

7

Adres

Адрес

Текстовый

50

8

Telefon

Телефон

Текстовый

15

9

Pol

Пол

Текстовый

8

«Расчетная карточка»

№ п/п

Имя атрибута

Название атрибута

Признак ключа

Тип данных

Длина

Точность

1

Kod_rasch_kart

Код расчетной карточки

ПП

Числовой

15

2

Kod_Grazd

Код гражданина

ВП

Числовой

10

3

Data_vjezda

Дата въезда

ВП

Дата

15

4

Kod_kart_reg

Код карточки регистрации

Числовой

10

5

Nazv_usl

Название услуги

Текстовый

20

6

Data_okaz_usl

Дата оказания услуги

Дата

15

7

Stoim_usl

Стоимость услуги

Денежный

6

2

«Счет»

№ п/п

Имя атрибута

Название атрибута

Признак ключа

Тип данных

Длина

Точность

1

Kod_scheta

Код счета

ПП

Числовой

10

2

Kod_Grazd

Код гражданина

ВП

Числовой

10

3

Data_vjezda

Дата въезда

ВП

Дата

15

4

Kod_Nomera

Код номера

ВП

Числовой

10

5

Stoim_min

Стоимость минуты

Денежный

6

2

6

Kol_min

Количество минут

Числовой

3

7

Data_zvonka

Дата звонка

Дата

15

«Карточка регистрации»

№ п/п

Имя атрибута

Название атрибута

Признак ключа

Тип данных

Длина

Точность

1

Kod_kart

Код карточки регистрации

ПП

Числовой

10

2

Kod_Nomera

Код номера

ВП1

Числовой

10

3

Kod_grazd

Код гражданина

ВП2

Числовой

10

4

Data_vjezda

Дата въезда

ВП2

Дата

8

5

Data_ubytiya

Дата убытия

Дата

8

В ходе работы были составлены формы по следующим таблицам:

  • Главная форма
  • Номер
  • Тип
  • Гражданин
  • Счет
  • Расчетная карточка

Рис. 8 форма «Счет»

1. Однотабличный запрос на выборку

Необходимо вывести информацию о номерах и их стоимостях

Рис 12.1 Форма запроса № 1

Рис. 12.2 Результат выполнения запроса № 1

2. Многотабличный запрос на выборку

Необходимо вывести информацию о том, в какой номер заселился каждый гражданин.

Рис. 12.3 Форма запроса № 2

Рис. 12.4 Результат выполнения запроса № 2.

3. Многотабличный запрос на выборку с условием

Необходимо вывести информацию о гражданах, которым была оказана услуга стоимостью 300 рублей, и номерах, в которых они проживают.

Рис. 12.5 Форма запроса № 3

Рис. 12.6 Результат выполнения запроса № 3

4. Многотабличный запрос на выборку с вычисляемым полем.

Необходимо посчитать стоимость звонка каждого гражданина.

Рис. 12.7 Форма запроса № 4

Чтобы посчитать стоимость звонка, необходимо узнать количество минут звонка, а затем умножить его на стоимость одной минуты.

Рис. 12.8 Результат выполнения запроса № 4

5. Многотабличный запрос на выборку с использованием групповых операций

Необходимо вывести информацию о том, сколько услуг оказано данному гражданину и сумму за услуги.

Рис. 12.9 Форма запроса № 5

Рис. 12.10 Результат выполнения запроса № 5

6. Запрос на обновление с параметром

Необходимо изменить стоимость минуты разговора.

Рис. 12.11 Форма запроса № 6

При запуске данного запроса на экране появится окно, представленное на рисунке 12.12

Рис. 12.12 Окно предупреждения об изменении данных таблицы

После нажатия «Да» появятся диалоговые окна для ввода кода счета и новой стоимости минуты (Рис. 12.13,12.14).

Рис. 12.13 Диалоговое окно запроса

Рис. 12.14 Диалоговое окно запроса

После вода данных и нажатия «Ок» появляется сообщение об изменении информации (Рис. 12.15).

Рис. 12.15 Сообщение об обновлении данных

Рис. 12.16 До выполнения запроса №6

Рис. 12. 17 Результат выполнения запроса № 6

7. Запрос на удаление с параметром.

Необходимо удалить из таблицы «Счет» все записи о некотором счете.

Рис. 12.18 Форма запроса № 7

При запуске данного запроса на экране появится окно, представленное на рисунке 12.19

Рис. 12.19 Сообщение о предупреждении изменения данных

При нажатии кнопки «Да» появится диалоговое окно для ввода кода счета (Рис. 12.20):

Рис. 12.20 Диалоговое окно запроса

После ввода данных появится сообщение об удалении данных (Рис. 12.21):

Рис. 12.21 Сообщение об удалении данных

Удаление произойдет после нажатия кнопки «Да».

Рис. 12.22 До выполнения запроса № 7

Рис. 12.23 Результат выполнения запроса № 7

Запрос №2 на SQL.

Необходимо вывести информацию о том, в какой номер заселился каждый гражданин.

Реализуем запрос № 2 на SQL.

Select all Гражданин.[Код гражданина], Номер.[Код номера] FROM Гражданин, Номер where Гражданин.[Код номера]=Номер.[Код номера];

  • Рис. 12.24 Результат выполнения запроса № 2 на SQL

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

1. Базы данных (лекции) Михайлов Н. Л.

2. Реализация баз данных средствами СУБД Access (методическое пособие) Михайлов Н. Л.

3. Базы данных. Учебник для вузов. Хомоненко А. Д.