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

Size: px
Start display at page:

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

Transcription

1 msc Velimir Milanovic SADRŽAJ: 1. Pojam informacionih sistema Vrste informacionih sistema Informacioni sistemi za obradu podataka (dp data processing) Upravljački informacioni sistem (mis management information systems) Informacioni sistemi za podršku odlučivanju (dss decision support systems) Ekspertni sistemi (expert systems) Projektovanje informacionih sistema B A Z E P O D A T A K A Modeli baza podataka Elementi relacione baze podataka Šta se podrazumeva pod dobrim dizajnom baze podataka? Proces dizajniranja Određivanje namene baze podataka Pronalaženje i organizovanje potrebnih informacija Raspoređivanje informacija u tabele Pretvaranje stavki informacija u kolone Preciziranje primarnih ključeva Kreiranje relacija između tabela Kreiranje relacije jedan-prema-više Kreiranje relacije više-prema-više Kreiranje relacije jedan-prema-jedan Pročišćavanje dizajna Pročišćavanje tabele Proizvodi Primenjivanje pravila normalizacije Prva normalna forma Druga normalna forma Treća normalna forma M I C R O S O F T A C C E S S Objekti baze Tabele Upiti Forme Izveštaji Opis primera na kojem je priručnik baziran Pokretanje programa, pripremne radnje, kreiranje prve tabele Planiranje tabela Kreiranje prve tabele Povezivanje tabela

2 msc Velimir Milanovic Unošenje prvih zapisa Kreiranje elektronskih obrazaca - formi Prva forma - Čitaoci U P I T I Uvod u struktuirani upitni jezik SQL Osnove naredbe SELECT Uslovna selekcija podataka Složeni uslovi Operatori IN i BETWEEN Operator LIKE Spajanje tabela Ključevi Obavljanje spajanja Klauzula DISTINCT i eliminacija duplikata Pseudonimi i IN podupiti i podupiti Aritmetički operatori Agregatne funkcije Klauzule GROUP BY i HAVING Formiranje novih tabela Menjanje tabela Dodavanje podataka Brisanje podataka Ažuriranje podataka Izveštaji Makroi i switchboard Front-end i back-end baza podataka Enkripcija baze podataka

3 1. Pojam informacionih sistema Pod pojmom sistem podrazumevćemo skup elemenata koji su međusobno povezani i ponašaju se po određenim zakonitostima. U starogrčkom jeziku reč sistem koristila se prvobitno kao naziv za udruženje, zajednicu ili društvo, da bi kasnije bila u upotrebi i kada se označavao neki skup, celina, čak i sama država. Da bi bilo jasno šta čini jedan sistem, sistem se mora posmatrati u odnosu na njegovo okruženje. Granica sistema razdvaja sistem od spoljnih sistema. Interakcija sistema sa okruženjem se sastoji iz skupa ulaznih i izlaznih dejstava. Dejstvo okoline na sistem naziva se ulaz. Dejstvo sistema na okolinu je izlaz sistema. Slika 1 Značajnu ulogu imaju informacioni sistemi. U literaturi se nalazi mnogo različitih definicija. Informacioni sistem najčešće se definiše kao skup ljudi i opreme koji po određenoj organizaciji i metodama obavljaju prikupljanje, prenos, obradu, čuvanje i dostavljanje podataka i informacija na korišćenje. Osnovni cilj informacionog sistema je da omogući prikupljanje podataka i prikazivanje dobijenih informacija na najbolji način. Kao elementi informacionog sistema danas se uglavnom navode: a) tehnička oprema (hardware) 4

4 b) programska oprema (software) c) organizaciona podrška (orgware) d) kadrovska podrška (lifeware). Svi materijalni delovi računara koji su međusobno povezani ili funkciono usklađeni, naziva se mašinska oprema ili hardver (hardware). Sve što je u vezi sa programima nazivasmo programska oprema ili softver (software). Organizacionu podršku (orgware) čine metode i postupci za usklađivanje svih delova informacionog sistema u organizovanu celinu. Kadrovsku podršku (lifeware) čine kadrovi koji neposredno rade na poslovima i krajnji korisnici informacionog sistema Vrste informacionih sistema Slika 2 Danas je uglavnom prihvaćena sledeća podela:: 1. informacioni sistemi za obradu podataka (DP Data processing) 2. upravljački informacioni sistem (MIS Management Information Systems), 3. informacioni sistemi za podršku odlučivanju (DSS Decision Support Systems) 4. ekspertni sistem (ES Expert System) Informacioni sistemi za obradu podataka (dp data processing) Osnovna uloga takvih informacionih sistema bila je prihvatanje i obrada poslovnih transakcija, tako da se njihova najčešća primena sastojala u zameni ručne obrade mašinskom, u smislu mehanografske obrade. U središtu pažnje informacionih sistema za 5

