Relazione secondo Codd e forme normali

Relazione secondo Codd:

Normalizzazione: tecnica di controllo che controlla la bontà del database

1^ forma normale

Una relazione è in prima forma normale: se

  • Rispetta la definizione di relazione secondo Codd

2^ forma normale

Una relazione è in seconda forma normale: se

  • È in prima forma normale
  • Tutti i sui attributi non chiave dipendono dalla chiave

3^ forma normale

Una relazione è in terza forma normale: se

  • È in seconda forma normale
  • Tutti gli attributi non chiave dipendono dalla chiave e non da altri attributi
  • Per ogni dipendenza funzionale X → Y almeno una delle due condizioni è verificata:
    • X contiene una chiave
    • Ogni attributo di Y è contenuto in almeno una chiave

Normalmente i DB vengono progettati in 3^ forma normale

Forma normale Boyce-Codd

Una relazione è in prima forma normale: se

  • È in seconda forma normale
  • Data una dipendenza funzione X → Y X è detto determinante e deve valere:
    • Ogni determinante è una chiave candidata
  • Se una relazione ha una sola chiave corrisponde alla terza forma normale

Non è sempre raggiungibile

Altre forme normali

Nella teoria dei database relazionali esistono forme normali di ordine superiore al terzo che
risolvono situazioni di anomalia nelle operazioni sulle tabelle.
Più precisamente la quarta e la quinta forma normale risolvono i problemi che si possono creare
quando nella relazione sono presenti attributi multivalore, cioè attributi che possono assumere
più valori in corrispondenza dello stesso valore di un altro attributo. Queste forme inoltre
servono a rendere minimo il numero degli attributi che formano le chiavi composte.

Sebbene sia possibile definire tabelle anche in quarta (4FN) e quinta forma normale (5FN), di
solito è sufficiente rappresentare le relazioni nel livello di normalizzazione 3FN che, come si può
dimostrare, ha il pregio di essere sempre ottenibile senza perdita di informazioni e senza perdita
di dipendenze funzionali. Non è così invece per la forma normale di Boyce-Codd: ci sono
relazioni che non possono essere normalizzate nella forma di Boyce-Codd senza perdita di
dipendenze funzionali.

Una buona decomposizione è se:

  • Decomporre senza perdita: Una relazione R si decompone senza perdita nelle relazione R' e R'' se effettuando il JOIN tra R' e R'' è possibile ottenere R. La condizione sufficiente per una decomposizione senza perdita è la presenza nella relazione R di un attributo in comune ad R' e R''

    Una decomposizione con perdita può generare tuple spurie.

  • Riuscire a decomporre rispettando i vincoli di integrità presenti sui dati. Una decomposizione rispetta i vincoli di integrità dei dati solamente se essi coinvolgono solo gli attributi che appaiono in una sola delle relazioni decomposte.

Non è sempre possibile.

.

results matching ""

    No results matching ""