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 |
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 |
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