You are on page 1of 158

Slobodan Obradovi Bojan Vujovi

Biljana Vuini Tijana Pandurov Vesna Petkovi

MS ACCESS 2010

Projektovanje
baza podataka
i
aplikacija

Visoka kola elektrotehnike i raunarstva

Beograd 2011.
Autori: Slobodan Obradovi, Bojan Vujovi, Tijana Pandurov,
Biljana Vuini, Vesna Petkovi

Recenzenti: dr Zoran Banjac, mr Zoran irovi

Tehnika obrada: Slobodan Obradovi, Bojan Vujovi

Izdava: Visoka kola elektrotehnike i raunarstva, tel: 0112471099

Lektura: Anelka Kovaevi

Korice: Gabrijela Dimi, Kristijan Kuk

tampa: MST Gaji

Tira: 200 primeraka

Prvo izdanje

ISBN 978-86-7982-106-5
CIP Katalogizacija u publikaciji
Narodna biblioteka Srbije, Beograd

004.42ACCESS
004.65

MS Access 2010 : projektovanje baza


podataka i aplikacija / Slobodan Obradovi
... [et al.]. - 1. izd. - Beograd : Visoka
kola elektrotehnike i raunarstva, 2011
(Beograd : MST Gaji). - 158 str. : ilustr. ;
25 cm

Tira 200. - Bibliografija: str. 152. -


Registar.

ISBN 978-86-7982-106-5
1. , , 1955- []
a) "Access" b)
-
COBISS.SR-ID 187101964
Predgovor

Ova knjiga namenjena je svima onima koji su zainteresovani i ele da


se bave programiranjem i projektovanjem baza podataka.
Kao sistem za upravljanje bazama podataka (SUBP) korien je MS
Access 2010, najjednostavniji i najrasprostranjeniji RDBMS. Data su detaljna
uputstva o realizaciji konkretnih aktivnosti u izradi baza i aplikacija
upotrebom programskog paketa MS Access.
Osim praktinog rada u Accessu i korienja njegovih alata, knjiga
obuhvata teoretski deo o projektovanju baza podataka i aplikacija. MS
Access moe da se koristi kao samostalan SUBP, a moe da bude eoni
deo - aplikacija u kombinaciji sa nekim snanijim SUBP-om.
Data su i detaljna uputstva o realizaciji konkretnih aktivnosti u izradi
baza podataka i aplikacija upotrebom programskog paketa MS Access.
Detaljno je objanjeno, na primerima, kreiranje baze podataka, tabela i
relacija, upita, obrazaca i izvetaja, kao i makroa i modula.
Na kraju je i poglavlje koje se bavi projektovanjem relacionog modela,
koje predstavlja korak koji prethodi kreiranju tabela, relacija, upita, obrazaca
i izvetaja u MS Accessu.
Naravno, na kraju svakog poglavlja su dati zadaci za vebanje koji
omoguavaju proveru stepena usvojenih znanja.

U Beogradu, 2011.
AUTORI
1. Uvod u MS Access
MS Access je programski paket koji je sastavni deo grupe programa
MS Office. MS Access je u stvari relacioni sistem Officea za upravljanje
bazama podataka RSUBP (Relational Database Management System,
RDBMS). Do sada se, sa razvojem MS Officea, na tritu nalo nekoliko
verzija MS Accessa (verzije ... 97, 2000, XP, ...) od kojih je danas aktuelna
Access 2010.
MS Access 2010 je predvien je za:

rad na jednom raunaru i


