Changes between Version 2 and Version 3 of Нормализација и подобрувања на дизајнот на базата


Ignore:
Timestamp:
04/28/25 15:03:03 (3 days ago)
Author:
173067
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Нормализација и подобрувања на дизајнот на базата

    v2 v3  
    33'''Functional Dependencies:'''
    44
     5UserID  Name    Surename        Email   Password        PhoneNumber     DataJoined
     61       Stefani Jovanoska       Sjovanoska@gmail.com    Sjovanoska123!  078123123       27.4.2025
     72       Stefani Jovanoska       Sjovanoska123@gmail.com Sjovanoska123!!!        078123321       27.4.2025
     8
    59R = { UserID, Name, Surname, Email, Password, PhoneNumber, DateJoined }
    6 UserID → Name, Surname, Email, Password, PhoneNumber, DateJoined
    7 
    8 Анализа на нормализација:
    9 
    10 1NF: Сите колони се атомски
    11 2NF: Нема парцијални зависности (UserID е примарен клуч и сите атрибути зависат од него).
    12 3NF: Нема транзитивни зависности.
    13 
    14 Заклучок: **ApplicationUser** е во BCNF.
    15 
    16 === ===
    17 
    18 '''Functional Dependencies:'''
     10
     11Функциски зависности:
     12
     13UserID → Name, Surname, Email, PhoneNumber, Password, DateJoined
     14
     15Email → UserID (email мора да биде уникатен)
     16
     17PhoneNumber → UserID (ако е еден-на-еден релација)
     18
     19
     20
     211NF: атомски вредности
     222NF: сите зависности се од целиот клуч UserID
     233NF: Email и PhoneNumber функционално зависат од UserID, значи нема транзитивни зависности.
     24
     25R1 = { UserID , Name, Surname, Email, PhoneNumber, Password, DateJoined }
     26
     27R2 = { Email , UserID }
     28
     29R3 = { PhoneNumber , UserID }
     30
     31
     32Можна декомпозиција:
     33R1:{ (UserID, Name, Surname, DateJoined}
     34R2:{(UserID, Email, PhoneNumber, Password}
     35________________________________________
     36
     372. Destination Нормализација
     38
     39
     40DestinationID   Name    Country Description     PopularAttraction       BestTimeToVisit
     411       Skopje  Macedonia       Short flight    Old town        Spring
     422       Ohrid   Macedonia       Short flight    The Lake        Summer
     43
    1944
    2045R = { DestinationID, Name, Country, Description, PopularAttraction, BestTimeToVisit }
     46
     47Функционални зависности:
    2148DestinationID → Name, Country, Description, PopularAttraction, BestTimeToVisit
    2249
    23 Анализа на нормализација:
    24 
    25 1NF: Сите полиња се атомски.
    26 2NF: Сите атрибути зависат целосно од DestinationID.
    27 3NF: Нема транзитивни зависности.
    28 
    29 Заклучок: **Destination** е во BCNF.
    30 
    31 === ===
    32 
    33 '''Functional Dependencies:'''
     50R1:{ DestinationID , Name, Country, Description, PopularAttraction, BestTimeToVisit }
     51
     52
     531NF: сите атрибути се атомски
     542NF: сите атрибути зависат целосно од примарниот клуч
     553NF: бидејќи нема транзитивни зависности
     56BCNF: сите детерминанти се супер-клучеви
     57Заклучок: Нема потреба за дополнителна декомпозиција
     58
     59
     60________________________________________
     613. Airport Нормализација
     62
     63
     64AirportId       Name    City    Country Code
     651       Aleksandar Veliki       Skopje  MAcedonia       1234
     661       Apostol Pavle   Ohrid   Macedonia       2345
     67
    3468
    3569R = { AirportID, Name, City, Country, Code }
     70Функционални зависности:
    3671AirportID → Name, City, Country, Code
    37 
    38 Анализа на нормализација:
    39 
    40 1NF: Сите атрибути се атомски.
    41 2NF: Сите атрибути зависат целосно од AirportID.
    42 3NF: Нема транзитивни зависности.
    43 
    44 Заклучок: **Airport** е во BCNF.
    45 
    46 === ===
    47 
    48 '''Functional Dependencies:'''
    49 
    50 R = { FlightID, FlightNumber, DepartureAirport, ArrivalAirport, DepartureTime, ArrivalTime, Duration, Price, AvailableSeats }
    51 FlightID → FlightNumber, DepartureAirport, ArrivalAirport, DepartureTime, ArrivalTime, Duration, Price, AvailableSeats
    52 
    53 Анализа на нормализација:
    54 
    55 1NF: Сите атрибути се атомски.
    56 2NF: Сите атрибути зависат целосно од FlightID.
    57 3NF: Нема транзитивни зависности.
    58 
    59 Заклучок: **Flight** е во BCNF.
    60 
    61 === ===
    62 
    63 '''Functional Dependencies:'''
    64 
    65 R = { BookingID, UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber }
     72Code → AirportID (ако е уникатен код, што реално е во авионска индустрија)
     73
     741NF : сите атрибути се атомски
     752NF : сите атрибути зависат целосно од примарниот клуч
     76
     773NF: бидејќи нема транзитивни зависности
     78BCNF : AirportID е супер-клуч
     79
     80Можна декомпозиција (ако Code е уникатен):
     81R1:{ (AirportID, Name, City, Country}
     82R2:{ (AirportID, Code}
     83
     84
     85
     86Заклучок:
     87Табелата Flight е целосно нормализирана и се наоѓа во 1NF, 2NF, 3NF и BCNF.
     88
     89
     90________________________________________
     91Booking Нормализација:
     92
     93
     94
     95BookingID       UserID  FlightID        BookingDate     PaymentStatus   TotalCost       SeatNumber
     961       1       1       1.1.2025        Ok      10000   1
     972       2       2       1.2.2025        Ok      100     2
     98 R = { BookingID, UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber }
     99Функциски зависности:
    66100BookingID → UserID, FlightID, BookingDate, PaymentStatus, TotalCost, SeatNumber
    67 
    68 Анализа на нормализација:
    69 
    70 1NF: Сите атрибути се атомски.
    71 2NF: Сите атрибути зависат целосно од BookingID.
    72 3NF: Нема транзитивни зависности.
    73 
    74 Заклучок: **Booking** е во BCNF.
    75 
    76 === ===
    77 
    78 '''Functional Dependencies:'''
     1011NF:Сите атрибути содржат атомски вредности.
     1022NF:Сите не-клучни атрибути зависат целосно од примарниот клуч BookingID.
     1033NF:Нема транзитивни зависности — сите атрибути зависат директно од BookingID.
     104BCNF: супер-клуч (BookingID).
     105Заклучок:
     106Табелата Booking е во 1NF, 2NF, 3NF и BCNF.
     107________________________________________
     108Review  Нормализација:
     109
     110
     111ReviewID        UserID  TargetID        ReviewComment   Rating  Date
     1121       1       1       ок      5       1.1.2025
     1132       2       2       ок      5       1.2.2025
     114
    79115
    80116R = { ReviewID, UserID, TargetID, ReviewComment, Rating, Date }
     117Функциски зависности:
    81118ReviewID → UserID, TargetID, ReviewComment, Rating, Date
    82 
    83 Анализа на нормализација:
    84 
    85 1NF: Сите атрибути се атомски.
    86 2NF: Сите атрибути зависат целосно од ReviewID.
    87 3NF: Нема транзитивни зависности.
    88 
    89 Заклучок: **Review** е во BCNF.
    90 
    91 === ===
    92 
    93 '''Functional Dependencies:'''
     1191NF:Сите атрибути се атомски.
     1202NF:Сите атрибути зависат целосно од примарниот клуч ReviewID.
     1213NF:Нема транзитивни зависности.
     122BCNF:
     123ReviewID е супер-клуч за сите останати атрибути.
     124Заклучок:
     125Табелата Review е во 1NF, 2NF, 3NF и BCNF.
     126________________________________________
     127Payment Нормализација :
     128
     129PaymentID       BookingID       UserID  PaymentMethod   Amount  TransactionDate PaymentStatus
     1301       1       1       card    10000   1.2.2025        ok
     1312       2       2       card    100     1.2.2025        ok
     132
     133
    94134
    95135R = { PaymentID, BookingID, UserID, PaymentMethod, Amount, TransactionDate, PaymentStatus }
     136Функциски зависности:
    96137PaymentID → BookingID, UserID, PaymentMethod, Amount, TransactionDate, PaymentStatus
    97 
    98 Анализа на нормализација:
    99 
    100 1NF: Сите атрибути се атомски.
    101 2NF: Сите атрибути зависат целосно од PaymentID.
    102 3NF: Нема транзитивни зависности.
    103 
    104 Заклучок: **Payment** е во BCNF.
    105 === ===
    106 
    107 '''Functional Dependencies:'''
     1381NF:Сите атрибути содржат атомски вредности.
     1392NF:Сите атрибути зависат целосно од PaymentID.
     1403NF:Нема транзитивни зависности.
     141BCNF:PaymentID е супер-клуч за останатите атрибути.
     142Заклучок:
     143Табелата Payment е во 1NF, 2NF, 3NF и BCNF.
     144________________________________________
     145Notification Нормализација:
     146
     147
     148NotificationID  UserID  Message Type    DateSent
     1491       1       ok      1       2.2.2015
     1502       2       ok      2       2.2.2015
     151
    108152
    109153R = { NotificationID, UserID, Message, Type, DateSent }
     154Функциски зависности:
    110155NotificationID → UserID, Message, Type, DateSent
    111 
    112 Анализа на нормализација:
    113 
    114 1NF: Сите атрибути се атомски.
    115 2NF: Сите атрибути зависат целосно од NotificationID.
    116 3NF: Нема транзитивни зависности.
    117 
    118 Заклучок: **Notification** е во BCNF.
    119 
    120 === ===
    121 
    122 '''Functional Dependencies:'''
     1561NF:Атомски вредности.
     1572NF:Целосна зависност од NotificationID.
     1583NF:Нема транзитивни зависности.
     159BCNF:NotificationID е супер-клуч.
     160Заклучок: Табелата Notification е во 1NF, 2NF, 3NF и BCNF.
     161________________________________________
     162Wishlist Нормализација:
     163
     164
     165WishlistID      UserID  TargetID        DateAdded
     1661       1       1       2.2.2025
     1672       2       2       2.2.2025
     168
    123169
    124170R = { WishlistID, UserID, TargetID, DateAdded }
     171Функциски зависности:
    125172WishlistID → UserID, TargetID, DateAdded
    126 
    127 Анализа на нормализација:
    128 
    129 1NF: Сите атрибути се атомски.
    130 2NF: Сите атрибути зависат целосно од WishlistID.
    131 3NF: Нема транзитивни зависности.
    132 
    133 Заклучок: **Wishlist** е во BCNF.
    134 
    135 === ===
    136 
    137 '''Functional Dependencies:'''
     1731NF:Атомски атрибути.
     1742NF:Целосна зависност од WishlistID.
     1753NF:Нема транзитивни зависности.
     176BCNF:
     177WishlistID е супер-клуч.
     178Заклучок:
     179Табелата Wishlist е во 1NF, 2NF, 3NF и BCNF.
     180________________________________________
     181Administrator Нормализација :
     182
     183AdminID Email
     1841       stefanijovanoska@gmail.com
     1852       Stefani123@gmail.com
     186
    138187
    139188R = { AdminID, Email }
     189Функциски зависности:
    140190AdminID → Email
    141 
    142 Анализа на нормализација:
    143 
    144 1NF: Сите атрибути се атомски.
    145 2NF: Сите атрибути зависат целосно од AdminID.
    146 3NF: Нема транзитивни зависности.
    147 
    148 Заклучок: **Administrator** е во BCNF.
    149 
    150 === ===
    151 
    152 '''Functional Dependencies:'''
     1911NF:Сите атрибути се атомски.
     1922NF:Целосна зависност од AdminID.
     1933NF:Нема транзитивни зависности.
     194BCNF:AdminID е супер-клуч.
     195Заклучок:
     196Табелата Administrator е во 1NF, 2NF, 3NF и BCNF.
     197________________________________________
     198SupportTicket Нормализација:
     199
     200TicketID        UserID  Subject Description     Status  DateCreated     DateResolved    AssignedTo
     2011       1       Wrong id on the card    Need changes    waiting 1.2.2015        1.2.2015        Stefani
     2022       2       Wrong id on the card    Need changes    waiting 1.2.2015        1.2.2015        Stefani
     203
     204
    153205
    154206R = { TicketID, UserID, Subject, Description, Status, DateCreated, DateResolved, AssignedTo }
     207Функциски зависности:
    155208TicketID → UserID, Subject, Description, Status, DateCreated, DateResolved, AssignedTo
    156 
    157 Анализа на нормализација:
    158 
    159 1NF: Сите атрибути се атомски.
    160 2NF: Сите атрибути зависат целосно од TicketID.
    161 3NF: Нема транзитивни зависности.
    162 
    163 Заклучок: **SupportTicket** е во BCNF.
     2091NF:Атомски вредности.
     2102NF:Сите атрибути зависат целосно од TicketID.
     2113NF:Нема транзитивни зависности.
     212BCNF:TicketID е супер-клуч.
     213Заклучок:
     214Табелата SupportTicket е во 1NF, 2NF, 3NF и BCNF.
     215