Osnovna ideja relacionog modela je jasno razdvajanje logičkog i fizičkog aspekta prikazivanja podataka.
Pri razvoju relacionih modela podataka postavljena su tri cilja:
- Nezavisnost – Uvođenje jasne granice između logičkih i fizičkih aspekata baze podataka, kako u domenu projektovanja tako i u domenu korišćenja.
- Strukturalna jednostavnost – odnosno, struktura modela treba da bude veoma jednostavna, prihvatljiva svakom korisniku, jer relaciona baza podataka predstavlja skup jednostavnih (ravnih) tabela. Operacije koje iz skupa tabela generišu izlaz (takođe neku tabelu) su jednostavne i lako prihvatljive. Jednostavna struktura i jednostavne operacije su osnova za definisanje jednostavnog jezika za komunikaciju.
-
Formalno-matematička interpretacija tabela – Određene vrste tabela se mogu tretirati kao matematičke relacije i na taj način može se iskoristiti bogata teorijska osnova odgovarajućeg matematičkog aparata za razvoj jezika baza podataka i metodologije projektovanja relacionih baza podataka.
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).
Relacioni model podataka (RM) – Definicija
Za formalnu definiciju strukture relacionih modela, koriste se sledeći matematički pojmovi:
Skup
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:
-
svi objekti koje ona sadrži su savršeno dobro definisani i
-
pripadanje, a takođe i nepripadanje, nekog objekta ovoj kolekciji definisano je bez ikakve dvosmislenosti.
Dekartov (Kartezijanski) proizvod skupova
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.
Struktura relacionih modela podataka
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)}
Domen relacije
Skupovi D1, D2, …, Dn se nazivaju domenima relacije R.
-
Stepen relacije – Broj domena na kojima je definisana neka relacija se naziva stepen relacije. Razlikujemo unarne (na jednom domenu), binarne (na dva domena) i n-arne relacije.
- Kardinalnost relacije – je broj n-torki u relaciji.
-
Atribut relacije – Kako je Dekartov proizvod skup uređenih n-torki, redosled elemenata u jednoj n-torki je bitan. Na primer, ako nad domenima BrInd={001,007,035}, Ime={Miloš,Ana}, Starost={19,22} definišemo relaciju 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)}
Relacioni model (RM) – Atribut relacije
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.
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)
Relacioni model (RM) – Domeni relacije
Domeni se mogu definisati i kao skupovi iz kojih atributi relacije uzimaju svoje vrednosti.
Domeni se dele na:
- Predefinisane domene, domene koji postoje u jezicima baze podataka. Predefinisani domeni su ekvivalentni predefinisanim (ugrađenim) tipovima podataka u programskim jezicima. Primeri predefinisanih domena su skup celih brojeva (Integer), skup nizova karaktera (String).
-
Semantičke domene, koje korisnik definiše nad predefinisanim ili prethodno definisanim semantičkim domenima ugrađujući u definiciju neko ograničenje i dajući im na taj način određeno značenje, zbog čega se i nazivaju “semantički”. Semantički domeni se još nazivaju i apstraktnim ili korisnički definisanim domenima. Semantički domeni su apstraktni tipovi podataka, odnosno objekti koje definiše korisnik.
Atributi relacija bi trebalo uvek da budu definisani nad semantičkim domenima, jer samo tako korisnik može imati punu kontrolu u izvršavanju operacija nad bazom podataka.
Relacioni model (RM) – Ključevi relacije
Č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:
- Osobina jedinstvenosti. Ne postoje bilo koje dve n-torke sa istom vrednošću K.
- Osobina neredundantnosti. Ako se bilo koji atribut izostavi iz K, gubi se osobina jedinstvenosti.
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:
-
Postoji bazna relacija R1 sa kandidatom za ključ KK i
-
svaka vrednost SK u relaciji R2 jednaka je nekoj vrednosti KK u relaciji R1 ili je nula vrednost.
Šema relacione baze podataka i relaciona baza
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”.
- Izvedena relacija (pogled) je relacija koja se može izvesti iz skupa datih baznih i izvedenih relacija, preko operacija koja se definišu nad relacijama. DobriStudenti (BrInd, Ime, NazivSmera, NazivPred, Ocena) u kojoj su navedeni svi studenti, koji su svoje ispite položili s ocenoma većim ili jednakim 8 i nazivima predmeta i ocenama koje su iz njih dobili.
-
Bazna relacija je relacija koja se ne može izvesti iz ostalih relacija u relacionoj bazi podataka i čuva se u bazi podataka.