rad u raunarskoj mrei (ravnopravnih korisnika ili u klijent-server
aplikacijama).
Access 2010 takoe podrava i rad sa Internetom, kao i izradu HTML
dokumenata.
U osnovi MS Accessa 2010 lei programski jezik Visual Basic for Appli-
cations (VBA), a namenjen je za projektovanje i eksploataciju prostih i sloe-
nih relacionih baza podataka. VBA ima najprostiju sintaksu i semantiku od
svih objektno orijentisanih jezika, pa je zato MS Access i najpogodniji
RDBMS za poetnike u ovoj oblasti. Kompatibilan je sa mnogim drugim pro-
gramskim paketima za obradu baza podataka (dBase, Visual FoxPro,
Paradox, SQL Server, Oracle i drugi), pa ga koriste i iskusni programeri baza
podataka visokog stepena sloenosti.
MS Access 2010 omoguava razmenu (uvoz i izvoz) podataka van
MS Officea i to praktino sa svim programskim paketima koji podravaju dbf
format datoteka, naravno i SQL Severom i Oracleom jer podrava ODBC
standard (Open Data Base Connectivity). Ima ugraene mehanizme bezbe-
dnosti na nivou korisnika (korisnici se mogu razvrstati u grupe koje imaju
razliita prava pristupa), a takoe obezbeuje podrku za transakcionu ob-
radu.
MS Access prihvata i tekst, slike (bmp i jpg datoteke), tonske zapise, fil-
move i sl., odnosno povezivanje (Linking), pridruivanje (Attaching) i ugrai-
vanje (Embending) datoteka, odnosno dokumenata kreiranih iz raznih apli-
kacija. Stranice za pristup podacima (Data Access Pages) vie nisu podra-
ne (postojale su u verzijama 2000-2003), ali je od verzije 2010 podrano po-
stavljanje Access baze na SharePoint server to korisnicima omoguava rad
preko mree. Access moe da se koristi kao samostalan SUBP, a moe da
bude eoni deo - aplikacija u kombinaciji sa nekim snanijim SUBP-om.
Access je mona Windows aplikacija koja povezuje sve prednosti i lako-
u korienja grafikih alata sa brzinom i efikasnou obrade, koje daje sis-
tem za upravljanje bazama podataka.
Access podrava upotrebu primarnih i spoljnih kljueva i obezbeuje re-
ferencijalni integritet na nivou DBMS-a. Ima ugraen veliki broj tipova poda-
taka, veinu standardnih kao i neke nove, tipine za windows aplikacije (hi-
perveza i OLE objekti).
Kao pomo u projektovanju baze i aplikacije Access nudi veliki broj alata
i takozvane arobnjake (Wizards) koji umnogome olakavaju rad i omogua-
vaju brz razvoj aplikacija (RAD, Rapid Application Development).
Za definisanje i manipulaciju podacima korisnicima je na raspolaganju
SQL (Structured Query Language) i QBE (Query By Example). Ugraeni su
mehanizmi za rad sa vie tabela istovremeno, a takoe postoje sredstva za
ostvarivanje veza izmeu njih.
Na raspolaganju su alati za kreiranje obrazaca i izvetaja, izradu poslo-
vnih grafikona i dijagrama. Zahvaljujui ugraenim funkcijama mogue su
brze poslovne i statistike analize, rad sa datumima i vremenom, kao i funk-
cije za rad sa tekstualnim podacima.
Naravno Access 2010 je prava klijent/server aplikacija, a naravno zadr-
ava sve pogodnosti jednokorisnikog rada ukoliko je to neophodno. Srce
Accessa i dalje predstavlja Jet Database Engine namenjena za kreiranje ta-
bela i izvravanje upita. Njena funkcionalnost je sasvim dovoljna za podrku
na nivou odeljenja ili manje firme. Za vee informacione sisteme neophodno
je koristiti jae RDBMS, odnosno SQL Server ili ak Oracle.
Ono to je najvea prednost Accessa upravo je injenica da je to jedan
relacioni sistem za upravljanje bazama podataka i da se logika rada na Ac-
cessu ne razlikuje od logike rada na SQL Serveru ili Oracle RDBMS, samo
su drugaiji alati i naravno snaga, ali i cena.
2. Osnovne karakteristike MS Accessa
U svetu koji nas okruuje postoji u svakom momentu veliki broj objekata
koji se neprestano menjaju, i veliki broj dogaaja koji se deavaju nezavisno
od nae volje i svesti o njima. Spoznajom svojstava nekih objekata ili ishoda
nekih dogaaja dolazimo do informacija o svetu oko nas. Podaci su diskret-
ni, zapisani fakti o pojavama i dogaajima iz sveta koji nas okruuje, i iz kojih
dobijamo informacije o svetu. Drugim reima, podaci su injenice, oznake ili
zapaanja nastala u toku nekog procesa, a koja su zapisana, tj. kodirana
pomou nekih fizikih simbola, ili simbola neke azbuke, i imaju svojstvo da
mogu da se zapisuju, uvaju, prenose i obrauju. Podaci su sredstva za iz-
raavanje i dobijanje informacija, i oni predstavljaju izolovane i neinterpreti-
rane injenice. Podatke prikupljamo i zapisujemo da ih uvamo, i po potrebi
koristimo.
Osnovna uloga programskog paketa MS Access jeste upravo zapisi-
vanje podataka, njihovo uvanje i obrada na osnovu koje dobijamo nove po-
datke koje interpretiramo I na taj nain dobijamo nove informacije o svetu
oko nas, a koje nismo mogli dobiti neposrednim posmatranjem. Na primer,
svakodnevnim merenjem temperature tokom itave godine mi prikupljamo
podatka. Na bazi njih izraunavamo srednje temperature za svaki mesec i
itavu godinu, i dolazimo do novih podataka da je na primer 2001. godina
bila najtoplija godina u poslednjih 100 godina. Dakle, obradom podataka do-
bijamo nove podatke (srednja mesena i godinja temperatura, a interpreta-
cijom tih podataka dolazimo do novih informacija da je neka godina jedna od
najtoplijih ili najhladnijih u nekom vremenskom periodu.
Dakle prvi korak u obradi podataka jeste njihovo prikupljanje i skladi-
tenje na nekom medijumu. Danas se za skladitenje podataka najee ko-
riste diskovi u sastavu nekog raunarskog sistema, a da bi se podaci sau-
vali na disku oni se organizuju u posebne celine koje se nazivaju datoteke
(file). Znai, datoteke su osnovni organizacioni oblik povezivanja i uvanja
podataka radi kasnije obrade ili prikaza, a u datotekama se uvaju i rezultati
dobijeni nakon obrade podataka.

Datoteke MS Access baza podataka


MS Access ima sopstvenu strukturu datoteka baze podataka, slinu onoj
koju koriste klijent-server sistemi za upravljanje relacionim bazama podata-
ka, ali istovremeno i vrlo specifinu.
Korisnika datoteka baze podataka je datoteka tipa .accdb (ova ekstenzija
odnosno format se koristi od verzije 2007, a pre toga je upotrebljivan .mdb
tip). Razlikuje se od tradicionalnih baza podataka za line raunare (PC) po
tome to su i podaci i aplikacija smeteni u jednoj .accdb datoteci. Datoteke
MS Access

.accdb sadre ak i programski kd koji je napisan u programskom jeziku


Visual Basic For Application (VBA). Nije potrebno da korisnik brine o struktu-
ri .accdb datoteka, jer MS Access rukuje svim detaljima upravljanja datote-
kama, to i jeste zadatak sistema za upravljanje bazama podataka.
Glavna datoteka baze podataka (datoteka radne grupe) ima naziv
System.mdw. Ova datoteka sadri sledee informacije:
imena korisnika i grupa korisnika koji mogu da otvore MS Access
lozinke i jedinstveni binarni kd korisnika koji se naziva System ID
(System Identifier, SID) koji identifikuje korisnika koji trenutno koristi
MS Access,
operativna podeavanja, koja se uspostavljaju izborom stavki iz pa-
dajue liste Tools - Options, i
definicije prilagoenih paleta alatki u Accessu 2010, koje pravi svaki
korisnik.
U biblioteke datoteke (.mde) smetaju se arobnjaci za izradu obrazaca,
izvetaja, grafikona, kao i renik podataka za sve elemente baze podataka.
Dodavanjem ovih elemenata proiruju se mogunosti MS Accessa i dodaju
mu se nove osobine. Ove biblioteke moemo povezati sa Accessom izborom
opcije References iz liste Tools u prozoru Modules, ili pomou alatke Add-
In-Manager, kojoj moemo pristupiti izborom opcije Tools-Add-Ins. arob-
njaci Accessa 2010, koji se koriste da bismo napravili obrasce, izvetaje ili
grafike, uvaju se u nizu datoteka Accessovih bibliotekih baza podataka:
Acwzlib.mde,
Acwztool.mde, i
Acwzmain.mde.
Datoteka zakljuavanja (Locking Information File, sa ekstenzijom .laccdb)
slui za smetanje informacija o trenutno zakljuanim podacima u bazi (tj. o
onim podacima koji su u procesu auriranja). Ako ovaj fajl ne postoji u trenu-
tku otvaranja baze, Microsoft Jet Database Engine ga stvara, dajui mu isto
ime kao to je i ime baze, samo sa ekstenzijom .laccdb. Ovim se obezbeu-
je da neki korisnik ne pristupi nekompletnim podacima, dok drugi korisnik
vri njihovu izmenu.

Elementi MS Access baza podataka


Osnovni elementi koji sainjavaju MS Access 2010 su:

8 Sistem za upravljanje bazama podataka


Osnovne karekteristike MS Access-a

tabele (tables),
upiti (queries),
obrasci (forms),
izvetaji (reports),
ugraene funkcije (built-in functions),
makroi (macros), i
moduli (modules).
Tabela (table) je osnovni objekat (svih relacionih sistema za upravljanje
bazama podataka a ne samo MS Accessa) koji slui za smetanje i memori-
sanje podataka. Baza podataka u MS Accessu moe da sadri maksimalno
do 32768 tabela od kojih maksimalno 2048 mogu biti istovremeno aktivne,
to jest otvorene. U toku rada mogua je i dinamika razmena podataka,
kao i direktno povezivanje sa drugim tabelama kreiranim u drugim aplikaci-
jama i sistemima za upravljanje bazama podataka. Access podrava primar-
ne kljueve (integritet podataka, jedinstvenost svake n-torke) i spoljnje klju-
eve (obezbeuje potpuni referencijalni integritet na nivou samog RDBMS-a,
ime su onemoguena nepotpuna brisanja i auriranja podataka).
Upit (query) je najee korien alat u radu sa relacionim bazama po-
dataka. MS Access 2010 omoguava:
grafiki, brz i komforan nain kreiranja upita na bazi primera (Design
- QBE),
postavljanje upita pomou strukturiranog upitnog jezika (SQL),
upotrebu arobnjaka za izradu upita, obrazaca i izvetaja (Wizard),
postavljanje upita nad najvie 16 tabela, i
formiranje rezultata upita kao tabele od najvie 255 kolona.
Access podrava postavljanje upita nad vie tabela (istovremeno) kao i
uspostavljanje veza - relacija izmeu tabela. Relacije mogu, a ne moraju, biti
trajne, tj. unapred zadane, ve se mogu kreirati u momentu kreiranja upita i
odnose se samo na taj upit. Rezultat upita je skup slogova (redova) (Recor-
dset) iji se sadraj moe menjati u zavisnosti od samog upita i promena
sirovih podataka u fizikim tabelama.

Obrasci (Forms) slue za komfornije i sigurnije unoenje podataka u


tabele (Data-Entry Forms), te preglednije prikazivanje rezultata na ekranu
monitora. U osnovi kreiranja obrazaca je objektno programiranje, tako da u
okviru obrazaca postoji veliki broj raznih Windows kontrola (labela, polje za
unos teksta, dugme, ...) grafikih formata, slika, zvunih zapisa, itd., koji ine
njegovu osnovu. Obrasci za unos podataka ujedno obezbeuju proveru is-
MS Access

pravnosti i zatitu podataka kroz mehanizme ograniavanja pristupa odre-


enim poljima u tabeli. Za neke korisnike mogu se kreirati obrasci pomou
kojih je mogue samo izvetavanje (pregled podataka), i to samo odreenih
polja. Na taj nain se obezbeuje zatita podataka od neovlaenih izmena,
kao i tajnost nekih podataka u odnosu na neke korisnike.
U sklopu svakog objekta mogu se implementirati razne funkcije i proce-
dure koje e se aktivirati tek kada se nad datim objektom obavi odreena
radnja ili kada se desi neki dogaaj (na primer pritisnemo neki taster na tas-
taturi ili miu).

Izvetaji (Reports) prikazuju na papiru ili ekranu monitora nove infor-


macije (podatke), koje smo dobili kao rezultat obrade raspoloivih podataka
iz baze. Izvetaji mogu kombinovati podatke iz vie tabela i na taj nain nam
omoguavaju da predstavimo sloene veze koje postoje izmeu raznih sku-
pova podataka. U izvetajima se kao i u upitima mogu koristiti razne funkcije,
pa se sem podataka mogu prikazati i izraunate veliine. Prilikom pravljenja
izvetaja mogu se koristiti razne grafike mogunosti, tako da se mogu ge-
nerisati fakture, cirkularna pisma, itd.

Ugraene funkcije (Built-In-Functions) , ima ih preko 200, daju pose-


bnu snagu Accessu u procesu izraunavanja raznih statistikih i finansijskih
veliina kao i u radu sa datumima i tekstom. Dobijeni rezultati su nezamen-
ljva pomo rukovodiocima u donoenju stratekih odluka.
Makroi (macros) su skupovi komandi koje zadaje korisnik, a slue za
automatizaciju poslova koji se ponavljaju tj. obavljaju na isti nain (na primer
pozivanje obrazaca u odreenom redosledu ili na bazi nekih dogaanja,
pravljenje izvetaja, itd.).
Moduli (modules) su skupovi procedura i funkcija koje su napisane u
nekom programskom jeziku (najee je to VBA, ali moe biti i u nekom dru-
gom jeziku, na primer u Visual Basicu, Visual C++, itd.), a mogu se povezi-
vati sa elementima Accessa 2010. U osnovi modula a i makroa je objektno
programiranje upravljano dogaajima (Event Driven Programming).

10 Sistem za upravljanje bazama podataka


3. Kreiranje baze podataka
Pojam baza podataka
Ako bismo eleli da u jednoj reenici definiemo baze podataka onda bi
definicija bila da je to skup povezanih podataka koji su organizovani na od-
reen nain i meu sobom postavljeni u odreene veze - relacije. Iako ima
vie moguih modela podataka danas su u fazi projektovanja dominantni
model objekat-veze tzv. MOV (E-R Model, Entity-Relationship Model) i nor-
malizacija, a u fazi implementacije relacioni model, odnosno relacione baze
podataka.

Relaciona baza podataka je skup vremenski promenljivih tabela (relaci-


ja) koje mogu biti bazne i izvedene. Izvedena tabela moe se dobiti iz baznih
relacija operacijama koje se definiu nad relacijama. Bazne tabele se jo
nazivaju i fizike tabele, jer one zbilja postoje trajno memorisane na disku,
dok izvedene tabele nastaju kao rezultat neke operacije nad fizikim tabela-
ma i postoje samo privremeno u operativnoj memoriji raunara. Zbog toga
se izvedene tabele nazivaju i virtuelne. Kreiranje baze podataka, bar kada
se radi o Accessu, predstavlja u stvari proces kreiranja fizikih tabela i veza
izmeu njih, a sve ostalo spada u domen aplikacije, tj. obrade podataka.

Sam pojam baza podataka pojavio se krajem ezdesetih godina i ozna-


avao je skup meusobno povezanih podataka koji se uvaju zajedno i me-
u kojima ima samo onoliko ponavljanja koliko je neophodno za njihovo op-
timalno korienje pri viekorisnikom radu. Podaci se pamte tako da budu
nezavisni od programa koji ih koriste, i strukturiraju se tako da je omoguen
porast baze.

Model podataka slui za prikazivanje objekata sistema - entiteta, nji-


hovih svojstava - atributa, kao i njihovih meusobnih veza. Svaki model
podataka mora da sadri strukturu objekata, ogranienja i operacije nad ob-
jektima. Koji su to objekti, i koji su relevantni podaci kojima se izdvojeni enti-
teti (objekati) mogu opisati, vrlo je bitno odrediti sa merom, jer od toga najvi-
e zavisi efikasnost obrade i informacije koje e biti rezultat obrade podataka
iz modela. Ako je izabrano malo podataka obrada e biti vrlo brza, ali model
e biti jednostavan i imae malu verodostojnost, pa e samim tim biti i mali
broj korisnih informacija koje moe da prui. Ako se model opie sa suvie
velikim brojem podataka, postaje suvie sloen, pa je obrada teka, dugot-
rajna, a dobijene informacije mogu biti konfuzne.

Odabrani entiteti po svojoj prirodi mogu biti:


MS Access

realni deo sveta (na primer: aparat, preduzee, radnik, raun, narud-
benica i sl.),
apstraktni pojam (mera, koliina, boja, zvanje, itd.),
dogaaj (narudbina, transport, upis studenata, i sl.) i
asocijacija (slubenik-firma, predmet-nastavnik).
Model realnog sistema formira se korienjem semantiki najbogatijeg
objektnog modela. U zavisnosti od softvera koji e se koristiti za implemen-
taciju takav model prevodi se najee u odgovarajui relacioni model ta-
bele, kao model za implementaciju.
Relacioni model je danas najpopularniji model baze podataka i to zahva-
ljujui pre svega sledeim osobinama:

struktura modela veoma je jednostavna, baza podataka predstavlja


skup tabela,
mogua je formalno-matematika interpretacija tabela.
Kao to mu i samo ime govori ovaj model se zasniva na tabelama, tj., re-
lacijama izmeu odreenih skupova.
Relacija: Koncept atributa omoguava predstavljanje relacije kao tabele,
pa se relacija RADNIK moe predstaviti sledeom tabelom (slika 3.1):

Ime tabele-RADNIK
IDBR# BROD$ IME PLATA Imena atributa
5497 10 Aco 1000
5780 20 Boo 2200 Jedan slog, zapis, n-torka
5900 20 Slobo 900

Skup vrednosti za atribut-domen

primarni klju spoljni klju


Pojedinana vrednost atributa
Slika 3.1 Tabele - osnovni pojmovi i sastavni delovi

Osobine objekata (entiteta) predstavljaju njegove atribute koji ga blie


opisuju i to u onom obimu koji je za datu primenu dovoljan. Izbor pogodnog
skupa atributa koji su od znaaja za neku aplikaciju zove se apstrahovanje
podataka i vrlo je vaan korak u projektovanju sistema.
Na primer, za jedno preduzee koje nam isporuuje neku robu (dobav-
lja) od znaaja je da znamo sedite, adresu, telefon, osobu za kontakt, ali
uopte nije od znaaja koliko zaposlenih ima, koje radne jedinice, na kojim
projektima rade i sl. Kada posmatramo to isto preduzee sa stanovita nje-

12 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

govog poslovanja od znaaja su i ovi podaci, ali i mnogi drugi. Ako su pred-
met naeg posmatranja zaposleni u nekom kolektivu i ako je na posao da
odredimo plate radnika, onda broj njihovih cipela nema nikakvog znaaja
(nije relevantan). Ali ako tog istog zaposlenog posmatramo iz ugla nabavke
HTZ opreme onda je i broj cipela i veliina odela i te kako vana.
Iako su neki podaci vrlo vani za neke aplikacije, oni ponekad uopte ni-
su pogodni da budu atributi u nekoj relaciji. Takav primer je, recimo, radni
sta zaposlenog. Naime iako je vrlo bitan on se svaki dan menja, pa bi bilo
neophodno svaki dan aurirati bazu podataka. Mnogo je pogodniji recimo
datum zaposlenja kao podatak na bazi kojeg moemo, ako je to potrebno,
izraunati radni sta.
U bazi podataka ne treba da postoje podaci koji su vieznani. Na pri-
mer, brano stanje koje moe biti neoenjen, oenjen, razveden i udovac.
Jer ako je neko oenjen po trei put, onda on moe istovremeno biti i razve-
den i udovac. Takve podatke takoe treba iskljuiti iz baze, ako nisu neop-
hodni, jer nas mogu dovesti u zabludu.
Poto je relacija skup, a svaka tabela nije, definiu se sledei uslovi koje
tabela mora da zadovolji da bi bila relacija:
1. ne postoje duplikati vrsta tabele (odnosno, dve vrste moraju se razlikova-
ti bar u vrednosti jednog atributa koji na jedinstven nain opisuje tu vrstu
i zove se primarni klju),
2. redosled vrsta nije znaajan,
3. redosled kolona nije znaajan, ali je isti za sve vrste jedne tabele,
4. sve vrednosti atributa u relacijama su atomske, tj. nije dozvoljeno da at-
ributi budu relacije, odnosno da ima vie vrednosti.
Ako tabela zadovoljava uslov (4) tada je ona u Prvoj normalnoj for-
mi. Svaka relacija mora biti u prvoj normalnoj formi (1NF). Svi atributi
(kolone) unutar jedne tabele moraju imati razliita imena, ali u raznim
tabelama mogu imati ista imena.
Klju relacije (primarni klju) je takva kolekcija njenih atributa, koja za-
dovoljava sledee uslove:

ne postoje bilo koje dve n-torke sa istom vrednou kljua (osobina


jedinstvenosti), i
ako se bilo koji atribut izostavi iz kljua gubi se osobina jedinstvenosti
(osobina neredundantnosti).
Definie se takoe spoljnji ili strani klju, kao atribut ili grupa atributa koji
slue za povezivanje sa vrednou primarnog kljua neke druge relacije.
Spoljnji kljuevi slue da se uspostave veze izmeu relacija (tabela) u relaci-
onoj bazi podataka. U prethodnoj tabeli RADNIK spoljnji klju slui za pove-
zivanje tabele RADNIK sa tabelom u kojoj se nalaze podaci o odeljenjima.

Sistem za upravljanje bazama podataka 13


MS Access

Svi atributi po kojima se vri pretraivanje baze (sem primarnog kljua) zovu
se sekundarni kljuevi. Razlika izmeu primarnog i sekundarnih kljueva je u
tome to pri pretraivanju baze po primarnom kljuu dobijamo najvie jedan
zapis, ako takav zapis postoji, ili nijedan, ako ne postoji. Pri pretraivanju po
sekundarnim kljuevima dobijamo skup zapisa (recordset), jer vie objekata
moe imati istu vrednost za taj atribut.

Kao to mu i samo ime govori, relacioni model se zasniva na relacijama


izmeu odreenih skupova - tabela. I sama relacija je prikazana kao tabela,
dakle u relacionom modelu sve je sastavljeno od tabela.

Kreiranje baze podataka


Da bi kreirali bazu podataka u MS Accessu potrebno ga je prvo, pokre-
nuti, na primer pomou ikonice koja se nakon instaliranja moe postaviti na
ekran monitora, tj. na radnu povrinu (Desktop). To je takozvana preica
(Shortcut). Ako nemamo ikonicu na radnoj povrini, Access se pokree kao i
sve druge Windows aplikacije, iz liste Start/Programs, ili preko istraivaa
(Explorer) dvostrukim klikom[1]... [4] na bilo koju .accdb datoteku. Nakon po-
kretanja pojavljuje se prvi, osnovni prozor Microsoft Accessa (slika 3.2) koji,
pored mogunosti otvaranja postojeih baza, prua nekoliko opcija za krei-
ranje nove baze podataka:

Blank Database,
Blank web database i
Templates (uzori, abloni).

[1]
U Windows operativnom sistemu dovoenjem pokazivaa mia na neki objekat i pritiskom na radni,
najee levi, taster mia vri se izbor (oznaavanje, selekcija) nekog objekta.
[2]
Pritisak na radni taster mia predstavlja dogaaj koji se naziva klik (Click).
[3]
Pritisak na radni taster mia dva puta u kratkom vremenskom intervalu predstavlja dogaaj koji se
naziva dvostruki klik (Double click).
[4]
Pritiskom na alternativni, najee desni taster mia, dobija se brza lista, skup najee korienih
naredbi za izabrani objekat.

14 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Slika 3.2 Prvi prozor MS Accessa

Blank database je opcija za kreiranje nove baze podataka bez upot-


rebe ablona i ostalih poluautomatizovanih operacija koje MS Access
nudi u radu. U kasnijim fazama rada (eksploatacija baze) ove pogod-
nosti MS Accessa mogu se opet, po elji, aktivirati. Blank web data-
base se upotrebljava za kreiranje baze podataka koja je namenjena
webu, tanije postavljanju na SharePoint server. Preko SharePoint
servera sa instaliranim Access Services mogue je publikovati bazu
podataka tako da su njenim korisnicima koji su najee u lokalnoj
(intranet) mrei, stavljeni na raspolaganje objekti ove baze (tabele,
forme, izvetaji itd.). Ovaj nain prezentovanja baze na mrei pred-
stavlja novinu u odnosu na ranije koriene Data Access Pages
(stranice za pristup podacima) koje su bile u upotrebi do verzije 2003
MS Accessa.
Templates (abloni, uzori) su ve napravljene baze podataka koje
korisnik moe odmah upotrebljavati ili ih koristiti kao osnovu za neki
svoj projekat. Razvrstani su po kategorijama kao to su imovina, kon-
takti, finansije, obrazovanje i sl. Microsoft je za potrebe demonstrira-
nja mogunosti MS Accessa postavio i popunio podacima nekoli-
ko tipinih baza podataka koje korisnik moe koristiti i modifikovati
po elji.
Open je opcija za otvaranje postojee baze podataka koju hoemo
da modifikujemo ili koristimo. Klikom na ovu opciju dobijamo poznati
Open File dijalog u kojem biramo bazu sa kojom elimo da radimo.
Odmah iznad New stavke (levi panel) postoji i Recent opcija koja
nam daje spisak nekoliko baza podataka sa kojima smo radili nedav-
no.

Sistem za upravljanje bazama podataka 15


MS Access

Sve ponuene opcije biraju se miem. Za kreiranje nove baze podataka


oznaimo miem Blank database i kliknimo OK.Nakon toga, na desnoj
strani prozora, Access trai ime datoteke (File name) u koju emo smestiti
novu bazu podataka, neka je to PREDUZECE. Folder, direktorijum u koji
emo smestiti taj fajl treba pripremiti ranije, tako da uz pomo istraivaa
(explorera) lako dolazimo do njega. Access nudi ime baze Databa-
se1.accdb, ali joj korisnik moe dati i drugo ime, na primer PREDUZECE
(ekstenziju ".accdb" nije neophodno upisivati zato to se ona podrazumeva).
Postupak konano zavravamo, nakon imenovanja fajla, izborom dugmeta
Create. Ovaj postupak prikazan je na slici 3.3.

Slika 3.3 Smetanje baze na disk pod odreenim imenom

Kada kreiramo .accdb datoteku, pojavie se radni prozor MS Accessa -


(slika 3.4).

Slika 3.4 Radni prozor MS Accessa u kojem je korisniku odmah ponueno kreiranje
prve tabele u bazi.

16 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Accessov interfejs se znaajno promenio u verziji 2007 kada se, zajedno


sa ostalim MS Office aplikacijama Microsoft odluio za ukidanje klasinog
glavnog menija i uvoenje trake sa alatkama (engl. ribbon). Najvei deo fun-
kcionalnosti Accessa je ostao isti kroz razliite verzije, ali je sama organiza-
cija alatki i podeavanja izmenjena u toj meri da e mnogim korisnicima koji
su navikli na stariji interfejs (verzije 2003 i ranije) biti potrebno dosta vreme-
na i istraivanja da bi pronali sve to im treba za rad. Ipak, kada korisnik
pronae alat, podeavanje, dijalog koji mu treba dalje funkcionisanje pro-
grama je gotovo identino kao i ranije. Naravno, logika rada i teorija vezana
za baze podataka je ostala ista.
Ovo su standardne kartice (tabovi) sa alatkama koje Acces nudi u svojoj
traci:
File - otvaranje ranije kreiranih baza podataka, pravljenje novih, informa-
cije o bazi, opcije, izlaz iz programa.
Home - kretanje izmeu pogleda na objekte baze, cut, copy, paste, rad
sa redovima podataka iz tabele, pretraivanje i formatiranje teksta.
Create - pravljenje novih objekata u bazi (tabele, upiti, obrasci, izvetaji
...)
External Data - uvoz, izvoz, povezivanje i prikupljanje podataka iz razli-
itih izvora (druge baze - Access ili neke druge, Excel fajlovi, XML, TXT,
PDF fajlovi ...)
Database Tools - rad za vezama izmeu tabela, komprimovanje baze,
analiza i migracija podataka na SQL Server, SharePoint ili drugu Access ba-
zu.

Zadaci za samostalan rad:


3.1. Kreirati novu bazu podataka MojaPrvaBaza pomou nekog od uzora
(template).
3.2. Kreirati novu bazu podataka MojaDrugaBaza koristei opciju Blank
database.
3.3. Otvoriti ve postojeu bazu podataka MojaPrvaBaza

Mogunosti izrade tabela u MS Accessu


Tabela je osnovni objekat u jednoj bazi podataka. Svi podaci koje elimo
da uvamo u bazi e biti smeteni u neku od tabela. Ostali objekti pristupaju
(prikazuju ili menjaju) ovim podacima ali ih sami ne sadre. Svaki red u tabeli
se odnosi na jedno pojavljivanje nekog objekta sistema kojeg opisujemo u
bazi. Na primer, ako naa baza podataka opisuje neki fakultet, u tabeli Stu-
denti e u svakom redu biti podaci o tano jednom studentu. Dalje, svako
pojavljivanje objekta (jedan student) je opisan preko skupa atributa koje
predstavljaju kolone tabele.

Sistem za upravljanje bazama podataka 17


MS Access

Postoji nekoliko naina na koje moemo kreirati tabelu u MS Accesu i


svaki od njih ima svoje prednosti i mane. Ovde emo videti kako se tabela
moe kreirati na razliite naine korak po korak.
Da bi kreirali novu tabelu u traci sa alatkama emo izabrati karticu Crea-
te, deo Tables. Ovde imamo tri opcije:
Table - kreiranje tabele u pogledu sa podacima (Datasheet View).
Ovde moemo paralelno dodavati nove kolone sa razliitim tipovima
podataka i redove sa podacima.
Table Design - kreiranje strukture tabele (Design View). Na ovaj
nain korisnik pre unoenja bilo kakvih podataka odluuje o strukturi
(dizajnu) tabele - nazivi i tipovi kolona, razne vrste ogranienja tj.
kontrole pri unoenju podataka, kao i neke olakice za unos ili izme-
nu podataka.
SharePoint Lists - liste korisnika, zadataka, problema, dogaaja itd.
Postoji jo naina za kreiranje tabela u Accessu. Jedan od ee ko-
rienih je i uvoz iz razliitih izvora podataka (kartica External Data, deo Im-
port & Link). Ukoliko se odluimo za opciju povezivanja (Link), to znai da e
tabela zapravo ukazivati na originalne podatke, a ne da e, kao kod uvoza
(Import) sadrati kopiju podataka.
Odaberimo drugu opciju (Table design) da bi mogli uspeno da pratimo
sve faze u radu, to u radu sa ablonima (template) nije uvek mogue. Otva-
ra se prozor sa dva okna (slika 3.5.) za definisanje polja i svojstava polja:

Okno za
definisanje imena polja
i tipa podatka
(definisanje atributa)

Okno za opis
svojstava polja - opis
atributa

Slika 3.5 Kolone (atributi, polja, engl. fields) tabele definiemo pre svega preko
njihovih imena i tipova, ali i ostalih svojstava (Field Properties deo)

Field name (ime atributa),

18 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Data type (tip podatka) ,


Description (opis atributa) , i
Field Properties (osobine polja) .
Field name (ime atributa) - imena atributa u buduoj tabeli. Ime atribu-
ta (ili ime polja) ne sme biti ni jedna od kljunih rei programskog paketa
SQL i mora poinjati slovom engleskog alfabeta. Od specijalnih znakova
moe sadrati samo znak podvueno _, a takoe je mogue nazvati polje
imenom koje sadri razmaknicu (space karaktere). U sluaju upotrebe ra-
zmaknice u imenu polja, prilikom izrade upita, moramo navoditi ime polja u
uglastim zagradama [ ]. Duina imena ograniena je na 40 karaktera.

NAPOMENA: Upotreba YU karaktera (,,,,) u imenima atributa


(i uopte, imenima objekata baze podataka) je mogua, ali se ne preporuuje.
Ipak, podaci u tabelama bi trebalo da budu u originalnom obliku - sa "naim" slo-
vima. Ovde treba imati na umu da pri pretraivanju ovakvih rei ili reenica nije
svejedno da li koristimo npr. "", "" ili "C". Konkretno, ako traimo "Petrovic" me-
u prezimenima zaposlenih koje smo stavljali u bazu sa "naim" slovima - "Petro-
vi" nee biti pronaen.
U jednoj bazi podataka moe postojati vie atributa sa istim imenom, ali
oni ne smeju pri tome biti u istoj relaciji (tabeli). Preporuljivo je ovu opciju
(ista imena atributa u raznim tabelama), radi preglednosti i eliminacije grea-
ka, izbegavati kad god je to mogue, sem kada se radi o atributima za spa-
janje (spoljanji kljuevi).
Data type (tip podatka) - tip podatka koji e poprimiti ti atributi. Access
podrava sledee tipove podataka:

Text (slovni ili znakovni tip), koristi se kada podatak predstavlja niz
alfanumerikih znakova. Takav podatak je na primer ime i prezime,
adresa ili zanimanje radnika, broj telefona (sadri karaktere kao to
su "/" i "-" tako da ne moemo koristiti tip Number) itd. Slovni ili string
podatak moe biti svaki niz alfanumerikih i nekih od specijalnih zna-
kova. Broj znakova kod ovog tipa podatka je ogranien na 255.
Memo tip, je u principu slovni (alfanumeriki) tip, ali sa veom dui-
nom (na primer do 64 KB) a koristi se za unoenje opisnih podataka
(dijagnoza ili anamneza pacijenta, na primer). Ovakvi podaci se ne
mogu indeksirati, niti biti polja za primarni klju. Memo tip podataka
ima do 65 535 znakova.
Number (brojni tip), na primer visina linog dohotka ili duina neke
ulice, moe slino kao i u drugim programskim jezicima, da bude ce-
lobrojan (Byte, ako je duina 8 bita, Integer, ako je duina 16 bita i
Long Integer, sa duinom od 32 bita), ali i realan broj sa fiksnom ili
pominom decimalnom takom razne preciznosti koja zavisi od dui-

Sistem za upravljanje bazama podataka 19


MS Access

ne, to jest broja cifara. Tako je tip podataka Single realan broj do 7
dekadnih cifara, odnosno Double duine do 15 dekadnih cifara.
AutoNumber je numerika (Long Integer) vrednost, koju MS Access
automatski inkrementira za svaki novi zapis koji se doda u tabelu.
Pogodan je za primarni klju.
Date/Time (datumski i vremenski) tip podatka esto se koristi u in-
formacionim sistemima, jer je itav niz podataka vezan za vreme, za
neke rokove, bez obzira da li su iskazani danima, mesecima i godi-
nama ili satima, minutima i sekundama.
Date (datumski tip) je jedna celina, jedan podatak, iako u sebi sadri
tri numerika polja (za dan, mesec i godinu), meusobno odvojena
takom, crtom ili kosom crtom, a to zavisi od zemlje u kojoj e se
koristi. Za ovakav tip podatka vai i posebna aritmetika koja omogu-
ava korisniku da rauna vremenske intervale.
Time je vremenski tip podatka za koji vae ista pravila kao i za da-
tumski, s tim to se koriste razliiti postupci za obradu zasnovani na
razliitim aritmetikama: jedna aritmetika za datumski tip, a druga za
vremenski, jer godina ima 12 meseci, a mesec 28 (29), 30 ili 31 dan,
dok je za sat, minut i sekundu taj odnos 24:60:60, pa se i odgovara-
jue aritmetike shodno tome moraju razlikovati.
Yes/No (logiki tip), predstavlja podatak koji se koristi kod atributa
kod kojih je domen ogranien na dve vrednosti.
Currency je numeriki tip fiksnog formata sa etiri decimalna mesta.
Koristi se za atribute koji izraavaju novane vrednosti.
OLE objekti slue za uvanje podataka - dokumenata kao to su MS
Word ili MS Excel dokumenti, slike, zvuk i ostali tipovi binarnih poda-
taka kreiranih u drugim programima. OLE objekti mogu biti povezani
(linked) ili ugraeni (embeded) u polje Microsoft Access tabele. OLE
tip se ne moe proglasiti za polje kljua, niti ga moemo ukljuiti u in-
deks.
Hyperlink - polja hiperveza uvaju adrese HTML dokumenata
(HyperText Markup Language). Web adresa koja se uva u hyperlink
polju moe da se odnosi na neku Web stranicu na Internetu, ili na
stranicu koja se uva lokalno na raunaru ili mrei. Izbor miem polja
Hyperlink prouzrokuje pokretanje Web pretraivaa (browser) i pri-
kazivanje Web strane na koju smo se pozvali. Da bismo dobili novu
adresu hiperveze, treba izabrati komandu Insert - Hyperlink.
Attachment - daje nam mogunost da u bazu stavimo neki fajl direk-
tno, ne samo njegovo ime ili lokaciju. Jedan red u attachment polju
moe sadrati i vie ubaenih (ugraenih) fajlova. Mogunost direkt-
nog ubacivanja datoteka u bazu je vrlo korisna i laka za korienje,

20 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

ali se u ozbiljnijim bazama sa veim tabelama i veim brojem datote-


ka ee pamti samo lokacija i ime (u polju tipa Text) dok je sam fajl
van baze u nekom odreenom folderu.
Calculated - izraunate vrednosti. Ovo moe biti korisno za prikazi-
vanje podataka koji se mogu izraunati na osnovu vrednosti drugih
polja u redu. Na primer, [kolicina] * [cena] za izraunavanje vrednosti
neke stavke u raunu ili prikazivanje plate koja se izraunava na os-
novu neke osnovice, koeficijenta, bonusa i sl. U principu polja koja se
mogu izraunati na osnovu nekih drugih ne bi trebalo stavljati u tabe-
lu uopte. Iz ovog razloga, a i zbog jo nekih problema koji se mogu
pojaviti pri radu sa ovim tipom podataka mi ga neemo dalje koristiti
u ovoj knjizi.
Konano, u tehnici definisanja podataka postoji i pomenuti sluaj ne-
postojeeg podatka, kada vrednost podatka (odreenog tipa) nije
poznata, ili nije nastupio momenat njegovog prisustva u bazi, a koji u
drugim programskim jezicima nije poznat, to je takozvana Null-
vrednost. Access doputa svakom podatku (sem primarnog kljua ili
u kolonama oznaenim sa Required - true) da ima i nepostojeu,
Null-vrednost.
Description (opis atributa), moemo pisati na bilo kome jeziku (pa i
naem), jer taj podatak ne uestvuje kasnije u obradi, nego nam slui isklju-
ivo da u sloenijim bazama podataka znamo ta smo prilikom kreiranja ta-
bele zamislili. Iako ne treba previe skraivati imena atributa, vrlo esto se u
bazama podataka kao i u programiranju koriste neto krai oblici naziva atri-
buta. Opis u ovim sluajevima moe doprineti brem i tanijem razumevanju
konkretnog atributa i njegove uloge u tabeli tj. bazi.

Primer izrade tabela


U sledeem primeru moemo videti kako se jednostavno pomou Ac-
cessa kreira nova tabela.
Tok formiranja nove baze podataka prikazan je na konkretnom primeru
predloenog relacionog modela preduzea koji je jednostavan i u kome se
nalaze samo etiri tabele:
RADNIK <idbr#,kvalif, ime, posao, rukovodilac, dat_zap, premija, plata, brod$>
ODELJENJE <brod#, naziv, mesto>
PROJEKAT <brproj#, imeproj, sredstva>
UEE <idbr#, brproj#, brojsati, funkcija>

1. Na Create kartici, u odeljku Tables kliknuemo na dugme Table Design


da bismo napravili jednu tabelu. Pretpostavimo da u informacionom sis-
temu nekog preduzea treba kreirati tabelu RADNIK, u kojoj bi se nalazili
podaci o kvalifikaciji, imenu radnika, poslu koji obavlja, njegovom ruko-
vodiocu, datumu zaposlenja, premiji i plati.

Sistem za upravljanje bazama podataka 21


MS Access

Tabelu RADNIK kreiramo tako da ima pomenute atribute:


RADNIK (idbr# [1] INTEGER,
kvalif TEXT(3),
ime TEXT(25) NOT NULL,
posao TEXT(10),
rukovodilac INTEGER,
dat_zap DATE,
premija DOUBLE,
plata SINGLE);

a kao rezultat dobijamo relaciju:

RADNIK <idbr#,kvalif, ime, posao, rukovodilac, dat_zap, premija, plata>

u kojoj atributi idbr# (ifra, identifikacioni broj radnika) i ime ne mogu imati
vrednosti Null.

2. Zatvoriti prozor za kreiranje tabela klikom na alatku . Access alje


upozorenje i pita da li elite da sauvate izmene napravljene u tabeli, ko-
ju privremeno zove Table1, jer joj jo nije dato ime. Pritisnemo dugme
da (Yes), i Access sada nudi naravno imena tipa Table1, Table 2 i sl.
Nazovimo tabelu RADNIK, i kliknimo na dugme da (Yes).

3. Access alje poruku, upozorenje da tabela nema primarni klju, i nudi


pomo, predlae da on kreira primarni klju kao jedno polje tipa auto-
number. Pritisnite dugme ne (No), jer za sada treba ostaviti tabele bez
primarnog kljua.

4. Za potpuniju informaciju o preduzeu sem tabele RADNIK potrebno je


kreirati i tabelu ODELJENJE, koja opisuje organizaciju preduzea i tabe-
lu PROJEKAT, koja sadri informacije o poslovima kojima se preduzee
trenutno bavi:
ODELJENJE (brod# INTEGER NOT NULL,
ime_od TEXT(15) NOT NULL,
mesto TEXT(20));

u kojoj atributi brod# (ifra odeljenja) i ime_od ne mogu imati vrednosti Null,
PROJEKAT (brproj# INTEGER NOT NULL,
imeproj TEXT(25) NOT NULL,
sredstva INTEGER);
u kojoj atributi brproj# (ifra projekta) i imeproj ne mogu imati vrednosti
Null.

[1]
Znak # je upotrebljen u ovom praktikumu kao oznaka da je dati atribut primarni klju,
inae nije implementiran u sintaksu SQL jezika. Ne treba ga pisati u Accessu.

22 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Obratimo panju na neke injenice koje su implicitno sadrane u ovak-


voj definiciji tabele RADNIK. Ona sadri u sebi i neke relacije izmeu pojedi-
nih radnika unarne veze (neki radnici istovremeno su rukovodioci nekim
drugim radnicima).

Za opis organizacije preduzea i njegovog poslovanja izmeu pojedinih


entiteta - tabela moraju se uspostaviti odreene veze, tj. relacije. Treba da
bude ostvarena i jedna relacija entiteta radnik sa entitetom odeljenje bi-
narna veza tabele RADNIK sa tabelom ODELJENJE, jer radnici su zaposleni
u nekom od odeljenja koja se nalaze u sastavu preduzea. Pri tome jedan
radnik pripada samo jednom odeljenju, a u jednom odeljenju radi vie radni-
ka.

Ovo je veza tipa 1:N (jedan prema vie), a ostvaruje se tako to se u ta-
beli RADNIK na strani vie (vie radnika) uvodi kao atribut spoljanji (strani)
klju brod$ koji predstavlja primarni klju u tabeli ODELJENJE. Kako neki
radnici ne moraju trenutno biti rasporeeni ni u jedno odeljenje, ova veza je
opcionalna na strani entiteta (tabele) RADNIK. Zbog toga atribut za vezu
(strani klju) u ovoj tabeli moe imati Null-vrednost. Tako tabela RADNIK
stvarno ima sledei izgled:

RADNIK <idbr#,kvalif, ime, posao, rukovodilac, dat_zap, premija, plata, brod$[1] >

5. Kliknuti na objekat tabele, pa izabrati tabelu RADNIK, i otvoriti je u rei-


mu projektovanja (alatka Design).

6. Dodati novi atribut brod$, i dati mu ista svojstva koja ima istoimeni atribut
u tabeli ODELJENJE.

7. Zatvoriti prozor za projektovanje tabela na nain kako je to opisano u ko-


racima 2. i 3. (sauvati izmene, bez primarnog kljua).

Ali, svi radnici rade na nekim konkretnim poslovima, projektima i pri to-
me jedan radnik moe raditi na vie projekata, a istovremeno na jednom pro-
jektu radi vie radnika. Dakle ovo je relacija M:N (vie prema vie). Da bismo
ostvarili ovu relaciju izmeu dva entiteta treba kreirati novu tabelu, nazovimo
je UEE, koja ima sloeni primarni klju (idbr#,brproj#) koji sainjavaju
primarni kljuevi iz tabela RADNIK (idbr#) i PROJEKAT (brproj#).

8. Na nain kako je to opisano u prethodnim koracima kreirati tabelu


UEE, takoe bez definisanja primarnog kljua, i zatvoriti prozor za
projektovanje tabela.

[1]
Znak $ je upotrebljen u ovom udbeniku kao naznaka da je dati atribut spoljnji klju,
inae nije implementiran u sintaksu SQL jezika.

Sistem za upravljanje bazama podataka 23


MS Access

UEE [1](idbr# INTEGER NOT NULL,


brproj# INTEGER NOT NULL,
brojsati BYTE,
funkcija TEXT(15));

Izgled tabela kreiranih u Accessu na osnovu prethodno opisanih primera,


moe se videti ako izaberemo neku od tabela i onda kliknemo na alatku ot-
vori Open, ili dvostrukim klikom na tabelu. Izgled je prikazan na slikama 3.6.
i 3.7. Naravno, podaci jo uvek nisu uneti.

Slika 3.6 Baza podataka PREDUZECE (tabela RADNIK)

[1]
Ako je strani, spoljnji klju deo sloenog primarnog kljua onda emo i njega oznaiti
znakom # kao to je to uinjeno u tabeli UEE.

24 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Slika 3.7 Baza podataka PREDUZECE (tabele ODELJENJE, PROJEKAT i


UEE)

Definisanje dodatnih svojstava atributa


Za svaki od atributa mogu se definisati dodatna svojstva, u zavisnosti
koja je uloga atributa u tabeli (primarni klju, obavezan, moe imati Null-
vrednost, itd.) i koji je tip podatka u pitanju.

1. Otvorimo bazu podataka PREDUZEE (slika 3.8. a), izaberemo tabelu


RADNIK, i otvorimo je u reimu projektovanja (desni klik na naziv tabele,
Design View), (slika 3.8. b). U donjem oknu svojstva polja Field Proper-
ties postoje dve kartice: opta svojstva (General) i posebna u smislu
domena podatka (spoljnji klju moe imati samo one vrednosti koje pos-

Sistem za upravljanje bazama podataka 25


MS Access

toje u tabeli u kojoj je on primarni klju) ili objekta u kojem e biti prika-
zan (kartica Lookup).
Na prvoj kartici General podeavamo svojstva polja za odreeni tip po-
datka:
veliina polja (Field Size),
formatiranje (Format),

a) baza podataka PREDUZEE sadri etiri tabele

26 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

b) izbor atributa i njihovih svojstava u tabeli RADNIK


Slika 3.8 Podeavanje svojstava atributa

ulazna maska (Input Mask), za unos podataka u unapred de-


finisanom i proverenom formatu (na primer elimo da datumi imaju
izgled: 26-jun-1976; Medium Date), pridrueni tekst,
Caption (natpis, pridrueni naslov), koji se pojavljuje umesto imena
polja u rezultatima upita, obrascima i izvetajima,
Default Value (podrazumevana vrednost), koja se automatski upisu-
je ukoliko ne unesemo nijednu drugu,
Validation Rule (pravila ispravnosti), odnosno domen atributa (skup
dozvoljenih vrednosti). Ova polja omoguavaju proveru ispravnosti
podataka, tj. proveru integriteta domena pri unosu i auriranju poda-
taka, ime se poveava zatita podataka,
Validation Text (tekst poruke), koji se ispisuje u sluaju unosa neis-
pravnih podataka koji ne zadovoljavaju kriterijume zadate u Validati-
on Rule,
Required (obavezno), slui za definisanje polja koja ne mogu imati
vrednost Null. Za atribute koji su primarni klju nije bitno ta stoji u

Sistem za upravljanje bazama podataka 27


MS Access

ovom podeavanju jer oni u svakom sluaju ne mogu imati vrednost


Null,
Indexed (indeksirano polje), postavlja indeks na atribut (samo je pri-
marni klju uvek indeksiran - podrazumevana vrednost). Ova opcija
ima mogunost No Duplicates, znai ne dozvoljava ponavljanje istih
vrednosti, i podrazumeva se kod primarnog kljua. Opcija Duplicates
OK, dozvoljava duplirane vrednosti i moe se primeniti kod atributa
koji se indeksiraju, a nisu primarni klju,
Decimal Places (decimalna mesta), odreuje tanost, Precision
(preciznost), definie ukupan broj cifara za tip podatka decimal, Sca-
le (skaliranje), definie broj cifara sa desne strane decimalne take, i
Allow Zero Length (dozvoljena je duina nula) to treba razlikovati
od Null koja oznaava da polje nema vrednost. Atribut koji ima oso-
binu Allow Zero Length moe biti string duine nula , tj. prazan niz
znakova (string). Ako elimo da se neka tekstualna vrednost uvek
upisuje u tabelu, dobra praksa je da Required svojstvo postavimo na
Yes, a Allow Zero Length na No. Ovo smanjuje mogunost zabune
koja moe nastati usled razlikovanja praznog stringa i nepostojee
(Null) vrednosti od strane baze i nemogunosti pravljenja ove razlike
od strane krajnjeg korisnika.
Primarni klju podrazumevano ima vrednost svojstva Required Yes i
svojstvo Indexed mora biti Yes (No Duplicates).

Za svaki atribut biramo tip podatka i definiemo posebna svojstva, za neke


atribute (koji imaju mali prebrojiv skup vrednosti), poeljno je definisati svojs-
tva provere ispravnosti i tekst poruke u sluaju unosa pogrenog podatka.

Svojstvo provere ispravnosti (validation rule) daje implicitno mogu-


nost definisanja sopstvenih domena za pojedine atribute, drugim reima ko-
risnikih tipova podataka. Ovo je u stvari simulacija domena koji se kod sna-
nijih RDBMS-a kao to su Oracle ili SQL Server zaista i mogu kreirati. Nai-
me, za atribut kvalif moemo definisati skup dozvoljenih vrednosti (KV, VKV i
VSS) i ako se unese neka vrednost RDBMS Access ispisuje poruku: uneli
ste neispravan podatak za kvalifikaciju tj. tekst koji je definisan u svojstvu
Validation Text. Na slici 3.9. prikazana je upotreba ova dva svojstva.

28 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Slika 3.9 Upotreba svojstva Validation Rule i Validation Text

PRIMER 1: Za atribut KVALIF tabele RADNIK postaviti vrednosti


KV OR VKV OR VSS u polje Validation Rule. U
polje Validation Text upiite tekst uneli ste neispravan
podatak za kvalifikaciju, koji se pojavljuje u sluaju po-
grenog unosa podataka u polje KVALIF.

1. Obeleite (selektujte) tabelu RADNIK, otvorite prozor za kreiranje tabela


(desni klik, Design View).
2. U zadata polja unesite tekst dat u prethodnom primeru (primer 1.).
3. Zatvorite prozor za kreiranje tabela, naravno sauvajte napravljene iz-
mene (pritisnite dugme Yes), a zatim kliknite dvaput na tabelu radnik.
4. Otvorie se tabelarni prikaz (Datasheet View). Unesite podatke za rad-
nika Petra, a u polje kvalifikacija ukucajte vrednost NK.
5. Naravno, Access nije dozvolio unos neispravnog podatka, koji ne pripa-
da skupu dozvoljenih vrednosti, i korisniku je poslao odgovarajuu poru-
ku.
6. Ukucajte vrednost KV, sada e podatak biti prihvaen i upisan u polje.
7. Zatvorite prozor sa tabelarnim prikazom (kliknite na ). Uoite da nije
bilo nikakvih obavetenja! Access bez ikakvih dodatnih koraka sve pro-
mene u tabelarnom reimu (ako su podaci ispravni) odmah trajno preno-
si u bazu!
Vrlo korisna opcija je takozvana ulazna maska (Input Mask) koja olak-
ava unos podataka koji moraju imati odreeni izgled, kao to je to na primer
datum ili neka tekstualna polja. Ulazna maska ne postoji za numerike poda-
tke, oni koriste decimalna mesta za olakavanje unosa. Za datumsko polje

Sistem za upravljanje bazama podataka 29


MS Access

vrlo je korisno prokazati ulaznu masku, a ona mora biti saglasna sa vred-
nou koja je izabrana u polju veliina polja (Field Size). Access ima veliki
broj unapred definisanih maski za tekstualne podatke kao to su: telefonski
brojevi, brojevi socijalnog osiguranja, lozinke, razni formati za datume itd.,
(slika 3.10).

PRIMER 2: Postavite u tabeli RADNIK za polje DATZAP (datum za-


poslenja) veliinu polja i ulaznu masku vrednost Short
Date. Za polje DATZAP postavite odgovarajuu ulaznu
masku Short Date.
1. Otvorite tabelu RADNIK u reimu projektovanja.
2. Kliknite na polje DATZAP, a zatim u kartici opta svojstva (General) iza-
berite svojstvo ulazna maska (Input Mask) i kliknite na ().
3. Otvorie se prozor za izbor ulazne maske (slika 3.10), u kome treba iza-
brati opciju Short Date.
4. Otvorite tabelu u tabelarnom prikazu. Datum zaposlenja e biti prikazan
u formatu dd.mm.gggg (npr. 17.12.1990), a ne kao 17-dec-1990.

Slika 3.10 Access omoguava korisniku da bira ulaznu masku za svoje podatke

Kartica Lookup prua velike mogunosti u pogledu unosa i provere is-


pravnosti podataka, ali i u automatskom generisanju formi preko arobnja-
ka. Naravno, to se posebno dobro moe iskoristiti kod spoljanjih kljueva u
tabelama. Tako recimo u tabeli RADNIK atribut broj odeljenja brod$ je spo-
ljanji klju, dakle to je ujedno primarni klju u nekoj drugoj tabeli (u ovom
sluaju u tabeli ODELJENJE). Dakle podatak u ovom polju tabele RADNIK
potie iz tabele ODELJENJE.

30 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

PRIMER 3: Podesiti opciju Lookup atributa BROD tabele RADNIK


tako da je mogu izbor broja odeljenja samo iz skupa
vrednosti koje postoje u tabeli ODELJENJE. U ponue-
nim opcijama prikazati samo prvu kolonu te tabele (tj.
samo atribut BROD tabele ODELJENJE).

1. Otvorimo tabelu RADNIK u reimu projektovanja i izaberemo polje


brod$, a zatim na kartici Lookup izaberemo da to bude objekat tipa pada-
jua lista - Combo Box, slika 3.11.
2. U svojstvu vrsta izvora reda, poreklo reda (Row Source Type) izabere-
mo da podatak potie iz tabele ili upita (Table/Query), a da je izvor reda
(Row Source) tabela ODELJENJE.
3. Poto je brod# (primarni klju) u tabeli ODELJENJE prvi atribut, izabe-
remo da je kolona za koju se vezujemo 1 (Bound Column), a kako nam
treba samo jedna kolona u broj kolona upiimo takoe 1 (Column Count
je 1). Ovo je korisno zbog toga to prilikom unosa podataka o radniku
moemo uneti samo broj odeljenja koje postoji.

Slika 3.11 Podatak u polju RADNIK.brod$ potie iz tabele ODELJENJE

4. Zatvorite prozor za kreiranje tabela, kliknite na tabelu RADNIK, a zatim


kliknite na alatku otvori Open. Ponovo se na ekranu pojavio tabelarni
prikaz. Kliknite na polje brod$ zapisa o jedinom unetom radniku, otvara
se padajua lista sa brojevima odeljenja, slika 3.12.

Sistem za upravljanje bazama podataka 31


MS Access

5. Zatvorite tabelarni prikaz i ponovo otvorite tabelu radnik u reimu projek-


tovanja (kliknemo na tabelu RADNIK, pa na alatku oblikovanje Design).
6. Izaberite atribut brod$, pa ponovite prethodno opisani postupak za izbor
vrste izvora reda, samo u polju broj kolona postavite 2 (Column Count
je 2).
7. Ponovite postupak iz koraka 4. i uoite da je sada u listi sem broja ode-
ljenja i njegov naziv, ali se u polje prenosi samo broj odeljenja, tj. kolona
za koju se vezuje podatak je pod rednim brojem 1 (Bound Column je i
dalje 1).
8. Da bi se ponueni podaci u listi (broj i naziv odeljenja) lepo videli tj. bez
horizontalnog skrol bara, potrebno je podesiti svojstva Column Widths i
List Width (irine kolona i ukupna irina liste). Ove vrednosti e biti izra-
ene u centimetrima ili inima (1 in = 2.54cm) u zavisnosti od regional-
nih i jezikih podeavanja u operativnom sistemu. irine kolona se me-
usobno razdvajaju takom-zarezom.

Slika 3.12 Poto je izvor podatka neka tabela u padajuoj listi se nude samo pos-
tojee vrednosti u tabeli pa je unos podataka brz, a podaci su uvek ispravni

Zadavanje imena i zavretak procesa kreiranja tabela


Formiranje tabele zavravamo komandom Save, upisivanjem imena ta-
bele, ili komandom Close. U oba sluaja Access trai da tabeli damo ime.
Isti postupak treba ponoviti i za sve tabele.
Postoji i druga mogunost. Dovoljno je pokuati zatvaranje radnog pro-
zora (kliknemo na ikonicu u desnom uglu prozora za kreiranje tabela) pa
da se automatski pokrene procedura pamenja. Naime, Access postavlja
pitanje da li elimo da sauvamo uraene izmene. Ovo je ujedno i zatita od
sluajnog zatvaranja prozora za kreiranje tabela.

32 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Ukoliko nije definisan primarni klju tabele (a do sada nije) Access e


poslati odgovarajue upozorenje i ponuditi da on doda primarni klju - jedan
atribut tipa Autonumber. Naravno neemo prihvatiti ponuenu opciju, izab-
raemo No. Primarni klju se moe i naknadno kreirati. Ako izaberemo Yes,
Access e kreirati klju i dati mu ime ID (identifikator).

Izbor primarnog kljua


1. Otvorimo sada svaku od kreiranih tabela u reimu projektovanja Design.
2. Otvara se isti prozor kao onaj u kome smo kreirali tabelu (slika 3.5). Iza-
beremo atribut (na primer, idbr# u tabeli RADNIK) ili atrubute (idbr# i brp-
roj# u tabeli UEE koja ima sloeni klju) koji e biti proglaeni za
primarni klju i izaberemo alatku sa nacrtanim kljuem Primary Key.
Nakon toga ce se u polju ispred tog atributa pojaviti grafika oznaka za
klju .
3. Uoite da se svojstvo Indexed automatski promenilo na Yes (No Duplica-
te). Tabela je uvek indeksirana po primarnom kljuu.
4. Ukoliko se ne moemo odluiti koji od atributa treba da bude kljuni, iz-
borom tipa podatka (Data Type) kao AutoNumber, MS Access dodaje u
tabelu jo jedan atribut koji smatra kljuem. Vrednost toga atributa se u
toku rada kreira automatski, pa je korisnik ne moe po svom nahoenju
menjati.
5. Zatvorite prozor za projektovanje (i sauvajte izmene), a zatim otvorite
tabelu RADNIK u tabelarnom prikazu i unesite podatke o radniku ije je
ime Aco, ali nemojte uneti idbr#.
6. Zatvorite tabelarni prikaz. Naravno - nije uspelo jer indeks ili polje pri-
marnog kljua ne moe sadrati Null-vrednost (mora biti definisano).
Unesite idbr#: 5367 i zatvorite tabelu.
Primarni klju treba definisati pre unosa podataka, jer on mora biti jedin-
stven, tj. ne mogu postojati dve vrste sa istim kljuem. Kod naknadnog defi-
nisanja primarnog kljua (kada u tabeli ve postoje podaci) moe doi do
problema zbog mogue pojave istih vrednosti u polju kljua.
Od ovog pravila se naravno moe, i mora, odstupiti kada se podaci
preuzimaju iz nekog spoljnjeg izvora, kao to su Excel tabele. Kako
ove tabele nemaju ugraene mehanizme za zatitu integriteta (ni
primarne kljueve), to se u njima mogu pojaviti identine n-torke
(duplikati). U sluaju da podatke prenosimo u tabelu koja ima defini-
san primarni klju ovakve n-torke ne bi bile preuzete. Zato se ovakvi
podaci najpre preuzmu u tabelu bez primarnog kljua. Zatim se po-
mou specijalnog tipa upita, tanije arobnjaka koji pronalazi dupli-
kate (Find Duplicates Query Wizard), izdvoje duplirani zapisi (zapisi
sa istim kandidatom za primarni klju), izvri se potrebna analiza
(otkrije uzrok pojave duplikata) i isprave mogue greke.

Sistem za upravljanje bazama podataka 33


MS Access

Primarnom kljuu uvek je pridruen indeks koji znatno ubrzava pretrai-


vanje tabele, tj. izvravanje upita.
Kada se dodaju novi zapisi polje primarnog kljua ne moe ostati nepo-
punjeno, tj. primarni klju ne moe imati Null vrednost, a takoe nee dopus-
titi unos zapisa sa istom vrednou primarnog kljua jer on se ne moe du-
plirati (mora biti jedinstven).

Zadatak za samostalan rad


3.4. Kreirati primarni klju za sve etiri tabele baze PREDUZEE.

Preuzimanje tabela i povezivanje sa postojeim


tabelama

Preuzimanje tabela
U radu sa bazama podataka, esto dolazimo u situaciju kada je potreb-
no preuzeti strukturu neke ve postojee tabele (sa ili bez podataka) iz dru-
ge baze podataka. Svi podaci koje raunar moe da organizuje u obliku ta-
bele, pa ak i tabele u datotekama za obradu teksta, mogu da se konvertuju
u tabele baze podataka. Jedna od mogunosti Accessa je i transformisanje
postojeih tabela baza podataka, radnih tabela i tekstualnih datoteka nap-
ravljenih u drugim Windows aplikacijama u Accessov .accdb format. Ovaj
postupak preuzimanja poznat je kao uvoz (Import)).

PRIMER 4: U bazi podataka MojaPrvaBaza.accdb preuzeti tabele


RADNIK i UCESCE iz baze podataka
PREDUZECE.accdb.

1. Otvoriti bazu podataka MojaPrvaBaza.


2. Kako elimo da uvezemo (import) podatke iz druge Access baze, odab-
raemo External Data karticu i u delu Import & Link kliknuti na Access
(slika 3.13).
3. Pojavie se prozor Get External Data - Access Database u kome treba
izabrati fajl iz koga elimo da preuzmemo tabele. Kada na disku prona-
emo eljeni fajl (u naem primeru PREDUZECE.accdb), selektujemo
ga i pritisnemo dugme OK (slika 3.14).

34 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Slika 3.13 Poetni korak preuzimanja tabele

4. Pojavie se prozor Import objects u kome moemo izabrati objekte


baze podataka koje elimo da preuzmemo. Obzirom da elimo samo ta-
bele, izabraemo karticu Tables, u kojoj e biti prikazane sve tabele
koje nam stoje na raspolaganju. Pritiskom na dugme Options omogu-
avamo izbor dodatnih opcija preuzimanja tabela. Izabraemo opciju
Definition and data, koja nam omoguava da preuzmemo i strukturu
podataka i podatke. Takoe emo izabrati, ekirati opciju Rela-
tionships koja nam omoguava da preuzmemo i relacije koje su defini-
sane izmeu tabela koje elimo da preuzmemo (slika 3.14). Se-
lektovaemo tabele ODELJENJE i RADNIK. Kada izaberemo sve potre-
bne tabele, pritisnuemo dugme OK i Access e zapoeti proces preu-
zimanja tabela.

Slika 3.14 Selektovanje tabela koje elimo da uvezemo importujemo

Sistem za upravljanje bazama podataka 35


MS Access

5. Nakon ovog postupka u prozoru Database baze podataka MojaPrva-


Baza pojavie se preuzete tabele RADNIK i ODELJENJE (slika 3.15).
Naravno, na slici 3.15 nee postojati tabele PROJEKAT i UEE, jer
su samo dve tabele uvezene. Preuzete tabele su prikazane identino
kao i fizike tabele (slika 3.8 a)), jer to u stvari i jesu (duplikati tabela iz
baze preduzee).

Slika 3.15 Izgled preuzetih i povezanih tabela u prozoru Database

Povezivanje sa postojeim tabelama


Access takoe ima mogunost povezivanja (linkovanja) tabela iz datote-
ke baze podataka koja je napravljena u Accessu ili nekom drugom RDBMS-
u sa aktivnom bazom podataka u Accessu. Ova opcija je od znaaja kada u
Accessu projektujemo samo aplikacioni deo, a izvor podataka se nalazi na
serveru i obino mu pristupa vie korisnika odjednom.
PRIMER 5: U bazi podataka MojaPrvaBaza.accdb povezati tabele
UCESCE i PROJEKAT iz baze PREDUZECE.accdb.

Povezivanje tabela je slino njihovom preuzimanju. Da bismo povezali tabe-


le odabraemo External Data karticu i u delu Import & Link kliknuti na Ac-
cess (slika 3.13), a zatim:
1. u drugom koraku umesto opcije Import treba izabrati opciju povezati
tabele (Link to the data source by creating a linked table),
2. u treem koraku ne postoji mogunost izbora dodatnih opcija jer se samo
tabele mogu linkovati ali ne i upiti, forme itd.,
3. po zavretku ovog procesa, pogled na tabele u naoj bazi imae izgled
kao na slici 3.15,
4. moemo uoiti da pored tabela koje nisu fiziki preuzete, ve samo po-
vezane, postoji strelica (tabele PROJEKAT i UEE). Ove tabele ne
postoje u bazi podataka MojaPrvaBaza.accdb ve se koriste originalni
podaci iz baze podataka preduzee,

36 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

5. otvorite uvezenu tabelu RADNIK u tabelarnom prikazu i radniku sa ime-


nom Jovan promenite ime u Jovo,
6. otvorite povezanu tabelu PROJEKAT u tabelarnom prikazu i projektu
plasman promenite ime u prodaja,
7. sada otvorite bazu podataka PREDUZEE i otvorite tabelarni prikaz ta-
bele RADNIK. Uoiete da u njoj i dalje postoji radnik sa imenom Jovan.
To je trebalo i oekivati jer je promena imena uraena u uvezenoj kopiji
tabele, a original je ostao nepromenjen,
8. otvorite tabelarni prikaz tabele PROJEKAT. Uoiete da u njoj vie ne
postoji projekat sa imenom plasman. To je takoe trebalo i oekivati jer
je promena imena uraena u povezanoj, originalnoj tabeli,
9. sada u tabeli PROJEKAT (u bazi preduzee.accdb) promenite ime pro-
daja u plasman. Kako je baza MojaPrvaBaza.accdb jo uvek otvorena,
otvorite tabelu PROJEKAT u tabelarnom prikazu. Uoiete da je ime ve
promenjeno, jer ova tabela je virtuelna i podaci postoje samo u tabeli
PROJEKAT u bazi preduzee.accdb.

