Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 курс Курсовая работа / Пояснительная записка к курсовой работе по БСБД.pdf
Скачиваний:
0
Добавлен:
13.07.2026
Размер:
4.24 Mб
Скачать

2 ДАТОЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БД

2.1 Логическое проектирование

На основе концептуальной модели данных согласно методологии IDEF1X была спроектирована логическая модель базы данных, представленная на рисунке 2.1. Разработанная структура соответствует третьей нормальной форме [2].

Рисунок 2.1 – Логическая модель базы данных

12

Для описания структуры базы данных был создан глоссарий сущностей, в котором подробно описаны поля базы данных, их типы данных, краткое описание поля и установленные ограничения. Глоссарий представлен в таблице 2.1 − таблице 2.5.

Таблица 2.1 – Описание таблицы базы данных «Гостиничный номер»

Имя поля

Тип данных поля

Описание

Ограничения

 

 

 

 

№ комнаты

Целочисленный

Индивидуальный номер

Первичный ключ

 

 

гостиничной комнаты

 

Тип

Текстовый

Тип гостиничного номера

Условие на значение:

 

 

 

одноместный,

 

 

 

двухместный

Цена за ночь

Числовой

Цена за одну ночь пребывания в

Обязательное поле;

 

 

номере

условие на значение:

 

 

 

>=0

Описание

Текстовый

Описание услуг,

 

 

предоставляемых с комнатой

 

 

 

Таблица 2.2 – Описание таблицы базы данных «Администратор»

Имя поля

Тип данных поля

Описание

Ограничения

 

 

 

 

ID администратора

Счетчик от 1 с

Уникальный

Первичный ключ

 

шагом 1

идентификатор

 

 

 

администратор

 

 

 

а

 

Фамилия

Текстовый

Фамилия

Обязательное поле; условие на

 

 

администратор

значение: первая буква должна

 

 

а

быть в диапазоне [A-Я], после

 

 

 

первой части может идти дефис и

 

 

 

буквы, начиная с заглавной в

 

 

 

диапазоне [A-Я]

Имя

Текстовый

Имя

Обязательное поле; условие на

 

 

администратор

значение: первая буква должна

 

 

а

быть в диапазоне [A-Я], после

 

 

 

первой части может идти дефис и

 

 

 

буквы, начиная с заглавной в

 

 

 

диапазоне [A-Я]

Отчество

Текстовый

Отчество

Условие на значение: первая

 

 

администратор

буква должна быть в диапазоне

 

 

а

[A-Я], после первой части может

 

 

 

идти дефис и буквы, начиная с

 

 

 

заглавной в диапазоне [A-Я]

13

Окончание таблицы 2.2

Имя поля

Тип данных поля

Описание

Ограничения

 

 

 

 

Стаж

Целочисленный

Стаж работы

Условие на значение: >=0

 

 

администратор

 

 

 

а в годах

 

Дата рождения

Дата

Дата рождения

 

 

 

администратор

 

 

а

 

Пол

Текстовый

Пол

Условие на значение: женский,

 

 

администратор

 

 

мужской

 

 

а

 

Номер телефона

Текстовый

Номер

Условие на значение:

 

 

телефона

 

 

соответствует маске +7(999)999-

 

 

администратор

 

 

99-99; уникальный

 

 

а для связи

 

Электронная почта

Текстовый

Электронная

Условие на значение:

 

 

почта

 

 

соответствует маске %@%.%;

 

 

администратор

 

 

уникальная

 

 

а для связи

 

Таблица 2.3 – Описание таблицы базы данных «Гость»

Имя поля

Тип данных поля

Описание

Ограничения

 

 

 

 

ID гостя

Счетчик от 1 с

Уникальный

Первичный ключ

 

шагом 1

идентификатор

 

 

 

гостя

 

Фамилия

Текстовый

Фамилия гостя

Обязательное поле; условие на

 

 

 

значение: первая буква должна

 

 

 

быть в диапазоне [A-Я], после

 

 

 

первой части может идти дефис

 

 

 

и буквы, начиная с заглавной в

 

 

 

диапазоне [A-Я]

Имя

Текстовый

Имя гостя

Обязательное поле; условие на

 

 

 

значение: первая буква должна

 

 

 

быть в диапазоне [A-Я], после

 

 

 

первой части может идти дефис

 

 

 

и буквы, начиная с заглавной в

 

 

 

диапазоне [A-Я]

Отчество

Текстовый

Отчество гостя

Условие на значение: первая

 

 

 

буква должна быть в диапазоне

 

 

 

[A-Я], после первой части может

 

 

 

идти дефис и буквы, начиная с

 

 

 

заглавной в диапазоне [A-Я]

14

Окончание таблицы 2.3

Имя поля

Тип данных поля

Описание

Ограничения

 

 

 

 

Тип документа

Текстовый

Тип документа

Условие на значение: паспорт,

 

 

для

загранпаспорт, свидетельство

 

 

удостоверения

 

 

 

личности

 

Серия документа

Текстовый

Серия

Обязательное поле

 

 

документа для

 

 

 

удостоверения

 

 

 

личности

 

Номер документа

Текстовый

Номер

Обязательное поле

 

 

документа для

 

 

 

удостоверения

 

 

 

личности

 

