Анализ предметной области
можно выделить следующие сущности:
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. Базы данных. Учебник для вузов. Хомоненко А. Д.