| 167 | | **Dependency preservation:** The dependency {{{artist_id → artist_name, artist_description, artist_photo}}} is preserved in the new ARTIST relation. |
| 168 | | |
| | 166 | **Dependency preservation:** The dependency {{{artist_id → artist_name, artist_description, artist_photo}}} is preserved in the new ''ARTIST'' relation. |
| | 167 | |
| | 168 | |
| | 169 | ==== 3. RELEASE(release_id, title, record_label, genre, release_date, cover_photo, duration) |
| | 170 | |
| | 171 | {{{ |
| | 172 | R3 = R2 - {title, record_label, genre, release_date, cover_photo, duration} |
| | 173 | |
| | 174 | R3 = {user_id, email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected, |
| | 175 | artist_id, release_id, album_id, song_id, song_name, song_duration, product_id, order_id, payment_method, purchase_date, |
| | 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. |
| | 183 | |
| | 184 | ==== 4. SONG(song_id, song_name, song_duration) |
| | 185 | |
| | 186 | {{{ |
| | 187 | R4 = R3 - {song_name, song_duration} |
| | 188 | |
| | 189 | R4 = {user_id, email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected, |
| | 190 | artist_id, release_id, album_id, song_id, product_id, order_id, payment_method, purchase_date, points_earned, points_used, status, |
| | 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. |
| | 198 | |
| | 199 | ==== 5. MODIFICATION(modification_id, admin_id, date_modified, type_of_modification, discount) |
| | 200 | |
| | 201 | {{{ |
| | 202 | R5 = R4 - {admin_id, date_modified, type_of_modification, discount} |
| | 203 | |
| | 204 | R5 = {user_id, email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected, |
| | 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. |
| | 212 | |
| | 213 | ==== 6. ORDER(order_id, user_id, payment_method, purchase_date, points_earned, points_used, status) |
| | 214 | |
| | 215 | {{{ |
| | 216 | R6 = R5 - {payment_method, purchase_date, points_earned, points_used, status} |
| | 217 | |
| | 218 | R6 = {user_id, email, username, password, date_created, shipping_address, telephone_number, admin_type, discount_percentage, points_collected, |
| | 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. |
| | 226 | |
| | 227 | ==== 7. USER(user_id, email, username, password, date_created, shipping_address, telephone_number) |
| | 228 | |
| | 229 | {{{ |
| | 230 | R7 = R6 - {email, username, password, date_created, shipping_address, telephone_number} |
| | 231 | |
| | 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. |
| | 239 | |
| | 240 | ==== 8. ORDER_PRODUCTS(order_id, product_id, price_at_purchase, quantity) |
| | 241 | |
| | 242 | {{{ |
| | 243 | R8 = R7 - {price_at_purchase, quantity} |
| | 244 | |
| | 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. |
| | 252 | |
| | 253 | ==== 9. WISHLIST_PRODUCTS(wishlist_id, product_id, added_at) |
| | 254 | |
| | 255 | {{{ |
| | 256 | R9 = R8 - {added_at} |
| | 257 | |
| | 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} |
| | 270 | |
| | 271 | R10 = {user_id, admin_type, discount_percentage, points_collected, artist_id, release_id, album_id, song_id, product_id, order_id, |
| | 272 | modification_id, wishlist_id, song_ordinal} |
| | 273 | }}} |
| | 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. |
| | 278 | |
| | 279 | ==== 11. SONG_ARTISTS(song_id, artist_id, song_ordinal) |
| | 280 | |
| | 281 | {{{ |
| | 282 | R11 = R10 - {song_ordinal} |
| | 283 | |
| | 284 | R11 = {user_id, admin_type, discount_percentage, points_collected, artist_id, release_id, album_id, song_id, product_id, order_id, |
| | 285 | modification_id, wishlist_id} |
| | 286 | }}} |
| | 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. |