Funkcionalna ovisnost u DBMS-u: Vrste s primjerima
โก Pametni saลพetak
Funkcionalna ovisnost je ograniฤenje koje odreฤuje kako se jedan atribut odnosi prema drugome u DBMS-u. Ona podupire normalizaciju identificiranjem determinanti i zavisnih elemenata te se klasificira u viลกevrijednosne, trivijalne, netrivijalne i tranzitivne ovisnosti.

ล to je funkcionalna ovisnost?
Funkcionalna ovisnost (FD) je ograniฤenje koje odreฤuje odnos jednog atributa prema drugom atributu u sustavu za upravljanje bazama podataka (DBMS). Funkcionalna ovisnost pomaลพe u odrลพavanju kvalitete podataka u bazi podataka. Igra vitalnu ulogu u pronalaลพenju razlike izmeฤu dobrog i loลกeg dizajna baze podataka.
Funkcionalna ovisnost oznaฤena je strelicom โโโ. Funkcionalna ovisnost Y od X predstavljena je s X โ Y. Razumijemo funkcionalnu ovisnost na primjeru.
Primjer:
| Broj zaposlenika | ime zaposlenika | Plata | Grad |
|---|---|---|---|
| 1 | Dana | 50000 | San Francisko |
| 2 | Franjo | 38000 | London |
| 3 | Andrija | 25000 | Tokyo |
U ovom primjeru, ako znamo vrijednost broja zaposlenika, moลพemo dobiti ime zaposlenika, grad, plaฤu i tako dalje. Na taj naฤin moลพemo reฤi da su grad, ime zaposlenika i plaฤa funkcionalno ovisni o broju zaposlenika.
Kljuฤni uvjeti
Evo nekih kljuฤnih pojmova za funkcionalnu ovisnost u bazi podataka:
| Kljuฤni uvjeti | Description |
|---|---|
| Aksiom | Aksiomi su skup pravila zakljuฤivanja koji se koriste za zakljuฤivanje svih funkcionalnih ovisnosti na relacijskoj bazi podataka. |
| Raspad | Pravilo koje sugerira da ako imate tablicu koja sadrลพi dva entiteta odreฤena istim primarnim kljuฤem, trebali biste razmisliti o njezinoj podjeli u dvije razliฤite tablice. |
| zavisan | Prikazuje se na desnoj strani dijagrama funkcionalne ovisnosti. |
| determinanta | Prikazuje se na lijevoj strani dijagrama funkcionalne ovisnosti. |
| Unija | To sugerira da ako su dvije tablice odvojene i primarni kljuฤ je isti, trebali biste razmisliti o njihovom spajanju. |
Pravila funkcionalnih ovisnosti (Armstrongovi aksiomi)
U nastavku su tri najvaลพnija pravila za funkcionalnu ovisnost u bazi podataka. Poznata su kao Armstrongovi aksiomi i iz njih se moลพe izvesti svako drugo pravilo zakljuฤivanja.
- Refleksivno pravilo: Ako je X skup atributa, a Y podskup od X, tada vrijedi X โ Y.
- Pravilo augmentacije: Kada vrijedi X โ Y i C je skup atributa, tada vrijedi i XC โ YC. Dodavanje atributa ne mijenja osnovnu ovisnost.
- Pravilo tranzitivnosti: Sliฤno tranzitivnom pravilu u algebri: ako vrijedi X โ Y i vrijedi Y โ Z, tada vrijedi i X โ Z.
Iz ovoga su izvedena joลก tri pravila koja se stalno koriste u praksi:
- Pravilo Unije: ako X โ Y i X โ Z, tada X โ YZ.
- Pravilo dekompozicije: ako X โ YZ, onda X โ Y i X โ Z.
- Pravilo pseudo-tranzitivnosti: ako X โ Y i WY โ Z, tada WX โ Z.
Ponavljana primjena ovih pravila na skup ovisnosti proizvodi njegovo zatvaranje, potpuni skup ovisnosti koje logiฤki slijede. Zatvaranje skupa atributa je takoฤer naฤin na koji se pronalaze kandidati za kljuฤeve, ลกto je izravno povezano s prouฤavanjem DBMS kljuฤevi.
Vrste funkcionalnih ovisnosti u DBMS-u
U DBMS-u postoje uglavnom ฤetiri vrste funkcionalne ovisnosti:
- Viลกeznaฤna ovisnost
- Trivijalna funkcionalna ovisnost
- Netrivijalna funkcionalna ovisnost
- Tranzitivna ovisnost
Viลกevrijedna ovisnost u DBMS-u
Viลกevrijednosna ovisnost javlja se u situaciji kada postoji viลกe neovisnih viลกevrijednosnih atributa u jednoj tablici. Viลกevrijednosna ovisnost je potpuno ograniฤenje izmeฤu dva skupa atributa u relaciji, koje zahtijeva prisutnost odreฤenih tuplea. Razmotrimo sljedeฤi primjer.
Primjer:
| Model_automobila | maf_godina | Boja |
|---|---|---|
| H001 | 2017 | Metalik |
| H001 | 2017 | Zelena |
| H005 | 2018 | Metalik |
| H005 | 2018 | Plava |
| H010 | 2015 | Metalik |
| H033 | 2012 | Siva |
U ovom primjeru, Maf_year i Color su meฤusobno neovisni, ali ovisni o Car_model. Za ova dva stupca kaลพe se da su viลกevrijednosni i ovisni o Car_model. To je predstavljeno kao:
model_cara โ godina_maf
model_automobila โ boja
Trivijalna funkcionalna ovisnost u DBMS-u
Trivijalna ovisnost je skup atributa koji se naziva trivijalnim ako je skup atributa ukljuฤen u taj atribut. Dakle, X โ Y je trivijalna funkcionalna ovisnost ako je Y podskup od X. Razmotrimo primjer u nastavku.
| Emp_id | Emp_name |
|---|---|
| AS555 | Pljaฤkati |
| AS811 | George |
| AS999 | Kevin |
Razmotrimo ovu tablicu s dva stupca, Emp_id i Emp_name. {Emp_id, Emp_name} โ Emp_id je trivijalna funkcionalna ovisnost, buduฤi da je Emp_id podskup od {Emp_id, Emp_name}.
Netrivijalna funkcionalna ovisnost u DBMS-u
Netrivijalna ovisnost nastaje kada vrijedi A โ B i B nije podskup atributa A. Ako atribut B nije podskup atributa A, ovisnost se smatra netrivijalnom.
| Tvrtka | Predsjednik uprave | Dob |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| jabuka | Tim Cook | 57 |
Primjer:
{Tvrtka} โ {CEO} (ako znamo Tvrtku, znamo i ime CEO-a). Ali CEO nije podskup tvrtke, te je stoga netrivijalna funkcionalna ovisnost.
Tranzitivna ovisnost u DBMS-u
Tranzitivna ovisnost je vrsta funkcionalne ovisnosti koja se dogaฤa kada je atribut neizravno odreฤen dvjema funkcionalnim ovisnostima. Razmotrimo primjer u nastavku.
| Tvrtka | Predsjednik uprave | Dob |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| Alibi | Jack Ma | 54 |
{Tvrtka} โ {CEO} (ako znamo tvrtku, znamo i ime njezinog izvrลกnog direktora).
{CEO} โ {Dob} (ako znamo direktora, znamo i godine).
Stoga, prema pravilu tranzitivne ovisnosti, trebalo bi vrijediti {Tvrtka} โ {Dob}, ลกto ima smisla jer ako znamo naziv tvrtke, moลพemo pronaฤi i dob.
Napomena: tranzitivna ovisnost moลพe se pojaviti samo u relaciji tri ili viลกe atributa.
ล to je normalizacija?
Normalizacija je metoda organiziranja podataka u bazi podataka koja vam pomaลพe izbjeฤi redundanciju podataka i anomalije umetanja, aลพuriranja i brisanja. To je proces analize relacijskih shema na temelju njihovih razliฤitih funkcionalnih ovisnosti i primarnog kljuฤa.
Normalizacija je inherentna teoriji relacijskih baza podataka. Moลพe imati uฤinak dijeljenja podataka u dodatne tablice tako da se svaka ฤinjenica pohranjuje jednom. Cijeli proces je opisan u vodiฤu za normalizacija baze podataka, koji se izravno temelji na gore navedenim tipovima ovisnosti.
Prednosti funkcionalne ovisnosti
- Funkcionalna ovisnost izbjegava redundanciju podataka, tako da se isti podaci ne ponavljaju na viลกe lokacija u baza podataka.
- Pomaลพe vam u odrลพavanju kvalitete podataka u bazi podataka.
- Pomaลพe vam definirati znaฤenja i ograniฤenja baza podataka.
- Pomaลพe vam u prepoznavanju loลกih dizajna.
- Pomaลพe vam pronaฤi ฤinjenice vezane uz dizajn baze podataka.
