Cos'è la dipendenza funzionale?
Functional Dependency (FD) è un vincolo che determina la relazione di un attributo con un altro attributo in un Database Management System (DBMS). La dipendenza funzionale aiuta a mantenere la qualità dei dati nel database. Svolge un ruolo fondamentale per 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 in DBMS con l'esempio.
Esempio:
Impiegato numero | Nome dipendente | Stipendio | Città |
1 | Dana | 50000 | San Francisco |
2 | Francesco | 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.
In questo tutorial imparerai:
- Parole chiave
- Regole delle dipendenze funzionali
- Tipi di dipendenze funzionali nel DBMS
- Dipendenza multivalore in DBMS
- Banale dipendenza funzionale nel DBMS
- Dipendenza funzionale non banale nel DBMS
- Dipendenza transitiva in DBMS
- Cos'è la normalizzazione?
- Vantaggi della dipendenza funzionale
Parole chiave
Ecco alcuni termini chiave per la dipendenza funzionale nel database:
Parole chiave | Descrizione |
Assioma | Axioms è un insieme di regole di inferenza utilizzate per inferire 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 sul 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 metterle. 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 contiene un valore di Y.
- Regola di aumento: quando x -> y vale e c è un attributo impostato, vale anche ac -> bc. Ovvero l'aggiunta di attributi che non cambiano le dipendenze di base.
- Regola di transitività: questa regola è molto simile alla regola di transitiva in algebra se vale x -> y e y -> z vale, allora vale anche x -> z. X -> y è chiamato funzionalmente che determina y.
Tipi di dipendenze funzionali nel DBMS
Esistono principalmente quattro tipi di dipendenza funzionale nel DBMS. Di seguito sono riportati i tipi di dipendenze funzionali nel DBMS:
- Dipendenza multivalore
- Banale dipendenza funzionale
- Dipendenza funzionale non banale
- Dipendenza transitiva
Dipendenza multivalore in DBMS
La dipendenza multivalore si verifica nella situazione in cui sono presenti più attributi multivalore indipendenti in una singola tabella. Una dipendenza multivalore è un vincolo completo tra due set di attributi in una relazione. Richiede che alcune tuple siano presenti in una relazione. Considera il seguente esempio di dipendenza multivalore per capire.
Esempio:
Modello d'auto | Maf_year | Colore |
H001 | 2017 | Metallico |
H001 | 2017 | verde |
H005 | 2018 | Metallico |
H005 | 2018 | Blu |
H010 | 2015 | Metallico |
H033 | 2012 | Grigio |
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:
car_model -> maf_year
car_model-> color
Banale dipendenza funzionale nel DBMS
La dipendenza Trivial è un insieme di attributi che sono chiamati banali se l'insieme di attributi è incluso in quell'attributo.
Quindi, X -> Y è una dipendenza funzionale banale se Y è un sottoinsieme di X. Comprendiamo con un esempio di dipendenza funzionale banale.
Per esempio:
Emp_id | Emp_name |
AS555 | Harry |
AS811 | Giorgio |
AS999 | Kevin |
Considera questa tabella di con due colonne Emp_id e Emp_name.
{Emp_id, Emp_name} -> Emp_id è una banale dipendenza funzionale poiché Emp_id è un sottoinsieme di {Emp_id, Emp_name}.
Dipendenza funzionale non banale nel 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 come un non banale dipendenza.
Azienda | Amministratore delegato | Età |
Microsoft | Satya Nadella | 51 |
Sundar Pichai | 46 | |
Mela | Tim Cook | 57 |
Esempio:
(Company} -> {CEO} (se conosciamo l'azienda, conosciamo il nome del CEO)
Ma il CEO non è un sottoinsieme di Company, e quindi è una dipendenza funzionale non banale.
Dipendenza transitiva in DBMS
Una dipendenza transitiva è un tipo di dipendenza funzionale che si verifica quando t è formata indirettamente da due dipendenze funzionali. Comprendiamo con il seguente esempio di dipendenza transitiva.
Esempio:
Azienda | Amministratore delegato | Età |
Microsoft | Satya Nadella | 51 |
Sundar Pichai | 46 | |
Alibaba | Jack Ma | 54 |
{Company} -> {CEO} (se conosciamo l'azienda, conosciamo il nome del suo CEO)
{CEO} -> {Age} Se conosciamo il CEO, conosciamo l'Età
Quindi secondo la regola della regola della dipendenza transitiva:
{Azienda} -> {Età} dovrebbe contenere, questo 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, l'inserimento, l'aggiornamento e l'anomalia della 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 portare alla 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 in quel database
- 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 un 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 sono 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
- Un transitivo è un tipo di dipendenza funzionale che si verifica quando è formata indirettamente da due dipendenze funzionali
- La normalizzazione è un metodo per organizzare i dati nel database che aiuta a evitare la ridondanza dei dati