Projektovanje baze podataka je proces planiranja kako će se podaci čuvati, organizovati i povezivati. Pre nego što se napravi tabela u SQL Serveru, potrebno je razumeti koji se podaci beleže, kako su povezani i kako će se kasnije koristiti u aplikaciji.

Koraci prilikom projektovanja:
  1. Analiza problema – Šta se čuva u bazi? (npr. učenici, ocene, predmeti)

  2. Identifikacija entiteta – Entitet je „objekat“ o kome čuvamo podatke (npr. Učenik).

  3. Identifikacija atributa – To su osobine entiteta (Ime, Prezime, Razred…).

  4. Određivanje primarnog ključa – Jedinstvena vrednost za svaku stavku (npr. ID učenika).

  5. Određivanje odnosa – Kako su entiteti povezani (1:1, 1:N, N:M).

  6. Normalizacija – Uređivanje podataka tako da se ne ponavljaju nepotrebno.

Rezultat ovih koraka je model baze podataka koji se zatim pretvara u SQL skripte i tabele.


U nastavku je


Projektovanje baze podataka

Projektovanje baze podataka predstavlja jednu od najvažnijih faza izgradnje softverskog sistema. Do sada bi trebalo da učenici već znaju da pristupaju bazi podataka iz programskog jezika, izvršavaju upite i prikazuju rezultate u aplikaciji. Međutim, da bi baza mogla pravilno da funkcioniše u realnim uslovima, neophodno je razumevanje načina na koji se ona osmišlja i gradi od samog početka. Projektovanje zapravo određuje kako će podaci biti organizovani, povezani i zaštićeni, kako bi aplikacije koje se oslanjaju na tu bazu radile pouzdano i efikasno godinama.

Proces projektovanja započinje analizom domena, odnosno razumevanjem problema koji treba rešiti. Svaka oblast ima svoje specifičnosti – poslovna pravila, uloge korisnika, tipične aktivnosti i ograničenja – i sve to mora biti pretočeno u strukturu podataka. Na primer, ako se projektuje sistem studentske službe, potrebno je razumeti da jedan student može polagati više predmeta, da jedan profesor može predavati nekoliko različitih kurseva, da se ocene vezuju za studenta i predmet, a da se evidentira samo konačni rezultat. Ovako formulisana pravila kasnije se prevode u entitete, kao što su Student, Profesor, Predmet i PoloženIspit, i u njihove međusobne veze.

Na osnovu analize formira se model entiteta i veza – najčešće u obliku ER dijagrama. ER dijagram grafički prikazuje tabele, njihove kolone i odnose, ali i logiku sistema. U ovom dijagramu student i predmet su entiteti povezani preko tabele koja predstavlja ocenjivanje; profesor ima vezu sa predmetom koji predaje; ispitni rokovi su posebna celina. Na taj način se struktura baze formira pre nego što se ijedan SQL upit napiše. Učenici ovde prvi put uviđaju da dobra baza ne nastaje „automatski“ već se pažljivo dizajnira.

Kada se utvrdi osnovni model, prelazi se na normalizaciju podataka. Normalizacija je postupak kojim se podaci uređuju tako da iz baze nestanu suvišnosti, ponavljanja i skriveni logički problemi. Najvažnije normalne forme – prva, druga i treća – bi trebalo da se razumeju, iako su obrađivane u 2. razredu. U prvoj normalnoj formi svaka kolona mora sadržati isključivo jednu vrednost; u drugoj normalnoj formi sve kolone moraju zavisiti od celog primarnog ključa; u trećoj normalnoj formi kolone ne smeju međusobno zavisiti. Normalizacijom se osigurava da baza ostane konzistentna, da ne dolazi do suvišnih podataka i da se izbegnu problemi poput ažuriranja koje zahteva izmene na više mesta.

Nakon svega toga se prelazi na fizičko projektovanje baze. U ovoj fazi se biraju tipovi podataka, ograničenja i indeksi koji odgovaraju potrebama sistema. Odabir tipova podataka više nije slučajan: bira se NVARCHAR za tekst koji može sadržati specijalne znakove, INT za identifikatore, DATE za datume, BIT za logičke vrednosti i DECIMAL za brojeve sa decimalnom tačkom. Primarni ključevi obezbeđuju jedinstvenost svakog zapisa, a strani ključevi čuvaju referencijalni integritet između tabela. Obratite pažnju da fizička odluka o tome da li se, na primer, datum čuva kao DATE ili kao NVARCHAR direktno utiče na upotrebljivost baze i efikasnost aplikacije.

Projektovanje uključuje i prepoznavanje najčešćih grešaka koje početnici prave. To su, na primer, dupliranje podataka, izostavljanje primarnih ključeva, nepravilno definisan odnos između tabela, nekorišćenje stranih ključeva, kao i korišćenje neadekvatnih tipova podataka. Sve ove greške imaju dugoročne posledice: baza postaje spora, teško se održava, ažuriranja izazivaju greške, a programeri moraju pisati komplikovane upite da bi rešili probleme lošeg modela.

Projektovanje baze, dakle, nije samo crtanje tabela. To je proces razumevanja sistema, predviđanja problema i oblikovanja podataka tako da oni služe aplikacijama koje će se na njima zasnivati.


.... i   


1. Greške kod projektovanja baze podataka

1) Mešanje entiteta i atributa

Tipičan problem: učenici stave „Adresa“, „Broj telefona“ ili „Naziv škole“ kao posebne tabele iako to nisu entiteti već samo atributi.

Umesto toga može da se uporedi entitet sa „imenicom“, a atribut sa „osobinom te imenice“.

  • Učenik (entitet) → Ime, Prezime, Razred (atributi)
    Ako nešto ne može da postoji samostalno u sistemu – to nije entitet.


2) Pogrešan odabir primarnog ključa

Tipičan problem: učenici biraju nejedinstvene vrednosti (Ime, Prezime) ili podatke koji se mogu promeniti (Broj telefona) za primarni ključ.

Primarni ključ treba da bude:

  • jedinstven,
  • nepromenljiv,
  • jednostavan.
    Najbolji primer: ID koji aplikacija sama generiše.

3) Nepravilno postavljanje odnosa (1:N vs N:M)

Tipičan problem: učenici često misle da se svaka veza radi uz pomoć stranog ključa, čak i kada je odnos N:M.

Kratak trik:

  • Ako jedan može imati „više“ → 1:N, strani ključ ide u tabelu „više“.

  • Ako oba mogu imati više međusobno → N:M → pravimo posebnu tabelu veze.

Primer:
Učenik – Predmet → N:M → tabela: UcenikPredmet.

Poslednja izmena: уторак, 25. новембар 2025, 23:41