kod_st -> name_st kod_tp, kod_nom -> price name_nom, kod_proiz -> ed_izm, ves inn_ka -> name_ka name_val -> kurs kod_prod, kod_nom -> price_r kod_post, kod_nom -> price_rr kod_nom -> * kod_ka -> * kod_val -> *
Малюнок 2.9 - Праворедуцірованное покриття
2.5.4 Побудова класів еквівалентності
Етапи побудови класів еквівалентності представлені на малюнку 2.10-2.11.
1. Ef (kod_nom): kod_nom -> name_nom, kod_str, kod_proiz kod_nom -> * 2. Ef (kod_pr): kod_pr -> kod_tp, kod_nom 3. Ef (kod_tp): kod_tp -> name_tp, kod_val 4. Ef (kod_val): kod_val -> name_val; kod_val -> * 5. Ef (kod_proiz): kod_proiz -> name_proiz, city_pz, street_pz, house_pz, office_pz, phone_pz 6. Ef (kod_pred): kod_pred -> name_pred, kod_proiz, city_pr, street_pr, house_pr, office_pr, phone_pr 7. Ef (kod_str): kod_str -> name_str 8. Ef (kod_rek): kod_rek -> kod_nom, kod_var 9. Ef (kod_var): kod_var -> rek 10. Ef (kod_sost): kod_sost -> kod_nom, kod_vv 11. Ef (kod_vv): kod_vv -> name_vv 12. Ef (kod_prod): kod_prod -> date_prod, kod_ka, kod_tp 13. Ef (kod_spr): kod_spr -> kod_prod, kod_nom, kolvo 14. Ef (kod_post): kod_post -> date_post, kod_ka, kod_tp 15. Ef (kod_spo): kod_spo -> kod_post, kod_nom, kolvo 16. Ef (kod_ka): kod_ka -> city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka kod_ka -> * 17. Ef (kod_sch): kod_sch -> kod_bank, kod_ka Малюнок 2.10 - Етапи побудови класів еквівалентності
18. Ef (bik): bik -> ks, name_bank, city_b 19. Ef (kod_org): kod_org -> name_org, city, street, house, office, phone, inn_org, kpp, rs, bik 20. Ef (kod_opl): kod_opl -> kod_prod, kod_st 21. Ef (kod_st): kod_st -> name_st 22. Ef (kod_tp, kod_nom): kod_tp, kod_nom -> price 23. Ef (name_nom, kod_proiz): name_nom, kod_proiz -> ed_izm, ves 24. Ef (inn_ka): inn_ka -> name_ka 25. Ef (name_val): name_val -> kurs 26. Ef (kod_prod, kod_nom): kod_prod, kod_nom -> price_r 27. Ef (kod_post, kod_nom): kod_post, kod_nom -> price_rr Малюнок 2.11 - Етапи побудови класів еквівалентності
2.5.5 Побудова скороченої мінімального кільцевого покриття на основі прямої функціональної определяемости
Етапи побудови мінімального покриття на основі прямої функціональної определяемости представлені на малюнку 2.11.
1. Перевірка: f Ef (kod_nom) | = kod_nom -> kod_nom? Да => замінюємо kod_nom -> name_nom, kod_str, kod_proiz і kod_nom -> * на kod_nom -> name_nom, kod_str, kod_proiz, *. 2. Перевірка: f Ef (kod_val) | = kod_val -> kod_val? Да => замінюємо kod_val -> name_val і kod_val -> * на kod_val -> name_val, *. 3. Перевірка: f Ef (kod_ka) | = kod_ka -> kod_ka? Да => замінюємо kod_ka -> city_ka, street_ka, house_ka, office_ka, phone_ka, inn_ka, kpp_ka і kod_ka -> * на kod_ka -> city_ka...