Dipendenza multivalore nei database

Sommario:

Dipendenza multivalore nei database
Dipendenza multivalore nei database
Anonim

In un database relazionale, si verifica una dipendenza quando le informazioni memorizzate nella stessa tabella del database determinano in modo univoco altre informazioni memorizzate nella stessa tabella. Una dipendenza multivalore si verifica quando la presenza di una o più righe in una tabella implica la presenza di una o più altre righe nella stessa tabella. In altre parole, due attributi (o colonne) in una tabella sono indipendenti l'uno dall' altro, ma entrambi dipendono da un terzo attributo.

Image
Image

Una dipendenza multivalore impedisce la quarta forma normale standard di normalizzazione. I database relazionali seguono cinque forme normali che rappresentano le linee guida per la progettazione dei record. Impediscono anomalie di aggiornamento e incongruenze nei dati. La quarta forma normale riguarda le relazioni molti-a-uno in un database.

Dipendenza funzionale e dipendenza multivalore

Per comprendere una dipendenza multivalore, è utile rivisitare cos'è una dipendenza funzionale.

Se un attributo X determina in modo univoco un attributo Y, Y dipende funzionalmente da X. Questo è scritto come X -> Y. Ad esempio, nella tabella Studenti di seguito, Student_Name determina il Major:

Nome_studente Maggiore
Ravi Storia dell'arte
Beth Chimica

Questa dipendenza funzionale può essere scritta: Student_Name -> Major. Ogni Student_Name determina esattamente un Major e non di più.

Se vuoi che il database tenga traccia anche degli sport praticati da questi studenti, potresti pensare che il modo più semplice per farlo sia semplicemente aggiungere un' altra colonna intitolata Sport:

Nome_studente Maggiore Sport
Ravi Storia dell'arte Calcio
Ravi Storia dell'arte Pallavolo
Ravi Storia dell'arte Tennis
Beth Chimica Tennis
Beth Chimica Calcio

Il problema qui è che sia Ravi che Beth praticano diversi sport. È necessario aggiungere una nuova riga per ogni sport aggiuntivo.

Questa tabella ha introdotto una dipendenza multivalore perché la specializzazione e lo sport sono indipendenti l'uno dall' altro ma entrambi dipendono dallo studente. Questo è un esempio semplice e facilmente identificabile, ma una dipendenza multivalore potrebbe diventare un problema in un database grande e complesso.

Una dipendenza multivalore viene scritta X ->-> Y. In questo caso:

Nome_studente ->-> Maggiore

Nome_studente ->- > Sport

Questo viene letto come "Il nome dello studente multidetermina il maggiore" e "Il nome dello studente multidetermina lo sport".

Una dipendenza multivalore richiede sempre almeno tre attributi perché consiste in almeno due attributi che dipendono da un terzo.

Dipendenza multivalore e normalizzazione

Una tabella con una dipendenza multivalore viola lo standard di normalizzazione della quarta forma normale perché crea ridondanze non necessarie e può contribuire a dati incoerenti. Per portare questo fino a 4NF, è necessario suddividere queste informazioni in due tabelle.

La tabella seguente ora ha una dipendenza funzionale di Student_Name -> Major e nessuna dipendenza multivalore:

Nome_studente Maggiore
Ravi Storia dell'arte
Ravi Storia dell'arte
Ravi Storia dell'arte
Beth Chimica
Beth Chimica

Anche se questa tabella ha anche una singola dipendenza funzionale di Student_Name -> Sport:

Nome_studente Sport
Ravi Calcio
Ravi Pallavolo
Ravi Tennis
Beth Tennis
Beth Calcio

La normalizzazione viene spesso ottenuta semplificando tabelle complesse in modo che contengano informazioni relative a una singola idea o tema piuttosto che cercare di far sì che una singola tabella contenga informazioni troppo disparate.

Consigliato: