9 | | R = { UserID, Name, Surname, Email, Password, PhoneNumber, DateJoined } |
10 | | |
11 | | Функциски зависности: |
12 | | |
13 | | UserID → Name, Surname, Email, PhoneNumber, Password, DateJoined |
14 | | |
15 | | Email → UserID (email мора да биде уникатен) |
16 | | |
17 | | PhoneNumber → UserID (ако е еден-на-еден релација) |
18 | | |
19 | | |
20 | | |
21 | | 1NF: атомски вредности |
22 | | 2NF: сите зависности се од целиот клуч UserID |
23 | | 3NF: Email и PhoneNumber функционално зависат од UserID, значи нема транзитивни зависности. |
24 | | |
25 | | R1 = { UserID , Name, Surname, Email, PhoneNumber, Password, DateJoined } |
26 | | |
27 | | R2 = { Email , UserID } |
28 | | |
29 | | R3 = { PhoneNumber , UserID } |
30 | | |
31 | | |
32 | | Можна декомпозиција: |
33 | | R1:{ (UserID, Name, Surname, DateJoined} |
34 | | R2:{(UserID, Email, PhoneNumber, Password} |
| 9 | R = { **UserID**, Name, Surname, Email, Password, PhoneNumber, DateJoined }\\ |
| 10 | |
| 11 | |
| 12 | Функциски зависности:\\ |
| 13 | |
| 14 | |
| 15 | **UserID** → Name, Surname, Email, PhoneNumber, Password, DateJoined\\ |
| 16 | **Email** → UserID (email мора да биде уникатен)\\ |
| 17 | **PhoneNumber** → UserID (ако е еден-на-еден релација)\\ |
| 18 | |
| 19 | |
| 20 | |
| 21 | 1NF: атомски вредности\\ |
| 22 | 2NF: сите зависности се од целиот клуч UserID\\ |
| 23 | 3NF: Email и PhoneNumber функционално зависат од UserID, значи нема транзитивни зависности.\\ |
| 24 | |
| 25 | R1 = { **UserID** , Name, Surname, Email, PhoneNumber, Password, DateJoined }\\ |
| 26 | R2 = { Email , **UserID** }\\ |
| 27 | R3 = { PhoneNumber , **UserID** }\\ |
| 28 | |
| 29 | |
| 30 | Можна декомпозиција:\\ |
| 31 | R1:{ (UserID, Name, Surname, DateJoined}\\ |
| 32 | R2:{(UserID, Email, PhoneNumber, Password}\\ |
45 | | R = { DestinationID, Name, Country, Description, PopularAttraction, BestTimeToVisit } |
46 | | |
47 | | Функционални зависности: |
48 | | DestinationID → Name, Country, Description, PopularAttraction, BestTimeToVisit |
49 | | |
50 | | R1:{ DestinationID , Name, Country, Description, PopularAttraction, BestTimeToVisit } |
51 | | |
52 | | |
53 | | 1NF: сите атрибути се атомски |
54 | | 2NF: сите атрибути зависат целосно од примарниот клуч |
55 | | 3NF: бидејќи нема транзитивни зависности |
56 | | BCNF: сите детерминанти се супер-клучеви |
57 | | Заклучок: Нема потреба за дополнителна декомпозиција |
58 | | |
59 | | |
60 | | ________________________________________ |
61 | | 3. Airport Нормализација |
| 43 | R = { **DestinationID**, Name, Country, Description, PopularAttraction, BestTimeToVisit }\\ |
| 44 | |
| 45 | Функционални зависности:\\ |
| 46 | **DestinationID** → Name, Country, Description, PopularAttraction, BestTimeToVisit\\ |
| 47 | |
| 48 | R1:{ **DestinationID** , Name, Country, Description, PopularAttraction, BestTimeToVisit }\\ |
| 49 | |
| 50 | |
| 51 | 1NF: сите атрибути се атомски\\ |
| 52 | 2NF: сите атрибути зависат целосно од примарниот клуч\\ |
| 53 | 3NF: бидејќи нема транзитивни зависности\\ |
| 54 | BCNF: сите детерминанти се супер-клучеви\\ |
| 55 | Заклучок: Нема потреба за дополнителна декомпозиција \\ |
| 56 | |
| 57 | |
| 58 | ________________________________________\\ |
| 59 | 3. Airport Нормализација\\ |
69 | | R = { AirportID, Name, City, Country, Code } |
70 | | Функционални зависности: |
71 | | AirportID → Name, City, Country, Code |
72 | | Code → AirportID (ако е уникатен код, што реално е во авионска индустрија) |
73 | | |
74 | | 1NF : сите атрибути се атомски |
75 | | 2NF : сите атрибути зависат целосно од примарниот клуч |
76 | | |
77 | | 3NF: бидејќи нема транзитивни зависности |
78 | | BCNF : AirportID е супер-клуч |
79 | | |
80 | | Можна декомпозиција (ако Code е уникатен): |
81 | | R1:{ (AirportID, Name, City, Country} |
82 | | R2:{ (AirportID, Code} |
83 | | |
84 | | |
85 | | |
86 | | Заклучок: |
87 | | Табелата Flight е целосно нормализирана и се наоѓа во 1NF, 2NF, 3NF и BCNF. |
88 | | |
89 | | |
90 | | ________________________________________ |
91 | | Booking Нормализација: |
| 67 | R = { **AirportID**, Name, City, Country, Code }\\ |
| 68 | |
| 69 | Функционални зависности:\\ |
| 70 | |
| 71 | **AirportID** → Name, City, Country, Code\\ |
| 72 | |
| 73 | Code → AirportID (ако е уникатен код, што реално е во авионска индустрија)\\ |
| 74 | |
| 75 | |
| 76 | 1NF : сите атрибути се атомски\\ |
| 77 | 2NF : сите атрибути зависат целосно од примарниот клуч\\ |
| 78 | |
| 79 | 3NF: бидејќи нема транзитивни зависности\\ |
| 80 | BCNF : AirportID е супер-клуч\\ |
| 81 | |
| 82 | Можна декомпозиција (ако Code е уникатен):\\ |
| 83 | R1:{ (AirportID, Name, City, Country}\\ |
| 84 | R2:{ (AirportID, Code}\\ |
| 85 | |
| 86 | |
| 87 | |
| 88 | Заклучок:\\ |
| 89 | Табелата Flight е целосно нормализирана и се наоѓа во 1NF, 2NF, 3NF и BCNF.\\ |
| 90 | |
| 91 | |
| 92 | ________________________________________\\ |
| 93 | Booking Нормализација:\\ |
99 | | R = { BookingID, UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber } |
100 | | Функциски зависности: |
101 | | BookingID → UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber |
102 | | 1NF:Сите атрибути содржат атомски вредности. |
103 | | 2NF:Сите не-клучни атрибути зависат целосно од примарниот клуч BookingID. |
104 | | 3NF:Нема транзитивни зависности — сите атрибути зависат директно од BookingID. |
105 | | BCNF: супер-клуч (BookingID). |
106 | | Заклучок: |
107 | | Табелата Booking е во 1NF, 2NF, 3NF и BCNF. |
108 | | ________________________________________ |
109 | | Review Нормализација: |
| 101 | R = { BookingID, UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber } \\ |
| 102 | Функциски зависности:\\ |
| 103 | BookingID → UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber\\ |
| 104 | 1NF:Сите атрибути содржат атомски вредности.\\ |
| 105 | 2NF:Сите не-клучни атрибути зависат целосно од примарниот клуч BookingID.\\ |
| 106 | 3NF:Нема транзитивни зависности — сите атрибути зависат директно од BookingID.\\ |
| 107 | BCNF: супер-клуч (BookingID).\\ |
| 108 | Заклучок:\\ |
| 109 | Табелата Booking е во 1NF, 2NF, 3NF и BCNF.\\ |
| 110 | ________________________________________\\ |
| 111 | Review Нормализација:\\ |
116 | | R = { ReviewID, UserID, TargetID, ReviewComment, Rating, Date } |
117 | | Функциски зависности: |
118 | | ReviewID → UserID, TargetID, ReviewComment, Rating, Date |
119 | | 1NF:Сите атрибути се атомски. |
120 | | 2NF:Сите атрибути зависат целосно од примарниот клуч ReviewID. |
121 | | 3NF:Нема транзитивни зависности. |
122 | | BCNF: |
123 | | ReviewID е супер-клуч за сите останати атрибути. |
124 | | Заклучок: |
125 | | Табелата Review е во 1NF, 2NF, 3NF и BCNF. |
126 | | ________________________________________ |
127 | | Payment Нормализација : |
| 118 | R = { ReviewID, UserID, TargetID, ReviewComment, Rating, Date }\\ |
| 119 | Функциски зависности:\\ |
| 120 | ReviewID → UserID, TargetID, ReviewComment, Rating, Date\\ |
| 121 | 1NF:Сите атрибути се атомски.\\ |
| 122 | 2NF:Сите атрибути зависат целосно од примарниот клуч ReviewID.\\ |
| 123 | 3NF:Нема транзитивни зависности.\\ |
| 124 | BCNF:\\ |
| 125 | ReviewID е супер-клуч за сите останати атрибути.\\ |
| 126 | Заклучок:\\ |
| 127 | Табелата Review е во 1NF, 2NF, 3NF и BCNF.\\ |
| 128 | ________________________________________\\ |
| 129 | Payment Нормализација :\\ |
134 | | R = { PaymentID, BookingID, UserID, PaymentMethod, Amount, TransactionDate, PaymentStatus } |
135 | | Функциски зависности: |
136 | | PaymentID → BookingID, UserID, PaymentMethod, Amount, TransactionDate, PaymentStatus |
137 | | 1NF:Сите атрибути содржат атомски вредности. |
138 | | 2NF:Сите атрибути зависат целосно од PaymentID. |
139 | | 3NF:Нема транзитивни зависности. |
140 | | BCNF:PaymentID е супер-клуч за останатите атрибути. |
141 | | Заклучок: |
142 | | Табелата Payment е во 1NF, 2NF, 3NF и BCNF. |
143 | | ________________________________________ |
144 | | Notification Нормализација: |
| 136 | R = { PaymentID, BookingID, UserID, PaymentMethod, Amount, TransactionDate, PaymentStatus }\\ |
| 137 | Функциски зависности:\\ |
| 138 | PaymentID → BookingID, UserID, PaymentMethod, Amount, TransactionDate, PaymentStatus\\ |
| 139 | 1NF:Сите атрибути содржат атомски вредности.\\ |
| 140 | 2NF:Сите атрибути зависат целосно од PaymentID.\\ |
| 141 | 3NF:Нема транзитивни зависности.\\ |
| 142 | BCNF:PaymentID е супер-клуч за останатите атрибути.\\ |
| 143 | Заклучок:\\ |
| 144 | Табелата Payment е во 1NF, 2NF, 3NF и BCNF.\\ |
| 145 | ________________________________________\\ |
| 146 | Notification Нормализација:\\ |
152 | | R = { NotificationID, UserID, Message, Type, DateSent } |
153 | | Функциски зависности: |
154 | | NotificationID → UserID, Message, Type, DateSent |
155 | | 1NF:Атомски вредности. |
156 | | 2NF:Целосна зависност од NotificationID. |
157 | | 3NF:Нема транзитивни зависности. |
158 | | BCNF:NotificationID е супер-клуч. |
159 | | Заклучок: Табелата Notification е во 1NF, 2NF, 3NF и BCNF. |
160 | | ________________________________________ |
161 | | Wishlist Нормализација: |
| 154 | R = { NotificationID, UserID, Message, Type, DateSent }\\ |
| 155 | Функциски зависности:\\ |
| 156 | NotificationID → UserID, Message, Type, DateSent\\ |
| 157 | 1NF:Атомски вредности.\\ |
| 158 | 2NF:Целосна зависност од NotificationID.\\ |
| 159 | 3NF:Нема транзитивни зависности.\\ |
| 160 | BCNF:NotificationID е супер-клуч.\\ |
| 161 | Заклучок: Табелата Notification е во 1NF, 2NF, 3NF и BCNF.\\ |
| 162 | ________________________________________\\ |
| 163 | Wishlist Нормализација:\\ |
169 | | R = { WishlistID, UserID, TargetID, DateAdded } |
170 | | Функциски зависности: |
171 | | WishlistID → UserID, TargetID, DateAdded |
172 | | 1NF:Атомски атрибути. |
173 | | 2NF:Целосна зависност од WishlistID. |
174 | | 3NF:Нема транзитивни зависности. |
175 | | BCNF: |
176 | | WishlistID е супер-клуч. |
177 | | Заклучок: |
178 | | Табелата Wishlist е во 1NF, 2NF, 3NF и BCNF. |
179 | | ________________________________________ |
180 | | Administrator Нормализација : |
| 171 | R = { WishlistID, UserID, TargetID, DateAdded }\\ |
| 172 | Функциски зависности:\\ |
| 173 | WishlistID → UserID, TargetID, DateAdded\\ |
| 174 | 1NF:Атомски атрибути.\\ |
| 175 | 2NF:Целосна зависност од WishlistID.\\ |
| 176 | 3NF:Нема транзитивни зависности.\\ |
| 177 | BCNF:\\ |
| 178 | WishlistID е супер-клуч.\\ |
| 179 | Заклучок:\\ |
| 180 | Табелата Wishlist е во 1NF, 2NF, 3NF и BCNF.\\ |
| 181 | ________________________________________\\ |
| 182 | Administrator Нормализација :\\ |
187 | | R = { AdminID, Email } |
188 | | Функциски зависности: |
189 | | AdminID → Email |
190 | | 1NF:Сите атрибути се атомски. |
191 | | 2NF:Целосна зависност од AdminID. |
192 | | 3NF:Нема транзитивни зависности. |
193 | | BCNF:AdminID е супер-клуч. |
194 | | Заклучок: |
195 | | Табелата Administrator е во 1NF, 2NF, 3NF и BCNF. |
196 | | ________________________________________ |
197 | | SupportTicket Нормализација: |
| 189 | R = { AdminID, Email }\\ |
| 190 | Функциски зависности:\\ |
| 191 | AdminID → Email\\ |
| 192 | 1NF:Сите атрибути се атомски.\\ |
| 193 | 2NF:Целосна зависност од AdminID.\\ |
| 194 | 3NF:Нема транзитивни зависности.\\ |
| 195 | BCNF:AdminID е супер-клуч.\\ |
| 196 | Заклучок:\\ |
| 197 | Табелата Administrator е во 1NF, 2NF, 3NF и BCNF.\\ |
| 198 | ________________________________________\\ |
| 199 | SupportTicket Нормализација:\\ |
205 | | R = { TicketID, UserID, Subject, Description, Status, DateCreated, DateResolved, AssignedTo } |
206 | | Функциски зависности: |
207 | | TicketID → UserID, Subject, Description, Status, DateCreated, DateResolved, AssignedTo |
208 | | 1NF:Атомски вредности. |
209 | | 2NF:Сите атрибути зависат целосно од TicketID. |
210 | | 3NF:Нема транзитивни зависности. |
211 | | BCNF:TicketID е супер-клуч. |
212 | | Заклучок: |
213 | | Табелата SupportTicket е во 1NF, 2NF, 3NF и BCNF. |
214 | | |
215 | | |
216 | | |
| 207 | R = { TicketID, UserID, Subject, Description, Status, DateCreated, DateResolved, AssignedTo }\\ |
| 208 | Функциски зависности:\\ |
| 209 | TicketID → UserID, Subject, Description, Status, DateCreated, DateResolved, AssignedTo\\ |
| 210 | 1NF:Атомски вредности.\\ |
| 211 | 2NF:Сите атрибути зависат целосно од TicketID.\\ |
| 212 | 3NF:Нема транзитивни зависности.\\ |
| 213 | BCNF:TicketID е супер-клуч.\\ |
| 214 | Заклучок:\\ |
| 215 | Табелата SupportTicket е во 1NF, 2NF, 3NF и BCNF.\\ |
| 216 | |
| 217 | |
| 218 | |