Zavisnosti baze podataka su teme koje često zbunjuju i studente i profesionalce baze podataka. Srećom, oni nisu tako komplicirani i mogu se najbolje ilustrirati upotrebom brojnih primjera. U ovom članku ispitali smo zajedničke vrste ovisnosti o bazama podataka.
Zavisnosti / funkcionalne ovisnosti baze podataka
U bazi podataka dolazi do ovisnosti kada informacije pohranjene u istoj tablici baze podataka jedinstveno određuju ostale podatke pohranjene u istoj tablici. Možete je opisati i kao odnos u kojem je poznavanje vrijednosti jednog atributa (ili skup atributa) dovoljno da vam kažem vrijednost drugog atributa (ili skupa atributa) u istoj tablici.
Izgovorom da postoji ovisnost između atributa u tablici je ista kao da kažemo da postoji funkcionalna ovisnost između tih atributa. Ako postoji neka ovisnost u bazi podataka tako da atribut B ovisi o atributu A, to biste napisali kao "A -> B".
Na primjer, U tablici s popisom karakteristika zaposlenika uključujući SSN i ime, može se reći da se ime ovisi o SSN (ili SSN -> ime) jer ime zaposlenika može biti jedinstveno određeno iz njihovog SSN-a. Međutim, obrnuto izjava (naziv -> SSN) nije istina jer više od jednog zaposlenika može imati isti naziv, ali različite SSN-ove.
Trivialne funkcionalne ovisnosti
Trivična funkcionalna ovisnost događa se kada opisate funkcionalnu ovisnost atributa na zbirci atributa koji uključuje izvorni atribut. Na primjer, "{A, B} -> B" je trivijalna funkcionalna ovisnost, kao što je "{name, SSN} -> SSN". Ova vrsta funkcionalne ovisnosti naziva se trivijalan jer se može izvesti iz zdravog razuma. Očito je da ako već znate vrijednost B, tada se vrijednost B može jedinstveno odrediti tim znanjem.
Puna funkcionalna ovisnost
Puna funkcionalna ovisnost nastaje kada već ispunjavate uvjete za funkcionalnu ovisnost, a skup atributa na lijevoj strani izjave o funkcionalnoj ovisnosti ne može se dalje smanjivati. Na primjer, "{SSN, age} -> ime" funkcionalna ovisnost, ali nije puna funkcionalna ovisnost jer možete ukloniti dob od lijeve strane izjave bez utjecaja na odnos ovisnosti.
Transitirajuće ovisnosti
Prijelazne zavisnosti nastaju kada postoji neizravni odnos koji uzrokuje funkcionalnu ovisnost. Na primjer, "A -> C" je tranzitna ovisnost kada je istina samo zato što su oba "A"> B "i" B "> C istinita.
Ovisnost u više vrijednosti
Višeslojne zavisnosti nastaju kada prisutnost jednog ili više redaka u tablici podrazumijeva prisutnost jednog ili više drugih redaka u istoj tablici. Na primjer, zamislite tvrtku za automobil koja proizvodi mnoge modele automobila, ali uvijek čini crvene i plave boje svakog modela. Ako imate tablicu koja sadrži naziv modela, boju i godinu svakog automobila koji tvrtka proizvodi, u toj tablici postoji višeznačna ovisnost . Ako postoji red za određeni naziv modela i godina u plavom, mora postojati i sličan redak koji odgovara crvenoj verziji tog istog automobila.
Važnost ovisnosti
Ovisnost baza podataka važna je za razumijevanje jer pružaju osnovne građevne blokove koji se koriste u normalizaciji baze podataka . Na primjer:
- Da bi tablica bila u drugom normalnom obliku (2NF) , u tablici ne mora postojati slučaj nepripadnog atributa koji funkcionalno ovisi o podskupu ključa kandidata .
- Da bi tablica bila u trećem normalnom obliku (3NF) , svaki ne-premijer atribut mora imati ne-tranzitnu funkcionalnu ovisnost o svakom ključu kandidata.
- Da bi tablica bila u Boyce-Codd normalnom obrascu (BCNF) , svaka funkcionalna ovisnost (osim trivijalnih zavisnosti) mora biti na super-ključu .
- Da bi tablica bila u četvrtom normalnom obliku (4NF) , ona ne smije imati višeznačne zavisnosti.