Dipendenza funzionale nei DBMS: cos'è, tipi ed esempi

Cos'è la dipendenza funzionale?

Dipendenza Funzionale (FD) è un vincolo che determina la relazione di un attributo con un altro attributo in un sistema di gestione di database (DBMS). La dipendenza funzionale aiuta a mantenere la qualità dei dati nel database. Svolge un ruolo fondamentale trovare la differenza tra una progettazione di database buona e cattiva.

Una dipendenza funzionale è indicata da una freccia “→”. La dipendenza funzionale di X da Y è rappresentata da X → Y. Comprendiamo la dipendenza funzionale nel DBMS con un esempio.

Esempio:

Impiegato numero Nome dipendente Incentivo Città
1 Dana 50000 San Francisco
2 Francis 38000 Londra
3 Andrea 25000 Tokyo

In questo esempio, se conosciamo il valore del numero del dipendente, possiamo ottenere il nome del dipendente, la città, lo stipendio, ecc. In questo modo possiamo dire che la città, il nome del dipendente e lo stipendio dipendono funzionalmente dal numero del dipendente.

Parole chiave

Ecco alcuni termini chiave per la dipendenza funzionale nel database:

Parole chiave Descrizione
Assioma Gli assiomi sono un insieme di regole di inferenza utilizzate per dedurre tutte le dipendenze funzionali su un database relazionale.
Decomposizione È una regola che suggerisce che se hai una tabella che sembra contenere due entità determinate dalla stessa chiave primaria, dovresti considerare di suddividerle in due tabelle diverse.
Dipendente Viene visualizzato su lato destro del diagramma delle dipendenze funzionali.
determinante Viene visualizzato sul lato sinistro del diagramma delle dipendenze funzionali.
Unione Suggerisce che se due tabelle sono separate e il PK è lo stesso, dovresti considerare di inserirle. insieme

Regole delle dipendenze funzionali

Di seguito sono riportate le tre regole più importanti per la dipendenza funzionale nel database:

  • Regola riflessiva –. Se X è un insieme di attributi e Y è_sottoinsieme_di X, allora X ha il valore Y.
  • Regola di aumento: quando vale x -> y e c è l'attributo impostato, vale anche ac -> bc. Ciò significa aggiungere attributi che non modificano le dipendenze di base.
  • Regola di transitività: questa regola è molto simile alla regola di transitività in algebra se vale x -> y e vale y -> z, allora vale anche x -> z. X -> y è detto funzionalmente che determina y.

Tipi di dipendenze funzionali nei DBMS

Esistono principalmente quattro tipi di Dipendenza Funzionale in DBMS. Di seguito sono riportati i tipi di Dipendenza Funzionale in DBMS:

  • Dipendenza multivalore
  • Dipendenza funzionale banale
  • Dipendenza funzionale non banale
  • Dipendenza transitiva

Dipendenza multivalore nei DBMS

La dipendenza multivalore si verifica nella situazione in cui ci sono più attributi multivalore indipendenti in una singola tabella. Una dipendenza multivalore è un vincolo completo tra due set di attributi in una relazione. Richiede che certe tuple siano presenti in una relazione. Considera il seguente esempio di dipendenza multivalore per capire.

Esempio:

Modello d'auto Maf_anno Colore
H001 2017 Metallico
H001 2017 Verde
H005 2018 Metallico
H005 2018 Blue
H010 2015 Metallico
H033 2012 Gray

In questo esempio, maf_year e color sono indipendenti l'uno dall'altro ma dipendono da car_model. In questo esempio, si dice che queste due colonne siano multivalore dipendenti da car_model.

Questa dipendenza può essere rappresentata in questo modo:

modello_auto -> maf_anno

modello_auto-> colore

Dipendenza funzionale banale nei DBMS

La dipendenza Trivial è un insieme di attributi che vengono chiamati banali se l'insieme di attributi è incluso in quell'attributo.

