Нормализация абсолютно используется в реальном мире ... и, надеюсь, вы знаете, что 3NF - это только третье из ... чего сейчас, 8? Но 3NF должна быть легкой целью.
Однако ... Рискну сказать, что такого инструмента не может быть.
Технически, нормализация является атрибутом каждой таблицы. В пределах данной базы данных разные таблицы могут иметь разные уровни нормализации.
Каждая таблица представляет факты ... факты о случаях определенного типа вещей (человек, счет, заказ, отгрузка, предмет, местоположение), включая, иногда, внешние ключи, которые приводят вас к другим видам фактов об этой вещи.
Нормализация связана с тем, насколько точно и эффективно представлены факты в таблицах, а также со способностью дизайна таблицы предотвращать неоднозначные и избыточные шаблоны данных.
Таким образом, требуется понимание фактических фактов ... что выходит за рамки автоматизированных инструментов.
Q: Is a table with { student, subject, instructor } in 3NF?
A: What are students, subjects and instructors?
В мире, где все преподаватели преподают все предметы, и каждый студент может взять любую комбинацию, но не более одного курса по каждому предмету от каждого преподавателя, можно сказать, что эта таблица находится в 3NF. В реальном мире претендовать на 3NF для этой таблицы абсурдно.
Чтобы понять, чего нет в 3NF, необходимо понять природу фактов, которые он представляет. В нашей реальности эта таблица не будет 3NF, так как (среди прочих причин) предмет и преподаватель связаны друг с другом способами, которые не имеют никакого отношения к ученику. Если у нас есть курсы, где преподаватели преподают предметы, хранящиеся в других местах нашей базы данных, почему бы нам скопировать здесь оба значения вместо внешнего ключа из другой таблицы, указывающего, что студент записан на курс? Если инструктора заменяют, мы должны изменить несколько записей в нескольких местах.
Чем более нормализована база данных, тем более она внутренне согласуется с реальным миром и с самим собой, и тем сложнее непреднамеренно не соответствовать действительности факты базы данных. Дизайн базы данных - это искусство, но это, безусловно, наука.
Несмотря на то, что я не вижу с глазу на глаз все, что он пишет, я бы порекомендовал книгу Криса Дейта « Проектирование баз данных и теория отношений: нормальные формы и все такое джаз», в которой подробно описывается основная теория реляционной модели.