Dependența funcțională în DBMS: ce este, tipuri și exemple
Ce este dependența funcțională?
Dependență funcțională (FD) este o constrângere care determină relația dintre un atribut și un alt atribut într-un sistem de management al bazelor de date (DBMS). Dependența funcțională ajută la menținerea calității datelor din baza de date. Joacă un rol vital să găsești diferența dintre designul bun și rău al bazei de date.
O dependență funcțională este indicată de o săgeată „→”. Dependența funcțională a lui X de Y este reprezentată de X → Y. Să înțelegem Dependența funcțională în DBMS cu un exemplu.
Exemplu:
| Numar de angajati | numele angajatului | Salariu | Orașul |
|---|---|---|---|
| 1 | Dana | 50000 | San Francisco |
| 2 | Francis | 38000 | Londra |
| 3 | Andrew | 25000 | Tokyo |
În acest exemplu, dacă știm valoarea numărului de angajat, putem obține numele angajatului, orașul, salariul etc. Prin aceasta, putem spune că orașul, numele angajatului și salariul depind funcțional de numărul de angajat.
Termeni cheie
Iată câțiva termeni cheie pentru dependența funcțională în baza de date:
| Termeni cheie | Descriere |
|---|---|
| Axiomă | Axiomele este un set de reguli de inferență utilizate pentru a deduce toate dependențele funcționale dintr-o bază de date relațională. |
| Descompunere | Este o regulă care sugerează că dacă aveți un tabel care pare să conțină două entități care sunt determinate de aceeași cheie primară, atunci ar trebui să luați în considerare împărțirea lor în două tabele diferite. |
| Dependent | Este afișat pe partea dreaptă a diagramei de dependență funcțională. |
| determinant | Este afișat în partea stângă a Diagramei de dependență funcțională. |
| Uniune | Sugerează că, dacă două tabele sunt separate, iar PK-ul este același, ar trebui să vă gândiți să le puneți. împreună |
Regulile dependențelor funcționale
Mai jos sunt cele mai importante trei reguli pentru dependența funcțională în baza de date:
- Regula reflexivă –. Dacă X este un set de atribute și Y este_subset_of X, atunci X deține o valoare a lui Y.
- Regula de creștere: când x -> y este valabil și c este set de atribute, atunci ac -> bc este valabil și. Aceasta înseamnă adăugarea de atribute care nu schimbă dependențele de bază.
- Regula tranzitivității: Această regulă este foarte asemănătoare cu regula tranzitivă din algebră dacă x -> y este valabil și y -> z, atunci x -> z este valabil și. X -> y se numește ca funcțional care determină y.
Tipuri de dependențe funcționale în DBMS
Există în principal patru tipuri de dependență funcțională în DBMS. Următoarele sunt tipurile de dependențe funcționale în DBMS:
- Dependență multivalorică
- Dependență funcțională trivială
- Dependență funcțională non-trivială
- Dependența tranzitivă
Dependență cu mai multe valori în DBMS
Dependența cu mai multe valori apare în situația în care există mai multe atribute independente cu mai multe valori într-un singur tabel. O dependență cu mai multe valori este o constrângere completă între două seturi de atribute dintr-o relație. Necesită ca anumite tupluri să fie prezente într-o relație. Luați în considerare următorul exemplu de dependență cu valori multiple pentru a înțelege.
Exemplu:
| Model de mașină | Maf_an | Culori |
|---|---|---|
| H001 | 2017 | Metalic |
| H001 | 2017 | BIO |
| H005 | 2018 | Metalic |
| H005 | 2018 | Albastru |
| H010 | 2015 | Metalic |
| H033 | 2012 | Gri |
În acest exemplu, maf_year și culoarea sunt independente unele de altele, dar depind de car_model. În acest exemplu, se spune că aceste două coloane sunt dependente de mai multe valori de car_model.
Această dependență poate fi reprezentată astfel:
model_mașină -> an_maf
model_mașină-> culoare
Dependență funcțională trivială în DBMS
Dependența Trivial este un set de atribute care se numesc trivial dacă setul de atribute este inclus în acel atribut.
Deci, X -> Y este o dependență funcțională trivială dacă Y este un submult al lui X. Să înțelegem cu un exemplu de dependență funcțională trivială.
De exemplu:
| Emp_id | Emp_name |
|---|---|
| AS555 | Harry |
| AS811 | George |
| AS999 | Kevin |
Luați în considerare acest tabel cu două coloane Emp_id și Emp_name.
{Emp_id, Emp_name} -> Emp_id este o dependență funcțională trivială, deoarece Emp_id este un subset al {Emp_id,Emp_name}.
Dependență funcțională non-trivială în DBMS
Dependența funcțională, cunoscută și sub numele de dependență netrivială, apare atunci când A->B este adevărat, unde B nu este un submult al lui A. Într-o relație, dacă atributul B nu este un subset al atributului A, atunci este considerat ca un non-trivial. dependenţă.
| Companie | CEO | Vârstă |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| Apple | Tim Cook | 57 |
Exemplu:
(Companie} -> {CEO} (dacă cunoaștem compania, știm numele CEO)
Dar CEO-ul nu este un subset al companiei și, prin urmare, este o dependență funcțională netrivială.
Dependența tranzitivă în SGBD
O dependență tranzitivă este un tip de dependență funcțională care se întâmplă atunci când „t” este format indirect din două dependențe funcționale. Să înțelegem cu următorul exemplu de dependență tranzitivă.
Exemplu:
| Companie | CEO | Vârstă |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| Alibaba | Jack Ma | 54 |
{Companie} -> {CEO} (dacă cunoaștem compania, știm numele CEO-ului acesteia)
{CEO } -> {Vârsta} Dacă îl cunoaștem pe CEO, știm vârsta
Prin urmare, conform regulii de dependență tranzitivă:
{Compania} -> {Vârsta} ar trebui să țină, asta are sens pentru că dacă cunoaștem numele companiei, îi putem ști vârsta.
Notă: Trebuie să rețineți că dependența tranzitivă poate apărea numai într-o relație de trei sau mai multe atribute.
Ce este normalizarea?
Normalizarea este o metodă de organizare a datelor în baza de date care vă ajută să evitați redundanța datelor, anomaliile de inserare, actualizare și ștergere. Este un proces de analiză a schemelor de relații pe baza diferitelor lor dependențe funcționale și a cheii primare.
Normalizarea este inerentă teoriei bazelor de date relaționale. Poate avea ca efect duplicarea acelorași date în baza de date, ceea ce poate duce la crearea de tabele suplimentare.
Avantajele dependenței funcționale
- Dependența funcțională evită redundanța datelor. Prin urmare, aceleași date nu se repetă în mai multe locații Baza de date
- Vă ajută să mențineți calitatea datelor din baza de date
- Vă ajută să definiți semnificațiile și constrângerile bazelor de date
- Vă ajută să identificați modelele proaste
- Vă ajută să găsiți faptele referitoare la proiectarea bazei de date
Rezumat
- Dependența funcțională este atunci când un atribut determină un alt atribut în a sistem DBMS.
- Axiomă, Descompunere, Dependent, Determinant, Uniune sunt termeni cheie pentru dependența funcțională
- Patru tipuri de dependență funcțională sunt 1) Multivalore 2) Triviale 3) Netriviale 4) Tranzitive
- Dependența cu mai multe valori apare în situația în care există mai multe atribute independente cu mai multe valori într-un singur tabel
- Dependența Trivial apare atunci când un set de atribute care sunt numite trivial dacă setul de atribute este inclus în acel atribut
- Dependența netrivială apare atunci când A->B este adevărat, unde B nu este un submult al lui A
- Un tranzitiv este un tip de dependență funcțională care se întâmplă atunci când este format indirect din două dependențe funcționale
- Normalizarea este o metodă de organizare a datelor în baza de date care vă ajută să evitați redundanța datelor
