La modellazione logica dei dati è un processo meccanico che trasforma l'ERD (Diagramma Entità-Relazione) del modello dati concettuale in un modello adatto per i database relazionali, utilizzando regole di mapping per convertire entità, attributi e relazioni in tabelle, colonne e chiavi primarie/esterne.
La gestione delle relazioni 1:1, 1:N e N:M consente di rappresentare le relazioni tra le tabelle, utilizzando tabelle intermedie per gestire le relazioni N:M.
La normalizzazione è un processo che rende le tabelle adatte a un database relazionale. Si procede in modo sequenziale, da 1NF a 3NF, eliminando le dipendenze parziali e transitive.
Rispetto all'analisi dei requisiti e alla modellazione concettuale dei dati, la modellazione logica dei dati è una procedura più meccanica.
Il processo principale consiste nella conversione dell'ERD, che è il prodotto della modellazione concettuale dei dati, in un paradigma di database relazionale in base alle regole di mapping (Mapping Rule).
Regole di mapping
L'entità quadrata viene convertita in una tabella.
L'attributo circolare viene convertito in una colonna.
La relazione viene convertita in PK o FK.
È più facile iniziare con la tabella senza FK.
Relazione
La relazione tra le tabelle viene espressa considerando la cardinalità e l'optionalità.
La relazione più semplice, la relazione 1:1, viene espressa prima, seguita dalla relazione 1:N e dalla relazione N:M.
Gestione delle relazioni 1:1
Nella relazione 1:1, si esamina la relazione di dipendenza tra le due tabelle e si imposta l'FK.
Possono essere viste come tabella padre e tabella figlio.
Gestione delle relazioni 1:N
Nella relazione 1:N, poiché 1 viene referenziato da N, l'FK viene impostato su N.
Gestione delle relazioni N:M
Per gestire la relazione N:M in un database relazionale, viene creata una tabella intermedia (chiamata anche tabella di mapping o tabella di collegamento) per rappresentarla.
A questo punto, è importante esprimere la cardinalità e l'optionalità di entrambe le tabelle referenziate in base alla tabella di mapping.
Normalizzazione (Normalization)
Wikipedia - Normalizzazione del Database
È il processo di trasformazione di una tabella non raffinata in una tabella adatta a un database relazionale.
Il processo di normalizzazione utilizzato a livello industriale arriva fino alla terza forma normale, mentre le forme successive vengono utilizzate principalmente nel campo accademico.
La normalizzazione deve essere eseguita sequenzialmente, un passaggio alla volta.
Prima forma normale (1st Normal Form, 1NF)
Le colonne all'interno di una tabella devono avere solo valori atomici (Atomic).
Se si guarda al principio fondamentale della prima forma normale, anche se è difficile da capire, significa semplicemente che ogni colonna deve contenere un solo valore.
Se una colonna contiene più valori, ovvero non è atomica, può essere difficile eseguire la join con le istruzioni SQL e possono verificarsi vari problemi.
Seconda forma normale (2nd Normal Form, 2NF)
Deve soddisfare la prima forma normale.
La dipendenza parziale deve essere rimossa.
Se ci sono valori duplicati nelle righe della tabella, si trova la colonna da cui dipende tale riga e la si separa.
Terza forma normale (3rd Normal Form, 3NF)
Deve soddisfare la prima forma normale.
Deve soddisfare la seconda forma normale.
La dipendenza transitiva deve essere rimossa.
La parola dipendenza transitiva è molto difficile da capire. Per quanto ho capito, se in una determinata tabella ci sono uno o più valori che implicano implicitamente l'identificatore di un'altra tabella (escluso l'FK), sembra che ciò venga definito dipendenza transitiva.