Premessa

Portale di appartenenza: Basi di dati.

Cosa troverai in questa nota:

Prerequisiti: per comprendere pienamente il contenuto di questa nota, oltre le conoscenze minime che do per scontato che tu sappia giΓ , ti consiglio di aver letto in precedenza queste altre note:

Buona lettura! β˜οΈπŸ€“

Definizione: normalizzazione

La normalizzazione Γ¨ il processo di trasformazione di una base di dati relazionale in una equivalente, con l’obiettivo di eliminare ridondanze, minimizzare anomalie di modifica e garantire la consistenza dei dati contenuti al suo interno.

1 - Le dipendenze funzionali

In particolare, alla base del processo di normalizzazione si colloca il processo di rilevamento delle dipendenze funzionali, che permettono di capire i collegamenti tra i vari dati presenti all’interno di un database.

Definizione: vincolo locale di dipendenza funzionale

Data una relazione e due sottoinsiemi di attributi , il vincolo locale di dipendenza funzionale, denotato con 1, Γ¨ soddisfatto se e solo se, per ogni coppia di tuple distinte in , se vale , allora vale anche :

2 - Assiomi di Armstrong

Il matematico e informatico canadese William W. Armstrong nel 1974 ha proposto un insieme di assiomi che permettono di comprendere le implicazioni logiche che intercorrono tra dipendenze funzionali.

Definizione: assiomi di Armstrong

Gli assiomi di Armstrong (o regole di inferenza di Armstrong) sono un insieme di assiomi utilizzati per dedurre dipendenze funzionali a partire da un insieme dato di dipendenze funzionali in una relazione.

Essi sono tre: assioma di riflessivitΓ , assioma di aumento e assioma di transitivitΓ .

Assioma di riflessivitΓ  di Armstrong

Data una relazione e due sottoinsiemi di attributi , se Γ¨ sottoinsieme di , allora determina :

Assioma di aumento di Armstrong

Data una relazione e tre sottoinsiemi di attributi , se determina , allora 2 determina 2:

Assioma di transitivitΓ  di Armstrong

Data una relazione e tre sottoinsiemi di attributi , se determina e determina , allora determina :

2.1 - Regole di inferenza addizionali

Dagli assiomi di Armstrong vengono derivate altre regole di inferenza addizionali.

Regola di decomposizione

Data una relazione e tre sottoinsiemi di attributi , se determina 2, allora determina e :

Regola di composizione (o del prodotto)

Data una relazione e quattro sottoinsiemi di attributi , se determina e determina , allora 2 determina 2:

Regola di unione

Data una relazione e tre sottoinsiemi di attributi , se determina e , allora determina 2:

Regola di pseudo-transitivitΓ 

Data una relazione e quattro sottoinsiemi di attributi , se determina e 2 determina , allora 2 determina :

Regola di estensibilitΓ 

Data una relazione e due sottoinsiemi di attributi , se determina , allora determina 2:

Regola di monotonicitΓ 

Data una relazione e tre sottoinsiemi di attributi con , se determina , allora 2 determina :

Regola di auto-determinazione

Data una relazione e un sottoinsieme di attributi , determina se stesso:

2.2 - Gli attributi estranei

Definizione: attributo estraneo

Data una relazione con un insieme di dipendenze funzionali su e due sottoinsiemi di attributi , un attributo si dice estraneo nella dipendenza funzionale se è possibile ottenere anche senza il suo uso, utilizzando le restanti dipendenze funzionali in (cioè ) e la dipendenza modificata togliendo (cioè ):

2.3 - Chiusura di un insieme di dipendenze funzionali

Definizione: chiusura di un insieme di dipendenze funzionali

Data una relazione con un insieme di dipendenze funzionali su , una chiusura Γ¨ un insieme di dipendenze funzionali su tali che ogni Γ¨ derivabile da :

Osservazione: utilitΓ  della chiusura di un insieme di dipendenze funzionali

Conoscere la chiusura di un insieme di dipendenze funzionali significa conoscere tutte le dipendenze funzionali valide in perchΓ© sono deducibili a partire da quelle contenute in stesso.

Osservazione: crescita esponenziale della cardinalitΓ  di una chiusura

Una chiusura di un insieme di dipendenze funzionali puΓ² includere dipendenze del tipo su ogni possibile coppia di sottoinsiemi di attributi . Sappiamo che il numero di sottoinsiemi di possibili Γ¨ e, avendo questa possibilitΓ  sia per che per , abbiamo che il numero potenziale di dipendenze Γ¨ , che Γ¨ esponenziale nella dimensione dello schema .

