Normalizacja jest absolutnie używana w prawdziwym świecie ... i mam nadzieję, że wiesz, że 3NF jest dopiero trzecim z ... co jest teraz, 8? Ale 3NF powinien być łatwym celem.
Jednak ... Zaryzykowałbym stwierdzenie, że nie może być takiego narzędzia.
Normalizacja, technicznie rzecz biorąc, jest atrybutem każdej tabeli. W obrębie danej bazy danych różne tabele mogą mieć różne poziomy normalizacji.
Każda tabela przedstawia fakty ... fakty dotyczące przypadków określonego rodzaju rzeczy (osoba, konto, zamówienie, przesyłka, pozycja, lokalizacja), w tym czasem klucze obce, które prowadzą do innych faktów na ten temat.
Normalizacja ma związek z dokładnością i wydajnością faktów przedstawianych w tabelach, a także ze zdolnością projektu tabeli do zapobiegania dwuznacznym i zbędnym wzorcom danych.
Dlatego konieczne jest zrozumienie faktów ... co wykracza poza zakres zautomatyzowanych narzędzi.
Q: Is a table with { student, subject, instructor } in 3NF?
A: What are students, subjects and instructors?
W świecie, w którym wszyscy instruktorzy uczyli wszystkich przedmiotów, a każdy uczeń mógł wziąć dowolną kombinację, ale nie więcej niż jeden kurs z każdego przedmiotu od każdego instruktora, rzeczywiście można powiedzieć, że ta tabela jest w 3NF. W prawdziwym świecie twierdzenie, że 3NF dla tej tabeli jest absurdalne.
Aby zrozumieć, że nie ma tego w 3NF, konieczne jest zrozumienie charakteru faktów, które reprezentuje. W naszej rzeczywistości ta tabela nie będzie 3NF, ponieważ (między innymi) przedmiot i instruktor są ze sobą powiązani w sposób, który nie ma nic wspólnego z uczniem. Jeśli mamy kursy, w których instruktorzy uczą przedmiotów przechowywanych gdzie indziej w naszej bazie danych, dlaczego mielibyśmy kopiować obie wartości tutaj zamiast klucza obcego z drugiej tabeli wskazującej, że uczeń został zapisany na kurs? Jeśli instruktor zostanie zastąpiony, musimy zmienić wiele rekordów w wielu miejscach.
Im bardziej znormalizowana jest baza danych, tym bardziej jest ona wewnętrznie spójna ze światem rzeczywistym i samym sobą, a tym trudniejsze jest, aby fakty bazy danych były nieumyślnie nieprawdziwe. Projektowanie baz danych jest sztuką, ale z całą pewnością jest również nauką.
Mimo że nie widzę wszystkiego, co pisze, polecam książkę Chrisa Datea, Database Design and Relational Theory: Normal Forms and All That Jazz, która zawiera dręczące szczegóły na temat teorii leżącej u podstaw modelu relacyjnego.