You are on page 1of 222

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 Data Base Management System,
RDBMS). Do sada se, sa razvojem MS Officea, na tržištu našlo nekoliko
verzija MS Accessa (verzije ... 97, 2000) od kojih je danas aktuelna Access
2002.
MS Access 2000 je 32-bitni sistem za upravljanje relacionim bazama
podataka i predviđen je za:
• rad na jednom računaru, i
• rad u računarskoj mreži (ravnopravnih korisnika ili u klijent-server
aplikacijama).
Access 2000 takođe podržava i rad sa Internetom, kao i izradu HTML
dokumenata.
U osnovi MS Accessa 2000 leži programski jezik Visual Basic for Appli-
cations (VBA), a namenjen je za projektovanje i eksploataciju prostih i slože-
nih relacionih baza podataka. VBA ima najprostiju sintaksu i semantiku od
svih objektno orijentisanih jezika, pa je zato MS Access i najpogodniji
RDBMS za početnike u ovoj oblasti. Access 2000 je direktno spregnut sa
programskim jezikom Visual Basic 6 koji pruža još veće mogućnosti u izradi
aplikacija. Kompatibilan je sa mnogim drugim programskim paketima za ob-
radu baza podataka (dBase, Visual FoxPro, Paradox, SQL Server, Oracle i
drugi), pa ga koriste i iskusni programeri baza podataka visokog stepena
složenosti.
MS Access 2000 omogućava razmenu (“uvoz” i “izvoz”) podataka van
MS Officea, i to praktično sa svim programskim paketima koji podržavaju dbf
format datoteka, naravno i SQL Severom i Oracleom jer podržava ODBC
standard (Open Data Base Connectivity). Ima ugrađene mehanizme bezbe-
dnosti na nivou korisnika (korisnici se mogu razvrstati u grupe koje imaju
različita prava pristupa), a takođe obezbeđuje podršku za transakcionu ob-
radu.
MS Access prihvata i tekst, slike (bmp i jpg datoteke), tonske zapise, fil-
move i sl., odnosno povezivanje (Linking), pridruživanje (Attaching) i ugrađi-
vanje (Embending) datoteka, odnosno dokumenata kreiranih iz raznih apli-
kacija. Ono što je novo u Accessu 2000 jeste veza sa Internetom preko stra-
nica za pristup podacima - Data Access Pages. Access može da se koristi
kao samostalan SUBP, a može da bude čeoni deo - aplikacija u kombinaciji
sa nekim snažnijim SUBP-om.
MS Access

Access je moćna Windows aplikacija koja povezuje sve prednosti i lako-


ću korišćenja grafičkih alata sa brzinom i efikasnošću obrade, koje daje sis-
tem za upravljanje bazama podataka.
Access podržava upotrebu primarnih i spoljnih ključeva i obezbeđuje re-
ferencijalni integritet na nivou DBMS-a. Ima ugrađen veliki broj tipova poda-
taka, većinu standardnih kao i neke nove, tipične 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 olakšavaju rad i omoguća-
vaju brz razvoj aplikacija (RAD, Rapid Applications Development).
Za definisanje i manipulaciju podacima korisnicima je na raspolaganju
SQL (Structured Query Language) i QBE (Query By Example). Ugrađeni su
mehanizmi za rad sa više tabela istovremeno, a takođe postoje sredstva za
ostvarivanje veza između njih.
Na raspolaganju su alati za kreiranje obrazaca i izveštaja, izradu poslo-
vnih grafikona i dijagrama. Zahvaljujući ugrađenim funkcijama moguće su
brze poslovne i statističke analize, rad sa datumima i vremenom, kao i funk-
cije za rad sa tekstualnim podacima.
Naravno Access 2000 je za razliku od prethodnih verzija prava kli-
jent/server aplikacija, a naravno zadržava sve pogodnosti jednokorisničkog
rada ukoliko je to neophodno. Srce Accessa i dalje predstavlja Jet Database
Machine namenjena za kreiranje tabela i izvršavanje upita. Njena funkcio-
nalnost je sasvim dovoljna za podršku 10-tak radnih stanica i najviše 10 MB
podataka. Za veće informacione sisteme neophodno je koristiti jače RDBMS,
odnosno SQL Server ili čak Oracle.
Ono što je najveća 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 drugačiji alati i naravno snaga, ali i cena.

2 Sistem za upravljanje bazama podataka


2. Osnovne karakteristike MS
Accessa
U svetu koji nas okružuje postoji u svakom momentu veliki broj objekata
koji se neprestano menjaju, i veliki broj događaja koji se dešavaju nezavisno
od naše volje i svesti o njima. Spoznajom svojstava nekih objekata ili ishoda
nekih događaja dolazimo do informacija o svetu oko nas. Podaci su diskret-
ni, zapisani fakti o pojavama i događajima iz sveta koji nas okružuje, i iz kojih
dobijamo informacije o svetu. Drugim rečima, podaci su činjenice, oznake ili
zapažanja nastala u toku nekog procesa, a koja su zapisana, tj. kodirana
pomoću nekih fizičkih simbola, ili simbola neke azbuke, i imaju svojstvo da
mogu da se zapisuju, čuvaju, prenose i obrađuju. Podaci su sredstva za iz-
ražavanje 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 način 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 izračunavamo 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 mesečna i godišnja 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 skladištenje podataka najčešće ko-
riste diskovi u sastavu nekog računarskog sistema, a da bi se podaci saču-
vali na disku oni se organizuju u posebne celine koje se nazivaju datoteke
(file). Znači, 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, sličnu onoj
koju koriste klijent-server sistemi za upravljanje relacionim bazama podata-
ka, ali istovremeno i vrlo specifičnu.
Korisnička datoteka baze podataka je datoteka tipa .mdb. Razlikuje se od
tradicionalnih baza podataka za lične računare (PC) po tome što su i podaci
i aplikacija smešteni u jednoj .mdb datoteci. Datoteke .mdb sadrže čak i
MS Access

programski kôd koji je napisan u programskom jeziku Visual Basic For Appli-
cation (VBA). Nije potrebno da korisnik brine o strukturi .mdb datoteka, jer
MS Access rukuje svim detaljima upravljanja datotekama, što i jeste zadatak
sistema za upravljanje bazama podataka.
Glavna datoteka baze podataka (datoteka radne grupe) ima naziv
System.mdw. Ova datoteka sadrži sledeće informacije:
• imena korisnika i grupa korisnika koji mogu da otvore MS Access
• lozinke i jedinstveni binarni kôd korisnika koji se naziva System ID
(System Identifier, SID) koji identifikuje korisnika koji trenutno koristi
MS Access,
• operativna podešavanja, koja se uspostavljaju izborom stavki iz pa-
dajuće liste Tools - Options, i
• definicije prilagođenih paleta alatki u Accessu 2000, koje pravi svaki
korisnik.
U bibliotečke datoteke (.mda i .mde) smeštaju se “čarobnjaci” za izradu ob-
razaca, izveštaja, grafikona, kao i rečnik podataka za sve elemente baze
podataka. Dodavanjem ovih elemenata proširuju se mogućnosti MS Accessa
i dodaju mu se nove osobine. Ove biblioteke možemo povezati sa Accessom
izborom opcije References iz liste Tools u prozoru Modules, ili pomoću ala-
tke Add-In-Manager, kojoj možemo pristupiti izborom opcije Tools-Add-Ins.
Čarobnjaci Accessa 2000, koji se koriste da bismo napravili obrasce, izveš-
taje ili grafike, čuvaju se u nizu datoteka Accessovih bibliotečkih baza po-
dataka:
• Acwzlib.mde,
• Acwztool.mde, i
• Acwzmain.mde.
Datoteka zaključavanja (Locking Information File, sa ekstenzijom .ldb) služi
za smeštanje informacija o trenutno zaključanim podacima u bazi (tj. o onim
podacima koji su u procesu ažuriranja). Ako ovaj fajl ne postoji u trenutku
otvaranja baze, Microsoft Jet Database Engine ga stvara, dajući mu isto ime
kao što je i ime baze, samo sa ekstenzijom .ldb. Ovim se obezbeđuje da
neki korisnik ne pristupi nekompletnim podacima, dok drugi korisnik vrši nji-
hovu izmenu.

Elementi MS Access baza podataka


Osnovni elementi koji sačinjavaju MS Access 2000 su:
• tabele (tables),
• upiti (queries),
• obrasci (forms),
• izveštaji (reports),

4 Sistem za upravljanje bazama podataka


Osnovne karekteristike MS Access-a

• stranice za pristup podacima (data access pages, DAP),


• ugrađene 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 služi za smeštanje i memori-
sanje podataka. Baza podataka u MS Accessu može da sadrži maksimalno
do 32768 tabela od kojih maksimalno 1024 mogu biti istovremeno “aktivne”,
to jest “otvorene”. U toku rada moguća je i dinamička “razmena” podataka,
kao i direktno povezivanje sa drugim tabelama kreiranim u drugim aplikaci-
jama i sistemima za upravljanje bazama podataka. Access podržava primar-
ne ključeve (integritet podataka, jedinstvenost svake n-torke) i spoljnje klju-
čeve (obezbeđuje potpuni referencijalni integritet na nivou samog RDBMS-a,
čime su onemogućena nepotpuna brisanja i ažuriranja podataka).
Upit (query) je najčešće korišćen “alat” u radu sa relacionim bazama
podataka. MS Access 2000 omogućava:
• grafički, brz i komforan način kreiranja upita na bazi primera (QBE),
• postavljanje upita pomoću strukturiranog upitnog jezika (SQL),
• upotrebu “čarobnjaka” za izradu upita, obrazaca i izveštaja,
• postavljanje upita nad najviše 16 tabela, i
• formiranje rezultata upita kao tabele od najviše 255 kolona.
Access podržava postavljanje upita nad više tabela (istovremeno) kao i
uspostavljanje veza - relacija između 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 dinamički skup podataka
(Dynaset) čiji se sadržaj menja u zavisnosti od promena sirovih podataka u
fizičkim tabelama.

Obrazci (Forms) služe za komfornije i sigurnije unošenje 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 grafičkih formata, slika, zvučnih za-
pisa, itd., koji čine njegovu osnovu. Obrasci za unos podataka ujedno obez-
beđuju proveru ispravnosti i zaštitu podataka kroz mehanizme ograničavanja
pristupa određenim poljima u tabeli. Za neke korisnike mogu se kreirati ob-
rasci pomoću kojih je moguće samo izveštavanje (pregled podataka), i to
samo određenih polja. Na taj način se obezbeđuje zaštita podataka od neov-
lašćenih 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 određena

Sistem za upravljanje bazama podatka 5


MS Access

radnja ili kada se desi neki događaj (na primer pritisnemo neki taster na tas-
taturi ili mišu).

Izveštaji (Reports) prikazuju na papiru ili ekranu monitora nove infor-


macije (podatke), koje smo dobili kao rezultat obrade raspoloživih podataka
iz baze. Izveštaji mogu kombinovati podatke iz više tabela i na taj način nam
omogućavaju da predstavimo složene veze koje postoje između raznih sku-
pova podataka. U izveštajima se kao i u upitima mogu koristiti razne funkcije,
pa se sem podataka mogu prikazati i izračunate veličine. Prilikom pravljenja
izveštaja mogu se koristiti razne grafičke mogućnosti, tako da se mogu ge-
nerisati fakture, cirkularna pisma, itd.

Stranice za pristup podacima (Data Access Pages, DAP) služe za


razvoj aplikacija pogodnih za upotrebu u lokalnim računarskim mrežama i na
Internetu.
Ugrađene funkcije (Built-In-Functions) , ima ih preko 200, daju pose-
bnu snagu Accessu u procesu izračunavanja raznih statističkih i finansijskih
veličina kao i u radu sa datumima i tekstom. Dobijeni rezultati su nezamen-
ljva pomoć rukovodiocima u donošenju strateških odluka.
Makroi (macros) su skupovi komandi koje zadaje korisnik, a služe za
automatizaciju poslova koji se ponavljaju tj., obavljaju na isti način (na primer
pozivanje obrazaca u određenom redosledu ili na bazi nekih događanja,
pravljenje izveštaja, itd.).
Moduli (modules) su skupovi procedura i funkcija koje su napisane u
nekom programskom jeziku (najčešće je to VBA, ali može biti i u nekom dru-
gom jeziku, na primer u Visual Basicu, Visual C++, idt.), a mogu se povezi-
vati sa elementima Accessa 2000. U osnovi modula a i makroa je objektno
programiranje upravljano događajima (Event Driven Programming).

6 Sistem za upravljanje bazama podataka


3. Kreiranje baze podataka
Pojam baza podataka
Ako bismo želeli da u jednoj rečenici definišemo baze podataka onda bi
definicija bila da je to skup povezanih podataka koji su organizovani na od-
ređen način i među sobom postavljeni u određene veze - relacije. Iako ima
više mogućih 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 može se dobiti iz baznih
relacija operacijama koje se definišu nad relacijama. Bazne tabele se još
nazivaju i fizičke tabele, jer one zbilja postoje trajno memorisane na disku,
dok izvedene tabele nastaju kao rezultat neke operacije nad fizičkim tabela-
ma i postoje samo privremeno u operativnoj memoriji računara. Zbog toga
se izvedene tabele nazivaju i virtuelne. Kreiranje baze podataka, bar kada
se radi o Accessu, predstavlja u stvari proces kreiranja fizičkih tabela i veza
između 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 međusobno povezanih podataka koji se čuvaju zajedno i me-
đu kojima ima samo onoliko ponavljanja koliko je neophodno za njihovo op-
timalno korišćenje pri višekorisničkom radu. Podaci se pamte tako da budu
nezavisni od programa koji ih koriste, i strukturiraju se tako da je omogućen
porast baze.
Model podataka služi za prikazivanje objekata sistema - entiteta, nji-
hovih svojstava - atributa, kao i njihovih međusobnih veza. Svaki model
podataka mora da sadrži strukturu objekata, ograničenja 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 imaće malu verodostojnost, pa će samim tim biti i mali
broj korisnih informacija koje može da pruži. Ako se model opiše sa suviše
velikim brojem podataka, postaje suviše složen, pa je obrada teška, dugot-
rajna, a dobijene informacije mogu biti konfuzne.
Odabrani entiteti po svojoj prirodi mogu biti:
• realni deo sveta (na primer: aparat, preduzeće, radnik, račun, narud-
žbenica i sl.),
• apstraktni pojam (mera, količina, boja, zvanje, itd.),
MS Access

• događaj (narudžbina, transport, upis studenata, i sl.) i


• asocijacija (službenik-firma, predmet-nastavnik).
Model realnog sistema formira se korišćenjem semantički najbogatijeg
objektnog modela. U zavisnosti od softvera koji će se koristiti za implemen-
taciju takav model prevodi se najčešće u odgovarajući relacioni model – ta-
bele, kao model za implementaciju.
Relacioni model je danas najpopularniji model baze podataka i to zahva-
ljujući pre svega sledećim osobinama:
• struktura modela veoma je jednostavna, baza podataka predstavlja
skup tabela,
• moguća je formalno-matematička interpretacija tabela.
Kao što mu i samo ime govori ovaj model se zasniva na tabelama, tj., re-
lacijama između određenih skupova.
Relacija: Koncept atributa omogućava predstavljanje relacije kao tabele,
pa se relacija RADNIK može predstaviti sledećom tabelom:

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

Skup vrednosti za atribut-domen

primarni ključ spoljni ključ


Pojedinačna vrednost atributa
Slika 3.1 Tabele - osnovni pojmovi i sastavni delovi

Osobine objekata (entiteta) predstavljaju njegove atribute koji ga bliže


opisuju i to u onom obimu koji je za datu primenu dovoljan. Izbor pogodnog
skupa atributa koji su od značaja za neku aplikaciju zove se apstrahovanje
podataka i vrlo je važan korak u projektovanju sistema.
Na primer, za jedno preduzeće koje nam isporučuje neku robu (dobav-
ljač) od značaja je da znamo sedište, adresu, telefon, osobu za kontakt, ali
uopšte nije od značaja koliko zaposlenih ima, koje radne jedinice, na kojim
projektima rade i sl. Kada posmatramo to isto preduzeće sa stanovišta nje-
govog poslovanja od značaja su i ovi podaci, ali i mnogi drugi. Ako su pred-
met našeg posmatranja zaposleni u nekom kolektivu i ako je naš posao da
odredimo plate radnika, onda broj njihovih cipela nema nikakvog značaja

8 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

(nije relevantan). Ali ako tog istog zaposlenog posmatramo iz ugla nabavke
HTZ opreme onda je i broj cipela i veličina odela i te kako važna.
Iako su neki podaci vrlo važni za neke aplikacije, oni ponekad uopšte 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 ažurirati bazu podataka. Mnogo je pogodniji recimo
datum zaposlenja kao podatak na bazi kojeg možemo, ako je to potrebno,
izračunati radni staž.
U bazi podataka ne treba da postoje podaci koji su višeznačni. Na pri-
mer, bračno stanje koje može biti neoženjen, oženjen, razveden i udovac.
Jer ako je neko oženjen po treći put, onda on može istovremeno biti i razve-
den i udovac. Takve podatke takođe treba isključiti iz baze, ako nisu neop-
hodni, jer nas mogu dovesti u zabludu.
Pošto je relacija skup, a svaka tabela nije, definišu se sledeći 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 način opisuje tu vrstu
i zove se primarni ključ),
2. redosled vrsta nije značajan,
3. redosled kolona nije značajan, 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 više 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 različita imena, ali u raznim
tabelama mogu imati ista imena.
Ključ relacije (primarni ključ) je takva kolekcija njenih atributa, koja za-
dovoljava sledeće uslove:
• ne postoje bilo koje dve n-torke sa istom vrednošću ključa (osobina
jedinstvenosti), i
• ako se bilo koji atribut izostavi iz ključa gubi se osobina jedinstvenosti
(osobina neredundantnosti).
Definiše se takođe spoljnji ili strani ključ, kao atribut ili grupa atributa koji
služe za povezivanje sa vrednošću primarnog ključa neke druge relacije.
Spoljnji ključevi služe da se uspostave veze između relacija (tabela) u relaci-
onoj bazi podataka. U prethodnoj tabeli RADNIK spoljnji ključ služi za pove-
zivanje tabele RADNIK sa tabelom u kojoj se nalaze podaci o odeljenjima.
Svi atributi po kojima se vrši pretraživanje baze (sem primarnog ključa) zovu
se sekundarni ključevi. Razlika između primarnog i sekundarnih ključeva je u
tome što pri pretraživanju baze po primarnom ključu dobijamo najviše jedan
zapis, ako takav zapis postoji, ili nijedan, ako ne postoji. Pri pretraživanju po

Sistem za upravljanje bazama podataka 9


MS Access

sekundarnim ključevima dobijamo skup zapisa (recordset), jer više objekata


može imati istu vrednost za taj atribut.
Kao što mu i samo ime govori, relacioni model se zasniva na relacijama
između određenih 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 pomoću ikonice koja se nakon instaliranja može “postaviti” na
ekran monitora, tj. na radnu površinu (Desktop). To je takozvana prečica
(Shortcut). Ako nemamo ikonicu na radnoj površini, Access se pokreće kao i
sve druge Windows aplikacije, iz liste Start/Programs, ili preko istraživača
(Explorer) dvostrukim klikom[1]... [4] na bilo koji .mdb dokument. Nakon pokre-
tanja pojavljuje se prvi, osnovni dijalog Microsoft Accessa (slika 3.2), koji
pruža mogućnost izbora jedne od tri opcije i to:
• Blank Access Database,
• Access Database Wizard, pages and projects i
• Open an Existing file.

Slika 3.2 Prvi “prozor” MS Accessa


• Blank Access Database je opcija za kreiranje nove baze podataka
bez upotrebe “čarobnjaka” (wizard) i ostalih poluautomatizovanih

[1]
U Windows operativnom sistemu dovođenjem pokazivača miša na neki objekat i pritiskom na radni,
najčešće levi, taster miša vrši se izbor (označavanje, selekcija) nekog objekta.
[2]
Pritisak na radni taster miša predstavlja događaj koji se naziva klik (Click).
[3]
Pritisak na radni taster miša dva puta u kratkom vremenskom intervalu predstavlja događaj koji se
naziva dvostruki klik (Double click).
[4]
Pritiskom na alternativni, najčešće desni taster miša, dobija se brza lista, skup najčešće korišćenih
naredbi za izabrani objekat.

10 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

operacija koje MS Access nudi u radu. U kasnijim fazama rada (eks-


ploatacija baze) ove pogodnosti MS Accessa mogu se opet, po želji,
aktivirati.
• Database Wizard je praktična opcija za brzo kreiranje nove, i eks-
ploataciju (sa čarobnjakom) postojeće baze podataka.
Open an Existing file je opcija za otvaranje postojeće baze podataka koju
hoćemo da modifikujemo ili koristimo. Microsoft je za potrebe demonstriranja
mogućnosti MS Accessa “postavio” i “popunio” podacima nekoliko “tipičnih”
baza podataka koje korisnik može koristiti i modifikovati po želji. Najkom-
pleksnija od njih je baza podataka Northwind, iz koje se, “igrajući” se njome,
može mnogo naučiti o mogućnostima MS Accessa. Vežba sa Northwindom
je korisna i poučna i zbog relacionog pristupa problemu koji je primenjen pri
njenom kreiranju.
Sve ponuđene opcije biraju se mišem. Za kreiranje nove baze podataka
“označimo” mišem Blank Access Database i kliknimo OK.
Nakon toga Access traži 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ć istraživača
(explorera) lako dolazimo do njega. Ako direktorijum nismo ranije odredili
koristi se opcija Create New Folder. Access nudi ime baze db1.mdb, ali joj
korisnik može dati i drugo ime, na primer PREDUZECE.mdb. Postupak ko-
načno završavamo, nakon imenovanja fajla, izborom dugmeta Create. Ovaj
postupak prikazan je na slici 3.3.

Slika 3.3 Smeštanje baze na disk pod određenim imenom

Kada kreiramo .mdb datoteku, pojaviće se radni prozor Accessa, (slika


3.4).

Sistem za upravljanje bazama podataka 11


MS Access

Padajuće liste

Paleta
alatki

Prozor Alati za
Database rad sa
objektima

Lista objekata

Slika 3.4 Radni prozor MS Accessa sa prozorom “Database” za kreiranje novih, i


menjanje postojećih tabela baze podataka
Kao i druge Windows aplikacije, radni prozor Accessa na vrhu ima liniju
sa padajućim listama File, Edit, View, itd., u kojima su grupisane brojne na-
redbe koje su delimično iste kao i u drugim aplikacijama (Word, Excel I sl.),
ali sadrže i neke naredbe koje su tipične samo za Access, tj. za rad sa ba-
zama podataka. Ispod ove linije nalazi se linija alatki (Tools) sa najčešće ko-
rišćenim alatkama, a njen sadržaj zavisi od trenutne aktivnosti u Accessu.
Unutar radne površine postoji prozor sa karticama: Objects koja odgovara
osnovnim objektima Accessa (Tabele, Upiti, ...) i ono što je novo jeste kartica
grupe (Groups), koja daje mogućnost razvoja aplikacija za koje nisu potre-
bne sve, već samo neke od postojećih tabela. Ona sadrži grupu omiljeni
(Favorites), a sam korisnik može kreirati i dodatne grupe (desnim tasterom
miša kliknemo na neku tabelu i smestimo je u neku od postojećih grupa, ili
kreiramo novu grupu).

Zadaci za samostalan rad:


3.1. Kreirati novu bazu podataka “MojaPrvaBaza” pomoću wizarda.
3.2. Kreirati novu bazu podataka “MojaDrugaBaza” koristeći opciju Blank
Accesss Database.
3.3. Otvoriti već postojeću bazu podataka “MojaPrvaBaza”

Mogućnosti izrade tabela u MS Accessu


Najpre treba uočiti da radni prozor “Database” ima sopstvene alate za
rad sa objektima, a to su dugmad otvori (Open), projektuj (Design), novi

12 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

(New), uništi - obriši (Delete) i alatke za prikaz objekata u obliku padajućih


lista.
1. Da bi kreirali novu tabelu u listi objekata izaberemo objekat tabele (Tab-
le) i ako kliknemo na dugme nova (New) dobijamo novi okvir za dijalog I
u njemu jednu od pet ponuđenih mogućnosti:
• ručno kreiranje tabele (Datasheet View i Design View),
• automatsko kreiranje tabele (Table Wizard opcija),
• mogućnost unosa-uvoza tabele iz neke druge baze (Import Table),
• virtualnu vezu sa tabelom iz druge baze (Link Table).
2. Za kreiranje nove tabele treba odabrati opciju Design View nakon čega
se otvara prozor za definisanje polja (atributa koji će se nalaziti u tabeli).
Novu tabelu u prethodno formiranoj bazi podataka možemo kreirati na
sledeće načine:
• Create table in Design view (ručno kreiranje tabele),
• Create table by using wizard (kreiranje tabele upotrebom “čarob-
njaka”), i
• Create table by entering data (preuzimanje neke tabele).
3. Odaberimo prvu opciju (Create table in design view) da bi mogli us-
pešno da pratimo sve faze u radu, što u radu sa “čarobnjakom” (wizard)
nije uvek moguće. Isti efekat postiže se akcijom nova tabela New, izbo-
rom druge opcije Design view. Otvara 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 Maska za definisanje tipa podatka i svojstava budućih atributa

• Field name (ime atributa),


• Data type (tip podatka) ,

Sistem za upravljanje bazama podataka 13


MS Access

• Description (opis atributa) , i


• Field Properties (osobine polja) .
Field name (ime atributa) - imena atributa u budućoj tabeli. Ime atribu-
ta (ili ime polja) ne sme biti ni jedna od ključnih reči programskog paketa
SQL i mora počinjati slovom engleskog alfabeta. Od specijalnih znakova
može sadržati samo znak podvučeno “_”, a takođe je moguće nazvati polje
imenom koje sadrži razmaknicu (“space” karaktere). U slučaju upotrebe ra-
zmaknice u imenu polja, prilikom izrade upita, moramo navoditi ime polja u
uglastim zagradama [ ]. Dužina imena ograničena je na 40 karaktera.

NAPOMENA: Upotreba YU karaktera (“Š”,”Ć”,”Đ”,”Č”,”Ž”) u imenima atributa (i


uopšte, imenima objekata baze podataka) je moguća, ali samo u slučaju da je kôd
korisnika podrazumevani jezik Serbian Latin ili Slovenian (Opcija Regional Set-
tings na Win95/98/NT, tj. Regional Options na Win 2000). Samim tim se uma-
njuje prenosivost aplikacije sa sistema na sistem. Zbog toga u urađenim primeri-
ma u praktikumu nisu upotrebljavani ovi karakteri.
U jednoj bazi podataka može postojati više atributa sa istim imenom, ali
oni ne smeju pri tome biti u istoj relaciji (tabeli). Preporučljivo je ovu opciju
(ista imena atributa u raznim tabelama), radi preglednosti i eliminacije greša-
ka, izbegavati kad god je to moguće, sem kada se radi o atributima za spa-
janje (spoljašnji ključevi).
Data type (tip podatka) - tip podatka koji će poprimiti ti atributi. Access
podržava sledeće tipove podataka:
• Text (slovni ili znakovni tip), koristi se kada podatak predstavlja niz
alfanumeričkih znakova. Takav podatak je na primer ime i prezime,
adresa ili zanimanje radnika, broj telefona itd. Slovni ili string poda-
tak može biti svaki niz alfanumeričkih i nekih od specijalnih znakova.
Broj znakova kod ovog tipa podatka je ograničen na 255.
• Memo tip, je u principu slovni (alfanumerički) tip, ali sa većom duži-
nom (na primer do 64 KB) a koristi se za unošenje opisnih podataka
(dijagnoza ili anamneza pacijenta, na primer). Ovakvi podaci se ne
mogu indeksirati, niti biti polja za primarni ključ. Memo tip podataka
ima od 256 do 65 535 znakova.
• Number (brojni tip), na primer visina ličnog dohotka ili dužina neke
ulice, može slično kao i u drugim programskim jezicima, da bude ce-
lobrojan (Byte, ako je dužina 8 bita, Integer, ako je dužina 16 bita i
Long Integer, sa dužinom od 32 bita), ali i realan broj sa fiksnom ili
pomičnom decimalnom tačkom razne preciznosti koja zavisi od duži-
ne, to jest broja cifara. Tako je tip podataka Single realan broj do 7
dekadnih cifara, odnosno Double dužine do 15 dekadnih cifara.
• AutoNumber je numerička (Long Integer) vrednost, koju MS Access
automatski inkrementira za svaki novi zapis koji se doda u tabelu.
Pogodan je za primarni ključ.

14 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

• 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 sadrži
tri numerička polja (za dan, mesec i godinu), međusobno odvojena
tačkom, crtom ili kosom crtom, a što zavisi od zemlje u kojoj će se
koristi. Za ovakav tip podatka važi i posebna aritmetika koja omogu-
ćava korisniku da računa vremenske intervale.
• Time je vremenski tip podatka za koji važe ista pravila kao i za da-
tumski, s tim što se koriste različiti postupci za obradu zasnovani na
različitim 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-
juće aritmetike shodno tome moraju razlikovati.
• Yes/No (logički tip), predstavlja podatak koji se koristi kod atributa
kod kojih je domen ograničen na dve vrednosti.
• Currency je numerički tip fiksnog formata sa četiri decimalna mesta.
Koristi se za atribute koji izražavaju novčane vrednosti.
• OLE objekti služe 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 ugrađeni (embeded) u polje Microsoft Access tabele. OLE
tip se ne može proglasiti za polje ključa, niti ga možemo uključiti u in-
deks.
• Hyperlink - polja hiperveza čuvaju adrese HTML dokumenata
(HyperText Markup Language). Web adresa koja se čuva u hyperlink
polju može da se odnosi na neku Web stranicu na Internetu, ili na
stranicu koja se čuva lokalno na računaru ili mreži. Izbor mišem polja
Hyperlink prouzrokuje pokretanje Web pretraživača (browser) i pri-
kazivanje Web strane na koju smo se pozvali. Da bismo dobili novu
adresu hiperveze, treba izabrati komandu Insert - Hyperlink.
• Konačno, u tehnici definisanja podataka postoji i pomenuti slučaj ne-
postojećeg podatka, kada vrednost podatka (određenog 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 dopušta svakom podatku (sem primarnog ključa)
da ima i nepostojeću, Null-vrednost.
Description (opis atributa), možemo pisati na bilo kome jeziku (pa i
našem), jer taj podatak ne učestvuje kasnije u obradi, nego nam služi isklju-
čivo da u složenijim bazama podataka znamo šta smo prilikom kreiranja ta-
bele zamislili.

Sistem za upravljanje bazama podataka 15


MS Access

Primer izrade tabela


U sledećem primeru možemo videti kako se jednostavno pomoću Ac-
cessa kreira nova tabela.
Tok formiranja nove baze podataka prikazan je na konkretnom primeru
predloženog relacionog modela preduzeća 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>
UČEŠĆE <idbr#, brproj#, brojsati, funkcija>
1. U osnovnom prozoru, slika 3.4, kliknemo na objekat tabele (Table), a
zatim na alatku nova (New). Pojavljuje se prozor za kreiranje tabela.
Pretpostavimo da u informacionom sistemu nekog preduzeća treba krei-
rati tabelu RADNIK, u kojoj bi se nalazili podaci o kvalifikaciji, imenu rad-
nika, poslu koji obavlja, njegovom rukovodiocu, datumu zaposlenja, pre-
miji i plati.
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 sačuvate 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ć, predlaže da on kreira primarni ključ kao jedno polje tipa auto-
number. Pritisnite dugme ne (No), jer za sada treba ostaviti tabele bez
primarnog ključa.

[1]
Znak # je upotrebljen u ovom praktikumu kao oznaka da je dati atribut primarni ključ,
inače nije implementiran u sintaksu SQL jezika.

16 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

4. Za potpuniju informaciju o preduzeću sem tabele RADNIK potrebno je


kreirati i tabelu ODELJENJE, koja opisuje organizaciju preduzeća i tabe-
lu PROJEKAT, koja sadrži informacije o poslovima kojima se preduzeće
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 broproj# (šifra projekta) i imeproj ne mogu imati vrednosti
Null.
Obratimo pažnju na neke činjenice koje su implicitno sadržane u ovak-
voj definiciji tabele RADNIK. Ona sadrži u sebi i neke relacije između pojedi-
nih radnika – unarne veze (neki radnici istovremeno su rukovodioci nekim
drugim radnicima).
Za opis organizacije preduzeća i njegovog poslovanja između pojedinih
entiteta - tabela moraju se uspostaviti određene 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 preduzeća. Pri tome jedan
radnik pripada samo jednom odeljenju, a u jednom odeljenju radi više radni-
ka.
Ovo je veza tipa 1:N (jedan prema više), a ostvaruje se tako što se u ta-
beli RADNIK na strani više (više radnika) uvodi kao atribut spoljašnji (strani)
ključ brod$ koji predstavlja primarni ključ u tabeli ODELJENJE. Kako neki
radnici ne moraju trenutno biti raspoređeni ni u jedno odeljenje, ova veza je
opcionalna na strani entiteta (tabele) RADNIK. Zbog toga atribut za vezu
(strani ključ) u ovoj tabeli može imati Null-vrednost. Tako tabela RADNIK
stvarno ima sledeći 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 reži-


mu projektovanja (alatka Design).
6. Dodati novi atribut brod$, i dati mu ista svojstva koja ima istoimeni atribut
u tabeli ODELJENJE.

[1]
Znak $ je upotrebljen u ovom udžbeniku kao naznaka da je dati atribut spoljnji ključ,
inače nije implementiran u sintaksu SQL jezika.

Sistem za upravljanje bazama podataka 17


MS Access

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


racima 2. i 3. (sačuvati izmene, bez primarnog ključa).
Ali, svi radnici rade na nekim konkretnim poslovima, projektima i pri to-
me jedan radnik može raditi na više projekata, a istovremeno na jednom pro-
jektu radi više radnika. Dakle ovo je relacija M:N (više prema više). Da bismo
ostvarili ovu relaciju između dva entiteta treba kreirati novu tabelu, nazovimo
je UČEŠĆE, koja ima složeni primarni ključ (idbr#,brproj#) koji sačinjavaju
primarni ključevi iz tabela RADNIK (idbr#) i PROJEKAT (brproj#).
8. Na način kako je to opisano u prethodnim koracima kreirati tabelu
UČEŠĆE, takođe bez definisanja primarnog ključa, i zatvoriti prozor za
projektovanje tabela.
UČEŠĆE [1](idbr# INTEGER NOT NULL,
brproj# INTEGER NOT NULL,
brojsati BYTE,
funkcija TEXT(15));

Izgled tabela kreiranih u Accessu na osnovu prethodno opisanih primera,


može 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 složenog primarnog ključa onda ćemo i njega označiti
znakom # kao što je to učinjeno u tabeli UČEŠĆE.

18 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Slika 3.7 Baza podataka PREDUZECE (tabele ODELJENJE, PROJEKAT i


UČEŠĆE)

Definisanje dodatnih svojstava atributa


Za svaki od atributa mogu se definisati dodatna svojstva, u zavisnosti
koja je uloga atributa u tabeli (primarni ključ, obavezan, može imati Null-
vrednost, itd.) i koji je tip podatka u pitanju.
1. Otvorimo bazu podataka PREDUZEĆE (slika 3.8. a), izaberemo tabelu
RADNIK, i otvorimo je u režimu projektovanja (kliknemo na alatku De-
sign), (slika 3.8. b). U donjem oknu svojstva polja Field Properties pos-
toje dve kartice: opšta svojstva (General) i posebna u smislu domena
podatka (spoljnji ključ može imati samo one vrednosti koje postoje u ta-
beli u kojoj je on primarni ključ) ili objekta u kojem će biti prikazan (karti-
ca Lookup).
Na prvoj kartici General podešavamo svojstva polja za određeni tip po-
datka:
• veličina polja (Field Size),
• formatiranje (Format),

Sistem za upravljanje bazama podataka 19


MS Access

a) baza podataka PREDUZEĆE sadrži četiri tabele

b) izbor atributa i njihovih svojstava u tabeli RADNIK


Slika 3.8 Podešavanje 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), pridruženi tekst,
• Caption (natpis, pridruženi naslov), koji se pojavljuje umesto imena
polja u rezultatima upita, obrascima i izveštajima,

20 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

• Default Value (podrazumevana vrednost), koja se automatski upisu-


je ukoliko ne unesemo ni jednu drugu,
• Validation Rule (pravila ispravnosti), odnosno domen atributa (skup
dozvoljenih vrednosti). Ova polja omogućavaju proveru ispravnosti
podataka, tj. proveru integriteta domena pri unosu i ažuriranju poda-
taka, čime se povećava zaštita podataka,
• Validation Text (tekst poruke), koji se ispisuje u slučaju unosa neis-
pravnih podataka koji ne zadovoljavaju kriterijume zadate u Validati-
on Rule,
• Required (obavezno), služi za definisanje polja koja ne mogu imati
vrednost Null. Za atribute koji su primarni ključ ovo svojstvo je uvek
“Yes” jer oni ne mogu imati vrednost Null,
• Indexed (indeksirano polje), postavlja indeks na atribut (samo je pri-
marni ključ uvek indeksiran - podrazumevana vrednost). Ova opcija
ima mogućnost No Duplicates, znači ne dozvoljava ponavljanje istih
vrednosti, i podrazumeva se kod primarnog ključa. Opcija Duplicates
OK, dozvoljava duplirane vrednosti i može se primeniti kod atributa
koji se indeksiraju, a nisu primarni ključ,
• Decimal Places (decimalna mesta), određuje tačnost, Precision
(preciznost), definiše ukupan broj cifara za tip podatka decimal, Sca-
le (skaliranje), definiše broj cifara sa desne strane decimalne tačke, i
• Allow Zero Length (dozvoljena je dužina nula) što treba razlikovati
od Null koja označava da polje nema vrednost. Atribut koji ima oso-
binu Allow Zero Length može biti string dužine nula ““, tj. prazan niz
znakova (string).
Primarni ključ podrazumevano ima vrednost svojstva Required Yes i
svojstvo Indexed mora biti Yes (No Duplicates).
Za svaki atribut biramo tip podatka i definišemo posebna svojstva, za neke
atribute (koji imaju mali prebrojiv skup vrednosti), poželjno je definisati svojs-
tva provere ispravnosti i tekst poruke u slučaju unosa pogrešnog podatka.
Svojstvo provere ispravnosti (validation rule) daje implicitno moguć-
nost definisanja sopstvenih domena za pojedine atribute, drugim rečima ko-
risničkih 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 možemo 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.

Sistem za upravljanje bazama podataka 21


MS Access

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 upišite tekst ’’uneli ste neispravan
podatak za kvalifikaciju’’, koji se pojavljuje u slučaju po-
grešnog unosa podataka u polje KVALIF.

1. Obeležite (selektujte) tabelu RADNIK, otvorite prozor za kreiranje tabela


(kliknite na alatku Design).
2. U zadata polja unesite tekst dat u prethodnom primeru (primer 1.).
3. Zatvorite prozor za kreiranje tabela, naravno sačuvajte napravljene iz-
mene (pritisnite dugme Yes), a zatim kliknite dvaput na tabelu radnik.
4. Otvoriće 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 odgovarajuću poru-
ku.
6. Ukucajte vrednost KV, sada će podatak biti prihvaćen i upisan u polje.
7. Zatvorite prozor sa tabelarnim prikazom (kliknite na ⌧). Uočite da nije
bilo nikakvih obaveštenja! Access bez ikakvih dodatnih koraka sve pro-
mene u tabelarnom režimu (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 određeni izgled, kao što je to na primer
datum ili neka tekstualna polja. Ulazna maska ne postoji za numeričke poda-
tke, oni koriste decimalna mesta za olakšavanje unosa. Za datumsko polje
vrlo je korisno prokazati ulaznu masku, a ona mora biti saglasna sa vred-
nošću koja je izabrana u polju veličina polja (Field Size). Access ima veliki
broj unapred definisanih maski za tekstualne podatke kao što su: telefonski

22 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

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) veličinu polja i ulaznu masku vrednost Short
Date. Za polje DATZAP postavite odgovarajuću ulaznu
masku Short Date.
1. Otvorite tabelu RADNIK u režimu projektovanja.
2. Kliknite na polje DATZAP, a zatim u kartici opšta svojstva (General) iza-
berite svojstvo ulazna maska (Input Mask) i kliknite na (…).
3. Otvoriće 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 omogućava korisniku da bira ulaznu masku za svoje podatke

Kartica Lookup pruža velike mogućnosti u pogledu unosa i provere is-


pravnosti podataka, ali i u automatskom generisanju formi preko ’’čarobnja-
ka’’. Naravno, to se posebno dobro može iskoristiti kod spoljašnjih ključeva u
tabelama. Tako recimo u tabeli RADNIK atribut broj odeljenja brod$ je spo-
ljašnji ključ, dakle to je ujedno primarni ključ u nekoj drugoj tabeli (u ovom
slučaju u tabeli ODELJENJE). Dakle podatak u ovom polju tabele RADNIK
potiče iz tabele ODELJENJE.

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 ponuđe-
nim opcijama prikazati samo prvu kolonu te tabele (tj.
samo atribut BROD tabele ODELJENJE).

Sistem za upravljanje bazama podataka 23


MS Access

1. Otvorimo tabelu RADNIK u režimu projektovanja i izaberemo polje


brod$, a zatim na kartici Lookup izaberemo da to bude objekat tipa pada-
juća lista - Combo Box, slika 3.11.
2. U svojstvu vrsta izvora reda, poreklo reda (Row Source Type) izabere-
mo da podatak potiče iz tabele ili upita (Table/Query), a da je izvor reda
(Row Source) tabela ODELJENJE.
3. Pošto je brod# (primarni ključ) u tabeli ODELJENJE prvi atribut, izabe-
remo da je granična kolona 1 (Bound Column), a kako nam treba samo
jedna kolona u broj kolona upišimo takođe 1 (Column Count je 1). Ovo
je korisno zbog toga što prilikom unosa podataka o radniku možemo
uneti samo broj odeljenja koje postoji.

Slika 3.11 Podatak u polju RADNIK.brod$ potiče 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 padajuća lista sa brojevima odeljenja, slika 3.12.
5. Zatvorite tabelarni prikaz i ponovo otvorite tabelu radnik u režimu 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 uočite da je sada u listi sem broja ode-
ljenja i njegov naziv, ali se u polje prenosi samo broj odeljenja, tj. prva
granična kolona (Bound Column je i dalje 1).

24 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Slika 3.12 Pošto je izvor podatka neka tabela u padajućoj listi se nude samo pos-
tojeće vrednosti u tabeli pa je unos podataka brz, a podaci su uvek ispravni

Zadavanje imena i završetak procesa kreiranja tabela


Formiranje tabele završavamo komandom File / Save, upisivanjem ime-
na tabele, ili komandom File / Close. U oba slučaja Access traži da tabeli
damo ime. Isti postupak treba ponoviti i za sve tabele.
Postoji i druga mogućnost. Dovoljno je pokušati zatvaranje radnog pro-
zora (kliknemo na ikonicu ⌧ u desnom uglu prozora za kreiranje tabela) pa
da se automatski pokrene procedura pamćenja. Naime, Access postavlja
pitanje da li želimo da sačuvamo urađene izmene. Ovo je ujedno i zaštita od
slučajnog zatvaranja prozora za kreiranje tabela.
Ukoliko nije definisan primarni ključ tabele (a do sada nije) Access će
poslati odgovarajuće upozorenje i ponuditi da on doda primarni ključ - jedan
atribut tipa Autonumber. Naravno nećemo prihvatiti ponuđenu opciju, izab-
raćemo No. Primarni ključ se može i naknadno kreirati. Ako izaberemo Yes,
Access će kreirati ključ i dati mu ime ID (identifikator).

Izbor primarnog ključa


1. Otvorimo sada svaku od kreiranih tabela u režimu projektovanja Design.
(Tabelu otvaramo u režimu projektovanja tako što u prozoru Database
od ponuđenih objekata izaberemo opciju Tables, zatim izaberemo odgo-
varajuću tabelu i dugme 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 UČEŠĆE koja ima složeni ključ) koji će biti proglašeni za
primarni ključ i izaberemo alatku sa nacrtanim ključem Primary Key.

Sistem za upravljanje bazama podataka 25


MS Access

Nakon toga ce se u polju ispred tog atributa pojaviti grafička oznaka za


ključ .
3. Uočite da se svojstvo Indexed automatski promenilo na Yes (No Duplica-
te). Tabela je uvek indeksirana po primarnom ključu.
4. Ukoliko se ne možemo odlučiti koji od atributa treba da bude ključni, iz-
borom tipa podatka (Data Type) kao AutoNumber, MS Access dodaje u
tabelu još jedan atribut koji smatra ključem. Vrednost toga atributa se u
toku rada kreira automatski, pa ga korisnik ne može po svom nahođenju
menjati.
5. Zatvorite prozor za projektovanje (i sačuvajte 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 primar-
nog ključa ne može sadržati 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 ključem. Kod naknadnog defi-
nisanja primarnog ključa (kada u tabeli već postoje podaci) može doći do
problema zbog moguće pojave istih vrednosti u polju ključa.
Od ovog pravila se naravno može, i mora, odstupiti kada se podaci
preuzimaju iz nekog spoljnjeg izvora, kao što su Excel tabele. Kako
ove tabele nemaju ugrađene mehanizme za zaštitu integriteta (ni
primarne ključeve), to se u njima mogu pojaviti identične n-torke
(duplikati). U slučaju 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 ključa. Zatim se po-
moću specijalnog tipa upita, tačnije čarobnjaka koji pronalazi dupli-
kate (Find Duplicates Query Wizard), izdvoje duplirani zapisi (zapisi
sa istim kandidatom za primarni ključ), izvrši se potrebna analiza
(otkrije uzrok pojave duplikata) i isprave moguće greške.
Primarnom ključu uvek je pridružen indeks koji znatno ubrzava pretraži-
vanje tabele, tj. izvršavanje upita.
Kada se dodaju novi zapisi polje primarnog ključa ne može ostati nepo-
punjeno, tj. primarni ključ ne može imati Null vrednost, a takođe neće dopus-
titi unos zapisa sa istom vrednošću primarnog ključa jer on se ne može du-
plirati (mora biti jedinstven).

Zadatak za samostalan rad


3.4. Kreirati primarni ključ za sve četiri tabele baze PREDUZEĆE.

26 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Preuzimanje tabela i povezivanje sa postojećim


tabelama
Preuzimanje tabela
U radu sa bazama podataka, često dolazimo u situaciju kada je potreb-
no preuzeti strukturu neke već postojeće tabele (sa ili bez podataka) iz dru-
ge baze podataka. Svi podaci koje računar može 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 mogućnosti Accessa je i transformisanje
postojećih tabela baza podataka, radnih tabela i tekstualnih datoteka nap-
ravljenih u drugim DOS i Windows aplikacijama u Accessov .mdb format.
Ovaj postupak preuzimanja poznat je kao “uvoz” (Import)).

PRIMER 4: U bazi podataka “MojaPrvaBaza.mdb” preuzeti tabele


“RADNIK” i “UCESCE” iz baze podataka
“PREDUZECE.mdb”.

1. Otvoriti bazu podataka “MojaPrvaBaza”.


2. Iz padajuće liste File izabrati opciju uzmi spoljnje podatke Get External
Data, a zatim Import (slika 3.13).
3. Pojaviće se prozor “uvoz” (Import) u kome treba izabrati fajl iz koga že-
limo da preuzmemo tabele. Kada na disku pronađemo željeni fajl (u na-
šem primeru “PREDUZECE.mdb”), selektujemo ga i pritisnemo dugme
“Import” (slika 3.14).

Slika 3.13 Početni korak preuzimanja tabele

4. Pojaviće se prozor “Import objects” u kome možemo izabrati objekte


baze podataka koje želimo da preuzmemo. Obzirom da želimo samo ta-
bele, izabraćemo karticu “Tables”, u kojoj će biti prikazane sve tabele

Sistem za upravljanje bazama podataka 27


MS Access

koje nam stoje na raspolaganju. Pritiskom na dugme “Options” omogu-


ćavamo izbor dodatnih opcija preuzimanja tabela. Izabraćemo opciju
“Definition and data”, koja nam omogućava da preuzmemo i strukturu
podataka i podatke. Takođe ćemo izabrati, “čekirati” opciju “Rela-
tionships” koja nam omogućava da preuzmemo i relacije koje su defini-
sane između tabela koje želimo da preuzmemo (slika 3.14). Se-
lektovaćemo tabelu ODELJENJE i držeći pritisnut taster “Shift”, izabra-
ćemo tabelu RADNIK. Kada izaberemo sve potrebne tabele, pritisnuće-
mo dugme “OK” i Access će započeti proces preuzimanja tabela.

Slika 3.14 Selektovanje tabela koje želimo da uvezemo – importujemo

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


Baza” pojaviće se preuzete tabele RADNIK i ODELJENJE (slika 3.15).
Naravno, na slici 3.15 neće postojati tabele PROJEKAT i UČEŠĆE, jer
su samo dve tabele uvezene. Preuzete tabele su prikazane identično
kao i fizičke tabele (slika 3.8 a)), jer to u stvari i jesu (duplikati tabela iz
baze preduzeće).

Slika 3.15 Izgled preuzetih i povezanih tabela u prozoru Database

28 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Povezivanje sa postojećim tabelama


Access takođe ima mogućnost povezivanja tabela iz datoteke baze po-
dataka koja je napravljena u Accessu ili nekom drugom RDBMS-u sa aktiv-
nom bazom podataka u Accessu. Ova opcija je od značaja kada u Accessu
projektujemo samo aplikacioni deo, a izvor podataka se nalazi na serveru i
obično mu pristupa više korisnika odjednom.
PRIMER 5: U bazi podataka “MojaPrvaBaza.mdb” povezati tabele
UCESCE i PROJEKAT iz baze “PREDUZECE.mdb”.

Povezivanje tabela je slično njihovom preuzimanju. Da bismo povezali tabe-


le, potrebno je izabrati istu opciju kao i pri preuzimanju, iz liste File pokrenuti
komandu Get External Data, slika 3.13, a zatim:
1. u drugom koraku umesto opcije “Import” treba izabrati opciju “povezati
tabele” (Link tables),
2. u trećem koraku ne postoji mogućnost izbora dodatnih opcija,
3. po završetku ovog procesa, prozor Database imaće izgled kao na slici
3.15,
4. možemo uočiti da pored tabela koje nisu fizički preuzete, već samo “po-
vezane”, postoji strelica (tabele PROJEKAT i UČEŠĆE). Ove tabele ne
postoje u bazi podataka MojaPrvaBaza.mdb već se koriste originalni po-
daci iz baze podataka preduzeće,
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 PREDUZEĆE i otvorite tabelarni prikaz ta-
bele RADNIK. Uočićete da u njoj i dalje postoji radnik sa imenom Jovan.
To je trebalo i očekivati jer je promena imena urađena u uvezenoj kopiji
tabele, a original je ostao nepromenjen,
8. otvorite tabelarni prikaz tabele PROJEKAT. Uočićete da u njoj više ne
postoji projekat sa imenom plasman. To je takođe trebalo i očekivati jer
je promena imena urađena u povezanoj, originalnoj tabeli,
9. sada u tabeli PROJEKAT (u bazi preduzeće.mdb) promenite ime prodaja
u plasman. Kako je baza MojaPrvaBaza.mdb još uvek otvorena, otvorite
tabelu PROJEKAT u tabelarnom prikazu. Uočićete da je ime već prome-
njeno, jer ova tabela je virtuelna i podaci postoje samo u tabeli
PROJEKAT u bazi preduzeće.mdb.

Unos podataka
Da bismo otvorili tabelu za unos podataka, u prozoru Database (slika
3.16) potrebno je dvaput kliknuti na odgovarajuću tabelu. Drugi način je da

Sistem za upravljanje bazama podataka 29


MS Access

se izabere odgovarajuća 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 vodeći računa o tipu
podataka. U tabelarnom prikazu su već popunjeni redovi (n-torke, zapisi) sa
postojećim podacima, i na kraju postoji jedan prazan red u koji se mogu
unositi podaci (novi zapis).
Ako pogrešimo i unesemo podatak koji nije odgovarajućeg tipa (tekst
umesto broja) ili ne zadovoljava postavljena ograničenja bićemo upozoreni
na grešku, koju možemo popraviti. Ukoliko smo u polju Validation Text upi-
sali odgovarajuću poruku ta poruka će biti prikazana na ekranu. Ukoliko ni-
smo sami definisali poruku sam Access će ispisati svoju: “The value you en-
tered is not valid for this field” (Vrednost koju ste upisali nije prihvatljiva u
ovom polju).

Slika 3.16 Osnovni prozor MS Accessa sa kreiranim tabelama

Naravno možemo definisati dopunska, sopstvena pravila za proveru is-


pravnosti u svojstvu Validation Rule, na primer da plata mora biti veća 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 olakšali posao
unosa podataka.
Veliko olakšanje u unosu podataka obezbeđuje zadavanje podrazume-
vane vrednosti (Default Value) a za podatke koji najčešće imaju neku poz-
natu vrednost, na primer većina zaposlenih u preduzeću je VKV ako je ono

30 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

proizvodno, ili VSS ako je recimo projektantsko. Ova opcija je posebno po-
godna za podatke tipa datum i vreme kada treba uneti tekuće, trenutne vre-
dnosti. Postupak je sledeći:

1. otvorimo tabelu RADNIK u režimu projektovanja,


2. izaberemo atribut datzap, i u kartici opšta svojstva (General)
kliknemo u polje podrazumevana vrednost,
3. na kraju polja pojave se tri tačke (...),
4. kliknemo na (...) i otvara se prozor za građenje izraza
(Expression Builder), slika 3.17,
5. izaberemo funkcije i kliknemo na znak +, pa izaberemo
ugrađene funkcije (Built-In-Functions),
6. u drugom oknu izaberemo Data/Time a u trećem oknu izabe-
remo funkciju Date(),
7. pritisnemo dugme OK i u polju podrazumevana vrednost je
sada upisana funkcija koja zadaje tekući datum.

Slika 3.17 Osnovni prozor MS Accessa sa kreiranim tabelama

Korisne napomene kojima se ubrzava unošenje podataka:


Kod unošenja teksta ukoliko želimo da tekst bude prikazan u više redova
treba pritisnuti kombinaciju tastera Ctrl + Enter za prelazak u novi red.
Kod unosa datuma možemo izabrati proizvoljan format i ulaznu masku.
Formati utiču samo na način kako će podaci biti prikazani, ali ne menjaju
način kako će podaci biti sačuvani u tabeli, pa ih možemo i naknadno
menjati.

Sistem za upravljanje bazama podataka 31


MS Access

Unošenje 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.

Zadatak za samostalan rad:


3.5. U sve četiri tabele uneti odgovarajuće podatke date na slikama 3.6 i
3.7.

Ispravljanje grešaka u projektovanju tabela


U slučaju da smo pri definisanju strukture tabele pogrešili, nešto zabora-
vili, ili uveli nepotreban atribut, aktiviranjem postupka za projektovanje tabele
(Design View), moguće je sve te ispravke odmah i provesti u on line modu.
Problemi se mogu javiti najčešće u slučaju kada se menjaju osobine
primarnih i spoljnjih ključeva, nakon što su uspostavljene relacije među tabe-
lama. Problemi mogu nastati i kada se naknadno definišu primarni ključevi,
jer možda među unetim podacima postoje duplikati ključeva (n-torke sa is-
tom vrednošću primarnog ključa).
Vrlo opasna (i štetna) je mogućnost dodavanja, brisanja i preimenovanja
kolona direktno u tabelarnom prikazu. Promena imena vrši se tako što dva-
put kliknemo na zaglavlje kolone (ime polja) i upišemo novi tekst. Nevolja je
u tome što je zaglavlje kolone upravo ime podatka koje se možda već koristi
u nekim upitima, obrascima ili izeštajima. Za dodavanje i brisanje su na ras-
polaganju komande:
• Insert / Column za dodavanje kolone, i
• Edit / Delete Column za brisanje kolone.

Ispravljanje grešaka u unetim podacima


U slučaju da smo uneli pogrešne podatke moguće je odmah ispraviti
grešku. Svi podaci direktno se mogu menjati u tabelarnom prikazu sem: pri-
marnih ključeva tabela koji su u nekoj drugoj tabeli spoljnji ključevi (inače bi
bio narušen integritet podataka), polja tipa Autonumber, izračunata polja i
zaključana ili isključena polja.
Access pruža nekoliko pogodnosti u ispravkama vrednosti podataka (po-
lja):
• zamena postojeće vrednosti podrazumevanom ostvaruje se kombi-
nacijom tastera Ctrl + Alt + space (razmak),

32 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

• kombinacija tastera Ctrl + ; (tačka zarez), upisuje u polje tekući da-


tum,
• zamena postojeće vrednosti onom koja se nalazi u istom polju pret-
hodnog zapisa kombinacijom tastera Ctrl + ' (apostrof, jednostruki
znak navoda),
• pronalaženje (Find) i zamena postojećih vrednosti novim (Replace)
vrši se slično 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) odlučujemo da li pretražujemo kolonu
ili celu tabelu, a u polju Match biramo da li podatak koji tražimo može
biti bilo gde u polju (Any Part of Field), celo polje (Whole Field) ili po-
četni deo polja (Start of Field),

Slika 3.18 Pronalaženje podatka ili dela podatka u tabeli ili koloni (polju)

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


• dodavanje novih zapisa vrši 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. Vraćanje prika-
za zapisa na ekran vrši se komandom Records / Remove Fil-
ter/Sort,
• kombinacija tastera Ctrl + - (crtica) briše tekući zapis,
• brisanje izabranog, selektovanog zapisa može 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 slučajno. Za brisanje ćemo pritisnuti dugme Yes, a dugme
No je za odustajanje.

Sistem za upravljanje bazama podataka 33


MS Access

Korišćenje 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 više vrsta opoziva:
• Edit/Undo Typing za opoziv poslednje izmene koja je uneta u po-
datke,
• Edit/Undo Current Field/Record poništava poslednju izmenu u te-
kućem polju ili sve izmene u tekućem zapisu,
• Edit/Undo Saved Record poništava sve izmene u zapisu koji je pos-
lednji sačuvan na disku.

Promena redosleda i širine polja i visine reda


Ako nije drugačije 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 ključa. Ali ponekad je potrebno da se neka druga
polja prikažu jedno pored drugog da bismo bolje analizirali podatke. Postav-
ljanje dve kolone jedne pored duge vrši se jednostavnom tehnikom prevla-
čenja. Obeležimo jednu od kolona (klikom na zaglavlje). Otpustimo taster,
ponovo kliknemo na obeleženu kolonu i, držeći taster pritisnut, prevučemo je
levo ili desno od druge kolone. Kolone se mogu premeštati jedna po jedna ili
grupa susednih kolona odjednom. Naravno premeštanje kolona u tabelar-
nom prikazu ne menja redosled polja u strukturi tabele.
Izgled linija kojima su oivičena polja podešava se komandom Format /
Datasheet, pojavljuje se okvir za dijalog prikazan na slici 3.19. Vrsta slova
bira se, kao u svim Windows aplikacijama, komandom Format / Font.

Slika 3.19 Izbor linija za oivičavanje polja

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


tujemo kolonu). Zatim dovedemo pokazivač miša na liniju koja razdvaja dva
polja i dvaput kliknemo levim tasterom miša. Kolona automatski dobija širinu

34 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

koja je dovoljna da bude prikazan najduži podatak ili ime kolone. Druga mo-
gućnost je promena širine komandom Column Width u padajućoj listi For-
mat.
Visina reda podešava se komandom visina reda iz liste Format / Row
Height, ili jednostavno postavite kursor između dva reda i prevlačenjem
promenite širinu.

Skrivanje, prikazivanje, zamrzavanje, i odmrza-


vanje kolona
Skrivanje kolone može se obaviti sužavanjem kolone dok se granične li-
nije ne dodirnu ili komandom Format / Column Width i zadavanjem vredno-
sti 0. Treći način je da obeležimo kolonu (kolone) koju hoćemo da sakrijemo,
na primer kolonu rukovodilac, i onda iz liste Format izaberemo komandu
sakrij Hide Column.
Prikazivanje skrivene kolone obavlja se komandom Format / Unhide,
pojaviće 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 rukovo-
dilac.

dugmad za pri-
kazivanje i skri-
vanje kolona

Slika 3.20 Skrivanje i prikazivanje sakrivenih kolona

U ovom okviru za dijalog možemo ne samo da prikažemo skrivene kolo-


ne, nego i da sakrijemo proizvoljne kolone, izborom odgovarajućeg dugmeta
za potvrdu. Ako hoćemo da kolona rukovodilac ponovo bude vidljiva klikne-
mo na dugme za potvrdu ispred njenog imena. Ako hoćemo da i kolone pla-
ta i posao budu nevidljive, izabraćemo odgovarajuće dugme za potvrdu.
Kada tabela ima veliki broj kolona na ekranu se mogu videti samo neko-
liko susednih. Ako hoćemo da analiziramo podatke u dvema udaljenim kolo-
nama to najčešće nije moguće. U tu svrhu možemo neke bitne kolone, na
primer ime, učiniti uvek vidljivom. Kliknemo na kolone ili kolonu (ime), i onda
iz liste Format izaberemo komandu zamrzni (Freeze Columns). Nakon toga
kolona ime će uvek biti prva sleva. Za odmrzavanje se koristi komanda

Sistem za upravljanje bazama podataka 35


MS Access

Format / Unfreeze All Columns, ali do zatvaranja tabele prethodno zamrz-


nute kolone biće prikazane kao prve sleva.

Trajno čuvanje izmenjenog izgleda tabelarnog


prikaza
Ako podešeni izgled tabele želite trajno da zadržite dovoljno je da pozo-
vete komandu Save iz padajuće liste File (File / Save).

Uređivanje i izdvajanje zapisa u tabelarnom pri-


kazu
U tabelarnom prikazu (Table Datasheet) moguće je brzo i jednostavno
vršiti uređivanje i izdvajanje podataka. MS Access uvek prikazuje podatke
uređene po vrednosti primarnog ključa. Ako želimo da podaci budu prikazani
u nekom drugom redosledu ili da izdvojimo samo neke zapise na raspolaga-
nju su nam odgovorajući alati.
Da bi izvršili uređivanje (sortiranje) zapisa po jednom polju, potrebno je
mišem izabrati vrh polja po kome vršimo sortiranje i izabrati ikonicu za sorti-
ranje po rastućem ili opadajućem redosledu . Sortiranje po više polja
može se uraditi tako što se prevuku polja koja se žele sortirati jedno do dru-
gog, selektuju se držeći 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 ključu, ili se zatvori tabela bez snimanja iz-
mena.
MS Access pruža tri mogućnosti sortiranja:

• Filter by selection (izdvajanje prema izboru) omogućava filtri-


ranje podataka po uspostavljenom redu samo u jednom polju tabele.
Na primer, ako želimo da dobijemo podatke o svim upravnicima, ot-
vorićemo tabelu RADNIK u prikazu Datasheet, pozicionirati se na
vrednost UPRAVNIK u nekom od zapisa i pritisnuti dugme Filter By
Selection, ili iz menija izabrati opciju Records – Filter – Filter By
Selection.
• Uklanjanje ovoga filtra vrši 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).

• Filter by Form (izdvajanje prema obrascu) omogućava filtriranje


prema kriterijumu koji se zasniva na više polja istovremeno. Postu-
pak je sledeći:

36 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

1. otvorimo tabelu RADNIK u prikazu Datasheet i pritisnemo dugme Filter


by Form, ili se iz menija Records – Filter – Filter By Form, otvara pra-
zan obrazac u kome biramo kriterijume po kojima želimo sortiranje,
2. ako, na primer, želimo da izdvojimo radnike čiji je posao upravnik ili sa-
vetnik, iz padajuće liste prvo biramo jedan kriterijum (upravnik),
3. zatim na dnu prozora izaberemo jezičak kartice OR, a onda u polju po-
sao iz padajuće liste biramo drugi kriterijum koji nam je potreban (savet-
nik),
4. kada smo izabrali željene uslove pritisnemo dugme Applay Filter i dobi-
jemo samo one zapise koje smo tražili (slika 3.21.)

Slika 3.21 Rezultati primene opcije Filter by Form

Filter by Form možemo primeniti i kod kriterijuma sa logičkim uslovom


AND (istovremeno zadovoljavanje više uslova), unoseći potrebne uslove na
istoj kartici prozora Form u više 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 slično 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
uređeni po opadajućem 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 između tabela


Tabele se mogu povezati među sobom određenim relacijama tipa
1:1, 1:N i N:M (preko dve relacije 1:N i M:1).
1. Uspostavljanje relacija između tabela vrši se izborom opcije Relations-
hip iz padajuće liste alatke Tools ili izborom dugmeta Relationship
koje je vidljivo kada je aktivan glavni prozor baze Database.

Sistem za upravljanje bazama podataka 37


MS Access

2. Nakon toga se otvara radni prozor kao na slici 3.22. Kliknemo mišem na
željenu tabelu dva puta, ili selektujemo tabelu koja učestvuje u relaciji i
kliknemo na dugme dodaj (Add).
3. Izabrana tabela će se pojaviti u gornjem oknu relacije (Relatioships). Na
opisani način preneti sve tabele koje učestvuju 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 miša na sivu radnu površinu prozora relacije (Re-
lationships). Pojaviće se okvir za dijalog u kome treba izabrati dugme
pokaži tabele (Show Table).
5. Opet će na ekranu biti prikazan prozor sa tabelama. Na prethodno opi-
sani način izaberite potrebne tabele koje nisu već uključene u relacije.

U informacionom sistemu preduzeća uspostavljaju se pomenute relacije,


veze među tabelama. Između tabela ODELJENJE i RADNIK postoji veza
jedan prema više, odnosno 1:N (jedan radnik radi u jednom odeljenju - stra-
na 1, a u jednom odeljenju radi više radnika - strana N). Veza se u Accessu
najlakše ostvaruje tehnikom prevlačenja, na sledeći način:
1. u tabeli na strani 1 izaberemo atribut za povezivanje, primarni ključ,
(brod# u tabeli ODELJENJE),
2. kliknemo na njega, držimo pritisnut levi taster i odvučemo pokazivač mi-
ša do spoljašnjeg ključa u tabeli na strani više (brod$ u tabeli RADNIK),
3. pojavljuje se okvir za dijalog Edit Relationship u kojem se dodatno mo-
že opisati veza koja postoji između dva entiteta - tabele,

38 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

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. moguće je dodatno izabrati kaskadno brisanje i kaskadno ažuriranje (ka-
da se u tabeli na strani 1 obriše ili promeni podatak, u tabeli na strani vi-
še moraju pre toga da budu obrisani ili promenjeni svi zapisi koji sadrže
tu vrednost),
Integritet podataka, odnosno sigurnost očuvanja podataka, po pravilima koja
su propisana da bi neki sistem za upravljanje bazama podataka uopšte
bio relacioni (Coddova pravila), mora biti definisana u bazi podataka. U
tom cilju u relacionim bazama moraju postojati određena ograničenja
koja se odnose na vrednosti pojedinih atributa. Prvo ograničenje ostva-
ruje se preko zadavanja tipa podataka i definisanja skupa dozvoljenih
vrednosti (validation rules). Sem ovih, postoje i opšta ograničenja 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. Kako je primarni ključ jedinstven i neponovljiv, to se na ovaj
način obezbeđuje da svaki red, odnosno objekat koji je opisan podaci-
ma, u toj tabeli bude jedinstven.
Referencijalni integritet: Skup vrednosti spoljnjeg ključa u nekoj tabeli T1,
koja je u relaciji N:1 (povezana) sa nekom drugom tabelom T2, mora
biti podskup skupa vrednosti primarnog ključa u tabeli T2 sa kojom je
tabela T1 povezana. Na primer atribut BROD u tabeli RADNIK može
imati samo one vrednosti koje postoje u tabeli ODELJENJE.
6. vrste spajanja su: prirodno spajanje, levo spoljnje spajanje ili desno
spoljnje spajanje, a izabiraju se dugmetom vrsta spajanja (Join Type),
nakon čega se pojavljuje novi okvir za dijalog Join Properties (slika
3.23),
7. pretpostavljena vrsta spajanja je prirodno spajanje, opcija 1. Ukoliko ho-
ćemo spoljašnje spajanje onda biramo opciju 2 ili 3,
8. između entiteta RADNIK i PROJEKAT postoji relacija više prema više
(M:N), jer jedan radnik radi na više projekata, a na jednom projektu radi
više radnika. Ovakve veze se ostvaruju preko novog entiteta - tabele
(UČEŠĆE), koja je sa svakim od dva entiteta - tabela (RADNIK i
ODELJENJE) u relaciji 1:N, odnosno 1:M

Sistem za upravljanje bazama podataka 39


MS Access

Slika 3.23 Definisanje svojstava relacija

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


između tabela RADNIK i UČEŠĆE imaju nametnut refe-
rencijalni integritet (1:beskonačno), slika 3.23.
Ako naknadno želimo da ukinemo neku vezu između tabela, ili da pro-
menimo neka svojstva postojećih relacija u prozoru Relationship, desnim
tasterom miša kliknemo na postojeću vezu i otvara se okvir za izmene (Edit
Relationship) i ukidanja veze (Delete), slika 3.24.

Slika 3.24 Model objekti-veze za informacioni sistem preduzeća

U daljem opisu mogućnosti Accessa ponekad ćemo ukidati veze iz-


među tabela da bi demonstrirali način rada ili pogodnosti koje pruža Access.
Tabele koje su korišćene u ovom primeru nastale su kao rezultat pro-
jektovanja informacionog sistema preduzeća (glava 13). Dakle, tabele, veze

40 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

između njih, kao i njihovi atributi, rezultat su postupka projektovanja informa-


cionog 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 sledeći:


1. na glavnom prozoru baze biramo opciju za kreiranje tabele direktnim
unosom podataka Create table by entering data. Otvara se rešet-
kasta struktura tabele Datasheet View za direktno unošenje podata-
ka (slika 3.25).
2. na vrhu svake kolone su podrazumevane vrednosti za imena tih ko-
lona Field1, Field2 itd. Promenu imena polja izvršimo desnim klikom
na odgovarajuće polje i biranjem opcije Rename. Izabrano polje je
time označeno za izmenu i upiše se novo ime, tako umesto polja Fi-
eld1 upišemo novo ime brod, sledeću kolonu Field2 nazovemo na-
ziv, a treću mesto.

Slika 3.25 Redovi i kolone prazne tabele

3. dalje unosimo zadate vrednosti u te tri kolone Ostale kolone se ne


koriste u ovom slučaju i biće uklonjene nakon što sačuvamo tabelu
(slika 3.26).

Slika 3.26 Tabela ORGANIZACIONA_JEDINICA nakon unosa podataka

4. kada je završen unos podataka sačuvamo tabelu pod imenom


ORGANIZACIONA_JEDINICA. Postavlja se pitanje da li da program
sam kreira primarni ključ (slika 3.27). Ako se izabere opcija Yes do-

Sistem za upravljanje bazama podataka 41


MS Access

daje se tabeli još jedna kolona imena ID tipa Autonumber. Ako ne


želimo da imamo takav primarni ključ, izaberemo opciju No i kreramo
tabelu bez primarnog ključa.
5. sve izmene u strukturi tabele mogu se uraditi naknadno, pa tako ot-
vorimo novokreiranu tabelu u režimu projektovanja, izborom opcije
Design View. Dodamo primarni ključ za polje idbr ovoj tabeli na ra-
nje opsisani način.

Slika 3.27 Dijalog prozor o automatskom kreiranju primarnog ključa

PRIMER 8: U bazi FIRMA kreirati tabelu o zaposlenim radnicima ko-


rišćenjem čarobnjaka. Ime tabele je ZAPOSLENI, a atri-
buti su idbr, ime, rukovodilac, plata i brod.
Korišćenje čarobnjaka kod kreiranja tabela može da bude korisno u slu-
čaju ako se kreiraju tipične tabele, u nekim standardnim bazama podataka.
1. Dvostrukim klikom na opciju za kreiranje tabele uz pomoć čarobnjaka
Create table by using wizard otvara se prozor (slika 3.28), gde se
mogu izabrati dve odvojene liste tabela:
• poslovna (business),
• lična (personal).

polja
nove
tabele

primeri
tabela primeri polja
izabrane tabele
Slika 3.28 Kreiranje tabele pomoću čarobnjaka

42 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

Izborom jedne od te dve opcije prikazuje se odgovarajuća lista primera tabe-


la. Izabraćemo opciju Business, jer nam je zadatak kreiranje table o zapos-
lenim radnicima.
2. Iz liste prikazanih primera, proverimo koja tabela najviše odgovara
postavljenom zadatku. Logično je očekivati da je svaki zadatak sam
za sebe jedinstven i da ima svoje specifičnosti, ali korišćenje čarob-
njaka može pomoći u onom delu koliko se prikazana polja tabele iz
primera poklapaju sa zahtevom koji se od nas očekuje. Tabela iz lis-
te, Zaposleni (Employees), najviše odgovara postavljenom zadatku,
pa je biramo.
3. Iz liste koja prikazuje ponuđene atribute Sample Fields, označe se
polja koja treba da budu atributi tabele koja se kreira. Izabere se po-
lje EmployeesID (koje predstavlja šifru zaposlenog) i klikom na du-
gme sa jednom strelicom prebacujemo ga u listu polja koja će sadr-
žati tabela koja se kreira Filds in my new table (slika 3.29).

Slika 3.29 Dodavanje atributa tabeli koja se kreira i njihova promena imena

4. Da bi izmenili naziv atributa potrebno ga je označiti klikom miša, za-


tim klikom na dugme Renamed Fild otvara se prozor u kome damo
novo ime atributu. U ovom slučaju umesto ponuđenog imena
EmployeesID upiše se idbr (slika 3.29).
5. Na isti načim biraju se i ostala polja i izvrši njihova promena imena.
Polju FirstName treba promeniti ime u ime, polju SupervisorID u
rukovodilac, polju Salary u plata i polju DepartmentID u polje brod.
Ostala ponuđena polja ne koristimo jer u ovom slučaju to se ne zah-
teva.
6. Nakon dodavanja svih potrebnih polja, prelazi se na sledeći korak u
kome se daje ime tabeli, u ovom slučaju tabelu ćemo nazvati

Sistem za upravljanje bazama podataka 43


MS Access

ZAPOSLENI (slika 3.30). U tom prozoru ponuđene su dve opcije za


izbor primarnog ključa:
• Yes, set a primary key for me - program sam doda polje ko-
je će biti primarni ključ, u tom slučaju on dodaje jednu kolonu
imena ID, čije se vrednsti inkrementiraju za 1 za svaki novi
zapis.
• No I’ll set the primary key - sami biramo polje koje će biti
primarni ključ.
U ovom slučaju odlučićemo se da sami izaberemo polje koje će
biti primarni ključ, tj. biramo opciju No I’ll set the primary key.

Slika 3.30 Davanje imena tabeli

7. U sledećem koraku se otvara prozor u kome iz padajuće liste biramo


polje koje će biti primarni ključ, za tabelu ZAPOSLENI to je polje id-
br. Takođe u tom prozoru se nude i tri opcije za izbor tipa podataka
polja koje je izabrano za primarni ključ. U ovom slučaju biramo opciju
da je to numerički tip za koji sami unosimo vrednost, Number, a ne
da je numerički tip koji se sam inkrementira kod svakog novog zapi-
sa, Autonumber, ni tekstualni tip Text.
8. Sledeći prozor nudi opciju povezivanja tabele ZAPOSLENI koju krei-
ramo sa nekom od već postojećih tabela. Povezivanje tabela se mo-
že uraditi i kasnije u prozoru Relationships. Ako već imamo neke
kreirane tabele koje bi mogli povezati sa tabelom koju kreiramo, onda
to možemo uraditi izborom te tabele, u ovom slučaju tabele
ORGANIZACIONA_JEDINICA i klikom na dugme Relationships
(slika 3.31).
9. Otvara se prozor (slika 3.32), koji nudi tipove veze između izabranih
tabela. Ove dve tabele, ZAPOSLENI i ORGANIZACIONA_JEDINICA
su povezane vezom n:1 preko atributa brod, znači biramo treću opci-

44 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

ju od ponuđenih: One record in the tabele 'ORGANIZACIONA


_JEDINICA' will match many records in the 'ZAPOSLENI' table.

Slika 3.31 Izbor tabela za povezivanje sa tabelom koja se kreira

Slika 3.32 Izbor tipa veze među tabelama

10. U poslednjem koraku (slika 3.33) biramo jednu od opcija u kojoj


ćemo otvoriti tabelu koju smo kreirali.

Slika 3.33 Otvaranje tabele nakon kreiranja korišćenjem čarobnjaka

• Prva opcija omogućava da se tabela otvori u režimu projektovanja,


da se dodaju ili izmene neki detalji koji nisu mogli upotrebom čarob-

Sistem za upravljanje bazama podataka 45


MS Access

njaka da budu realizovani, naravno te izmene se mogu uraditi i kasni-


je.
• Druga opcija nudi otvaranje tabele u tabelarnom prikazu, tj. omogu-
ćava odmah unos podataka.
• Izborom treće opcije otvara se automatski napravljen obrazac nad
tabelom koji omogućava unos podataka u tabelu na pristupatičniji
način.
Zadaci za samostalan rad:
3.9. Dodati referencijalni integrit za vezu između tabela RADNIK i
UČEŠĆE.

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


E-R model datan slici 3.34.

AUTOR KNJIGA

NAPISALI

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

Uputstvo:
Kod kreiranja ove baze uslov je da jedan autor može napisati više knji-
ga, a jedna knjiga može imati više 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.
Za realizaciju ovog projekta treba vodoti računa o sledećim stavkama:
• potrebno je da imamo podatke o radnicima koji servisiraju uređaj, nji-
hove lične podatke, ali i informaciju o tome koji je radnik iyvršio pop-
ravku ili zamenu određenog dela,
• treba da znamo informacije o vlasnicima aparata, da bi mogli da ih
obavestimo o završenom poslu, kao i da li je u pitanju fizičko ili prav-
no lice,
• da ne bi došlo do slučajne greške, o apratima koji su donešeni na
servis takođe treba evidentirati koji su tip, serijski broj, ko je proizvo-
đač, kao i kome vlasniku propada,

46 Sistem za upravljanje bazama podataka


Kreiranje baze podataka

• svi delovi koji postoje u servisu treba da se evidentiraju, njihova koli-


čina, cena i osnovni opis,
• kod ispostave računa potrno je navesti sve stavke popravke tj. koji je
deo zamenjen, cena rada, koji je radnik obavio popravku i slično.
Razmatranje veza među tabelama:
1. Radnik može primiti više aparata, a svki aparat može biti primljen od
samo jednog radnika (1:n).
2. Radnik može izdavati više računa, a račun može imati samo jednog
radnika koji ga je izdao (1:n).
3. Vlasnik može da na servis donese više aparata, a svki aprat može da
ima smo jednog vlasnika (1:n).
4. Završetak rada na jednom aparatu može imati više računa.
5. jedan račun može sadržati više popravki, a jedan deo materijala koji
se ugrađuje može da bude na više stavki, pa je to veza (n:n) iymeđu
objekta RAČUN i DELOVI koja ja realiyovana preko objekta
STAVKE_POPRAVKE.

Slika 3.35 E-R model baze servisa za elektronske uređaje

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


VLASNIK (id_vlasnik, ime, prezime, broj_licne_karte, adresa, telefon, vrsta_lica, ...)
APARAT (id_aparata, serijski broj, vrsta, proizvođač, tip, primedba, dodaci,
id_vlasnik, ...)
DELOVI (id_dela, opis, količina, cena, ...)
RAČUN (id_računa, id_aparata, datum, suma, id_radnik, ...)
STAVKA_POPRAVKE (id_računa, id_stavke, id_dela, količina, cena_rada, ukup-
no,...)

Sistem za upravljanje bazama podataka 47


MS Access

3.12. Kreirati bazu podataka za agenciju za izdavanje nekretnina.

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 određene nekretni-
ne.
Jedan vlasnik može da ponudi više nekretnina za izdavanje, a jedna ne-
kretnina može da bude vlasništvo jednog čoveka.
Svaka nekretnina koja se izdaje ima određenu struktura, a više nekretni-
na može imati istu strukturu. Pod strukturom se podrazumeva kvadratura,
broj prostorija i slično.
Svaka nekretnina koja je u ponudi može da bude na jednoj lokaciji, a na
jednoj lokaciji može biti više ponuda.
Svaka nekretnina koja je u ponudi može biti izdata ili ne, ali samo jed-
nom zakupcu, pa je tip veze između tabela PONUDA i IZDAT 1:1.
Zakupac može iznajmiti više nekretnina, ali jedna nekretnina može biti
izdata samo jednom zakupcu.

VLASNIK (id_vlasnik, prezime, ime, telefon, adresa, ...)


LOKACIJA (id_lokacija, opština, ...)
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

IZDAT
STRUKTURA PONUDA

LOKACIJA

ZAKUPAC
Slika 3.36 E-R model agencije za izdavanje nekretnina

48 Sistem za upravljanje bazama podataka


4. Upiti
Pomoću upita se ciljano dolazi do traženih informacija, a upitom se mo-
gu kreirati nove, privremene ili stalne tabele. Postoji više jezika za rad sa
relacionim bazama podataka, a jedan od njih je i Structured Query Langu-
age (SQL). SQL su razvile sedamdesetih godina prošlog veka istraživačke
laboratorije IBM-a, koje su se tada bavile istraživanjem relacionog modela.
Vremenom je SQL postao najšire korišćen jezik koji se primenjuje u većini
sistema za upravljanje relacionim bazama podataka, uključujući i MS Ac-
cess. Nekoliko internacionalnih organizacija za standardizaciju objavile su
svoje verzije SQL-a, dok najvažniji proizvođači sistema za upravljanje baza-
ma podataka, uključujući i Microsoft, imaju svoje implementacije SQL-a. Mi-
crosoft sem SQL-a ima ugrađen 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 ugrađene funkcije koje omogućuju opis, tj. definisanje podataka,
pa se uopšteno gledano dele na dva dela: Data Manipulation Language
(DML), koji služi za manipulisanje podacima i Data Definition Language
(DDL), koji služi za kreiranje i menjanje objekata baze podataka. Iako se ve-
ćina obrada (naslova) može uraditi uz pomoć SQL-a i QBE-a ova dva jezika
nisu identična i svaki od njih ima nekih prednosti i mana. Kako je SQL zas-
novan na relacijama računa n-torki on je sveobuhvatniji od QBE-a, koji je
zasnovan na realciji domena i generalno ima veće mogućnosti, ali je rad u
QBE-u lakši nego u SQL-u. Sve naredbe napisane u QBE-u imaju ekvivalen-
tni SQL upitni blok, a obrnuto ne važi.
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 najčešće upotrebljavani tipovi upita. Ovi upiti su deo SQL
jezika za manipulaciju podacima (DML, Data Manipulation Language). Uzi-
maju podatke iz jedne ili više tabela i prikazuju ih u formi koja se naziva ta-
belarni prikaz (Datasheet View). Podaci se iz tabela mogu izdvajati upotre-
bom raznih kriterijuma, ređati po rastućem ili opadajućem redosledu, grupi-
sati i nad odgovarajućim grupama primenjivati izračunavanja poput sume,
prosečne vrednosti, minimuma, maksimuma itd. Uopštena sintaksa za krei-
ranje select upita je :
SELECT <lista kolona>
FROM <spisak tabela>
MS Access

[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>]

Klauzula SELECT je deo globalnog iskaza koji govori MS Accessu da


želimo samo da čitamo podatke, što je različito 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 koristićemo QBE (upit na bazi primera), koji
predstavlja veoma komfornu mogućnost pravljenja upita. QBE upiti se po
želji mogu videti i kao set SQL instrukcija. Da bismo realizovali dati primer,
potrebno je uraditi sledeće:
1. “otvoriti” bazu podataka koju smo prethodno kreirali opisanim postup-
kom. Na ekranu, u levoj polovini okvira Database, pojaviće se prozor za
dijalog,
2. izabrati opciju Queries (upiti) ,
3. izabrati opciju Create Query in design view i na ekranu se pojavljuje još
jedan okvir za dijalog pod imenom Show table, u kome se vide nazivi
tabela koje smo prethodno kreirali (slika 4.1),

Slika 4.1 Izbor tabela koje ćemo koristiti u upitu

4. sada je potrebno odabrati tabele koje učestvuju u kreiranju upita. Obzi-


rom da se potrebni podaci nalaze u tabeli RADNIK, selektovaćemo tabe-
lu RADNIK i mišem izabrati ikonicu dodaj Add (da bismo ikonicu dodali),

50 Sistem za upravljanje bazama podataka


Upiti

nakon čega prozor Show table možemo zatvoriti (dugme Close). U slu-
čaju da kreiramo upit nad više tabela (o čemu će kasnije biti reči), u
ovom koraku po opisanom postupku selektujemo sve tabele koje su nam
potrebne za kreiranje upita,
5. na ekranu ostaje prozor QBE podeljen na dva dela. U gornjem delu pro-
zora prikazane su tabele koje učestvuju u upitu, kao i veze (relacije) iz-
među njih, ukoliko postoje (relacije se za sada ne vide jer smo selektova-
li samo jednu tabelu). U donjem delu možemo uočiti okvir (formular) za
postavljanje upita,
6. sada možemo preći na izbor atributa. Izgled prozora QBE je prikazan na
slici 4.2, a upit se formira na sledeći način:

Slika 4.2 Izgled prozora QBE za kreiranje upita

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


licu nadole. U padajućoj listi vidimo sve atribute svih, za upit, izabranih
tabela (u našem slučaju imamo samo tabelu RADNIK). Izaberemo prvi
potrebni atribut u tom polju, dakle IME, a zatim na isti način u susednom
desnom polju sledeći potreban atribut, dakle POSAO. Na ovaj način bi-
ramo sve atribute, iz svih za željeni upit potrebnih tabela. Ovaj korak
formira umesto nas potrebnu SQL komandu SELECT. Ako izaberemo
znak zvezdicu (*), biće selektovani svi atributi tabele,
8. drugi red u formularu (Table) predstavlja ime tabele iz koje atribut potiče.
Upisaće 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,

Sistem za upravljanje bazama podataka 51


MS Access

Slika 4.3 Izgled prozora QBE

9. rezultate upravo kreiranog upita možemo videti ako na liniji alata (tool-
baru) aktiviramo ikonicu , ili ako iz padajuće liste View izaberemo op-
ciju tabelarni prikaz . Rezultati koje upit vraća prikazani
su na slici 4.4,

Slika 4.4 Prikaz podataka koje vraća upit (Datasheet View)

10. tekst SQL upita koji je MS Access automatski generisao na bazi našeg
izbora, možemo videti ako iz padajuće liste View izaberemo opciju
. Izgled SQL upita možemo videti na slici 4.5,
11. u prikazanom prozoru imamo mogućnost “ručnog” menjanja našeg upita
u slučaju da nam tako više odgovara, a svaki upit se, kao što možemo
videti na slici završava sa tačka-zarezom ( ; ),
12. da bismo sačuvali upit potrebno je izabrati opciju sačuvaj Save , ili
zatvoriti prozor sa upitom. U oba slučaja pojaviće se okvir za dijalog u
koji treba uneti ime novokreiranog upita. Kada memorišemo ovaj upit

52 Sistem za upravljanje bazama podataka


Upiti

(nazovimo ga na primer qryZaposleni[1]), on će se u Database prozoru


pojaviti kao:

Slika 4.5 SQL kôd koji generiše Access kada kreiramo upit u QBE-u
(SQL View)

13. kada imamo memorisan upit iz glavnog Database prozora uvek ga mo-
žemo izvršiti ako selektujemo dati upit i izaberemo ikonicu , ili
pak modifikovati, ako selektujemo dati upit i izaberemo ikonicu .
Rezultat upita je virtuelna, neimenovana tabela (slika 4.4), koju možemo
dalje obrađivati alatkama koje nudi Access. Na primer, možemo je sortirati
(urediti) po nekom atributu (po rastućem ili opadajućem 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 mogućnost selekcije (nema klauzule WHERE) i moguće je samo
prirodno spajanej tabela.

Upotreba klauzule WHERE


U prethodnom primeru select upita korišćene 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 ograničenja u smislu da
neki red mora zadovoljiti određene uslove da bi bio uključen u rezultat. Klau-
zula WHERE nam upravo omogućava da postavljamo uslove vezane za za-
pise koje vraća upit.

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

Ovaj primer realizovaćemo kao modifikaciju prethodnog upita na sledeći na-


čin:
1. u prozoru Database izaberemo qryZaposleni i ikonicu . Otva-
ra se prozor QBE, kao na slici 4.3,

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

Sistem za upravljanje bazama podataka 53


MS Access

2. u formularu treba dodati atribut PLATA i ispod njega u polju “Criteria”


upisati kriterijum vezan za platu, u našem slučaju >2000,
3. pošto ne želimo da upit prikazuje podatak o plati, tj ovaj atribut je pot-
reban samo zbog kriterijuma, “odčekiraćemo” polje “show”,
4. sada prozor QBE izgleda kao na slici 4.6, a SQL kôd 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 (izvršimo upit), vi-


dećemo da je lista radnika koju nam je vratio upit znatno kraća (7 zapisa), jer
ostali radnici ne zadovoljavaju kriterijum da imaju platu veću od 2000. Pre
nego što zatvorimo upit snimićemo promene koje smo uneli, izabravši ikoni-
cu sačuvaj Save .
Svojstvo natpis (Caption) određuje sadržaj zaglavlja kolone u rezultuju-
ćoj tabeli, odnosno u rezultatu upita.
1. Otvoriti tabelu radnik u režimu projektovanja, i izabrati atribut posao, pa
u kartici opšta svojstva (General), u polju natpis (Caption) upisati Radno
Mesto.
2. Zatvoriti prozor za projektovanje tabela, i naravno zapamtiti učinjene iz-
mene, pa pozvati na izvršenje prethodno kreirani upit qryZaposleni.
3. Obratiti pažnju kako se na rezultujućoj tabeli naziva druga kolona. Ona
se sada zove Radno Mesto, dakle nosi naziv preuzet iz svojstva natpis
(Caption).
4. Ponovo otvoriti tabelu RADNIK u režimu projektovanja i ukinuti svojstvo
natpis za atribut posao.

54 Sistem za upravljanje bazama podataka


Upiti

U klauzuli WHERE, pored ovako jednostavnog kriterijuma, možemo upo-


trebljavati i složenije izraze, a deo liste operatora koji su najčešće u upotrebi
prikazan je u tabeli 4.1.
OPERATOR PRIMER UPOTREBE DEJSTVO

Standardni operatori poređenja, rade


gotovo isto kao i u drugim program-
=, >, <, 1. RADNIK.IME='Slobo'
skim jezicima. Uočimo da kriterijum
>=, <=, <> 2. RADNIK.BROD=20 za atribute tipa Text stavljamo među
jednostruke znake navoda (' ').

Standardni logički operatori, možemo


3. RADNIK.POSAO='vozac' AND ih kombinovati u jednoj klauzuli
AND, OR, RADNIK.DATZAP>#1.1.1980# WHERE. Prvo se izračunava NOT,
NOT 4. RADNIK.KVALIF=’VSS’ OR zatim AND i na kraju OR. Ako želimo
RADNIK.KVALIF=’VKV’ promeniti redosled operacija moramo
koristiti zagrade.

Poređenje je TRUE ako je prva vred-


nost između druge i treće UKLJUČU-
JUĆI i DRUGU i TREĆU VRED-
5. RADNIK.DATZAP BETWEEN NOST. Alternativni iskaz bi bio:
BETWEEN #1.1.1965# AND #17.12.1990# RADNIK.DATZAP>=#1.1.1965#
AND
RADNIK.DATZAP<=#17.12.1990#

Operator pogodan za pretraživanje.


6. RADNIK.IME LIKE 'M*' Prilikom postavljanja uslova mogu se
7. RADNIK.IME LIKE 'Pavle' koristiti i takozvani “jocker” znaci i to
LIKE [?] (koji zamenjuje neki, bilo koji znak)
8. RADNIK.IME LIKE '*S*'
i [*] koji zamenjuje sve znake (proiz-
9. RADNIK.IME LIKE 'S[a,e,i]*' voljan niz znakova-string).....

10. RADNIK.POSAO IN Vraća vrednost tačno (TRUE) ako se


('UPRAVNIK', 'DIREKTOR') vrednost levo od ključne reči IN pok-
IN, NOT IN lapa sa nekom od vrednosti koja se
11. RADNIK.KVALIF NOT IN
('VSS', 'VKV') nalazi iza ključne reči IN.

Tabela 4.1 Najčešće 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.
Izgled SQL upita, koristeći operator OR za ovaj primer je sledeći:
SELECT RADNIK.IME, RADNIK.POSAO
FROM RADNIK
WHERE RADNIK.KVALIF="VSS" OR RADNIK.KVALIF="VKV";

Sistem za upravljanje bazama podataka 55


MS Access

Slika 4.7 QBE prozor sa unetim kriterijumom koji koristi operator OR

Ovaj primer može se uraditi i na drugi način koristeći operator IN i u tom slu-
čaju SQL upit ima sledeći 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, neće-
mo koristiti operatore poređenja, 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 možemo prevesti kao “POREĐAN PO”. Ona nam
pruža mogućnost da definišemo u kom će redosledu biti prikazani podaci.
Ona je kao i klauzula WHERE opciona, a u slučaju da je ne navedemo MS
Access će nam vratiti podatke po redosledu u kom su fizički smešteni.
PRIMER 5: Izmeniti upit iz primera 2 tako da prikazuje ime, posao i
platu radnika i vrati rezultate poređane po iznosu PLATE
u opadajućem redosledu.

1. Otvoriti qryZarada u režimu projektovanja.


2. U formularu ispod atributa po kome želimo da sortiramo podatke (plata)
izabraćemo opciju Sort, pa u zavisnosti od toga da li želimo sortiranje

56 Sistem za upravljanje bazama podataka


Upiti

u rastućem ili opadajućem redosledu, izabraćemo opciju ASCENDING


ili DESCENDING, respektivno. U našem primeru izabraćemo opciju
DESCENDING.
3. Prozor QBE imaće sada izgled kao na slici 4.8, a SQL blok koji generi-
še Access biće:
SELECT RADNIK.IME, RADNIK.POSAO, RADNIK.PLATA
FROM RADNIK
WHERE (((RADNIK.PLATA)>2000))
ORDER BY RADNIK.PLATA DESC;

Slika 4.8 Sortiranje rezultata po rastućem/opadajućem redosledu

Kod polja tipa number i/ili date/time sortiranje se vrši od najmanjeg ka


najvećem po vrednosti podatku, dok se text-polja slažu po abecedi, u rasu-
ćem od A do Z, ili opadajućem redosledu od Z do A. Kriterijum sortiranja
možemo izabrati i nad više atributa, a po svakom atributu se sortiranje vrši
na gore pomenuti način.
Klauzule GROUP BY i HAVING biće razmatrane u poglavlju o agregat-
nim funkcijama.

Upiti nad više tabela i ugnježdeni upiti


Da bismo u potpunosti iskoristili prednosti relacionih baza podataka u
mogućnosti smo da vršimo povezivanje tabela preko polja stranog i primar-
nog ključa koji imaju iste vrednosti. U nekim slučajevima, 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-
nježdene upite (podupite, subquery).

Sistem za upravljanje bazama podataka 57


MS Access

Međutim, 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 slučajevima 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 različite vrste spajanja. Na pri-
mer, ako nam trebaju podaci iz tabele RADNIK i UČEŠĆE istovremeno, pot-
rebno je da se uverimo da su njihova odgovarajuća polja spojena (JOIN),
tako da MS Access može da poveže te dve informacije. Spajanje se naj-
češće vrši preko zajedničkih atributa, u ovom primeru to je atribut idbr#. U
slučaju 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 vraća 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 takođe znači da bi se upit dugo izvr-
šavao i da bi vraćao rezultate bez ikakvog smisla. Ako smo prethodno kreira-
li RELACIJE između 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
takođe prikazuje 1 na strani veze “jedan”, a ∞ (beskonačno) na strani “više”.
Tipovi JOIN-a podržani u MS Accessu su:
• INNER JOIN (unutrašnje 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 najčešće u upotrebi. Ona spaja zapise na osnovu
jednog ili više zajedničkih polja (kao i većina naredbi JOIN), ali vraća samo
zapise u kojima postoji poklapanje vrednosti za polje (ili polja) preko kojeg
se vrši spajanje. Zapis je odgovarajući samo ako postoje identične vrednosti
u poljima koja spajaju tabele. U većini slučajeva spajanje se vrši preko polja
jedinstvenog primarnog ključa u jednoj tabeli, i polja spoljnjeg ključa u drugoj
tabeli (u relaciji jedan prema više). Ako za neku vrednost primarnog ključa
jedne tabele u drugoj tabeli ne postoji ni jedan odgovarajući zapis, taj zapis
se ne pojavljuje u rezultatu upita. Access automatski pravi spojeve između
tabela kada prethodno u prozoru Relationships uspostavimo relacije između
tabela. To možemo uočiti na slikama prozora QBE, koji pri dodavanju više
tabela u upit automatski dodaje i veze između njih.

58 Sistem za upravljanje bazama podataka


Upiti

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


čije je sedište na Dorćolu. Upit nazvati
qryInnerJoinDorcol.

1. Otvorimo bazu podataka preduzeće (na primer, kliknemo dvaput na da-


toteku preduzeće.mdb).
2. Izaberemo objekat upiti (Queries), i u prozoru Show Table, izaberemo
tabelu RADNIK i dugme dodaj Add. Tabela radnik biće prikazana u gor-
njem oknu radnog prozora. Isto se postiže dvostrukim klikom na tabelu.
3. Na isti način izaberemo i tabelu ODELJENJE i zatvorimo prozor Show
Table. Izgled prozora Query u QBE-u prikazan je na slici 4.9. Uočimo da
je između tabela uspostavljena veza, tj. relacija koja je preuzeta iz E-R
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 generiše Access je:
SELECT [RADNIK].[IME], [RADNIK].[POSAO]
FROM ODELJENJE INNER JOIN RADNIK ON
[ODELJENJE].[BROD]=[RADNIK].[BROD]
WHERE ((([ODELJENJE].[MESTO])="dorćol"));

Slika 4.9 Realizacija primera 4 u QBE-u (upit nad više 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
(UČEŠĆE). Izgled primera u QBE-u prikazan je na slici 4.10, a SQL upit koji
generiše Access je:

SELECT RADNIK.IME, UCESCE.FUNKCIJA

Sistem za upravljanje bazama podataka 59


MS Access

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 omogućava povezivanje više tabela

Kod spajanja tabela postoji mogućnost da nam se isto ime kolone pojav-
ljuje više puta u rezultatu, obzirom da je moguće davati ista imena atributa u
različitim tabelama. Kada želimo da uputimo na takvu kolonu, potrebno je da
precizno definišemo ime te kolone. Puno ime polja sastoji se od imena tabe-
le i imena polja između kojih se nalazi tačka kao separator (RADNIK.BROD,
ODELJENJE.BROD). To možemo da uradimo na jedan od dva načina:
1. unesemo ime tabele iz koje je kolona koju želimo, zatim stavimo tačku i
ime kolone (npr. RADNIK.IDBR). U slučaju da kreiramo upit nad jednom
tabelom ili upit u kome učestvuju kolone sa različitim imenima, navođe-
nje tabele ispred imena kolone nije neophodno. MS Access po defaultu
(podrazumevano) generiše 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 tačka i ime kolone (R.IDBR).
PRIMER 8: Prikaži ime, posao i mesto radnika, koji rade u mestu
Dorćol koristeći 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=”Dorćol” ;

60 Sistem za upravljanje bazama podataka


Upiti

Slika 4.11 Realizacija upita pomoću ALIASA

Alternativa za INNER JOIN


Umesto upotrebe INNER JOIN-a, možemo upotrebiti spajanje tabela ko-
je se zasniva na klauzuli WHERE. Ova dva načina spajanja su apsolutno
ekvivalentna i ne postoji razlika u brzini izvršavanja upita. Koristeći ovu mo-
gućnost realizovati upit iz primera 6, ali prethodno ukinuti vezu koja postoji
između dveju tabela. Izgled ovakvog načina spajanja u QBE-u prikazan je
na slici 4.12, a SQL upit je:
SELECT RADNIK. IME, RADNIK.POSAO, ODELJENJE.MESTO
FROM RADNIK, ODELJENJE
WHERE RADNIK. BROD=ODELJENJE.BROD AND
ODELJENJE.MESTO=”DORĆOL”;

Slika 4.12 Spajanje tabela pomoću klauzule WHERE

Sistem za upravljanje bazama podataka 61


MS Access

Spoljnje spajanje (OUTER JOIN)


Ova vrsta spajanja koristi se kod održavanja baze podataka da bi se iz
tabele uklonili zapisi “siročići” (zapisi koji nisu u relaciji) ili duplikati podataka,
tako što se pravi nova tabela. Funkcioniše 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 odgovarajući zapisi. Takav je na primer radnik
Ivan koji još nije raspoređen ni u jedno odeljenje. Access podržava dve vrste
OUTER JOIN-a, LEFT i RIGHT. U jačim sistemima za upravljanje bazama
podataka (kao što je na primer SQL Server) postoji i tzv. FULL JOIN.
LEFT OUTER JOIN vraća sve zapise iz tabele koju u spoju proglasimo
kao “LEVU”, odnosno koja je prva navedena u izrazu za spajanje. Za zapise
sa leve strane koji nemaju odgovarajući zapis sa desne, rezultat ima vred-
nost Null. Pokažimo 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, uključujući i imena odeljenja u kojima ne radi ni
jedan radnik.
PRIMER 11: Prikazati imena svih odeljenja i imena radnika koji rade u
njima, uključujući i imena radnika koji su trenutno neras-
poređeni (ne pripadaju ni jednom odeljenju).
Postupak kreiranja upita iz primera 9. nećemo 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 učestvuju u upitu (prikazano na slici 4.13),

Slika 4.13 Izmena tipa spajanja tabela u QBE-u

62 Sistem za upravljanje bazama podataka


Upiti

2. promeniti tip veze između ove dve tabele. Promena veze vrši se tako što
desnim tasterom miša izaberemo liniju koja spaja ove dve tabele (slika
4.13), a zatim izaberemo JOIN PROPERTIES, kao što je prikazano na
slici 4.13,
3. otvoriće 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 imaće sledeći 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 možemo uočiti da
je kao ime odeljenja prikazao i “Računski centar”, koji nema odgovarajuću
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)
“Računski centar” nije bio uključen u skup rezultata koje vraća upit, jer nema
odgovarajući zapis u tabeli RADNIK. Takođe uočimo da je Access izostavio
ključnu reč “OUTER” jer čim postoji ključna reč “LEFT”, podrazumeva se da
se radi o spoljašnjem spajanju. Naravno, ova ključna reč može 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 spoljašnjih spojeva od izuzetnog je značaja koju smo tabe-


lu proglasili “levom”, a koju “desnom”. U SQL-u “leva “ tabela predstavlja
tabelu levo od ključne reči LEFT JOIN, a “desna” tabela desno od date klju-
čne reči. U QBE-u “leva” tabela postaje ona od koje počinjemo da “prevlači-
mo” spoj.
RIGHT OUTER JOIN vraća sve zapise iz tabele koju u spoju proglasimo
kao “DESNU”, bez obzira da li se odgovarajući zapisi nalaze u “LEVOJ” ta-

Sistem za upravljanje bazama podataka 63


MS Access

beli. Za zapise sa desne strane koji nemaju odgovarajući zapis sa leve, re-
zultat ima vrednost Null. Izrada ovakve vrste upita vrši 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
slučaju sam dodeljuje pseudonim-ime 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 traži IME neposrednog rukovodioca koristili bi-
smo najobičniji SELECT upit nad tabelom RADNIK. Međutim, prikazivanje
bilo kog podatka o rukovodiocu radnika zahteva da se tabela RADNIK pove-
že sama sa sobom. To se postiže na sledeći način:

1. u prozoru QBE izabrati tabelu RADNIK,

Slika 4.15 Dodavanje kopije tabele RADNIK u QBE-u

2. ponovo kliknemo na tabelu RADNIK i u gornjem oknu za upite (Query)


pojavljuje se još jedna tabela RADNIK, tačnije njena kopija sa imenom
RADNIK_1,

64 Sistem za upravljanje bazama podataka


Upiti

Drugi način je da zatvorimo prozor za prikaz tabela (ShowTable), u


gornjem prozoru QBE-a kliknemo desnim tasterom miša pored tabele
RADNIK i od ponuđenih opcija izaberemo Show Table (slika 4.15).
Pojaviće 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 imaće ime RADNIK_1. Ovaj postupak
primenjivaćemo i kada na postojeći upit hoćemo da dodamo još neku
tabelu.
3. nakon toga povezaćemo tabele po atributima IDBR i RUKOVODILAC, i
to tako da je atribut IDBR uzet iz tabele RADNIK_1 i prevučen do atribu-
ta rukovodilac u tabeli RADNIK. Prevlačenje, tj. uspostavljanje veze uvek
vršimo od strane jedan ka stani više,
4. zatim je potrebno iz tabele RADNIK izdvojiti atribute IDBR i IME i iste te
atribute iz tabele RADNIK_1 (slika 4.16). Access generiše ekvivalentni
SQL upitni blok oblika:
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 vraća ovaj upit videćemo da ima 16 zapi-
sa. Možemo 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 vrednošću Null na mestu gde treba da bude ime i
šifra rukovodioca. Prelazak na drugu vrstu spajanja, ovog puta nadesno
(RIGHT) može se izvesti neposredno u SQL upitu, tako što umesto reči
INNER upišemo RIGHT. Tako se dobija SQL upitni blok koji ima sledeći ob-
lik:

Sistem za upravljanje bazama podataka 65


MS Access

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 možemo opisati još jednu mogućnost koju nudi Access
(ali i svi drugi RDBMS). To je naime promena imena polja u rezultatu. Jedan
način je već spomenut, a to je upotreba svojstva natpis (Caption) u polju pri
definisanju tabela. Drugi način je prikazan u poslednja dva primera, a to je
upotreba ključne reči kao ( atribut AS [novo ime]) u klauzuli SELECT. Tako
su u ovim primerima poljima data sledeća imena: RADNIK.IDBR AS [Šifra
radnika], RADNIK.IME AS [Ime radnika], RADNIK_1.IDBR AS [Šifra rukovo-
dioca], RADNIK_1.IME AS [Ime rukovodioca].
THETA JOIN
Ova vrsta spajanja povezuje podatke pomoću operatora poređenja koji
nisu znak jednakosti (=). U Theta spojeve spadaju spojevi nejednakosti
(<>) koji se koriste kod upita za pronalaženje zapisa koji nemaju neki odnos.
Theta spojevi se primenjuju pomoću kriterijuma Where, a ne pomoću rezer-
visane reči JOIN. Prozor QBE ne prikazuje Theta spojeve linijama između
imena polja i Theta spojevi se ne pojavljuju u prozoru Relationships. Ovakva
vrsta spoja se kreira tako što primenimo kriterijum nejednakosti na jedno od
dva polja čiju nejednakost ispitujemo. Ovakva vrsta upita se primenjuje u
kombinaciji sa predikatom različiti (DISTINCT).

Upiti sa izračunatim vrednostima i upotreba


agregatnih funkcija
Jedna od SQL-ovih najsnažnijih mogućnosti jeste skoro trenutno dobija-
nje zbirnih informacija iz određenih skupova zapisa u tabelama. Zbirne in-
formacije iz baza podataka jesu osnova za praktično svaki upravljački infor-
macioni sistem. Ti sistemi obično daju odgovore na pitanja kao što su: “Koli-
ka je prosečna plata u preduzeću?”; “Kolika je prosečna zarada po odelje-
njima?”; “Ko je najbolje plaćeni radnik u preduzeću?”; “Na kojem projektu je
angažovano najviše ljudi?”; “U kom odeljenju ima najviše zaposlenih?”
Da bi se odgovorilo na takva i slična pitanja treba napraviti upite koji
prave proračune nad vrednostima polja u svim ili u izabranim skupovima
(grupama) zapisa tabele. Da bi se proračun izvršio nad vrednostima iz tabele
potrebno je da napravimo upit nad tabelom i da upotrebimo agregatne fun-
kcije Accessovog SQL-a, koje će obaviti proračun. Ove funkcije se tako zo-
vu zato što se primenjuju na grupe (agregate) ćelija podataka. SQL-ove
agregatne funkcije zadovoljavaju većinu upita koji su potrebni u poslovnim
primenama.
Ako nam je potrebna složenija statistička, logička ili inženjerska agrega-
tna funkcija, možemo da napišemo posebnu korisnički definisanu funkciju

66 Sistem za upravljanje bazama podataka


Upiti

pomoću Accessovog VBA kôda. Naravno, možemo u izrazima direktno


kombinovati imena atributa, funkcije (aritmetičke i agregatne) i aritmetičke
operacije (+, -, * i /), ali samo ako su polja numerička 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 podržane u Accessu :

FUNKCIJA OPIS TIPOVI POLJA


Svi tipovi osim: Text, Me-
Avg() Prosek vrednosti u jednoj koloni
mo i OLE
Ukupan broj vrednosti nekog polja
Count() Svi tipovi polja
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() Najveća vrednost nekog polja
mo i OLE
Svi tipovi osim: Text, Me-
Min() Najmanja vrednost jednog polja
mo i OLE
StDev(); Statistička 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(); Statistička 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-
trebićemo 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, uključujući 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 ime atributa po kojima se vrši grupisanje, i na kraju
HAVING uslov za izdvajanje podgrupa iz formiranih grupa.

Sistem za upravljanje bazama podataka 67


MS Access

Napomena: Atribut(i) po kojima se vrši 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 vozača?

1. Izaberemo objekat upiti (Queries), pritisnemo dugme novi (New) i izabe-


remo prvu opciju projektovanje (Design View).
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 upišemo vozač, jer nas zanima
prosečna plata za vozače.
4. Da bismo upotrebili agregatne funkcije u QBE-u, potrebno je bilo gde u
okviru formulara za kreiranje upita kliknuti desnim tasterom miša 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 slučaju za
polje plata izabrati funkciju prosek (AVG), što je prikazano na slici 4.18.
Access će za ovaj upit generisati sledeći SQL kôd:
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 padajuće liste izabrali, umesto Group By opciju


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

68 Sistem za upravljanje bazama podataka


Upiti

Slika 4.18 Izbor agregatne funkcije

VAŽNO: Uvek treba koristiti klauzulu WHERE za zadavanje uslova za


selekciju, a klauzulu HAVING samo za izdvajanje podgrupa koje zadovolja-
vaju neke dodatne uslove!!!

PRIMER 14: Prikazati broj učesnika na svakom projektu.


Realizacija primera 14 u QBE-u prikazana je na slici 4.19, a SQL kôd je:

Slika 4.19 Izračunavanje broja radnika angažovanih na projekrima

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


FROM PROJEKAT INNER JOIN UCESCE ON PROJEKAT.BRPROJ =
UČEŠĆE.BRPROJ
GROUP BY PROJEKAT.IMEPROJ;

Sistem za upravljanje bazama podataka 69


MS Access

PRIMER 15: Prikazati projekte na kojima radi više 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 najveću i najmanju zaradu u svakom odeljenju.


Realizacija primera 16 u QBE-u data je na slici 4.20, a SQL kôd 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 Izračunavanje minimalne i maksimalne zarade po odeljenjima

Rad sa Null-vrednostima i upotreba Nz funkcije


Jedna od najvećih novina koje su donele relacione baze podataka jes-
te mogućnost prikazivanja nepostojećeg 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 većinu primeraka entiteta onda taj atribut treba eliminisati iz ta-
bele još u fazi projektovanja. Ako je taj podatak vrlo važan za one koji
to svojstvo imaju, onda se kreira nova tabela samo za one objekte
koji to svojstvo poseduju (u ovom slučaju može se napraviti tabela
PREMIJA<idbr#, premija>),

70 Sistem za upravljanje bazama podataka


Upiti

• ako vrednost nekog atributa za neke objekte još nije poznata ili nije
dozvoljena (neki radnici još uvek nemaju telefon, rukovodioca, ili nisu
raspoređeni 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 sadrže Null-vrednosti na raspola-
ganju su samo dve klauzule IS NULL i IS NOT NULL, a moguće je koristi-
ti i operatore poređenja.

PRIMER 17: Prikaži 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 uočiti razliku između objekata koji nemaju premiju
(imaju Null-vrednost) i objekata koji imaju premiju, a vrednost premije može
biti i 0 (radnici Pero i Miro u tabeli na slici 4.21).
Nz funkciju upotrebljavamo za dodeljivanje nule, stringa dužine
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 greške u
proračunu. Tako je, recimo, radnicima koji zbog prirode posla ne mo-
gu imati premiju (rukovodioci, direktor, ...) zgodno pridružiti premiju čiji
je iznos 0, da bi potom bilo moguće izračunati prosečne zarade svih
zaposlenih (plata +premija).
Sintaksa: Nz ([ varijabla];[vrednost_ako_je_Null])

Ovo je neophodno ako u upitima upotrebljavamo proračune u kojima


učestvuju kolone koje mogu imati Null-vrednosti. U našem slučaju to je kolo-
na “PREMIJA”.

Sistem za upravljanje bazama podataka 71


MS Access

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 uložiti pažnje


da ne ni došlo do grešaka koje kasnije mogu imati teške posledice, najbolje
je pokazati na primerima.

PRIMER 19: Odrediti srednju godišnju platu u svakom odeljenju ne


uzimajući 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 Prosečne plate

PRIMER 20: Odrediti srednja godišnja primanja u svakom odeljenju


ne uzimajući 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 prihod],
COUNT(premija) AS [sa premijom]
FROM RADNIK
WHERE posao NOT IN (“direktor”; “upravnik”)
GROUP BY brod;

a) tačan rezultat b) netačan rezultat


Slika 4.23 Prosečna primanja po odeljenjima

U primeru 20 a) proizvod prosečnih primanja i broja zaposlenih jednak


je ukupnom prihodu, dok to nije slučaj u primeru b) kada je pri izračunavanju
proseka uzet u obzir samo broj zaposlenih koji imaju premiju (poslednja ko-
lona u izveštaju). Tačnije, pri izračunavanju prosečnih primanja ukupni pri-

72 Sistem za upravljanje bazama podataka


Upiti

hod deljen je samo sa brojem onih koji imaju premiju, a ne sa ukupnim bro-
jem zaposlenih u odeljenju ne uzimajući u obzir direktora i upravnike.
Upotreba predikata DISTINCT
Pretpostavimo da je potrebna lista brojeva svih projekata koji su u reali-
zaciji. Do te informacije možemo doći pomoću sledećeg upita:
SELECT BRPROJ
FROM UCESCE;

Međutim, rezultati ovog upita, iako sa tehničkog stanovišta zadovoljavaju


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

Predikat DISTINCT možemo “ručno” dodati u prozoru SQL VIEW, a takođe


ga je moguće dodati u QBE-u, izabravši ikonicu Query Properties , pa
od ponuđenih opcija izabrati u svojstvu Unique values (jedinstvene vredno-
sti) vrednost Yes.

Akcioni upiti
Akcioni upiti predstavljaju upite koji kopiraju ili menjaju podatke. U
ovaj tip upita spadaju:

• make – table ,
• append ,

• update ,i

• delete .
Append i make – table upiti kopiraju, a update i delete menjaju već pos-
tojeće podatke. Ovi upiti su deo SQL jezika za manipulaciju podacima (DML,
Data Manipulation Language). Za potrebe vežbanja 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.

Kreiranje nove tabele pomoću Make – table upita


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

Sistem za upravljanje bazama podataka 73


MS Access

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


podataka. Na primer, ako želimo da kreiramo tabelu koja treba da
sadrži 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
brišemo iz baze podataka,
• poboljšanje performansi obrazaca i izveštaja baziranih na mnogo ta-
bela i upita. Na primer, želimo da kreiramo izveštaj nad pet tabela ko-
ji uključuje brojne kalkulacije. Možemo značajno ubrzati generisanje
izveštaja kreiranjem make-table upita koji prihvata date informacije i
smešta ih u tabelu, a onda na osnovu te tabele kreirati izveštaj.

PRIMER 21: U bazi podataka PREDUZECE1.mdb upotrebom make-


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

1. u bazi podataka PREDUZECE.mdb otvoriti prozor QBE i od ponuđenih


tabela izabrati tabelu RADNIK,
2. selektovati atribute koji su potrebni,
3. testirati upit. Ovaj korak je od izuzetnog značaja 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.
Pošto smo se uverili u ispravnost upita, možemo preći na korak pretva-
ranja upita u akcioni, tj. make-table upita,
4. ovo “pretvaranje” vrši se izborom opcije Make-table query iz Query lis-
te, što je prikazano na slici 4.24,

Slika 4.24 Padajuća lista za izbor tipa upita

74 Sistem za upravljanje bazama podataka


Upiti

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 tekućoj bazi podataka (Current database) ili nekoj
drugoj. U našem slučaju kreiraćemo tabelu u drugoj bazi podataka, tj.
PREDUZECE1.mdb, koju smo kreirali za vežbanje akcionih upita. U slu-
čaju da baza podataka u koju izvozimo podatke nije u istom direktorijumu
kao izvorišna baza, potrebno je pored imena baze kvalifikovati i komplet-
nu putanju do nje, na primer: C:\praktikum\vezbe\ PREDUZECE1.mdb,

Slika 4.25 Izbor baze podataka u koju smeštamo novu tabelu

6. da bismo izvršili ovaj upit, izabraćemo ikonicu Run , nakon čega će


se pojaviti upozorenje (slika 4.26). Ovo upozorenje nam daje mogućnost
da odustanemo od izvršavanja upita,
7. kada potvrdimo izvršavanje upita (izborom opcije Yes u upozorenju), u
Database prozoru baze podataka PREDUZECE1.mdb, možemo uočiti
upravo kreiranu tabelu RADNIK. Ovaj upit u SQL prozoru ima izgled kao
na slici 4.27.,

Slika 4.26 Pošto je operacija neopoziva Access šalje upozorenje

Slika 4.27 Izgled upita qryKreirajRadnik u SQL prozoru

Ako otvorimo novokreiranu tabelu možemo uočiti da su u njoj i podaci, tj.


Make-table upiti osim što kopiraju strukturu tabele, kopiraju i podatke.

Sistem za upravljanje bazama podataka 75


MS Access

Dodavanje zapisa tabeli upotrebom upita dodaj (Ap-


pend query)
Ova vrsta upita dodaje grupu zapisa iz jedne ili više tabela u drugu tabe-
lu (ili tabele). Pretpostavimo da posedujemo tabelu koja sadrži informacije o
novim zaposlenim radnicima, koje želimo da dodamo u tabelu RADNIK. Da
bismo izbegli unos podataka o svim novim zaposlenim radnicima, možemo
upotrebiti upit Append i automatski dodati sve te podatke. Append upiti su
takođe od pomoći za:
• dodavanje zapisa baziranih na kriterijumu. Na primer, želimo da do-
damo u tabelu samo radnike zaposlene posle određenog datuma,
• dodavanje podataka samo u slučaju 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, analitičar, 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 pridružuje 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
u akcioni, (izborom opcije iz Query liste. Pre nego što izvr-
šimo ovakav tip upita preporučuje se da pogledamo kakvi će biti rezultati upi-
ta izborom opcije (Datasheet View iz liste View). Izgled ovog upita u
QBE prozoru prikazan je na slici 4.28., a SQL kôd koji generiše Access je:

Slika 4.28 Realizacija Append upita u QBE-u

76 Sistem za upravljanje bazama podataka


Upiti

INSERT INTO radnik


SELECT NOVI_RADNIK.*
FROM NOVI_RADNIK;
Upotrebom upita Append moguće je dodati nove zapise koji ne potiču 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”);

Uočimo da se prilikom navođenja tekstualnih vrednosti postavljaju znaci


navoda, što nije slučaj kod navođenja brojnih vrednosti.
Menjanje grupe podataka upotrebom upita Update
Ova vrsta upita pravi promene nad grupom zapisa u jednoj ili više tabe-
la.
PRIMER 24: Povećati platu vozačima za 10%.
Upit nazvati qryVozacPlata.
Pre nego što se izvrši ovakav tip upita preporučuje se da pogledamo ka-
kvi će biti rezultati upita izborom opcije (Datasheet View iz View liste).
U QBE prozoru ovaj upit ima izgled kao na slici 4.29, a SQL kôd koji generi-
še Access je:
UPDATE RADNIK SET RADNIK.PLATA = PLATA*1.1
WHERE (((RADNIK.POSAO)="VOZAČ"));

Slika 4.29 Realizacija Update upita u QBE-u

Sistem za upravljanje bazama podataka 77


MS Access

Kada započnemo izvršavanje upita, pojavljuje se poruka kao na slici


4.30, koja nas upozorava da po izvršenom upitu ne postoji način da se vra-
timo na prethodno stanje.

Slika 4.30 Upozoravajuća poruka kod Update upita

Kada potvrdimo pritiskom na OK, upit će se izvršiti, a uticaj promene na


podatke možemo videti ako otvorimo tabelu RADNIK.

Brisanje grupe zapisa upotrebom Delete upita


Ova vrsta upita briše grupu zapisa iz jedne ili više tabela. Na primer,
možemo koristiti delete upit da izbrišemo iz tabele UČEŠĆE radnike koji
više ne rade na određenom projektu. Kada koristimo delete upit, uvek bri-
šemo kompletne zapise, a ne samo selektovana polja u datom zapisu.
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 padajuće lis-
te Queries.

Slika 4.31 Realizacija delete upita u QBE-u

SQL kôd koji je generisao Access je:

78 Sistem za upravljanje bazama podataka


Upiti

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 (ugnježdeni upiti),
• union upiti ,

• data definition upiti i


• pass-through upiti .

Ugnježdeni upit - podupit (Subquery)


Ovaj tip upita sastoji se iz jedne SQL SELECT naredbe unutar drugog select
ili akcionog upita. Ove naredbe možemo smestiti u Field kolonu QBE prozo-
ra da definišemo novo polje, ili u Criteria kolonu da bismo definisali kriteri-
jum za to polje. Upotrebljava se za:
• testiranje postojanja nekih rezultata podupita (upotrebom EXISTS ili
NOT EXISTS rezervisanih reči),
• pronalaženje rezultata u glavnom upitu koji su jednaki, veći ili manji od
rezultata koje vraća podupit.
Uradimo sada upit qryInnerJoinDorcol na drugi način:
SELECT RADNIK.IME, RADNIK.POSAO
FROM RADNIK
WHERE RADNIK.BROD=(SELECT ODELJENJE.BROD
FROM ODELJENJE
WHERE ODELJENJE.MESTO="Dorćol");
Ovakav pristup u kreiranju upita moguće je izvesti samo kada rezultati
upita potiču iz jedne tabele, tj., povezivanje tabela primenom unutrašnjeg
upita u WHERE klauzulu moguće je samo ako su svi podaci koje prikazuje
spoljašnji upit iz jedne tabele. U slučaju da se u rezultatu upita kombinuju
podaci iz više tabela, mora se izvršiti spajanje (JOIN) dve ili više 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");

Sistem za upravljanje bazama podataka 79


MS Access

Union upiti
Ova vrsta upita kombinuje polja (kolone) iz jedne ili više tabela u jedno
polje ili kolonu u rezultatima upita. Pretpostavimo da u preduzeću postoje
dva mesta gde se realizuju projekti i da na svakom mestu postoji posebna
evidencija o učešću radnika na projektima, tj. postoje tabele UČEŠĆE1 i
UČEŠĆE2, koje imaju iste atribute kao i tabela UČEŠĆE. Takođe pretposta-
vimo da postoji glavna filijala firme u kojoj se ti podaci objedinjuju u jedins-
tvenu tabelu UČEŠĆE. Za ovakvu vrstu objedinjavanja podataka pogodno je
koristiti UNION upite, a postupak kreiranja je sledeći:
1. u prozoru QBE izabrati Query->SQL Specific->Union. Access auto-
matski otvara SQL prozor, jer u QBE-u nije moguće kreirati UNION
upit,
2. u SQL prozoru otkucati sledeći SQL kôd:
SELECT * FROM UCESCE1
UNION
SELECT * FROM UCESCE2;
Ovako formiran skup rezultata može se lako prebaciti u jednu ta-
belu. Prilikom izrade UNION upita, potrebno je voditi računa o nekoli-
ko ključnih stvari:
• svi upiti koji su obuhvaćeni UNION upitom moraju imati isti broj kolo-
na u listi SELECT,
• zaglavlja vraćena za kombinovani skup rezultata biće uzeta samo iz
prvog upita,
• tipovi podataka svake kolone u upitu moraju biti usaglašeni sa tipom
podataka u odgovarajućoj koloni u drugim upitima,
• za razliku od upita koji nisu u uniji, podrazumevana opcija za povrat-
nu vrednost je DISTINCT, tj. automatski se eliminišu duplikati n-torki
koje se vraćaju.

Data definition upiti


Da bismo realizovali primere ovih upita kreiraćemo novu bazu podataka i
nazvati je PREDUZECE2.mdb. Ova vrsta upita kreira, briše ili menja tabele.
Kreiranje ovakve vrste upita postiže se na sledeći način:
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 padajućoj listi izaberemo SQL specific, a zatim Data definiti-
on,

80 Sistem za upravljanje bazama podataka


Upiti

5. u SQL prozoru unesemo SQL kôd za data-definition upit. Svaki data-


definition upit sastoji se iz samo jedne data-definition naredbe. MS Ac-
cess podržava sledeće data-definition naredbe:
CREATE TABLE – naredba za kreiranje tabele. Sintaksa za ovu naredbu je
sledeća:
CREATE [TEMPORARY] TABLE ime_tabele (polje1 tip_podatka [(veličina)]
[NOT NULL] [indeks1] [, polje2 tip_podatka [(veličina)] [NOT NULL] [indeks2]
[, ...]] [, CONSTRAINT indeks_nad_više_polja[, ...]])

PRIMER 27: U bazi podataka PREDUZECE2.mdb upotrebom nared-


be CREATE TABLE kreirati sve tabele iz baze podataka
PREDUZECE.mdb. Pri tome onemogućiti da polja IME i
POSAO u tabeli RADNIK sadrže Null-vrednosti.
Sledi SQL kôd za kreiranje tabele RADNIK:
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 kôd za kreiranje tabele ODELJENJE je:
CREATE TABLE ODELJENJE
(
BROD integer,
IMEOD text (20),
MESTO text (20)
);
Kreiranje tabela PROJEKAT i UCESCE vrši se na sličan način.
Kada koristeći Design View pogledamo novokreiranu tabelu RADNIK,
uočićemo da je svojstvo Required (obavezan) polja IME i POSAO postav-
ljen na Yes, što predstavlja način da se u Design View-u onemoguće 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 pretraživanje i sortiranje


po atributu za koji je definisan. Indeks takođe može obezbediti jedinstvenost

Sistem za upravljanje bazama podataka 81


MS Access

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 obezbeđuje jedinstvenost n-torki ima svojstvo Yes (No duplica-
tes), dok indeks koji samo ubrzava pretraživanje ima svojstvo Yes (Duplica-
tes OK). Indeks takođe može biti kreiran nad više polja, na primer nad po-
ljem IME i KVALIF istovremeno. Indeks može biti definisan kao jedinstven i
nad grupom atributa koji nemaju funkciju primarnog ključa, ali su kandidat za
primarni ključ (kada je primarni ključ sastavljen od prevelikog broja atributa
rukovanje je složeno, pa se najčešće uvodi nametnuti primarni ključ koji je
obično tipa brojač Autonumber). SQL kôd za kreiranje ovog složenog inde-
ksa je:
CREATE INDEX ime_kvalif
ON RADNIK ([IME],[KVALIF]);

ALTER TABLE dodaje novo polje ili ograničenje u već postojeću tabelu, tj.
menja strukturu postojeće tabele. SQL kôd za ovu naredbu je sledeći:
ALTER TABLE ime_tabele {ADD {COLUMN tip_polja[(veličina)] [NOT NULL]
[CONSTRAINT indeks] |
ALTER COLUMN tip_podatka[(veličina)] |
CONSTRAINT indeks} |
DROP {COLUMN field CONSTRAINT indexname} }

PRIMER 29: Modifikovati tabelu projekat dodavši 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 složeni primarni ključ koji referencira polja IDBR i
BRPROJ.
SQL kôd za realizaciju ovog primera je:
ALTER TABLE RADNIK
ADD CONSTRAINT PK_RADNIK PRIMARY KEY (IDBR);

Možemo uočiti da prilikom kreiranja primarnog ključa svojstvo polja nad ko-
jim je kreiran primarni ključ Indexed dobija vrednost Yes (No duplicates).
ALTER TABLE UCESCE

82 Sistem za upravljanje bazama podataka


Upiti

ADD CONSTRAINT PK_RADNIK_PROJEKAT PRIMARY KEY (IDBR,BRPROJ);

Kreiranje primarnog ključa nad ostalim tabelama vrši se po analogiji.


PRIMER 31: Kreirati veze između tabela.

ALTER TABLE RADNIK


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

Kreiranje veza između ostalih tabela vrši se po analogiji.


DROP briše tabelu iz baze podataka ili uklanja indeks definisan nad nekim
poljem ili grupom polja. Sintaksa za ovu naredbu je sledeća:
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 hoćemo
da saznamo imena radnika u odeljenju broj 10, postavićemo uslov WHERE
BROD=10, ako hoćemo imena radnika u odeljenju broj 20, postavićemo us-
lov WHERE BROD=20 itd. Ako pretpostavimo da u preduzeću postoji 100
odeljenja, morali bismo kreirati 100 upita da bi saznali imena radnika u sva-
kom odeljenju.
Naravno, moguće je kreirati samo jedan upit koji nam daje odgovor na
ovo pitanje. U ovom upitu tražimo imena radnika, a podatke (parametre) o
odeljenju koje je od interesa unosimo u toku izvršavanja upita. Na taj način,
pomoću samo jednog upita možemo dobiti imena radnika u bilo kom odelje-
nju. To su takozvani parametarski upiti.
Možemo kreirati parametarski upit koji zahteva da se unese i više od je-
dnog parametra, na primer da se unesu dva datuma, a on vraća sve podatke
koji su između datuma koji su uneti. Parametarski upiti najviše se upotreblja-

Sistem za upravljanje bazama podataka 83


MS Access

vaju u kombinaciji sa obrascima i izveštajima jer omogućavaju dinamičko


kreiranje izveštaja zasnovano na parametru koji je uneo korisnik.
PRIMER 34: Prikazati ime i platu svih radnika određene 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 ponuđenih ta-
bela izabrati tabelu radnik
2. atributi koji su nam potrebni su ime, radnik i kvalif, s tim što polje kvalif
nije potrebno da se vidi, pa treba isključiti polje “show”.
3. u polje criteria atributa kvalif uneti tekst [Unesite kvalifikaciju:]. Ovaj
tekst će se pojaviti prilikom izvršavanja upita,
4. u Design View prozoru upit će izgledati kao na slici 4.32,
5. kada pokrenemo ovaj upit, pojaviće 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

84 Sistem za upravljanje bazama podataka


Upiti

Pretpostavimo da smo naveli kvalifikaciju VSS, dobićemo rezultate kao


na slici 4.34.

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 slučaju da ne unesemo parametar ili unesemo parametar za koji ne


postoji odgovarajuća vrednost, upit će se izvršiti, ali neće vratiti ni jedan za-
pis.

Upiti unakrsnih tabela (Crosstab query)


Upiti unakrsnih tabela su zbirni upiti u kojima možemo tačno odrediti ka-
ko zbirni podaci treba da izgledaju na ekranu. Ovi upiti prikazuju zbirne po-
datke u uobičajenom rasporedu redova i kolona kao radne listove i imaju
mnoge sličnosti sa izvedenim (Pivot) tabelama, koje koristi Excel. U upitima
unakrsnih tabela možemo:

• odrediti polje koje će činiti labele (nazive) redova pomoću instrukcije


Group By,
• odrediti polje (ili polja) koje će formirati zaglavlja kolona i kriterijume
za određivanje vrednosti koje će se pojaviti pod zaglavljem,
• dodeliti ćelijama u mreži rezultate, izračunate vrednosti podataka.

Sistem za upravljanje bazama podataka 85


MS Access

Prednosti unakrsnih tabela su:


• veliki broj sumarnih podataka možemo prikazati u kompaktnom obli-
ku koji je blizak svakome ko koristi aplikacije sa radnim listovima ili
obrazac za knjiženje sa kolonama,
• zbirni podaci prikazani su u formatu idealnom za automatsku izradu
grafikona i dijagrama pomoću alatke Access Chart Wizard,
• brzo i lako projektovanje upita koji će obezbediti više nivoa deta-
lja.Upiti identičnih kolona a sa manje redova predstavljaju više nivoe
zbira. Veoma sažeti upiti su idealni kao početni prikaz sa koga, na
primer, upućujemo 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 izvršavanje stored proce-
dura (uskladištenih 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 različite kvalifikacije radnika.
4.5. Prikazati sve radnike iz odeljenja 30 čija je plata veća od 1000 evra.
4.6. Prikazati u opadajućem redosledu sve radnike čija je plata između
1000 i 3000 dinara (uključujući i te vrednosti).
4.7. Prikazati ime, posao i premiju za sve radnike koji ne primaju premiju.
4.8. Prikazati imena svih radnika čije ime počinje na “P”

1
ODBC predstavlja standardni protokol za pristup bazama podataka lociranim na database serverima,
kao što je na primer Microsoft SQL Server. Možemo instalirati ODBC drajver da bismo omogućili MS
Accessu da pristupi informacijama na nekom serveru.

86 Sistem za upravljanje bazama podataka


Upiti

4.9. Prikazati ime i datum zapošljavanja 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 godišju platu za svako odeljenje. Pri izračunavanju
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 vozača u odeljenju 10.
4.17. Prikazati imena svih radnika koji nisu upravnici ni analitičari.
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 rastućem redosledu.
b. Rezultate prikazati uređene po primanjima u opadajućem,
a zatim po imenima u rastućem redosledu.
4.21. Prikazati imena samo onih radnika koji ne primaju premiju.
4.22. Prikazati nazive odeljenja i prosečna primanja u svakom odeljenju.
4.23. Prikazati nazive projekata i broj učesnika 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.
4.27. U tabelu “PENZIONISANI” dodati radnika sa imenom “Miro”.
4.28. U tabelu radnik uneti podatke o sledećem radniku: 5555, Milena, ana-
litičar, 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 moguće i kada?

Sistem za upravljanje bazama podataka 87


MS Access

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


korišćena mala slova (dorćol), a u primeru 8. prvo slovo je veliko (Dor-
ćol), a u primeru na slici 4.11. korišćena su sva velika slova
(DORĆOL). U primeru 13 korišćene su takođe različito pisane reči za
posao vozač (vozač, Vozač i VOZAČ). U sva tri slučaja odgovor na upit
bio je isti, a Access nije pravio nikakvu razliku.

88 Sistem za upravljanje bazama podataka


5. Obrasci
Obrasci (Forms) služe za kreiranje korisničkog interfejsa za lakše ažuri-
ranje, brisanje i unošenje podataka u tabele i/ili pregledniji prikaz rezultata
dobijenih iz njih. Dobro projektovan obrazac ubrzava unos i ažuriranje poda-
taka, smanjuje mogućnost greške pri njihovom unošenju, a rezultat čini pre-
glednijim i “približava” ga korisniku.
Podaci se mogu prikazivati na više načina, pa samim tim postoji i više
vrsta obrazaca:
• obrasci sa poljima raspoređenim 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 u prozoru Database
izabrati dugme Forms , a zatim New . Pojaviće se pro-
zor za izbor načina kreiranja obrasca (New Form), koji je prikazan na slici
5.1,

Slika 5.1 Prozor za izbor načina kreiranja obrasca

Kao što se može uočiti na slici 5.1, MS Access nudi nekoliko načina za
kreiranje obrazaca:
• Design View – kreiranje obrazaca u režimu projektovanja (ručno kre-
iranje),
MS Access

• Form Wizard – kreiranje obrazaca pomoću čarobnjaka,


• Auto Form (Columnar, Tabular, Datasheet) – automatsko kreiranje
najjednostavnijih obrazaca u jednom koraku,
• Chart Wizard – čarobnjak za kreiranje dijagrama, i
• Pivot Table Wizard – čarobnjak za kreiranje unakrsnih (Pivot) ta-
bela.

Izrada obrasca pomoću čarobnjaka Auto Form


Ovaj čarobnjak koristi se za kreiranje obrazaca nad jednom tabelom ili
upitom. Obrazac kreiran na ovaj način, pomoću čarobnjaka Auto Form, sa-
drži sve atribute izabrane tabele/upita nad kojom je kreiran. Kao što se može
videti na slici 5.1, postoje tri šablona za kreiranje ovog tipa obrazaca:
• Columnar (prikaz jedne po jedne n-torke),
• Tabular (tabelarni prikaz svih n-torki zajedno),
• Datasheet (isti kao i prikaz Datasheet nad tabelom ili upitom).
Opciju Auto Form možemo pokrenuti i iz liste Insert, ili pritiskom na du-
gme sa palete alatki , koje je aktivno samo kada je selektovana neka
tabela ili upit.

PRIMER 1: Koristeći čarobnjak Auto Form kreirati obrazac nad ta-


belom ODELJENJE. Obrazac nazvati frmOdeljenje.
Izrada obrazaca pomoću ovog čarobnjaka odvija se samo u jednom ko-
raku, a sve što je potrebno jeste da u prozoru za izbor načina kreiranja obra-
zaca (slika 5.1.) izaberemo odgovarajući šablon, izaberemo u donjoj padaju-
ćoj listi tabelu ili upit nad kojim želimo obrazac i pritisnemo dugme OK. Ako
izaberemo prikaz po kolonama nad tabelom ODELJENJE čarobnjak će nam
kreirati obrazac prikazan na slici 5.2.

Slika 5.2 Izgled obrasca nad tabelom ODELJENJE kreiranog pomoću čarob-
njaka Auto Form

Jedan od objekata na obrascu kreiranom pomoću čarobnjaka jeste obje-


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

90 Sistem za upravljanje bazama podataka


Obrasci

Ukupan
Novi broj za-
zapis pisa

Prvi zapis

Posled-
Prethod- nji zapis
Aktivan zapis Sledeći
ni zapis
zapis

Slika 5.3 Objekat za kretanje kroz zapise (navigaciju)

Za automatsko kreiranje malo složenijih šablona koristićemo alat Form


Wizard.

Zadatak za samostalan rad:


5.1. Kreirati obrazac frmPROJEKAT za unos podataka o projektima, koris-
teći opciju AutoForm: Tabular.

Kreiranje obrazaca pomoću Form Wizarda


Pomoću ovog alata obrasci se izrađuju sa više fleksibilnosti (ali i rada od
strane korisnika). Moguće je praviti obrasce (sa ili bez podobrazaca) koji sa-
drže polja iz jedne ili više tabela ili upita. Takođe je moguće 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 sledećeg (dugme
Next), sve do završetka (Finish).

PRIMER 2: Pomoću alata Form Wizard kreirati obrazac nad tabelom


RADNIK koji će sadržati sve atribute te tabele. Obrazac
nazvati frmRadnik.

1. U prozoru Database izabrati karticu obrasci Forms i opciju novi New za


kreiranje novog obrasca. Otvara se prozor New Form (slika 5.1.).
2. U otvorenom prozoru New Form izabrati opciju Form Wizard. Pošto se
obrazac kreira nad jednom tabelom iz padajuće liste za izbor tabele ili
upita na osnovu koga se kreira novi obrazac treba izabrati tabelu
RADNIK (slika 5.4).
Napomena: Tabela ili upit mogu se izabrati i u sledećem prozoru Form
Wizarda koji se otvara pritiskom na dugme OK, tako da polje za izbor ta-
bele/upita može ostati prazno u ovom koraku, za razliku od opcije Auto-
Form koja ne dozvoljava da ovo polje ostane prazno.

Sistem za upravljanje bazama podataka 91


MS Access

Polje za izbor
tabele ili upita

Slika 5.4 Izbor opcije Form Wizard za kreiranje obrasca nad tabelom
RADNIK

3. Nakon izbora tabele RADNIK pritisnemo dugme OK. Otvara se prozor


Form Wizard (slika 5.5.) u kome biramo koja će polja izabrane ta-
bele/upita biti prikazana u obrascu. U delu raspoloživa polja (Available
Fields) je lista svih polja izabrane tabele/upita. U delu izabrana polja
(Selected Fields) je lista polja koje smo izabrali. Dvostrukim klikom na
određeno polje ili selektovanjem polja i pritiskom na odgovarajuće dug-
me vršimo prebacivanje raspoloživih polja.

Izbor tabe-
le/upita

Izabrana
polja za
Sva polja
obrazac
izabrane
tabele/upita

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

Dugmad za prebacivanje polja između lista Available Fields i Selected


Fields:
• dugme za prebacivanje polja iz liste raspoloživih (Available)
u listu izabranih (Selected),
• dugme za prebacivanje svih polja iz liste raspoloživih (Avai-
lable) u listu izabranih (Selected),
• dugme za prebacivanje izabranog polja iz liste izabranih (Se-
lected) u listu raspoloživih (Available), i

92 Sistem za upravljanje bazama podataka


Obrasci

• dugme za prebacivanje svih polja iz liste izabranih (Selected)


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

Slika 5.6 Prozor za izbor rasporeda objekata na obrascu

5. Pritiskom na dugme sledeći (Next) otvara se prozor za izbor jednog od


ponuđenih stilova koje nudi opcija Form Wizard (slika 5.7). Prihvatićemo
ponuđenu opciju standard.

Slika 5.7 Izbor stila za obrazac koji nudi opcija Form Wizard

6. Pritiskom na dugme sledeći (Next) otvara se poslednji prozor za kre-


iranje obrasca pomoću Form Wizarda (slika 5.8) u kome treba imenovati
obrazac. Access nudi ime po imenu tabele, koje se može i promeniti. Iz-
brisaćemo ponuđeno ime i nazvati obrazac frmRADNIK[1]. U ovom kora-
ku bira se i opcija da li će se obrazac otvoriti u režimu pregleda (podra-

[1]
Uobičajena praksa kod imenovanja objekata u MS Accessu je dodavanje prefiksa koji oz-
načava o kom objektu se radi. Tako ćemo imenu obrasca dodeliti prefiks “frm”, što je
skraćenica od “form”, izveštaju “rep”, što je skraćenica od “report”, tekstualnom polju
“txt”, padajućoj listi “cmb”, labeli “lab” i komandnom dugmetu “cmd”.

Sistem za upravljanje bazama podataka 93


MS Access

zumevano) ili u režimu za menjanje (sve izmene mogu se uraditi i nak-


nadno) .

Slika 5.8 Imenovanje tabele

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


RADNIK u radnom režimu (slika 5.9).

Slika 5.9 Izgled obrasca kreiranog nad tabelom RADNIK

Izrada obrazaca na osnovu dve tabele pomoću opcije


Form Wizard
Za razliku od opcije Auto Form, opcija Form Wizard nudi kreiranje obra-
zaca koji sadrže polja iz više tabela.

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


belom ODELJENJE sa podobrascem nad tabelom
RADNIK, koji omogućuje ažuriranje radnika po odelje-
njima.Obrazac nazvati frmOdeljenjeRadnik, a podobra-
zac subfrmRadnik.

94 Sistem za upravljanje bazama podataka


Obrasci

1. U prozoru New Form izabrati stavku Form Wizard. Pojaviće se prozor


Form Wizard, koji je prikazan na slici 5.10.

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

2. Iz padajuće liste Tables/Queries izabrati tabelu RADNIK i pritiskom na


dugme selektovati sve atribute (polja) iz tabele.
3. Pošto se ovaj obrazac zasniva na podacima iz dve tabele treba postupak
ponoviti i za tabelu ODELJENJE. Svi atributi koji su selektovani pojaviće
se u desnom prozoru (prozor Selected Fields, selektovana polja). Ako
na ovaj način izaberemo atribute, oni će biti prikazani u istom redosledu
u kom su i definisani u tabeli.
4. Moguć je takođe selektivan izbor atributa koji će biti prikazani u obrascu,
pritiskom na dugme . Kada biramo atribute na ovaj način, biće prika-
zani u onom redosledu u kom su izabrani. Ako se predomislimo u vezi
izbora atributa uvek je moguće deselektovati atribut pritiskom na taster
, ili sve atribute, pritiskom na taster .
5. Kada selektujemo sve atribute koji su nam potrebni prelazimo na sledeći
korak (pritiskom na dugme Next). Pojaviće se drugi prozor Form
Wizarda, koji je prikazan na slici 5.11.
6. Ovaj prozor pojavljuje se samo u slučaju kada smo izabrali atribute iz
više tabela. U ovom koraku treba da izaberemo prema kojoj tabeli ćemo
pregledati podatke. Pošto želimo da pregledamo podatke po odeljenjima,
sa podacima o radnicima u svakom odeljenju, izabraćemo opciju By
ODELJENJE i pritisnuti dugme sledeći (Next).
7. U slučaju da smo se predomislili u vezi izbora ove opcije, uvek je mogu-
će vratiti se korak nazad pritiskom na dugme prethodni (Back).

Sistem za upravljanje bazama podataka 95


MS Access

Slika 5.11 Form Wizard-izbor tabele prema kojoj gledamo podatke

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. Izabraćemo opciju Form with subform(s) i preći na iz-
vršavanje sledećeg koraka (dugme Next). Pojaviće se prozor prikazan
na slici 5.12.

Slika 5.12 Izbor načina za prikazivanje podobrasca

9. U sledećem koraku odlučujemo se za način prikaza podataka u podob-


rascu. Ako izaberemo opciju Datasheet, podaci će biti prikazani kao i u
tabelarnom obliku. Izabraćemo Tabular, jer će u ovakvom načinu prikaza
stil podobrasca biti isti kao i stil glavnog obrasca. Izbor samog stila prika-
za podataka vrši se u sledećem prozoru, tj. kada pritisnemo dugme
Next. Izgled prozora za izbor stila prikazan je na slici 5.13.

96 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.13 Izbor stila za prikazivanje obrasca

10. MS Access nudi nekoliko već formiranih stilova (šablona) za prikazivanje


obrazaca. Za svaki od ovih stilova omogućen je pregled izgleda kontrola
u obrascu, kao i izgleda pozadine, a takođe je moguće dodati sopstveni
stil pomoću alata AutoForm, koji će kasnije biti objašnjen. Izabraćemo
stil Industrial i pritisnuti dugme Next. Pojaviće se poslednji prozor Form
Wizarda, koji je prikazan na slici 5.14.

Slika 5.14 Dodela naziva obrascu i podobrascu

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.15.
12. Obrazac na slici 5.15. 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 moguće je vi-
deti samo jednu n-torku. Pri tome se za svaku odabranu n-torku iz tabele
ODELJENJE (podaci o jednom odeljenju) prikazuju odgovarajuće n-torke
iz tabele RADNIK, tj samo radnike koji rade u tom odeljenju. Kretanje

Sistem za upravljanje bazama podataka 97


MS Access

kroz zapise iz tabele ODELJENJE odvija se preko komandi u spoljnjem


okviru obrasca.

Kretanje kroz zapise tabele


RADNIK

Kretanje kroz
zapise tabele
ODELJENJE

Slika 5.15 Izgled obrasca kreiranog pomoću Form Wizarda

13. Prilikom kreiranja podobrasca pomoću čarobnjaka obrazac i podobrazac


se automatski povezuju. Ovo povezivanje moguće je ostvariti i u režimu
projektovanja (Design View) podešavanjem opcije u prozoru Properties
podobrasca, slika 5.16. a). Potrebno je u poljima Link Child Fields i
Link Master Fields izabrati atribute po kojima se vrši povezivanje, slika
5.16. b), u ovom slučaju to je atribut RADNIK.BROD (spoljnji ključ tabele
RADNIK) i atribut ODELJENJE.BROD (primarni ključ u tabeli
ODELJENJE).

a) Prozor Properties za podobrazac

b) Prozor za povezivanje obrasca i podobrasca


Slika 5.16 Povezivanje obrasca i podobrasca u režimu projektovanja

98 Sistem za upravljanje bazama podataka


Obrasci

PRIMER 4: Kreirati obrazac frmUcesce (na osnovu tabele


UČEŠĆE) koji sadrži atribute o identifikacionom broju
radnika, broju projekta i broju sati, koristeći opciju Form
Wizard.
Ponovićemo postupak kreiranja obrasca pomoću čarobnjaka, s tim sto
ćemo izabrati samo atribute IDBR, BRPROJ i BRSATI. Dobićemo obrazac
izgleda kao na slici 5.17.

Slika 5.17 Izgled obrasca koji sadrži samo neke atribute (polja) iz tabele
učešće

Korišćenje 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 sledeće režime rada, tj. izglede:
• Form View (radni režim),
• Design View (režim projektovanja) i
• Datasheet View (režim pregledanja podataka iz tabele nad kojom je
napravljen obrazac).
Ove režime rada moguće je u svakom trenutku menjati izborom odgova-
rajuće opcije iz padajuće liste View, kao što je prikazano na slici 5.18.

Slika 5.18 Režimi rada obrazaca

Obrazac koji smo kreirali pomoću alata Form Wizard u režimu projekto-
vanja (Design View) ima izgled kao na slici 5.19.
Pokretni prozor koji se vidi u režimu projektovanja (slika 5.19.) predstav-
lja okvir sa alatkama (Toolbox) i služi za postavljanje novih kontrolnih ele-

Sistem za upravljanje bazama podataka 99


MS Access

menata[1] u obrazac. Ovaj okvir se može postavljati i uklanjati iz prozora po


potrebi.

Okvir sa
alatkama

Slika 5.19 Izgled obrasca u Design Viewu (režimu projektovanja)

Elementi prozora za projektovanje obrazaca


Obrazac može da se podeli na sledeće delove:
• Form Header (zaglavlje, tj. gornja kolona obrasca),
• Page Header (zaglavlje, tj. gornja kolona stranice),
• Detail (detalji),
• Page Footer (podnožje, tj. donja kolona stranice),
• Form Footer (podnožje, tj. donja kolona obrasca).
Svaki obrazac mora imati Detail element, a gornje i donje kolone strani-
ce nisu obavezne. Prozor za projektovanje obrazaca sadrži sledeće osnovne
elemente:
• paleta alatki za projektovanje (Form Design) sastoji se od dugmadi
koja predstavljaju prečice za stavke padajućih listi u režimu Form
Design,
• paleta alatki za uobličavanje (Formatting), sa dugmadima koja pred-
stavljaju prečice za boju, tekst, okvir i druge opcije formatiranja,
• vertikalni i horizontalni lenjiri služe za procenu dimenzija i položaja
objekata na obrascu,

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

100 Sistem za upravljanje bazama podataka


Obrasci

• vertikalna linija (levo od okvira sa alatkama) označava položaj desne


margine obrasca. Ovu liniju možemo pomerati mišem,
• vrh linije Form Footer jeste donja margina obrasca. I ovu liniju mo-
žemo pomerati mišem. Margine su važne kada projektujemo podob-
razac koji treba da se uklopi u pravougaonik određenih dimenzija na
glavnom obrascu,
• vertikalna i horizontalna traka za pomeranje sadržaja (scrollbar) slu-
ži za pregledanje delova obrasca koji prelaze okvir prozora obrasca,
• linija Form Header određuje visinu zaglavlja obrasca. Ta linija je pri-
kazana jedino ako odredimo da obrazac treba da ima zaglavlje i pod-
nožje ili ako pravimo obrazac pomoću alatke Form Wizard. Gornje
zaglavlje obrasca (Form Header) sadrži fiksan tekst, slike i druge
kontrole koje se nalaze na vrhu obrasca. Ako obrazac ima više stra-
nica, gornje zaglavlje obrasca prikazuje se samo na prvoj stranici,
dok se zaglavlja i podnožja stranice vide na svakoj štampanoj strani
forme. Zaglavlja i podnožja obrasca i stranice ne prikazuju se u reži-
mu dizajniranja obrasca, osim ako ne odaberemo opciju View-From
Header/Footer, odnosno View-Page Header/Footer,
• linija Form Detail odvaja zaglavlje od ostatka obrasca. Kontrole ob-
razaca koje služe za prikazivanje podataka iz tabela i upita sa dodat-
kom fiksnih elemenata, kao što su labele i kontrolna dugmad, nalaze
se u području Form Detail,
• linija Form Footer određuje visinu podnožja obrasca. Deo Form Foo-
ter ima sličnu funkciju kao i deo Form Header. Ako štampamo obra-
zac koji sadrži više stranica, Form Footer se pojavljuje samo na dnu
poslednje stranice, dok se Page Footer štampa na dnu prethodnih
stranica.

Upotreba alatke auto format


Auto format omogućava primenu ranije definisanog formata na ceo ob-
razac sa samo nekoliko pokreta mišem. Access 2000 sadrži nekoliko već
definisanih formata, a moguće je napraviti i svoje formate koje kasnije mo-
žemo upotrebiti pomoću alatke auto format. Okvir za dijalog ove alatke sličan
je trećem okviru za dijalog alatke Form Wizard.

Dugmad sa palete alatki za projektovanje obrazaca


Pošto postoji dosta standardnih dugmadi koja se pojavljuju u svim Office
programima, pomenućemo samo ona koja su karakteristična za MS Access
(tabela 5.1).

Sistem za upravljanje bazama podataka 101


MS Access

Dugme Ime Funkcija

Field List Prikazuje listu polja na osnovu kojih se pravi


obrazac
Toolbox Otvara paletu sa altkama za dodavanje obje-
kata na obrazac
AutoFormat Omogućava automatsku izmenu izgleda for-
me ili selektovanih objekata
Code Otvara VBA prozor za pisanje programskog
kôda
Properties Otvara prozor sa svojstvima izabranog objek-
ta
Build Otvara prozor Choose builder za izbor opcije
za pisanje kôda
Database Window Postavlja Database Window kao aktivni pro-
zor
Tabela 5.1. Dugmad sa palete alatki za projektovanje obrazaca

Kontrole u obrascu
Na Accessovim obrascima i izveštajima postoje tri kategorije kontrolnih
objekata:
• povezane kontrole (Bound) pridružene su poljima u izvoru podataka
za obrazac ili podobrazac. Izvor podataka može da bude tabela ili
upit. Pridružene kontrole prikazuju i ažuriraju vrednosti ćelija podata-
ka u pridruženom polju trenutno izabranog zapisa. Najčešče pridru-
žene kolone jesu polja za tekst. U pridruženom OLE objektu može da
se prikaže sadržaj grafičkog objekta ili audio datoteke u talasnom ob-
liku. Dugmad za promenu stanja i polja za potvrdu mogu se pridružiti
poljima koja mogu da imaju samo dve vrednosti. Grupa opcionih du-
gmadi može da se pridruži poljima sa numeričkom vrednošću. Sve
pridružene kontrole imaju labele koje prikazuju svojstvo Caption po-
lja. Labele možemo uređivati ili izbrisati bez uticaja na pridruženu ko-
lonu,
• nepovezane kontrole (Unbound) prikazuju podatke koji ne zavise od
izvora podataka. Nepridruženi OLE objekti se koriste za dodavanje
crteža ili bit-mapirane slike na obrazac. Linije i pravougaonici dele
obrazac na logičke celine i podražavaju okvire štampanog obrasca.
Nepridružena polja za tekst koriste se za unos podataka koji nisu
namenjeni ažuriranju nekog polja u izvoru podataka, već imaju neku
drugu namenu, na primer za prihvatanje vrednosti koja će se koristiti
u izrazu. Neke nepridružene kontrole, kao što su nepridružena polja
za tekst, imaju labele, dok ih druge, kao što su na primer nepridruže-
ni OLE objekti, nemaju. Labele su takođe nepovezane kontrole,

102 Sistem za upravljanje bazama podataka


Obrasci

• izračunate kontrole koriste izraze kao izvor podataka. Obično izraz


sadrži vrednost nekog polja ali se ne mogu koristiti vrednosti koje po-
tiču iz nepridruženih polja za tekst.

Okvir sa alatima (Toolbox)


Ovaj okvir (slika 5.20) koristi se da se na obrazac ili izveštaj doda kon-
trolni objekat. Pojavljuje se samo u Design režimu za obrasce i izveštaje i to
samo ako pritisnemo dugme Toolbox na paleti alatki ili promenimo sta-
nje komande padajuće liste View-Toolbox.

Biranje objekata Alatke Control Wizards

Labela Polje za tekst

Grupa opcija Dugme za promenu stanja


Dugme za izbor opcije Polje za potvrdu
Kombinovani okvir Lista
Komandno dugme Slika
Okvir za nepridruženi objekat Okvir za pridruženi objekat
Znak za prekid stranice Kontrola Tab
Podobrazac/Podizveštaj Linija
Pravougaonik Dodatne kontrole

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

Svojstva obrazaca i kontrola (Properties)


Obrasci su takođe objekti koji imaju svoja svojstva (Properties). Do pro-
zora sa svojstvima obrasca dolazimo na više načina:
• selektovanjem celog obrasca (istovremenim pritiskom tastera CTRL i
Z), a zatim pritiskom na dugme Properties ,
• pozicioniranjem kursora na sivu površinu obrasca i pritiskom na desni
taster miša, a zatim izborom opcije Properties iz brze liste.
Definisanjem osobina obrazaca mogu se postići dodatni efekti u pogledu
zaštite podataka od zlonamernog ili slučajnog menjanja ili uništenja. Naime,
na nivou obrasca može se dopustiti ili zabraniti izmena podataka Allow
Edits (Yes/No), brisanje Allow Deletion (Yes/No), dodavanje podataka
Allow Additions (Yes/No) i slično.

Sistem za upravljanje bazama podataka 103


MS Access

Obrasci omogućavaju dodatnu kontrolu pristupa podacima, tj. zapisima


preko mehanizama zaključavanja. To obezbeđuje svojstvo Record Locks
koje može imati tri vrednosti: bez zaključavanja (optimistički-No Locks), svi
zapisi (pesimistički, zaključava se čitava tabela-All Records) ili samo zapis
koji se ažurira (Edited Record). Na taj način dozvoljava se ili zabranjuje pri-
stup zaključanim podacima svim drugim obrascima (odnosno korisnicima).
Access nudi korisniku veliki broj ugrađenih objekata (kontrola) i svaki
ima sopstvena svojstva kojih ima preko 40, pa su zato razvrstani po funkci-
jama u 4 kartice: uobličavanje (Format), podaci (Data), događaji (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
pridruženi natpis (Caption), svoj položaj na formi (gornji levi ugao), dimenzi-
je (širina i visina) itd. Objekat se može učiniti nevidljivim (svojstvo Visible
(Yes/No)), nedostupnim (svojstvo Enabled (Yes/No)) itd. Objekti koji mogu
imati podatke (tekst, lista, padajuća lista) mogu se povezati sa bazom radi
unosa ili prikaza. Objektima se mogu pridružiti neke procedure koje će se
obrađivati kada se dese neki događaji (Event Procedure). Ove procedure
obavljaju neki zadatak kada se desi klik, dvostruki klik, kada se pomeri po-
kazivač miša ili je pritisnut neki taster na tastaturi.

Izmena obrazaca u režimu projektovanja


U režimu projektovanja (Design View) možemo kreirati obrazac od poče-
tka ali je jednostavnije ako je moguće iskoristiti postojeće čarobnjake za deo
posla koji oni mogu odraditi.
PRIMER 5: Uraditi izmene u režimu projektovanja za već kreirani ob-
razac frmOeljenjeRadnik. Dodati u zaglavlje obrasca
(Form Header) labelu na kojoj piše “Pregled radnika po
odeljenjima”.

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

1. najpre otvoriti obrazac u režimu projektovanja. Znači u prozoru Databa-


se izaberemo obrazac frmOdeljenjeRadnik i pritisnemo dugme Design, ili
desnim tasterom miša izaberemo opciju Design View. Ako je obrazac
već otvoren u nekom drugom režimu iz padajuće liste View izaberemo
Design View,
2. pošto objekat treba dodati u deo zaglavlje, a ako deo obrasca sa za-
glavljem i podnožjem nije vidljiv, izaberemo u padajućoj listi View opciju
Form Header/Footer. Ako deo za zaglavlje treba proširiti potrebno je
kursor pozicionirati na gornju ivicu linije Details, da dobije oblik duple
strelice, i povući je naniže,

104 Sistem za upravljanje bazama podataka


Obrasci

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 površini u delu gde treba postaviti labelu, ovde u deo zaglavlje,
razvući mišem izabrani objekat u oblik pravougaonika i upisati tekst
“Pregled radnika po odeljenjima”,
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 može
promeniti i preporučljivo je da objekat ima ime po kome će biti prepoznat-
ljivo na šta se odnosi. Takođe ćemo se pridržavati 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 podešavali svojstva nekog objekta potrebno je najpre selektovati
objekat, a zatim pritisnuti dugme Properties sa palete alatki . Drugi
način je da desnim tasterom miša izaberemo objekat, pa iz padajuće lis-
te izaberemo opciju Properties,
6. za promenu imena labele u prozoru Properties izaberemo karticu Other i
u polju Name umesto Label10 upišemo labNaslov,
7. ako želimo uraditi još neke dodatne izmene npr. povećati veličinu slova u
prozoru Properties, na kartici Format u polje Font Size upišemo veličinu
slova koju želimo, npr. umesto 9 upišemo 14. Ako recimo nije vidljiv celi
tekst povećamo širinu (opcija Width) ili visinu (Height) ili jednostavno
uradimo promene na obrascu pomeranjem ivica objekta mišem. Mogu se
izvršiti 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 podnožje obrasca frmOdeljenjeRadnik dodati tekstual-
no polje u kome će se ispisivati trenutni datum.

1. Otvoriti obrazac frmOdeljenjeRadnik u režimu projektovanja ako već


nije otvoren,
2. ako je potrebno proširiti deo Form Footer da bi se mogao dodati ob-
jekat tako što se mišem pozicionira na donju ivicu obrasca i povuče
nadole,
3. otvori se paleta alatki Tool Box i izabere objekat Text Box, a zatim
se prevuče na odgovarajuće mesto na obrascu,
4. novokreirani objekat je dobio podrazumevano ime (npr. Text11), koje
je sada potrebno promeniti u ime txtDatum, na već opisani način,
5. dodavanjem polja za tekst na obrazac dodaje se i labela ispred tog
polja, koja se može izbrisati, ako nije potrebna, ili se sa njom radi kao
sa objektom Label. Da bi obrisali objekat označimo ga i pritisnemo
taster za brisanje (Delete) sa tastature,

Sistem za upravljanje bazama podataka 105


MS Access

6. pošto 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 upiše funkcija
Date(). Nakon ovoga će na obrascu otvorenom u radnom režimu u
ovome polju biti ispisan aktuelni datum,
Napomena: Funkcija Date() je jedna od ugrađenih (built-in) funkcija Ac-
cessa i do nje se može doći upotrebom Expression Buildera opisanog u
poglavlju o kreiranju tabela.
7. ako hoćemo da onemogućimo pristup ovom polju, da se datum ne
može menjati, treba u prozoru Properties, kartica Data u polju Loc-
ked izabrati Yes.
PRIMER 7: U obrascu frmOdeljenjeRadnik promeniti tekst ispred
atributa BROD tako da piše “Broj odeljenja”.
Da bi promenili tekst ispisan u labeli potrebno je:
1. otvoriti obrazac frmOdeljenjeRadnik u režmu 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 određenom pro-
jektu.

1. da bismo dodali tekstualno polje ili bilo koju novu kontrolu u obrazac pot-
rebno je proširiti površinu obrasca, a zatim treba otvoriti paletu alatki
ToolBox,
2. selektovati Text Box i smestiti ga na radnu površinu obrasca. On auto-
matski dobija ime “Text6”, koje ćemo promeniti u ime txtFunkcija,
3. kada smo dodali tekstualno polje u obrazac ono nije pridruženo ni jed-
nom izvoru podataka (Unbound). Da bismo ga povezali sa izvorom po-
dataka, tj. poljem FUNKCIJA iz tabele UČEŠĆE, 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.21). Biramo atribut
FUNKCIJA i time smo povezali objekat na obrascu da prikazuje odgova-
rajuće podatke iz tabele.

106 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.21 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 možemo dodati komandnu dugmad koja pokreću događaje,
kao što su brisanje zapisa, prelazak na sledeći zapis, otvaranje obrazaca itd.

PRIMER 9: Na postojeći obrazac frmUcesce dodati komandno du-


gme za brisanje zapisa.
Dodavanje komandnog dugmeta treba uraditi na sledeći način:

1. otvoriti obrazac u režimu projektovanja,


2. otvoriti paletu Toolbox, ako već nije otvorena,
3. selektovati sa Toolboxa dugme Command Button i prevući ga na obra-
zac,
4. otvara se Command Button Wizard u kome biramo kategoriju akcije
koju treba izvršiti i samu akciju. U našem primeru to je kategorija uprav-
ljanje zapisima Record Operations i akcija brisanje zapisa Delete Re-
cord (slika 5.22),
5. u narednim prozorima Wizarda biramo izgled dugmeta i damo mu ime
cmdBrisanje. Time smo kreirali komandno dugme na obrascu koje briše
trenutno aktuelni zapis na obrascu kada se klikne mišem na njega u rad-
nom režimu obrasca,

Sistem za upravljanje bazama podataka 107


MS Access

Slika 5.22 Izbor akcije koja se dešava pritiskom na komandno dugme

6. kao za svaki objekat i u ovom slučaju možemo podešavati dodatna svoj-


stva. Otvorimo prozor Properties, izaberemo karticu Other i u polju
ControlTip Text upišemo tekst koji će se pojavljivati kada zadržimo miš
iznad tog objekta u radnom režimu obrasca. Taj tekst treba da na neki
način objašnjava koja je funkcija objekta. Tada možemo upisati tekst
“Brisanje zapisa”.
Ovde smo uz pomoć čarobnjaka izabrali šta će se dešavati kada klikne-
mo na komandno dugme.
Čarobnjak ima neke ugrađene akcije, ali i sami možemo izabrati šta će
raditi komandno dugme kreiranjem makroa i modula.
U prozoru Properties za komandno dugme, na kartici Event (slika
5.23), prvo odaberemo na koji događaj će se akcija izvršiti (klik mišem, dobi-
janje fokusa, na izlazak...), a zatim iz padajuće liste odabranog polja biramo
da li će to biti neki makro ili modul, a možemo i direktno na tom mestu da
dodamo određeni kôd, tako što izaberemo opciju Event Procedure, nakon
čega se otvara prozor VBA gde pišemo program koji će sprovesti akciju koju
želimo.
Na slici 5.24 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.

108 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.23 Izbor procedure

Slika 5.24 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 omogućavaju komforan rad krajnjem kori-
sniku. Jedna od važnih stvari u obezbeđivanju komfornog rada jeste i redos-
led popunjavanja polja u obrascu. Većina obrazaca se projektuju kao “simu-
lacija” popunjavanja papira ili starog informacionog sistema na koji su opera-
teri navikli. Kontrole u obrascima imaju svojstvo “Tab index” koje olakšava
kretanje kroz ove kontrole pomoću tastera TAB ili ENTER. Pomoću svojstva
Tab index moguće je svakoj kontroli dodeliti broj, koji predstavlja redosled
selektovanja kontrole u obrascu. Za prvi objekat koji želimo da bude aktivan,
postavićemo svojstvo Tab index na 0, za sledeći 1 itd. Bolji način je da kon-

Sistem za upravljanje bazama podataka 109


MS Access

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. Pošto dve kontrole ne mogu imati isti Tab indeks, poslednja kon-
trola kojoj smo dodelili 0 ostaće sa tim Tab indexom, dok će se ostali Tab
indexi automatski inkrementirati za 1. Na ovaj način kontrola kojoj smo prvoj
dodelili Tab index 0, imaće najveći Tab index i biće poslednja aktivna. Ko-
mandna dugmad osim mišem mogu se aktivirati i pomoću tastera ENTER, ili
preko definisanih “prečica”. Ove prečice predstavljaju brz način da se izvrši
akcija koju aktivira komandno dugme. Prečica se definiše u okviru svojstva
dugmeta “Caption”, dodavanjem znaka “&” ispred slova u natpisu dugmeta.
Kada se u radnom režimu 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 učešću rad-


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

1. Otvoriti obrazac frmUcesce u radnom režimu, a zatim se pozicionirati na


novi zapis. Uneti potrebne podatke.
2. Zatvoriti obrazac frmUcesce i proveriti da u tabeli UČEŠĆE postoji novi
zapis, samo što smo ga u ovom slučaju dodali preko obrasca, a ne u ta-
belarnom prikazu tabele UČEŠĆE.

PRIMER 11: Izbrisati prethodno uneti zapis o radniku čiji je IDBR


5780, a broj projekta 300.

1. Ponovo otvoriti obrazac frmUcesce u radnom režimu,


2. Pozicionirati se na zapis o radniku čiji je IDBR 5780,
3. Pritiskom miša na dugme cmdBrisanje, izbrisaće se aktivni zapis o
radniku iz table UČEŠĆE.
4. Zatvoriti obrazac frmUcesce i proveriti da u tabeli UČEŠĆE postoji
novi zapis, samo što smo ga u ovom slučaju dodali preko obrasca, a
ne u tabelarnom prikazu tabele UČEŠĆE.
PRIMER 12: Napraviti obrazac (nazvati ga frmRadnikUcesce) koris-
teći opciju Form Wizard nad tabelom RADNIK a koji će
sadržati sledeće atribute:IDBR, IME, POSAO, KVALIF,
RUKOVODILAC, BROD. Obrazac treba da bude pove-
zan sa podobrascem koji će sadržati sve atribute tabele
UČEŠĆE (podobrazac nazvati SubFrmUCESCE). Izbo-
rom određenog radnika na obrascu frmRadnikUcesce
treba da dobijemo podatke o njegovom učešću na proje-
ktima, kao i ukupan broj sati njegovog angažovanja na
svim projektima.

110 Sistem za upravljanje bazama podataka


Obrasci

Za izradu ovoga obrasca potrebno je proći kroz sledeće 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 odgovarajućih atributa. Izabe-
remo tabelu RADNIK i izdvojimo atribute IDBR, IME, POSAO,
KVALIF, RUKOVODILAC i BROD. Zatim izaberemo tabelu UČEŠĆE
i izdvojimo sve atribute. Pritisnemo dugme sledeći (Next),
3. otvara se sledeći prozor u kome biramo opciju by RADNIK, da bi na
osnovu podataka o radniku posmatrali podatke o učešću, i opciju
Linked Forms, znači da se povezana forma o učešću neće prikazi-
vati na istom obrascu već će na njemu postojati dugme koje će je ot-
varati (slika 5.25).
4. u sledećim koracima biramo kako će izgledati obrazac, izaberemo stil
Standard i na kraju damo ime glavnom obrascu frmRadnikUcesce,
a povezanom obrascu SubFrmUCESCE.

Slika 5.25 Izbor opcije za povezane obrasce

5. Na slikama 5.26 i 5.27 prikazani su obrasci u radnom režimu nakon


što smo prošli 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 učešću toga radnika na projektima. Radnik čiji je
IDBR= 5479, angažovan je samo na jednom projektu (brproj=100).
6. Nakon dela posla koji je urađen uz pomoć čarobnjaka dodatne izme-
ne rade se u režimu projektovanja. Prvo otvorimo obrazac frmRad-
nikUcesce u režimu projektovanja i promenimo svojstvo Caption za
SubFrmUCESCE na UČEŠĆE.
7. Dalje izmene rade se na obrascu subfrmUcesce. Otvorimo ga u re-
žimu projektovanja. Pošto je potrebno dodati polje koje prikazuje
ukupan broj sati angažovanosti određenog radnika na projektu potre-

Sistem za upravljanje bazama podataka 111


MS Access

bno je dodati Text Box u podnožje obrasca. Prvo treba proširiti deo
obrasca Form Footer, a zatim iz Toolboxa dodati tekstualno polje na
ranije opisani način. Da bi se u njemu ispisao ukupan broj sati potre-
bno je dodati funkciju. U prozoru Properties tog tekstualnog polja
(kome ćemo dati ime txtUKUPNO) na kartici Data u polju Control
Source upišemo “=SUM(BRSATI)”.

Slika 5.26 Izgled glavnog obrasca sa dugmetom za otvaranje podobrasca

Slika 5.27 Podobrazac povezan sa glavnim obrascem po atributu IDBR

8. Ispred toga polja dodamo labelu na kojoj piše “Ukupan broj sati na
projektima:”
9. Ako na glavnom obrascu izaberemo radnika čiji je IDBR 5692, pritis-
kom na dugme UČEŠĆE otvara se obrazac na slici 5.28., koji prika-
zuje učešće baš tog radnika na projektima. Na ovom obrascu u slo-
bodan zapis možemo dodati radnika na još neki projekat (na primer
100). Neće biti dozvoljeno dodati radnika na projekat na kome već
radi (u ovom primeru 200 i 300), jer je atribut BRPROJ deo primar-
nog ključa tabele UCESCE zajedno sa atributom IDBR, a ključ ne
može imati duplikate.
10. Međutim ima nešto što je dozvoljeno u ovom obrascu, a što bi trebalo
zabraniti, da na ovom mestu možemo dodati učešće bilo kog drugog
radnika na neki projekat. Da bi to izbegli potrebno je obrazac
SubFrmUCESCE otvoriti u režimu projektovanja i otvoriti prozor
Properties za tekstualno polje IDBR. U polju Default Value, karica
Data, dodati podrazumevanu vrednost za to polje.
11. To se može uraditi tako što direktno upišemo vrednost u to polje, ili
pritiskom na tri tačke otvorimo prozor Expression Builder (slika
5.29).

112 Sistem za upravljanje bazama podataka


Obrasci

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.28 Izgled obrasca nakon dodatih izmena

12. Znači 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.

Slika 5.29 Izgled prozora Expression Builder

13. Međutim ta vrednost je za sada samo podrazumevana, što ne znači


da se ona ne može menjati. Da bi postavili da se ta vrednost ne mo-
že menjati potrebno je onemogućiti promene toga polja. Znači za po-
lje Locked biramo opciju Yes (slika 5.30).

Sistem za upravljanje bazama podataka 113


MS Access

Slika 5.30 Prozor za podešavanje 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).

PRIMER 13: Kreirati obrazac za pretragu tako da se u određeno polje


unese šifra radnika i pritiskom na odgovarajuće dugme
dobiju podaci o tom radniku.
U sledećem upitu uvek tražimo podatke o unaped određenom radniku:
SELECT *
FROM RADNIK
WHERE [RADNIK].[idbr]='5652';
Ovaj upit uvek će prikazivati podatke o radniku čija je šifra 5652.
1. Jednim upitom možemo tražiti podatke o bilo kom radniku ako u
WHERE klauzuli, umesto konkretne vrednosti (5652), upišemo pa-
rametar - tekst koji korisniku prikazuje šta se od njega očekuje 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 izvršavanje, po-
javiće se okvir za dijalog u kome Access traži od korisnika da unese
šifru zaposlenog. Ako unesemo 5652 dobićemo izveštaj o zaposle-
nom sa imenom Jovan, koji obavlja poslove radnika, sa kvalifikacijom
KV, itd. Ako korisnik unese 5900, pojaviće se izveštaj o Slobu, voza-
ču, KV, itd.

114 Sistem za upravljanje bazama podataka


Obrasci

3. Dalje uopštavanje postiže se povezivanjem upita sa obrascem u ko-


me zadajemo šifru zaposlenog čije podatke želimo da pročitamo.
4. Otvorimo novi obrazac u režimu projektovanja. Nazovimo ga frmPre-
traga. Na obrazac ćemo dodati padajuću listu (Combo box) i nazvati
je cmbRadnik. Podesićemo da cmbRadnik prikazuje ime i šifru rad-
nika.
5. Padajuća lista može se dodati na obrazac upotrebom čarobnjaka, ili
direktnim podešavanjem svojstava u prozoru Properties (slika 5.31).
Upotreba čarobnjaka je brža i lakša, ali u nekim mrežama (ako je
mrežna instalacija Accessa) samo jedan korisnik u jednom trenutku
može da ga koristi. Zato ova svojstva, po pravilu, treba podesiti “ruč-
no”.
6. Najpre ćemo iz okvira sa alatkama (Toolbox) izabrati padajuću listu
(combo box), “razvući” je po površini obrasca i izabrati njena svojs-
tva (Properties). Kada se pozicioniramo u polje Row Source pritis-
kom na dugme otvaramo QBE, u koji dodajemo sledeći SQL kôd:
SELECT RADNIK.IDBR, RADNIK.IME
FROM RADNIK;

Slika 5.31 Podešavanje svojstava padajuće 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 možemo podesiti u polju Column Widths.
8. Na ovaj obrazac dodaćemo 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.32. U sledećem prozoru biramo da to bude upit Sifra, i prođemo
kroz sve akcije koje nudi Wizard do kraja. U polje Caption, prozora
Properties, upišemo tekst “Prikaži podatke”.
9. Međutim, kada pokrenemo obrazac frmPretraga i izaberemo iz pa-
dajuće liste radnika sa odgovarajućom šifrom, još uvek će se pojavlji-
vati prozor koji zahteva da se unese šifra radnika, jer nismo uradili
potrebne izmene u upitu Sifra.

Sistem za upravljanje bazama podataka 115


MS Access

Slika 5.32 Izbor akcije koja se dešava nakon pritiska na komandno dugme

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


upisujemo novi da bi ga povezali sa obrascem iz koga ga pokreće-
mo, tj. pravimo parametarski, za koji se kriterijum unosi u obrascu.
Pošto ovaj upit treba da prikaže podatke za radnika čiji smo identifi-
kacioni broj IDBR izabrali u obrascu frmPretraga iz padajuće liste
cmbRadnik, izmenjeni upit imaće izgled u QBE prozoru kao na slici
5.33.

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

U SQL-u ovaj upit imaće sledeći izgled:


SELECT *
FROM RADNIK
WHERE [RADNIK].[IDBR]=[Forms]![frmPretraga]![cmbRadnik];
11. Kada pokrenemo obrazac frmPretraga, izaberemo iz padajuće liste
npr. radnika sa šifrom 5497 i kliknemo na dugme Prikaži podatke,
prikazuju se svi podaci o radniku sa tim identifikacionim brojem (u
prikazu Datasheet, jer se pokreće upit). Ako želimo da se podaci pri-
kažu u obrascu, možemo napraviti obrazac koji se zasniva na upitu

116 Sistem za upravljanje bazama podataka


Obrasci

Sifra, i na formi Pretraga promeniti da komandno dugme otvara taj


obrazac, a ne upit.
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 slučaju nap-
ravićemo upit ProjekatRadnik koji ima sledeći izgled u SQL kôdu:

SELECT UCESCE.BRPROJ,UCESCE.IDBR,RADNIK.IME,
RADNIK.BROD, RADNIK.BRSATI, UCESCE.FUNKCIJA
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 pomoću Form Wizarda,
i izaberemo da se bazira na novokreiranom upitu ProjekatRadnik (za
izradu obrazaca ravnopravno koristimo postojeće tabele i upite).
3. U ovom slučaju kreiranja obrasca ne želimo podobrazac i biramo opci-
ju by UCESCE (slika 5.34). Prođemo kroz sve opcije koje nudi čarob-
njak i damo ime obrascu frmProjekatRadnik.

Slika 5.34 Izbor prikaza podataka na obrascu

PRIMER 15: Na postojećem 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 sledeće:

Sistem za upravljanje bazama podataka 117


MS Access

1. otvorimo obrazac frmPROJEKAT u režimu projektovanja,


2. dodamo komandno dugme iz palete alatki ToolBox, i podesimo ga da
otvara obrazac (slika 5.35) frmProjekatRadnik na ranije opisani način.
Dati mu ime cmdProjekat,
3. ako sada otvorimo obrazac frmPROJEKAT u radnom režimu i pritisnemo
komandno dugme, još uvek će se otvarati obrazac koji prikazuje podatke
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. Pošto se obrazac
frmProjekatRadnik bazira na istoimenom upitu promenu ćemo uraditi na
upitu,

Slika 5.35 Podešavanje da komandno dugme otvara obrazac

5. treba otvoriti upit ProjekatRadnik u režimu projektovanja. Da bi ograničili


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 sledeći 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.36,

118 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.36 QBE prozor izmenjenog upita

7. kada otvorimo obrazac frmPROJEKAT i izaberemo projekat čiji je


BRPROJ 200 (slika 5.37 gore) pritiskom na dugme koje prikazuje učešće
radnika otvara se obrazac frmProjekatRadnik koji prikazuje podatke sa-
mo o radnicima koji rade na projektu 200 (slika 5.37dole).

Slika 5.37 Otvaranje obrasca na osnovu uslova koji se menja

Sistem za upravljanje bazama podataka 119


MS Access

Kreiranje dijagrama pomoću Chart Wizarda


Izrada dijagrama u MS Accessu slična je kao i u Excelu i može da bude
korisna kod nekih statističkih pregleda.

PRIMER 16: Prikazati kvalifikacionu strukturu radnika po odeljenjima


na dijagramu u vidu kolona.

1. Da bi kreirali grafički prikaz, potrebno je iz opcije New Form izabrati


Chart Wizard, ali u ovom slučaju je potrebno odmah izabrati tabelu ili
upit na osnovu koga se pravi dijagram. Izaberemo tabelu RADNIK.
2. U sledećem koraku biramo atribute BROD i KVALIF, kao što je ranije
objašnjeno.
3. Otvara nam se prozor u kome biramo koji tip dijagrama hoćemo, zavisno
od toga šta on treba da prikazuje. Izaberemo prvu opciju, koja daje grafi-
čki prikaz u vidu kolona (slika 5.38).

Slika 5.38 Izbor vrste dijagrama

4. U sledećem prozoru možemo da prevlačimo izabrane atribute tako da


odredimo koji podaci će biti predstavljeni na X osi (Axis), po kojim nizo-
vima podataka vršimo analizu (Series), a kako ćemo ih sumirati ili gru-
pisati određuje polje Data. U našem primeru u polje Axis prevučemo
(ako to sam čarobnajk već nije uradio) atribut BROD, u polje Series atri-
but KVALIF, a u polje Data CountOf KVALIF. Na ovaj način prikazaćemo
broj radnika sa određenom kvalifikacijom u svakom odeljenju (slika 5.39).

120 Sistem za upravljanje bazama podataka


Obrasci

Slika 5.39 Izbor podataka na X i Y osi

Konačni izgled ovog dijagrama je prikazan na slici 5.40. Dodatne izmene


dijagrama mogu se vršiti u režimu projektovanja (Design View).

Slika 5.40 Prikaz dijagrama kvalifikacione strukture radnika po odeljenjima

Zadaci za samostalan rad:


5.3. Napraviti obrazac frmRadnikProjekat, tako da glavni obrazac prikazuje
podatke o radniku, a vezni obrazac prikazuje na kojim projektima izab-
rani radnik učestvuje. Vezni obrazac nazvati subfrmRadnikProjekat,
a dugme koje ga otvara nazvati cmdRadnikProjekat.

Sistem za upravljanje bazama podataka 121


MS Access

5.4. Kreirati dva obrasca u režimu projektovanja (nazvati ih frmTrazi i sub-


frmTrazi). Na obrazac frmTrazi dodati padajuću listu (Combo Box)
koja prikazuje šifru i ime odeljenja i komandno dugme koje otvara ob-
razac subfrmTrazi. Obrazac subfrmTrazi prikazuje podatke o radni-
cima za izabrano odeljenje.
5.5. Kreirati obrazac frmUcestvuje sa podobrascem subfrmUcestvuje koji
za izabrani projekat prikazuje koji radnici učestvuju na njemu.

Obrasci, kao i izveštaji, mogu biti vrlo jednostavno kreirani i direktno iz


nekog vizuelnog, objektno-orijentisanog programskog jezika kakav je, reci-
mo, VBA ili Visual Basic ili Visual C++. Ovi programski jezici takođe imaju
veliki izbor gotovih kontrolnih objekata poput ovih koji postoje u Accessu. U
tom slučaju Access se koristi samo kao sistem za upravljanje bazom poda-
taka (Relational Data Base Management System) u kome je logički model
informacionog sistema, koji je dobijen projektovanjem, fizički realizovan (fizi-
čki model IS).
Aplikacija, odnosno poslovna logika, direktno se pravi korišćenjem ala-
ta i mogućnosti koje pružaju ovi programski jezici. Ovakve izvedbe aplikacija
imaju svojih prednosti, posebno u pogledu bezbednosti podataka, jer u tom
slučaju korisnik nema direktan pristup tabelama (i podacima), već koristi
strogo propisane i kontrolisane postupke unosa i izmene podataka.
O ovim, a i drugim mogućnostima upotrebe programskih jezika za pro-
gramiranje aplikacija baza podataka biće kasnije više reči.

122 Sistem za upravljanje bazama podataka


6. Izveštaji
Izveštaj je krajnji, najčešće odštampani rezultat izvršavanja neke aplika-
cije izvedene u bazi podataka. Može da sadrži podatke kako iz rezultata upi-
ta tako i iz polaznih tabela, a sastoji se u principu od jedne ili više tabela.
Većina metoda za pravljenje obrazaca primenjuje se i na izveštaje.

Tipovi izveštaja
MS Access 2000 ima sledeće tipove izveštaja:
• izveštaji sa jednom kolonom (single column),
• izveštaji u više kolona (multicolumn reports),
• tabelarni izveštaji (tabular reports),
• sumarni izveštaji po grupama (groups/total reports),
• nalepnice sa adresama (mailing labels ), i
• nezavisni izveštaji (unbound reports).
Single column izveštaji daju rezultat u vidu jedne kolone. Koristi se sa-
mo izuzetno, jer u slučaju većeg broja podataka u izveštaju troši nepotrebno
mnogo papira, a rezultat je pri tome i nepregledan. Pogodan je za pojedina-
čne izveštaje (npr. izvod stanja na računu) ili za pregled na ekranu.
Multicolumn reports prave se od izveštaja sa jednom kolonom u obliku
koji se inače koristi u novinama. Nedostatak ove forme je u tome što često
poravnanje kolona nije onakvo kako smo to zamislili.
Tabular reports štampa tabele onako kako su pri kreiranju bile i zamiš-
ljene. Ako ima više kolona nego što može stati na jednu stranicu papira prvo
se odštampaju sve kolone sa jedne stranice papira, pa se tek onda prelazi
na sledeću.
Groups/total reports je česta forma štampanja izveštaja. Podaci se or-
ganizuju i obrađuju po grupama, a dodaju se i ukupne informacije.
Mailing labels treba da nam olakša pisanje adresa na koje izveštaji
poštom treba kasnije da budu poslani.
Unbound reports su delovi nekog izveštaja sa nepovezanim izvorima
podataka.
MS Access

Kreiranje izveštaja
Kreiranje izveštaja pomoću čarobnjaka
Kreiranje izveštaja odvija se u više koraka, slično je donekle kreiranju
obrazaca, a najbolje ga je opisati na primeru:
PRIMER 1: Kreirati izveštaj koji prikazuje šifru, ime odeljenja i mesto,
kao i ime i posao zaposlenih po odeljenjima, uređen po
poslovima koje obavljaju. Izveštaj nazvati repRadnici-
PoOdeljenjima.
Kao što se iz postavke zadatka uočava ovaj izveštaj se bazira na poda-
cima iz dveju tabela (ODELJENJE i RADNIK).
1. U prozoru Database mišem izaberemo karticu Reports i zatim New. Na
ekranu se pojavljuje prozor za izbor načina kreiranja izveštaja, prikazan
na slici 6.1.

Slika 6.1 Prozor za izbor načina kreiranja izveštaja

• Design View, ručno kreiranje izveštaja u pogledu Design, bez upot-


rebe čarobnjaka,
• Report Wizard - kreira izveštaj uz pomoć čarobnjaka,
• AutoReport: Columnar – kreira izveštaj u obliku kolona koristeći ča-
robnjaka,
• AutoReport: Tabular – kreira izveštaj koji izgleda kao tabela,
• Chart Wizard kreira grafikone zavisno koje uslove postavimo i
• Label Wizard kreira izveštaj u obliku labela.
2. Iz ponuđenih opcija izaberemo opciju Report Wizard i pritisnemo dugme
OK.

124 Sistem za upravljanje bazama podataka


Izveštaji

3. Otvara se novi prozor gde u listi Tables/Queries biramo tabele koje će-
mo koristiti u izveštaju. Najpre tabelu ODELJENJE, jer je ona u relaciji
1:N u odnosu na tabelu RADNIK, ali nije neophodno.

Atributi koji će
biti prikazani u
izveštaju

Polje za iz-
bor tabele

Slika 6.2 Sam Access preko čarobnjaka pomaže u izradi izveštaja

4. Iz polja Aviable Fileds odaberemo atribute (polja) koje želimo da vidimo


u izveštaju, u ovom primeru sve artibute tabele ODELJENJE, i prebaci-
mo ih u polje Selected Fields.
5. Kako se izveštaj kreira na bazi više tabela (dve), nakon što odaberemo
polja iz prve tabele, u polju Tables/Queries izaberemo sledeću tabelu-
RADNIK. Iz polja Aviable Fileds odaberemo njene atribute (ime i po-
sao) koje želimo da vidimo u izveštaju. Postupak ponavljamo dok iz svih
tabela ne izaberemo sve željene atribute. U izveštaju ć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 završili sa izborom atributa kliknemo na Next.
7. Sledeći prozor nudi mogućnost izbora atributa i načina prikaza podataka
na papiru pri grupisanju. Naravno Access nudi logično grupisanje poda-
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
izveštaju dati ime repRadniciPoOdeljenjima.

Sistem za upravljanje bazama podataka 125


MS Access

Slika 6.3 Access nudi logična rešenja za izgled izveštaja, vodi nas dalje i daje
mogućnost povratka na prethodni korak radi promene izbora

9. Postupak ponoviti i za opciju by RADNIK i izveštaj nazvati repRadnici-


PoOdeljenjima1.
10. Sledeći prozor (slika 6.4 levo opcija by ODELJENJE, Slika 6.4 desno op-
cija by RADNIK) omogućava 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 određujemo pri-
oritete grupisanja, tj. po kom atributu će biti urađeno glavno grupisanje, a
po kom podgrupisanje (grupisanje u okviru već postojeće grupe).

Slika 6.4 Nivoi grupisanja kod izveštaja

11. Sledeći okvir za dijalog, prikazan na slici 6.5., nudi izbor polja po kojim
će izveštaj biti uređen (sortiran). Kliknemo na Combo box, i u padajućoj
listi izaberemo polje po kome hoćemo da izveštaj bude sortiran. U ovom
primeru se zahteva uređivanje po poslovima, pa izaberemo atribut
POSAO. Sa desne strane imamo dugme pomoću koga određujemo da li
sortiranje radimo po rastućem (A-Z, 0-9) ili opadajućem (Z-A, 9-0) redos-
ledu. Access nudi četiri nivoa sortiranja, pa u drugom nivou izaberemo
uređivanje izveštaja po rastućem redosledu po imenima. Dakle izveštaj

126 Sistem za upravljanje bazama podataka


Izveštaji

je sortiran po poslovima, a ako više radnika obavlja isti posao biće pore-
đani po abecednom redosledu.

Slika 6.5 Izbor atributa po kojima se vrši sortiranje

12. Sledeći prozor, koji je prikazan na slici 6.6, nudi mogućnost izbora izgle-
da izveštaja (vizuelni prikaz). Kada se odlučimo za neku od ponuđenih
opcija pritisnemo dugme Next.

Slika 6.6 Izbor izgleda izveštaja

13. U sledećem prozoru biramo stil kako će izveštaj izgledati, slično kao kod
obrazaca. Naravno u početku treba pustiti čarobnjaka da radi što više,
dok ne ovladamo svim opcijama. Dakle, treba preći na sledeći korak pri-
tiskom na dugme Next. U poslednjem prozoru u postupku kreiranja izve-
štaja imamo mogućnost izbora režima za generisanje izveštaja. Moguć-
nosti su:
• da na ekranu pre štampanja vidimo izgled kreiranog izveštaja
(Preview the report) i druga,

Sistem za upravljanje bazama podataka 127


MS Access

• u kojoj imamo mogućnost dodatne izmene izveštaja (ako nešto nis-


mo dobro zamislili). Izaberimo prethodnu, ponuđenu, opciju jer svaki
izveštaj se može dodatno dorađivati u Design view modu i kliknimo
na dugme završi-Finish.
14. Na ekranu biće prikazan izgled izveštaja koji se sada može pregledati,
analizirati i po potrebi pre štampanja dorađivati u režimu projektovanja
(Design). Sam Access uneće na izveštaj podatke o ukupnom broju stra-
nica i redni broj tekuće stranice, itd.
15. Na kraju pomoću opcije File Print dobijamo željeni izveštaj odštampan
na papiru (slika 6.7 u slučaju izbora opcije By ODELJENJE i slika 6.8 za
izbor opcije By RADNIK).

Slika 6.7 Izveštaj u slučaju opcije By ODELJENJE grupisano po broju odeljenja


(GROUP BY brod), i uređeno po poslovima, pa po imenu (ORDER BY posao, ime)

16. Ako nismo zadovoljni izgledom, zatvorimo izveštaj, zatim kliknemo na


njega i izaberemo opciju Design. Jednostavnim pomeranjem polja ime,
posao, mesto, imeod udesno dobijamo željeni izveštaj. Naravno da su
moguće i druge izmene.

128 Sistem za upravljanje bazama podataka


Izveštaji

Slika 6.8 Izveštaj u slučaju opcije By RADNIK grupisano po broju odeljenja


(GROUP BY brod), i uređeno po poslovima, pa po imenu (ORDER BY posao, ime)

Uočavamo da, iako sadrže iste podatke, ova dva izveštaja (slika 6.7 i
slika 6.8) nisu identična. Naime, u drugom slučaju se za svakog radnika (ne-
potrebno) ponavljaju imena odeljenja i mesta u kojima rade.

Kreiranje izveštaja u režimu projektovanja


U režimu projektovanja (Design View) možemo praviti kompletan izveš-
taj, ili modifikovati izveštaj koji je već napravljen pomoću čarobnjaka.

PRIMER 2: Kreirati izveštaj 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. Izveštaj nazvati
repPlate.

Sistem za upravljanje bazama podataka 129


MS Access

Ovaj izveštaj kreiramo na osnovu podataka iz jedne tabele (RADNIK).


Izveštaj možemo praviti od početka u Design View, međutim možemo koris-
titi Report Wizard da uz pomoć čarobnjaka odradimo deo posla, a onda u
režimu projektovanja menjamo ono što želimo promeniti ili dodati, a što ča-
robnjak ne može da generiše.

1. Prvi deo postupka je već opisan u prethodnom primeru, znači biramo op-
ciju za pravljenje novog izveštaja uz pomoć čarobnjaka, izaberemo tabe-
lu RADNIK i atribute (IDBR, IME, PLATA, PREMIJA i BROD).
2. Dodamo grupisanje po atributu BROD, na sledećem prozoru pritisnemo
dugme Summary Options (koje postoji ako je neki od atributa koji čine
izveštaj numeričko polje, u ovom primeru to su atributi PLATA i
PREMIJA), slika 6.9.

Slika 6.9 Prozor Summary Options

3. Na prozoru Summary Options dobijemo listu atributa koji su brojni, sa


mogućnošću da se urade funkcije Sum, Avg, Min i Max. Pošto nam u
ovom izveštaju treba suma plata i premija izaberemo (čekiramo) opciju
Sum.
4. Biramo koju opciju prikazivanja hoćemo Detail and Summary ili
Summary Only.
5. Da bi dobili i procentualno prikazivanje čekiramo opciju Calculate Per-
cent of total for sums.
6. Klikom na dugme Next prođemo kroz Wizard do kraja, izaberemo neki
od stilova kako će izveštaj izgledati i sačuvamo ga pod imenom repPlate.
7. Na slici 6.10 prikazan je izveštaj napravljen pomoću Wizarda, a onda
treba preći u Design View da bi se uradile potrebne izmene, slika 6.11.

130 Sistem za upravljanje bazama podataka


Izveštaji

Slika 6.10 Izgled izveštaja Plate koji je kreiran pomoću čarobnjaka

8. Prvo ćemo tekst koji je napisan na engleskom jeziku (u natpisima kao što
su Sum, Grand Total i sl.) izmeniti da piše na našem jeziku, to radimo ta-
ko što promenimo sadržaj labela. Čarobnjak stavi u zaglavlje izveštaja

Sistem za upravljanje bazama podataka 131


MS Access

labelu koja sadrši isti tekst kao ime izveštaja, a treba je promeniti da ima
smisla tako da, umesto repPlate napišemo Plate (svojstvo Caption).
9. Na izveštaju 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 Forms u
polju Text Align izabrati opciju Left).

Slika 6.11 Izgled izveštaja Plate u režimu projektovanja

10. Promenimo redosled prikazivanja dva polja u izveštaju tako da prvo pri-
kažemo IME, pa zatim IDBR. Ovde treba promeniti mesto labelama
IDBR i IME, ali takođe obavezno izvršiti i zamenu za odgovarajuća tek-
stualna polja, da bi prikazivanje podataka bilo u skladu sa odgovarajućim
labelama.
Paleta alatki Toolbox ista je kao i kod kreiranja obrazaca i otvaramo je tako
što je aktiviramo iz padajuće liste View.

Linija alata prozora za prikaz izveštaja


Izveštaj otvoren u prozoru koji prikazuje kako će izgledati odštampani iz-
veštaj (Print Preview) ima svoju liniju alata (slika 6.12).
Osim što se izveštaj može prikazati na ekranu i odštampati moguće ga
je sačuvati i kao datoteku.

132 Sistem za upravljanje bazama podataka


Izveštaji

Dugme za izbor prika-


za izveštaja u režimu
projektovanja ili pri- Zatvaranje
kaza za štampu izveštaja
Kreiranje
Veza sa novih ob-
Prikaz izveštaja u MS Word i jekata
uvećanom ili uma- MS Excel baze
njenom izgledu

Štampanje Prikaz jedne, dve Izbor u kojoj Prelazak


izveštaja ili više stranica veličini se prika- na glavni
izveštaja na ekra- zuje izveštaj na prozor
nu ekranu baze

Slika 6.12 Linija alata prozora Print Preview

PRIMER 3: Već kreirani izveštaj repPlate sačuvati kao rtf i xls dato-
teku.
1. Potrebno je otvoriti izveštaj repPlate u prikazu za štampu (Print
Preview).
2. Izaberemo dugme OfficeLink i opciju Publish It with MS Word da bi
sačuvali izveštaj kao Word dokument. Dobijamo izveštaj prikazan u MS
Wordu (slika 6.13).

Slika 6.13 Prikaz izveštaja u MS Wordu

Sistem za upravljanje bazama podataka 133


MS Access

3. Ovaj dokument možemo sačuvati (opcijaFile, Save As) i koristiti ga kao


nezavisnu datoteku. Ponuđeno ime je repPlate, koje možemo i promeniti,
a za tip datoteke izaberemo već ponuđenu opciju rtf. Ova opcija je koris-
na jer je u MS Wordu najlakše podešavati izveštaj za štampu. (Izborom
opcije txt za tip datoteke, izveštaj će biti sačuvan u programu Notepad i
nedovoljno pregledan.)
4. Da bi sačuvali izveštaj repPlate u MS Excelu potrebno je otvoriti taj izve-
štaj u prikazu za štampu i izabrati dugme OfficeLink i opciju Analyze It
with MS Excel,
5. Nakon toga otvara se izveštaj o platama u programu MS Excel kao na
slici 6.14.

Slika 6.14 Prikaz izveštaja u MS Excelu

6. Ovu datoteku možemo sačuvati kao nezavisnu .xls datoteku i koristiti za


razne analize za koje je MS Excel pogodan.
Napomena: Kreirani izveštaj takođe se može poslati elektronskom poš-
tom. Potrebno je otvoriti izveštaj u režimu prikaza za štampu i desnim klikom
miša dobija se brza lista iz koje se izabere opcija Send To (slika 6.15), pa
dalje Mail Recipient (as Attachment). Nakon toga izaberete u kom formatu
želite da šaljete izveštaj i otvara se prozor za slanje elektronske pošte.

134 Sistem za upravljanje bazama podataka


Izveštaji

Slika 6.15 Izveštaj se može poslati elektronskom poštom

Opis izgleda prozora za projektovanje i njegovih


odeljaka
Prozor za projektovanje izveštaja (slika 6.11) sličan je prozoru za projek-
tovanje obrazaca. Ako izveštaj od početka kreiramo u režimu projektovanja u
njemu neće biti dodatih objekata (biće prazan) dok ih sami ne dodamo.

• Report header je zaglavlje izveštaja i ono što je napisano u tom delu


izveštaja pojavljuje se samo na početku izveštaja. U primeru na slici
6.13 to je naslov “PLATE”, koji je upisan u labelu.

• Report footer je deo izveštaja koji se prikazuje samo na kraju celog


izveštaja bez obzira koliko izveštaj ima strana. U ovom primeru to je
labela “ukupna suma” i text polje koje prikazuje ukupnu sumu plata.

• U delu izveštaja Page header smešta se ono što treba da se pojavi


na početku svake strane, kod nas su to imena atributa čije vrednosti
treba da budu prikazane u izveštaju.

• Page footer je deo koji se prikazuje na svakoj stranici izveštaja (ov-


de je to datum i broj strane izveštaja).
Napomena: Ako neki od prethodnih delova ne postoji na izveštaju, a že-
limo da ga dodamo iz padajuće liste View čekiramo opciju Report hea-
der/footer i/ili Page header/footer, zavisno šta je potrebno za rad.

Sistem za upravljanje bazama podataka 135


MS Access

Takođe, ako želimo da, na primer deo Report footera ne bude vidljiv,
uklonimo sve objekte iz njega i smanjimo njegovu površinu tako da bude ne-
vidljiv.
Kod izveštaja je vrlo bitno kako je urađeno grupisanje i sortiranje. U na-
šem primeru podatke smo grupisali po broju odeljenja, tako da u Design
View izveštaja imamo odeljak povezan sa brojem odeljenja.
• zaglavlje BROD (header) sadrži polje za unos teksta (Text box) u koji
se upisuje vrednost polja BROD,
• odeljak Detail sadrži vrednosti atributa vezane za određeno odelje-
nje, a
• podnožje BROD (footer) sadrži sumu i procenat plata za pojedino
odeljenje.
Znači 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).
Pošto je grupisanje urađeno po broju odeljenja, nakon podataka vezanih
za odeljenje 10, prelazi se na sledeću grupu podataka vezanu za odeljenje
20 i tako dalje redom.
PRIMER 4: U već kreirani izveštaj repPlate dodati podatak o poslu
koji radnik obavlja.

1. Da bi izvršili izmene u već kreiranom izveštaju potrebno je otvoriti izveš-


taj u režimu projektovanja.
2. Da bi dodali novu labelu moramo razmestiti već postojeće labele. Veliči-
nu objekta možemo promeniti tako što ga selektujemo i postavimo poka-
zivač miša na ivicu objekta da dobije oblike duple strelice, a onda sma-
njujemo ili povećavamo veličinu objekta. Objekat pomeramo tako što ga
selektujemo i kada pokazivač miša na njemu dobije oblik šake prevuče-
mo ga na željeno mesto. Vrlo bitno je u koji odeljak da stavimo labelu
POSAO (stavljamo u Page header da bi se pojavljivala na početku sva-
ke stranice).
3. Potrebno je dodati i tekstualno polje za vrednosti atributa POSAO. Ovo
polje dodajemo u odeljak detalji (Detail) ispod odgovarajuće labele. Me-
đutim, tekstualno polje nema značaja dok ga ne povežemo sa odgovara-
jućim atributom, da bi mogao da prikazuje podatke iz odgovarajuće tabe-
le.
4. To radimo u prozoru Properties, koga otvaramo pritiskom na odgovara-
juće dugme . Sam izveštaj, kao i svaki objekat na njemu, ima svoje
posebne karakteristike koje se mogu podešavati u prozoru Properties.
5. Da bi mogli povezati objekat sa nekim atributom, izveštaj mora da ima na
raspolaganju taj atribut. Ako ga nema potrebno ga je dodati. U našem

136 Sistem za upravljanje bazama podataka


Izveštaji

slučaju izveštaj je kreiran na osnovu tabele RADNIK, znači da je atribut


POSAO na raspolaganju i treba ga povezati sa odgovarajućim poljem.
6. Selektujemo tekstualno polje koje smo dodali za vrednost atributa posao,
zatim u prozoru Properties izaberemo karticu Data, i iz padajuće liste
Control Source izaberemo atribut POSAO. Naravno možemo podeša-
vati i ostala svojstva tog objekta, kao i svih ostalih.
Napomena: Kada kreiramo izveštaj u Design View od početka, aktiviramo
prozor Properties za izveštaj, izaberemo karticu Data i u polju Record So-
urce iz padajuće liste bira se već postojeća tabela ili upit. Postoji mogućnost
i da se direktno na tom mestu napravi upit na osnovu koga treba kreirati iz-
veštaj, pritisne se na dugme koje sadrži tri tačke (skroz desno u polju Re-
cord Source, koje se pojavljuje kada se pozicionira u to polje) i otvara se
prozor za kreiranje upita QBE.
Iz kutije s alatkama, Toolboxa, možemo dodati i linije da bi izveštaj bio
pregledniji, i dodatno srediti njegov izgled.

Sortiranje i grupisanje
U prethodnom primeru urađeno je grupisanje po atributu BROD, koje je
generisao čarobnjak. Naravno i to se može uraditi u režimu projektovanja,
tako što iz padajuće liste View dodamo opciju Sorting and Grouping ili pri-
tisnemo dugme , i dobija se okvir za dijalog (kao na slici 6.16).

Slika 6.16 Prozor za grupisanje podataka u režimu projektovanja

U polju Field/Expression iz padajuće liste možemo da biramo samo


one atribute od kojih se sastoji izveštaj. Polje Sort Order pokazuje da li su
njihove vrednosti sortirane po rastućem ili opadajućem redosledu.
Deo Group Properties ima sledeće opcije:
• Group Header svojstvo podešeno na Yes znači da je po selektova-
nom atributu izvršeno grupisanje i da će u izveštaju postojati odeljak
za zaglavlje po tome atributu (BROD Header u našem primeru). Ako
je podešeno na No, onda je u pitanju sortiranje,

Sistem za upravljanje bazama podataka 137


MS Access

• Group Footer svojstvo podešeno na Yes znači da će u izveštaju po-


stojati odeljak (ovde BROD Footer gde se smeštaju podaci vezani za
svaku grupu podataka pojedinačno – suma plate po odeljenjima),
• opcija Keep Together podešava se da nam govori da li podaci jedne
grupe treba da ostanu zajedno kod prelaska na drugu stranicu izveš-
taja.

PRIMER 5: U postojeći izveštaj repPlate dodati da podaci budu ure-


đeni po opadajućem redosledu po imenu.

1. Otvoriti izveštaj repPlate režimu projektovanja.


2. Otvoriti prozor Sorting and Grouping na jedan od već opisanih na-
čina.
3. U polju Field/Expression izabrati iz padajuće liste atribut IME i izabra-
ti da sortiranje bude po opadajućem redosledu (Descending). Nara-
vno po atributu IME izvršeno je samo uređivanjenje podataka, a ne
grupisanje.
Izveštaj o platama, nakon dosadašnjih izmena, ima izgled kao što je pri-
kazano na slici 6.17.

Izrada izveštaja na osnovu upita


Izveštaje kao i obrasce možemo kreirati kako na osnovu tabela, tako i na
osnovu već postojećih upita. Tako ako su potrebni neki određeni uslovi kod
kreiranja izveštaja prvo kreiramo odgovarajući upit, pa na osnovu njega od-
govarajući izveštaj.

PRIMER 6: Kreirati izveštaj repIzvoz koji prikazuje ime, mesto i fun-


kciju radnika koji rade na projektu “izvoz”.

1. Ovaj izveštaj treba da prikazuje podatke iz četiri tabele. Najpre


ćemo napraviti upit koji se zasniva na zahtevu koji je potreban za
izradu ovoga izveštaja. U ovom primeru izveštaj ćemo bazirati na
upitu qryIzvoz koji u QBE prozoru izgleda kao na slici 6.18.
2. Ovaj izveštaj kreiraćemo na osnovu opcije Report Wizard.
3. U polju za izbor tabele ili upita biramo upit qryIzvoz (slika 6.19.),
i izaberemo sva polja toga upita.
4. Dalje prođemo kroz ostale prozore čarobnjaka na već opisani na-
čin. Dodamo opciju by PROJEKAT, i uređenje podataka po mes-
tu u rastućem redosledu. Izaberemo stil kako će izveštaj vizuelno
izgledati i nazovemo ga repIzvoz.
5. Nakon malih izmena u režimu projektovanja izveštaj repIzvoz
dobija izgled kao na slici 6.20.

138 Sistem za upravljanje bazama podataka


Izveštaji

Slika 6.17 Konačan izgled izveštaja repPlate

Slika 6.18 QBE prozor upita

Sistem za upravljanje bazama podataka 139


MS Access

Slika 6.19 Kreiranje izveštaja na osnovu upita

Slika 6.20 Izveštaj kreiran na osnovu upita

Kreiranje izveštaja povezanih sa obrascem – iz-


rada izveštaja na osnovu parametarskog upita
Ponekad je potrebno napraviti izveštaj koji neće prikazivati npr. sve po-
datke o radnicima, već samo o radnicima koji rade u određenom odeljenju,
ali jednom su potrebni podaci o radnicima jednog, drugi put o radnicima dru-
gog odeljenja, tako da za to treba omogućiti da se na osnovu izabrane vred-
nosti prikazuju odgovarajući podaci.

PRIMER 7: Na već kreiranom obrascu frmPROJEKAT dodati ko-


mandno dugme koje će otvarati izveštaj 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 izvršiti po broju projekta, pa po broju
odeljenja. Izveštaju dati ime repUcesce.

140 Sistem za upravljanje bazama podataka


Izveštaji

1. Na način kao što je i do sada rađeno izabere se opcija za pravljenje no-


vog izveštaja koristeći opciju Report Wizard.
2. Iz tabele RADNIK biramo atribute IME i BROD, a iz tabele UČEŠĆE sve
atribute. Biramo opciju by UCESCE.
3. Kod dodavanja nivoa grupisanja prvo izaberemo BRPROJ sa leve strane
prozora, gde su raspoloživa polja, i na već opisani način 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).

Slika 6.21 Dodavanje nivoa grupisanja za izveštaj

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


kojima se vrši grupisanje koristimo dugmad Priority. Za davanje višeg
nivoa prioriteta kod grupisanja koristimo dugme , a za dodeljivanje ni-
žeg nivoa prioriteta dugme . Ako npr. izaberemo atribut BROD sa
desne strane, aktivira se dugme za dodeljivanje višeg nivoa grupisanja,
pritiskom na njega atributi BRPROJ i BROD menjaju mesta (slika 6.22).
Vratite nivoe grupisanja na početni nivo tako što ćete izabrati atribut
BROD i dati mu niži prioritet kog grupisanja, ili izaberite atribut BRPROJ i
dajte mu viši prioritet.
5. Proći do kraja kroz prozore čarobnjaka, dodati uređenje po imenu po ras-
tućem redosledu. Dati ime izveštaju repUcesce. Nakon što smo to zavr-
šili izveštaj ima izgled kao na slici 6.23.
6. Ovaj izveštaj treba preurediti tako da prikazuje podatke koji se odnose
samo na izabrani projekat. Pošto izveštaj treba da otvaramo sa obrasca
PROJEKAT, i pošto treba da prikazuje samo podatke za određeni proje-
kat, a informacija koji projekat je u pitanju je u tekstualnom polju imena

Sistem za upravljanje bazama podataka 141


MS Access

BRPROJ toga obrasca, treba otvoriti obrazac UČEŠĆE u režimu projek-


tovanja.

Slika 6.22 Promena nivoa grupisanja

Slika 6.23 Izgled izveštaja sa dva nivoa grupisanja

7. U prozoru Properties za svojstva izveštaja 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 izveštaj napravljen.

142 Sistem za upravljanje bazama podataka


Izveštaji

Slika 6.24 Menjanje svojstava izveštaja

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


[FORMS]![frmPROJEKAT]![BRPROJ] čime će uslov za koji broj projekta
teba kreirati izveštaj biti zadat u obrascu frmPROJEKAT. Odgovarajući
upit u SQL prozoru ima izgled kao na slici 6.25.

Slika 6.25 Parametarski upit na osnovu koga je kreiran izveštaj

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


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

Štampanje izveštaja
Krajnji cilj izrade izveštaja je obično njihovo štampanje na papiru. Kada
se završi sa izradom izveštaja preporučuje se provera njegovog izgleda u
pogledu Print Preview.
Podešavanje margina izveštaja radi se kao i u drugim Windows aplikaci-
jama, iz menija File izabere se opcija Page Setup. Ako se potvrdi polje Print
Data Only, štampaju se samo podaci iz izveštaja, a izostavlja se sve što je u
odeljcima Report Header/Footer, kao i u Page Header/Footer. Podešavanje
margina odnosi se samo na aktivni izveštaj, a ne i na druge izveštaje.

Sistem za upravljanje bazama podataka 143


MS Access

Slika 6.26 Izveštaj prikazuje samo izabrane podatke

Ako se prilikom štampanja broj stranica udvostručuje potrebno je prove-


riti da li je širina izveštaja veća od širine lista papira raspoloživog za štampu.
Kolone polja koje nisu mogle da stanu na širinu papira štampaju se na sle-
dećoj stranici. Na sledećoj stranici biće štampane i neke kolone ako je desna
margina izveštaja podešena dalje od margine štampača.

Zadaci za samostalan rad:


6.1 Kreirati izveštaj repPodaciRadnika koji se otvara sa već kreiranog obra-
sca frmPretraga i prikazuje za radnika izabranog iz padajuće liste šifru,
ime i posao radnika, kao i broj odelenja i mesto u kome radi. Na obrascu
dodati komandno dugme koje otvara taj izveštaj.
6.2 Kreirati izveštaj koji prikazuje ime i šifru radnika, broj i ime odeljenja, broj
projekta. Grupisanje uraditi po odeljenjima, a zatim po broju projekta,
uređivanje izvršiti po imenu radnika u opadajućem redosledu. Izveštaj
nazvati repProjektiPo Odeljenjima.
6.3 Kreirati izveštaj repBrojSatiPoProjektima koji prikazuje broj projekta,
šifu radnika i broj sati angažovanosti na projektu. Prikazati ukupan broj
sati angažovanosti svih radnika na svakom pojedinačnom projektu i na
svim projektima zajedno.

144 Sistem za upravljanje bazama podataka


7. Makroi
Akcija predstavlja svaki pojedinačni zadatak koji treba da se izvrši. Kada
se neke akcije uvek odvijaju istim redosledom može se kreirati makro kojim
se određuje šta će aplikacija raditi nakon nekog događaja (npr. pritisak na
dugme, pokretanje miša, unos ili promena podatka, itd.). Makroi izvršavaju
sledeće zadatke:
• zajedničko izvršavanje upita i generisanje izveštaja,
• istovremeno otvaranje više obrazaca i/ili izveštaja,
• provera ispravnosti podataka unetih preko obrazaca,
• izvođenje akcija pritiskom na komandno dugme, i
• prenos podataka između tabela.
Makroi se koriste pri otvaranju baze podataka, i makro koji treba da se
izvrši kao početni dobija atribut Autoexec. Na taj način korisnik ne mora da
preko Accessa dolazi do formi i pokreće aplikaciju. Samim tim korisnik ne
mora biti upoznat ni sa strukturom baze ni sa strukturom aplikacije, već ga
obrasci vode kroz aplikaciju.

Kreiranje makroa
PRIMER 1: Napraviti makro OtvaranjeObrazaca koji otvara obrazac
frmRadnikUcesce ali samo za pregled podataka bez
mogućnosti menjanja i dodavanja novih i obrazac frm-
Projekat samo za projekte za koje je broj projekta veći
od 200.

1. Da bi kreirali novi makro potrebno je u prozoru Database izabrati karticu


Macros i pritisnuti dugme New.
2. Nakon toga otvara se prazan prozor za kreiranje makroa. U gornjem delu
prozora imamo kolonu Actions (slika 7.1) u kojoj iz padajuće liste biramo
akciju koju želimo uraditi (npr. ApplyFilter, DeleteObject, FindRecord,
MsgBox, OpenReport i druge). Potrebno je otvoriti obrazac, pa u ovom
primeru biramo opciju Open Form.
3. Sa desne strane postoji kolona Comment, u koju pišemo komentare i to
ne utiče na rad makroa, već samo služi radi preglednosti programa, da bi
znali na šta se odnosi koja akcija. Ovde možemo upisati tekst “Otvaranje
obrasca frmRadnikUcesce”.
4. U donjem delu prozora je deo Action Arguments (parametri akcije) u
kome se u zavisnosti od izbora akcije otvaraju različite mogućnosti za
podešavanja koja se odnose na izabranu akciju. U ovom slučaju treba u
polju Form Name iz padajuće liste izabrati obrazac frmRadnikUcesce,
čime je za akciju OpenForm precizirano koji obrazac treba otvoriti.
MS Access

5. Pošto je zahtev da se podaci ne mogu menjati, ni dodavati već samo


pregledati u polju Data Mode iz padajuće liste biramo opciju Read Only.
Izgled makroa nakon dosadašnjih akcija izgleda kao na slici 7.1.

Slika 7.1 Prozor makroa u režimu dizajniranja

6. Pošto ovaj makro treba da izvrši još jednu akciju, a to je otvaranje obras-
ca frmProjekat, u delu Action treba preći na sledeći red i izabrati akciju
OpenForm, u delu Comment upisati komentar, a u delu Action Argu-
ments u polje Form Name upisati frmProjekat.
7. U polju Where Condition otvoriti prozor Expression Builder (slika 7.2) i
izabrati tabelu PROJEKAT (jer je obrazac frmProjekat kreiran na osnovu
tabele PROJEKAT) i atribut BRPROJ, a zatim dodati u polje za izraz i
dopisati uslov (>200).

Slika 7. 2 Prozor Expresion Builder za dodavanje uslova

8. Izgled makroa nakon dodavanja akcije za otvaranje obrasca frmProjekat


prikazan је na slici 7.3.
9. Sačuvamo makro pod imenom OtvaranjeObrazaca.

146 Sistem za upravljanje bazama podataka


Makroi

Slika 7. 3 Konačan izgled makroa u režimu projektovanja

Pokretanje makroa i režim projektovanja


Nakon kreiranja makroa u glavnom prozoru baze (Database) izborom
kartice Macros pojavljuje se novokreirani objekat. Da bi pozvali na izvršava-
nje neki već kreirani makro, na primer OtvaranjeObrazaca, potrebno je akti-
virati dugme Run , koje je dostupno kada u glavnom prozoru baze iza-
beremo već kreirani makro, ili u režimu projektovanja makroa pritiskom na
dugme Run. Pokretanjem makroa OtvaranjeObrazaca otvaraju se oba obra-
sca, s tim što u obrascu frmRadnikUcesce možemo samo pregledati podat-
ke, a u obrascu frmProjekat su vidljivi samo projekti čiji je broj veći od 200
(samim tim, projekti 100 i 200 se ne mogu pregledati, jer je takav uslov pos-
tavljen u razmatranom primeru).
Ako je potrebno dodati neke izmene u već kreirani makro, izaberemo ga
u glavnom prozoru baze i pritisnemo dugme Design, ili izborom iz brze liste
koja se otvara pritiskom desnog dugmeta miša na izabranom objektu. U re-
žimu projektovanja makroa otvara se paleta alatki sa određenim dugmadi-
ma, od kojih su u tabeli 7.1 pomenuta samo ona karakteristična za kreiranje
makroa.
Dugme Ime Funkcija
Dodavanje reda kada treba dodati akciju između dve
Insert Rows
postojeće akcije
Delete Rows Brisanje reda, tj. određene akcije
Run Startovanje modula
Za praćenje svake pojedinačne akcije i pronalaženje
Single Step
problema
Conditions Dodavanje kolone za uslov
Macro Names Dodavanje kolone za ime makroa
Tabela 7.1 Dugmad sa palete alatki za kreiranje makroa

Sistem za upravljanje bazama podataka 147


MS Access

Pretvaranje makroa u VBA kôd


Moguće je i postojeći makro prevesti u VBA, tako što u prozoru Databa-
se treba izabrati makro OtvaranjeObrazaca i iz menija Tools izabrati opciju
Macro i Convert Macros to Visual Basic. Izgled VBA kôda koji je kreiran
prikazan je na slici 7.4 i sačuvan je kao modul.

Slika 7. 4 Makro preveden u VBA kôd

Pokretanje makroa pritiskom na komandno dugme na


obrascu
Makroi se obično prave da se aktiviraju klikom na neko dugme, da se iz-
vrše nakon nekog događaja, npr. promene podatka, zatvaranja obrasca ili
slično.

PRIMER 2: Na već postojećem obrascu frmProjekat dodati jedno


tekstualno polje imena “txtDodati” u koje će se unositi
vrednosti sredstava koja su dodatno odobrena za odre-
đeni projekat. Na taj obrazac treba dodati i komandno
dugme (cmdDodaj) koje će pokretati makro DodatnaS-
redstva.
Potrebno je kreirati makro koji će izvršiti sledeće akcije:
• proveru da li je uneta vrednost u polje za dodavanje novih sredstava
za projekat i ispisuje poruku ako nije dodata,
• ako vrednost sredstava nije uneta, zaustavlja makro,
• ako je uneta vrednost dodatnih sredstava, pokreće akcioni upit koji
na postojeća sredstva za projekat dodaje novu vrednost,
• obaveštava da je promena uspešno obavljena i

148 Sistem za upravljanje bazama podataka


Makroi

• postavlja vrednost nula u polje za dodavanje nove vrednosti sredsta-


va.
Pre početka kreiranja ovog makroa potrebno je uraditi sledeće:
1. Dodati tekst polje na obrazac frmProjekat, što je objašnjeno u poglavlju o
obrascima. Dati mu ime txtDodati. U to polje će se upisivati vrednost
dodatnih sredstava za projekat. U prozoru Properties polja txtDodati
izabrati za Format opciju Standard. Isto izabrati i za svojstvo polja koje
prikazuje sredstva (promeniti sa Scientific na Standard) radi bolje pre-
glednosti.
2. Potrebno je kreirati upit koji će na već postojeća sredstva za određeni
projekat dodavati novu vrednost sredstava, koja se upisuje u novokreira-
no polje na obrascu frmProjekat. Znači treba napraviti upit koji u SQL
prozoru ima izgled kao na slici 7.5. Upit nazvati qryDodatiSredstva.

Slika 7. 5 SQL prozor kreiranog upita

Nakon što su napravljeni svi objekti potrebni za izradu makroa prelazi se


na kreiranje samog makroa.

1. U prozoru Database izaberemo opciju Macros i New, otvara se prozor


za kreiranje makroa.
2. Za početak treba proveriti da li je u polje za dodavanje novih vrednosti
uneta vrednosti ili polje nema vrednost (Null). Znači treba dodati i kolo-
nu za uslov (Condition), pritiskom na odgovarujuće dugme ili iz
menija View čekiranjem opcije Conditions. U kolonu Conditions treba
upisati odgovarajući uslov za proveru Is-
Null([Forms]![frmProjekat]![txtDodati]).
3. U polje Action dodati akciju MsgBox za ispisivanje poruke ako je us-
lov zadovoljen, a u polje Comment upisati komentar radi bolje pregle-
dnosti šta koja akcija radi. U delu Action Arguments u polje Message
treba upisati tekst poruke namenjen korisniku npr. “Unesite vrednost
sredstava.”, jer će se ta poruka pojavljivati samo u slučaju kada vred-
nost sredstava nije uneta.
4. Ovim do sada kreirana je prva akcija koju treba izvršiti, pa prelazimo na
sledeću, a to znači da treba prekinuti rad makroa ako vrednost sred-
stava nije uneta. Znači u polju za uslov treba upisati isti uslov kao i za
prethodnu akciju, a u polju Action izabrati akciju Stop Macro koja će
ako je uslov ispunjen zaustaviti dalje izvršavanje makroa.

Sistem za upravljanje bazama podataka 149


MS Access

5. Ako je u polje za unos novih sredstava uneta vrednost, prethodne dve


akcije se neće izvršiti već se prelazi na izvršavanje sledeće akcije, koja
pokreće akcioni upit koji sabira postojeća i dodatna sredstva za izabra-
ni projekat. Znači u polju za akciju izaberemo opciju Open Query, čime
se u polju Action Arguments otvaraju određene mogućnosti za izab-
ranu akciju. U polje Query Name treba upisati ime upita koji se pokre-
će a to je qryDodatiSredstva.
6. Nakon izvršavanja prethodno pokrenutog upita qryDodatiSredstva
promenjena je vrednost sredstava za određeni projekat, pa sledeća
akcija makroa treba da bude obaveštenje o tome. Znači za akciju izab-
rati MsgBox, a u polje poruke upisati npr. “Uspešno dodata sredstva!”.
7. U poslednjoj akciji koju ovaj makro treba da izvrši potrebno je u polje u
koje se unosi vrednost dodatnih sredstava upisati 0 (nula), tj. izbrisati
unetu vrednost, da se greškom ne bi dodala ta vrednost sredstva za isti
ili neki drugi projekat. Da bi to realizovali izaberemo sledeću akciju u
polju Action, a to je SetValue. U delu za podešavanje parametara u
polju Item treba upisati [Forms]![frmProjekat]![txtDodati], što je u
stvari polje u koje se upisuje vrednost, a čiju vrednost treba postaviti na
nulu, znači u polju Expression upisati “=0”.
8. Nakon ovoga kreirane su sve akcije koje makro treba da odradi, treba
ga sačuvati i dati mu ime DodatnaSredstva (slika 7.6).

Slika 7. 6 Makro sa uslovima za izvršavanje određenih akcija

Pošto makro DodatnaSredstva treba da se pokreće sa obrasca frmPro-


jekat tome obrascu je potrebno dodati i komandno dugme koje će pokretati
ovaj makro, kao što je objašnjeno u poglavlju o obrascima, i dodati akciju
koja će se izvršavati pritiskom na to komandno dugme, a to je akcija Run
Macro koja pokreće makro DodatnaSredstva. Obrazac frmProjekat otvoren
u radnom režimu nakon dodatih objekata ima izgled kao na slici 7.7.

150 Sistem za upravljanje bazama podataka


Makroi

Slika 7. 7 Izgled obrasca za dodavanje novih sredstava za projekat

Ako otvorimo obrazac frmProjekat i izaberemo, na primer projekat broj


200 (slika 7.7), a u polje za unos vrednosti dodatnih sredstva ništa ne upi-
šemo (Null-vrednost) aktiviranjem dugmeta na kome piše Dodaj sredstva, a
koji pokreće makro DodatnaSredstva, pojaviće se poruka kao na slici 7.8, da
treba uneti vrednost sredstava. Pritiskom na dugme OK vraćamo se na ob-
razac frmProjekat i u ovom slučaju odrađene su samo prve dve akcije ma-
kroa zbog uslova koji je postavljen.

Slika 7. 8 Poruka koju generiše makro

Ako u polje za unos vrednosti u obrascu frmProjekat za broj projekta 200


(slika 7.7) upišemo npr. vrednost 10 000, nakon aktiviranja makroa Dodat-
naSredstva pritiskom na dugme “Dodaj sredstva” preskaču se prve dve akci-
je makroa, jer nije ispunjen uslov za njihovo izvršavanje, pošto je u polje za
dodatna sredstva uneta vrednost. Znači prvo se odrađuje treća akcija ma-
kroa, koja pokreće upit za dodavanje sredstava na već postojeća za projekat
200, tako da će nova vrednost sredstava za projekat 200 biti 2 010 000. Po-
javiće se poruka da su sredstva uspešno dodata. Pritiskom na dugme OK te
poruke vraćamo na obrazac frmProjekat gde je u polju za vrednost dodatnih
sredstva upisana vrednost 0, a u polju sredstva nova vrednost je: 2 010 000.

Sistem za upravljanje bazama podataka 151


MS Access

U Accessu 2000 makroi se podržavaju radi kompatibilnosti sa ranijim


verzijama Accessa, jer se za automatizaciju više koristi Visual Basic for Ap-
plication (VBA).

152 Sistem za upravljanje bazama podataka


12. Povezivanje sa drugim apli-
kacijama
Programski paket MS Access ima velike mogućnosti uvoza i izvoza po-
dataka kako iz baza pravljenih u drugim programskim paketima (Oracle,
Paradox, SQL Server i slično), tako i sa programima koji se nalaze u sklopu
MS Officea (Word, Excel, Front Page, Power Point, Outlook). Isto tako radi
kompatibilnosti podaci se mogu konvertovati u formu koja je korišćena u ra-
nijim verzijama Accessa. Svaki izveštaj kreiran u Accessu direktno se može
izvesti u Excel ili Word.

Povezivanje sa MS Wordom
MS Word je namenjen izradi raznih vrsta tekstualnih dokumenata. Ovaj
program pruža mogućnost dalje estetske obrade izveštaja i podataka (dobi-
jenih iz baze) koji se mogu uobličiti u ponudu, deo nekog projekta i slično.
Povezivanje baze podataka sa Wordom moguće je ostvariti na više načina.

Kopiranje i prevlačenje
U samom Wordu može se napraviti tabela (ili je prethodno formirati u
Excelu) i zatim popuniti podacima jednostavnim kopiranjem ili prevlačenjem
podataka iz Accessove tabele u Wordov dokument.
U MS Accessu može se u Database prozoru selektovati neki objekat
(tabela ili upit), kopirati pomoću komande Copy i zatim komandom Paste
umetnuti na željeno mesto u Wordov dokument (naravno, isto važi i za
Excel).
Podaci se mogu i prevlačiti između programa, i ta tehnika se na engles-
kom naziva prevuci i spusti drag-and-drop. Prvo treba omogućiti da na
ekranu budu otvoreni i vidljivi istovremeno i izvorni dokument source file i
odredišni dokument destination file. Znači moramo biti u mogućnosti da
vidimo i objekat (tabela ili upit) koji želimo da prevučemo i lokaciju gde želi-
mo da smestimo taj objekat. Postupak je sledeći: selektuje se objekat u Da-
tabase prozoru a zatim se pomoću levog dugmeta miša prevuče selektovani
objekat na novu lokaciju u novom programu (u ovom slučaju u Word).

Hyperlink povezivanje
Hyperlink ostvaruje vezu ka postojećem dokumentu ili ka novo-
formiranom. Moguće je kreirati hyperlink veze između dokumenata koji su
kreirani iz različitih programa. Da bi se to ostvarilo potrebno je uraditi slede-
će korake:
MS Access

1. u Wordovom dokumentu (koji želimo da povežemo sa podacima u odre-


đenoj bazi podataka) otvorimo padajuću listu Insert iz koje izaberemo
opciju Hyperlink (slika 12.1).

Slika 12.1 Uspostavljanje Hyperlink veze sa bazom podataka

2. u novootvorenom prozoru bira se opcija Existing file or web page, a


zatim se locira i selektuje baza sa kojom želimo da uspostavimo vezu u
polju Type the file or Web page name. Ovde nam je omogućeno i da
unesemo tekst (Text to desplay) koji će nam ukazivati o kakvoj se vezi
radi,
3. pritiskom na dugme OK u Word dokumentu dobijamo link prema bazi sa
kojom smo uspostavili vezu (u ovom primeru to je baza
PREDUZECE.mdb smeštena u direktorijumu C:\praktikum),
4. pritiskom na tekst koji označava Hyperlink vezu, veza se automatski us-
postavlja i otvara se baza PREDUZECE.mdb u MS Accessu.

Ubacivanje u Word (Insert)


Ako se na paleti alatki Wordovg dokumenta ne nalazi dugme Insert Da-
tabase , prvi korak je pronalaženje istog. Potrebno je iz padajuće liste
More Buttons izabrati opciju Customize i u okviru nje otvoriti karticu Com-
mands. Iz raspoloživog sadržaja bira se kategorija Insert i u okviru nje ko-
manda Insert Database koja se prevlači i spušta direktno na paletu alatki.
Aktiviranjem dugmeta Insert Database započinje postupak koji će omo-
gućiti smeštanje Accessovog objekta na željeno mesto, odnosno u neki do-
kument urađen u Wordu.

154 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

PRIMER 1: Prikazati u Word dokumentu podatke o identifikacionom


broju, imenu i poslu radnika koji rade u odeljenju 10 iz ta-
bele RADNIK (baza PREDUZECE.mdb).

Za realizaciju ovog primera potrebno je sprovesti sledeće korake:

1. otvorimo novi Word document (dati mu ime Tabela), pritisnemo dugme


Insert Database (slika 12.2),

Slika 12.2 Biranje izvora podataka

2. na novodobijenom prozoru biramo opciju Get Data a zatim pronađemo


željenu bazu podataka. Kao tip dokumenta, Files of types, izabrati MS
Access Database. Izaberimo bazu PREDUZECE.mdb,
3. dalje treba izabrati upit ili tabelu iz baze koju želimo da umetnemo (u
ovom primeru to je tabela RADNIK),
4. opcija Query Option, slika 12.3, daje mogućnost:
• da uradimo filtriranje podataka (kartica Filter Records). U našem
primeru biramo iz padajuće liste da polje BROD bude jednako 10,
• da sortiramo podatke, ako je to potrebno (izborom kartica Sort Re-
cords),
• da, ako želimo, odaberemo samo pojedine zapise i polja (Select Fi-
les). U našem primeru to su IDBR, IME i POSAO (slika 12.4).
5. opcija TableAutoformat omogućava nam da biramo kako će izgledati
podaci u Wordu,

6. pritiskom na Insert Data smeštamo Accessov objekat na željeno mes-


to u Wordov dokument (slika 12.5).

Sistem za upravljanje bazama podataka 155


MS Access

Slika 12.3 Filtriranje podataka

Slika 12.4 Izbor atributa

Slika 12.5 Prikaz u Wordu podataka importovanih iz Accessa

156 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

Izvoz iz Accessa (Export)


U Database prozoru baze podataka prvo selektujemo upit, formu ili iz-
veštaj koji želimo da eksportujemo. Ako želimo samo deo podataka onda se
obeležavaju samo kolone i redovi u kojima se željeni podaci nalaze. Nakon
selektovanja postupak je sledeći:

1. u padajućoj listi File izabrati opciju Export,


2. u dobijenom prozoru kao tip dokumenta izabrati Rich Text Format koji
omogućava kreiranje dokumenta sa originalnim formatom podataka,
3. dajemo ime dokumentu i biramo mesto gde ćemo ga smestiti.
Kada želimo da u Word dokument smestimo neku od ovako odabranih
tabela dovoljno je samo iz padajuće liste Insert izabrati File ili Object i tu
pronaći mesto gde je izvežen (Export) Accessov objekat.

Dugme za povezivanje na obrascu


Moguće je direktno iz obrasca otvoriti Wordov dokument postavljanjem
posebnog dugmeta na obrascu. Dugme se kreira u Design modu obrasca
tako što se iz prozora Toolbox izabere objekat Command Button.
Startovan je čarobnjak Command Button Wizard u kojem treba iz liste
Categories izabrati opciju Application, a iz liste Action treba izabrati ko-
mandu Run Application (slika 12.6).
Kada odredimo mesto na obrascu gde želimo da smestimo dugme, otva-
ramo prozor Properties. U prozoru Properties se u polje naziv Caption
upisuje naziv dokumenta, a u polje Hyperlink unosi se adresa dokumenta
sa kojim želimo da preko dugmeta na obrascu ostvarimo direktnu vezu.

Slika 12.6 Biranje akcije za komandno dugme koje treba da otvori aplikaciju

Sistem za upravljanje bazama podataka 157


MS Access

Zadatak za samostalan rad


11.1. Povezati dugme na obrascu da otvara prethodno kreirani Word do-
kument Tabela.

Cirkularna pisma
Jedna od korisnih upotreba veze MS Accessa sa MS Wordom je prav-
ljenje cirkularnih pisama, koja se koristi recimo u slučajevima kada je potre-
bno poslati pismo istog sadržaja na više adresa (npr. pozivnice za venčanje).
Da ne bismo kreirali svaku pozivnicu ponaosob, možemo upotrebiti podatke
o radnicima koji se nalaze u bazi i ubaciti ih u prethodno definisana mesta
“šablonizovanog” pisma.

PRIMER 2: Kreirati pozivnice za poziv na proslavu godišnjice predu-


zeća. Na pozivnici treba da piše ime, posao i broj odelje-
nja u kome radnik radi. Koristiti podatke o radnicima iz
baze, a tekst pozivnica kreirati u Wordu.

Da bismo realizovali ovaj primer potrebno je uraditi sledeće:

1. otvoriti Database prozor baze PREDUZECE,.mdb i selektovati tabelu


RADNIK,
2. iz liste Tools izabrati Office Links, pa onda opciju Merge it with MS
Word. Otvara se prozor za dijalog koji nas pita hoćemo li koristiti već
postojeći Word document ili ćemo praviti novi. Pošto za ovaj primer
nemamo tekst pozivnice izaberemo opciju Create a new document
and then link the data to it, (slika 12.7).

Slika 12.7 Izbor dokumenta u koji se smeštaju povezani podaci


3. pritiskom na dugme OK otvara se novi prazan Word dokument, u
kome pišemo tekst pozivnice zajednički za sve (kreiramo šablon), a
ono sto treba da bude različito za svakog radnika (ime, posao, ode-
ljenje) biramo iz padajuće liste dugmeta Insert Merge Field,

158 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

4. Kada smo završili sa tekstom pritisnemo dugme Merge, otvara se


novi prozor gde biramo gde ćemo sačuvati pisma (Merge to new
document),
5. otvara se novi Word document sa sređenim pismima, gde za svakog
pojedinačnog radnika dobijamo pozivnicu sa njegovim podacima (sli-
ka 12.8).

Slika 12.8 Izgled Word dokumenta koji sadrži vezna polja

Povezivanje sa MS Excelom
MS Excel je namenjen izradi raznih vrsta tabelarnih proračuna. Iako i
Excel (kao Word) ima mogućnost rada sa bazama podataka, Excel je pre
svega pogodan za rad sa tabelama i ima velike mogućnosti u pogledu anali-
ze i grafičke obrade rezultata.
Excel je pravi program za sve poslove sa brojkama i u njemu možemo
da pravimo sve vrste finansijskih dokumenata (računovodstvene tabele, iz-
veštaje o prodaji, prihodima, otplatama, rashodima, troškovima…).
Postoji mnogo sličnosti Accessa sa Excelom. Veličine redova i kolona
tabela mogu se menjati na sličan način kao u Excelu. Access nudi
WYSIWYG (what you see is what you get, “šta vidiš to i dobiješ”) moguć-
nost crtanja slično Excelu, a oba programa dele istu aplikaciju za crtanje di-
jagrama. Osim toga Access koristi iste čarobnjake za crtanje koji se koriste i
u Excelu (čarobnjak za izvedene tabele).
Podaci iz baze podataka mogu se prevlačiti i spuštati u Excelov radni
list, a mogu se i povezati sa Excelovim tabelama. Povezivanje baze podata-
ka sa Excelom je moguće ostvariti na još nekoliko načina.
Jedan od načina jeste i da se tabela koja je uvezena iz Accessa doradi u
Excelu, a zatim da se iz Excela prenese u Word.

Sistem za upravljanje bazama podataka 159


MS Access

Kopiranje, prevlačenje, izvoz


Kopiranje ili prevlačenje podataka iz baze podataka u Excel, obavlja se
u postupku koji je skoro identičan već opisanom (sve ono što se odnosilo na
Word sada će se odnositi na Excel). To isto važi i za upotrebu Accessovih
objekata, s tim što kao tip dokumenta treba izabrati Microsoft Excel 5-7 ili
Microsoft Excel 97-2000 koji omogućava kreiranje dokumenta sa originalnim
formatom podataka.
Postoji mogućnost da se umetanje u Excelovu radnu svesku obavi ko-
mandom Paste Special. Na ovaj način su se ćelije radne sveske povezale
(a ne kopirale) sa poljima Accessove tabele. To znači da se promenom sa-
držaja jednog, na identičan način automatski menja i sadržaj drugog.

Analizirati sa MS Excel-om
U Database prozoru baze podataka prvo se selektuje tabela, upit, for-
ma ili izveštaj koji želimo da premestimo u Excel. Ako želimo samo deo po-
dataka onda se obeležavaju samo kolone i redovi u kojima se željeni podaci
nalaze (u pogledu Datasheet).
Nakon selektovanja potrebno je u padajućoj listi Tools izabrati Office
Links, pa onda izabrati opciju Analyze It With MS Excel.
Na ovaj način je selektovani objekat sačuvan kao Microsoft Excel file
(.xls) u tekućem direktorijumu, a nakon toga Excel ga automatski startuje i
otvara.

Izvedene tabele
Access 2000 poseduje čarobnjaka koji pravi Excelove izvedene tabele
(Pivot Table) na osnovu tabela ili upita kreiranih u bazi podataka.
Izvedena tabela predstavlja rezultat unakrsnog uređivanja podataka.
Ona može da ima više nivoa redova, kolona, pa čak i strana. Središnji deo
sadrži brojčane, podatke dok redovi i kolone obrazuju hijerarhiju izvedenih
podataka. Postupak kreiranja je sledeći:

1. u Database prozoru izabrati karticu Forms, pritisnuti dugme New i


izabrati opciju Pivot Table Wizard. Sada je pokrenut čarobnjak koji
otvara niz prozora,
2. u uvodnom prozoru nalaze se objašnjenja kako izvedena tabela fun-
kcioniše,
3. u sledećem prozoru izaberu se tabele ili upiti, zatim se iz Available
Fields selektuju ona polja koja će se nalaziti na obrascu,
4. pritiskom na Next pokreće se Excel 2000 i u njegovom prozoru se
pojavljuje novi čarobnjakov okvir za dijalog. Aktiviranjem dugmeta
Layout otvara se prozor u kome treba prevući polja u izvedenu tabe-

160 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

lu. Aktiviranjem dugmeta Options možemo odrediti način formatira-


nja, da li će se rezultati sumiranja redova i kolona prikazati u tabeli.
Izvedena tabela može se urediti preko Edit Pivot Table čime se prelazi
u prikaz Excela gde postoje mnoge opcije, između ostalog da se iz padaju-
ćih listi koje su vezane za polja selektuju samo oni podaci koje želimo da
vidimo u analizi.
Obzirom da je uspostavljena OLE veza između izvedene tabele i Acces-
sa, izvedena tabela se prikazuje u Accessovom obrascu. Excelov čarobnjak
se ponaša kao da je integrisan u Access, u stvari, to je samo ugrađeni obje-
kat iz Excela.
Izvedene tabele lako se prave i omogućavaju odličnu analizu. Kada se
snimi obrazac, veza sa Excelom ostaje sačuvana.

Importovanje Excelovih tabela u Access


Pored uobičajenog importovanja tabela iz drugih baza podataka, MS
Access nudi mogućnost importovanja podataka iz tekstualnih fajlova (pod
uslovom da su zapisi u fajlu odvojeni zarezom ili space znakom), HTML do-
kumenata i drugih tipova fajlova u kojima je moguće na neki način razdvojiti
podatke. Jedna od često upotrebljavanih opcija je importovanje tabela krei-
ranih u MS Excelu. Da bismo ilustrovali ovu mogućnost, potrebno je najpre
kreirati tabelu u Excelu. Najlakši način je da već postojeću tabelu radnik na
neki od mogućih načina eksportujemo u Excel fajl koji ćemo nazvati
RADNIK.xls. Zatim u datom Excel fajlu izduplirati sve podatke o radnicima
Petar, Miro, Tomo i Marko. Da bismo novokreiranu tabelu importovali u bazu
podataka PREDUZECE:mdb potrebno je uraditi sledeće:
1. u Database prozoru baze podataka PREDUZECE.mdb iz padajuće
liste File izabrati opciju Get External Data / Import.
2. u prozoru Import izabrati putanju do datoteke RADNIK.xls, a opciju
Files of Type (Tip Fajla) podesiti na Microsoft Excel. Selektovati
datoteku RADNIK.xls i izabrati dugme Import. Prikazaće se prozor
za izbor lista iz koga želimo da importujemo tabelu. Potrebno je oz-
načiti list na kome se nalazi tabela, u našem slučaju to je Sheet 1
(slika12.9).
3. u sledećem koraku potrebno je potvrditi (izabrati opciju) First Row
Has Column Headings. Ova opcija omogućava da polja u tabeli au-
tomatski dobiju ime po prvoj n-torki tabele koju uvozimo.
4. kada pritisnemo dugme Next pojaviće se prozor koji nas pita da li
podatke želimo da uvezemo u već postojeću tabelu ili u novu. Izabrati
opciju za uvoz u novu tabelu i pritisnuti taster Next.
5. u sledećem koraku možemo navesti osobine svakog polja koje uno-
simo (slika 12.10). Na primer, moguće je navesti da li će dato polje
biti indeksirano i da li će se dozvoliti uvoz duplih podataka u tom po-
lju. S obzirom da MS Excel ne podržava upotrebu primarnih ključeva,

Sistem za upravljanje bazama podataka 161


MS Access

veoma je moguće da se u uvezenim podacima pojave duplikati. U


našem primeru nećemo izabrati da ni jedno polje bude indeksirano.
Moguć je i selektivan izbor polja koja želimo da importujemo (za polja
koja ne želimo, izabraćemo opciju Skip This Field). Pritisnuti dugme
Next,

Slika 12.9 Izbor Excel lista na kome se nalazi tabela za importovanje

Slika 12.10 Informacije o svakom polju koje se uvozi u bazu – importuje


6. u sledećem koraku potrebno je odlučiti koje će polje u tabeli biti pri-
marni ključ (slika 12.11). Moguće su tri opcije:
• da dozvolimo Accessu da sam dodeli primarni ključ,
• da sami izaberemo primarni ključ od ponuđenih polja,

162 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

• da uopšte ne dodeljujemo primarni ključ.


• S obzirom da smo dodali duple zapise u Excel tabelu, izabraćemo
treću opciju (bez primarnog ključa) i pritisnuti dugme Next,

7. u poslednjem koraku nazvaćemo tabelu RADNIK_EXCEL i pritisnuti


dugme Finish, posle čega će se ime ove tabele pojaviti na listi tabela
u Database prozoru.

Slika 12.11 Odlučivanje da li želimo primarni ključ u novoj tabeli

MS Access ne insistira na kreiranju primarnog ključa, tj. moguće je pos-


tojanje tabela za koje on nije definisan. Obzirom da MS Excel ne poseduje
alat za eliminisanje duplih n-torki iz tabela, moguć je slučaj da se prilikom
ovakve vrste importa pojave duple n-torke, pa ih je pre definisanja primarnog
ključa u Access tabeli potrebno eliminisati.
U tu svrhu koristi se tzv. Find Duplicates Query Wizard (čarobnjak za
pronalaženje duplikata u tabelama). Da bismo pokrenuli ovu alatku potrebno
je najpre u Database prozoru izabrati opciju Queries, a zatim od ponuđenih
opcija izabrati pomenuti čarobnjak.
Da bismo pronašli duplikate u novokreiranoj tabeli RADNIK_EXCEL, po-
trebno je u prvom koraku izabrati datu tabelu, a zatim, u drugom koraku iza-
brati sva polja iz tabele (slika 12.12).

Sistem za upravljanje bazama podataka 163


MS Access

Slika 12.12 Izbor polja za koje tražimo duplikate


Po završenom kreiranju ovog upita dobićemo rezultate pronalaženja du-
plikata koji se poklapaju sa duplikatima koje smo uneli u Excel tabelu. Ovaj
čarobnjak nam u praksi, u mnogim slučajevima, može biti od pomoći.

Veza sa Internetom
Popularizacijom Interneta postala je uobičajena praksa da se aplikacije
baza podataka razvijaju i za on-line upotrebu, tj. da se podaci iz baze prika-
zuju u vidu HTML tabela, a unos i ažuriranje baze vrši preko HTML formi.
Access 2000 poseduje mogućnost razvoja aplikacije baza podataka u vidu
stranica za pristup podacima (Data Access Pages, DAP), koje nude po-
godne mogućnosti za pretraživanje podataka, njihovo prikazivanje i analizu.
Prilikom osmišljavanja Office-a 2000, Microsoft je želeo da svaki od
proizvoda iz grupe bude u stanju da svoje generičke podatke u nekom
formatu prikazuje u programima za čitanje Web stranca. Pored toga želeo je
da za svaki od proizvoda obezbedi ažuriranje podataka u okviru Web čitača,
ako je to moguće. Što se tiče proizvoda kakvi su Word i Excel jedino rešenje
je bilo da obezbede transformisanje podataka iz generičkog formata (.DOC
ili .XLS datoteke) u Web (XML format) i u suprotnom smeru.
U Access-u podaci i način njihovog prikazivanja nisu tako čvrsto
povezani. Podaci se smeštaju na jedno mesto, a za njihovo prikazivanje i
ažuriranje koriste se brojne, sasvim različite tehnike.
Stranice za pristup podacima interno čuvaju fiksne podatke o vezama sa
svojim izvorima podataka. S druge strane, Access čuva fiksne putanje do
datoteka u kojima se nalazi HTML kôd stranica za pristup podacima tako da
one neće raditi dok se pri prenosu baze podataka na drugi računar te
putanje ne podese.
Stranice za pristup podacima predstavljaju u potpunosti nov pristup u
približavanju Accessovih aplikacija Internetu ili lokalnim računarskim mreža-
ma. Za izradu ovih stranica koriste se dva nova standarda Interneta,

164 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

eXtendible Markup Language (XML) i Cascading Style Sheets (CSS),


koji omogućavaju rukovanje sadržajem i izgledom Web stranica. XML nam
dopušta da definišemo svoje sopstvene oznake za polja podataka (tagove),
na primer <Ime Radnika> ili <Broj Odeljenja>. CSS definiše stilove koji se
mogu ponovo koristiti, a koje Microsoft naziva Teme, da bi definisao pozadi-
ne i formatirao tekst ili druge objekte na nekoj Web stranici. Stranice za pris-
tup podacima radikalno se razlikuju od tradicionalnih aplikacija za rad sa ba-
zama podataka u Accessu. Za razliku od objekata Accessa koji se čuvaju u
.mdb datoteci, Access čuva DAP u dinamičkim HTML (DHTML) datotekama
sa standardnom ekstenzijom .htm. Stranice za pristup podacima koje se po-
javljuju u prozoru Database kada mišem izaberemo opciju Pages, predstav-
ljaju veze sa odgovarajućim DHTML datotekama.

Pojam stranice za pristup podacima


Stranice za pristup podacima omogućavaju da prikazujemo i ažuriramo
podatke koje obezbeđuje server baze podataka Jet ili SQL Server, a sve u
kontekstu Web stranice. Za pravljenje stranice za pristup podacima možemo
koristiti odgovarajući Access-ov dizajner koji sigurno predstavlja
najjednostavnije rešenje ili bilo koji drugi program koji može da koristi
ActiveX komponente. Sadržaj stranice možemo prikazivati bilo u samom
Access-u (u prikazu Page), bilo pomoću Internet Explorer-a 7.0 ili bilo kog
drugog programa za prikaz Web stranica.

Kada se radi sa Access-om, izgled stranice za pristup podacima u


prikazu Page u osnovi je isti kao u Web čitaču. Access samo prikazuje
instancu Internet Explorera u jednom svom prozoru, tako da vidimo sve što
bismo videli pomoću čitača. Razlika je samo u lokaciji HTML datoteke. Ako
želimo da se korisnici služe čitačem da bi pregledali naše stranice, njih i
bazu podataka (ako se podaci učitavaju iz .MDB datoteke) treba smestiti na
Web Server.
Stranice za pristup podacima se mogu zamisliti kao kombinacija formi i
izveštaja, kojima se pristupa u okruženju čitača Web stranica.
Kada u Access-u formiramo stranicu za pristup podacima, formiraju se
dve nezavisne komponente:
• Objekat Data Access Pages u samom Access-u, koji ne sadrži
skoro ništa osim lokacije pridružene HTM datoteke.
• HTM datoteka, u kojoj se nalazi HTML i XML izvorni kôd stranice.
Da bismo HTML datoteku povezali sa izvorom podataka, stranice za
pristup podacima koriste Data Source Control, jednu od Office Web
komponenata. Ovaj nevidljivi kontrolni objekat obezbeđuje povezivanje
podataka sa određenim HTML i ActiveX objektima koje postavljamo na
stranicu za pristup podacima. Pored toga, ona omogućava sortiranje i
grupisanje podataka. Iako se kontrolni objekat Data Source Control ne vidi,
Access automatski pravi njegovu instancu i dodaje je našoj stranici za
pristup podacima kada prvi put povežemo podatke sa stranicom.

Sistem za upravljanje bazama podataka 165


MS Access

Stranice za pristup podacima predstavljaju jednostavan način za


pravljenje Web stranica za prikazivanje izveštaja i unos podataka na
Internetu. Kada koristimo MDB datoteku, sva obrada podataka mora da se
obavlja na klijentskoj strani. To znači da Jet mora da bude instaliran na
lokalnom računaru i da se sve manipulacije podacima odvijaju na njemu.
Međutim sve to radi mnogo bolje kada se koristi SQL server, jer se obrada
podataka odvija na drugom računaru.

Mogućnosti stranica za pristup podacima


Kada stranice za pristup podacima koristimo u okviru neke aplikacije,
one nam mogu služiti za izvršavanje jednog od sledećih zadataka:
Analiza podataka – ova upotreba stranice za pristup podacima
koristi se kada korisnici žele da pregledaju i sumiraju podatke po svojoj želji,
da otvaraju različite grupe i preuređuju veze između podataka prema svojim
potrebama. Da bi se to postiglo najčešće se koristi kontrolni objekat Pivot
Table, koji je deo Office Web komponenata. Ovaj kontrolni objekat možemo
povezati sa bilo kojim standardnim izvorom podataka. Za prikazivanje
rezultata analize koju izvodi kontrolni objekat Pivot Table možemo koristiti
jedan ili više kontrolnih objekata iz grupe Office Chart.
Pregled podataka – stranice za pristup podacima najčešće se ipak
upotrebljavaju kako bi se korisnicima omogućilo da rade sa grupama
podataka, koje su im dostupne u hijerarhijskom obliku. Da bi se napravila
ova vrsta stranice za pristup podacima postavljaju se vezani kontrolni objekti
na stranicu, grupisani prema potrebi. Korisnici mogu da proširuju ili sužavaju
nivoe sve dok ne nađu željene podatke.
Unos ili ažuriranje podataka – pod izvesnim uslovima možemo
dozvoliti korisnicima (najčešće administratorima) da ažuriraju podatke na
stranicama za pristup podacima. Da bi to bilo moguće moraju se poštovati
sledeća pravila:
1. Stranica može sadržati podatke samo iz jednog izvora (na primer
jedne tabele ili upita).
2. Moraju se koristiti jednostavni kontrolni objekti, kao što su polja za
tekst, padajuće liste itd. Korišćenje kontrolnog objekta Pivot Table
nije moguće.
3. Može se prikazivati samo jedan po jedan red podataka (zapis).
4. Trebalo bi da se postavi traka za navigaciju kroz zapise kako bi
korisnici mogli da pristupaju podacima (novi zapis, obriši zapis,
korak unazad, ...).

166 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

Upotreba alatke Page Wizard za izradu jednostavne


stranice za pristup podacima (DAP)
Upotreba ovog alata predstavlja najkraći put za izradu stranica za pris-
tup podacima iz više povezanih tabela. Page Wizard dopušta da navedemo
pojedinačna polja iz tabele za grupisanje više zapisa.
Da bismo prikazali stranicu koja prikazuje povezane zapise iz tabele
RADNIK i ODELJENJE potrebno je uraditi sledeće:
1. U prozoru Database baze podataka PREDUZECE.mdb izabrati dugme
Pages, a zatim izabrati Create Data Access Page By Using
Wizard. Pojaviće se prvi prozor ovog čarobnjaka, prikazan na slici 12.13.

Slika 12.13 Prozor za izbor polja koja će učestvovati u stranici

2. U listi Tables / Queries izabrati tabele RADNIK i ODELJENJE, sa svim


njihovim poljima, a zatim izabrati dugme Next (sledeći). Možemo uočiti
sličnost sa izborom tabela i polja prilikom kreiranja obrazaca i izveštaja
(slika 12.14).

Slika 12.14 Prozor za izbor načina grupisanja

Sistem za upravljanje bazama podataka 167


MS Access

3. U dijalogu za nivoe grupisanja izabrati polje ODELJENJE.BROD. Nivoi


grupisanja u stranicama slični su nivoim grupisanja u izveštajima. Pritis-
nuti dugme Next (slika 12.15),

Slika 12.15 Prozor za izbor sortiranja podataka

4. Sledeći prozor omogućava izbor atributa i redosleda sortiranja. Izabrati


sortiranje prema imenima u rastućem redosledu (slika 12.16),
5. U ovom prozoru upisaćemo ime stranice, i pritisnuti dugme Finish (kraj)
da bismo inicirali generisanje stranice. Gotova stranica ima izgled kao na
slici 12.17.

Slika 12.16 Definisanja naziva stranice

168 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

Slika 12.17 Izgled kreirane stranice za pristup podacima


Stranice za pristup podacima možemo menjati u prozoru Design (slika
12.18). Za obradu se koristi paleta alatki slična paleti u formama i izveštaji-
ma.

Slika 12.18 Izgled stranice u režimu projektovanja

Stranice za pristup podacima takođe možemo videti u nekom od pro-


grama za čitanje Web stranica (npr. Internet Explorer ili Netscape Naviga-
tor). Na slici 12.19. prikazan je prozor Internet Explorera sa učitanom html
stranicom napravljenom u Accessu. Ako u programu za čitanje Web stranica
otvorimo kôd stranice (desni klik miša u prostor stranice, pa View Source),
možemo uočiti HTML kôd koji je Access automatski generisao prilikom izra-
de stranice. Na slici 12.20, prikazan je deo ovog kôda:

Sistem za upravljanje bazama podataka 169


MS Access

Slika 12.19 Izgled stranice u Internet Exploreru

Slika 12.20 Izgled dela HTML kôda stranice koji je generisao Access

Prilikom pravljenja stranice za pristup podacima odmah se uočava jedan


problem. Access ne pruža nijednu mogućnost za pretvaranje postojećeg
obrasca ili izveštaja u stranicu za pristup podacima. Iako se čini da je to
krajnje normalan zahtev on nije deo paketa. Neke firme kao što je Trigeminal
Software su napravile čarobnjaka (Wizard) koji obavlja ovaj zadatak.
Međutim, te stranice za pristup podacima samo vizuelno izgledaju kao

170 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

izveštaji ili obrasci. Komandna dugmad, OLE objekti (koji se inače ne mogu
prenositi u stranice za pristup podacima) i neki drugi objekti ne funkcionišu
na isti način u ova dva alata pa bismo više vremena proveli rešavajući
problem njihovog prepravljanja nego da napravimo sasvim novu stranicu za
pristup podacima (kao što je to uvek slučaj kod prepravljanja postojećeg
rešenja).
Upotreba alatke design view za izradu stranice za
pristup podacima sa mogućnošću ažuriranja
PRIMER 3: Kreirati stranicu za pristup podacima za pregled i
ažuriranje podataka o projektima u preduzeću i
radnicima koji su angažovani na tim projektima.

1. U prozoru baze podataka izabrati opciju Pages, pritisnuti dugme New i


iz okvira za dijalog New Data Access Pages izabrati opciju Design
View kao na slici 12.21. Iz padajuće liste Choose the table or query
where object data comes from izabrati tabelu PROJEKAT.

Slika 12.21 Izbor nove stranice za pristup podacima

2. Na ekranu se pojavljuje nova prazna stranica za pristup podacima. Na


stranici pritisnuti natpis Click here and type title text (“Pritisnite ovde i
unesite tekst naslova”) i upišite PODACI O PROJEKTIMA kao na slici
12.22.

3. Otvorimo prozor Field List, bilo pomoću odgovarajuće ikone na paleti


sa alatkama , bilo pomoću stavke menija View > Field List. Zatim u
prozoru Field List, pronađemo na stablu čvor Tables i otvorimo ga da
bismo izabrali tabelu iz koje želimo da pravimo stranicu, u našem slu-

Sistem za upravljanje bazama podataka 171


MS Access

čaju to je tabela PROJEKAT. Pritisnemo znak pored njenog imena i


otvoriće se lista polja u njoj. Možemo prevući i celu tabelu PROJEKAT
držeći je levim klikom miša, a sva polja iz nje će se rasporediti po stra-
nici. Ukoliko u tabeli imamo OLE objekte dobićemo obaveštenje da
DAP ne može da prenosi takve objekte. Ne preporučuje se ovaj metod
već je bolje prenositi polje po polje kako želimo, raspoređujući ih na
stranici. Kada počnemo da pravimo stranicu, odeljak sa mrežom zove
se Section: Unbound. Pošto na mrežu smestimo prvi vezani kontrolni
objekat, ime se menja tako da odgovara izvoru podataka vezanog kon-
trolnog objekta (u našem slučaju PROJEKAT). Kada na stranicu koju
pravimo ne bismo preneli primarni ključ iz te tabele, podatke ne bismo
mogli ažurirati već samo pregledati. To je jedno od ograničenja.

Slika 12.22 Izgled stranice za pristup podacima u design view

4. Kada smo sva polja prebacili na stranicu i napisali naslov možemo i da


sačuvamo dokument. Izaberite opciju File > Save da biste je snimili na
disk. Dodamo joj ime, kod nas Projekti i snimimo HTML stranicu u isti
direktorijum u kome se nalazi prateća baza podataka.

5. Stranicu ponovo otvorimo i izaberemo opciju View > Page View da


bismo videli kako stranica izgleda (slika 12.23). Podaci bi trebalo da
mogu da se ažuriraju.

172 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

Slika 12.23 Izgled stranice za pristup podacima u page view

6. Otvorimo ponovo stranicu PROJEKTI u prikazu Design da bismo dodali


podatke o radnicima angažovanim na projektima. U prozoru Field List
pronađemo stavku PROJEKAT i otvorimo njenu podstavku Related
Tables. Dobićemo tabelu UCESCE, iz koje na stranicu prevučemo po-
lje IDBR. Kad prevučemo polje IDBR pojavljuje se dijalog Layout
Wizard (kao na slici 12.24.), i čekiramo opciju Columnar, za prikaz
podataka na stranici. Zatim prevlačimo polje FUNKCIJA iz tabele
UCESCE, i polje IME iz tabele RADNIK. Na ovaj način kontrola se po-
mera na tabelu UCESCE, što se i vidi u Header delu i delu za navigaci-
ju.

7. Kao što smo videli, zapisi o radnicima angažovanim na projektima se


pojavljuju pojedinačno. Međutim, možemo omogućiti da se na osnovu
izabranog broja projekta prikažu samo radnici koji su angažovani na
tom projektu. To možemo da uradimo tako što ćemo postaviti listu ili
padajuću listu, i da taj kontrolni objekat upotrebimo za filtriranje zapisa.
U Accessu se taj kontrolni obejekat naziva kontrolni objekat za filtrira-
nje grupe (group filter control). Kliknućemo desnim tasterom miša na
tekst polje BRPROJ, i izabrati opciju Group Filter Control (slika
12.25). Nakon toga stranica će u page view izgledati kao na slici 12.26.
U ovom podmeniju ima još bitnih stavki kao što su mogućnost postav-
ljanja zaglavlja (Caption Selection), grupisanje po nekom polju (Gro-
up Filter Control i Group Filter Field) i postavljanje trake za navigaci-

Sistem za upravljanje bazama podataka 173


MS Access

ju (Record Navigation Section) koju u okviru njenog Properties-a u


kartici Other možemo postavljati ili uklanjati komandnu dugmad po že-
lji.

Slika 12.24 Izbor opcije u Layout Wizardu

Slika 12.25 Izbor opcije Group Filter Control

174 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

Slika 12.26 Izgled stranice za pristup podacima u page view nakon izabrane opcije
Group Filter Control

Rad sa kontrolnim objektima u stranicama za


pristup podacima
Da bi se pravile stranice za pristup podacima ili menjale stranice koje su
napravljene korišćenjem čarobnjaka, moramo znati kako da koristimo
kontrolne objekte u dizajneru. Iako standardni kontrolni objekti koji se
postavljaju na stranicu za pristup podacima liče na Access-ove kontrolne
objekte, oni su potpuno drugačiji.
Načini postavljanja kontrolnih objekata na stranicu za pristup
podacima donekle se razlikuju, u zavisnosti od toga da li na stranicu
postavljamo vezani ili nevezani kontrolni objekat.
Ako želimo na stranicu za pristup podacima da postavimo nevezani
kontrolni objekat, u kutiji sa alatkama izaberemo vrstu kontrolnog objekta
koji nam je potreban, i prevučemo ga da bi ga smestili na mrežu na stranici.
Ovaj postupak je isti kao i kod postavljanja Access-ovih kontrolnih objekata u
obrazac ili izveštaj.
Kada na stranicu za pristup podacima postavljamo vezani kontrolni
objekat, imamo više mogućnosti. Svaka novootvorena stranica za pristup
podacima nije vezana, kao što je ranije rečeno dokle god se na nju ne
postavi neki vezani kontrolni objekat. Sve dok na nju ne postavimo prvi
vezani kontrolni objekat, Access ne podešava vrednost odgovarajućeg

Sistem za upravljanje bazama podataka 175


MS Access

objekta DataSourceControl, koji stranicu povezuje sa njenim izvorom


podataka. DataSourceControl je deo ActiveX kontrolnih objekata iz grupe
Office Web Components, koja se dobija uz Office 2000. Da bismo postavili
vezani kontrolni objekat na stranicu za pristup podacima prvo otvorimo Field
List. U prozoru Field List pritisnemo desnim tasterom miša na ime tabele.
Prevučemo tabelu u prostor sa mrežom na stranici. Access daje podmeni sa
dve stavke: Individual Controls i Pivot Table List. Ako izaberemo Pivot Table
List dobićemo tabelarni prikaz koji ćemo moći samo da čitamo. Ako
izaberemo opciju Individual Controls, Access slaže polja tabele u dva
stubca.
Postavljanje vezanih kontrolnih objekata iz palete sa alatkama skoro je
isto kao i prethodni postupak. Pritisnemo mišem na bilo koje od kontrolnih
objekata: Bound HTML,Text box, Scrolling Text, Frame, Option Button,
Check Box, Dropdown List, List Box, Bound Hiperlink ili Image. Zatim, u
prozoru Field List pritisnemo i prevučemo polje u prostor mreže na strani.
Access pravi kontrolni objekat vrste koju smo izabrali, vezan za izabrano
polje tabele (slika 12.27).

Slika 12.27 Dodavanje vezanih kontrolnih objekata na stranicu

Kontrolni objekti Bound HTML i TextBox – Kontrolni objekat Bound


HTML prikazuje vizuelizovani HTML tekst i može se povezati sa nekim od
polja baze podataka. Ovaj kontrolni objekat obezbeđuje najpovoljniju metodu
za prikazivanje teksta na stranicama za pristup podacima pošto manje opte-
rećuje sistem od objekta TextBox. Njegov sadržaj je samo dostupan za čita-
nje. Ako na svojoj stranici želimo omogućiti i ažuriranje podataka, mora se
koristiti objekat TextBox. On omogućava i ažuriranje i prikazivanje teksta, ali
se na ekranu sporije pojavljuje i troši više resursa računara.

176 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

Kontrolni objekat Scrolling Text (Marquee) – Kontrolni objekat Scrol-


ling Text (Marquee) omogućava prikazivanje teksta u više redova sa pome-
ranjem sadržaja. Podešavanjem vrednosti svojstava kontrolnih objekata mo-
že se odrediti tekst, smer, broj ponavljanja i brzinu pomeranja.

Kontrolni objekti Frame i Option Button – Kontrolni objekat Frame


omogućava da izaberemo jednu od opcija iz grupe dugmadi za opcije. Za
razliku od Access-ovog kontrolnog objekta Option Group, kontrolni objekat
Frame stranice za pristup podacima može da sadrži samo dugmad za opci-
je. Kao i u Access-u, na stranicu prvo treba da postavimo kontrolni objekat
Frame, a tek zatim dugmad za opcije u taj okvir. Pošto na stranicu
postavimo vezani objekat tipa Frame, zatim i postavimo unutar potreban broj
kontrolnih objekata tipa Option Button.

Kontrolni objekti List Box i Combo Box – Obične liste i padajuće liste
na stranicama za pristup podacima funkcionišu na isti način kao i vezane
liste i padajuće liste u Access-u. U praksi mnoge specifične funkcije Access-
a neće raditi na stranicama za pristup podacima. Kada se koristi vezani
kontrolni objekti tipa Combo Box, uvek treba imati na umu da prilikom
poređenja sa izvornim podacima pravi razliku između velikih i malih slova.
Bitna svojstva Combo Box i List Box kontrolnih objekata koje treba podesiti
pri povezivanju su:
• ControlSource – Polje, izabrano među raspoloživim poljima izvora
podataka za stranicu za pristup podacima, u koje izabranu vrednost
treba upisati ili iz koga je treba učitati.
• ListRowSource – Izvor podataka za listu. Zadaje se vrednost ovog
svojstva pre bilo kog svojstva tipa List.
• ListDisplayField – Polje iz izvora podataka za listu koje se prikazuje
na listi.
• ListBoundField – Polje iz izvora podataka za listu koje se upisuje i
čita iz izvora podataka koji je vezan za listu.
Kontrolni objekat Hyperlink - Kontrolni objekat Hyperlink omogućava
da postavimo vezu koja korisnika vodi do neke druge stranice, do
obeleživača na stranici, ili mu omogućava da pošalje poruku elektronskom
poštom. Kada na stranicu postavimo kontrolni objekat tipa Hyperlink, Access
prikazuje okvir za dijalog koji omogućava da izaberete odredište veze.

Kontrolni objekat Bound Hyperlink – Slično kontrolnom objektu


Hyperlink i kontrolni objekat Bound Hyperlink omogućava da se korisnik
usmeri na neku drugu stranicu ili lokaciju. Razlika je u tome što ovaj kontrolni
objekat omogućava da njegovom svojstvu Href vrednosti prosleđujete iz
nekog izvora podataka, što omogućava da se za svaki zapis zada druga
veza. Ovde treba voditi računa o podešavanju svojstva ControlSource koje
sadrži polje iz koga se uzimaju vrednosti za hiperveze.

Kontrolni objekat Image/HotSpot Image – Kontrolni objekti Image i


HotSpot Image u suštini predstavljaju isti kontrolni objekat. Oni omogućavaju

Sistem za upravljanje bazama podataka 177


MS Access

da na stranici za pristup podacima prikazujemo grafičke objekte. Razlika


između njih je u tome što kontrolni objekat HotSpot Image nudi aktivnu
hipervezu koja, ako se pritisne, vodi na neku drugu lokaciju. Kontrolni ob-
jekat Image može da bude povezan, a objekat HotSpot Image ne može.

PRIMER 4: Kreirati stranicu za pristup podacima za pregled i


ažuriranje podataka o radnicima u preduzeću, ali tako da
se pored podataka o radniku prikazuje i njegova slika.

Povezivanje kontrolnog objekta Image sa podacima iz tabele je sledeći:


1. Dodaćemo novo tekstualno polje u tabeli RADNIK koje će sadržati pu-
tanju2 do grafičkih objekata koji se prikazuju na stranici (u našem slu-
čaju slika radnika, koja se prethodno svede na odgovarajuću veličinu).
Otvorićemo karticu Tables u glavnom prozoru Database. Zatim ćemo
otvoriti tabelu RADNIK i dodati novo polje slika, tipa Text, dužine 100.
Sačuvati tabelu. Nakon toga, otvorimo tabelu režimu editovanja (Data-
sheet View) i u polje slika unesemo putanju na kojoj se nalazi slika.
2. Zatim ćemo napraviti stranicu koja prikazuje podatke o radnicima
korišćenjem Wizarda.
3. Pošto smo kreirali i sačuvali stranicu, izabraćemo iz palete alata tool-
box alatku Image i prevučemo je na stranicu.
4. Nakon toga u Properties objekta Image izaberemo karticu Data, i iza-
beremo iz padajuće liste ControlSource polje u kome se nalazi adresa
tj. lokacija slike (.JPG), slika 12.28. Tako ćemo dobiti kontrolni objekat
Image, povezan sa adresama iz polja slika u tabeli RADNIK. Konačan
izgled stranice vidimo na slici 12.29.

Kontrolni objekat RecordNavigationControl – Traka za navigaciju ko-


ju Access postavlja na svaku stranicu za pristup podacima, u stvari je
ActiveX kontrolni objekat iz grupe Office Web komponente. Ovaj kontrolni
objekat radi u sprezi sa kontrolnim objektom DataSource koji prikazuje
podatke na stranici za pristup podacima. Pored mnogih svojstava traka za
navigaciju može da pokaže: Dugme za brisanje zapisa, Dugme za filtriranje
po zadatoj vrednosti, Dugme za prvi zapis, Dugme za pomoć (Help), Labela
sa natpisom, Dugme za zadnji zapis, Dugme za novi zapis, Dugme za
sledeći zapis, Dugme za prethodni zapis, Dugme za pamćenje zapisa
(Save), Dugme za sortiranje od A do Z, Dugme za sortiranje od Z do A,
Dugme za poništavanje akcije (Undo) i podešavanje metode za određivanje
da li je neko dugme trenutno dostupno.

2
Stranica za pristup podacima traži grafičke objekte u istom direktorijumu u kome se i sama nalazi, osim
kada zadamo punu putanju do objekta.

178 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

Slika 12.28 Izbor izvora slike na stranici za pristup podacima

Slika 12.29 Izgled stranice za pristup podacima sa slikom koja je vezana za


odgovarajući zapis u tabeli

Sistem za upravljanje bazama podataka 179


MS Access

Distribucija podataka korišćenjem stranica za pristup


podacima
Ako se u aplikacijama baza podataka koriste stranice za pristup
podacima, mora se voditi računa gde se one nalaze. Takođe tokom
implementacije aplikacija često se dolazi u situaciju da se stranice
premeštaju sa diska na disk ili iz direktorijuma u direktorijum, kao i da se
neke stranice brišu. Ove na prvi pogled proste operacije imaju složene
posledice, zbog nevidljivih veza (apsolutnih adresa) Access-ovih stranice za
pristup podacima i HTML datoteke.

Kao i svaki drugi Access-ov objekat i stranicu za pristup podacima


možemo da uvezemo iz druge baze podataka ili projekta. Prilikom uvoza
stranice za pristup podacima ne uvozimo samo Access-ov objekat, već tom
prilikom uspostavljamo vezu sa spoljnom HTM datotekom. Pošto izaberemo
stranicu za pristup podacima koju ćemo uvesi iz spoljne baze podataka ili
projekta, Access traži da se zada ime HTM datoteke. To znači da pravi
kopiju postojeće HTM datoteke kojoj treba da se da novo ime.

U prozoru baze podataka u koju se uvozi stranica za pristup podacima


izabere se opcija Insert > Page. U okviru za dijalog New Data Access Page
(slika 12.30.) izaberemo opciju Existing Web Page. Zatim se u okviru za
dijalog, Locate Web Page, izabere odgovarajuća HTM datoteka. Access će
otvoriti stranicu u prikazu Design. Ako se odluči da se doda projektu, zatvori
se i snimi izmena na disk.

Slika 12.30 Izgled dijaloga za kreiranje stranice za pristup podacima korišćenjem


postojeće Web stranice

Kada se iz prozora Database briše stranica za pristup podacima, ne


briše se samo prost Access-ov objekat već objekat koji sadrži prečicu do
spoljne datoteke koja se nalazi na lokalnom disku ili na Web Serveru. Ac-

180 Sistem za upravljanje bazama podataka


Povezivanje sa drugim aplikacijama

cess u tom trenutku ne zna da li treba da briše samo prečicu ili i prečicu i
spoljnu datoteku. Kada se u Accesu briše stranica za pristup podacima, prvo
se pojavljuje okvir za dijalog u kome se traži da potvrdimo brisanje prečice.
Zatim se pojavljuje okvir za dijalog u kome treba da se potvrdi da se uz Ac-
cess-ovu prečicu želi da izbriše i spoljna datoteka. Access se ponaša na isti
način kada su stranice za pristup podacima smeštene na Web Serveru.

Pošto rad sa stranicama za pristup podacima podrazumeva i rad sa


spoljnim datotekama u odnosu na MDB i ADP datoteke, mora da se vodi
strogo računa o apsolutnim putanjama koje su upisane i u prečici koja se
nalazi u bazi podataka i u HTML datoteci koja sadrži samu stranicu za pris-
tup podacima. Ako se raskine bilo koja od tih veza, na početku aplikacije će
morati da se ponovo uspostavi (bilo ručno, što je veoma teško ili korišćenjem
za te svrhe napravljenog programa).

Ako treba da se promeni izvor podataka, mora da se obezbedi mehani-


zam za otvaranje HTML datoteke kao tekstualne datoteke (recimo program
Notepad), pronalaženje odgovarajuće stavke unutar tekstualne datoteke
(Data Source), unošenje izmene i ponovo snimanje izmena na disk.

Osnovna prednost stranica za pristup podacima (DAP) je nihova jednos-


tavnost i dobra paleta alata. Tako kreirana stranica može da se doradi i u
drugim alatima za Web dizajn. Svaka stranica za pristup podacima je kreira-
la svoju vezanu html stranicu preko koje je omogućen pregled njenog sadr-
žaja putem Interneta.

Internet, ili mreža svih mreža, kao globalna mreža sa preko 160 miliona
povezanih računara od izuzetnog je značaja za moderno poslovanje. U br-
zom razvoju su novi oblici poslovanja preko Interneta, kao što su E-
Commerce, E-Buisiness, E-Marketing itd. Tako da korišćenje Access- ovih
stranica za pristup podacima olakšava prilagođavanje preduzeća novim ten-
dencijama u vođenju poslovanja.

Sistem za upravljanje bazama podataka 181


MS Access

182 Sistem za upravljanje bazama podataka


13. Projektovanje relacionog
modela
Prva faza u projektovanju baze podataka kao osnove za izradu aplikacije
jeste definisanje relacionog modela podataka. Do njega se može doći različi-
tim postupcima projektovanja, ali danas se najčešće koriste: model objekti-
veze (MOV, E-R model) i postupak normalizacije. Iako su postupci vrlo razli-
čiti u svojoj osnovi i prilazu, ipak u većini slučajeva kao rezultat dobijaju se
vrlo slični relacioni modeli.
Projektovanjem informacionih sistema (IS) treba da se poboljša ili izmeni
postojeći sistem kako bi se povećala njegova efikasnost. Da bi se to ostvari-
lo mora se potpuno upoznati i razumeti realni sistem i pronaći način da se
računar upotrebi što je moguće efikasnije. Analiza sistema upravo predstav-
lja proces sakupljanja i interpretacije podataka, dijagnosticiranje problema i
korišćenje tih podataka za unapređenje realnog sistema. Taj posao obavlja
sistem analitičar. Često analiza sistema mora da obuhvati i procenu razvoja
sistema, tj. da predvidi koje bi se sve situacije mogle pojaviti u budućnosti.
Sistem analiza ne sme da se pretvori u određivanje šta računar može da
radi, a šta ne može. Takođe, modifikacija sistema treba da bude rezultat, a
ne cilj analize. Ne treba po svaku cenu uvoditi atraktivna rešenja koja ne do-
prinose efektivnosti sistema.
Proces projektovanja IS može se najgrublje podeliti na dve faze:
1. analizu realnog sistema (preliminarna i detaljna istraživanja), i
2. projektovanje baze podataka i izrada aplikacija.
Sam proces projektovanja IS počinje kada se utvrdi da postojeći infor-
macioni i poslovni sistemi moraju da se poboljšaju, jer ne zadovoljavaju pos-
tojeće zahteve.
Preliminarna istraživanja sastoje se od nekoliko faza:
• utvrđivanje projektnih zahteva, koje predstavlja proces koji omo-
gućuje da se ideje korisnika, koje su najčešće nepovezane, nejasne i
nepotpune korektno formulišu,
• analiza izvodivosti zahteva, kojom se dokazuje tehnička, ekonom-
ska i operaciona izvodivost i
• odobravanje zahteva je u stvari procena šta su realno ostvarivi i
najvažniji zahtevi koji se moraju zadovoljiti.
Detaljna istraživanja daju kao rezultat model procesa i model po-
dataka, kao i potvrdu da su neka od ponuđenih rešenja zadovoljavajuća.
Ova faza se obično naziva i logičko projektovanje, za razliku od projektova-
nja baze podataka i izrade aplikacija koje se u literaturi naziva fizičko projek-
tovanje.
MS Access

Model podataka se pomoću odgovarajućeg SUBP implementira u


odgovarajuću bazu podataka, a model procesa se pretvara u izradu od-
ređenih aplikacija.
Jedna od najvećih teškoća koja se postavlja pred analitičara je upozna-
vanje i definisanje oblasti aktivnosti ili delovanja, tj. domena problema i mes-
ta informacionog sistema u njemu. Domen može biti, na primer, knjigovods-
tvo, finansije, pravo, obrazovanje, itd.
Nakon definisanja domena sistem analitičar[1] treba da otkrije i opiše
sve aktivnosti sistema koji se analizira.
Analiza sistema se ne može obaviti ako ne postoji komunikacija analiti-
čara sa klijentima (budućim korisnicima) i ostalim članovima tima koji se ba-
ve analizom i projektovanjem IS.
Metode za analizu upravo treba da postignu da ljudi jednostavno i lako
komuniciraju međusobno. Ukoliko metoda za analizu produkuje ogromne
količine papira, onda je takva metoda veoma loša. Softverski inženjering za-
sniva se na komunikaciji između ljudi, jer ljudi i prouzrokuju i rešavaju prob-
leme. Zahtevi koji se postavljaju pred neki informacioni sistem stalno se me-
njaju. Ta činjenica se mora prihvatiti kao neizbežna i sasvim prirodna. Nemo-
guće je napraviti model sistema koji neće biti podložan promenama i novim
zahtevima. Zbog ovoga analitičar mora svoj model projektovati tako da se
svaka promena može brzo i jednostavno ugraditi, a da to ne dovede do toga
da se ceo posao mora raditi ponovo. Analitičar mora stalno proveravati defi-
niciju domena problema i modela sistema.
Projektni zahtevi se utvrđuju na bazi: intervjua, upitnika, uvidom u doku-
mentaciju koja se koristi u sistemu i posmatranjem.

Izrada relacionog modela normalizacijom


Normalizacija je postupak projektovanja logičke strukture baze podata-
ka. Najopštije rečeno, dobra je ona struktura baze u kojoj je logička redun-
dansa minimalna. Logička redundansa je pojava da se isti podaci nalaze na
više mesta u bazi podataka, pa se time usložnjavaju operacije održavanja.
Tako, na primer, ukoliko se modifikuje neki podatak, operacija modifikacije
mora se ponoviti više puta da bi se izmenili svi primerci, kopije tog podatka u
bazi. To povećava mogućnost da dođe do greške prilikom rada. Osim toga,
potreba za raspoloživom memorijom računara se povećava, a takođe i sma-
njuje brzina obrade.
Na primer, u kadrovskoj službi za svakog radnika postoji karton u kome
se vode sledeći podaci:

[1]
Nažalost, danas vrlo retko sem u velikim softverskim kućama postoji podela posla na administratore,
sistem analitičare i projektante. U malim preduzećima to je vrlo često jedna te ista osoba.

184 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

RADNIK1 (idbr#, ime, kvalif, ruk#, datzap, plata, premija, brod#, naziv, mesto,
brproj#, imeproj, sredstva, trajanje, brsati, funkcija).

Ovi podaci predstavljaju jednu relaciju koja ima niz nedostataka, tj. jav-
ljaju se anomalije u dodavanju, brisanju i ažuriranju podataka u tabeli. Nai-
me, ova relacija sadrži u sebi vezu tipa M:N, jer jedan radnik radi na više
projekata, a na jednom projektu radi više radnika. Dakle preslikavanje id-
br#:brproj# je tipa M:N. Zbog prisustva ovog preslikavanja vrednosti u tabeli
RADNIK nisu atomske (atomarne), odnosno ova relacija nije u prvoj normal-
noj formi (1NF).

Prva normalna forma (1NF)


Relacija je u Prvoj normalnoj formi (1NF) ako su sve vrednosti njenih
atributa atomske.
Relacija RADNIK1 može se normalizovati ako se dekomponuje na dve
relacije:
RADNIK2 (idbr#, ime, kvalif, ruk#, datzap, plata, premija, brod#, naziv, mesto)
RAD_PROJ (idbr#, brproj#, imeproj, sredstva, trajanje, brsati, funkcija).

Pri dekompoziciji mora se zadržati značenje (semantika) polazne


relacije, tj. njihovim prirodnim spajanjem po zajedničkom atributu po-
novo se dobija polazna relacija. U suprotnom bi došlo do gubljenja in-
formacija. U ovom primeru u obe relacije RADNIK2 i RAD_PROJ postoji
atribut idbr# preko koga se spajanjem može dobiti polazna relacija.

Funkcionalne zavisnosti
Definicije Druge, Treće i Boyce-Coddove normalne forme zasnivaju se
na konceptu funkcionalne zavisnosti atributa relacije.
Atribut A je funkcionalno zavisan od atributa B ako i samo ako svakoj
vrednosti atributa B odgovara jedna i samo jedna vrednost atributa A.
U relaciji RADNIK2, postoje sledeće funkcionalne zavisnosti:
• idbr# --> ime
• idbr# --> kvalif
• idbr# --> plata
• idbr# --> ruk#
Atribut A je potpuno funkcionalno zavisan od atributa B ako je funk-
cionalno zavisan od atributa B, a nije funkcionalno zavisan ni od jednog
podskupa atributa B.
Primeri potpune i nepotpune funkcionalne zavisnosti mogu se pokazati
na relaciji RAD_PROJ:

Sistem za upravljanje bazama podataka 185


MS Access

idbr#, brproj# ---> funkcija


idbr# -/-> funkcija
brproj# -/-> funkcija

Atribut funkcija je potpuno funkcionalno zavisan od složenog atributa


Idbr#,brproj#. Ali istovremeno važi i sledeća zavisnost:
idbr#, brproj# ---> imepro
dbr# -/-> imepro
brproj# ---> imepro
Atribut imeproj je nepotpuno funkcionalno zavisan od složenog atributa
idbr#,brproj# jer je funkcionalno zavisan i od njega i od jednog njegovog
dela brproj#. Za atribute idbr# i brproj# kaže se da su trivijalno funkcional-
no zavisni od složenog atributa idbr#,brproj#.
Ako u relaciji R važi za atribute A, B i C:
A ---> B idbr# ---> brod#
B -/-> A brod# -/-> idbr#
B ---> C brod# ---> mesto
A ---> C idbr# ---> mesto
atribut C je tranzitivno funkcionalno zavisan od atributa A.

Druga normalna forma (2NF)


Iako je u prethodnom primeru relacija RAD_PROJ bila u 1NF, postoji
očigledna redundansa podataka jer se podaci o projektu ponavljaju za sva-
kog radnika koji radi na tom projektu, samim tim pri održavanju baze pojavi-
će se sve tri anomalije:
• anomalija pri dodavanju, ne mogu se dodati podaci o nekom proje-
ktu dok nekog radnika ne rasporedimo da radi na njemu (idbr# je
primarni ključ i ne može biti Null),
• anomalija pri brisanju, ako na nekom projektu radi samo jedan rad-
nik pri brisanju podataka o tom radniku gube se svi podaci o tom pro-
jektu,
• anomalija pri izmeni sadržaja (ažuriranju), ako se promeni naziv
nekog projekta tu izmenu treba sprovesti kod svih radnika koji rade
na tom projektu. Da bi se to postiglo mora se proći kroz čitavu relaci-
ju od početka do kraja jer zapisi po pravilu nisu uređeni.
Uzrok redundansi i anomalija u održavanju je nepotpuna funkcionalna
zavisnost atributa imeproj od složenog atributa idbr#,brproj#. Definicija
Druge normalne forme zabranjuje postojanje ovakve zavisnosti:
Relacija je u Drugoj normalnoj formi (2NF) ukoliko je u 1NF, a i svi
njeni neključni atributi su potpuno funkcionalno zavisni od primarnog ključa.
Najgrublje rečeno, relacije koje imaju složeni primarni ključ vrlo verovat-
no nisu u drugoj normalnoj formi. Drugačije rečeno, relacije koje imaju prost
primarni ključ verovatno su u drugoj normalnoj formi.

186 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

Zbog toga i relaciju RAD_PROJ treba razbiti na dve relacije:


UČEŠĆE (idbr#, brproj#, brsati, funkcija) i
PROJEKAT (brproj#, imeproj, sredstva, trajanje).

Pošto je pri dekompoziciji broj kolona (atributa) u svakoj novoj tabeli sve
manji, to je ovakav postupak uvek konačan.

Treća normalna forma (3NF)


Postoje relacije koje su u drugoj normalnoj formi, a ipak imaju sve po-
menute anomalije. Takva je upravo relacija RADNIK2:
RADNIK2 (idbr#, ime, kvalif, ruk#, datzap, plata, premija, brod#, naziv, mesto)

• anomalija pri dodavanju, podatak o novom odeljenju se može do-


dati samo ako postoji radnik koji radi u tom odeljenju,
• anomalija pri brisanju, ako u nekom odeljenju radi samo jedan rad-
nik pri brisanju podataka o tom radniku gube se svi podaci o tom
odeljenju,
• anomalija pri izmeni sadržaja (ažuriranju), ako se promeni mesto u
kome se nalazi odeljenje tu izmenu treba sprovesti kod svih radnika
koji rade u tom odeljenju.
U ovom slučaju uzrok redundanse i anomalija je tranzitivna funkcionalna
zavisnost atributa naziv od atributa idbr#. Definicija Treće normalne forme
zabranjuje postojanje ovakvih funkcionalnih zavisnosti.
Relacija je u Trećoj normalnoj formi (3NF) ako je u 2NF i ako su svi njeni
atributi netranzitivno funkcionalno zavisni od primarnog ključa.
To znači u 3NF se vezama u modelu pridružuju samo njima svojstveni
atributi, tj. atributi koji neposredno opisuju dati entitet i ne sadrže atribute
drugih entiteta. U prethodno opisanoj relaciji RADNIK2 postoje istovremeno
atributi dva entiteta radnika i odeljenja, jer naziv i mesto su atributi odeljenja
a ne radnika.
Zbog toga i relaciju RADNIK2 treba razbiti na dve relacije:
RADNIK (idbr#, ime, kvalif, ruk#, datzap, plata, premija, brod#) i
ODELJENJE (brod#, naziv, mesto).
Ovako dobijene relacije su u Trećoj normalnoj formi.
Iako i relacije koje su u Trećoj normalnoj formi mogu imati neke
anomalije, smatra se da je to dovoljan stepen dekompozicije i da se mo-
že pristupiti implementaciji takvog modela na nekom RSUBP.
U našem primeru preduzeća razlaganjem relacije dobijene na bazi kar-
tona zaposlenog (i normalizacijom) dolazimo do relacionog modela koji se
može implementirati na Accessu, kao što je to već opisano u prethodnim
odeljcima.

Sistem za upravljanje bazama podataka 187


MS Access

Boyce-Coddova normalna forma (BCNF)


Pokazalo se da je u nekim slučajevima potrebno dodati još neke us-
love da bi se izbegle anomalije. Posmatrajmo, na primer, informacioni sistem
neke škole ili fakulteta. Svakako da je od značaja imati informacije o ocena-
ma učenika, ili o položenim ispitima studenata. U informacionom sistemu
postoji relacija Predmet, gde je MLB matični broj studenta a SPredmeta je
šifra predmeta:
Predmet (MLB, SPredmeta, Predmet, Ocena)
postoje sledeće funkcionalne zavisnosti:
MLB,SPredmeta ---> Predmet
MLB,SPredmeta ---> Ocena
SPredmeta ---> Predmet
ako pretpostavimo da postoji i sledeća funkcionalna zavisnost:
Predmet ---> SPredmeta
tada u relaciji Predmet postoje dva ravnopravna složena i preklapajuća
kandidata za ključ: MLB,SPredmeta i MLB,Predmet. Ova relacija je u 3NF,
međutim sve anomalije u ažuriranju i dalje postoje.
Definicija BCNF uklanja te nepreciznosti, a u tom cilju uvodi se pojam
determinante relacije: Determinanta relacije je bilo koji atribut od koga je neki
drugi atribut u relaciji potpuno funkcionalno zavisan.
Relacija je u BCNF ako su sve determinante u relaciji i kandidati za
ključ.
U relaciji Predmet postoje sledeće determinante (D) i kandidati za ključ
(K):
MLB,SPredmeta ---> Predmet,Ocena D K
MLB,Predmet ---> SPredmeta,Ocena D K
Predmet ---> SPredmeta D
SPredmeta ---> Predmet D
sve determinante nisu kandidati za ključ pa relacija nije u BCNF.
Da bi se relacija Predmet dovela u BCNF potrebno je da se de-
komponuje na dve relacije:
Ocena(MLB,SPredmeta,Ocena)
Predmet(SPredmeta,Predmet)
Definicija BCNF je strožija od definicije 2NF i 3NF, tako da ukoliko je re-
lacija u BCNF, onda je i u 2NF i 3NF, ali obrnuto ne važi.

Četvrta normalna forma


Osim funkcionalnih postoje i druge zavisnosti između atributa u relaciji
koje dovode do anomalija u ažuriranju. Jedna od njih je višeznačna zavis-
nost. Na primeru nenormalizovane relacije Program, koja može biti deo IS

188 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

škole ili fakulteta, a koja pokazuje koje predmete predaje koji nastavnik i koju
literaturu pri tome koristi:
Predmet Nastavnik Knjiga (autor)
matematika Milan Peric
Zoran Vasic
Jovan
istorija Nikola Jankovic
Petrovic

se mogu videti višeznačne zavisnosti.


Očigledno je da se relacija mora prvo dovesti u 1NF:
Predmet Nastavnik Knjiga(autor)
matematika Milan Peric
matematika Milan Vasic
matematika Zoran Peric
matematika Zoran Vasic
matematika Jovan Peric
matematika Jovan Vasic
istorija Nikola
Janko-
vic istorija Nikola Petrovic ili u skraćenom obliku (intenzija):
Program (Predmet,Nastavnik,Knjiga)
Ova relacija je sada i u BCNF, međutim postoji redundansa podataka, a
takođe i anomalije u ažuriranju. Uzrok je postojanje višeznačnih relacija iz-
među atributa u relaciji. U relaciji Program postoje sledeće višeznačne zavi-
snosti:
Predmet -->--> Nastavnik
Predmet -->--> Knjiga
Da bi se ovo izbeglo potrebno je da se relacija dekomponuje na dve no-
ve relacije:
Raspored (Predmet,Nastavnik)

Knjiga (Predmet,Knjiga)

Sistem za upravljanje bazama podataka 189


MS Access

Relacija je u Četvrtoj normalnoj formi (4NF): ako u njoj nisu date dve
(ili više) nezavisnih višeznačnih činjenica.

Peta normalna forma


Višeznačne zavisnosti predstavljaju uopštenje funkcionalnih za-
visnosti. Opštija forma zavisnosti, koja u sebi uključuje prethodne dve
zavisnosti, je zavisnost spajanja. U prethodnom objašnjenju višeznač-
ne zavisnosti, pretpostavljeno je da nije važno koji nastavnik koristi
koju knjigu. Ukoliko ova veza postoji, poznato je koji nastavnik koristi
koju knjigu, dekomponovanjem relacije Program na relacije Raspored
i Knjiga gubi se informacija o tome. Zbog toga je dekompoziciju treba-
lo izvršiti na tri relacije, dve prethodne i treću:
Nastavnik-Knjiga (Nastavnik,Knjiga)

Relacija je u Petoj normalnoj formi (5NF) ako se njen informacioni


sadržaj ne može rekonstruisati iz relacija nižeg stepena koje imaju
različite ključeve.
Normalna??forma??domena??i??ključeva?? DK??NF??
Relacija je u DK/NF ako je svako ograničenje na vrednosti njenih atribu-
ta posledica definicije ključeva i domena.
Relacija Predmet:
Predmet (MLB,SPredmeta,Predmet,Ocena)
nije u DK/NF jer je njome definisano da jedan predmet ima jedan naziv,
a to nije posledica definicije ključa ove relacije.
Ukoliko je neka relacija u DK/NF onda je ona i u svim drugim nor-
malnim formama.

Model objekti-veze
Ovaj model podataka u praksi se najviše koristi i postoji više verzija ovog
modela. Model podataka predstavlja sredstvo pomoću kojeg se prikazuje
povezanost podataka u nekom realnom sistemu i njihova interpretacija.
Svaki model podataka mora da poseduje:
• strukturu podataka - preko koje se predstavljaju statičke karakteristi-
ke sistema,
• ograničenja - logička ograničenja na podatke (pravila integriteta),
• operacije nad podacima.

190 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

Struktura modela objekti-veze


Struktura modela objekti-veze predstavlja se dijagramima objekti- -veze
(DOV). Simboli koji se koriste mogu se naći u udžbenicima i stručnoj literatu-
ri.
U modelu objekti-veze sistem se opisuje kao skup entiteta (objekata) i
njihovih veza. Pojedinačni entiteti u sistemu se klasifikuju u tipove entiteta.
Tip entiteta je opšti predstavnik grupe (klase) fizičkih objekata, a svaki poje-
dinačni entitet predstavlja jedno pojavljivanje (primerak) datog tipa. Na pri-
mer tip entiteta je RADNIK, a jedno pojavljivanje tog tipa su Slobo, Petar,
itd. Radi pojednostavljenja pod pojmom entitet u daljem tekstu podrazume-
vaćemo tip entiteta, a pod pojmom objekat jedan pojedinačni primerak enti-
teta.
Predstavljanje nekog konkretnog entiteta njegovim tipom naziva se ge-
neralizacija, a obrnuti postupak navođenja konkretnog entiteta naziva se
specijalizacija.
Veze
Veze u modelu opisuju način povezivanja (uzajamna dejstva) entiteta.
Postupak generalizacije, odnosno specijalizacije može se primeniti i na veze.
Na taj način dolazimo do pojmova tipa veze i pojavljivanje veze datog tipa.
Na primer, veza: <Jovan, komercijala>, je jedno pojavljivanje tipa veze
RADI koja opisuje gde koji radnik radi (u kom odeljenju).
Iako mogu postojati veze između objekata, primeraka jednog entiteta
(unarne), kao i veze između više entiteta, mi ćemo posmatrati detaljnije sa-
mo binarne veze, veze između dva tipa entiteta. Svaki tip veze između dva
tipa entiteta E1 i E2 definiše dva preslikavanja. Preslikavanje skupa pojavlji-
vanja E1 u skup pojavljivanja E2 definiše dva preslikavanja, preslikavanje
skupa pojavljivanja E1 u skup pojavljivanja E2 i inverzno preslikavanje sa
skupa E2 u skup E1. Zbog toga se svakoj vezi dodeljuju dva imena koja od-
govaraju ovim preslikavanjima. Na primer, naziv RADI odgovara preslikava-
nju:
RADNIK ----> ODELJENJE, (radnik radi u odeljenju u preduzeću)

a naziv ZAPOŠLJAVA odgovara preslikavanju:


ODELJENJE ----> RADNIK, (odeljenje u preduzeću zapošljava radnike)

Veze se mogu uspostavljati i između pojavljivanja istog tipa entiteta. U


svakom preslikavanju između pojavljivanja istog tipa entiteta, tipu entiteta na
levoj i desnoj strani preslikavanja treba definisati ulogu entiteta. U ovakvom
preslikavanju uloga se definiše njegovim novim (proširenim) imenom. Na
primer, preslikavanje SADRŽI je preslikavanje koje za jedan određeni proiz-
vod daje skup njemu “podređenih” proizvoda - njegovih sastavnih delova, a

Sistem za upravljanje bazama podataka 191


MS Access

preslikavanje UGRAĐEN je preslikavanje koje za jedan podređeni proizvod


daje skup njemu “nadređenih” proizvoda, u koje je on ugrađen.
Između dva entiteta moguće je uspostaviti više različitih tipova veza. Je-
dna od bitnih karakteristika veza između entiteta je kardinalnost preslikava-
nja koje je čine. Kardinalnost preslikavanja E1 i E2 definiše se uređenim pa-
rom (DG,GG) gde DG (donja granica) predstavlja najmanji mogući, a GG
(gornja granica) najveći mogući broj pojavljivanja tipa entiteta E2 za jedno
pojavljivanje tipa entiteta E1. Donja granica može imati vrednost 0, 1 ili m
(ceo broj veći od 1), a gornja granica može imati vrednost 1 ili m. Očigledno
je da u jednom preslikavanju mora biti zadovoljeno:
DG ≤ GG
Na primer, u preslikavanju RADI jednom pojavljivanju entiteta RADNIK
odgovara najmanje jedno i najviše jedno pojavljivanje tipa ODELJENJE, što
je prirodno, jer jedan radnik radi u jednom odeljenju.

Atribut i domen
Entitet u sistemu opisuje se preko svojih svojstava, odnosno atributa. Na
primer, atributi entiteta RADNIK su:
• IDBR#
• IME
• PLATA
Svaki atribut u određenom trenutku vremena ima neku vrednost iz skupa
mogućih vrednosti. Ovi skupovi nazivaju se domenima.
Formalno se atribut entiteta može definisati kao preslikavanje iz skupa
entiteta datog tipa u skup vrednosti (domen). Na primer, atribut IME može se
prikazati na sledeći način:
IME: RADNIK IMENA
Ako je kardinalnost atributa (DG=1, GG=1) onda se takav atribut naziva
jednoznačni atribut entiteta. Ako i inverzno preslikavanje jednoznačnog atri-
buta takođe ima kardinalnost (DG=1, GG=1) tada se takav atribut naziva
identifikator entiteta, jer jedno pojavljivanje takvog atributa jedinstveno od-
ređuje jedno pojavljivanje entiteta u skupu pojavljivanja entiteta datog tipa. U
prethodnom primeru atribut IDBR# je identifikator entiteta RADNIK.
Ako je kardinalnost atributa (DG=1, GG=m) onda se takav atribut naziva
višeznačni atribut entiteta.
Ne dozvoljava se da donja granica kardinalnosti preslikavanja atributa
ima vrednost DG=0. To bi značilo da svojstvo entiteta koje atribut predstavlja
nije primenljivo za sva pojavljivanja entiteta datog tipa. Koncept podtipa
omogućuje da se u poseban tip entiteta izdvoje ona pojavljivanja entiteta na
koja je primenljivo dato svojstvo.

192 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

Veza i atribut
Formalno gledano ne postoji razlika između koncepta veze i koncepta
atributa, jer i jedan i drugi predstavljaju preslikavanje dva skupa pojavljiva-
nja. Zbog toga u praksi često dolazi do nedoumice da li koristiti vezu ili atri-
but za prikazivanje nekog svojstva entiteta. Ovo se razrešava na sledeći na-
čin :
• ukoliko ne postoji potreba za posebnim identifikovanjem svakog pojav-
ljivanja objekta u skupu i ako su ta pojavljivanja vrednosti ona koja
predstavljaju bazne tipove podataka (celobrojni, realni, karakteri, itd.),
onda skup takvih objekata treba tretirati kao domen:
• ako ne postoji potreba da se neki skup objekata opisuje atributima
tada ga treba predstaviti kao domen ;

Slabi entitet
Slabi entitet je onaj entitet čije postojanje zavisi od nekog drugog entiteta
(egzistencijalna zavisnost) i u sistemu ne može da se identifikuje nezavisno
od tog entiteta (identifikaciona zavisnost).
Kako u više različitih gradova mogu da postoje ulice sa istim imenima,
NAZIV-ULICE ne identifikuje jednu ulicu globalno, već samo u okviru grada.
Identifikaciona zavisnost podrazumeva istovremeno i egzistencijalnu zavis-
nost u smislu da neki identifikaciono zavisan entitet ne može postojati u bazi
podataka ako konkretno pojavljivanje entiteta koji ga identifikuje nije u bazi.
To znači da ako se iz baze podataka izbaci <nadređeni> entitet, onda se au-
tomatski izbacuju i svi od njega identifikaciono zavisni entiteti.

Apstrakcija
Apstrakcija (apstrahovanje podataka) je kontrolisano uključivanje detalja
u model sistema, izostavljanje (sakrivanje) detalja u pojedinim fazama izrade
modela i predstavljanje samo opštih i zajedničkih osobina entiteta. U mode-
lima podataka koriste se dve vrste apstakcije:
• generalizacija, i
• agregacija.

Generalizacija i podtipovi XE "podtipovi"


Koncept generalizacije je već korišćen za predstavljanje skupa sličnih
entiteta tipom entiteta (skup radnika, tipom entiteta RADNIK). Generalizacija
je apstrakcija u kojoj se skup različitih objekata tretira kao generički objekat
(tip). Specijalizacija je inverzni postupak u kome se za neki tip navode nje-
gova moguća pojavljivanja. Generalizacija se ne koristi samo za predstavlja-
nje skupa istorodnih entiteta preko njihovog tipa, već se može i skup tipova
predstaviti novim generičkim tipom. Tako na primer, skup tipova RADNIK,
UČENIK, PENZIONER, DETE može se predstaviti generičkim tipom

Sistem za upravljanje bazama podataka 193


MS Access

GRAĐANIN. Isto tako se tip RADNIK može specijalizovati u podtipove


VOZAČ, INŽENJER, LEKAR itd.
U modelu entiteti-veze uspostavljaju se specifične veze između tipa i
njegovih podtipova. Takođe, ove veze se označavaju slovom S-subtype.
U generalizacionoj hijerarhiji entiteta važe sledeća pravila :
• podtipovi nasleđuju sve atribute svoga nadtipa,
• podtipovi nasleđuju sve operacije svoga nadtipa.
Očigledno je da se definisanjem podtipova nekog tipa razrešava prob-
lem atributa koji nisu primenljive osobine svih entiteta u skupu entiteta jed-
nog tipa, na taj način što se definiše podtip kao skup pojavljivanja na koje je
dato svojstvo primenljivo. Podtip tada ima samo to svojstvo (ili svojstva) kao
atribut, a ostale atribute nasleđuje od nadtipa. U ovom primeru podtipovi ra-
dnika imaju svoje posebne osobine: lekar ima specijalnost, vozač ima kate-
goriju, a inženjer oblast.

Agregacija i detaljisanje
Agregacija je apstrakcija u kojoj se skup entiteta i njihovih veza tretira
kao jedan entitet na višem nivou apstrakcije. Agregacija se u modelu entiteti-
veze prikazuje kao mešovit tip entitet-veza. Postupak inverzan agregaciji
naziva se postepeno detaljisanje. Agregirani entitet se razlikuje od ostalih
entiteta po tome što nema svoj sopstveni identifikator, već ga identifikuju en-
titeti koje on agregira. Ovakav entitet se u modelu tretira kao i bilo koji drugi
entitet, može da ima svoje atribute i/ili da bude u vezi sa drugim entitetima.
Entiteti PROIZVOD i KUPAC agregiraju se u entitet POŠILJKA. Isto ta-
ko, agregirani entitet POŠILJKA vezuje se sa entitetom KAMION i zajedno
sa entitetom RADNIK formira agregirani entitet RUKUJE.

Prevođenje objektno-orijentisanog modela u relacioni


model
Objektno-orijentisani model je semantički bogat model i, za razliku od re-
lacionog modela, prikazuje kompleksne odnose između različitih objekata.
Obzirom da se gotovo svi komercijalni softveri za upravljanje bazama poda-
taka zasnivaju na relacionom modelu, mora se ovakav model prevesti na
relacioni model. Kako bi se sačuvale sve informacije koje sadrži objektno-
orijentisani model, prilikom prevođenja iz jednog u drugi model potrebno je
uraditi sledeće:
• definisanje tabela,
• definisanje statičkih pravila integriteta, i
• definisanje dinamičkih pravila integriteta.

194 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

Definisanje tabela
Postoji više postupaka za prevođenje objektno-orijentisanog modela u
relacioni model. Ovde je dat jedan postupak koji se može iskazati sledećim
pravilima:
1. svaki objekat sa modela postaje relacija (tabela). Atributi objekta su atri-
buti relacije, ime objekta postaje ime relacije, a identifikator objekta pos-
taje ključ relacije,
2. svaki slabi objekat postaje relacija(tabela). Identifikator nadređenog ob-
jekta postaje jedan od atributa relacije koja odgovara slabom objektu.
Ako je zavisnost identifikaciona onda je ključ nadređenog objekta deo
ključa u relaciji slabog objekta,
3. objekat koji je podtip postaje relacija. Atributi ove relacije su atributi pod-
tipa, a ključ relacije je identifikator nadtipa:
STUDENT(Broj_indeksa#,......)
VANREDAN(Broj_indeksa#, Zanimanje, Preduzece)

4. Veza sa kardinalnošću (1,1):(1,M) ne postaje posebna relacija već njeni


atributi i identifikator objekta sa strane (1,m) postaju atributi relacije ko-
ja odgovara objektu sa strane (1,1):
ODELJENJE (brod#, naziv, ...), RADNIK(idbr#, , Ime, ..., brod#)

Jedan radnik radi u jednom odeljenju, u jednom odeljenju radi više radnika.
5. Veza sa kardinalnošću (0,1):(1,M) postaje posebna relacija. Atributi ove
relacije su atributi te veze i identifikatori objekata koji su u vezi. Ključ re-
lacije je identifikator objekta sa strane (0,1):

PROJEKT(brproj#, imeproj, ...), RADNIK(idbr#, Ime, ...), UČEŠĆE(idbr#, brproj,


brsati)
Jedan radnik radi najviše na jednom projektu, a na jednom projektu radi više
radnika.
6. Veza sa kardinalnošću M:M, postaje posebna relacija. Atributi ove rela-
cije su atributi te veze i identifikatori objekata koji su u vezi. Ključ relaci-
je je složen i čine ga identifikatori objekata koji su u vezi:

PROJEKT(brproj#, imeproj, ...), RADNIK(idbr#, Ime, ...),


UČEŠĆE(idbr#,brproj#, brsati, ...)
Jedan radnik radi na više projekata, a na jednom projektu radi više radnika.
7. Veze sa kardinalnošću (1,1):(1,1) i objekti koji je čine postaju jedna rela-
cija čiji su atributi svi atributi jednog i drugog objekta i atributi veze. Kan-
didati za ključ u ovoj relaciji su identifikatori objekata koji su u vezi:

Sistem za upravljanje bazama podataka 195


MS Access

RADNIK(idbr#, ime, plata, ..., brproj, imeproj, trajanje, ... )


Jedan radnik radi na jednom projektu, a na jednom projektu radi jedan rad-
nik.
8. Veze sa kardinalnošću (0,1):(1,1) i dva objekta koji je čine daju dve rela-
cije, po jednu za svaki objekat, s tim što identifikator objekta sa strane
(0,1) postaje atribut relacije koja odgovara objektu sa strane (1,1):

PROJEKAT(brproj#, imeproj,...,idbr, funkcija, ...), RADNIK(idbr#, ime, ...)


Jedan radnik radi najviše na jednom projektu, na jednom projektu radi jedan
radnik.
9. Veza sa kardinalnošću (0,1):(0,1) postaje posebna relacija. Atributi ove
relacije su atributi odgovarajuće veze i identifikatori objekata koji su u
vezi, a ključ relacije je jedan od identifikatora objekta:

PROJEKAT (brproj#, imeproj, ...), RADNIK(idbr#, Ime, ...), UČEŠĆE (brp-


roj#,idbr#, brsati)
Jedan radnik radi najviše na jednom projektu, a na jednom projektu radi naj-
više jedan radnik.

Definisanje i specifikacija integriteta relacionog modela


Razlikuju se dve vrste pravila integriteta:
1. inherentna pravila integriteta, i
2. eksplicitna pravila integriteta.
Inherentna pravila integriteta ugrađena su u samu strukturu modela po-
dataka (očigledna su iz strukture modela podataka) i nije ih potrebno eks-
plicitno iskazivati. Eksplicitna pravila integriteta nisu predstavljena strukturom
modela podataka već se moraju eksplicitno iskazati. Na primer atribut Se-
mestar objekta STUDENT može da ima vrednosti iz skupa celih brojeva iz-
među 1 i 9, ili jedan UČENIK može da ima najviše dva RODITELJA. Eksplic-
itna pravila integriteta iskazuju se statičkim i dinamičkim pravilima.
Na sledećem primeru će biti prikazana specifikacija navedenih pravila:
PROJEKAT(brproj#, imeproj,...), RADNIK(idbr#, ime,...),
UČEŠĆE(brproj#,idbr#,brsati,...)
Statička pravila integriteta za navedeni primer iskazuju se na sledeći na-
čin:
UČEŠĆE[idbr#] ⊆ RADNIK[ idbr #]
UČEŠĆE [brproj#] ⊆ PROJEKAT[brproj#]
Gornjim izrazima je specificirano da skup vrednosti atributa UČEŠĆE[
idbr#] mora biti podskup skupa vrednosti atributa RADNIK[idbr#], a takođe i

196 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

UČEŠĆE [brproj#] mora biti podskup skupa vrednosti atributa PROJEKAT[


brproj#].
Za specifikaciju dinamičkih pravila integriteta mora se koristiti pro-
gramski jezik, ovde će biti korišćen SQL. Za gornju relaciju specifikacija di-
namičkih pravila integriteta pri brisanju nekog radnika glasi:
DELETE RADNIK(idbr# = a):
1. DELETE RADNIK WHERE idbr# = a;
2. DELETE UČEŠĆE WHERE idbr# = a;
što znači da se pri brisanju nekog radnika iz relacije RADNIK moraju obrisati
i svi primerci u relaciji UČEŠĆE, u kojima se pojavljuje vrednost atributa id-
br#=a.

E-R model preduzeća


U konkretnom primeru E-R modela preduzeća, analizom realnog siste-
ma uočavamo tri entiteta: RADNIK, ODELJENJE i PROJEKAT. Svaki od ovih
objekata ima svoje atribute:
RADNIK(idbr#, ime, kvalifik, ruk, datzap, plata, premija),
ODELJENJE(brod#, naziv, mesto),
PROJEKAT(brproj#, imeproj, sredstva, trajanje)
Između objekata postoje jedna unarna veza (RUKOVODILAC između
primeraka entiteta RADNIK koju nećemo detaljnije razmatrati) i dve binarne
veze:
RADI između objekata RADNIK i ODELJENJE, i
UČEŠĆE između objekata RADNIK i PROJEKAT.
Kardinalnost veze RADI je (1,1):(1,M), a kardinalnost veze UČEŠĆE je
(M:M) i ona ima i svoje sopstvene atribute: funkcija, brsati. Poštujući pretho-
dno navedena pravila za pretvaranje modela objekti veze u relacionu formu,
imena entiteta postaju imena relacija, identifikatori entiteta postaju primarni
ključevi, a atributi entiteta postaju atributi relacija. Veza RADI eliminiše se
tako što se u relaciju RADNIK dodaje još jedan atribut brod, koji odgovara
identifikatoru entiteta ODELJENJE. Od veze UČEŠĆE nastaje nova relacija
sa imenom UČEŠĆE, koja ima iste atribute kao i veza, a ima složen primarni
ključ sastavljen od identifikatora entiteta koji čine vezu. Dakle, relacioni mo-
del je:
RADNIK(idbr#, ime, kvalifik, ruk, datzap, plata, premija),
ODELJENJE(brod#, naziv, mesto),
PROJEKAT(brproj#, imeproj, sredstva, trajanje),
UČEŠĆE(brproj#, idbr#, brsati, funkcija).
To znači da je dobijen isti relacioni model kao i u slučaju normalizacije. E-R
model preduzeća prikazan je na slici 12.1.

Sistem za upravljanje bazama podataka 197


MS Access

Slika 12.31 ER model informacionog sistema preduzeća

Problemi primene i mane relacionog modela


Realni svet predstavlja se modelom podataka koji se zatim implemen-
tira na nekom relacionom sistemu za upravljanje bazama podataka. Iako ni-
su svi problemi po svojoj prirodi pogodni za predstavljanje u relacionom obli-
ku, ipak je ovaj model danas još uvek dominantan.
Relacioni model je pogodan za primenu u slučaju kada postoji relativno
mali broj entiteta u kojima se pojavljuje veliki broj pojedinačnih primeraka
(znatno manji broj tabela nego redova u njima). Glavna prednost mu je to što
je zasnovan na strogim i prostim teorijskim osnovama i matematičkom apa-
ratu.
Međutim postoji čitav niz oblasti u kojima primena relacionog sistema
za upravljanje bazama podataka nije efikasna:
• rad sa nehomogenim skupovima podataka, jer su projektovani za efi-
kasno upravljanje bazama podataka, kod kojih broj pojava daleko
premašuje broj tipova entiteta (šema relacija),
• česte izmene šeme baze podataka nisu moguće, jer su relacioni sis-
temi razvijeni pod pretpostavkom da se šema baze podataka retko
menja, pa ima male mogućnosti za izmenu šeme, odnosno za doda-
vanje i ukidanje veza i tabela,
• upravljanje različitim verzijama jednog objekta, jer se promenom po-
datka gube prethodne vrednosti, pa nije moguće voditi evidenciju o
promenama stanja objekta,
• upravljanje ekvivalentnim objektima. Na primer, pri projektovanju
elektronskih kola: električna šema kola, njegova funkcionalna šema
kao i izvedba kola na nivou tranzistora moraju biti ekvivalentni. Izme-
na izvršena u bilo kojoj od ovih verzija mora se odraziti i na ostale
verzije,
• upravljanje dugačkim transakcijama. Transakcija je takav niz akcija
čitanja i pisanja u bazi podataka, koji ostavlja bazu podataka u konzi-
stentnom stanju. Relacioni sistemi su razvijeni za rad sa kratkim
transakcijama koje se brzo izvršavaju i čije je dejstvo konačno. U ne-
kim primenama, na primer pri projektovanju u arhitekturi ili građevi-
narstvu, transakcije mogu trajati danima. U tim slučajevima relacioni
sistemi nisu pogodni.

198 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

Dakle, relacioni model nije pogodan za realizaciju baza podataka koje


operišu sa podacima promenljive i velike dužine, nije pogodan za predstav-
ljanje kompleksnih objekata (jer nije semantički bogat) i nije pogodan za slo-
žene operacije kakve se zahtevaju u bazama znanja.

Sistem za upravljanje bazama podataka 199


MS Access

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 “, Naučna knjiga, Beograd

7. Mišić V. ( 1990), “Relaciona baza podataka Rdb/VMS“ Tehnička 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,


Čačak

14. Kaluđerčić P., Obradović S., (2007) “Projektovanje informacionih sis-


tema – Relacione baze podataka“, Viša elektrotehnička škola”, Beograd

15. Дончев А., Обрадовић С.(2004): “База от данни “, Технички уни-


верзитет-Габрово, Габрово

16. Дончев А. (1999) “Основи на базите от данни“, Универзитетско


издателство Васил Априлов, Габрово

200 Sistem za upravljanje bazama podataka


Projektovanje relacionog modela

17. Milošević B (2006) “Baze podataka“, Viša tehnička škola, Niš

Sistem za upravljanje bazama podataka 201


14. Vežbe i zadaci za samosta-
lan rad
Izrada fizičkog modela informacionog sistema, projek-
tovanje baze podataka
Vežba 1. Kreiranje baza podataka, definisanje atributa i zada-
vanje svojstava poljima.
Vežba 2. Izbor primarnog ključa, preuzimanje i povezivanje ta-
bela iz drugih baza i unos podataka u tabele.
Vežba 3. Rad sa tabelama i pregled podataka u tabelarnom pri-
kazu.
Vežba 4. Povezivanje tabela (relacije između tabela).
Vežba 5. Izrada upita pomoću QBE-a.
Vežba 6. Upiti nad više tabela i ugnježdeni upiti.
Vežba 7. Upiti sa izračunatim vrednostima i upotreba agregat-
nih funkcija.
Vežba 8. Akcioni i parametarski upiti.

Izrada aplikacija
Vežba 9. Obrasci, izrada, izmena i upotreba obrazaca u mani-
pulisanju podacima.
Vežba 10. Izveštaji za prikaz podataka iz tabela ili na bazi upita i
prikazivanje izračunatih veličina.
Vežba 11. Reagovanje aplikacija na akcije i događaje i rad sa
makroima i modulima.
Vežbe i zadaci za samostalan rad

Zadaci za samostalan rad


Kreiranje baza podataka
3.1. Kreirati novu bazu podataka “MojaPrvaBaza” pomoću wizarda.
3.2. Kreirati novu bazu podataka “MojaDrugaBaza” koristeći opciju Blank
Accesss Database.
3.3. Otvoriti već postojeću bazu podataka “MojaPrvaBaza”.
3.4. Kreirati primarni ključ za sve četiri tabele baze PREDUZEĆE.
3.5. U sve četiri tabele uneti odgovarajuće podatke date na slikama 3.6 i
3.7.
3.6. Prikazati sve podatke za radnike koji rade u odeljenju 20, tako da bu-
du uređeni po opadajućem redosledu u odnosu na platu.

RUKOV
IDBR IME POSAO KVALIF DATZAP PREMIJA PLATA BROD
ODILAC

3.7. Prikazati zapise o radnicima koji rade u odeljenju 40 i čija je kvalifika-


cija VSS.

RUKOV
IDBR IME POSAO KVALIF DATZAP PREMIJA PLATA BROD
ODILAC

3.8. Dodati referencijalni integrit za vezu između tabela RADNIK i


UČEŠĆE.

Sistem za upravljanje bazama podataka 203


MS Access

3.10. Kreirati bazu podataka za evidentiranje automobila i njhovih vlasni-


ka.

3.11. Kreirati bazu podataka za evidentiranje parnica u advokatskoj kan-


celariji.

3.12. Kreirati bazu podataka za vođenje poslovanja školske biblioteke.

3.13. Kreirati bazu podataka za vođenje poslovanja video-kluba.

Datum
Zadatke pregledao

Kreiranje upita
4.1. Prikazati nazive i lokacije svih odeljenja u preduzeću.

4.2. Prikazati ime, kvalifikaciju i šifru svih radnika.

4.3. Prikazati imena i kvalifikacije radnika.

204 Sistem za upravljanje bazama podataka


Vežbe i zadaci za samostalan rad

4.4. Prikazati samo različite kvalifikacije radnika.

4.5. Prikazati sve radnike iz odeljenja 30 čija je plata veća od 1000 dinara.

4.6. Prikazati u opadajućem redosledu sve radnike čija je plata između 1000
i 3000 dinara (uključujući i te vrednosti).

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

4.8. Prikazati imena svih radnika čije ime počinje na “P”.

4.9. Prikazati imena radnika zaposlenih 17.12.1990.

Sistem za upravljanje bazama podataka 205


MS Access

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

4.11. Prikazati ukupan broj radnika u svakom odeljenju.

4.12. Odrediti srednju platu za svako odeljenje.

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

4.14. Koliko radnika radi na Novom Beogradu?

4.15. Prikazati ime i posao radnika čija je kvalifikacija “KV”.

206 Sistem za upravljanje bazama podataka


Vežbe i zadaci za samostalan rad

4.16. Prikazati imena svih vozača u odeljenju 10.

4.17. Prikazati imena svih radnika koji nisu upravnici ni analitičari.

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 rastućem redosledu.

b. Rezultate prikazati uređene po primanjima u opadajućem, a


zatim po imenima u rastućem redosledu.

Sistem za upravljanje bazama podataka 207


MS Access

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

4.22. Prikazati nazive odeljenja i prosečna primanja u svakom odeljenju.

4.23. Prikazati nazive projekata i broj učesnika na svakom projektu.

4.24. Upotrebom naredbe CREATE TABLE kreirati tabelu “PENZIONISANI”


sa istim atributima kao tabela “RADNIK” .

4.25. Upotrebom naredbe ALTER TABLE tabeli “PENZIONISANI” dodati ko-


lonu “dat_penz” (datum penzionisanja) tipa date.

4.26. U tabelu “PENZIONISANI” ubaciti sve radnike zaposlene pre 1.1.


1970.

208 Sistem za upravljanje bazama podataka


Vežbe i zadaci za samostalan rad

4.27. U tabelu “PENZIONISANI” dodati radnika sa imenom “Miro”.

4.28. U tabeli “PENZIONISANI” za radnika imena Miro postaviti datum pen-


zionisanja na 2.2.2002.

4.29. U tabelu radnik uneti podatke o sledećem radniku: 5555, Milena, anali-
tičar, VSS, 5662, 1.1.2000, 3000, 1500, 10.

4.30. Dodati Milenu na projekat “plasman”, sa brojem sati 1000 i funkcijom


KONSULTANT.

4.31. Izbrisati iz tabele RADNIK podatke o Mileni. Da li je to moguće i kada?

Datum __________________
Zadatke pregledao _________________
Obrasci
5.1. Kreirati obrazac frmPROJEKAT za unos podataka o projektima, koris-
teći opciju AutoForm: Tabular.
5.2. Kreirati obrazac frmPROJEKAT za unos podataka o projektima, koris-
teći opciju AutoForm: Tabular.

5.3. Kreirati obrazac frmRadnikProjekat, tako da glavni obrazac prikazuje


podatke o radniku, a vezni obrazac prikazuje na kojim projektima izab-

Sistem za upravljanje bazama podataka 209


MS Access

rani radnik učestvuje. Vezni obrazac nazvati subfrmRadnikProjekat,


a dugme koje ga otvara nazvati cmdRadnikProjekat.
5.4. Kreirati dva obrasca u režimu projektovanja (nazvati ih frmTrazi i sub-
frmTrazi). Na obrazac frmTrazi dodati padajuću listu (Combo Box)
koja prikazuje šifru i ime odeljenja i komandno dugme koje otvara ob-
razac subfrmTrazi. Obrazac subfrmTrazi prikazuje podatke o radni-
cima za izabrano odeljenje.
5.5. Kreirati obrazac frmUcestvuje sa podobrascem subfrmUcestvuje koji
za izabrani projekat prikazuje koji radnici učestvuju na njemu.

Datum
Zadatke pregledao
Izveštaji
6.1 Kreirati izveštaj repPodaciRadnika koji se otvara sa već kreiranog ob-
rasca frmPretraga i prikazuje za radnika izabranog iz padajuće liste šif-
ru, ime i posao radnika, kao i broj odeljenja i mesto u kome radi. Na
obrascu dodati komandno dugme koje otvara taj izveštaj.
6.2 Kreirati izveštaj koji prikazuje ime i šifru radnika, broj i ime odeljenja,
broj projekta. Grupisanje uraditi po odeljenjima, a zatim po broju proje-
kta, uređivanje izvršiti po imenu radnika u opadajućem redosledu. Iz-
veštaj nazvati repProjektiPo Odeljenjima.
6.3 Kreirati izveštaj repBrojSatiPoProjektima koji prikazuje broj projekta,
šifu radnika i broj sati angažovanosti na projektu. Prikazati ukupan broj
sati angažovanosti svih radnika na svakom pojedinačnom projektu i na
svim projektima zajedno.
Datum
Zadatke pregledao

Aplikacije i MDE datoteke


10.1. Kreirati obrazac kao na slici 9.10 i nazvati ga frmGLAVNI.

Povezivanje sa drugim aplikacijama


11.1. Povezati dugme na obrascu da otvara prethodno kreirani Word doku-
ment Tabela.
Datum
Zadatke pregledao

210 Sistem za upravljanje bazama podataka


Vežbe i zadaci za samostalan rad

Vežba Datum Saradnik Napomena


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

Sistem za upravljanje bazama podataka 211


Indeks
A C
Access Caption .......................................................... 54
izveštaji (reports), ................................... 4, 6 Četvrta normalna forma............................... 288
makroi (macros),..................................... 5, 6 Chart Wizard................................................ 120
moduli (modules). ................................... 5, 6 cirkularno pismo .......................................... 258
obrasci (forms),....................................... 4, 5 Command Button......................................... 107
ControlTip Text ............................................ 108
stranice za pristup podacima (data access Copy ...................................................... 32, 253
pages, DAP), ......................................... 5 Count ............................................................. 67
ugrađene funkcije (built-in functions),..... 5, 6 Crosstab query .............................................. 85
upiti (queries), ............................................. 4
Access D
tabele (tables), ............................................ 4 Data Access Objects (DAO), ....................... 163
Access Data definition................................................ 80
povezivanje sa drugim aplikacijama ....... 253 Data Definition Language (DDL), .................. 49
agregacija .................................................... 294 Data definition upiti ........................................ 80
agregatne funkcije.......................................... 66 Data Manipulation Language (DML),............. 49
akcioni............................................................ 49 Database Wizard ..................................... 10, 11
Akcioni upiti.................................................... 73 datoteka ........................................................... 3
alatka auto format ........................................ 101 datoteka zaključavanja
analiza realnog sistema ............................... 283 (Locking Information File, .ldb) ................ 4
Analiza sistema............................................ 283 definisanje tabela......................................... 294
AND ............................................................... 55 Dekartov, Kartezijev proizvod........................ 58
anomalije...................................................... 286 Delete ............................................................ 78
Aplikacije...................................................... 237 Design View................................................... 99
Append........................................................... 76 desno spoljnje spajanje ................................. 39
Append query................................................. 76 detaljisanje................................................... 294
apstrakcija.................................................... 293 dijagrami ...................................................... 120
atribut ............................................................... 7 dinami~ka pravila integriteta........................ 296
ime atributa (Field name).................... 13, 14 DISTINCT ...................................................... 73
indeksirano polje (Indexed) ...................... 21 dodavanje zapisa (Append)........................... 76
natpis (Caption) ........................................ 20 domen.......................................................... 292
Druga normalna forma................................. 286
opis atributa (Description)......................... 14 dugme, komandno dugme
opšta svojstva (General)........................... 23 (Command Button) .............................. 257
osobine polja (Field Properties) ................ 14 dvostruki klik (Double click). .......................... 10
podrazumevane vrednosti (Default Value)30
pravila ispravnosti (Validation Rule) ......... 21 E
provere ispravnosti (validation rule).......... 21 eksplicitna pravila integriteta ....................... 296
svojstva..................................................... 19 entitet ........................................................... 290
tekst poruke (Validation Text) ................... 21 entitet, objekat ................................................. 8
tip podatka (Data type) ....................... 13, 14 Event Procedure .......................................... 108
Event Procedures ........................................ 153
ulazna maska (Input Mask) ...................... 23 Excel .................................................... 253, 259
ulazna maska (Input Mask), ..................... 20 Export .......................................................... 257
Atribut........................................................... 292 Expression Builder....................................... 112
Auto Form ...................................................... 90
auto format ................................................... 101 F
Autonumber ................................................... 82 filtriranje, izdvajanje zapisa (Filter) ................ 36
Avg................................................................. 67 Find Duplicates Query Wizard..................... 263
First................................................................ 67
B Form Wizard .................................................. 91
backup ........................................................... 74 Forms ............................................................ 89
baza podataka FROM ............................................................ 50
rad u mreži.............................................. 250 funkcije ........................................................ 155
baza podataka ................................................. 7 funkcionalne zavisnosti................................ 285
kreiranje .................................................... 10
bazna relacija................................................... 7 G
BETWEEN ..................................................... 55 generalizacija............................................... 293
bezbednost, zaštita ...................................... 252 glavni obrazac, komandna tabla
Blank Access Database ................................. 10 (Switchboard) ....................................... 242
Boolean........................................................ 159 građenje izraza (Expression Builder),............ 31
Boyce-Codd-ova normalna forma (BCNF)... 288 granična kolona (Bound Column), ................. 24
brisanje zapisa (Delete) ................................. 78 Group By ....................................................... 67
broj kolona (Column Count ). ......................... 24 groups/total reports...................................... 123
broj kolona (Column Count) ........................... 24 grupe, grupisanje podataka ........................... 67
grupisanje.....................................................137 skrivanje ................................................... 35
zamrzavanje ............................................. 35
H komandna dugmad ...................................... 101
Having ............................................................67 komandno dugme ................................ 107, 148
history table ....................................................74 kontrolni objekati .......................................... 102
Hyperlink ......................................................253 kreiranje izveštaja ........................................ 124
kreiranje izveštaja na osnovu parametarskog
I upita........................................................ 140
identifikator entiteta ......................................292 kreiranje izveštaja na osnovu upita.............. 138
ime korisnika (Username) ............................251 kreiranje izveštaja povezanih sa obrascem . 140
Import ...........................................................261 Kreiranje makroa ......................................... 145
IN 55 kreiranje obrazaca ......................................... 89
IN, NOT IN......................................................55 kreiranje tabele .............................................. 73
INDEKS ..........................................................82 kreiranje upita ................................................ 49
Indexed...........................................................82 kreiranjeupita ................................................. 49
inforamacioni sistem (IS)..............................283
informacija ........................................................3 L
inherentna pravila integriteta........................296 Label ............................................................ 105
INNER JOIN .............................................58, 61 labele ........................................................... 104
Insert ............................................................254 Last ................................................................ 67
Integritet entiteta ............................................39 levo spoljnje spajanje..................................... 39
Integritet podataka .........................................39 LIKE ............................................................... 55
Internet .........................................................264 logička redundansa...................................... 284
IS NOT NULL .................................................71 lozinka (Password) ...................................... 251
IS NULL..........................................................71
Ispravljanje grešaka .......................................32 M
izdvajanje prema obrascu (Filter by Form).....36 mailing labels ............................................... 123
izdvajanje, filtriranje zapisa ............................36 Make – table upit ........................................... 73
izračunate kontrole.......................................103 Make-table query ........................................... 74
izrada obrazaca na bazi upita ......................114 makroi
izvedena relacija ..............................................7 kreiranje.................................................. 145
izvestaj makroi (Macros) ........................................... 145
projektovanje...........................................129 Max ................................................................ 67
izveštaj mdb datoteka ................................................... 4
kreiranje ..................................................124 MDE datoteke .............................................. 237
izveštaji Microsoft Jet Database Engine........................ 4
tabelarni ..................................................123 Min ................................................................. 67
izveštaji.........................................................123 model objekti-veze (MOV, E-R model) ........ 283
sa jednom kolonom.................................123 Model objekti-veze....................................... 290
u više kolona ...........................................123 model podataka ............................................... 7
izveštaji Modules ....................................................... 154
sumarni izveštaji po grupama), ...............123 moduli .......................................................... 153
izveštaji mreža računara, računarska mreža............. 249
nalepnice sa adresama...........................123 MsgBox ........................................................ 159
izveštaji multicolumn reports ..................................... 123
nezavisni .................................................123 N
izveštaji natpis (Caption) ............................................. 54
sortiranje .................................................137 Navigation Buttons....................................... 108
izveštaji nepotpuna funkcionalna zavisnost............... 285
grupisanje ...............................................137 nepovezane kontrole (Unbound) ................. 102
izveštaji (Reports).........................................124 netačno (False). ........................................... 159
normalizacija................................................ 284
Normalna forma domena i ključeva (DK/NF)290
J NOT ............................................................... 55
JOIN ...............................................................58 NOT IN........................................................... 55
Null................................................................. 17
K Null-vrednosti ................................................. 70
Kartezijev (Dekartov) proizvod .......................58 Nz funkcija ..................................................... 70
Klauzula FROM ..............................................50
klauzula having ..............................................67 O
klauzula JOIN .................................................58 objekat ................................................. 290, 294
klauzula ORDER BY ......................................56 objekat (entitet) ................................................ 8
Klauzula SELECT ..........................................50 obrada podataka .............................................. 3
klauzula WHERE......................................53, 56 obrasci (Forms).............................................. 89
klijent-server .....................................................3 obrazac
klik, (Click). .....................................................10 glavni obrazac (Switchboard) ................. 242
ključ ..................................................................9 početni .................................................... 243
kolona obrazac .......................................................... 89
odmrzavanje .............................................35 izmena obrasca ...................................... 104

213
izrada obrazaca na bazi upita................. 114 QBE (Query By Example).......................... 2, 49
kreiranje .................................. 89, 91, 94, 99
projektovanje .......................................... 100 R
odmrzavanje kolona....................................... 35 radna grupa (Workgroup) ............................ 251
okvir sa alatima (Toolbox)............................ 103 RDO (Remote Data Object)......................... 163
OLE DB i ActiveX Data Objects (ADO),....... 163 Referencijalni integritet .................................. 39
Open an Existing file ...................................... 10 Referencijalni integritet .................................. 58
Open DataBase Connectivity (ODBC), ........ 163 referencijalni integritet (Referential Integrity). 39
opoziv (Undo)................................................. 34 relacija ............................................................. 8
OR.................................................................. 55 binarna veza............................................. 17
ORDER BY .................................................... 56 unarna veza.............................................. 17
OUTER JOIN ................................................. 58 relacija 1:1, 1:N.............................................. 64
relacija između tabela.................................... 37
P relacije (Relationships) .................................. 28
padajuća lista - Combo Box ........................... 24 relaciona baza podataka ................................. 7
paleta alatki.................................................. 101 relacioni model ................................................ 8
parametarski .................................................. 49 relacioni model podataka............................. 283
parametarski upit ........................................... 83 projektovanje .......................................... 283
parametarski upiti......................................... 114 relacioni sistem za upravljanje bazama podataka
Password ..................................................... 251 – RSUBP .................................................... 1
Paste.............................................. 32, 253, 260 Relational Data Base Management Systam.... 1
Paste Special ............................................... 260 Replication................................................... 239
Peta normalna forma ................................... 289 Required ........................................................ 81
početni obrazac............................................ 243 RIGHT OUTER JOIN..................................... 63
podatak ............................................................ 3
brojač (AutoNumber) ................................ 14 S
datumski (Date) ........................................ 15 select ............................................................. 49
datumski i vremenski (Date /Time) ........... 15 SELECT......................................................... 50
hiperveza (Hyperlink)................................ 15 select upit ...................................................... 49
SELF JOIN .................................................... 58
logički (Logical, Boolean).......................... 15 single column............................................... 123
Memo........................................................ 14 sistem analitičar........................................... 283
nepostojeći (Null) ...................................... 15 skrivanje kolona............................................. 35
novac, valuta (Currency) .......................... 15 slabi entitet .................................................. 293
numerički (number)................................... 14 složeni ključ ................................................... 18
Ole objekti................................................. 15 sortiranje ...................................................... 137
text ............................................................ 14 sortiranje, uređivanje zapisa.......................... 36
vremenski (Time) ...................................... 15 Spajanje po jednakosti (INNER JOIN)........... 58
podrazumevane vrednosti (Default Value)..... 30 spajanje tabela .............................................. 39
podtipovi....................................................... 293 Spajanje tabela sa samom sobom (SELF JOIN)
podupit (Subquery) ........................................ 79 ................................................................. 64
polja za tekst ................................................ 105 spajanje tabele .............................................. 58
potpuna funkcionalna zavisnost................... 285 Split Database ............................................. 239
povezane kontrole (Bound).......................... 102 spoljnje spajanje ............................................ 58
povezane tabele (Link Table)....................... 238 Spoljnje spajanje (OUTER JOIN) .................. 62
povezivanje (Linking) ....................................... 1 LEFT OUTER JOIN ....................................... 63
povezivanje tabela (Link tables),.................... 29 RIGHT OUTER JOIN..................................... 63
pravila ispravnosti (Validation Rule)............... 30 spoljnji ključ ..................................................... 9
prevođenje objektno-orijentisanog modela u SQL (Structured Query Language).................. 2
relacioni model ....................................... 294 SQL specific ............................................ 49, 80
prevuci i spusti drag-and-drop ..................... 253 Startup ......................................................... 247
pridruživanje (Atta-ching) ................................. 1 stati~ka pravila integriteta............................ 296
primarni ključ...................................... 16, 25, 39 StDev ............................................................. 67
Primarni ključ ................................................. 21 Structured Query Language (SQL)…………..49
primarni ključ (Primary Key)........................... 26 strani ključ...................................................... 17
prirodno spajanje ........................................... 39 stranica za pristup podacima (Data Access
procedure događaja (Event Procedures) ..... 153 Pages, DAP) .......................................... 264
procedure za obradu događaja struktura relacionog modela ...................... 8, 10
(Ivent Procedure) ......................................... 156 Subquery ....................................................... 79
projektni zahtevi ........................................... 283 svojstva kontrola (Properties) ..................... 103
projektovanje baze podataka i izrada svojstva obrazaca (Properties) .................... 103
aplikacija .................................................. 283 Switchboard Manager.................................. 243
projektovanje obrazaca................................ 100 System ID ........................................................ 4
Promena redosleda kolona ............................ 34 System.mdw ............................................ 4, 251
Properties..................................................... 108
prva normalna forma........................................ 9 T
Prva normalna forma (1NF) ......................... 285 Tab index ..................................................... 109
tabela, (table)................................................. 13
Q tabela
QBE ............................................................... 50 automatsko kreiranje tabele ..................... 13

214
prirodno spajanje ......................................39 pronađi duplikate (Find Duplicates Query
spajanje.....................................................39 Wizard)................................................ 26
tabela select upitni blok ....................................... 49
kreiranje, izrada ........................................16 SQL specific ............................................. 49
povezane tabele........................................13 unaksni crosstab....................................... 49
relacija između tabela ...............................37 upit (Query) .................................................... 49
ručno kreiranje tabele ...............................13 upit na bazi primera ....................................... 50
tabelarni prikaz (Datasheet View). ............22 upit nad više tabela........................................ 57
tabelarni prikaz (Datasheet)......................30 upit sa izračunatim vrednostima .................... 66
uvoz (Import).............................................27 uređivanje, sortiranje zapisa .......................... 36
Username .................................................... 251
uvoz tabele................................................13 uvoz tabela (Import) ....................................... 27
tabelarni prikaz (Datasheet) ...........................30 uvoza-izvoza tabele (Import table)............... 238
tabelarni prikaz (Table Datasheet) .................36
tabular reports ..............................................123 V
tačno (True),.................................................159 Var ................................................................. 67
Text Box .......................................................105 VarP ............................................................... 67
THETA JOIN ..................................................58 VBA.............................................................. 154
tip entiteta.....................................................290 veza
tip veze .........................................................291
Toolbox.........................................................103 tip 1:1, 1:N i N:M....................................... 37
tranzitivna funkcionalna zavisnost................286 tipa 1:N (jedan prema više), ..................... 17
Treća normalna forma (3NF)........................287 veza, relacija između tabela .......................... 37
trivijalna funkcionalna zavisnost...................286 veze ............................................................. 291
Visual Basic For Application, VBA ............... 167
U Visual Basic for Applications VBA ................... 1
ugnježdeni upit (Subquery) ............................79 vrsta izvora reda, poreklo reda (Row Source
ugnježdeni upiti ..............................................57 Type) ........................................................ 24
ugrađene funkcije (Built-In-Functions) ...........31
ugrađivanje (Embending) .................................1 W
unakrsni, crosstab upit ...................................49 Where ............................................................ 67
unbound reports ...........................................123 WHERE.................................................... 53, 61
Union upiti ......................................................80 Word ............................................................ 253
unos podataka................................................31
unutrašnje spajanje ........................................58 Z
Update............................................................77 zaključavanje zapisa (Lock)......................... 250
upit..................................................................49 zamrzavanje kolona ....................................... 35
akcioni.......................................................49 zaštita baza podataka.................................. 251
zero-length string ........................................... 71
kreiranje ....................................................49 мenjanje podataka (Update) .......................... 77
parametarski .............................................49
parametarski .............................................83

215
SADRŽAJ
1. UVOD U MS ACCESS...................................................................................................... 1
2. OSNOVNE KARAKTERISTIKE MS ACCESSA .......................................................... 3
DATOTEKE MS ACCESS BAZA PODATAKA ................................................................................ 3
ELEMENTI MS ACCESS BAZA PODATAKA ................................................................................. 4
3. KREIRANJE BAZE PODATAKA .................................................................................. 7
POJAM BAZA PODATAKA .......................................................................................................... 7
KREIRANJE BAZE PODATAKA .................................................................................................. 10
Zadaci za samostalan rad: ........................................................................................... 12
MOGUĆNOSTI IZRADE TABELA U MS ACCESSU ...................................................................... 12
Primer izrade tabela .................................................................................................... 16
Definisanje dodatnih svojstava atributa....................................................................... 19
Zadavanje imena i završetak procesa kreiranja tabela................................................ 25
IZBOR PRIMARNOG KLJUČA .................................................................................................... 25
Zadatak za samostalan rad .......................................................................................... 26
PREUZIMANJE TABELA I POVEZIVANJE SA POSTOJEĆIM TABELAMA ........................................ 27
Preuzimanje tabela....................................................................................................... 27
Povezivanje sa postojećim tabelama............................................................................ 29
UNOS PODATAKA.................................................................................................................... 29
Zadatak za samostalan rad: ......................................................................................... 32
ISPRAVLJANJE GREŠAKA U PROJEKTOVANJU TABELA ............................................................. 32
ISPRAVLJANJE GREŠAKA U UNETIM PODACIMA ....................................................................... 32
KORIŠĆENJE OPOZIVA ............................................................................................................. 34
PROMENA REDOSLEDA I ŠIRINE POLJA I VISINE REDA .............................................................. 34
SKRIVANJE, PRIKAZIVANJE, ZAMRZAVANJE, I ODMRZAVANJE KOLONA ................................. 35

TRAJNO ČUVANJE IZMENJENOG IZGLEDA TABELARNOG PRIKAZA ........................................... 36


UREĐIVANJE I IZDVAJANJE ZAPISA U TABELARNOM PRIKAZU ................................................. 36
Zadaci za samostalan rad: ........................................................................................... 37
KREIRANJE VEZA-RELACIJA IZMEĐU TABELA ......................................................................... 37
Zadaci za samostalan rad: ........................................................................................... 46
4. UPITI ................................................................................................................................ 49
IZRADA SELECT UPITA ............................................................................................................ 49
Upotreba klauzule WHERE.......................................................................................... 53
Upotreba klauzule ORDER BY .................................................................................... 56
UPITI NAD VIŠE TABELA I UGNJEŽDENI UPITI .......................................................................... 57
Spajanje po jednakosti (INNER JOIN)......................................................................... 58
Alternativa za INNER JOIN ......................................................................................... 61
Spoljnje spajanje (OUTER JOIN) ................................................................................ 62
Spajanje tabela sa samom sobom (SELF JOIN)........................................................... 64
THETA JOIN ................................................................................................................ 66
UPITI SA IZRAČUNATIM VREDNOSTIMA I UPOTREBA AGREGATNIH FUNKCIJA .......................... 66
Uslovi za grupe (klauzula having)................................................................................ 67
RAD SA NULL-VREDNOSTIMA I UPOTREBA NZ FUNKCIJE ........................................................ 70
Upotreba predikata DISTINCT .................................................................................... 73
AKCIONI UPITI ........................................................................................................................ 73
Kreiranje nove tabele pomoću Make – table upita....................................................... 73
Dodavanje zapisa tabeli upotrebom upita dodaj (Append query) ............................... 76
Menjanje grupe podataka upotrebom upita Update..................................................... 77
Brisanje grupe zapisa upotrebom Delete upita ............................................................ 78
SQL-SPECIFIC UPITI ................................................................................................................ 79
Ugnježdeni upit - podupit (Subquery) .......................................................................... 79
Union upiti.................................................................................................................... 80
Data definition upiti ..................................................................................................... 80
PARAMETARSKI UPITI ............................................................................................................. 83
UPITI UNAKRSNIH TABELA (CROSSTAB QUERY)...................................................................... 85
PASS-THROUGH UPITI ............................................................................................................. 86
Zadaci za samostalan rad: ........................................................................................... 86
5. OBRASCI ......................................................................................................................... 89
KREIRANJE OBRAZACA ........................................................................................................... 89
Izrada obrasca pomoću čarobnjaka Auto Form........................................................... 90
Zadatak za samostalan rad: ......................................................................................... 91
Kreiranje obrazaca pomoću Form Wizarda................................................................. 91
Izrada obrazaca na osnovu dve tabele pomoću opcije Form Wizard........................... 94
KORIŠĆENJE PROZORA ZA PROJEKTOVANJE OBRAZACA .......................................................... 99
Elementi prozora za projektovanje obrazaca ............................................................. 100
Upotreba alatke auto format ...................................................................................... 101
Dugmad sa palete alatki za projektovanje obrazaca.................................................. 101
Kontrole u obrascu..................................................................................................... 102
Okvir sa alatima (Toolbox) ........................................................................................ 103
Svojstva obrazaca i kontrola (Properties).................................................................. 103
IZMENA OBRAZACA U REŽIMU PROJEKTOVANJA ................................................................... 104
Dodavanje labele........................................................................................................ 104
Dodavanje polja za tekst ............................................................................................ 105
Dodavanje komandnog dugmeta ................................................................................ 107
Zadatak za samostalan rad......................................................................................... 109
UPOTREBA OBRAZACA .......................................................................................................... 109
IZRADA OBRAZACA NA BAZI UPITA ....................................................................................... 114
KREIRANJE DIJAGRAMA POMOĆU CHART WIZARDA ............................................................. 120
Zadaci za samostalan rad: ......................................................................................... 121

ii
6. IZVEŠTAJI .................................................................................................................... 123
TIPOVI IZVEŠTAJA................................................................................................................. 123
KREIRANJE IZVEŠTAJA .......................................................................................................... 124
Kreiranje izveštaja pomoću čarobnjaka..................................................................... 124
Kreiranje izveštaja u režimu projektovanja ............................................................... 129
Linija alata prozora za prikaz izveštaja ..................................................................... 132
OPIS IZGLEDA PROZORA ZA PROJEKTOVANJE I NJEGOVIH ODELJAKA .................................... 135
SORTIRANJE I GRUPISANJE .................................................................................................... 137
IZRADA IZVEŠTAJA NA OSNOVU UPITA .................................................................................. 138
KREIRANJE IZVEŠTAJA POVEZANIH SA OBRASCEM – IZRADA IZVEŠTAJA NA OSNOVU
PARAMETARSKOG UPITA................................................................................................ 140

ŠTAMPANJE IZVEŠTAJA ......................................................................................................... 143


Zadaci za samostalan rad: ......................................................................................... 144
7. MAKROI........................................................................................................................ 145
KREIRANJE MAKROA ............................................................................................................ 145
Pokretanje makroa i režim projektovanja .................................................................. 147
Pretvaranje makroa u VBA kôd ................................................................................. 148
Pokretanje makroa pritiskom na komandno dugme na obrascu ................................ 148
8. MODULI ........................................................... ERROR! BOOKMARK NOT DEFINED.
MODULI KLASE................................................................. ERROR! BOOKMARK NOT DEFINED.
Moduli obrasca ...............................................................Error! Bookmark not defined.
Moduli izveštaja ..............................................................Error! Bookmark not defined.
Nepridruženi moduli klase ..............................................Error! Bookmark not defined.
STANDARDNI MODULI ...................................................... ERROR! BOOKMARK NOT DEFINED.
KADA KORISTITI VBA PROGRAMSKI KÔD......................... ERROR! BOOKMARK NOT DEFINED.
ELEMENTI MODULA .......................................................... ERROR! BOOKMARK NOT DEFINED.
DEKLARACIJE ................................................................... ERROR! BOOKMARK NOT DEFINED.
Opseg važenja promenljivih ............................................Error! Bookmark not defined.
SABRUTINE I FUNKCIJE ..................................................... ERROR! BOOKMARK NOT DEFINED.
Sabrutine za obradu događaja ........................................Error! Bookmark not defined.
KREIRANJE MODULA KLASE ............................................. ERROR! BOOKMARK NOT DEFINED.
PRAKTIČNA PRIMENA MODULA ......................................... ERROR! BOOKMARK NOT DEFINED.
Univerzalni pristup podacima......................................... Error! Bookmark not defined.
POVEZIVANJE SA MS WORDOM I MS EXCELOM UZ POMOĆ MODULAERROR! BOOKMARK NOT
DEFINED.

MODUL ZA RAD SA WORD DOKUMENTIMA ....................... ERROR! BOOKMARK NOT DEFINED.


MODUL ZA RAD SA EXCEL DOKUMENTIMA ....................... ERROR! BOOKMARK NOT DEFINED.
9. PREGLED SIGURNOSTI MS ACCESS BAZA PODATAKA.ERROR! BOOKMARK
NOT DEFINED.

iii
ENKODOVANJE I DEKODOVANJE ....................................... ERROR! BOOKMARK NOT DEFINED.
PRIKAZIVANJE ILI SKRIVANJE OBJEKATA U DATABASE PROZORU ..... ERROR! BOOKMARK NOT
DEFINED.

UPOTREBA STARTNIH (STARTUP) OPCIJA ......................... ERROR! BOOKMARK NOT DEFINED.


Kreiranje makroa koji se pokreće pri pokretanju Microsoft Access datoteke ....... Error!
Bookmark not defined.
ZAŠTITA LOZINKOM .......................................................... ERROR! BOOKMARK NOT DEFINED.
LOZINKE NAD BAZOM PODATAKA ..................................... ERROR! BOOKMARK NOT DEFINED.
LOZINKE NAD NALOZIMA .................................................. ERROR! BOOKMARK NOT DEFINED.
LOZINKE NAD VBA KÔDOM ............................................. ERROR! BOOKMARK NOT DEFINED.
POSTAVLJANJE LOZINKE NAD ACCESS BAZOM PODATAKA ERROR! BOOKMARK NOT DEFINED.
UKLANJANJE LOZINKE SA ACCESS BAZE PODATAKA ........ ERROR! BOOKMARK NOT DEFINED.
KREIRANJE ILI IZMENA LOZINKI NAD NALOZIMA U ACCESS BAZI PODATAKA ................ERROR!
BOOKMARK NOT DEFINED.
UKLANJANJE LOZINKE NAD NALOGOM ............................. ERROR! BOOKMARK NOT DEFINED.
ZAŠTITA VBA KÔDA LOZINKOM ....................................... ERROR! BOOKMARK NOT DEFINED.
POSTAVLJANJE LOZINKE NAD ACCESS PROJEKTOM (.ADP) ERROR! BOOKMARK NOT DEFINED.
KORISNIČKI DEFINISANI NIVOI SIGURNOSTI ...................... ERROR! BOOKMARK NOT DEFINED.
Tipovi dozvola .................................................................Error! Bookmark not defined.
KAKO FUNKCIONIŠU I KAKO SE DODELJUJU DOZVOLE....... ERROR! BOOKMARK NOT DEFINED.
Organizacija sigurnosnih naloga ....................................Error! Bookmark not defined.
UKLANJANJE KORISNIČKI DEFINISANOG NIVOA SIGURNOSTI ............. ERROR! BOOKMARK NOT
DEFINED.

POSTAVLJANJE KORISNIČKI DEFINISANOG NIVOA SIGURNOSTI KORIŠĆENJEM ČAROBNJAKA


.................................................................................. ERROR! BOOKMARK NOT DEFINED.
ZAŠTITA BAZE BEZ POTREBE PRIJAVLJIVANJA KORISNIKA ERROR! BOOKMARK NOT DEFINED.
AŽURIRANJE WORKGROUP INFORMATION DATOTEKA ....... ERROR! BOOKMARK NOT DEFINED.
DODELA I UKLANJANJE DOZVOLA ZA BAZU PODATAKA I NJENE OBJEKTE .ERROR! BOOKMARK
NOT DEFINED.

PRIJAVLJIVANJE NA WORKGROUP INFORMATION DATOTEKU ............ ERROR! BOOKMARK NOT


DEFINED.

OBNAVLJANJE ILI PONOVNA IZRADA WORKGROUP INFORMATION DATOTEKE................ERROR!


BOOKMARK NOT DEFINED.
UPRAVLJANJE KORISNIČKIM I GRUPNIM NALOZIMA .......... ERROR! BOOKMARK NOT DEFINED.
KREIRANJE NALOGA, DODAVANJE KORISNIKA I ŠTAMPANJE INFORMACIJA ....................ERROR!
BOOKMARK NOT DEFINED.
BRISANJE NALOGA I UKLANJANJE KORISNIKA ................... ERROR! BOOKMARK NOT DEFINED.

iv
PREGLED ILI PRENOS VLASNIŠTVA ................................... ERROR! BOOKMARK NOT DEFINED.

ZAŠTITA REPLICIRANIH BAZA PODATAKA ......................... ERROR! BOOKMARK NOT DEFINED.


ZAŠTITA DATA ACCESS STRANICA (DATA ACCESS PAGE) .. ERROR! BOOKMARK NOT DEFINED.
ZAŠTITA VBA KÔDA ........................................................ ERROR! BOOKMARK NOT DEFINED.
IZRADA ADE DATOTEKE .................................................. ERROR! BOOKMARK NOT DEFINED.
Izmena lozinke nad Access projektom .............................Error! Bookmark not defined.
POVEZIVANJE NA TABELE IZ LOZINKOM-ZAŠTIĆENE BAZE ERROR! BOOKMARK NOT DEFINED.
ZADATAK ZA VEŽBU:........................................................ ERROR! BOOKMARK NOT DEFINED.
10. APLIKACIJE I MDE DATOTEKE ............. ERROR! BOOKMARK NOT DEFINED.
UPOTREBA ALATA SPLIT DATABASE ................................ ERROR! BOOKMARK NOT DEFINED.
KREIRANJE GLAVNOG OBRASCA ....................................... ERROR! BOOKMARK NOT DEFINED.
Zadatak za samostalan rad: ............................................Error! Bookmark not defined.
Definisanje početnog obrasca aplikacije ........................Error! Bookmark not defined.
Kreiranje glavnog obrasca upotrebom Switchboard Managera... Error! Bookmark not
defined.
11. RAD U MREŽNOM OKRUŽENJU ............. ERROR! BOOKMARK NOT DEFINED.
PRIPREMA ZA ZAJEDNIČKO KORIŠĆENJE DATOTEKA BAZA PODATAKA...... ERROR! BOOKMARK
NOT DEFINED.

INSTALACIJA MS ACCESSA U MREŽNOM OKRUŽENJU ....... ERROR! BOOKMARK NOT DEFINED.


ZAŠTITA BAZA PODATAKA U MREŽI .................................. ERROR! BOOKMARK NOT DEFINED.
12. POVEZIVANJE SA DRUGIM APLIKACIJAMA .................................................. 153
POVEZIVANJE SA MS WORDOM ........................................................................................... 153
Kopiranje i prevlačenje.............................................................................................. 153
Hyperlink povezivanje................................................................................................ 153
Ubacivanje u Word (Insert)........................................................................................ 154
Izvoz iz Accessa (Export) ........................................................................................... 157
Dugme za povezivanje na obrascu ............................................................................. 157
Zadatak za samostalan rad ........................................................................................ 158
Cirkularna pisma ....................................................................................................... 158
POVEZIVANJE SA MS EXCELOM ........................................................................................... 159
Kopiranje, prevlačenje, izvoz ..................................................................................... 160
Analizirati sa MS Excel-om........................................................................................ 160
Izvedene tabele ........................................................................................................... 160
Importovanje Excelovih tabela u Access.................................................................... 161
VEZA SA INTERNETOM ......................................................................................................... 164
POJAM STRANICE ZA PRISTUP PODACIMA ................................................................................ 165
MOGUĆNOSTI STRANICA ZA PRISTUP PODACIMA ...................................................................... 166
Upotreba alatke Page Wizard za izradu jednostavne stranice za pristup podacima
(DAP) ......................................................................................................................... 167

v
UPOTREBA ALATKE DESIGN VIEW ZA IZRADU STRANICE ZA PRISTUP PODACIMA SA MOGUĆNOŠĆU
AŽURIRANJA .................................................................................................................... 171

RAD SA KONTROLNIM OBJEKTIMA U STRANICAMA ZA PRISTUP PODACIMA .................................. 175


DISTRIBUCIJA PODATAKA KORIŠĆENJEM STRANICA ZA PRISTUP PODACIMA ............................... 180
13. PROJEKTOVANJE RELACIONOG MODELA..................................................... 183
IZRADA RELACIONOG MODELA NORMALIZACIJOM ................................................................ 184
Prva normalna forma (1NF) ...................................................................................... 185
Funkcionalne zavisnosti ............................................................................................. 185
Druga normalna forma (2NF).................................................................................... 186
Treća normalna forma (3NF)..................................................................................... 187
Boyce-Coddova normalna forma (BCNF).................................................................. 188
Četvrta normalna forma............................................................................................. 188
Peta normalna forma.................................................................................................. 190
Normalna forma domena i ključeva (DK/NF) ............................................................ 190
MODEL OBJEKTI-VEZE .......................................................................................................... 190
Struktura modela objekti-veze .................................................................................... 191
Veze ............................................................................................................................ 191
Atribut i domen........................................................................................................... 192
Veza i atribut .............................................................................................................. 193
Slabi entitet................................................................................................................. 193
Apstrakcija ................................................................................................................. 193
Generalizacija i podtipovi .......................................................................................... 193
Agregacija i detaljisanje............................................................................................. 194
Prevođenje objektno-orijentisanog modela u relacioni model................................... 194
Definisanje tabela....................................................................................................... 195
Definisanje i specifikacija integriteta relacionog modela.......................................... 196
E-R model preduzeća.................................................................................................. 197
PROBLEMI PRIMENE I MANE RELACIONOG MODELA .............................................................. 198

LITERATURA................................................................................................................... 200
14. VEŽBE I ZADACI ZA SAMOSTALAN RAD.......................................................... 202
IZRADA FIZIČKOG MODELA INFORMACIONOG SISTEMA, PROJEKTOVANJE BAZE PODATAKA .. 202
IZRADA APLIKACIJA .............................................................................................................. 202
ZADACI ZA SAMOSTALAN RAD .............................................................................................. 203
INDEKS .............................................................................................................................. 212

vi

You might also like