Unos podataka
Da bismo otvorili tabelu za unos podataka, u prostoru za objekte baze
(slika 3.16) potrebno je dvaput kliknuti na odgovarajuu tabelu. Drugi nain
je da se izabere odgovarajua tabela, a zatim izaberemo dugme otvori
(Open, ).
Na ekranu se pojavljuje formular za unos podataka, odnosno pojavljuje
se tabelarni prikaz (Datasheet) sa imenovanim poljima u koja se direktno
unose podaci. Podaci se unose u pripremljena polja vodei rauna o tipu
podataka. U tabelarnom prikazu su ve popunjeni redovi (n-torke, zapisi) sa
postojeim podacima i na kraju postoji jedan prazan red u koji se mogu uno-
siti podaci (novi zapis).
Ako pogreimo i unesemo podatak koji nije odgovarajueg tipa (tekst
umesto broja) ili ne zadovoljava postavljena ogranienja biemo upozoreni
na greku, koju moemo popraviti. Ukoliko smo u polju Validation Text upi-
sali odgovarajuu poruku ta poruka e biti prikazana na ekranu. Ukoliko ni-
smo sami definisali poruku sam Access e ispisati svoju, npr. The value you
entered is not valid for this field (Vrednost koju ste upisali nije prihvatljiva u
ovom polju).

Sistem za upravljanje bazama podataka 37


MS Access

Slika 3.16 Prozor MS Accessa sa kreiranim tabelama

Naravno moemo definisati dopunska, sopstvena pravila za proveru is-


pravnosti u svojstvu Validation Rule, na primer da plata mora biti vea od
minimuma propisanog zakonom (recimo 500 evra). Ako se propisi promene
onda treba promeniti vrednost ovog svojstva atributa. Za tekstualne i datum-
ske tipove podataka korisno je definisati i ulazne maske da bi olakali posao
unosa podataka.
Veliko olakanje u unosu podataka obezbeuje zadavanje podrazume-
vane vrednosti (Default Value) a za podatke koji najee imaju neku poz-
natu vrednost, na primer veina zaposlenih u preduzeu je VKV ako je ono
proizvodno, ili VSS ako je recimo projektantsko. Ova opcija je posebno po-
godna za podatke tipa datum i vreme kada treba uneti tekue, trenutne vre-
dnosti. Postupak je sledei:

1. otvorimo tabelu RADNIK u reimu projektovanja,


2. izaberemo atribut datzap, i u kartici opta svojstva (General)
kliknemo u polje podrazumevana vrednost,
3. na kraju polja pojave se tri take (...),
4. kliknemo na (...) i otvara se prozor za graenje izraza
(Expression Builder), slika 3.17,
5. izaberemo funkcije i kliknemo na znak +, pa izaberemo
ugraene funkcije (Built-In-Functions),
6. u drugom oknu izaberemo Data/Time a u treem oknu izabe-
remo funkciju Date(),
7. pritisnemo dugme OK i u polju podrazumevana vrednost je
sada upisana funkcija koja zadaje tekui datum.

38 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Slika 3.17 Osnovni prozor MS Accessa sa kreiranim tabelama

Korisne napomene kojima se ubrzava unoenje podataka:


Kod unoenja teksta ukoliko elimo da tekst bude prikazan u vie redova
treba pritisnuti kombinaciju tastera Ctrl + Enter za prelazak u novi red.
Kod unosa datuma moemo izabrati proizvoljan format i ulaznu masku.
Formati utiu samo na nain kako e podaci biti prikazani, ali ne menjaju
nain kako e podaci biti sauvani u tabeli, pa ih moemo i naknadno
menjati.
Unoenje memo podataka treba obaviti preko prozora Zoom koji se pokre-
e kombinacijom tastera Ctrl + Enter. U prozoru Zoom nalazi se dugme
Font za izbor vrste slova (Font).
OLE objekti se unose ili kopiranjem iz Clipboarda (Copy / Paste) ili umeta-
njem preko komande iz liste Insert/Object kao i u drugim Windows apli-
kacijama.

Sistem za upravljanje bazama podataka 39


MS Access

Zadatak za samostalan rad:


3.5. U sve etiri tabele uneti odgovarajue podatke date na slikama 3.6 i
3.7.

Ispravljanje greaka u projektovanju tabela


U sluaju da smo pri definisanju strukture tabele pogreili, neto zabora-
vili, ili uveli nepotreban atribut, aktiviranjem postupka za projektovanje tabele
(Design View), mogue je sve te ispravke odmah i provesti u on line modu.
Problemi se mogu javiti najee u sluaju kada se menjaju osobine
primarnih i spoljnjih kljueva, nakon to su uspostavljene relacije meu tabe-
lama. Problemi mogu nastati i kada se naknadno definiu primarni kljuevi,
jer moda meu unetim podacima postoje duplikati kljueva (n-torke sa is-
tom vrednou primarnog kljua).
Vrlo opasna (i tetna) je mogunost dodavanja, brisanja i preimenovanja
kolona direktno u tabelarnom prikazu. Promena imena vri se tako to dva-
put kliknemo na zaglavlje kolone (ime polja) i upiemo novi tekst. Nevolja je
u tome to je zaglavlje kolone upravo ime podatka koje se moda ve koristi
u nekim upitima, obrascima ili izetajima. Za dodavanje i brisanje su na ras-
polaganju komande:

Insert / Column za dodavanje kolone, i


Edit / Delete Column za brisanje kolone.

Ispravljanje greaka u unetim podacima


U sluaju da smo uneli pogrene podatke mogue je odmah ispraviti
greku. Svi podaci direktno se mogu menjati u tabelarnom prikazu sem: pri-
marnih kljueva tabela koji su u nekoj drugoj tabeli spoljnji kljuevi (inae bi
bio naruen integritet podataka), polja tipa Autonumber, izraunata polja i
zakljuana ili iskljuena polja.
Access prua nekoliko pogodnosti u ispravkama vrednosti podataka (po-
lja):

zamena postojee vrednosti podrazumevanom ostvaruje se kombi-


nacijom tastera Ctrl + Alt + space (razmak),
kombinacija tastera Ctrl + ; (taka zarez), upisuje u polje tekui da-
tum,
zamena postojee vrednosti onom koja se nalazi u istom polju pret-
hodnog zapisa kombinacijom tastera Ctrl + ' (apostrof, jednostruki
znak navoda),

40 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

pronalaenje (Find) i zamena postojeih vrednosti novim (Replace)


vri se slino kao i u drugim programima preko liste Edit ili kombi-
nacijom tastera Ctrl + F. Pojavljuje se okvir za dijalog kao na slici
3.18. U polju gledaj (Look In) odluujemo da li pretraujemo kolonu
ili celu tabelu, a u polju Match biramo da li podatak koji traimo moe
biti bilo gde u polju (Any Part of Field), celo polje (Whole Field) ili po-
etni deo polja (Start of Field),

Slika 3.18 Pronalaenje podatka ili dela podatka u tabeli ili koloni (polju)

kombinacijom tastera Ctrl i + (plus) dodaje se novi zapis,


dodavanje novih zapisa vri se u slogu ispred koga se nalazi * (zvez-
dica), ili preko komande Edit / New Record ili Edit / GoTo / New
Record. Ako izaberemo opciju Records / Data Entry sa ekrana e
se privremeno ukloniti svi zapisi dok dodajemo nove. Vraanje prika-
za zapisa na ekran vri se komandom Records / Remove Fil-
ter/Sort,
kombinacija tastera Ctrl + - (crtica) brie tekui zapis,
brisanje izabranog, selektovanog zapisa moe se uraditi tasterom
Delete ili komandom Edit / Delete Record. Ali, kao i uvek kada bri-
ete sistem e vas upozoriti i dati vam priliku da odustanete ako ste
to uradili sluajno. Za brisanje emo pritisnuti dugme Yes, a dugme
No je za odustajanje.

Sistem za upravljanje bazama podataka 41


MS Access

Korienje opoziva
Za opoziv akcije ili izmene kao i u drugim Windows aplikacijama i u Ac-
cessu je na raspolaganju komanda i dugme opoziv (Undo). Komanda Undo
se nalazi u listi Edit. Postoji vie vrsta opoziva:

Edit/Undo Typing za opoziv poslednje izmene koja je uneta u po-


datke,
Edit/Undo Current Field/Record ponitava poslednju izmenu u te-
kuem polju ili sve izmene u tekuem zapisu,
Edit/Undo Saved Record ponitava sve izmene u zapisu koji je pos-
lednji sauvan na disku.

Promena redosleda i irine polja i visine reda


Ako nije drugaije zadato, Access prikazuje polja tabelarno po istom re-
dosledu kojim su ona navedena u definiciji tabele ili u upitu, a zapisi su sorti-
rani u redosledu primarnog kljua. Ali ponekad je potrebno da se neka druga
polja prikau jedno pored drugog da bismo bolje analizirali podatke. Postav-
ljanje dve kolone jedne pored duge vri se jednostavnom tehnikom prevla-
enja. Obeleimo jednu od kolona (klikom na zaglavlje). Otpustimo taster,
ponovo kliknemo na obeleenu kolonu i, drei taster pritisnut, prevuemo je
levo ili desno od druge kolone. Kolone se mogu premetati jedna po jedna ili
grupa susednih kolona odjednom. Naravno premetanje kolona u tabelar-
nom prikazu ne menja redosled polja u strukturi tabele.
Izgled linija kojima su oiviena polja podeava se prekoFile / Options /
Datasheet, pojavljuje se okvir za dijalog prikazan na slici 3.19. Vrsta slova
najjednostavnije se menja podeavanjem opcija u Home traci, deo Text
Formatting

Slika 3.19 Izbor linija za oiviavanje polja

42 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

irina polja menja se kao i Excelu, kliknemo na zaglavlje kolone (selek-


tujemo kolonu). Zatim dovedemo pokaziva mia na liniju koja razdvaja dva
polja i dvaput kliknemo levim tasterom mia. Kolona automatski dobija irinu
koja je dovoljna da bude prikazan najdui podatak ili ime kolone.
Visina reda podeava se desnim klikom na zaglavlje bilo kog reda i iz-
borom stavke Row Height..., ili jednostavno postavite kursor izmeu dva
reda i prevlaenjem promenite irinu.

Skrivanje, prikazivanje, zamrzavanje i odmrzavanje kolona


Skrivanje kolone moe se obaviti suavanjem kolone dok se granine li-
nije ne dodirnu ili desnim klikom na zaglavlje kolone / Field Width i zadava-
njem vrednosti 0. Trei nain je da obeleimo kolonu (kolone) koju hoemo
da sakrijemo, na primer kolonu rukovodilac, i iz kontekstnog menija (desni
klik) izaberemo komandu sakrij Hide Fields.
Iz istog menija moemo izabrati opciju Unhide Fields da bismo ponovo
videli sakrivene kolone. Pojavie se okvir za dijalog sa spiskom kolona (slika
3.20). Skrivene kolone nemaju znak za potvrdu ispred imena, u ovom slu-
aju to je kolona rukovodilac.

Slika 3.20 Skrivanje i prikazivanje sakrivenih kolona

U ovom okviru za dijalog moemo ne samo da prikaemo skrivene kolo-


ne, nego i da sakrijemo proizvoljne kolone, izborom odgovarajueg dugmeta
za potvrdu. Ako hoemo da kolona rukovodilac ponovo bude vidljiva klikne-
mo na dugme za potvrdu ispred njenog imena. Ako hoemo da i kolone pla-
ta i posao budu nevidljive, izabraemo odgovarajue dugme za potvrdu.
Kada tabela ima veliki broj kolona na manjim ekranima se mogu videti
samo nekoliko susednih. Ako hoemo da analiziramo podatke u dvema uda-
ljenim kolonama to najee nije mogue. U tu svrhu moemo neke bitne
kolone, na primer ime, uiniti uvek vidljivom. Kliknemo na kolone ili kolonu
(ime), i onda iz kontekstnog menija izaberemo komandu zamrzni (Freeze
Fields). Nakon toga kolona ime e uvek biti prva sleva. Za odmrzavanje se

Sistem za upravljanje bazama podataka 43


MS Access

koristi komanda Unfreeze All Columns, ali do zatvaranja tabele prethodno


zamrznute kolone bie prikazane kao prve sleva.

Trajno uvanje izmenjenog izgleda tabelarnog prikaza


Ako podeeni izgled tabele elite trajno da zadrite dovoljno je da na
Save u gornjem levom delu prozora (iznad trake sa alatkama).

Ureivanje i izdvajanje zapisa u tabelarnom


prikazu
U tabelarnom prikazu (Table Datasheet) mogue je brzo i jednostavno
vriti ureivanje i izdvajanje podataka. MS Access uvek prikazuje podatke
ureene po vrednosti primarnog kljua. Ako elimo da podaci budu prikazani
u nekom drugom redosledu ili da izdvojimo samo neke zapise na raspolaga-
nju su nam odgovorajui alati.
Da bi izvrili ureivanje (sortiranje) zapisa po jednom polju, potrebno je
miem izabrati vrh polja po kome vrimo sortiranje i izabrati ikonicu za sorti-
ranje po rastuem ili opadajuem redosledu . Sortiranje po vie polja
moe se uraditi tako to se prevuku polja koja se ele sortirati jedno do dru-
gog, selektuju se drei pritisnut taster SHIFT i izabere se ikonica za sortira-
nje. Da bi se uklonio redosled sortiranja primenjen na neku tabelu uradi se
ponovo sortiranje po primarnom kljuu, ili se zatvori tabela bez snimanja iz-
mena.
MS Access prua sledee mogunosti filtriranja podataka koje moemo
nai na Home kartici, odeljak Sort&Filter:

Filter by selection (izdvajanje prema izboru) omogua-


va filtriranje podataka po uspostavljenom redu samo u jednom polju
tabele. Na primer, ako elimo da dobijemo podatke o svim upravni-
cima, otvoriemo tabelu RADNIK u prikazu Datasheet, pozicionirati
se na vrednost UPRAVNIK u nekom od zapisa i pritisnuti dugme Fil-
ter By Selection. Ovde dobijamo sledei izbor:
Equals "upravnik" - jednak podatku iz polja u kojem smo trenutno
Does Not Equal "upravnik"- razliito od tog podatka
Contains "upravnik" - sadri podatak
Does Not Contain "upravnik" - ne sadri podatak

Uklanjanje ovoga filtra vri se pritiskom na dugme Remove Filter


(u pitanju je isto dugme kao i Apply Filter, koje je pritisnuto kada je fil-
ter primenjen i izdignuto kada nije).

44 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Advanced Filter (napredno filtriranje) omoguava filtri-


ranje prema kriterijumu koji se zasniva na vie polja istovremeno.
Postupak je sledei:
1. otvorimo tabelu RADNIK u prikazu Datasheet i pritisnemo dugme Ad-
vanced Filter, otvara prazan obrazac u kome biramo kriterijume po ko-
jima elimo da izdvajamo podatke,
2. ako, na primer, elimo da izdvojimo radnike iji je posao upravnik ili sa-
vetnik, iz padajue liste prvo biramo jedan kriterijum (upravnik),
3. zatim na dnu prozora izaberemo jeziak kartice OR, a onda u polju po-
sao iz padajue liste biramo drugi kriterijum koji nam je potreban (savet-
nik),
4. kada smo izabrali eljene uslove pritisnemo dugme Apply Filter i dobi-
jemo samo one zapise koje smo traili (slika 3.21.)

Slika 3.21 Rezultati primene opcije Filter by Form

Advanced Filter moemo primeniti i kod kriterijuma sa logikim uslovom


AND (istovremeno zadovoljavanje vie uslova), unosei potrebne uslove na
istoj kartici prozora Form u vie kolona.
Da bi uklonili sve prethodne kriterijume filtriranja treba iz liste zapisi Re-
cords izabrati komandu Remove Filter/Sort.
Advanced Filter/Sort (napredno filtriranje/sortiranje) je slino izradi upi-
ta nad jednom tabelom.

Zadaci za samostalan rad:


3.6. Prikazati sve podatke za radnike koji rade u odeljenju 20, tako da budu
ureeni po opadajuem redosledu u odnosu na platu.
3.7. Prikazati zapise o radnicima koji rade u odeljenju 40, ija je kvalifikacija
VSS i koji su rukovodioci.

Kreiranje veza-relacija izmeu tabela


Tabele se mogu povezati meu sobom odreenim relacijama tipa
1:1, 1:N i N:M (preko dve relacije 1:N i M:1).

Sistem za upravljanje bazama podataka 45


MS Access

1. Uspostavljanje relacija izmeu tabela vri se izborom opcije Relations-


hips koje moemo nai na kartici Database Tools.
2. Nakon toga se otvara radni prozor kao na slici 3.22. Kliknemo miem na
eljenu tabelu dva puta, ili selektujemo tabelu koja uestvuje u relaciji i
kliknemo na dugme dodaj (Add).
3. Izabrana tabela e se pojaviti u gornjem oknu relacije (Relatioships). Na
opisani nain preneti sve tabele koje uestvuju u nekoj relaciji u gornje
okno, a zatim zatvoriti okno sa tabelama Show Table klikom na dugme
zatvori (Close).

Slika 3.22 Izbor tabela koje se povezuju relacijama

4. Ukoliko se naknadno setite da treba dodati jo neku tabelu u relaciju kli-


knite desnim tasterom mia na sivu radnu povrinu prozora relacije (Re-
lationships). Pojavie se okvir za dijalog u kome treba izabrati dugme
pokai tabelu (Show Table...).
5. Opet e na ekranu biti prikazan prozor sa tabelama. Na prethodno opi-
sani nain izaberite potrebne tabele koje nisu ve ukljuene u relacije.

U informacionom sistemu preduzea uspostavljaju se pomenute relacije,


veze meu tabelama. Izmeu tabela ODELJENJE i RADNIK postoji veza
jedan prema vie, odnosno 1:N (jedan radnik radi u jednom odeljenju - stra-
na 1, a u jednom odeljenju radi vie radnika - strana N). Veza se u Accessu
najlake ostvaruje tehnikom prevlaenja (Drag and Drop), na sledei nain:

46 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

1. u tabeli na strani 1 izaberemo atribut za povezivanje, primarni klju,


