Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач бази даних готельного комплексу / Курсова бази даних готельного комплексу.doc
Скачиваний:
36
Добавлен:
20.02.2016
Размер:
342.02 Кб
Скачать

1.3 Нормалізація структури даних

Джерела терміну нормалізація варто шукати в реляційної теорії, де це поняття було вперше сформульоване й запропоноване батьком реляційної теорії Е. Ф. Коддом. Нормалізація - це процес організації таблиць і даних, що зберігаються в них, таким чином, щоб максимально зменшити число зайвих залежностей і неефективних структур. Нормалізація лінійна , тобто кожне наступне правило може бути застосовано лише після виконання всіх попередніх правил. Використається для визначення найбільш оптимальної структури бази даних, що можлива в заданих умовах. У процесі нормалізації визначаються шість нормальних форм, або етапів. Улюбленою нормальною формою більшості розроблювачів баз даних є 3НФ (3NF). Як правило, до цієї форми приводиться більша частина всіх існуючих баз даних. Третя нормальна форма являє собою оптимальний компроміс між двома протилежними тенденціями - прагненням до нормалізації як способу підвищення функціональних можливостей і наочністю реалізації. До того ж більшість розроблювачів затверджують, що 3НФ цілком достатньо для забезпечення належного рівня несуперечності даних.  

Визначення моделі даних - суб'єктивний процес; з огляду на це, слід зазначити, що запропонована модель бази даних може сподобатися не всім. Найбільш імовірна критика, буде пов'язана з її обмеженнями. Обмеження домена дозволяють накласти певні правила на дані, що вводять у стовпець таблиці. Наприклад, якщо вводить значення, що, перебуває в проміжку від 1 до 10, воно буде прийнято базою даних, якщо ні, то - уведення такого значення буде заборонено. Обмеження домена являють собою один з найбільш потужних засобів, доступних розроблювачеві бази даних.

Нижче приводиться список обмежень, які має запропонована модель даних розроблювального проекту.

- У кожний окремо взятий момент часу співробітник готелю може обслуговувати єдиний клієнтський запит. Таким чином, виключається можливість виникнення ситуації, коли один службовець обслуговує одночасно замовлення двох або більше клієнтів готелю (що, до речі, цілком реально). Клієнт готелю не може одночасно запитувати кілька послуг.

- Будь – яка людина може мати кілька різних адрес, однак одна адреса може відповідати тільки одній людині. Для того щоб забезпечити відповідність однієї адреси декільком різним людям, треба або ввести нову таблицю.

- Можливо також, що одна людина одночасно буде й співробітником готелю, і його клієнтом. Щоб уникнути цього, необхідно ввести обмеження домена, які допоможуть впоратися із проблемою уведення некоректної інформації в ту або іншу таблицю бази даних.

Так, як співробітники готелю й клієнти готелю - це люди, які до того ж мають досить багато загальних характеристик (ім'я, прізвище, адресу) то простіше об'єднати ці сутності в одну загальну таблицю, Person.

Таблиця 1.4 - Стовпці таблиці Person

№ Атрибута

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

Тип даних

Призначення атрибута

1

FirstName

Рядковий тип даних зі зміною довжиною

Призначений для виведення ім’я людини

2

SurName

Рядковий тип даних зі зміною довжиною

Призначений для виведення прізвища людини

3

Address

Рядковий тип даних зі зміною довжиною

Призначений для виведення адреси людини

Кожен працівник готелю займає, деяку посаду, тому на даному етапі розробки курсового проекту доречно представити назви посад готельного комплексу в окрему таблицю, яка матиме наступну структуру:

Таблиця 1.5 - Стовпці таблиці Post

№ Атрибута

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

Тип даних

Призначення атрибута

1

Post ID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

2

Description

Рядковий тип даних зі зміною довжиною

Призначений для виведення назв посад

Співробітники готелю й клієнти готелю - люди, які мають декілька видів адрес (домашню адресу, робочу, поштову та інші), то можна представити перелік адрес в окрему таблицю. Ця таблиця матиме таку структуру:

Таблиця 1.6 - Стовпці таблиці AddressType

№ Атрибута

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

Тип даних

Призначення атрибута

1

AddressTypeID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

2

Description

Рядковий тип даних зі зміною довжиною

Призначений для виведення типів адрес.

Доречно, також виділити назви міст, в яки можуть проживати, як працівники готелю так і клієнти в окрему таблицю City Вона матиме наступну структуру:

Таблиця 1.7 - Стовпці таблиці City

№ Атрибута

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

Тип даних

Призначення атрибута

1

City ID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

Продовження таблиці 1.7

2

Description

Рядковий тип даних зі зміною довжиною

Призначений для виведення назв міст

Таблиця Country призначена для переліку країн в яких можуть проживати співробітники та клієнти готелю.

Таблиця 1.8 - Стовпці таблиці Country

№ Атрибута

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

Тип даних

Призначення атрибута

1

CountryID

Int - для введення та збереження цілих чисел

Індифікаційний стовпець таблиці

2

Description

Рядковий тип даних зі зміною довжиною

Призначений для виведення виведення назв країн

Доречно об’єднати таблиці Country, City, AddressType в одну загальну таблицю Address, в якій буде вказано адресу проживання ( роботи, поштову адресу) клієнта об співробітника. Дана таблиця представлена наступним чином.

Таблиця 1.9 - Стовпці таблиці Address

№ Атрибута

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

Тип даних

Призначення атрибута

1

PersonID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

2

AddressTypeID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

Продовження таблиці 1.9

3

City ID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

4

CountryID

Int - для введення та збереження цілих чисел

Індифікаційний стовпець таблиці

5

Address

Рядковий тип даних зі зміною довжиною

Призначений для виведення виведення адрес

Доречно, також виділити види комфортності кімнат в готелі в окрему таблицю Comfort Вона складатиметься з атрибутів ComfortID, та Description матиме наступну структуру:

Таблиця 1.10 - Стовпці таблиці Comfort

№ Атрибута

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

Тип даних

Призначення атрибута

1

ComfortID

Int - для введення та збереження цілих чисел

Індифікаційний стовпець таблиці

2

Description

Рядковий тип даних зі зміною довжиною

Призначений для виведення видів комфортності готельних номерів

Кожен клієнт має вибір, як заплатити за проживання в готелі та за надані йому деякі послуги, тому на даному етапі розробки курсового проекту доречно представити види оплати в окрему таблицю, яка матиме наступну структуру:

Таблиця 1.11 - Стовпці таблиці Paymant

№ Атрибута

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

Тип даних

Призначення атрибута

1

Paymant ID

Int - для введення та збереження цілих чисел

Індифікаційний стовпець таблиці

2

Description

Рядковий тип даних зі зміною довжиною

Призначений для виведення видів оплати послуг

Також в кожному готелю представлені різні типи кімнат (для однієї особи, для двох осіб та інші), а так, як

Таблиця 1.12 - Стовпці таблиці TypeHotelRoom

№ Атрибута

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

Тип даних

Призначення атрибута

1

TypeHotelRoom ID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

2

Description ID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

3

Post ID

Int - збереження цілих чисел

Індифікаційний стовпець таблиці

4

EmployeeID

Int - для введення та збереження цілих чисел

Індифікаційний стовпець таблиці

РОЗДІЛ 2. Створення бази даних і базових таблиць