Tabella è definita RELAZIONALE IN FOMRA 1nF (prima forma normale/lizzata)
quando rispetta le seguenti caratteristiche:
1° Le righe devono contenere le istanze dell’entità
2° Le colonne devono contenere gli attributi dell’entità
3° Non è importante l’orine delle righe
4° Non è importante l’ordine delle colonne
5° Tutte le celle devono contenere dati del medesimo tipo (omogenei)
6° Non possono esistere due righe uguali
7° Ogni cella deve contenere un solo valore
8° Ogni colonna deve avere un nome univoco
----------------------------------------------------------------------------------------------
Le regole di derivazione
1) la prima regola di derivazione dice che:
ad ogni entità corrisponde una tabella
ad ogni riga corrisponde un istanza dell'entità
ad ogni colonna corrisponde un attributo dell'entità
la chiave primaria è una o più colonne
2) la seconda regola di derivazione dice:
la relazione 1 a M (uno a molti) si risolve mettendo la chiave esterna,
cioè la chiave primaria della tabella che corrisponde all'1,
nella tabella appartenente al ruolo di molti.
3) la terza regola di derivazione dice che:
nella associazione M a N (molti a molti)
si ha una tabella associativa formata da chiavi esterne delle entità(/tabelle) associate,
che insieme formano la sua chiave primaria della tabella associativa.
4) la quarta regola di derivazione dice:
la relazione tra un entità forte ed un entità debole si risolve mettendo la chiave esterna,
cioè la chiave primaria della tabella/entità forte,
nella tabella/entità debole, ed insieme della chiave debole di quest’ultima entità
formano la chiave primaria della tabella dell'entità debole.
----------------------------------------------------------------------------------------------
In più:
CHIAVE ESTERNA-->è il dato che ci permette di risalire l'istanza di un altra tabella a cui è associata
Casi speciali:
Nella associazione 1 a 1, la chiave esterna va messa in una tabella, a libera scelta
Nella associazione 1(non tutti) a 1(tutti) la chiave esterna va su quella che ha tutte le istanza associate
Nella associazione 1(tutti) a 1(tutti) la chiave esterna va messa in una tabella, a libera scelta
----------------------------------------------------------------------------------------------
La Normalizzazione in breve:
Dopo aver trasformato il proprio schema concettuale in un database vero e proprio utilizzando le regole di derivazione, si passa ad normalizzare questo database:
Per normalizzazione si intende: Scovare le dipendenze funzionali, e trasitive, tra i vari attributi, e creare per esse delle tabelle separate.
----------------------------------------------------------------------------------------------
DIPENDENZA FUNZIONALE:
quando una variabile/attributo, dipende da un'altro attributo, e ne può determinare il valore.
(Tra gli attributi quindi vie è qualche tipo di relazione)
nomeOggetto-->coloreOggetto
il determinante è l’attributo che si trova a sinistra.
Si possono avare più determinanti, e più valori determinati:
(nomePersona; CognomePersona)-->codiceFiscale
nome Persona, cognome Persona determinano il codice Fiscale
(ed il codiceFiscale ha una dipendenza funzionale con nomePersona, cognome Persona)
nomeOggetto-->(coloreOggetto; formaOggetto)
nomeOggetto determina coloreOggetto e formaOggetto
(ed il coloreOggetto e formaOggetto hanno una dipendenza funzionale con nomeOggetto)
----------------------------------------------------------------------------------------------
DIPENDENZA TRANSITIVA: quando una variabile determina un'altra ed quando questultima ne determina un'altra ancora (e cosi via)
a-->b
b ha una dipendenza funzionale con a
b-->c
c ha una dipendenza funzionale con b
a-->b-->c
c ha una dipendenza funzionale con b che a sua volta ha una dipendenza funzionale con a
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
Esempio:

Ipotizziamo che ci sia solo un autore per disco (per semplificare)
----------------------------------------------------------------------------------------------
(prima parte) (prima regola)
Casadiscografica( nome ; amministratore)
Discho( nome; nomeAutore; cognomeAutore; numeroTracce)
----------------------------------------------------------------------------------------------
Poi: (derivazione seconda parte) (seconda regola)
Casadiscografica( nome; amministratore)
Discho( nome; nomeAutore; cognomeAutore; numeroTracce; nome_Casadiscografica)
----------------------------------------------------------------------------------------------
Normalizzata:
C’è una relazione funzionale:
nomeAutore-->cognomeAutore
per essa creiamo una tabella a parte:
Autore( id; nomeAutore, cognomeAutore)
n.b. il determinante (nomeAutore), o anche cognomeAutore, o la chiave composta tra i due, non è consigliata come chiave primari siccome ci potrebbero essere casi di omonimia.
E la relazioniamo con la tabella Discho
(di fatto abbiamo una sorta di relazione 1 a 1, totale da entrambe le tabelle/entità
(anche se in realtà non è proprio cosi, però ricordiamo che inizialmente abbiamo ipotizzato un solo autore per disco ))
Risultato:
Casadiscografica( nome; amministratore)
Autore( id; nomeAutore, cognomeAutore)
Discho( nome; numeroTracce; id_Autore; nome_Casadiscografica)
----------------------------------------------------------------------------------------------
1 commento:
Molto bene
Posta un commento