Этапы построения минимального покрытия на основе прямой функциональной определяемости представлены на рисунке 2.5.
| 2. Проверка: f \ Ef(sp, np) |= sp, np -> sp, np? |
| Да => заменяем sp, np -> Fam, Im, Otch, pol, dateborn, datevidachi, |
| kemvidan, country, city, street, numstreet, numflat, dolgnost и sp, np -> |
| num_room на sp, np -> Fam, Im, Otch, pol, dateborn, datevidachi, |
| kemvidan, country, city, street, numstreet, numflat, dolgnost, num_room. |
| 5. Проверка: f \ Ef(num_zal) |= num_zal -> num_zal? |
| Да => заменяем num_zal -> type_zal и num_zal -> num_p на num_zal -> |
| type_zal, num_p. |
| 6. Проверка: f \ Ef(code_inv) |= code_inv -> code_inv? |
| Да => заменяем code_inv -> firm_inv, model_inv и code_inv -> code_obj |
| на code_inv -> firm_inv, model_inv, code_obj. |
| 7. Проверка: f \ Ef(code_tec) |= code_tec -> code_tec? |
| Да => заменяем code_tec -> firm_tec, model_tec и code_tec -> |
| code_obj на code_tec -> firm_tec, model_tec, code_obj. |
| 8. Проверка: f \ Ef(code_meb) |= code_meb -> code_meb? |
| Да => заменяем code_meb -> firm_meb, dlina, width, height, color и |
| code_meb -> code_obj на code_meb -> firm_meb, dlina, width, height, |
| color, code_obj. |
| 9. Проверка: f \ Ef(inv_number_INV_out) |= inv_number_INV_out -> |
| inv_number_INV_out? |
| Да => заменяем inv_number_INV_out -> inv_number_INV и |
| inv_number_INV_out -> date_out_inv на inv_number_INV_out -> |
| inv_number_INV, date_out_inv. |
| 10. Проверка: f \ Ef(inv_number_TEC_out) |= inv_number_TEC_out -> |
| inv_number_TEC_out? |
| Да => заменяем inv_number_TEC_out -> inv_number_TEC и |
| inv_number_TEC_out -> date_out_tec на inv_number_TEC_out -> |
| inv_number_TEC, date_out_tec. |
| 11. Проверка: f \ Ef(inv_number_MEB_out) |= inv_number_MEB_out -> |
| inv_number_MEB_out? |
| Да => заменяем inv_number_MEB_out -> inv_number_MEB и |
| inv_number_MEB_out -> date_out_meb на inv_number_MEB_out -> |
| inv_number_MEB, date_out_meb. |
| 12. Проверка: f \ Ef(code_balls) |= code_balls -> code_balls? |
| Да => заменяем code_balls -> material и code_balls -> code_inv на |
| code_balls -> material, code_inv. |
| 13. Проверка: f \ Ef(code_gate) |= code_gate -> code_gate? |
| Да => заменяем code_gate -> height_gate, shirina, kind и code_gate -> |
| code_inv на code_gate -> height_gate, shirina, kind, code_inv. |
Рисунок 2.5 - Этапы построения минимального покрытия на основе прямой функциональной определяемости
Редуцированное минимальное покрытие представлено на рисунке 2.6
| Fam, Im, Otch, dateborn, country, city, street, numstreet, numflat |
| > sp, np |
| sp_pl, np_pl |
| > date, rost, ves, staff, number, status |
| date, staff, number, status |
| > sp_pl, np_pl |
| num_p |
| > square, naznachenie |
| num_room |
| > room |
| code_obj |
| > kol, date, balance |
| inv_number_INV |
| > code_inv |
| inv_number_TEC |
| > code_tec |
| inv_number_MEB |
| > code_meb |
| inv_number_INV, date_IinZal |
| > num_zal |
| inv_number_TEC, date_TecInP |
| > num_р |
| inv_number_MEB, date_MebInP |
| > num_р |
| sp, np |
| > Fam, Im, Otch, pol, dateborn, datevidachi, kemvidan, country, city, street, numstreet, numflat, dolgnost, num_room |
| num_zal |
| > type_zal, num_p |
| code_inv |
| > firm_inv, model_inv, code_obj |
| code_tec |
| > firm_tec, model_tec, code_obj |
| code_meb |
| > firm_meb, dlina, width, height, color, code_obj |
| inv_number_INV_out |
| > inv_number_INV, date_out_inv |
| inv_number_TEC_out |
| > inv_number_TEC, date_out_tec |
| inv_number_MEB_out |
| > inv_number_MEB, date_out_meb |
| code_balls |
| > material, code_inv |
| code_gate |
| > height_gate, shirina, kind, code_inv |
| code_trenager |
| > type, code_inv |
| code_TV |
| > diagonal, screen, code_tec |
| code_refreg |
| > height_ref, widht_ref, depht_ref, sum_sq_polok, com_volume, user_volume, code_tec |
| code_vacuum |
| > moshnost_v, code_tec |
| code_bed |
| > type_bed, code_meb |
| code_table |
| > type_table, material_table, code_meb |
| code_shkaf |
| > type_shkaf, code_meb |
Рисунок 2.6 - Редуцированное минимальное покрытие






