1. uvod u ms access - vipos

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.

Upload: others

Post on 30-Oct-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1. Uvod u MS Access - VIPOS

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.

Page 2: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 2

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.

Page 3: 1. Uvod u MS Access - VIPOS

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

Page 4: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 4

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),

Page 5: 1. Uvod u MS Access - VIPOS

Osnovne karekteristike MS Access-a

Sistem za upravljanje bazama podatka

5

• 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

Page 6: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 6

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).

Page 7: 1. Uvod u MS Access - VIPOS

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.),

Page 8: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 8

• 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

Page 9: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

9

(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

Page 10: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 10

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.

Page 11: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

11

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).

Page 12: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 12

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

Prozor Database

Padajuće liste

Paleta alatki

Alati za rad sa

objektima

Lista objekata

Page 13: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

13

(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:

Slika 3.5 Maska za definisanje tipa podatka i svojstava budućih atributa

• Field name (ime atributa), • Data type (tip podatka) ,

okno za opis svojstava polja - opis atributa

okno za definisanje imena polja i tipa

podatka (definisanje atributa)

Page 14: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 14

• 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č.

Page 15: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

15

• 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.

Page 16: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 16

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.

Page 17: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

17

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.

Page 18: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 18

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.

Page 19: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

19

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),

Page 20: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 20

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,

Page 21: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

21

• 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.

Page 22: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 22

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

Page 23: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

23

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).

Page 24: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 24

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).

Page 25: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

25

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.

Page 26: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 26

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.

Page 27: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

27

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

Page 28: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 28

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

Page 29: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

29

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

Page 30: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 30

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

Page 31: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

31

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.

Page 32: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 32

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),

Page 33: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

33

• 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.

Page 34: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 34

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

Page 35: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

35

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.

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

dugmad za pri-kazivanje i skri-

vanje kolona

Page 36: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 36

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:

Page 37: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

37

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.

Page 38: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 38

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,

Page 39: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

39

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

Page 40: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 40

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

Page 41: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

41

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-

Page 42: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 42

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).

Slika 3.28 Kreiranje tabele pomoću čarobnjaka

primeri tabela primeri polja

izabrane tabele

polja nove tabele

Page 43: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

43

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

Page 44: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 44

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-

Page 45: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

45

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-

Page 46: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 46

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.

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,

AUTOR KNJIGA

NAPISALI

Page 47: 1. Uvod u MS Access - VIPOS

Kreiranje baze podataka

Sistem za upravljanje bazama podataka

47

• 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,...)

Page 48: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 48

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, ...)

Slika 3.36 E-R model agencije za izdavanje nekretnina

VLASNIK

STRUKTURA

LOKACIJA

PONUDA IZDAT

ZAKUPAC

Page 49: 1. Uvod u MS Access - VIPOS

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>

Page 50: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 50

[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),

Page 51: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

51

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,

Page 52: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 52

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

Page 53: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

53

(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.

Page 54: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 54

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.

Page 55: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

55

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

=, >, <,

>=, <=, <>

1. RADNIK.IME='Slobo' 2. RADNIK.BROD=20

Standardni operatori poređenja, rade gotovo isto kao i u drugim program-skim jezicima. Uočimo da kriterijum za atribute tipa Text stavljamo među jednostruke znake navoda (' ').

AND, OR, NOT

3. RADNIK.POSAO='vozac' AND RADNIK.DATZAP>#1.1.1980#

4. RADNIK.KVALIF=’VSS’ OR RADNIK.KVALIF=’VKV’

Standardni logički operatori, možemo ih kombinovati u jednoj klauzuli WHERE. Prvo se izračunava NOT, zatim AND i na kraju OR. Ako želimo promeniti redosled operacija moramo koristiti zagrade.

BETWEEN 5. RADNIK.DATZAP BETWEEN

#1.1.1965# AND #17.12.1990#

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-NOST. Alternativni iskaz bi bio: RADNIK.DATZAP>=#1.1.1965# AND RADNIK.DATZAP<=#17.12.1990#

LIKE

6. RADNIK.IME LIKE 'M*' 7. RADNIK.IME LIKE 'Pavle' 8. RADNIK.IME LIKE '*S*' 9. RADNIK.IME LIKE 'S[a,e,i]*'

Operator pogodan za pretraživanje. Prilikom postavljanja uslova mogu se koristiti i takozvani “jocker” znaci i to [?] (koji zamenjuje neki, bilo koji znak) i [*] koji zamenjuje sve znake (proiz-voljan niz znakova-string).....

IN, NOT IN

10. RADNIK.POSAO IN ('UPRAVNIK', 'DIREKTOR')

11. RADNIK.KVALIF NOT IN ('VSS', 'VKV')

Vraća vrednost tačno (TRUE) ako se vrednost levo od ključne reči IN pok-lapa sa nekom od vrednosti koja se 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";

Page 56: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 56

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

Page 57: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

57

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).

