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