La normalizzazione è assolutamente usata nel mondo reale ... e spero che tu sappia che 3NF è solo il terzo di ... che cosa è ora, 8? Ma 3NF dovrebbe essere un obiettivo facile.
Tuttavia ... mi permetto di dire che non potrebbe esistere un simile strumento.
La normalizzazione, tecnicamente, è un attributo di ogni tabella. All'interno di un determinato database, tabelle diverse possono avere diversi livelli di normalizzazione.
Ogni tabella rappresenta i fatti ... fatti relativi alle istanze di un certo tipo di cose (persona, conto, ordine, spedizione, articolo, posizione) inclusi, a volte, chiavi esterne che portano ad altri tipi di fatti su quella cosa.
La normalizzazione ha a che fare con la precisione e l'efficienza dei fatti rappresentati nelle tabelle, nonché con la capacità del design della tabella di prevenire modelli di dati ambigui e ridondanti.
Pertanto, è necessaria una comprensione dei fatti reali ... che è al di fuori del campo di applicazione degli strumenti automatizzati.
Q: Is a table with { student, subject, instructor } in 3NF?
A: What are students, subjects and instructors?
In un mondo in cui tutti gli istruttori hanno insegnato tutte le materie e ogni studente ha potuto prendere qualsiasi combinazione, ma non più di un corso su ciascuna materia da ciascun istruttore, si può dire che questo tavolo sia in 3NF. Nel mondo reale, rivendicare 3NF per questa tabella è assurdo.
Capire che non è in 3NF richiede una comprensione della natura dei fatti che rappresenta. Nella nostra realtà, questa tabella non sarà 3NF poiché (tra le altre ragioni) la materia e l'istruttore sono associati insieme in modi che non hanno nulla a che fare con lo studente. Se abbiamo i corsi in cui gli istruttori insegnano materie memorizzate altrove nel nostro database, perché dovremmo copiare entrambi i valori qui invece di una chiave esterna dall'altra tabella che indica che lo studente è stato registrato per il corso? Se l'istruttore viene sostituito, dobbiamo modificare più record in più posizioni.
Più un database è normalizzato, più è intrinsecamente coerente con il mondo reale e con se stesso, e più è difficile che i fatti del database siano inavvertitamente falsi. La progettazione di database è un'arte, ma sicuramente è anche una scienza.
Anche se non vedo gli occhi su tutto ciò che scrive, consiglierei il libro di Chris Date, Database Design and Relational Theory: Normal Forms and All That Jazz, che affronta in modo lancinante i dettagli sulla teoria di base del modello relazionale.