Page 58: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 58

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.

Page 59: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

59

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

Page 60: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 60

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” ;

Page 61: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

61

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

Page 62: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 62

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

Page 63: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

63

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.

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-

INNER JOIN

LEFT OUTER JOIN

RIGHT OUTER JOIN

Page 64: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 64

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,

Page 65: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

65

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:

Page 66: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 66

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

Page 67: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

67

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

Avg() Prosek vrednosti u jednoj koloni Svi tipovi osim: Text, Me-mo i OLE

Count() Ukupan broj vrednosti nekog polja koja su Not Null Svi tipovi polja

First() Vrednosti nekog polja u prvom zapisu Svi tipovi polja

Last() Vrednosti nekog polja u poslednjem zapisu Svi tipovi polja

Max() Najveća vrednost nekog polja Svi tipovi osim: Text, Me-mo i OLE

Min() Najmanja vrednost jednog polja Svi tipovi osim: Text, Me-mo i OLE

StDev(); StDevP()

Statistička standardna devijacija vrednosti jednog polja

Svi tipovi osim: Text, Me-mo i OLE

Sum() Ukupan zbir vrednosti jednog polja Svi tipovi osim: Text, Me-mo i OLE

Var(); VarP()

Statistička varijansa vrednosti jednog polja

Svi tipovi osim: Text, Me-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.

Page 68: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 68

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;

Page 69: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

69

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;

Page 70: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 70

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>),

Page 71: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

71

• 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”.

Page 72: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 72

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-

Page 73: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

73

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:

Page 74: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 74

• 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

Page 75: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

75

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.

Page 76: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 76

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

Page 77: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

77

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

Page 78: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 78

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:

Page 79: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

79

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");

Page 80: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 80

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,

Page 81: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

81

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

Page 82: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 82

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

Page 83: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

83

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-

Page 84: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 84

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

Page 85: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

85

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.

Page 86: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 86

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.

Page 87: 1. Uvod u MS Access - VIPOS

Upiti

Sistem za upravljanje bazama podataka

87

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?

Page 88: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 88

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.

Page 89: 1. Uvod u MS Access - VIPOS

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),

Page 90: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 90

• 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).

Page 91: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

91

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.

Prvi zapis

Prethod-ni zapis Aktivan zapis Sledeći

zapis

Posled-nji zapis

Novi zapis

Ukupan broj za-

pisa

Page 92: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 92

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.

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

Izabrana polja za obrazac

Izbor tabe-le/upita

Sva polja izabrane

tabele/upita

Polje za izbor tabele ili upita

Page 93: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

93

• 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”.

Page 94: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 94

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.

Page 95: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

95

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).

Page 96: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 96

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.

Page 97: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

97

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

Page 98: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 98

kroz zapise iz tabele ODELJENJE odvija se preko komandi u spoljnjem okviru obrasca.

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

Kretanje kroz zapise tabele RADNIK

Kretanje kroz zapise tabele ODELJENJE

Page 99: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

99

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-

Page 100: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 100

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

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…).

Okvir sa alatkama

Page 101: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

101

• 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).

Page 102: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 102

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,

Page 103: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

103

• 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.

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.

Biranje objekata