Dunque, elencare o costruire tutte le dipendenze funzionali di Γ¨ computazionalmente impraticabile anche per schemi moderatamente grandi (per esempio, se , ci sono fino a possibili dipendenze funzionali).

2.4 - Equivalenza di insiemi di dipendenze funzionali

Osservazione: le dipendenze funzionali non sono uniche

In una relazione, non c’è unicitΓ  nelle dipendenze funzionali che possono essere soddisfatte in essa.

Questo concetto potrebbe sembrare molto banale, ma in realtΓ , grazie anche alla definizione formale di chiusura, ora possiamo caratterizzare dal punto di vista teorico il concetto di equivalenza tra insiemi di dipendenze funzionali.

Definizione: equivalenza di insiemi di dipendenze funzionali

Data una relazione con due insiemi e di dipendenze funzionali su , si dice equivalente a (e si denota "") se le loro chiusure e sono uguali:

Abbiamo ricondotto l’equivalenza ad un’uguaglianza insiemistica: se tutte le dipendenze derivate dall’insieme sono uguali a tutte le dipendenze derivate da , le due basi di dati evolvono allo stesso modo.

Tuttavia, come giΓ  detto, risulta perΓ² complesso costruire per intero le chiusure e per verificare l’equivalenza. Fortunatamente, esiste una proprietΓ  che porta al medesimo risultato.

ProprietΓ  dell'equivalenza di insiemi di dipendenze funzionali

Data una relazione con due insiemi e di dipendenze funzionali su , Γ¨ equivalente a se e solo se Γ¨ deducibile da e Γ¨ deducibile da :

2.5 - Chiusura di un insieme di attributi

Definizione: chiusura di un insieme di attributi

Data una relazione con un sottoinsieme di attributi su cui Γ¨ definito un insieme di dipendenze funzionali, una chiusura Γ¨ un insieme di attributi tali che la dipendenza funzionale Γ¨ deducibile da :

Algoritmo per il calcolo della chiusura di un insieme di attributi

Data una relazione con due sottoinsieme di attributi su cui Γ¨ definito un insieme di dipendenze funzionali, la chiusura Γ¨ calcolata nel seguente modo:

  1. Assegna a e a .
  2. Esiste in una dipendenza funzionale tale che ?
  3. Se sì, unisci a e rimuovi da .
  4. Se no, stop.

ProprietΓ  1 sulla chiusura di un insieme di attributi

Data una relazione con due sottoinsiemi di attributi su cui Γ¨ definito un insieme di dipendenze funzionali, la dipendenza funzionale Γ¨ deducibile da se e solo se Γ¨ un sottoinsieme di :

Osservazione: usare la proprietΓ  1 per verificare la validitΓ  delle dipendenze funzionali

Possiamo notare come, se una dipendenza funzionale Γ¨ deducibile da un insieme di dipendenze, allora Γ¨ valida. CiΓ² significa che Γ¨ possibile usare la proprietΓ  1 per verificare la validitΓ  di una dipendenza funzionale.

Una riformulazione che si trova spesso in giro della proprietΓ  1 Γ¨ quella che viene detta proprietΓ  di membership.

ProprietΓ  di membership sulla chiusura di un insieme di attributi

Data una relazione con due sottoinsiemi di attributi su cui Γ¨ definito un insieme di dipendenze funzionali, la dipendenza funzionale Γ¨ contenuta nella chiusura se e solo se Γ¨ un sottoinsieme di :

Osservazione: usare la proprietΓ  di membership per verificare la validitΓ  delle dipendenze funzionali

Similmente a quanto avviene per la proprietΓ  1, possiamo usare anche la proprietΓ  di membership, collegandoci a quanto detto sopra, per chiarire subito se una dipendenza Γ¨ valida o no semplicemente controllando se Γ¨ presente nella chiusura dell’insieme di dipendenze a cui si riferisce.

ProprietΓ  2 sulla chiusura di un insieme di attributi

Data una relazione con un sottoinsieme di attributi su cui sono definiti due insiemi e di dipendenze funzionali, le chiusure e sono uguali.

2.6 - Uso della dipendenza funzionale nelle superchiavi

Il concetto di dipendenza funzionale puΓ² essere usato per dare una nuova definizione di superchiave.

Definizione: superchiave

Data una relazione , un sottoinsieme di attributi Γ¨ una superchiave se e solo se determina .

Osservazione: verificare una superchiave con la sua chiusura

Data una relazione su cui Γ¨ definito un insieme di dipendenze funzionali, per verificare se un sottoinsieme di attributi Γ¨ una superchiave basterΓ  calcolare la sua chiusura e vedere se questa coincide con lo schema .

