| 164 | |
| 165 | По извлекувањето на овие релации, сите делумни зависности во однос на големиот суперклуч се отстрануваат - атрибутите што не се клуч на секоја релација сега целосно зависат од клучот на таа релација. Значи, сме во 2NF. |
| 166 | |
| 167 | ==== 3NF (отстранување на транзитивни зависности) преку 3NF Синтеза |
| 168 | |
| 169 | Цел на 3NF: елиминирање на транзитивни зависности (не клучен атрибут кој зависи од друг не клучен атрибут). Канонскиот алгоритам за синтеза на 3NF е најдобар бидејќи ги зачувува зависностите. |
| 170 | |
| 171 | Имплементирана постапка: |
| 172 | |
| 173 | Пресметај канонична покриеност Fc на FDs. За секоја лева страна X соберете ги сите атрибути A т.е. X -> A во една релација R_X. |
| 174 | |
| 175 | Креирај релации за секоја детерминанта: |
| 176 | |
| 177 | Users(user_id, first_name, last_name, phone, email, password) — oд user_id FDs. |
| 178 | |
| 179 | Hotel_Building(building_id, address, city, floors, num_rooms, manager_id) — oд building_id. |
| 180 | |
| 181 | Room(room_number, building_id, room_type, number_of_beds, price_per_night, available) — од (room_number, building_id). |
| 182 | |
| 183 | Staff(user_id, building_id) — од staff_id. |
| 184 | |
| 185 | Reservation(reservation_id, start_date, end_date, reserv_date, status, room_number, building_id, customer_id, manager_id) — од reservation_id. |
| 186 | |
| 187 | Service(service_id, service_type, service_date, service_status, room_number, building_id, staff_id) — од service_id. |
| 188 | |
| 189 | Payment(reservation_id, p_id, p_method, amount, p_date, customer_id) — од reservation_id (1:1). |
| 190 | |
| 191 | Се осигуруваме дека релацијата содржи клуч за оригиналниот R (имаме многу клучеви, но унијата на креирани релации ги вклучува сите детерминанти и со тоа ги зачувува клучевите). |
| 192 | |
| 193 | 3NF статус: секоја FD X -> A во Fc е локален на една од креираните релации (зачувување на зависноста). Бидејќи ги отстранивме атрибутите што предизвикуваа транзитивни ФЗ од нивните релации што содржат (на пр., не го задржавме price_per_night во Reservation), нема преостанати транзитивни зависности во релациите. Значи, сите релации се во 3NF. |
| 194 | |
| 195 | ==== |