Labela

Grupa opcija

Dugme za izbor opcije

Kombinovani okvir Komandno dugme

Okvir za nepridruženi objekat

Znak za prekid stranice Podobrazac/Podizveštaj

Pravougaonik

Alatke Control Wizards

Polje za tekst

Dugme za promenu stanja

Polje za potvrdu

Lista

Slika

Okvir za pridruženi objekat

Kontrola Tab Linija Dodatne kontrole

Page 104: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 104

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,

Page 105: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

105

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,

Page 106: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 106

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.

Page 107: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

107

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,

Page 108: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 108

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.

Page 109: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

109

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-

Page 110: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 110

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.

Page 111: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

111

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-

Page 112: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 112

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).

Page 113: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

113

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).

Page 114: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 114

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.

Page 115: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

115

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.

Page 116: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 116

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

Page 117: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

117

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:

Page 118: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 118

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

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

Uslov se nalazi na nekoj kontroli

obrasca Ime obrasca Ime kontrole na ob-rascu iz koje se tes-

tira uslov

Page 119: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

119

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

Page 120: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 120

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).

Page 121: 1. Uvod u MS Access - VIPOS

Obrasci

Sistem za upravljanje bazama podataka

121

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.

Page 122: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 122

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.

Page 123: 1. Uvod u MS Access - VIPOS

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.

Page 124: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 124

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.

Page 125: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

125

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.

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.

Polje za iz-bor tabele

Atributi koji će biti prikazani u

izveštaju

Page 126: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 126

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

Page 127: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

127

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,

Page 128: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 128

• 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.

Page 129: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

129

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.

Page 130: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 130

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.

Page 131: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

131

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

Page 132: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 132

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.

Page 133: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

133

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

Dugme za izbor prika-za izveštaja u režimu projektovanja ili pri-

kaza za štampu

Štampanje izveštaja

Prikaz izveštaja u uvećanom ili uma-

njenom izgledu

Prikaz jedne, dve ili više stranica

izveštaja na ekra-nu

Izbor u kojoj veličini se prika-zuje izveštaj na

ekranu

Zatvaranje izveštaja

Veza sa MS Word i MS Excel

Prelazak na glavni

prozor baze

Kreiranje novih ob-

jekata baze

Page 134: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 134

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.

Page 135: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

135

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.

Page 136: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 136

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

Page 137: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

137

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,

Page 138: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 138

• 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.

Page 139: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

139

Slika 6.17 Konačan izgled izveštaja repPlate

Slika 6.18 QBE prozor upita

Page 140: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 140

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.

Page 141: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

141

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

Page 142: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 142

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.

Page 143: 1. Uvod u MS Access - VIPOS

Izveštaji

Sistem za upravljanje bazama podataka

143

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.

Page 144: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 144

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.

Page 145: 1. Uvod u MS Access - VIPOS

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.

Page 146: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 146

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.

Page 147: 1. Uvod u MS Access - VIPOS

Makroi

Sistem za upravljanje bazama podataka

147

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

Insert Rows Dodavanje reda kada treba dodati akciju između dve postojeće akcije

Delete Rows Brisanje reda, tj. određene akcije

Run Startovanje modula

Single Step Za praćenje svake pojedinačne akcije i pronalaženje problema

Conditions Dodavanje kolone za uslov

Macro Names Dodavanje kolone za ime makroa

Tabela 7.1 Dugmad sa palete alatki za kreiranje makroa

Page 148: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 148

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

Page 149: 1. Uvod u MS Access - VIPOS

Makroi

Sistem za upravljanje bazama podataka

149

• 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.

Page 150: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 150

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.

Page 151: 1. Uvod u MS Access - VIPOS

Makroi

Sistem za upravljanje bazama podataka

151

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.

Page 152: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 152

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).

Page 153: 1. Uvod u MS Access - VIPOS

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:

Page 154: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 154

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.

Page 155: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

155

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).

Page 156: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 156

Slika 12.3 Filtriranje podataka

Slika 12.4 Izbor atributa

