Это ответ на вопрос Difference between 3NF and BCNF in simple terms (must be able to explain to an 8-year old). Почему следующая таблица в 3NF? Pizaa, Topping - это ключ-кандидат, а тип Topping частично зависит от Topping, поэтому он даже не в 2NF.Понимание нормализации базы данных. Как данная таблица 3NF?
Pizza Topping Topping Type
-------- ---------- -------------
1 mozarella cheese
1 pepperoni meat
1 olives vegetable
2 mozarella meat
2 sausage cheese
2 peppers vegetable
Пожалуйста, объясните подробно.
Что значит тип Topping частично зависит от Topping? Частичная зависимость означает, что существует функциональная зависимость x -> y, где x - это правильная часть ключа-кандидата. Функциональная зависимость x -> y означает, что для любого заданного x существует одно значение для y. Я не вижу такого шаблона между Topping и Topping Type, или, что то же самое, между Pizza и Topping Type. – reaanb
Pizza and Topping является основным ключом. mozarella не может быть мяса Topping. Следовательно, данная таблица имеет несогласованность и ее необходимо нормализовать. Учитывая Topping mozarella, тип Topping можно однозначно идентифицировать как сыр. Следовательно, верхний тип частично зависит от доливания. – Srinivas
Нормализация основана на предположении, что данные являются согласованными. Если нет, отремонтировать его, прежде чем рассматривать нормализацию. – reaanb