Professional Documents
Culture Documents
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
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.
radnja ili kada se desi neki događaj (na primer pritisnemo neki taster na tas-
taturi ili mišu).
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
(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
[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.
Padajuće liste
Paleta
alatki
Prozor Alati za
Database rad sa
objektima
Lista objekata
okno za definisanje
imena polja i tipa
podatka (definisanje
atributa)
[1]
Znak # je upotrebljen u ovom praktikumu kao oznaka da je dati atribut primarni ključ,
inače nije implementiran u sintaksu SQL jezika.
RADNIK <idbr#,kvalif, ime, posao, rukovodilac, dat_zap, premija, plata, brod$[1] >
[1]
Znak $ je upotrebljen u ovom udžbeniku kao naznaka da je dati atribut spoljnji ključ,
inače nije implementiran u sintaksu SQL jezika.
[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.
Slika 3.10 Access omogućava korisniku da bira ulaznu masku za svoje podatke
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
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
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:
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.
Slika 3.18 Pronalaženje podatka ili dela podatka u tabeli ili koloni (polju)
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.
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.
dugmad za pri-
kazivanje i skri-
vanje kolona
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).
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.
polja
nove
tabele
primeri
tabela primeri polja
izabrane tabele
Slika 3.28 Kreiranje tabele pomoću čarobnjaka
Slika 3.29 Dodavanje atributa tabeli koja se kreira i njihova promena imena
AUTOR KNJIGA
NAPISALI
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,
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
IZDAT
STRUKTURA PONUDA
LOKACIJA
ZAKUPAC
Slika 3.36 E-R model agencije za izdavanje nekretnina
[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>]
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:
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,
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
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.
PRIMER 2: Prikazati IME i POSAO svih radnika koji imaju platu ve-
ću od 2000.
[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.
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.
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” ;
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)
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;
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:
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).
• 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.
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])
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;
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.
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,
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 ,
PRIMER 26: Prikazati IME, POSAO i PLATU radnika koji imaju isti
posao kao Slobo. Upit nazvati qryIstiPosao.
SELECT DISTINCT RADNIK.IME, RADNIK.POSAO, RADNIK.PLATA
FROM RADNIK
WHERE RADNIK.POSAO =(SELECT RADNIK.POSAO
FROM RADNIK
WHERE RADNIK.IME="Slobo");
Union upiti
Ova vrsta upita kombinuje polja (kolone) iz jedne ili 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.
PRIMER 28: Nad tabelom RADNIK (polje IME ) kreirati indeks. Upit
nazvati qryIndeks.
CREATE INDEX ime_index
ON RADNIK ([IME]);
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.
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
PRIMER 32: Izbrisati indeks nad poljem IME u tabeli RADNIK. Upit
nazvati qryBrisiIndeks.
PRIMER 33: Kreirati tabelu RADNIK1 (sa istim atributima kao i tabela
RADNIK), a zatim je izbrisati. Upite nazvati
qryKreirajRadnik1 i qryIzbrisiRadnik1.
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-
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.
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.
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,
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
Slika 5.2 Izgled obrasca nad tabelom ODELJENJE kreiranog pomoću čarob-
njaka Auto Form
Ukupan
Novi broj za-
zapis pisa
Prvi zapis
Posled-
Prethod- nji zapis
Aktivan zapis Sledeći
ni zapis
zapis
Polje za izbor
tabele ili upita
Slika 5.4 Izbor opcije Form Wizard za kreiranje obrasca nad tabelom
RADNIK
Izbor tabe-
le/upita
Izabrana
polja za
Sva polja
obrazac
izabrane
tabele/upita
Slika 5.7 Izbor stila za obrazac koji nudi opcija Form Wizard
[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”.
Slika 5.10 Form Wizard - izbor tabela i atributa nad kojima kreiramo obrazac
Kretanje kroz
zapise tabele
ODELJENJE
Slika 5.17 Izgled obrasca koji sadrži samo neke atribute (polja) iz tabele
učešće
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-
Okvir sa
alatkama
[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…).
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,
Dodavanje labele
Da bismo uneli potrebne izmene u obrazac frmOdeljenjeRadnik, po-
trebno je uraditi sledeće:
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.
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-
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”.
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)”.
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).
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.32 Izbor akcije koja se dešava nakon pritiska na komandno dugme
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.
[FORMS]![frmPROJEKAT]![BRPROJ] .
6. nakon ovoga upit ProjekatRadnik dobija izgled u QBE-u kao na slici 5.36,
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.
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.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
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
je sortiran po poslovima, a ako više radnika obavlja isti posao biće pore-
đani po abecednom redosledu.
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.
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,
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.
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.
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
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).
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.
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).
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.
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).
Š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.
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.
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).
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
Slika 12.6 Biranje akcije za komandno dugme koje treba da otvori aplikaciju
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.
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.
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:
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,
Slika 12.20 Izgled dela HTML kôda stranice koji je generisao Access
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.
Slika 12.26 Izgled stranice za pristup podacima u page view nakon izabrane opcije
Group Filter Control
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.
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.
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.
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.
[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.
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).
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:
Pošto je pri dekompoziciji broj kolona (atributa) u svakoj novoj tabeli sve
manji, to je ovakav postupak uvek konačan.
š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
Knjiga (Predmet,Knjiga)
Relacija je u Četvrtoj normalnoj formi (4NF): ako u njoj nisu date dve
(ili više) nezavisnih višeznačnih činjenica.
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.
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.
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.
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.
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)
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):
Literatura
11. Wynkoop S. (1999) “Vodič kroz SQL Server 7.0 “, CET, Beograd.
12. Grupa autora (1999) “Access 2000 korak po korak “, CET, Beograd
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
RUKOV
IDBR IME POSAO KVALIF DATZAP PREMIJA PLATA BROD
ODILAC
RUKOV
IDBR IME POSAO KVALIF DATZAP PREMIJA PLATA BROD
ODILAC
Datum
Zadatke pregledao
Kreiranje upita
4.1. Prikazati nazive i lokacije svih odeljenja u preduzeću.
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.10. Prikazati imena svih radnika koji u imenu imaju slovo “o”.
4.29. U tabelu radnik uneti podatke o sledećem radniku: 5555, Milena, anali-
tičar, VSS, 5662, 1.1.2000, 3000, 1500, 10.
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.
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
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
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
iii
ENKODOVANJE I DEKODOVANJE ....................................... ERROR! BOOKMARK NOT DEFINED.
PRIKAZIVANJE ILI SKRIVANJE OBJEKATA U DATABASE PROZORU ..... ERROR! BOOKMARK NOT
DEFINED.
iv
PREGLED ILI PRENOS VLASNIŠTVA ................................... ERROR! BOOKMARK NOT DEFINED.
v
UPOTREBA ALATKE DESIGN VIEW ZA IZRADU STRANICE ZA PRISTUP PODACIMA SA MOGUĆNOŠĆU
AŽURIRANJA .................................................................................................................... 171
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