Version 3 (modified by 3 days ago) ( diff ) | ,
---|
Функционални карактеристики и нормализација
Functional Dependencies:
UserID Name Surename Email Password PhoneNumber DataJoined 1 Stefani Jovanoska Sjovanoska@… Sjovanoska123! 078123123 27.4.2025 2 Stefani Jovanoska Sjovanoska123@… Sjovanoska123!!! 078123321 27.4.2025
R = { UserID, Name, Surname, Email, Password, PhoneNumber, DateJoined }
Функциски зависности:
UserID → Name, Surname, Email, PhoneNumber, Password, DateJoined
Email → UserID (email мора да биде уникатен)
PhoneNumber → UserID (ако е еден-на-еден релација)
1NF: атомски вредности 2NF: сите зависности се од целиот клуч UserID 3NF: Email и PhoneNumber функционално зависат од UserID, значи нема транзитивни зависности.
R1 = { UserID , Name, Surname, Email, PhoneNumber, Password, DateJoined }
R2 = { Email , UserID }
R3 = { PhoneNumber , UserID }
Можна декомпозиција: R1:{ (UserID, Name, Surname, DateJoined} R2:{(UserID, Email, PhoneNumber, Password}
- Destination Нормализација
DestinationID Name Country Description PopularAttraction BestTimeToVisit 1 Skopje Macedonia Short flight Old town Spring 2 Ohrid Macedonia Short flight The Lake Summer
R = { DestinationID, Name, Country, Description, PopularAttraction, BestTimeToVisit }
Функционални зависности: DestinationID → Name, Country, Description, PopularAttraction, BestTimeToVisit
R1:{ DestinationID , Name, Country, Description, PopularAttraction, BestTimeToVisit }
1NF: сите атрибути се атомски 2NF: сите атрибути зависат целосно од примарниот клуч 3NF: бидејќи нема транзитивни зависности BCNF: сите детерминанти се супер-клучеви Заклучок: Нема потреба за дополнителна декомпозиција
- Airport Нормализација
AirportId Name City Country Code 1 Aleksandar Veliki Skopje MAcedonia 1234 1 Apostol Pavle Ohrid Macedonia 2345
R = { AirportID, Name, City, Country, Code } Функционални зависности: AirportID → Name, City, Country, Code Code → AirportID (ако е уникатен код, што реално е во авионска индустрија)
1NF : сите атрибути се атомски 2NF : сите атрибути зависат целосно од примарниот клуч
3NF: бидејќи нема транзитивни зависности BCNF : AirportID е супер-клуч
Можна декомпозиција (ако Code е уникатен): R1:{ (AirportID, Name, City, Country} R2:{ (AirportID, Code}
Заклучок: Табелата Flight е целосно нормализирана и се наоѓа во 1NF, 2NF, 3NF и BCNF.
Booking Нормализација:
BookingID UserID FlightID BookingDate PaymentStatus TotalCost SeatNumber 1 1 1 1.1.2025 Ok 10000 1 2 2 2 1.2.2025 Ok 100 2
R = { BookingID, UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber }
Функциски зависности: BookingID → UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber 1NF:Сите атрибути содржат атомски вредности. 2NF:Сите не-клучни атрибути зависат целосно од примарниот клуч BookingID. 3NF:Нема транзитивни зависности — сите атрибути зависат директно од BookingID. BCNF: супер-клуч (BookingID). Заклучок: Табелата Booking е во 1NF, 2NF, 3NF и BCNF. Review Нормализација:
ReviewID UserID TargetID ReviewComment Rating Date 1 1 1 ок 5 1.1.2025 2 2 2 ок 5 1.2.2025
R = { ReviewID, UserID, TargetID, ReviewComment, Rating, Date } Функциски зависности: ReviewID → UserID, TargetID, ReviewComment, Rating, Date 1NF:Сите атрибути се атомски. 2NF:Сите атрибути зависат целосно од примарниот клуч ReviewID. 3NF:Нема транзитивни зависности. BCNF: ReviewID е супер-клуч за сите останати атрибути. Заклучок: Табелата Review е во 1NF, 2NF, 3NF и BCNF. Payment Нормализација :
PaymentID BookingID UserID PaymentMethod Amount TransactionDate PaymentStatus 1 1 1 card 10000 1.2.2025 ok 2 2 2 card 100 1.2.2025 ok
R = { PaymentID, BookingID, UserID, PaymentMethod, Amount, TransactionDate, PaymentStatus } Функциски зависности: PaymentID → BookingID, UserID, PaymentMethod, Amount, TransactionDate, PaymentStatus 1NF:Сите атрибути содржат атомски вредности. 2NF:Сите атрибути зависат целосно од PaymentID. 3NF:Нема транзитивни зависности. BCNF:PaymentID е супер-клуч за останатите атрибути. Заклучок: Табелата Payment е во 1NF, 2NF, 3NF и BCNF. Notification Нормализација:
NotificationID UserID Message Type DateSent 1 1 ok 1 2.2.2015 2 2 ok 2 2.2.2015
R = { NotificationID, UserID, Message, Type, DateSent } Функциски зависности: NotificationID → UserID, Message, Type, DateSent 1NF:Атомски вредности. 2NF:Целосна зависност од NotificationID. 3NF:Нема транзитивни зависности. BCNF:NotificationID е супер-клуч. Заклучок: Табелата Notification е во 1NF, 2NF, 3NF и BCNF. Wishlist Нормализација:
WishlistID UserID TargetID DateAdded 1 1 1 2.2.2025 2 2 2 2.2.2025
R = { WishlistID, UserID, TargetID, DateAdded } Функциски зависности: WishlistID → UserID, TargetID, DateAdded 1NF:Атомски атрибути. 2NF:Целосна зависност од WishlistID. 3NF:Нема транзитивни зависности. BCNF: WishlistID е супер-клуч. Заклучок: Табелата Wishlist е во 1NF, 2NF, 3NF и BCNF. Administrator Нормализација :
AdminID Email 1 stefanijovanoska@… 2 Stefani123@…
R = { AdminID, Email } Функциски зависности: AdminID → Email 1NF:Сите атрибути се атомски. 2NF:Целосна зависност од AdminID. 3NF:Нема транзитивни зависности. BCNF:AdminID е супер-клуч. Заклучок: Табелата Administrator е во 1NF, 2NF, 3NF и BCNF. SupportTicket Нормализација:
TicketID UserID Subject Description Status DateCreated DateResolved AssignedTo 1 1 Wrong id on the card Need changes waiting 1.2.2015 1.2.2015 Stefani 2 2 Wrong id on the card Need changes waiting 1.2.2015 1.2.2015 Stefani
R = { TicketID, UserID, Subject, Description, Status, DateCreated, DateResolved, AssignedTo } Функциски зависности: TicketID → UserID, Subject, Description, Status, DateCreated, DateResolved, AssignedTo 1NF:Атомски вредности. 2NF:Сите атрибути зависат целосно од TicketID. 3NF:Нема транзитивни зависности. BCNF:TicketID е супер-клуч. Заклучок: Табелата SupportTicket е во 1NF, 2NF, 3NF и BCNF.