Slika 12.5 Prikaz u Wordu podataka importovanih iz Accessa

Page 157: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

157

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

Page 158: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 158

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,

Page 159: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

159

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.

Page 160: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 160

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-

Page 161: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

161

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,

Page 162: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 162

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,

Page 163: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

163

• 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).

Page 164: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 164

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,

Page 165: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

165

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.

Page 166: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 166

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, ...).

Page 167: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

167

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

Page 168: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 168

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

Page 169: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

169

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:

Page 170: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 170

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

Page 171: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

171

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-

Page 172: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 172

č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.

Page 173: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

173

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-

Page 174: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 174

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

Page 175: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

175

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

Page 176: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 176

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.

Page 177: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

177

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

Page 178: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 178

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.

Page 179: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

179

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

Page 180: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 180

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-

Page 181: 1. Uvod u MS Access - VIPOS

Povezivanje sa drugim aplikacijama

Sistem za upravljanje bazama podataka

181

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.

Page 182: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 182

Page 183: 1. Uvod u MS Access - VIPOS

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.

Page 184: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 184

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.

Page 185: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

185

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:

Page 186: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 186

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.

Page 187: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

187

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.

Page 188: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 188

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

Page 189: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

189

škole ili fakulteta, a koja pokazuje koje predmete predaje koji nastavnik i koju literaturu pri tome koristi:

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)

Predmet Nastavnik Knjiga (autor) matematika Milan Peric

Zoran Vasic Jovan

istorija Nikola Jankovic Petrovic

Page 190: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 190

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.

Page 191: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

191

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

Page 192: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 192

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.

Page 193: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

193

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

Page 194: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 194

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.

Page 195: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

195

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:

Page 196: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 196

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

Page 197: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

197

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.

Page 198: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 198

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.

Page 199: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

199

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.

Page 200: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 200

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) “Основи на базите от данни“, Универзитетско издателство Васил Априлов, Габрово

Page 201: 1. Uvod u MS Access - VIPOS

Projektovanje relacionog modela

Sistem za upravljanje bazama podataka

201

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

Page 202: 1. Uvod u MS Access - VIPOS

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.

Page 203: 1. Uvod u MS Access - VIPOS

Vežbe i zadaci za samostalan rad

Sistem za upravljanje bazama podataka

203

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.

IDBR IME POSAO KVALIF RUKOVODILAC DATZAP PREMIJA PLATA BROD

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

cija VSS.

IDBR IME POSAO KVALIF RUKOVODILAC DATZAP PREMIJA PLATA BROD

3.8. Dodati referencijalni integrit za vezu između tabela RADNIK i UČEŠĆE.

Page 204: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 204

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.

Page 205: 1. Uvod u MS Access - VIPOS

Vežbe i zadaci za samostalan rad

Sistem za upravljanje bazama podataka

205

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.

Page 206: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 206

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”.

Page 207: 1. Uvod u MS Access - VIPOS

Vežbe i zadaci za samostalan rad

Sistem za upravljanje bazama podataka

207

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.

Page 208: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 208

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.

Page 209: 1. Uvod u MS Access - VIPOS

Vežbe i zadaci za samostalan rad

Sistem za upravljanje bazama podataka

209

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-

Page 210: 1. Uvod u MS Access - VIPOS

MS Access

Sistem za upravljanje bazama podataka 210

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

Page 211: 1. Uvod u MS Access - VIPOS

Vežbe i zadaci za samostalan rad

Sistem za upravljanje bazama podataka

211

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

Page 212: 1. Uvod u MS Access - VIPOS

Indeks

A Access

izveštaji (reports), ...................................4, 6 makroi (macros),.....................................5, 6 moduli (modules). ...................................5, 6 obrasci (forms),.......................................4, 5 stranice za pristup podacima (data access

pages, DAP), .........................................5 ugrađene funkcije (built-in functions), .....5, 6 upiti (queries), .............................................4

Access tabele (tables), ............................................4

Access povezivanje sa drugim aplikacijama .......253

