Tabela je v prvi normalni obliki, če so vsi njeni atributi atomarni - vsaka celica vsebuje le eno vrednost.
Primer:
| Predmet | Profesor | Smer |
|---|---|---|
| Seminar I | J. Moder | Pedagoška |
| Analiza III | B. Novak | Teoretična, Uporabna |
| Računalništvo II | K. Perko | Uporabna |
| Fizika | M. Jazbec | Pedagoška, Uporabna, Teoretična |
V stolpcu Smer se lahko pojavi več vrednosti - tabela ni v prvi normalni obliki!
| Predmet | Profesor |
|---|---|
| Seminar I | J. Moder |
| Analiza III | B. Novak |
| Računalništvo II | K. Perko |
| Fizika | M. Jazbec |
| Predmet |
Smer |
|---|---|
| Seminar I | Pedagoška |
| Analiza III | Teoretična |
| Analiza III | Uporabna |
| Računalništvo II | Uporabna |
| Fizika | Pedagoška |
| Fizika | Uporabna |
| Fizika | Teoretična |
Tabela je v drugi normalni obliki, če je v prvi normalni obliki in nima netrivialnih funkcijskih odvisnosti od prave podmnožice kakšnega kandidata za ključ.
Primer:
| Predmet | Profesor | Dan | Ura | Kabinet |
|---|---|---|---|---|
| Seminar I | J. Moder | Sreda | 10:00 | 23 |
| Analiza III | B. Novak | Četrtek | 12:00 | 34 |
| Računalništvo II | K. Perko | Sreda | 9:00 | 12 |
| Uvod v programiranje | K. Perko | Ponedeljek | 11:00 | 12 |
| Fizika | M. Jazbec | Torek | 14:00 | 17 |
Do težave pride, če npr. profesor zamenja kabinet - moramo popraviti povsod!
| Predmet | Profesor |
Dan | Ura |
|---|---|---|---|
| Seminar I | J. Moder | Sreda | 10:00 |
| Analiza III | B. Novak | Četrtek | 12:00 |
| Računalništvo II | K. Perko | Sreda | 9:00 |
| Uvod v programiranje | K. Perko | Ponedeljek | 11:00 |
| Fizika | M. Jazbec | Torek | 14:00 |
| Profesor | Kabinet |
|---|---|
| J. Moder | 23 |
| B. Novak | 34 |
| K. Perko | 12 |
| M. Jazbec | 17 |
V praksi je pogosto en sam kandidat za ključ, ta pa sestoji iz enega stolpca - taka tabela je že v drugi normalni obliki.
Tabela je v tretji normalni obliki, če je v drugi normalni obliki in nima tranzitivnih funkcijskih odvisnosti od kakšnega kandidata za ključ.
Primer:
| Predmet | Profesor | Dan | Ura | Kabinet |
|---|---|---|---|---|
| Seminar I | J. Moder | Sreda | 10:00 | 23 |
| Analiza III | B. Novak | Četrtek | 12:00 | 34 |
| Računalništvo II | K. Perko | Sreda | 9:00 | 12 |
| Uvod v programiranje | K. Perko | Ponedeljek | 11:00 | 12 |
| Fizika | M. Jazbec | Torek | 14:00 | 17 |
Spet bodo težave, če profesor zamenja kabinet.
| Predmet | Profesor |
Dan | Ura |
|---|---|---|---|
| Seminar I | J. Moder | Sreda | 10:00 |
| Analiza III | B. Novak | Četrtek | 12:00 |
| Računalništvo II | K. Perko | Sreda | 9:00 |
| Uvod v programiranje | K. Perko | Ponedeljek | 11:00 |
| Fizika | M. Jazbec | Torek | 14:00 |
| Profesor | Kabinet |
|---|---|
| J. Moder | 23 |
| B. Novak | 34 |
| K. Perko | 12 |
| M. Jazbec | 17 |
Običajno normaliziramo (vsaj) do tretje normalne oblike.
ER diagram:

Tri tabele:
Dodatne omejitve:
CREATE TABLE film (
id integer PRIMARY KEY AUTOINCREMENT,
naslov text NOT NULL,
leto integer NOT NULL CHECK (leto > 1900),
dolzina integer NOT NULL CHECK (dolzina > 0),
UNIQUE (naslov, leto)
);
CREATE TABLE dvorana (
id integer PRIMARY KEY AUTOINCREMENT,
kapaciteta integer NOT NULL CHECK (kapaciteta > 0)
);
CREATE TABLE spored (
id integer PRIMARY KEY AUTOINCREMENT,
film integer NOT NULL REFERENCES film(id),
dvorana integer NOT NULL REFERENCES dvorana(id),
termin datetime NOT NULL,
UNIQUE (dvorana, termin)
);