wiki:Нормализација и подобрувања на дизајнот на базата

Version 5 (modified by 173067, 3 days ago) ( diff )

--

Функционални карактеристики и нормализација

Functional Dependencies:

UserID Name Surname 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}

  1. 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: сите детерминанти се супер-клучеви
Заклучок: Нема потреба за дополнителна декомпозиција


  1. 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.

Note: See TracWiki for help on using the wiki.