S P E C I J A L N I D O D A T A K
Microsoft Access 2007 na novoj radnoj površini
Branislav Mihaljev
#138novembar 2007
� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
M icrosoft Access je program za rad sa bazama podataka i deo
je paketa Microsoft Office Professional, odnosno Microsoft Office Enterprise. U verziji 2007 promenjen je kompletan korisnički interfejs, ali i mnogo više od toga, pri čemu je većim delom očuvana kompatibilnost sa starijim formatom baze podataka. Iako je proizvođač uložio mnogo truda (a samim tim i novca) u istraživanje interfejsa s ciljem da program učini intuitivnim, mnogi korisnici nalaze da je on i dalje veoma zahtevan za savladavanje, jer se ispod naizgled jednostavnih opcija krije okean mogućnosti i potpuno novih termina
koji su specifični za programe za rad sa bazama podataka.
Za razliku od Worda, gde učitate prazan dokument i odmah kucate pismo bez nekih posebnih pravila, kod Accessa morate uraditi mnogo toga pre nego što upišete prvi podatak u bazu. Dodatno, za svaki korak morate poznavati određena pravila, često veoma različita i stroga. Tokom kreiranja baze podataka vi ste programer, dizajner, administrator i arhitekta baze podataka. Loše dizajnirana baza podataka postaje neupotrebljiva, a najgore je to što ne možete jednostavnim izmenama od loše baze načiniti dobru. Polje forme
Access 2007 – novi interfejs, ali i mnogo više od toga
3n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
možete uvećati, smanjiti ili pomeriti; izgled izveštaja možete lako izmeniti, ali ako struktura na koju se sve oslanja ne valja i zahteva izmene, onda i svi zavisni objekti zahtevaju izmene.
Podaci se u bazi podataka čuvaju tamo gde pripadaju, a ne gde se pojavljuju. Npr. u bazi evidencija kupovine i prodaje knjiga naslovi se pojavljuju na prijemnicama ili računima, zatim na izveštajima o prodaji ili stanju zaliha. Ti naslovi se čuvaju samo na jednom mestu – u tabeli naslova knjiga. Nije
dan podatak, pa tako ni naslov knjige, ne bi trebalo da se pojavljuje dva puta zapisan u neke od tabela. Ovim se obezbeđuje takozvani referencijalni integritet podataka izbegavaju se greške pri višestrukom unosu istog naslova. Da je tako u realnom svetu, ne biste imali problema sa pogrešno ukucanim brojem motora automobila ili sa pogrešno upisanim prezimenom u nekom dokumentu koji će vam doneti samo nevolje i mnogo truda pri dokazivanju ispravnosti podataka.
Tabele su nosioci podataka i u svakoj bazi podataka ih ima
onoliko koliko i entiteta sa svojim osobinama. Koristeći prethodni primer, imaćete tabelu sa naslovima knjiga i drugim osobinama koje opisuju knjigu – izdavač, godina izdanja, obim, žanr, kratak opis sadržaja i slično. Informacije o kupovini i prodaji možete čuvati u dve odvojene tabele, koje su povezane sa tabelom knjiga preko polja indeksa. Jedinstven indeks je obično brojčano polje sa vrednostima koje se ne dupliraju u okviru jedne tabele, slično kao što može postojati više gospode sa imenom Pera Petrović ali među kojima svaki imaju svoj jedinstven matični broj; matični broj građanina je u ovom slučaju njegov indeks. Tabele kupovine i prodaje će, umesto punog naslova knjige, sadržati broj preko koga su za
pisi povezani sa tačno određenom knjigom. Koliko tabela će imati vaša baza podataka određuje kvalitet osnove baze podataka. S druge strane, broj tabela mora biti tačno onoliki koliko različitih entiteta opisujete.
Tabela prodaje će sadržati i broj kupca kojim se povezuje sa tabelom kupaca. Zapravo, tabela prodaje knjiga će sadržati samo određene brojeve kojima se beleže datum, količina, vrednost, ali i brojeve kojima se ova tabela povezuje sa drugim tabelama. Kada korisnik otvori ovu tabelu, malo toga će mu biti jasno. Zato se češće koristi naredni objekat – upit (Query).
Upiti su objekti koji filtriraju podatke za različite potrebe. Njima možete izdvojiti sve podatke o prodaji za određeni datum, sve kupce iz određenog perioda ili mesta, zatim
Objekti baze podataka
� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
sve knjige sa istim izdavačem i slično. Najčešće se koriste kao izvor podataka za izveštaje, gde se podaci filtriraju po određenim kriterijumima. Njih, takođe, možete koristiti za kombinovanje podataka iz više tabela. Gledajući tabelu prodaje sa vezama ka tabeli knjiga i tabeli kupaca, umesto brojeva zapisa knjige i kupca prikazaćete naslov knjige i ime kupca, što je za korisnika već razumljiviji oblik podataka. Ovakav upit može sadržati i različite formule za sabiranje, prebrojavanje ili pronalaženje proseka. Zaseban oblik upita za izdvajanje podataka naziva se Crosstab upit (unakrsni proračun) i njime možete prikazati različite proračunate vrednosti grupisane prema određenom događaju.
Osim upita za izdvajanje podataka, postoje i druge vrste
upita. Najčešće se koriste akcioni upiti kojima se podaci uklanjaju iz tabele, kopiraju iz jedne u drugu tabelu ili kojima se menjaju podaci. Oni se uglavnom koris
te za automatizaciju dosadnih poslova ručnog kopiranja ili uklanjanja podataka. Ako vas na ovom mestu zanima šta je upit u osnovi, recimo: to je iskaz pisan u zasebnom jeziku koji se zove SQL jezik. On se koristi isključivo u bazama podataka i, osim u upitima, koristi se na mestima gde se filtriraju podaci. O SQL jeziku ćemo napisati više nekom drugom prilikom.
Za unos i pregled podataka najčešće se koriste forme (možda bi
Tabela baze podataka
Upit za izdvajanje podataka
�n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
bolje bilo reći formulari). Forme imaju dvojaku funkciju: služe za unos i obradu podataka u korisnički prihvatljivom obliku i mogu sadržati programirane akcije u zavisnosti od događaja koje korisnik inicira. Događaj (engl. Event) je svaka akcija koju korisnik učini. Čim korisnik pokrene miša inicira se događaj MouseMove (pomeranje miša), kada pritisne taster aktivira se događaj KeyPress (pritisnut taster), kada korisnik sačuva zapis inicira se nekoliko događaja – pre upisa podataka, nakon upisa podataka itd. Svakom od ovih događaja možete pridružiti makro naredbe ili VBA komande koje će dodatno uraditi nešto umesto korisnika. Forme su objekti koji se najčešće koriste u kompletiranoj bazi podataka.
Za razliku od formi koje su namenjene prikazu podataka na ekranu, izveštaji su namenjeni prikazu podataka u obliku prilagođenom za štampu. Izveštaji za svoj izvor podataka mogu imati tabelu ili upit kojim se združuju i filtriraju podaci iz više tabela. Osim klasičnih izveštaja na papiru formata A4, standardnom za naše podneblje, korišćenjem izveštaja možete štampati omotnice za pisma, nalepnice za adrese, menije resto
rana ili – kraće rečeno – gotovo svaki oblik dokumenta koji možete napraviti u programu za obradu teksta kao što je Microsoft Word.
Za programiranje baze podataka na raspolaganju su dva programska jezika: makro i VBA (Visual Basic for Applica‑tions). Primetite jednu razliku: makro način programiranja u drugim programima Microsoft Office paketa se odnosi na VBA jezik i snimanje akcija korisni
ka koje se automatski prevode u pisani program; u Accessu je to zaseban način programiranja, gde iz unapred zadate liste komandi birate jednu po jednu i za njih podešavate parametre. Makro jezik je limitiran u mnogo čemu, zato bih vam preporučio da zaboravite na njega i, posebno ako ste početnik, odmah počnete sa učenjem VBA jezika. Sve što
Formulari za unos i obradu podataka
� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
možete učiniti makro jezikom možete i uz VBA, ali i daleko više. VBA jezik je zapravo varijanta Visual Basic jezika, prilagođenog svakom programu Micro‑soft Office paketa ponaosob, u kojem možete programirano pristupati drugim bazama podataka, kontrolisati greške ili praviti petlje, što uglavnom nije dostupno makro jeziku.
VBA komande možete pisati za svaki objekat ponaosob. Program koji nije vezan za neki specifični objekat ili element i koji se obično može upotrebiti
u drugim bazama podataka naziva se funkcija i smešta se na kartici modula. Primer jedne funkcije je funkcija za zamenu karaktera. Nju pozivate definisanu određenim parametrima: string koji sadrži karakter koji želite da zamenite, karakter koji se zamenjuje i karakter koji ga zamenjuje. Funkciju možete pozvati iz bilo kog dela programa. Nažalost, ne možemo reći da je VBA jednostavan jezik (naprotiv!) ali možete kre
nuti sa jednostavnim funkcijama i postepeno napredovati.
Pravila baze podatakaPostoje određena pravila u izgra
dnji baze podataka koja se grubo dele na tri grupe: ona koja se moraju poštovati bez izuzetaka, ona koja su formalno obavezna ali se mogu izbeći i ona koja su preporučljiva ali ne i obavezna.
Iz prve grupe izdvajamo pravila definisanja vrste podataka. Svaki podatak u bazi mora biti definisan kojeg je ti
pa (datum, broj, tekst...), odnosno kojeg podtipa (broj bez decimala, broj sa decimalama, tj. Long podtip ili Byte podtip...). Naravno, sve podatke možete smeštati u tekstualni tip polja, ali kasnije malo toga možete uraditi s takvim podaci
ma. Npr. brojeve smeštene u tekst polje ne možete sabrati ili oduzeti, datume smeštene u tekst polje ne možete sortirati rastućim ili opadajućim redosledom. Ujedno, svaku promenljivu koju koristite u programu morate definisati po tipu – vrsti podataka koje će pamtiti; u suprotnom, ona postaje promenljiva tipa Variant, koja formalno može da pamti bilo koji podatak ali troši mnogo memorije i operacije sa ovom pro
Korišćenjem izveštaja štampaju se podaci iz baze podataka
�n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
menljivom obavljaju se daleko sporije u odnosu na definisane promenljive.
Od pravila koja su obavezna ali se mogu izbeći izdvajamo pravila normal‑izacije baze podataka. Postoji nekoliko nivoa pravila normalizacije baze podataka, a za početak je dovoljno da se držite onog koje govori o dupliranju tekstualnih podataka: izbegavajte kreiranje tabela koje će sadržati dupliran naziv entiteta (kao što je naziv knjige u tabeli računa). Umesto toga, napravite novu tabelu sa jedinstvenim nazivima knjiga i povežite je sa tabelom računa upotrebom indeksnog polja. Čuvajte podatke tamo gde pripadaju, a ne tamo gde se pojavljuju. Postoje i retki izuzeci, kada se namerno odustaje od pravila normalizacije, ali o tome kasnije.
Zbog oštećenja baza podataka koja nastaju kada jednu bazu istovremeno pokreću dva ili više korisnika, dodao bih listi obaveznih pravila ono koje se odnosi na deljenje baze podataka na dva dela: jedan deo sadrži samo ta
bele (backend), a drugi sve ostale objekte (korisnički interfejs ili frontend). Ovom tehnikom instalirate bazu podataka sa podacima samo jednom. Vi možete da nastavite da radite na unapređenju interfejsa programa bez potrebe da od korisnika tražite i deo koji sadrži već unete podatke.
Postoje tri dobra razloga za razdvajanje baze podataka. Prvo, podaci su najčešće privatne prirode i korisnici ih nerado daju. Drugo, ne postoji prekid u radu korisnika dok vi radite na
Makro i VBA jezici za programiranje baze podataka
8 PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
unapređenju interfejsa, jer bi se u tom slučaju svi uneti podaci izgubili kada vi vratite unapređenu bazu. I treće – ovo je jedini pravilan način deljenja aplikacije u lokalnoj mreži računara. Zapamtite savet: iako je moguće deliti istu bazu podataka u lokalnoj mreži (misli se na jedinstvenu bazu koja sadrži i podatke i korisnički interfejs), ne činite to. U retkim slučajevima može doći do oštećenja baze podataka i nepovratnog gubitka informacija.
U poslednju grupu spadaju smernice kod imenovanja objekata u bazi podataka, poznatije pod nazivom „Mađarska notacija“. Ona se odnosi na način po kojem formirate nazive objekata, polja ili promenljivih u bazi podataka, tako da čitanjem naziva odmah postaje jasna vrsta i namena promenljive ili poreklo i tip objekta. Uglavnom se svi programeri drže neke varijante „Mađarske notacije“, tako da program postaje lako čitljiv kada pređe od programera programeru na dalji razvoj. Pogledajmo na dva primera kako to izgleda:
Dim text3 as Stringtext3 = TextBox123TextBox234 = text3TextBox345 = TextBox12 * TextBox34
Da biste saznali šta ovaj program radi, prvo bi trebalo da utvrdite koja polja na formi su TextBox123, Text‑Box234, TextBox345, Text12 i konačno TextBox34, a zatim analizirate program. Upotrebom predložene notaci
je za nazivanje objekata baze, ovaj program bi mogao da izgleda ovako:
Dim strAdresaIsporuke as StringstrAdresaIsporuke = _ txtAdresaStanovanjatxtAdresaStanovanja = _ strAdresaIsporukecurVrednostSaPorezom = _ curVrednostBezPoreza * dblPorez
Iz ovog programa čitamo tip podatka i namenu, tako da odmah postaje jasno da program kopira tekst polja adrese stanovanja u tekst polja adrese isporuke i zatim dodaje porez na vrednost isporuke. Ovde je zapravo primenjen deo pravila nazivanja; on predlaže da se nazivu svakog polja doda i pripadnost tabeli baze podataka, ali u tom slučaju nazivi postaju predugački. Pošto obim ovog teksta ne dozvoljava opis svih smernica ovog pravila, možete ih pročitati na Internetu, upisom pojma Hungarian Notation u polje vašeg Web browsera.
U nazivima polja tabela, nazivima tabela, upita i kod drugih objekata ne koristite razmake ili druge specijalne znake. Tabelu nazovite npr. tblRacu‑niKupci, a neko od polja datDatumK‑upovine. Kada naziv tabele i polja sadrži razmak (kao npr. tbl Racuni Kup‑ci i dat Datum Kupovine) svaki put kada poželite da referencirate naziv polja tabele moraćete i svaki naziv polja da ogradite srednjim zagradama, npr. [tbl Racuni Kupci].[dat Datum Kupo‑
�n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
vine], umesto tblRacuniKupci.datDa‑tumKupovine. Nazive ograđene srednjim zagradama morate koristiti svuda: u upitima, formama, izveštajima, VBA, SQL ili makro jeziku, što postaje zamorno i nepregledno. U nazivima polja ili objekata nikako nemojte koristiti rezervisane reči, one za koje Access ima već rezervisanu funkciju: Name, Word, Table, Date, Time, Field... Kada neku od ovih reči upotrebite u nazivu polja tabela i zatim napišete VBA program koji koristi takvo polje, naizgled sasvim ispravan program će prijaviti grešku! Kombinacije s drugim rečima su prihvatljive, tako da možete koristiti txtName ili datDate.
Najzad, ne zaboravite na kopije baze podataka. Pravite ih dnevno, a naročito pre nego što načinite ikakve izmene na bazi podataka. Ukoliko vaš sistem to dozvoljava, dodajte vašu bazu u listu programa za automatsko pravljenje kopija, koji to obično čini noću, dok je računar slobodan.
Za napredne korisnike predlažem još jedno pravilo: pišite funkcije tako da se mogu ponovo iskoristiti. Takve funkcije možete čuvati u zasebnoj bazi podataka i uvoziti ih u radnu bazu podataka kad god vam zatrebaju, što dramatično skraćuje vreme razvoja programa, a ujedno će korisnika impresionirati vaša brzina razvoja programa.
Rad u Microsoft Access‑uTabele i polja
Pozdravni ekran Accessa podeljen je na tri vertikalna de
la. U levom delu možete birati grupe templatea sa lokalnog računara ili sa Internet sajta Microsofta (validacija kopije Microsoft Officea je obavezna!). Po izboru grupe, u središnjem, najvećem delu videćete predloške koje možete upotrebiti za početak rada. Njih možete upotrebiti za upoznavanje sa bazom podataka, jer su ovakvi predlošci često prilagođeni drugom tržištu, gde se određeni podaci razlikuju (npr. format telefonskog broja), a ujedno je sve na engleskom jeziku (valjalo bi sve prevesti na srpski jezik). U desnom oknu na
lazi se lista poslednjih učitanih baza podataka pomoću koje možete otvoriti neku od njih na brz način, duplim klikom na neki od naziva baza podataka.
Najpre treba kreirati bazu podataka, a na raspolaganju su vam dva načina: učitavanje predloška ili započinjanje rada na potpuno praznoj bazi. Ukoliko ste Access već koristili, verovatno posedujete baze podataka koje možete odmah učitati u novi Access. U ovom slučaju, proverite kompatibilnost: stari format baze bi trebalo da radi u novom okruženju, ali su primećeni i izvesni problemi u ovom slučaju.
Po učitavanju postojeće baze podataka, dočekaće vas upozorenje o to
10 PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
me da baza podataka može sadržati program pisan iz zle namere. Ovaj modul samo upozorava – to nije antivirusni program. Da biste omogućili izvršavanje programa, morate potvrditi opciju Enable this Content, koja se nalazi u oknu sigurnosnih opcija, i to svaki put kada učitate bazu podataka, makar i istu. Način da prevaziđete potrebu da uvek iznova potvrđujete da verujete programu jeste da bazu dodate u Trusted Locations, koje se nalaze u meniju opcija Access programa.
Access može učitati i raditi sa starijim formatom baze MDB. Prvi put kada učitate takvu bazu u novu verziju Accessa, on će dodati određene skrivene objekte bazi koji ne utiču na kompatibilnost formata baze podataka sa prethodnom verzijom. Takvu bazu možete ponovo učitati u prethodnu verziju Accessa. Format nove baze podataka ćete prepoznati po novoj ekstenziji u nazivu datoteke, koji sada glasi ACCDB. Novi Ac‑cess, takođe, može inicijalno da sačuva podatke u MDB formatu, što ćete koristiti u slučaju kada želite da takvu bazu podataka delite sa korisnikom koji nema instaliran novi Access. Da biste to učinili, kliknite na Office taster (veliki kružni taster u
gornjem levom uglu interfejsa programa) i zatim kliknite na Save As. Vodite računa da ne koristite nove funkcije, jer one neće funkcionisati u starijoj verziji programa.
Komandna trakaStari korisnici će primetiti veliku
razliku između starog sistema menija i novog ribbona. To je sistem tastera poređanih po karticama, gde su određene kartice uvek dostupne a neke od njih samo kada odaberete određeni objekat. Kažemo da je interfejs kontekstno orijentisan – menja se u zavisnosti od odabranog objekta, tj. u zavisnosti od onoga što radite.
Ako smatrate da traka zauzima previše mesta na radnoj površini vašeg monitora, možete je umanjiti tako da zauzme najmanji mogući prostor. Kliknite desnim tasterom miša na ribbon
Prvi ekran programa
11n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
i odaberite Minimize the Ribon ili dva puta kliknite na aktivnu karticu i pritisnite kombinaciju tastera Ctrl+F1. Na sličan način vraćate ribon na prethodnu veličinu.
Iako kažemo da meniji više ne postoje, jedan je ipak zadržan i možete ga videti klikom na taster Office. On je podeljena na tri dela. U levom delu su akcije koje možete izvršiti (snimanje podataka, štampanje izveštaja, otvaranje ili zatvaranje baze podataka), dok se u desnom nalaze dodatne opcije koje se odnose na odabranu akciju. U donjem delu se nalazi taster čiju poziciju valja zapamtiti, jer ćete mu se kasnije više puta vraćati: taster za pristup oknu za podešavanje Accessa.
Database Window je u prethodnim verzijama korišćen za pristup objektima baze podataka koji su bili grupisani po karticama. Svaka kartica je predstavljala grupu objekata (tabele, upiti, izveštaji...) i klikom na svaku od njih mogli ste videti listu pripadajućih objekata. Ovaj vid prikaza je smenjen novim Navigation Pane oknom. U osnovi, njime možete pristupati objektima otvaranjem padajućih lista koje pred
stavljaju grupe objekata. Zatim u listi nad željenim objektom možete izvršite različite komande; dupli klik pokreće objekat, dok desni klik pruža različite mogućnosti manipulacije objektom. Ako se sećate prečice F11 za prikaz Database Window okna u prethodnoj verziji, ona važi i sada. Pomoću F11 sakrivate i prikazujete Navigation Pane. Novi oblik prikaza je zgodan za baze sa malim brojem objekata, ali i rogobatan za manipulisanje kada baza sadrži veći broj objekata.
Ono što je dobro kod Navigation Pane okna je mogućnost različitih pogleda na objekte baze podataka. Na primer, prelaskom u pogled Tables and Related Views videćete objekte grupisane po vezama između tabela i ostalih zavisnih objekata. Tako možete videti sve objekte koji su nastali od osnovnog objekta – tabele studenata ili sve objekte koji su povezani sa tabelom artikala. Za snalaženje među gomilom objekata namenjena je opcija Filter by Group, ali ako često menjate poglede i filtere radi bržeg pronalaženja objekta – ovo brže shvatite uslovno. Konačno, veću kontrolu nad sadržajem možete ostvariti tako
Traka (ribbon) je zamenila sistem menija
1� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
što ćete kliknuti desnim tasterom na naslovnu liniju Navigation Pane okna i odaberati Navigation Pane Options. Stariji korisnici su nekako navikli da im je sve tu, pod rukom, zato ostaje da vidimo da li će ova vrsta navigacije biti izmenjena u novoj verziji koja je u pripremi. Naime, korisnici često kreiraju određeni broj privremenih objekata koje valja obrisati na kraju rada, a potraga za njima koristeći Navigation Pane može da potraje.
Ostatak prostora u centralnom delu prozora je rezervisan za prikaz podataka, formi i izveštaja. Ako držite uključen ribon i okno za navigaciju, ovaj prostor zauzima oko 60% prozora Accessa, što je značajno umanjenje u odnosu na prethodnu verziju. Za ugodan rad je zaista potreban ekran visoke rezolucije. Deo odgovornosti za ovako mali radni deo prozora pada na način kojim se sada prikazuju objekti. Podsetimo, u prethodnim verzijama svaki objekat je otvarao zaseban prozor, kojem ste mogli da menjate veličinu ili da ga povećate na maksimalno raspoloživi prostor. Pokrenuti objekti su se otvarali jedan iznad drugog i mogli ste da se između njih krećete upotrebom kombinacije tastera Alt+Tab, kao da se krećete
između pokrenutih programa. U novoj verziji ovakav sistem je zadržan, kompatibilnosti radi, ali je osnovni i prepo
ručeni sistem prikaza objekata po karticama – svaki otvoreni objekat se prikazuje na svojoj kartici (ovo ujedno dodatno umanjuje raspoloživi prostor za rad).
U gornjem levom uglu Access prozora nalazi se kružni taster sa simbolom Office
paketa. Kao i u drugim programima paketa, klikom na ovaj taster biće prikazan jedini meni. On se sastoji iz tri dela: levi deo sadrži opcije menija, desni deo prikazuje poslednje učitane baze podataka i – veoma važno – tu je taster Access, opcija koju ćete povremeno koristiti za podešavanje programa.
Upotreba template‑aPredlošci su dobar način za po
četak učenja rada sa bazom podataka čijom upotrebom će Access kreirati tabele, relacije, ključeve, upite, formulare, izveštaje i ostale objekte, za početnike većinom objekte sa kojima se prvi put sreću. Proces kreiranja baze podataka započinje planiranjem strukture na osnovu podataka koji će se čuvati. Tokom daljeg rada nakon kreiranja tabela, ali i usled lošeg planiranja, progra
Novo okno navigacije olakšava manipulaciju objektima
13n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
mer baze podataka će činiti izmene u dizajnu tabela. Svaka izmena na ovom, osnovnom objektu baze podataka zahteva izmene na ostalim objektima baze podataka, jer su svi oni vezani za tabele i njihovu strukturu. Dakle, planiranje strukture tabela je osnovni korak u započinjanju kreiranja baze podataka. Predlošci su dobri za početak učenja rada u Microsoft Accessu – iako ne uvek sasvim upotrebljivi, oni vam mogu pomoći da sagledate način po kojem su podaci organizovani i kako su svi ostali zavisni objekti izgrađeni na osnovu strukture podataka.
Predloške posmatrajte kao alatke koje vam mogu pomoći da dođete do baze podataka koju, neznatnim modifikacijama, možete prilagoditi sopstvenim potrebama. Posmatrajmo primer predloška baze podataka za čuvanje kontakata. Ovaj predložak će kreirati sve potrebne objekte i ovakvu bazu možete odmah koristiti za zapisivanje kontakata. Zbog specifičnosti u vezi sa poštanskim brojem ili oblikom broja telefona, možete načiniti izmene tako da ograničite unos poštanskog broja na pet cifara, odnosno možete izmeniti masku za
unos broja telefona prilagođenog formatu koji mi koristimo.
Većinu predložaka koje ćete videti u vašoj instalaciji Accessa ćete morati da preuzmete sa Interneta. Čak i njihov broj i nazivi se mogu razlikovati od onih koje možete videti na našim slikama. Na sreću, jednom postavljen predložak će se uvek nalazi na Web sajtu proizvođača. Krenite tako što ćete pokrenuti Access ili, ako već imate učitanu bazu podataka, zatvorite je (klik na Office taster i zatim na Close Data‑base). Zatim kliknite na New opciju menija. U levoj koloni videćete kategorije predložaka. Odaberite jednu kategoriju. Nazivi predložaka će se pojaviti u velikom oknu s desne strane.
Svaka ikona u ovom oknu predstavlja predložak. Kada klikom na neku od njih odaberete jedan, s desne strane videćete osnovne informacije o predlo
šku. Pregledajte sve predloške u odabranoj kategoriji i odaberite neki od njih koji u najvećoj meri zadovoljava vaše potrebe. Ukoliko pogrešite u odabiru, uvek se možete vratiti na ovaj ekran i odabrati drugi predložak. Tokom kreiranja baze podataka na osnovu predloška moći ćete da zadate ime buduće
Predlošci su dostupni za preuzimanje sa Internet sajta proizvođača programa
1� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
baze podataka. Ime možete slobodno menjati, ali pazite da ostavite ekstenziju .accdb – ona identifikuje datoteku kao Access bazu podataka. Nakon preuzimanja predloška baze podataka sa
Interneta, Access će kreirati stvarnu bazu podataka, koja obično nema mnogo objekata. Najčešće ćete videti jednu tabelu i jedan formular; međutim, predložak kreira mnogo više od jedne tabele ili jednog formulara.
Microsoft Access baza podataka je zapravo kolekcija objekata koji se čuvaju u jednoj datoteci. Njih možete videti upotrebom okna za navigaciju među objektima – Navigation Pane. Okno za navigaciju sadrži grupe sa nazivima Tables (tabele), Queries (upiti), Forms (formulari), Reports (izveštaji) i Mac‑ros (makro naredbe). Svaka od ovih grupa sadrži objekte grupisane po tipu. Klikom
na naziv grupe videćete objekte grupe, ponovnim klikom na naziv grupe objekti će biti sakriveni.
Objekat pokrećete tako što dva puta kliknete na njega. Obično, on će se
učitati u najvećem delu radnog ekrana koji se nalazi sa desne strane okna za navigaciju među objektima. Ukoliko ste već koristili neku od prethodnih verzija Accessa, primetićete razliku u načinu prikaza učitanog objekta: novi Ac‑cess učitava objekte tako da zauzmu maksimalnu radnu površinu, dok se svaki objekat prikazuje u svojoj zasebnoj kartici. Za po
ređenje, u prethodnim verzijama se svaki objekat učitavao u sopstvenom prozoru, koji se pojavljivao iznad ostalih prozora. Ideja iza novog načina učitavanja i prikaza objekata je da se olakšaju snalaženje i navigacija među objektima. Ovakav način prikaza objekata nije isključiv – možete zahtevati od objekta da se učitava na stari način, u svom zasebnom prozoru.
Objekti baze podataka se ne pojavljuju niotkuda. Neko je nekada morao da ih kreira, a to se čini u takozvanom dizajn pogledu objekta (Design View). Objekat učitavate u režimu izmene di
Nakon izbora grupe predložaka, program prikazuje listu dostupnih template‑a sa sajta proizvođača
Tasteri za brz pristup pogledu na obje‑kat: osnovni oblik, PivotTable pogled, PivotChart pogled i dizajn pogled
1�n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
zajna na različite načine, u zavisnosti od toga da li je objekat učitan ili ne. Kada je objekat učitan, kliknite desnim tasterom miša na karticu objekta i odaberite Design View. Ako objekat nije učitan, pronađite ga u listi okna za navigaciju i
kliknite desnim tasterom na njegov naziv i zatim odaberite Design View stavku kontekstnog menija. Objekat možete pokrenuti u režimu izmene dizajna i tako što ćete pritisnuti taster Ctrl i zatim dva puta kliknuti na naziv objekta.
Relacije između tabela
Access baza podataka je relacioni sistem podataka, što znači da on
može čuvati veliku količinu podataka u različitim tabelama koje su međusobno u najčešćoj vezi jedankaviše. Primera ima mnogo, ali pomenimo neke od njih, kako bi ovakva relacija bila jasnija: jedan kupac može imati više računa (kupovina), gde svaki pojedinačni račun može imati više stavki (roba). U ovom slučaju možemo reći da baza podataka sadrži tri tabele, koje su povezane na određeni način. Tabela kupaca je sa tabelom računa u vezi jedankaviše (jedan kupac može imati više računa), dok je tabela računa u vezi sa tabelom stavki računa takođe u relaciji jedankaviše. Konačno, možemo reći, prateći relacije između tabela, da je tabela kupaca takođe u relaciji jedankaviše sa tabelom u kojoj se čuvaju stavke računa.
Baza podataka omogućava čuvanje informacija kojima se opisuje deo koji se odnosi na prodaju robe, dok je struktura tabela normalizovana tako da se podaci u tabelama koje su osnovni ključ ne ponavljaju. U tabeli kupaca ćete sa
mo jednom zapisati naziv kupca i ostale njegove podatke i zatim za njega vezivati račune. U tabeli računa će se broj računa sa ostalim specifičnim podacima pojavljivati samo jednom, dok ćete za nju vezivati stavke računa. U poslednjoj tabeli u nizu, tabeli stavki računa, dozvoljeno je višestruko pojavljivanje istog naziva robe, jer se ona nalazi kao poslednja u nizu relacije kaviše.
Relacija jedankaviše se mora izgraditi na nivou tabela. Prema njihovom nazivu ili prema podacima koje čuvaju, Access ne može sam da zaključi koje tabele će biti u međusobnim relacijama i kakve će te relacije biti, niti će se one formirati same od sebe. Nakon što napravite plan, tj. strukturu budućeg informacionog sistema, vi ćete, tokom dizajniranja tabela, kreirati određene relacije – to je vaš deo posla, osim u slučaju kada ste upotrebili predložak u kome je neko to već pripremio. Relacije između tabela možete videti u zasebnom oknu, koje se (logično) zove Re‑lationship Window; njega učitavate klikom na ribon Database Tools, pa zatim na taster Relationships.
1� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
Svaki od objekata koje vidite u ovom prozoru predstavlja tabelu, dok su stavke unutar okna tabele nazivi polja tabela. Relacije između tabela možete kreirati tako što ćete prevući polje iz jedne tabele na polje druge tabele. Ovde morate voditi računa da su polja ko
ja povezujete indeksna polja i da ona čuvaju isti tip podataka. Linije koje povezuju tabele su zapravo relacije. S jedne strane relacije videćete umanjen broj 1, dok ćete s druge strane relacije videti simbol koji predstavlja oznaku za beskonačno (nalik položenoj cifri 8). Prva oznaka predstavlja deo relacije jedanka, dok druga oznaka predstavlja deo relacije kaviše.
Iako relacije (ali ne i položaj tabela u oknu relacija!) možete kreirati ili menjati u ovom prozoru, preporučujemo vam da to ne činite. Rezultat verovatno
neće biti dobar; zapravo, postoji verovatnoća da ćete pokvariti funkcije svih ostalih zavisnih objekata – upita, formulara ili izveštaja. Smatrajte prozor relacija, barem za početak, prozorom u kojem možete videti kako su tabele povezane. U sistemu sa dve ili tri tabele on nema veći značaj, jer ćete verovatno sami zaključiti kako su tabele povezane, ali u sistemu sa više desetina tabela pogled na relacije među tabelama ima neprocenjivu vrednost.
Kako se onda kreiraju ovakve relacije? Tokom dizajniranja tabele kupaca, formirajte novo polje sa nazivom IDK‑upac, postavite tip polja na AutoNum‑ber i proglasite ovo polje primarnim ključem, klikom na ikonu sa sličicom ključa. AutoNumber je zaseban tip polja koje omogućava čuvanje Long Inte‑ger brojeva i koje se samo popunjava, najčešće u rastućem redosledu. Kada započnete unos podataka u polje naziva kupca, Access će sam dodati prvi sledeći broj u ovo polje. Namena ovog polja je da u tabeli uvek imate jedinstvenu oznaku zapisa koja će se uvek razlikovati od ostalih oznaka unutar tabele. Ona je jedinstveni identifikator zapisa. U određenim slučajevima možete koristiti i druge oznake za jedinstveni identifikator zapisa, npr. jedinstveni matični broj građana može poslužiti kao jedinstveni identifikator, osim u slučaju kada se pojave dva lica sa istim JMBG brojevima, što je moguće usled greške u administraciji. Preporuka je da uvek koristite AutoNumber tip polja
Ekran relacija sa prikazom relacija tabela baze primera Northwind
1�n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
za jedinstveni identifikator, jer samo u tom slučaju možete biti sigurni da je ovaj broj zaista jedinstven.
Kada završite kreiranje tabele kupaca, tako što ste kreirali i sva druga potrebna polja za opis kupca, zatvorite i sačuvajte tabelu (prema smernicama imenovanja objekata, predlažem naziv tabele tblKupci). Za ovu tabelu ćete vezati buduću tabelu (naziv tabele neka bude tblKupciRacuni) u kojoj će baza podataka čuvati podatke o računima kupca. Osim svih ostalih potrebnih polja za opis računa (broj, datum i slično), potrebno je još jedno polje, kojim ćete svaki račun vezati za određenog kupca. Kreirajte dodatno polje pod nazivom ID‑Kupac. Primetite da je naziv ovog polja isti kao naziv primarnog ključa tabele kupaca. Za tip polja odaberite Lookup Wizard, čime Accessu stavljate do znanja da želite da za ovo polje vežete podatak iz druge tabele i da želite da vam čarobnjak pomogne u ovom postupku. U sledećim koracima čarobnjaka odaberite tabelu tblKupac i dva puta kliknite na naziv polja IDKupac. Nakon završetka rada čarobnjaka obavezno sačuvajte načinjene izmene. Ukoliko već niste sačuvali tabelu pod zadatim nazivom, ukucajte naziv i sačuvajte tabelu; u suprotnom, dovoljno je da kliknite na opciju Yes za snimanje izmena.
Primetićete da svi predlošci, a ujedno i dosta baza podataka sa kojima ćete se sretati, za naziv polja ključa koriste naziv entiteta i zatim oznaku ID. Ja koristim obrnut redosled, jer nalazim
da je ovakvo polje lakše pronaći ukoliko je oznaka ID ispred naziva koji opisuje identitet. Možete koristiti bilo koji od ova dva načina (IDKupac ili Kupac‑ID), ali u oba slučaja preporučujem da koristite ID za polje ključa.
Access je tokom ovog postupka za vas kreirao relacije između tabela. Proverite: otvorite prozor relacija i pogledajte da li su polja IDKupac u obe tabele povezana linijom sa oznakama 1 i položenom osmicom. U polju IDKupac tabele tblKupciRacuni nećete moći da upišete bilo šta, osim broja koji već postoji u tabeli tblKupci. Da biste račun vezali za određenog kupca, moraćete prvo da unesete ime kupca u tabelu kupaca. Prvom kupcu unetom u tabelu kupaca Access će dati broj 1 u polju ID‑Kupac, drugom broj 2, trećem 3 i tako dalje. Kada je tabela kupaca popunjena najmanje jednim zapisom, možete uneti podatke u tabelu tblKupciRacu‑ni. Primetićete da je polje IDKupac u ovoj tabeli opadajuća lista sa unapred zadatim vrednostima, od kojih možete odabrati jednu. Brojevi koje ovde vidite su zapravo brojevi zapisani u polju IDKupac tabele tblKupci. Jednostavnije rečeno, račun možete pridružiti samo postojećem kupcu.
Duplim klikom na liniju koja predstavlja relacije između dve tabele dobićete mogućnost podešavanja relacije. Ovde su značajne dve opcije: Cascade Update Related Fields i Cascade De‑lete Related Records. Obe opcije su dostupne samo u slučaju kada je uspostav
18 PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
ljena relacija referencijalnog integriteta (kada su korišćeni primarni i sekundarni ključevi, kako je opisano). Kada je uključena, prva opcija omogućava automatsko ažuriranje polja sekundarnog ključa. Koristi se u slučaju kada je polje primarnog ključa promenljiva vrednost, npr. kada je broj računa primarni ključ i može se menjati, ali je nema smisla koristiti kada je primarni ključ polje AutoNum‑ber tipa, jer se vrednosti u ovom polju ne mogu menjati. Druga opcija se odnosi na brisanje zavisnih zapisa spoljne tabele: kada obrišete kupca u tabeli primarnog ključa, Access će zahtevati vašu potvrdu da obriše sve zapise u tabeli sekundarnog ključa (tabeli sa računima).
Tokom ovog postupka kreirali ste dva ključa: primarni i spoljni ili sekundarni ključ. Polje IDKupac u tabeli tblKupci je primarni ključ (ne može se duplirati), dok je polje IDKupac u tabeli tblKupciRacuni spoljni ključ (može se duplirati). Za polje ključa važe tri pravila: ono mora sadržati minimalan broj karaktera, mora biti stabilno (da se ne menja ili da se menja u izuzetnim slučajevima) i mora biti jednostavno. JMBG građana ne zadovoljava uslove da polje mora biti jednostavno i da sadrži minimalan broj karaktera. S druge strane, AutoNumber polje ne zadovoljava pravilo da je polje jednostavno,
jer brojevi koje Access generiše nemaju nekog smislenog značaja za korisnika, ali ovakvo polje zadovoljava sve ostale uslove, uključujući onaj koji kazuje da se vrednosti u ovom polju ne smeju ponavljati.
Osim relacije jedankaviše, u Ac‑cessu postoje i druge vrste relacija. Re
lacija jedankajedan kazuje da se podatku iz jedne tabele pridružuje tačno jedan podatak iz druge tabele. Ova relacija se koristi veoma retko i u specifičnim slučajevima, jer, u krajnjem slučaju, možete spojiti polja obe tabele u jednu,
osim u slučaju kada vam je potrebno više od 255 polja da opišete događaj. Obično je 255 sasvim dovoljan broj polja za opisivanje bilo kog događaja; ako se ispostavi da nije, analizirajte strukturu tabele i proverite da li je dizajn svih polja odgovarajući.
Relacija jedankajedan se koristi u slučaju kada se određeni skup osobina za opis jednog entiteta koristi veoma retko. Umesto da opteretite glavnu tabelu dodatnim kolonama, koje će uglavnom biti prazne, polja koja se retko popunjavaju možete izdvojiti u dodatnu tabelu i spojiti je relacijom jedankajedan sa glavnom tabelom.
Poslednji tip relacije višekaviše se ostvaruje upotrebom tri tabele, gde je tabela koja se nalazi između dve ta
Duplim klikom na relaciju dobijate onno za uređivanje opcija relacije
1�n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
bele tzv. međutabela, koja je s obe spoljne tabele u relaciji jedankaviše. Primer ovakve relacije je relacija između tabela računa i tabela proizvoda. Svaki račun verovatno će sadržati više od jednog proizvoda, a ujedno se svaki proizvod može naći na više različitih računa. Rešenje je da se kreira treća, pomoćna tabela, tblRacuniProizvodi. Na sličan način funkcioniše nova osobina Accessa koja omogućava da se u jednom polju tabele čuva više vrednosti. U pozadini se nalazi ništa drugo do sistem od tri tabele. Ovakav tip relacije ćete ređe kreirati upotrebom novog Microsoft Accessa.
Normalizacija podatakaUz tabele se vezuje pojam normali
zacije podataka. Normalizacija je zapravo niz pravila kojima se osigurava da se baza izvršava dovoljno brzo i efikasno, omogućavajući pri tome da se podaci na ispravan način povežu i ažuriraju. Pravila normalizacije se baziraju na teoriji za koju se smatra da ju je prvi definisao dr E. F. Codd, radeći za korporaciju IBM, 1969. godine. Iako postoje različita pravila normalizacije, korisnici Accessa treba da znaju svega nekoliko osnovnih pravila.
Podatke raščlanite na najmanje moguće delove; podaci moraju biti razdvojeni kao atomi u molekulu. Na primer, za ime i prezime predvidite dva polja – jedno za ime, drugo za prezime. Pogledajmo primer: kod nas je uobičajeno da se prvo piše ime, pa zatim prezime.
Kada poželite da sortirate listu po prezimenima kupaca, ovaj zadatak će biti nemoguć ako su ime i prezime upisani u jednom polju. Rešenje je pisanje funkcije koja će izdvojite prezime iz polja naziva kupca, ali se problem može javiti kod kupaca sa dva prezimena ili kupaca kod kojih je titula upisana uz ime i prezime.
Podaci koji se nalaze u jednoj tabeli se ne smeju ponavljati u drugim tabelama. Na primer, podatak o prezimenu i imenu kupca ne sme da se nađe u tabeli računa ili tabeli sa kupljenim artiklima. Jedna tabela treba da sadrži podatke samo o jednom entitetu.
Najveći problem sa kojim se možete suočiti je odluka koliko tabela treba da kreirate i koje podatke po njima da razvrstate. Normalizacija je proces koji definiše seriju pravila čijom primenom se dobija uređena baza podataka sa optimalnom strukturom. Druga normalna forma zahteva da podaci u svim kolonama koje nisu deo ključa budu potpuno zavisni od primarnog ključa. Drugim rečima, svaka tabela treba da sadrži podatke o samo jednom subjektu. Npr. ako u jednoj tabeli imate podatke o kupcu i robi koju je kupio, razdvojte ih u dve tabele – jedna treba da sadrži podatke o transakciji i kupcu, a druga podatke o stavkama kupovine.
Uzmimo primer jedne tabele u kojoj beležite kupca i svu robu koju je on kupio. Takva tabela će sadržati sve podatke o kupcu i, recimo, tri kolone sa nazivom i količinom robe. U slučaju
�0 PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
da kupac kupi četiri artikla, morali biste da dodate dve nove kolone u tabelu, kako biste zabeležili četvrti artikal i količinu. Vremenom ćete dodavati kolone za naziv artikla i količinu, dok tabela ne bude takve strukture da može da zabeleži sve artikle. Ovakav pristup je dobar sve do momenta kada poželite da napravite zbir količina po artiklima, što postaje praktično nemoguć zadatak. Razdvajanjem podataka u dve tabele, kako smo to već opisali, svaki zbir, suma ili grupisanje podataka postaju veoma jednostavni. U strukturi tabela razvijenoj po prvoj normalnoj formi ujedno niste ograničeni brojem artikala koje kupac želi da kupi – da li je to samo jedan artikal ili milion njih sasvim je svejedno, nikakve intervencije na dizajnu tabela nisu potrebne.
Da biste postigli treću normalnu formu, baza mora ispunjavati uslove prve dve. Treća normalna forma kazuje da se u tabeli ne smeju čuvati rezultati proračuna i da se svi opisi moraju izdvojiti u zasebnim tabelama, koje se zatim povezuju preko jedinstvenih identifikatora. Rezultat primene treće normalne forme jeste da se naziv robe čuva u izdvojenoj tabeli, a da se sa tabelom transakcija povezuje preko njenog jedinstvenog identifikatora. Kada se, sticajem okolnosti, promeni naziv robe, promenićete ga samo na jednom mestu, a promena će se reflektovati kod svih transakcija.
Četvrta normalna forma nalaže da se nezavisni entiteti podataka ne
smeju čuvati u istoj tabeli u slučaju da su oni u relaciji višepremaviše. Da biste osigurali dizajn vaše baze prema petoj normalnoj formi, početna tabela na koju su primenjena pravila normalizacije se može rekonstruisati od sastavnih tabela. Za ostvarivanje pete normalne forme, baza mora zadovoljavati uslove treće, a ukoliko postoje relacije višepremaviše onda i četvrte normalne forme. Četvrtu i petu normalnu formu možete ponekad zanemariti, ali ne i smetnuti s uma kada projektujete bazu podataka. Loše projektovana baza podataka često ne zadovoljava četvrtu normalnu formu, a ponekad ni petu.
Postoje slučajevi kada se namerno primenjuje denormalizacija, da bi se podigle performanse programa u Ac‑cessu. Ponekad ima smisla denormalizovati bazu, ali postupak treba dokumentovati i obraćati pažnju na promene koje mogu uticati na tačnost podataka denormalizovanih tabela.
Postoje i pravila integriteta podataka. Osnovna pravila govore o tome da u zavisnim tabelama ne može postojati zapis vezan za nepostojeći zapis u glavnoj tabeli. Pravila integriteta se svode na sledeće primere: podatke o narudžbini ne možete vezati za kupca koji ne postoji; jedinstveni identifikator kupca u glavnoj tabeli ne možete menjati ako postoje podaci o narudžbinama za tog kupca; podatke o kupcu ne možete obrisati ukoliko postoje podaci o njegovim narudžbinama. Poštujući navede
�1n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
na pravila, dobro organizovani podaci se nalaze u nekoliko tabela između kojih se postavljaju relacije. Beneficije koje korisnici i programeri pri tome dobi
jaju se ogledaju u sledeće tri osobine: očuvan je integritet podataka, baza u radu postiže optimalne performanse i, konačno, rad sa bazom je olakšan.
Kreiranje tabeleIzbor tipa polja
Nakon planiranja strukture baze podataka, utvrđivanja entiteta i
sastavljanja plana za opis svih informacija, naredni veoma važan korak je kreiranje osnovne strukture baze podataka – tabela. Tabele su objekti u kojima se informacije smeštaju i na osnovu njih se formiraju ostali objekti baze podataka. Kod složenijih baza podataka pristupite ovom koraku krajnje oprezno. Planirajte i analizirajte plan i po nekoliko puta. Pokušajte da zamislite način kojim će korisnik koristiti unete podatke, da li svaka tabela opisuje jedan entitet, da li su svi podaci na odgovarajućim mestima i da li će svako izračunavanje, grupisanje i izdvajanje biti moguće.
Pravilno definisana struktura tabela će ujedno doneti maksimalne performanse. Baza može da radi brzo tokom razvoja sa tek pokojim unetim podacima za probu, ali može da radi i veoma sporo u stvarnoj upotrebi, kada je korisnik optereti gomilom podataka. Naredni saveti i tabela sa opisom tipova polja tabela će vam pomoći da optimalno definišete polja tabele.
Potrudite se da uvek definišete polje tabele prema tipu podataka koje će
čuvati. Ako će polje čuvati datume, definišite ga kao Date/Time; ako će čuvati brojeve, definišite ga kao Number (broj). Iako su brojevi podskup skupa karaktera, nemojte koristiti Text tip polja za čuvanje brojeva iz dva razloga: sortiranje brojeva sačuvanih u brojčanom tipu polja i tekstualnom tipu polja nije isto. Ujedno, sa brojevima sačuvanim u tekstualnom tipu polja ne možete obaviti proračune, jer Access posmatra broj upisan u tekstualno polje kao string tip podataka. Kao što sabiranje a + b neće dati rezultat, tako ni sabiranje brojeva tj. slova 1 + 2 neće dati rezultat 3, ali sabiranje 1+2 hoće. Brojeve sačuvane u brojčanom tipu polja možete formatirati po želji – da li će biti prikazane decimalne oznake i oznake za svaki treći stepen 10 (tačke ispred svake treće cifre broja) ili ćete prikazati dve decimale i oznaku valute, izbori su koje imate u brojčanom tipu polja, ali ne i u tekstualnom.
Retki izuzeci kada se brojevi čuvaju u tekstualnom polju se odnose na brojeve koji predstavljaju određene kodove, kao što su npr. poštanski brojevi ili brojevi telefona. Pravilo je jednostavno: ako ne želite da sačuvani broj koristite
�� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
u matematičkim operacijama, sačuvajte broj u tekstualnom polju. Broj telefona možete čuvati u numeričkom polju formatiranom kao xxx/xxx‑xxxx, ali ako korisnik bude tražio broj telefona u obliku 011/1234567 neće dobiti nijedan rezultat, zato što Access interno čuva ovaj broj kao 111234567 (inicijalna nula nema smisla kod brojeva).
Imena ljudi sačuvajte u dva polja, po jedno za ime i prezime. Kada poželite da sortirate listu po prezimenima, učinićete to bez imalo muke. Ova dva polja uvek možete spojiti u jedno, iskazom: tx‑tIme " " txtPrezime, ali ćete ih teško razdvojiti. Novčane vrednosti čuvajte u Currency polju. Osim olakšanog formata broja, proračuni nad ovim poljem se izvršavaju brže nego kod polja tipa Number. Procenti se beleže u Number tipu polja formatiranom kao Percentage. Novi Ac‑cess donosi poboljšanu kontrolu unosa i tumačenja unetih procenata, tako da se unet broj 10 tumači kao 10% umesto 1000%, kako je ranije bilo. Access automatski konvertuje 10 u 0,1.
Za čuvanje slika u bazi podataka je predviđeno OLE object polje. Osim u slučaju kada su slike male, čuvanje slika (fotografija) u bazi podataka nije dobra ideja. Ako su slike velike, ako se
često menjaju ili ih koristite i u druge svrhe, čuvajte ih u zasebnom folderu, a u bazi podataka zabeležite punu putanju do slike. Čitanjem putanje do slike i upotrebom osobine Picture, takvu sliku uvek možete prikazati na formularu ili izveštaju. Ovakav pristup ima samo jednu manu: kada bazu i folder sa slikama premestite, putanje do slika će biti pogrešne, što zahteva izmenu putanja.
Rezultate proračuna nikada ne čuvajte u tabelama. Polja u tabelama bi
uvek trebalo da sadrže osnovne podatke, a do proračunatih vrednosti uvek možete doći po potrebi. Problem sa čuvanjem proračuna u tabeli, osim što troše prostor, je taj da takvi podaci nikada ili uglavnom nikada nisu ažurni. Vrednosti kao što su cena ili količina se mogu menjati naknadno. Kada to učinite, morate pokrenuti pro
gram za proračun i zapisati nove rezultate proračuna u tabelu. Ukoliko to ne učinite, dobićete pogrešne vrednosti za ukupnu količinu i vrednost. Prepustite programu da obavi proračune pre nego što prikaže rezultat. Jedino na ovaj način možete biti sasvim sigurni da su svi proračuni tačni.
Konačno, nakon što završite dizajniranje tabela, a niste sigurni da ste sve dobro uradili ili jednostavno želite
Lookup Wizard poziva čarobnjaka za povezivanje sa poljem druge tabele
�3n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
da proverite dizajn, Access će vam pomoći u tome. Table Analyzer Wizard (čarobnjak za analizu tabela) će analizirati sve tabele, pregledati da li se neke informacije ponavljaju i predložiti razdvajanje tabela (normalizacija). Drugi čarobnjak, Database Performance Analyzer (čarobnjak za analizu performansi baze podataka) će analizirate relacije između tabela i sugerisati poboljšanja. Predlažemo da upotrebite oba čarobnjaka za analizu nove baze podataka, čak i ako ste sigurni da ste dobro dizajnirali tabele.
Kada definišete podtip Number tipa polja, odaberite onaj koji će omogućiti smeštanje najvećeg broja. Ako vrednost u polju neće preći 255, odaberite Byte podtip. Prvi sledeći, veći podtip polja je Integer, koji može da sačuva vrednosti između 32768 do +32767 (bez decimala!). Npr. ako želite da sačuvate kućni broj u brojčanom tipu polja, dobar izbor je Integer podtip, iako će i Byte ponekad biti dovoljan. Podtip odaberite komotno, ali nemojte preterivati: svakako nećete odabrati Dec‑imal tip (omogućava čuvanje brojeva sa 28 decimalnih mesta) za kućni broj, jer, osim što troši mnogo memorije i usporava rad, kućni brojevi nisu izraženi u decimalnom obliku. Radi lakšeg snalaženja u odabiru vrste brojčanog tipa, upotrebite priloženu tabelu.
Yes/No tip polja opisuje samo dve osobine – da ili ne. U Accessu možete koristiti bilo koji od narednih iskaza: Yes ili No, True ili False, On ili Off,
1 ili 0. Ovi iskazi se nazivaju i Bool‑ean, odnosno logički iskazi. Za Y ili N, odnosno D ili N, možete koristiti i tekstualno polje sa ograničenjem unosa na 1 karakter, ali ako koristite Yes/No polje tokom dizajna formulara ili izveštaja na raspolaganju će vam biti polja Check Box, Option Button ili Tog‑gle Button. Ova tri objekta omogućavaju unos podataka klikom miša ili pritiskom tastera za razmak kada je objekat u fokusu. Ukoliko insistirate na Da ili Ne umesto engleskih Yes ili No, onda kreirajte tabelu sa jednim poljem (ograničenje dužine na dva karaktera) i u nju upišite Da i Ne (može i ćirilično). Zatim upotrebom Lookup čarobnjaka povežite ovu tabelu na mestu gde želite da koristite ove logičke iskaze. U ovom slučaju će korisnik birati jednu od ove dve vrednosti iz opadajuće liste.
Često ćete biti u dilemi da li da koristite Text ili Memo tip polja. Prvi tip može da sačuva najviše 255 karaktera, drugi 65535. Oba polja dinamički troše memoriju u zavisnosti od broja unetih karaktera, pa se postavlja logično pitanje: zašto ne uvek Memo tip umesto
Različiti načini sortiranja brojeva u zavisnosti od tipa polja
Sortiranje brojeva Sortiranje teksta1 12 126 212 2525 6
�� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
Tipovi polja tabela sa opisom i utroškom memorije
Tip polja Opis polja Potrošnja memorijeText Dozvoljava upis alfanumeričkog niza do najviše
255 karaktera. Broj karaktera možete ograničiti na bilo koji manju vrednost od 255, a podrazumevana vrednost je 255 karaktera
Zavisno od dužine teksta u polju; od 0 to 255 bajta
Number Omogućava upis brojeva. Raspoloživi su različiti podtipovi podataka koji se nalaze u listi Field Size. Način prikazivanja brojeva određujete menjajući vrednost liste Format.
1, 2, 4 ili 8 bajtova, zavisno od odabranog podtipa. Replication ID zauzima 16 bajtova
AutoNumber Posebna numerička vrednost koju Microsoft Access automatski popunjava rastućim ili nasumično izabranim vrednostima
4 bajta (Long Number) odnosno 16 bajtova za replication ID tip
Currency Fiksni format broja sa četiri decimalna mesta predviđen za zapis novčanih vrednosti. Koristite ovaj tip polja kada želite da izbegnete greške u zaokruživanju prilikom računanja
8 bajtova
Data/Time Rezervisano za upis datuma i/ili vremena. Način prikaza datuma i vremena određujete podešavajući listu Format.
8 bajtova
Yes/No Logičko polje. Za istinite vrednosti možete koristiti On, True, Yes ili –1, dok za negativne Off, False, No ili 0. Po potrebi za True možete koristiti i bilo koji broj različit od nule, mada se preporučuje 1.
1 bit
OLE Oject Omogućava unos slika, zvućnih zapisa ili drugih tipova binarnih datoteka.
0 bajtova to 1 GB, zavisno od onoga što je sačuvano u polju
Hyperlink Polje rezervisano za unos hiper veza ka Internet stranicama ili sadržajima na lokalnoj mreži.
0 bajta do 2 KB za svaki od tri dela koji formiraju adresu (najviše 64.000 karaktera ukupno)
Memo Koristi se za dodatne opise tekstualnog tipa i može sadržati do 65.536 karaktera.
0 bajtova do 64 KB
Lookup Wizard Pokreće čarobnjaka koji omogućava povezivanje sa poljem druge tabele. U povezano polje možete upisati samo vrednost koja postoji u polju druge tabele. Koristi se za lako kreiranje relacija između tabela
Generalno 4 bajta; preciznij rečeno, onoliko memorije koliko zahvata primarni ključ povezane tabele
Attachment Priključene datoteke bilo kog podržanog tipa. Moguće je priključiti više od jedne datoteke u jednom polju
Promenljivo zauzeće memorije zavisno od onoga šta je sačuvano u polju. Ograničenje po priključenoj datoteci je 256 MB
��n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
Text tipa? Memo tip polja ne može da se indeksira i ne može da služi kao primarni ili sekundarni ključ. Ako planirate da pretražujete ili sortirate po ovom polju – Text tip je bolji izbor. Memo tip se obično koristi za ono što mi zovemo
napomena – proizvoljni tekst kojim se pružaju dodatne informacije.
Postoje tri načina za kreiranje polja tabele. Najlakši je onaj koji zahteva najviše poznavanja dostupnih vrsta polja i njihovih osobina – kreiranjem nove tabele u dizajnpogledu. On je ujedno i najfleksibilniji, jer su vam dostupne sve postojeće osobine polja. Drugi način je odabirom predložaka polja. Access 2007 nudi veliki broj unapred definisanih polja za umetanje u novu tabelu. Da biste videli listu, kliknite na New Field taster u grupi Fields and Columns ribona Datasheet. Dostupna polja su izlistana po kategorijama; prva kategorija uključuje osnovna polja, dok su ostale kategorije izdeljene u spe
cifične kategorije za različite namene. Poslednji način se odnosi na automatsko utvrđivanje vrste podataka i automatsko definisanje tipa podataka. Polje druge tabele možete kopirati u novu tabelu, izborom tastera Add Exist‑
ing Field. Access prikazuje listu tabela ispred kojih se nalazi znak +. Klikom na ovaj znak videćete listu polja tabele. Dovoljno je da dva puta kliknete na naziv polja, nakon čega se pokreće Look‑up Wizard.
Uključite indeks nad poljima koja će korisnik pretraživati. Indeksirano polje se značajno brže pretražuje od polja koje nije indeksirano. Indekse valja koristiti nad svim poljima koja koristite za povezivanje u upitu ili svim poljima po kojima se podaci sortiraju. Njega nije potrebno da uključite nad poljima koja se koriste kao ključ u relaciji jedankaviše, jer Access to čini automatski. Međutim, indekse ne valja koristiti u poljima koja sadrže veliki broj podataka koji se po
Podvrste numeričkog polja
Podvrste numeričkog polja Čuva vrednostiByte od 0 do 255Integer od 32768 do 32767Long Integer nešto ispod 2 milijarde do nešto preko 2 milijardeSingle Decimalni broj sa 7 decimalnih mestaDouble Decimalni broj sa 14 decimalnih mestaDecimal Decimalni broj sa 28 decimalnih mestaReplication ID Jedinstven identifikator zapisa; koristi se u procesu
sinhronizacije podataka (važi samo za MDB format, u novom ACCDB formatu ne postoji)
�� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
navljaju. Primer ovakvog polja je naziv mesta ili poštanski broj gde se pojavljuje svega nekoliko različitih mesta i po
štanskih brojeva. Loša strana indeksa je ta što oni troše više memorije i usporavaju proces dodavanja, uređivanja ili brisanja zapisa. Dakle, nemojte ih koristiti na svakom polju tabele. U Accessu su dostupna dva načina indeksiranja: ono koje dozvoljava i ono koje ne dozvoljava dupliranje unosa.
Attachment je novo polje tabele Accessa 2007. Kada polje definišete kao Attachment, onda njemu možete priključiti jednu ili više datoteka, i to za svaki zapis tabele. Npr. zapisu u tabeli radnika moći ćete da priključite sliku zaposlenog i dokument sa radnom biografijom. Ovo polje, kao i OLE ob‑ject polje, dramatično uvećava veličinu baze podataka, ali vas oslobađa veze ka dokumentu koji se nalazi negde na disku. Zapravo, datoteke koje ste priključili ovom polju možete obrisati sa diska. Ograničenje po priključenoj da
toteci iznosi 256 MB, dok ukupno ograničenje svih datoteka ne sme preći 2 GB, koliko je ograničenje veličine sa
me baze podataka. U pozadini Access kreira dodatnu tabelu, u relaciji jedankaviše sa tabelom u kojoj se nalazi Attachment polje. Ovakvo polje u tabeli ćete prepoznati po simbolu spajalice, sa brojem u zagradi koji kazuje koliko je datoteka priključeno zapisu. Datoteku iz ovog polja pokrećete tako što dva puta kliknete na simbol spajalice. Zatim se
pokreće odgovarajući program i učitava datoteku. Sve datoteke smeštene u ovo polje možete snimiti na disk, čime one postaju nezavisne datoteke.
Formatiranje polja tabeleSvako od polja tabele ima neku od
osobina koje su zajedničke za sva polja, ali i specifične osobine koje zavise od tipa polja. Osobine polja se podešavaju za svako polje pojedinačno. Da biste videli i uređivali osobine polja, pređite u dizajnpogled tabele i odaberite neko od polja klikom bilo gde u koloni definicije naziva i tipa polja (gornje okno dizajna tabele). Osobine polja videćete u donjem oknu.
Caption osobina se odnosi na naziv polja, kako će ono biti prikazano. Vratimo se načas na savet o imenovanju polja. Za polje datDatumKupovine možete zadati naziv u Caption osobini Da‑
Attachments tip omogućava smeštanje različitih dokumenata, i to više od jednog za svaki zapis
��n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
tum kupovine. Kada učitate tabelu za unos podataka ili takvo polje postavite na formular ili izveštaj, naziv polja će biti prikazan po tekstu unetom u Cap‑tion osobini, umesto datDatumKupo‑vine biće prikazano Datum kupovine.
Brojčana, odnosno polja koja čuvaju novčane vrednosti imaju specifične formate, koje možete videti u tabeli.
Format brojčanog polja nije ograničen samo na navedene formate. Korisniku je ostavljena mogućnost da sam formatira polje, čak i u zavisnosti od onoga što je uneto u polje. Da biste koristili ovakvu mogućnost, morate uneti format koji se sastoji od četiri dela, međusobno odvojena tačkazarezom, npr. #; ##0; (#,##0);"‑", "ništa". Prvi deo formata se odnosi na pozitivne brojeve, drugi na negativne, treći na vrednosti 0 i četvrti na brojčano polje koje nema unetu vrednost. Možete uti
cati i na boju broja, tako da pozitivne brojeve prikaže plavom bojom, a negativne crvenom. Dovoljno je da navedete naziv boje ograđen zagradom. Nazivi boja su: Black (crno), Blue (plavo), Green (zeleno), Cyan (ružičasta), Red (crvena), Magenta (ljubičasta), Yellow (žuta) i White (bela). Napomena: u formularima koristite uslovno formatiranje (Conditional Formatting) za „bojenje“ brojeva u zavisnosti od vrednosti.
Field Size je osobina kojom se određuje najveći broj karaktera koji se mogu uneti u polje. Ovo je praktična osobina kojom možete kontrolisati unos podataka. Kada znate da je unos ograničen na određeni broj karaktera, kao kod poštanskog broja na pet karaktera (po prethodnom savetu da se poštanski broj unosi u tekstualno polje!), možete ograničiti veličinu polja na pet karaktera. Svaki pokušaj unosa dužeg
Format brojčanog polja Kako se broj prikazujeGeneral Number Prikazuje broj sa onoliko decimala koliko korisnik unese;
kod celih brojeva nema decimalaCurrency Prikazuje broj sa simbolom lokalne valute (zavisno od re
gionalnih podešavanja). Uvek se prikazuju dve decimaleEuro Prikazuje znak € ispred svakog unetog broja. Uvek se prika
zuju i dve decimaleFixed Prikazuje broj sa određenim brojem decimala – kako je
podešena osobina Decimal PlacesStandard Prikazuje broj sa tačkom koja odvaja svake tri cifre. Broj
decimala se određuje osobinom Decimal PlacesPercent Prikazuje broj kao procenat, pomnožen sa 100 (interno se
čuva u decimalnom obliku), sa znakom procentaScientific Prikazuje broj i eksponent (E+00)
Formati brojčanog polja
�8 PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
teksta će rezultovati porukom o grešci. Ova osobina se kod brojčanog polja zasebno podešava, prema podtipu broja koji se može uneti (kako je prikazano na slici vrste numeričkog polja). Za tekstualno polje pretpodešena vrednost je 255; za numeričko polje osnovna vrednost je Long Integer. Obe pretpodešene vrednosti možete promeniti na oknu Access opcija. Datumska polja se formatiraju prema osobini podešenoj u Format polju, a dozvoljeni su i korisnički formati. Za dodatna pojašnjenja oko načina formatiranja datumskog polja (važi i za sva ostala polja), postavite kurzor u Format osobini i pritisnite F1.
Kod formata tekstualnog polja dostupne su neke specifične osobine, koje se određuju određenim karakterima. Na veličinu slova tekst polja utičete upisom karaktera >>, odnosno << za pri
kaz unetog teksta velikim, odnosno malim slovima. Boju teksta određujete nazivom boje, ograđenim srednjom zagradom – []. Dostupne boje su: black, blue, green, cyan, magen‑ta, yellow i white. Kada je potrebno da odredite minimalni broj karaktera koje je potrebno uneti u tekstualno polje, koristite znak @. Tri ovakva znaka u formatu polja zahtevaju od korisnika da unese najmanje tri karaktera.
Default Value određuje vrednost koja će biti automatski ponuđena u novom zapisu. Međutim, podrazumevanu vrednost možete zadati i u formatu polja. Koristite znak / i iza njega navedite tekst. Na primer, /Neo‑phodno će prikazati tekst Neophodno u svakom novom zapisu.
Rich Text format dozvoljava formatiranje teksta unutar polja. Ovo je još jedna od novih osobina Accessa 2007 i dostupna je samo za Memo tip polja – podesite Text Format na Rich Text. Formatiranjem teksta se smatra postupak u kome u odabranom tekstu možete izmeniti font, veličinu, boju, poravnanje i druge osobine formata koje koristite npr. u Wordu. Opcije za formatiranje teksta su prikazane na kartici ribona Home, a možete ih koristiti dok tekst obrađujete u prikazu podataka za unos i uređivanje informacija.
Opcije za formatiranje polja se nalaze u donjem delu design view okna tabele
��n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
Podaci se unose u bazu upotrebom tabela, formi ili čak upi
ta. Forme su namenski objekti i služe isključivo za unos ili analizu podataka. Za lične potrebe i na nešto nižem nivou možete koristiti tabele, koje pružaju delimično komforan način za unos informacija. Iako su predviđene za smeštanje informacija, one ipak nisu namenjene za direktan rad. Iako deluje kontradiktorno, tvrdnja je tačna, jer tabele nemaju tzv. događaje koji se mogu programirati. Navodimo jednostavan primer: na polju forme možete imati nevezano polje koje prikazuje rezultat proračuna druga dva polja koja korisnik popunjava. Čim korisnik popuni oba polja, aktivira se program koji proračunava vrednost i prikazuje je u nevezanom polju. Na nivou tabele ovakvo polje ne postoji. Nevezano polje se odnosi na polje forme koje nije u vezi sa poljem tabele i čiji sadržaj je informativne prirode – nigde se ne zapisuje. Između polja se možete kretati upotrebom tastera sa strelicama, a važe i standardne kombinacije sa tasterima Ctrl, Shift, Home i End. Na sledeće polje zapisa prelazite pritiskom na taster Enter, odnosno Tab.
Kod tabela u relaciji jedankaviše postoji zgodna osobina koja omo
gućava da popunjavate obe tabele. Kada ovakva relacija postoji i otvorite tabelu sa primarnim ključem, u prvoj koloni videćete znak +. Klikom na ovaj znak videćete listu svih zapisa tabele sekundarnog ključa, i to samo one zapise koji su u vezi sa tekućim zapisom tabele primarnog ključa. Za sakrivanje zapisa tabele sekundarnog ključa pritisnite znak , koji se sada nalazi na mestu znaka +. Moguće je prikazati sve zapise tabele sekundarnog ključa za sve zapise tabele primarnog ključa: kliknite na taster More u grupi Records na kartici ribona Home, zatim odaberite Sub‑datasheets > Expand All (ribbon bi trebalo da pojednostavi izbor opcija). Suprotno, da biste sakrili sve vezane zapise odaberite opciju Collapse All, koja se nalazi na istom mestu ribona.
Dubina po kojoj možete otvarati zapise zavisnih tabela nije ograničena.
U relacionom sistemu pet tabela, gde su sve u vezi jedankaviše, možete poći od prve tabele i otvarati redom zavisne tabele sve do pete. Drugim rečima, možete
popunjavati sve tabele relacionog sistema tako što ćete otvoriti prvu, sa primarnim ključem najvišeg nivoa. Polje sa znakom +, odnosno – ćete videti i u
Unos podataka u bazu
Komande za navigaciju i pronalaženje podataka su smeštene u donjem delu tabele
30 PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
upitu, ali samo kod one strukture upita gde je ovakav prikaz moguć.
Access 2007 donosi i posebno polje namenjeno prikazu kumulativnih vrednosti, i to na nivou tabele. Total row se može koristiti za prikaz brojača kolone, za prikaz sume unetih vrednosti, proseka ili minimalnih i maksimalnih vrednosti. Sve one su zapravo posebne funkcije, koje se nazivaju aggre‑gate funkcije i koje se koriste u drugim objektima (upitima, formama, izveštajima ili programu). Ovakvo polje se kreira u tri koraka. Otvorite tabelu za uređivanje podataka. Kliknite na taster Totals u grupi Records kartice ribona Home. Zatim kliknite na praznu ćeliju u vrsti Total row; videćete strelicu koja obeležava opadajuću listu. Izaberite jednu od ponuđenih opcija: None (ništa), Sum (zbir), Average (prosečna vrednost), Count (brojač), Maximum, Minimum, Standard Deviation (statistička funkcija koja opisuje koliko su vrednosti međusobno udaljene; što je međusobni odnos manji, ova vrednost je manja) i Variance (takođe statistička formula, koja se koristi u teoriji verovatnoće i statistici; jedna od mera statističke disperzije). Za tekstualna i Memo polja dostupna je samo funkcija Count, koja broji unete podatke (prazna polja se preskaču). Za polje tipa datum dostupne su funkcije Average, Count, Maxi‑mum i Minimum.
Za uklanjanje ove kolone kliknite ponovo na Totals. Ako se predomislite i ponovo poželite da uključite ovu kolo
nu, ponovite prethodni postupak. Ac‑cess će prikazati kolonu sa odabranim funkcijama, onakvu kakva je bila kada ste je isključili.
Konverzija iz drugih formataIako će se većina baza podataka ko
ristiti za popunjavanje od nule, većina korisnika već poseduje podatke organizovane u nekom drugom formatu. Mahom svi novi korisnici Accessa počinju rad sa ovim programom nakon što su zaključili da mogućnosti i format njemu najbližeg programa, Excela, više ne zadovoljavaju njihove potrebe. Naime, u Excelu je moguće formirati prostu bazu podataka, uređujući podatke u tabelarnom prikazu. Ponekad ovakav pristup zadovoljava, jer su uvek dostupne Excelove moćne alatke za analizu i proračun. Problem nastaje kod veće količine informacija, koje se mogu nalazi na više listova ili čak u više datoteka. Podaci postaju razuđeni i njihovo ažuriranje komplikovano i korisnik, zatim, poželi da podatke organizuje u integrisani sistem na koji će moći da se osloni, koji će voditi brigu o integritetu informacija. Ukratko, umesto da se koncentriše na suštinu i vrednost informacija, dobar deo vremena korisnik troši na ažuriranje strukture. Kod Accessa, iz ugla korisnika, toga nema. Kad programer završi svoj deo posla, korisnik dobija program koji se praktično ne razlikuje od drugih programa načinjenih nekim od paketa za programiranje, program
31n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
koji je u stanju da zadovolji informacioni sistem poslovnih procesa.
Access je poznat po mogućnosti razmene podataka sa velikim brojem formata, a nova verzija je dodatno unapređena i na ovom polju (zapravo, malo toga je ostalo isto kao u Accessu 2003). Najjednostavniji način za pre
nos podataka iz drugog programa u Access tabelu je upotrebom komandi za kopiranje i nalepljivanje (komande Copy i Paste). Pri tome vodite računa da se podaci u programu iz kojeg kopirate nalaze u tabelarnom obliku ili, ako je reč o tekstualnom formatu, da su podaci odvojeni zapetama ili tabulatorom. Kako je svako polje Access tabele strogo definisano po tipu, podaci koje kopirate moraju odgovarati definisanim poljima. Konačno, Access će sam rasporediti podatke po odgovarajućim kolonama, i to počev od one u kojoj se nalazi kurzor.
Kopirani podaci se smeštaju na clipboard – privremeno spremište i
odatle u ciljni program. Kada kopirate podatke iz programa Microsoft Office paketa, onda možete koristiti i Office Clipboard, unapređenu privremenu ostavu koja funkcioniše samo u ovom paketu. Ova ostava može da pamti do 24 kopirana objekta, a pristup Office Clipboardu je moguć upotrebom tas
tera Clipboard na kartici Home. To je zapravo mali taster pored reči Clipboard. Nalepljivanje kopiranog sadržaja se ostvaruje klikom na ikonu u Clipboard listi, dok kopirani sadržaj možete ukloniti desnim klikom nad ikonom sadržaja i odabirom Delete opcije. Opci
jom Paste All nalepljujete kompletan sadržaj Office Clipboarda (nije preporučljivo ako struktura svih kopiranih podataka nije ista!).
Da bi paste bio moguć, kopirani podaci moraju zadovoljiti mnoga stroga pravila, ona koja važe u bazi podataka s kojom radite. Navedimo neka od njih. Polja u kopiranom sadržaju moraju odgovarati strukturi tabele i, ujedno, moraju odgovarati po tipu polja. Duplirane podatke ne možete ubaciti u polje koje služi kao primarni ključ a nije definisano kao AutoNumber tip (ovo polje se samo popunjava). Takođe, podatke ne možete nalepiti na polje koje je sakriveno – pre nego što aplicirate opci
Access može da uvozi i izvozi podatke u raznim formatima
3� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
ju nalepljivanja podataka, proverite da li su sve kolone prikazane. Access će odbaciti i sve podatke (polja) koji ne zadovoljavaju pravila validacije za svako polje ponaosob.
Radi sigurnosti postojećih podataka, ali i kako biste osigurali da svi podaci budu nalepljeni, predlažemo da podatke kopirate u kopiju tabele, a ne direktno u samu tabelu gde želite da prenesete podatke. Kada u kopiju tabele uspešno nalepite podatke, možete ih iskopirati i nalepiti u glavnu tabelu, ili brže, možete uposliti Append upit. Konačno, ako ste sasvim sigurni da struktura podataka tabele i struktura podataka odgovaraju jedna drugoj, upotrebite opciju Paste Append koja se nalazi na kartici ribona Home.
Napredni način prenosa podataka se odnosi na skup akcija kojima uvozite podatke direktno iz drugog formata datoteka. Opcija za pokretanje čarobnjaka za uvoz podataka se nalazi na kartici ribona External Data. Dovoljno je da pratite i odgovarate na pitanja čarobnjaka i da odlučite želite li da uvezete podatke u novu tabelu ili u postojeću tabelu. Jedna specifična osobina Accessa je mogućnost linkovanja spoljnih datoteka različitih formata. Umesto uvoza podataka, Access kreira imaginarnu tabelu u kojoj prikazuje podatke. Npr. ako redovno održavate radni listu u Microsoft Excelu i želite da
isti (ažurni) podaci uvek budu dostupni Access bazi podataka, napravićete link ka Excel datoteci. Kod većine linkovanih tabela ne možete uređivati sadržaj, što zavisi prevashodno od vrste linkovane datoteke. Ali, takve podatke možete koristiti za prikaz i obradu, analizu ili upotrebu u moćnom Ac‑cessovom sistemu za formiranje izveštaja. Da li ćete podatke uvesti ili samo napraviti vezu ka njima, zavisi od toga da li podatke ažurirate i u nekom drugom programu, odnosno da li želite da ih koristite u oba programu tako da oni uvek budu ažurirani.
Nova opcija u daljoj integraciji između paketa Office programa je mogućnost prikupljanja podataka iz e‑mail poruka. Access, uistinu, ne može da zameni Outlook, program za rad sa elektronskom poštom, ali može da kreira elektronsku poruku koja sadrži formular za popunjavanje. Formular se prosleđuje korisniku, on popunjava podatke i vraća poruku. Access, zatim, preuzima sadržaj poruke i prenosi podatke u tabelu. Korisniku možete proslediti elektronskom poštom formular koji već sadrži podatke, u cilju njihove provere. Primer se odnosi na informacije o kontaktu, kao što su adresa, telefon ili naziv kompanije. Ovakve informacije možete proslediti vašem poslovnom partneru, koji će ih pregledati i eventualno ispraviti.
33n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
Prikazom sirovih podataka možete započeti jednostavnu anali
zu. Na ovom nivou možete sortirati podatke po bilo kom polju, odnosno možete filtrirati podatke ili pronaći željene informacije. Upotrebom upita možete lako doći i do ostalih sumarnih podataka. Sortiranje podataka je veoma jednostavna operacija: dovoljno je da se opredelite za kolonu po kojoj želite da sortirate podatke i odaberete jedan od dva načina sortiranja, rastućim ili opadajućim redosledom. Tasteri za sortiranje se nalaze na kartici Home. Treći taster u ovoj grupi opcija (novo) se odnosi na uklanjanje sortiranja. Podaci se zatim prikazuju po prethodnom redosledu, što nije uvek redosled unosa podataka. Kada jednom sortirate podatke i zatim unesete novi zapis, on neće biti automatski sortiran već morate zahtevati od programa da ponovo sortira podatke.
Kod sortiranja tekstualnog polja važno je znati redosled po kome se sortiraju podaci. Prvo se prikazuju prazna polja, a zatim polja kod kojih podaci započinju razma
kom. Zatim slede specijalni karakteri, kao što su: ", #, !, % i slično, zatim slova abecede i konačno brojevi. Kod brojeva, kako smo već opisali, sortiranje je različito od sortiranja numeričkog polja. Access gleda prvi karakter unosa i prema tome sortira brojeve unesene u tekstualno polje.
Pronalaženje i zamena podataka su operacije koje se često koriste u svim programima i na njih ne bismo trošili prostor da u Accessu nisu specifične. Za brzo pronalaženje informacija namenjeno je (novo) polje, koje se nalazi pored tastera za navigaciju među za
pisima (Search). Dovoljno je da otkucate ono što tražite i Access će odmah prikazati prvu informaciju koju je pronašao. Nije potrebno da pritisnete Enter, jer je njegova funkcija drugačija: da bi vam Access prikazao narednu informaciju koju je pronašao,
koristite Enter. Mnogo više opcija pretrage omogućava Search and Replace dijalog, koji dobijate pritiskom na tastere Ctrl+F. Pre nego što pozovete ovaj dija
Opcijama sortiranja i filtriranja možete pristupiti klikom na strelicu pored naziva polja
Sortiranje, pronalaženje i filtriranje podataka
3� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
log postavite kurzor u kolonu koju želite da pretražite, jer pretpodešene opcije ovog dijaloga traže informaciju po koloni u kojoj se kurzor nalazi. Polje Look In nalaže Accessu da traži po specifičnoj koloni, odnosno celoj tabeli; ako želite brzo da pronađete informaciju, tražite je po koloni. U polju Match definišete gde se zadati tekst za pretragu nalazi: kao deo polja, na početku polja ili takav da ceo unos mora da tačno odgovara informaciji u ćeliji. Zamena informacija je, zapravo, sasvim isti dijalog uz dodatno polje. Tekst koji traži
te možete zameniti novim tekstom.
Filtriranjem podataka izdvajate određeni skup podataka po zadatom kriterijumu, kako biste mogli da se koncentrišete samo na određeni segment podataka. Osnovne mogućnosti filtriranja su dodatno proširene u novom Accessu, a najčešće korišćena opcija je filtriranje prema odabiru. Postupak je vrlo jednostavan: prvo pronađete željenu informaciju, zatim je obeležite i desnim tasterom miša pristupite meniju za filtriranje podataka prema obeleženom delu polja ili prema sadržaju celog polja. Ovaj način filtriranja je značajno unapređen: dok smo u ranijim
verzijama primenjivali iste opcije nad svim poljima, opcije filtriranja u novoj verziji programa su različite i zavise od tipa podataka. Na primer, u kontekstnom meniju opcija filtriranja datumskog polja naći će se mogućnost odabira prethodnog dana, narednog dana, prethodnog meseca ili narednog meseca i tako dalje.
Napredne opcije filtriranja su dostupne odabirom Filter by Form (filtriranje po više kriterijuma) i Advanced Fil‑ters/Sort (filtriranje i sortiranje podataka po više kriterijuma). Uklanjanje fil
Bogate opcije filtriranja na nivou ćelije vas oslobađaju gomile upita za izdvajanje podataka
3�n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
tera je jednostavno – odaberite taster Toggle Filter u grupi Sort & Filter kartice ribona Home. Ponovnim uključivanjem filtera, Access će primeniti prethodno odabrane kriterijume.
Ono što je zanimljivo i veoma upotrebljivo u novom Accessu je način kreiranja izveštaja ili formulara na osnovu filtriranih podataka. Naime, često ćete poželeti da odštampate filtrirane podatke, što je do sada bilo moguće onog momenta kada filtriranu i sortiranu tabelu prepustite modulu za štampu. Access
je tada štampao tabelu onakvom kakva je prikazana na ekranu, a po zatvaranju tabele gubio se filter. Sada je moguće – veoma lako – koristeći tastere na kartici ribona Create, da prepustite Accessu da na osnovu filtriranih podataka kreira formular ili izveštaj. Tabelu možete zatvoriti i kasnije uvek pristupiti filtriranom i sortiranom skupu podataka, učitavanjem kreirane forme ili izveštaja. Filter koji ste primenili ćete pronaći na jednom od ova dva objekta, u polju osobine Filter.
Specifikacije Access baze podataka
Većinu od limita Accessa ćete teško dosegnuti, a ako to i učini
te analizirajte dizajn baze – postoji verovatnoća da određenim izmenama smanjite veličinu baze. Generalno, izbegavajte da učitavate fotografije ili druge multimedijalne datoteke u OLE polje – ono zauzima mnogo mesta u bazi podataka. Umesto OLE polja, koristite novi tip polja – Attachment.
Novi korisnici se sreću sa problemom neočekivane veličine baze podataka koja, naizgled bez razloga, stal
no raste. Da biste bili sigurni da baza ima optimalnu veličinu i ujedno da biste smanjili utrošak memorije i održa
li optimalne performanse, s vremena na vreme kliknite na Compact and Re‑pair Database opciju. Access baza sadrži objekte i zapise koji su obrisani (iako se ne mogu povratiti), tako da
Osobina OgraničenjeBroj objekata u bazi podataka 32.768Broj modula u bazi podataka 1.000Broj karaktera u nazivu objekta 64Broj karaktera passworda 20Broj karaktera u nazivu korisnika ili grupe 20Broj istovremenih korisnika baze podataka 255
Specifikacija baze podataka i ograničenja
3� PC n o v e m b a r 2 0 0 7
PC SPECIJALNI DODATAK
povremeno treba rasteretiti bazu balasta. Srećom, računari su danas brži, prostor na diskovima veći, što sve zajedno pruža ugodniji rad sa bazama na desktop računarima nego pre pet ili sedam godina. Ipak, valja imati na umu specifikacije koje slede.
Redovni čitaoci će primetiti da tabelama nije data maksimalna veličina baze podataka od 2 GB, kako smo ranije navodili. Umesto toga, data je najveća veličina zasebne tabele. Naime, veličina baze podataka je zaista ograničena, ali ovo ograničenje se odnosi samo na ba
ze podataka koje nemaju linkovane tabele drugih baza podataka. U bazi podataka uvek možete napraviti link ka tabelama druge baze podataka i tako, praktično, ukupnu veličinu (zbirnu veličinu) svih baza podataka povećati daleko iznad ograničenja.
Ovo je tek početakKoliko smo se u analizi novih verzi
ja žalili na to da je Access bio zapostavljen program, jer je broj ozbiljnih novina u programu bio mali, toliko smo prijatno iznenađeni brojem novina ko
Osobina OgraničenjeBroj karaktera u nazivu tabele 64Broj karaktera u nazivu polja 64Broj polja u tabeli 255Broj otvorenih tabela 2048, realno nešto manje jer Access
interno koristi određene tabeleVeličina tabela 2 GB, umanjeno za prostor potreban
za sistemske objektaBroj karaktera u polju tipa Text 255Broj karaktera u polju tipa Memo 65.535Veličina polja OLE objekta 1 GBBroj indeksa jedne tabele 32Broj polja u indeksu 10Broj karaktera u polju poruke validacije unosa (Validation Message)
255
Broj karaktera polja pravila validacije unosa (Validation Rule)
2.048
Broj karaktera u opisu polja (Field Description)
255
Broj karaktera u zapisu (izuzev Memo i OLE Object polja)
2.000
Specifikacije tabele i ograničenja
3�n o v e m b a r 2 0 0 7 PC
Microsoft Access 2007
je donosi verzija 2007. Praktično, svaki deo je analiziran i poboljšan, dobrim delom na osnovu predloga koje su korisnici slali. Razlog malog broja izmena u prethodnim verzijama samo naslućujemo: novi Access ujedno donosi i novu Jet mašinu zaduženu za smeštanje i obradu podataka, koja je napisana od nule. Naime, prethodne verzije programa su koristile Jet mašinu koju je za potrebe ovog programa napisala ekipa koja radi na razvoju SQL serije proizvoda. Ona, jednostavno, nije bila u vlasništvu ekipe koja je razvijala Access i, ujedno, imala je određena ograničenja, koja su praktično dostignuta pre nekoliko godina. Nova Jet mašina je napisano tako da zadovolji brojne nove zahteve koji su stavljeni pred program. Utisak je da su tvorci programa jedva dočekali da preuzmu kontrolu i ugradili toliko novih i veoma korisnih osobina da će ih iskusni korisnici sretati na svakom koraku. Ako smo do sada u vezi s novom verzijom govorili o kozmetičkim izmenama, sada novi interfejs (zaista velika kozmetička izmena) pada u drugi plan pred brojem ostalih izmena.
Nabrajanje novina zahteva ogroman prostor i, čini se, traži suvoparan tekst u kome se samo nabraja i nabraja. Zato smo se odlučili da započnemo priču o osnovama baza podataka u Ac‑cessu krećući od nule, baš kao što je nova Jet mašina razvijena od nule. Sve iz početka, začinjeno opisom novina koje prožimaju ceo umetak. Nove korisnike ne treba da opterećuje šta je bilo i kako je radila stara verzija. Iskusni korisnici će pronaći opis novih osobina. Kako je ovakav sistem (primereniji termin od program) veoma komplikovan, iako dobro testiran, on nije imun na greške tj. bagove. Oni postoje i sada! Većinu ozbiljnih smo opisali u „Access bajtovima“ časopisa „PC“. Za pravu, profesionalnu primenu savetujemo da sačekate prvu servisnu ispravku i da koristite bazu/program u staroj MDB verziji. To vas nikako ne sprečava da uposlite novi Access i upoznate se sa novim interfejsom i brojnim novinama koje značajno skraćuju vreme potrebno za programiranje baze. Nadamo se da vam je ovaj tekst pomogao da načinite prve korake.