| 49 | | === |
| | 49 | |
| | 50 | Атрибут што не се појавува на десната страна на ниедна функционална зависност никогаш не може да биде изведен, па мора да припаѓа на секој клуч. Пресметка на затворањето на K: |
| | 51 | * comment_id → post_id, user_id; post_id → recipe_id; recipe_id → атрибути на рецептот; user_id → атрибути на корисникот |
| | 52 | * ingredient_id → атрибути на состојката; {recipe_id, ingredient_id} → ingredient_quantity |
| | 53 | * nutrient_id → атрибути на нутриентот; {ingredient_id, nutrient_id} → nutrient_amount |
| | 54 | * restriction_id, list_id, planner_id, bio_id → нивните гранки; {list_id, ingredient_id} → buy_quantity |
| | 55 | |
| | 56 | === Проверка на минималност |
| | 57 | 1. Отстранување на comment_id -> Се губи крајот на синџирот коментар → објава → рецепт → корисник. |
| | 58 | 2. Отстранување на ingredient_id -> Се губи каталогот на храна, а со него и сите три атрибути за количина на врските. |
| | 59 | 3. Oтстранување на nutrient_id -> Се губи гранката на нутриенти и nutrient_amount. |
| | 60 | 4. Oтстранување на restriction_id -> Се губи гранката на диететски ознаки |
| | 61 | 5. Oтстранување на list_id, planner_id или bio_id -> Се губат соодветните ентитети. Ниедна од нив не е определена од ништо друго. |
| | 62 | |
| | 63 | === Примерок од денормализирани податоци |
| | 64 | |
| | 65 | ||= username =||= recipe name =||= ingredient name =||= nutrient descr =||= nutrient amount =||= restriction type =||= comment =|| |
| | 66 | || marija_t || Tavce Gravce || Dry White Beans || Protein || 21.0 || vegan || How long should I let it simmer and soak? || |
| | 67 | || acko_l || Ajvar || Red Bell Pepper || Vitamin C || 24.0 || vegetarian || How long should you keep stirring the pot? || |
| | 68 | || nikola_g || Cesar Salad || Chicken || Protein || 50.0 || halal || What is in the sauce? || |
| | 69 | === ПРВА(1NF) |
| | 70 | |
| | 71 | === ВТОРА(2NF) |
| | 72 | |
| | 73 | === ТРЕТА(3NF) |
| | 74 | |
| | 75 | === БОЈС-КОДОВА (BCNF) |