Дата рождения

Дата

Дата рождения

Обязательное поле

 

 

гостя

 

Пол

Текстовый

Пол гостя

Условие на значение: женский,

 

 

 

мужской

Номер телефона

Текстовый

Номер телефона

Условие на значение:

 

 

гостя для связи

соответствует маске +7 (999)

 

 

 

999-99-99; уникальный

Электронная почта

Текстовый

Электронная

Условие на значение:

 

 

почта гостя для

соответствует маске %@%.%;

 

 

связи

уникальная

Таблица 2.4 – Описание таблицы базы данных «Заявка»

Имя поля

Тип данных поля

Описание

Ограничения

 

 

 

 

ID заявки

Счетчик от 1 с

Уникальный

Первичный ключ

 

шагом 1

идентификатор заявки

 

ID администратора

Целочисленный

Уникальный

Внешний ключ, ссылается

 

 

идентификатор

на таблицу

 

 

администратора,

«Администратор»

 

 

обработавшего заявку

 

№ комнаты

Целочисленный

Индивидуальный

Внешний ключ, ссылается

 

 

номер гостиничной

на таблицу «Гостиничный

 

 

комнаты

номер»; нельзя оформить

 

 

 

заявку на комнату, если

 

 

 

она занята другой заявкой

ID гостя

Целочисленный

Уникальный

Внешний ключ, ссылается

 

 

идентификатор гостя,

на таблицу «Гость»;

 

 

подавшего заявку

должен быть старше 18

 

 

 

лет

15

Окончание таблицы 2.4

Имя поля

Тип данных поля

Описание

Ограничения

 

 

 

 

Количество гостей

Целочисленный

Количество гостей,

Условие на значение: >0

 

 

которое будет

 

 

 

проживать в номере

 

Дата и время

Дата и время

Дата и время

Обязательное поле

заселения

 

заселения гостей в

 

 

 

гостиничный номер

 

Дата и время

Дата и время

Дата и время

Обязательное поле, не

выселения

 

выселения гостей из

должно быть раньше даты

 

 

гостиничного номера

и времени заселения

Итоговая цена

Числовой

Цена за суммарное

Условие на значение: >=0

 

 

количество прожитых

 

 

 

в номере ночей

 

Таблица 2.5 – Описание таблицы базы данных «Заселение»

Имя поля

Тип данных поля

Описание

Ограничения

 

 

 

 

ID гостя

Целочисленный

Уникальный

Внешний ключ, ссылается на таблицу

 

 

идентификатор

«Гость»; ID гостя, заполнившего заявку,

 

 

заселенного

должен обязательно быть среди записей;

 

 

гостя

количество гостей в записи таблицы

 

 

 

Заявка должно быть больше или равно

 

 

 

количеству записей ID гостей,

 

 

 

привязанных к заявке, в таблице

 

 

 

Заселение; если гостю 14 и более лет, то

 

 

 

тип документа может быть только

 

 

 

паспорт или загранпаспорт, для лиц

 

 

 

младше 14 лет – свидетельство или

 

 

 

загранпаспорт

ID заявки

Целочисленный

Уникальный

Внешний ключ, ссылается на таблицу

 

 

идентификатор

«Заявка»

 

 

заявки на

 

 

 

проживание

 

В системе управления базой данных гостиницы реализовано ролевое разграничение доступа. Выделены пять основных ролей: Отельер, Менеджер по бронированию, Гость, HR-менеджер, Администратор БД. Каждая из них обладает определёнными правами и ограничениями. Матрица доступа представлена в таблице 2.6.

16

Таблица 2.6 – Матрица доступа для ролей

 

Отельер

Менеджер

HR-

Админист

Гость

 

 

по

менеджер

ратор БД

 

 

 

бронирова

 

 

 

 

 

нию

 

 

 

Гостиничный

SELECT

SELECT

SELECT

SELECT

SELECT

номер

UPDATE

 

 

INSERT

 

 

 

 

 

UPDATE

 

 

 

 

 

DELETE

 

Администратор

SELECT

SELECT

SELECT

SELECT

SELECT только

 

UPDATE

 

INSERT

INSERT

своего (Фамилия,

 

(Номер

 

UPDATE

UPDATE

Имя, Номер

 

телефона,

 

DELETE

DELETE

телефона)

 

Электрон

 

 

 

 

 

ная

 

 

 

 

 

почта)

 

 

 

 

Гость

SELECT

SELECT

 

SELECT

SELECT только себя

 

INSERT

INSERT

INSERT

INSERT только себя

 

UPDATE

UPDATE

UPDATE

UPDATE только

 

 

 

 

 

 

DELETE

себя

Заявка

SELECT

SELECT

SELECT

SELECT

SELECT только свои

 

INSERT

INSERT

 

INSERT

INSERT только свои

 

UPDATE

UPDATE

 

UPDATE

(№ комнаты,

 

 

 

 

DELETE

Количество гостей,

 

 

 

 

 

Дата и время

 

 

 

 

 

заселения, Дата и

 

 

 

 

 

время выселения)

Заселение

SELECT

SELECT

 

SELECT

 

 

INSERT

INSERT

INSERT

 

UPDATE

UPDATE

UPDATE

 

 

 

 

 

 

 

DELETE

 

17