Prva normalna oblika
Prva normalna oblika (1NO ali prva normalna forma - 1NF) je najnižja normalna oblika pri normalizaciji podatkovne baze. Da bi zadoščala 1NO, mora tabela relacijske podatkovne baze spoštovati neki minimalni množici pravil. Pravilno bi bilo uporabiti pojme relacija, n-terica in atribut, vendar bomo zaradi lažjega razumevanja uporabljali pojme tabela, vrstica in stolpec.

Definicija 1NO 

Date pravi, da je tabela v 1NO le, če je isomorfična relacija, kar pomeni, za zadošča naslednjim petim pravilom.

1. Ni razvrščanja vrstic od zgoraj navzdol.
2. Ni razvrščanja stolpcev od leve proti desni.
3. Ni ponavljajočih vrstic.
4. V preseku vsake vrstice in vsakega stolpca, je natanko ena vrednost iz uporabljive domene (in nič drugega).
5. Vsi stolpci so regularni [npr. Vrstice nimajo skritih komponent, kot so oznaka vrstice, oznaka objekta ali skriti časovni žig]. 

Edgar F. Codd: "Relacija je v prvi normalni obliki, če … nobena njena domena ne vsebuje elementov, ki so sami množice. Nenormalizirana relacija je taka, ki ni v prvi normalni obliki."

Raghu Ramakrishnan in Johannes Gehrke: "Relacija je v prvi normalni obliki, če vsako polje vsebuje samo atomarne vrednosti, to je, brez seznamov ali množic."

Opozoriti je treba, da Dateovo 4. pravilo zahteva natanko eno vrednost v vsaki celici. Zato opozarja, da celica ne sme biti prazna (null), kar je v nasprotju z Coddovim prvotnim pogledom na relacijski model, ki izrecno dovoljuje prazne celice.

Atomarnost 

Nekatere definicije 1NO (predvsem Edgar F. Codd) omenjajo pojem atomarnosti. Codd pravi: "Vrednosti v domenah, na katerih je definirana vsaka relacija, morajo biti atomarne v primerjavi z SUPB." Codd definira: "Atomarna vrednost je vrednost, ki je SUPB ne more razčleniti na manjše dele (če izključimo posebne funkcije)."

Koncept "atomarne vrednosti" je nekaterim avtorjem dvoumen koncept, ta dvoumnost pa je povzročila zmedo o tem, kako razumeti 1NO. Predvsem je problematična "vrednost, ki je SUPB ne more razčleniti", saj to bi pomenilo, da je redko katera, če sploh katera vrsta podatka atomarna:
 Niz znakov kaže, da ni atomarna, saj SUPB po navadi ponuja operatorje, ki razčlenijo nize na podnize.
 Datum ne zgleda atomaren, saj SUPB ponuja operatorje, ki razčlenijo datum na dan, mesec in leto.
 Itd...

Date pravi, da pojem atomarnosti nima absolutnega pomena. Vrednosti si lahko predstavljamo atomarno v nekaterih primerih, v drugih primerih pa si jih lahko predstavljamo kot sestav več osnovnih elementov v različnih primerih. Tudi množico si lahko predstavljamo kot posamezno vrednost v določeni meri abstrakcije. Če to sprejmemo, 1NO ne more biti definirana s pomočjo atomarnosti. Zato Date dovoljuje, da tabele vsebujejo tabele in v ta namen omeni pojem relacijsko-vrednotenih atributov (RVA).

Ponavljajoče skupine 

Koncept "ponavljajočih skupin" različni teoretiki razumejo različno. Iz tega sledi, da ni univerzalnega dogovora o tem, katere lastnosti izključujejo tabelo, da bi bila v 1NO. Nekateri avtorji (npr.Edgar F. Codd) izkjučujejo relacijsko-vrednotene atribute (tabele v tabelah), medtem ko jih drugi dovoljujejo (npr. Chris Date) . 

Dateovo 4. pravilo, govori o ponavljajočih skupinah. Naslednji primeri prikazujejo različno načrtovane podatkovne baze, ki vsebujejo ponavljajoče skupine in kršijo 1NO.

Primer 1 

Predstavljamo si, da želimo hraniti podatke o opravljenih izpitih za študente na naslednji način.

Nato ugotovimo, da se bo s časom število opravljenih izpitov povečalo. Odločimo se, da se tem težavam izognemo tako, da v polje "Opravljen izpit" dodamo več kot eno vrednost.

Predpostavimo, da smo pri načrtovanju stolpca "Opravljen izpit" izbrali za domeno niz z največ 7 znaki. Tabela zato ni več v 1NO, saj tako 1NO kot SUPB prepoveduje, da bi celica vsebovala več kot eno vrednost iz domene stolpca.

Recimo, da se  poskušamo izogniti tej težavi in spremenimo domeno stolpca "Opravljen izpit" tako, da bo mogoče vnesti v celice več kot samo eno vrednost. To sedaj ni več skladno z 1NO in predstavlja več težav v načrtovanju. Opravljen izpit lahko zdaj predstavlja en sam opravljen izpit, seznam izpitov, oziroma nasploh karkoli. Na tak način je zelo težko pisati poizvedbe, s katerimi bi npr. iskali, kateri študenti so opravili isti izpit.

