Funkcionalna zavisnost u bazi podataka

Funkcionalne zavisnosti Pomozite izbjegavanju dupliranja podataka

Funkcionalna zavisnost u bazi podataka primjenjuje skup ograničenja između atributa. Ovo se dešava kada jedan atribut u odnosu jedinstveno određuje drugi atribut. To može biti napisano A -> B što znači "B funkcionalno zavisi od A." Ovo se takođe naziva zavisnost od baze podataka .

U ovom odnosu, A određuje vrijednost B, dok B zavisi od A.

Zašto je funkcionalna zavisnost važna u dizajnu baze podataka

Funkcionalna zavisnost pomaže u osiguranju valjanosti podataka. Upoznajte tabelu Zaposleni koji navode karakteristike uključujući broj socijalnog osiguranja (SSN), ime, datum rođenja, adresu i tako dalje.

Atribut SSN će odrediti vrijednost imena, datuma rođenja, adrese i možda drugih vrijednosti, jer je broj socijalnog osiguranja jedinstven, dok ime, datum rođenja ili adresa ne mogu biti. Možemo da napišemo ovako:

SSN -> ime, datum rođenja, adresa

Prema tome, ime, datum rođenja i adresa funkcionalno zavise od SSN-a. Međutim, obratna reč (ime -> SSN) nije tačna jer više od jednog zaposlenog može imati isto ime, ali nikada neće imati istu SSN. Stavimo još jedan, konkretniji način, ako znamo vrijednost SSN atributa, možemo pronaći vrijednost imena, datuma rođenja i adrese. Ali ako umesto toga znamo vrednost samo atributa imena, ne možemo identifikovati SSN.

Leva strana funkcionalne zavisnosti može uključiti više od jednog atributa. Recimo da imamo posao sa više lokacija. Možda ćemo imati tabelu Employee sa atributom zaposleni, naslov, odjeljak, lokacija i menadžer.

Zaposleni određuje lokaciju na kojoj radi, tako da postoji zavisnost:

zaposleni -> lokacija

Međutim, lokacija može imati više od jednog menadžera, tako da zaposleni i odjel zajedno utvrđuju menadžer:

zaposlenik, odjel -> menadžer

Funkcionalna zavisnost i normalizacija

Funkcionalna zavisnost doprinosi onome što se zove normalna baza podataka, koja osigurava integritet podataka i smanjuje redundance podataka. Bez normalizacije, nema sigurnosti da su podaci u bazi podataka tačni i pouzdani.