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.

  • โžก๏ธ Osnovna ideja: U X โ†’ Y, determinanta X fiksira vrijednost zavisne od Y, oznaฤenu strelicom.
  • ๐Ÿท๏ธ Kljuฤni uvjeti: Determinanta, zavisnost, aksiom, dekompozicija i unija opisuju kako se ovisnosti imenuju i manipuliraju.
  • ๐Ÿ“ Armstrongovi aksiomi: Refleksivnost, augmentacija i tranzitivnost zakljuฤuju svaku ovisnost koju skup logiฤki implicira.
  • ๐Ÿ”€ ฤŒetiri vrste: Viลกevrijednosne, trivijalne, netrivijalne i tranzitivne ovisnosti opisuju zaseban odnos atributa.
  • ๐Ÿงน Veza za normalizaciju: Ovisnosti pokreฤ‡u normalizaciju, ลกto uklanja redundanciju i anomalije aลพuriranja.
  • ๐Ÿ”‘ Zatvaranje: Zatvaranje atributa otkriva kandidatske kljuฤeve i je li ovisnost vaลพeฤ‡a.
  • โœ… Korist: Dobre ovisnosti signaliziraju dobar dizajn i odvajaju kvalitetne sheme od loลกih.

Funkcionalna ovisnost u DBMS-u

ล 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
Google 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
Google 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.

Pitanja i odgovori

Determinanta je atribut s lijeve strane strelice koji fiksira vrijednost. Zavisna je osobina s desne strane ฤija je vrijednost odreฤ‘ena. U X โ†’ Y, X odreฤ‘uje Y.

Funkcionalna ovisnost fiksira jednu vrijednost za zavisnu. Viลกevrijednosna ovisnost dopuลกta skup neovisnih vrijednosti, zbog ฤega joj je potreban vlastiti atribut i vodi do ฤetvrte normalne forme.

Izraฤunajte zatvaranje skupa atributa koristeฤ‡i ovisnosti. Ako zatvaranje ukljuฤuje svaki atribut relacije, taj skup je superkljuฤ; minimalni takav skup je kandidat za kljuฤ.

Da. Algoritmi za otkrivanje ovisnosti, neki uz pomoฤ‡ umjetne inteligencije, skeniraju skup podataka i predlaลพu kandidate za ovisnosti. Dizajner ih mora potvrditi jer obrazac koji je istinit u uzorku podataka moลพda neฤ‡e vrijediti kao pravilo.

Pohranjuje ฤinjenicu o atributu koji nije kljuฤan, pa njegovo aลพuriranje riskira anomalije. Uklanjanje tranzitivnih ovisnosti upravo je ono ลกto zahtijeva treฤ‡i normalni oblik, koji svaku ฤinjenicu drลพi na jednom mjestu.

Saลพmite ovu objavu uz: