Этапы построения минимального покрытия на основе прямой функциональной определяемости представлены на рисунке 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 - Редуцированное минимальное покрытие
|
|