(brod# u tabeli ODELJENJE),
2. kliknemo na njega, drimo pritisnut levi taster i odvuemo pokaziva mi-
a do spoljanjeg kljua u tabeli na strani vie (brod$ u tabeli RADNIK),
3. pojavljuje se okvir za dijalog Edit Relationship u kojem se dodatno mo-
e opisati veza koja postoji izmeu dva entiteta - tabele,
4. ako elimo da se obezbedi referencijalni integritet u ovom okviru za dija-
log treba izabrati opciju nametnuti referencijalni integritet (Enforce Refe-
rential Integrity), odnosno treba kliknuti na dugme za potvrdu sa tim
imenom,
5. mogue je dodatno izabrati kaskadno brisanje i kaskadno auriranje (ka-
da se u tabeli na strani 1 obrie ili promeni podatak, u tabeli na strani vi-
e moraju pre toga da budu obrisani ili promenjeni svi zapisi koji sadre
tu vrednost),

Integritet podataka, odnosno sigurnost ouvanja podataka, po pravilima koja


su propisana da bi neki sistem za upravljanje bazama podataka uopte
bio relacioni (Coddova pravila), mora biti definisana u bazi podataka. U
tom cilju u relacionim bazama moraju postojati odreena ogranienja
koja se odnose na vrednosti pojedinih atributa. Prvo ogranienje ostva-
ruje se preko zadavanja tipa podataka i definisanja skupa dozvoljenih
vrednosti (validation rules). Sem ovih, postoje i opta ogranienja koja
se nazivaju pravila integriteta relacionog modela, a to su: integritet enti-
teta i referencijalni integritet.
Integritet entiteta: Primarni klju ili neki njegov deo ne mogu imati Null-
vrednost, tj. moraju biti uneti u tabelu. Kako je primarni klju jedinstven
i neponovljiv, to se na ovaj nain obezbeuje da svaki red, odnosno
objekat koji je opisan podacima, u toj tabeli bude jedinstven.
Referencijalni integritet: Skup vrednosti spoljnjeg kljua u nekoj tabeli T1,
koja je u relaciji N:1 (povezana) sa nekom drugom tabelom T2, mora
biti podskup skupa vrednosti primarnog kljua u tabeli T2 sa kojom je
tabela T1 povezana. Na primer atribut BROD u tabeli RADNIK moe
imati samo one vrednosti koje postoje u tabeli ODELJENJE.

6. vrste spajanja su: prirodno spajanje, levo spoljnje spajanje ili desno
spoljnje spajanje, a biraju se dugmetom vrsta spajanja (Join Type), na-
kon ega se pojavljuje novi okvir za dijalog Join Properties (slika 3.23),
7. pretpostavljena vrsta spajanja je prirodno spajanje, opcija 1. Ukoliko ho-
emo spoljanje spajanje onda biramo opciju 2 ili 3,
8. izmeu entiteta RADNIK i PROJEKAT postoji relacija vie prema vie
(M:N), jer jedan radnik radi na vie projekata, a na jednom projektu radi

Sistem za upravljanje bazama podataka 47


MS Access

vie radnika. Ovakve veze se ostvaruju preko novog entiteta - tabele


(UEE), koja je sa svakim od dva entiteta - tabela (RADNIK i
ODELJENJE) u relaciji 1:N, odnosno 1:M

Slika 3.23 Definisanje svojstava relacija

PRIMER 6: Kreirati relacije, povezati tabele tako da sve relacije osim


izmeu tabela RADNIK i UEE imaju nametnut refe-
rencijalni integritet (1:beskonano), slika 3.23.
Ako naknadno elimo da ukinemo neku vezu izmeu tabela, ili da pro-
menimo neka svojstva postojeih relacija u prozoru Relationships, desnim
tasterom mia kliknemo na postojeu vezu i otvara se okvir za izmene (Edit
Relationship...) i ukidanja veze (Delete), slika 3.24.

Slika 3.24 Relacioni model za informacioni sistem preduzea

U daljem opisu mogunosti Accessa ponekad emo ukidati veze iz-


meu tabela da bi demonstrirali nain rada ili pogodnosti koje prua Access.

48 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Tabele koje su koriene u ovom primeru nastale su kao rezultat pro-


jektovanja informacionog sistema preduzea. Dakle, tabele, veze izmeu
njih, kao i njihovi atributi, rezultat su postupka projektovanja informacionog
sistema, odnosno predstavljaju relacioni model realnog sistema.

PRIMER 7: Kreirati novu tabelu ORGANIZACIONA_JEDINICA di-


rektnim unosom podataka u tabelu. Tabela ima atribute
brod, naziv i mesto. Uneti podatke za dve organizacio-
ne jedinice.

Koraci realizacije ovog zadatka su sledei:


1. na Create kartici trake sa alatkama, u delu Tables, kliknuemo na
dugme Table. Otvara se reetkasta struktura tabele Datasheet View
za direktno unoenje podataka (slika 3.25).
2. ovde imamo ve napravljenu kolonu ID tipa AutoNumber zato to je
veoma est sluaj da tabela ima kolonu (primarni klju) koji nosi na-
ziv ID (ili poinje sa ID, npr. ID_zaposlenog, ID_artikla i sl.) i koja je
tipa AutoNumber. Naravno, ako nam to ne odgovara, ovu podrazu-
mevanu kolonu moemo primenovati ili obrisati. To postiemo na
sledei nain: desni klik na zaglavlje (ID) kolone, a zatim biramo Re-
name Field (promena imena polja - kolone) ili Delete Field (brisanje
kolone). Nove kolone emo dodavati na Click to Add zaglavlje. Kli-
kom emo dobiti padajuu listu iz koje biramo neki od ponuenih ti-
pova podataka. To su isti tipovi koje smo imali na raspolaganju kada
smo tabelu pravili preko opcije Table Design tako da ovde nee biti
ponovo opisivani. Poto izaberemo tip podatka koji nam odgovara,
koloni emo dati ime koje elimo.

Slika 3.25 Redovi i kolone prazne tabele

Sistem za upravljanje bazama podataka 49


MS Access

3. dalje unosimo zadate vrednosti u tri zahtevane kolone. Ostalo nam je


jo samo da sauvamo tabelu klikom na Save dugme. Ovako izgleda
uspeno uraen primer 7 (slika 3.26):

Slika 3.26 Tabela ORGANIZACIONA_JEDINICA nakon unosa podataka

U sluaju da smo obrisali kolonu koja je primarni klju tabele (to mo-
emo samo iz Design Viewa, Datasheet View to ne dozvoljava), bie
nam postavljeno pitanje da li da program sam kreira primarni klju (slika
3.27). Ako se izabere opcija Yes dodaje se tabeli jo jedna kolona imena
ID tipa Autonumber. Ako ne elimo da imamo takav primarni klju, iza-
beremo opciju No i kreramo tabelu bez primarnog kljua.
sve izmene u strukturi tabele mogu se uraditi naknadno, pa tako ot-
vorimo novokreiranu tabelu u reimu projektovanja, izborom opcije De-
sign View. Dodamo primarni klju za polje idbr ovoj tabeli na ranje opsi-
sani nain.

Slika 3.27 Dijalog prozor o automatskom kreiranju primarnog kljua

Korienje arobnjaka kod kreiranja tabela bilo je podrano u Accessu u


ranijim verzijama (zakljuno sa verzijom 2003). Pravljenje tabela na ovaj na-
in se sastojalo od biranja tabela i polja u njima koje su nam ponuene kao
uzorci (Sample Tables, Sample Fields). Ovo je dobra ideja imajui u vidu da
postoji puno slinosti u strukturi tabela kao to su Zaposleni, Artikli, Rauni
itd. bez obzira na to ko ih je projektovao i za koju svrhu. Kada izaberemo
jednu od ponuenih tabela koja nam po svojoj strukturi najvie odgovara,
biramo polja (kolone) koja elimo. Na ovaj nain dobijamo polaznu tabelu
koju dalje moemo popravljati u Design Viewu.
Ova funkcionalnost je u verziji 2007 promenjena i moemo je nai pod
Create/Tables/Table Templates (slika 3.28). U verziji 2010 ne postoji ova
opcija, ali su umesto nje dodati abloni baza podataka. Na File/New panelu
moemo nai dosta ablona organizovanih u grupe koji nam mogu pomoi
kod pravljenja novih baza podataka.

50 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Slika 3.28 Kreiranje nove baze podataka - ponueni abloni

Zadaci za samostalan rad:


3.9. Dodati referencijalni integrit za vezu izmeu tabela RADNIK i
UEE.

3.10. Kreirati bazu podataka za evidentiranje knjiga i njihovih autora iji je


E-R model dat slici 3.29.

AUTOR KNJIGA

NAPISALI

Slika 3.29 E-R model baze za evidentiranje knjiga i autora

Uputstvo:
Kod kreiranja ove baze uslov je da jedan autor moe napisati vie knji-
ga, a jedna knjiga moe imati vie autora.
AUTOR (id_autor, ime, prezime, adresa, zvanje, ...)
KNJIGA (id_knjiga, naziv, izdava, datum_izdavanja, isbn, ...)
NAPISALI (id_autor, id_knjiga, ...)

3.11. Kreirati bazu podataka za servis elektronskih aparata (slika 3.30).


Za realizaciju ovog projekta treba voditi rauna o sledeim stavkama:

Sistem za upravljanje bazama podataka 51


MS Access

potrebno je da imamo podatke o radnicima koji servisiraju ureaj, nji-


hove line podatke, ali i informaciju o tome koji je radnik izvrio pop-
ravku ili zamenu odreenog dela,
treba da znamo informacije o vlasnicima aparata, da bi mogli da ih
obavestimo o zavrenom poslu, kao i da li je u pitanju fiziko ili prav-
no lice,
da ne bi dolo do sluajne greke, o apratima koji su doneeni na
servis takoe treba evidentirati koji su tip, serijski broj, ko je proizvo-
a, kao i kome vlasniku pripada,
svi delovi koji postoje u servisu treba da se evidentiraju, njihova koli-
ina, cena i osnovni opis,
kod ispostave rauna potrno je navesti sve stavke popravke tj. koji je
deo zamenjen, cena rada, koji je radnik obavio popravku i slino.
Razmatranje veza meu tabelama:
1. Radnik moe primiti vie aparata, a svki aparat moe biti primljen od
samo jednog radnika (1:n).
2. Radnik moe izdavati vie rauna, a raun moe imati samo jednog
radnika koji ga je izdao (1:n).
3. Vlasnik moe da na servis donese vie aparata, a svaki aparat moe
da ima smo jednog vlasnika (1:n).
4. Zavretak rada na jednom aparatu moe imati vie rauna.
5. jedan raun moe sadrati vie popravki, a jedan deo materijala koji
se ugrauje moe da bude na vie stavki, pa je to veza (m:n) izmeu
objekta RAUN i DELOVI koja je realizovana preko objekta
STAVKE_POPRAVKE.

Slika 3.30 E-R model baze servisa za elektronske ureaje

RADNIK (id_radnik, ime, prezime, telefon, korisnicko_ime, ...)


VLASNIK (id_vlasnik, ime, prezime, broj_licne_karte, adresa, telefon, vrs-
ta_lica, ...)

52 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

APARAT (id_aparata, serijski_broj, vrsta, proizvodjac, tip, primedba, dodaci,


id_vlasnik, ...)
DELOVI (id_dela, opis, kolicina, cena, ...)
RAUN (id_racuna, id_aparata, datum, suma, id_radnik, ...)
STAVKA_POPRAVKE (id_racuna, id_stavke, id_dela, kolicina, cena_rada,
ukupno,...)

3.12. Kreirati bazu podataka za agenciju za izdavanje nekretnina (slika


3.31).
Uputstvo:
Agencija za izdavanje nekretnina treba da ima informacije o svim ponu-
dama stanova, njihovim vlasnicima, lokacijama i strukturi stana. Na osnovu
nekretnina koje su na raspolaganju zakupac iznajmljuje odreene nekretni-
ne.
Jedan vlasnik moe da ponudi vie nekretnina za izdavanje, a jedna ne-
kretnina moe da bude vlasnitvo jednog oveka.
Svaka nekretnina koja se izdaje ima odreenu struktura, a vie nekretni-
na moe imati istu strukturu. Pod strukturom se podrazumeva kvadratura,
broj prostorija i slino.
Svaka nekretnina koja je u ponudi moe da bude na jednoj lokaciji, a na
jednoj lokaciji moe biti vie ponuda.
Svaka nekretnina koja je u ponudi moe biti izdata ili ne, ali samo jed-
nom zakupcu, pa je tip veze izmeu tabela PONUDA i IZDAT 1:1.
Zakupac moe iznajmiti vie nekretnina, ali jedna nekretnina moe biti
izdata samo jednom zakupcu.
VLASNIK (id_vlasnik, prezime, ime, telefon, adresa, ...)
LOKACIJA (id_lokacija, opstina, ...)
STRUKTURA (id_struktura, m2, br_prostorija, ...)
PONUDA (id_ponuda, id_vlasnik, id_struktura, id_lokacija, cena, sprat, ...)
ZAKUPAC (id_zakupac, prezime, ime, telefon, ...)
IZDAT (id_ponuda, id_zakupac, datum_izdavanja, ...)

VLASNIK

STRUKTURA PONUDA IZDAT

LOKACIJA
ZAKUPAC

Slika 3.31 E-R model agencije za izdavanje nekretnina

Sistem za upravljanje bazama podataka 53


4. Upiti
Pomou upita se ciljano dolazi do traenih informacija, a upitom se mo-
gu kreirati nove, privremene ili stalne tabele, dodavati, menjati, brisati podaci
i sl. Postoji vie jezika za rad sa relacionim bazama podataka, a jedan od
njih je i Structured Query Language (SQL). SQL su razvile sedamdesetih
godina prolog veka istraivake laboratorije IBM-a, koje su se tada bavile
istraivanjem relacionog modela. Vremenom je SQL postao najire korien
jezik koji se primenjuje u veini sistema za upravljanje relacionim bazama
podataka, ukljuujui i MS Access. Nekoliko internacionalnih organizacija za
standardizaciju objavile su svoje verzije SQL-a, dok najvaniji proizvoai
sistema za upravljanje bazama podataka, ukljuujui i Microsoft, imaju svoje
implementacije SQL-a. Microsoft sem SQL-a ima ugraen jo jedan upitni
jezik, a to je Query By Example (QBE). SQL i QBE nisu samo upitni jezici
za manipulaciju, ve oni u sebi imaju ugraene funkcije koje omoguuju
opis, tj. definisanje podataka, pa se uopteno gledano dele na dva dela: Da-
ta Manipulation Language (DML), koji slui za manipulisanje podacima i
Data Definition Language (DDL), koji slui za kreiranje i menjanje objekata
baze podataka. Iako se veina obrada (naslova) moe uraditi uz pomo
SQL-a i QBE-a ova dva jezika nisu identina i svaki od njih ima nekih pred-
nosti i mana. Kako je SQL zasnovan na relacijama rauna n-torki on je sve-
obuhvatniji od QBE-a, koji je zasnovan na realciji domena i generalno ima
vee mogunosti, ali je rad u QBE-u laki nego u SQL-u. Sve naredbe napi-
sane u QBE-u imaju ekvivalentni SQL upitni blok, a obrnuto ne vai.
MS Acces nudi izradu nekoliko vrsta upita:
select,
akcioni,
SQL specific (union, pass-through, data-definition, subquery),
parametarski, i
crosstab.

Izrada select upita


Select upiti su najee upotrebljavani tipovi upita. Ovi upiti su deo SQL
jezika za manipulaciju podacima (DML, Data Manipulation Language). Uzi-
maju podatke iz jedne ili vie tabela i prikazuju ih u formi koja se naziva ta-
belarni prikaz (Datasheet View). Podaci se iz tabela mogu izdvajati upotre-
bom raznih kriterijuma, reati po rastuem ili opadajuem redosledu, grupi-
sati i nad odgovarajuim grupama primenjivati izraunavanja poput sume,
prosene vrednosti, minimuma, maksimuma itd. Uoptena sintaksa za krei-
ranje select upita je :
Upiti

SELECT <lista izraza ili kolona>


FROM < lista tabela, pogleda ili upita>
[WHERE<restriktivni uslov>]
[GROUP BY <ime kolone ili kolona upotrebljenih u iskazu SELECT>]
[HAVING <restriktivni uslov baziran na rezultatima GROUP BY klauzule>]
[ORDER BY <lista kolona ili redni broj kolone u SELECT>]

Klauzula SELECT je deo globalnog iskaza koji govori MS Accessu da


elimo samo da itamo podatke, to je razliito od njihove modifikacije. Ono
to biramo identifikuje se na osnovu liste kolona koja se nalazi odmah iza
SELECT naredbe.
Klauzula FROM ukazuje nam odakle, tj. iz kojih tabela preuzimamo po-
datak. Sa ove dve klauzule imamo ono to je dovoljno da bismo formirali os-
novni iskaz SELECT. Sve ostale klauzule su opcione.

PRIMER 1: Prikazati ime, posao i platu svih radnika.


Za realizaciju ovog primera koristiemo QBE (upit na bazi primera), koji
predstavlja veoma komfornu mogunost pravljenja upita. QBE upiti se po
elji mogu videti i kao set SQL instrukcija. Da bismo realizovali dati primer,
potrebno je uraditi sledee:
1. otvoriti bazu podataka koju smo prethodno kreirali opisanim postup-
kom. Na kartici Create, deo Queries (upiti) kliknuemo na dugme Query
Design.
2. tada e nam se prikazati okvir za dijalog pod imenom Show table, u ko-
me se vide nazivi tabela koje smo prethodno kreirali (slika 4.1),

Slika 4.1 Izbor tabela koje emo koristiti u upitu

3. sada je potrebno odabrati tabele koje uestvuju u kreiranju upita. Obzi-


rom da se potrebni podaci nalaze u tabeli RADNIK, selektovaemo tabe-

Sistem za upravljanje bazama podataka 55


MS Access

lu RADNIK i miem izabrati ikonicu dodaj Add (da bismo ikonicu dodali),
nakon ega prozor Show table moemo zatvoriti (dugme Close). U slu-
aju da kreiramo upit nad vie tabela (o emu e kasnije biti rei), u
ovom koraku po opisanom postupku selektujemo sve tabele koje su nam
potrebne za kreiranje upita,
4. na ekranu ostaje prozor QBE podeljen na dva dela. U gornjem delu pro-
zora prikazane su tabele koje uestvuju u upitu, kao i veze (relacije) iz-
meu njih, ukoliko postoje (relacije se za sada ne vide jer smo selektova-
li samo jednu tabelu). U donjem delu moemo uoiti okvir (formular) za
postavljanje upita,
5. sada moemo prei na izbor atributa. Izgled prozora QBE je prikazan na
slici 4.2, a upit se formira na sledei nain:

Slika 4.2 Izgled prozora QBE za kreiranje upita

6. u prvoj koloni i prvom redu (Field) pomenutog formulara izaberemo stre-


licu nadole. U padajuoj listi vidimo sve atribute svih, za upit, izabranih
tabela (u naem sluaju imamo samo tabelu RADNIK). Izaberemo prvi
potrebni atribut u tom polju, dakle IME, a zatim na isti nain u susednom
desnom polju sledei potreban atribut, dakle POSAO. Na ovaj nain bi-
ramo sve atribute, iz svih za eljeni upit potrebnih tabela. Ovaj korak
formira umesto nas potrebnu SQL komandu SELECT. Ako izaberemo
znak zvezdicu (*), bie selektovani svi atributi tabele. Pored ovog naina
biranja atributa, moemo koristiti i dupli klik na odgovarajui atribut to e
za posledicu imati njegovo dodavanje na prvo slobodno mesto. Prevla-
enje tj. drag-and-drop atributa iz tabele u formular (red Fields) se tako-
e moe upotrebljavati.
7. drugi red u formularu (Table) predstavlja ime tabele iz koje atribut potie.
Upisae se automatski ime tabele u kojoj se, prethodnim postupkom,
izabrani atribut nalazi. Ova operacija je ekvivalentna sa SQL naredbom
FROM. Izgled ovog formulara nakon postavljenog upita prikazan je na
slici 4.3,

56 Sistem za upravljanje bazama podataka


Upiti

Slika 4.3 Izgled prozora QBE

8. rezultate upravo kreiranog upita moemo videti ako na liniji alata (tool-
baru) aktiviramo ikonicu , ili ako izaberemo opciju tabelarni prikaz .
Oba dugmeta stoje na trenutno aktivnoj kartici Design (Query Tools), na
levoj strani. Rezultati koje vraa upit prikazani su na slici 4.4,

Slika 4.4 Prikaz podataka koje vraa upit (Datasheet View)

9. tekst SQL upita koji je MS Access automatski generisao na bazi naeg


izbora, moemo videti ako iz padajue liste View izaberemo opciju
. Izgled SQL upita moemo videti na slici 4.5,
10. u prikazanom prozoru imamo mogunost runog menjanja naeg upita
u sluaju da nam tako vie odgovara, a svaki upit se, kao to moemo
videti na slici zavrava sa taka-zarezom ( ; ),

Sistem za upravljanje bazama podataka 57


MS Access

11. da bismo sauvali upit potrebno je izabrati opciju sauvaj Save, ili zatvo-
riti prozor sa upitom. U oba sluaja pojavie se okvir za dijalog u koji tre-
ba uneti ime novokreiranog upita. Kada memoriemo ovaj upit (nazovimo
ga na primer qryZaposleni[1]), on e se na levom panelu rezervisanom
za prikaz objekata u bazi podataka pojaviti kao .

Slika 4.5 SQL kd koji generie Access kada kreiramo upit u QBE-u
(SQL View)

12. kada imamo memorisan upit uvek ga moemo izvriti na dvostruki klik ili
ako selektujemo dati upit i izaberemo ikonicu , ili pak modifiko-
vati, ako selektujemo dati upit i izaberemo ikonicu .
Rezultat upita je virtuelna, neimenovana tabela (slika 4.4), koju moemo
dalje obraivati alatkama koje nudi Access. Na primer, moemo je sortirati
(urediti) po nekom atributu (po rastuem ili opadajuem redosledu) ili pak
izdvojiti samo neke poslove od interesa.

Napomena: Upiti se mogu praviti uz pomo arobnjaka (opcijom


Wizard). Postupak je isti kao pri izradi obrazaca (Forms, str.91). Dobijeni upi-
ti nemaju mogunost selekcije (nema klauzule WHERE) i mogue je samo
prirodno spajanje tabela.

Upotreba klauzule WHERE


U prethodnom primeru select upita koriene su samo dve klauzule
SELECT i FROM, jer su od interesa bile informacije koje se odnose na sve
radnike (sve n-torke). Dakle, nisu postojala nikakva ogranienja u smislu da
neki red mora zadovoljiti odreene uslove da bi bio ukljuen u rezultat. Klau-
zula WHERE nam upravo omoguava da postavljamo uslove vezane za za-
pise koje vraa upit.

PRIMER 2: Prikazati IME i POSAO svih radnika koji imaju platu ve-
u od 2000.

[1]
Uobiajena praksa kod imenovanja objekata u MS Accessu je dodavanje prefiksa koji oz-
naava o kom objektu se radi, pa se napred kao deo imena upita dodaje qry.

58 Sistem za upravljanje bazama podataka


Upiti

Ovaj primer realizovaemo kao modifikaciju prethodnog upita na sledei na-


in:
1. iz levog panela sa objektima baze izabraemo qryZaposleni i iz kon-
tekstnog menija stavku . Otvara se prozor QBE, kao na
slici 4.3,
2. u formularu treba dodati atribut PLATA i ispod njega u polju Criteria
upisati kriterijum vezan za platu, u naem sluaju >2000,
3. poto ne elimo da upit prikazuje podatak o plati, tj ovaj atribut je pot-
reban samo zbog kriterijuma odekiraemo polje show,
4. sada prozor QBE izgleda kao na slici 4.6, a SQL kd koji je Access ge-
nerisao ima oblik:
SELECT RADNIK.IME, RADNIK.POSAO
FROM RADNIK
WHERE (((RADNIK.PLATA)>2000));

Slika 4.6 Izgled prozora QBE sa unetim kriterijumom za upit


Ako pogledamo rezultate upita u tabelarnom prikazu (izvrimo upit), vi-
deemo da je lista radnika koju nam je vratio upit znatno kraa (7 zapisa), jer
ostali radnici ne zadovoljavaju kriterijum da imaju platu veu od 2000. Pre
nego to zatvorimo upit snimiemo promene koje smo uneli, izabravi ikoni-
cu sauvaj Save.
Svojstvo natpis (Caption) odreuje sadraj zaglavlja kolone u rezultuju-
oj tabeli, odnosno u rezultatu upita.
1. Otvoriti tabelu radnik u reimu projektovanja, i izabrati atribut posao, pa
u kartici opta svojstva (General), u polju natpis (Caption) upisati Radno
Mesto.
2. Zatvoriti prozor za projektovanje tabela, i naravno zapamtiti uinjene iz-
mene, pa pozvati na izvrenje prethodno kreirani upit qryZaposleni.

Sistem za upravljanje bazama podataka 59


MS Access

3. Obratiti panju kako se na rezultujuoj tabeli naziva druga kolona. Ona


se sada zove Radno Mesto, dakle nosi naziv preuzet iz svojstva natpis
(Caption).
4. Ponovo otvoriti tabelu RADNIK u reimu projektovanja i ukinuti svojstvo
natpis za atribut posao.
U klauzuli WHERE, pored ovako jednostavnog kriterijuma, moemo upo-
trebljavati i sloenije izraze, a deo liste operatora koji su najee u upotrebi
prikazan je u tabeli 4.1.
OPERA
PRIMER UPOTREBE DEJSTVO
TOR
Standardni operatori poreenja -
rade gotovo isto kao i u drugim pro-
=, >, <, 1. RADNIK.IME='Slobo' gramskim jezicima. Uoimo da kriteri-
>=, <=, <> 2. RADNIK.BROD=20 jum za atribute tipa Text stavljamo
meu navodnike ili apostrofe (" " ili '
').
Standardni logiki operatori -
3. RADNIK.POSAO='vozac' AND moemo ih kombinovati u jednoj kla-
AND, OR, RADNIK.DATZAP>#1.1.1980# uzuli WHERE. Prvo se izraunava
NOT 4. RADNIK.KVALIF=VSS OR NOT, zatim AND i na kraju OR. Ako
RADNIK.KVALIF=VKV elimo promeniti redosled operacija
moramo koristiti zagrade.
Poreenje je TRUE ako je vred-
nost atributa izmeu dve zadate vre-
dnosti UKLJUUJUI I TE VRED-
5. RADNIK.DATZAP BETWEEN
BETWEEN NOSTI. Alternativni iskaz bi bio:
#1.1.1965# AND #17.12.1990#
RADNIK.DATZAP>=#1.1.1965#
AND
RADNIK.DATZAP<=#17.12.1990#

6. RADNIK.IME LIKE 'M*' Operator pogodan za pretrai-


vanje. Prilikom postavljanja uslova
7. RADNIK.IME LIKE 'Pavle' mogu se koristiti i takozvani jocker
LIKE
8. RADNIK.IME LIKE '*S*' znaci i to [?] (koji zamenjuje neki, bilo
koji znak) i [*] koji zamenjuje sve zna-
9. RADNIK.IME LIKE 'S[a,e,i]*' ke (proizvoljan niz znakova-string).....

10. RADNIK.POSAO IN Vraa vrednost tano (TRUE)


('UPRAVNIK', 'DIREKTOR') ako se vrednost levo od kljune rei
IN, NOT IN IN poklapa sa nekom od vrednosti
11. RADNIK.KVALIF NOT IN koja se nalazi iza kljune rei IN. Za-
('VSS', 'VKV') grade su obavezne.

Tabela 4.1 Najee upotrebljavani operatori u WHERE klauzuli

PRIMER 3: Prikazati ime i posao radnika ija je kvalifikacija VSS ili


VKV.
Ovaj upit u QBE-u ima izgled kao na slici 4.7.

60 Sistem za upravljanje bazama podataka


Upiti

Izgled SQL upita, koristei operator OR za ovaj primer je sledei:


SELECT RADNIK.IME, RADNIK.POSAO
FROM RADNIK
WHERE RADNIK.KVALIF="VSS" OR RADNIK.KVALIF="VKV";

Slika 4.7 QBE prozor sa unetim kriterijumom koji koristi operator OR


Ovaj primer se moe uraditi i na drugi nain koristei operator IN i u tom slu-
aju SQL upit ima sledei izgled:
SELECT RADNIK.IME, RADNIK.POSAO
FROM RADNIK
WHERE RADNIK.KVALIF IN ('VSS','VKV');

Napomena: Ako elimo da ispitamo da li je neka vrednost Null ili ne, nee-
mo koristiti operatore poreenja, ve iskaz IS NULL ili IS NOT NULL.

PRIMER 4: Prikazati imena svih radnika koji imaju premiju.


SELECT RADNIK.IME
FROM RADNIK
WHERE RADNIK.PREMIJA IS NOT NULL;

Upotreba klauzule ORDER BY


Klauzulu ORDER BY moemo prevesti kao POREAN PO ili
"SORTIRAJ PO". Ona nam prua mogunost da definiemo u kom e re-
dosledu biti prikazani podaci. Ona je kao i klauzula WHERE opciona, a u

Sistem za upravljanje bazama podataka 61


MS Access

sluaju da je ne navedemo MS Access e nam vratiti podatke po redosledu


u kom su redovi fiziki smeteni.
PRIMER 5: Izmeniti upit iz primera 2 tako da prikazuje ime, posao i
platu radnika i vrati rezultate poreane po iznosu PLATE
u opadajuem redosledu.

1. Otvoriti qryZarada u reimu projektovanja.


2. U formularu ispod atributa po kome elimo da sortiramo podatke (plata)
izabraemo opciju Sort, pa u zavisnosti od toga da li elimo sortiranje
u rastuem ili opadajuem redosledu, izabraemo opciju ASCENDING
ili DESCENDING, respektivno. U naem primeru izabraemo opciju
DESCENDING.
3. Prozor QBE imae sada izgled kao na slici 4.8, a SQL blok koji generi-
e Access bie:
SELECT RADNIK.IME, RADNIK.POSAO, RADNIK.PLATA
FROM RADNIK
WHERE (((RADNIK.PLATA)>2000))
ORDER BY RADNIK.PLATA DESC;

Slika 4.8 Sortiranje rezultata po rastuem/opadajuem redosledu

Kod polja tipa number i date/time sortiranje se vri od najmanjeg ka


najveem po vrednosti tj. od starijem ka novijem datumu, dok se text-polja
slau po abecedi, u rastuem od A do Z, ili opadajuem redosledu od Z do
A. Kriterijum sortiranja moemo izabrati i nad vie atributa, a po svakom at-
ributu se sortiranje vri na gore pomenuti nain.
Klauzule GROUP BY i HAVING bie razmatrane u poglavlju o agregat-
nim funkcijama.

62 Sistem za upravljanje bazama podataka


Upiti

Upiti nad vie tabela i ugnjedeni upiti


Da bismo u potpunosti iskoristili prednosti relacionih baza podataka u
mogunosti smo da vrimo povezivanje tabela preko polja stranog i primar-
nog kljua koji imaju iste vrednosti. U nekim sluajevima, sve informacije ko-
je elimo u rezultatu upita nalaze se u jednoj tabeli, ali su informacije preko
kojih postavljamo uslove u drugoj tabeli. Tada je neophodno koristiti ug-
njedene upite (podupite, subquery).
Meutim, u radu sa normalizovanim bazama podataka vrlo esto naila-
zimo na situacije u kojima se sve informacije, koje su nam potrebne u rezul-
tatu upita, ne nalaze u jednoj tabeli. U tim sluajevima koristimo spajanje
tabela, tj. klauzulu JOIN. JOIN spaja informacije iz dve tabele u jedan skup
rezultata. Skup rezultata predstavlja virtuelnu tabelu. Kako JOIN spaja in-
formacije iz dve tabele u jednu, rezultat zavisi od toga kako zahtevamo da
se spajaju podaci, pa shodno tome postoje razliite vrste spajanja. Na pri-
mer, ako nam trebaju podaci iz tabele RADNIK i UEE istovremeno, pot-
rebno je da se uverimo da su njihova odgovarajua polja spojena (JOIN),
tako da MS Access moe da povee te dve informacije. Spajanje se naj-
ee vri preko zajednikih atributa, u ovom primeru to je atribut idbr#. U
sluaju da tabele u upitu nisu povezane bilo direktno ili indirektno, MS Ac-
cess ne zna koji su zapisi iz jedne tabele povezani sa zapisima iz druge ta-
bele, pa kao odgovor vraa sve kombinacije zapisa. Ovakav rezultat pred-
stavlja Dekartov ili Kartezijev proizvod ("cross-product" ili "cartesian
product"). Na primer, ako bismo imali dve tabele sa po 10 zapisa rezultat bi
se sastojao iz 100 zapisa (10X10). To takoe znai da bi se upit dugo izvr-
avao i da bi vraao rezultate bez ikakvog smisla. Ako smo prethodno kreira-
li RELACIJE izmeu tabela (u prozoru RELATIONSHIPS), MS Access au-
tomatski prikazuje linije povezivanja kada dodajemo tabele u na upit pomo-
u QBE-a. Ako smo obezbedili REFERENCIJALNI INTEGRITET, Access
takoe prikazuje 1 na strani veze jedan, a (beskonano) na strani vie.
Tipovi JOIN-a podrani u MS Accessu su:

INNER JOIN (unutranje spajanje), spajanje po jednakosti,


OUTER JOIN (spoljnje spajanje, levo i desno),
SELF JOIN (spajanje tabele sa svojom kopijom), i
THETA JOIN (spajanje po nejednakosti).

Spajanje po jednakosti (INNER JOIN)


Ova vrsta spajanja je najee u upotrebi. Ona spaja zapise na osnovu
jednog ili vie zajednikih polja (kao i veina naredbi JOIN), ali vraa samo
zapise u kojima postoji poklapanje vrednosti za polje (ili polja) preko kojeg
se vri spajanje. Zapis je odgovarajui samo ako postoje identine vrednosti

Sistem za upravljanje bazama podataka 63


MS Access

u poljima koja spajaju tabele. U veini sluajeva spajanje se vri preko polja
jedinstvenog primarnog kljua u jednoj tabeli, i polja spoljnjeg kljua u drugoj
tabeli (u relaciji jedan prema vie). Ako za neku vrednost primarnog kljua
jedne tabele u drugoj tabeli ne postoji ni jedan odgovarajui zapis, taj zapis
se ne pojavljuje u rezultatu upita. Access automatski pravi spojeve izmeu
tabela kada prethodno u prozoru Relationships uspostavimo relacije izmeu
tabela. To moemo uoiti na slikama prozora QBE, koji pri dodavanju vie
tabela u upit automatski dodaje i veze izmeu njih.

PRIMER 6: Prikazati IME i POSAO svih radnika koji rade u odeljenju


ije je sedite na Dorolu. Upit nazvati
qryInnerJoinDorcol.

1. Otvorimo bazu podataka preduzee (na primer, kliknemo dvaput na da-


toteku preduzee.accdb).
2. Izaberemo karticu Create, deo Queries, pa Query Design, i u prozoru
Show Table izaberemo tabelu RADNIK i dugme dodaj Add. Tabela rad-
nik bie prikazana u gornjem oknu radnog prozora. Isto se postie dvos-
trukim klikom na tabelu.
3. Na isti nain izaberemo i tabelu ODELJENJE i zatvorimo prozor Show
Table. Izgled prozora Query u QBE-u prikazan je na slici 4.9. Uoimo da
je izmeu tabela uspostavljena veza, tj. relacija koja je preuzeta iz rela-
cionog modela definisanog u Relationships.
4. U tabeli RADNIK izaberemo atribute ime i posao, a iz tabele
ODELJENJE izaberemo atribut mesto. Rezultat ovih radnji prikazan je na
slici 4.9, a SQL upit koji generie Access je:
SELECT [RADNIK].[IME], [RADNIK].[POSAO]
FROM ODELJENJE INNER JOIN RADNIK ON
[ODELJENJE].[BROD]=[RADNIK].[BROD]
WHERE ((([ODELJENJE].[MESTO])="dorol"));

64 Sistem za upravljanje bazama podataka


Upiti

Slika 4.9 Realizacija primera 4 u QBE-u (upit nad vie tabela)

PRIMER 7: Prikazati IME i POSAO svih radnika koji rade na projektu


izvoz. Upit nazvati qryInnerJoinIzvoz.
Ovaj primer prikazuje kako se dve tabele koje nisu direktno povezane
(RADNIK i PROJEKAT) mogu povezati preko takozvane vezne tabele
(UEE). Izgled primera u QBE-u prikazan je na slici 4.10, a SQL upit koji
generie Access je:
SELECT RADNIK.IME, UCESCE.FUNKCIJA
FROM PROJEKAT INNER JOIN (RADNIK INNER JOIN UCESCE ON
RADNIK.IDBR = UCESCE.IDBR) ON PROJEKAT.BRPROJ = UCESCE.BRPROJ
WHERE (((PROJEKAT.IMEPROJ)="izvoz"));

Slika 4.10 QBE omoguava povezivanje vie tabela


Kod spajanja tabela postoji mogunost da nam se isto ime kolone pojav-
ljuje vie puta u rezultatu, obzirom da je mogue davati ista imena atributa u
razliitim tabelama. Kada elimo da uputimo na takvu kolonu, potrebno je da

Sistem za upravljanje bazama podataka 65


MS Access

precizno definiemo ime te kolone. Puno ime polja sastoji se od imena tabe-
le i imena polja izmeu kojih se nalazi taka kao separator (RADNIK.BROD,
ODELJENJE.BROD). To moemo da uradimo na jedan od dva naina:
1. unesemo ime tabele iz koje je kolona koju elimo, zatim stavimo taku i
ime kolone (npr. RADNIK.IDBR). U sluaju da kreiramo upit nad jednom
tabelom ili upit u kome uestvuju kolone sa razliitim imenima, navoe-
nje tabele ispred imena kolone nije neophodno. MS Access po defaultu
(podrazumevano) generie SQL koji koristi potpunu kvalifikaciju imena
tabele i kolone.
2. dodelimo nadimak (ALIAS) tabelama i u nazivu kolone upisujemo taj na-
dimak alias, iza koga sledi taka i ime kolone (R.IDBR).
PRIMER 8: Prikai ime, posao i mesto radnika, koji rade u mestu
Dorol koristei aliase R za tabelu RADNIK i O za tabelu
ODELJENJE (slika 4.11).
SELECT R.IME, R.POSAO, O.MESTO
FROM RADNIK R INNER JOIN ODELJENJE O ON R.BROD=O.BROD
WHERE O.MESTO=Dorol ;

Slika 4.11 Realizacija upita pomou ALIASA

Alternativa za INNER JOIN


Umesto upotrebe INNER JOIN-a, moemo upotrebiti spajanje tabela ko-
je se zasniva na klauzuli WHERE. Ova dva naina spajanja su apsolutno
ekvivalentna i ne postoji razlika u brzini izvravanja upita. Koristei ovu mo-
gunost realizovati upit iz primera 6, ali prethodno ukinuti vezu koja postoji
izmeu dveju tabela. Izgled ovakvog naina spajanja u QBE-u prikazan je
na slici 4.12, a SQL upit je:

66 Sistem za upravljanje bazama podataka


Upiti

SELECT RADNIK. IME, RADNIK.POSAO, ODELJENJE.MESTO


FROM RADNIK, ODELJENJE
WHERE RADNIK. BROD=ODELJENJE.BROD AND
ODELJENJE.MESTO=DOROL;

Slika 4.12 Spajanje tabela pomou klauzule WHERE

Spoljnje spajanje (OUTER JOIN)


Ova vrsta spajanja koristi se kod odravanja baze podataka da bi se iz
tabele uklonili zapisi siroii (zapisi koji nisu u relaciji) ili duplikati podataka,
tako to se pravi nova tabela. Funkcionie tako to prikazuje sve zapise iz
jedne tabele koji zadovoljavaju postavljeni uslov i imaju parnjaka u drugoj
tabeli (spajanje po jednakosti), i sve one zapise iz te tabele za koje u drugoj
tabeli (lanu spoja) ne postoje odgovarajui zapisi. Takav je na primer radnik
koji jo nije rasporeen ni u jedno odeljenje. Access podrava dve vrste
OUTER JOIN-a, LEFT i RIGHT. U jaim sistemima za upravljanje bazama
podataka (kao to je na primer SQL Server) postoji i tzv. FULL JOIN koji
predstavlja kombinaciju Left i Right Joina u smislu da ukljuuje redove koji
nemaju parnjaka iz obe tabele.
LEFT OUTER JOIN vraa sve zapise iz tabele koju u spoju proglasimo
kao LEVU, odnosno koja je prva navedena u izrazu za spajanje (ona tabe-
la koja je sa leve strane JOIN operatora). Za zapise sa leve strane koji ne-
maju odgovarajui zapis sa desne, rezultat ima vrednost Null. Pokaimo na
primeru tri upita:

PRIMER 9: Prikazati imena svih odeljenja i imena radnika koji rade u


njima.
PRIMER 10: Prikazati imena svih odeljenja i imena radnika koji rade u
njima, ukljuujui i imena odeljenja u kojima ne radi ni
jedan radnik.

Sistem za upravljanje bazama podataka 67


MS Access

PRIMER 11: Prikazati imena svih odeljenja i imena radnika koji rade u
njima, ukljuujui i imena radnika koji su trenutno neras-
poreeni (ne pripadaju ni jednom odeljenju).
Postupak kreiranja upita iz primera 9. neemo opisivati jer je isti kao u
prethodnim primerima 7. i 8. Postupak kreiranja upita iz primera 10. je slede-
i:

1. otvoriti prozor QBE i u prvom koraku izabrati tabele ODELJENJE i


RADNIK. Izabrati polja koja uestvuju u upitu (prikazano na slici 4.13),

Slika 4.13 Izmena tipa spajanja tabela u QBE-u

2. promeniti tip veze izmeu ove dve tabele. Promena veze vri se tako to
desnim tasterom mia izaberemo liniju koja spaja ove dve tabele (slika
4.13), a zatim izaberemo JOIN PROPERTIES, kao to je prikazano na
slici 4.13,
3. otvorie nam se prozor za definisanje svojstava spajanja (slika 4.14),
4. u prozoru prikazanom na slici 4.14 izabrati opciju za LEFT OUTER JOIN
i potvrditi. SQL sintaksa koju je generisao Access imae sledei oblik:
SELECT ODELJENJE.IMEOD, RADNIK.IME
FROM ODELJENJE LEFT JOIN RADNIK ON ODELJENJE.BROD =
RADNIK.BROD;
Ako pogledamo skup rezultata koje je vratio ovaj upit moemo uoiti da
je kao ime odeljenja prikazao i Raunski centar, koji nema odgovarajuu
vrednost u tabeli RADNIK i da je umesto imena radnika u tom odeljenju vra-
tio Null-vrednost.
U odgovoru na upit iz primera 9 (kada smo u upitu koristili INNER JOIN)
Raunski centar nije bio ukljuen u skup rezultata koje vraa upit, jer nema
odgovarajui zapis u tabeli RADNIK. Takoe uoimo da je Access izostavio
kljunu re OUTER jer im postoji kljuna re LEFT, podrazumeva se da

68 Sistem za upravljanje bazama podataka


Upiti

se radi o spoljanjem spajanju. Naravno, ova kljuna re moe biti imple-


mentirana u okviru SQL sintakse.

INNER JOIN

LEFT
OUTER JOIN

RIGHT
OUTER JOIN

Slika 4.14 Prozor Join Properties (za izbor tipa spajanja tabela)
Kod kreiranja spoljanjih spojeva od izuzetnog je znaaja koju smo tabe-
lu proglasili levom, a koju desnom. U SQL-u leva tabela predstavlja
tabelu levo od kljune rei LEFT JOIN, a desna tabela desno od date klju-
ne rei. U QBE-u leva tabela postaje ona od koje poinjemo da prevlai-
mo spoj.
RIGHT OUTER JOIN vraa sve zapise iz tabele koju u spoju proglasimo
kao DESNU, bez obzira da li se odgovarajui zapisi nalaze u LEVOJ ta-
beli. Za zapise sa desne strane koji nemaju odgovarajui zapis sa leve, re-
zultat ima vrednost Null. Izrada ovakve vrste upita vri se po analogiji sa
prethodnom, osim to je potrebno kao svojstva spajanja (Join Properties)
izabrati opciju za RIGHT OUTER JOIN. SQL upit kojim se realizuje primer
11 je:
SELECT ODELJENJE.IMEOD, RADNIK.IME
FROM ODELJENJE RIGHT JOIN RADNIK ON ODELJENJE.BROD = RADNIK.BROD;

Spajanje tabela sa samom sobom (SELF JOIN)


Ova vrsta spajanja odnosi se na podatke u jednoj tabeli kada unutar ob-
jekata jedne tabele postoji relacija 1:1 ili 1:N. U Accessu se spoj tabele sa
samom sobom pravi tako to se upitu dodaje duplikat tabele (Access u ovom
sluaju sam dodeljuje pseudonim - alias za duplikat) i zatim se spajaju polja
iz originala i kopije tabele.
PRIMER 12: Prikazati IME i IFRU radnika, kao i IME i IFRU nji-
hovih neposrednih rukovodilaca.
Da se u postavci upita ne trai IME neposrednog rukovodioca koristili bi-
smo najobiniji SELECT upit nad tabelom RADNIK. Meutim, prikazivanje

Sistem za upravljanje bazama podataka 69


MS Access

bilo kog podatka o rukovodiocu radnika zahteva da se tabela RADNIK pove-


e sama sa sobom. To se postie na sledei nain:

1. u prozoru QBE izabrati tabelu RADNIK,


2. ponovo kliknemo na tabelu RADNIK i u gornjem oknu za upite (Query)
pojavljuje se jo jedna tabela RADNIK, tanije njena kopija sa imenom
RADNIK_1,
Drugi nain je da zatvorimo prozor za prikaz tabela (ShowTable), u
gornjem prozoru QBE-a kliknemo desnim tasterom mia pored tabele
RADNIK i od ponuenih opcija izaberemo Show Table (slika 4.15).
Pojavie se ponovo prozor za izbor tabela (Show Table) u kome emo
opet izabrati tabelu RADNIK. Ova tabela e se pojaviti pored tabele
RADNIK u gornjem prozoru i imae ime RADNIK_1. Ovaj postupak
primenjivaemo i kada na postojei upit hoemo da dodamo jo neku
tabelu.

Slika 4.15 Dodavanje kopije tabele RADNIK u QBE-u

3. nakon toga povezaemo tabele po atributima IDBR i RUKOVODILAC, i


to tako da je atribut IDBR uzet iz tabele RADNIK_1 i prevuen do atribu-
ta rukovodilac u tabeli RADNIK. Prevlaenje, tj. uspostavljanje veze uvek
vrimo od strane jedan ka stani vie,
4. zatim je potrebno iz tabele RADNIK izdvojiti atribute IDBR i IME i iste te
atribute iz tabele RADNIK_1 (slika 4.16). Access generie ekvivalentni
SQL upitni blok oblika:

70 Sistem za upravljanje bazama podataka


Upiti

SELECT RADNIK.IDBR AS [ifra radnika], RADNIK.IME AS [Ime radnika],


RADNIK_1.IDBR AS [ifra rukovodioca], RADNIK_1.IME AS [Ime rukovodioca]
FROM RADNIK AS RADNIK_1 INNER JOIN RADNIK ON RADNIK_1.IDBR =
RADNIK.RUKOVODILAC;

Slika 4.16 Implementacija SELF JOIN-a


Ako pogledamo rezultate koje vraa ovaj upit videemo da ima 16 zapi-
sa. Moemo postaviti pitanje ta se desilo sa preostala dva radnika? Oni su
izostavljeni iz rezultata jer nemaju rukovodioca. Da bismo videli i njihova
imena potrebno je tip veze promeniti u RIGHT OUTER JOIN, pa e nam upit
vratiti i ta dva radnika, sa vrednou Null na mestu gde treba da bude ime i
ifra rukovodioca. Prelazak na drugu vrstu spajanja, ovog puta nadesno
(RIGHT) moe se izvesti neposredno u SQL upitu, tako to umesto rei
INNER upiemo RIGHT. Tako se dobija SQL upitni blok koji ima sledei ob-
lik:
SELECT RADNIK.IDBR AS [ifra radnika], RADNIK.IME AS [Ime radnika],
RADNIK_1.IDBR AS [ifra rukovodioca], RADNIK_1.IME AS [Ime rukovodioca]
FROM RADNIK AS RADNIK_1 RIGHT JOIN RADNIK ON RADNIK_1.IDBR =
RADNIK.RUKOVODILAC;

Na ovom primeru moemo opisati jo jednu mogunost koju nudi Access


(ali i svi drugi RDBMS). To je naime promena imena polja u rezultatu. Jedan
nain je ve spomenut, a to je upotreba svojstva natpis (Caption) u polju pri
definisanju tabela. Drugi nain je prikazan u poslednja dva primera, a to je
upotreba kljune rei kao ( atribut AS [novo ime]) u klauzuli SELECT. Tako
su u ovim primerima poljima data sledea imena: RADNIK.IDBR AS [ifra
radnika], RADNIK.IME AS [Ime radnika], RADNIK_1.IDBR AS [ifra rukovo-
dioca], RADNIK_1.IME AS [Ime rukovodioca].

Sistem za upravljanje bazama podataka 71


MS Access

THETA JOIN
Ova vrsta spajanja povezuje podatke pomou operatora poreenja koji
nisu znak jednakosti (=). U Theta spojeve spadaju spojevi nejednakosti (<,
>, <=, >=, <>) koji se koriste kod upita za pronalaenje zapisa koji nemaju
neki odnos. Theta spojevi se primenjuju pomou kriterijuma Where, a ne
pomou rezervisane rei JOIN. Prozor QBE ne prikazuje Theta spojeve lini-
jama izmeu imena polja i Theta spojevi se ne pojavljuju u prozoru Relation-
ships. Ovakva vrsta spoja se kreira tako to primenimo kriterijum nejednako-
sti na jedno od dva polja iju nejednakost ispitujemo. Ovakva vrsta upita se
primenjuje u kombinaciji sa predikatom razliiti (DISTINCT).

Upiti sa izraunatim vrednostima i upotreba agregatnih


funkcija
Jedna od SQL-ovih najsnanijih mogunosti jeste skoro trenutno dobija-
nje zbirnih informacija iz odreenih skupova zapisa u tabelama. Zbirne in-
formacije iz baza podataka jesu osnova za praktino svaki upravljaki infor-
macioni sistem. Ti sistemi obino daju odgovore na pitanja kao to su: Koli-
ka je prosena plata u preduzeu?; Kolika je prosena zarada po odelje-
njima?; Ko je najbolje plaeni radnik u preduzeu?; Na kojem projektu je
angaovano najvie ljudi?; U kom odeljenju ima najvie zaposlenih?

Da bi se odgovorilo na takva i slina pitanja treba napraviti upite koji


prave proraune nad vrednostima polja u svim ili u izabranim skupovima
(grupama) zapisa tabele. Da bi se proraun izvrio nad vrednostima iz tabele
potrebno je da napravimo upit nad tabelom i da upotrebimo agregatne fun-
kcije Accessovog SQL-a, koje e obaviti proraun. Ove funkcije se tako zo-
vu zato to se primenjuju na grupe (agregate) elija podataka. SQL-ove
agregatne funkcije zadovoljavaju veinu upita koji su potrebni u poslovnim
primenama.

Ako nam je potrebna sloenija statistika, logika ili inenjerska agrega-


tna funkcija, moemo da napiemo posebnu korisniki definisanu funkciju
pomou Accessovog VBA kda. Naravno, moemo u izrazima direktno
kombinovati imena atributa, funkcije (aritmetike i agregatne) i aritmetike
operacije (+, -, * i /), ali samo ako su polja numerika i imaju isti smisao.
Nema nikakvog smisla sabirati platu sa datumom zaposlenja, ali svakako
ima smisla odrediti zaradu kao zbir plate i premija. Tabela 4.2. prikazuje ne-
ke agregatne funkcije podrane u Accessu :

FUNKCIJA OPIS TIPOVI POLJA


Svi tipovi osim: Text, Me-
Avg() Prosek vrednosti u jednoj koloni
mo i OLE
Count() Ukupan broj vrednosti nekog polja Svi tipovi polja

72 Sistem za upravljanje bazama podataka


Upiti

koja su Not Null


First() Vrednosti nekog polja u prvom zapisu Svi tipovi polja
Vrednosti nekog polja u poslednjem
Last() Svi tipovi polja
zapisu
Svi tipovi osim: Text, Me-
Max() Najvea vrednost nekog polja
mo i OLE
Svi tipovi osim: Text, Me-
Min() Najmanja vrednost jednog polja
mo i OLE
StDev(); Statistika standardna devijacija Svi tipovi osim: Text, Me-
StDevP() vrednosti jednog polja mo i OLE
Svi tipovi osim: Text, Me-
Sum() Ukupan zbir vrednosti jednog polja
mo i OLE
Var(); Statistika varijansa vrednosti jednog Svi tipovi osim: Text, Me-
VarP() polja mo i OLE

Tabela 4.2 Agregatne funkcije

Ako je potrebno uraditi agregatnu funkciju nad nekim izabranim atribu-


tom, za sve ostale atribute mora biti upotrebljena klauzula GROUP BY.

Uslovi za grupe (klauzula having)


Da bismo uspostavili uslove koji se odnose na same grupe, upo-
trebiemo klauzulu koji imaju (Having). Ova klauzula koristi se jedino ako u
upitu imamo Group By. Dok se klauzula Where primenjuje na sve redove
(zapise, slogove) pre nego to oni i postanu deo grupe, klauzula Having se
primenjuje na ve agregiranu vrednost za tu grupu. Naravno da brzina dobi-
janja odgovora nije ista, jer se pri primeni klauzule Having najpre formiraju
grupe, ukljuujui u njih i one n-torke koje ne zadovoljavaju uslove za selek-
ciju. Ukoliko se u upitu koriste sve tri klauzule onda se to mora uraditi slede-
im redosledom:
WHERE uslovi za selekciju n-torki,
GROUP BY imena atributa po kojima se vri grupisanje i, na kraju
HAVING uslov za izdvajanje podgrupa iz formiranih grupa.

Napomena: Atribut(i) po kojima se vri grupisanje moraju biti navede-


ni u klauzuli SELECT, bez obzira da li elimo da budu prikazani u
rezultatu ili ne (vidljivi ili nevidljivi).
PRIMER 13: Kolika je srednja plata vozaa?

1. Biramo karticu Create, odeljak Queries i kliknemo na dugme Query De-


sign.

Sistem za upravljanje bazama podataka 73


MS Access

2. Izaberemo tabelu RADNIK, i u njoj izaberemo polja koja su od interesa u


upitu. To su posao i plata.
3. U polju uslovi (Criteria) za atribut posao upiemo voza, jer nas zanima
prosena plata za vozae.
4. Da bismo upotrebili agregatne funkcije u QBE-u, potrebno je bilo gde u
okviru formulara za kreiranje upita kliknuti desnim tasterom mia i izab-
rati opciju Totals (slika 4.17).

Slika 4.17 Aktiviranje opcije za upotrebu agregatnih funkcija


Kada izaberemo ovu opciju u formularu e se pojaviti jo jedno polje,
koje se naziva Total. U ovom polju potrebno je izabrati agregatnu funkciju
koja nam je potrebna, ili opciju za grupisanje (Group by). U ovom sluaju za
polje plata izabrati funkciju prosek (AVG), to je prikazano na slici 4.18.
Access e za ovaj upit generisati sledei SQL kd:
SELECT RADNIK.POSAO, Avg(RADNIK.PLATA) AS [PROSECNA ZARADA]
FROM RADNIK
GROUP BY RADNIK.POSAO
HAVING (((RADNIK.POSAO)="Voza"));

Ako bi u polju posao iz padajue liste izabrali, umesto Group By opciju


Where (poslednja u nizu), rezultat upita bio bi isti, a SQL kd je:
SELECT RADNIK.POSAO, Avg(RADNIK.PLATA) AS [PROSECNA ZARADA]
FROM RADNIK
WHERE (((RADNIK.POSAO)="VOZA"))
GROUP BY RADNIK.POSAO;

74 Sistem za upravljanje bazama podataka


Upiti

Slika 4.18 Izbor agregatne funkcije


VANO: Uvek treba koristiti klauzulu WHERE za zadavanje uslova za
selekciju, a klauzulu HAVING samo za izdvajanje grupa koje zadovoljavaju
neke dodatne uslove!!!

PRIMER 14: Prikazati broj uesnika na svakom projektu.


Realizacija primera 14 u QBE-u prikazana je na slici 4.19, a SQL kd je:

Slika 4.19 Izraunavanje broja radnika angaovanih na projekrima

SELECT PROJEKAT.IMEPROJ, Count(*) AS [BROJ UCESNIKA]


FROM PROJEKAT INNER JOIN UCESCE ON PROJEKAT.BRPROJ =
UEE.BRPROJ
GROUP BY PROJEKAT.IMEPROJ;

Sistem za upravljanje bazama podataka 75


MS Access

PRIMER 15: Prikazati projekte na kojima radi vie od dva radnika.


Realizacija primera 15 u SQL-u je:
SELECT PROJEKAT.IMEPROJ, Count(*) AS [BROJ UCESNIKA]
FROM PROJEKAT INNER JOIN UCESCE ON PROJEKAT.BRPROJ =
UCESCE.BRPROJ
GROUP BY PROJEKAT.IMEPROJ
HAVING Count(*)>2;

PRIMER 16: Prikazati najveu i najmanju zaradu u svakom odeljenju.


Realizacija primera 16 u QBE-u data je na slici 4.20, a SQL kd je:
SELECT ODELJENJE.IMEOD, Min([PLATA]+NZ([PREMIJA])) AS
[MIN ZARADA], Max([PLATA]+NZ([PREMIJA])) AS [MAX ZARADA]
FROM ODELJENJE INNER JOIN RADNIK ON ODELJENJE.BROD =
RADNIK.BROD
GROUP BY ODELJENJE.IMEOD;

Slika 4.20 Izraunavanje minimalne i maksimalne zarade po odeljenjima

Rad sa Null-vrednostima i upotreba Nz funkcije


Jedna od najveih novina koje su donele relacione baze podataka jes-
te mogunost prikazivanja nepostojeeg podatka ija vrednost je nedefinisa-
na. To su Null-vrednosti i one moraju postojati:
ako u bazi postoje atributi za koje su Null-vrednosti normalne jer to
svojstvo nije primjenljivo na sve primerke nekog entiteta. Takav je na
primer atribut premija u tabeli RADNIK. Ako to svojstvo nije primenlji-
vo na veinu primeraka entiteta onda taj atribut treba eliminisati iz ta-
bele jo u fazi projektovanja. Ako je taj podatak vrlo vaan za one koji
to svojstvo imaju, onda se kreira nova tabela samo za one objekte

76 Sistem za upravljanje bazama podataka


Upiti

koji to svojstvo poseduju (u ovom sluaju moe se napraviti tabela


PREMIJA<idbr#, premija>),
ako vrednost nekog atributa za neke objekte jo nije poznata ili nije
dozvoljena (neki radnici jo uvek nemaju telefon, rukovodioca, ili nisu
rasporeeni ni u jedno odeljenje),
ako nije nastupio momenat delovanja nekog atributa (plata ili premija
za mart poznati su tek tokom aprila).
Za testiranje vrednosti kolona koje sadre Null-vrednosti na raspola-
ganju su samo dve klauzule IS NULL i IS NOT NULL

PRIMER 17: Prikai ime, kvalifikaciju, platu i premiju zaposlenih koji:


a) imaju premiju. b) nemaju premiju.
a) SELECT ime, kvalif, plata, premija b) SELECT ime, kvalif, plata, premija
FROM RADNIK FROM RADNIK
WHERE premija IS NOT NULL; WHERE premija IS NULL;

