Baze podataka

2. Dizajniranje baze podataka

Dizajniranje (ili modeliranje) baze podataka je postupak kojim omogućavamo dobru organizaciju podataka bez nepotrebne redundancije te učinkovit rad s podacima.

Primjer:

Želimo pohraniti podatke o učenicima neke škole i pri tome trebamo pohraniti:

  • Ime učenika
  • Prezime učenika
  • Datum rođenja učenika
  • Razredno odjeljenje
  • Ime razrednika
  • Prezime razrednika
  • Školska godina
Jedno od mogućih rješenja je da sve podatke smjestimo u jednu tablicu:
Svi označeni podaci su zapravo redundantni podaci (ponavljaju se) i čine bazu nepreglednom. Ono što možemo napraviti je podatke —iz prethodne tablice razdvojiti u dvije skupine:
  • Podaci o učenicima (ime, prezime, datum rođenja, razredno odjeljenje)
  • Podaci o razredima (odjeljenje, ime razrednika i prezime razrednika)
Time smo definirali dva glavna —ENTITETA:
  • Podaci o učenicima
  • Podaci o razredima
Za svaki od navedenih entiteta možemo definirati njegove atribute. —U entitetu Podaci o učenicima atributi su:
  • ime, prezime,
  • datum rođenja,
  • razredno odjeljenje
—U entitetu Podaci o razredima atributi su:
  • odjeljenje,
  • ime razrednika i
  • prezime razrednika
—Ovim smo kreirali jedan mogući MODEL za problem koji rješavamo. —Svaki entitet postaje jedna TABLICA, a atributi entiteta postaju stupci te tablice.


No ovim modelom nismo riješili sve. —Što s školskom godinom iz prve tablice? Ono što se javlja kao problem je:
  • Razrednici mijenjaju razrede
  • Učenici prelaze iz nižeg u viši razred
Dakle problem još moramo poopćiti. Dodat će mo još neke entitete i njima pripadne atribute i time ćemo naš problem riješiti. —Entiteti će biti:
  • Učenici (atributi: ime, prezime, datum rođenja)
  • Nastavnici (atributi: ime, prezime)
  • Školske godine (atribut: oznaka školske godine)
  • Razredi (odjeljenje, školska godina, razrednik)
Prema tom modelu dobili bi ove tablice:
Sada treba pogledati koji su najbolji načini za povezivanje tablica. O tome više u narednom poglavlju.