agregacija ....................................................294 agregatne funkcije..........................................66 akcioni............................................................49 Akcioni upiti ....................................................73 alatka auto format ........................................101 analiza realnog sistema ...............................283 Analiza sistema............................................283 AND ...............................................................55 anomalije......................................................286 Aplikacije......................................................237 Append...........................................................76 Append query.................................................76 apstrakcija....................................................293 atribut ...............................................................7

ime atributa (Field name)....................13, 14 indeksirano polje (Indexed) ......................21 natpis (Caption) ........................................20 opis atributa (Description).........................14 opšta svojstva (General)...........................23 osobine polja (Field Properties) ................14 podrazumevane vrednosti (Default Value)30 pravila ispravnosti (Validation Rule) .........21 provere ispravnosti (validation rule)..........21 svojstva.....................................................19 tekst poruke (Validation Text) ...................21 tip podatka (Data type) .......................13, 14 ulazna maska (Input Mask) ......................23 ulazna maska (Input Mask), .....................20

Atribut...........................................................292 Auto Form ......................................................90 auto format...................................................101 Autonumber ...................................................82 Avg.................................................................67 B backup ...........................................................74 baza podataka

rad u mreži..............................................250 baza podataka .................................................7

kreiranje ....................................................10 bazna relacija...................................................7 BETWEEN .....................................................55 bezbednost, zaštita ......................................252 Blank Access Database .................................10 Boolean........................................................159 Boyce-Codd-ova normalna forma (BCNF)...288 brisanje zapisa (Delete) .................................78 broj kolona (Column Count ). .........................24 broj kolona (Column Count) ...........................24

C Caption .......................................................... 54 Četvrta normalna forma............................... 288 Chart Wizard................................................ 120 cirkularno pismo .......................................... 258 Command Button......................................... 107 ControlTip Text ............................................ 108 Copy ...................................................... 32, 253 Count ............................................................. 67 Crosstab query .............................................. 85 D Data Access Objects (DAO), ....................... 163 Data definition................................................ 80 Data Definition Language (DDL), .................. 49 Data definition upiti ........................................ 80 Data Manipulation Language (DML),............. 49 Database Wizard ..................................... 10, 11 datoteka........................................................... 3 datoteka zaključavanja (Locking Information File, .ldb) ................ 4 definisanje tabela......................................... 294 Dekartov, Kartezijev proizvod........................ 58 Delete ............................................................ 78 Design View................................................... 99 desno spoljnje spajanje ................................. 39 detaljisanje................................................... 294 dijagrami ...................................................... 120 dinami~ka pravila integriteta........................ 296 DISTINCT ...................................................... 73 dodavanje zapisa (Append)........................... 76 domen.......................................................... 292 Druga normalna forma................................. 286 dugme, komandno dugme (Command Button) .............................. 257 dvostruki klik (Double click). .......................... 10 E eksplicitna pravila integriteta ....................... 296 entitet ........................................................... 290 entitet, objekat ................................................. 8 Event Procedure.......................................... 108 Event Procedures ........................................ 153 Excel .................................................... 253, 259 Export .......................................................... 257 Expression Builder....................................... 112 F filtriranje, izdvajanje zapisa (Filter) ................ 36 Find Duplicates Query Wizard..................... 263 First................................................................ 67 Form Wizard .................................................. 91 Forms ............................................................ 89 FROM ............................................................ 50 funkcije ........................................................ 155 funkcionalne zavisnosti................................ 285 G generalizacija............................................... 293 glavni obrazac, komandna tabla (Switchboard) ....................................... 242 građenje izraza (Expression Builder),............ 31 granična kolona (Bound Column), ................. 24 Group By ....................................................... 67 groups/total reports...................................... 123 grupe, grupisanje podataka ........................... 67

Page 213: 1. Uvod u MS Access - VIPOS

213

