Skip to main content

Vodič za razumijevanje ovisnosti o bazama podataka

Bill Schnoebelen Interview with an Ex Vampire (6 of 9) Multi Language (Travanj 2025)

Bill Schnoebelen Interview with an Ex Vampire (6 of 9) Multi Language (Travanj 2025)
Anonim

Ovisnost je ograničenje koje se odnosi na ili određuje odnos između atributa. Pojavljuje se u bazi podataka kada se informacije pohranjene u istoj tablici baze podataka automatski određuju ostale informacije 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.

Zavisnost od baza podataka često zbunjuje i studente i profesionalce baze podataka. Srećom, oni nisu tako komplicirani kao što se mogu činiti. Mogu se najbolje objasniti pomoću nekoliko primjera. Ovdje ćemo ispitati uobičajene vrste ovisnosti o bazama podataka.

Zavisnosti i funkcionalne ovisnosti baze podataka

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 ovisnost u bazi podataka tako da atribut B ovisi o atributu A, to biste to napisali kao:

A -> B

Na primjer, u tablici koja navodi karakteristike zaposlenika, uključujući socijalni sigurnosni broj (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 SSN-a. Međutim, obrnuto izjava (naziv -> SSN) nije istina jer više od jednog zaposlenika može imati isto ime, ali uvijek imaju 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 {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, naziv {SSN, age} -> funkcionalna je 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 tranzitivna ovisnost kada je istina samo zato što su oba A -> B i B -> C istiniti.

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 svake tvrtke koju proizvodi tvrtka, 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 elemente koji se koriste u normalizaciji baze podataka, proces učinkovitijeg organiziranja podataka u bazi podataka. Na primjer:

  • Da bi tablica bila u drugom normalnom obliku (2NF), u tablici ne mora postojati nijedan neprime atribut koji funkcionalno ovisi o podskupu ključa kandidata.
  • Da bi tablica bila u trećem normalnom obliku (3NF), svaki neprime atribut mora imati ne-transitirajuću 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.