Changes between Version 13 and Version 14 of Normalization
- Timestamp:
- 08/30/26 08:16:56 (8 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Normalization
v13 v14 76 76 FD14: (order_id, product_id) → price_at_purchase, quantity 77 77 FD15: (wishlist_id, product_id) → added_at 78 FD16: (release_id, artist_id) → release_ordinal, release_artist_type78 FD16: (release_id, artist_id) → release_ordinal, type 79 79 FD17: (song_id, artist_id) → song_ordinal 80 80 }}} … … 85 85 86 86 **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_ordinal87 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, type, added_at, song_ordinal 88 88 89 89 **Both LHS and RHS:**\\ … … 142 142 album_id, song_id, song_name, song_duration, order_id, payment_method, purchase_date, points_earned, points_used, status, modification_id, 143 143 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. 150 150 151 151 … … 159 159 artist_id, release_id, title, record_label, genre, release_date, cover_photo, duration, album_id, song_id, song_name, song_duration, 160 160 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. 167 167 168 168 … … 175 175 artist_id, release_id, album_id, song_id, song_name, song_duration, product_id, order_id, payment_method, purchase_date, 176 176 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. 183 183 184 184 ==== 4. SONG(song_id, song_name, song_duration) … … 190 190 artist_id, release_id, album_id, song_id, product_id, order_id, payment_method, purchase_date, points_earned, points_used, status, 191 191 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. 198 198 199 199 ==== 5. MODIFICATION(modification_id, admin_id, date_modified, type_of_modification, discount) … … 204 204 R5 = {user_id, email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected, 205 205 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. 212 212 213 213 ==== 6. ORDER(order_id, user_id, payment_method, purchase_date, points_earned, points_used, status) … … 218 218 R6 = {user_id, email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected, 219 219 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. 226 226 227 227 ==== 7. USER(user_id, email, username, password, date_created, shipping_address, telephone_number) … … 231 231 232 232 R7 = {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. 239 239 240 240 ==== 8. ORDER_PRODUCTS(order_id, product_id, price_at_purchase, quantity) … … 244 244 245 245 R8 = {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. 252 252 253 253 ==== 9. WISHLIST_PRODUCTS(wishlist_id, product_id, added_at) … … 257 257 258 258 R9 = {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 {{{ 269 R10 = R9 - {release_ordinal, type} 270 270 271 271 R10 = {user_id, admin_type, discount_percentage, points_collected, artist_id, release_id, album_id, song_id, product_id, order_id, … … 273 273 }}} 274 274 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. 278 278 279 279 ==== 11. SONG_ARTISTS(song_id, artist_id, song_ordinal) … … 286 286 }}} 287 287 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.