grupisanje.....................................................137 H Having ............................................................67 history table ....................................................74 Hyperlink ......................................................253 I identifikator entiteta ......................................292 ime korisnika (Username) ............................251 Import ...........................................................261 IN 55 IN, NOT IN......................................................55 INDEKS..........................................................82 Indexed...........................................................82 inforamacioni sistem (IS)..............................283 informacija........................................................3 inherentna pravila integriteta........................296 INNER JOIN.............................................58, 61 Insert ............................................................254 Integritet entiteta ............................................39 Integritet podataka .........................................39 Internet .........................................................264 IS NOT NULL .................................................71 IS NULL..........................................................71 Ispravljanje grešaka .......................................32 izdvajanje prema obrascu (Filter by Form).....36 izdvajanje, filtriranje zapisa ............................36 izračunate kontrole.......................................103 izrada obrazaca na bazi upita ......................114 izvedena relacija ..............................................7 izvestaj

projektovanje...........................................129 izveštaj

kreiranje ..................................................124 izveštaji

tabelarni ..................................................123 izveštaji.........................................................123

sa jednom kolonom.................................123 u više kolona...........................................123

izveštaji sumarni izveštaji po grupama), ...............123

izveštaji nalepnice sa adresama...........................123

izveštaji nezavisni .................................................123

izveštaji sortiranje .................................................137

izveštaji grupisanje ...............................................137

izveštaji (Reports).........................................124 J JOIN ...............................................................58 K Kartezijev (Dekartov) proizvod .......................58 Klauzula FROM..............................................50 klauzula having ..............................................67 klauzula JOIN.................................................58 klauzula ORDER BY ......................................56 Klauzula SELECT ..........................................50 klauzula WHERE......................................53, 56 klijent-server.....................................................3 klik, (Click). .....................................................10 ključ ..................................................................9 kolona

odmrzavanje .............................................35

skrivanje ................................................... 35 zamrzavanje ............................................. 35

komandna dugmad ...................................... 101 komandno dugme ................................ 107, 148 kontrolni objekati .......................................... 102 kreiranje izveštaja ........................................ 124 kreiranje izveštaja na osnovu parametarskog

upita........................................................ 140 kreiranje izveštaja na osnovu upita.............. 138 kreiranje izveštaja povezanih sa obrascem . 140 Kreiranje makroa ......................................... 145 kreiranje obrazaca ......................................... 89 kreiranje tabele .............................................. 73 kreiranje upita ................................................ 49 kreiranjeupita ................................................. 49 L Label ............................................................ 105 labele ........................................................... 104 Last ................................................................ 67 levo spoljnje spajanje..................................... 39 LIKE ............................................................... 55 logička redundansa...................................... 284 lozinka (Password) ...................................... 251 M mailing labels ............................................... 123 Make – table upit ........................................... 73 Make-table query ........................................... 74 makroi

kreiranje.................................................. 145 makroi (Macros) ........................................... 145 Max ................................................................ 67 mdb datoteka ................................................... 4 MDE datoteke .............................................. 237 Microsoft Jet Database Engine........................ 4 Min ................................................................. 67 model objekti-veze (MOV, E-R model) ........ 283 Model objekti-veze....................................... 290 model podataka ............................................... 7 Modules ....................................................... 154 moduli .......................................................... 153 mreža računara, računarska mreža............. 249 MsgBox........................................................ 159 multicolumn reports ..................................... 123 N natpis (Caption) ............................................. 54 Navigation Buttons....................................... 108 nepotpuna funkcionalna zavisnost............... 285 nepovezane kontrole (Unbound) ................. 102 netačno (False). ........................................... 159 normalizacija................................................ 284 Normalna forma domena i ključeva (DK/NF)290 NOT ............................................................... 55 NOT IN........................................................... 55 Null................................................................. 17 Null-vrednosti ................................................. 70 Nz funkcija ..................................................... 70 O objekat ................................................. 290, 294 objekat (entitet) ................................................ 8 obrada podataka.............................................. 3 obrasci (Forms).............................................. 89 obrazac

glavni obrazac (Switchboard) ................. 242 početni .................................................... 243

obrazac .......................................................... 89 izmena obrasca ...................................... 104

Page 214: 1. Uvod u MS Access - VIPOS

214

izrada obrazaca na bazi upita.................114 kreiranje ..................................89, 91, 94, 99 projektovanje ..........................................100

