Uvod u web okruženje SQL

Size: px
Start display at page:

Download "Uvod u web okruženje SQL"

Transcription

1 МОDЕLI I BАZЕ PОDАТАKА Uvod u web okruženje SQL Korišteni materijali i reference MySQL 5.6 Reference Manual 1

2 Uvod: Potrebni programi i programsko okruženje Prije početka izrade dinamičkih web sajtova, odnosno projektovanja baza u web okruženju potrebno je obezbjediti programsko okruženje. Mi ćemo pokušati da se upoznamo sa radom sa MySQL sistemom. Kao preduslov za rad sa MySQL-om potrebno je da se upoznamo sa PHP-om. Za rad u PHP-u poželljno je bar elementarno poznavanje HTML-a, a mi ćemo koristiti MS WebExpresion sa kreiranje okruženje u kome ćemo ugraditi PHP. Da bismo mogli da izradjujemo dinamičke web sajtove neophodno je da imamo instaliran php, podignut web server i istaliranu neku od baza podataka (u našem slučaju koristićemo mysql). Postoje gotovi web server paketi koji nam omogućavaju da na veoma jednostavan način instaliramo sve što nam je potrebno za nesmetan razvoj php aplikacija na lokalnom računaru. Mi ćemo koristiti u XAMPP integrisanoj formi. Osnovne osobine Web servera Web server je računarski program odgovoran za prihvatanje HTTP (Hypertext Transfer Protocol) zahtjeva od web klijenata, znanih kao web browser-i, i opsluživanje HTTP odgovora sa opcionalnim sadržajem kao što su HTML dokumenti, vezani objekti, slike, itd... Web serverom se naziva i računar na kojem se vrti program opisan gore, ali ćemo u daljnjim razmatranjima pod web serverom podrazumijevati računarski program ili skup programa i usluga. odnos web servers i database servera Web serveri razlikuju u detaljima, od programa do programa, ali najvažnija karakteristika je da koriste HTTP protokol. HTTP: svaki web server program prihvata HTTP zahtjeve od klijenta i daje HTTP odgovore. HTTP odgovori se sastoje obično od HTML dokumenata, ali to može biti i bilo koji dokument, slika, itd... Ako se desi greška prilikom opsluživanja zahtjeva web server mora poslati broj i opis greške krajnjem korisniku; U praksi web serveri implementiraju i sljedeće funkcije: - Autorizacija: zahtjev za korisničkim imenom i lozinkom prije nego se dozvoli pristup dijelu ili cijelom resursu; -Rukovanje sa statičkim ili dinamičkim sadržajima podržavajući jedno ili više interfejsa: SSI, CGI, SCGI, FastCGI, JSP, PHP, ASP, ASP.NET, ServerAPI kao što je NSAPI ili ISAPI, itd... -HTTPS podrška (SSL ili TLS) za sigurnu šifriranu konekciju na port 443 umjesto uobičajenog porta 80; -koriste tzv. princip logiranja (Logging): obično web serveri imaju mogućnost prikupljanja detaljnih informacija o zahtjevima klijenata i odgovorima servera u tzv. log dokumente koji koriste web urednicima za statističke analize 2