Primer 2 

Recimo, da se zdaj odločimo, da bomo uporabili več stolpcev, v katerih bomo hranili opravljene izpite.

Taka zasnova uporablja neobvezne stolpce, kar je v nasprotju z Dateovo definicijo 1NO, saj vsebuje neobvezne stolpce (null). Tudi če dovolimo neobvezne stolpce, ne ustrezamo duhu 1NO, saj imajo "Opravljen izpit 1", "Opravljen izpit 2" in "Opravljen izpit 3" isto domeno in enak pomen. To nas lahko privede do nekaterih logičnih težav npr.
 Ne moremo zahtevati od sistema za upravljanje relacijske podatkovne baze, da bi bili opravljeni izpiti pri posameznem študentu obvezno drugačni. Npr. študentu bi lahko po pomoti dali "opravljen izpit 2", ki bi bil enak "opravljenemu izpitu 1".
 Omejeni smo na maksimalno 3 opravljene izpite. Če je študent opravil 4 izpite, moramo dodati nov stolpec.

Zasnova tabele, ki zadošča 1NO 

Če želimo neko tabelo prevesti v 1NO, moramo:
 odstraniti ponavljajoče atribute,
 določiti funkcionalne odvisnosti,
 določiti primarni ključ

Zasnova, ki je nedvoumno v 1NO, uporablja 2 tabeli.

Ponavljajoče skupine vpisnih številk se v tej zasnovi ne ponavljajo. Namesto tega, se vsaka povezava študenta z opravljenim izpitom pojavi kot nov zapis.

Višje normalne oblike 

Tabela, ki je v neki normalni obliki, je po definiciji tudi v vseh nižjih normalnih oblikah, obratno pa ni nujno. Torej je tabela v 1NO lahko ali ne v 2NO, tabela v 2NO je lahko ali ne v 3NO itn.

Višje normalne oblike nam ponujajo manj redundance, boljšo učinkovitost ter zaščitijo podatkovno bazo pred raznimi logičnimi nekonsistentnostmi, ki so posledica brisanja, dodajanja ali spreminjanja podatkov.

Primarni ključ tabele je {Vpisna številka, opravljen izpit}.

Če se Marija poroči in zamenja priimek, moramo spremeniti dve vrstici. Če se sprememba zgodi le na eni vrstici, imamo težave v primeru, da iščemo študenta z vpisno številko 63010281, saj dobimo 2 različna rezultata. 2NO odpravlja to težavo.

Reference

Glej tudi 
 normalizacija

