Нормализация не используется для уменьшения избыточных значений. Он используется для уменьшения избыточных связей между значениями. Другими словами, это означает, что каждый факт записывается только один раз.
Чтобы определить, нужно ли нормализовать, запишите функциональные зависимости и найдите причины аномалий, таких как транзитивные зависимости, зависимости от части ключа и т. Д. Каждый из этих типов избыточности четко определен в описаниях нормальных формы онлайн и в учебниках.
В вашем примере, если предположить, что questionID -> answertype
, (questionID, answercode) -> answer
, и что id
эквивалентно questionID
и им можно пренебречь, то отношение только в 1NF так answertype
не является главным атрибутом в зависимости от части ключа (questionID, answercode)
, Если обновление должно было изменить значение некоторых из отображаемых типов ответов (но не всех), ваши данные были бы логически повреждены. Нормализация могла бы предотвратить это.
Ваши клиенты заботятся о точности и согласованности. Вы?
https://en.wikipedia.org/wiki/Database_normalization – Bulat