Osservazione: attributi fuori dall'insieme di dipendenze funzionali fanno parte della superchiave

Data una relazione su cui Γ¨ definito un insieme di dipendenze funzionali, se un attributo non Γ¨ determinato da nessuna dipendenza funzionale presente in , allora questo dovrΓ  necessariamente far parte della superchiave che si sta cercando.

3 - Decomposizione di relazioni

Ora introduciamo un altro concetto alla base della normalizzazione: la decomposizione di una relazione.

Definizione: decomposizione

Data una relazione e un ricoprimento dello schema (cioΓ¨ e ), l’insieme di relazioni (dove ) Γ¨ una decomposizione di e ogni viene detto sottoschema di .

3.1 - Decomposizione senza perdita di informazioni

Definizione: decomposizione senza perdita di informazioni

Data una relazione su cui Γ¨ definito un insieme di dipendenze funzionali, una decomposizione di Γ¨ detta senza perdita di informazioni se, per ogni istanza di che soddisfa le dipendenze funzionali contenute in , si ha che3:

A partire dalla nozione di decomposizione senza perdita di informazioni, possiamo ricavarci un importante teorema.

Teorema sulla decomposizione senza perdita di informazioni

Data una relazione su cui Γ¨ definito un insieme di dipendenze funzionali, una decomposizione di Γ¨ senza perdita di informazioni se, per ogni istanza di che soddisfa le dipendenze funzionali contenute in , si ha che l’intersezione determina o o :

Ovviamente, il teorema puΓ² facilmente essere riformulato sulla base della definizione di superchiave.

Corollario sulla decomposizione senza perdita di informazioni

Data una relazione su cui Γ¨ definito un insieme di dipendenze funzionali, una decomposizione di Γ¨ senza perdita di informazioni se, per ogni istanza di che soddisfa le dipendenze funzionali contenute in , si ha che l’intersezione Γ¨ superchiave o di o di .

3.2 - Restrizione di un insieme di dipendenze funzionali

Immaginiamo di avere una relazione su cui Γ¨ definito un insieme di dipendenze funzionali. Dopo aver decomposto questa relazione, vogliamo β€œdecomporre” anche l’insieme delle dipendenze funzionali sulle due decomposizioni: ecco il concetto di restrizione.

Definizione: restrizione di un insieme di dipendenze funzionali

Data una decomposizione di una relazione su cui Γ¨ definito un insieme di dipendenze funzionali, una restrizione di un sottoschema Γ¨ l’insieme di dipendenze funzionali contenute nella chiusura di che riguardano solo gli attributi :

Dal concetto di restrizione si puΓ² ricavare quello di una decomposizione che β€œmantiene” le dipendenze.

Definizione: decomposizione che mantiene le dipendenze

Data una relazione su cui Γ¨ definito un insieme di dipendenze funzionali, una decomposizione di si dice che mantiene le dipendenze se Γ¨ deducibile dall’unione delle restrizioni ed (rispettivamente dei sottoschemi ed ):

4 - Forme normali

Esistono delle β€œricette” per la buona progettazione di una base di dati per limitare l’ammissibilitΓ  di dipendenze funzionali tra gli attributi, con l’obiettivo di eliminare o ridurre ridondanze e anomalie di modifica: le forme normali.

Definizione: forma normale

Una relazione su cui Γ¨ definito un insieme di dipendenze funzionali si dice essere in una forma normale se soddisfa i vincoli specifici di quella forma normale rispetto a .

4.1 - 1Βͺ Forma Normale (1NF)

4.2 - 2Βͺ Forma Normale (2NF)

4.3 - 3Βͺ Forma Normale (3NF)

4.4 - Forma Normale di Boyce-Codd (BCNF)

4.5 - 4Βͺ Forma Normale (4NF)

4.6 - 5Βͺ Forma Normale o Forma Normale di Proiezione-Join (5NF o PJNF)

4.7 - 6Βͺ Forma Normale o Forma Normale di Dominio-Chiave (6NF o DKNF)

Fonti

Footnotes

  1. Si legge ” determina β€œ. ↩

  2. Questa Γ¨ la notazione per l’unione di attributi. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10

  3. Qua Γ¨ stato usato l’abuso di notazione sulle istanze, per cui Γ¨ stato dato come argomento all’operatore di proiezione l’istanza e non la relazione a cui si riferisce, cosΓ¬ come viene considerato come risultato del natural-join un’istanza e non una relazione. ↩

  4. Ricordiamo che, nel caso della proiezione, puΓ² esserci un collasso delle tuple duplicate. ↩ ↩2 ↩3 ↩4