a) b)
Slika 4.21 Rad sa nedefinisanim vrednostima

Napomena: Ovde treba uoiti razliku izmeu objekata koji nemaju premiju
(imaju Null-vrednost) i objekata koji imaju premiju, a vrednost premije moe
biti i 0 (radnici Pero i Miro u tabeli na slici 4.21 a).
Nz funkciju upotrebljavamo za dodeljivanje nule, stringa duine
nula (zero-length string, ""), ili druge specificirane vrednosti kada je
vrednost atributa upotrebljenog u nekom izrazu NULL. Na primer, mo-
emo pretvoriti Null-vrednost u neku drugu da bismo izbegli greke u
proraunu. Tako je, recimo, radnicima koji zbog prirode posla ne mo-
gu imati premiju (rukovodioci, direktor, ...) zgodno pridruiti premiju iji
je iznos 0, da bi potom bilo mogue izraunati prosene zarade svih
zaposlenih (plata +premija).
Sintaksa: Nz ([ varijabla], [vrednost_ako_je_Null])

Sistem za upravljanje bazama podataka 77


MS Access

Ovo je neophodno ako u upitima upotrebljavamo proraune u kojima


uestvuju kolone koje mogu imati Null-vrednosti. U naem sluaju to je kolo-
na PREMIJA.
PRIMER 18: PRIMER: Prikazati ukupnu zaradu svakog radnika
SQL upit koji daje odgovor na ovo pitanje je:
SELECT RADNIK.IME, ([PLATA]+Nz([PREMIJA])) AS ZARADA
FROM RADNIK;

Koliko je opasna upotreba Null-vrednosti, i koliko se mora uloiti panje


da ne ni dolo do greaka koje kasnije mogu imati teke posledice, najbolje
je pokazati na primerima.

PRIMER 19: Odrediti srednju godinju platu u svakom odeljenju ne


uzimajui u obzir direktora i upravnika.

SELECT brod, AVG(plata)*12 AS [prosek plata]


FROM RADNIK
WHERE posao NOT IN (direktor, upravnik)
GROUP BY brod;

Slika 4.22 Prosene plate

PRIMER 20: Odrediti srednja godinja primanja u svakom odeljenju


ne uzimajui u obzir direktora i upravnika.
a) SELECT brod, AVG(plata +Nz(premija,0))*12 AS [prosek primanja], COUNT(*) AS
[broj zaposlenih], SUM(plata + Nz(premija,0))*12 AS [ukupni prihod]
FROM RADNIK
WHERE posao NOT IN (direktor, upravnik)
GROUP BY brod;

b) SELECT brod, AVG(plata +premija)*12 AS [prosek primanja],


COUNT(*)AS [broj zaposlenih], SUM(plata + premija)*12 AS [ukupni pri-
hod],
COUNT(premija) AS [sa premijom]
FROM RADNIK
WHERE posao NOT IN (direktor, upravnik)
GROUP BY brod;

a) taan rezultat b) netaan rezultat


Slika 4.23 Prosena primanja po odeljenjima

78 Sistem za upravljanje bazama podataka


Upiti

U primeru 20 a) proizvod prosenih primanja i broja zaposlenih jednak


je ukupnom prihodu, dok to nije sluaj u primeru b) kada je pri izraunavanju
proseka uzet u obzir samo broj zaposlenih koji imaju premiju (poslednja ko-
lona u izvetaju). Tanije, pri izraunavanju prosenih primanja ukupni pri-
hod deljen je samo sa brojem onih koji imaju premiju, a ne sa ukupnim bro-
jem zaposlenih u odeljenju ne uzimajui u obzir direktora i upravnike.

Upotreba predikata DISTINCT


Pretpostavimo da je potrebna lista brojeva svih projekata koji su u reali-
zaciji. Do te informacije moemo doi pomou sledeeg upita:
SELECT BRPROJ
FROM UCESCE;

Meutim, rezultati ovog upita, iako sa tehnikog stanovita zadovoljavaju


nae potrebe, ne zadovoljavaju ih sa stanovita realnosti. Obzirom da mnogi
radnici rade na vie od jednog projekta, u rezultatu emo dobiti dosta zapisa
koji se ponavljaju. Da bismo izbegli ponavljanje zapisa u rezultatima, upotre-
biemo predikat DISTINCT, pa e prethodni SQL iskaz dobiti oblik:
SELECT DISTINCT BRPROJ
FROM UCESCE;

Predikat DISTINCT moemo runo dodati u prozoru SQL VIEW, a ta-


koe ga je mogue dodati u QBE-u, izabravi ikonicu Query Properti-
es , pa od ponuenih opcija izabrati u svojstvu Unique values
(jedinstvene vrednosti) vrednost Yes.

Akcioni upiti
Akcioni upiti predstavljaju upite koji kopiraju, briu ili menjaju poda-
tke. U ovaj tip upita spadaju:
make table,
append,
update i
delete.
Append i make table upiti kopiraju, a update i delete menjaju ve pos-
tojee podatke. Ovi upiti su deo SQL jezika za manipulaciju podacima (DML,
Data Manipulation Language). Za potrebe vebanja ovih upita, u direktori-
jumu gde smo kreirali bazu podataka PREDUZECE.mdb, kreirati novu bazu
podataka, PREDUZECE1.mdb i u nju preuzeti (importovati) sve tabele osim
tabele RADNIK iz baze podataka PREDUZECE.mdb.

Sistem za upravljanje bazama podataka 79


MS Access

Kreiranje nove tabele pomou Make table upita


Ova vrsta upita kreira novu tabelu na osnovu svih ili dela podataka iz je-
dne ili vie tabela. Ova vrsta upita je pogodna za:

kreiranje tabele za izvoz (eksportovanje) u drugu MS Access bazu


podataka. Na primer, ako elimo da kreiramo tabelu koja treba da
sadri nekoliko polja iz tabele RADNIK i treba da se eksportuje u ba-
zu podataka koju koristi neka od ekspozitura firme,
pravljenje rezervne (backup) kopije tabele,
kreiranje tabele sa starim zapisima (history table). Na primer, elimo
da uvamo podatke o radnicima koji su penzionisani, umesto da ih
briemo iz baze podataka,
poboljanje performansi obrazaca i izvetaja baziranih na mnogo ta-
bela i upita. Na primer, elimo da kreiramo izvetaj nad pet tabela ko-
ji ukljuuje brojne kalkulacije. Moemo znaajno ubrzati generisanje
izvetaja kreiranjem make-table upita koji prihvata date informacije i
smeta ih u tabelu, a onda na osnovu te tabele kreirati izvetaj.

PRIMER 21: U bazi podataka PREDUZECE1.accdb upotrebom ma-


ke-table upita kreirati tabelu RADNIK i u nju smestiti sve
podatke o radnicima iz tabele RADNIK baze podataka
PREDUZECE.accdb. Upit nazvati qryKreirajRadnik.
Za realizaciju upita qryKreirajRadnik potrebno je:

1. u bazi podataka PREDUZECE.accdb otvoriti prozor QBE i od ponuenih


tabela izabrati tabelu RADNIK,
2. selektovati atribute koji su potrebni,
3. testirati upit. Ovaj korak je od izuzetnog znaaja kod kreiranja akcionih
upita jer akcioni upiti menjaju podatke. Da bismo videli koje podatke me-
njamo i kako e izgledati rezultati upita, pre nego to upit izmenimo u ak-
cioni, potrebno je izabrati tabelarni prikaz Datasheet view iz View liste.
Poto smo se uverili u ispravnost upita, moemo prei na korak pretva-
ranja upita u akcioni, tj. make-table upita,
4. ovo pretvaranje vri se izborom opcije Make-table query iz Query
Type liste, to je prikazano na slici 4.24,

80 Sistem za upravljanje bazama podataka


Upiti

Slika 4.24 Padajua lista za izbor tipa upita

5. u okvir za dijalog (slika 4.25) potrebno je uneti ime nove tabele (nazva-
emo je isto RADNIK) u koju izvozimo podatke i izraziti elju da li ta ta-
bela treba da bude u tekuoj bazi podataka (Current database) ili nekoj
drugoj. U naem sluaju kreiraemo tabelu u drugoj bazi podataka, tj.
PREDUZECE1.accdb, koju smo kreirali za vebanje akcionih upita. U
sluaju da baza podataka u koju izvozimo podatke nije u istom direktori-
jumu kao izvorina baza, potrebno je pored imena baze kvalifikovati i
kompletnu putanju do nje, na primer: C:\baze\praktikum\vezbe\
PREDUZECE1.accdb,

Slika 4.25 Izbor baze podataka u koju smetamo novu tabelu

6. da bismo izvrili ovaj upit, izabraemo ikonicu Run , nakon ega e se


pojaviti upozorenje (slika 4.26). Ovo upozorenje nam daje mogunost da
odustanemo od izvravanja upita,
7. kada potvrdimo izvravanje upita (izborom opcije Yes u upozorenju), u
bazi podataka PREDUZECE1.accdb, moemo uoiti upravo kreiranu ta-
belu RADNIK. Ovaj upit u SQL prozoru ima izgled kao na slici 4.27.,

Sistem za upravljanje bazama podataka 81


MS Access

Slika 4.26 Poto je operacija neopoziva Access alje upozorenje

Slika 4.27 Izgled upita qryKreirajRadnik u SQL prozoru


Ako otvorimo novokreiranu tabelu moemo uoiti da su u njoj i podaci, tj.
Make-table upiti osim to kopiraju strukturu tabele, kopiraju i podatke.

Dodavanje zapisa tabeli upotrebom upita Append query


Ova vrsta upita dodaje grupu zapisa iz jedne ili vie tabela u drugu tabe-
lu (ili tabele). Pretpostavimo da posedujemo tabelu koja sadri informacije o
novim zaposlenim radnicima, koje elimo da dodamo u tabelu RADNIK. Da
bismo izbegli unos podataka o svim novim zaposlenim radnicima, moemo
upotrebiti upit Append i automatski dodati sve te podatke. Append upiti su
takoe od pomoi za:

dodavanje zapisa baziranih na kriterijumu. Na primer, elimo da do-


damo u tabelu samo radnike zaposlene posle odreenog datuma,
dodavanje podataka samo u sluaju da neki od zapisa ne postoje u
tabeli. Pretpostavimo da u tabeli RADNIK postoje neki od novih rad-
nika, a elimo da dodamo iz druge tabele samo one koji do sada nisu
uneti.

PRIMER 22: U bazi podataka PREDUZECE1 kreirati tabelu


NOVI_RADNIK sa istim atributima kao i u tabeli RAD-
NIK. Popuniti tabelu sa podacima o dva nova radnika:
8910, Marija, analitiar, VSS, 5786, 1.12.1999, 1000,
3000, 20 i 8110, Jelena, savetnik, VSS, 5842, 9.9.2000,
2000, 4000, 40 Kreirati upit koji podacima iz tabele
RADNIK pridruuje zapise iz tabele NOVI_RADNIK. Upit
nazvati qryNoviRadnik.
Da bismo realizovali ovaj upit u prozoru QBE, potrebno je prvo selekto-
vati sve podatke iz tabele NOVI_RADNIK (izborom opcije *) i promeniti upit

82 Sistem za upravljanje bazama podataka


Upiti

