Iz 2.razreda -> Normalne forme u bazama podataka (1NF, 2NF i 3NF)
Imamo pitanje iz Pravilnika za Maturu:
Dopuniti sledeće rečenice
-
Ukoliko ni jedan atribut relacije nije viševrednosni, niti kompozitni, tj. ne može se rastaviti, kažemo da je relacija u ___________ normalnoj formi.
-
Ukoliko svi atributi relacije koji nisu deo ključa zavise od svakog atributa koji je deo ključa kažemo da je relacija u ___________ normalnoj formi.
-
Ukoliko svi neključni (sporedni) atributi relacije ne zavise od nekog drugog neključnog atributa, tj. ako ne postoji tranzitivna zavisnost bilo kog sporednog atributa od bilo kog ključa te relacije, kažemo da je relacija u ___________ normalnoj formi.
Nakon usmene provere znanja u vezi sa ovim pitanjima, pojavila se potreba da se dodatno objasne pojmovi.
U nastavku je ponovljeno gradivo iz 2.razreda:
Normalne forme u bazama podataka (1NF, 2NF i 3NF)
Uvod
Prilikom projektovanja baze podataka veoma je važno da podaci budu organizovani na pravilan način. Ako tabela nije dobro organizovana, mogu se pojaviti problemi kao što su:
-
ponavljanje istih podataka,
-
otežano ažuriranje podataka,
-
greške pri unosu,
-
nelogičnosti u bazi.
Da bi se izbegli ovi problemi koristi se normalizacija baze podataka.
Normalizacija predstavlja postupak organizovanja tabela i njihovih odnosa kako bi se smanjilo ponavljanje podataka i povećala efikasnost baze.
Tokom normalizacije relacije (tabele) prolaze kroz više nivoa organizacije koji se nazivaju normalne forme.
Najčešće se u srednjoškolskom programu obrađuju:
-
Prva normalna forma (1NF)
-
Druga normalna forma (2NF)
-
Treća normalna forma (3NF)
1. Prva normalna forma (1NF)
Relacija je u prvoj normalnoj formi (1NF) ako:
-
nema viševrednosnih atributa,
-
nema kompozitnih atributa,
-
svaki atribut sadrži samo jednu vrednost.
Drugim rečima, u jednom polju tabele ne sme biti više podataka odjednom.
Loš primer (nije u 1NF)
Tabela Ucenik
| ID | Ime | Telefoni |
|---|---|---|
| 1 | Marko | 064111111, 065222222 |
Problem je što atribut Telefoni sadrži više vrednosti.
Ispravan primer (1NF)
| ID | Ime | Telefon |
|---|---|---|
| 1 | Marko | 064111111 |
| 1 | Marko | 065222222 |
Sada svaki atribut sadrži samo jednu vrednost.
Pravilo za 1NF:
Jedno polje = jedna vrednost
2. Druga normalna forma (2NF)
Relacija je u drugoj normalnoj formi (2NF) ako:
-
već se nalazi u prvoj normalnoj formi, i
-
svi neključni atributi zavise od celog primarnog ključa, a ne samo od njegovog dela.
Ovo je posebno važno kada tabela ima složeni ključ (ključ sastavljen od više atributa).
Primer koji nije u 2NF
Tabela Ocene
| ID_Ucenika | ID_Predmeta | Ime_Ucenika | Naziv_Predmeta | Ocena |
|---|---|---|---|---|
| 1 | 10 | Marko | Matematika | 5 |
Pretpostavimo da je primarni ključ:
(ID_Ucenika, ID_Predmeta)
Problem:
-
Ime_Ucenika zavisi samo od ID_Ucenika
-
Naziv_Predmeta zavisi samo od ID_Predmeta
Dakle, ne zavise od celog ključa.
Tabela nije u 2NF.
Rešenje (prelazak u 2NF)
Ucenik
| ID_Ucenika | Ime_Ucenika |
|---|---|
| 1 | Marko |
Predmet
| ID_Predmeta | Naziv_Predmeta |
|---|---|
| 10 | Matematika |
Ocene
| ID_Ucenika | ID_Predmeta | Ocena |
|---|---|---|
| 1 | 10 | 5 |
Sada svi atributi zavise od celog ključa.
Pravilo za 2NF:
Ne sme postojati parcijalna zavisnost od ključa.
3. Treća normalna forma (3NF)
Relacija je u trećoj normalnoj formi (3NF) ako:
-
nalazi se u drugoj normalnoj formi, i
-
ne postoje tranzitivne zavisnosti.
To znači da neključni atribut ne sme zavisiti od drugog neključnog atributa.
Primer koji nije u 3NF
Tabela Zaposleni
| ID_Zaposlenog | Ime | ID_Odeljenja | Naziv_Odeljenja |
|---|---|---|---|
| 1 | Ana | 5 | Računovodstvo |
Problem:
-
Naziv_Odeljenja zavisi od ID_Odeljenja
-
a ID_Odeljenja nije ključ.
Dakle:
ID_Zaposlenog → ID_Odeljenja → Naziv_Odeljenja
Postoji tranzitivna zavisnost.
Tabela nije u 3NF.
Rešenje (prelazak u 3NF)
Zaposleni
| ID_Zaposlenog | Ime | ID_Odeljenja |
|---|---|---|
| 1 | Ana | 5 |
Odeljenje
| ID_Odeljenja | Naziv_Odeljenja |
|---|---|
| 5 | Računovodstvo |
Sada više nema tranzitivne zavisnosti.
Pravilo za 3NF:
Neključni atribut ne sme zavisiti od drugog neključnog atributa.
Pregled normalnih formi
| Normalna forma | Osnovno pravilo |
|---|---|
| 1NF | Nema viševrednosnih i kompozitnih atributa |
| 2NF | Svi neključni atributi zavise od celog ključa |
| 3NF | Nema tranzitivnih zavisnosti |
Kako lako zapamtiti?
-
1NF → „Jedno polje = jedna vrednost“
-
2NF → „Sve mora zavisiti od celog ključa“
-
3NF → „Neključni atributi ne smeju zavisiti jedni od drugih“
Zaključak
Normalne forme služe da baza podataka bude pravilno organizovana i da se izbegne nepotrebno ponavljanje podataka. Korišćenjem prve, druge i treće normalne forme smanjuje se mogućnost grešaka i olakšava održavanje baze podataka.
Prilikom projektovanja baze podataka potrebno je prvo obezbediti da tabela bude u 1NF, zatim proveriti 2NF, a na kraju i 3NF.