Changes between Version 6 and Version 7 of Normalization


Ignore:
Timestamp:
02/18/26 22:03:23 (10 days ago)
Author:
231017
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v6 v7  
    88
    99- FD1: user_id -> profile_photo, email, username, full_name, password
    10 - FD3: musical_entity_id -> title, genre, me_cover, release_date, artist_id
    11 - FD4: song_id -> link, album_id
    12 - FD5: playlist_id -> playlist_cover, playlist_name, listener_id
    13 - FD6: event_id -> event_name, location, venue, date, time, user_id
    14 - FD7: (artist_id, musical_entity_id) -> role
    15 - FD8: (listener_id, musical_entity_id) -> grade, comment
    16 
    17 - FD9: non_admin_user_id -> user_id
    18 - FD10: admin_id -> user_id
    19 - FD11: listener_id -> non_admin_user_id
    20 - FD12: artist_id -> non_admin_user_id
    21 - FD13: album_id -> musical_entity_id
    22 - FD14: (listener_id,song_id,timestamp) -> /
     10- FD2: musical_entity_id -> title, genre, me_cover, release_date, artist_id
     11- FD3: song_id -> link, album_id
     12- FD4: playlist_id -> playlist_cover, playlist_name, listener_id
     13- FD5: event_id -> event_name, location, venue, date, time, user_id
     14- FD6: (artist_id, musical_entity_id) -> role
     15- FD7: (listener_id, musical_entity_id) -> grade, comment
     16
     17- FD8: non_admin_user_id -> user_id
     18- FD9: admin_id -> user_id
     19- FD10: listener_id -> non_admin_user_id
     20- FD11: artist_id -> non_admin_user_id
     21- FD12: album_id -> musical_entity_id
     22- FD13: (listener_id,song_id,timestamp) -> /
    2323
    2424
     
    9393Lossless join: Релацијата може да се реконструира преку join со `playlist_id`.
    9494
    95 Dependency preservation: FD5 е сочувана преку новата релација `Playlists`.
     95Dependency preservation: FD4 е сочувана преку новата релација `Playlists`.
    9696
    9797
     
    104104Lossless join: Релацијата може да се реконструира преку join со `song_id`
    105105
    106 Dependency preservation: FD4 е сочувана преку новата релација `Songs`
     106Dependency preservation: FD3 е сочувана преку новата релација `Songs`
    107107
    108108
     
    115115Lossless join: Релацијата може да се реконструира преку join со `event_id`
    116116
    117 Dependency preservation: FD6 е сочувана преку новата релација `Events`
     117Dependency preservation: FD5 е сочувана преку новата релација `Events`
    118118
    119119
     
    122122Lossless join: Релацијата може да се реконструира преку join со `admin_id`
    123123
    124 Dependency preservation: FD10 е сочувана преку новата релација `Admins`
     124Dependency preservation: FD9 е сочувана преку новата релација `Admins`
    125125
    126126
     
    136136
    137137== Проверка за 3НФ
    138 Поради постоењето на транзитивни зависности во добиените релации, можеме да заклучиме дека **е нарушена 3НФ**. На пример: `Playlists(playlist_id, playlist_name, playlist_cover, listener_id)` има транзитивна зависност преку `FD11: listener_id -> non_admin_user_id`
     138Поради постоењето на транзитивни зависности во добиените релации, можеме да заклучиме дека **е нарушена 3НФ**. На пример: `Playlists(playlist_id, playlist_name, playlist_cover, listener_id)` има транзитивна зависност преку `FD10: listener_id -> non_admin_user_id`
    139139
    140140== Декомпозиција по 3НФ
    141141
    142 1. `Playlists(playlist_id, playlist_name, playlist_cover, listener_id)` -> има транзитивна зависност преку `FD11: listener_id -> non_admin_user_id`
    143 
    144 Декомпозиција по FD11:
    145 
    146 **Listeners(listener_id, non_admin_user_id)** -> има транзитивна зависност преку `FD9: non_admin_user_id -> user_id`
    147 
    148 Декомпозиција по FD9:
     1421. `Playlists(playlist_id, playlist_name, playlist_cover, listener_id)` -> има транзитивна зависност преку `FD10: listener_id -> non_admin_user_id`
     143
     144Декомпозиција по FD10:
     145
     146**Listeners(listener_id, non_admin_user_id)** -> има транзитивна зависност преку `FD8: non_admin_user_id -> user_id`
     147
     148Декомпозиција по FD8:
    149149
    150150**Non_Admin_Users(non_admin_user_id, user_id)**
     
    167167Dependency preservation: FD1 е сочувана преку новата релација `Users`
    168168
    169 2. `Songs(song_id, link, album_id)` -> има транзитивна зависност преку `FD13: album_id -> musical_entity_id`
    170 
    171 Декомпозиција по FD13:
    172 
    173 **Albums(album_id, musical_entity_id)** -> има транзитивна преку `FD3: musical_entity_id-> title, genre, me_cover, release_date, artist_id`
     1692. `Songs(song_id, link, album_id)` -> има транзитивна зависност преку `FD12: album_id -> musical_entity_id`
     170
     171Декомпозиција по FD12:
     172
     173**Albums(album_id, musical_entity_id)** -> има транзитивна преку `FD2: musical_entity_id-> title, genre, me_cover, release_date, artist_id`
    174174
    175175Lossless join: Релацијата може да се реконструира преку join со `album_id`
    176176
    177 Dependency preservation: FD13 е сочувана преку новата релација `Albums`
    178 
    179 Декомпозиција по FD3:
     177Dependency preservation: FD12 е сочувана преку новата релација `Albums`
     178
     179Декомпозиција по FD2:
    180180
    181181**Musical_Entities(musical_entity_id, title, genre, me_cover, release_date, artist_id)**
     
    188188Lossless join: Релацијата може да се реконструира преку join со `musical_entity_id`
    189189
    190 Dependency preservation: FD3 е сочувана преку новата релација `Musical_Entities`
    191 
    192 `Musical_Entities(musical_entity_id, title, genre, me_cover, release_date, artist_id)` -> има транзитивна зависност преку `FD12: artist_id -> non_admin_user_id`
    193 
    194 Декомпозиција по FD12:
     190Dependency preservation: FD2 е сочувана преку новата релација `Musical_Entities`
     191
     192`Musical_Entities(musical_entity_id, title, genre, me_cover, release_date, artist_id)` -> има транзитивна зависност преку `FD11: artist_id -> non_admin_user_id`
     193
     194Декомпозиција по FD11:
    195195
    196196**Artists(artist_id)** - `artist_id` е всушност примарен клуч во релацијата `Artists` и надворешен клуч во релацијата `Non_Admin_Users`, каде е надворешен клуч во релацијата `Users`. Сите останати релации се добиени преку претходните декомпозиции.
     
    220220
    221221
    222 5. Бидејќи `role` е определен од `(artist_id, musical_entity_id)` -> имаме транзитивна зависност преку `FD7:(artist_id, musical_entity_id) -> role`
    223 
    224 Декомпозиција по FD7:
     2225. Бидејќи `role` е определен од `(artist_id, musical_entity_id)` -> имаме транзитивна зависност преку `FD6:(artist_id, musical_entity_id) -> role`
     223
     224Декомпозиција по FD6:
    225225
    226226**Artist_Contributions(artist_id, musical_entity_id, role)**
     
    231231Lossless join: Релацијата може да се реконструира преку join со `(artist_id, musical_entity_id)`
    232232
    233 Dependency preservation: FD7 е сочувана преку новата релација `Musical_Entities`
    234 
    235 6. Бидејќи `grade`, `comment` се определени од `(listener_id, musical_entity_id)` -> имаме транзитивна зависност преку `FD8: (listener_id, musical_entity_id) -> grade, comment`
    236 
    237 Декомпозиција по FD8:
     233Dependency preservation: FD6 е сочувана преку новата релација `Musical_Entities`
     234
     2356. Бидејќи `grade`, `comment` се определени од `(listener_id, musical_entity_id)` -> имаме транзитивна зависност преку `FD7: (listener_id, musical_entity_id) -> grade, comment`
     236
     237Декомпозиција по FD7:
    238238
    239239**Reviews(listener_id, musical_entity_id, grade, comment)**
     
    243243Lossless join: Релацијата може да се реконструира преку join со `(listener_id, musical_entity_id)`.
    244244
    245 Dependency preservation: FD8 е сочувана преку новата релација `Reviews`.
     245Dependency preservation: FD7 е сочувана преку новата релација `Reviews`.
    246246
    247247