u akcioni, (izborom opcije iz Query liste. Pre nego to izvrimo ovakav


tip upita preporuuje se da pogledamo kakvi e biti rezultati upita izborom
opcije Datasheet View iz liste View. Izgled ovog upita u QBE prozoru prika-
zan je na slici 4.28., a SQL kd koji generie Access je:

Slika 4.28 Realizacija Append upita u QBE-u


INSERT INTO radnik
SELECT NOVI_RADNIK.*
FROM NOVI_RADNIK;
Upotrebom upita Append mogue je dodati nove zapise koji ne potiu iz
neke konkretne tabele. Njihova reprezentacija u QBE-u ne postoji, pa ih je
potrebno direktno pisati u prozoru SQL.

PRIMER 23: U tabelu ODELJENJE dodati podatke o novom odeljenju


(BROD=60 IMEOD=realizacija, MESTO=Zemun)
INSERT INTO ODELJENJE
VALUES (60,realizacija,Zemun);

Uoimo da se prilikom navoenja tekstualnih vrednosti postavljaju znaci


navoda, to nije sluaj kod navoenja brojnih vrednosti.

Menjanje grupe podataka upotrebom upita Update


Ova vrsta upita pravi promene nad grupom zapisa u jednoj ili vie tabe-
la.
PRIMER 24: Poveati platu vozaima za 10%.
Upit nazvati qryVozacPlata.
Pre nego to se izvri ovakav tip upita preporuuje se da pogledamo ka-
kvi e biti rezultati upita izborom opcije Datasheet View iz View liste. U QBE

Sistem za upravljanje bazama podataka 83


MS Access

prozoru ovaj upit ima izgled kao na slici 4.29, a SQL kd koji generie Ac-
cess je:
UPDATE RADNIK SET RADNIK.PLATA = PLATA*1.1
WHERE (((RADNIK.POSAO)="VOZA"));

Slika 4.29 Realizacija Update upita u QBE-u


Kada zaponemo izvravanje upita, pojavljuje se poruka kao na slici
4.30, koja nas upozorava da po izvrenom upitu ne postoji nain da se vra-
timo na prethodno stanje.

Slika 4.30 Upozoravajua poruka kod Update upita


Kada potvrdimo pritiskom na OK, upit e se izvriti, a uticaj promene na
podatke moemo videti ako otvorimo tabelu RADNIK.

Brisanje grupe zapisa upotrebom Delete upita


Ova vrsta upita brie grupu zapisa iz jedne ili vie tabela. Na primer,
moemo koristiti delete upit da izbriemo iz tabele UEE radnike koji
vie ne rade na odreenom projektu. Kada koristimo delete upit, uvek bri-
emo kompletne zapise, a ne samo selektovana polja u datom zapisu.

84 Sistem za upravljanje bazama podataka


Upiti

PRIMER 25: Izbrisati radnika sa imenom Tomo sa svih projekata. Upit


nazvati qryTomo.
Izgled ovog upita u QBE-u prikazan je na slici 4.31, a da bismo ovaj upit
pretvorili u Delete Query potrebno je izabrati Delete Query iz padajue lis-
te Queries.

Slika 4.31 Realizacija delete upita u QBE-u

SQL kd koji je generisao Access je:


DELETE UCESCE.*
FROM RADNIK INNER JOIN UCESCE ON RADNIK.IDBR = UCESCE.IDBR
WHERE (((RADNIK.IME)="Tomo"));

SQL-specific upiti
U ovaj tip upita spadaju:

Subquery (ugnjedeni upiti),


union upiti ,

data definition upiti i


pass-through upiti .

Ugnjedeni upit - podupit (Subquery)


Ovaj tip upita sastoji se iz jedne SQL SELECT naredbe unutar drugog
select ili akcionog upita. Ove naredbe moemo smestiti u Field kolonu QBE

Sistem za upravljanje bazama podataka 85


MS Access

prozora da definiemo novo polje, ili u Criteria kolonu da bismo definisali


kriterijum za to polje. Upotrebljava se za:
testiranje postojanja nekih rezultata podupita (upotrebom EXISTS ili
NOT EXISTS rezervisanih rei),
pronalaenje rezultata u glavnom upitu koji su jednaki, vei ili manji od
rezultata koje vraa podupit.
Uradimo sada upit qryInnerJoinDorcol na drugi nain:
SELECT RADNIK.IME, RADNIK.POSAO
FROM RADNIK
WHERE RADNIK.BROD=(SELECT ODELJENJE.BROD
FROM ODELJENJE
WHERE ODELJENJE.MESTO="Dorol");
Ovakav pristup u kreiranju upita mogue je izvesti samo kada rezultati
upita potiu iz jedne tabele, tj. povezivanje tabela primenom unutranjeg upi-
ta u WHERE klauzulu mogue je samo ako su svi podaci koje prikazuje spo-
ljanji upit iz jedne tabele. U sluaju da se u rezultatu upita kombinuju po-
daci iz vie tabela, mora se izvriti spajanje (JOIN) dve ili vie tabela.

PRIMER 26: Prikazati IME, POSAO i PLATU radnika koji imaju isti
posao kao Slobo. Upit nazvati qryIstiPosao.
SELECT DISTINCT RADNIK.IME, RADNIK.POSAO, RADNIK.PLATA
FROM RADNIK
WHERE RADNIK.POSAO =(SELECT RADNIK.POSAO
FROM RADNIK
WHERE RADNIK.IME="Slobo");

Union upiti
Ova vrsta upita kombinuje polja (kolone) iz jedne ili vie tabela u jedno
polje ili kolonu u rezultatima upita. Pretpostavimo da u preduzeu postoje
dva mesta gde se realizuju projekti i da na svakom mestu postoji posebna
evidencija o ueu radnika na projektima, tj. postoje tabele UEE1 i
UEE2, koje imaju iste atribute kao i tabela UEE. Takoe pretposta-
vimo da postoji glavna filijala firme u kojoj se ti podaci objedinjuju u jedins-
tvenu tabelu UEE. Za ovakvu vrstu objedinjavanja podataka pogodno je
koristiti UNION upite, a postupak kreiranja je sledei:
1. u prozoru QBE izabrati Query->SQL Specific->Union. Access auto-
matski otvara SQL prozor, jer u QBE-u nije mogue kreirati UNION
upit,
2. u SQL prozoru otkucati sledei SQL kd:
SELECT * FROM UCESCE1
UNION
SELECT * FROM UCESCE2;

86 Sistem za upravljanje bazama podataka


Upiti

Ovako formiran skup rezultata moe se lako prebaciti u jednu ta-


belu. Prilikom izrade UNION upita, potrebno je voditi rauna o nekoli-
ko kljunih stvari:
svi upiti koji su obuhvaeni UNION upitom moraju imati isti broj kolo-
na u listi SELECT,
zaglavlja vraena za kombinovani skup rezultata bie uzeta samo iz
prvog upita,
tipovi podataka svake kolone u upitu moraju biti usaglaeni sa tipom
podataka u odgovarajuoj koloni u drugim upitima,
za razliku od upita koji nisu u uniji, podrazumevana opcija za povrat-
nu vrednost je DISTINCT, tj. automatski se eliminiu duplikati n-torki
koje se vraaju.

Data definition upiti


Da bismo realizovali primere ovih upita kreiraemo novu bazu podataka i
nazvati je PREDUZECE2.accdb. Ova vrsta upita kreira, brie ili menja tabe-
le. Kreiranje ovakve vrste upita postie se na sledei nain:
1. u prozoru Database izaberemo dugme Queries, a zatim izaberemo
New,
2. u New Query okviru za dijalog izaberemo Design View i OK,
3. bez dodavanja tabela i upita izaberemo Close u Show table prozoru za
dijalog,
4. u Query padajuoj listi izaberemo SQL specific, a zatim Data definiti-
on,
5. u SQL prozoru unesemo SQL kd za data-definition upit. Svaki data-
definition upit sastoji se iz samo jedne data-definition naredbe. MS Ac-
cess podrava sledee data-definition naredbe:
CREATE TABLE naredba za kreiranje tabele. Sintaksa za ovu nared-
bu je sledea:

CREATE [TEMPORARY] TABLE ime_tabele (polje1 tip_podatka [(veli-


ina)] [NOT NULL] [indeks1] [, polje2 tip_podatka [(veliina)] [NOT NULL]
[indeks2] [, ...]] [, CONSTRAINT indeks_nad_vie_polja[, ...]])

PRIMER 27: U bazi podataka PREDUZECE2.accdb upotrebom nare-


dbe CREATE TABLE kreirati sve tabele iz baze po-
dataka PREDUZECE.accdb. Pri tome onemoguiti da
polja IME i POSAO u tabeli RADNIK sadre Null-
vrednosti.
Sledi SQL kd za kreiranje tabele RADNIK:

Sistem za upravljanje bazama podataka 87


MS Access

CREATE TABLE RADNIK


(IDBR integer,
IME text (20) NOT NULL,
POSAO text (15) NOT NULL,
KVALIF text (3),
RUKOVODILAC integer,
DATZAP date,
PREMIJA integer,
PLATA double,
BROD single
);
SQL kd za kreiranje tabele ODELJENJE je:
CREATE TABLE ODELJENJE
(
BROD integer,
IMEOD text (20),
MESTO text (20)
);
Kreiranje tabela PROJEKAT i UCESCE vri se na slian nain.
Kada koristei Design View pogledamo novokreiranu tabelu RADNIK,
uoiemo da je svojstvo Required (obavezan) polja IME i POSAO postav-
ljen na Yes, to predstavlja nain da se u Design View-u onemogue Null-
vrednosti za pojedina polja.

PRIMER 28: Nad tabelom RADNIK (polje IME ) kreirati indeks. Upit
nazvati qryIndeks.
CREATE INDEX ime_index
ON RADNIK ([IME]);

INDEKS predstavlja osobinu polja koja ubrzava pretraivanje i sortiranje


po atributu za koji je definisan. Indeks takoe moe obezbediti jedinstvenost
n-torki u datoj tabeli. Primarni klju je jedini atribut koji automatski postaje
indeksiran.
Neki tipovi podataka (npr. memo i OLE) ne mogu biti indeksirani. Kada je
postavljen indeks nad nekim poljem u tabeli, svojstvo Indexed (u Design
Viewu) tog polja postavljeno je na Yes (No duplicates ili Duplicates OK).
Indeks koji obezbeuje jedinstvenost n-torki ima svojstvo Yes (No duplica-
tes), dok indeks koji samo ubrzava pretraivanje ima svojstvo Yes (Duplica-
tes OK). Indeks takoe moe biti kreiran nad vie polja, na primer nad po-
ljem IME i KVALIF istovremeno. Indeks moe biti definisan kao jedinstven i
nad grupom atributa koji nemaju funkciju primarnog kljua, ali su kandidat za
primarni klju (kada je primarni klju sastavljen od prevelikog broja atributa
rukovanje je sloeno, pa se najee uvodi nametnuti primarni klju koji je
obino tipa broja - Autonumber). SQL kd za kreiranje ovog sloenog in-
deksa je:

88 Sistem za upravljanje bazama podataka


Upiti

CREATE INDEX ime_kvalif


ON RADNIK ([IME],[KVALIF]);

ALTER TABLE dodaje novo polje ili ogranienje u ve postojeu tabelu,


tj. menja strukturu postojee tabele. SQL kd za ovu naredbu je sledei:
ALTER TABLE ime_tabele {ADD {COLUMN tip_polja[(veliina)] [NOT NULL]
[CONSTRAINT indeks] |
ALTER COLUMN tip_podatka[(veliina)] |
CONSTRAINT indeks} |
DROP {COLUMN field CONSTRAINT indexname} }

PRIMER 29: Modifikovati tabelu projekat dodavi joj kolonu ROK tipa
date. Upit nazvati qryRok.

ALTER TABLE PROJEKAT


ADD ROK date

PRIMER 30: Dodati primarni klju svim tabelama u bazi podataka


PREDUZECE2.mdb. Pri tome nad tabelom UCESCE
kreirati sloeni primarni klju koji referencira polja IDBR i
BRPROJ.
SQL kd za realizaciju ovog primera je:
ALTER TABLE RADNIK
ADD CONSTRAINT PK_RADNIK PRIMARY KEY (IDBR);

Moemo uoiti da prilikom kreiranja primarnog kljua svojstvo polja nad


kojim je kreiran primarni klju Indexed dobija vrednost Yes (No duplicates).
ALTER TABLE UCESCE
ADD CONSTRAINT PK_RADNIK_PROJEKAT PRIMARY KEY (IDBR,BRPROJ);

Kreiranje primarnog kljua nad ostalim tabelama vri se po analogiji.


PRIMER 31: Kreirati veze izmeu tabela.

ALTER TABLE RADNIK


ADD CONSTRAINT FK_ODELJENJE_RADNIK FOREIGN KEY (BROD)
REFERENCES ODELJENJE(BROD);

Kreiranje veza izmeu ostalih tabela vri se po analogiji.


DROP brie tabelu iz baze podataka ili uklanja indeks definisan nad ne-
kim poljem ili grupom polja. Sintaksa za ovu naredbu je sledea:

Sistem za upravljanje bazama podataka 89


MS Access

DROP {TABLE ime_tabele | INDEX ime_indeksa ON ime_tabele |


PROCEDURE ime_procedure | VIEW ime_pogleda}

PRIMER 32: Izbrisati indeks nad poljem IME u tabeli RADNIK. Upit
nazvati qryBrisiIndeks.

DROP INDEX ime_index ON RADNIK;

PRIMER 33: Kreirati tabelu RADNIK1 (sa istim atributima kao i tabela
RADNIK), a zatim je izbrisati. Upite nazvati
qryKreirajRadnik1 i qryIzbrisiRadnik1.

DROP TABLE RADNIK1;

Parametarski upiti
Svi upiti opisani do sada imali su u klauzuli WHERE definisan uslov za
selekciju. Zbog toga ovi upiti uvek daju iste rezultate. Na primer, ako hoemo
da saznamo imena radnika u odeljenju broj 10, postaviemo uslov WHERE
BROD=10, ako hoemo imena radnika u odeljenju broj 20, postaviemo us-
lov WHERE BROD=20 itd. Ako pretpostavimo da u preduzeu postoji 100
odeljenja, morali bismo kreirati 100 upita da bi saznali imena radnika u sva-
kom odeljenju.
Naravno, mogue je kreirati samo jedan upit koji nam daje odgovor na
ovo pitanje. U ovom upitu traimo imena radnika, a podatke (parametre) o
odeljenju koje je od interesa unosimo u toku izvravanja upita. Na taj nain,
pomou samo jednog upita moemo dobiti imena radnika u bilo kom odelje-
nju. To su takozvani parametarski upiti.
Moemo kreirati parametarski upit koji zahteva da se unese i vie od je-
dnog parametra, na primer da se unesu dva datuma, a on vraa sve podatke
koji su izmeu datuma koji su uneti. Parametarski upiti najvie se upotreblja-
vaju u kombinaciji sa obrascima i izvetajima jer omoguavaju dinamiko
kreiranje izvetaja zasnovano na parametru koji je uneo korisnik.

PRIMER 34: Prikazati ime i platu svih radnika odreene kvalifikacije,


koju korisnik naknadno unosi. Upit nazvati
qryParametarski.

Da bismo uradili ovaj primer, potrebno je:


1. po ve opisanom postupku pokrenuti prozor QBE i iz liste ponuenih ta-
bela izabrati tabelu radnik

90 Sistem za upravljanje bazama podataka


Upiti

2. atributi koji su nam potrebni su ime, radnik i kvalif, s tim to polje kvalif
nije potrebno da se vidi, pa treba iskljuiti polje show.
3. u polje criteria atributa kvalif uneti tekst [Unesite kvalifikaciju:]. Ovaj
tekst e se pojaviti prilikom izvravanja upita,
4. u Design View prozoru upit e izgledati kao na slici 4.32,
5. kada pokrenemo ovaj upit, pojavie se okvir za dijalog prikazan na slici
4.33.

Slika 4.32 QBE parametarskog upita

Slika 4.33 Okvir za dijalog u koji unosimo parametar

Pretpostavimo da smo naveli kvalifikaciju VSS, dobiemo rezultate kao


na slici 4.34.

Sistem za upravljanje bazama podataka 91


MS Access

Slika 4.34 Rezultati parametarskog upita za unet parametar VSS

Izgled SQL bloka za ovaj parametarski upit prikazan je na slici 4.35.

Slika 4.35 Izgled parametarskog upita u SQL View prozoru


U sluaju da ne unesemo parametar ili unesemo parametar za koji ne
postoji odgovarajua vrednost, upit e se izvriti, ali nee vratiti ni jedan za-
pis.

Upiti unakrsnih tabela (Crosstab query)


Upiti unakrsnih tabela su zbirni upiti u kojima moemo tano odrediti ka-
ko zbirni podaci treba da izgledaju na ekranu. Ovi upiti prikazuju zbirne po-
datke u uobiajenom rasporedu redova i kolona kao radne listove i imaju
mnoge slinosti sa izvedenim (Pivot) tabelama, koje koristi Excel. U upitima
unakrsnih tabela moemo:

odrediti polje koje e initi labele (nazive) redova pomou instrukcije


Group By,
odrediti polje (ili polja) koje e formirati zaglavlja kolona i kriterijume
za odreivanje vrednosti koje e se pojaviti pod zaglavljem,
dodeliti elijama u mrei rezultate, izraunate vrednosti podataka.

92 Sistem za upravljanje bazama podataka


Upiti

Prednosti unakrsnih tabela su:

veliki broj sumarnih podataka moemo prikazati u kompaktnom obli-


ku koji je blizak svakome ko koristi aplikacije sa radnim listovima ili
obrazac za knjienje sa kolonama,
zbirni podaci prikazani su u formatu idealnom za automatsku izradu
grafikona i dijagrama pomou alatke Access Chart Wizard,
brzo i lako projektovanje upita koji e obezbediti vie nivoa deta-
lja.Upiti identinih kolona a sa manje redova predstavljaju vie nivoe
zbira. Veoma saeti upiti su idealni kao poetni prikaz sa koga, na
primer, upuujemo korisnika da pritisne dugme details da bi video re-
zultate prodaje prema proizvodima.

Pass-through upiti
Ovaj tip upita alje komande direktno ODBC1 izvorima podataka, kao to
su na primer Microsoft FoxPro i Microsoft SQL Server, upotrebom komandi
koje prihvata server. Ovaj tip upita pogodan je za izvravanje stored proce-
dura (uskladitenih procedura) na serveru prijavljenom kao ODBC izvor po-
dataka.

Zadaci za samostalan rad:


4.1. Prikazati nazive i lokacije svih odeljenja.

4.2. Prikazati ime, kvalifikaciju i ifru svih radnika.

4.3. Prikazati sve kvalifikacije radnika.

4.4. Prikazati samo razliite kvalifikacije radnika.

4.5. Prikazati sve radnike iz odeljenja 30 ija je plata vea od 1000 evra.

4.6. Prikazati u opadajuem redosledu sve radnike ija je plata izmeu


1000 i 3000 dinara (ukljuujui i te vrednosti).

4.7. Prikazati ime, posao i premiju za sve radnike koji ne primaju premiju.

1
ODBC predstavlja standardni protokol za pristup bazama podataka lociranim na database serverima,
kao to je na primer Microsoft SQL Server. Moemo instalirati ODBC drajver da bismo omoguili MS
Accessu da pristupi informacijama na nekom serveru.

Sistem za upravljanje bazama podataka 93


MS Access

4.8. Prikazati imena svih radnika ije ime poinje na P

4.9. Prikazati ime i datum zapoljavanja radnika zaposlenih 17.12.1990.

4.10. Prikazati imena svih radnika koji u imenu imaju slovo o.

4.11. Prikazatu ukupan broj radnika u svakom odeljenju

4.12. Odrediti srednju godiju platu za svako odeljenje. Pri izraunavanju


izuzeti upravnike.

4.13. Koji radnici imaju manje od 30% zarade direktora?

4.14. Koliko radnika radi u Beogradu?

4.15. Prikazati ime i posao radnika ija je kvalifikacija KV.

4.16. Prikazati imena svih vozaa u odeljenju 10.

4.17. Prikazati imena svih radnika koji nisu upravnici ni analitiari.

4.18. Prikazati ime i platu svih radnika.

4.19. Prikazati ime i premiju svih radnika.

4.20. Prikazati ime i ukupna primanja svih radnika.

a. Rezultate prikazati po primanjima u rastuem redosledu.

b. Rezultate prikazati ureene po primanjima u opadajuem,


a zatim po imenima u rastuem redosledu.

4.21. Prikazati imena samo onih radnika koji ne primaju premiju.

4.22. Prikazati nazive odeljenja i prosena primanja u svakom odeljenju.

4.23. Prikazati nazive projekata i broj uesnika na svakom projektu.

4.24. Upotrebom naredbe CREATE TABLE kreirati tabelu PENZIONISANI


sa istim atributima kao i kod tabele RADNIK .

4.25. Upotrebom naredbe ALTER TABLE tabeli PENZIONISANI dodati


kolonu dat_penz (datum penzionisanja) tipa date.

4.26. U tabelu PENZIONISANI prebaciti sve radnike zaposlene pre 1.1.


1970.

94 Sistem za upravljanje bazama podataka


Upiti

4.27. U tabelu PENZIONISANI dodati radnika sa imenom Miro.

4.28. U tabelu radnik uneti podatke o sledeem radniku: 5555, Milena, ana-
litiar, VSS, 5662, 1.1.2000, 3000, 1500, 10.

4.29. Dodati Milenu na projekat plasman.

4.30. Izbrisati iz tabele RADNIK podatke o Mileni. Da li je to mogue i kada?

Napomena: SQL i QBE ne razlikuju mala i velika slova pa su u primeru 6.


koriena mala slova (dorol), a u primeru 8. prvo slovo je veliko (Dor-
ol), a u primeru na slici 4.11. koriena su sva velika slova
(DOROL). U primeru 13 koriene su takoe razliito pisane rei za
posao voza (voza, Voza i VOZA). U sva tri sluaja odgovor na upit
bio je isti, a Access nije pravio nikakvu razliku.

Sistem za upravljanje bazama podataka 95


5. Obrasci
Obrasci (Forms) slue za kreiranje korisnikog interfejsa za lake auri-
ranje, brisanje i unoenje podataka u tabele i/ili pregledniji prikaz rezultata
dobijenih iz njih. Dobro projektovan obrazac ubrzava unos i auriranje poda-
taka, smanjuje mogunost greke pri njihovom unoenju, a rezultat ini pre-
glednijim i pribliava ga korisniku.
Podaci se mogu prikazivati na vie naina, pa samim tim postoji i vie
vrsta obrazaca:

obrasci sa poljima rasporeenim u kolone,


tabelarni obrasci,
tabelarni prikazi,
glavni obrasci/podobrasci,
obrasci za izvedene tabele, i
dijagrami.

Kreiranje obrazaca
Da bismo kreirali novi obrazac potrebno je najpre iz trake sa alatkama
izabrati karticu Create i u njoj pronai deo koji se odnosi na obrasce
(Forms), slika 5.1.

Slika 5.1 Create / Forms - mogui naini za kreiranje obrazaca

Kao to se moe uoiti na slici 5.1, MS Access nudi nekoliko naina za


kreiranje obrazaca:

Form automatsko kreiranje obrazaca na osnovu selektovane tabe-


le,
Form Design kreiranje obrazaca u reimu projektovanja (runo
kreiranje),
Blank Form - prazna forma otvorena u Layout Viewu,
Form Wizard kreiranje obrazaca pomou arobnjaka.
Obrasci

Izrada obrasca preko opcije Form


PRIMER 1: Ovaj nain se koristi za kreiranje obrazaca nad jednom
tabelom ili upitom. Obrazac kreiran na ovaj nain, pomo-
u Form, sadri sve atribute izabrane tabele/upita nad
kojom je kreiran. Pored toga, u sluaju kada je selekto-
vana tabela u vezi 1:M sa nekom tabelom, ova opcija e
kreirati i podobrazac na osnovu te druge tabele. Kako
ovo izgleda, moemo videti na sledeoj slici
(5.2).Koristei arobnjak Form kreirati obrazac nad ta-
belom ODELJENJE. Obrazac nazvati frmOdeljenje.
Izrada obrazaca pomou ovog arobnjaka odvija se u dva klika. Prvo
emo odabrati izvor podataka (tabelu ili upit) u levom panelu, a zatim emo
kliknuti na dugme Form (kartica Create - slika 5.1). Korienje ovog naina
za izradu obrazaca je vrlo jednostavno i brzo, ali ne omoguava fleksibilnost
u radu. Nemamo nikakva dodatna podeavanja preko kojih bismo kontrolisa-
li krajnji izgled forme. Ono to nam svakako stoji na raspolaganju je da obra-
zac dobijen na ovaj nain dalje modifikujemo u Design ili Layout
Viewovima. Ove mogunosti emo videti kasnije u ovom poglavlju.
Dakle, posle selektovanja tabele ODELJENJE i klika na dugme Form
dobiemo obrazac koji izgleda kao na slici 5.2.

Slika 5.2 Izgled obrasca nad tabelom ODELJENJE kreiranog pomou opcije
Form

Jedan od objekata na obrascu kreiranom pomou arobnjaka jeste obje-


kat za kretanje kroz zapise (navigaciju). Ovaj objekat se nalazi u podnoju
obrasca i ima nekoliko metoda (dugmadi): prvi (First), sledei (Next), pret-
hodni (Previous), zadnji (Last) i novi (New) zapis (slika 5.3).

Sistem za upravljanje bazama podataka 97


MS Access

Ukupan
broj za- Novi Filtriranje
Prvi zapis zapis Pretraga
pisa

Posled-
Prethod- Aktivan zapis nji zapis
Sledei
ni zapis
zapis

Slika 5.3 Objekat za kretanje kroz zapise (navigaciju)

Forme moemo posmatrati na 3 naina (Views). To su: Form, Design i


Layout View.

Form View je korisniki pogled - koristimo formu tako to nam njene


kontrole prikazuju podatke iz svog izvora i omoguuju dodavanje, izmenu i
brisanje tih podataka. Izmena same forme u smislu veliine, poloaja, natpi-
sa, boje itd. njenih delova (kontrola) u ovom prikazu nije dozvoljena.

Design View je pogled na obrazac koji nam omoguava njegovo me-


njanje na razliite naine. Kada smo u ovom prikazu moemo manipulisati
kontrolama kao to su Text Box, Label, Button, njihovim svojstvima: Name,
Caption, Width, Height, Top, Left, Back Color, Font Size i sl. kao i delovima i
svojstvima same forme. Ipak, kada smo u Design pogledu, neemo moi da
pristupamo podacima - ovde obavljamo poslove vezane za izgled i funkcio-
nalnost same forme, ali je ne koristimo kao alat za obradu podataka. Narav-
no, prebacivanje iz Design u Form View i obrnuto radi pravljenja i dorade sa
jedne i testiranja tih promena sa druge strane je mogue i vrlo poeljno.

Layout View predstavlja pogled koji se po svojim svojstvima nalazi


negde izmeu Design i Form Viewa. Slian je Designu zato to nam dozvo-
ljava modifikaciju forme na puno naina, ali nam uz to prikazuje i podatke.
Layout je uveden u verziji 2007 Accesa i slui prvenstveno radu sa vizuelnim
elementima forme. Obzirom da imamo prikazane podatke, lake e nam biti
da procenimo odgovarajuu irinu kontrole ili visinu zaglavlja forme i sl. Neke
promene obrasca koje su dozvoljene u Designu nisu dozvoljene u Layoutu,
pa e nam ponekad biti prikazana poruka da moramo prei u Design View
da bismo zavrili zapoetu aktivnost.

Za automatsko kreiranje malo sloenijih ablona koristiemo alat Form


Wizard.

98 Sistem za upravljanje bazama podataka


Obrasci

Zadatak za samostalan rad:


5.1. Kreirati obrazac frmPROJEKAT za unos podataka o projektima, koris-
tei opciju Form.

Kreiranje obrazaca pomou Form Wizarda


Pomou ovog alata obrasci se izrauju sa vie fleksibilnosti, ali i rada od
strane korisnika. Mogue je praviti obrasce (sa ili bez podobrazaca) koji sa-
dre polja iz jedne ili vie tabela ili upita. Takoe je mogue birati atribute i
njihov redosled pojavljivanja u obrascu, kao i stil prikaza obrasca. Sam Ac-
cess vodi nas kroz postupak kreiranja od jednog koraka do sledeeg (dugme
Next), sve do zavretka (Finish).

PRIMER 2: Pomou alata Form Wizard kreirati obrazac nad tabelom


RADNIK koji e sadrati sve atribute te tabele. Obrazac
nazvati frmRadnik.

1. U prozoru Accessa izabrati karticu Create, deo obrasci Forms i opciju


Form Wizard za kreiranje novog obrasca.

2. Pre ovog koraka smo mogli selektovati tabelu RADNIK u panelu sa obje-
ktima baze podataka (slika 5.4). U tom sluaju bi nam selektovana tabela
bila predloena u prvom koraku wizarda (odabir tabela i atributa). Ovo ni-
je obavezno i izvor podataka moemo definisati i u sledeem koraku.

Napomena: Tabela ili upit mogu se izabrati i u sledeem prozoru Form


Wizarda, za razliku od opcije Form koja nee biti ni ponuena ako pret-
hodno nismo odredili nad kojim izvorom podataka emo praviti obrazac.

Biranje
tabele za Form

Slika 5.4 Izbor tabele RADNIK nad kojom emo kreirati obrazac

Sistem za upravljanje bazama podataka 99


MS Access

3. Sada nam se otvara prozor Form Wizard (slika 5.5.) u kome biramo koja
e polja izabrane tabele/upita biti prikazana u obrascu. U delu raspoloi-
va polja (Available Fields) je lista svih polja izabrane tabele/upita. U de-
lu izabrana polja (Selected Fields) je lista polja koje smo izabrali. Dvos-
trukim klikom na odreeno polje ili selektovanjem polja i pritiskom na od-
govarajue dugme vrimo prebacivanje raspoloivih polja.

Izbor tabe-
le/upita

Izabrana
polja za
obrazac
Sva polja
izabrane
tabele/upita

Slika 5.5 Prozor za izbor polja koja e biti prikazana na obrascu

Dugmad za prebacivanje polja izmeu lista Available Fields i Selected


Fields:

dugme za prebacivanje polja iz liste raspoloivih (Available)


u listu izabranih (Selected),
dugme za prebacivanje svih polja iz liste raspoloivih (Avai-
lable) u listu izabranih (Selected),
dugme za prebacivanje izabranog polja iz liste izabranih (Se-
lected) u listu raspoloivih (Available), i

dugme za prebacivanje svih polja iz liste izabranih (Selected)


u listu raspoloivih (Available).
U ovom primeru obrazac treba da sadri sva potrebna polja pa emo
izabrati sve atribute tabele RADNIK.
4. Zatim biramo kakav prikaz podataka elimo na obrascu (slika 5.6.).

100 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.6 Prozor za izbor rasporeda objekata na obrascu

5. Pritiskom na dugme sledei (Next) otvara se poslednji prozor za kre-


iranje obrasca pomou Form Wizarda (slika 5.7) u kome treba imenovati
obrazac. Access nudi ime po imenu tabele, koje se moe i promeniti. Iz-
brisaemo ponueno ime i nazvati obrazac frmRADNIK[1]. U ovom kora-
ku bira se i opcija da li e se obrazac otvoriti u reimu pregleda (podra-
zumevano) ili u reimu za menjanje (sve izmene mogu se uraditi i nak-
nadno) .

Slika 5.7 Imenovanje tabele

[1]
Uobiajena praksa kod imenovanja objekata u MS Accessu je dodavanje prefiksa koji oz-
naava o kom objektu se radi. Tako emo imenu obrasca dodeliti prefiks frm, to je
skraenica od form, izvetaju rep, to je skraenica od report, tekstualnom polju
txt, padajuoj listi cmb, labeli lab i komandnom dugmetu cmd.

Sistem za upravljanje bazama podataka 101


MS Access

6. Pritiskom na dugme kraj (Finish) otvara se novokreirani obrazac


RADNIK u radnom reimu (slika 5.8).

Slika 5.8 Izgled obrasca kreiranog nad tabelom RADNIK

Izrada obrazaca na osnovu dve tabele pomou opcije


Form Wizard
Za razliku od opcije Form, opcija Form Wizard nudi kreiranje obrazaca
koji sadre polja iz vie tabela.

PRIMER 3: Upotrebom alata Form Wizard kreirati obrazac nad ta-


belom ODELJENJE sa podobrascem nad tabelom
RADNIK, koji omoguuje auriranje radnika po odelje-
njima.Obrazac nazvati frmOdeljenjeRadnik, a podobra-
zac subfrmRadnik.

1. Sa kartice Create izabrati opciju Form Wizard. Pojavie se prozor Form


Wizard, koji je prikazan na slici 5.9.
2. Iz padajue liste Tables/Queries izabrati tabelu RADNIK i pritiskom na
dugme selektovati sve atribute (polja) iz tabele.
3. Poto se ovaj obrazac zasniva na podacima iz dve tabele treba postupak
ponoviti i za tabelu ODELJENJE. Svi atributi koji su selektovani pojavie
se u desnom prozoru (prozor Selected Fields, selektovana polja). Ako
na ovaj nain izaberemo atribute, oni e biti prikazani u istom redosledu
u kom su i definisani u tabeli.
4. Mogu je takoe selektivan izbor atributa koji e biti prikazani u obrascu,
pritiskom na dugme . Kada biramo atribute na ovaj nain, bie prika-

102 Sistem za upravljanje bazama podataka


Obrasci

zani u onom redosledu u kom su izabrani. Ako se predomislimo u vezi


izbora atributa uvek je mogue deselektovati atribut pritiskom na taster
, ili sve atribute, pritiskom na taster .

Slika 5.9 Form Wizard - izbor tabela i atributa nad kojima kreiramo obrazac

5. Kada selektujemo sve atribute koji su nam potrebni prelazimo na sledei


korak (pritiskom na dugme Next). Pojavie se drugi prozor Form
Wizarda, koji je prikazan na slici 5.10.

Slika 5.10 Form Wizard - izbor tabele prema kojoj gledamo podatke

6. Ovaj prozor pojavljuje se samo u sluaju kada smo izabrali atribute iz


vie tabela. U ovom koraku treba da izaberemo prema kojoj tabeli emo

Sistem za upravljanje bazama podataka 103


MS Access

pregledati podatke. Poto elimo da pregledamo podatke po odeljenjima,


sa podacima o radnicima u svakom odeljenju, izabraemo opciju By
ODELJENJE i pritisnuti dugme sledei (Next).

Slika 5.11 Dodela naziva obrascu i podobrascu

7. U sluaju da smo se predomislili u vezi izbora ove opcije, uvek je mogu-


e vratiti se korak nazad pritiskom na dugme prethodni (Back).
8. Ako izaberemo opciju Form with subform(s), obrazac i podobrazac e
se pojaviti u istom prozoru, a izborom opcije za povezan obrazac (Lin-
ked forms) na glavnom obrascu e biti kreirano dugme koje otvara po-
vezan obrazac. Izabraemo opciju Form with subform(s) i prei na iz-
vravanje sledeeg koraka (dugme Next). Pojavie se prozor prikazan
na slici 5.11.
9. U sledeem koraku odluujemo se za nain prikaza podataka u podob-
rascu. Ako izaberemo opciju Datasheet, podaci e biti prikazani kao i u
tabelarnom obliku. Izabraemo Tabular, jer e u ovakvom nainu prikaza
stil podobrasca biti isti kao i stil glavnog obrasca.
10. Pojavie se poslednji prozor Form Wizarda, koji je prikazan na slici 5.12.
11. U poslednjem koraku potrebno je dati ime obrascu (frmOdeljenjeRad-
nik) i podobrascu (subfrmRadnik) i pritisnuti dugme kraj Finish. Kona-
no je kreiran obrazac za prikaz i unos podataka, prikazan na slici 5.13.
12. Obrazac na slici 5.13. istovremeno prikazuje podatke iz tabela
ODELJENJE i RADNIK koje su u relaciji 1:N. Pri tome n-torke iz tabele
ODELJENJE prikazuje po kolonama, tj u jednom trenutku mogue je vi-
deti samo jednu n-torku. Pri tome se za svaku odabranu n-torku iz tabele
ODELJENJE (podaci o jednom odeljenju) prikazuju odgovarajue n-torke
iz tabele RADNIK, tj samo radnike koji rade u tom odeljenju. Kretanje
kroz zapise iz tabele ODELJENJE odvija se preko komandi u spoljnjem
okviru obrasca.

104 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.12 Izbor naina za prikazivanje podobrasca

Kretanje kroz
zapise tabele
ODELJENJE Kretanje kroz zapise
tabele RADNIK

Slika 5.13 Izgled obrasca kreiranog pomou Form Wizarda

13. Prilikom kreiranja podobrasca pomou arobnjaka obrazac i podobrazac


se automatski povezuju. Ovo povezivanje mogue je ostvariti i u reimu
projektovanja (Design View) podeavanjem opcije u prozoru Properties
podobrasca, slika 5.14. a). Potrebno je u poljima Link Child Fields i
Link Master Fields izabrati atribute po kojima se vri povezivanje, slika

Sistem za upravljanje bazama podataka 105


MS Access

5.14. b), u ovom sluaju to je atribut RADNIK.BROD (spoljnji klju tabele


RADNIK) i atribut ODELJENJE.BROD (primarni klju u tabeli
ODELJENJE).

a) Prozor Property Sheet za podobrazac

b) Prozor za povezivanje obrasca i podobrasca


Slika 5.14 Povezivanje obrasca i podobrasca u reimu projektovanja

PRIMER 4: Kreirati obrazac frmUcesce (na osnovu tabele


UEE) koji sadri atribute o identifikacionom broju
radnika, broju projekta i broju sati, koristei opciju Form
Wizard.
Ponoviemo postupak kreiranja obrasca pomou arobnjaka, s tim sto
emo izabrati samo atribute IDBR, BRPROJ i BRSATI. Dobiemo obrazac
izgleda kao na slici 5.15.

Slika 5.15 Izgled obrasca koji sadri samo neke atribute (polja) iz tabele
uee

106 Sistem za upravljanje bazama podataka


Obrasci

Korienje prozora za projektovanje obrazaca


Da bismo modifikovali izgled obrasca, potrebno je u Database prozoru
izabrati obrazac koji elimo da modifikujemo, a zatim pritisnuti dugme De-
sign. Sami obrasci imaju sledee reime rada, tj. izglede:

Form View (radni reim),


Design View (reim projektovanja) i
Layout View (reim pregleda, rasporeda delova).
Ove reime rada mogue je u svakom trenutku menjati izborom odgova-
rajue opcije iz padajue liste View, kao to je prikazano na slici 5.16.

Slika 5.16 Reimi rada obrazaca

Obrazac koji smo kreirali pomou alata Form Wizard u reimu projekto-
vanja (Design View) ima izgled kao na slici 5.17.
Prozor koji se vidi u reimu projektovanja (slika 5.17.) predstavlja okvir
sa alatkama (Toolbox) i slui za postavljanje novih kontrolnih elemenata[1] u
obrazac.

[1]
Kontrolni elementi (kontrole) su objekti koje nudi Access za prikaz podataka iz tabela ili
upita (tekstualno polje, padajua lista) ili za dizajn (labele, okviri sa slikama).

Sistem za upravljanje bazama podataka 107


MS Access

Okvir sa
alatkama

Slika 5.17 Izgled obrasca u Design Viewu (reim projektovanja)

Elementi prozora za projektovanje obrazaca


Obrazac moe da se podeli na sledee delove:

Form Header (zaglavlje, tj. gornja kolona obrasca),


Page Header (zaglavlje, tj. gornja kolona stranice),
Detail (detalji),
Page Footer (podnoje, tj. donja kolona stranice),
Form Footer (podnoje, tj. donja kolona obrasca).
Svaki obrazac mora imati Detail element, a gornje i donje kolone strani-
ce nisu obavezne.
Prozor za projektovanje obrazaca sadri sledee osnovne elemente:

paleta alatki za projektovanje (Form Design) sastoji se od dugmadi


koja predstavljaju raspoloive kontrole koje moemo dodavati na
formu, uobiajene delove za zaglavlje i futer, dodavanje novih atribu-
ta iz izabranog izvora podataka (na formi e biti prikazane kao kon-
trole - npr Text Box i sl.), prikazivanje i sakrivanje svojstava selekto-
vane kontrole itd,

108 Sistem za upravljanje bazama podataka


Obrasci

paleta alatki za preureivanje (Arrange) koja sadri dugmie vezane


za rad sa tabelama (izgled, dodavanje redova/kolona, ...), pozicijom i
redosledom kontrola,
paleta alatki za uobliavanje (Format) sa dugmadima koja predstav-
ljaju preice za boju, tekst, okvir i druge opcije formatiranja,
vertikalni i horizontalni lenjiri slue za procenu dimenzija i poloaja
objekata na obrascu,
vertikalna linija oznaava poloaj desne margine obrasca. Ovu liniju
moemo pomerati miem i time menjati irinu vidljivog dela obrasca,
vrh linije Form Footer jeste donja margina obrasca. I ovu liniju mo-
emo pomerati miem. Margine su vane kada projektujemo podob-
razac koji treba da se uklopi u pravougaonik odreenih dimenzija na
glavnom obrascu,
vertikalna i horizontalna traka za pomeranje sadraja (scrollbar) slu-
i za pregledanje delova obrasca koji prelaze okvir prozora obrasca,
linija Form Header odreuje visinu zaglavlja obrasca. Ta linija je pri-
kazana jedino ako odredimo da obrazac treba da ima zaglavlje i pod-
noje ili ako pravimo obrazac pomou alatke Form Wizard. Gornje
zaglavlje obrasca (Form Header) sadri fiksan tekst, slike i druge
kontrole koje se nalaze na vrhu obrasca. Ako obrazac ima vie stra-
nica, gornje zaglavlje obrasca prikazuje se samo na prvoj stranici,
dok se zaglavlja i podnoja stranice vide na svakoj tampanoj strani
forme. Zaglavlja i podnoja obrasca i stranice ne prikazuju se u rei-
mu dizajniranja obrasca, osim ako iz kontekstnog menija (desni klik
na formu, bilo gde osim na neku kontrolu) ne odaberemo opciju
From Header/Footer, odnosno Page Header/Footer,
linija Form Detail odvaja zaglavlje od ostatka obrasca. Kontrole ob-
razaca koje slue za prikazivanje podataka iz tabela i upita sa dodat-
kom fiksnih elemenata, kao to su labele i kontrolna dugmad, nalaze
se u podruju Form Detail,
linija Form Footer odreuje visinu podnoja obrasca. Deo Form Foo-
ter ima slinu funkciju kao i deo Form Header. Ako tampamo obra-
zac koji sadri vie stranica, Form Footer se pojavljuje samo na dnu
poslednje stranice, dok se Page Footer tampa na dnu prethodnih
stranica.

Dugmad sa palete alatki za projektovanje obrazaca


Poto postoji dosta standardnih dugmadi koja se pojavljuju u svim Office
programima, pomenuemo samo ona koja su karakteristina za MS Access

Sistem za upravljanje bazama podataka 109


MS Access

(tabela 5.1). Dakle, ovo su neke od funkcionalnosti kojima moemo pristupiti


sa Form Design Tools kartice Design:

Dugme Ime Funkcija

Logo Na obrazac (tanije zaglavlje obrasca) dodaje


neku sliku koju korisnik odabere kao logo
Naslov Dodaje naslov u zaglavlje obrasca

Datum i vreme Dodaje datum i/ili vreme u zaglavlje obrasca

Dodavanje polja Dodavanje atributa (polja) iz ranije izabranog


izvor apodataka na obrazac

Svojstva Prikazuje odnosno sakriva prozor sa svojs-


tvima selektovanog dela obrasca
Tab redosled Omoguava (re)definisanje redosleda po ko-
jem e se korisnik kretati korienjem Tab
tastera
Tabela 5.1. Dugmad sa palete alatki za projektovanje obrazaca

Kontrole u obrascu
Na Accessovim obrascima i izvetajima postoje tri kategorije kontrolnih
objekata:
povezane kontrole (Bound) pridruene su poljima u izvoru podataka
za obrazac ili podobrazac. Izvor podataka moe da bude tabela ili
upit. Pridruene kontrole prikazuju i auriraju vrednosti elija podata-
ka u pridruenom polju trenutno izabranog zapisa. Najee pridru-
ene kolone jesu polja za tekst. U pridruenom OLE objektu moe da
se prikae sadraj grafikog objekta ili audio datoteke u talasnom ob-
liku. Dugmad za promenu stanja i polja za potvrdu mogu se pridruiti
poljima koja mogu da imaju samo dve vrednosti. Grupa opcionih du-
gmadi moe da se pridrui poljima sa numerikom vrednou. Sve
pridruene kontrole imaju labele koje prikazuju svojstvo Caption po-
lja. Labele moemo ureivati ili izbrisati bez uticaja na pridruenu ko-
lonu,
nepovezane kontrole (Unbound) prikazuju podatke koji ne zavise od
izvora podataka. Nepridrueni OLE objekti se koriste za dodavanje
crtea ili bit-mapirane slike na obrazac. Linije i pravougaonici dele
obrazac na logike celine i podraavaju okvire tampanog obrasca.
Nepridruena polja za tekst koriste se za unos podataka koji nisu
namenjeni auriranju nekog polja u izvoru podataka, ve imaju neku
drugu namenu, na primer za prihvatanje vrednosti koja e se koristiti
u izrazu. Neke nepridruene kontrole, kao to su nepridruena polja

110 Sistem za upravljanje bazama podataka


Obrasci

za tekst, imaju labele, dok ih druge, kao to su na primer nepridrue-


ni OLE objekti, nemaju. Labele su takoe nepovezane kontrole,

izraunate kontrole koriste izraze kao izvor podataka. Obino izraz


sadri vrednost nekog polja ali se ne mogu koristiti vrednosti koje po-
tiu iz nepridruenih polja za tekst.

Panel sa kontrolama (Controls)


Ovaj okvir (slika 5.18) koristi se da se na obrazac ili izvetaj doda kon-
trolni objekat.

Slika 5.18 Okvir sa alatima (Toolbox) za dodavanje kontrola u obrasce

Ove ikone predstavljaju redom: biranje objekta, polje za tekst, labela,


dugme, tab kontrola, (hiper)link, grupa opcija, prelom stranice, padajuca lis-
ta, dijagram, linija, dugme za promenu stanja, lista, pravougaonik, polje za
potvrdu, okvir za nepovezani objekat, dugme za izbor opcije, podforma tj.
podizvetaj, povezani objekat, slika.

Svojstva obrazaca i kontrola (Property Sheet)


Obrasci su takoe objekti koji imaju svoja svojstva (Properties). Do pro-
zora sa svojstvima obrasca dolazimo tako to pozicioniramo kursor na sivu
povrinu obrasca (van margina) i pritiskom na desni taster mia, a za-
tim izborom opcije Properties iz kontekstnog menija.
Definisanjem osobina obrazaca mogu se postii dodatni efekti u pogledu
zatite podataka od zlonamernog ili sluajnog menjanja ili unitenja. Naime,
na nivou obrasca moe se dopustiti ili zabraniti izmena podataka Allow
Edits (Yes/No), brisanje Allow Deletion (Yes/No), dodavanje podataka
Allow Additions (Yes/No) i slino.
Obrasci omoguavaju dodatnu kontrolu pristupa podacima, tj. zapisima
preko mehanizama zakljuavanja. To obezbeuje svojstvo Record Locks
koje moe imati tri vrednosti: bez zakljuavanja (optimistiki-No Locks), svi
zapisi (pesimistiki, zakljuava se itava tabela-All Records) ili samo zapis
koji se aurira (Edited Record). Na taj nain dozvoljava se ili zabranjuje pri-
stup zakljuanim podacima svim drugim obrascima (odnosno korisnicima).
Access nudi korisniku veliki broj ugraenih objekata (kontrola) i svaki
ima sopstvena svojstva kojih ima preko 40, pa su zato razvrstani po funkci-
jama u 4 kartice: uobliavanje (Format), podaci (Data), dogaaji (Event) i
ostala (Other). Svojstva se mogu sva prikazati i u abecednom redosledu
(All), ali je ime (Name) uvek na prvom mestu. Svaki objekat sem imena ima

Sistem za upravljanje bazama podataka 111


MS Access

pridrueni natpis (Caption), svoj poloaj na formi (gornji levi ugao), dimenzi-
je (irina i visina) itd. Objekat se moe uiniti nevidljivim (svojstvo Visible
(Yes/No)), nedostupnim (svojstvo Enabled (Yes/No)) itd. Objekti koji mogu
imati podatke (tekst, lista, padajua lista) mogu se povezati sa bazom radi
unosa ili prikaza. Objektima se mogu pridruiti neke procedure koje e se
obraivati kada se dese neki dogaaji (Event Procedure). Ove procedure
obavljaju neki zadatak kada se desi klik, dvostruki klik, kada se pomeri po-
kaziva mia ili je pritisnut neki taster na tastaturi.

Izmena obrazaca u reimu projektovanja


U reimu projektovanja (Design View) moemo kreirati obrazac od poe-
tka ali je jednostavnije ako je mogue iskoristiti postojee arobnjake za deo
posla koji oni mogu odraditi.

PRIMER 5: Uraditi izmene u reimu projektovanja za ve kreirani ob-


razac frmOeljenjeRadnik. Dodati u zaglavlje obrasca
(Form Header) labelu na kojoj pie Pregled radnika po
odeljenjima.

Dodavanje labele
Da bismo uneli potrebne izmene u obrazac frmOdeljenjeRadnik, po-
trebno je uraditi sledee:

1. najpre otvoriti obrazac u reimu projektovanja. Znai, sa levog panela sa


objektima baze podataka izaberemo obrazac frmOdeljenjeRadnik i des-
nim tasterom mia izaberemo opciju Design View. Ako je obrazac ve
otvoren u nekom drugom reimu iz padajue liste View izaberemo De-
sign View,
2. poto objekat treba dodati u deo zaglavlje, a ako deo obrasca sa za-
glavljem i podnojem nije vidljiv, izaberemo u padajuoj listi View opciju
Form Header/Footer. Ako deo za zaglavlje treba proiriti potrebno je
kursor pozicionirati na gornju ivicu linije Details, da dobije oblik duple
strelice, i povui je nanie,
3. da bi dodali objekat (kontrolu) na obrazac potrebno je otvoriti paletu alat-
ki ToolBox i na njoj izabrati dugme Label da postane aktivno. Zatim na
radnoj povrini u delu gde treba postaviti labelu, ovde u deo zaglavlje,
razvui miem izabrani objekat u oblik pravougaonika i upisati tekst
Pregled radnika po odeljenjima. Obzirom da ovde govorimo o naslovu
forme, moemo iskoristiti i opciju Title - dugme u delu Header / Footer,
4. ovaj novi objekat dobio je podrazumevano ime (npr. Label10), jer svaki
objekat koji se doda na obrazac mora da ima neko ime. Ono se moe

112 Sistem za upravljanje bazama podataka


Obrasci

promeniti i preporuljivo je da objekat ima ime po kome e biti prepoznat-


ljivo na ta se odnosi. Takoe emo se pridravati usvojenog pravila za
dodeljivanje prefiksa koji se odnosi na tip objekta, a obzirom da je ovo
labela, odgovara joj prefiks lab. Dakle, ovoj labeli odgovara labNaslov,
5. da bi podeavali svojstva nekog objekta potrebno je najpre selektovati
objekat, a zatim pritisnuti dugme Property Sheet sa palete alatki . Dru-
gi nain je da desnim tasterom mia izaberemo objekat, pa iz padajue
liste izaberemo opciju Properties,
6. za promenu imena labele u prozoru Properties izaberemo karticu Other i
u polju Name umesto Label10 upiemo labNaslov,
7. ako elimo uraditi jo neke dodatne izmene npr. poveati veliinu slova u
prozoru Properties, na kartici Format u polje Font Size upiemo veliinu
slova koju elimo, npr. umesto 9 upiemo 14. Ako recimo nije vidljiv celi
tekst poveamo irinu (opcija Width) ili visinu (Height) ili jednostavno
uradimo promene na obrascu pomeranjem ivica objekta miem. Mogu se
izvriti i druge izmene vezane za ovu labelu dok nam je u listi objekata
izabrana ova labela (sada imena labNaslov).

Dodavanje polja za tekst


PRIMER 6: U podnoje obrasca frmOdeljenjeRadnik dodati tekstual-
no polje u kome e se ispisivati trenutni datum.

1. Otvoriti obrazac frmOdeljenjeRadnik u reimu projektovanja ako ve


nije otvoren,
2. ako je potrebno proiriti deo Form Footer da bi se mogao dodati ob-
jekat tako to se miem pozicionira na donju ivicu obrasca i povue
nadole,
3. otvori se paleta alatki Tool Box i izabere objekat Text Box, a zatim
se prevue na odgovarajue mesto na obrascu,
4. novokreirani objekat je dobio podrazumevano ime (npr. Text11), koje
je sada potrebno promeniti u ime txtDatum, na ve opisani nain,
5. dodavanjem polja za tekst na obrazac dodaje se i labela ispred tog
polja, koja se moe izbrisati, ako nije potrebna, ili se sa njom radi kao
sa objektom Label. Da bi obrisali objekat oznaimo ga i pritisnemo
taster za brisanje (Delete) sa tastature,
6. poto je potrebno da se u tom polju ispisuje sistemski datum, treba
otvoriti prozor sa svojstvima (Properties) za objekat tekst polje Da-
tum. Izabere se kartica Data i u polje Default Value se upie funkcija
Date(). Nakon ovoga e na obrascu otvorenom u radnom reimu u
ovome polju biti ispisan aktuelni datum,

Sistem za upravljanje bazama podataka 113


MS Access

Napomena: Funkcija Date() je jedna od ugraenih (built-in) funkcija Ac-


