Osnovna ideja relacionog modela je jasno razdvajanje logičkog i fizičkog aspekta prikazivanja podataka.
Pri razvoju relacionih modela podataka postavljena su tri cilja:
Prema Kodovim rečima: „Najvažniji motiv istraživačkog rada, koji je rezultovao u relacionom modelu, bio je postizanje oštre i jasne granice između logičkih i fizičkih aspekata upravljanja bazom podataka”. Ovo istraživanje Kod je nazvao nezavisnošću podataka. U dosadašnjim SUBP, opis podataka je bio preplavljen informacijama o karakteristikama fizičke strukture podataka. Odnosno, u svaki aplikativni program bila je ugrađena informacija o fizičkoj strukturi.
Pojam fizičke strukture podataka odnosi se na sve aspekte tzv. interne prezentacije podataka, kao i na mehanizme pristupa podacima.
Ključ za razumevanje osnovne ideje relacionog modela leži u razumevanju pojma nezavisnosti podatka, koje se postiže potpunim razdvajanjem oblika u kojem se podaci prezentiranju programu ili korisniku (logički aspekt), od oblika u kojem se ti podaci memorišu u bazi podataka (fizički aspekt).
Za formalnu definiciju strukture relacionih modela, koriste se sledeći matematički pojmovi:
Pojam skupa je osnovni pojam u matematici i on se formalno definiše. Neformalno se može reći da je skup “objedinjavanje nekog mnoštva elemenata u celinu”. Skup elemenata x,y,z,...,v se može označiti S={x,z,y,…,v}. Ovakav opis skupa, opis u kome se navode svi njegovi elementi, naziva se ekstenzija skupa i može se primeniti samo na skupove sa konačnim brojem elemenata. Skup se može opisati i navođenjem osobina koje svaki njegov element mora da zadovolji. Ovakav opis skupa se naziva intenzija skupa i piše se: S=x | P(x)}, gde je P(x) uslov koji svi elementi treba da zadovolje.
Definicija: Skupom se naziva svaka kolekcija objekata koja ispunjava sledeća dva uslova:
Neka je data kolekcija skupova D1, D2, ..., Dn (ne moraju biti različiti). Dekartov proizvod ovih n skupova D1 x D2 x ... x Dn je skup svih mogućih uređenih n-torki (d1,d2,...,dn), tako da je d1 ∈ D1, d2 ∈ D2, dn ∈ Dn.
Primer:
A={1,2,3,4}, B={4,6,8},
A x B = {(1,4), (1,6), (1,8), (2,4), (2,6), (2,8), (3,4), (3,6), (3,8), (4,4), (4,6), (4,8)}.
Definicija: Proizvodom skupova A i B naziva se skup svih uređenih parova čije su prve komponente elementi skupa A, a druge komponente elementi skupa B.
Relacija
Relacija definisana na n skupova je podskup Dekartovog proizvoda tih n skupova:
R ⊆ D1 x D2 x ... Dn
Podskup R sadrži one n-torke Dekartovog proizvoda koje zadovoljavaju zadatu relaciju.
Primer:
A={1,2,3,4}, B={4,6,8}, i neka je zadata relacija R⊆AxB={(a,b) | a=b/2}
R={(2,4), (3,6), (4,8)}
Skupovi D1, D2, ..., Dn se nazivaju domenima relacije R.
R ⊆ BrInd x Ime x Starost = {(001,Milos,19), (007,Ana,19), 035,Ana,22)}
u njoj je bitno da prvi element trojke uzima vrednost iz prvog, drugi iz drugog, a treći iz trećeg skupa. Ako vrednostima elemenata u n-torkama pridružimo imena domena, redosled elemenata u n-torkama više neće imati značaja.
Student ⊆ BrInd x Ime x Starost = {(Brind:001, Ime:Milos, Starost:19), (Ime:Ana, BrInd:007, Starost:19), (BrInd:035,Starost>22,Ime:Ana)}
Atribut relacije se formalno može definisati kao par (naziv domena, vrednost domena).
Primer:
(Ime,Ana)
Preko imena se definišu uloga domena u relaciji i često se to ime naziva atribut relacije. Kaže se da su atribute relacije Student BrInd, Ime i Starost.
Bitno je da naziv domena govori o ulozi koju domen ima u relaciji. Uslovi koje tabela treba da zadovolji da bi bila relacija:
1. ne postoji duplikat vrste tabele,
2. redosled vrsta nije značajan,
3. redosled kolona nije značajan.
Pored toga da bi se definisao jednostavan skup operacija nad relacijama definiše se sledeći dodatni uslov:
4. sve vrednosti atributa u relacijama su atomske.
Ako relacija zadovoljava ovaj uslov, tada je ona u prvoj normalnoj formi (1NF).
Termin normalizovana relacija se koristi za relacije u prvoj normalnoj formi.
Slika 1
Primer
Relacija (tabela) Prijava, zapisana u ovom obliku nije normalizovana, jer atributi NazivPred i Ocena predstavljaju “grupu sa ponavljanjem”. Relacija Prijava se može dovesti u prvu normalnu formu, “ravnanjem” tabele uvodeći redundansu Podataka. Uobičajeno je da se relacije predstavljaju na sledeći način:
Student(BrInd,Ime,Starost)
Prijava(BrInd,Ime,NazivPred,Ocena)
Domeni se mogu definisati i kao skupovi iz kojih atributi relacije uzimaju svoje vrednosti.
Domeni se dele na:
Činjenica da su sve n-torke u relaciji različite, govori da postoji jedan atribut ili više atributa zajedno (u krajnjem slučaju svi zajedno) čije vrednosti jeinstveno identifikuju jednu n-torku u relaciji (jednu vrstu u tabeli). Taj atribut ili grupa atributa se naziva ključem relacije (jedan atribut – prost ključ, grupa atributa – složen ključ). Ključ relacije se formalno definiše na sledeći način:
Ključ relacije R je takva kolekcija K njenih atributa koja zadovoljava sledeća dva uslova, poznata pod imenom osobina jedinstvenosti i osobina neredudantnosti:
U jednoj relaciji postoje više različitih kolekcija K atributa koje zadovoljavaju definiciju ključa. Jedan od kandidata koji se izabere za identifikaciju n-torke naziva se primarni ključ, ostali (neizabani) kandidati se nazivaju alternativnim ključevima.
Primarni ključ se u relaciji (šemi relacije) podvlači.
Student(BrInd, Ime, Starost)
Spoljni ključ je atribut ili grupa atributa u relaciji R1 koji u njoj nije primarni ključ, ali je primarni ključ u nekoj drugoj relaciji. Vrednost spoljneg ključa se koristi za povezivanje sa vrednošću primarnog ključa u odgovarajućoj relaciji R2.
Neka je R2 bazna relacija. Spoljni ključ SK u R2 je podskup njenih atributa takav da:
Relaciona baza podataka je kolekcija vremenski promenljivih relacija. Iskaz “vremenskih promenljivih” koristi se da ukaže na činjenicu da se vrednosti atributa u bazi podataka menjaju. Možemo razlikovati pojam šema relacione baze podataka i samu relacionu bazu podataka. Šema relacine baze podataka definiše strukturu baze, dok je sama baza podataka predstavljena skupom tabela čije su strukture opisane u šemi baze.
Šema relacione baze podataka:
Student(BrInd, Mlb, Ime, Starost, SifSmer)
Predmet(SifPred, NazivPred, BrojCasova)
Prijava(BrInd, Sifred, DatumPol, Ocena)
Smer(SidSmer, NazivSmera, SN)
Nastavnik(SN, ImeNast, Zvanje, SifPred)
Relacije u nekoj bazi podataka mogu se podeliti na “bazne” i “izvedene”.