Dependența funcțională în SGBD: Ce este, tipuri și exemple

Cuprins:

Anonim

Ce este dependența funcțională?

Dependența funcțională (FD) este o constrângere care determină relația unui atribut cu un alt atribut într-un sistem de gestionare a bazelor de date (SGBD). Dependența funcțională ajută la menținerea calității datelor din baza de date. Acesta joacă un rol vital pentru a găsi diferența dintre proiectarea bazelor de date bune și rele.

O dependență funcțională este notată de o săgeată "→". Dependența funcțională a lui X pe Y este reprezentată de X → Y. Să înțelegem dependența funcțională în SGBD cu un exemplu.

Exemplu:

Numar de angajati numele angajatului Salariu Oraș
1 Dana 50000 San Francisco
2 Francis 38000 Londra
3 Andrew 25000 Tokyo

În acest exemplu, dacă cunoaștem valoarea numărului de angajați, 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 angajatului.

În acest tutorial, veți învăța:

  • Termeni cheie
  • Regulile dependențelor funcționale
  • Tipuri de dependențe funcționale în SGBD
  • Dependență multivalorată în SGBD
  • Dependență funcțională banală în SGBD
  • Dependență funcțională banală în SGBD
  • Dependență tranzitivă în SGBD
  • Ce este normalizarea?
  • Avantajele dependenței funcționale

Termeni cheie

Iată câțiva termeni cheie pentru dependența funcțională în baza de date:

Termeni cheie Descriere
Axiomă Axiomele sunt un set de reguli de inferență utilizate pentru a deduce toate dependențele funcționale ale unei baze de date relaționale.
Descompunere Este o regulă care sugerează 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 în partea dreaptă a diagramei funcționale de dependență.
Determinant Este afișat în partea stângă a Diagramei dependenței funcționale.
Uniune Acesta sugerează că, dacă două tabele sunt separate, iar PK este același, ar trebui să luați în considerare plasarea lor. împreună

Regulile dependențelor funcționale

Mai jos sunt cele mai importante trei reguli pentru dependența funcțională din baza de date:

  • Regula reflexivă -. Dacă X este un set de atribute și Y este_subset_of X, atunci X deține o valoare de Y.
  • Regula de mărire: Când x -> y se menține, și c este setat de atribute, atunci se menține și ac -> bc. Aceasta înseamnă adăugarea de atribute care nu modifică dependențele de bază.
  • Regula tranzitivității: această regulă este foarte asemănătoare cu regula tranzitivă din algebră dacă x -> y se menține și y -> z se menține, atunci se păstrează și x -> z. X -> y se numește funcțional care determină y.

Tipuri de dependențe funcționale în SGBD

Există în principal patru tipuri de dependență funcțională în SGBD. Următoarele sunt tipurile de dependențe funcționale din SGBD:

  • Dependență multivalorată
  • Dependență funcțională banală
  • Dependență funcțională non-banală
  • Dependența tranzitivă

Dependență multivalorată în SGBD

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ță multivalorată este o constrângere completă între două seturi de atribute într-o relație. Este necesar ca anumite tupluri să fie prezente într-o relație. Luați în considerare următorul exemplu de dependență cu mai multe valori pentru a înțelege.

Exemplu:

Model de mașină Maf_an Culoare
H001 2017 Metalic
H001 2017 Verde
H005 2018 Metalic
H005 2018 Albastru
H010 2015 Metalic
H033 2012 gri

În acest exemplu, maf_year și culoare sunt independente una de cealaltă, dar dependente de modelul auto. În acest exemplu, se spune că aceste două coloane sunt multivalente dependente de modelul_car.

Această dependență poate fi reprezentată astfel:

model_mașină -> an_maf

model_mașină-> culoare

Dependență funcțională banală în SGBD

Dependența Trivial este un set de atribute care sunt numite triviale dacă setul de atribute sunt incluse în acel atribut.

Deci, X -> Y este o dependență funcțională trivială dacă Y este un subset 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-banală în SGBD

Dependența funcțională, cunoscută și sub numele de dependență non-trivială, apare atunci când A-> B este adevărat, unde B nu este un subset 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
Google Sundar Pichai 46
măr 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ă non-banală.

Dependență tranzitivă în SGBD

O dependență tranzitivă este un tip de dependență funcțională care se întâmplă atunci când t este format indirect de două dependențe funcționale. Să înțelegem cu următorul exemplu de dependență tranzitivă.

Exemplu:

Companie CEO Vârstă
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Alibaba Jack Ma 54

{Companie} -> {CEO} (dacă știm compay, știm numele acestuia)

{CEO} -> {Age} Dacă îl cunoaștem pe CEO, îl cunoaștem pe Age

Prin urmare, conform regulii regulii dependenței tranzitive:

{Companie} -> {Vârstă} ar trebui să păstreze, ceea ce este logic deoarece, dacă știm numele companiei, putem cunoaște vârsta acestuia.

Notă: trebuie să vă amintiț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, inserarea, actualizarea și ștergerea anomaliilor. Este un proces de analiză a schemelor de relații pe baza diferitelor 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 unor tabele suplimentare.

Avantajele dependenței funcționale

  • Dependența funcțională evită redundanța datelor. Prin urmare, aceleași date nu se repetă în locații multiple din baza de date respectivă
  • 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 modele 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 într-un sistem SGBD.
  • Axioma, Descompunerea, Dependentul, Determinantul, Uniunea sunt termeni cheie pentru dependența funcțională
  • Patru tipuri de dependență funcțională sunt 1) Multivalue 2) Trivial 3) Non-trivial 4) Tranzitiv
  • 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 sunt incluse în acel atribut
  • Dependența netrivială apare atunci când A-> B este adevărat unde B nu este un subset 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