cessa i do nje se moe doi upotrebom Expression Buildera opisanog u
poglavlju o kreiranju tabela.
7. ako hoemo da onemoguimo pristup ovom polju, da se datum ne
moe menjati, treba u prozoru Property Sheet, kartica Data u polju
Locked izabrati Yes.
PRIMER 7: U obrascu frmOdeljenjeRadnik promeniti tekst ispred
atributa BROD tako da pie Broj odeljenja.
Da bi promenili tekst ispisan u labeli potrebno je:
1. otvoriti obrazac frmOdeljenjeRadnik u remu projektovanja,
2. izabrati objekat koji menjamo, ovde labelu BROD, i otvoriti prozor
Properties,
3. u polju BROD u kartici Format, u polju Caption upisati BROJ
ODELJENJA.
Nakon ove izmene u polju Caption vidi se na obrascu da je samo labela
ispred atributa BROD promenjena, a ostale labele imaju naziv kao naziv at-
ributa iz tabele na osnovu koje je pravljen obrazac.

PRIMER 8: U ve kreirani obrazac frmUcesce dodati tekstualno po-


lje koje e pokazivati funkciju radnika na odreenom pro-
jektu.

1. da bismo dodali tekstualno polje ili bilo koju novu kontrolu u obrazac pot-
rebno je proiriti povrinu obrasca, a zatim treba pronai odgovarajuu
alatku sa Controls panela,
2. selektovati Text Box i smestiti ga na radnu povrinu obrasca. On auto-
matski dobija ime Text6, koje emo promeniti u ime txtFunkcija,
3. kada smo dodali tekstualno polje u obrazac ono nije pridrueno ni jed-
nom izvoru podataka (Unbound). Da bismo ga povezali sa izvorom po-
dataka, tj. poljem FUNKCIJA iz tabele UEE, potrebno je selektovati
tekstualno polje i otvoriti prozor (time se otvaraju svojstva upravo za taj
objekat). Na kartici Data u polju Control Source pojavljuju se atributi ta-
bela na osnovu kojih je napravljen obrazac (slika 5.19). Biramo atribut
FUNKCIJA i time smo povezali objekat na obrascu da prikazuje odgova-
rajue podatke iz tabele.

114 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.19 Povezivanje Text Box objekta na obrascu sa atributom iz tabele

4. U labelu ispred Text Boxa upisujemo FUNKCIJA da bi znali na ta se


podatak odnosi.
5. TextBox BROD promeniti u Combo Box (komanda Change To), a zatim
ga povezati sa poljem BROD u tabeli ODELJENJE.

Dodavanje komandnog dugmeta


Na obrazac moemo dodati komandnu dugmad koja pokreu dogaaje,
kao to su brisanje zapisa, prelazak na sledei zapis, otvaranje obrazaca itd.

PRIMER 9: Na postojei obrazac frmUcesce dodati komandno du-


gme za brisanje zapisa.
Dodavanje komandnog dugmeta treba uraditi na sledei nain:

1. otvoriti obrazac u reimu projektovanja (Design),


2. selektovati sa Control panela dugme Button i prevui ga na obrazac,
3. otvara se Command Button Wizard u kome biramo kategoriju akcije
koju treba izvriti i samu akciju. U naem primeru to je kategorija uprav-
ljanje zapisima Record Operations i akcija brisanje zapisa Delete Re-
cord (slika 5.20),
4. u narednim prozorima Wizarda biramo izgled dugmeta i damo mu ime
cmdBrisanje. Time smo kreirali komandno dugme na obrascu koje brie
trenutno aktuelni zapis na obrascu kada se klikne miem na njega u rad-
nom reimu obrasca,

Sistem za upravljanje bazama podataka 115


MS Access

Slika 5.20 Izbor akcije koja se deava pritiskom na komandno dugme

5. kao za svaki objekat i u ovom sluaju moemo podeavati dodatna svoj-


stva. Otvorimo prozor Property Sheet, izaberemo karticu Other i u polju
ControlTip Text upiemo tekst koji e se pojavljivati kada zadrimo mi
iznad tog objekta u radnom reimu obrasca. Taj tekst treba da na neki
nain objanjava koja je funkcija objekta. Tada moemo upisati tekst
Brisanje zapisa.
Ovde smo uz pomo arobnjaka izabrali ta e se deavati kada klikne-
mo na komandno dugme.
arobnjak ima neke ugraene akcije, ali i sami moemo izabrati ta e
raditi komandno dugme kreiranjem makroa i modula.
U prozoru Properties za komandno dugme, na kartici Event (slika
5.21), prvo odaberemo na koji dogaaj e se akcija izvriti (klik miem, dobi-
janje fokusa, na izlazak...), a zatim iz padajue liste odabranog polja biramo
da li e to biti neki makro ili modul, a moemo i direktno na tom mestu da
dodamo odreeni kd, tako to izaberemo opciju Event Procedure, nakon
ega se otvara prozor VBA gde piemo program koji e sprovesti akciju koju
elimo.
Na slici 5.22 prikazana je procedura koju je automatski dodao arobnjak
prilikom kreiranja komandnog dugmeta.
Vrlo korisno je ukloniti sa obrasca liniju za kretanje kroz zapise (naviga-
ciju) i umesto nje postaviti komandnu dugmad (cmdPrvi, cmdPrethodni,
cmdSledeci, cmdZadnji i cmdNovi).
Da bismo uklonili liniju za kretanje kroz zapise potrebno je u svojstvima
obrasca (Properties) osobinu Navigation Buttons postaviti na No.

116 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.21 Izbor procedure

Slika 5.22 Izgled procedure u VBA editoru

Zadatak za samostalan rad


5.2. U obrascu frmRadnik ukloniti liniju za kretanje kroz zapise i umesto
nje dodati komandnu dugmad koja obavljaju istu funkciju.

Upotreba obrazaca
Obrasce treba kreirati tako da omoguavaju komforan rad krajnjem kori-
sniku. Jedna od vanih stvari u obezbeivanju komfornog rada jeste i redos-
led popunjavanja polja u obrascu. Veina obrazaca se projektuju kao simu-
lacija popunjavanja papira ili starog informacionog sistema na koji su opera-

Sistem za upravljanje bazama podataka 117


MS Access

teri navikli. Kontrole u obrascima imaju svojstvo Tab index koje olakava
kretanje kroz ove kontrole pomou tastera TAB ili ENTER. Pomou svojstva
Tab index mogue je svakoj kontroli dodeliti broj, koji predstavlja redosled
selektovanja kontrole u obrascu. Za prvi objekat koji elimo da bude aktivan,
postaviemo svojstvo Tab index na 0, za sledei 1 itd. Bolji nain je da kon-
troli, za koju elimo da bude poslednja aktivna, dodelimo Tab index 0, zatim
isti Tab index predzadnjoj, i sve tako do kontrole za koju elimo da bude pr-
va aktivna. Poto dve kontrole ne mogu imati isti Tab indeks, poslednja kon-
trola kojoj smo dodelili 0 ostae sa tim Tab indexom, dok e se ostali Tab
indexi automatski inkrementirati za 1. Na ovaj nain kontrola kojoj smo prvoj
dodelili Tab index 0, imae najvei Tab index i bie poslednja aktivna. Ko-
mandna dugmad osim miem mogu se aktivirati i pomou tastera ENTER, ili
preko definisanih preica. Ove preice predstavljaju brz nain da se izvri
akcija koju aktivira komandno dugme. Preica se definie u okviru svojstva
dugmeta Caption, dodavanjem znaka & ispred slova u natpisu dugmeta.
Kada se u radnom reimu obrasca pritisne kombinacija tastera ALT i datog
slova, komandno dugme e biti aktivirano, isto kao da smo na njega kliknu-
li.

PRIMER 10: U obrascu frmUcesce dodati novi zapis o ueu rad-


nika iji je IDBR 5780 na projektu broj 300, sa brojem sa-
ti 500 i funkcijom KONSULTANT.

1. Otvoriti obrazac frmUcesce u radnom reimu, a zatim se pozicionirati na


novi zapis. Uneti potrebne podatke.
2. Zatvoriti obrazac frmUcesce i proveriti da u tabeli UEE postoji novi
zapis, samo to smo ga u ovom sluaju dodali preko obrasca, a ne u ta-
belarnom prikazu tabele UEE.
PRIMER 11: Izbrisati prethodno uneti zapis o radniku iji je IDBR
5780, a broj projekta 300.

1. Ponovo otvoriti obrazac frmUcesce u radnom reimu,


2. Pozicionirati se na zapis o radniku iji je IDBR 5780,
3. Pritiskom mia na dugme cmdBrisanje, izbrisae se aktivni zapis o
radniku iz table UEE.
4. Zatvoriti obrazac frmUcesce i proveriti da u tabeli UEE postoji
novi zapis, samo to smo ga u ovom sluaju dodali preko obrasca, a
ne u tabelarnom prikazu tabele UEE.
PRIMER 12: Napraviti obrazac (nazvati ga frmRadnikUcesce) koris-
tei opciju Form Wizard nad tabelom RADNIK a koji e
sadrati sledee atribute:IDBR, IME, POSAO, KVALIF,
RUKOVODILAC, BROD. Obrazac treba da bude pove-
zan sa podobrascem koji e sadrati sve atribute tabele
UEE (podobrazac nazvati SubFrmUCESCE). Izbo-
rom odreenog radnika na obrascu frmRadnikUcesce

118 Sistem za upravljanje bazama podataka


Obrasci

treba da dobijemo podatke o njegovom ueu na proje-


ktima, kao i ukupan broj sati njegovog angaovanja na
svim projektima.
Za izradu ovoga obrasca potrebno je proi kroz sledee korake:
1. iz prozora Database aktivirati karticu Forms i otvoriti prozor New
Form, a zatim izabrati opciju Form Wizard,
2. otvorimo novi prozor za izbor tabela i odgovarajuih atributa. Izabe-
remo tabelu RADNIK i izdvojimo atribute IDBR, IME, POSAO,
KVALIF, RUKOVODILAC i BROD. Zatim izaberemo tabelu UEE
i izdvojimo sve atribute. Pritisnemo dugme sledei (Next),
3. otvara se sledei prozor u kome biramo opciju by RADNIK, da bi na
osnovu podataka o radniku posmatrali podatke o ueu, i opciju
Linked Forms, znai da se povezana forma o ueu nee prikazi-
vati na istom obrascu ve e na njemu postojati dugme koje e je ot-
varati (slika 5.23).
4. u sledeim koracima biramo kako e izgledati obrazac, izaberemo stil
Standard i na kraju damo ime glavnom obrascu frmRadnikUcesce,
a povezanom obrascu SubFrmUCESCE.

Slika 5.23 Izbor opcije za povezane obrasce

5. Na slikama 5.24 i 5.25 prikazani su obrasci u radnom reimu nakon


to smo proli kroz sve aktivnosti Form Wizarda. Na glavnom obras-
cu frmRadnikUcesce izabran je radik iji je IDBR 5497, i pritiskom
na dugme subfrmUcesce otvara se obrazac sa istim imenom, koji
prikazuje podatke o ueu toga radnika na projektima. Radnik iji je
IDBR= 5479, angaovan je samo na jednom projektu (brproj=100).
6. Nakon dela posla koji je uraen uz pomo arobnjaka dodatne izme-
ne rade se u reimu projektovanja. Prvo otvorimo obrazac frmRad-
nikUcesce u reimu projektovanja i promenimo svojstvo Caption za
SubFrmUCESCE na UEE.

Sistem za upravljanje bazama podataka 119


MS Access

7. Dalje izmene rade se na obrascu subfrmUcesce. Otvorimo ga u re-


imu projektovanja. Poto je potrebno dodati polje koje prikazuje
ukupan broj sati angaovanosti odreenog radnika na projektu potre-
bno je dodati Text Box u podnoje obrasca. Prvo treba proiriti deo
obrasca Form Footer, a zatim iz Controls panela dodati tekstualno
polje na ranije opisani nain. Da bi se u njemu ispisao ukupan broj
sati potrebno je dodati funkciju. U prozoru Property Sheet tog tek-
stualnog polja (kome emo dati ime txtUKUPNO) na kartici Data u
polju Control Source upiemo =SUM(BRSATI).

Slika 5.24 Izgled glavnog obrasca sa dugmetom za otvaranje podobrasca

Slika 5.25 Podobrazac povezan sa glavnim obrascem po atributu IDBR

8. Ispred toga polja dodamo labelu na kojoj pie Ukupan broj sati na
projektima:
9. Ako na glavnom obrascu izaberemo radnika iji je IDBR 5692, pritis-
kom na dugme UEE otvara se obrazac na slici 5.26., koji prika-
zuje uee ba tog radnika na projektima. Na ovom obrascu u slo-
bodan zapis moemo dodati radnika na jo neki projekat (na primer
100). Nee biti dozvoljeno dodati radnika na projekat na kome ve
radi (u ovom primeru 200 i 300), jer je atribut BRPROJ deo primar-
nog kljua tabele UCESCE zajedno sa atributom IDBR, a klju ne
moe imati duplikate.

120 Sistem za upravljanje bazama podataka


Obrasci

10. Meutim ima neto to je dozvoljeno u ovom obrascu, a to bi trebalo


zabraniti, da na ovom mestu moemo dodati uee bilo kog drugog
radnika na neki projekat. Da bi to izbegli potrebno je obrazac
SubFrmUCESCE otvoriti u reimu projektovanja i otvoriti prozor
Property Sheet za tekstualno polje IDBR. U polju Default Value, ka-
rica Data, dodati podrazumevanu vrednost za to polje.
11. To se moe uraditi tako to direktno upiemo vrednost u to polje, ili
pritiskom na tri take otvorimo prozor Expression Builder (slika
5.27).
Potrebno je da podrazumevana vrednost polja IDBR na obrascu
SubFrmUCESCE bude vrednost [Forms]![frmRadnikUcesce]![IDBR],
koja je izabrana u polju IDBR na obrascu frmRadnikUcesce.

Slika 5.26 Izgled obrasca nakon dodatih izmena

12. Znai u levom delu prozora izaberemo Forms - All Forms, a zatim ob-
razac koji je potreban (frmRadnikUcesce). Nakon toga u srednjem
prozoru biramo objekat tog obrasca, a to je IDBR. Na kraju ovog pos-
tupka u delu za prikaz izraza dobija se
[Forms]![frmRadnikUcesce]![IDBR], ime je realizovano da podra-
zumevana vrednost za IDBR radnika u povezanom obrascu bude
ona koja je izabrana na glavnom.

Sistem za upravljanje bazama podataka 121


MS Access

Slika 5.27 Izgled prozora Expression Builder

13. Meutim ta vrednost je za sada samo podrazumevana, to ne znai


da se ona ne moe menjati. Da bi postavili da se ta vrednost ne mo-
e menjati potrebno je onemoguiti promene toga polja. Znai za po-
lje Locked biramo opciju Yes (slika 5.28).

Slika 5.28 Prozor za podeavanje svojstava

Izrada obrazaca na bazi upita


Obrasci se mogu kreirati i na bazi upita. Pri tome je pogodna kombinaci-
ja sa upitima u kojima nisu svi uslovi u WHERE klauzuli unapred definisani
(parametarski upiti).

122 Sistem za upravljanje bazama podataka


Obrasci

PRIMER 13: Kreirati obrazac za pretragu tako da se u odreeno polje


unese ifra radnika i pritiskom na odgovarajue dugme
dobiju podaci o tom radniku.
U sledeem upitu uvek traimo podatke o unaped odreenom radniku:
SELECT *
FROM RADNIK
WHERE [RADNIK].[idbr]='5652';
Ovaj upit uvek e prikazivati podatke o radniku ija je ifra 5652.
1. Jednim upitom moemo traiti podatke o bilo kom radniku ako u
WHERE klauzuli, umesto konkretne vrednosti (5652), upiemo pa-
rametar - tekst koji korisniku prikazuje ta se od njega oekuje da
unese kao podatak. U ovom primeru to je ifra radnika iji nas podaci
zanimaju.
SELECT *
FROM RADNIK
WHERE [RADNIK].[IDBR]=[Uneti ifru radnika:];
2. Upitu dajmo ime Sifra. Kada ovaj upit pozovemo na izvravanje, po-
javie se okvir za dijalog u kome Access trai od korisnika da unese
ifru zaposlenog. Ako unesemo 5652 dobiemo izvetaj o zaposle-
nom sa imenom Jovan, koji obavlja poslove radnika, sa kvalifikacijom
KV, itd. Ako korisnik unese 5900, pojavie se izvetaj o Slobu, voza-
u, KV, itd.
3. Dalje uoptavanje postie se povezivanjem upita sa obrascem u ko-
me zadajemo ifru zaposlenog ije podatke elimo da proitamo.
4. Otvorimo novi obrazac u reimu projektovanja. Nazovimo ga frmPre-
traga. Na obrazac emo dodati padajuu listu (Combo box) i nazvati
je cmbRadnik. Podesiemo da cmbRadnik prikazuje ime i ifru rad-
nika.
5. Padajua lista moe se dodati na obrazac upotrebom arobnjaka, ili
direktnim podeavanjem svojstava u prozoru Property Sheet (slika
5.29). Upotreba arobnjaka je bra i laka, ali u nekim mreama (ako
je mrena instalacija Accessa) samo jedan korisnik u jednom trenut-
ku moe da ga koristi. Zato ova svojstva, po pravilu, treba podesiti
runo.
6. Najpre emo iz okvira sa alatkama (Controls) izabrati padajuu listu
(combo box), razvui je po povrini obrasca i izabrati njena svojs-
tva (Properties). Kada se pozicioniramo u polje Row Source pritis-
kom na dugme otvaramo QBE, u koji dodajemo sledei SQL kd:
SELECT RADNIK.IDBR, RADNIK.IME
FROM RADNIK;

Sistem za upravljanje bazama podataka 123


MS Access

Slika 5.29 Podeavanje svojstava padajue liste

7. Ako elimo da budu vidljivi i ime i ifra, podesimo u prozoru Proper-


ties na kartici Format broj kolona (Column Count) na 2, a irinu ko-
lona moemo podesiti u polju Column Widths.
8. Na ovaj obrazac dodaemo jo i komandno dugme (Command But-
ton). Otvara se prozor Command Button Wizard i u njemu biramo
akciju koja e pokrenuti upit (RunQuery), to je prikazano na slici
5.30. U sledeem prozoru biramo da to bude upit Sifra, i proemo
kroz sve akcije koje nudi Wizard do kraja. U polje Caption, prozora
Properties, upiemo tekst Prikai podatke.
9. Meutim, kada pokrenemo obrazac frmPretraga i izaberemo iz pa-
dajue liste radnika sa odgovarajuom ifrom, jo uvek e se pojavlji-
vati prozor koji zahteva da se unese ifra radnika, jer nismo uradili
potrebne izmene u upitu Sifra.

Slika 5.30 Izbor akcije koja se deava nakon pritiska na komandno dugme

124 Sistem za upravljanje bazama podataka


Obrasci

10. Otvorimo upit Sifra i u polju za IDBR umesto prethodnog kriterijuma


upisujemo novi da bi ga povezali sa obrascem iz koga ga pokree-
mo, tj. pravimo parametarski, za koji se kriterijum unosi u obrascu.
Poto ovaj upit treba da prikae podatke za radnika iji smo identifi-
kacioni broj IDBR izabrali u obrascu frmPretraga iz padajue liste
cmbRadnik, izmenjeni upit imae izgled u QBE prozoru kao na slici
5.31.

Slika 5.31 Izgled parametarskog upita za koji se kriterijum unosi u obrascu

U SQL-u ovaj upit imae sledei izgled:


SELECT *
FROM RADNIK
WHERE [RADNIK].[IDBR]=[Forms]![frmPretraga]![cmbRadnik];
11. Kada pokrenemo obrazac frmPretraga, izaberemo iz padajue liste
npr. radnika sa ifrom 5497 i kliknemo na dugme Prikai podatke,
prikazuju se svi podaci o radniku sa tim identifikacionim brojem (u
prikazu Datasheet, jer se pokree upit). Ako elimo da se podaci pri-
kau u obrascu, moemo napraviti obrazac koji se zasniva na upitu
Sifra, i na formi Pretraga promeniti da komandno dugme otvara taj
obrazac, a ne upit.
12.
PRIMER 14: Kreirati obrazac frmProjekatRadnik koji e prikazivati
atribute iz tabele UCESCE kao i atribute IME i BROD iz
tabele RADNIK.

1. Za realizaciju ovog zadatka potrebno je kreirati obrazac frmProjekat-


Radnik koji treba napraviti na osnovu dve tabele ili u ovom sluaju nap-
raviemo upit ProjekatRadnik koji ima sledei izgled u SQL kdu:

SELECT UCESCE.BRPROJ,UCESCE.IDBR,RADNIK.IME,
RADNIK.BROD, RADNIK.BRSATI, UCESCE.FUNKCIJA

Sistem za upravljanje bazama podataka 125


MS Access

FROM RADNIK INNER JOIN ( PROJEKAT INNER JOIN UCESCE ON


PROJEKAT.BRPROJ=UCESCE.BRPROJ) ON RADNIK.IDBR=UCESCE.IDBR;
2. Dalje biramo opciju za kreiranje novog obrasca pomou Form Wizarda,
i izaberemo da se bazira na novokreiranom upitu ProjekatRadnik (za
izradu obrazaca ravnopravno koristimo postojee tabele i upite).
3. U ovom sluaju kreiranja obrasca ne elimo podobrazac i biramo opci-
ju by UCESCE (slika 5.32). Proemo kroz sve opcije koje nudi arob-
njak i damo ime obrascu frmProjekatRadnik.

Slika 5.32 Izbor prikaza podataka na obrascu

PRIMER 15: Na postojeem obrascu frmPROJEKAT napraviti ko-


mandno dugme koje e otvarati obrazac frmProjekat-
Radnik, ali tako da se na obrascu frmProjekatRadnik pri-
kazuju samo podaci o onim radnicima koji rade na pro-
jektu koji je aktivan na obrascu PROJEKAT.

Da bi realizovali ovaj zadatak potrebno je uraditi sledee:


1. otvorimo obrazac frmPROJEKAT u reimu projektovanja,
2. dodamo komandno dugme iz palete alatki Control, i podesimo ga da ot-
vara obrazac (slika 5.33) frmProjekatRadnik na ranije opisani nain. Dati
mu ime cmdProjekat,
3. ako sada otvorimo obrazac frmPROJEKAT u radnom reimu i pritisnemo
komandno dugme, jo uvek e se otvarati obrazac koji prikazuje podatke

126 Sistem za upravljanje bazama podataka


Obrasci

o radnicima koji rade na bilo kom projektu, bez obzira koji je projekat ak-
tivan na obrascu,
4. da bi to eliminisali potrebno je uneti izvesne promene. Poto se obrazac
frmProjekatRadnik bazira na istoimenom upitu promenu emo uraditi na
upitu,

Slika 5.33 Podeavanje da komandno dugme otvara obrazac

5. treba otvoriti upit ProjekatRadnik u reimu projektovanja. Da bi ograniili


da on prikazuje samo podatke o radnicima koji rade na projektu koji je
izabran kao aktivan na obrascu frmPROJEKAT, potrebno je u polju Crite-
ria koje se odnosi na atribut BRPROJ upisati sledei uslov:

[FORMS]![frmPROJEKAT]![BRPROJ] .

Uslov se nalazi Ime kontrole na ob-


na nekoj kontroli rascu iz koje se tes-
obrasca Ime obrasca
tira uslov

6. nakon ovoga upit ProjekatRadnik dobija izgled u QBE-u kao na slici 5.34,

Sistem za upravljanje bazama podataka 127


MS Access

Slika 5.34 QBE prozor izmenjenog upita

7. kada otvorimo obrazac frmPROJEKAT i izaberemo projekat iji je


BRPROJ 100 (slika 5.35 gore) pritiskom na dugme koje prikazuje uee
radnika otvara se obrazac frmProjekatRadnik koji prikazuje podatke sa-
mo o radnicima koji rade na projektu 100 (slika 5.35 dole).

Slika 5.35 Otvaranje obrasca na osnovu uslova koji se menja


Obrasci, kao i izvetaji, mogu biti vrlo jednostavno kreirani i direktno iz
nekog vizuelnog, objektno-orijentisanog programskog jezika kakav je, reci-

128 Sistem za upravljanje bazama podataka


Obrasci

mo, VBA ili Visual Basic ili Visual C++. Ovi programski jezici takoe imaju
veliki izbor gotovih kontrolnih objekata poput ovih koji postoje u Accessu. U
tom sluaju Access se koristi samo kao sistem za upravljanje bazom poda-
taka (Relational Data Base Management System) u kome je logiki model
informacionog sistema, koji je dobijen projektovanjem, fiziki realizovan (fizi-
ki model IS).
Aplikacija, odnosno poslovna logika, direktno se pravi korienjem ala-
ta i mogunosti koje pruaju ovi programski jezici. Ovakve izvedbe aplikacija
imaju svojih prednosti, posebno u pogledu bezbednosti podataka, jer u tom
sluaju korisnik nema direktan pristup tabelama (i podacima), ve koristi
strogo propisane i kontrolisane postupke unosa i izmene podataka.
O ovim, a i drugim mogunostima upotrebe programskih jezika za pro-
gramiranje aplikacija baza podataka bie kasnije vie rei.

Sistem za upravljanje bazama podataka 129


6. Izvetaji
Izvetaj je krajnji, najee odtampani rezultat izvravanja neke aplika-
cije izvedene u bazi podataka. Moe da sadri podatke kako iz rezultata upi-
ta tako i iz polaznih tabela, a sastoji se u principu od jedne ili vie tabela.
Veina metoda za pravljenje obrazaca primenjuje se i na izvetaje.

Kreiranje izvetaja

Kreiranje izvetaja pomou arobnjaka


Kreiranje izvetaja odvija se u vie koraka i slino je donekle kreiranju
obrazaca a najbolje ga je opisati na primeru:
PRIMER 1: Kreirati izvetaj koji prikazuje ifru, ime odeljenja i mesto,
kao i ime i posao zaposlenih po odeljenjima, ureen po
poslovima koje obavljaju. Izvetaj nazvati repRadnici-
PoOdeljenjima.
Kao to se iz postavke zadatka uoava ovaj izvetaj se bazira na poda-
cima iz dveju tabela (ODELJENJE i RADNIK).
1. Na traci sa alatkama odabraemo karticu Create (slika 6.1)i u delu Re-
ports kliknuemo na opciju Report Wizard.

Slika 6.1 Razliiti naini za kreiranje izvetaja - kartica Create

Ovde e biti dat kratak pregled ostalih mogunosti koje su date korisniku
za kreiranje izvetaja u MS Accessu:

Report - automatsko kreiranje izvetaja na osnovu selektovanog ob-


jekta (tabele, upita, pa ak i forme). Izvetaj je odmah napravljen bez
mogunosti korisnika da na bilo ta utie ali se kasnije moe dorai-
vati,
Report Design - pravljenje izvetaja od samog poetka - bez pomoi
wizarda. Ovaj nain se retko koristi zato to se izvetaji po pravilu
kreiraju na osnovu podataka iz baze (tabele, upiti) a tu nam arob-
njak odradi veliki deo posla. Ipak, ako elimo da imamo potpunu kon-
Izvetaji

trolu nad procesom kreiranja izvetaja ili iz nekog drugo razloga ova
opcija nam stoji na raspolaganju,
Blank Report prazan izvetaj. Opcija veoma slina prethodnoj sa-
mo to nas podrazumevano vodi u Layout umesto u Design View,
Labels vrlo korisna opcija kada je potrebno tampati pozivnice za
neki dogaaj na osnovu spiska gostiju koji se nalazi u bazi podataka.
Standardni formati pozivnica/kartica su ve ponueni, ali se te podra-
zumevane vrednosti mogu menjati po potrebi.
2. Jo jednom, od ponuenih opcija iz odeljka Reports izaberaemo opciju
Report Wizard zato to se koristi u najveem broju sluajeva.
3. Otvara se novi prozor gde u listi Tables/Queries biramo tabele koje e-
mo koristiti u izvetaju (slika 6.2). Najpre biramo tabelu ODELJENJE, jer
je ona u relaciji 1:N u odnosu na tabelu RADNIK, ali nije neophodno.

Atributi koji e
biti prikazani u
izvetaju

Padajua lista
za biranje izvora
podataka

Slika 6.2 Sam Access preko arobnjaka pomae u izradi izvetaja

4. Iz polja Available Fields odaberemo atribute (polja) koje elimo da vidi-


mo u izvetaju, u ovom primeru sve artibute tabele ODELJENJE, i pre-
bacimo ih u polje Selected Fields.
5. Kako se izvetaj kreira na bazi vie tabela (dve), nakon to odaberemo
polja iz prve tabele, u polju Tables/Queries izaberemo sledeu tabelu -
RADNIK. Iz polja Available Fields odabiramo njene atribute (ime i po-
sao) koje elimo da vidimo u izvetaju. Postupak ponavljamo dok iz svih
tabela ne izaberemo sve eljene atribute. U izvetaju e polja biti prika-
zana onim redosledom kojim smo ih birali (a ne u redosledu u kome su
navedena u definiciji tabele ili upita).
6. Kada smo zavrili sa izborom atributa kliknemo na Next.
7. Sledei prozor nudi mogunost izbora atributa i naina prikaza podataka
na papiru pri grupisanju. Naravno Access nudi logino grupisanje poda-

Sistem za upravljanje bazama podataka 131


MS Access

taka najpre po prvoj tabeli (by ODELJENJE, slika 6.3 levo), ili po drugoj
(by RADNIK, slika 6.3 desno). Izaberemo opciju by ODELJENJE.
8. Napomena: Ovaj primer prvo uraditi biranjem opcije by ODELJENJE i
izvetaju dati ime repRadniciPoOdeljenjima.

Slika 6.3 Access nudi logina reenja za izgled izvetaja, vodi nas dalje i daje
mogunost povratka na prethodni korak radi promene izbora

9. Postupak ponoviti i za opciju by RADNIK i izvetaj nazvati repRadnici-


PoOdeljenjima1.
10. Sledei prozor (slika 6.4 levo opcija by ODELJENJE, Slika 6.4 desno op-
cija by RADNIK) omoguava da odredimo atribute i nivoe grupisanja i
prioritete. U polju sa leve strane selektujemo atribut po kome elimo da
uradimo grupisanje (izaberemo BROD) i strelicom na desno prebacimo u
desni okvir, kao kod obrazaca. Strelicama na gore i dole odreujemo pri-
oritete grupisanja, tj. po kom atributu e biti uraeno glavno grupisanje, a
po kom podgrupisanje (grupisanje u okviru ve postojee grupe).

Slika 6.4 Nivoi grupisanja kod izvetaja

11. Sledei okvir za dijalog, prikazan na slici 6.5, nudi izbor polja po kojim e
izvetaj biti ureen (sortiran). Kliknemo na Combo box, i u padajuoj listi
izaberemo polje po kome hoemo da izvetaj bude sortiran. U ovom pri-
meru se zahteva ureivanje po poslovima, pa izaberemo atribut POSAO.

132 Sistem za upravljanje bazama podataka


Izvetaji

Sa desne strane imamo dugme pomou koga odreujemo da li sortiranje


radimo po rastuem (Ascending) ili opadajuem (Descending) redosledu.
Access nudi etiri nivoa sortiranja, pa u drugom nivou izaberemo urei-
vanje izvetaja po rastuem redosledu po imenima. Dakle izvetaj je sor-
tiran po poslovima, a ako vie radnika obavlja isti posao bie poreani
prema imenima po abecednom redosledu.

Slika 6.5 Izbor atributa po kojima se vri sortiranje

12. Sledei prozor, koji je prikazan na slici 6.6, nudi mogunost izbora izgle-
da izvetaja (vizuelni prikaz). Kada se odluimo za neku od ponuenih
opcija pritisnemo dugme Next.

Slika 6.6 Izbor izgleda izvetaja

13. U sledeem prozoru biramo stil kako e izvetaj izgledati, slino kao kod
obrazaca. Naravno u poetku treba pustiti arobnjaka da radi to vie,
dok ne ovladamo svim opcijama. Dakle, treba prei na sledei korak pri-

Sistem za upravljanje bazama podataka 133


MS Access

tiskom na dugme Next. U poslednjem prozoru u postupku kreiranja izve-


taja imamo mogunost izbora reima za generisanje izvetaja. Mogu-
nosti su:
da na ekranu pre tampanja vidimo izgled kreiranog izvetaja
(Preview the report) i druga
u kojoj imamo mogunost dodatne izmene izvetaja (ako neto nis-
mo dobro zamislili ili elimo da doradimo neki detalj). Izaberimo prvu
ponuenu opciju jer se svaki izvetaj kasnije moe dodatno doraiva-
ti u Design view modu. Kliknimo na dugme zavri - Finish.
14. Na ekranu e biti prikazan izgled izvetaja koji se sada moe pregledati,
analizirati i po potrebi pre tampanja doraivati u reimu projektovanja
(Design). Sam Access unee na izvetaj podatke o ukupnom broju stra-
nica, redni broj tekue stranice itd.
15. Na kraju, pomou opcije File Print, dobijamo eljeni izvetaj odtampan
na papiru (slika 6.7 u sluaju izbora opcije By ODELJENJE i slika 6.8 za
izbor opcije By RADNIK).

Slika 6.7 Izvetaj u sluaju opcije By ODELJENJE grupisano po broju odeljenja


(GROUP BY brod), i ureeno po poslovima, pa po imenu (ORDER BY posao, ime)

16. Ako nismo zadovoljni izgledom, zatvorimo izvetaj, zatim kliknemo na


njega i izaberemo opciju Design. Jednostavnim pomeranjem polja ime,

134 Sistem za upravljanje bazama podataka


Izvetaji

posao, mesto, imeod udesno dobijamo eljeni izvetaj. Naravno da su


mogue i druge izmene.

Slika 6.8 Izvetaj u sluaju opcije By RADNIK grupisano po broju odeljenja


(GROUP BY brod), i ureeno po poslovima, pa po imenu (ORDER BY posao, ime)

Uoavamo da, iako sadre iste podatke, ova dva izvetaja (slika 6.7 i
slika 6.8) nisu identina. Naime, u drugom sluaju se za svakog radnika (ne-
potrebno) ponavljaju imena odeljenja i mesta u kojima rade.

Kreiranje izvetaja u reimu projektovanja


U reimu projektovanja (Design View) moemo praviti kompletan izve-
taj ili modifikovati izvetaj koji je ve napravljen pomou arobnjaka.

PRIMER 2: Kreirati izvetaj koji prikazuje koliku je sumu novca po-


trebno izdvojiti za plate i premije svim radnicima, kao i
koliki deo se izdvaja za koje odeljenje (prikazati i u pro-
centima). Prikazati broj odeljenja, ime, identifikacioni
broj, platu i premiju za svakoga radnika. Izvetaj nazvati
repPlate.
Ovaj izvetaj kreiramo na osnovu podataka iz jedne tabele (RADNIK).
Izvetaj moemo praviti od poetka u Design View, meutim moemo koris-
titi Report Wizard da uz pomo arobnjaka odradimo deo posla, a onda u

Sistem za upravljanje bazama podataka 135


MS Access

reimu projektovanja menjamo ili dodajemo ono to elimo a to arobnjak


ne moe da generie.

1. Prvi deo postupka je ve opisan u prethodnom primeru, znai biramo op-


ciju za pravljenje novog izvetaja uz pomo arobnjaka, izaberemo tabe-
lu RADNIK i atribute (IDBR, IME, PLATA, PREMIJA i BROD).
2. Grupiemo po atributu BROD (podrazumevana opcija), na sledeem
prozoru pritisnemo dugme Summary Options (koje postoji ako imamo
grupisanje i ako je neki od preostalih atributa koji ine izvetaj numeriko
polje, u ovom primeru to su atributi PLATA i PREMIJA), slika 6.9.

Slika 6.9 Prozor Summary Options

