Changes between Version 13 and Version 14 of Normalization


Ignore:
Timestamp:
08/30/26 08:16:56 (8 days ago)
Author:
232012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v13 v14  
    7676FD14: (order_id, product_id) → price_at_purchase, quantity
    7777FD15: (wishlist_id, product_id) → added_at
    78 FD16: (release_id, artist_id) → release_ordinal, release_artist_type
     78FD16: (release_id, artist_id) → release_ordinal, type
    7979FD17: (song_id, artist_id) → song_ordinal
    8080}}}
     
    8585
    8686**RHS only:**\\
    87 email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected, artist_name, artist_description, artist_photo, title, record_label, genre, release_date, cover_photo, duration, song_name, song_duration, format, price, product_description, stock, payment_method, purchase_date, points_earned, points_used, status, date_modified, type_of_modification, discount, price_at_purchase, quantity, release_ordinal, release_artist_type, added_at, song_ordinal
     87email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected, artist_name, artist_description, artist_photo, title, record_label, genre, release_date, cover_photo, duration, song_name, song_duration, format, price, product_description, stock, payment_method, purchase_date, points_earned, points_used, status, date_modified, type_of_modification, discount, price_at_purchase, quantity, release_ordinal, type, added_at, song_ordinal
    8888
    8989**Both LHS and RHS:**\\
     
    142142      album_id, song_id, song_name, song_duration, order_id, payment_method, purchase_date, points_earned, points_used, status, modification_id,
    143143      admin_id, date_modified, type_of_modification, discount, wishlist_id, quantity, price_at_purchase, added_at, release_ordinal,
    144       release_artist_type, song_ordinal, product_id}
    145 }}}
    146 
    147 **Lossless join:** The original relation can be reconstructed through a join using {{{product_id}}}.
    148 
    149 **Dependency preservation:** The dependency {{{product_id → release_id, format, price, product_description, stock}}} is preserved in the new ''PRODUCT'' relation.
     144      type, song_ordinal, product_id}
     145}}}
     146
     147* **Lossless join:** The original relation can be reconstructed through a join using {{{product_id}}}.
     148
     149* **Dependency preservation:** The dependency {{{product_id → release_id, format, price, product_description, stock}}} is preserved in the new ''PRODUCT'' relation.
    150150
    151151
     
    159159      artist_id, release_id, title, record_label, genre, release_date, cover_photo, duration, album_id, song_id, song_name, song_duration,
    160160      product_id, order_id, payment_method, purchase_date, points_earned, points_used, status, modification_id, admin_id, date_modified,
    161       type_of_modification, discount, wishlist_id, quantity, price_at_purchase, added_at, release_ordinal, release_artist_type, song_ordinal}
    162 }}}
    163 
    164 **Lossless join:** The original relation can be reconstructed through a join using {{{artist_id}}}.
    165 
    166 **Dependency preservation:** The dependency {{{artist_id → artist_name, artist_description, artist_photo}}} is preserved in the new ''ARTIST'' relation.
     161      type_of_modification, discount, wishlist_id, quantity, price_at_purchase, added_at, release_ordinal, type, song_ordinal}
     162}}}
     163
     164* **Lossless join:** The original relation can be reconstructed through a join using {{{artist_id}}}.
     165
     166* **Dependency preservation:** The dependency {{{artist_id → artist_name, artist_description, artist_photo}}} is preserved in the new ''ARTIST'' relation.
    167167
    168168
     
    175175      artist_id, release_id, album_id, song_id, song_name, song_duration, product_id, order_id, payment_method, purchase_date,
    176176      points_earned, points_used, status, modification_id, admin_id, date_modified, type_of_modification, discount, wishlist_id,
    177       quantity, price_at_purchase, added_at, release_ordinal, release_artist_type, song_ordinal}
    178 }}}
    179 
    180 **Lossless join:** The original relation can be reconstructed through a join using {{{release_id}}}.
    181 
    182 **Dependency preservation:** The dependency {{{release_id → title, record_label, genre, release_date, cover_photo}}} is preserved in the new ''RELEASE'' relation.
     177      quantity, price_at_purchase, added_at, release_ordinal, type, song_ordinal}
     178}}}
     179
     180* **Lossless join:** The original relation can be reconstructed through a join using {{{release_id}}}.
     181
     182* **Dependency preservation:** The dependency {{{release_id → title, record_label, genre, release_date, cover_photo}}} is preserved in the new ''RELEASE'' relation.
    183183
    184184==== 4. SONG(song_id, song_name, song_duration)
     
    190190      artist_id, release_id, album_id, song_id, product_id, order_id, payment_method, purchase_date, points_earned, points_used, status,
    191191      modification_id, admin_id, date_modified, type_of_modification, discount, wishlist_id, quantity, price_at_purchase, added_at,
    192       release_ordinal, release_artist_type, song_ordinal}
    193 }}}
    194 
    195 **Lossless join:** The original relation can be reconstructed through a join using {{{song_id}}}.
    196 
    197 **Dependency preservation:** The dependency {{{song_id → song_name, song_duration}}} is preserved in the new ''SONG'' relation.
     192      release_ordinal, type, song_ordinal}
     193}}}
     194
     195* **Lossless join:** The original relation can be reconstructed through a join using {{{song_id}}}.
     196
     197* **Dependency preservation:** The dependency {{{song_id → song_name, song_duration}}} is preserved in the new ''SONG'' relation.
    198198
    199199==== 5. MODIFICATION(modification_id, admin_id, date_modified, type_of_modification, discount)
     
    204204R5 = {user_id, email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected,
    205205      artist_id, release_id, album_id, song_id, product_id, order_id, payment_method, purchase_date, points_earned, points_used, status,
    206       modification_id, wishlist_id, quantity, price_at_purchase, added_at, release_ordinal, release_artist_type, song_ordinal}
    207 }}}
    208 
    209 **Lossless join:** The original relation can be reconstructed through a join using {{{modification_id}}}.
    210 
    211 **Dependency preservation:** The dependency {{{modification_id → admin_id, date_modified, type_of_modification, discount}}} is preserved in the new ''MODIFICATION'' relation.
     206      modification_id, wishlist_id, quantity, price_at_purchase, added_at, release_ordinal, type, song_ordinal}
     207}}}
     208
     209* **Lossless join:** The original relation can be reconstructed through a join using {{{modification_id}}}.
     210
     211* **Dependency preservation:** The dependency {{{modification_id → admin_id, date_modified, type_of_modification, discount}}} is preserved in the new ''MODIFICATION'' relation.
    212212
    213213==== 6. ORDER(order_id, user_id, payment_method, purchase_date, points_earned, points_used, status)
     
    218218R6 = {user_id, email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected,
    219219      artist_id, release_id, album_id, song_id, product_id, order_id, modification_id, wishlist_id, quantity, price_at_purchase, added_at,
    220       release_ordinal, release_artist_type, song_ordinal}
    221 }}}
    222 
    223 **Lossless join:** The original relation can be reconstructed through a join using {{{order_id}}}.
    224 
    225 **Dependency preservation:** The dependency {{{order_id → user_id, payment_method, purchase_date, points_earned, points_used, status}}} is preserved in the new ''ORDER'' relation.
     220      release_ordinal, type, song_ordinal}
     221}}}
     222
     223* **Lossless join:** The original relation can be reconstructed through a join using {{{order_id}}}.
     224
     225* **Dependency preservation:** The dependency {{{order_id → user_id, payment_method, purchase_date, points_earned, points_used, status}}} is preserved in the new ''ORDER'' relation.
    226226
    227227==== 7. USER(user_id, email, username, password, date_created, shipping_address, telephone_number)
     
    231231
    232232R7 = {user_id, admin_type, discount_percentage, points_collected, artist_id, release_id, album_id, song_id, product_id, order_id,
    233       modification_id, wishlist_id, quantity, price_at_purchase, added_at, release_ordinal, release_artist_type, song_ordinal}
    234 }}}
    235 
    236 **Lossless join:** The original relation can be reconstructed through a join using {{{user_id}}}.
    237 
    238 **Dependency preservation:** The dependency {{{user_id → email, username, password, date_created, shipping_address, telephone_number}}} is preserved in the new ''USER'' relation.
     233      modification_id, wishlist_id, quantity, price_at_purchase, added_at, release_ordinal, type, song_ordinal}
     234}}}
     235
     236* **Lossless join:** The original relation can be reconstructed through a join using {{{user_id}}}.
     237
     238* **Dependency preservation:** The dependency {{{user_id → email, username, password, date_created, shipping_address, telephone_number}}} is preserved in the new ''USER'' relation.
    239239
    240240==== 8. ORDER_PRODUCTS(order_id, product_id, price_at_purchase, quantity)
     
    244244
    245245R8 = {user_id, admin_type, discount_percentage, points_collected, artist_id, release_id, album_id, song_id, product_id, order_id,
    246       modification_id, wishlist_id, added_at, release_ordinal, release_artist_type, song_ordinal}
    247 }}}
    248 
    249 **Lossless join:** The original relation can be reconstructed through a join using {{{order_id, product_id}}}.
    250 
    251 **Dependency preservation:** The dependency {{{(order_id, product_id) → price_at_purchase, quantity}}} is preserved in the new ''ORDER_PRODUCTS'' relation.
     246      modification_id, wishlist_id, added_at, release_ordinal, type, song_ordinal}
     247}}}
     248
     249* **Lossless join:** The original relation can be reconstructed through a join using {{{order_id, product_id}}}.
     250
     251* **Dependency preservation:** The dependency {{{(order_id, product_id) → price_at_purchase, quantity}}} is preserved in the new ''ORDER_PRODUCTS'' relation.
    252252
    253253==== 9. WISHLIST_PRODUCTS(wishlist_id, product_id, added_at)
     
    257257
    258258R9 = {user_id, admin_type, discount_percentage, points_collected, artist_id, release_id, album_id, song_id, product_id, order_id,
    259       modification_id, wishlist_id, release_ordinal, release_artist_type, song_ordinal}
    260 }}}
    261 
    262 **Lossless join:** The original relation can be reconstructed through a join using {{{wishlist_id, product_id}}}.
    263 
    264 **Dependency preservation:** The dependency {{{(wishlist_id, product_id) → added_at}}} is preserved in the new ''WISHLIST_PRODUCTS'' relation.
    265 
    266 ==== 10. RELEASE_ARTISTS(release_id, artist_id, release_ordinal, release_artist_type)
    267 
    268 {{{
    269 R10 = R9 - {release_ordinal, release_artist_type}
     259      modification_id, wishlist_id, release_ordinal, type, song_ordinal}
     260}}}
     261
     262* **Lossless join:** The original relation can be reconstructed through a join using {{{wishlist_id, product_id}}}.
     263
     264* **Dependency preservation:** The dependency {{{(wishlist_id, product_id) → added_at}}} is preserved in the new ''WISHLIST_PRODUCTS'' relation.
     265
     266==== 10. RELEASE_ARTISTS(release_id, artist_id, release_ordinal, type)
     267
     268{{{
     269R10 = R9 - {release_ordinal, type}
    270270
    271271R10 = {user_id, admin_type, discount_percentage, points_collected, artist_id, release_id, album_id, song_id, product_id, order_id,
     
    273273}}}
    274274
    275 **Lossless join:** The original relation can be reconstructed through a join using {{{release_id, artist_id}}}.
    276 
    277 **Dependency preservation:** The dependency {{{(release_id, artist_id) → release_ordinal, release_artist_type}}} is preserved in the new ''RELEASE_ARTISTS'' relation.
     275* **Lossless join:** The original relation can be reconstructed through a join using {{{release_id, artist_id}}}.
     276
     277* **Dependency preservation:** The dependency {{{(release_id, artist_id) → release_ordinal, type}}} is preserved in the new ''RELEASE_ARTISTS'' relation.
    278278
    279279==== 11. SONG_ARTISTS(song_id, artist_id, song_ordinal)
     
    286286}}}
    287287
    288 **Lossless join:** The original relation can be reconstructed through a join using {{{song_id, artist_id}}}.
    289 
    290 **Dependency preservation:** The dependency {{{(song_id, artist_id) → song_ordinal}}} is preserved in the new ''SONG_ARTISTS'' relation.
     288* **Lossless join:** The original relation can be reconstructed through a join using {{{song_id, artist_id}}}.
     289
     290* **Dependency preservation:** The dependency {{{(song_id, artist_id) → song_ordinal}}} is preserved in the new ''SONG_ARTISTS'' relation.