odmrzavanje kolona.......................................35 okvir sa alatima (Toolbox)............................103 OLE DB i ActiveX Data Objects (ADO),.......163 Open an Existing file ......................................10 Open DataBase Connectivity (ODBC), ........163 opoziv (Undo).................................................34 OR..................................................................55 ORDER BY ....................................................56 OUTER JOIN .................................................58 P padajuća lista - Combo Box ...........................24 paleta alatki ..................................................101 parametarski ..................................................49 parametarski upit ...........................................83 parametarski upiti.........................................114 Password .....................................................251 Paste..............................................32, 253, 260 Paste Special ...............................................260 Peta normalna forma ...................................289 početni obrazac............................................243 podatak ............................................................3

brojač (AutoNumber) ................................14 datumski (Date) ........................................15 datumski i vremenski (Date /Time) ...........15 hiperveza (Hyperlink)................................15 logički (Logical, Boolean)..........................15 Memo........................................................14 nepostojeći (Null) ......................................15 novac, valuta (Currency) ..........................15 numerički (number)...................................14 Ole objekti.................................................15 text ............................................................14 vremenski (Time) ......................................15

podrazumevane vrednosti (Default Value).....30 podtipovi.......................................................293 podupit (Subquery) ........................................79 polja za tekst ................................................105 potpuna funkcionalna zavisnost...................285 povezane kontrole (Bound)..........................102 povezane tabele (Link Table).......................238 povezivanje (Linking) .......................................1 povezivanje tabela (Link tables),....................29 pravila ispravnosti (Validation Rule)...............30 prevođenje objektno-orijentisanog modela u

relacioni model .......................................294 prevuci i spusti drag-and-drop .....................253 pridruživanje (Atta-ching) .................................1 primarni ključ ......................................16, 25, 39 Primarni ključ .................................................21 primarni ključ (Primary Key)...........................26 prirodno spajanje ...........................................39 procedure događaja (Event Procedures) .....153 procedure za obradu događaja (Ivent Procedure) .........................................156 projektni zahtevi ...........................................283 projektovanje baze podataka i izrada aplikacija ..................................................283 projektovanje obrazaca................................100 Promena redosleda kolona ............................34 Properties.....................................................108 prva normalna forma........................................9 Prva normalna forma (1NF) .........................285 Q QBE ...............................................................50

QBE (Query By Example).......................... 2, 49 R radna grupa (Workgroup) ............................ 251 RDO (Remote Data Object)......................... 163 Referencijalni integritet .................................. 39 Referencijalni integritet .................................. 58 referencijalni integritet (Referential Integrity). 39 relacija ............................................................. 8

binarna veza............................................. 17 unarna veza.............................................. 17

relacija 1:1, 1:N.............................................. 64 relacija između tabela.................................... 37 relacije (Relationships) .................................. 28 relaciona baza podataka ................................. 7 relacioni model ................................................ 8 relacioni model podataka............................. 283

projektovanje .......................................... 283 relacioni sistem za upravljanje bazama podataka

– RSUBP.................................................... 1 Relational Data Base Management Systam.... 1 Replication................................................... 239 Required ........................................................ 81 RIGHT OUTER JOIN..................................... 63 S select ............................................................. 49 SELECT......................................................... 50 select upit ...................................................... 49 SELF JOIN .................................................... 58 single column............................................... 123 sistem analitičar........................................... 283 skrivanje kolona............................................. 35 slabi entitet .................................................. 293 složeni ključ ................................................... 18 sortiranje...................................................... 137 sortiranje, uređivanje zapisa.......................... 36 Spajanje po jednakosti (INNER JOIN)........... 58 spajanje tabela .............................................. 39 Spajanje tabela sa samom sobom (SELF JOIN)