Quindi, X -> Y è una dipendenza funzionale banale se Y è un sottoinsieme di X. Capiamolo con un esempio di dipendenza funzionale banale.

Per esempio:

Emp_id Nome_dip
AS555 tormentare
AS811 George
AS999 Kevin

Considera questa tabella con due colonne Emp_id e Emp_name.

{Emp_id, Emp_name} -> Emp_id è una dipendenza funzionale banale poiché Emp_id è un sottoinsieme di {Emp_id,Emp_name}.

Dipendenza funzionale non banale nei DBMS

La dipendenza funzionale, nota anche come dipendenza non banale, si verifica quando A->B è vero dove B non è un sottoinsieme di A. In una relazione, se l'attributo B non è un sottoinsieme dell'attributo A, allora è considerato non banale dipendenza.

Azienda CEO Età
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Apple Tim Cook 57

Esempio:

(Azienda} -> {CEO} (se conosciamo l'azienda, conosciamo il nome dell'amministratore delegato)

Ma il CEO non è un sottoinsieme dell'Azienda, e quindi è una dipendenza funzionale non banale.

Dipendenza transitiva nei DBMS

Una Dipendenza Transitiva è un tipo di dipendenza funzionale che si verifica quando "t" è indirettamente formato da due dipendenze funzionali. Comprendiamolo con il seguente Esempio di Dipendenza Transitiva.

Esempio:

Azienda CEO Età
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Alibaba Jack Ma 54

{Azienda} -> {CEO} (se conosciamo l'azienda, conosciamo il nome del suo CEO)

{CEO } -> {Età} Se conosciamo il CEO, conosciamo l'età

Pertanto secondo la regola della dipendenza transitiva:

{Azienda} -> {Età} dovrebbe essere valido, ha senso perché se conosciamo il nome dell'azienda, possiamo conoscere la sua età.

Nota: è necessario ricordare che la dipendenza transitiva può verificarsi solo in una relazione di tre o più attributi.

Cos'è la normalizzazione?

La normalizzazione è un metodo di organizzazione dei dati nel database che aiuta a evitare la ridondanza dei dati, anomalie di inserimento, aggiornamento e cancellazione. È un processo di analisi degli schemi di relazione in base alle loro diverse dipendenze funzionali e alla chiave primaria.

La normalizzazione è inerente alla teoria dei database relazionali. Potrebbe avere l'effetto di duplicare gli stessi dati all'interno del database, il che potrebbe comportare la creazione di tabelle aggiuntive.

Vantaggi della dipendenza funzionale

  • La dipendenza funzionale evita la ridondanza dei dati. Pertanto gli stessi dati non si ripetono in più posizioni banca dati
  • Ti aiuta a mantenere la qualità dei dati nel database
  • Ti aiuta a definire significati e vincoli dei database
  • Ti aiuta a identificare i cattivi progetti
  • Ti aiuta a trovare i fatti riguardanti la progettazione del database

Sommario

  • La dipendenza funzionale è quando un attributo determina un altro attributo in a Sistema DBMS.
  • Assioma, Decomposizione, Dipendente, Determinante, Unione sono termini chiave per la dipendenza funzionale
  • Quattro tipi di dipendenza funzionale sono 1) Multivalore 2) Banale 3) Non banale 4) Transitiva
  • La dipendenza multivalore si verifica nella situazione in cui sono presenti più attributi multivalore indipendenti in una singola tabella
  • La dipendenza Trivial si verifica quando un insieme di attributi che vengono chiamati banali se l'insieme di attributi è incluso in quell'attributo
  • La dipendenza non banale si verifica quando A->B è vero dove B non è un sottoinsieme di A
  • Una transitiva è un tipo di dipendenza funzionale che si verifica quando è formata indirettamente da due dipendenze funzionali
  • La normalizzazione è un metodo di organizzazione dei dati nel database che aiuta a evitare la ridondanza dei dati