La maggior parte dei programmatori sa destreggiarsi bene tra i concetti di tabella, campo, indice, soprattutto quelli che sviluppano software gestionali, ossia tutti quei programmi che interagiscono con un database. Di fronte a questa semplicità di utilizzo c’é una base teorica molto forte che consente di utilizzare questi strumenti in modo corretto e proficuo.
Per parlare teoricamente di database occorre servirsi di una terminologia differente rispetto a quella che siamo abituati ad utilizzare. Un dominio è l’insieme dei valori che un determinato campo può assumere, il nome con cui il dominio viene identificato si chiama attributo, una specie di sinonimo di campo. La tabella in questo contesto viene chiamata relazione ed in particolare uno schema di relazione è l’indicazione dei domini che compongono la relazione, l’insieme dei valori della relazione si chiama istanza di relazione. Il nome relazione è molto importante perché è quello che dà il nome a tutta la teoria delle basi di dati, denominata teoria relazionale dei dati. Facciamo un esempio:
Film( Codice, Autore, Titolo ) –> Schema di relazione
Film( cod1, Pieraccioni, Il Ciclone )
Film( cod2, Verdone, Viaggi di Nozze )
Il dominio degli autori è composto da Pieraccioni e Verdone, il dominio dei titoli è composto da Il Ciclone e Viaggi di Nozze, se componessimo questi due domini potremmo ottenere quattro combinazioni:
Pieraccioni, Il Ciclone
Pieraccioni, Viaggi di Nozze
Verdone, Il Ciclone
Verdone, Viaggi di Nozze
Questo è quello che si chiama prodotto cartesiano e quando selezioniamo solo alcune righe tra le molte disponibili, introduciamo una componente semantica al cui particolare legame diamo il nome di relazione. L’insieme degli attributi che identifica in modo univoco ogni riga di un’istanza di relazione è chiamata chiave, in pratica lo stesso significato che siamo abituati ad adottare. Ognuno degli attributi che fa parte di una chiave si chiama attributo primo. Le forme normali sono delle proprietà che una relazione deve avere, la normalizzazione di uno schema viene fatta per renderlo compatibile cone le forme normali, in modo da non poter introdurre dati inconsistenti. La prima forma normale è la più semplice e dice che ogni attributo della relazione deve essere semplice, cioé il dominio dei suoi valori non deve avere una struttura complessa. Un esempio di forma complessa può essere ad esempio “Nome” perché può essere scomposto in “Cognome” e “Nome”, oppure “Indirizzo” che può essere scomposto in “Via”, “Numero”, “CAP”, “Città” e “Provincia”. La seconda forma normale è un pò più complessa, infatti avviene se ognuno dei suoi attributi, non appartenenti alla chiave, dipende funzionalmente e completamente dalla chiave. Ad esempio se abbiamo due magazzini e decidiamo che una certa categoria di articoli può essere inserita soltanto in uno dei due, allora dobbiamo creare due schemi distinti altrimenti articoli di uguale categoria possono andare in magazzini differenti.
Questo articolo riguardante le basi teoriche della gestione dei dati nel campo dell’informatica dovrebbe servire come stimolo ad approfondire l’argomento, perché esistono altre forme normali di cui non ho trattato. Conoscendo dalle basi, questi argomenti, è meno probabile compiere degli errori di progettazione del database ed avere effetti collaterali indesiderati in futuro, perché il programma gestionale si aggiorna nel tempo, mentre le basi di dati no.