3. Na prozoru Summary Options dobijamo listu atributa koji su tipa Num-


ber sa mogunou da se urade funkcije Sum, Avg, Min i Max. Poto
nam u ovom izvetaju treba suma plata i premija izabraemo (ekirae-
mo) opciju Sum.
4. Biramo koju opciju prikazivanja hoemo Detail and Summary ili
Summary Only.
5. Da bi dobili i procentualno prikazivanje ekiraemo opciju Calculate
Percent of total for sums.
6. Klikom na dugme Next proemo kroz Wizard do kraja, izaberemo neki
od stilova kako e izvetaj izgledati i sauvamo ga pod imenom repPlate.
7. Na slici 6.10 prikazan je izvetaj napravljen pomou Wizarda, a onda
treba prei u Design View (preko dugmeta Close Print Preview) da bi
se uradile potrebne izmene, slika 6.11.

136 Sistem za upravljanje bazama podataka


Izvetaji

Slika 6.10 Izgled izvetaja Plate koji je kreiran pomou arobnjaka

Slika 6.11 Izgled izvetaja Plate u reimu projektovanja

Sistem za upravljanje bazama podataka 137


MS Access

8. Prvo emo tekst koji je napisan na engleskom jeziku (u natpisima kao to


su Sum, Grand Total i sl.) izmeniti da pie na naem jeziku, to radimo ta-
ko to promenimo sadraj labela. arobnjak stavi u zaglavlje izvetaja
labelu koja sadri isti tekst kao ime izvetaja, a treba je promeniti da ima
smisla tako da, umesto repPlate napiemo Plate (svojstvo Caption).
9. Na izvetaju na slici 6.11 polje BROD nije ispod labele BROD, pa jed-
nostavno treba skratiti irinu toga polja (svojstvo Width) ili izabrati levo
poravnanje za tekst u tome polju (u prozoru Properties, kartica Format u
polju Text Align izabrati opciju Left).
10. Promenimo redosled prikazivanja dva polja u izvetaju tako da prvo pri-
kaemo IME, pa zatim IDBR. Ovde treba promeniti mesto labelama IDBR i
IME, ali takoe obavezno izvriti i zamenu za odgovarajua tekstualna polja,
da bi prikazivanje podataka bilo u skladu sa odgovarajuim labelama.

Paleta kontrola Controls slina je kao i kod kreiranja obrazaca ali emo na
izvetajima vrlo retko upotrebljavati bilo ta osim Text Boxa i Labele.

Linija alata prozora za prikaz izvetaja


Izvetaj otvoren u prozoru koji prikazuje kako e izgledati odtampani iz-
vetaj (Print Preview) ima svoju liniju alata (slika 6.12).

Osim to se izvetaj moe prikazati na ekranu i odtampati mogue ga


je sauvati i kao datoteku.

Podeavanje veliina Slanje


papira i margina Poloaj papira izvetaja
za tampanje na E-mail

Izbor u kojoj Prikaz jedne, dve


tampanje Zatvaranje
veliini se prika- ili vie stranica
izvetaja pregleda
zuje izvetaj na izvetaja na ekra-
ekranu nu za tampu

Slika 6.12 Linija alata prozora Print Preview

PRIMER 3: Ve kreirani izvetaj repPlate sauvati kao rtf i xls dato-


teku.

138 Sistem za upravljanje bazama podataka


Izvetaji

1. Potrebno je otvoriti izvetaj repPlate u prikazu za tampu (Print


Preview).
2. Izaberemo dugme More i u padajuoj listi prvu opciju Word (izvoz u RTF
format) da bi sauvali izvetaj kao Word dokument. Dobijamo izvetaj
prikazan u MS Wordu (slika 6.13).

Slika 6.13 Prikaz izvetaja u MS Wordu

3. Ovaj dokument moemo sauvati, menjati i koristiti ga kao nezavisnu


datoteku. Ponueno ime je repPlate, koje moemo i promeniti, a za tip
datoteke izaberemo ve ponuenu opciju rtf. Ova opcija je korisna jer je
u MS Wordu najlake podeavati izvetaj za tampu. Izborom opcije txt
za tip datoteke, izvetaj e biti sauvan u programu Notepad i nedovoljno
pregledan.
4. Da bi sauvali izvetaj repPlate u formatu koji odgovara progarmu MS
Excel, potrebno je otvoriti taj izvetaj u prikazu za tampu i izabrati dug-
me Excel iz odeljka Data,
5. Nakon toga otvara se izvetaj o platama u programu MS Excel kao na
slici 6.14.

Sistem za upravljanje bazama podataka 139


MS Access

Slika 6.14 Prikaz izvetaja u MS Excelu

6. Ovu datoteku moemo sauvati kao nezavisnu .xls datoteku i koristiti za


razne analize za koje je MS Excel pogodan.
Napomena: Kreirani izvetaj takoe se moe poslati elektronskom po-
tom. Potrebno je otvoriti izvetaj u reimu prikaza za tampu i na Data delu
odabiramo opciju E-mail. Nakon toga dobijate prozor u kojem birate u kom
formatu elite da aljete izvetaj i otvara se prozor za slanje elektronske po-
te (slika 6.15).

140 Sistem za upravljanje bazama podataka


Izvetaji

Slika 6.15 Izvetaj se moe poslati elektronskom potom

Opis izgleda prozora za projektovanje i njegovih


odeljaka
Prozor za projektovanje izvetaja (slika 6.11) slian je prozoru za projek-
tovanje obrazaca. Ako izvetaj od poetka kreiramo u reimu projektovanja u
njemu nee biti dodatih objekata (bie prazan) dok ih sami ne dodamo.

Report header je zaglavlje izvetaja i ono to je napisano u tom delu


izvetaja pojavljuje se samo na poetku izvetaja. U primeru na slici
6.13 to je naslov PLATE, koji je upisan u labelu.
Report footer je deo izvetaja koji se prikazuje samo na kraju celog
izvetaja bez obzira koliko izvetaj ima strana. U ovom primeru to je
labela ukupna suma i text polje koje prikazuje ukupnu sumu plata.
U delu izvetaja Page header smeta se ono to treba da se pojavi
na poetku svake strane, kod nas su to imena atributa ije vrednosti
treba da budu prikazane u izvetaju.
Page footer je deo koji se prikazuje na svakoj stranici izvetaja (ov-
de je to datum i broj strane izvetaja).
Ako elimo da, na primer deo Report footera ne bude vidljiv, uklonimo
sve objekte iz njega i smanjimo njegovu povrinu tako da bude nevidljiv.

Sistem za upravljanje bazama podataka 141


MS Access

Kod izvetaja je vrlo bitno kako je uraeno grupisanje i sortiranje. U na-


em primeru podatke smo grupisali po broju odeljenja, tako da u Design
View izvetaja imamo odeljak povezan sa brojem odeljenja.

zaglavlje BROD (header) sadri polje za unos teksta (Text box) u koji
se upisuje vrednost polja BROD,
odeljak Detail sadri vrednosti atributa vezane za odreeno odelje-
nje, a
podnoje BROD (footer) sadri sumu i procenat plata za pojedino
odeljenje.
Znai prvo e biti ispisano odeljenje 10 (BROD header); zatim ime, IDBR
i plata radnika iz odeljenja 10 (u odeljku Detail); a onda suma plata svih rad-
nika odeljenja 10, kao i koliko je to procenata od ukupne sume za plate rad-
nika iz svih odeljenja (odeljak BROD footer).
Poto je grupisanje uraeno po broju odeljenja, nakon podataka vezanih
za odeljenje 10, prelazi se na sledeu grupu podataka vezanu za odeljenje
20 i tako dalje redom.
PRIMER 4: U ve kreirani izvetaj repPlate dodati podatak o poslu
koji radnik obavlja.

1. Da bi izvrili izmene u ve kreiranom izvetaju potrebno je otvoriti izve-


taj u reimu projektovanja.
2. Da bi dodali novu labelu moramo razmestiti ve postojee labele. Velii-
nu objekta moemo promeniti tako to ga selektujemo i postavimo poka-
ziva mia na ivicu objekta da dobije oblike duple strelice, a onda sma-
njujemo ili poveavamo veliinu objekta. Objekat pomeramo tako to ga
selektujemo i kada pokaziva mia na njemu dobije oblik ake prevue-
mo ga na eljeno mesto. Vrlo bitno je u koji odeljak da stavimo labelu
POSAO (stavljamo u Page header da bi se pojavljivala na poetku sva-
ke stranice).
3. Potrebno je dodati i tekstualno polje za vrednosti atributa POSAO. Ovo
polje dodajemo u odeljak detalji (Detail) ispod odgovarajue labele. Me-
utim, tekstualno polje nema znaaja dok ga ne poveemo sa odgovara-
juim atributom, da bi mogao da prikazuje podatke iz odgovarajue tabe-
le.
4. To radimo u prozoru Property Sheet, koga otvaramo pritiskom na odgo-
varajue dugme . Sam izvetaj, kao i svaki objekat na njemu, ima
svoje posebne karakteristike koje se mogu podeavati u ovom prozoru.
5. Da bi mogli povezati objekat sa nekim atributom, izvetaj mora da ima na
raspolaganju taj atribut. Ako ga nema potrebno ga je dodati. U naem
sluaju izvetaj je kreiran na osnovu tabele RADNIK, znai da je atribut
POSAO na raspolaganju i treba ga povezati sa odgovarajuim poljem.

142 Sistem za upravljanje bazama podataka


Izvetaji

6. Selektujemo tekstualno polje koje smo dodali za vrednost atributa posao,


zatim u prozoru Properties izaberemo karticu Data, i iz padajue liste
Control Source izaberemo atribut POSAO. Naravno moemo podea-
vati i ostala svojstva tog objekta, kao i svih ostalih.
Napomena: Kada kreiramo izvetaj u Design View od poetka, aktiviramo
prozor Property Sheet za izvetaj, izaberemo karticu Data i u polju Record
Source iz padajue liste bira se ve postojea tabela ili upit. Postoji mogu-
nost i da se direktno na tom mestu napravi upit na osnovu koga treba kreirati
izvetaj, pritisne se na dugme koje sadri tri take (skroz desno u polju Re-
cord Source, koje se pojavljuje kada se pozicionira u to polje) i otvara se
prozor za kreiranje upita QBE.
Sa Control palete moemo dodati i linije da bi izvetaj bio pregledniji i
time dodatno poboljati njegov izgled.

Sortiranje i grupisanje
U prethodnom primeru uraeno je grupisanje po atributu BROD, koje je
generisao arobnjak. Naravno i to se moe uraditi u reimu projektovanja,
tako to na Design kartici, u Grouping & Totals delu biramo opciju Group
and Sort i na dnu Accessovog prozora dobijamo okvir kao na slici 6.16.

Slika 6.16 Prozor za grupisanje podataka u reimu projektovanja

U ovom prozoru na slikovit nain moemo raditi sa grupama i sortira-


njem podataka. Prvi red prikazuje postojee grupisanje (po atributu BROD,
to smo izabrali jo prilikom kreiranja izvetaja - u wizardu) i redosled u ko-
jem e biti ovi brojevi (podrazumevano, od najmanjeg ka najveem). Dalje, u
drugom redu imamo mogunost dodavanja novih grupa tj. pravljenja pod-
grupa i njihovog sortiranja.

PRIMER 5: U postojei izvetaj repPlate dodati da podaci budu ure-


eni po opadajuem redosledu po imenu.

1. Otvoriti izvetaj repPlate reimu projektovanja.


2. Otvoriti prozor Group, Sort and Total na jedan od ve opisanih na-
ina.

Sistem za upravljanje bazama podataka 143


MS Access

3. Kliknuti na Add a group i iz prikazane liste izabrati atribut IME a sor-


tiranje podesiti da bude u opadajuem redosledu (with Z on top).
Izvetaj o platama, nakon dosadanjih izmena, ima izgled kao to je pri-
kazano na slici 6.17.

Slika 6.17 Konaan izgled izvetaja repPlate

Izrada izvetaja na osnovu upita


Izvetaje kao i obrasce moemo kreirati kako na osnovu tabela, tako i na
osnovu ve postojeih upita. Tako, ako su potrebni neki odreeni uslovi kod
kreiranja izvetaja prvo kreiramo odgovarajui upit, pa na osnovu njega od-
govarajui izvetaj.

PRIMER 6: Kreirati izvetaj repIzvoz koji prikazuje ime, mesto i fun-


kciju radnika koji rade na projektu izvoz.

1. Ovaj izvetaj treba da prikazuje podatke iz etiri tabele. Najpre


emo napraviti upit koji se zasniva na zahtevu koji je potreban za
izradu ovoga izvetaja. U ovom primeru izvetaj emo bazirati na
upitu qryIzvoz koji u QBE prozoru izgleda kao na slici 6.18.

144 Sistem za upravljanje bazama podataka


Izvetaji

2. Ovaj izvetaj kreiraemo na osnovu opcije Report Wizard.

Slika 6.18 QBE prozor upita

3. U polju za izbor tabele ili upita biramo upit qryIzvoz (slika 6.19.),
i izaberemo sva polja toga upita.

Slika 6.19 Kreiranje izvetaja na osnovu upita

4. Dalje proemo kroz ostale prozore arobnjaka na ve opisani na-


in. Dodamo opciju za grupisanje by PROJEKAT, i ureenje po-
dataka po mestu u rastuem redosledu. Izaberemo stil kako e
izvetaj vizuelno izgledati i nazovemo ga repIzvoz.
5. Nakon malih izmena u reimu projektovanja izvetaj repIzvoz
dobija izgled kao na slici 6.20.

Sistem za upravljanje bazama podataka 145


MS Access

Slika 6.20 Izvetaj kreiran na osnovu upita

Kreiranje izvetaja povezanih sa obrascem


izrada izvetaja na osnovu parametarskog upita

Ponekad je potrebno napraviti izvetaj koji nee prikazivati npr. sve po-
datke o radnicima, ve samo o radnicima koji rade u odreenom odeljenju,
ali jednom su potrebni podaci o radnicima jednog, drugi put o radnicima dru-
gog odeljenja, tako da za to treba omoguiti da se na osnovu izabrane vred-
nosti prikazuju odgovarajui podaci.

PRIMER 7: Na ve kreiranom obrascu frmPROJEKAT dodati ko-


mandno dugme koje e otvarati izvetaj koji treba da pri-
kazuje ifru i ime radnika, broj odeljenja u kojima rade,
kao i broj sati i funkciju koju obavljaju na izabranom pro-
jektu. Grupisanje izvriti po broju projekta, pa po broju
odeljenja. Izvetaju dati ime repUcesce.

1. Na nain kao to je i do sada raeno izabere se opcija za pravljenje no-


vog izvetaja koristei opciju Report Wizard.

2. Iz tabele RADNIK biramo atribute IME i BROD, a iz tabele UEE sve


atribute. Biramo opciju by UCESCE.

3. Kod dodavanja nivoa grupisanja prvo izaberemo BRPROJ sa leve strane


prozora, gde su raspoloiva polja, i na ve opisani nain prebacimo na
desnu stranu. Isto to ponovimo i za atribut BROD. Sada u oknu sa desne
strane imamo prikaz kako e izgledati nivoi grupisanja (slika 6.21).

146 Sistem za upravljanje bazama podataka


Izvetaji

Slika 6.21 Dodavanje nivoa grupisanja za izvetaj

4. Ako elimo da promenimo nivoe grupisanja za ve izabrane atribute po


kojima se vri grupisanje koristimo dugmad Priority. Za davanje vieg
nivoa prioriteta kod grupisanja koristimo dugme , a za dodeljivanje ni-
eg nivoa prioriteta dugme . Ako npr. izaberemo atribut BROD sa de-
sne strane, aktivira se dugme za dodeljivanje vieg nivoa grupisanja, pri-
tiskom na njega atributi BRPROJ i BROD menjaju mesta (slika 6.22).
Vratite nivoe grupisanja na poetni nivo tako to ete izabrati atribut
BROD i dati mu nii prioritet kog grupisanja, ili izaberite atribut BRPROJ i
dajte mu vii prioritet.

5. Proi do kraja kroz prozore arobnjaka, dodati ureenje po imenu po ras-


tuem redosledu. Dati ime izvetaju repUcesce. Nakon to smo to zavr-
ili izvetaj ima izgled kao na slici 6.23.

6. Ovaj izvetaj treba preurediti tako da prikazuje podatke koji se odnose


samo na izabrani projekat. Poto izvetaj treba da otvaramo sa obrasca
PROJEKAT, i poto treba da prikazuje samo podatke za odreeni proje-
kat, a informacija koji projekat je u pitanju je u tekstualnom polju imena
BRPROJ toga obrasca, treba otvoriti obrazac UEE u reimu projek-
tovanja.

Sistem za upravljanje bazama podataka 147


MS Access

Slika 6.22 Promena nivoa grupisanja

Slika 6.23 Izgled izvetaja sa dva nivoa grupisanja

7. U prozoru Property Sheet za svojstva izvetaja otvoriti karticu Data i u


polju Record Source (slika 6.24.) pritisnuti dugme to otvara prozor
QBE za izmene tabele ili upita na osnovu koga je izvetaj napravljen.

148 Sistem za upravljanje bazama podataka


Izvetaji

Slika 6.24 Menjanje svojstava izvetaja

8. U prozoru QBE u polje Criteria atributa BRPROJ dodati uslov


[FORMS]![frmPROJEKAT]![BRPROJ] ime e uslov za koji broj projekta
teba kreirati izvetaj biti zadat u obrascu frmPROJEKAT. Odgovarajui
upit u SQL prozoru ima izgled kao na slici 6.25.

Slika 6.25 Parametarski upit na osnovu koga je kreiran izvetaj

9. Sada preostaje da se na obrascu frmPROJEKAT doda komandno dug-


me cmdOtvoriIzvestaj koje otvara izvetaj repUcesce, na nain ve opi-
san u poglavlju o obrascima.
10. Ako je na obrascu frmPROJEKAT izabran projekat broj 200, izvetaj pri-
kazuje samo podatke koji se odnose na taj projekat (slika 6.26).

tampanje izvetaja
Krajnji cilj izrade izvetaja je obino njihovo tampanje na papiru. Kada
se zavri sa izradom izvetaja preporuuje se provera njegovog izgleda u
pogledu Print Preview.
Podeavanje margina izvetaja radi se izborom opcije Margins iz Page
Size dela Print Preview kartice. Ovo podeavanje se odnosi samo na aktivni
izvetaj, a ne i na druge izvetaje. Ako se potvrdi polje Print Data Only,
tampaju se samo podaci iz izvetaja, a izostavlja se sve to je u odeljcima
Report Header/Footer, kao i u Page Header/Footer.

Sistem za upravljanje bazama podataka 149


MS Access

Slika 6.26 Izvetaj prikazuje samo izabrane podatke (BROD=200)

Ako se prilikom tampanja broj stranica udvostruuje potrebno je prove-


riti da li je irina izvetaja vea od irine lista papira raspoloivog za tampu.
Kolone polja koje nisu mogle da stanu na irinu papira tampaju se na sle-
deoj stranici. Na sledeoj stranici bie tampane i neke kolone ako je desna
margina izvetaja podeena dalje od margine tampaa.

Zadaci za samostalan rad:

6.1 Kreirati izvetaj repPodaciRadnika koji se otvara sa ve kreiranog obra-


sca frmPretraga i prikazuje za radnika izabranog iz padajue liste ifru,
ime i posao radnika, kao i broj odelenja i mesto u kome radi. Na obrascu
dodati komandno dugme koje otvara taj izvetaj.
6.2 Kreirati izvetaj koji prikazuje ime i ifru radnika, broj i ime odeljenja, broj
projekta. Grupisanje uraditi po odeljenjima, a zatim po broju projekta,
ureivanje izvriti po imenu radnika u opadajuem redosledu. Izvetaj
nazvati repProjektiPo Odeljenjima.
6.3 Kreirati izvetaj repBrojSatiPoProjektima koji prikazuje broj projekta,
ifu radnika i broj sati angaovanosti na projektu. Prikazati ukupan broj
sati angaovanosti svih radnika na svakom pojedinanom projektu i na
svim projektima zajedno.

150 Sistem za upravljanje bazama podataka


Literatura
1. E. F. Codd (1970) A Relation Model of Data for Large Shared Data
Banks Communications of the ACM, Volume 13, Number 6, (June
1970), pages 377-387.
2. Chen P. (1976) The Entity-Relationship Model: Toward a Unified
View of Data ACM Transactions on Database Systems, Volume 1,
Number 1, (January 1976), pages 9-36.
3. Alagi S. (1984) Relacione baze podataka, Svjetlost, Sarajevo
4. Radovan M. (1989) Projektiranje informacijskih sistema, Informator,
Zagreb
5. Marjanovi Z. (1990) ORACLE relacioni sistem za upravljanje ba-
zom podataka Breza, Ljig
6. Simi R. (1990) Organizacija podataka , Nauna knjiga, Beograd
7. Mii V. ( 1990), Relaciona baza podataka Rdb/VMS Tehnika knji-
ga, Beograd
9. Bobrowski S. (1995), Oracle 7 i obrada podataka po modelu kli-
jent/server , Mikro knjiga, Beograd
10. Vujnovi R. (1995) SQL i relacijski model podataka , Znak, Zagreb
11. Wynkoop S. (1999) Vodi kroz SQL Server 7.0 , CET, Beograd.
12. Grupa autora (1999) Access 2000 korak po korak , CET, Beograd
13. Robinson C., Simpson A. (2001) Access 2002 , Kompjuter Biblioteka,
aak
14. Kalueri P., Obradovi S., (2007) Projektovanje informacionih sis-
tema Relacione baze podataka, Via elektrotehnika kola, Beograd
15. ., .(2004): , -
-,
16. . (1999) ,
,
17. Miloevi B (2006) Baze podataka, Via tehnika kola, Ni
Vebe i zadaci za samostalan rad
Izrada fizikog modela informacionog sistema,
projektovanje baze podataka
Veba 1. Kreiranje baza podataka, definisanje atributa i zada-
vanje svojstava poljima.
Veba 2. Izbor primarnog kljua, preuzimanje i povezivanje ta-
bela iz drugih baza i unos podataka u tabele.
Veba 3. Rad sa tabelama i pregled podataka u tabelarnom pri-
kazu.
Veba 4. Povezivanje tabela (relacije izmeu tabela).
Veba 5. Izrada upita pomou QBE-a.
Veba 6. Upiti nad vie tabela i ugnjedeni upiti.
Veba 7. Upiti sa izraunatim vrednostima i upotreba agregat-
nih funkcija.
Veba 8. Akcioni i parametarski upiti.

Izrada aplikacija
Veba 9. Obrasci, izrada, izmena i upotreba obrazaca u mani-
pulisanju podacima.
Veba 10. Izvetaji za prikaz podataka iz tabela ili na bazi upita i
prikazivanje izraunatih veliina.
Veba 11. Reagovanje aplikacija na akcije.
Vebe i zadaci za samostalan rad

Veba Datum Saradnik Napomena


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Odbranio vebe
Prezime i ime studenta Grupa Broj indeksa

Sistem za upravljanje bazama podataka 153


Indeks
.mdb datoteka ...................................8 Data definition .................................88
Access Data Definition Language (DDL),.55
izvetaji (reports), .........................9, 10 Data definition upiti .........................88
makroi (macros),...........................9, 10 Data Manipulation Language (DML),55
moduli (modules). .........................9, 10 datoteka ............................................7
obrasci (forms),.............................9, 10 datoteka zakljuavanja (Locking
ugraene funkcije (built-in functions), 9, Information File, .ldb) ...................8
10 Dekartov, Kartezijev proizvod......64
upiti (queries), .....................................9 Delete..............................................85
Access Design View .................................108
tabele (tables), ....................................9 desno spoljnje spajanje...................48
agregatne funkcije........................ 73 DISTINCT........................................80
akcioni ............................................ 55 dodavanje zapisa (Append) ............83
Akcioni upiti .................................... 80 dvostruki klik (Double click).............14
AND ................................................ 61 entitet, objekat.................................12
Append ........................................... 83 Event Procedure .........................117
Append query ................................. 83 Expression Builder .....................122
atribut ............................................ 11 filtriranje, izdvajanje zapisa (Filter).44
ime atributa (Field name).................19 First .................................................74
indeksirano polje (Indexed) ..............28 Form Wizard ..................................99
natpis (Caption) ...............................27 Forms .............................................97
opis atributa (Description) ...............19 FROM..............................................56
opta svojstva (General) ..................30 graenje izraza (Expression Builder),38
osobine polja (Field Properties) ......19 granina kolona (Bound Column), 31
podrazumevane vrednosti (Default Group By........................................74
Value) ..........................................38 grupe, grupisanje podataka ............74
pravila ispravnosti (Validation Rule) 27 grupisanje......................................144
provere ispravnosti (validation rule) 28 Having ............................................74
svojstva.............................................25 history table...................................81
tekst poruke (Validation Text) .........27 i Structured Query Language (SQL).55
tip podatka (Data type).....................19 IN 61
ulazna maska (Input Mask) .............30 IN, NOT IN ......................................61
ulazna maska (Input Mask), ............27 INDEKS...........................................89
Auto Form....................................... 98 Indexed...........................................89
Autonumber .................................. 89 informacija.........................................7
Avg ................................................. 74 INNER JOIN..............................64, 67
backup ........................................... 81 Integritet entiteta...........................47
baza podataka................................ 11 Integritet podataka ..........................47
kreiranje............................................14 IS NOT NULL..................................78
bazna relacija ................................. 11 IS NULL ..........................................78
BETWEEN...................................... 61 Ispravljanje greaka ........................40
Blank Access Database ................. 14 izdvajanje prema obrascu (Filter by
brisanje zapisa (Delete).................. 85 Form)..........................................45
broj kolona (Column Count ). ....... 32 izdvajanje, filtriranje zapisa .............44
broj kolona (Column Count) ......... 31 izraunate kontrole........................112
Caption .......................................... 60 izrada obrazaca na bazi upita .......123
Command Button ....................... 116 izvedena relacija .............................11
ControlTip Text........................... 117 izvestaj
Copy............................................... 39 projektovanje .................................. 136
Count .............................................. 74 izvetaj
Crosstab query ............................... 93 kreiranje ......................................... 131
izvetaji .........................................131 izmena obrasca.............................. 113
grupisanje....................................... 144 izrada obrazaca na bazi upita ........ 123
sortiranje......................................... 144 kreiranje ....................97, 100, 103, 108
izvetaji (Reports) ........................131 projektovanje.................................. 109
je Query By Example (QBE). ........55 odmrzavanje kolona........................ 43
JOIN................................................64 okvir sa alatima (Toolbox)............. 112
Kartezijev proizvod .......................64 opoziv (Undo)................................ 42
Klauzula FROM...............................56 OR................................................... 61
klauzula having ...............................74 ORDER BY..................................... 63
klauzula JOIN..................................64 OUTER JOIN.................................. 64
klauzula ORDER BY.......................63 padajua lista - Combo Box .......... 31
Klauzula SELECT ...........................56 paleta alatki................................... 110
klauzula WHERE.......................60, 63 parametarski ................................... 55
klijent-server......................................7 parametarski upit ............................ 91
klik, (Click).......................................14 parametarski upiti....................... 123
klju .................................................13 Paste .............................................. 39
kolona podatak ............................................. 7
odmrzavanje..................................... 43 broja (AutoNumber) ...................... 20
skrivanje ........................................... 43 datumski (Date) ............................... 20
zamrzavanje ..................................... 43 datumski i vremenski (Date /Time) .. 20
komandna dugmad .......................110 hiperveza (Hyperlink)...................... 20
komandno dugme .........................116 logiki (Logical, Boolean) ............... 20
kontrolni objekati ...........................111 Memo ............................................... 19
kreiranje izvetaja .........................131 nepostojei (Null)............................. 21
kreiranje izvetaja na osnovu novac, valuta (Currency)................. 20
parametarskog upita .................147 numeriki (number) .......................... 19
kreiranje izvetaja na osnovu upita145 Ole objekti........................................ 20
kreiranje izvetaja povezanih sa text ................................................... 19
obrascem ..................................147 vremenski (Time) ............................. 20
kreiranje obrazaca...........................97 podrazumevane vrednosti (Default
kreiranje tabele................................81 Value)......................................... 38
kreiranje upita..................................55 podupit (Subquery) ......................... 86
kreiranjeupita...................................55 polja za tekst................................. 114
Label.............................................113 povezane kontrole (Bound).......... 111
labele.............................................113 povezivanje (Linking) ........................ 5
Last .................................................74 povezivanje tabela (Link tables),... 36
levo spoljnje spajanje......................48 pravila ispravnosti (Validation Rule)38
LIKE ................................................61 pridruivanje (Atta-ching).................. 5
Make table upit.............................81 primarni klju....................... 22, 33, 47
Make-table query...........................81 Primarni klju ................................ 28
Max .................................................74 primarni klju (Primary Key) .......... 33
Microsoft Jet Database Engine .........8 prirodno spajanje ............................ 48
Min ..................................................74 projektovanje obrazaca................. 109
model podataka...............................11 Promena redosleda kolona............. 42
natpis (Caption)..............................60 Properties .................................... 117
Navigation Buttons .....................117 prva normalna forma....................... 13
nepovezane kontrole (Unbound) .111 QBE ................................................ 56
NOT.................................................61 QBE (Query By Example)................. 6
NOT IN ............................................61 Referencijalni integritet................ 47
Null .................................................23 REFERENCIJALNI INTEGRITET... 64
Null-vrednosti ................................77 referencijalni integritet (Referential
Nz funkcija.......................................77 Integrity) .................................... 47
objekat (entitet) ...............................12 relacija ........................................... 12
obrada podataka ...............................7 binarna veza .................................... 23
obrasci (Forms) ..............................97 unarna veza ..................................... 23
obrazac ...........................................97 relacija 1:1, 1:N............................... 70

155
relacija izmeu tabela..................... 46 uvoz (Import) ................................... 34
relacije (Relationships) ................. 35 tabelarni prikaz (Datasheet) ...........37
relaciona baza podataka.............. 11 tabelarni prikaz (Table Datasheet)..44
relacioni model ............................... 12 Text Box .......................................114
relacioni sistem za upravljanje bazama THETA JOIN...................................64
podataka RSUBP.......................5 Toolbox .........................................112
Relational Data Base Management ugnjedeni upit (Subquery) .............86
Systam ..........................................5 ugnjedeni upiti ...............................64
Required........................................ 89 ugraene funkcije (Built-In-Functions)38
RIGHT OUTER JOIN ..................... 70 ugraivanje (Embending)..................5
select .............................................. 55 unakrsni, crosstab upit ....................55
SELECT ......................................... 56 Union upiti .......................................87
select upit ....................................... 55 unos podataka ................................39
SELF JOIN..................................... 64 unutranje spajanje.........................64
skrivanje kolona.............................. 43 Update.............................................84
sloeni klju .................................. 23 upit ..................................................55
sortiranje....................................... 144 akcioni .............................................. 55
sortiranje, ureivanje zapisa .......... 44 kreiranje ........................................... 55
Spajanje po jednakosti (INNER JOIN) parametarski..................................... 55
................................................... 65 parametarski..................................... 91
spajanje tabela ............................... 48 pronai duplikate (Find Duplicates
Spajanje tabela sa samom sobom Query Wizard) ............................. 33
(SELF JOIN) .............................. 70 select upitni blok............................... 55
spajanje tabele ............................... 64 SQL specific ..................................... 55
spoljnje spajanje............................. 64 unaksni crosstab .............................. 55
Spoljnje spajanje (OUTER JOIN)... 68 upit (Query).....................................55
spoljnji klju .................................... 13 upit na bazi primera ........................56
SQL (Structured Query Language) ...6 upit nad vie tabela .........................64
SQL specific ............................. 55, 88 upit sa izraunatim vrednostima .....73
StDev.............................................. 74 ureivanje, sortiranje zapisa ...........44
strani klju ...................................... 23 uvoz tabela (Import) .......................34
struktura relacionog modela..... 12, 14 Var...................................................74
Subquery ........................................ 86 VarP ................................................74
svojstva kontrola (Properties)...... 112 veza
svojstva obrazaca (Properties)..... 112 tip 1:1, 1:N i N:M............................... 46
System ID..........................................8 tipa 1:N (jedan prema vie), ............. 23
System.mdw ....................................8 veza, relacija izmeu tabela............46
Tab index..................................... 119 Visual Basic for Applications VBA.....5
tabela vrsta izvora reda, poreklo reda (Row
prirodno spajanje ..............................48 Source Type) .............................31
spajanje ............................................48 Where .............................................74
tabela WHERE.....................................60, 67
kreiranje, izrada ................................21 za LEFT OUTER JOIN ...................69
relacija izmeu tabela .......................46 zamrzavanje kolona ........................43
runo kreiranje tabele .......................18 zero-length string..........................78
tabelarni prikaz (Datasheet View)....29 enjanje podataka (Update) ...........84
tabelarni prikaz (Datasheet) .............37

156
Sadraj
1. UVOD U MS ACCESS ............................................................................................. 1
2. OSNOVNE KARAKTERISTIKE MS ACCESSA.................................................. 7
DATOTEKE MS ACCESS BAZA PODATAKA ................................................................................ 7
ELEMENTI MS ACCESS BAZA PODATAKA ................................................................................. 8
3. KREIRANJE BAZE PODATAKA........................................................................ 11
POJAM BAZA PODATAKA ........................................................................................................ 11
KREIRANJE BAZE PODATAKA .................................................................................................. 14
MOGUNOSTI IZRADE TABELA U MS ACCESSU ...................................................................... 17
IZBOR PRIMARNOG KLJUA .................................................................................................... 33
PREUZIMANJE TABELA I POVEZIVANJE SA POSTOJEIM TABELAMA ........................................ 34
UNOS PODATAKA.................................................................................................................... 37
UREIVANJE I IZDVAJANJE ZAPISA U TABELARNOM PRIKAZU ................................................. 44
KREIRANJE VEZA-RELACIJA IZMEU TABELA ......................................................................... 45
4. UPITI ....................................................................................................................... 54
IZRADA SELECT UPITA ............................................................................................................ 54
UPITI NAD VIE TABELA I UGNJEDENI UPITI .......................................................................... 63
RAD SA NULL-VREDNOSTIMA I UPOTREBA NZ FUNKCIJE ........................................................ 76
AKCIONI UPITI ........................................................................................................................ 79
SQL-SPECIFIC UPITI ................................................................................................................ 85
PARAMETARSKI UPITI ............................................................................................................. 90
5. OBRASCI ................................................................................................................ 96
KREIRANJE OBRAZACA ........................................................................................................... 96
KORIENJE PROZORA ZA PROJEKTOVANJE OBRAZACA ........................................................ 107
IZMENA OBRAZACA U REIMU PROJEKTOVANJA ................................................................... 112
UPOTREBA OBRAZACA ......................................................................................................... 117
IZRADA OBRAZACA NA BAZI UPITA ....................................................................................... 122
6. IZVETAJI............................................................................................................ 130
KREIRANJE IZVETAJA .......................................................................................................... 130
OPIS IZGLEDA PROZORA ZA PROJEKTOVANJE I NJEGOVIH ODELJAKA .................................... 141

157
KREIRANJE IZVETAJA POVEZANIH SA OBRASCEM IZRADA IZVETAJA NA OSNOVU
PARAMETARSKOG UPITA ................................................................................................ 146

TAMPANJE IZVETAJA ......................................................................................................... 149


LITERATURA ......................................................................................................................... 151
VEBE I ZADACI ZA SAMOSTALAN RAD ....................................................... 152
IZRADA FIZIKOG MODELA INFORMACIONOG SISTEMA, PROJEKTOVANJE BAZE PODATAKA .. 152
IZRADA APLIKACIJA .............................................................................................................. 152
INDEKS ..................................................................................................................... 154
SADRAJ .................................................................................................................. 157

158

You might also like