Professional Documents
Culture Documents
T1 2 Modeli UvodBP PDF
T1 2 Modeli UvodBP PDF
Sadržaj
Modeliranje i simulacija ................................................................................................................................. 1
1.1 Terminolgija: Šta je ustvari model .......................................................................................................... 1
1.1.1 Pojam sistema i realnog sistema ........................................................................................................... 1
1.1.2 Odnos modela, realnog sistema i teorije ............................................................................................... 2
1.1.3 Cilj modeliranja .................................................................................................................................... 3
1.1.4 Procedure modeliranja .......................................................................................................................... 4
1.2 Metodologija i klasifikacija modela ........................................................................................................ 4
1.3 Podjela modela na osnovu formalizma i detaljnosti ................................................................................ 5
1.1.1 Neformalni opis modela ................................................................................................................... 5
1.1.2 Formalni opis modela ....................................................................................................................... 5
1.1.3 Savršeni i referentni modeli .............................................................................................................. 5
1.4 Formalna podjela modela ........................................................................................................................ 6
1.4.1 Fizički modeli ................................................................................................................................... 6
1.4.2 Apstraktni modeli ............................................................................................................................. 7
1.4.2.1 Opisni (verbalni) modeli................................................................................................................ 8
1.4.2.2 Analogni modeli ............................................................................................................................ 8
1.4.2.3 Matematčki modeli ....................................................................................................................... 9
1.4.2.4 Konceptualni modeli...................................................................................................................... 9
1.4.2.5 Računarski i simulacioni modeli ..................................................................................................10
1.5 Simulacija ...................................................................................................................................................11
1.5.1 Šta je simulacija ...................................................................................................................................11
1.5.2 Modeliranje i simulacija ......................................................................................................................11
1.5.3 Životni ciklus simulacije: Koraci simulacionih procesa ......................................................................12
1.5.4 Objedinjeni jezik modeliranja – UML......................................................................................13
1.6 Simulacija dinamičkih sistema ...............................................................................................................14
1.6.1 Statički i dinamički sistemi..............................................................................................................14
1.6.2 Deterministički i stohastički sistemi ................................................................................................15
1.7 Vrste analize modela ..............................................................................................................................15
1.8 Razvoj modeliranja i simulacije .............................................................................................................16
1.9 Kratki pregled razvoja modela baza podataka ........................................................................................18
1.9.1 Davna istorija...................................................................................................................................18
1.9.2 Istorija: Vrijeme dokazivanja ..........................................................................................................18
1.9.3 Vrijeme stvaranja standarda ............................................................................................................18
1.9.4 Moderna vremena ............................................................................................................................19
Modeli i baze podataka
2. Sistem za upravljanje bazom podataka – Uvod- .....................................................................................20
2.1 Šta su to baze podataka ..........................................................................................................................20
2.1.1 Sistem za upravljanje bazom podataka ...........................................................................................20
2.1.2 Podatak i informacija ......................................................................................................................21
2.1.3 Entiteti i atributi ..............................................................................................................................21
2.1.4 Domen atributa ...............................................................................................................................22
2.2 Arhitektura baze podataka i njeno predstavljanje šemama ....................................................................22
2.3 Jezici za upravljanje bazama podataka...................................................................................................23
2.3.1 Softverski paketi za rad s bazama podataka ...................................................................................24
2.3.2 Životni ciklus baze podataka ..........................................................................................................24
2.3.2.1 Analiza potreba ............................................................................................................................25
2.3.2.2 Modeliranje podataka ..................................................................................................................25
2.3.2.3 Implementacija.............................................................................................................................25
2.3.2.4 Testiranje .....................................................................................................................................25
2.3.2.5 Održavanje ...................................................................................................................................25
2.4 Apstrakcija i šeme za modeliranje baze podataka ..................................................................................26
2.5. Relacioni model ................................................................................................................................27
2.5.1 Modeli baze podataka .....................................................................................................................27
2.5.2 Vrste modela baza podataka ...........................................................................................................27
2.5.2.1 Ravni (tabelarni) model ...............................................................................................................28
2.5.2.2 Hijerarhijski model podataka .......................................................................................................28
2.5.2.3 Mrežni model podataka ...............................................................................................................28
2.6 Pojam relacije i relacione baze ...............................................................................................................29
2.6.1 Šema relacije: Relaciona tabela i Šema relacione baze ..................................................................30
2.6.2 Predstavljanje relacija i šema relacija .............................................................................................30
2.6.3 Osnovne osobine koje treba da ima relacioni model .....................................................................31
2.6.3.1 Zadatak: uvod u kreiranje relacionog modela ..............................................................................31
2.7 Kandidati za ključ i primarni ključ .........................................................................................................32
2.8 Veze kod relacionog modela baze ..........................................................................................................33
2.9 Kardinalnost entiteta ............................................................................................................................34
2.10 Dvanaest pravila koji određuju relacioni sistem (Je li Kod sujevjeran?) .............................................35
2.10.1 Sistemski tretman „NULL“ vrijednosti ........................................................................................36
2.10.2 Neprekidan pristup dinamičkom katalogu relacionog modela .....................................................36
2.10.3 Fizička nezavisnost .......................................................................................................................37
2.10.4 Logička nezavisnost ......................................................................................................................37
2.10.5 Integritetska nezavisnost ...............................................................................................................37
2.11 Tabelarna terminologija .......................................................................................................................38
Modeli i baze podataka
Modeliranje i simulacija
Modeliranje i simulacija
Model je francuska riječ (modéle), koja se pojavljuje u sličnom obliku u većini evropskih jezika: njemački
modell, italijanski modello, španski modelo, ruski модель.
Originalno, riječ vuče korjene od latinskih riječi modellus tj. modulus (mjera, standard) i modus (način,
mjera).
Prema Rječniku Oxford 2012 model je: „Osoba ili predmet koja se smatra za izuzetan primjer nečega1“.
“Umanjena slika planiranog ili postojećeg objekta”
Webster New World Dictionary
“Matematički ili fizički sistem koji podleže specifičnim pravilima, a koristi se za razumijevanje fizičkih,
bioloških i društvenih sistema sa kojima je u određenoj analogiji”
McGraw-Hill Dictionary of Scientific and Technical Terms
Čak ni opšta teorija sistema (General systems theory) kojoj je pojam sistem polazni i bazični element, nema
jedinstvenu definiciju pojma sistema već nudi više definicija. Za našu analizu ćemo uzeti najjednostavniju
koja kaže:
Sistem je uređeni skup elemenata.
Kako postoje (često) i neuređeni sistemi možemo naglasiti da su neki objekti ili pojave sređeni: Sistem je
skup objekata (realnih ili apstraktnih) koji čine cjelinu, gdje je svaki element koji čini objekt, zavisan i ima
vezu sa najmanje jednim od preostalih elemenata, a svi zajedno grade i čine cjelinu koja postoji radi
određenog cilja ili zajedničke svrhe2.
Ako prihvatimo ovu definiciju sistem možemo simbolički predstaviti u obliku:
S= {E, V, F}
S - sistem;
E - skup elemenata sistema;
V - skup veza;
F- funkcija cilja sistema.
Realan svijet je izvor podataka za formiranje modela što je predstavljeno na Slici 1.1. Shodno ranijoj
definiciji sistema:
1
Originalno: a person or thing that is considered an excellent example of something
2
Zajednički cilj i svrha ne znači da mu svi elementi doprinose.
1
Modeli i baze podataka
Na osnovu iskustva i znanja, čovjek pomoću apstrakcije razvija model koji odgovara realnom sistemu. Nivo
apstrakcije (koji najčešće znači uprošćavanje) utiče na validnost modela, tj. na valjanost i uspješnost
predstavljanja realnog sistema preko modela.
Model treba da što vjernije predstavi stvarnost, ali istovremeno da ima izabrane samo elemente i
karakteristike sistema koje su značajne za realizaciju cilja modela (za projektovano istraživanje).
Model se ne može uspješno realizovati ako nema odgovarajuću teoriju koja ga opisuje. Teorija je
neophodan element koji povezuje model i sistem. Prije nastanka modela neophodno je formulisati teoriju.
Model je uprošćena i idealizovana apstrakcija realnosti (realnog sistema) koja ne obuhvata sve aspekte
realnog sistema, a realizuje se u određenoj okolini na osnovu teorije. Model3 je, dakle, praktično
predstavljena teorija, koji služi za razumijevanje nekog realnog sistema, te njegovo mijenjanje ili
upravljanje njime.
U ovom slučaju pod teorijom smatramo uopštene principe i iskaze koji su dobijeni posmatranjem sistema.
Znači u konkretnim podacima realnog sistema pronašli smo univerzalne principe: teoriju koja važi za model.
3
Ovdje smo na dvije uvodne stranice dali tri definicije modela. Ako vam se čini mnogo, postoji onoliko definicija
modela koliko i autora koji se bave modeliranjem. Jedna knjiga o ovoj temi počinje sa 25 definicija modela koje se
potom analiziraju i pravi sinteza od 5 predočenih definicija, koja objašnjava ovaj nesumnjivo interesantan i kompleksan
pojam. Mi se nadamo da vam je pojam modela intuitivno jasan, a da ćete pravu predstavu o modelu i modeliranju imati
na kraju ovog poglavlja.
2
Modeliranje i simulacija
Modeliranje treba da omogući stvaranje jasne i realne predstave - vizuelizaciju sistema, tako da možemo da
ga „vidimo“ onakvog kakav jeste, odnosno onakvog kakavog želimo da ga realizujemo. Model treba da
omogući razumijevanje sistema, a time i bolju specifikaciju strukture i ponašanja sistema. Na osnovu
modela trebalo bi biti moguće definisati šablon-obrazac koji pomaže prilikom konstruisanja ili upravljanja
sistema.
Očigledno je da su mnogobrojni ciljevi korištenja modela, a mogli bismo reći da su 4 glavna:
1) korišćenje modela umjesto realnog sistema radi sticanja ili provjere određenog saznanja
2) mogućnost analize dobijenih rezultata koja treba da obezbijedi efikasnije uprav-ljanje realnim
sistemom
3) smanjenje troškova projektovanja i izrade realnog sistema
4) izbjegavanje opasnosti eksperimenta nad realnim sistemom
Različiti su zadaci na kojima se ostvaruju ovi ciljevi. Već i samo nabrajanje zadataka bi značilo nabrajanje
gotovo svih ljudskih, proizvodnih, strateških, marketinških (itd, itd...) problema.
Često se modeliranje pogrešno veže samo za izradu velikih sistema, jer i mali sistemi mogu imati koristi od
njega. Ipak, što je sistem kompleksniji to je veća važnost mode-liranja.
3
Modeli i baze podataka
Analiza svake od ovih klasifikacija zavisi od njene konkretne primjene (namjene modela i simulacije).
Klasifikacije omogućavaju da izaberemo pravi model za određen problem, ali često zbunjuju svojom
kompleksnošću. Pokušaćemo to izbjeći dajući samo dvije:
podjelu modela na osnovu formalizma i detaljnosti
formalnu klasifikaciju modela u odnosu na nivo apstrakcije i metode
4
Modeliranje i simulacija
Formalni opis modela opisuje sistem na nedvosmislen način tako da se obezbijedi preciznost i potpunost
koristeći se unaprijed definisanom strukturom i procedurama.
Omogućava i formalizovanje nekompletnosti, nekonzistentnosti i nejasnosti definišući stepene pouzdanosti.
Kod formalnog opisa modela, model se može procjenjivati i u odnosu na detaljnost, što znači s obzirom na
broj objekata i veza koje u sebe uključuje. Detaljnost se odnosi na odnos broja komponenti realnog sistema i
broja komponenti modela koji opisuju realni sistem (nivo apstrahovanja -opažajnost).
Referentni model je skup smjernica i preporuka na osnovu kojeg se razvija (projektuje) neki sistem.
Najčešće je propisan od neke nadležne organizacije koja propisuje standarde kako treba da izgleda uređaj-
sistem. Ako proizvođač želi da proizvodi neki uređaj on treba da se pridržava propisanih pravila. Njegov
uređaj treba da zadovolji propisane procedure definisane referentnim modelom.
Jedan od primjera je OSI referentni mrežni model. OSI referentni model (Open Systems Interconnection) je
konceptualni model koji se koristi kao smjernica za razvoj uređaja i programa pri mrežnim
komunikacijama. To je opisni model koji je stvorila međunarodna organizacija za standardizaciju ISO
(International Organization for Standardization). Proizvođačima se propisuje skup standarda i tako
osigurava kompatibilnost i povezivanje među različitim mrežnim tehnologijama.
TCP/IP (Transmission Control Protocol/ Internet Protocol) su protokoli pomoću kojih se vrši praktična
implementacija OSI modela. Odnos OSI i TCP/IP predstavljen je na Slici 1.3. TCP/IP je model razvijen na
osnovu OSI referentnog modela.
5
Modeli i baze podataka
preuzeto sa:
http://www.protocols.com/pbook/tcpip1/
Pod terminom fizički misli se na materijalne (hemijska struktura molekula, model aviona), a klasa
apstraktnih modela predstavlja simboličke mentalne modele (koji mogu imati različitu reprezentaciju u
zavisnosti od metode predstavljanja: od verbalnog opisa preko analogije i matematičke analitike do
konceptualne predstave računarskim modelima i simulacijama).
Fizički model često se naziva i samo model, ali ako želimo da napravimo razliku u odnosu na druge vrste
(naročito konceptualni) naglasićemo da je riječ o fizičkom modelu.
Fizički modeli sistema predstavljaju srazmjerno umanjenu kopiju realnog sistema iz koga su izdvojene
bitne fizičke i funkcionalne karakteristike.
Objekt modeliranja može biti ekstremno mali (na primjer, atom) pa u tom slučaju fizički model predstavlja
uvećanje.
6
Modeliranje i simulacija
Mada je jasno (vidi 1.1.2 Odnos modela, realnog sistema i teorije i Sliku 1.5) naglasimo: I kod izrade
fizičkog modela se polazi od logičkog modela (apstrakcije), a rezultat je izrađeni fizički model.
Kada je definisan fizički model nekog fizičkog (realnog) sistema, idući korak bi bio stvaranje matematičkog
modela, koji predstavlja matematičku interpretaciju fizičkog modela, pomoću odgovarajućih fizičkih
zakonitosti, koje su predstavljene analitički.
Statički modeli zadržavaju uvijek iste karakteristike, dok se dinamički mijenjaju u zavisnosti od promjene
ulaza. Dinamički aspekti modela se fokusiraju na njegovo ponašanje, kreirajući model procesa u
vremenskom domenu.
Osnov apstrakcija je promišljanje i analiza (odnosno način izdvajanja nekih osobina i svojstava predmeta od
samog predmeta), pa se metode modeliranja mogu podijeliti prema načinu apstrakcije pri obavljanju i
prezentovanju analize.
Mentalni (misaoni) modeli su modeli nastali apstrakcijom. Predstavljaju apstrakciju koju stvara ljudski um.
Omogućavaju komunikaciju među ljudima, planiranje aktivnosti itd.
Na Slici 1.6 možete vidjeti strukturnu šemu ovog modela kao i osnovne elemente koji određuju mentalni
model i njegov odnos prema sistemu i realnom (stvarnom) svijetu. Ovaj model omogućuje donošenje odluke,
na osnovu unaprijed propisanih pravila i strategije i strukture koje model sadrži.
7
Modeli i baze podataka
Nadamo se da je vaše znanje iz mehanike i elektronike dovoljno da možete sami shvatiti i proanalizirati obje
šeme. Razmotrite analogiju hidrauličkog i elektronskog kola, tako da se uspostavi korelacija između
jednačina koje opisuju mehaničke (hidrauličke) i elektronske procese.
Više detalja o analogiji na: https://sr.wikipedia.org/wiki/Metod_hidrauli%C4%8Dke_analogije.
8
Modeliranje i simulacija
Slika 1.8 Razdvajanje skupova ulaznih i izlaznih veličina kod matematičkog modela
Na Slici 1.8 dat je prikaz matematičkog modela M u kome se procesni prostor P razdvaja u skupove ulaznih
veličina X i izlaznih veličina Y.
Definisanje ovih skupova se realizuje na osnovu analize realnog sistema koji se želi modelirati i kauzalnosti
između veličina X koje su uzrok promjena i zavisnih veličina Y koje su posljedica ovih promjena.
Definisanje skupova {X,Y} zahtijeva (bar) dva ekspertna nivoa
a) poznavanje procesa obuhvaćenih procesnim prostorom u realnom svijetu (eksperta za realan
problem)
b) poznavanje teorije (eksperta koji može da matematički opiše odgovarajućim jednačinama realan
problem)
Razmislite o dvije naoko kontradiktorne činjenice:
Isti procesni prostor može se predstaviti različitim modelima.
Isti model može se koristiti za predstavljanje različitih procesa.
4
UML (Unified Modeling Language) standardizovani jezik za modeliranje, služi za vizue-lizaciju, specifikaciju,
konstruisanje i dokumentovanje softverskih sistema. vidi više 4.8.4.1.
9
Modeli i baze podataka
Jedna od namjena konceptualnog modela je automatsko generisanje programa i pomoć u razvoju programa.
Kod kompleksnijih sistema moguće je primijeniti modularni princip, koji olakšava projektovanje sistema
na način da se prvo projektuju moduli a potom vrši njihovo povezivanje. Modularnost pojednostavljuje i
ubrzava proces modeliranja, jer omogućava timski rad i parcijalno rješavanje problema, ali krije i
mnogobrojne zamke, sa čuvenim pitanjem: Svi moduli rade, a sistem ne radi. Zašto?
Zasad ćemo ukazati na osnovni uzrok kako je to moguće. Odgovor je u definiciji sistema: Sistem ne postoji
bez uticaja okoline (vidi Sliku 1.1).
Simulacioni modeli se dijele prema dva kriterija: prema vrsti promjenljivih u modelu i prema načinu na koji
se mijenja stanje modela u vremenu.
5
XML EXtensible Markup Language - jezik za označavanje podataka. Nastao je na osnovu ideje da se stvori jedan
jezik koji će biti čitljiv i ljudima i računarskim programima.
6
možda bi preciznije bilo reći softvera i softverskih paketa
10
Modeliranje i simulacija
1.5 Simulacija
1.5.1 Šta je simulacija
Simulacija je prema Šenonu (Shanon, 1975) „proces dizajniranja modela realnog sistema i provođenje
eksperimenata sa tim modelom radi razumijevanja ponašanja sistema ili evaluiranja različitih strategija (u
okviru granica zadatih kriterijumima ili setom kriterijuma)“.
U literaturi i praksi često se koristi termin modeliranje i simulacija (engl. Modeling and simulation
(M&S)), koji objedinjuje ova dva pojma što je dijelom opravdano jer:
Realni sistem opisuje se modelom.
Stanje sistema predstavljeno je stanjem modela koje je određeno varijablama stanja.
Model se definiše simulacijskim jezikom.
Nakon izrade modela pristupa se simulaciji koja se odvija izvođenjem posebnog programa -
simulatora7 - na računaru.
Rad simulatora je upravljan modelom.
7
Ovdje pod simulatorom podrazumijevamo program u izvršenju, pa bi mogli napraviti analogiju između programa i
procesa (kao programa koji se izvršava) i modela (statički) i simulacije (dinamički)
11
Modeli i baze podataka
Podsjećamo:
Realni sistem koji je izvor podataka, može se predstaviti u obliku jednačine y=f(x), kojom se definiše
model.
Modeliranje je proces kojim se uspostavlja veza između realnog sistema i modela.
U računarstvu, model predstavlja skup instrukcija (program) koje služe da se generiše ponašanje
simuliranog sistema. Model ima svoje objekte koji su opisani promjenljivim i njihovim atributima.
Povezivanje modela predstavlja pripremnu fazu simulacije u kojoj se vrši priprema i obezbjeđuju potrebni
resursi za proces simulacije (kao što je obezbjeđivanje memorije, definisanje redoslijeda budućih koraka u
smislu prioriteta, provjera eventualno loše unesenih ulaznih podataka i slično).
Nakon povezivanja pristupa se stvarnoj simulaciji.
U fazi stvarne simulacije vrši se sukcesivno izračunavanje prelaznih stanja i izlaza iz sistema. Obično se
proračun provodi i prikazuje u diskretnim vremenskim intervalima koji mogu, ali i ne moraju biti jednoliki.
Izbor intervala se definiše posebnim „rješavačem jednačina“ (solver).
12
Modeliranje i simulacija
13
Modeli i baze podataka
Pošto je očigledno da su ovo vrlo zahtjevna znanja, mi ćemo praktičan rad nastaviti na dosta provizornim i
neformalnim temeljima, koji su dovoljni tek za početne korake u modeliranju i simulaciji.
Statički modeli opisuju sisteme kod kojih vrijeme ne utiče na ponašanje sistema. Dinamički modeli opisuju
ponašanje sistema u vremenu prateći stanja sistema preko vrijednosti različitih veličina koje se odnose na
pojedine elemente modela.
Pojednostavljeno, dinamički sistemi prate fenomene koji se privremeno mijenjaju u realnom sistemu.
Promjena vrijednosti neke osobine objekta se povezuje sa vremenom. Npr. veličine (kao što su brzina, težina,
brojnost i slično) zavise od vremena. U tom slučaju je model koji povezuje veličinu i vrijeme dinamički.
U slučaju nekih društvenih ili prirodnih fenomena (kao što su npr. porast populacije ili industrijske
proizvodnje) moguće je planirati i predvidjeti budućnost kreiranjem i praćenjem dinamičkih modela.
14
Modeliranje i simulacija
Deterministički simulacioni modeli su oni kod kojih su sve promjenljive stanja determinističke veličine, a
stohastički su oni kod kojih je bar jedna promjenljiva slučajna veličina i u tom slučaju govorimo o
modelu vjerovatnoće.
Scenario menadžer (Scenario Manager) omogućava da se analiziraju sve moguće vrijednosti jedne funkcije
kada se promijeni jedan parametar.
3. Analiza osjetljivosti
Ispituje se kako promjena jednog parametra (nezavisne/ulazne varijable) utiče na funkciju cilja (zavisnu
varijablu). Obično se izražava procentualno.
Primjer: ako se mijenja cijena, posmatra se kako ona utiče na promjenu profita.
4. Optimizacija
Optimizacija je metod određivanje ekstrema (minimuma ili maksimuma) realne funkcije cilja promjenama i
izborom jedne ili više nezavisnih varijabli uz zadana ograničenja.
Primjer: Treba optimizovati (pronaći maksimalni) profit, ako su zadane cijene proizvoda, količine, troškovi,
a ograničenja su raspoloživi kapacitet mašina i ljudi, te potražnja.
Kreiranje optimizacionih modela obično se rješava metodama linearnog programiranja, gdje se definiše:
Funkcija cilja (šta se želi optimizovati), te da li se želi pronaći minimum ili maksimum
Koje su varijable odlučivanja – koje su ulazne varijable koje će se mijenjati u modelu
Ograničenja – funkcije i konstante.
15
Modeli i baze podataka
Promjena principa izrade modela se umnogome može vezati za razvoj matematike i njene primjene u
elektronici i računarstvu, pa bi razrada ove teme podrazumijevala razradu misli značajnih matematičara od
Lajbnica (Gottfried Wilhelm Leibniz 1646.- 1716.), preko Bula (George Boole, 1815.- 1864.) Kantora
(Georg Ferdinand Ludwig Filip Kantor 1845.-1918.) i Rasela (Bertrand Arthur William Russell 1872. -
1970.), do Nojmana (John von Neumann 1901. - 1957.) i Tjuringa (Alan Mathison Turing 1912.-1954.), da
nabrojimo samo najznačajnije.
Svakako je interesantan primjer Teslinog modela daljinski upravljanog čamca koga je demonstrirao 1898.
godine. Ovim modelom se pomoću električnih signala bežično upravljalo na daljinu, a originalnu prijavu
Teslinog patenta ovog modela možete vidjeti na Slici 1.27. Ovaj model je bio daleko ispred svog vremena i
sa pravom se može smatrati pretečom modernih sistema automatske regulacije.
Sredinom XX vijeka sa pojavom elektronskih računara modeliranje doživljava procvat i počinje njegova
prava primjena u modernom smislu.
16
Modeliranje i simulacija
Prvo značajno modeliranje na računaru obavljeno je u sklopu projekta Menhetn (projekt razvoja atomske
bombe). Napravljen je model kretanja neutrona pri lančanoj reakciji kojeg su razradili Ulam (Stanisław
Marcin Ulam 1909. -1984.) i Nojman. Zbog tajnosti projekta detalji nisu bili šire dostupni javnosti.
Tek naknadno, kad su 1949. Ulam i Metropolis (Nicholas Constantine Metropolis 1915.- 1999.) objavili
zajednički rad The Monte Carlo method, ovaj metod počinje da se značajnije primjenjuje i njegova
popularnost raste. Ovaj metod je odranije bio poznat, a Ulam ga je unaprijedio i dao mu ime Monte Karlo (pa
smo ga i mi kao takvog dijelom obradili, (1.6.3).
Pedesetih godina su razvijeni mnogobrojni modeli, posebno u vojnoj i avio industiji.
Šezdesete godine dovode do popularizacije računarskih modela i simulacija koji se koriste u „trci u
svemiru“, a u javnosti su popularisane kroz Apolo program. Projektant modela je morao da poznaje
arhitekturu računara i procese koje želi simulirati.
Sedamdesetih godina računari postepeno iz domena vojne industrije lagano prelaze u područje velikih
industrijskih sistema, pa se počinje sa simulacijom ne samo kompleksnih proizvodnih sistema i uređaja, već
se simuliraju i ekonomski, društveni ali i biološki i ekološki sistemi.
Napredovanje tehnologije osamdesetih godina dovodi do moćnog i jeftinog hardvera, jeftinih PC
konfiguracija i jeftinih CNC (programski upravljanih) mašina. U fabrikama se masovno koriste proizvodi čiji
modeli su prethodno testirani i simulirani na računarima.
Devedesetih godina se u praksi primjenjuju metode modeliranja koje u sebe uključuju i integrišu
kompleksne sisteme računarskih mreža i vještačke inteligencije.
Pad cijena računara omogućio je stvaranja alata za kućnu primjenu (tačnije za primjenu na PC računarima),
kakvi su Matlab, Mathematica, AutoCAD, OrCAD, Space, ArchiCad,… koji u sebi integrišu kompletno
crtanje/modeliranje te produkciju i proizvodnju 2D i 3D modela. 3D printeri su omogućili revoluciju u izradi
modela i prototipova integracijom CAD dizajna (Computer-aided Design).
Danas je obavezno da proizvodni proces započne izradom 3D CAD modela, tj. virtualnog prototipa
proizvoda.
Moderna ekonomija tvrdi da je proizvod sve ono što se može ponuditi na tržištu, pa shodno tome
modeliranje obuhvata i ekonomske odnose. Naše primjere Excel-a shvatite kao početne korake u tom
domenu.
Današni trendovi modeliranja su zasnovani na agentima (Agent-Based Modelling; ABM modeliranje) i
konceptu vještačke inteligencije.
17
Modeli i baze podataka
Prva masovna automatska obrada podataka desila se davne 1882. godine u SAD-u. Te godine je
obavljen popis stanovništva. Herman Holerit (vidi Sliku 2.27) je napravio i prodao statističkom
birou SAD-a (gdje je bio zaposlen) mašinu koja je mogla da automatski obrađuje bušene kartice.
Koncept i ideja su bili jednostavni, svaki stanovnik SAD-a je predstavljen nizom od 80 karaktera
(ime, godište, itd) koji je bio „poravnat“ praznim prostorom (svi podaci su uniformno bili iste
dužine).
Hiljade kutija punih bušenih kartica činile su prvu
bazu podataka.
Podatke je obrađivala elektromehanička mašina sa
senzorima. Ova mašina je mogla da obradi oko 100
kartica u minuti (a svaka kartica je imala 12 redova sa 80
karaktera). To je dovelo do nevjerovatnog skraćenja
Slika 2.27 Herman Hollerith (1860 – 1929) i obrade rezultata popisa. Rezultati su bili poznati već
njegova mašina za obradu bušenih kartica poslije mjesec dana od završetka popisa, umjesto nakon
desetak godina što je bila ranija praksa.
18
Modeliranje i simulacija
Radna grupa DBTG (Data Base Task Group) američke organizacije CODASYL (Conference On
Data Systems Languages) 1959. prezentuje i standardizuje mrežni model za obradu podataka.
19
Modeli i baze podataka
Sistem za upravljanje bazom podataka SUBP (Database Management System – DBMS) je softver koji je
spona i veza (interfejs) između korisnika (aplikativnih-korisničkih programa) i zapisa baze podataka na
disku.
Sistem baza podataka predstavlja jedinstvo baze podataka i neophodnih hardverskih, softverskih i ljudskih
resursa i predstavljen je na Slici 2.1. Sistem sadrži 4 osnovne komponente:
1. korisnici,
2. aplikacija nad bazom podataka,
3. sistem za upravljanje bazama podataka i
4. baza podataka.
1
Ovo strogo, znači pravno gledano, a autori vam mogu ponuditi adresu direktive Evropske unije (Directive 96/9EC)
gdje se na 576 stranica propisuje način korištenja podataka iz različitih baza podataka. Adresa je:
http://ec.europa.eu/internal_market/copyright/docs/databases/etd2001b53001e72_en.pdf
2
Mladen Veinović, Goran Šimić, Uvod u baze podataka, Univerzitet Singidunum, Beograd 2010
20
Sistem za upravljanje bazom podataka – Uvod-
Sjećate li se pojma sistema? (iz poglavlja Modeliranje i simulacija). Za potrebe analize modela sistema baze
podataka daćemo proširenje ranije definicije: Sistem predstavlja skup elemenata i njihovih međusobnih veza.
U „realnom svijetu“ podatak je pojam koji opisuje i kvantifikuje stanje nekog procesa. Podatak je činjenica
koja predstavlja reprezentaciju nekog predmeta ili događaja. Oblici podataka su zvučni, slikovni, brojčani i
tekstualni. Podaci mogu biti strukturirani (npr. slovni, brojevi, datumi), i nestrukturirani (slika, zvuk).
Informacija3 je novi podatak koji posjeduje neku relevantnu novinu. Podatak sam po sebi nema značenje,
tek kad se obradi i interpretira postaje informacija.
U sklopu sistema za upravljanje podacima vrši se obrada podataka iz baze podataka, tako da oni postanu
korisne informacije.
Entitet predstavlja pojam nečega što posebno i samosvojno postoji, a kod baza podataka entitet je osnovni
element koji smještamo u bazu.
Entitet je realan ili imaginaran objekat (odnosno biće, događaj ili pojava) koji se može jednoznačno
identifikovati, razlikovati i opisati. Entitet je nešto o čemu želimo sačuvati podatke.
Entitet se opisuje atributima, a konkretne vrijednosti entiteta određuju se vrijednostima atributa.
Atributi predstavljaju opis entiteta, odnosno atributima se definišu opšte osobine koje određuju entitet.
Konkretna vrijednost entiteta dobije se kada se atributima daju konkretne vrijednosti.
Npr.: entitet Imenik ima atribute Ime, Prezime, Adresa, Grad, Br_Tel, a vrijednost tog entiteta može biti:
Petar, Petrović, Banja Luka, Fruškogorska, 051/123-122.
Atribut je definisan izrazom:
<ime atributa> <tip atributa> <dodatna svojstva atributa>
Atribut ima svoje ime po kome se razlikuje od ostalih atributa entiteta kojem pripada. Ne mogu postojati
dva atributa sa istim imenom u sklopu jednog entiteta; normalno ista imena se mogu koristiti za atribute
različitih entiteta.
Tip podatka4 pridružen konkretnom atributu bliže opisuje atribut i određuje način njegovog memorisanja.
Najčešći tipovi atributa su:
Tekstualni / strings (CHAR(n) – tekst dužine n slova, VARCHAR(n) – tekst dužine najviše n slova,
TEXT – tekst proizvoljne dužine),
Numerički (INT – cijeli broj prikazan s 4 bajta, BIGINT – cijeli broj prikazan s 8 bajta, SMALLINT
– cijeli broj prikazan s 2 bajta, REAL – realni broj prikazan s 4 bajta, DOUBLE PRECISION - realni
broj prikazan s 8 bajta, NUMERIC [(p,s)] - realni broj zadane preciznosti,
MONEY - novac,
Logički podaci,
Datum i vrijeme (DATE, TIME, TIMESTAMP – datum+vrijeme).
Atributi mogu imati i neka dodatna svojstva koja mogu da ograniče domen atributa (vidi iduću lekciju).
Dodatna svojstva atributa:
DEFAULT (zadavanje predefinisane vrijednosti),
NOT NULL (vrijednost ne smije biti nepoznata),
CHECK (provjera da li je vrijednost atributa u zadanim granicama),
UNIQUE (jedinstvenost među n-torkama unutar relacije),
PRIMARY KEY (primarni ključ),
REFERENCES (vrijednost odgovara vrijednostima atributa iz druge relacije (najčešće ključ te
relacije)),
UNSIGNED (Ako ne trebamo negativne brojeve),
FLOATING POINT (decimalni brojevi),
DOUBLE F.P. (pozitivne i negativne vrijednosti).
3
Šenon je informaciju definisao kao podatak koji smanjuje neizvjesnost.
4
većinu tipova i dodatnih svojstava ćemo provježbati kroz primjere u Access-u
21
Modeli i baze podataka
Domen (domain) je skup svih prihvatljivih vrijednosti koje atribut može imati.
Domen atributa se definiše: tipom podataka, dužinom podataka i opsegom vrijednosti.
5
preliminarno predstavljen od strane ANSI (American National Standards Institute) 1972., kao potpun standard
definisan je 1975. kao “ANSI/X3/SPARC Study Group on Data Base Management Systems; Interim Report), a zadnja
verzija je iz 1996
22
Sistem za upravljanje bazom podataka – Uvod-
Fizički nivo - To je fizički prikaz i raspored podataka na diskovima, tj. vanjskoj memoriji gdje se podaci
smještaju. Raspored smještanja i pamćenja podataka na fizičkom nivou opisuje kako se logičke definicije
preslikavaju na fizičke uređaje.
Fizičkom nivou pristupaju programeri koji kreiraju DBMS. DBMS „prevodi“ korisničke zahtjeve za
podacima s lokalnog nivoa na globalni logički nivo, a potom ih realizuje kao ekvivalentne na fizičkom nivou
(vidi Sliku 2.3)
Jedna baza podataka ima jednu konceptualnu, jednu fizičku i (najčešće) više eksternih šema.
Ovakva podjela je prilično zastarjela. Naime, kod relacionih baza postoji tendencija da se sva tri jezika
integrišu. Primjer takvog jezika je SQL (Structured Query Language). SQL je strukturni upitni jezik koji u
sebi objedinjuje mogućnosti kreiranja, manipulacije i zaštite objekata baze. Na Slici 2.4 može se vidjeti blok
šema koja pokazuje odnos SQL-a prema DDL-u i DML-u, kao i osnovni tipovi i komande koje ovaj jezik
podržava.
Moderne aplikacije se razvijaju u standardnim objektno orijentisanim programskim jezicima (Java, C++, . . .
). Za interakcije s bazom koriste se unaprijed pripremljene klase objekata. Ali, to je tema nekog drugog
udžbenika.
23
Modeli i baze podataka
Baze podataka se u pravilu realizuju korišćenjem nekog od provjerenih (i skupih) softverskih paketa. U
Tabeli 2.1 dat je pregled nekih od najznačajnijih softverskih proizvoda i paketa za rad sa bazama podataka.
Posebno preporučujemo MySQL. Možda nije najbolji, ali je jedan od najpopularnijih jer je besplatan (open
source) sistem za upravljanje bazom podataka.
24
Sistem za upravljanje bazom podataka – Uvod-
Ovaj dio pripada onome sto se zove globalna šema. Za bazu podataka tipično postoji strukturni opis vrste
činjenica sadržanih u toj bazi podataka: taj opis naziva se šema. Šema opisuje predmete koji su prikazani u
bazi podataka, te odnose među njima. Ovom tematikom ćemo se kasnije detaljno pozabaviti.
2.3.2.3 Implementacija
Prethodni koraci su bili vrsta planiranja - sve na papiru (ili računaru),ali ovaj korak je realizacija
zamišljenog.
Na osnovu šeme i pod-šema, te uz pomoć dostupnog DBMS-a (SUBP-a), fizički se realizuje baza podataka
na računaru. U DBMS-u (SUBP-u) obično postoje parametri kojima se može uticati na fizičku organizaciju
baze. Parametri se podešavaju tako da se osigura efikasan rad najvažnijih transakcija. Razvija se skup
programa koji realizuju pojedine transakcije te pokrivaju potrebe raznih aplikacija. Baza se inicijalno puni
podacima.
Obuhvata:
Implementacija šeme.
Razvoj potrebnih aplikacija za rad.
Inicijalno punjenje baze podataka s podacima potrebnim za početak rada.
2.3.2.4 Testiranje
Korisnici rade s bazom i provjeravaju da li ona zadovoljava sve zahtjeve. Nastoje se otkriti greške.U novije
vrijeme, prije prave implementacije, razvijaju i približni prototipovi baze podataka, te se oni pokazuju
korisnicima. Jeftinu izradu prototipova omogućuju jezici 4. generacije i objektno-orijentisani jezici.
2.3.2.5 Održavanje
Odvija se u vrijeme kad je baza već ušla u redovnu upotrebu. Sastoji se od sljedećeg: popravak grešaka koje
nisu bile otkrivene u fazi testiranja; uvođenje promjena zbog novih zahtjeva korisnika; podešavanje
parametara u DBMS (-SUBP-) u svrhu poboljšavanja performansi. Održavanje zahtijeva da se stalno prati
rad s bazom, i to tako da to praćenje ne ometa korisnike.
25
Modeli i baze podataka
Ovaj dio pripada onome sto se zove izrada globalne šeme i definisanje baze podataka:
definisanje vrste podataka i veza među njima a prema informacijama dobivenim analizom potreba.
normalizacija (regrupiranje) podataka u cilju budućceg efikasnijeg rada baze podataka.
definisanje podšema za pojednine aplikacije.
Pošto baza podataka ne postoji u relnom svijetu primjenjujemo koncept apstrakcije:
26
Sistem za upravljanje bazom podataka – Uvod-
2.5.1 Modeli baze podataka
Prilikom objašnjenja arhitekture baze objasnili smo da se na konceptualnom nivou definiše konceptualni
model sa odgovarajućom logičkom šemom koja sadrži opis svih entiteta i veza, atributa, domena i
integritetska ograničenja. Hijerarhijsko mjesto konceptualnog modela vidi se na Slici 2.5 (između korisnika i
fizičkog nivoa).
27
Modeli i baze podataka
Slika 2.7 Mrežni graf kojim se može predstaviti mrežna struktura podataka
6
Teorija grafova je grana matematike koja se bavi proučavanjem grafova. Graf je vrsta strukture podataka koji se
sastoji od skupa čvorova i skupa grana, koje predstavljaju odnose (veze) između čvorova. Mrežno stablo je
najjednostavnija klasa grafa. U računarstvu se grafovi često koriste za opis modela ili struktura podataka.
28
Sistem za upravljanje bazom podataka – Uvod-
Skup operacija koje se provode na relacijama, odnosno tabelama naziva se relacionom algebrom. Kasnije
ćemo se upoznati sa osnovnim pojmovima iz relacione algebre i računa.
7
Edgar Kod, engleski matematičar i naučnik, više detalja vidi u 2.9
8
često se može sresti pogrešna tvrdnja da se relacioni model tako zove zbog veza (engl. relationships), relacioni model
je dobio ime po relacijama na kojima se model zasniva.
29
Modeli i baze podataka
Šema relacije predstavlja opis strukture tabele. Relaciona šema se još naziva i relaciona tabela, a nju
karakterišu sljedeća svojstva:
U relacionoj šemi može postojati samo jedan tip slogova, odnosno n-torki;
Svaki red, odnosno slog ili n-torka (tuple) uključuje tačno određen broj polja podataka, tj. atributa i
svaki od njih je eksplicitno imenovan;
Relaciona šema ne sadrži dva jednaka naziva atributa, odnosno relacija ne sadrži dvije jednake
kolone;
Redoslijed kolona, odnosno atributa je nebitan;
Redoslijed n-torki je nebitan;
relacija nije uređena. Relaciju možete zamisliti kao košaru u kojoj su torke nagomilane bez
ikakvog posebnog redoslijeda. Redni brojevi zapisa, uobičajen mehanizam za pristupanje zapisima
u nerelacionim bazama podataka, ne postoje u relacijama.
Nove se tabele mogu stvarati povezivanjem preko vrijednosti polja podataka iz istog domena iz dvije
postojeće tabele.
Naglasimo: relacija i tabela nisu isto. Kod tabela je bitan redoslijed redova i kolona, dok kod relacija nije
bitan redoslijed atributa i n-torki.
Šemu relacije možemo shvatiti dvojako: kao definiciju strukture neke datoteke (kako smo naveli u definiciji),
ali i kao predstavu svojstava klase objekata i veza unutar nekog sistema.
Relaciju možemo predstaviti tako da navedemo njeno ime i skup atributa koji je čine:
R(A1:D1, A2:D2,..., An:Dn), ako domeni nisu bitni dovoljno je navesti samo atribute:
R(A1, A2,..., An).
Primjer: Ucenik(Razred, BrojDnevnik, Ime, Prezime)
Kao primjer, na Slici 2.9 daćemo dijagram relacione šeme baze podataka Generacija2016.
L_Podaci
JMBG Odjeljenje Br_dnevnik Prezime Ime Dat_rodj Pol Adresa Grad
Odjeljenja
Odjeljenje Smjer
Slika 2.9 Primjer dijagrama relacija
9
pri čemu se atribut koji je primarni ključ podvlači, a spoljni ključevi pišu italikom, a šta to znači vidi 2.2.5
30
Sistem za upravljanje bazom podataka – Uvod-
SUBP (DBMS) se naziva relacionim ako podržava relacione operacije (kanije ćemo objasniti relacione
operacije). Osim što podržava relacione operacije, da bi neki model mogao da se nazove relacionim on treba
da ima osnovne osobine kao što su:
Sistemski tretman „NULL“ vrijednosti
NULL je univerzalna vrijednost "nepoznato". Koristi se kad iz bilo kog razloga u momentu unosa
podataka nije poznata vrijednost nekog ulaznog podatka. NULL može biti vrijednost svake kolone
bez obzira na njen tip, osim primarnog ključa i u slučaju kad se izričito zahtijeva da vrijednosti u
nekoj koloni ne smiju biti nedefinisane (dodatno ograničenje NOTNULL).
Neprekidan pristup dinamičkom katalogu relacionog modela
Katalog relacionog modela predstavlja zapis o strukturi baze podataka. Spada u tzv. metapodatke,
koje smo spomenuli u uvodu. Zapisan je u istoj formi (relacije-tabele) kao i sami podaci. Pravo
pristupa ovom katalogu imaju samo ovlašteni korisnici-administratori. Naziva se dinamički, jer
definicije podataka koje se mogu vidjeti odgovaraju upravo tekućem stanju u bazi podataka.
Fizička nezavisnost
znači da korisničke aplikacije ostaju neizmijenjene kada se promijeni fizička organizacija baze ili
fizički metod pristupa podacima (vidi Arhitektura baze podataka). Praktično, fizička organizacija
podataka ima uticaj samo na performanse (brzinu pristupa podacima, odziv sistema).
Logička nezavisnost
Ekvivalentno prethodnom uslovu, samo u obrnutom smjeru;
Integritetska nezavisnost
o Integritet entiteta definiše da je primarni ključ jedinstven na nivou cijele relacije.
o Integritet domena određuje skup dozvoljenih vrijednosti kolone
o Relacioni integritet
Svaki atribut u relaciji vezuje se za određeni domen, pa povezivanjem atributa ne smije da se
naruši (analiziraj kasnije kardinalnost).
o Referencijalni integritet odražava definisane odnose (relacije) među tabelama kada se u njih
dodaju ili se iz njih brišu zapisi (analiziraj kasnije anomalije), naglašava da izmjena bilo kog
podatka ne smije da mijenja karakter drugog.
Želimo kreirati bazu podataka Generacija2016 koja predstavlja generaciju učenika (npr. neke gimnazije,
koju ćemo analizirati kao sistem iz realnog svijeta koga želimo modelirati i dizajnirati bazu koja ga
predstavlja).
Izbor relacija i definisanje atributa
Prvo analiziramo problem, odredimo podatke koje želimo pamtiti (poželjno je da to uradimo u pisanoj
formi), na osnovu toga definišemo objekte i podatke, prepoznamo entitete i njihova svojstva, koje želimo
predstaviti relacijama; odnosno definišemo tabele i kolone.
Krenućemo od skupa učenika škole koga želimo predstaviti relacijom-tabelom Ucenik u kojoj ćemo
smještati i čuvati podatke o razredu, odjeljenju, smjeru, broju u dnevniku, imenu, prezimenu, datumu
rođenja, polu i adresi stanovanja.
Nedostaju predmeti i ocjene, njihovo uvođenje ostavljamo za napredne učenike kad se upoznaju ne samo sa
preostalim temama modeliranja baza već i Access-om.
Moguće rješenje je definisanje baze Generacija 2016 sa dvije tabele-relacije: L_Podaci i Odjeljenja i
njihovih atributa (kolona).
L_Podaci
Odje Br_
JMBG Prezime Ime Dat_rodj Pol Adresa Grad
ljenje dnevnik
0123456 I-1 18 Marković Marko 10-01-01 M Beogradska 7 Zvornik
0123456 I-1 3 Žarić Ana 05-03-00 Ž Lj. Bogdana 3 Višegrad
2345678 I-2 22 Petrović Milan 02-01-01 M Karađorđa 7 Teslić
3466677 I-2 23 Rodić Ana 05-12-99 Ž Savska 34 Kotor Varoš
4565553 I-3 22 Petrović Petar 09-12-00 M Čairska 3 Laktaši
3219871 I-3 1 Adžić Zlatko 07.07-00 M S. Đaka 19 Banja Luka
31
Modeli i baze podataka
Odjeljenja
Odjeljenje Smjer
I-1 opšti
I-2 opšti
I-3 društveno-jezički
I-4 matematički
I-5 računarski
Svaka relacija mora da ima barem jednog kandidata za ključ: to je skup svih atributa koji čine torku.
Kandidat za ključ mora da ispuni još jedan dodatan uslov, a to je da se ne može razbiti na prostije dijelove;
zbog toga skup svih atributa relacije ne mora obavezno biti kandidat za ključ.
Kandidat za ključ može se sastojati od samo jednog atributa - prost ključ (simple key), ili od više njih -
složen ključ (composite key).
Neki autori smatraju da složeni ključevi nisu dobro rješenje i zato dodaju svojim tabelama vještačke
identifikatore – npr. polja tipa autonumber; da bi izbjegli složene ključeve.
Ukoliko relacija ima više kandidata za ključ, tada biramo jednog od njih i proglašavamo ga primarnim
ključem.
Sada, kad smo se upoznali sa primarnim ključem, relaciji možemo pridružiti i osobinu adresabilnosti:
Svaka n-torka relacije određena je vrijednošću primarnog ključa.
Svaki podatak je određen nazivom relacije, nazivom atributa i vrijednošću primarnog ključa.
Atributi koji čine primarni ključ zovu se primarni atributi, svi ostali zovu se sporedni atributi.
Primarni ključ ima dvostruku ulogu: jednoznačno definiše n-torke (red u tabeli) i omogućava da se preko
njega ostvari veza sa drugim relacijama (tabelama).
Nastavak zadatka 2.2.2.1: Prepoznaj - definiši primarne ključeve relacija L-Podaci i Odjeljenja.
10
Zašto nije ispravno (mada je moguće) da se JMBG definiše kao broj?
32
Sistem za upravljanje bazom podataka – Uvod-
Strani ključ (Foreign key) tabele je atribut (skup atributa) koji ukazuje na zavisnost od neke druge tabele.
Polazna tabela se obično zove tabela-dijete, a tabela od koje ona zavisi roditeljska tabela.
Strani ključ mora zadovoljiti uslov da je skup njegovih atributa primarni ključ roditeljske tabele. Primjer sa
Slike 2.10 pokazuje kako to izgleda u bazi Regionalno poslovanje, koja ima dvije tabele/relacije
PoslovanjeSektora i Regije.
U relacionom modelu veza nije materijalizovana, već se dinamički uspostavlja pri radu s podacima,
poređenjem vrijednosti atributa u n-torkama raznih relacija.
Primarni i sekundarni ključ povezuje jednakost značenja, pa jednakost naziva može, ali i ne mora biti
zadovoljena.
33
Modeli i baze podataka
Na Slici 2.13 dato je nekoliko ilustracija koje pokazuju različite tipove kardinalnosti i različite načine
njihovog predstavljanja.
Veza m:n je veza (više prema više) koja se u modelima vrlo često javlja, a ne može da se direktno
implementira u relacionom modelu baze podataka.
Problem veze m:n između dva entiteta se prevazilazi "razbijanjem" ove veze na dvije veze tipa l:n. Ova
veza ne može da se direktno realizuje u relacionim bazama podataka, već mora posredno preko još jedne
tabele, kao što je prikazano na Slici 2.13.
Kardinalnost je pojam koji označava brojnost, pa se govori i o kardinalnosti relacije (entiteta), atributa i
veze, što može dovesti do zabune.
34
Sistem za upravljanje bazom podataka – Uvod-
2.10 Dvanaest pravila koji određuju relacioni sistem (Je li Kod sujevjeran?)
Kod je sročio ova pravila kao deo lične potrebe da spreči razbijanje svoje vizije
relacione baze podataka, s obzirom da su prodavci baza podataka nastojali
početkom osamdesetih godina dvadesetog vijeka da zapakuju postojeće proizvode
u relacionu oblandu. Pravilo broj 12 je posebno bilo navedeno da se suprotstavi
takvim nastojanjima.
Edgar Frank Codd
(Engleska, 1923. – 2003.)
dok je radio za IBM, stvorio je relacioni model za upravljanje bazom podataka
0. Sistem se mora kvalifikovati kao relacioni, kao baza podataka, i kao sistem za manipulaciju.
Da bi sistem nazvali relacionim sistemom za manipulaciju bazom podataka (RDBMS), on isključivo
mora koristiti svoje relacione mogućnosti da upravlja bazom podataka.
1. Pravilo informacije:
Sve informacije u bazi podataka moraju biti predstavljene na jedinstven način, svojim vrijednostima
u kolonama u okviru redova tabela.
2. Pravilo garantovanog pristupa:
Svi podaci moraju biti dostupni bez dvosmislenosti. Ovo pravilo je u suštini reformulacija osnovnog
zahtjeva za postojanjem primarnih ključeva. Ono traži da je svaka pojedinačna vrijednost u bazi
logički adresibilna navođenjem naziva tabele koja je sadrži, naziva kolone u kojoj se nalazi i
vrijednosti primarnog ključa reda koji je sadrži.
3. Sistematično tretiranje null vrijednosti:
Sistem mora dozvoljavati da svako polje može, po potrebi, ostati prazno (ili imati vrijednost null).
Posebno, mora podržavati predstavljanje "informacija koje fale ili se ne mogu primjenti" koje je
sistematično, različito od svih regularnih vrijednosti (na primer, "različito od nule i bilo kog drugog
broja," u slučaju brojevnih vrijednosti), i nezavisno od tipa podataka. Takođe se naglašava da takve
reprezentacije sistem mora tretirati dosljedno.
4. Aktivni, uvijek dostupan katalog zasnovan na relacionom modelu:
Sistem sadrži opis baze podataka na logičkom nivou u vidu tabela, tj. relacioni katalog dostupan
autorizovanim korisnicima kroz upotrebu njihovog standardnog jezika za upite. To znači da korisnici
moraju biti u mogućnosti da pristupe strukturi baze podataka (katalogu) koristeći isti jezik za upite
kojim se služe da bi pristupili samim podacima.
5. Pravilo razumljivog podjezika:
Sistem mora da podržava bar jedan relacioni jezik koji
(a) Ima linearnu sintaksu,
(b) može da se koristi i interaktivno i u okviru aplikativnih programa,
(c) podržava operacije definisanja podataka (uključujući definisanje pogleda), operacije
manipulisanja podacima (ažuriranje podjednako kao i izdvajanje), pravila integriteta i autorizaciju,
kao i operacije manipulisanja transakcijama (begin, commit, i rollback).
6. Pravilo ažuriranja pogleda:
Sve poglede koje je teorijski moguće ažurirati, ažurira sistem.
7. Unošenje, ažuriranje i uklanjanje podataka na nivou skupova:
Sistem mora da podržava skupovne insert, update, i delete operatore. To znači da se informacije iz
relacione baze mogu izdvajati u skupovima koje čine podaci iz više redova i više tabela. Ovo pravilo
traži da operacije dodavanja, ažuriranja i brisanja budu primjenjive na bilo koji skup podataka koji se
može izdvojiti iz baze, a ne samo na pojedinačni red u jednoj tabeli.
8. Fizička nezavisnost podataka:
Promjene na fizičkom nivou (način na koji se čuvaju podaci, da li su u pitanju nizovi ili povezane
liste itd.) ne smiju zahtjevati promjene aplikacija zasnovanih na datoj strukturi.
11
izvor wikipedija prema Codd, Edgar Frank (14 October 1985), "Is Your DBMS Really Relational?", ComputerWorld.
35
Modeli i baze podataka
Potpuno relacioni sistem za upravljanje bazom podataka obavezno sistemski podržava predstavljanje
informacija koje nedostaju u bazi, upotrebom tzv. Null vrijednosti, nezavisno od tipa podataka.
Null vrijednost je specifičan indikator različit od praznog niza karaktera ili niza “blankova” i različit
od nule ili bilo kog drugog broja.
RDBMS obezbjeđuje jedinstvenu prezentaciju Null vrijednosti, a na taj način i jednostavno rukovanje tim
vrijednostima. Vrijednost Null može biti potencijalna vrijednost svake kolone bez obzira na njen tip, osim u
slučaju kad se izričito zahtjeva da vrijednosti u nekoj koloni ne smiju biti nedefinisane (dodatno ograničenje
NONULL). Izuzetak predstavljaju kolone primarnog ključa koje, kao identifikatori zapisa u tabeli, ne
smiju uzeti Null vrijednost.
Relacioni sistem posjeduje katalog (riječnik) podataka koji se na logičkom nivou predstavlja na isti način
kao i sami podaci, tako da ovlašćeni korisnici mogu primjenjivati jedinstveni relacioni jezik za pretragu
ovih meta-podataka.
Pod pojmom "katalog" podrazumjeva se direktorij u kojem se nalaze sistemske definicije podataka. Uvidom
u katalog podataka može se saznati koje kolone posjeduju određene tabele, koja su ograničenja definisana,
kao i druge informacije koje se odnose na sistemske tabele. U slučaju distribuiranih baza podataka, katalog
treba da sadrži podatke o lokaciji svakog dijela baze.
Katalog nazivamo “dinamičkim” zbog činjenice da definicije podataka koje se mogu vidjeti odgovaraju
upravo tekućem stanju u bazi podataka. Bez obzira na to koji korisnik, na kojoj lokaciji, ili u kom dijelu
opisa baze napravi neku izmjenu, novo stanje će biti dostupno za čitanje svim ovlašćenim korisnicima.
“On line” pristup katalogu praktično znači da je trenutnom stanju opisa baze obezbeđen neprekidan pristup.
Međutim, sve dok se stanje u opisu baze konačno ne promjeni, ovlašćenim korisnicima je vidljivo stanje
prije promjena. Naime, u relacionoj bazi sve operacije koje mjenjaju opis podataka započinju i završavaju se
određenim naredbama kojima se sistem obaveštava da je ažuriranje kompletno. “On line” uvidom ne vidi se
ni jedna izmjena koja nije konačna.
Važna je činjenica da pravo pristupa opisu baze imaju samo za to ovlašćeni (autorizovani) korisnici.
36
Sistem za upravljanje bazom podataka – Uvod-
Relacioni sistemi u obavezi su da zadovolje pravilo fizičke nezavisnosti čija je suština u sljedećem:
aplikacioni program i aktivnosti na terminalima ostaju neizmjenjeni kada se promjeni fizička organizacija
baze ili fizički metod pristupa podacima.
Aplikacije i programi rukuju podacima isključivo na semantičkom i logičkom nivou. Sama fizička
organizacija podataka predstavlja internu stvar sistema i ima uticaja jedino na performanse (brzinu pristupa
podacima, odziv sistema). Neophodno je da u sistemu postoji oštra granica između logičkog modela
podataka i fizičkog razmještaja podataka na mediju.
Kreiranje i brisanje indeksa nad nekom tabelom iz baze, ne smije imati uticaja na logičku strukturu programa
i naredbi. Kod nerelacionih sistema za upravljanje bazom podataka sami programi bi morali pretrpjeti
izmjene u zavisnosti od postojanja indeksa nad određenim tabelama.
Kada se na tabelama baze izvrše izmjene koje ne izazivaju gubljenje podataka ili logička oštećenja,
aplikacioni programi i aktivnosti na terminalima ostaju logički neoštećeni. Ukoliko RDBMS ispunjava uslov
ažuriranja pogleda onda će bez problema moći da zadovolji i pravilo logičke nezavisnosti.
Kada spajamo dvije tabele mogućnost ažuriranja pogleda nad novom tabelom uslov je za očuvanje logičke
nezavisnosti.
Logička, kao i fizička nezavisnost, za posljedicu imaju jednu veoma važnu prednost koju relacioni sistemi
pokazuju u odnosu na nerelacione. Prednost se sastoji u tome što greške u početnom dizajnu modela
podataka nemaju teške posljedice i dozvoljavaju naknadne korekcije. Projektanti u tom smislu mogu da
bez prevelikog opterećnja kreiraju inicijalne modele podataka, a da ih kasnije, čak i u poodmakloj fazi
implementacije aplikacije, ponovo dorađuju i prilagođavaju novim zahtjevima.
Sva pravila integriteta definišu se u okviru definicije baze podataka i čuvaju se u katalogu podataka, a ne u
aplikacionim programima.
Integritet podataka djeli se na 4 kategorije:
- integritet entiteta,
- integritet domena,
- referencijalni integritet, i
- korisnički definisan integritet.
Integritet entiteta podrazumeva da svaka vrijednost primarnog ključa mora biti jedinstvena na nivou cijele
relacije. Osim toga, mora biti ispunjen uslov da ni jedna stavka u koloni primarnog ključa ne smije imati
NULL vrijednost.
37
Modeli i baze podataka
Integritet domena određuje skup dozvoljenih vrijednosti kolone. Održavanje integriteta domena postiže se
navođenjem dozvoljenog tipa podataka, dozvoljenog formata za unos podataka, ili zadavanjem skupa
mogućih vrijednosti.
Referencijalni integritet odražava definisane odnose (relacije) među tabelama kada se u njih dodaju ili se iz
njih brišu zapisi.
Korisnički integritet omogućava definisanje specifičnih poslovnih pravila. Naime, za bazu podataka mogu
postojati dodatna ograničenja, formirana na osnovu određenih pravila poslovanja, koja definišu važeće
podatke u bazi.
RDBMS treba da obezbjedi definisanje svih navedenih kategorija integriteta podjezikom relacionih
podataka. Kada se pravila integriteta jednom definišu ona sprečavaju upis podataka koji ne zadovoljavaju te
definicije (nekonzistentni podaci).
U slučaju promjene pravila integriteta dolazi do izmjene jednog ili više iskaza ograničenja u katalogu
podataka, ali logička struktura programa i aktivnosti na terminalima ostaju neizmjenjeni.
Jedino moguće sredstvo za čuvanje integriteta baze podataka, kod postojećih relacionih sistema, je korišćenje
tzv. okidača (Triggers). Okidač je pokretač procedure koja se automatski poziva kad god dođe do
dodavanja, ažuriranja ili brisanja podataka u tabeli.
Okidač je objekat baze koji se čuva u katalogu podataka i svaki je pojedinačno pridružen jednoj tabeli, pri
čemu se navodi koje od operacija dodavanja, ažuriranja ili brisanja izazivaju njegovo izvršenje.
Tako se, na primer, za bazu podataka tekućih računa građana u nekoj banci može definisati okidač koji se
izvršava prilikom brisanja slogova iz tabele, a ima ulogu da onemogući brisanje računa čije stanje nije ravno
nuli.
2.11 Tabelarna terminologija
Za kraj ovog poglavlja u Tabeli 2.3 dajemo jednostavan pregled termina koji se koriste u relacionoj algebri i
onih koji su uobičajeni u tabelarnoj terminologiji kod većine programskih jezika koji podržavaju relacione
baze (npr. Access), a koji često izazivaju zabunu.
MOV (Model objekti veze) ili ER model objekti-veze ili Entity-Relationship Model
38