Skip to main content

Una guida per comprendere le dipendenze del database

I 5 farmaci più pericolosi: ne prendi qualcuno? (Giugno 2025)

I 5 farmaci più pericolosi: ne prendi qualcuno? (Giugno 2025)
Anonim

Una dipendenza è un vincolo che si applica o definisce la relazione tra gli attributi. Si verifica in un database quando le informazioni memorizzate nella stessa tabella del database determinano in modo univoco altre informazioni memorizzate nella stessa tabella. Puoi anche descriverlo come una relazione in cui conoscere il valore di un attributo (o un insieme di attributi) è sufficiente per dirti il ​​valore di un altro attributo (o set di attributi) nella stessa tabella.

Le dipendenze del database spesso confondono sia gli studenti che i professionisti del database. Fortunatamente, non sono così complicati come potrebbero sembrare. Possono essere meglio spiegati utilizzando alcuni esempi. Qui, esamineremo i tipi di dipendenza del database comuni.

Dipendenze del database e dipendenze funzionali

Dire che esiste una dipendenza tra gli attributi in una tabella equivale a dire che esiste una dipendenza funzionale tra questi attributi. Se esiste una dipendenza in un database tale che l'attributo B dipenda dall'attributo A, dovresti scrivere come:

A -> B

Ad esempio, in una tabella che elenca le caratteristiche dei dipendenti, incluso il numero di previdenza sociale (SSN) e il nome, si può affermare che il nome dipende da SSN (o SSN -> nome) perché il nome di un dipendente può essere determinato in modo univoco da un SSN. Tuttavia, l'istruzione inversa (nome -> SSN) non è vera perché più di un dipendente può avere lo stesso nome ma ha sempre SSN diversi.

Doppie dipendenze funzionali

Una dipendenza funzionale banale si verifica quando si descrive una dipendenza funzionale di un attributo su una raccolta di attributi che include l'attributo originale. Ad esempio, {A, B} -> B è una dipendenza funzionale banale, così come {name, SSN} -> SSN. Questo tipo di dipendenza funzionale è chiamato banale perché può essere derivato dal senso comune. È ovvio che se conosci già il valore di B, allora il valore di B può essere determinato in modo univoco da tale conoscenza.

Dipendenze funzionali complete

Una dipendenza funzionale completa si verifica quando si soddisfano già i requisiti per una dipendenza funzionale e l'insieme di attributi sul lato sinistro dell'istruzione di dipendenza funzionale non può essere ulteriormente ridotto. Ad esempio, {SSN, age} -> nome è una dipendenza funzionale, ma non è una dipendenza funzionale completa poiché è possibile rimuovere l'età dal lato sinistro dell'istruzione senza influire sulla relazione di dipendenza.

Dipendenze transitive

Le dipendenze transitive si verificano quando esiste una relazione indiretta che causa una dipendenza funzionale. Ad esempio, A -> C è una dipendenza transitiva quando è vera solo perché sia ​​A -> B che B -> C sono vere.

Dipendenze multivalore

Le dipendenze multivalore si verificano quando la presenza di una o più righe in una tabella implica la presenza di una o più altre righe nella stessa tabella. Ad esempio, immagina un'azienda automobilistica che produce molti modelli di auto, ma produce sempre i colori rosso e blu di ciascun modello. Se si dispone di una tabella che contiene il nome del modello, il colore e l'anno di ciascuna vettura prodotta dall'azienda, esiste una dipendenza multivalore in tale tabella. Se c'è una riga per un determinato nome di modello e un anno in blu, deve esserci anche una riga simile corrispondente alla versione rossa della stessa auto.

Importanza delle dipendenze

Le dipendenze del database sono importanti da comprendere perché forniscono i blocchi di base utilizzati nella normalizzazione del database, il processo di organizzazione efficiente dei dati in un database. Per esempio:

  • Affinché una tabella si trovi in ​​una seconda forma normale (2NF), nella tabella non deve essere presente alcun attributo non temporaneo che dipenda funzionalmente da un sottoinsieme di una chiave candidata.
  • Affinché una tabella sia in terza forma normale (3NF), ogni attributo non temporaneo deve avere una dipendenza funzionale non transitoria su ogni chiave candidata.
  • Perché una tabella si trovi in ​​Boyce-Codd Normal Form (BCNF), ogni dipendenza funzionale (diversa dalle banali dipendenze) deve essere su una superchiave.
  • Affinché un tavolo sia in quarta forma normale (4NF), non deve avere dipendenze multivalore.