Version 5 (modified by 3 days ago) ( diff ) | ,
---|
Функционални карактеристики и нормализација
Functional Dependencies:
UserID | Name | Surname | 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 | |
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.