Podatkovne zbirke
Prva normalna oblikaO ali prva normalna forma - F ) je najnižja normalna oblika pri normalizaciji podatkovne baze . Da bi zadoščalaO , mora tabela relacijske podatkovne baze spoštovati neki minimalni množici pravil . Pravilno bi bilo uporabiti pojme relacija , n - terica in atribut , vendar bomo zaradi lažjega razumevanja uporabljali pojme tabela , vrstica in stolpec . DefinicijaO Date pravi , da je tabela vO le , če je isomorfična relacija , kar pomeni , za zadošča naslednjim petim pravilom . 1. Ni razvrščanja vrstic od zgoraj navzdol . 2. Ni razvrščanja stolpcev od leve proti desni . 3. Ni ponavljajočih vrstic . 4. V preseku vsake vrstice in vsakega stolpca , je natanko ena vrednost iz uporabljive domene ( in nič drugega ) . 5. Vsi stolpci so regularni [ npr. Vrstice nimajo skritih komponent , kot so oznaka vrstice , oznaka objekta ali skriti časovni žig ] . Edgar F. Codd : " Relacija je v prvi normalni obliki , če … nobena njena domena ne vsebuje elementov , ki so sami množice . Nenormalizirana relacija je taka , ki ni v prvi normalni obliki . " Raghu Ramakrishnan in Johannes Gehrke : " Relacija je v prvi normalni obliki , če vsako polje vsebuje samo atomarne vrednosti , to je , brez seznamov ali množic . " Opozoriti je treba , da Dateovo pravilo zahteva natanko eno vrednost v vsaki celici . Zato opozarja , da celica ne sme biti prazna ( null ) , kar je v nasprotju z Coddovim prvotnim pogledom na relacijski model , ki izrecno dovoljuje prazne celice . Atomarnost Nekatere definicijeO ( predvsem Edgar F. Codd ) omenjajo pojem atomarnosti . Codd pravi : " Vrednosti v domenah , na katerih je definirana vsaka relacija , morajo biti atomarne v primerjavi z SUPB . " Codd definira : " Atomarna vrednost je vrednost , ki je SUPB ne more razčleniti na manjše dele ( če izključimo posebne funkcije ) . " Koncept " atomarne vrednosti " je nekaterim avtorjem dvoumen koncept , ta dvoumnost pa je povzročila zmedo o tem , kako razumetiO. Predvsem je problematična " vrednost , ki je SUPB ne more razčleniti " , saj to bi pomenilo , da je redko katera , če sploh katera vrsta podatka atomarna : Niz znakov kaže , da ni atomarna , saj SUPB po navadi ponuja operatorje , ki razčlenijo nize na podnize . Datum ne zgleda atomaren , saj SUPB ponuja operatorje , ki razčlenijo datum na dan , mesec in leto . Itd . . . Date pravi , da pojem atomarnosti nima absolutnega pomena . Vrednosti si lahko predstavljamo atomarno v nekaterih primerih , v drugih primerih pa si jih lahko predstavljamo kot sestav več osnovnih elementov v različnih primerih . Tudi množico si lahko predstavljamo kot posamezno vrednost v določeni meri abstrakcije . Če to sprejmemo ,O ne more biti definirana s pomočjo atomarnosti . Zato Date dovoljuje , da tabele vsebujejo tabele in v ta namen omeni pojem relacijsko - vrednotenih atributov ( RVA ) . Ponavljajoče skupine Koncept " ponavljajočih skupin " različni teoretiki razumejo različno . Iz tega sledi , da ni univerzalnega dogovora o tem , katere lastnosti izključujejo tabelo , da bi bila vO. Nekateri avtorji ( npr.Edgar F. Codd ) izkjučujejo relacijsko - vrednotene atribute ( tabele v tabelah ) , medtem ko jih drugi dovoljujejo ( npr. Chris Date ) \ . Dateovo pravilo , govori o ponavljajočih skupinah . Naslednji primeri prikazujejo različno načrtovane podatkovne baze , ki vsebujejo ponavljajoče skupine in kršijoO. Primer Predstavljamo si , da želimo hraniti podatke o opravljenih izpitih za študente na naslednji način . Nato ugotovimo , da se bo s časom število opravljenih izpitov povečalo . Odločimo se , da se tem težavam izognemo tako , da v polje " Opravljen izpit " dodamo več kot eno vrednost . Predpostavimo , da smo pri načrtovanju stolpca " Opravljen izpit " izbrali za domeno niz z največznaki . Tabela zato ni več vO , saj takoO kot SUPB prepoveduje , da bi celica vsebovala več kot eno vrednost iz domene stolpca . Recimo , da se poskušamo izogniti tej težavi in spremenimo domeno stolpca " Opravljen izpit " tako , da bo mogoče vnesti v celice več kot samo eno vrednost . To sedaj ni več skladno zO in predstavlja več težav v načrtovanju . Opravljen izpit lahko zdaj predstavlja en sam opravljen izpit , seznam izpitov , oziroma nasploh karkoli . Na tak način je zelo težko pisati poizvedbe , s katerimi bi npr. iskali , kateri študenti so opravili isti izpit . Primer Recimo , da se zdaj odločimo , da bomo uporabili več stolpcev , v katerih bomo hranili opravljene izpite . Taka zasnova uporablja neobvezne stolpce , kar je v nasprotju z Dateovo definicijoO , saj vsebuje neobvezne stolpce ( null ) . Tudi če dovolimo neobvezne stolpce , ne ustrezamo duhuO , saj imajo " Opravljen izpit , " Opravljen izpit in " Opravljen izpit isto domeno in enak pomen . To nas lahko privede do nekaterih logičnih težav npr. Ne moremo zahtevati od sistema za upravljanje relacijske podatkovne baze , da bi bili opravljeni izpiti pri posameznem študentu obvezno drugačni . Npr. študentu bi lahko po pomoti dali " opravljen izpit , ki bi bil enak " opravljenemu izpitu . Omejeni smo na maksimalnoopravljene izpite . Če je študent opravilizpite , moramo dodati nov stolpec . Zasnova tabele , ki zadoščaO Če želimo neko tabelo prevesti vO , moramo : odstraniti ponavljajoče atribute , določiti funkcionalne odvisnosti , določiti primarni ključ Zasnova , ki je nedvoumno vO , uporabljatabeli . Ponavljajoče skupine vpisnih številk se v tej zasnovi ne ponavljajo . Namesto tega , se vsaka povezava študenta z opravljenim izpitom pojavi kot nov zapis . Višje normalne oblike Tabela , ki je v neki normalni obliki , je po definiciji tudi v vseh nižjih normalnih oblikah , obratno pa ni nujno . Torej je tabela vO lahko ali ne vO , tabela vO je lahko ali ne vO itn . Višje normalne oblike nam ponujajo manj redundance , boljšo učinkovitost ter zaščitijo podatkovno bazo pred raznimi logičnimi nekonsistentnostmi , ki so posledica brisanja , dodajanja ali spreminjanja podatkov . Primarni ključ tabele je { Vpisna številka , opravljen izpit } . Če se Marija poroči in zamenja priimek , moramo spremeniti dve vrstici . Če se sprememba zgodi le na eni vrstici , imamo težave v primeru , da iščemo študenta z vpisno številko saj dobimorazlična rezultata . O odpravlja to težavo . Reference Glej tudi normalizacija Podatkovne zbirke