Zavisnosti baze podataka su tema koja često zbunjuje i studente i profesionalce baze podataka. Na sreću, oni nisu tako komplikovani i najbolje se mogu ilustrovati korišćenjem više primera. U ovom članku istražujemo tipove zavisnosti baze podataka.
Dependencije baze podataka / Funkcionalne zavisnosti
Zavisnost se javlja u bazi podataka, kada informacije koje se čuvaju u istoj tablici baze podataka jedinstveno određuju druge informacije koje se čuvaju u istoj tabeli. Takođe možete opisati to kao odnos u kojem je poznavanje vrijednosti jednog atributa (ili skupa atributa) dovoljno da vam kaže vrijednost drugog atributa (ili skupa atributa) u istoj tabeli.
Kažu da postoji zavisnost između atributa u tabeli je isto što govori da postoji funkcionalna zavisnost između tih atributa. Ako postoji zavisnost u bazi podataka tako da atribut B zavisi od atributa A, ovo bi napisali kao "A -> B".
Na primjer, u tabeli sa karakteristikama zaposlenih, uključujući broj socijalnog osiguranja (SSN) i ime, može se reći da ime zavisi od SSN (ili SSN -> imena) jer ime zaposlenog može biti jedinstveno određeno od njihove SSN-a. Međutim, obratna reč (ime -> SSN) nije tačna jer više od jednog zaposlenog može imati isti naziv ali različite SSN.
Trivijalne funkcionalne zavisnosti
Tvivična funkcionalna zavisnost se javlja kada opisujete funkcionalnu zavisnost atributa na skupu atributa koji uključuje izvorni atribut. Na primjer, "{A, B} -> B" je trivijalna funkcionalna zavisnost, kao što je "{name, SSN} -> SSN". Ova vrsta funkcionalne zavisnosti naziva se trivijalno, jer se može izvesti iz zdravog razuma. Očigledno je da ako već znate vrijednost B onda vrijednost B može biti jedinstveno određena tom znanjem.
Puna funkcionalna zavisnost
Puna funkcionalna zavisnost se javlja kada već ispunjavate uslove za funkcionalnu zavisnost, a skup atributa na levoj strani funkcionalne izjave o zavisnosti ne može se dalje smanjiti. Na primjer, "{SSN, age} -> name" je funkcionalna zavisnost, ali nije potpuna funkcionalna zavisnost jer možete ukloniti starost sa lijeve strane izjave bez uticaja na odnos zavisnosti.
Transitive Dependencies
Tranzitivne zavisnosti se javljaju kada postoji indirektna veza koja uzrokuje funkcionalnu zavisnost. Na primjer, "A -> C" je tranzitivna zavisnost kada je istinita samo zato što su obe "A -> B" i "B -> C" istinite.
Višestruke zavisnosti
Višestruke zavisnosti se javljaju kada prisustvo jednog ili više redova u tabeli podrazumeva prisustvo jednog ili više drugih redova u toj istoj tabeli. Na primer, zamislite automobilsku kompaniju koja proizvodi mnoge automobile, ali uvek čini i crvene i plave boje svakog modela. Ako imate tablicu koja sadrži naziv modela, boju i godinu svakog automobila koji proizvede kompanija, u toj tabeli postoji zavisnost od višestruke zavisnosti . Ako postoji red za određeno ime modela i godinu u plavoj boji, mora se naći i sličan red koji odgovara crvenoj verziji tog istog automobila.
Značaj zavisnosti
Odnosi sa bazama podataka su važni za razumevanje jer pružaju osnovne elemente koji se koriste u normalizaciji baze podataka . Na primjer:
- Da bi tabela bila u drugoj normalnoj formi (2NF) , ne mora biti slučaja ne-prime atributa u tabeli koja je funkcionalno zavisna od podskupanja ključa kandidata .
- Da bi tabela bila u trećem normalnom obliku (3NF) , svaki atribut koji nije primećen mora imati neprelaznu funkcionalnu zavisnost od svakog ključa kandidata.
- Da bi tabela bila u Normalnoj formi Boyce-Codd (BCNF) , svaka funkcionalna zavisnost (osim trivijalnih zavisnosti) mora biti na superkeyu .
- Da bi tabela bila u četvrtoj normalnoj formi (4NF) , ona ne mora imati višenamenske zavisnosti.