................................................................. 64 spajanje tabele .............................................. 58 Split Database ............................................. 239 spoljnje spajanje ............................................ 58 Spoljnje spajanje (OUTER JOIN) .................. 62 LEFT OUTER JOIN ....................................... 63 RIGHT OUTER JOIN..................................... 63 spoljnji ključ ..................................................... 9 SQL (Structured Query Language).................. 2 SQL specific ............................................ 49, 80 Startup ......................................................... 247 stati~ka pravila integriteta............................ 296 StDev............................................................. 67 Structured Query Language (SQL)…………..49 strani ključ...................................................... 17 stranica za pristup podacima (Data Access

Pages, DAP) .......................................... 264 struktura relacionog modela ...................... 8, 10 Subquery ....................................................... 79 svojstva kontrola (Properties) ..................... 103 svojstva obrazaca (Properties) .................... 103 Switchboard Manager.................................. 243 System ID ........................................................ 4 System.mdw ............................................ 4, 251 T Tab index..................................................... 109 tabela, (table)................................................. 13 tabela

automatsko kreiranje tabele ..................... 13

Page 215: 1. Uvod u MS Access - VIPOS

215

prirodno spajanje ......................................39 spajanje.....................................................39

tabela kreiranje, izrada ........................................16 povezane tabele........................................13 relacija između tabela ...............................37 ručno kreiranje tabele ...............................13 tabelarni prikaz (Datasheet View). ............22 tabelarni prikaz (Datasheet)......................30 uvoz (Import).............................................27 uvoz tabele................................................13

tabelarni prikaz (Datasheet) ...........................30 tabelarni prikaz (Table Datasheet) .................36 tabular reports ..............................................123 tačno (True),.................................................159 Text Box .......................................................105 THETA JOIN ..................................................58 tip entiteta.....................................................290 tip veze.........................................................291 Toolbox.........................................................103 tranzitivna funkcionalna zavisnost................286 Treća normalna forma (3NF)........................287 trivijalna funkcionalna zavisnost...................286 U ugnježdeni upit (Subquery) ............................79 ugnježdeni upiti ..............................................57 ugrađene funkcije (Built-In-Functions) ...........31 ugrađivanje (Embending) .................................1 unakrsni, crosstab upit ...................................49 unbound reports ...........................................123 Union upiti ......................................................80 unos podataka................................................31 unutrašnje spajanje ........................................58 Update............................................................77 upit..................................................................49

akcioni.......................................................49 kreiranje ....................................................49 parametarski .............................................49 parametarski .............................................83

pronađi duplikate (Find Duplicates Query Wizard)................................................ 26

select upitni blok....................................... 49 SQL specific ............................................. 49 unaksni crosstab....................................... 49

upit (Query) .................................................... 49 upit na bazi primera ....................................... 50 upit nad više tabela........................................ 57 upit sa izračunatim vrednostima .................... 66 uređivanje, sortiranje zapisa .......................... 36 Username .................................................... 251 uvoz tabela (Import) ....................................... 27 uvoza-izvoza tabele (Import table)............... 238 V Var ................................................................. 67 VarP............................................................... 67 VBA.............................................................. 154 veza

tip 1:1, 1:N i N:M....................................... 37 tipa 1:N (jedan prema više), ..................... 17

veza, relacija između tabela .......................... 37 veze ............................................................. 291 Visual Basic For Application, VBA ............... 167 Visual Basic for Applications VBA ................... 1 vrsta izvora reda, poreklo reda (Row Source

Type) ........................................................ 24 W Where ............................................................ 67 WHERE.................................................... 53, 61 Word ............................................................ 253 Z zaključavanje zapisa (Lock)......................... 250 zamrzavanje kolona....................................... 35 zaštita baza podataka.................................. 251 zero-length string ........................................... 71 мenjanje podataka (Update) .......................... 77

Page 216: 1. Uvod u MS Access - VIPOS
Page 217: 1. Uvod u MS Access - VIPOS

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

Page 218: 1. Uvod u MS Access - VIPOS

ii

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

Page 219: 1. Uvod u MS Access - VIPOS

iii

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.

Page 220: 1. Uvod u MS Access - VIPOS

iv

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.

Page 221: 1. Uvod u MS Access - VIPOS

v

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

Page 222: 1. Uvod u MS Access - VIPOS

vi

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