5 obradu podataka su podaci. Programska rešenja zasnivaju se na klasičnim programskim jezicima (C ++, Delphi, C, Java, Visual Basic, Visual C ++, C#). Osnovni izlazi iz sistema su štampani izveštaji. Osnove osobine informacionih sistema za obradu podataka jesu: pasivan način korišćenja, korisnici su zaposleni isključivo u posebnom organizacionom delu za elektronsku obradu podataka (elektronski računarski centar), mehanička efikasnost u obavljanju posla, zasnovanost na analizi prošlih događaja Upravljački informacioni sistem (mis management information systems) Upravljački informacioni sistem je mreža zasnovana na računarima, koja pruža odgovarajuće podatke rukovodstvu preduzeća u svrhu donošenja odluka. Ti sistemi javljaju se kao druga faza razvoja informacionih sistema, kao posledica potrebe poslovnih sistema da prikupljene i obrađene informacije iskoriste u svrhu upravljanja, a takođe i kao posledica razvoja hardvera i usavršavanja softvera. Podaci se unose tamo gde nastaju, terminalskom mrežom, a proces izveštavanja je poboljšan jer se osim pisanog izveštaja unosi i ekranski tip izveštaja koji korisnik dobija na ekranu svog terminala. Upravljački informacioni sistemi orijentisani su ka informacijama Informacioni sistemi za podršku odlučivanju (dss decision support systems) Informacioni sistemi za podršku odlučivanju (DSS Decision Support Systems) počinju da se razvijaju nastankom programskih jezika četvrte generacije i takozvanih generatora aplikacija. To su sistemi koji pomažu rukovodstvu preduzeća da rešava probleme koji su specifični. Korisnik donosi poslovne odluke u interakciji sa izlaznim informacijama iz informacionog sistema i da pružaju mnoge važne prednosti u odnosu na predhodne vrste informacionih sistema, u vidu: raznovrsnijeg izveštavanja korišćenja grafičkih i drugih izlaznih mogućnosti, eliminacije većeg dela papirne dokumentacije na ulazu, uvođenja elemenata veštačke inteligencije Ekspertni sistemi (expert systems) Ekspertni sistemi su najnovija rešenja u razvoju informacione tehnologije. Oni su povezani sa nastankom veštačke inteligencije i razvijaju se kao jedan njen deo. Veštačka inteligencija je termin koji je dodeljen mnogim oblastima istraživanja koje se bave rastućom sposobnošću računara da izvršavaju zadatke kako to čovek radi. U izradi ekspertnog sistema učestvuje veći broj eksperata za oblast rešavanja problema i za softver. Za razliku od informacionih sistema za podršku u odlučivanju, gde je korisnik bio u situaciji da dobije pomoć od sistema, ali samo ako je imao ideju za tip izveštaja ili korišćenje nekog modela, ekspertni sistem mu nudi alternativu, odgovor kako bi drugi eksperti rešili sličan problem. 6

6 Ekspertni sistemi su samoučeći, tako da pamte rešenja korisnika koja mogu da budu od interesa za obogaćivanje baze znanja sistema. Oni koriste prirodan jezik uglavnom engleski i na taj način je još manje formalizovano njihovo korišćenje. Ekspertni sistemi ne zasnivaju se na bazi podataka, već na bazi znanja. Veoma se lako menja a kao svoj obavezni deo sadrži objašnjenje odluke. Oni sadrže bazu znanja organizovanu za korišćenje kao skup pravila. Ekspertni sistemi uključuju osnovne ideje inteligentnog rešavanja problema. Oni su prirodna faza u evolucuji računara. Sledeća faza predstavlja dalju evoluciju ekspertnih sistema u formu koja se naziva kreativna inteligencija (CREATIVE INTELLIGENCE), u kojoj nove ideje treba da stvara sam računar Projektovanje informacionih sistema Razvoj informacionog sistema je složen zadatak. Uglavnom se taj proces odvija u sledećim fazama: projektovanje izgradnja uvođenje funkcionisanje. Projektovanje informacionog sistema mora biti zasnovano na zahtevima korisnika i prethodnoj analizi postojećeg stanje, na osnovu čega se definiše struktura informacionog sistema kao i potrebna tehnička oprema, softver, organizaciona i kadrovska podrška. Izgradnja informacionog sistema se obavlja nabavkom hardvera i sistemskog softvera, izradom ili nabavkom aplikativnog softvera i obukom kadrova. Za tu fazu neophodno je napraviti dinamički plan. Uvođenje informacionog sistema je faza razvoja koja se realizuje kada su obezbeđene sve komponente informacionog sistema. Funkcionisanje informacionog sistema započinje posle uspešno obavljenih testova i probnog rada svih komponenti i dovoljne osposobljenosti kadrova. Za normalno funkcionisanje informacionog sistema treba obezbediti neprekidno održavanje i potrebne uslove za dalji razvoj. 7

7 2. B A Z E P O D A T A K A Da bi shvatili šta su to baze podataka prvo morate znati da razlikujete podatke od informacija. Reči podatak i informacija se često koriste kao sinonimi. Ipak, one imaju različito značenje. Podatak <> informacija Podatak može biti Sirov materijal, iz kojeg mogu da se izvuku zaključci, da se nešto sazna Podaci su činjenice, iz kojih mogu da se dobiju nove činjenice Informacija predstavlja: Znanje Značenje Funkcija podatka Rezultat kombinovanja, upoređivanja i izvođenja zaključaka nad podacima Sistem baza podataka sadrži 4 osnovne komponente: korisnici, aplikacija nad bazom podataka, sistem za upravljanje bazama podataka (Database Management System - DBMS), i baza podataka. Slika 3 Baza podataka je skup podataka koji su povezani određenim relacijama. Izraz je nastao u kompjuterskoj industriji, njegovo značenje prošireno od strane običnih korisnika tako da danas označava praktično svaku kolekciju podataka, elektronsku i neelektronsku, koju je moguće proširivati, menjati i brisati (uništavati). Osnovne f-je BP su: Baza podataka obezbeđjuje mogućnosti pretraživanja, dodavanja, modifikovanja i brisanja podataka kada je to potrebno. Baza podataka takođe obezbeđejuje mogućnost transformiranja dobijenih podataka u korisne informacije. Bazom podataka obično rukuje administrator baze podataka (DBA) Omogućeno je smeštanje različitih podataka: dokumenti, slike, video, zvuk... 8

8 Baza podataka predstavlja organizovan skup logički povezanih podataka koji su smešteni u jednoj ili više datoteka, tako da se mogu : pretraživati, sortirati, ažurirati, grupisati, transformisati i štampati. U većini modernih baza podataka, može se smestiti i iz njih dobiti veliki broj različitih podataka i dokumenata. Unutar baze podataka, podaci su smešteni u sirovoj formi. Kada se ti sirovi podaci pretražuju ili dobijaju upitom, oni se transformišu u mnogo korisniju izlaznu informaciju. Iz definicije" baze podataka vidi se da je ona kolekcija međusobno povezanih podataka organizovanih u tabele. Podaci u bazama podataka su organizovani u dvodimenzionalne tabele. Tabela može da ima više kolona, gde svaka kolona predstavlja neku osobinu ili atribut. Vrste tabele čine konkretni podaci, odnosno konkrente vrednosti osobina/atributa nekog objekta. Prava snaga baze podataka ne leži u mogućnosti skladištenja informacija, već u sposobnosti pronalaženja i preuzimanja tačno onih informacija koje želimo. Šta baza podataka ima sa svakodnevnim životom? Više nego što možete zamisliti... Mnogo veb sajtova koje posećujete je podržano bazom podataka Mnoga radna mesta na šalterima, u kancelarijama, u proizvodnji koriste baze podataka Mnoge usluge koje dobijate svakodnevno u banci, pošti, na autobuskoj stanici ili u domu zdravlja su podržane bazama podataka... Baza podataka može biti organizovana kao kolekcija zapisa u kompjuteru kako bi kompjuterski program mogao da nađe u BP informacije koje bi potom iskoristio. Taj tip programa se zove Sistem za upravljanje bazom podataka (DBMS). DBMS treba da obezbedi sledeće funkcije za kontrolisani pristup podacima u bazi podataka: Sigurnosni sistem, koji onemogućava pristup bazi podataka neautorizovanim korisnicima (sigurnosni servisi), odnosno samo autorizovani korisnici mogu da koriste podatke u skladu sa definisanim privilegijama (autorizacioni servisi) Integritetni sistem, koji održava konzistentnost podataka u bazi podataka, odnosno da se sve promene dešavaju u skladu sa definisanim pravilima. Sistem za kontrolu konkurencije, koji dopušta deljivi pristup podacima iz baze podataka, tj da se obezbedi korektno ažuriranje podataka kada više korisnika pokušava istovremeno da vrši ažuriranja. Sistem za kontrolu oporavka baze podataka, koji omogućava rekonstrukciju prethodnog konzistentnog stanja u slučaju neke hardverske ili softverske neispravnosti. 9

9 Razne korisničke funkcije, kao što su import, eksport podataka, statističke analize, funkcije za nadgledanje,... Izbor DBMS-a Postoji veliki broj proizvođača DBMS-a različitih performansi, namenjeni različitim segmentima tržišta. Tipovi sistema baza podataka: Knjigovodstvene aplikacije (sistemi za upravljanje dokumentima, sistemi za banke, i sl) Modere Web aplikacie koje obezbeđuju složenu funkcionalnost u distribuiranom okruženju (on-line kupovine, raze socijalne mreže i sl.) personalni sistemi baza podataka (npr. aplikacija za evidenciju kucnih troskova gde BP koristi samo jedan korisnik Slika 4 enterprise sistemi baza podataka (npr. velika kompanija, ima sistem baza podataka sa velikim količinama informacija Modeli baza podataka Slika 5 Ravni model se sastoji od jednog dvodimenzionalnog niza podataka, gde se smatra da svi članovi iste kolone imaju slične vrednosti, a za sve članove istog reda se predpostavlja da su povezani međusobom. Ovaj model je osnova Microsoft Excel spreadsheet-a. 10

10 Mrežni model organizuje informacije koristeći dve osnove, zvane podatak i set. Podaci sadrže polja. Setovi definišu jedan prema više odnose između podataka: jedan vlasnik, više članova. Podatak može biti vlasnik u bilo kojem setu i član bilo kojeg broja setova. Slika 6 Relacioni model je matematički model definisan u obliku predikatske logike i teorije nizova. Slika 7 Relaciona BP sadrži više tabela, sličnih onima iz ravnog modela BP. Relacije između tabela nisu eksplicitno definisane, umesto toga se koriste ključevi kojima se omogućava poklapanje redova podataka u različitim tabelama. Ključ je skup jedne ili više kolona u jednoj tabeli čije vrednosti se moraju poklapati u odgovarajućim kolonama druge tabele. Bilo koja kolona (ili grupisane kolone) može biti ključ. Nije neophodno definisati sve ključeve unapred, kolona se može koristiti kao ključ iako nije predhodno bila predviđena za to. Ključ kojim se jedinstveno definiše red u tabeli se naziva jedinstveni ključ ( primarni ključ). Ključ čije se vrednosti mogu ponavljati naziva se sekundarni ključ Elementi relacione baze podataka Access organizuje informacije u tabele: liste redova i kolona koje podsećaju na notes računovođe ili unakrsnu tabelu. U jednostavnoj bazi podataka možete imati samo jednu tabelu. Za većinu baza podataka biće vam potrebno više od jedne tabele. Na primer, možda ćete imati jednu tabelu za skladištenje informacija o proizvodima, drugu tabelu za skladištenje informacija o porudžbinama i još jednu sa informacijama o kupcima. 11

11 Slika 8 Svaki red se pravilnije zove zapis, a svaka kolona polje. Zapis predstavlja kombinovanje informacija o nečemu na smislen i dosledan način. Polje je pojedinačna stavka informacije tip stavke koji se pojavljuje u svakom zapisu. U tabeli Proizvodi, na primer, svaki red ili zapis sadrži informacije o jednom proizvodu. Svaka kolona ili polje ima isti tip informacija o tom proizvodu, na primer njegovo ime ili cenu Šta se podrazumeva pod dobrim dizajnom baze podataka? Procesom dizajniranja baze podataka upravljaju određeni principi. Prvi princip je da su duplirane informacije (koje se nazivaju i redundantni podaci) loša pojava, jer nepotrebno zauzimaju prostor i povećavaju verovatnoću pojave grešaka i nedoslednosti. Drugi princip ističe važnost ispravnosti i potpunosti informacija. Ako baza podataka sadrži neispravne informacije, izveštaji koji izvlače informacije iz baze podataka će takođe sadržati neispravne informacije. Kao posledica toga, donete odluke koje su zasnovane na tim izveštajima će u osnovi sadržati pogrešne informacije Proces dizajniranja Proces dizajniranja se sastoji iz sledećih koraka: Određivanje namene baze podataka Ovaj korak doprinosi pripremi za preostale korake. Pronalaženje i organizovanje potrebnih informacija Sakupite sve tipove informacija koje ćete možda želeli da zapišete u bazu podataka, poput imena proizvoda i broja porudžbine. Raspoređivanje informacija u tabele 12

12 Rasporedite stavke informacija po glavnim entitetima ili temama, kao što su Proizvodi ili Porudžbine. Na taj način svaka tema će postati tabela. Pretvaranje stavki informacija u kolone Odlučite koje informacije želite da uskladištite u svaku tabelu. Svaka stavka će postati polje i prikazaće se kao kolona u tabeli. Na primer, tabela Zaposleni bi mogla da sadrži polja poput Prezime i Datum zapošljavanja. Određivanje primarnih ključeva Odaberite primarni ključ za svaku tabelu. Primarni ključ predstavlja kolonu koja se koristi da jedinstveno identifikuje svaki red, na primer ID proizvoda ili ID porudžbine. Podešavanje relacija između tabela Razmotrite svaku tabelu i odlučite na koji način će podaci iz jedne tabele biti povezani sa podacima u drugoj tabeli. Dodajte polja u tabele ili kreirajte nove tabele kako biste, po potrebi, objasnili relacije. Pročišćavanje dizajna Analizirajte dizajn radi pronalaženja grešaka. Kreirajte tabele i dodajte nekoliko zapisa sa probnim podacima. Proverite da li iz tabela možete da dobijete željene rezultate. Po potrebi podesite dizajn. Primenjivanje pravila normalizacije Primenite pravila normalizacije podataka kako biste videli da li su tabele ispravno strukturirane. Po potrebi podesite tabele Određivanje namene baze podataka Preporučuje se da zapišete namenu baze podataka na papir samu namenu, način na koji planirate da je koristite, kao i ko će je koristiti. Na primer, za malu bazu podataka za posao koji radite kod kuće mogli biste da zapišete nešto jednostavno poput Baza podataka kupaca sadrži listu informacija o kupcima sa namenom kreiranja pošiljki i izveštaja. Ako je baza podataka složenija ili je koristi veći broj ljudi, što se često dešava u poslovnom okruženju, opis namene bi mogao da zauzme jedan ili više pasusa, a trebalo bi takođe da sadrži vreme kada će i način na koji će svaka osoba koristiti tu bazu podataka. Potrebno je da postoji precizno definisan cilj zadatka koji ćete moći da uzmete u obzir tokom čitavog procesa dizajniranja. Postojanje tako definisanog cilja vam pomaže da se pri donošenju odluka usredsredite na ciljeve Pronalaženje i organizovanje potrebnih informacija Da biste pronašli i organizovali potrebne informacije, počnite od postojećih informacija. Na primer, možda izlazne porudžbine zapisujete u registrator ili informacije o kupcima čuvate na papirnim obrascima u arhivi. Sakupite te dokumente i navedite sve prikazane tipove informacija (na primer, svako polje koje popunjavate u obrascu). Ako nemate postojeće obrasce, zamislite da morate da dizajnirate obrazac kako biste zapisali informacije o kupcima. Koje informacije biste uneli u obrazac? Koja polja za popunjavanje biste kreirali? Identifikujte i navedite sve te stavke. Na primer, pretpostavite da trenutno listu kupaca 13

13 čuvate na karticama za indeksiranje. Pregledanje ovih kartica bi moglo da pokaže da svaka kartica sadrži ime, adresu, grad, državu, poštanski broj i broj telefona kupca. Svaka od ovih stavki predstavlja potencijalnu kolonu u tabeli. Dok pripremate listu, nemojte se truditi da ona odmah bude savršena, već navedite svaku stavku koje se setite. Ako će još neke osobe koristiti bazu podataka, i njih upitajte za ideje. Kasnije možete da preciznije podesite listu. Nakon toga razmotrite tipove izveštaja i pošiljki koje ćete možda želeti da kreirate na osnovu baze podataka. Na primer, možda biste želeli da kreirate izveštaj o prodaji proizvoda koji će prodaju prikazivati po regionu ili izveštaj sa rezimeom zaliha koji prikazuje nivoe zaliha proizvoda. Možda biste želeli da generišete i tipska pisma koja ćete slati kupcima najavljujući prodajni događaj ili nudeći premiju. Dizajnirajte izveštaj u glavi i zamislite kako će izgledati. Koje informacije biste obuhvatili izveštajem? Navedite svaku stavku. To isto učinite za tipsko pismo, kao i za svaki drugi izveštaj čije kreiranje planirate. Slika 9 Razmišljanje o izveštajima i pošiljkama koje biste želeli da kreirate pomaže vam da identifikujete stavke koje će vam biti potrebne u bazi podataka. Na primer, pretpostavimo da ste kupcima omogućili da daju (ili odbiju) saglasnost za periodične ispravke koje se šalju putem e-pošte i da želite da odštampate listu onih koji su dali saglasnost. U tabelu sa kupcima dodajte kolonu Slanje e-pošte da biste zapisali te informacije. Polje za svakog kupca možete da postavite na vrednost Da ili Ne. Potreba da se kupcima šalju e-poruke podrazumeva još jednu stavku koju je potrebno zapisati. Kada saznate da kupac želi da prima e-poruke, moraćete da znate i e-adresu na koju ćete ih poslati. Stoga je potrebno da zapišete e-adresu svakog kupca. Ključna stvar koju bi trebalo da imate u vidu je da svaku informaciju treba da raščlanite na najmanje korisne delove. Kad su u pitanju imena, puno ime podelite na dva dela ime i prezime, kako bi prezime bilo odmah dostupno. Odvojeno skladištenje prezimena kupaca može da bude korisno ako, na primer, izveštaj želite da sortirate po prezimenu. Uopšte uzev, ako želite da sortirate, pretražujete, izračunavate ili izveštavate na osnovu neke stavke sa informacijama, trebalo bi da tu stavku smestite u posebno polje. Razmislite o pitanjima na koja možda želite da baza podataka pruži odgovor. Na primer, koliko ste prodaja preporučenog proizvoda zaključili prošlog meseca? Gde žive vaši najvažniji 14

14 kupci? Ko je dobavljač vašeg najprodavanijeg proizvoda? Ukoliko predvidite ove odgovore, bićete u mogućnosti da se usredsredite na dodatne stavke koje treba da zapišete. Posle sakupljanja ovih informacija spremni ste za sledeći korak Raspoređivanje informacija u tabele Odaberite glavne entitete ili teme kako biste informacije rasporedili u tabele. Na primer, pošto pronađete i organizujete informacije za bazu podataka prodaje proizvoda, preliminarna lista bi mogla da izgleda ovako: Slika 10 Glavni entiteti koje su ovde prikazani su proizvodi, dobavljači, kupci i porudžbine. Stoga, kreiranje ima smisla početi sa ove četiri tabele: jedna je za činjenice o proizvodima, druga za činjenice o dobavljačima, treća za činjenice o kupcima, a četvrta za činjenice o porudžbinama. Iako ovim lista nije dovršena, to je dobar početak. Možete da nastavite s pročišćavanjem ove liste sve dok ne dobijete dizajn koji dobro funkcioniše. Kada prvi put budete redigovali preliminarnu listu stavki, možda ćete poželeti da ih smestite u jednu tabelu, umesto u četiri koje su prikazane na prethodnoj slici. Sada ćete saznati zašto bi to bilo loše. Nakratko razmotrite tabelu koja je ovde prikazana: Slika 11 U ovom slučaju, svaki red sadrži informacije i o proizvodima i o dobavljačima. Pošto možete imati veliki broj proizvoda od istog dobavljača, informacije o imenu dobavljača i njegovoj 15

15 adresi moraju se ponoviti više puta. Na taj način se zauzima nepotreban prostor na disku. Mnogo je bolja opcija da samo jednom zapišete informacije o dobavljaču u odvojenu tabelu Dobavljači, a zatim je povežete sa tabelom Proizvodi. Drugi problem sa dizajnom u ovom slučaju javlja se kada je potrebno da izmenite informacije o dobavljaču. Na primer, pretpostavimo da treba da promenite adresu dobavljača. Pošto se ona pojavljuje na mnogo mesta, može da se desi da slučajno promenite adresu na jednom mestu, a da zaboravite da je promenite na ostalim mestima. Zapisivanje adrese dobavljača na samo jednom mestu rešava taj problem. Kada dizajnirate bazu podataka, uvek pokušajte da svaku činjenicu zapišete samo jednom. Ako je potrebno da istu informaciju, poput adrese određenog dobavljača, ponavljate na više mesta, smestite tu informaciju u odvojenu tabelu. Na kraju, pretpostavimo da postoji samo jedan proizvod vinarije Coho Winery, a vi želite da ga izbrišete bez gubljenja informacija o imenu i adresi dobavljača. Kako ćete izbrisati zapis o proizvodu, a da pri tome ne izgubite i informacije o dobavljaču? To nije moguće. Pošto svaki zapis sadrži činjenice o proizvodu, kao i činjenice o dobavljaču, ne možete da izbrišete jedno, a da ne izbrišete i drugo. Da biste ove činjenice čuvali odvojeno, tabelu morate podeliti na dva dela: jedna tabela služi za informacije o proizvodu, a druga za informacije o dobavljačima. Brisanje zapisa o proizvodu bi trebalo da izbriše činjenice o proizvodu, a ne i činjenice o dobavljaču. Kada odaberete temu za tabelu, kolone u toj tabeli bi trebalo da skladište samo činjenice o temi. Na primer, tabela proizvoda bi trebalo da skladišti samo činjenice o proizvodima. Pošto je adresa dobavljača činjenica o dobavljaču, a ne činjenica o proizvodu, ona pripada tabeli o dobavljačima Pretvaranje stavki informacija u kolone Odlučite koje informacije treba da pratite u vezi sa temom zapisanom u tabeli kako biste odredili kolone u tabeli. Na primer, kolone Ime, Adresa, Grad-država-poštanski broj, Slanje e-pošte, Oslovljavanje i E-adresa predstavljaju dobru početnu listu kolona za tabelu Kupci. Svaki zapis u tabeli sadrži isti skup kolona tako da za svaki zapis možete da uskladištite informacije o imenu, adresi, gradu-državi-poštanskom broju, slanju e-pošte, oslovljavanju i e-adresi. Na primer, kolona sa adresama sadrži adrese kupaca. Svaki zapis obuhvata podatke o jednom kupcu, a polje za adresu sadrži adresu tog kupca. Nakon što odredite početni skup kolona za svaku tabelu, kolone možete dodatno da pročistite. Na primer, dobro je uskladištiti puno ime kupca u dve odvojene kolone ime i prezime, kako biste mogli da sortirate, pretražujete i indeksirate samo prema ovim kolonama. Slično tome, adresa se u stvari sastoji od pet odvojenih komponenti adrese, grada, države, poštanskog broja i zemlje/regiona, koje je korisno uskladištiti u odvojene kolone. Na primer, ako želite da izvršite operaciju pretraživanja, filtriranja ili sortiranja po državi, potrebna vam je informacija o državi koja je uskladištena u odvojenoj koloni. Trebalo bi da razmotrite da li će baza podataka sadržati informacije samo domaćeg porekla ili i međunarodnog. Na primer, ako planirate da skladištite međunarodne adrese, bolje je umesto kolone Država imati kolonu Region jer takva kolona može da prihvati i domaće države, kao i regione drugih zemalja/regiona. Slično tome, kolona Poštanski broj ima više smisla nego kolona Poštanski broj Srbija ako ćete skladištiti međunarodne adrese. 16

16 Sledeća lista sadrži nekoliko saveta za određivanje kolona. Ne uključujte izračunate podatke U većini slučajeva, rezultat računskih operacija ne bi trebalo da skladištite u tabele. Umesto toga, Access može da izvršava računske operacije kada vi želite da vidite odgovarajući rezultat. Na primer, pretpostavimo da postoji izveštaj Proizvodi u porudžbini koji prikazuje podzbir jedinica u porudžbini za svaku kategoriju proizvoda u bazi podataka. Međutim, kolona podzbira Jedinice u porudžbini ne postoji ni u jednoj tabeli. Umesto toga, tabela Proizvodi sadrži kolonu Jedinice u porudžbini koja za svaki proizvod skladišti jedinice u porudžbini. Koristeći te podatke, Access izračunava podzbir svaki put kada odštampate izveštaj. Sam podzbir ne bi trebalo skladištiti u tabeli. Informacije uskladištite u najmanje logičke jedinice Možda ćete poželeti da imate jedno polje za puna lična imena ili imena proizvoda sa opisima proizvoda. Ako kombinujete više vrsta informacija u jednom polju, kasnije će biti teško preuzeti pojedinačne činjenice. Potrudite se da informacije raščlanite na logičke jedinice; na primer, kreirajte odvojena polja za ime i prezime ili ime, kategoriju i opis proizvoda. Slika 12 Kada pročistite kolone sa podacima u svim tabelama, moći ćete da odaberete primarni ključ za svaku tabelu Preciziranje primarnih ključeva Svaka tabela bi trebalo da sadrži kolonu ili skup kolona koji jedinstveno identifikuje svaki red uskladišten u tabeli. To je često jedinstveni identifikacioni broj, poput ID broja zaposlenog ili serijskog broja. U terminologiji baze podataka ova informacije se naziva primarni ključ tabele. Access polja primarnog ključa koristi za brzo povezivanje podataka iz više tabela, kao i sakupljanje podataka za vaše potrebe. Ako već imate jedinstveni identifikator tabele, kao što je broj proizvoda koji jedinstveno identifikuje svaki proizvod u katalogu, taj identifikator možete da koristite kao primarni ključ 17

17 tabele ali samo ako će vrednosti za svaki zapis u ovoj koloni uvek biti različite. U primarnom ključu ne možete imati duplirane vrednosti. Na primer, imena osoba nemojte koristiti kao primarni ključ jer ona nisu jedinstvena. Lako bi moglo da se desi da dve osobe u jednoj tabeli imaju isto ime. Primarni ključ uvek mora da ima vrednost. Ako postoji mogućnost da vrednost kolone u nekom trenutku postane nedodeljena ili nepoznata (vrednost koja nedostaje), ona ne može da se koristi kao komponenta u primarnom ključu. Uvek bi trebalo da odaberete primarni ključ čija se vrednost neće menjati. U bazi podataka sa više tabela primarni ključ jedne tabele se može koristiti kao referenca u drugim tabelama. Ako se primarni ključ promeni, promena se mora primeniti i na sva mesta na kojima se referencira na ključ. Korišćenje primarnog ključa koji se neće menjati smanjuje verovatnoću da primarni ključ postane nesinhronizovan sa drugim tabelama koje na njega referenciraju. Kao primarni ključ se često koristi proizvoljni jedinstven broj. Na primer, svakoj porudžbini možete da dodelite jedinstveni broj porudžbine. Jedina namena broja porudžbine je identifikacija porudžbine. On se nakon dodeljivanja nikada ne menja. Ako nemate u vidu kolonu ili skup kolona koje bi mogle da budu dobar primarni ključ, razmotrite upotrebu kolone koja sadrži tip podataka Automatsko numerisanje. Kada koristite tip podataka Automatsko numerisanje, Access će automatski dodeliti vrednost umesto vas. Takav identifikator nije zasnovan na činjenicama; oni ne sadrže činjenične informacije koje opisuju red koji predstavljaju. Ti identifikatori su idealni za korišćenje u vidu primarnih ključeva jer se ne menjaju. Verovatnije je da se primarni ključ koji sadrži činjenice o redu npr. broj telefona ili ime kupca promeni jer se same činjenične informacije mogu promeniti. Slika 13 Kolona čiji je tip podataka postavljen na Automatsko numerisanje je često dobar primarni ključ. Nijedan ID proizvoda se ne ponavlja. U nekim slučajevima, možda ćete želeti da za primarni ključ tabele koristite dva ili više polja. Na primer, tabela Detalji porudžbine u kojoj su uskladištene stavke za porudžbinu bi za primarni ključ koristila dve kolone: ID porudžbine i ID proizvoda. Kada se primarni ključ sastoji iz više kolona, naziva se i složeni ključ. U bazama podataka prodaje proizvoda možete da kreirate kolonu Automatsko numerisanje koja će u svakoj tabeli služiti kao primarni ključ: ID proizvoda za tabelu Proizvodi, ID porudžbine za tabelu Porudžbine, ID kupca za kolonu Kupci i ID dobavljača za tabelu Dobavljači. 18

18 Slika Kreiranje relacija između tabela Nakon raspoređivanja informacija u tabele, potreban vam je metod da ih ponovo povežete na smislen način. Na primer, sledeći obrazac sadrži informacije iz nekoliko tabela. Slika 15 Informacije u ovom obrascu potiču iz tabele Klijenti tabele Zaposleni tabele Porudžbine 19

19 tabele Proizvodi i tabele Detalji porudžbine. Access je sistem za upravljanje relacionim bazama podataka. U relacionoj bazi podataka informacije se na osnovu teme dele u zasebne tabele. Nakon toga se koriste relacije između tabela kako bi se informacije po potrebi povezale Kreiranje relacije jedan-prema-više Razmotrite ovaj primer: tabele Dobavljači i Proizvodi u bazi podataka porudžbina proizvoda. Dobavljač može da dostavlja neograničen broj proizvoda. To znači da za svakog dobavljača koji je predstavljen u tabeli Dobavljači može da postoji više proizvoda predstavljanih u tabeli Proizvodi. Dakle, relacija između tabele Dobavljači i tabele Proizvodi je relacija jedan-prema-više. Slika 16 Da biste predstavili relaciju jedan-prema-više u dizajnu baze podataka, primarni ključ sa strane relacije jedan dodajte u vidu jedne ili više dodatnih kolona u tabelu na strani relacije više. U ovom slučaju, npr. kolonu ID dobavljača dodajete u tabelu Proizvodi. Access će nakon toga moći da koristi ID broj dobavljača u tabeli Proizvodi za pronalaženje odgovarajućeg dobavljača za svaki proizvod. Kolona ID dobavljača u tabeli Proizvodi naziva se sporedni ključ. Sporedni ključ je primarni ključ druge tabele. Kolona ID Dobavljača je sporedni ključ u tabeli Proizvodi, pošto je primarni ključ u tabeli Dobavljači. 20

20 Slika 17 Vi obezbeđujete osnovu za spajanje srodnih tabela uparivanjem primarnih i sporednih ključeva. Ako niste sigurni koje tabele bi trebalo da dele zajedničku kolonu, identifikacija relacije jedan-prema-više obezbeđuje situaciju u kojoj će dve povezane tabele zaista zahtevati deljenu kolonu Kreiranje relacije više-prema-više Razmotrite relaciju između tabele Proizvodi i tabele Porudžbine. Jedna porudžbina može da sadrži više proizvoda, a jedan proizvod može da se pojavi u više porudžbina. Stoga, za svaki zapis u tabeli Porudžbine može da postoji više zapisa u tabeli Proizvodi, dok za svaki zapis u tabeli Proizvodi može da postoji više zapisa u tabeli Porudžbine. Ovaj tip relacije naziva se relacija više-prema-više jer za svaki proizvod može da postoji više porudžbina, a za svaku porudžbinu može da postoji više proizvoda. Imajte u vidu da je za otkrivanje relacije više-prema-više između tabela važno da uzmete u obzir obe strane relacije. Teme dveju tabela tabele porudžbina i proizvoda imaju relaciju više-prema-više. To predstavlja problem. Kako biste shvatili problem, zamislite šta bi se dogodilo ako biste pokušali da kreirate relaciju između ove dve tabele dodavanjem polja ID proizvoda u tabelu Porudžbine. Potrebno je da u tabeli Porudžbine postoji više od jednog zapisa po porudžbini da biste imali više proizvoda po porudžbini. Ponavljaćete informacije o porudžbini za svaki red koji je povezan sa pojedinačnom porudžbinom što za posledicu ima neefikasan dizajn koji bi mogao da dovede do netačnih podataka. Srešćete se sa istim problemom ako polje ID porudžbine smestite u tabelu Proizvodi za svaki proizvod ćete imati više od jednog zapisa u tabeli Proizvodi. Kako rešiti ovakav problem? 21

21 Odgovor leži u kreiranju treće tabele koja se često naziva vezna tabela, a koja relaciju višeprema-više raščlanjuje na dve relacije jedan-prema-više. Primarni ključ iz obe tabele umeće se u treću tabelu. Kao posledica toga, treća tabela će zapisati svako pojavljivanje ili instancu relacije. Slika 18 Svaki zapis u tabeli Detalji porudžbine predstavlja jednu stavku u porudžbini. Primarni ključ tabele Detalji porudžbine sastoji se iz dva polja sporednih ključeva iz tabele Porudžbine i tabele Proizvodi. Kao primarni ključ ove tabele ne možete koristiti samo polje ID porudžbine, jer jedna porudžbina može da ima više stavki. Polje ID porudžbine se ponavlja za svaku stavku u porudžbini, tako da ono ne sadrži jedinstvene vrednosti. Ne možete koristiti ni samo polje ID proizvoda, jer jedan proizvod može da se pojavi u više porudžbina. Ali ova dva polja zajedno uvek kreiraju jedinstvenu vrednost za svaki zapis. U bazi podataka prodaje proizvoda, tabela Porudžbine i tabela Proizvodi nisu direktno povezane. One su, u stvari, povezane indirektno preko tabele Detalji porudžbine. Relacija više-prema-više između porudžbina i proizvoda predstavljena je u bazi podataka pomoću dve relacije jedan-prema-više : Između tabela Porudžbine i Detalji porudžbine postoji relacija jedan-premaviše. Svaka porudžbina može da ima više stavki, dok je svaka stavka povezana sa samo jednom porudžbinom. Između tabela Proizvodi i Detalji porudžbine postoji relacija jedan-prema-više. Svaki proizvod može da ima više pridruženih stavki, ali svaka stavka upućuje samo na jedan proizvod. Iz tabele Detalji porudžbine možete da odredite sve proizvode u određenoj porudžbini. Možete da odredite i sve porudžbine za određeni proizvod. Posle unosa tabele Detalji porudžbine, lista tabela i polja bi mogla da izgleda poput ove: 22

22 Slika Kreiranje relacije jedan-prema-jedan Drugi tip relacije jeste relacija jedan-prema-jedan. Na primer, pretpostavimo da treba da zapišete neke specijalne dopunske informacije o proizvodu koje će vam retko biti potrebne ili koje su primenljive na samo nekoliko proizvoda. Pošto vam te informacije nisu često potrebne i pošto bi njihovo skladištenje u tabelu Proizvodi dovelo do pojave praznog prostora za svaki proizvod za koji one ne važe, smestite ih u odvojenu tabelu. Koristite ID proizvoda kao primarni ključ, kao u tabeli Proizvodi. Relacija između ove dopunske tabele i tabele Proizvod je relacija jedan-prema-jedan. Za svaki zapis u tabeli Proizvod postoji jedan podudarni zapis u dopunskoj tabeli. Kada identifikujete takvu relaciju, obe tabele moraju da dele zajedničko polje. Kada otkrijete potrebu za relacijom jedan-prema-jedan, razmotrite da li informacije iz dve tabele možete da smestite u jednu tabelu. Ako to iz nekog razloga ne želite da uradite, možda zbog toga što bi to proizvelo mnogo praznog prostora, sledeća lista sadrži opis načina na koji biste tu relaciju predstavili u dizajnu: Ako dve tabele imaju istu temu, verovatno možete da podesite relaciju pomoću istog primarnog ključa u obe tabele. Ako dve tabele imaju različite teme sa različitim primarnim ključevima, odaberite jednu od tabela (bilo koju) i umetnite njen primarni ključ u drugu tabelu kao sporedni ključ. 23

23 Određivanje relacija između tabela vam pomaže da se uverite da imate odgovarajuće tabele ili kolone. Kada postoji relacija jedan-prema-jedan ili jedan-prema-više, biće potrebno da tabele unutar relacije dele zajedničku kolonu ili kolone. Kada postoji relacija više-premaviše, za predstavljanje relacije će biti potrebna treća tabela Pročišćavanje dizajna Ako imate potrebne tabele, polja i relacije, trebalo bi da kreirate tabele i popunite ih probnim podacima, kao i da isprobate rad sa informacijama: kreiranje upita, dodavanje novih zapisa itd. Na taj način ćete doprineti otkrivanju potencijalnih problema na primer, možda će biti potrebno da dodate kolonu koju ste zaboravili da umetnete tokom faze dizajniranja ili možda bi neku tabelu trebalo da podelite na dve tabele kako biste uklonili dupliranje. Proverite da li bazu podataka možete da koristite kako biste dobili željene odgovore. Kreirajte prve radne verzije obrazaca i izveštaja i vidite da li one prikazuju očekivane rezultate. Potražite nepotrebne duplikate podataka i izmenite dizajn kako biste ih eliminisali nakon što ih pronađete. Dok budete isprobavali početnu bazu podataka, verovatno ćete otkriti da ima mesta za poboljšanja. Evo nekoliko stvari koje bi trebalo da proverite: Da li ste zaboravili neke kolone? Ako je to slučaj, da li te informacije pripadaju postojećim tabelama? Ukoliko se radi o informacijama o nečem drugom, možda će biti potrebno da kreirate još jednu tabelu. Kreirajte kolonu za svaku stavku informacija koju treba da pratite. Ako se ta informacija ne može izračunati na osnovu drugih kolona, postoji verovatnoća da će vam za nju biti potrebna nova kolona. Da li su neke kolone nepotrebne jer se mogu izračunati na osnovu postojećih polja? Ako neka stavka informacija može da se izračuna na osnovu drugih postojećih kolona npr. cena sa popustom izračunata na osnovu maloprodajne cene često je bolje uraditi samo to i izbeći kreiranje nove kolone. Da li iznova unosite duplirane informacije u neku tabelu? Ako je to slučaj, verovatno je potrebno da tabelu podelite na dve tabele između kojih će postojati relacija jedan-prema-više. Da li ste svaku informaciju raščlanili na najmanje korisnih delova? Ako je potrebno da izveštavate, sortirate, pretražujete ili izračunavate prema nekoj stavci informacije, stavite je u zasebnu kolonu. Da li svaka kolona sadrži činjenicu o temi tabele? Ako kolona ne sadrži informaciju o temi tabele, ona pripada drugoj tabeli Pročišćavanje tabele Proizvodi Pretpostavimo da svaki proizvod u bazi podataka prodaje proizvoda spada u opštu kategoriju, poput alkoholnih i bezalkoholnih pića, začina ili morskih plodova. Tabela Proizvodi bi mogla da sadrži polje koje prikazuje kategoriju svakog proizvoda. Pretpostavimo da posle ispitivanja i pročišćavanja dizajna baze podataka odlučite da uskladištite opis kategorije sa njenim imenom. Ako dodate polje Opis kategorije u tabelu 24

24 Proizvodi, moraćete da ponavljate opis kategorije za svaki proizvod koji spada u određenu kategoriju ovo nije dobro rešenje. Bolje rešenje je da tabela Kategorije postane nova tema koja će se pratiti u bazi podataka, sa sopstvenom tabelom i sopstvenim primarnim ključem. Nakon toga primarni ključ iz tabele Kategorije možete dodati u tabelu Proizvodi kao sporedni ključ. Tabele Kategorije i Proizvodi imaju relaciju jedan-prema-više : kategorija može da sadrži više proizvoda, ali proizvod može da pripada samo jednoj kategoriji. Kada redigujete strukture tabela, obratite pažnju na grupe koje se ponavljaju. Na primer, razmotrite tabelu koja sadrži sledeće kolone: ID proizvoda Ime ID1 proizvoda Ime1 ID2 proizvoda Ime2 ID3 proizvoda Ime3 Ovde svaki proizvod predstavlja grupu kolona koja se ponavlja i razlikuje od drugih samo po broju koji se dodaje na kraj imena kolone. Kada vidite ovako numerisane kolone, trebalo bi da ponovo razmotrite dizajn. Takav dizajn ima nekoliko nedostataka. Za početak, primorava vas da postavite gornju granicu broja proizvoda. Čim prekoračite tu granicu, moraćete da dodate novu grupu kolona u strukturu tabele što predstavlja osnovni administrativni zadatak. Problem je i u tome što će ti dobavljači koji imaju manji broj proizvoda od maksimalnog nepotrebno zauzeti prostor, pošto će dodatne kolone biti prazne. Najozbiljniji nedostatak takvog dizajna je u tome što otežava izvršavanje mnogih zadataka, kao što je sortiranje ili indeksiranje tabele prema ID-u proizvoda ili imenu. Svaki put kada vidite grupe koje se ponavljaju, pažljivo redigujte dizajn obrativši pažnju na deljenje jedne tabele na dve. U prethodnom primeru je bolje koristiti dve tabele, jednu za dobavljače, a drugu za proizvode, pri čemu bi one bile međusobno povezane ID-om dobavljača Primenjivanje pravila normalizacije Pravila normalizacije podataka (ponekad se nazivaju samo pravila normalizacije) možete da primenite kao sledeći korak u dizajnu. Koristite ova pravila da biste proverili da li su tabele ispravno strukturirane. Proces primenjivanja pravila na dizajn baze podataka naziva se normalizacija baze podataka ili samo normalizacija. Normalizacija je najkorisnije pošto predstavite sve stavke informacija i dođete do preliminarnog dizajna. Cilj je da se uverite da ste informacije podelili u odgovarajuće tabele. Putem normalizacije ne možete da proverite da li imate sve ispravne stavke podataka potrebne za početak rada. 25

25 Pravila primenjujete redom, pri čemu se tokom svakog koraka morate uveriti da je vaš dizajn postigao takozvanu normalnu formu. Opšteprihvaćeno je pet takvih formi od prve do pete normalne forme. Ovaj članak sadrži objašnjenja o prve tri, jer su one dovoljne za većinu slučajeva dizajna baze podataka Prva normalna forma Prva normalna forma podrazumeva da u svakom preseku reda i kolone u tabeli postoji jedna vrednost, a nikada lista vrednosti. Na primer, ne možete imati polje pod nazivom Cena u koje ćete smestiti više cena. Ako svaki presek redova i kolona zamislite kao ćeliju, svaka ćelija može da sadrži jednu vrednost Druga normalna forma Druga normalna forma zahteva da svaka kolona bez ključa potpuno zavisi od celog primarnog ključa, a ne samo nekog njegovog dela. Ovo pravilo se primenjuje kada imate primarni ključ koji se sastoji od više kolona. Na primer, pretpostavimo da imate tabelu koja sadrži sledeće kolone, pri čemu polja ID porudžbine i ID proizvoda formiraju primarni ključ: ID porudžbine (primarni ključ) ID proizvoda (primarni ključ) Ime proizvoda Ovakav dizajn krši pravilo druge normalne forme, jer kolona Ime proizvoda zavisi od polja ID proizvoda, a ne od polja ID porudžbine, tako da ne zavisi od celog primarnog ključa. Potrebno je da iz tabele uklonite kolonu Ime proizvoda. Ona pripada dugoj tabeli (tabeli Proizvodi ) Treća normalna forma Treća normalna forma ne zahteva samo da svaka kolona bez ključa bude zavisna od celog primarnog ključa, već i da kolone bez ključa zavise jedna od druge. Drugim rečima, svaka tabela bez ključa mora da zavisi od primarnog ključa i ni od čega drugog. Na primer, pretpostavimo da imate tabelu koja sadrži sledeće kolone: ID proizvoda (primarni ključ) Ime PMC Popust Pretpostavimo da kolona Popust zavisi od preporučene maloprodajne cene (PMC). Ova tabela narušava treću normalnu formu jer kolona bez ključa Popust zavisi od kolone bez ključa PMC. Nezavisnost kolone znači da bi trebalo da budete u mogućnosti da promenite svaku kolonu koja ne sadrži ključ ne utičući na druge kolone. Ako promenite vrednost u polju PMC, kolona Popust će se promeniti u skladu sa tim i na taj način prekršiti to pravilo. U ovom slučaju, kolonu Popust bi trebalo premestiti u drugu tabelu sa ključem u polju PMC. 26

26 3. M I C R O S O F T A C C E S S Access je sistem za upravljanje bazama podataka (data base management system DBMS), koristi se za skladištenje i učitavanje podatke, prikazivanje, a takodje i za automatizaciju poslova koji se često ponavljaju. Predstavlja odličnu kombinaciju produktivnosti programa za upravljanje bazom podataka i lakoće korišcenja Windows-a. Kao zaokružena aplikacija, Access obezbedjuje potpuno upravljanje relacionom bazom podataka i integritet na nivou same mašine na kojoj se nalazi baza (što sprečava ne potpuno ažuriranje i brisanje). Tabelama je moguće pridružiti pravila koja proveravaju ispravnost i validnost podataka i sprečavaju unos neispravnih, a svako polje tabele može imati svoj format i podrazumevanu vrednost što znatno povećava produktivnost. Omogucen je uvoz i izvoz podataka iz mnogih aplikacija: dbase, FoxPro, Excel, SQL Server, Oracle, Btrieve, tekstualni ASCII formati (polja sa fiksnom širinom i granicnicima), kao i podataka u HTML formatu. Access 2007 omogućava korišćenje svojih aplikacija za rad na Internetu. Izborom odredjene opcije omogućava se prebacivanje tabela, upita, izveštaja i prikaza u tabelarnom obliku u HTML format. Pomocu Data Acess Pages (stranice za pristup podacima) mogu da se prave složeni obrazci na Internetu koji su povezani sa podacima u konkretnoj mreži Objekti baze Razvijena baza podataka u Accessu se sastoji od sledećih elemenata, tj. objekata: tabele, upiti, izveštaji; a može sadržati: Data Access strane, makroe i/ili VBA module. Tabele Slika 20 Tabele su nosioci podataka. Podaci se mogu nalaziti isključivo u tabelama. Svaka tabela se sastoji od kolona i redova, dok se presek kolone i reda naziva polje. 27

27 Upiti Upiti su posebni pregledi kojima se postavlja neki upit nad tabelom i koji izdvajaju podatke za pregled na ekranu ili štampanje putem izveštaja. Forme Slika 21 Slika 22 Forma je samo "pogled" na tabelu u čoveku prihvatljivijem izgledu. Nad formiranom tabelom koja sadrži podatke o nekom čitaocu formiramo masku za unos koja ima izgled papirnog obrasca - kartice, te manipulant ne mora da poznaje rad sa Accessom, nego samo koristi 28

28 elektronske obrasce (maske) i unosi podatke putem tastature, baš kao što je to ranije činio olovkom. Izveštaji Izveštaji su elektronski oblik klasičnih papirnih obrazaca koje možemo gledati na ekranu ili štampati na papir. Podaci prikazani u izveštaju mogu biti izvedeni iz tabela ili iz upita (filtrirani podaci). Dizajniranje izveštaja je veoma slično dizajniranju formi. Slika Opis primera na kojem je priručnik baziran Izgradnje baze počinje od osmišljavanja tabela i njihovog povezivanja. Za kreiranje programa Biblioteka za početak ćemo osmotriti celine - podatke koje treba grupisati u zasebnim tabelama. Svaka biblioteka ima svoje čitaoce. Prva tabela će se stoga zvati Čitaoci. Sama biblioteka ima svoje podatke kao što su adresa, telefon, ime direktora i slično. Druga tabela će se zvati Biblioteka. Sama biblioteka ne bi bila to što jeste da nema knjiga. Za knjige je karakterističan inventarni broj, naslov knjige, autor itd. Treća tabela će se shodno tome zvati Knjige. Interakcija između biblioteke i čitalaca se ogleda u izdavanju i vraćanju knjiga i plaćanju članarine. Četvrtu tabelu ćemo kreirati iz aktivnosti interakcije biblioteke i čitalaca (četvrta tabela - Poslovanje), a zapis o članarini ćemo ipak čuvati u tabeli Čitaoci. Zašto zasebne tabele? Jednostavno - zbog izbegavanja dupliranja podataka. Podaci kao što su telefon, adresa, ime i prezime, datum uplate članarine za čitaoca su jedinstveni i ne postoji niti jedan razlog da se oni ponavljaju. Ako bi pak kreirali samo jednu tabelu, u nju bi 29

29 morali da unosimo ime i prezime čitaoca (njegovu adresu, broj telefona, datum plaćanja članarine...) i naslov knjige za svako izdavanje i vraćanje (sa njegovim autorom, godinom izdanja, izdavačem...), te bi ovim nepotrebno duplirali podatke. Još gore: veoma su moguće greške u kucanju - nikad ne bismo bili načisto koliko je knjiga koji čitalac pročitao, odnosno koliko knjiga uopšte postoji u biblioteci. Tabeli Čitaoci ćemo na kraju pridružiti i univerzalni identifikacioni broj, broj koji će se upisivati u tabelu Poslovanje. Sem toga, tabeli knjige ćemo pridružiti takođe nezavisan univerzalni identifikacioni broj, nalik ono što smo ranijih godina viđali po bibliotekama - inventarni broj. Operatoru u biblioteci je mnogo lakše da na vašu karticu upiše broj knjige koju ste uzeli, umesto da piše pun naslov knjige Pokretanje programa, pripremne radnje, kreiranje prve tabele Kada se pokrene Access 2007 otvora se prozor prikazan na sledećoj slici: Slika 24 Klikom na Office dugme (Office Button) u gornjem levom uglu, otvara se meni gde je potrebno izabrati New, koja je prikazana na sledećoj slici: 30

30 Slika 25 Sa leve strane pojaviće se forma za unos imena baze podataka, što je prikazano na slededoj slici. Slika 26 Nakon klika na dugme Create, otvara se novokreirana baza podataka, odnosno prostor u kome se kreiraju tabele za bazu podataka. Svaka baza podataka kreirana u Access 2007 dobija ekstenziju.accdb što je skraćeno od Access DataBase, za razliku od prethodnih verzija Access-a gde je ekstenzija bila.mdb (Microsoft DataBase). 31

31 3. 4. Planiranje tabela Pošto smo stvorili sliku o potrebnom broju tabela i njihovoj nameni, možemo preći na sledeći korak - definisanje tabela. Broj tabela smo već utvrdili i on iznosi četiri (Čitaoci, Biblioteka, Knjige i Poslovanje). Za svaku tabelu valja definisati polja i adekvatne tipove podataka koji se mogu u njih unositi: Tabela 'Čitaoci' Naziv polja Tip polja Podvrsta / veličina polja Komentar ID_Citalac Number Integer (*) Prezime_Ime Text 35 u isto polje upisujemo i ime i prezime Adresa Text 30 broj karaktera je restriktivno postavljen, ovo se kasnije može povećati po potrebi; uključuje naziv ulice i broj kuće Mesto Text 30 uključuje poštanski broj i naziv mesta Telefon Text 15 tip je tekst zbog interpunkcije formata xxx / AAA-BBBB Dat_rodj Date Short Date (**) potrebno za statističku obradu starosne strukture čitalaca Dat_upisa Date Short Date takođe potrebno za statističku obradu Dat_clan Date Short Date datum plaćanja članarine; potreban za uvid u finansijsko poslovanje i obaveštavanje čitalaca o isteku članarine Napomena Memo (***) (*) Integer je tip polja Number koji omogućava upis brojeva od do a kako identifikacioni broj ne može ići u minus smatramo tip polja 0 do ; ako će biti više čitalaca od tog broja, stavljamo tip Long Integer za brojeve od 0 do (**) Short Date predstavlja prikaz datuma u obliku dd/mm/yy (***) Memo je tip polja koji ne uzima fiksnu memoriju već zavisi od broja ukucanih karaktera Tabela 'Knjige' Naziv polja Tip polja Podvrsta / veličina polja Komentar ID_Knjiga Number Long Integer Biće mnogo knjiga, treba nam više od Autor Text 30 Naslov Text 40 Izdavac Text 30 God_Izd Text 5 format polja godine sa četiri cifre Zanr Text 1 usvojićemo oznake kao:f - fantastka, p - poezija i sl. Status Text 1 konvencija: r - raspoloziva, n - nije vraćena, z - nije za izdavanje... 32

32 Tabela 'Biblioteka' Naziv polja Tip polja Podvrsta / veličina polja Komentar Naziv Text 50 Adresa Text 40 Mesto Text 35 Telefon Text 15 Direktor Text 30 Tabela 'Poslovanje' Naziv polja Tip polja Podvrsta / veličina polja Komentar ID_Zapis Autonumber ID_Citalac Number Integer ID_Knjiga Number Long Integer Dat_izd Date Short Date datum izdavanja Dat_vr Date Short Date datum vraćanja Kreiranje prve tabele Tabele u Access-u se mogu formirati na nekoliko načina: Datasheet View omogućava direktno unošenje podataka u tabelu, pri čemu program sam određuje tip polja. Ime polja se daje opcijom Rename Column iz menija koji se dobija desnim klikom na naslov kolone. Ovaj način se retko koristi, jedino ako nije poznata struktura tabele ili ako je potrebno ubaciti kopirane podatke iz nekog drugog programa (npr.ms Excel). Design View omogućava kreiranje tabele detaljnim izborom svojstava polja podataka, kao što su imena polja, tip podataka i veličina polja, određivanje primarnog ključa, i slično. To je najčešće korišćen pristup. Table Wizard poziva čarobnjaka koji koristi biblioteku već formiranih tabela. Ova mogućnost je korisna kada se kreiraju standardni objekti kao što su adresari, računi u fazi učenja, ali se u praksi ne koristi mnogo. Import Table omogućava uvoz tabele iz nekog drugog izvora podataka, druge Access baze, MS Excel dokumenta, kao i fajlova tekstualnog formata. Link Table obezbeđuje povezivanje sa tabelama iz druge MS Access baze (može i neki drugi format baze), pri čemu tabela ostaje u matičnoj bazi, a linkom se omogućuje veza na nju u cilju pregleda i eventualno ažuriranja podataka. U ovoj situaciji, pristup dizajnu tabele nije moguć iz baze koja ima link na datu tabelu, već samo iz matične (izvorne) baze. Dizajnu tabele se ne može pristupiti dok se svi aktivni linkovi na odnosnu tabelu ne isključe, što znači da pri dizajnu tabele niko (kroz mrežu) ne može da je ažurira. Design View mod Prostor u kome se kreiraju tabele prikazan je na sledećoj slici. 33

33 Slika 27 Desnim klikom miša na Table1 prikazuje se meni iz kojeg se tabela otvara u Design View modu, kao što se vidi na slici. Design View mod se otvara onda kada je potrebno uraditi podešavanja vezana za dizajn i funkcionalnost otvorenog prozora, bez obzira da li je u pitanju tabela, upit, forma, izveštaj, ili makro. Slika 28 Prvo je potrebno upisati naziv tabele. Naziv tabele je CITAOCI. Dodeljivanje imena tabeli vrši se u prozoru prikazanom na sledećoj slici. Slika 29 34

34 Zatim se otvara prozor za dizajniranje tabele. Slika 30 Na slici, kolona obeležena brojem 1 predstavlja naziv kolone, broj 2 je tip kolone, a broj 3 je komentar koji se pojavljuje u statusnoj liniji Accessovog prozora. U Field Name preseka prve kolone i reda upisaćemo tekst ID_Citalac. U drugoj koloni istog reda ukucaćemo Number. U koloni broj 3 istog reda stavićemo komentar Jedinstveni broj čitaoca. MS Access podržava sledeće tipove podataka (Data Type): Slika 31 Text - tekst (slova, brojevi i svi specijalni znaci) sa kojim se ne vrše računske operacije, a dužine do 255 karaktera. Memo - dugačak tekst (slova, brojevi i svi specijalni znaci) duţine do karaktera. Ovakav tip tekstualnog podatka ne može ući u neko sortiranje, pretraživanje ili grupisanje. Number brojevi koji se upotrebljavaju u aritmetčkim izrazima, a veličina polja zavisi od "podtipa" koji može biti: Byte, Integer, Long Integer, Single, Double, Replication ID, Date/Time, Currency, Auto Number (koji moţe biti Long Integer ili Replication ID opsega) ili Yes/No. OLE Object Objekat kaoms Word dokument, MS Excel tabela, zvuk, grafikon, slika, a može biti povezan (Linked) ili ugrađen (embedded) u MS Access tabelu. Lookup Wizard-om se kreiraju polja koja omogućavaju izbor vrednosti iz druge tabele ili iz (ograničene) liste vrednosti upotrebom ComboBox ili ListBox kontrole. Izborom ove stavke startuje se Lookup Wizard, kojim se definiše vrsta izvora, način popunjavanja i broj polja. 35

35 Primetimo da se na delu ekrana iznad kojeg piše Field Properties pojavila tabela sa različitim stavkama. Ako ste ispravno radili, na ekranu ćete imati prikaz sličan kao na ovoj slici: Slika 32 Još jednom da objasnimo šta smo učinili. Započeli smo kreiranje tabele i nazivu prve kolone smo dodelili tekst ID_Citalac. Tip polja, kako smo ranije isplanirali, je Number. To znači da će u polje moći da se ukucavaju isključivo numeričke vrednosti, a sam tip polja ćemo postaviti na Integer. Na slici, ispod teksta Field Properties, na kartici General prva opcija je "veličina" (odnosno pod-tip) polja. Ovu vrednost ćemo promeniti na Integer. Postavimo i ostale osobine kao na slici: Slika 33 Primetimo da je na slici aktivno polje sa datumom. Ovde smo iskoristili osobinu Input Mask ("maska" za unos u polje), koju smo postavili na To nalaže operateru/bibliotekaru 36

36 da datum ukucava isključivo kao 6 cifara - dve za dan, dve za mesec i dve za godinu (2000. godina se ukucava kao 00). Osobine koje se mogu postaviti za polje Number su odozgo na dole sledeće: Field Size - veličina, odnosno tip polja Format - način na koji će ukucani brojevi biti prikazani Decimal Place - broj decimala u cifri. Vrednost postavljamo na nula, pošto identifikacioni broj nema smisla sa decimalama Input Mask - "maska" za unos brojeva. Ako u ovo polje postavimo vrednost 00000, korisnik će morati da unese tačno pet cifara za identifikacioni broj čitaoca (npr ) Caption - tekst koji se pojavljuje kao naziv kolone u pogledu za unos podataka (mi smo trenutno u dizajn-pogledu) Validation Rule - pravilo koje se mora ispoštovati pri unosu. Vrednost smo postavili na >0 kako se ne bi mogli uneti negativni brojevi. Validation Text - tekst koji se pojavljuje kao upozorenje kada korisnik pogreši pri unosu Required - određuje da li je unos neophodan ili ne. Vrednost postavljamo na Yes. Indexed - da li je polje indeksirano ili ne. U indeksiranom polju pretraga je brža. No Duplicates u zagradi znači da se ne smeju pojaviti (ukucati) dve iste šifre za dva različita čitaoca. Sledeći i poslednji važan korak je postavljanje primarnog ključa. Primarni ključ je jedno ili više polja preko kojih će tabela biti povezana sa drugim tabelama, preko koje će se podaci indeksirati i izbeći mogućnost dupliranih unosa. U tabeli Čitaoci primarni ključ ćemo postaviti na polje ID_Citalac. Pozicionirajmo kurzor na red u kome nalazi tekst ID_Citalac. Kliknimo na ikonu ključa na toolbaru. Izgled reda tabele ID_Citalac će biti sada ovakav: Slika 34 Ovim je prva tabela kreirana i snimljena. Na sličan način ćemo kreirati i ostale tabele. 37

37 3. 6. Povezivanje tabela Iskoristićemo postojeće, ranije kreirane tabele i povezaćemo ih međusobno u relacije. Punu snagu Access ostvaruje iz relacionih tabela (otuda naziv relacione baze podataka). Iz relacionih tabela podatke je lako filtrirati i na njih primeniti razne kriterijume bez obzira iz koliko tabela podaci potiču. Ako analiziramo spisak polja i strukturu tabela videćemo da međusobnog povezivanje tabela nema mnogo. Praktično, ima ih dva i oba se nalaze u tabeli Poslovanje. Polje ID_Knjiga bi valjalo povezati sa istoimenim poljem iz tabele Knjige i polje ID_Citalac sa istoimenim poljem iz tabele Citaoci. Vraćamo se u Access i prozor baze. Selektujemo tabelu Poslovanje i kliknemo na taster Design. Sada se otvara već poznati dizajn-pogled tabele. Kliknimo u polje Number reda ID_Knjiga. Primetićemo da je polje "drop-down" tipa, odnosno da sadrži listu za izbor koja se može videti klikom na strelicu na dole ili pritiskom na taster F4. Slika 35 Ono što ćemo sada učiniti je da polja ID_Knjiga i ID_Citalac ograničimo na sadržaj tabela Knjige i Citaoci. Tip polja Number reda ID_Knjiga promenimo na Lookup Wizard... Pokreće se procedura koja će na osnovu naših odgovora na postavljena pitanja formirati relaciju umesto nas: 38

38 Slika 36 Na prvo pitanje odgovaramo sa prvom opcijom jer želimo da se u tabeli Poslovanje na mesto broja knjige pojavljuju samo vrednosti iz tabele knjiga, odnosno samo smisleni inventarni brojevi (biranjem druge opcije u koloni ID_Knjiga mogli bismo da kucamo bilo koji inventarni broj, pa i onaj nepostojeći). Klikom na Next (ili sa tastature ALT+N) sledi drugi korak: Slika 37 U ovom koraku biramo tabelu iz koje će se uzimati podaci, odnosno određujemo "izvorišnu" tabelu. Dalje, u trećem koraku određujemo kolonu (polja) koja će biti "izvor" podataka: 39

39 Slika 38 Preostala dva koraka nisu neophodna i već sada možemo kliknuti na taster Finish. Četvrti korak je "kozmetički" i ovde određujemo širinu kolone koje će se prikazivati na ekranu: Slika 39 U poslednjem koraku možemo uticati na naziv kolone, a kako nam naziv ID_Knjiga već odgovara, kliknućemo na taster Finish: 40

40 Slika 40 Ovim je kreirana prva tzv. relacija tabela Poslovanje i Knjige. Tabelu Poslovanje treba istom procedurom povezati sa tabelom Citaoci, što ćete prateći prethodni postupak sami uraditi. Polja koja se povezuju nose isto ime u obe tabele: ID_Citalac. Još jednu, veoma bitnu, stvar moramo napraviti da bi ova veza funkcionisala kako valja: operateru se mora onemogućiti da u polja ID_Knjiga i ID_Citalac upisuje proizvoljne vrednosti, odnosno one vrednosti za koje ne postoji odgovarajuća šifra u tabelama Knjige i Citaoci. Otvorimo ponovo tabelu Poslovanje u dizajn-pogledu. Selektujmo red ID_Knjiga klikom miša. Ispod teksta Field Properties postoje dva tzv. taba - General i Lookup. Klikom na tab Lookup otvara se lista osobina za polja čiji sadržaj se gleda iz druge tabele. Na ovoj listi za polja ID_Knjiga i ID_Citalac tabele Poslovanje osobinu Limit To List postavimo na vrednost Yes. Slika 41 41

41 Snimimo i zatvorimo tabelu. Ovim smo ograničili sadržaj polja ID_Citalac i ID_Knjiga na sadržaj druge dve relevantne tabele - Knjige i Citaoci. Pored ovih Lookup relacija napravićemo još i prave relacije između tabela. Sa kartice DatabaseTools biramo opciju Relationships... U prazan prozor koji se pojavi, dodaćemo tabele koje ćemo povezati. Spisak postojećih tabela dobija se klikom na taster Show Table. Slika 42 Dodajmo redom tabele: Citaoci, Poslovanje i Knjige. Iz tabele Citaoci prevucimo polje ID_Citalac u tabelu Poslovanje na polje ID_Citalac. U prozoru koji se pojavi, podešavamo osobine ove relacije. Slika 43 Na slici, obeleženo brojem 1 su tabele koje će biti povezane. Polja koja su međusobno povezana su obeležena brojem 2. Pod brojem 3 su opcije koje će definisati ponašenje ciljne tabele u zavisnosti od promene podataka u izvorišnoj tabeli. Ove opcije ćemo sve uključiti jer će one omogućiti da se, ukoliko se npr. promeni inventarni broj knjige u tabeli Knjige, ova promena reflektuje na tabelu Poslovanje. 42

42 Primer: Ako je čitalac sa šifrom 15 zadužio i razdužio knjigu sa inventarnim brojem 26, ove promene će ostati zapisana u tabeli Poslovanje i taj podatak može poslužiti u vođenju statistike o čitanosti knjige i broju pročitanih knjiga za čitaoca. Takođe, ukoliko se knjiga ošteti, može se na osnovu istorije izdavanja knjige utvrditi ko je od čitalaca iznajmljivao tu knjigu i tako eventualno pronaći krivca za oštećenje. U momentu kada se knjizi iz raznih razloga promeni njen inventarni broj, ili se knjiga rashoduje, ova promena se neće odraziti na tabelu Poslovanje, ukoliko pomenute opcije sa slike obeležene brojem 3 nisu uključene. U našem slučaju bismo rashodovali knjigu 26 i na mesto njenog broja postavili drugu knjigu, pa bismo dobili sasvim pogrešne podatke o izdavanju knjige i čitaocima koji su knjigu iznajmljivali. Uključenjem opcija pod Enforce Referential Integrity će se promene podataka u tabelama Citaoci i Knjige automatski reflektovati na tabelu Poslovanje. Na slici pod brojem 4 označen je tip relacija. U našem slučaju One-to-many znači da knjiga može imati jedinstven broj, da se ta knjiga može više puta izdati, te da jedan čitalac u isto vreme može uzeti više knjiga. Sem ove relacije postoji još dva tipa relacije. Druga je One-to-one što bi značilo da jedan čitalac može uzeti samo jednu knjigu. Ova relacija bi bila primenljiva u, recimo, "Sega" klubovima, gde biste jednom članu dozvolili da iznajmi jednu konzolu za igranje. Treća vrsta relacija je Many-to-many. Ova relacija se upotrebljava u slučajevima kada postoji osobina zajedničke pripadnosti. Za primer, recimo da dva radnika zaduže dva kompleta alata bez posebne zajedničke pripadnosti. Obojica su tada vlasnici i jednog i drugog kompleta alata. Pod brojem 5 na slici je označen taster Join Type... Klikom na taster ili prečicom ALT+J otvara se dijalog sa tri opcije: Slika 44 Prva opcija će dozvoliti pojavljivanje knjiga u tabeli Poslovanje samo za one inventarne brojeve koji već postoje u tabeli Poslovanje. Biranjem druge opcije u tabeli Poslovanje će moći da se "pojave" svi inventarni brojevi knjiga. 43

43 Trećom opcijom bismo dozvolili (slično prvoj) pojavljivanje inventarnih brojeva knjiga samo onih koji već postoje u tabeli Poslovanje. Praktično prva i treća opcija nemaju nekog smisla u našem slučaju. Stoga odabiramo drugu opciju i potvrđujem izbor klikom na taster OK. Takođe potvrdimo i promene osobina relacija još jednim klikom na taster OK. Prateći postupak u kome smo kreirali relaciju između tabela Citaoci i Poslovanje gde smo povezali polja ID_Citalac, povežimo i tabele Knjige i Poslovanje. Nakon obavljene operacije imaćemo izgled relacija kao na sledećoj slici. Slika 45 Konačno zatvorimo prozor relacija i odgovorimo potvrdno na postavljeno pitanje kojim snimamo naše promene na relacijama tabela Unošenje prvih zapisa Pre nego što pređemo na kreiranje formulara za rad sa podacima, iskoristićemo priliku da unesemo podatke direktno u tabele. Način na koji Access smešta podatke u tabele je naizgled veoma jednostavan, a njegovo razumevanje je veoma važno za kasnije dizajniranje formulara i izveštaja. Otvorimo Access i bazu podataka na kojoj radimo. Pređimo na tab Table. Od četiri tabele koje smo kreirali (Biblioteka, Knjige, Citaoci, Poslovanje) otvorimo za unos tabelu Citaoci. Tabela se "otvara" za unos jednim klikom na naziv tabele i zatim klikom na taster "Open" ili jednostavno - dvoklikom na naziv tabele. Dvoklik na naziv tabele uz pritisnut taster CTRL otvara tabelu u dizajn-pogledu. Popunimo prvi slog tabele sledećim podacima: Prezime_ime Petrović Petar Adresa Nemanjina 15 Mesto Novi Sad Telefon 021/ Dat_rodj Dat_upisa (00 ovde skraćeno označava godinu!) Dat_clan

44 Slika 46 Otvorimo zatim tabelu Knjige i unesimo, takođe, jedan slog: ID_Knjiga 1 Autor Grupa autora Naslov Korak po korak - Microsoft Office 2000 Izdavac Microsoft Press God_izd 1999 Zanr n (Naučna literatura) Status u (U upotrebi) Pošto postoji barem jedan slog u obe tabele možemo otvoriti i treću tabelu - Poslovanje, kako bismo čitaocu "iznajmili" knjigu. U polje ID_Zapis ne upisujemo ništa, uostalom Access to neće dozvoliti, jer smo to polje definisali kao AutoNumber. To polje Access sam popunjava inkrementirajućim brojem. Primetimo da kada započnemo unos u polje ID_Citalac, u polju ID_Zapis će pisati 1. Dakle, popunimo prvi slog tabele Poslovanje sledećim vrednostima: ID_Citalac 1 (čitalac sa šifrom broj 1) ID_Knjiga 1 (knjiga pod inventarnim brojem 1) Dat_izd Dat_vr Sve što operater - bibliotekar treba da radi je da unese šifru knjige i čitaoca, kao i datum izmene. Možemo na ovom mestu ići i korak dalje - recimo da se u polju Dat_izd kao unapred ponuđena vrednost nađe tekući datum. Time bismo dodatno rasteretili operatera unosa datuma. Zatvorimo tabelu Poslovanje. Uz pritisnut taster CTRL dvokliknimo mišem ponovo na tabelu Poslovanje (za izmenu dizajna tabele). Kliknimo na red u kome piše Dat_izd i upišimo u vrednost osobine Default Value (osnovna vrednost) funkciju: =Date(). Snimimo i zatvorimo tabelu. 45

45 Slika 47 U trenutku kada smo započeli unos u tabele Knjige i Citaoci, verovatno ste primetili znak + na levoj strani sloga. Klikom na taj znak Access prikazuje kaskadnu tabelu za koju je direktno vezana tabela sa kojom operišemo, odnosno prikazuje slog ili grupu slogova koji su u relaciji sa slogom otvorene tabele. Za tabelu Citaoci klikom na znak + dobija se tabela Poslovanje gde su slogovi u međusobnoj direktnoj relaciji: Slika 48 46

46 Sa slike možemo videti da je čitalac sa šifrom 1 iznajmio knjigu sa inventarnim brojem 1. Ovo je zgodan način za testiranje ispravnosti relacija i tabela pre nego što se pređe na dizajniranje ostalih elemenata baze, naročito kada operišemo sa više tabela. Postavlja se pitanje kako ćemo razdužiti čitaocu knjigu kada je bude vratio? To možemo izvesti na dva načina: ili ćemo obrisati slog u tabeli Poslovanje za čitaoca i knjigu koji više nisu u vezi (i pri tome iskopirati taj slog u pomoćnu tabelu za statističku obradu) ili ćemo ostaviti taj slog u tabeli, a knjige koje se pojavljuju u padajućoj listi tabele Poslovanje, ID_Knjiga nekako ograničiti samo na raspoložive knjige. Na sledećem času ćemo iskoristiti polje Status tabele Knjiga i u njega upisivati status knjige, a taj parametar ćemo iskoristiti za ograničenje liste raspoloživih knjiga. Takođe ćemo kreirati i ostale formulare (neki ih zovu i obrascima, šablonima, formama). 47

47 4. Kreiranje elektronskih obrazaca - formi Forme, maske, elektronski obrasci ili formulari su neki od naziva koji su odomaćeni za englesku reč Forms. Elektronski obrasci predstavljaju ekvivalent papirnim obrascima, a koriste se za unos podataka u elektronske, računaru razumljive, baze podataka. Prednost elektronskih obrazaca nad papirnim je višestruka: unos podataka može biti delimično kontrolisan, u određenim poljima se mogu unapred ponuditi vrednosti (recimo tekućim datumom) dok se pojedina polja mogu popuniti automatski proračunom jedne ili više unetih vrednosti u druga polja. Pre osmišljavanja izgleda elektronskih obrazaca (u daljem tekstu: formi) valja uzeti na uvid papirne obrasce sa kojima su operatori do sada radili. U principu, nama je svejedno kako ćemo ih dizajnirati dok god poštujemo određena pravila, ali na taj način bismo olakšali operaterima prilagođavanja na nov način rada. Osnovna pravila kojih se treba držati su da se ne koriste blještave boje i ukrasni fontovi. Naše kreativne sposobnosti za ukrašavanje ćemo ostaviti za neko drugo mesto. Operateru koji često provodi i više godina na istom radnom mestu će biti vrlo zamorno da gleda u šaren ekran i da čita kitnjasta slova po ceo dan. Raspored polja koji se popunjava mora biti logičan i ravnomerno uravnat. Takođe valja predvideti da se kompletan unos može obaviti sa tastature, dakle, BEZ korišćenja miša. Kada se jednom usvoji ova navika unos može predstavljati pravo zadovoljstvo uz veliku uštedu u vremenu. U Access-u postoji šest osnovnih vrsta obrazaca: 1. Obrazac sa poljima rasporedenim u kolone 2. Tabelarni obrazac 3. Tabelarni prikaz 4. Glavni/Podobrazac 5. Obrazac za izvedene tabele 6. Dijagram Najlakši način za pravljenje jednostavnih obrazaca je da se klikne na tabelu za koju želimo napraviti obrazac, a zatim kliknuti na stavku gornjeg menija Create i izabrati Form i obrazac će se sam izgenerisati. Nešto složeniji način za pravljenje obrazaca je korišćenjem čarobnjaka za obrasce (Form Wizards). On se pokreće izborom stavke gornjeg menija Create, a zatim More Forms, pa Form Wizard. On postavlja niz pitanja u vezi sa željenim obrascem, a zatim ga sam automatski pravi. Ovi obrasci se retko koriste u finalnoj verziji, ali predstavljaju dobru polaznu osnovu za pravljenje složenijih formi. U ovom delu moguće je izabrati izgled obrasca. U stavci menija Create, moguće je izabrati i druge opcije za kreiranje obrazaca. Izborom opcije Blank Form prikazuje se potpuno prazan obrazac od kojeg se kreće u prozoru za oblikovanje obrazaca. Pravi obrazac sa jednim od četiri unapred zadata izgleda (s poljima rasporedenim u kolonu, tabelarni obrazac, tabelarni ili poravnati prikaz) najefikasnije se kreira pomoću opcije Form Wizard. Za pravljenje obrasca sa poslovnim dijagramom služi opcija PivotChart, dok će se za formiranje Excel-ove izvedene tabele kliknuti na More Forms, a zatim PivotTable. 48

48 Na obrazac se primenjuju iste tehnike za manipulisanje zapisima koje se koriste u tabelarnom prikazu. Jedina razlika je što je kod obrazaca, umesto pomeranja na određeni zapis, potrebno prikazivati jedan po jedan zapis. Iako su za štampanje prvenstveno namenjeni izveštaji, mogu se odštampati i jedan ili više zapisa koje obrazac prikazuje, tačno onako kako oni izgledaju na ekranu Prva forma - Čitaoci Pod pretpostavkom da je tabela Citaoci dobro organizovana, možemo preći na kreiranje prve forme. Iz tab-a Create izabrati More Forms, pa Form Wizard, kao što je prikazano na sledećoj slici. Slika 49 Izabrati tabelu Citaoci i sva polja prebaciti u desno prazno polje klikom na dvostruku strelicu (>>) i kliknuti na Next, kao što je prikazano na slededoj slici. Slika 50 49

49 Sada je moguće izabrati na koji način će se prikazivati polja na formi, da li svako polje odvojeno jedno od drugog ili tabelarno. Sa leve strane prikazuje se izgled svake opcije. Izabrati, npr. Columnar, što znači da se polja ređaju jedno za drugim u koloni i kliknuti Next. Ovo je prikazano na slededoj slici. Slika 51 Dalje, moguće je izabrati stil forme. Ovo izabrati po želji, a ukoliko se izabere None, izgled forme biće najjednostavniji, odnosno forme neće biti dizajnirane. Ovaj korak prikazan je na slededoj slici. Kliknuti na Next. Slika 52 50

50 Na kraju, unosi se ime forme, a po default-u je ponuđeno ime tabele za koju se forma kreira. Neka ostane ime Citaoci1, kao što je prikazano na sledećoj slici. Kliknuti na Finish. Design View forme Slika 53 Nakon klika na dugme Finish, otvara se upravo kreirana forma. Desnim klikom na tab ove forme otvara se meni iz kog je moguće izabrati opciju Design View, tj. mod koji dozvoljava izmene dizajna forme. Ovaj pomoćni meni prikazan je na slededoj slici. Slika 54 51

51 U Design View-u moguće je pomerati, smanjivati i proširivati polja. Primećuje se da nije moguće pomeriti pojedinačno polje. Za to je potrebno selektovati željeno polje (polja) i na njega kliknuti desnim tasterom miša. Tada se pojavljuje meni gde treba izabrati Layout -> Stacked, pri čemu de se selektovana polja odvojiti od ostalih i moći de da se premeste na neko drugo mesto. Ovo se vidi na slededoj slici. Slika 55 Pomeriti selektovana polja nadesnu stranu, kao što je prikazano na slededoj slici. Kreiranje dugmeta (button) za navigaciju Slika 56 Dok je forma otvorena u Design View, mogu se postaviti i dugmidi za jednostavnije kretanje kroz podatke o zaposlenima. Izabrati opciju Button iz Design tab-a, kao što je prikazano na slededoj slici. 52

52 Slika 57 Kliknuti na prazno mesto na formi gde je pogodno postaviti dugme. Nakon toga, otvara se prozor prikazan na slededoj slici. Slika 58 Na levoj strani izabrati Record Navigation, a na desnoj Go To First Record i kliknuti na Next. Ovim izborom vrši se kreiranje dugmeta koje prikazuje prvog zapisanog radnika. U sledećem prozoru izabrati da se na dugmetu prikazuje slika (ili izabrati Text, pa ispisati npr. Idi na prvi). Ovo je prikazano na sledećoj slici. Kliknuti Next. 53

53 Slika 59 U sledećem prozoru omogućeno je imenovanje samog dugmeta, a taj naziv mora biti jedinstven. Ostaviti ponuđeno ime. Ovaj korak vidi se na sledećoj slici. Kliknuti na Finish. Važno je razumeti razliku između naziva dugmeta i teksta koji se ispisuje na dugmetu. Naziv dugmeta je jedinstven, a tekst na dugmetu nije. Takođe, umesto teksta, mogude je postaviti sličicu na dugme kojom de se slikovito objasniti funkcija koju dugme vrši. Slika 60 Na isti način kreiraju se preostala tri dugmeta: Prethodni (Previous), Slededi (Next) i Idi na Poslednji (Go To Last). 54

54 Kreiranje dugmeta za dodavanje nove instance Takođe, mogude je kreirati dugme za dodavanje novog čitaoca. Ovo se razlikuje samo po tome što se u prvom prozoru na desnoj strani izabere Record Operations, a na levoj Add New Record..Dakle, forma sada izgleda kao na sledećoj slici. Sakrivanje polja na formi Slika 61 Da bi se sakrilo polje, potrebno je prvo otvoriti formu u Design View, kliknuti desnim tasterom miša na ovo polje i izabrati Properties, kao što je prikazano na sledećoj slici. Sa leve strane ekrana pojaviće se prozor Property Sheet u kom je potrebno, u okviru tab-a Format, polje Visible postaviti na No. Slika 62 55

55 Dizajn forme Sledeće, potrebno je kreirati formu za tabelu Knjige. Ponoviti postupak za kreiranje formi, dakle iz tab-a Create izabrati More Forms, pa Form Wizard Otvoriti formu u Design View i srediti je. Mogu se npr. obojiti redovi. Ukoliko nije otvoren prozor Property Sheet, otvoriti ga desnim klikom na formu izabravši opciju Properties. Iz padajuće liste u Property Sheet-u izabrati Detail, gde se vrše podešavanja za taj deo, što je prikazano na sledećoj slici. Slika 63 Da bi se obojilo i zaglavlje forme, u Property Sheet-u vrednost u padajudoj listi postaviti na FormHeader i izabrati boju u polju Back Color. Izabrati, npr. ponovo istu zelenu boju i sačuvati formu. Kreiranje Tab kontrole Sada je potrebno spojiti formu Citaoci i Knjige, jer za svakog čitaoca može da se unosi više knjiga. Zbog estetike, ali i budućih potreba za dodavanjem novih podformi, korisno je iskoristiti kontrolu Tab (Tab Control). Ona se nalazi u tab-u Design i prikazana je na sledećoj slici. Slika 64 56

56 Izabrati ovu kontrolu i postaviti je na željeno mesto, kao što je prikazano na sledećoj slici. Slika 65 Pri dodavanju tab kontrole, automatski se kreiraju dva tab-a, tj. dve strane, imenovane sa Page# i Page#. Naravno, u svakom trenutku se može obrisati neki od tab, ili dodati novi, ali i promeniti njihov redosled. Da bi se promenio naziv tab-a, potrebno je kliknuti na željeni, a zatim desnim tasterom miša otvoriti pomoćni meni i izabrati Properties, ukoliko Properties prozor nije već otvoren. Za ovu kontrolu ne postoji puno opcija koje je moguće podesiti. Najčešće korišćene su Name, gde se specificira naziv tab-a koji se prikazuje na formi, zatim Page Index, koji označava redosled tab-a (počinje od 0), i ControlTip Text, gde se upisuje tekst koji će se prikazivati kada se kursor miša prisloni na tab. Dakle, za Name je potrebno upisati KNJIGE, za Page Index neka ostane nula, a za ControlTip Text neka piše po izboru. Ova podešavanja prikazana su na sledećoj slici. Nakon ovih podešavanja, forma izgleda kao što je prikazano na sledećoj slici, kada se otvori u Form view. Drugi tab je potrebno obrisati klikom desnim tasterom miša na jezičak tab-a i izborom opcije Delete Page. Ukoliko se javi potreba za dodavanjem nove tab strane, to se vrši izborom opcije Insert Page. 57

57 Slika 66 Slika 67 58

58 Kreiranje podforme (Subform) Sada potrebno otvoriti formu Citaoci u Design View i iz tab-a Design izabrati Subform/Subreport, kako bi se dodala podforma knjige, i kliknuti na prazan deo prethodno kreirane tab strane Knjige. Otvoriće se prozor SubForm Wizard. Potrebno je izabrati Use an existing form (tj. koristiti postojeću, već kreiranu, formu) i kliknuti na Knjige, kao što je prikazano na sledećoj slici, a zatim i na dugme Next. Slika 68 Sada je ponuđen način na koji de forme Citaoci i Knjige biti povezani. Kliknuti na Define my own i iz polja za Form izabrati IDcitalac, a iz polja za Subform, takođe, izabrati IDknjiga. Ovo se vidi na sledećoj slici. Slika 69 59

59 Ovim je podešeno da se ove dve forme spajaju. Kliknuti na Finish. Sada se u donjem delu forme nalazi subform (podforma). Potrebno je proširiti je da bi se videlo više knjiga. Da bi forma izgledala lepše, pozadina forme Citaoci se može, takođe, obojiti. Kada otvorimo formu u Form View ona izgleda kao na sledećoj slici. Slika 70 Dugmići Minimize, Maximize, Close Button, Record Selectors, Navigation Buttons Na prethodnoj slici vidi se da se na dnu svake forme pojavljuje navigacija, što nije potrebno, jer se sada na formi nalaze dugmidi za navigaciju. Evo kako se ovo uklanja. Otvoriti formu u Design View, a zatim prozor Property Sheet. U padajudoj listi Property Sheet-a izabrati Form. Polja Record Selectors i Navigation Buttons postaviti na No. Takođe, mogu se skloniti dugmidi Maximize i Minimize, ako se vrednost polja Min Max Buttons postavi na None, a može se ukloniti i dugme za zatvaranje forme, ako se Close Button postavi na No. Ova podešavanja su označena na slededoj slici. Forma Knjige neće moći da se otvori u Design View dok je otvorena forma Citaoci, jer ona sadrži formu Knjige kao podformu, pa je potrebno prvo zatvoriti formu citaoci. 60

60 Sakrivanje kolona na formi Slika 71 Dok je otvorena forma Citaoci, može se podesiti da se ne vide kolone IdCitalac. Dakle, potrebno je selektovati svaku od njih posebno (i smanjiti širinu kolone kako ne bi bilo puno praznog mesta tamo gde se kolona nalazi), pa u Property Sheet-u vrednost polja Visible postaviti na No. Korišćenje kalendara za datumska polja Uneti jednog citaoca. Ukoliko se ne unese ime i/ili prezime pojaviće se upozorenje. Dalje, kada se postavi kursor miša na polje datum rođenja, sa leve strane polja pojaviće se integrisani kalendarčić iz kojeg je moguće izabrati željeni datum. Ova opcija je već objašnjena u prethodnom poglavlju. Takođe, u okviru kalendara postoji dugme Today, kako bi se olakšao unos trenutnog datuma. Korišćenje polja tipa Attachment Evo kako se unosi fotografija. Kliknuti mišem na polje fotografija. Pojaviće se tri dugmića, a treba kliknuti na ono koje je obeleženo spajalicom (attachment). Ovo je prikazano na sledećoj slici. 61

61 Slika 72 Kreiranje nove forme bez korišćenja čarobnjaka (Wizard) Dakle, potrebno je otvoriti praznu formu izborom opcije Form Design iz Create tab-a, kao što je prikazano na sledećoj slici. Slika 73 Otvoriće se prazna forma u Design View na koju je mogude dodati željene kontrole (combo box, list box, text box, button, subform/subreport, radio button, i itd.). Izgled prazne forme vidi se na sledećoj slici. 62

62 Sekcije u okviru forme Slika 74 Kao što se moglo primetiti na prethodno kreiranim formama, svaka je imala deo Form Header zaglavlje forme gde se najčešde nalazio naslov forme i/ili zaglavlje tabele, zatim Detail centralni deo forme gde se nalaze polja za unos podataka, podforme, tabele, i sl., i Form Footer zaglavlje u dnu forme. Forma prikazana na prethodnoj slici ima samo Detail deo, a ostali delovi forme se mogu dodati klikom desnim tasterom miša na površinu forme i izborom opcije Form Header/Footer, a takođe se može dodati i Page Header/Footer, koji se koristi najčešće zbog štampanja, kao zaglavlja strane. Ovo je prikazano na sledećoj slici. Slika 75 Sledi dodavanje polja na formu. Ova forma treba da sadrži polja iz tabele Poslovanje. Njihovo dodavanje vrši se pomodu opcije Add Existing Fields iz tab-a Design. Izborom ove opcije otvara se novi prozor sa desne strane ekrana, Fields List, iz kog je potrebno izabrati tabelu Poslovanje, odnosno prevući sve njene atribute na formu, kao što je prikazano na sledećoj slici. 63

63 Promena Text Field u Combo Box Slika 76 Kada se ova forma otvori u Form View, unos nove instance u tabelu nije prilagođen krajnjem korisniku, jer se od njega očekuje da unese broj, tj. IDcitalac, kao i IDknjiga, umesto da bira konkretne vrednosti iz padajuće liste. Zato je potrebno ova dva polja promeniti iz trenutnog oblika, Text Box, u oblik padajuće liste, Combo Box. Ovo se postiže klikom desnim tasterom miša na polje za unos IDcitalac, pri čemu se otvara pomoćni meni iz kog treba izabrati Change To, pa zatim Combo Box. Ovo je prikazano na sledećoj slici. Slika 77 Izborom ove opcije, Text Box postaje Combo Box i kao što se može primetiti kada se forma otvori u Form View, taj Combo Box ne sadrži vrednosti koje bi trebalo. Za popunjavanje ove padajuće liste konkretnim vrednostima, potrebno je otvoriti prozor Properties Sheet za polje IDCitalac i izabrati tab Data. Na tom mestu vrše se podešavanja vezana za podatke koje ova podajuća lista treba da prikaže. Control Source odnosi se na naziv kontrole za koju se vrše 64

64 podešavanja, a to je u ovom slučaju IDCitalac, Row Source odnosi se na izvor vrednosti upisanih u padajudu listu. Izvor ovih vrednosti treba da bude tabela Citaoci. Bound Column odnosi se na kolonu koja će se vezati za padajuću listu na kojoj se ova podešavanja vrše. Kako se vrši podešavanje za IDcitalac koje predstavlja polje tipa Number, potrebno je vezati ga za isti tip podatka. Ostala podešavanja su slična podešavanjima tabele. Na sledećoj slici označena su opisana podešavanja. Slika 78 Efekat se može pogledati otvaranjem forme u Form View, a prikazan je i na slici u nastavku. Slika 79 Promena Text Field u List Box Kao što je prikazano da se Text Box može promeniti u Combo Box, tako je moguće i obrnuto, a takođe se može izvršiti promena i u neku drugu kontrolu, u zavisnosti od kontrole nad 65

65 kojom se promena vrši. Tako je moguće umesto u Combo Box, pretvoriti polje za unos u npr. List Box. Pretraga u formi Na formu postaviti kontrolu Combobox, a zatim, Izabrati polje po kojem će se vršiti pretraga. Slika 80 Slika 81 Zatim Next, pa Finish. Na kraju bi forma bi trebalo da izgleda: 66

66 Postavljanje polja za izračunavanje Slika 82 Na formu postaviti Text Box polje. U okviru Propertz Sheet aktivirati karticu Data, a zatima Control Source, nakon čega aktivirati Expression Builder i napisati formulu kao što je prikazano na sledećoj slici. Da bi kontrola prikazivala broj potrebno je na kartici Format podesiti ispis numeričkog formata. Slika 83 67

67 5. U P I T I Upiti (Query, Queries) predstavljaju moćan alat koji pruža pogled na podatke u bazi podataka ili daje odgovore na specifična pitanja u vezi tih podataka. Na primer, ukoliko je potrebno izlistati, tj. pogledati samo imena i prezimena svih čitalaca i grad u kojem žive, ali ne i ostale podatke, moguće je kreirati upit koji prikazuje samo ova tri podatka. Ili, ukoliko je potrebno pogledati imena i prezimena samo onih čitalaca koji žive, recimo, u Lazarevcu, onda bi se upit ograničio samo na njih. Upiti se pišu posebnim upitnim jezikom koji se naziva SQL. Upiti se mogu kreirati na osnovu tabela ili drugih upita. U svakom trenutku, upiti pružaju svež pogled na podatke u bazi podataka. Access-ov upit je pitanje koje se postavlja u vezi sa podacima koji se nalaze u tabelama baze podataka. Postavljanje pitanja u vezi sa tim podacima omogućavaju alatke za sastavljanje upita (Query Tools). Upit može da bude jednostavno pitanje o podacima koji su svi u jednoj tabeli, ili složeno pitanje koje se odnosi na podatke razmeštene u više tabela. Na postavljeno pitanje Access prikazuje samo podatke koji su traženi (ako ih ima). Vrste upita Access podržava šest vrsta upita: Select je najcešća vrsta upita. Upiti za izdvajanje podataka pronalaze i izdvajaju podatke iz jedne ili više tabela i prikazuje ih u dinamičkom skupu čiji se sadržaj može pregledati, analizirati i ažurirati. Total je posebna verzija upita za izdvajanje podataka. Zbirni upiti omogućavaju izračunavanje suma ili zbirnih vrednosti u upitima za izdvajanje podataka. Po zadavanju ove vrste upita Access dodaje red Total u okno QBE (Query By Example). Action upiti omogućavaju pravljenje nove tabele (Make Tables) ili ažuriranje podataka u postojećim tabelama. Kada se unose izmene u upit za izdvajanje podataka, te izmene se mogu praviti samo u jednom po jednom zapisu. Za razliku od toga akcioni upiti omogućavaju ažuriranje više zapisa u istoj operaciji. Crosstab - ovi upiti prikazuju zbirne podatke u tabelarnom obliku poput programa za tabelarne proračune, s tim što su zaglavlja redova i kolona zasnovana na poljima iz tabele. Pojedinačne ćelije u rezultirajućem dinamičkom skupu su tabelarne. Uz pomoć upita možemo izdvajati podatke iz jedne ili više tabela ukoliko ih povezuju kolone sa istim podacima. Kada se koristi više tabela istovremeno, Access prikazuje podatke iz njih u jednom kombinovanom tabelarnom prikazu. Omogućavaju biranje polja (moguće je zadavanje polja koja su potrebna za skup rezultata upita) i biranje zapisa (koji ce zapisi biti izdvojeni u skup rezultata, moguće je zadati pomoću odredjenih uslova). Rezultati upita mogu se prikazati sortirani po odredjenom redosledu, koristiti za razne proračune na osnovu podataka. Ponekad je potrebno da se u bazi podataka kreira nova tabela koja ce sadržati podatke koji se dobijaju kao rezultat upita. Ova vrsta upita pravi novu tabelu na osnovu podataka iz dinamičkog skupa. 68

68 Dinamički skup, nastao kao rezultat upita može da ima upravo ona polja ili podatke koji su potrebni na izveštaju ili na obrascu. Kada se izveštaj ili obrazac zasniva na upitu, svaki put kada se odštampa izveštaj ili otvori obrazac, upit će izdvojiti najsvežije podatke iz tabela. Upite dalje možemo koristiti za pravljenje dijagrama, tj. na osnovu podataka dobijenih upitom može se napraviti dijagram, koji ce se kasnije koristiti na obrascu ili izveštaju. Mogu se praviti dodatni upiti koji se zasnivaju na skupu zapisa koji su izdvojeni prethodim upitom. To je veoma korisno za ad hoc upite, u kojima može biti potrebno ponavljanje upita sa malo izmenjenim uslovima. Sekundarni upit (podupit) može da se koristi za izmenu uslova, dok primarni upit i njegovi podaci ostaju nepromenjeni. Access-ovi upiti mogu da izdvajaju podatke iz široke lepeze izvora. Mogu se postavljati pitanja u vezi sa podacima koji se nalaze u dbase, Paradox, Btrieve i Microsoft SQL Server bazama podataka. Kreiranje upita Za početak, potrebno je kreirati upit koji de prikazati imena i prezimena čitalaca i naziv grada u kojem žive. U ovom, kao i narednim primerima, koristiće se Query Design koji se nalazi u tab-u Create, u delu Other, što je prikazano na sledećoj slici. Slika 84 U pop-up prozoru Show Table potrebno je izabrati tabelu(e) nad kojom će se upit kreirati. Za opisani primer potrebna je tabela Citaoci. Izabrati je, kliknuti na dugme Add, pa Close. Tada će se izabrana tabela pojaviti u prostoru za kreiranje upita. Kada pritisnete tater Close naći ćete se u QBE (Query By Example specijalna aplikacija u Access-u namenjena za jednostavnije kreiranje upita ) prozoru. Prozor se sastoji od dva dela. U gornjem nalaze se tabele koje ste u prethodnom dijalogu izabrali. Donji prozor sastoji se od nekoliko redova korisnih za sastavljanje upita: Field - U ovaj red se upisuju ili dodaju imena polja Table - U ovom redu se prikazuju imena tabela iz kojih potiču polja Sort - U ovom redu se zadaje način sortiranja podataka iz upita Show - Ovo polje je za potvrđivanje i odredjuje da li ce polje biti prikazano ili ne Criteria - U ovaj red se upisuje prvi red uslova za izdvajanje zapisa Or - Ovo je prvi sledeći red u koji se mogu uneti dodatni uslovi za izdvajanje zapisa Da bi obeležio koje tabele su povezane Access koristi linije. Linija koja spaja dve tabele je spoljna linija. Gornjem delu prozora se može promeniti veličina, i u njemu se mogu premeštati tabele, ukoliko je potreban pregledniji prikaz tabela i spojeva između njih. 69

69 Slika 85 Slika 86 Rezultat prethodno kreiranog upita može se pogledati klikom na opciju Run iz Design tab-a, u delu Results. Postoji i drugi način da se vidi rezultat upita, a to je klikom desnim tasterom miša na jezičak upita, pri čemu se otvara pomoćni meni iz kojeg treba izabrati Datasheet View. Ovo je prikazano na sledećoj slici. 70

70 Slika 87 Da bi se dodale nove tabele potrebno je pomeriti pokazivač miša u gornje okno i pritisnuti desni taster prilikom čega će se otvoriti meni u kojem treba odabrati opciju Show table. Izbor tabele se može napraviti duplim pritiskom na njeno ime. Tabela se može najjednostavnije obrisati pomoću selektovanja pritiskom na tabelu ili na neko njeno polje, i pritiskom tastera Delete. Nakon izbora tabela koje će učestvovati u upitu, neophodno je izabrati polja iz datih tabela i dodati ih u red Filed donjeg prozora Table Query-a. Polja se mogu izdvajati jedno po jedno, može se vršiti odabir više polja istovremeno, ili jednostavno izabrati sva polja. Za to se mogu koristiti tastatura ili miš. Prethodno selektovana polja prenose se u red za izbor polja ili se biraju sa padajuće liste u redovima Field, odnosno Table. Za selektovanje više polja istovremeno koriste se funkcijski tasteri Ctrl i Shift. Osim dodavanja polja pojedinačno ili grupno u QBE okno mogu se umetnuti i sva polja tabele istovremeno. Access nudi dve metode izbora svih polja: prevlačenje svih polja kao grupe ili biranjem referentne oznake za sva polja-zvezdice (*). Ukoliko se upit sastoji od polja dve ili više tabele postupak je isti, dodamo željena polja iz prve, potom iz druge... Najjednostavniji način za to je odabir grupe polja i prevlačenje nadole u QBE okno. Kreiranje kriterijumskog upita Za zadavanje uslova koje slogovi moraju da ispunjavaju koristi se red Criteria. Uslovi tekstualnog tipa unose se u polja za tekst na isti način kao i drugi podaci. Da bi se koristili takvi uslovi, potrebno je upisati primer vrednosti podatka koji treba da bude pronađen u tom polju. Može se koristiti i negacija Not ispred nekog teksta, i na taj način će biti prikazani svi slogovi koji ne sadrže tu vrednost. Takođe, kod uslova za numerička ili datumska polja mogu se koristiti operatori za upoređivanje, kao što su (>)veće, (<) manje, (=)jednako. Dalje, potrebno je kreirati upit koji prikazuje imena i prezimena samo onih čitalaca koji žive u Lazarevcu. 71

71 Ako tražimo čitaoce iz Lazarevca ili Beograda.. Slika 88 Slika 89 Ako želimo da sakrijemo neko polje uradićemo dečekiranje. Slika 90 Na kraju možete izabrati 5 načina prikaza upita: Design View - standardni QBE prikaz upita, Datasheet View - prikazuje se sadržaj dinamičkog skupa u tabelarnom obliku, SQL View - Može se videti izgled odgovarajuće SQL komande, 72

72 PivotTable View i PivotChart View. Neke upite moguće je kreirati jedino pomoću SQL-a. SQL View Kreiranje upita na ovaj način, tj. kroz Query Design, u pozadini generiše SQL kod koji se izvršava i daje rezultat. SQL kod se može videti otvaranjem upita u SQL View, tj. klikom desnim tasterom miša na jezičak upita, gde se otvara pomoćni meni, odakle treba izabrati opciju SQL View. Slika 91 Slika 92 U SQL kodu primećuju se sledeće klauzule: select, from, inner join i where. U okviru select klauzule upisuju se atributi koje upit treba da prikaže, u from klauzuli specificiraju se tabele čiji atributi se koriste, inner join klauzula specificira vezu između tabela, odnosno tabele i upita, i povezujući atribut koristeći reč ON, dok klauzula where služi za specificiranje uslova, odnosno kriterijuma. Prilikom projektovanja tabele možete naći ograničenja u pogledu ažuriranja. Access neće uvek dozvoliti ažuriranje sadržaja tabela. Ažuriranje se može izvršiti samo u slučaju da su sva polja iz samo jedne tabele ili iz tabela između kojih postoji veza 1:1. Svaki upit za čije kreiranje je potrebno napraviti snimak podataka ne omogućava ažuriranje (unakrsni, zbirni upiti, polja u kojima je vrednost Unique Value Yes, upiti za zadavanje SQL komandi, izračunata polja, polja sa pravom samo za čitanje, korisnici koji nemaju pravo pristupa i ODBC tabele bez primarnog ključa). Tabele neće automatski biti povezane ukoliko to nije učinjeno na nivou baze podataka, ili ako je isključena opcija AutoJoin. 73

73 Promena vrste spoja vrši se odabirom spoljne linije i duplim pritiskom na nju, prilikom čega će se pojaviti okvir za dijalog Edit Relationships gde je potrebno izabrati Join Type (slika). Tada se otvara okvir za dijalog Join Properties pruža izbor jednog od tri dugmeta za opcije koje pružaju sledeće mogućnosti: Slika 93 Only Include Rows Where the joined filds from both tables are equal (uključiti iz obe tabele samo redove u kojima je sadržaj spoljnih polja jednak. Ova opcija nalaže Access-u da iz obe tabele izdvoji sve zapise u kojima spoljna polja sadrže iste vrednosti. Ovo su jednakovredni ili unutrašnji spojevi. Include ALL Record Form (ime prve tabele) and only those records from (ime druge tabele) where the joined fields are equal (obavezno je uključivanje svih zapisa iz prve tabele i samo onih zapisa iz druge tabele u kojima je sadržaj spoljnih polja jednak). Ako se kao prva koristi tabela, Artikal, a kao druga tabela StavlaKataloga, biće prikazani svi artikli (čak i oni kojih nema u katalogu) i samo ona stavkakataloga koja imaju odgovarajući artikal. Ovo su desni spoljni spojevi. Include ALL records form (ime druge tabele) and only those records from (ime prve tabele) where the joined fields are equal (uključiti sve zapise iz druge tabele i samo one zapise iz prve tabele u kojima je sadržaj spoljnih polja jednak). Access omogućava rad samo sa specifičnim delovima tabele u slučaju kada tabela sadrži veliki broj slogova (samo sa slogovima koji ispunjavaju određene uslove) uz pomoć upita za izdvajanje podataka. Oni izdvajaju podatke iz jedne ili više međusobno povezanih tabela i omogućavaju postavljanje pitanja i dobijanje odgovora koji se tiču podataka smeštenih u tabelama baze podataka. Uslovi se postavljaju u kolonama odgovarajućih polja u redu Criteria. Za pravljenje slogova koji ispunjavaju istovremeno više uslova vezanih za različita polja potrebno je staviti ih u jedan isti red (koji ih povezuje logičkim i ). U slučaju izdvajanja slogova koji ispunjavaju bilo koji od navedenih uslova, oni se smeštaju jedan ispod drugog ili povezuju operatorom Or. Logički operatori u upitu Operatori su pored funkcija izraza osnovni delovi Access-ovih operacija. Koriste se u operacijama kao što su postavljanje standardnih (default) vrednosti, zadavanje uslova prilikom unosa vrednosti u tabele, korišćenje uslova u upitima, postavljanje izračunatih polja 74

74 na obrasce i dodavanje objekata za sumarne operacije na izveštaje. Operatori omogućavaju izvršavanje računskih operacija, poređenje vrednosti, spajanje znakovnih nizova i sastavljanje složenih relacionih izraza. Korišćenje operatora nalaže Access-u da izvrši odrećene operacije nad jednim ili više operanada. Postoji pet operatora koji su prikazani u tabeli. Reč like se može upotrebiti u kombinaciji sa znakom? ili *. Znak? zamenjuje jedan karakter, dok znak * zamenjuje niz karaktera. Dakle, ukoliko bi kriterijum za ime radnika bio specificiran sa like Ivan?, upit bi vratio rezultat Ivana, ali ne i Ivanka, dok bi upit sa kriterijumom like Ivan* vratio i Ivana i Ivanka. U Access je ugrađeno stotine standardnih funkcija koje se koriste u tabelama, upitima, obrascima i izveštajima. Funkcije za rad sa datumima i vremenom Now ( ) Daje tekući datum i vreme: :22:34. Time ( ) Daje tekuće vreme: 12:22:34 Date ( ) Daje tekući datum: Finansijske funkcije (SQL) to su agregatne funkcije koje izvršavaju finansijske operacije nad skupom vrednosti koji je sadržan u određenom polju. To polje može da se nalazi na obrascu, izveštaju ili upitu. Avg ( ) Sum ( ) Matematičke funkcije Int ( ) Fix ( ) Sqr ( ) Izračunava prosek Izračunava ukupan zbir Daje celobrojni deo ulazne vrednosti-zaokružuje na prvu manju vrednost Daje celobrojni deo negativne vrednosti Izračunava kvadratni koren ulazne vrednosti Funkcije za rad sa znakovnim nizovima-stringovima Left ( ) Right ( ) Len ( ) Lcase ( ) Daje zadati broj znakova sa pocetka niza Daje zadati broj znakova od kraja niza Daje dužinu (broj znakova) niza Pretvara slova ulaznog niza u mala 75

75 Za postavljanje određenog uslova ili izračunavanje vrednosti određenog polja koriste se izrazi. Oni mogu biti jednostavni ili složeni. Mogu da sadrže razne kombinacije operatora, imena objekata, funkcija i konstanti. Izrazi se mogu sastojati iz sledećih sastavnih delova: Operatori (+,-,<,>,=,*,And,Or,Not,Like,itd) pokazuju koja će vrsta akcije biti izvršena nad jednim ili nad više elemenata izraza, imena objekata-predstavljaju postojeće objekte, funkcije - kao rezultat uvek daju povratnu vrednost, mogu se koristiti ugrađene Access - ove funkcije ili samostalno kreirane, literali - to su vrednosti koje se unose u izraz, mogu da budu brojevi, znakovni nizovi ili datumi. Access ih koristi u istom obliku u kom su unešeni, bez izmene, konstante - (Yes, No, Null, True, False). Access-ove tabele nude više načina pristupa i prikazivanja sadržaja objekta. Moguće je koristiti polja i njihov sadržaj, i svaki objekat tipa polje koristiti više puta. Sadržaj jednog objekta tipa polje moguće je prikazati na više obrazaca i izveštaja koristeći istu referencu tj. ime objekta tipa polje. Znak uzvika je važan simbol koji se koristi u kombinaciji sa rezervisanim rečima. Jedna od njih je reč Forms (obrasci). Kada iza te reči stoji znak uzvika, Access prepoznaje da je sledeće ime objekta ime obrasca koji želite da referencirate. Na primer, ukoliko se polje SifraArtikla pojavljuje na dva obrasca, [Artikal] i [StavkaKataloga], da bi se referenciralo polje SifraArtikla na obrascu [Atrikal] potrebno je koristiti operator! i rezervisanu reč Forms:Forms![Atrikal]. Tačka je simbol koji se koristi u kombinaciji sa operatorima za izraze. Za razliku od operatora!, operator. obično identifikuje svojstvo određenog objekta. Može se koristiti i između imena tabele i imena polja ukoliko je potrebno utvrditi sadržaj nekog polja tabele. Na primer: [StavkaKataloga].[ SifraArtikla] Sortiranje upita Upite je, takođe, moguće sortirati u opadajućem (descending) ili rastućem (acsending) redosledu po zadatom atributu. Ovo se vrši u okviru sort polja prozora Query Design. Takođe, rezultat upita se može sortirati po više atributa, a redosled zavisi od redosleda specificiranja sortiranja. Korišćenje logičkih operatora Operator NOT. Slika 94 76

76 Operator AND. Slika 95 Slika 96 Ako uslove upišemo u dve različite kolone QBE tabele, onda su oni povezani operatorom AND. Relacioni operatori. Slika 97 Slika 98 77

77 Slika 99 Slika 100 Iz baze podataka izdvojiti sve kupce čije ime mesta počinje sa slovom A, a sastoji se iz tri slova ili je ID_KNJIGA između 5 i 15. Slika 101 Prilikom zadavanja širih uslova možemo koristiti i uglaste zagrade [ ]. Uglastiim zagradama formiramo listu. Bilo koji znak koji se pojavljuje na listi unautar uglastih zagrada pojaviće se na odgovarajućem mestu u skupu rezultata. Iz baze podataka izdvojiti sve čitaoce čije mesto boravka počinje na slova L, B, T. Slika

78 Parametarski upiti Parametar se u upit unosi tako što u polje criteria željeni parametar upisujemo između uglastih zagrada. Izvođenje računskih operacija Slika 103 Račinske operacije u QBE tabeli možemo da izvodimo u polju Criteria ili korišćenjem izračunatih polja. Računske operacije u polju Criteria predstavljaju uslove za izvršavanje upita. Izračunato polje je novo polje koje pravimo u praznoj ćeliji Field QBE tabele. obično se novom izračunatom polju dodeljuje ime koje se upisuje na početku ćelije Field. nakon toga se stavlja dvotačka, a potom unosi izraz koji treba da se izračuna. Ako se u izrazu koriste neka druga polja iz QBE tabele, ta polja se upisuju u uglastim zagradama. Rezultat: Slika 104 Slika

79 Zbirni proračuni Ovi proračuni, za razliku od izračunatih polja, za dobijanje rezultata uzimaju vrednosti iz više zapisa u tabeli. Da bi napravili zbirni proračun u nekom upitu, potrbno je uraditi sledeće: 1. Aktivirati komandu Totals. 2. U novom redu Total QBE tabele pojaviće se izraz Group By za sva polja koja smo koristili u upitu. Izraz Group By treba da ostavimo za sva ona polja želimo da grupišemo ili koja će da učestvuju u zbirnom proračunu. Kod onih polja po kojima radimo zbirni proračun umesto izraza Group By biramo jednu od sledećih operacija: Avg: prosek Count: broj popunjenih vrednosti First: vrednost u prvom zapisu Last: vrednost u poslednjem zapisu Max: najveća vrednost Min: najmanja vrednost StdDev: standardna devijacija Sum: zbir Var: varijacija Slika 106 Ukoliko u upitu koristimo i zbirne proračune i kriterijume za izbor podataka, u polje total svih kolona u kojima smo definisali kriterijum za izbor treba upisati izraz Where. Ako kriterijum za izbor podataka želimo da primenimo pre zbirnog obračuna, operator Where treba upisati u ćeliju Total onog polja po kome želimo da napravimo izbor zapisa. Slika

80 Slika 108 Ukoliko u upit koristimo i zbirne proračune i izračunata polja, u polja total svih kolona u kojima smo definisali izračunata polja ( a ne želimo grupisanje ) treba upisati izraz Expression. Slika 109 Zbirne proračune možemo raditi i sa izračunatim poljima, ali izraz u svakom izračunatom polju ne sme da se odnosi na neka druga izračunata polja. Slika 110 U ovom primeru je korišćen izraz: UKUPNA VREDNOST: [Cena]*1,18 koji se može pisati u posebnom okviru Expression Builder ili u polju QBE. Ako pišemo u polju izraz zumiramo tako što aktiviramo desni klik na polje pa onda Zoom. Slika

81 Promena imena polja u QBE tabeli 1. U polje Field u QBE tabeli ispred starog imena polja treba upisati novo ime i dvotačku (novo ime: staro ime) 2. Treba otvoriti prozor sa svojstvima polja kojem menjamo ime ( obeležavamo polje i biramo Properties) i u svojstvo caption upisujemo novo ime polja. Crosstab Query - unakrsni upiti Unakrsni upiti rezultate izračunavanja prikazuju tabelarno. kreira se na sledeći način: 1. Potrebno je napraviti QBE tabelu sa svim potrebnim poljima i kriterijumima za izbor podataka. Mogu se koristiti i izračunata polja. 2. Sa kartice Design aktivirati alatku Crosstab Slika 112 U QBE tabeli pojavljuju se dva nova reda: Total i Crosstab. 3. U ćeliji Crosstab polja koja će se pojaviti u zaglavljima redova treba izabrati opciju Row Heading. Za zaglavlja redova možemo koristiti više polja, ali barem jedno mora imati Group By u svojoj ćeliji Total. 4. Za zaglavlja kolona biramo opciju Column Heading. Ovde možemo imati samo jedno polje koje mora imati Group By u svojoj ćeliji Total. 5. U ćeliji Crosstab polja za koje se računa zbirna vrednost treba izabrati opciju Value, a potom u ćeliji Total tog istog polja treba izabrati agregatnu funkciju. Opcija Group Bz za ovo polje nije dozvoljena 6. Ako želimo da grupišemo po dodatim poljima koja neće biti prikazana u skupu rezultata, u ćelijama crosstab ovih polja treba da izaberemo Not shown. Slika

82 Upit za ažuriranje Ovaj upit omogućava promenu određenih zapisa u tabeli. kreira se na sledeći način. 1. Aktivirati ikonicu Update Query. U QBE se pojavljuje novi red Update TO. 2. U ćeliju Criteria upisujemo kriterijume za izbor polja koja želimo da ažuriramo, a u ćeliju Update To upisujemo novu vrednost polja ili izraz za izračunavanje vrednosti Sledeći upit će povećati cene knjiga za 20% za sve čitaoce iz Lazarevca. Slika 114 Upit za izradu tabela Omogućava izradu nove tabele od grupe zapisa iz neke druge tabele. Kreira se na sledeći način: 1. Formiramo QBE tabelu. 2.Aaktiviramo opciju Make Table, pojaviće se prozor Make Table u kojem zadajemo ime nove tabele. Slika

83 6. Uvod u struktuirani upitni jezik SQL SQL omogućava korisnicima pristup podacima u sistemima za upravljanje relacionim bazama podataka, kao što su Oracle, Sybase, Informix, Microsoft SQL Server, Access i drugi, tako što dopušta korisnicima da opišu podatke koje žele da dobiju. SQL takođe omogućava korisnicima da definišu podatke u nekoj bazi podataka i da manipulišu tim podacima. U ovom kursu biće opisano kako se koristi SQL, a to će sve biti potkrepljeno primerima. SQL koji se koristi u ovom dokumentu predstavlja ANSI verziju tog jezika, ili standardni SQL. Osnove naredbe SELECT U relacionoj bazi podataka podaci se smeštaju u tabelama. Neka tabela, na primer, mogla bi da sadrži jedinstveni matični broj građana, imena, prezimena i adrese zaposlenih: TabelaAdresaRadnika JMBG Ime Prezime Adresa Grad Republika Đorđe Petrović Kralja Petra 9 Beograd Srbija Marija Simić Bul Nikole Tesle 22 Jagodina Srbija Savo Jovanović Njegoševa 17 Podgorica Crna Gora Svetlana Aćimović Laze Lazarevića 10 Subotica Srbija Pretpostavimo da želite, recimo, da vidite adrese svih zaposlenih. Da biste to postigli, koristite naredbu SELECT: SELECT Ime, Prezime, Adresa, Grad, Republika FROM TabelaAdresaRadnika; Rezultat ovog upita u bazu podataka je: Ime Prezime Adresa Grad Republika Đorđe Petrović Kralja Petra 9 Beograd Srbija Marija Simić Bul Nikole Tesle 22 Jagodina Srbija Savo Jovanović Njegoševa 17 Podgorica Crna Gora Svetlana Aćimović Laze Lazarevića 10 Subotica Srbija Da objasnimo sada šta ste upravo uradili: tražili 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 reč, kao 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; 84

84 Da biste dobili sve kolone neke tabele bez navođenja svih imena kolona, koristite: SELECT * FROM ImeTabele; Uslovna selekcija podataka Da bismo dalje razmotrili naredbu SELECT, pogledajmo drugi primer (hipotetičke) tabele: TabelaPrimanjaRadnika IDRadnika Plata Prinadležnosti Položaj rukovodilac rukovodilac rukovodilac rukovodilac činovnik činovnik činovnik pripravnik pripravnik U SQL-u postoji šest relacionih operatora i posle njihovog predstavljanja videćemo kako se koriste: = Jednako <> ili!= Različito < Manje > Veće <= Manje ili jednako >= Veće ili jednako 85

85 Da bi se prikazali samo oni redovi iz tabele koji zadovoljavaju određene kriterijume, koristi se klauzula WHERE. Ona se može najlakše razumeti ukoliko se pogleda nekoliko primera. Ukoliko želite da dobijete ID brojeve onih zaposlenih koji zarađuju preko , koristite sledeću naredbu: SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE PLATA >= 50000; Obratite pažnju da se koristi znak >= (veće ili jednako), pošto smo želeli da izdvojimo one zaposlene koji zarađuju više od 50,000, ili jednako 50,000, i to prikazano zajedno. Kao rezultat dobijamo: IDRADNIKA 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 tekstualne kolone: SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE POLOŽAJ = 'rukovodilac'; Ova naredba prikazuje ID brojeve svih rukovodilaca. Generalno, u slučaju tekstualnih kolona, koristite operatore jednako ili različito, i obavezno ceo tekst koji se pojavljuje u naredbi navedite unutar apostrofa ('). Složeni uslovi Operator AND kombinuje dva ili više uslova i prikazuje neki red tabele samo ukoliko podaci tog reda zadovoljavaju sve navedene uslove (tj. svi uslovi su tačni). Na primer, da biste prikazali sve činovnike koji zarađuju više od , koristite naredbu: SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE PLATA > AND POLOŽAJ = 'činovnik'; Operator OR kombinuje dva ili više uslova, ali prikazuje red ukoliko je neki navedeni uslov zadovoljen. Da biste zajedno prikazali one zaposlene koji zarađuju manje od ili su im prinadležnosti manje od , koristite ovaj upit: SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE PLATA < OR PRINADLEŽNOSTI < 10000; Operatori AND i OR mogu da se kombinuju, na primer: 86

86 SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE POLOŽAJ = 'rukovodilac' AND PLATA > OR PRINADLEŽNOSTI > 12000; SQL najpre pronalazi (odvojeno) redove u kojima zaposleni ima platu veću od i ima rukovodeći položaj, a zatim iz ove liste redova izdvaja one koji zadovoljavaju gornji AND uslov ili uslov da su prinadležnosti veće od Na kraju, SQL prikazuje ovu drugu novu listu, pri čemu treba znati da će svako ko prima prinadležnosti veće od biti uključen jer operator OR uključuje red ako je bar jedan uslov tačan. Takođe obratite pažnju da se najpre izračunava rezultat operatora AND. Operatori IN i BETWEEN Lakši način za kombinovanje uslova je pomoću operatora IN ili BETWEEN. Na primer, ako želite da dobijete sve rukovodioce ili činovnike: SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE POLOŽAJ IN ( 'rukovodilac', 'činovnik'); ili da prikažete sve zaposlene koji zarađuju više ili jednako , ali manje ili jednako 50,000: SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE PLATA BETWEEN AND 50000; Da biste prikazali sve čije plate nisu u ovom intervalu, pokušajte: Operator LIKE SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE PLATA NOT BETWEEN AND 50000; Vratimo se na tabelu TabelaPrimanjaRadnika i pretpostavimo da želite da dobijete sve zaposlene čije prezime počinje sa S ; pokušajte: SELECT IDRADNIKA FROM TABELAPRIMANJARADNIKA WHERE PREZIME LIKE 'S*'; Procenat (%) se koristi ukoliko želimo da predstavimo bilo koji znak (cifru, slovo, znak interpunkcije) ili skup znakova koji mogu da slede iza slova S. Da biste pronašli zaposlene čija se prezimena završavaju sa S, koristite '*S', ili ako želite S u sredini reči, pokušajte '*S*'. Znak '*' može biti upotrebljen umesto bilo kojih znakova koji se nalaze na istoj poziciji relativno od datih znakova. Operator NOT LIKE prikazuje redove koji ne zadovoljavaju dati kriterijum. Spajanje tabela U ovom odeljku govori se samo o unutrašnjem spajanju i spajanju izjednačavanjem pošto su oni najkorisniji u praksi. 87

87 Dobar dizajn baze podataka preporučuje da svaka tabela sadrži podatke o samo jednom entitetu, a detaljnije informacije u relacionoj bazi podataka mogu se dobiti pomoću dodatnih tabela i njihovim spajanjem. Uvedimo najpre sledeće tabele kao primer: VlasniciAntikviteta IDVlasnika PrezimeVlasnika ImeVlasnika 01 Jovanović Branko 02 Simonović Boban 15 Lazarević Pava 21 Aćimović Jelena 50 Filipović Sima Porudžbine IDVlasnika ŽeljeniKomad 02 sto 02 pisaći sto 21 stolica 15 ogledalo Antikviteti IDProdavca IDKupca KomadNameštaja krevet sto stolica ogledalo pisaći sto orman stočić za kafu stolica kutija za nakit posuđe polica za knjige vaza 88

88 Ključevi Razmotrimo najpre koncept ključeva. Primarni ključ je kolona ili skup kolona koji jednoznačno određuju ostatak podataka u svakom redu. Na primer, kolona IDVlasnika u tabeli VlasniciAntikviteta jednoznačno određuje određeni red. Ovo znači dve stvari: nijedna dva reda ne smeju imati istu vrednost u koloni IDVlasnika, kao i da čak ukoliko dva vlasnika imaju isto ime i prezime, kolona IDVlasnika obezbeđuje da oni neće biti pomešani jer se za manipulisanje njima u celoj bazi koristi kolona IDVlasnika, a ne njihova imena. Strani ključ je kolona u tabeli koja je primarni ključ u drugoj tabeli, što znači da sve vrednosti u koloni stranog ključa moraju imati odgovarajuće podatke u drugoj tabeli u kojoj je ta kolona primarni ključ. U terminologiji relacionih baza podataka, ova veza se naziva referencijalni integritet. Na primer, u tabeli Antikviteti obe kolone IDKupca i IDProdavca predstavljaju strane ključeve za primarni ključ tabele VlasniciAntikviteta (tj. kolonu IDVlasnika; u cilju izlaganja pretpostavljamo da neko mora biti vlasnik antikviteta pre nego što može da kupuje ili prodaje komade antikvitetnog nameštaja), pošto se u obe kolone ID brojeva koriste za identifikaciju vlasnika ili kupaca i prodavaca, a kolona IDVlasnika je primarni ključ tabele VlasniciAntikviteta. Drugim rečima, svi ovi ID brojevi se koriste za ukazivanje na same vlasnike, kupce i prodavce antikviteta, bez potrebe za korišćenjem njihovih stvarnih imena. Obavljanje spajanja Namena ovih ključeva je da podaci iz više tabela mogu da se kombinuju, bez potrebe da se podaci ponavljaju u svim tabelama u ovome se sastoji snaga relacionih baza podataka. Na primer, možete da pronađete imena onih koji su kupili stolicu bez moranja da navedete njihova puna imena u tabeli Antikviteti. To ime možete da saznate povezujući one koji su kupili stolicu sa imenima u tabeli VlasniciAntikviteta preko kolone IDVlasnika, koja uspostavlja odnos između podataka u ovim dvema tabelama. Da biste dobili imena onih koji su kupili stolicu, koristite ovaj upit: SELECT PREZIMEVLASNIKA, IMEVLASNIKA FROM VLASNICIANTIKVITETA, ANTIKVITETI WHERE IDKUPCA = IDVLASNIKA AND KOMADNAMEŠTAJA = 'stolica'; Obratite pažnju na sledeće činjenice o ovom upitu: obe tabele koje su u relaciji navedene su u klauzuli FROM naredbe SELECT. U klauzuli WHERE primetite da uslov KOMADNAMEŠTAJA = 'stolica' ograničava izbor na one koji su kupili (a u našem primeru, 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 brojevi u tabelama i kupljen komad nameštaja je stolica (zbog operatora AND), prikazaće se imena iz tabele. Pošto je u uslovu spajanja upotrebljen znak jednakosti, ovo spajanje se naziva spajanje izjednačavanjem. Rezultat ovog upita su dva imena: Simonović, Boban i Filipović, Sima. Koristeći zapis sa tačkama da biste izbegli dvosmislenost, ispred imena kolona možete pisati imena tabela: 89

89 SELECT VLASNICIANTIKVITETA.PREZIMEVLASNIKA, VLASNICIANTIKVITETA.IMEVLASNIKA FROM VLASNICIANTIKVITETA, ANTIKVITETI WHERE ANTIKVITETI.IDKUPCA = VLASNICIANTIKVITETA.IDVLASNIKA AND KOMADNAMEŠTAJA = 'stolica'; Međutim, kako su u tabelama imena kolona različita, ovo nije bilo neophodno. Kada se pojavi isto ime kolone u obe tabele, onda se ispred imena kolone mora dodati ime tabele kojoj pripada. To se zove "qualifying columns" (kvalifikovanje kolona). Kombinacijom imena tabele i imena kolone se eliminišu dvosmisleni nazivi kada dve tabele sadrže kolone sa istim imenom. Koriste se dva formata spajanja tabela: Oracle proprietary join (Format spajanja svojstven Oraklu ): SELECT <kolone> FROM tabela_1, tabela_2 WHERE uslov_spajanja; ANSI/ISO SQL 99 compliant standard join (Standardni format spajanja po ANSI/ISO SQL 99): SELECT <kolone> FROM tabela_1 JOIN tabela_2 ON uslov_spajanja; Evo još nekih primera iz primera Biblioteka koji je obrađen u prethodnim poglavljima: SELECT Prezime_Ime, Dat_izd FROM Citaoci INNER JOIN Poslovanje ON Citaoci.ID_Citalac = Poslovanje.ID_Citalac; rezultat upita je: Slika 116 Slika

90 Slika 118 rezultat: Slika 119 Klauzula DISTINCT i eliminacija duplikata Pretpostavimo da želite da saznate samo ID brojeve i imena onih ljudi koji su prodali neki antikvitet. Očigledno, treba nam lista u kojoj je svaki prodavac naveden jedanput ne interesuje nas koliko antikviteta je neko prodao, već samo činjenica da je neko bio prodavac. To znači da SQL-u treba kazati da eliminiše duplikate redova prodaje i da svaku osobu prikaže samo jednom. Da biste ovo postigli, koristite ključnu reč DISTINCT. Najpre nam treba spajanje izjednačavanjem tabele VlasniciAntikviteta da bismo dobili detaljnije podatke o prezimenu i imenu osobe. Međutim, imajte na umu da pošto kolona IDProdavca u tabeli Antikviteti predstavlja strani ključ za tabelu VlasniciAntikviteta, prodavac će biti prikazan samo ukoliko u tabeli VlasniciAntikviteta postoji red sa njegovim ID brojem, imenom i prezimenom. Želimo i da eliminišemo višestruko pojavljivanje broja IDProdavca iz naše liste, pa koristimo DISTINCT ispred kolone iz koje se mogu pojaviti iste vrednosti (međutim, u opštem slučaju nije neophodno uvek pisati DISTINCT ispred imena kolone). Da bismo pokazali još jednu mogućnost, želimo takođe da lista bude prikazana po abecednom redu prezimena, a zatim imena (u slučaju istih prezimena). Stoga, koristićemo klauzulu ORDER BY: SELECT DISTINCT IDPRODAVCA, PREZIMEVLASNIKA, IMEVLASNIKA FROM ANTIKVITETI, VLASNICIANTIKVITETA WHERE IDPRODAVCA = IDVLASNIKA ORDER BY PREZIMEVLASNIKA, IMEVLASNIKA; U ovom primeru, pošto je svako bio prodavac, dobićemo spisak svih vlasnika po abecednom redu prezimena. Zbog kasnijeg pozivanja na ovu vrsta spajanja (i u slučaju da vas neko o tome pita), smatra se da ovakva vrsta spajanja pripada kategoriji unutrašnjih spajanja. 91

91 Pseudonimi i IN podupiti i podupiti U ovom odeljku govorićemo o pseudonimima, IN podupitima, kao i o tome kako se oni mogu koristiti u našem primeru sa tri tabele. Prvo, razmotrimo sledeći upit koji prikazuje prezimena onih vlasnika koji su poručili nešto i njihovu porudžbinu, pri čemu se daju samo one porudžbine koje se mogu zadovoljiti (to jest, postoji prodavac koji je vlasnik poručenog komada nameštaja): Ovo kao rezultat daje: SELECT VL.PREZIMEVLASNIKA Prezime, POR.ŽELJENIKOMAD Poručen komad FROM PORUDŽBINE POR, VLASNICIANTIKVITETA VL WHERE POR.IDVLASNIKA = VL.IDVLASNIKA AND POR.ŽELJENIKOMAD IN (SELECT KOMAD FROM ANTIKVITETI); Prezime Poručen komad Simonović sto Simonović pisaći sto Aćimović stolica Lazarević ogledalo Ima nekoliko stvari na koje treba obratiti pažnju u ovom upitu: "Prezime" i "Poručen komad" u redu koji počinje sa SELECT predstavljaju zaglavlja kolona u izveštaju. VL i POR su pseudonimi; to su nova imena za tabele navedene u klauzuli FROM koja se koriste u zapisu sa tačkama kao prefiksi svih imena kolona u upitu. Ovim se eliminiše dvosmislenost, naročito pri spajanju izjednačavanjem u klauzuli WHERE jer obe tabele imaju kolonu pod nazivom IDVlasnika, a zapis sa tačkama ukazuje SQL-u da su u pitanju dve različite kolone IDVlasnika iz dve različite tabele. Obratite pažnju da je tabela Porudžbine navedena prva u klauzuli FROM; ovim se osigurava da se spisak prikazuje prema toj tabeli, a da se druga tabela VlasniciAntikviteta koristi samo za detaljnije podatke (prezime). Najvažnije, AND u klauzuli WHERE izaziva izvršavanje IN podupita ("= ANY" ili "= SOME" su dve ekvivalentna zapisa za IN). Ono što se ovim postiže je izvršavanje podupita koji kao rezultat daje sve posedovane komade nameštaja iz tabele Antikviteti jer nema klauzule WHERE. Zato, da bi se prikazao red iz tabele Porudžbine, ŽeljeniKomad mora se nalaziti u toj vraćenoj listi komada nameštaja iz tabele Antikviteti, čime se neki antikvitet prikazuje samo ako porudžbina može da se realizuje kupovinom od drugog vlasnika. Ovo može da se shvati na sledeći način: podupit kao rezultat daje skup komada nameštaja koji se upoređuje sa svakim željenim komadom iz tabele Porudžbine; IN uslov je tačan samo ako ŽeljeniKomad pripada tom vraćenom skupu iz tabele Antikviteti. Obratite pažnju takođe da se u ovom slučaju desilo da je svaki željeni antikvitet bio raspoloživ, što naravno neće uvek biti slučaj. Pored toga, kada se koriste ključne reči 92

92 IN, "= ANY" ili "= SOME", one ukazuju na podudarnost redova, a ne kolona. To znači da ne možete navesti više kolona u klauzuli SELECT nekog podupita želeći da uparite kolonu u spoljašnjoj klauzuli WHERE sa jednom od više mogućih vrednosti kolone u podupitu. U podupitu se može navesti samo jedna kolona, a moguća podudarnost proizilazi iz više vrednosti redova u toj jednoj koloni, a ne obrnuto. Podupit je SELECT-rečenica ugneždena u neku klauzulu ili drugu SELECT-rečenicu. Podupit se izvršava jednom pre glavnog upita. Glavni ili spoljašnji upit koristi rezultat podupita. Podupiti se daju u zagradi. Podupit je uvek na desnoj strani uslova poređenja. Spoljašnji i unutrašnji upit mogu uzeti podatke iz različitih tabela (jedan iz jedne, drugi iz druge). Samo jedna klauzula ORDER BY može biti uključena u jednu SELECT-rečenicu i ona mora biti poslednja klauzula spoljašnjeg upita. Podupit ne može imati sopstvene klauzule ORDER BY. Jedino ograničenje broja podupita je veličina bafera koji se koristi za upit. Još jedna česta upotreba podupita odnosi se na primenu operatora u uslovima klauzule WHERE koji sadrže rezultat upita SELECT nekog podupita. Na primer, prikažimo kupce koji su kupili skup antikvitet (cena antikviteta je za 100 veća od prosečne cene svih kupljenih antikviteta): SELECT IDKUPCA FROM ANTIKVITETI WHERE CENA > (SELECT AVG(CENA) FROM ANTIKVITETI); Podupit izračunava prosečnu cenu plus 100, a zatim se prikazuju ID brojevi kupaca za svaki komad nameštaja koji je koštao iznad tog iznosa. Da bismo eliminisali duplikate, mogli smo da navedemo DISTINCT IDKUPCA. Dalje, prikažimo prezimena onih vlasnika u tabeli VlasniciAntikviteta samo ukoliko su kupili neki antikvitet: SELECT PREZIMEVLASNIKA FROM VLASNICIANTIKVITETA WHERE IDVLASNIKA IN 93

93 (SELECT DISTINCT IDKUPCA FROM ANTIKVITETI); Podupit kao rezultat daje spisak kupaca, a prezime vlasnika antikviteta prikazuje se ako i samo ako ID broj vlasnika pripada rezultatu podupita (koji se ponekad naziva lista kandidata). Napomena: u nekim implementacijama mogu se koristiti jednakosti umesto IN, ali zbog razumljivosti pošto je rezultat podupita neki skup, klauzula IN je bolji izbor. Da bismo pokazali primer sa ažuriranjem podataka, pretpostavimo da osoba koja je kupila sanduk za knjige ima pogrešno ime uneto u bazu podataka ime treba da bude Jovan: UPDATE VLASNICIANTIKVITETA SET IMEVLASNIKA = 'Jovan' WHERE IDVLASNIKA = (SELECT IDKUPCA FROM ANTIKVITETI WHERE KOMADNAMEŠTAJA = 'sanduk za knjige'); Podupit najpre pronalazi IDKupca za osobu (ili osobe) koja je kupila sanduk za knjige, a zatim spoljašnji upit ažurira njegovo ime. Zapamtite sledeće pravilo o podupitima: kada je podupit deo nekog WHERE uslova, klauzula SELECT u tom podupitu mora imati kolone koje se poklapaju po broju i tipu sa onima koje se nalaze u klauzuli WHERE spoljašnjeg upita. Drugim rečima, ako imate "WHERE ImeKolone = (SELECT...);", klauzula SELECT mora sadržati samo jednu kolonu koja odgovara koloni ImeKolone u spoljašnjoj klauzuli WHERE i njihov tip mora biti odgovarajući (oba tipa su celi brojevi, znakovne niske itd.). Aritmetički operatori Slika 120 U SQL-u se mogu koristiti aritmetički operatori (primer BP Biblioteka): SELECT Citaoci.Mesto, Poslovanje.Dat_izd, Knjige.Naslov, Knjige.ID_Knjiga, Knjige.ID_Knjiga*5 AS RACUN FROM Knjige INNER JOIN (Citaoci INNER JOIN Poslovanje ON Citaoci.ID_Citalac = Poslovanje.ID_Citalac) ON Knjige.ID_Knjiga = Poslovanje.ID_Knjiga WHERE Knjige.ID_Knjiga>5 OR Citaoci.Mesto Like"L*"; 94

94 Slika 121 rezultat: Agregatne funkcije Slika 122 Razmotrićemo pet važnih agregatnih funkcija: SUM, AVG, MAX, MIN i COUNT. One se nazivaju agregatnim jer daju sumarne rezultate nekog upita, a ne spisak svih redova. SUM () daje zbir vrednosti date kolone u svim redovima koji zadovoljavaju neki uslov, pri čemu je data kolona numerička. AVG () daje prosečnu vrednost date kolone. MAX () daje najveću vrednost u datoj koloni. MIN () daje najmanju vrednost u datoj koloni. COUNT(*) daje broj redova koji zadovoljavaju određen uslov. Vraćajući se na tabele sa početka ovog dela, razmotrimo tri primera: SELECT SUM(PLATA), AVG(PLATA) FROM TABELAPRIMANJARADNIKA Ovaj upit prikazuje sumu plata svih zaposlenih u tabeli, kao i prosečnu platu zaposlenih u tabeli. SELECT MIN(PRINADLEŽNOSTI) FROM TABELAPRIMANJARADNIKA WHERE POLOŽAJ = 'rukovodilac'; Ovaj upit kao rezultat daje najmanju vrednost u koloni Prinadležnosti onih zaposlenih koji su rukovodioci, a to je SELECT COUNT(*) FROM TABELAPRIMANJAZAPOSLENIH WHERE POLOŽAJ = 'činovnik'; Ovim upitom saznajemo koliko ima činovnika. 95

95 Klauzule GROUP BY i HAVING Jedan specijalan način upotrebe operatora GROUP BY je povezivanje neke agregatne funkcije sa grupom redova (ovo se naročito odnosi na funkciju COUNT koja broji redove u svakoj grupi). Pretpostavimo najpre ta tabela Antikviteti ima kolonu Cena i da svaki red ima neku vrednost u toj koloni. Želimo da dobijemo cenu najskupljeg antikviteta koji je kupio svaki vlasnik. Zato SQL-u moramo da kažemo da grupiše kupovine svakog vlasnika i izdvoji najvišu cenu kupovine: SELECT IDKUPCA, MAX(CENA) FROM ANTIKVITETI GROUP BY IDKUPCA; Sledeće, pretpostavimo da želimo da dobijemo najvišu cenu kupovine za antikvitete koji su kupljeni za iznos preko Za taj slučaj koristimo klauzulu HAVING: SELECT IDKUPCA, MAX(CENA) FROM ANTIKVITETI GROUP BY IDKUPCA HAVING CENA > 1000; Kao što se klauzula WHERE koristi da se ograniči izbor redova, tako se klauzula HAVING koristi za ograničen izbor grupa. Ako upit koristi klauzule GROUP BY i HAVING, prvo se grupišu redovi, zatim se izračunavaju grupne funkcije, a zatim se prikazuju samo one grupe koje su saglasne sa klauzulom HAVING. Klauzula WHERE se koristi da ograniči izbor redova koji se grupišu; klauzula HAVING ograničava izbor grupa dobijenih klauzulom GROUP BY. Primeri iz BP Biblioteka: Slika 123 Slika

96 Slika 125 Slika 126 Slika 127 Slika 128 Slika

97 Ako u klauzulu SELECT uključite grupnu funkciju (AVG, SUM, COUNT, MAX, MIN, STDDEV, VARIANCE) i još neku pojedinačnu kolonu, svaka tako navedena pojedinačna kolona mora biti navedena i u klauzuli GROUP BY. Alijasi kolona se ne mogu koristiti u klauzuli GROUP BY. Klauzula WHERE isključuje vrste (redove) pre njihove podele na grupe. Zato se grupne funkcije ne mogu koristiti u klauzuli WHERE. Za definisanje uslova selekcije na osnovu vrednosti grupnih funkcija koristi se klauzula HAVING Formiranje novih tabela Sve tabele u bazi podataka moraju se formirati u nekom trenutku. Pogledajmo kako bi na primer formirali tabelu Porudžbine: CREATE TABLE PORUDŽBINE (IDVLASNIKA INTEGER NOT NULL, ŽELJENIKOMAD TEXT(40) NOT NULL); Slika 130 Ovom naredbom daje se ime tabeli i opisuje svaka kolona u tabeli. Obratite pažnju da se u ovoj naredbi koriste generički tipovi podataka i da oni mogu biti različiti zavisno od korišćenog sistema za upravljanje bazama podataka. Kao i obično, proverite dokumentaciju svog sistema. Neki opšti tipovi podataka su: Text(x) Kolona znakova, pri čemu broj x označava maksimalan broj dopuštenih znakova (maksimalnu dužinu) u koloni. Integer Kolona celih brojeva, pozitivnih ili negativnih. Decimal(x, y) Kolona decimalnih brojeva, pri čemu x označava maksimalan broj cifara decimalnih brojeva u koloni, a y označava maksimalan broj dopuštenih cifara iza decimalne tačke. Najveći broj tipa (4,2) bio bi Date Kolona datuma određenog formata. Logical Kolona koja može da sadrži dve vrednosti: TRUE ili FALSE. Takođe obratite pažnju da NOT NULL znači da kolona mora da ima neku vrednost u svakom redu. Ako se navede NULL za kolonu, u nekom redu ta kolona može biti prazna. Menjanje tabela Dodajmo kolonu tabeli Antikviteti koja treba da sadrži cenu odgovarajućeg komada nameštaja: ALTER TABLE ANTIKVITETI ADD (CENA DECIMAL(8,2) NULL); 98

98 Podaci za ovu novu kolonu mogu se upisati ili ažurirati na način koji je opisan kasnije. Dodavanje podataka Da biste dodali redove tabeli, navedite sledeću naredbu: INSERT INTO ANTIKVITETI VALUES (21, 01, 'otoman', ); Ovim se podaci upisuju u tabelu Antikviteti, kao novi red, kolona po kolona, u predefinisanom redosledu. Promenimo sada redosled i ostavimo kolonu Cena praznom: INSERT INTO ANTIKVITETI (IDKUPCA, IDPRODAVCA, KOMADNAMEŠTAJA) VALUES (01, 21, 'otoman'); Primeri za kreiranje i doradu tabela: Slika 131 Slika 132 Slika

99 Slika 134 ALTER TABLE dodaje novo polje ili ograničenje u već postojeću tabelu ALTER TABLE RADNIK ADD Telefon text (20); Brisanje podataka Obrišimo ovaj novi red iz baze podataka: Ažuriranje podataka DELETE FROM ANTIKVITETI WHERE KOMADNAMEŠTAJA = 'otoman'; Ažurirajmo kolonu Cena u redu koji još ne sadrži podatak o ceni: UPDATE ANTIKVITETI SET CENA = WHERE KOMADNAMEŠTAJA = 'stolica'; Ovim se cena svih stolica postavlja na 500,00. Kao što se vidi iz ovoga, da bi se ažuriranje ograničilo na određenije redove, mora se koristiti više WHERE uslova povezanih operatorom AND. Isto tako, mogu se navesti vrednosti za više kolona ukoliko se naredbe jednakosti odvoje zarezima. 100

100 7. Izveštaji Izveštajima se vrši organizacija i sumiranje podataka radi njihovog preglednijeg prikazivanja i analize na ekranu ili na papiru nakon štampanja. Detaljni izveštaji uključuju i sumirane podatke kao što su konačne sume, prebrojavanja, procentualna izračunavanja i sl. U Access 2007 izveštaji se mogu vrlo jednostavno kreirati ručno, a takođe postoji mogućnost korišćenja čarobnjaka (wizard). Izveštaji mogu prikazivati podatke iz jedne, ali i iz više tabela. Kreiranje izveštaja korišćenjem čarobnjaka U primeru koji sledi, kreiran je izveštaj koji prikazuje podatke o svim čitaocima i i knjigama koje su zadužili..., Izveštaj se pomoću čarobnjaka kreira izborom opcije Report Wizard iz tab-a Create, što je prikazano na slededoj slici. Slika 135 Nakon izbora ove opcije, otvara se prozor iz kojeg je potrebno izabrati tabelu(e) i/ili upit(e), a zatim i njihove atribute koje treba prikazati na izveštaju. Slika 136 Kliknuti na dugme Next pri čemu se prelazi na korak u kojem je potrebno specificirati ukoliko postoji potreba za određenim grupisanjem podataka. U ovom izveštaju potrebno je izvršiti grupisanje po čitaocu. 101

101 Slika 137 Slika 138 Na sledeći korak prelazi se klikom na dugme Next gde je potrebno specificirati sortiranje ukoliko je potrebno i sumiranje željenih podataka. 102

102 Slika 139 Klikom na dugme Summary Options otvara se novi prozor u kojem je moguće izabrati atribut čije vrednosti je potrebno sumirati. Prepoznati su samo oni atributi nad kojima je moguće vršiti sumiranje, a to su oni tipa Number. U ovom primeru, jedini atribut koji je moguće sumirati je cena. Pored sumiranja, ponuđene su i opcije za izračunavanje prosečne (Avg), minimalne (Min) i maksimalne (Max) vrednosti, pa treba označiti željene. Ovo je prikazano na sledećoj slici. Slika 140 Sa desne strane prozora (prethodna slika) moguće je izabrati da li de izveštaj biti detaljan ili će sadržati samo konačne sume za svakog čitaoca, kao i da li je potrebno izračunati procenat svake pojedinačne sume u ukupnoj, ali pošto ovde nije izabrana opcija sumiranja, neće biti izabrano ni ovo. Kliknuti na dugme Ok, a zatim Next. Potrebno je izabrati odgovarajući način prikaza podataka (Layout), kao i orijentaciju izveštaja, uspravno (Portrait) ili vodoravno (Landscape). Takođe, može se označiti opcija za automatsko podešavanje širine kolona, kako 103

103 bi sve mogle stati na papir (opcija Adjust the field width so all fields fit on a page). Ova podešavanja prikazana su na sledećoj slici. Slika 141 Kliknuti na dugme Next, a zatim izabrati stil izveštaja. U ovom primeru izabrano je None, što znači da neće biti primenjen ni jedan stil, već će izveštaj biti u beloj boji. Dizajn izveštaja biće naknadno urađen. Ovaj korak prikazan je na slededoj slici. Slika 142 Kliknuti na dugme Next, a zatim dodeliti naziv izveštaju u sledećem koraku, a zatim izabrati da li da se prikaže izveštaj u Report View (opcija Preview the report) ili da se otvori u Design View kako bi se dodatno kastomizovao (opcija Modify the report's design). Ovo je prikazano na sledećoj slici. 104

104 Slika 143 Kliknuti na dugme Finish. Nakon toga vrši se generisanje izveštaja koji se prikazuje u Report View, ukoliko to izabrano kao opcija, kao što se vidi na sledećoj slici. Design View izveštaja Slika

105 Da bi se izveštaj otvorio u Design View radi dodatnih prilagođavanja, potrebno je desnim klikom miša na izveštaj otvoriti pomoćni meni i izabrati opciju Design View. Ova izveštaj u Design View izgleda kao na sledećoj slici. Sekcije izveštaja Slika 145 Na prethodnoj slici mogu se uočiti sekcije u okviru izveštaja, slične onima koje su opisane u poglavlju Forme. Sekcija Report Header pojavljuje se na prvoj strani izveštaja i prikazuje njegov naslov, tj. naziv. Page Header se pojavljuje na vrhu svake strane izveštaja i prikazuje nazive kolona, dok se Page Footer pojavljuje u dnu svake strane i može prikazivati broj strane i/ili ukupan broj strana. Sekcija Detail se nalazi između Page Header i Page Footer i prikazuje konkretne vrednosti iz odgovarajudih tabela. Report Footer se nalazi na poslednjoj strani izveštaja i može prikazivati razne sume i slično. Kreiranje izveštaja bez korišćenja čarobnjaka Da bi se kolona cena pomerila, potrebno je prevući je mišem i otpustiti taster miša onda kada se pojavi vertikalna narandžasta linija na željenom mestu. Ova linija vidljiva je na sledećoj slici. 106

106 Slika 146 Nakon pomenutih podešavanja redosleda kolona, isti deluje smislenije. Međutim, da bi se umesto neke kolone postavile druge kolone, potrebno je izabrati već objašnjenu opciju Add Existing Fields iz tab-a Design. Tada se otvara prozor za dodavanje kolona iz tabele(a) čiji su atributi već na izveštaju, u okviru dela Fields available for this view, zatim iz tabela koje su povezane sa tabelama koje se nalaze u pomenutom delu prozora, Fields available in related tables, i najzad kolona iz ostalih tabela, Fields available in other tables. Ovaj prozor, Fields List, vidi se na slededoj slici. Slika 147 Potrebno je iz dela Fields available in related tables izabrati atribut ime iz tabele, prevući ga na željeno mesto. 107

107 Slika 148 Sada je moguće obrisati kolonu Mesto, klikom desnim tasterom miša na istu i biranjem opcije Delete iz pomoćnog menija. Potrebno je preimenovati kolonu MESTO u npr. RM. Ovo se može učiniti dvostrukim klikom miša na naslov kolone, čime se on selektuje i postaje spreman za izmenu. Međutim, ovom atributu u sekciji Detail ne sme se menjati naziv, jer on označava stvarno ime atributa iz tabele. Izveštaj nakon ovih izmena dobija izgled prikazan na sledećoj slici. Slika 149 Uz pomoć već uobičajenih opcija Microsoft Office paketa u tab-u Home, moguće je dodatno srediti izveštaj u pogledu poravnanja teksta, podebljanja, boja i slično (opcije za font). 108

108 Potrebno je centrirati zaglavlja kolona i podesiti svakoj koloni odgovarajudu širinu selektovanjem iste i povlačenjem leve ili desne ivice mišem. Takođe, i u Design View izveštaja moguće je isti obojiti uz pomoć prozora Property Sheet. Da bi se svaka sekcija izveštaja jasno uočila, svaku sekciju moguće je obojiti u drugačiju boju u okviru opcije Back Color, a opcija Alternate Color je moguće koristiti samo u onim sekcijama u okviru kojih se prikazuju instance, pa se dešava ponavljanje sekcije. Ovaj izveštaj biće obojen npr. plavom bojom u sekciji Report Header, zatim svetlijom plavom zaglavlja kolona, tj. Page Header, sekcija Takođe, na prethodnoj slici vidi se komentar ispred sumarnih podataka za svakog čitaoca (na slici Summary for 'IDRadnika' = 1 (1 detail record)), što nije neophodno, pa se može obrisati biranjem Delete opcije pomoćnog menija koji se otvara desnim klikom miša na isti. Ono što se može desiti na izveštaju, to je pojavljivanje znaka "#" u nekoj od kolona. To znači da je kolonu potrebno proširiti, kako bi se mogle videti vrednosti u istoj. Ukoliko se javi potreba za drugačijim grupisanjem i sortiranjem podataka, to je moguće uraditi u Design View pomodu opcije Group & Sort iz Ribbon palete u okviru tab-a Design. Tada se u dnu izveštaja otvara Group, Sort and Total prozor, koji je prikazan na sledećoj slici. Slika 150 Klikom na male strelice bira se atribut po kojem je potrebno izvršiti grupisanje, odnosno sortiranje, zatim from smallest to largest (na prethodnoj slici) označava da se izabran atribut sortira počev od najmanje vrednosti, u slučaju da je atribut brojčanog tipa, ili ukoliko je atribut tekstualnog tipa sortiranje je moguće po abecedi, opadajudim ili rastućim redosledom, i slično kod ostalih tipova podataka. Da bi se dodalo novo grupisanje, kliknuti na Add a group, ili ukoliko je potrebno sortirati podatke po još nekim poljima, kliknuti na Add a sort. Ove opcije su vidljive na prethodnoj slici. Opcije Sum, Avg, Min, Max, Count,... Dodatna izračunavanja na izveštaju, koja nisu mogla da se definišu putem wizard-a, mogu se primeniti direktno u Design View na izveštaju. Ova izračunavanja se postavljaju desnim klikom miša na polje nad kojim se isto podešava, a zatim se iz pomoćnog menija bira Total opcija i konkretna funkcija. Podrazumeva se da ne mogu sve funkcije računanja biti primenjene na sve tipove podataka. Za tekstualno polje najčešće se primenjuje funkcija Count Records, koja vrši prebrojavanje odgovarajućih instanci, dok je za numerička polja 109

109 dostupno najviše funkcija, kao što su Sum, Average, Count Records, Count Values, Max, Min, Standard Deviation, Variance. Izabrana funkcija računanja prikazuje se za svaku grupu (ukoliko grupisanje postoji), a zatim i ukupno za ceo izveštaj. Opcija Total prikazana je na sledećoj slici. Slika

110 8. Makroi i switchboard U ovom delu priručnika biće reči o tome kako povezati prethodno kreirane forme i izveštaje u jednu celinu. Pre svega, misli se na kreiranje dugmića na formi ili izveštaju koji otvaraju neke druge forme i izveštaje, ili pokreću neke specifične akcije, zatim kreiranje početne forme aplikacije i na njoj dugmiće za otvaranje formi i izveštaja, kao i kreiranje dodatnih pomoćnih menija. Sve ovo podrazumeva korišćenje makroa (Macros). Makroi omogućavaju automatizaciju raznih zadataka, odnosno dodavanja funkcionalnosti na forme, izveštaje i kontrole. U Microsoft Access-u mogu se posmatrati kao pojednostavljen programski jezik koji se piše kreiranjem liste akcija koje je potrebno izvršiti. Prilikom kreiranja makroa biraju se akcije iz padajuće liste koje će se izvršavati klikom na odgovarajuće dugme, a zatim popunjavaju dodatne potrebne informacije za izvršavanje akcija. Makroi omogućavaju dodatne mogućnosti na formama, izveštajima i kontrolama bez pisanja programskog koda u VBA modulu (Visual Basic for Applications). Oni pružaju listu komandi dostupnih u VBA, što je većini ljudi jednostavnije za korišćenje u odnosu na pisanje VBA koda. Postupak dodavanja dugmića na formu je već opisan, samo što se razlikuje u akciji koju će ono vršiti. Potrebno je na formu Čitaoci postaviti dugme koje će otvarati formu Knjige. Slika 152 Sledeća ideja je da se klikom na prethodno kreirano dugme prikazuju knjige samo za onog čitaoca čiji su podaci trenutno prikazani na formi Čitaoci. Problem povezivanja podataka koji su trenutno prikazani na formi Čitaoci sa podacima koje je potrebno prikazati u formi Knjige, biće rešen bez pomoći čarobnjaka (wizard). Na novokreirano dugme, potrebno je kliknuti desnim tasterom miša i iz pomoćnog menija izabrati opciju Build Event, kao što je prikazano na sledećoj slici. 111

111 Slika 153 Build Event opcija služi za definisanje, tj. kreiranje događaja koji treba da se dogodi klikom na dugme za koje se kreira. Biranjem ove opcije otvara se prozor prikazan na sledećoj slici. Slika 154 Na prethodnoj slici primećuje se da je akcija ved specificirana, jer je ona izabrana prilikom kreiranja dugmeta uz pomoć čarobnjaka. Preostalo je samo da se definiše Where Condition, odnosno uslov koji treba da zadovolje podaci koji će se prikazati na formi Knjige. Postavljanjem kursora miša u polje Where Condition prikazuje se dugme na desnom kraju polja. Klikom na to dugme otvara se prozor Expression Builder. U ovom prozoru potrebno je specificirati da vrednost polja ID_Citalac treba da bude jednako vrednosti atributa ID_KNJIGA iz tabele Knjige. Dakle, potrebno je dva puta kliknuti tasterom miša na Forms, zatim Loaded Forms, tj. trenutno otvorene forme, pa izabrati formu Čitaoci, a zatim iz srednje kolone 112

112 izabrati polje ID_citalac dvostrukim klikom miša, kako bi se ovo sve ispisalo u uslovu, kao što je prikazano na sledećoj slici. Slika 155 Nakon ovog koraka ispisuje se Forms![Citaoci]![ID_Citalac] što označava da se posmatra vrednost upisana u polje ID_Citalac na formi Citaoci. Sada je potrebno postaviti uslov da ova vrednost mora biti jednaka vrednosti atributa ID_Knjiga tabele Knjige, što znači da treba dopisati znak jednakosti (=) ili ga izabrati među ponuđenim. Zatim, potrebno je dvostukim klikom miša izabrati Tables u prvoj koloni, pa izabrati Knjige, a potom dvostrukim klikom miša iz druge kolone izabrati ID_knjige, kao što je prikazano na sledećoj slici. Slika 156 Ovim korakom završava se ispisivanje uslova, koji glasi: Forms![Citaoci]![ID_Citalac] = [Knjige]![ID_Knjiga]. 113

113 Kliknuti na dugme Ok i sačuvati promene. Ovo novokreirano dugme ne mora imati sličicu na sebi, kao ostali dugmići, već je moguće ispisati tekst npr. prikaži radnu istoriju. Ovo se vrši u Property Sheet prozoru, u podešavanjima vezanim za ovo polje, u tab-u Format. Potrebno je obrisati vrednost u polju Picture gde piše (image) i zatim potvrditi brisanje slike sa ove kontrole, čime de se ispisati vrednost (none), zatim u polje Caption napisati KNJIGE. Ova podešavanja prikazana su na sledećoj slici. Klikom na ovo dugme dobija se: Slika 157 Slika

114 Kreiranje dugmeta za pregled izveštaja pre štampanja Kao i na većini izveštaja, na izveštaju Citaoci potrebno je dodati dugme za pregled izveštaja pre štampanja i dugme za štampanje. Dugme se na izveštaj dodaje na isti način kao i kod formi, dakle prvo se izveštaj otvori u Design View, a zatim se iz tab-a Design u okviru Ribbon palete bira Button koji se postavlja na željeno mesto na izveštaju. Kliknuti desnim klikom miša na kreirano dugme i iz pomoćnog menija izabrati opciju Build Event. Tada se otvara pop-up prozor Choose Builder u kojem se bira opcija Macro Builder. U sledeće otvorenom prozoru potrebno je specificirati akciju koja se očekuje klikom na prethodno kreirano dugme. Neka ovo dugme služi za prikaz izveštaja pre štampanja (Print Preview). Dakle, akcija koja treba da se desi je tipa RunCommand koju treba pronaći i izabrati iz padajućeg menija. Tada se u dnu ovog prozora prikazuje mesto za unos konkretne komande (Command) koja treba da se izvrši. Ovde je iz padajućeg menija potrebno izabrati PrintPreview, koja se tada prikazuje u okviru polja kolone Arguments. Ova podešavanja prikazana su na sledećoj slici. Slika 159 Sačuvati izmene i preimenovati naziv dugmeta u npr. pogledaj pre štampanja. Kreiranje dugmeta za štampanje izveštaja Sada je potrebno kreirati još jedno dugme na čiji klik mišem de se štampati izveštaj. Ponoviti isti postupak kao za prethodno dugme, s tom razlikom što je za Command potrebno izabrati Print i preimenovati dugme u, npr. štampaj izveštaj. Postoji još jedna sitnica koju je potrebno podesiti. Ukoliko bi se ovakav izveštaj pustio na štampanje, primetili bi da su se otštampali i dugmići. Kako se oni ne bi videli prilikom štampanja na papiru, potrebno je podesiti sledeće: u Design View, kliknuti desnim tasterom miša na dugme i otvoriti Properties. Iz Format tab-a vrednost polja Display When postaviti na Screen Only. Ovo znači da će dugme biti vidljivo samo na ekranu, a ne i u štampanoj verziji. Print Only znači da je vidljivost samo u štampanoj verziji, a Always i na ekranu i prilikom štampanja. Kreiranje početne forme aplikacije korišćenjem Switchboard Manager-a Početna forma može da se kreira, korišćenjem Switchboard Manager-a. On se pokreće iz palete Ribbon, odnosno tab-a Database Tools, koji je prikazan na sledećoj slici. 115

115 Slika 160 Prilikom prvog pokretanja Switchboard Manager-a prikazuje se poruka da ne postoji nijedan kreiran Switchboard i postavlja se pitanje da li je potrebno kreirati ga. Kliknuti na Yes. Tada se otvara prozor prikazan na sledećoj slici. Slika 161 Zatim na ovoj strani postavljamo dugmiće koji će otvarati starne: Unos, Pretraga, Izveštaj i Zatvaranje aplikacije. Kliknimo na dugme New, kao na slici. Slika 162 Ostale stranice dodajemo na isti način. Na kraju bi trebalo da se dobije: 116

116 Slika 163 Dakle, sa prethodne slike uočava se da je kreiran Switchboard pod nazivom Main Switchboard. On predstavlja podrazumevajuću početnu formu, jer je izabran za Default. Njega je moguće izmeniti klikom na Edit, ili obrisati klikom na Delete, a moguće je napraviti novi klikom na New. Kliknuti na Edit. Tada se otvara novi prozor u koji se dodaju stavke ove početne forme, odnosno menija. Pre svega, promeniti naziv forme u, npr. POCETNA STRANA. Ovo je prikazano na sledećoj slici. Slika 164 Klik na dugme Close. Da bi na ovu stranu komandne table dodali dugmad pritisnemo dugme New, otvara se prozor kao na sledećoj slici. Slika 165 U polje Text upisati tekst koji će se pojaviti pored dugmeta, za Command iz padajuće liste izabrati šta treba da se desi biranjem ove stavke, da li da se otvori neka od formi, neki izveštaj i sl. Ova podešavanja prikazana su na sledećoj slici. 117

117 Slika 166 Na isti način se urade ostali dugmići i na kraju dugme za završetak rada kako je prikazano na sledećoj slici. Slika 167 Pritisnemo dugme Close i vraćamo se na prozor sa stranicama komandne table. 118

118 Slika 168 Izaberimo stranicu UNOS i da bi radili promene na njoj pritisnemo dugme Edit. Otvara se prozor za dodavanje dugmadi na tu stranicu. Upišimo u polje Text CITAOCI, za akciju se izabere Open Form in Edit Mode i izaberemo da otvara obrazac Citaoci. Postupak ponovimo i za dugmad koja otvaraju ostale obrasce, a za dugme NAZAD, izaberemo da se otvara POCETNA STRANA. Slika

119 Slika 170 Ponoviti postupak za stranice PRETRAGA i IZVESTAJI. Nakon kreiranja komandne table u glavnom prozoru baze pojavljuje se novi obrazac Switchboard čijim pokretanjem se dobija: Slika

120 Opcija Overlapping Windows, Application Title, Application Icon i Display Form Kada korisnik ove aplikacije otvori nekoliko formi i/ili izveštaja, primeti se da se oni nižu jedno za drugim u tabovima. Ovo se može promeniti na taj način da se svaka forma i izveštaj otvaraju u posebnim prozorima. To se podešava na sledeći način. Kliknuti na Office Button i iz menija, u dnu, izabrati Access Options dugme koje se vidi na sledećoj slici. Slika 172 U novootvorenom prozoru, sa leve strane, izabrati Current Database, a zatim sa desne uključiti opciju Overlapping Windows. U ovom prozoru moguće je još podesiti i naslov aplikacije u polju Application Title i ikonicu aplikacije u polju Application Icon. Takođe, potrebno je podesiti koja forma de se automatski otvarati pri pokretanju ove aplikacije, a to može biti upravo jedna od prethodno kreiranih formi ili Switchboard, koju je potrebno izabrati iz padajuće liste polja Display Form. Ova podešavanja prikazana su na sledećoj slici. Slika

121 Kada se ove promene potvrde klikom na dugme OK u dnu, javlja se poruka da je potrebno zatvoriti aplikaciju, kako bi se uočio njihov efekat. Ponovnim otvaranjem aplikacije uočava se njen novi naslov, zatim ikonica, početna forma automatski otvorena, i pojedinačni prozori za svaki otvoren izveštaj i formu, kao što je prikazano na slici u nastavku... Slika 174 Kreiranje Shortcut Menu makroa Kako bi krajnjem korisniku rad u ovoj Access aplikaciji bio dodatno pojednostavljen, moguće je dodati još jedan tip makroa, Shortcut menu, tj. meni sa prečicama. Kao što se moglo primetiti u ovom priručniku, često je korišćena funkcionalnost pomoćnih menija u okviru formi i izveštaja koji su se otvarali klikom desnog tastera mišem. Upravo kreiranje menija tog tipa objašnjeno je u nastavku. Ideja je da se napravi meni za formu Citaoci, koji će se otvarati klikom desnim tasterom miša na ovu formu. Meni treba da ima stavke prikaži celokupan izveštaj, zatim prikaži čitaoce iz... Iz palete Ribbon potrebno je izabrati tab Create, a zatim izabrati Macro, kao što je prikazano na sledećoj slici. Slika 175 Klikom desnim tasterom miša na novootvoreni prozor, otvara se pomoćni meni iz kog treba izabrati Macro names, kao što se vidi na sledećoj slici. 122

122 Slika 176 Ovako se dodaje još jedna kolona, Macro names, u koju se upisuje naziv stavke u meniju koji se upravo kreira. Dakle, potrebno je prvo upisati prikaži izveštaj kao naziv makroa, zatim za akciju (Action) izabrati OpenReport, jer je izveštaj taj koji treba da se otvori, a dok je kursor miša u polju Action, u donjem delu prozora izabrati Izveštaj. Ovo je prikazano na sledećoj slici. Slika 177 Sledeće, potrebno je napraviti stavku menija pod nazivom prikaži čitaoce iz..., na čiji klik treba da se otvara upit Citaoci. Dakle, za Macro name upisati prikaži Citaoce iz..., za Action izabrati OpenQuery, a zatim izabrati upit Citaoci. U polju Data Mode moguće je specificirati da li da se ovaj upit otvara kao Read Only, ili da bude dozvoljeno ažuriranje podataka u njemu, tj. Edit, ili da bude spreman za unos novih podataka, tj. Add. Neka bude izabrano Read Only. Ovo je prikazano na sledećoj slici. Slika

123 I najzad, potrebno je kreirati stavku menija O KNJIGAMA. Dakle, za Macro name upisati O KNJIGAMA, za Action izabrati OpenForm, jer je forma ta koja treba da se otvara, a onda upisati ime te forme u okviru polja Form Name, a to je forma Knjige. Za Data Mode ovaj put treba izabrati Add, jer je potrebno da se forma Knjige otvori spremna za unos nove knjige. Ova podešavanja prikazana su na sledećoj slici. Slika 179 Radi lakšeg razumevanja, ovaj makro sačuvati pod nazivom Stavke menija, međutim nazivi makroa treba da budu smisleniji. Ovim su kreirane samo stavke menija, a ne i sam meni, pa je potrebno kreirati još jedan meni koji će ga predstavljati. Slika 180 Dakle, kreirati novi makro za koji su potrebne samo dve kolone Action i Arguments. Za Action je potrebno iz padajuće liste izabrati AddMenu, a zatim u dnu prozora upisati naziv menija u polje Menu Name, recimo Meni za Biblioteku. Polje Menu Macro Name predstavlja stavke koje će se javljati u ovom meniju, pa je potrebno izabrati prethodno kreiran makro Stavke menija. Sačuvati ovaj makro pod nazivom Meni, opet radi lakšeg razumevanja. Kreiranje ovog makroa prikazano je na sledećoj slici. 124

124 Slika 181 Ostalo je još da se ovaj meni doda u formu Biblioteka. Otvoriti formu Biblioteka u Design View, i otvoriti Properties. U tab-u Other pronađi polje Shortcut Menu Bar i ukucati naziv makroa koji treba da se poziva, a to je Meni, što je prikazano na sledećoj slici. Slika 182 Sačuvati promene na formi Biblioteka i otvoriti je u Form View. Klikom desnim tasterom miša na bilo koje slobodno mesto na formi, otvara se meni sa tri stavke, što se vidi na sledećoj slici 125

125 Opcija Event-Timer Interval Slika 183 Za kraj, biće prikazana još jedna zanimljivost. Kreirati jednostavnu malu formu na kojoj će se nalaziti labela sa tekstom: Učitavam podatke.... Otvoriti Properties te forme i iz padajuće liste izabrati podešavanja za Form. Podesiti vrednost polja Border Style na None, zatim vrednost polja Record Selectors i Navigation Buttons na No i vrednost Scroll Bars na Neither. Ova podešavanja prikazana su na sledećoj slici. Slika

126 Kada se ova forma otvori u Form View, ona izgleda kao na sledećoj slici. Slika 185 Ponovo otvoriti ovu formu u Design View, a zatim otvoriti Properties. Izabrati podešavanja za formu u padajućoj listi, a zatim otvoriti tab Event. Postaviti kursor miša u polje On Timer i kliknuti na dugmence koje se pojavi na desnoj strani. U novootvorenom prozoru izabrati Macro Builder, a zatim postaviti dve akcije: prvo akciju Close, zatim akciju OpenForm i izabrati formu Biblioteka, što je prikazano na sledećoj slici. Slika 186 Sačuvati promene, pa u tab-u Event podesiti sledeće polje, Timer Interval, na vrednost 1000, što znači jedan sekund. Sačuvati formu pod nazivom Učitavanje podataka. Ova podešavanja označavaju da se jedan sekund nakon otvaranja forme Učitavanje podataka, ona zatvara, a zatim se otvara forma Biblioteka. 127

127 9. Front-end i back-end baza podataka Bezbednost baze podataka U prethodnih osam poglavlja uspešno je kreirana baza podataka sa korisničkim interfejsom. Korisnički interfejs predstavlja sofisticirani pogled na bazu podataka i namenjen je krajnjim korisnicima. On obuhvata, pre svega, forme i izveštaje koji komuniciraju sa tabelama baze podataka čitajući postojeće podatke iz nje i upisivanjem novih podataka. Krajnji korisnici obično nisu upoznati sa šemom baze podataka, odnosno svojstvima tabela, međusobnim vezama između njih, SQL kodom i sl. Baza podataka, čiji je postupak kreiranja opisan u ovom priručniku, kao takva vrlo je ranjiva, jer se može desiti da krajnji korisnik pristupi specifikaciji tabela i napravi neželje izmene. Zbog ovog i drugih problema, bilo bi dobro na neki način zaštiti bazu podataka, odnosno ograničiti pristup krajnjim korisnicima. Opcija Database Splitter Ono što Microsoft Access 2007 pruža u prilog ovom problemu je opcija Database Splitter, koja se nalazi u tab-u Database Tools pod nazivom Access Database, i prikazana je na sledećoj slici. Slika 187 Ova opcija omogućava sledeće: baza podataka se deli na dva Access fajla - prvi sadrži samo tabele, a drugi sadrži linkove ka tabelama, zatim forme, upite, izveštaje i makroe. Biranjem ove opcije, otvara se prozor prikazan na sledećoj slici. Slika

128 U ovom prozoru objašnjena je opcija Database Splitter, odnosno splitovanje, razdvajanje baze podataka. Pre pokretanja Split Database opcije, preporučuje se pravljenje kopije baze podataka, posebno u slučajevima njene velike veličine, jer može da se desi prekid ovog procesa, pri čemu se gube određeni podaci. Važno je napomenuti da ova opcija ne znači da baza, nad kojom se ona poziva, ostaje netaknuta i da se kreiraju nova dva fajla, nego upravo naprotiv. Baza nad kojom se radi razdvajanje ostaje bez tabela, a kreira se jedan dodatni fajl gde se te tabele premeštaju. Dakle, nakon pravljenja kopije baze, kliknuti na dugme Split Database. Tada se otvara prozor prikazan na sledećoj slici. Slika 189 Sa prethodne slike uočava se da je naziv prozora koji se otvorio Create Back-end Database. Dakle, potrebno je dodeliti naziv back-end bazi podataka, odnosno onom fajlu gde će biti smeštene tabele, i snimiti na željeno mesto. Ukoliko je proces razdvajanja baze uspešno završen, javlja se odgovarajuća poruka, što je prikazano na sledećoj slici. Slika 190 Sada je moguće uočiti da trenutno otvorena baza podataka zaista sadrži sve forme, izveštaje, upite i makroe, ali i linkove ka tabelama. Ovi linkovi su obeleženi strelicama, što se vidi i na sledećoj slici. 129

129 Opcija Display Navigation Pane Slika 191 Kada se otvori back-end fajl ove baze, uočava se da ona, zaista, sadrži samo tabele. Međutim, ono što se može primetiti to je da krajnji korisnici imaju pristup dizajnu korisničkog interfejsa, kao i to da mogu videti koji sve objekti (forme, upiti, izveštaji, makroi) postoje u aplikaciji. Ovi problemi se mogu rešiti na sledeći način. Otvoriti Access Options iz menija koji se pokreće na Access Button. Izabrati karticu Current Database. U delu Navigation potrebno je isključiti opciju Display Navigation Pane, kojom se sakriva prikaz svih objekata. Ova opcija prikazana je na sledećoj slici. Opcija Allow Full Menus Sledeće, potrebno je isključiti stavke menija koji se pokreće klikom na Office button, a zatim i opcije Ribbon palete koje omogućavaju kreiranje novih objekata, uvoz i izvoz, i sl. Ovo se, 130

130 takođe, podešava u okviru Access Options, u kartici Current Database. Potrebno je isključiti opciju Allow Full Menus, koja se vidi na sledećoj slici. Opcija Allow Default Shortcut Menus Najzad, preostaje sakrivanje shortcut menija. To su pomoćni meniji koji su često spominjani u ovom priručniku, a pokreću se klikom desnog tastera miša na željeni objekat (formu, izveštaj, tabelu, upit, makro), čime se može pristupiti istom u Design View, Layout View i drugim opcijama. Sakrivanje Default Shortcut Menus vrši se, takođe, u Access Options i kartici Current Database, gde je potrebno isključiti opciju Allow Default Shortcut Menus, što je prikazano na sledećoj slici. Slika 192 Nakon svih ovih izmena i klikom na dugme OK, javiće se poruka da je potrebno zatvoriti bazu podataka kako bi se uočio njihov efekat. Sakriveni detalji mogu se ponovo otkriti klikom na strelicu prikazanu na sledećoj slici, a zatim biranjem opcije More Commands... gde se isključene opcije ponovo uključuju. Slika

131 10. Enkripcija baze podataka Još jedan detalj može doprineti zaštiti od neželjenih pristupa, a to je enkripcija. Enkripcija podrazumeva postavljanje pristupne lozinke bazi podataka. Proces postavljanja lozinke počinje otvaranjem baze podataka u Exclusive modu i potrebno je da opcija Allow Full Menus bude uključena (Office Button -> Access Options -> Current Database -> Allow Full Menus). To znači da je potrebno otvoriti ili novi Access 2007 fajl, ili postojeći zatvoriti klikom na dugme Close Database. Zatim, iz istog menija, izabrati opciju Open i pronađi željeni fajl i označiti ga, a to je back-end baza podataka, tj. onaj fajl koji sadrži samo tabele. Nakon toga, umesto da se odmah klikne na dugme Open, potrebno je kliknuti na strelicu pored tog dugmeta i izabrati opciju Open Exclusive. Ovo se vidi na sledećoj slici. Slika 194 Pošto je baza podataka otvorena u Exclusive modu, moguće je postaviti lozinku. Iz tab-a Database Tools izabrati opciju Encrypt with Password, koja se vidi na sledećoj slici. Slika

132 Otvara se prozor za unos nove lozinke i njenu potvrdu. Nakon zadate lozinke, baza podataka, u ovom slučaju back-end, zaštićena je lozinkom koju treba uneti pri svakom pokretanju aplikacije. Nakon što je lozinka postavljena za back-end bazu, front-end baza neće moći da funkcioniše, jer ona sadrži linkove ka tabelama kojima pokušava da pristupi bez lozinke. Dakle, potrebno je ponovo linkovati tabele. Ovo znači da u front-end bazi prvo treba obrisati postojeće linkove ka tabelama. Nakon njihovog brisanja, sledi kreiranje novih linkova biranjem tab-a External Data. U okviru ovog tab-a bira se tip fajla iz kojeg je potrebno uvesti, tj. importovati podatke (import), što znači da treba izabrati Access, jer se vrši povezivanje sa postojedim Access fajlom. Ovo je prikazano na sledećoj slici. Slika 196 U novootvorenom prozoru postavlja se pitanje da li je potrebno uraditi import, tj. uvoz podataka ili samo linkovanje, tj. povezivanje. Naravno, potrebno je izabrati drugu opciju, tj. povezivanje. Ovaj prozor prikazan je na sledećoj slici. Slika 197 Nakon toga, u istom prozoru kliknuti na dugme Browse i pronađi odgovarajuću back-end bazu podataka. Kliknuti na dugme OK. U narednom prozoru očekuje se unos lozinke koja je 133

133 dodeljena back-end bazi. Nakon unosa validne lozinke, prikazuju se tabele, i eventualno drugi Access objekti (forme, izveštaji, makroi, upiti,...), pri čemu je potrebno označiti, tj. selektovati sve tabele klikom na dugme Select All, što se vidi na sledećoj slici Slika 198 Kliknuti na dugme OK za početak povezivanja. Ovim korakom ponovo je uspostavljena veza između back-end baze podataka, koja je sada zaštićena lozinkom, i front-end baze. Import i export podataka i objekata baze podataka U bazu podataka moguće je importovati ne samo tabele ili linkove ka tabelama iz druge baze, već i forme, upite, izveštaje i makroe. Postupak importovanja tabela, formi, izveštaja, upita i makroa, razlikuje se od linkovanja tabela iz druge Access baze samo po tome što je u prvom prozoru potrebno izabrati opciju za Import, a ne za Link. Dekripcija baze podataka Proces suprotan postavljanju lozinke, tj. enkripciji, naziva se dekripcija (decrypt). Dekripcija, tj. uklanjanje lozinke je moguće, takođe, isključivo kada se baza otvori u Exclusive modu, a zatim se iz tab-a Database Tools bira Decrypt Database. 134

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE) Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE) SISTEMI ZA PODRŠKU ODLUČIVANJU dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za računarstvo i informatiku 2013/2014 Tema 2: Uvod u sisteme

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

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

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

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

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

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

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

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

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

za STB GO4TV in alliance with GSS media

za STB GO4TV in alliance with GSS media za STB Dugme za uključivanje i isključivanje STB uređaja Browser Glavni meni Osnovni meni Vrsta liste kanala / omiljeni kanali / kraći meni / organizacija kanala / ponovno pokretanje uređaja / ponovno

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

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

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

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

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ DIZAJN TRENINGA Model trening procesa FAZA DIZAJNA CILJEVI TRENINGA Vrste ciljeva treninga 1. Ciljevi učesnika u treningu 2. Ciljevi učenja Opisuju željene

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

pripremila: prof. dr Sonja Pravilović

pripremila: prof. dr Sonja Pravilović SADRŽAJ: 1 MICROSOFT ACCESS 2007...2 1. 1. Objekti baze...2 Tabele...2 Upiti...2 Forme... 3 Izvještaji... 3 1. 2. Opis primjera na kojem je priručnik baziran... 4 1. 3. Pokretanje programa, pripremne radnje,

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

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

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

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

Beograd, Srbija, Vojvode Bogdana 34 Secamcctv Corporation DOO. program za evidenciju radnog vremena I prisustva na radu 2011g

Beograd, Srbija, Vojvode Bogdana 34 Secamcctv Corporation DOO. program za evidenciju radnog vremena I prisustva na radu 2011g Uputstvo programa za evidenciju radnog vremena i prisustva na radu Beograd, Srbija, Vojvode Bogdana 34 Secamcctv Corporation DOO 1 ZK SOFTWARE EVIDENCIJA RADNOG VREMENA SADRŽAJ 1. DODAVANJE UREĐAJA 2.

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

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

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

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

Rešavanje problema pomoću računara

Rešavanje problema pomoću računara Rešavanje problema pomoću računara Vladimir Filipović vladaf@matf.bg.ac.rs Softversko inženjerstvo Šta podrazumevamo pod softverskim inženjerstvom? vladaf@matf.bg.ac.rs 2/16 Konstrukcija prevodilaca Prevođenje

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

- 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

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION VFR AIP Srbija / Crna Gora ENR 1.4 1 ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION 1. KLASIFIKACIJA VAZDUŠNOG PROSTORA

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

UPUTSTVO ZA INSTALACIJU I PODESAVANJE PROGRAMA ZA MONITORING RADA SOLARNE ELEKTRANE KOSTAL PIKO MASTER CONTROL (PMC) v.2

UPUTSTVO ZA INSTALACIJU I PODESAVANJE PROGRAMA ZA MONITORING RADA SOLARNE ELEKTRANE KOSTAL PIKO MASTER CONTROL (PMC) v.2 UPUTSTVO ZA INSTALACIJU I PODESAVANJE PROGRAMA ZA MONITORING RADA SOLARNE ELEKTRANE KOSTAL PIKO MASTER CONTROL (PMC) v.2 PIKO, Piko Master Control i drugi nazivi u vezi sa njima, kao i fotografije softvera

More information

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti MRS LAB 03 MRSLab03 Metodologija Razvoja Softvera Vežba 03 Dijagrami aktivnosti 1. Dijagram aktivnosti Dijagram aktivnosti je UML dijagram koji modeluje dinamičke aspekte sistema. On predstavlja pojednostavljenje

More information

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA Master akademske studije Modul za logistiku 1 (MLO1) POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA angažovani su: 1. Prof. dr Momčilo Miljuš, dipl.inž., kab 303, mmiljus@sf.bg.ac.rs,

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

1. MODEL (Ulaz / Zadržavanje / Stanje)

1. MODEL (Ulaz / Zadržavanje / Stanje) 1. MODEL (Ulaz / Zadržavanje / Stanje) Potrebno je kreirati model koji će preslikavati sledeći realan sistem: Svaki dan dolazi određen broj paleta u skladište Broj paleta na nivou dana se može opisati

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

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

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

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

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

1. OSNOVNI POJMOVI O BAZAMA PODATAKA 2 2. UVOD U RAD S MS ACCESSOM TABLICE RELACIJE U BAZI UPITI OBRASCI (FORMS) 39

1. OSNOVNI POJMOVI O BAZAMA PODATAKA 2 2. UVOD U RAD S MS ACCESSOM TABLICE RELACIJE U BAZI UPITI OBRASCI (FORMS) 39 SADRŽAJ : PREDGOVOR 1 1. OSNOVNI POJMOVI O BAZAMA PODATAKA 2 1.1 RELACIJSKE BAZE PODATAKA 3 1.2 DIZAJNIRANJE BAZE PODATAKA 4 2. UVOD U RAD S MS ACCESSOM 8 2.1 TABLICE 12 2.2 RELACIJE U BAZI 19 2.3 UPITI

More information

MENADŽMENT INFORMACIONI SISTEMI

MENADŽMENT INFORMACIONI SISTEMI Menadžment informacioni sistemi dr Alempije Veljović dr Miroslav Radojičić dr Jasmina Vesić MENADŽMENT INFORMACIONI SISTEMI Čačak, 2008. 8 Univerzitetski udžbenik MENADŽMENT INFORMACIONI SISTEMI Drugo

More information

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine UNIVERZITETUBEOGRADU RUDARSKOGEOLOŠKIFAKULTET DEPARTMANZAHIDROGEOLOGIJU ZBORNIKRADOVA ZLATIBOR 1720.maj2012.godine XIVSRPSKISIMPOZIJUMOHIDROGEOLOGIJI ZBORNIKRADOVA IZDAVA: ZAIZDAVAA: TEHNIKIUREDNICI: TIRAŽ:

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

UNIVERZITET UNION RAČUNARSKI FAKULTET Knez Mih a ilova 6/V I DIPLOMSKI RAD

UNIVERZITET UNION RAČUNARSKI FAKULTET Knez Mih a ilova 6/V I DIPLOMSKI RAD UNIVERZITET UNION RAČUNARSKI FAKULTET Knez Mih a ilova 6/V I 110 00 BEOGRAD Broj: Datum: UNIVERZITET UNION RAČUNARSKI FAKULTET BEOGRAD Informacioni sistemi DIPLOMSKI RAD Kandidat: Mladen Panić Broj indeksa:

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

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

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

POSLOVNA INTELIGENCIJA

POSLOVNA INTELIGENCIJA VISOKA TEHNIČKA ŠKOLA STRUKOVNIH STUDIJA KRAGUJEVAC Dr Miroljub Banković, prof. POSLOVNA INTELIGENCIJA Kragujevac, 2012. 1. ŠTA JE POSLOVNA INTELIGENCIJA? Poslovna inteligencija (engl. Business Intelligence)

More information

Katedra za menadžment i IT. Razvoj poslovnih informacionih sistema

Katedra za menadžment i IT. Razvoj poslovnih informacionih sistema Prezentacija smjera Razvoj poslovnih informacionih sistema Katedra za menadžment i IT Razvoj poslovnih informacionih sistema Zašto... Careercast.com latest report on the ten best jobs of 2011 #1 Software

More information

Dr Smiljan Vukanović, dis

Dr Smiljan Vukanović, dis NAPREDNI SISTEMI UPRAVLJANJA SAOBRAĆAJEM SVETLOSNIM SIGNALIMA SU DEO ITS-A. DA ILI NE? ADVANCED TRAFFIC SIGNAL CONTROL SYSTEMS ARE A PART OF ITS. YES OR NO? Dr Smiljan Vukanović, dis Rezultat rada na projektu

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

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

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

EUnet dial-up konfigurator

EUnet dial-up konfigurator Dubrovačka 35/III 11000 Beograd tel/fax: (011) 3305-678 office@eunet.yu Tehnička podrška: tel: (011) 3305-633 support@eunet.yu EUnet dial-up konfigurator - korisničko uputstvo - Ovaj program namenjen je

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

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

Uputstvo za upotrebu kvalifikovanog elektronskog sertifikata (KES)

Uputstvo za upotrebu kvalifikovanog elektronskog sertifikata (KES) Uputstvo za upotrebu kvalifikovanog elektronskog sertifikata (KES) Sadržaj Stavljanje pametne kartice u USB ključ... 1 Uputstvo za instalaciju drajvera za USB ključ... 3 Preuzimanje programa Nexus Personal...

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

Primena OLAP tehnika u analizi otplate duga klijenata Banke Poštanske štedionice a. d.

Primena OLAP tehnika u analizi otplate duga klijenata Banke Poštanske štedionice a. d. UNIVERZITET U BEOGRADU MATEMATIČKI FAKULTET Nevena Joksić Primena OLAP tehnika u analizi otplate duga klijenata Banke Poštanske štedionice a. d. Master rad Beograd, 2010. god. Sadržaj 1. INTELIGENTNO POSLOVANJE...

More information

SKINUTO SA SAJTA Besplatan download radova

SKINUTO SA SAJTA  Besplatan download radova SKINUTO SA SAJTA www.maturskiradovi.net Besplatan download radova Prirucnik za gramatiku engleskog jezika Uvod Sama suština i jedna od najbitnijih stavki u engleskoj gramatici su pomoćni glagoli! Bez njih

More information

Dr.Miroljub Banković, prof. Kragujevac, 2008.

Dr.Miroljub Banković, prof. Kragujevac, 2008. VISOKA TEHNIČKA ŠKOLA STRUKOVNIH STUDIJA KRAGUJEVAC Skripta iz predmeta PROJEKTOVANJE INFORMACIONIH SISTEMA Dr.Miroljub Banković, prof. Kragujevac, 2008. SADRŽAJ OSNOVI TEORIJE SISTEMA... 3 DEFINICIJE

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

MENADŽMENT I INFORMACIONE TEHNOLOGIJE Katedra za menadžment i IT. Menadžment i informacione tehnologije

MENADŽMENT I INFORMACIONE TEHNOLOGIJE Katedra za menadžment i IT. Menadžment i informacione tehnologije Prezentacija smjera MENADŽMENT I INFORMACIONE TEHNOLOGIJE Katedra za menadžment i IT Menadžment i informacione tehnologije Zašto... Careercast.com latest report on the ten best jobs of 2011 #1 Software

More information

IMPLEMENTACIJA PODLOGE ZA SARADNJU KROKI ALATA SA ALATIMA ZA UML MODELOVANJE OPŠTE NAMENE

IMPLEMENTACIJA PODLOGE ZA SARADNJU KROKI ALATA SA ALATIMA ZA UML MODELOVANJE OPŠTE NAMENE IMPLEMENTACIJA PODLOGE ZA SARADNJU KROKI ALATA SA ALATIMA ZA UML MODELOVANJE OPŠTE NAMENE IMPLEMENTATION OF BASIS FOR COOPERATION BETWEEN KROKI TOOL AND UML MODELING TOOLS Željko Ivković, Renata Vaderna,

More information

Osnovni koncepti Data Warehouse sistema

Osnovni koncepti Data Warehouse sistema Automatizacija procesa poslovanja Osnovni koncepti Data Warehouse sistema Sistemi skladišta podataka BPA Osnovni koncepti DW Sadržaj Motivacija nastanka DW sistema Koncepcija DW sistema Tematske karakteristike

More information