Changes between Version 3 and Version 4 of normalization


Ignore:
Timestamp:
08/31/25 17:12:35 (2 days ago)
Author:
221046
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • normalization

    v3 v4  
    99||'''Genre(genre_id, name)'''||genre_id||genre_id → name||BCNF||
    1010||'''MediaType(media_type_id, name)'''||media_type_id||media_type_id → name||BCNF||
    11 ||'''Price(price_id, value, date, track_id)'''||price_id||price_id → {value, date, track_id}||BCNF (ако price_id е surrogate); 3NF ако клуч е (track_id, date)||
    12 ||'''InvoiceLine(invoice_line_id, invoice_id, track_id, quantity)'''||invoice_line_id (и можен (invoice_id, track_id))||invoice_line_id → {invoice_id, track_id, quantity}; (invoice_id, track_id) → quantity||BCNF (со surrogate); 3NF (ако композитен клуч)||
     11||'''Price(price_id, value, date, track_id)'''||price_id||price_id → {value, date, track_id}||BCNF (ако price_id е surrogate); 3NF ако клуч е (track_id, date)|| 
     12||'''InvoiceLine(invoice_line_id, invoice_id, track_id, quantity)'''||invoice_line_id (и можен (invoice_id, track_id))||(invoice_line_id → {invoice_id, track_id, quantity}); (invoice_id, track_id) → quantity||BCNF (со surrogate); 3NF (ако композитен клуч)||
    1313||'''Invoice(invoice_id, customer_id, invoice_date, billing_address, billing_city, billing_state, billing_country, billing_postal_code, total)'''||invoice_id||invoice_id → {customer_id, invoice_date, billing_address, billing_city, billing_state, billing_country, billing_postal_code, total}||BCNF||
    14 ||'''Customer(customer_id, first_name, last_name, company, support_rep_id, address, city, state, country, postal_code, phone, fax, email)'''||customer_id||customer_id → {first_name, last_name, company, support_rep_id, address, city, state, country, postal_code, phone, fax, email}||BCNF||
    15 ||'''Employee(employee_id, first_name, last_name, title, reports_to, birth_date, hire_date, address, city, state, country, postal_code, phone, fax, email)'''||employee_id||employee_id → {first_name, last_name, title, reports_to, birth_date, hire_date, address, city, state, country, postal_code, phone, fax, email}||BCNF||
     14||'''Customer(customer_id, first_name, last_name, company, support_rep_id, personal_info_id, contact_id)'''||customer_id||customer_id → {first_name, last_name, company, support_rep_id, personal_info_id, contact_id}||BCNF||
     15||'''Employee(employee_id, first_name, last_name, title, reports_to, birth_date, hire_date, personal_info_id, contact_id)'''||employee_id||employee_id → {first_name, last_name, title, reports_to, birth_date, hire_date, personal_info_id, contact_id}||BCNF||
     16||'''AddressInfo(address_info_id, address, city, state, country, postal_code)'''||address_info_id||address_info_id → {address, city, state, country, postal_code}||BCNF||
     17||'''Contact(contact_id, phone, fax, email)'''||contact_id||contact_id → {phone, fax, email}||BCNF||
    1618||'''Playlist(playlist_id, name)'''||playlist_id||playlist_id → name||BCNF||
    1719||'''PlaylistTrack(playlist_track_id, playlist_id, track_id)'''||playlist_track_id (и можен (playlist_id, track_id))||playlist_track_id → {playlist_id, track_id}; (playlist_id, track_id) → playlist_track_id||BCNF||
    1820
    1921== Заклучок ==
    20   * Сите релации се барем во **3-та нормална форма (3NF)**.
    21  
     22  * Сите релации се барем во 3-та нормална форма (3NF).
     23  * Повеќето се дури во **BCNF**.
     24  * Price – нова теабела која ни овозможува чување на историј на цени. 
     25  * Новите табели **AddressInfo** и **Contact** овозможуваат отстранување на повторувања на адреси и контакти → уште почиста нормализација.