3 Komprimiranje sadržaja (npr. gzip kodiranje) da se smanji veličina odgovora; Virtualni hosting za opsluživanje mnogo web stranica korištenjem jedne IP adrese; Apache (webserver) Apache je naziv platforme web servera (ali isto tako i programske grupe: team-a open source koji razvija software servera, tipa multi-platform) koji radi na različitim operativnim sistemima UNIX-Linux, Windows. Kratka istorija razvoja Apache servera Projekt Apache nastaje godine, a distribucija (termin distribucija koristi se u značenju verzija)ca 1.0 izlazi U razdoblju samo jedne godine njegova popularnost nadilazi onu NCSA (National Center for Supercomputing Application) odnosno servera iz kojeg proizlazi i sam Apache. 2.0 Apache izlazi za vrijeme konferencije ApacheCon, održane u Orlandu, Florida. Velika popularnost ovog softwarea je dokaz njegove kvalitete iako spada u open-source, prema istraživanjima Netcrafta 2005., od 75 miliona web stranica, oko 52 miliona koriste Apache web-server Oktobra godine brojke rastu na 60 milona odnosno (60,32%) ukupno postojećih web stranica. XAMPP Postoje "paketi" softwarea kao sto je Xampp koji se osnivaju na Apache serveru koji objedinjuju aplikacije potrebne za razvoj dinamičnih web stranica razvijenih u PHP programskom jeziku. XAMPP je programski paket koji služi za imitiranje WEBHOST-servera ali na na lokalnom računaru (za podršku PHP programskom jeziku ). Da biste instalirali XAMPP neophodno je da na mreži pronađete instalacioni fajl (potrežite na adresi: Mi ćemo instalirati XAMPP na WINDOWS operativnom sistemu. Postoji instalacija i za LINUX. Nakon downloada pokrenite program. Nakon prokretanja programa pojavljuje se prozor za izbor jezika. Za početak izaberite standardnu procedury (Yes/Next) 3

4 Sljedeći korak je izbor lokacije na kojoj želite da instalirate XAMPP. Izaberite C:\ root direktorijum i kliknite NEXT. Nakon izbora lokacije ostaje da obavimo još neka podešavanja. Tu nam se nudi opcija da XAMPP instaliramo kao servis. Nakon završene instalacije XAMPP paketa program ce vam ponuditi opciju za otvaranje XAMPP control panela. Izaberite opciju YES. Čestitamo, uspešno ste instalirali XAMPP. Na sljedećoj slici vidimo da su Apache i MySql instalirani kao servis, što znači da se aktiviraju odmah nakon paljenja vaseg računara. 4

5 Testiranje XAMPP instalacije Nakon što ste uspesno instalirali XAMPP možete početi da razvijate php aplikacije na svom računaru. Otvorite web browser (npr. mozzila firefox) i u navigation toolbar unesite adresu Nakon što ste ovo uradili potrebno je da dobijete sljedeći prozor odnosno da pristupite XAMPP web aplikaciji na svom računaru. Ukoliko ste dobili sličan rezultat znači da je instalacija uspješno obavljena. 5

6 Uvod u HTML Da bi nastavili sa radom trebamo znati osnovne HTML-a. Da bi mogli nastaviti sa radom daćemo osakaćeni uvid u HTML okruženje. HTML je programski jezik koji se koristi za kreiranje dokumenata na World Wide Web-u. HTML se koristi za stvaranje hipertekstualnih datoteka (datoteka koje sadržavaju linkove). HTML (HyperText Markup Language) je veoma jednostavan jezik čije osnove svatko može savladati za par dana, a kasnije je sve stvar prakse. Kad savladamo osnove HTML-a možemo prijeći na proučavanje nekog naprednijeg korišćenja i dizajniranja u HTML-u. Kada "surfamo" Internetom i naiđemo na neku zanimljivu stranicu, a ne znamo kako je napravljena, njen izvorni HTML kod možemo pogledati ako u liniji menija odaberemo: View / Source (ili View / Page Source). Ovo je najbolji način da naučimo neke nove stvari. Sve što nam je potrebno da bi napravili jednu Web stranice praktično već imamo na računaru. To je prije svega jedan najobičniji tekst editor kao što je Notepad. Umjesto Notepada preporučujem Notepad++. Slijedeća stvar koja nam je neophodna je Web Browser (preporuka IE ili Firefox) Osnovna deklaracija tipa dokumenta <!DOCTYPE> deklaracija na početku html dokumenta omogućava web browseru da prikaže web stranicu ispravno, tj da dokument prepozna kao HTML. U današnjim html dokumentima najčešće se koristi deklaracija: <!DOCTYPE html> odnosno za verziju XHTML 1.0 Transitional: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" xhtml1/dtd/xhtml1-transitional.dtd"> Napomena: Deklaracija nije obavezna, ali se preporučuje. HTML komande HTML komande se pišu u vidu tzv. tag - ova. Jedan tag je u komanda koja govori našem browseru što i kako napraviti tj. na koji način prikazati sadržaj naših stranice. HTML tagovi su "case insensitive" tj. svejedno je da li ih pišemo malim ili velikim slovima. Tagovi se pišu unutar oznaka "<" i ">" (bez znakova navoda) HTML elementi najčešće dolaze u paru, kao <big> i </big>. Prvi element nazivamo početni element, a drugi završni element. Završni element ima isti naziv kao i početni uz razliku što se ispred elementa umeće kosa crta (slash) Tag: <html>. Ovaj tag se nalazi na početku svakog HTML dokumenta i on govori našem browseru da je datoteka koju je upravo počeo učitavati baš HTML dokument i da kao takvog treba i prikazati. Na kraj HTML dokumenta se stavlja završni HTML tag:</html>. Ovaj tag govori browseru da je to kraj našeg HTML dokumenta. Većina tagova ima i početni i završni tag. Završni tag se dobiva dodavanjem znaka "/" i označava mjesto na kojem prestaje djelovanje početnog taga. Postoje i tagovi kod kojih ne moramo stavljati završni tag kao sto je recimo tag <br> koji služi za prelazak u novi red (o ovom tagu ćemo govoriti kasnije u dijelu o formatiranju teksta). 6

7 Struktura HTML dokumenta Svaki HTML dokument se sastoji od dva dijela: zaglavlja (head) i tijela (body). Zaglavlje se odvaja tagovima <head> i </head>, a tijelo dokumenta tagovima: <body> i </body>. Sve ono što napišemo u zaglavlju dokumenta neće se prikazati u prozoru browsera već obično služi samo da pruži neke informacije o našoj stranici. Tako ćemo u okviru našeg zaglavlja svakako staviti tagove: <title> i </title> između kojih ćemo staviti naslov naše stranice. To nije naslov koji će se pojaviti u tijelu naše stranice već onaj naslov koji se pojavljuje u naslovnoj liniji browsera. Pogledajmo naslovnu liniju našeg browsera - ispred imena browsera vidjećemo da piše: "Uvod u HTML". To je zato što smo u zaglavlju ovog dokumenta napisli: <title>uvod u HTML</title> S druge strane sve ono što napišemo između tagova <body> i </body> predstavljat će tijelo našeg dokumenta i pojavit će se kao sadržaj naše web stranice u prozoru browsera (kao što je tekst koji upravo čitamo). Dakle, svaki HTML dokument mora imati slijedeću strukturu: <html> <head> <title>ovdje stavimo naziv Web stranice</title> </head> <body> Ovdje unesimo sve ono što želimo da se vidi u stranici </body> </html> kod HTML dokumenta Vizuelna predstava strukture HTML dokumenta Kreiranje HTML koda korišćenjem Notepada Sad je vrijeme da napravimo prvu web stranicu. Otvorimo novi dokument u Notepad-u i upišimo gornju strukturu HTML dokumenta u kojem ćemo staviti naslov po želji (npr. naše osobno ime), a između body tagova stavimo neki tekst (npr. "Moj prva Web stranica"): <html> <head> <title>milan</title> </head> <body> Moj prva Web stranica </body> </html> Sad snimimo ovaj dokument. U File - Save as dijalog prozoru prvo odaberemo folder u kojem ćemo usnimiti naš Web stranicu. U polje File name upišimo ime naše prve stranice, a kao ekstenziju otkucajmo.htm ili.html (npr. "prva.htm"). U padajućoj listi Save as type odaberimo All Files. Stisnite OK i naša prva html stranica je spremna da je otvori u naš web browser. Ako smo sve ispravno napravili u naslovnici našeg web browsera bi trebalo stajati: Milan, a u prozoru browsera bi trebali vidjeti tekst: Moja prva Web stranica. Mi ćemo u daljem radu uglavnom koristiti WebExpresion za kreiranje HTML dijelova koda. Detalji i pravila potrebna za HTML kodovanje nisu predmet našeg interesovanja, ali su nešto što se podrazumjeva. Preporuka je da instališete i naviknete se na okruženje WebExp., što će vam bitno olakšati rad, ali moguće 7

8 je da koristite i neki drugi program (Adobe( Dreamweaver), pa čak i samoo Notepad. Kreiranje HTML koda u MS Web Expresion Gore je objašnjeno kako se u Notepadu kreira HTML stranica. Sad ćemo to objasniti kao to uraditi u MS Web Expresion. Pokrenemo Exp Web Izbor modova U nju upišemo tekst Iz menija File izaberemo HTML kao prvi mod izaberemo Design i dobijemo praznu stranicus 8

9 Promjenimo mod i izaberemo Code da vidimo šta smo uradili (šta je za nas uradio Web Exp Zapamtimo stranicu i prokrenemo je (pogledamo) u našem browseru. Klijentski i serverski skript jezici Jedan od pravaca razvoja bazira se na razvoju specijalizovanih programskih jezika klijentskih skript jezika, koji omogućavaju da se izvorni programski kod umetne u HTML Veb stranice, i zatim interpretira i izvršava u okviru Veb pregledača. Jezici ovog tipa su JavaScript (kasnije standardizovan kao ECMAScript), JScript, Visual Basic Script,... Klijentski skriptovi mogu da reaguju na akcije korisnika (pokrete miša, unos sa tastature...) i da na osnovu toga menjaju i prilagodavaju sadržaj Veb stranice u koju su umetnuti. Kako bi ovo moglo da se realizuje, neophodno je da postoji način da se iz skript jezika pristupi elementima stranice i u ovom cilju razvijen je objektni model dokumenta (DOM). DOM omogućava da skriptovi vide Kombinovanje HTML-a, CSS-a sa JavaScript-om korišćenjem DOM-a, ponekad se naziva dinamičkih HTML-om (Dynamic HTML - DHTML). Za razliku od klijentskih skriptova, koji su se u obliku izvršnog ili kompajliranog koda prenosili na klijentsku mašinu i na njoj izvršavali, serverski skriptovi predstavljaju programe koji se izvršavaju na serverskoj mašini i rezultat njihovog rada (najčešće u obliku formirane Veb stranice) se šalje klijentu gde se prikazuje. Za razliku od slučaja klijentskih skriptova kada je klijent morao da bude osposobljen da izvršava preneti program (npr. da pregledač poseduje mogućnost izvršavanja JavaScript koda, da je na klijentu instaliran JRE i slično), da bi klijent mogao da koristi serverske skriptove, potrebno je načešće samo da ima elementarne mogućnosti komuniciranja HTTP protokolom i prikazivanja HTML stranica. 9

10 Medutim, ovaj put, serverska mašina mora da bude u mogućnosti da izvršava skriptove. U današnje vrijeme, najčešće korišćeni jezici za pisanje skriptova naa strani servera su PHP, ASP.NET, JSP i Python. Nekada je apsolutnu dominaciju na ovom polju imao programski jezik Perl. Dva su dominantna načina za izvršavanje skriptova od strane Veb servera: CGI i moduli Veb servera odnosno Common Gateway Interface (CGI) i Apache A moduli. Princip rada PHPa Korisnički browseri ne razumiju PHP (niti ASP,, niti CGI,...) ). Kako to sve skupa onda funkciniše? Kada korisnik u svom pretraživaču pozove neku HTML stranicu tada web w server na kojemu se ta stranicaa nalazi pošalje korisniku tu stranicu i ona se učita u browser (i to prvo HTML kod paa tek onda ostali sadržaji kao što su slike, zvukovi itd.) Šta se zapravo događa kada neki korisnik u svom internett browseru pozove p nekuu PHP (ili ASP ili CGI) ) skriptu? Tada web server na kojemu se nalazi ta skripta počne izvršavati tu skriptu, a skripta kreira HTML sadržaj koji se šalje korisniku (i kojii njegov browser razumije). Sama PHP skripta može imati na različite r načine isprepletene PHP i HTML H dijelove. Moguće je imati u osnovi HTML osnovu u koju je ubačen PHP dio. Moguće je isto tako daa je čitava skripta u php-u a u njemu definiramo HTML dijelove. U svakom slučajuu skripta mora imati nastavak PHP, a broj izmjena PHP i HTML dijelova treba svesti na razumnu mjeru. Jedan od osnovnih principa kojim sii možemo olakšati rad u PHP-u i koji se proporučuje je da izgled stranice (HTML dio) odredimo u nekom WYSIWYG editoru (Macromedia DreamweaverD r, Microsoftt FrontPage- WebExpress) pa onda taj kod prekopiramo u PHP. Neki "pametniji" HTML editori omogućavaju i olakšavaju direktan rad u PHP-u. Moja prva php stranica Kada instaliramo sve što nam je potrebno krećemo s izradom stranica. U Microsoft Expression Web iz menija File biramo New i odaberemo PHP. Za ime dokumenta predlažem primjer1.php. Dokument ćemo ć odmahh snimiti i to u novu mapu proba1 u mapi servera za objavljivanje dokumenata (to je mapa appserv/www, ili mapa xampp/htdo cs, zavisno koju instalaciju u ste odabrali). Ovo treba zapamtiti: z mapa www ili htdocs je mjesto u koje stavljamoo svoje stranice i to je root našeg web servera. s Zbogg bolje organizacije, kad god radite neki n novi projekt napravite za njega novu mapu unutar te mape. U Microsoft Expressionn Webu se prebacite u Code View Primjetite da je osnovna struktura HTML dokumenta već tu: postoje tagovi za zaglavlje i tijelo dokumenta, naslov stranice itd. 10

11 mjesto (unutar body strukture) gdje se ubacuje PHP kod Jezičak za izbor Code View-a Najčešći način rada s PHP-om je takav da u postojeću HTML strukturu ubacimo u PHPP dijelove. Svaki PHP dio započinje sa oznakom <?php a završava sa oznakom?>. Primjera radi, unutar body tagova ubacite slijedeću strukturu: <?phpp echo" "PHP ispis: moja prva stranica";?> Snimite stranicu. Pokrenite web browser. U adresnu traku napišite: i vaša prva stranica je pred vama! Šta se zapravo dogodilo? Kad god u browseru zatražite stranicu čija adresa počinje sa (primjetite: nema www!) to zapravo znači da pokrećete stranicu lokalno sa servera na vašem računalu. Ta adresa odgovara mapi www unutar mape AppServ (ili mapi htdocs unutar mape xampp). Ostatak adrese je putanjaa do stranice koju smo napravili (/proba1/primjer1.php). Šta se dogodilo na serveru? Kad smo mi u browseru zatražili prikaz te stranice, server je prepoznao da d je riječ o php stranici, djelove koji su čisti HTML i nalaze se izvan <??php i?> tagova poslaoo je odmah browseru, b a ono unutar tih t tagova je izvršio, naredba echo znači ispiši, odnosno dodaj HTML dokumentu. Ako u svom web browseru pogledate HTMLL kod (desni klik > View Source) vidjet ćete da nema ni traga PHP-u, tu je samo čisti HTML. Gornji primjer nije jedini način kako se može koristiti PHP. Unutar navodnika n naredbe echo mi možemoo navesti i različite HTML tagove i njihove dodatne argumentee kako bismoo imali kontrolu nad izgledom teksta. Za ilustraciju malo ćemoo obogatiti naš prvi primjer i unutar tagova <?php i?> dodati slijedeću naredbu: echo"<br>ovo je link na stranice škole: <a href=\" \"> link </a>"; Ovaj put smo unutar naredbe echo ubacili i link. Primjetite znakove \ ispred navodnika. Oni nam trebaju jer kažu naredbi echo da tu nije kraj onoga šta onaa treba ispisati već da ona treba ispisati navodnike (sjetite se kako se zadaje link HTML-om). Ako bismo bili ekstremni u takvoj upotrebi PHP-a, tad bismo cijelu stranicu mogli staviti unutar <?php i?> tagova i sve elemente stranice ispisati naredbom echo. To je moguće, no najčešće nije baš praktično. Naučili smao kako napraviti i kako spremiti s phpp stranicu. Isto tako naučili smo kako provjeritii šta smo to zapravo napravili uz pomoć lokalno instaliranog web servera. Još jednu ilustracijuu rada PHP: 11

12 SQL SQL (Structured Query Language) je relacioni upitni jezik (ANSI i ISO standard). Relacije se kreiraju jednom naredbom i odmah su dostupne, što ga čini jednostavnim za korišćenje. Uniforman je jer se svi podaci i rezultati operacija prikazuju u vidu tabele i omogućava interaktivno i klasično programiranje. Sve do verzije SQL:1999 ovaj jezik je bio neproceduralan 1, odnosno njime se specificiralo ŠTA, a ne i KAKO nešto treba uraditi. Novije verzije SQL-a imaju mogućnosti proceduralnog jezika, naročoto PL/SQL. Kombinovanjem naredbi jezika treće generacije i SQL-a omogućava, sa jedne strane korišćenje proceduralnih karakteristika jezika treće generacije (sekvenca, selekcija, iteracija, procedura, podprograma), a sa druge strane pristup podacima u bazi podataka pomoću SQL-a Do sada su baze podataka bile korišćene iz programskih jezika miksanjem naredbi programskog jezika i upitnog jezika. I mi ćemo koristiti ovaj pristup koristeći MySQL i PHP. Istorijat Tvorac SQL-a je Chamberlin, a nastao je u IBM-u godine, na istom mestu gdje je E. F. Kod 1970 definisao osnovne koncepte relacionog modela podataka. Jezik se u početku zvao SEQUEL (Structured English Query Language) i predstavljao je programski interfejs (API) za System R, prototipski sistem za upravljanje bazom podataka (SUBP) koji se razvijao kao dio istraživačkog projekta pod istim nazivom. Pojava komercijalnih relacionih sistema uvećala je značaj i ubrzala proces standardizacije relacionog upitnog jezika. Prva etapa tog procesa završila se godine usvajanjem SQL-a kao standardnog relacionog upitnog jezika. Ta prva verzija SQL standarda je poznata pod nazivom SQL-86. Njom su standardizovane osnovne karakteristike SQL-a kao deklarativnog relacionog upitnog jezika. MeÄ utim, mnoge bitne karakteristike jezika ostale su nestandardizovane. To je dovelo do revizija standarda, koji je usvojen godine i kojom su standardizovane karakteristike koje se odnose na očuvanje integriteta baze podataka i povezivanje sa klasičnim programskim jezicima. Ta verzija SQL standarda poznata je pod nazivom SQL godine usvojena je sljedeća bitna revizija standarda, poznata pod nazivom SQL-92 ili SQL-2, kojom je SQL zaokružen kao programski jezik, a obim standarda uvećan šest puta u odnosu na polaznu verziju. Naredna verzija SQL standarda usvojena je godine. Iako su početne verzije SQL-a bile prilično jednostavne, bliske korisniku i u velikoj mjeri deklarativne za SQL:1999 se može reći da je kompleksan, proceduralno/deklarativan jezik i da je označio prekretnicu i omogućio masovnu upotrebu SQL-a Postoje različite verzije SQL jezika Iako je SQL je ANSI (American National Standards Institute) standard.. SQL:2003 Standard SQL:2003 se popularno naziva standardom ispravljanja grešaka standarda SQL:1999 ( bugfix release - revizija standarda SQL:1999), osim u domenu podrške XML-u. Uprkos tome, ovaj standard ima i niz novih rješenja, a glavna su: Novi tipovi podataka Uklonjeni su BIT i BIT VARYING tipovi zbog nedostatka podrške u implementacijama, a dodata su tri nova tipa: BIGINT, MULTISET, XML. Proširenja SQL-rutina Definisane su funkcije koje proizvode tabele, a mogu da budu zadate nekim ne-sql jezikom ili SQL izrazom. Na primer, funkcija weather, napisana u C-u ili, funkcija DEPTEMPS realizovana u SQL-u; Novi MERGE iskaz je, pored INSERT, UPDATE, DELETE iskaza, još jedan iskaz ažuriranja u SQL-u. OLAP - Online analytic processing (OLAP) se koristi u poslovanju za analizu velikih kolicina podataka da bi se otkrile cinjenice i trendovi koji mogu da uticu na poslovne odluke. Operator CUBE omogucuje agregiranje podataka po više dimenzija (npr.datum, mesto, kategorija) u jednom upitu. Operator WINDOW omogucuje primenu agregatnih funkcija na "pokretni prozor" kroz kolekciju podataka. Multimedija SQL Standard je proširen posebnim ali blisko povezanim standardom SQLMultimedia and Application Packages koji se često naziva SQL/MM. SQL:2006 SQL:2006 je samo dopuna standarda SQL:2003 koja se odnosi na podršku XML-u u bazama podataka. Preciznije, ISO/IEC :2006 definiše kako se SQL koristi zajedno sa XML-om. Definiše načine za importovanje i skladištenje XML podataka u SQL bazi podataka, kako se manipuliše njima u bazi podataka i kako se objavljuju (publikuju) XML podaci i konvencionalni SQL podaci u XML obliku. SQL:2006 obezbjeđuje mogućnost integracije (u aplikaciji) SQL koda i XQuery, XML upitnog jezika (W3C), kao i konkurentni pristup "običnim" SQL podacima i XML dokumentima. Trenutno preivlađujuća i važeća je verzija propisana standardima ISO / IEC : 2008, koji propisuje minimalne zahtjeve sa dodacima ISO / IEC : 2008; ISO / IEC : 2008koji propisuju dodatke (ekstenzije). 1 proceduralni program predstavlja niz naredbi programskoga jezika čiji unaprijed utvrđeni slijed opisuje uzastopne korake transformacije ulaznih podataka u tražene rezultate; i odgovara mogićnosti formalzaciije i zapis algoritma 12

13 U SQL su uključeni koncepti objektne tehnologije, mehanizam trigera, rekurzija i proceduralna p proširenja. Da bi se povećalaa funkcionalnost jezika, u SQL je uvedenaa proceduralna nadgradnja SQL-a, koju uglavnom čine upravljačke struktrure slične upravljačkim strukturama klasičnih programsih jezika. SQL-1999 standardd definiše više načina korišćenja SQL-a. Dva osnovna načina su direktno (interaktivno) korišćenje SQL-a i povezivanje SQL-a sa klasičnim programskim jezicima (ugrađeni SQL). Bez obzira koju verziju i distribuciju SQL-aa koristil,i svi SQL jezici su uglavnom u skladu s ANSI standardom, svi imaju i sličan set glavnih komandi (kao što su SELECT, UPDATE, DELETE, INSERT, WHERE) i ponašaju se na sličann način. Relacion algebra i relacioni račun Relaciona algebra Relaciona algebra je familija algebri sa dobroo zasnovanom semantikom koja see koristi za modeliranjee relacija (objekata) smještenih u relacionojj bazi podataka i za z definisanje upita nad njima. Relacioni operatori: Codd je originalno predložio 8 operatora: Restrikciju (selekciju), Projekciju, Proizvod, Uniju, Prjesek, Razliku, (Prirodno) Spajanje, Dijeljenje; Kasnije su dodati operatori: Rename, Semijoin, Extend, Summarize. Dodatni operatori: RENAME - promjena naziva relacije, SEMIJOIN - Spajanje relacija A i B projektovano o na atribute relacije A, EXTEND - proširuje relaciju novim atributom, SUMMARIZEE - omogućava sabiranje po kolonama. Minimalni skup operatora sadrži: restrikciju, projekciju, proizvod, uniju, u razliku. Relacioni opertori 13

14 Dijeljenje Unija Osobina da su i argumenti i rezultat primjene bilo kog relacionog operatora takođe relacije se nazivaa relaciono zatvorenje. Ako su u listi navedeni svi atributi relacije A tada je projekcija identitet. Svrha relacione algebre: pisanje relacionih izraza koji se koriste zaa definisanjee prostora za dohvatanje podataka, definisnje prostora za ažuriranje podataka, definisanje pravila integriteta, definisanje izvedenih relacija, definisanje pravila zaštite; osnova za optimizaciju upita. Relacioni račun Relacioni račun je opisan, neproceduralan jezik, logički ekvivalent relacione algebre ako se posmatra dio relacionog modela podataka za obradu podataka a i zasnovan je na predikatskom računu. Postoje dvije varijante: račun orijentisann ka torkamaa i račun orijentisann ka domenima - osnova a za QBE. Predikatski račun: Predikat je istinitosno vrjednosna funkcija sa argumentima, i kada se argumenti zamjenee vrijednostima funkcija daje izraz koji se naziva predlog koji može da bude tačan ili netačan. Opseg promjenljivih: promjenljiva torki ima opseg iz skupa navedenihh relacija i dopuštene vrijednosti koje pripadaju torkama iz tih relacija, promjenljiva domena ima opseg iz skupa navedenih domena i dopuštenee vrijednosti koje pripadaju tim domenima. Neka je x predikat. Tada se skup svih x takavv da je P tačno za x označava sa {x p(x)} i postoje dva kvantifikatora: : 'za svaki', : 'postoji'. Relacioni račun torki: : slobodne i vezane promjenljive. Korišćenjem promjenljivihp h torki traže se torke za koje je predikat tačan. Postoje dva kvantifikatora a: FORALL V (p), EXISTS V (p). Kvantifikacija i rad sa slobodnim i vezanim promenljivim su u skladu saa pravilima predikatskog računa.! Relacioni račun domena: opseg važenja promjenljivih su domeni a nee relacije, moguće je definisati uslov pripadnosti.. Sintaksa ovog računa se u literaturi prikazuje na različite načine RANGE OF <promenljiva> IS <tabele> RETRIEVEE <promenljiva>.<imeatributa> [WHERE<uslovni izraz>] 14

15 ili RANGEVAR <promenljiva> RANGES OVER < <tabela> <promenljiva>.<imeatributa> [WHERE<uslovni izraz>] Uslov je tačan ako postoji torka u relaciji R takva da je za svaki konkretan par poređenje A=x tačno Na primjer, ISPIT {INDEKS INDEKS( ), ID_PREDMETA ID_PREDMETA(1001)} ima vrijednost tačno akko postoji torka u ispitu koja ima vrijednost za atribut indeks i i 1001 zaa atribut id_predmeta Algebra i račun su semantički ekvivalentni. Neki upitni jezici su više zasnovani na algebri, a nekii na računu - SQL ima osobine i algebre i računa. Jezik je relaciono kompletan ako je moćan isto kao i algebra, tj. ako biloo koja relacija predstavljiva u algebri može da se predstavi i u jeziku. SQL je relaciono kompletan jer postoje SQL izrazi za svaki od 5 primitivnih operatora relacione algebree (restrikciju, projekciju, proizvod, uniju, razliku).. 3VL logika (trovalentna logika) Zašto nedostajuće vrijednosti? U svakodnevnoj praksi se često avlja problemm nedostatka podataka:...datum rođenja nepoznat... ;...iz izborne jedinice XX nedostaju podaci... Očigledna je potreba da se indikator o nedostatku vrijednosti čuvaa u bazi, i da se na odgovara-jući način vrši obrada takvih podataka. Tako se dolazi do viševalentnih logika u relacionom modelu. Codd je predložio korišćenje 4-valentne logikee jer postoje dvije vrste nedostajućihh vrijednosti: vrijednost nepoznata, vrijednost nije primjenljiva, vrijednost ne postoji. Očigledno često postoji PROBLEMI SA NULL-ama, i to problemi sa proširenjem operacija relacionee algebre na NULL-e: Definisanje operacije selekcije: ako ispitujemo neku osobinu zapisa, kao Bodovi > 40, i za neki zapis Bodovi su NULL, što da radimo? 15

16 Definisanje presjeke i razlike dviju relacija: jesu li dva zapisa <Jovan,NULL< L> i <Jovan,NULL> istii ili ne? Dodatni problemi za SQL: da li tretirati NULL-e kao duplikate? Da li da ih uključimo u račun (suma, srednja vrijednost,...) i ako da, kako?? Kako da se aritmetičkee operacije ponašaju kada je argument NULL? Najčešći pristup prihvaćen i u praksi je korišćenje 'nedostajuće vrijednosti' (NULL. Za procjenu uslova umjesto uobičajene binarne-bulove (dvo-vrijednosne) logike upotrijebiti trovalentnu (tro-vrijednosnu) logiku odnosno 3VL logiku. Kada nema NULL-a, uslovi se procjenjuju kao istina (true) ili neistina (false), ali akoo NULL-e postoje, uslov će se procjenjivati i kao treća vrijednost - nedefinisano, ili nepoznato ). Ovo je ideja za provjeru uslova u WHERE klauzuli SQL SELECT-a: Biće vraćeni jedino zapisi gdje je rezultat provjere uslova istina. SQL pri primjeni WHERE klauzule na tabelu eliminiše sve redove zaa koje se izraz u WHERE ima izrazz netačno ili nedefinisano. Test za null: IS [NOT] NULL. 3VL logika: tri vrijednosti: tačno, netačno i nepoznato. Operatori: I (AND), ILI (OR), i NE (NOT). Ponekad (rjeđe) se koristi i notacija: false=0, true=1, unknown=1/2, NOT(x)=1-x, AND(x,y) = min(x,y), OR(x,y) = max(x,y) Baze i relacione baze osnovni termini i pojmovi Ako ste pročitali (i djelimično shvatili) predhodno poglavlje daćemo još neke pojmove za rad sa bazamaa podataka. Bazu podataka je zbirka informacija koje se organizovane u tabele i u druge vrste objekataa zbog tačno određene namjere kao što je pretraživanje,sortiranje i obradaa podataka. Fizička reprezentacija baze podatakaa se sastoji od dviju ili više datoteka na n disku. U logičkom smislu bazaa podataka sastoji se od većeg broja objekata-tabe ela, indeksa,itd. Baza podataka je skup povezanih podataka koji se nalaze u nekom informacionom sistemu,tj. u nekoj organizacijii, i ona sadrži podatke koji se sastoje iz različitih objekata nekog n poslovnog sistema (npr. razne usluge, poslovni partneri i sl.). Podaci u bazi podataka služe za jednu ili više aplikacija, i nezavisni su o programimaa u kojima se obrađuju, a pristup njima je kontrolisan. Relacione baze podataka su danas najčešće korištene baze podataka. Relaciona baza podataka se sastoji od skupa različitih relacija (tabela). Tabela odgovara pojmu relacije iz standardnog (opšteg) relacionog modela baza podataka. Entitet (Entity) Svaku realnu činjenicu ili pojavu, bez obzira na suštinu nazivamo entitetom. Entitetee razlikujemo na osnovu osobina: Atributa. Šta je relacija? Entitet možemo definisati kao objekat o kome želimo da sakupljamo informacije, tada je relacija opis vezee između dva ili više entiteta. Jedan red tabele predstavlja jednu n-torku ili jednu pojavu relacije, što odgovara jednoj pojavi tipa entiteta. Kolona u toj tabeli ili polje (field) odgovara jednom atributu (osobini) tipa entiteta. 16

17 Definicija tabele se u krajnjoj liniji i svodi na too da se definiše lista field-ova jedne tabele i da se svako polje (field) okarakteriše nizom osobina. Neke od tih osobina je neophodno odrediti, neke se mogu i preskočiti". Kada se definišu sve tabele na osnovu relacione šeme, potrebno je još uspostaviti i veze (relationships) među tabelama koje su u vezi. Peciznije, naznačavaa se preko kojih polja su s tabele u vezi, da se unutar baze podataka brine i o integritetu (tačnosti) baze podataka. Baza podataka (Database DB) Grupa tabela podataka koje sadrže srodnee podatke. DB se može sastojati od samo jedne tabele (najčešće to nije slučaj). Tabela (Table) Grupa slogova podataka. Svi slogovi su isto organizovane grupe podataka - polja. Slog (zapis) (Record) Jedinstveni zapis (vrsta) u tabeli koji se sastoji od više polja sa podacima, u opštem slučaju, različitoga tipa. Polje (Field) Pojedinačni podatak - stavka u slogu. Primjer: u telefonskom imeniku su četirii polja: prezime, ime, adresaa i telefonski broj. Relacioni model Relacija Torka Atribut Domen atributa Šema relacije Kardinalnost Primarni ključč Baza podataka Tabela Vrsta (redd u tabeli) Kolona Tip podatka kolone skup važećih vrijednosti v (tipova) Opis tabele broj torkii atribut (ilii kombinacijaa atributa) kojaa jedinstveno identifikuje tabelu ekvivalencija: Relacioni model-baza podataka Primjer koji ilustruje ekvivalencije iz i gornje tabele Relacija ipak nije isto što i tabela (na kakve smoo mi navikli) jer tabela može da sadrži duplirane redove r dok relacija ne može, redovi u tabeli su uređeni u redosljedu od vrha ka dnu, dok za relaciju to ne važi, kolone u tabeli su uređene u redosljedu slijeva udesno, dok za relaciju to ne važi. 17

18 Definiciju baze podataka nazivamo relacionom šemom baze podataka jer se sastoji od naziva relacija i popisa atributa koji ulaze u sastav relacija. Relacija se sastoji od redova i kolona (atributa). Atribut je svojstvo koje koje posjeduje neki entitet. Skup atributa čijim se podacima može identfiikovati svaki red se naziva primarni ključ. Referencijali integritet je odnos između primarnog ključa (npr. kupca) i vanjskog ili stranog ključa (npr. šifra dobavljača). Praktični primjeri Zadatak1: Izbor relacija Ako je neophodno projektovati bazu podataka koja se odnosi na preduzeće, prepoznati entitete i njihova svojstva, koje ćete predstaviti relacijama u relacionom modelu, odnosno tabelama u bazi podataka. Rješenje: Pretpostavimo da preduzeće ima više radnika, i za svakog od njih treba čuvati informacije: ime, matični broj, stručna sprema, datum rođenja, pol, plata, adresa. Neka je preduzeće organizovano u sektore (sektor ima naziv, broj). Podaci o radnicima preduzeća se mogu predstavljaju relacijom/tabelom RADNIK sa atributima LIME (lično ime), SSL (srednje slovo), PREZIME, MBR (matični broj), DATRODJ (datum rođenja), POL, PLATA i ADRESA. Niže je prikazana jedna instanca relacije RADNIK (tabela RADNIK) i jedna instanca relacije ODELJENJE (tabela SEKTOR). RADNIK LIME SSL PREZIME MBR DATRODJ POL PLATA ADRESA Ivana S Gocić Ž Niška 4 Milan I Savić M Humska 2 Ana P Rodić Ž Savska 34 Pera K Kostić M Čairska 3 SEKTOR BRSEK NAZIV SEKTORA SBROJ 40 projektovanje 60 proizvodnja 80 razvoj Zadatak 2: Domeni atributa Identifikovati domene atributa relacije RADNIK iz prethodnog primjera. Rješenje : Domeni nekih atributa relacije RADNIK su prikazani u sljedećoj tabeli: Atribut Domen Značenje Definicija domena LIME Imena Osoba Skup mogućih imena osoba Niz karaktera, dužine do 15. PREZIME Prezime Osoba Skup mogućih prezimena osoba Niz karaktera, dužine do 15. MBR Maticni Broj Skup mogućnih matičnih brojeva Cijeli brojevi, napr. opsega * radnika DATRODJ Datum Rodjenja Moguće vrijednosti za datume rođenja Datum, opseg, od 01-JAN-44 nadalje zaposlenih u preduzeću POL Pol Pol radnika Karakter (1), vrednost M i Ž PLATA PlataRadnika Moguće vrednosti plata radnika Broj, opseg od minld do , gdje je minld minimalni republički lični dohodak ADRESA AdresaRadnika Moguće adrese radnika preduzeća Niz karaktera (30) 18

19 SQL naredbe Iako se naziva upitnim jezikom. SQL ima naredbe za sveobuhvatan rad s relacionom bazom podataka. SQL je nazvan jezikom iako on nije potpun programski jezik. Npr. u njemu se uobičajeno ne nalazi If...Then...Else konstrukcija za ispitivanje uslova, a nema ni konstrukciju za logičku strukturu petlje Do...While ili For...Next. SQL je uglavnom zasnovan na relacionom računu, s time da je matematička notacija zamijenjena naredbama (ključnim-rezervisanim riječima) nalik na govorni engleski jezik. Upit se postavlja fleksibilnom naredbom SELECT. Rezultat upita se shvata kao nova privremena relacija, izvedena iz stalnih. Najćešće se SQL razvrstava na tri kategorije naredbi: 1. Naredbe za definisanje podataka (Data Definition Statements) omogućavaju definisanje resursa i logičkog modela relacione baze podataka: CREATE TABLE kreiranje fizičke tabele baze podataka, CREATE VIEW kreiranje virtuelne imenovane tabele, pogled, CREATE INDEX kreiranje indeksa nad jednom ili više kolona tabele ili pogleda, ALTER TABLE izmjena definicije tabele, izmjena, dodavanje ili uklanjanje kolone (atributa), DROP TABLE uklanjanje tabele iz baze podataka, DROP VIEW uklanjanje pogleda iz baze podataka. 2. Naredbe za rukovanje podacima (Data Manipulation Statements) omogućavaju ažuriranje podataka u širem smislu (izmjenu, dodavanje i brisanje) i izvještavanje (pribavljanje novih informacija) iz baze podataka: SELECT pristup podacima i prikaz sadržaja baze podataka, INSERT unošenje podataka, dodavanje redova u tabelu, Sintaksa: INSERT INTO tabela (kolone)values (podaci); Primjeri: INSERT INTO artikli (naziv, cijena)values ('Špageti', 5); INSERT INTO godine (godina, opis)values (YEAR(NOW()), 'godina izbora'); DELETE brisanje podataka, izbacivanje redova iz tabele, Sintaksa: DELETE FROM tablica WHERE uslov; Oprez!!! Nemojte zaboraviti WHERE uvjet jer će inače svi podaci biti izbrisani! Primjer: DELETE FROM artikli WHERE id=20; UPDATE ažuriranje, izmjena vrijednosti podataka u koloni. Sintaksa: UPDATE tabela SET kolona=podatak,...where uslov; Primjer: UPDATE artikli SET cijena=500 WHERE id=1; 3. Naredbe za upravljanje bezbjednošću podataka (Data Control Functions) omogućavaju oporavak, konkurentnost, sigurnost i integritet relacione baze podataka: GRANT dodjela prava korišćenja tabele drugim korisnicima od strane vlasnika tabele, (sva prava ALL, svim korisnicima PUBLIC) REVOKE oduzimanje prava korišćenja tabele drugim korisnicima, BEGIN TRANSACTION početak transakcije koji se može završiti jednom od dvije naredne naredbe: COMMIT WORK prenos dejstva transakcije na bazu podataka, ROLLBACK WORK poništavanje dejstva transakcije na bazu podataka. SQL po standardu 1999 razvrstava SQL naredbe u sljedećih 7 kategorija: 1. Naredbe za šemu baze podataka (SQL-schema statements) - za kreiranje, izmenu i izbacivanje šema i objekata šema (CREATE, ALTER, DROP) 2. Naredbe za podatke (SQL-data statements) - za prikaz i ažuriranje podataka baze (SELECT, INSERT, UPDATE, DELETE) 19

20 3. Naredbe za transakcije (SQL-transaction statements) - za startovanje, završavanje i postavljanje parametara za transakcije (COMMIT, ROLLBACK) 4. Naredbe za kontrolu (SQL-contol statements), koje se koriste za kontrolu izvršavanja sekvence SQL naredbi (CALL, RETURN) 5. Naredbe za konekcije (SQL-connection statements) - za uspostavljanje i prekidanje SQL konekcije (CONNECT, DISCONNECT) 6. Naredbe za sesije (SQL-session statements) - za postavljanje default vrijednosti i drugih parametara SQL sesije (SET) 7. Naredbe za dijagnostiku (SQL-diagnostic statements) - signalizuju izuzetke u SQL rutinama (GET DIAGNOSTIC) Sintaksa SQL naredbi Upoznavanje sa sintaksom i sematikom 2 pojedinog programskog jezika znači ustvari učenje pisanja programskog koda-programiranja. Ovdje ćemo dati samo uvodne napomene kako da pišete programske naredbe i promjenjive. SQL spada u takozvane no-case-sensitive programske pakete, što znači da se naredbe, ključne riječi, imena objekata i varijabli mogu pisati i malim i velikim slovima, a da sistem pri tome ne pravi razliku među njima. Međutim, i pored toga, zbog preglednosti napisanog programa, preporučljivo je dosljedno koristiti mala i velika slova. SQL naredbe po pravilu se završavaju interpunkcijskim znakom (;) Između bilo koje riječi se može preći u novi red. SQL nije case sensitive, ali imena tabela jesu! 7 Ako neka tabela sadrži ime neke ključne riječi, potrebno ju je označiti sa specijalnim navodnikom: `. (AltGr+7 na tastaturi). Jednostavnosti radi, te navodnike, odnosno takav sadržaj treba izbjegavati. Jednostruki navodnici se koriste za oznaku stringova. Primjer: SELECT 'Hello\nworld! :)'; Pun naziv objekta specificira se u obliku: <naziv kataloga>, <naziv šeme>, <naziv objekta> Osnovne (ne i jedine) naredbe SQL-a koje se koriste u manipulisanju podacima u relacionoj bazi podataka omogućavaju definisanje, korišćenje i zaštitu podataka. Formalno SQL jezik je podijeljen na nekoliko jezičkih elemenata odnosno kategorija naredbi: 1. Upiti (Queries), koji vraćaju podatke na osnovu određenih kriterijuma. Ovo je najvažniji element SQL. 2. Klauzule (Clauses), koje su sastavni dijelovi izjava i upita. (U nekim slučajevima klauzule su opcione). 3. Izrazi (Expressions), koji mogu da proizvedu ili skalarnu vrijednost ili tabele koje se sastoje od kolona i redova sa podacima. 4. Predikata (Predicates), koji se koriste za ograničavanje efekata izjava i upita, ili za promene toka programa. 5. Izjave (Statements), koje mogu da kontrolišu transakcije, protok programa, veza, ili dijagnostiku. Sve ove kategorije ćemo analizirati u poglavlju SQL upiti, jer korišćenje klauzula, izjava i predikata omogućava kreiranje i realizaciju upita. 2 semantika skup pravila koja daju odgovor na pitanje što znači neka naredba sintaksa pravila koja određuju pripada li skup simbola jeziku ili ne 20

21 Struktura SQL a Definisanje strukture SQL znači definisanje: Domena Indeksa Kataloga Šema Tabela Definisanje strukture znači da smo ranije kreirali model baze podataka koji nam je to omogućio. A opet model baze podataka nastao je na osnovu analize problema kojeg želimo rješiti upotrebom baze podataka. što smo obavili prije nego smo pristupili izradi modela baze. Znači prije nego što pristupimo definisanju strukture baze neophodno je uraditi analizu i napraviti model baze, potom ćemo definisati elemente SQL-a. Analiza i izrada modela suu temelj SQL-a. Domen Domeni se definišu kao skupovi iz i kojih atributi relacijee uzimaju svoje vrijednosti. Domen je u SQL-u prost, korisnički definisan imenovann objekat. Uobičajeno je da se domeni podijelee na: -Predefinisane domene, domeni koji postoje u jezicima baza podataka. -Semantičke domene, koje korisnik definiše nad predefinisanim ili prethodno p definisanim semantičkims m domenima ugrađujući u definiciju neko ograničenje i dajući im na taj nnačin određeno značenje zbog čega se i nazivaju semantički. Semantički domeni se jošš nazivaju i apstraktnim ili i korisničkii definisanim domenima. Semantički domeni su apstraktni tipovi podataka, odnosno objekti koje definiše d korisnik. Mada je iz definicije vidljivo da se pod domenomm podrazumjeva nešto širi pojam, pojednostavljeno ćemo smatrati da je: Domen = tip podataka SQL podržava osam predefinisanih domena; osam tipova podatakaa je mogućee koristiti kao unaprijed definisane ugrađene - sistemski predefinisane,, a po potrebi se iz njihh mogu izvesti-definisati korisničkii definisan (SRBR, PRBR,...i neki drugi). Ugrađeni SQL domeni su: 1. brojevi (numbers), 2. nizove karakteraa (character strings), 3. nizove bitova (bit strings), 4. datumi (dates), 21

22 5. vremena (times), 6. kombinacija datuma i vremena (timestamps), 7. intervali godina/mjesec (year/month intervals), 8. intervali dan/vrijeme (day/time intervals). Numerički tipovi Tačni Približni INTEGER (INT) SMALLINT NUMERIC DECIMAL (DEC) REAL DOUBLE PRECISION Tekstualni tipovi CHARACTER (CHAR) CHARACTER VARYING (CHAR VARING, VARCHAR) CHARACTER LARGE OBJECT(CHAR LARGE OBJECT, CLOB) Binarni tipovi BIT BIT VARYING BINARY LARGE OBJECT (BLOB) Datumski tipovi DATE TIME TIMESTAMP TIME WITH TIMEZONE TIMESTAMP WITH TIME ZONE Intervalni tipovi Godinamesec Danvreme(neki iz grupe) INTERVAL YEAR INTERVAL MOUNTH INTERVAL YEAR TO MOUNTH INTERVAL DAY INTERVAL DAY TO HOUR FLOAT INTERVAL HOUR TO MINUTE Kreiranje domena (definisanje tipova podataka) Postoje tri osnovne naredbe za definisanje domena: CREATE DOMAIN ALTER DOMAIN DROP DOMAIN (RESTRICT, CASCADE) Domen se kreira naredbom: CREATE DOMAIN <naziv domena> [AS] <predefinisani tip> [DEFAULT <Vrijednost>] [[CONSTRAINT <naziv ograničenja>] CHECK (<ograničenje>)].. Definicija domena se mijenja naredbom ALTER : ALTER DOMAIN <naziv domena> SET DEFAULT <Vrijednost> DROP DEFAULT ADD [CONSTRAINT <naziv ograničenja>] CHECK (<ograničenje>) DROP CONSTRAINT <naziv ograničenja> Domen se uništava naredbom: DROP DOMAIN <naziv domena> 22

23 Indeksi Indeksi su strukture podataka koje olakšavaju i čine efikasnijim pristup podacima baze. Vrijednosti indeksiranih kolona mogu biti jedinstvene (primarni ključ) ukoliko se pri kreiranju izabere varijanta UNIQUE. CREATE [UNIQUE] INDEX <naziv indeksa> ON (<naziv tabele> ( <naziv kolone1> [, <naziv kolone2>,..]) ; Izbacivanje indeksa se vrši naredbom: DROP INDEX <naziv indeksa> Šema Šema je kolekcija tabela, pogleda, domena, tvrdnji (assertions). Šema predstavlja kolekciju svih objekata koji dijele isti prostor imenovanja. Šema može sadržati jednu ili više tabela, a svaka tabela može pripadati logički tačno jednoj šemi. Svaki objekat (tabela, pogled, itd.) pripada tačno jednoj šemi. Pod pripadnošću se ne podrazumjeva fizička pripadnost, već hijerarhijska veza u kojoj, na primjer, šema sadrži nula ili više tabela, a svaka tabela logički pripada tačno jednoj šemi. Šema se može pretstaviti dijagramima relacija entiteta: Ali šema se može pretstaviti i u tekstualnom obliku na sledeći način: Kupci (BrojKupaca, Ime, Adresa, Grad) Porudžbine (BrojPorudžbine, BrojKupca, Iznos, Datum) Primarni ključevi su na primjer boldovani a spoljni ključevi na primjer podvučeni. Šema se kreira naredbom: CREATE SHEMA <naziv šeme> Izbacivanje šeme može biti CASCADE - izbacuje šemu i objekte iz nje ili RESTRICT - brisanje šeme koja je prazna i ostvaruje se naredbom: DROP SHEMA <naziv šeme> CASCADE RESTRICT Katalog Katalog je imenovana kolekcija šema baze podataka u SQL-u. Baza podataka, pored podataka, sadrži i metapodatke, odnosno tzv Rjecnik podataka (Data Dictionary, Data Directory, Catalog). Katalog baze podataka opisuje posmatranu bazu podataka (strukturu baze, pravila očuvanja integriteta podataka, prava korišćenja i slično i možemo ga shvatiti da je "baza podataka o bazi podataka". 23

24 Katalog je kolekcija šema. U katalogu postoji i informaciona šema (INFORMATION_SCHEME), katalog u užem smislu riječi, u kojoj se daju informacije o svim šemama u katalogu. Svaki katalog sadrži šemu sa nazivom INFORMATION_SCHEMA, koja predstavlja rječnik podataka. Nju čini skup pogleda, odnosno sistemskih tabela, koje sadrže sve bitne informacije o SQL okruženju. Sadržaj sistemskih tabela se automatski održava. U SQL standardu ne postoje naredbe za kreiranje i uništavanje kataloga. Način njihovog kreiranja i uništavanja je implementaciono-definisan (implementation-defined), odnosno prepušten je vlasnicima softverskih proizvoda koji implementiraju SQL okruženje. Pun naziv objekata šeme ima tri komponente, razdvojene tačkama: naziv kataloga, naziv šeme i naziv objekta. Ako je posmatrani objekat tabela, tada se njen pun naziv specificira na sledeći način: <naziv kataloga>.<naziv seme>.<naziv tabele>. Objekti šeme se mogu referencirati sa eksplicitnim ili implicitnim nazivom kataloga i šeme: FROM <naziv tabele> -- nekvalifikovan naziv FROM <naziv seme>.<naziv tabele>-- djelimično kvalifikovan naziv FROM <naziv kataloga>.<naziv seme>.<naziv tabele>-- potpuno kvalifikovan naziv model objektiveze za relacioni katalog: Klaster je kolekcija kataloga. Tabele Tabele predstavljaju dvodimenzionalne matrice čiji redovi predstavljaju naziv i svojstvo objekata smještenog u tabelu, a kolone objekata izražena odgovarajučim tipom podataka. Uz pomoć jedne n-torke opisan je jedan objekat. Kreiranje tabela Podaci se u SQL-u čuvaju se i prikazuju u obliku tabela. Svaka kolona tabele ima ime i tip podatka (domen). Red je najmanja jedinica podatka koja se može uneti u tabelu ili izbrisati iz nje. U SQL-u koriste se: 1. Bazna tabela - vrsta tabele za čuvanje svih SQL podaka. može biti: Perzistentna 3 tabela CREATE TABLE <naziv tabele> (<naziv kolone1> <tip podatka> NOT NULL], <naziv kolone> <tip podatka> [NOT NULL],..) Globalna privremena tabela CREATE GLOBAL TEMPORARY TABLE <naziv tabele> (<naziv kolone1> <tip podatka> [ NOT NULL], <naziv kolone> <tip podatka> [ NOT NULL],..) ; Kreirana lokalna privremena tabela CREATE LOCAL TEMPORARY TABLE <naziv tabele> (<naziv kolone1> <tip podatka> [ NOT NULL], <naziv kolone> <tip podatka> [ NOT NULL],..) ; Deklarisana lokalna privremena tabela DECLARE LOCAL TEMPORARY TABLE MODULE <naziv tabele> (<naziv kolone1> <tip podatka> [NOT NULL], <naziv kolone> <tip podatka> [ NOT NULL],..) ; 3 Podaci koji se čuvaju i nakon prestanka rada određenog programa kome pripadaju i nazivaju se perzistentni podaci 24

25 2. Izvedena tabela - predstavlja rezultat izvršavanja upita. 3. Tabela pogleda - predstavlja rezultat poziva imenovanog upita (pogleda). Kasnije u sklopu MySQL više ćemo se baviti konkretnim primjerima, pa ipak u sklopu upoznavanja sa principima SQL-a često ćemo davati primjere, pa tako i ovdje: Kako u SQL-u kreirati tablicu? Primjer 1 CREATE TABLE osoba ( maticni broj NVARCHAR(15), ime NVARCHAR(15) NOT NULL, prezime NVARCHAR(15) NOT NULL, ulica NVARCHAR(25), mjesto NVARCHAR(15) DEFAULT Banja Luka PRIMARY KEY (maticni broj) ); Primjer2 CREATE TABLE grad ( pbr SMALLINT, naziv VARCHAR(50), CONSTRAINT grad_pk PRIMARY KEY(pbr) ); Izmjena definicije tabele Dodavanje nove kolone ALTER TABLE <naziv tabele> [ADD COLUMN] <definicija kolone> ; Izmena postojeće kolone ALTER TABLE <naziv tabele> [ALTER COLUMN] <naziv kolone> SET DEFAULT <Vrijednost> DROP DEFAULT; Izbacivanje kolone iz tabele ALTER TABLE <naziv tabele> DROP [COLUMN] <naziv kolone> ; Dodavanje ili izbacivanje ograničenja na Vrijednosti ALTER TABLE <naziv tabele> ADD [CONSTRAINT <naziv ograničenja> ] <ograničenje tabele> DROP CONSTRAINT <naziv ograničenja> ; Izbacivanje tabele Brisanje sadržaja tabele DELETE TABLE <naziv tabele>; Brisanje tabele i njenog sadržaja DROP TABLE <naziv tabele>; Za razliku od DELETE koja izbacuje samo n-torke iz relacije, ova naredba izbacuje i de finiciju relacije pa relacija i njena relaciona šema više ne postoji. Funkcije SQL podržava rad sa funkcijama. Daćemo najčešću podjelu SQLfunkcija po kategorijama funkcija: 1. Aritmetičke funkcije, 2. Znakovne funkcije, 3. Agregatne funkcije 25

26 Aritmetičke (matematičke) funkcije Koriste se za realizaciju standardnih matematičkih operacija nad numeričkim tipom podataka. SQL dozvoljava korišćenje matematičkih funkcija u SELECT i WHERE klauzulama. Na taj način se kao rezultat pretraživanja mogu prikazati rezultati izračunavanja nekog matematičkogm g izraza. Kasnije ćemoo detaljno obraditi Select, pa zasad samo pogledajte, a kasnije detaljno analizirajte primjere koji slijede: Primjer 1. Izlaz: SQL> select proizvod_id, PROIZVOD_ID ROUND(MIN_CIJENA,0) round(min_cijena,0) from cijena where kataloska_cijena>5; Primjer 2. SQL> select proizvod_id, 5*exp(1+cos(min_cijena/3)) Funkcija from cijena where kataloska_cijena>50; Izlaz: PROIZVOD_ID FUNKCIJA

27 Funkcije za rad sa tekstualnim podatacima znakovne funkcije Koriste se pri radu sa stringovima -tekstualnim tipom podataka. Funkcija OPIS LEFT(<string>,X) Kao rezultat daje X najljevijih znakova stringa. RIGHT(<string>,X) Kao rezultat daje X najdesnijih znakova stringa. UPPER(<string>) Pretvara sadržaj cijelog stringa u velika slova. LOWER(<string>) Pretvara sadržaj cijelog stringa u mala slova. INITCAP(<string>) Pretvara sadržaj stringa tako da je svaka riječ sa početnim velikim slovom. LENGTH(<string>) Kao rezultat daje broj znakova u stringu. <string> <string> Spaja dva stringa u jedan string, pri čemu iza prvog odmah slijedi drugi string. LPAD(<string>,X,'*') Dodaje stringu sa lijeve strane onoliko znakova * (ili znak naveden unutar apostrofa) koliko je potrebno da bi se dobio string dužine X znakova. RPAD(<string>,X,'*') Dodaje stringu sa desne strane onoliko znakova * (ili znak naveden unutar apostrofa) koliko je potrebno da bi se dobio string dužine X znakova. SUBSTR(<string>,X,Y) Izdvaja Y znakova iz stringa počevši od pozicije X. NVL(<kolona>,<vrijednost>) Zamjenjuje sve vrijednosti NULL u koloni <kolona> vrijednostima <vrijednost Funkcije agregacije Kao posebnu kategoriju obično se izdvajaju funkcije koje obavljaju agregaciju, mada se one mogu shvatiti i kao kombinacija znakovnih i matematičkih funkcija. Funkcije agregacije su dobile naziv po tome što vrše agregaciju rezultata upita. Korišćenje ovih funkcija je jednostavno, pošto se navode u listi kolona SELECT klauzule koje se prikazuju. U najosnovnijem obliku agregatne funkcije vraćati će skalarnu vrijednost, a sintaksa je sljedeća: SELECT AgregatnaFunkcija(atribut) FROM tabela Korišćenje ovih funkcija je jednostavno, pošto se navode u listi kolona SELECT klauzule koje se prikazuju. Daćemo tabelarni pregled najčešće korišćenih: Funkcija Opis-značenje AVG(obl) srednja vrijednost SUM(obl) suma svih obeležja MIN(obl) minimalna vrijednost MAX(obl) maksimalna vrijednost COUNT({* [DISTINCT]obl}) broj pojavljivanja ABS(broj) apsolutna vrijednost MOD(br1, br2) br1 po modulu br2 POWER(br, e) br na e-ti stepen UPPER(str) u velika slova SUBSTRing(str, pos [, d]) podstring od str, sa poz. pos CONCAT(str1, str2, str3,...) konkatenacija stringova YEAR(obl) vraća godinu iz datuma Daćemo dva primjera za ilustraciju funkcija agregacije (sa istom primjedbom uz mat. f-je; postaće jasnije nakon analize Select upita) Pr. 1. Napiši upit koji određuje maksimalnu, minimalnu, prosečnu i ukupnu platu svih radnika: SELECT MAX(Plata) AS MaxPlata, MIN(Plata) AS MinPlata, AVG(Plata) AS ProsPlata, SUM(Plata) AS UkPlata FROM RADNIK; Pr 2. Pomoću funkcije COUNT odredi broj vrsta u rezultujućoj tabeli. SELECT COUNT(*) AS PlataSaBonusom FROM RADNIK; 27

28 SQL upiti naredbe upita Osnova SQL-a je upit. Realizuje se kao blok oblika: SELECT < lista atributa> FROM < lista relacija> WHERE < kvalifikacioni izraz> Primjer primjene Select upita Naredba upita SELECT je jedna od najkompleksnijih naredbi SQL programskog jezika i sadrži veći broj ključnih riječi klauzula: 1. SELECT - definiše listu kolona koje će biti uključene u rezultujuću tabelu 2. FROM - definiše tabele iz kojih se pribavljaju podaci za potrebe generisanja rezultujuće tabele. Klauzula FROM može da uključi jednu ili više opcionih JOINN klauzula za povezivanje tabela na osnovu kriterijuma zadatih od strane korisnika. 3. WHERE - definiše predikatt na osnovu koga se ograničava broj vrsta v u rezultujućoj tabeli. Klauzule SELECT i FROM su obavezne, a WHERE nije. Klauzula SELECT SELECT - definiše listu kolona koje će biti uključene u rezultujućuu tabelu. Listom atributa zadaje se operacija PROJEKCIJE. Klauzula SELECT specificira kolone koje treba uključiti u rezultujuću tabelu. Mogu se koristiti sljedećee opcije: ALL - u rezultujućoj tabeli prikazuju se sve vrste koje zadovoljavaju navedeni predikatt DISTINCT - iz rezultujuće tabele izbacuju se duplikati vrsta * - rezultujuća tabela uključuje sve kolone tabele ili tabela iz kojih se pribavljaju podacii tabela.* - rezultujuća tabela uključuje sve kolone specificirane tabele izraz - ime kolone ili funkcije nad kolonama koja će biti uključena u rezultujuću tabelu AS pseudonim - novo ime kolone ili funkcije nad kolonama koje im se dodeljuje u rezultujućoj tabeli Klauzula FROM FROM - definiše tabelee iz kojih se pribavljaju podaci za potrebe generisanja rezultujuće tabele. Klauzula FROM može da uključi jednu ili više opcionih JOIN klauzula za povezivanje tabelaa na osnovu kriterijuma zadatih od strane korisnika Klauzula FROM specificira tabele iz i kojih se pribavljaju podaci. Ukoliko se navede više tabela potrebno je specificiratii način spajanja tabela Kvalifikacionim izrazom zadaju se uslovi selekcije i spajanja, odnosno iskazi slični iskazima u relacionom računu. 28

29 Primjer SELECT / FROM upita Najjednostavniji upit bez selekcije izdvaja samo kolone...ostavlja onee koje su navedene, a izbacuje ostale. Analiziraćemo tabelu koja sadrži jedinstveni matični broj građana, imena, prezimena a i adrese zaposlenih: Pretpostavimo da hoćemo da vidite adrese svih zaposlenih. Koristimo naredbu SELECT: SELECT Ime, Prezime, Adresa, Grad, Republika FROM TabelaAdresaRadnika; Rezultat ovog upita u bazu podatakaa je Da objasnimo sada šta ste upravo uradili: tražilii ste sve podatke u tabeli TabelaAdresaRadnika preciznije, tražili ste kolone pod nazivom Ime, Prezime, Adresa, Grad, Republika. Obratite pažnju da imena kolona i tabela ne sadrže razmake ona se moraju navesti kao jedna riječ, kaoo i da se naredba završava tačkom i zarezom (;). Opšti oblik naredbe SELECT kojom se dobijaju svi redovi u tabeli je: SELECT ImeKolone, ImeKolone,... FROM ImeTabele; Da biste dobili sve kolone neke tabele bez navođenja svih imena kolona, koristite: SELECT * FROM ImeTabele; Klauzula WHERE WHERE - definiše predikat na osnovu koga see ograničavaa broj vrsta u rezultujućoj tabeli. Ova klauzula iz rezultata eliminiše sve vrste za koje specificiranii predikat ne vraća vrijednost TRUE.. Klauzula WHERE specificira uslov na osnovu koga se kreira rezultujuća tabela. U rezultujuću tabelu t će bitii uključene samo one vrste-kolone, koje zadovoljavaju specificirani uslov. U uslovu see mogu javiti: Relacioni operatori Logički operatori Operator BETWEEN Operator IN Operator LIKE Operator IS NULL 29

30 Relacioni operatori Klauzula WHERE SQL podržava šest relacionihh operatora koji imaju sledeće značenje: = Jednako > Veće od <> Nije jednako (različito)( <= Manje ili jednako od < Manje od >= Veće ili jednako od Primjeri jednostavnee uslovne selekcije (SELECT/FROM/WHERE) Upite ćemo postavljati za sljedeću tabelu: Ukoliko želite da dobijete ID brojeve onih zaposlenih koji zarađuju prekoo , koristite sljedeću naredbu: SELECT IDRADNIKAA FROM TABELAPRIMANJARADNIKA WHERE PLATA >= 50000; Obratite pažnju da se koristi znak (relacione operatore) >= (veće ili jednako), pošto smo željeli da izdvojimo one zaposlene koji zarađuju više od 50,000, ili jednako 50,000, i to prikazano zajedno. Kao rezultat dobijamo: Opis klauzule WHERE, odnosno deo PLATA >= = 50000, naziva se uslov (operacija koja kao rezultat daje vrednost True (tačno) ili False (netačno)). Isti tip operacije može se primeniti na tekstualnee kolone: SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE POLOŽAJ = 'rukovodilac'; Ova naredba prikazuje ID brojeve svih rukovodilaca. Generalno, u slučaju tekstualnih kolona, koristitee operatore jednako ili različito, i obavezno cijeli tekst koji se pojavljuje u naredbi navedite unutar apostrofaa ('). Važno! Funkcije agregacije nije moguće koristiti u WHERE klauzuli. To je posljedica činjenice da se rezultat funkcija agregacija izračunava nakon što se odrede vrste koje ulaze u sastav rezultujuće tabele, odnosno nakon obrade predikta koji je zadata u WHERE klauzuli. Pogledajte SQL upit koji se NE MOŽE IZVRŠITI i koji će GENERISAT TI GREŠKU: SELECT Ime, Prezime, Plata FROM RADNIK WHERE Plata > AVG(Plata) 30

31 Klauzula ORDER BY ORDER BY - koristi se za sortiranje rezultujuće tabele. Korisnici specificiraju kolone po kojima se vrši sortiranje kao i smjer sortiranja. Klauzula ORDER BY specificira redosljed prikazivanja vrste rezultujuće tabele, sortiranjem po vrijednosti nekih kolona u rastući (ASC) (predefinisana vrijednost) ili opadajući redosljed (DESC). Ukoliko klauzula ODER BY nije navedena vrste u rezultujućoj tabeli su poređane po slučajnom principu i ne postoji nikakva garancija da će isti upit uvijek generisati rezultujuću tabelu čije su vrste poređane na isti način. Primjer pokazuje SQL upit koji prikazuje podatke o radnicima i sortira ih prema prezimenu u opadajućem i rastućem redosljedu. SELECT * FROM RADNIK ORDER BY Prezime; Klauzula GROUP BY Grupisanje se obavlja prema jednom ili više atributa iz relacije (ili više relacija ukoliko su navedene u FROM clause). GROUP BY clause sadrži popis atributa ili izraza prema kojima se obavlja grupisanje. GROUP BY - grupiše vrste koje u određenim kolonama imaju identične vrijednosti. Grupisanje se obavlja tako da se n-torke koje imaju jednake vrijednosti atributa navedenih u listi za grupisanje, kombiniraju u zajednicku grupu. Za svaku dobivenu grupu u rezultatu se pojavljuje samo jedna n-torka. Primjer: SELECT sifpred FROM rezervacija, dvorana WHERE rezervacija.ozndvorana = dvorana.ozndvorana GROUP BY sifpred Postavljanje uslova nad grupom zapisa Having klauzula Za postavljanje uslova nad grupom zapisa koristi se HAVING clause. HAVING - definiše predikat na osnovu koga se elimišu vrste nakon što je klauzula GROUP BY primjenjena na rezultujuću tabelu. Dok se uz pomoć WHERE clause izdvajaju one n-torke koje će formirati grupe definisane u GROUP BY clause, HAVING clause služi za postavljanje uslova kojeg dobivene grupe moraju zadovoljiti da bi se pojavile u rezultatu. Za razliku od WHERE dijela naredbe, u HAVING dijelu naredbe dozvoljeno je koristiti agregatne funkcije. U HAVING dijelu naredbe dozvoljeno je koristiti samo one atribute koji se nalaze u GROUP BY listi. Atributi koji se ne nalaze u GROUP BY listi smiju se koristiti jedino kao argumenti agregatnih funkcija. Primjer: ispis šifri predmeta i broja položenih ispita, ali samo onih predmeta za koje je položeno više od dva ispita. SELECT sifpred, COUNT(*) FROM ispit WHERE ispit.ocjena > 1 GROUP BY sifpred HAVING COUNT(*) > 2 31

32 Slika pokazujee povezanostt WHERE, GROUP BY i HAVING dijela SELECT naredbe SELECT sifpred, COUNT(*) FROM ispit WHERE ispit. ocjena > 1 GROUP BY sifpred HAVING COUNT(*) > 2 U HAVING dijelu naredbe dozvoljeno je korstiti uslove sa podupitima na isti način kao što o se koriste u WHERE clause. WHERE dio naredbe određuje koje n-torke će formirati grupe (samo položeni ispiti).. GROUP BY lista odreduje strukturuu grupa tj. po kojim atributima se obavlja grupisanje n-torkii (sve ntorke koje imaju jednaku šifru predmeta ulaze u jednuu grupu). HAVING dio naredbe određuje koje od nastalih grupa ce biti prihvacene kao rezultatt (samo one grupe u kojima je broj ntorki, tj. COUNT(*) veci od dva). Ispisuje se po jedan zapis za svakuu grupu koja zadovoljava taj uslov. Logički operatori SQL omogućava korišćenje standardnih logičkih operatore AND, OR O i NOT, ali i operatore IN i BETWEEN koji omogućavaju jednostavnije korišćenje prethodno navedenih operatoraa u nekim slučajevima. Prioritet logičkih operatora je sledeći: 1. NOT 2. AND 3. OR Logički operatori AND i OR se koriste na standardni način. Međutim, kod SQL-a, logički operator negacije NOT se navodi na početku logičkogg izraza, a nee ispred operatora poređenja. Na primjer, NOT A = B je validni WHERE uslov, ali A NOT = B nije. Primjer1 Primjer2 SELECT * SELECT * FROM RADNIK FROM RADNIK WHERE Prezime = " Petrović"; WHERE Prezime = "Petrović" AND Plata > = 40000; Primjer3 SELECT * FROM RADNIK WHERE Prezime = " Petrović" OR Prezimee = "Jovanović"; 32

33 Operator IN Operator IN zamenjuje višestruku upotrebu operatora OR i =. Operator NOT IN prikazuje sve vrste osim onih određenih IN listom. Primjer: Korišćenjem operatora IN izdvajaju se samo radnici koji se prezivaju Petrović ili Jovanović. SELECT * FROM RADNIK WHERE Prezime IN ("Petrović","Jovanović"); Naredni upit pribavlja podatke o svim radnicima osim onih koji se prezivaju Petrović ili Jovanović. SELECT * FROM RADNIK WHERE Prezime NOT IN ("Petrović","Jovanović"); Operator BETWEEN Operator BEETWEEN zamjenjuje višestruku upotrebu operatora AND i =. Ovaj operator omogućava ispitivanje da li je vrijednost atributa/kolone u zadatom opsegu. Primjer: Za prikazivanje podataka o radnicima čija je plata u opsegu od do (uključujući i granice opsega) možemo iskoristiti operator BETWEEN SELECT * FROM RADNIK WHERE Plata BETWEEN AND 40000; ili bez korišćenja BETWEEN SELECT * FROM RADNIK WHERE Plata>=30000 AND Plata<=40000; Operator LIKE Operator LIKE omogućava poređenje vrijednosti kolone sa zadatim šablonom. Kod definisanja šablona koristi se procenat (%) i znak pitanja (?). Procenat (%) predstavlja bilo koji mogući znak (broj, slovo, interpunkcijski znak) ili skup znakova. Znak pitanja (?) zamenjuje samo jedan znak. Primjer: SELECT * FROM RADNIK WHERE Prezime LIKE "J*"; Za nalaženje svih radnika koji sadrže slovo "J" negdje u prezimenu mogao bi se koristiti šablon "*J*". Obratite pažnju da se ne pravi razlika između malih i velikih slova. Operator NOT LIKE prikazuje sve vrste koje ne odgovaraju prethodno datom opisu, tj. za prethodni slučaj, sve radnike koji nemaju slovo "J" u svom prezimenu. Operator IS NULL Operator IS NULL se koristi za poređenje sa NULL vrijednostima. Treba voditi računa da se na NULL vrijednosti ne može primjeniti ni jedan relacioni operator. Može se samo proveravati da li kolona ima NULL vrijednost ili nema. 33

34 Primjer koji pokazuje SQL upit koji izdvaja podatke o svim radnicima kojima nije definisan datum rođenja odnosno datum rođenja ima NULL vrijednost. SELECT * FROM RADNIK WHERE DatRodj IS NULL; Aritmetičke funkcije u Select u Where klauzulama SQL dozvoljava korišćenje matematičkih funkcija u SELECT i WHERE klauzulama. Na taj način se kao rezultat pretraživanja mogu prikazati rezultati izračunavanja nekog matematičkog izraza. Aritmetičke funkcije se mogu primjenjivati i u WHERE klauzuli. Primjer: SELECT Ime, Prezime, Plata AS PlataSaBonusom FROM RADNIK WHERE Plata > 40000; Selektivno spajanje dva niza operatorom & SQL jezik koristi operator & koji omogućuje spajanje dva znakovna niza. Primjer SELECT Ime & " " & SSlovo & " " & Prezime AS [Ime i prezime radnika] FROM RADNIK; U ovom primjeru izvršili smo spajenje imena i prezimena zaposlenih. Da ne bi došlo do spajanja riječi ubacili smo jedan prazan znak - blanko ('' '') između riječi. 34

35 Spojevi (Joins) Jedna od najvećih prednosti jezika SQL je njegova mogućnost da spaja i manipuliše podacima koji se nalaze u više različitih izvornih tabela. U velikoj većini slučajeva upiti se ne izvršavaju samo nad jednom tabelom, već nad više njih koje je potrebno na neki od načina, spojiti. Da nema ove mogućnosti, trebali bi smo da sve moguće podatke stavimo u jednu jedinu tabelu. i tako bismo ostali bez relacionog modela. Pri objašnjenju upita sreli smo se sa potrebom spajanje dve ili više tabela. SQL to realizuje sa naredbom JOIN. Najčešće se koristi kao podupit u izrazu FROM. Spajanje tabela se obično vrši na osnovu kolona koje sadrže isti tip podataka. Najčešće spajanje je između primarnog ključa jedne tabeli i stranog ključa druge tabele tj. tzv. "foreign relationship" između tabla. Postoje četiri tipa JOIN operacije, ali je tzv. unutrašnje spajanje ili "INNER JOIN" najčešće korišćeno. INNER JOIN - spajanje dvije tabele koje imaju zajedničke vrijednosti u nekim od svojih kolona. Primjera radi, možemo spojiti tabele Radnici i Plate, jer tabela "Plate" ima sifru radnika. SELECT Radnici. Prezime, Radnici. Ime, Radnici. Odeljenje, Plate. Iznos FROM Radnici INNER JOIN Plate ON Radnici. RadnikID = Plate. RadnikID OUTER JOIN - Postoji "LEFT OUTER JOIN" i "RIGHT OUTER JOIN" tj. lijevo i desno vanjsko spajanje. Recimo da imamo sledeći primjer: SELECT Korisnici. ImeKompanije, Korisnici. BrojTelefona, Narudzbe. DatumNarudzbe FROM Korisnici LEFT JOIN Narudzbe ON Customers. KorisnikID = Narudzbe. KorisnikID U ovom primjeru rezultat pretraživanja će sadržati sve korisnike, bez obzira da li imaju nula, jednu ili vise narudžbi. Korisnici sa vise narudžbi biće prikazani u rezultujućoj tabeli onoliko puta koliko narudžbi imaju. CROSS JOIN je takođe poznato kao Kartazijanski-Dekartov proizvod. Rezultat koji dobijemo je kombinacija svih vrsta jedne tabele sa svim vrstama druge tabele. Primjera radi, možemo napraviti novu tabelu spajanjem tabela "Studenti" i "Ispiti". SELECT Studenti. StudentID, Kursevi. KursID FROM Studenti AS s CROSS JOIN Kursevi AS k Primjetite da ON iskaz nije koristen. SELF JOIN je slučaj kada spajamo kolonu samu sa sobom. Recimo da imamo tabelu "Radnici" koja ima ključ "RadnikID". Želimo da napravimo listu svih radnika, sa imenima njihovih menadžera. Naravno, menadžer je takođe u tabeli "Radnici". SELECT e1. Prezime AS "Prezime", e1. Ime AS "Ime", e2. Prezime AS "Menadzer" FROM Radnici e1 INNER JOIN Radnici e2 ON e1. MenadzerID = e2. RadnikID 35

36 Osnovne klauzule ograničenje integriteta kolone Unutar SQL-a postoje mnogobrojna ograničenja za ograničenje integriteta a za početak ćemo navesti pet osnovnih koja omogućavaju ograničenje vrijednosti kolone koje sprječava narušavanje integriteta podataka tako da onemogućuje unos podataka koji ne zadovoljavaju pretopstavljene vrijednosti. Najjednostavnije je vršiti očuvanje integriteta definišući vtijdnosti kolona: 1. NOT NULL u koloni nije dozvoljena NULL 2. UNIQUE u koloni nije dozvoljeno ponavljanje iste vrijednosti 3. PRIMARY KEY kolona je primarni ključ, nije dozvoljena NULL vrijednost niti ponavljanje vrijednosti 4. CHECK (Predikat) svaka vrijednost u koloni mora da zadovolji uslov zadat logičkim izrazom Predikat. U izrazu se ne mogu navoditi druge kolone 5. DEFAULT=Konstanta ako se prilikom unošenja jednog reda podataka u tabelu za kolonu ne zada vrijednost, podrazumjeva se Konstanta 36

37 Primjer složenog upita Analiziraćemo bazu koja sadrži tri tabele: Ko je kupio stolicu? Da biste dobili imena onih koji su kupili stolicu, koristite ovaj upit: SELECT PREZIMEVLASNIKA, IMEVLASNIKA FROM VLASNICIANTIKVITETA, ANTIKVITETI WHEREE IDKUPCA = IDVLASNIKA AND KOMADNAMEŠTAJA = 'stolica'; Obratite pažnju na sledeće činjenicee o ovom upitu: obje tabele koje su u relaciji r navedene su u klauzuli FROM naredbe SELECT. U klauzuli WHERE primjetite da uslov KOMADNAMEŠTAJA = 'stolica' ograničava izbor na one koji su kupili (a u našem primjeru, stoga poseduju) stolicu. Drugo, obratite pažnju kako se uspostavlja odnos između kolona sa ID brojevima iz dve tabele upotrebom uslova IDKUPCA = IDVLASNIKA. Samo ako se podudaraju ID brojevii u tabelama i kupljen komad nameštaja je stolica (zbog operatora AND), prikazaće se imena iz tabele. Rezultat ovog upita su dva imena: Simonović, Boban i Filipović, Sima Koristeći zapis sa tačkama da biste izbjegli dvosmislenost, ispred imenaa kolona možete pisati imena tabela: SELECT VLASNICIANTIKVITETA.PREZIMEVLASNIKA, VLASNICIANTIKVITETA.IMEVLASNIKA FROM VLASNICIANTIKVITETA, ANTIKVITETI WHERE ANTIKVITETI.IDKUPCA = VLASNICIAN NTIKVITETA.IDVLASNIKA AND KOMADNAMEŠTAJA = 'stolica'; Međutim, kako su u tabelama imena kolona različita, ovo nije bilo beophodno. Napravite spisak svih vlasnika po abecednom redu prezimena. SELECT DISTINCT IDPRODAVCA, PREZIMEVLASNIKA, IMEVLASNIKAA FROM ANTIKVITETI, VLASNICIANTIKVITETA WHERE IDPRODAVCA = IDVLASNIKA ORDER BY PREZIMEVLASNIKA, IMEVLASNIKA; Ko je poručio nešto što se nudi? Napravite upit koji prikazuje prezimena onih vlasnika koji su poručili nešto n i njihovu porudžbinu, pri čemuu se daju samo one porudžbine koje se mogu zadovoljiti (to jest, postoji prodavac koji je vlasnik poručenog komada nameštaja): 37

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije Biznis scenario: U školi postoje četiri sekcije sportska, dramska, likovna i novinarska. Svaka sekcija ima nekoliko aktuelnih projekata. Likovna ima četiri projekta. Za projekte Pikaso, Rubens i Rembrant

More information

Podešavanje za eduroam ios

Podešavanje za eduroam ios Copyright by AMRES Ovo uputstvo se odnosi na Apple mobilne uređaje: ipad, iphone, ipod Touch. Konfiguracija podrazumeva podešavanja koja se vrše na računaru i podešavanja na mobilnom uređaju. Podešavanja

More information

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings Eduroam O Eduroam servisu Eduroam - educational roaming je besplatan servis za pristup Internetu. Svojim korisnicima omogućava bezbedan, brz i jednostavan pristup Internetu širom sveta, bez potrebe za

More information

SAS On Demand. Video: Upute za registraciju:

SAS On Demand. Video:  Upute za registraciju: SAS On Demand Video: http://www.sas.com/apps/webnet/video-sharing.html?bcid=3794695462001 Upute za registraciju: 1. Registracija na stranici: https://odamid.oda.sas.com/sasodaregistration/index.html U

More information

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. 1) Kod pravilnih glagola, prosto prošlo vreme se gradi tako

More information

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI Za pomoć oko izdavanja sertifikata na Windows 10 operativnom sistemu možete se obratiti na e-mejl adresu esupport@eurobank.rs ili pozivom na telefonski broj

More information

Tutorijal za Štefice za upload slika na forum.

Tutorijal za Štefice za upload slika na forum. Tutorijal za Štefice za upload slika na forum. Postoje dvije jednostavne metode za upload slika na forum. Prva metoda: Otvoriti nova tema ili odgovori ili citiraj već prema želji. U donjem dijelu obrasca

More information

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima 1. Uvod 2. Preuzimanje programa i stvaranje mapa 3. Instalacija Apachea 4. Konfiguracija Apachea 5. Instalacija PHP-a 6. Konfiguracija

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka 25. novembar 2011. godine 7. čas SQL skalarne funkcije, operatori ANY (SOME) i ALL 1. Za svakog studenta izdvojiti ime i prezime i broj različitih ispita koje je pao (ako

More information

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri. Potprogrami su delovi programa. Često se delovi koda ponavljaju u okviru nekog programa. Logično je da se ta grupa komandi izdvoji u potprogram, i da se po želji poziva u okviru programa tamo gde je potrebno.

More information

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd, AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje Marko Eremija Sastanak administratora, Beograd, 12.12.2013. Sadržaj eduroam - uvod AMRES eduroam statistika Novine u okviru eduroam

More information

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević GUI Layout Manager-i Bojan Tomić Branislav Vidojević Layout Manager-i ContentPane Centralni deo prozora Na njega se dodaju ostale komponente (dugmići, polja za unos...) To je objekat klase javax.swing.jpanel

More information

Struktura i organizacija baza podataka

Struktura i organizacija baza podataka Fakultet tehničkih nauka, DRA, Novi Sad Predmet: Struktura i organizacija baza podataka Dr Slavica Aleksić, Milanka Bjelica, Nikola Obrenović Primer radnik({mbr, Ime, Prz, Sef, Plt, God, Pre}, {Mbr}),

More information

1. Instalacija programske podrške

1. Instalacija programske podrške U ovom dokumentu opisana je instalacija PBZ USB PKI uređaja na računala korisnika PBZCOM@NET internetskog bankarstva. Uputa je podijeljena na sljedeće cjeline: 1. Instalacija programske podrške 2. Promjena

More information

Otpremanje video snimka na YouTube

Otpremanje video snimka na YouTube Otpremanje video snimka na YouTube Korak br. 1 priprema snimka za otpremanje Da biste mogli da otpremite video snimak na YouTube, potrebno je da imate kreiran nalog na gmailu i da video snimak bude u nekom

More information

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Upute za korištenje makronaredbi gml2dwg i gml2dgn SVEUČILIŠTE U ZAGREBU - GEODETSKI FAKULTET UNIVERSITY OF ZAGREB - FACULTY OF GEODESY Zavod za primijenjenu geodeziju; Katedra za upravljanje prostornim informacijama Institute of Applied Geodesy; Chair

More information

Windows Easy Transfer

Windows Easy Transfer čet, 2014-04-17 12:21 - Goran Šljivić U članku o skorom isteku Windows XP podrške [1] koja prestaje 8. travnja 2014. spomenuli smo PCmover Express i PCmover Professional kao rješenja za preseljenje korisničkih

More information

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a NIS PETROL Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a Beograd, 2018. Copyright Belit Sadržaj Disable... 2 Komentar na PHP kod... 4 Prava pristupa... 6

More information

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09 MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09 LAB 09 Fizički model podatka 1. Fizički model podataka Fizički model podataka omogućava da se definiše struktura baze podataka sa stanovišta fizičke

More information

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik) JEDINSTVENI PORTAL POREZNE UPRAVE Priručnik za instalaciju Google Chrome dodatka (Opera preglednik) V1 OPERA PREGLEDNIK Opera preglednik s verzijom 32 na dalje ima tehnološke promjene zbog kojih nije moguće

More information

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU KONFIGURACIJA MODEMA ZyXEL Prestige 660RU Sadržaj Funkcionalnost lampica... 3 Priključci na stražnjoj strani modema... 4 Proces konfiguracije... 5 Vraćanje modema na tvorničke postavke... 5 Konfiguracija

More information

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE CJENOVNIK KABLOVSKA TV Za zasnivanje pretplatničkog odnosa za korištenje usluga kablovske televizije potrebno je da je tehnički izvodljivo (mogude) priključenje na mrežu Kablovskih televizija HS i HKBnet

More information

Port Community System

Port Community System Port Community System Konferencija o jedinstvenom pomorskom sučelju i digitalizaciji u pomorskom prometu 17. Siječanj 2018. godine, Zagreb Darko Plećaš Voditelj Odsjeka IS-a 1 Sadržaj Razvoj lokalnog PCS

More information

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB. 9.72 8.24 6.75 6.55 6.13 po 9.30 7.89 5.86 10.48 8.89 7.30 7.06 6.61 11.51 9.75 8.00 7.75 7.25 po 0.38 10.21 8.66 7.11 6.89 6.44 11.40 9.66 9.73 7.69 7.19 12.43 1 8.38 7.83 po 0.55 0.48 0.37 11.76 9.98

More information

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći: Pogledi Ciljevi Poslije kompletiranja ove lekcije trebalo bi se moći: Opisati pogled Formirati novi pogled Vratiti podatke putem pogleda Izmijeniti postojeći pogled Insertovani, ažurirati i brisati podatke

More information

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS - Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS 1. Pokrenite Adobe Photoshop CS i otvorite novi dokument sa komandom File / New 2. Otvoriće se dijalog

More information

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Struktura indeksa: B-stablo.   ls/swd/btree/btree.html Struktura indeksa: B-stablo http://cis.stvincent.edu/html/tutoria ls/swd/btree/btree.html Uvod ISAM (Index-Sequential Access Method, IBM sredina 60-tih godina 20. veka) Nedostaci: sekvencijalno pretraživanje

More information

Klasterizacija. NIKOLA MILIKIĆ URL:

Klasterizacija. NIKOLA MILIKIĆ   URL: Klasterizacija NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: http://nikola.milikic.info Klasterizacija Klasterizacija (eng. Clustering) spada u grupu tehnika nenadgledanog učenja i omogućava grupisanje

More information

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 3 DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode - Parametri - Povratne vrednosti - Dodela

More information

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA KOŽA I TEKSTIL ALU FELGE CJENIK APLIKACIJE CERAMIC PRO PROIZVODA Radovi prije aplikacije: Prije nanošenja Ceramic Pro premaza površina vozila na koju se nanosi mora bi dovedena u korektno stanje. Proces

More information

Babylon - instalacija,aktivacija i rad sa njim

Babylon - instalacija,aktivacija i rad sa njim Babylon - instalacija,aktivacija i rad sa njim Babilon je vodeći svetski prevodilac brzog online i offline rečnika sa prevođenjem u preko 75 jezika jednim jednostavnim klikom misa i koriste ga miloni privatnih

More information

Advertising on the Web

Advertising on the Web Advertising on the Web On-line algoritmi Off-line algoritam: ulazni podaci su dostupni na početku, algoritam može pristupati podacima u bilo kom redosljedu, na kraju se saopštava rezultat obrade On-line

More information

Pravljenje Screenshota. 1. Korak

Pravljenje Screenshota. 1. Korak Prvo i osnovno, da biste uspesno odradili ovaj tutorijal, morate imati instaliran GOM Player. Instalacija je vrlo jednostavna, i ovaj player u sebi sadrzi sve neophodne kodeke za pustanje video zapisa,

More information

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB UPUTSTVO za ruter TP-LINK TD-854W/ TD-W8951NB Uputstvo za ruter TP-Link TD-854W / TD-W8951NB 2 PRAVILNO POVEZIVANJE ADSL RUTERA...4 PODEŠAVANJE KONEKCIJE PREKO MREŽNE KARTE ETHERNET-a...5 PODEŠAVANJE INTERNET

More information

MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08

MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08 MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08 LAB 08 Konceptualni model podataka Logički model podataka 1. Konceptualni model podataka Modeli podataka omogućavaju modelovanje semantičke i logičke

More information

SQL standard podrzava sledece vrste ogranicenja: Ogranicenja domena Ogranicenja tabela i kolona Opsta ogranicenja

SQL standard podrzava sledece vrste ogranicenja: Ogranicenja domena Ogranicenja tabela i kolona Opsta ogranicenja 1. Ograničenja u relacionom modelu. DINAMIČKA PRAVILA INTEGRITETA Pravila integriteta definišu dozvoljena stanja i dozvoljene prelaze sistema iz stanja u stanje. Pravilo integriteta u relacionom modelu

More information

PROJEKTNI PRORAČUN 1

PROJEKTNI PRORAČUN 1 PROJEKTNI PRORAČUN 1 Programski period 2014. 2020. Kategorije troškova Pojednostavlj ene opcije troškova (flat rate, lump sum) Radni paketi Pripremni troškovi, troškovi zatvaranja projekta Stope financiranja

More information

BENCHMARKING HOSTELA

BENCHMARKING HOSTELA BENCHMARKING HOSTELA IZVJEŠTAJ ZA SVIBANJ. BENCHMARKING HOSTELA 1. DEFINIRANJE UZORKA Tablica 1. Struktura uzorka 1 BROJ HOSTELA BROJ KREVETA Ukupno 1016 643 1971 Regije Istra 2 227 Kvarner 4 5 245 991

More information

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Marijana Glavica Dobrica Pavlinušić http://bit.ly/ffzg-eprints Definicija

More information

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY Softverski sistem Survey za geodeziju, digitalnu topografiju i projektovanje u niskogradnji instalira se na sledeći način: 1. Instalirati grafičko okruženje pod

More information

MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA

MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA MODEL OBJEKTI - VEZE MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA MODELI PODATAKA Model objekti-veze Relacioni model Objektni model Objektno-relacioni model Aktivne baze podataka XML kao

More information

Primer izrade dinamičkog sajta

Primer izrade dinamičkog sajta Primer izrade dinamičkog sajta U ovom odeljku opisademo postupak izrade jednostavnog dinamičkog sajta elektronske prodavnice. Struktura sajta Sajt se sastoji iz četiri celine. Prvi deo, početna strana,

More information

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT TRAJANJE AKCIJE 16.01.2019-28.02.2019 ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT Akcija sa poklonima Digitally signed by pki, pki, BOSCH, EMEA, BOSCH, EMEA, R, A, radivoje.stevanovic R, A, 2019.01.15 11:41:02

More information

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Uvod u GIT Šta je git? Sistem za verzionisanje softvera kao i CVS, SVN, Perforce ili ClearCase Orginalno

More information

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum:

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum: Programiranje Nastava: prof.dr.sc. Dražena Gašpar Datum: 21.03.2017. 1 Pripremiti za sljedeće predavanje Sljedeće predavanje: 21.03.2017. Napraviti program koji koristi sve tipove podataka, osnovne operatore

More information

Direktan link ka kursu:

Direktan link ka kursu: Alat Alice može da se preuzme sa sledeće adrese: www.alice.org Kratka video uputstva posvećena alatu Alice: https://youtu.be/eq120m-_4ua https://youtu.be/tkbucu71lfk Kurs (engleski) posvećen uvodu u Java

More information

STRUČNA PRAKSA B-PRO TEMA 13

STRUČNA PRAKSA B-PRO TEMA 13 MAŠINSKI FAKULTET U BEOGRADU Katedra za proizvodno mašinstvo STRUČNA PRAKSA B-PRO TEMA 13 MONTAŽA I SISTEM KVALITETA MONTAŽA Kratak opis montže i ispitivanja gotovog proizvoda. Dati izgled i sadržaj tehnološkog

More information

Mindomo online aplikacija za izradu umnih mapa

Mindomo online aplikacija za izradu umnih mapa Mindomo online aplikacija za izradu umnih mapa Mindomo je online aplikacija za izradu umnih mapa (vrsta dijagrama specifične forme koji prikazuje ideje ili razmišljanja na svojevrstan način) koja omogućuje

More information

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. Idejno rješenje: Dubrovnik 2020. Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. vizualni identitet kandidature dubrovnika za europsku prijestolnicu kulture 2020. visual

More information

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports. IZVJEŠTAJI U MICROSOFT ACCESS-u (eng. reports) su dijelovi baze podataka koji omogućavaju definiranje i opisivanje načina ispisa podataka iz baze podataka na papir (ili PDF dokument). Način izrade identičan

More information

3.2. Prikazati podatke o svim proizvodima, koji se proizvode u Zrenjaninu.

3.2. Prikazati podatke o svim proizvodima, koji se proizvode u Zrenjaninu. Primer 3. Data je sledeća šema baze podataka S = (S, I ), pri čemu je skup šema relacija: S = { Dobavljač({ID_DOBAVLJAČA, NAZIV, STATUS, GRAD}, {ID_DOBAVLJAČA}), Deo({ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD},

More information

Office 365, upute za korištenje elektroničke pošte

Office 365, upute za korištenje elektroničke pošte Office 365, upute za korištenje elektroničke pošte Naša ustanova koristi uslugu elektroničke pošte u oblaku, u sklopu usluge Office 365. To znači da elektronička pošta više nije pohranjena na našem serveru

More information

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija EVALUACIJA UPOTREBLJIVOSTI KORISNIČKOG INTERFEJSA VEB APLIKACIJA UZ POMOĆ METODA ZA AUTOMATSKO PRIKUPLJANJE PODATAKA O KORIŠĆENJU EVALUATION USABILITY OF USER INTERFACE WEB APPLICATIONS BY METHODS FOR

More information

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

1.7 Predstavljanje negativnih brojeva u binarnom sistemu .7 Predstavljanje negativnih brojeva u binarnom sistemu U decimalnom brojnom sistemu pozitivni brojevi se predstavljaju znakom + napisanim ispred cifara koje definišu apsolutnu vrednost broja, odnosno

More information

3D GRAFIKA I ANIMACIJA

3D GRAFIKA I ANIMACIJA 1 3D GRAFIKA I ANIMACIJA Uvod u Flash CS3 Šta će se raditi? 2 Upoznavanje interfejsa Osnovne osobine Definisanje osnovnih entiteta Rad sa bojama Rad sa linijama Definisanje i podešavanje ispuna Pregled

More information

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice VBA moduli mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice Moduli (modules) ponašanje modula Ponašanje modula može se prilagoditi na 4 načina: Option Explicit Option Private Module

More information

DOSTAVUANJE PONUDA ZA WIMAX MONTENEGRO DOO PODGORICA

DOSTAVUANJE PONUDA ZA WIMAX MONTENEGRO DOO PODGORICA CRNA GORA (1}(02.17&r/4 Ver. O;:, fjr}/ ~ AGENCUA ZA ELEKTRONSKE KOM~~IKACUE J.O.O "\\ L\lax Montenegro" BrOJ o/-lj Podoor'ca.d:ioL 20/1g0d I POSTANSKU DEJATELNOST DOSTAVUANJE PONUDA ZA WIMAX MONTENEGRO

More information

Priprema podataka. NIKOLA MILIKIĆ URL:

Priprema podataka. NIKOLA MILIKIĆ   URL: Priprema podataka NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: http://nikola.milikic.info Normalizacija Normalizacija je svođenje vrednosti na neki opseg (obično 0-1) FishersIrisDataset.arff

More information

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze Trening: Obzor 2020. - financijsko izvještavanje i osnovne ugovorne obveze Ana Ključarić, Obzor 2020. nacionalna osoba za kontakt za financijska pitanja PROGRAM DOGAĐANJA (9:30-15:00) 9:30 10:00 Registracija

More information

Univerzitet u Beogradu Matematički fakultet Internet baze podataka

Univerzitet u Beogradu Matematički fakultet Internet baze podataka Univerzitet u Beogradu Matematički fakultet Internet baze podataka Seminarski rad iz predmeta Baze podataka-napredni koncepti 2010/2011 šk.god. Profesor: Student: Dr Gordana Pavlović-Lažetić Mirjana Maljković,

More information

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o.

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. Šta je potrebno za ispravan rad programa? Da bi program FINBOLT 2007 ispravno i kvalitetno izvršavao zadaću koja je postavljena pred njega

More information

Ali kako znati koja maksimalna plata pripada kojem sektoru? GROUP BY in SELECT Obično se uključuje GROUP BY kolona u SELECT listi.

Ali kako znati koja maksimalna plata pripada kojem sektoru? GROUP BY in SELECT Obično se uključuje GROUP BY kolona u SELECT listi. Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 9-1 Using Group By Having Clauses Za dobijanje srednje visine studenata: SELECT AVG(height) FROM students;

More information

Nejednakosti s faktorijelima

Nejednakosti s faktorijelima Osječki matematički list 7007, 8 87 8 Nejedakosti s faktorijelima Ilija Ilišević Sažetak Opisae su tehike kako se mogu dokazati ejedakosti koje sadrže faktorijele Spomeute tehike su ilustrirae a izu zaimljivih

More information

Bušilice nove generacije. ImpactDrill

Bušilice nove generacije. ImpactDrill NOVITET Bušilice nove generacije ImpactDrill Nove udarne bušilice od Bosch-a EasyImpact 550 EasyImpact 570 UniversalImpact 700 UniversalImpact 800 AdvancedImpact 900 Dostupna od 01.05.2017 2 Logika iza

More information

mdita Editor - Korisničko uputstvo -

mdita Editor - Korisničko uputstvo - mdita Editor - Korisničko uputstvo - Sadržaj 1. Minimalna specifikacija računara... 3 2. Uputstvo za instalaciju aplikacije... 3 3. Korisničko uputstvo... 11 3.1 Odabir File opcije iz menija... 11 3.2

More information

KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES

KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES INFOTEH-JAHORINA Vol. 10, Ref. E-I-11, p. 441-445, March 2011. KREIRANJE DINAMIČKIH INTERFEJSA ZASNOVANIH NA META-ŠEMAMA CREATION OF DYNAMIC INTERFACES BASED ON META-SCHEMES Vladimir Vujović, Elektrotehnički

More information

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

STABLA ODLUČIVANJA. Jelena Jovanovic.   Web: STABLA ODLUČIVANJA Jelena Jovanovic Email: jeljov@gmail.com Web: http://jelenajovanovic.net 2 Zahvalnica: Ovi slajdovi su bazirani na materijalima pripremljenim za kurs Applied Modern Statistical Learning

More information

DEFINISANJE TURISTIČKE TRAŽNJE

DEFINISANJE TURISTIČKE TRAŽNJE DEFINISANJE TURISTIČKE TRAŽNJE Tražnja se može definisati kao spremnost kupaca da pri različitom nivou cena kupuju različite količine jedne robe na određenom tržištu i u određenom vremenu (Veselinović

More information

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C INFOTEH-JAHORINA Vol. 10, Ref. E-I-15, p. 461-465, March 2011. Implementacija sparsnih matrica upotrebom listi u programskom jeziku C Đulaga Hadžić, Ministarstvo obrazovanja, nauke, kulture i sporta Tuzlanskog

More information

Naredba je uputa računalu za obavljanje određene operacije.

Naredba je uputa računalu za obavljanje određene operacije. OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene operacije. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Postupak pisanja programa zovemo programiranje. Programski

More information

msc Velimir Milanovic Unošenje prvih zapisa Kreiranje elektronskih obrazaca - formi Prva forma - Čitaoci U P I T I

msc Velimir Milanovic Unošenje prvih zapisa Kreiranje elektronskih obrazaca - formi Prva forma - Čitaoci U P I T I msc Velimir Milanovic SADRŽAJ: 1. Pojam informacionih sistema... 4 1. 1. Vrste informacionih sistema... 5 1.1.1. Informacioni sistemi za obradu podataka (dp data processing)... 5 1. 1. 2. Upravljački informacioni

More information

Modeli podataka. Model podataka - osnovne komponente

Modeli podataka. Model podataka - osnovne komponente Model podataka - osnovne komponente Modeli podataka Osnovni pojmovi modela podataka Primeri MOV-a Logičko modeliranje podataka (6 koraka) Tipovi veza kod IDEF1X metodologije Logičko modeliranja podataka

More information

Korak X1 X2 X3 F O U R T W START {0,1}

Korak X1 X2 X3 F O U R T W START {0,1} 1) (8) Formulisati Traveling Salesman Problem (TSP) kao problem traženja. 2) (23) Dato je prostor stanja sa slike, sa početnim stanjem A i završnim stanjem Q. Broj na grani označava cijenu operatora, a

More information

IZRADA TEHNIČKE DOKUMENTACIJE

IZRADA TEHNIČKE DOKUMENTACIJE 1 Zaglavlje (JUS M.A0.040) Šta je zaglavlje? - Posebno uokvireni deo koji služi za upisivanje podataka potrebnih za označavanje, razvrstavanje i upotrebu crteža Mesto zaglavlja: donji desni ugao raspoložive

More information

Projektovanje IS. Fizičko modelovanje Aplikativno modelovanje Softver

Projektovanje IS. Fizičko modelovanje Aplikativno modelovanje Softver Projektovanje IS Fizičko modelovanje Aplikativno modelovanje Softver Referencijalni integritet Referencijalni integritet obezbjeđuje korektno povezivanje objekata jer objekat koji nije predstavljen u odgovarajućem

More information

PANEVROPSKI UNIVERZITET APEIRON FAKULTET ZA POSLOVNU INFORMATIKU BANJA LUKA. Specijalističke studije TEMA: WEB DNEVNIK

PANEVROPSKI UNIVERZITET APEIRON FAKULTET ZA POSLOVNU INFORMATIKU BANJA LUKA. Specijalističke studije TEMA: WEB DNEVNIK PANEVROPSKI UNIVERZITET APEIRON FAKULTET ZA POSLOVNU INFORMATIKU BANJA LUKA Specijalističke studije TEMA: WEB DNEVNIK -specijalistički rad- Mentor: Prof. dr Zoran Ž. Avramović, dipl. inž. Student: Banja

More information

Sadržaj. Baze podataka

Sadržaj. Baze podataka BAZE PODATAKA. Sadržaj I 1 UVOD U BAZE PODATAKA 1.1 Osnovni pojmovi vezani uz baze podataka 1.1.1 Baza podataka, DBMS, model podataka 1.1.2 Ciljevi uvođenja baza podataka 1.1.3 Arhitektura baze podataka

More information

P6. Prilog Projektovanje i realizacija studije slucaja putem CASE alata u klijent-server okruzenju

P6. Prilog Projektovanje i realizacija studije slucaja putem CASE alata u klijent-server okruzenju P6. Prilog Projektovanje i realizacija studije slucaja putem CASE alata u klijent-server okruzenju U okviru ovog priloga prezentuje se postupak projektovanja i realizacije jednog transakcionog programa

More information

FAKULTET ZA POSLOVNU INFORMATIKU

FAKULTET ZA POSLOVNU INFORMATIKU FAKULTET ZA POSLOVNU INFORMATIKU Prof. dr Mladen Veinović Igor Franc Aleksandar Jevremović BAZE PODATAKA - PRAKTIKUM - Prvo izdanje Beograd 2006. Autori: Prof. dr Mladen Veinović Igor Franc Aleksandar

More information

TRANSAKCIJA I ACID OSOBINE

TRANSAKCIJA I ACID OSOBINE KOMPONENTE SUBP (1) Baza podataka podaci, metapodaci, baza indeksa (2) Sistem za upravljanjem skladištenjem podataka upravljanje datotekama i upravljanje baferima (3) Ulazi u BP upiti, aplikacije, odrţavanje

More information

KatzeView Uputstvo. verzija Novi Sad Josifa Marinkovića 44. Tel: +381 (0) Fax: +381 (0) Mob: +381 (0)

KatzeView Uputstvo. verzija Novi Sad Josifa Marinkovića 44. Tel: +381 (0) Fax: +381 (0) Mob: +381 (0) KatzeView Uputstvo verzija 3.2.2 21000 Novi Sad Josifa Marinkovića 44 Tel: +381 (0)21 443-265 Fax: +381 (0)21 443-516 Mob: +381 (0)63 513-741 http://www.cardware.co.yu info@cardware.co.yu Sadržaj: 1 Sistemski

More information

Primjeri pitanja iz 1. ili 2. skupine (za 2 ili 4 boda po pitanju) -

Primjeri pitanja iz 1. ili 2. skupine (za 2 ili 4 boda po pitanju) - Razvoj poslovnih aplikacija, EFO 1. Kolokvij pitanja Kolokvij će se sastojati od 12 pitanja, od toga će biti 3 skupine pitanja: 1. Skupina: 5 pitanja s zatvorenog tipa s ponuđenim odgovorima (svako pitanje

More information

RANI BOOKING TURSKA LJETO 2017

RANI BOOKING TURSKA LJETO 2017 PUTNIČKA AGENCIJA FIBULA AIR TRAVEL AGENCY D.O.O. UL. FERHADIJA 24; 71000 SARAJEVO; BIH TEL:033/232523; 033/570700; E-MAIL: INFO@FIBULA.BA; FIBULA@BIH.NET.BA; WEB: WWW.FIBULA.BA SUDSKI REGISTAR: UF/I-1769/02,

More information

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI

MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU RAČUNARSTVO ROBERT PRAŠNIČKI IZRADA MOBILNE I WEB APLIKACIJE ZA GENERIRANJE QR KODA UPOTREBOM PYTHON PROGRAMSKOG JEZIKA ZAVRŠNI RAD ČAKOVEC, 2014. MEĐIMURSKO VELEUČILIŠTE

More information

2. Kreiranje nove baze podataka

2. Kreiranje nove baze podataka 2. Kreiranje nove baze podataka Stvaranje strukture za bazu podataka je lako. Međutim, prazna baza nije ništa korisnija od praznog dokumenta u Microsoft Word-u ili praznog radog lista Microsoft Excel-a.

More information

Hot Potatoes. Osijek, studeni Jasminka Brezak

Hot Potatoes. Osijek, studeni Jasminka Brezak Hot Potatoes JQuiz - izrada kviza s pitanjima za koje treba izabrati jedan ili više točnih odgovora ili upisati kratki odgovor JCloze - izrada zadatka s tekstom za dopunjavanje, korisnik mora prepoznati

More information

Mogudnosti za prilagođavanje

Mogudnosti za prilagođavanje Mogudnosti za prilagođavanje Shaun Martin World Wildlife Fund, Inc. 2012 All rights reserved. Mogudnosti za prilagođavanje Za koje ste primere aktivnosti prilagođavanja čuli, pročitali, ili iskusili? Mogudnosti

More information

VEB APLIKACIJA ZA IZBOR RESTORANA

VEB APLIKACIJA ZA IZBOR RESTORANA ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU VEB APLIKACIJA ZA IZBOR RESTORANA Diplomski rad Kandidat: Snežana Lilić 2004/0251 Mentor: doc. dr Zoran Čiča Beograd, Septembar 2015. SADRŽAJ SADRŽAJ...

More information

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU (Usaglašeno sa procedurom S.3.04 sistema kvaliteta Megatrend univerziteta u Beogradu) Uvodne napomene

More information

SKRIPTA ZA VEŽBE IZ PREDMETA ELEKTRONSKO POSLOVANJE

SKRIPTA ZA VEŽBE IZ PREDMETA ELEKTRONSKO POSLOVANJE SKRIPTA ZA VEŽBE IZ PREDMETA ELEKTRONSKO POSLOVANJE KompoZer 0.77 Laboratorija za elektronsko poslovanje Beograd 2008. Sadržaj SADRŽAJ...2 1 O KOMPOZER-U...4 2 RADNO OKRUŽENJE KOMPOZER-A...6 3 RAD SA DOKUMENTIMA...13

More information

ALEN BARAĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA DIPLOMSKI RAD

ALEN BARAĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA DIPLOMSKI RAD SVEUČILIŠTE U RIJECI POMORSKI FAKULTET U RIJECI ALEN BARAĆ RAZVOJ DINAMIČKIH WEB APLIKACIJA DIPLOMSKI RAD Rijeka, 2014. SVEUČILIŠTE U RIJECI POMORSKI FAKULTET U RIJECI RAZVOJ DINAMIČKIH WEB APLIKACIJA

More information

MATEMATIČKI FAKULTET BEOGRADSKI UNIVERZITET MASTER TEZA

MATEMATIČKI FAKULTET BEOGRADSKI UNIVERZITET MASTER TEZA MATEMATIČKI FAKULTET BEOGRADSKI UNIVERZITET MASTER TEZA Korišćenje HTML-a, PHP-a i MySQL-a u izradi višeslojnih web aplikacija Vanja Petković Beograd, maj 2008 Sadržaj 1 Uvod... 3 2 HTML... 5 2.1 Elementi

More information

1. Lekcija Pojam entiteta, podatka i informacije

1. Lekcija Pojam entiteta, podatka i informacije MICROSOFT ACCESS Program za rad sa bazama podataka 1. Lekcija Pojam entiteta, podatka i informacije U svakodnevnom životu često se koriste izrazi podatak, obaveštenje i informacija. Često se smatraju sinonimima?

More information

Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» Josip Bošnjak. Fizički dizajn baze podataka.

Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» Josip Bošnjak. Fizički dizajn baze podataka. Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» Josip Bošnjak Fizički dizajn baze podataka Završni rad Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet ekonomije

More information

11 Analiza i dizajn informacionih sistema

11 Analiza i dizajn informacionih sistema 11 Analiza i dizajn informacionih sistema Informatika V.Prof.dr Kemal Hajdarević dipl.ing.el 25.4.2014 11:58:28 1 1. Kompjuter, Internet, i mrežne osnove 2. Kompjuterska industrija Informatika u stomatologiji

More information

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE 3309 Pursuant to Article 1021 paragraph 3 subparagraph 5 of the Maritime Code ("Official Gazette" No. 181/04 and 76/07) the Minister of the Sea, Transport

More information

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena.

Dežurni nastavnik: Ispit traje 3 sata, prvih sat vremena nije dozvoljeno napuštanje ispita. Upotreba literature nije dozvoljena. Dežurni nastavnik: Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku Predmet: Testiranje softvera (SI3TS) Nastavnik: doc. dr Dragan Bojić Asistent: dipl. ing. Dražen Drašković

More information

FAKULTET TEHNIČKIH NAUKA

FAKULTET TEHNIČKIH NAUKA UNIVERZITET U NOVOM SADU FAKULTET TEHNIČKIH NAUKA Nastavni predmet: Vežba br 6: Automatizacija projektovanja tehnoloških procesa izrade alata za brizganje plastike primenom ekspertnih sistema Doc. dr Dejan

More information

IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA

IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA SVEUČILIŠTE U SPLITU PRIRODOSLOVNO-MATEMATIČKI FAKULTET ZAVRŠNI RAD IZRADA PORTALA O PROGRAMSKOM JEZIKU PYTHON U SUSTAVU ZA UREĐIVANJE WEB SADRŽAJA Student: Ivona Banjan Mentor: doc.dr.sc. Ani Grubišić

More information

Prilikom instaliranja MySQL-a trebalo bi koristiti nalog koji ima administratorska prava.

Prilikom instaliranja MySQL-a trebalo bi koristiti nalog koji ima administratorska prava. 1. Šta je MySQL? MySQL je najpopularniji sistem otvorenog koda (Open Source) za upravljanje bazama podataka. Proizvod je kompanije MySQL AB poreklom iz Švedske. MySQL je sistem za upravljanje bazama podataka.

More information