10. Vje`ba
STVARANJE
ODNOSA IZME\U TABLICA U ovoj }ete vje`bi nau~iti kako povezati dvije ili vi{e tablica kako biste s njima mogli raditi kao s jednom.
ZA[TO
STVARATI ODNOSE IZME\U TABLICA? 2. vje`ba vam je preporu~ila stvaranje odvojenih tablica za informacije koje nisu neposredno povezane. Kada stvorite forme, upite i izvje{taje, mo`ete na jednostavan na~in povu}i informacije iz vi{e od jedne tablice. No ovaj rad je koristan tek kada je definiran odnos izme|u tablica. Pretpostavimo da smo stvorili dvije tablice koje sadr`e informacije o kupcima. Jedna tablica, Customers, sadr`i njihova imena i adrese, a druga, Orders, narud`be. Obje tablice sadr`e isto polje, Customer ID. Svi slogovi u tablici Orders odgovaraju slogovima u tablici Customers. (Ovo se naziva relacija jedan prema mnogo jer mo`e biti vi{e narud`bi za jednog kupca.) Sljede}i primjer je baza podataka pasa. Imamo nekoliko tablica koje opisuju pse i njihove aktivnosti. Stvorili ste tablicu koja popisuje sve boje dlake psa. Stvoriti mo`ete odnos izme|u tablice Dogs i tablice Dog Coloring kako biste boju dlake psa povezali s istom u popisu boja dlake tablice Dog Coloring. Na ovaj }ete na~in biti sigurni da ste svakom psu pridijelili dobru boju.
72
10. VJE@BA
Slo`eniji odnosi U ovoj knjizi objasnio sam samo jednostavne primjere. Ako ste znati`eljni i `elite vi{e nau~iti o odnosima izme|u tablica, pregledajte Accessovu dokumentaciju ili pro~itajte knjigu Using Microsoft Access 2000.
STVARANJE
ODNOSA IZME\U TABLICA
Da biste stvorili odnos izme|u tablica, otvorite prozor Relationships i dodajte odnos. Slijedite naredne korake:
1. U bazi podataka odaberite Tools, Relationships ili kliknite gumb Relationships na alatnoj traci kako biste otvorili prozor Relationships.
2. Ako do sada niste odabrali niti jednu tablicu, automatski }e se
prikazati okvir za dijalog Show Table (slika 10.1). Ako se okvir za dijalog ne prika`e, odaberite Relationships, Show Table ili kliknite gumb Show Table na alatnoj traci.
SLIKA 10.1 Uz pomo} ovog okvira za dijalog dodajte tablice u prozor Relationships. 3. Kliknite tablicu koju `elite upotrijebiti za odnos i tada kliknite gumb Add.
4. Ponavljajte tre}i korak kako biste odabrali `eljene tablice i tada
kliknite Close. U prozoru Relationships svaka tablica je prikazana u svom okviru, kao {to je prikazano na slici 10.2.
STVARANJE
ODNOSA IZME\U TABLICA
SLIKA 10.2 Za ovaj primjer dodane su dvije tablice u prozor Relationships. Uve}ajte tablicu Ako ne vidite sva polja u tablici, povucite rub tablice i tako je pove}ajte kako biste vidjeli sva `eljena polja. Na slici 10.2 pove}ali smo tablicu Dogs kako bismo vidjeli sva polja tablice. 5. Kliknite polje u jednoj tablici koje `elite upotrijebiti kao vezu s
drugom tablicom. Na primjer, povezati polje Coloring u tablici Dogs s poljem Coloring ID u tablici Dog Coloring; stoga kliknite polje Coloring u tablici Dogs.
Va`no je znati vrstu polja Polja koja }ete povezivati moraju biti iste vrste podatka (datum, broj, tekst itd.). Jedina iznimka je povezivanje polja s AutoNumber formatom i polja s formatom broja. Polja AutoNumber su tipa Long Integer. Polja AutoNumber su broj~ana polja Long Integer. 6. Odabrano polje povucite mi{em. Pokaziva~ mi{a mijenja izgled u
kvadrati}. Ispustite kvadrati} na polje koje `elite. Na primjer, povu}i }emo polje Coloring na polje Color ID u tablici Coloring.
73
74
10. VJE@BA
Prikazuje se okvir za dijalog Edit Relationships (slika 10.3).
SLIKA 10.3 Okvir za dijalog Relationships tra`i obja{njenje odnosa koji stvarate. Odgovaraju}a imena polja Iako nije zgodno, shvatit }ete da je najlak{e povezivati polja ako im pridijelite ista imena u razli~itim tablicama. 7. Odaberite bilo koju opciju referencijalnog integriteta (pro~itajte sljede}i odlomak) i tada kliknite Create. Odnos }e biti stvoren i vidjet }ete crtu koja spaja dva polja u prozoru Relationships (slika 10.4). Ne}ete vidjeti simbol ¥ i simbol 1 ako niste uspostavili referencijalni integritet.
SLIKA 10.4
Crta predstavlja odnos izme|u dva polja.
STVARANJE
ODNOSA IZME\U TABLICA
Simboli odnosa Na slici 10.4 primijetite da se pored tablice Dogs nalazi oznaka beskona~nosti ¥), a uz tablicu Dog Coloring simbol 1. Ovi se (¥ simboli prikazuju u odnosima kada je uklju~ena opcija Enforce Referential Integrity. Oznaka beskona~nosti ozna~ava mnogo slogova {to zna~i da mnogi slogovi u ovoj tablici odgovaraju jednom slogu (otuda i znak 1) u tablici Dog Coloring.
[TO
JE REFERENCIJALNI INTEGRITET?
Referencijalni integritet vas ~uva od gre{aka pri unosu podataka. Zapravo ka`e da sve informacije u dva polja moraju biti odgovaraju}e. Na primjer, u polju Coloring baze podataka Dogs imate broj koji odgovara polju Color ID tablice Dog Coloring. Tablica Coloring ispisuje sve dopu{tene boje dlake psa, a ne `elite da va{i djelatnici budu u mogu}nosti slu~ajno unijeti broj u tablicu Dogs koji ne}e odgovarati niti jednoj boji u tablici Coloring. Stoga potvrdite opciju Enforce Referential Integrity. Sada Access ne}e dopustiti unos bilo ~ega u polje Coloring tablice Dogs (strana mnogo) osim jednog od brojeva koji se nalaze u polju Color ID tablice Coloring (simbol 1). [to ako netko ipak poku{a unijeti krivi broj? Access }e reagirati ovisno o tome koja je od dvije opcije potvr|ena u okvirima za potvrdu vidljivim na slici 10.3. Evo {to dobivate s okvirima za potvrdu: l
Opcija Cascade Update Related Fields marked. Ako je ova opcija potvr|ena, a vi uradite promjene u vezanoj tablici (u na{em primjeru tablica Dog Coloring), promjena }e biti ura|ena i u
75
76
10. VJE@BA
drugoj tablici (tablica Dogs). Na primjer, ako odlu~ite promijeniti broj boje iz 7 u 8 i u tablici Dog Coloring uradite takvu promjenu (simbol 1), sve sedmice u tablici Dog mijenjaju se u osmice. l
l
Opcija Cascade Delete Related Fields marked. Ako je ova opcija potvr|ena, a vi uradite promjene u 1 tablici (na primjer, Dog Coloring) tako da unosi u vezanoj tablici vi{e ne vrijede, Access }e izbrisati unose u vezanoj tablici. Na primjer, ako izbri{ete slog u tablici Dog Coloring za polje Coloring ID broja 3, svi psi iz tablice Dogs koji imaju broj boje 3 bit }e tako|er izbrisani. (Vjerojatno ovu opciju ne}ete upotrebljavati.) Nije potvr|ena niti jedna opcija. Ako niti jedna opcija nije potvr|ena, Access pokazuje poruku u kojoj od vas tra`i vezani slog u odre|enoj tablici i ne dopu{ta vam unos podataka.
Najbolje je podesiti referencijalni integritet prije unosa bilo kojih podataka u tablice. Ako ovu knjigu ~itate redom, onda za sada jo{ niste unijeli podatke (o unosu vi{e u 11. vje`bi) tako da ste spremni za pode{avanje referencijalnog itegriteta. Ako poku{ate stvoriti odnos s referencijalnim integritetom nakon {to ste ve} unijeli podatke u jednu ili obje tablice, vjerojatno }ete vidjeti poruku gre{ke prvi puta kada poku{ate. Na primjer, pretpostavimo da jedno polje upotrebljava vrstu podatka Text, a drugo Number. (Ba{ me briga {to ste unijeli brojeve u polje Text.) Vrlo pa`ljivo pro~itajte prikazanu poruku gre{ke i poku{ajte ju otkloniti promjenama u dizajnu tablice (9. vje`ba).
URE\IVANJE
ODNOSA
Kada je odnos stvoren, mo`ete ga ure|ivati tako da ponovno prika`ete prozor Relationships (slika 10.2). Da biste to uradili, dvostruko kliknite na crtu odnosa. Sada mo`ete upotrijebiti iste kontrole koje ste upotrijebili za stvaranje odnosa.
STVARANJE
UKLANJANJE
ODNOSA IZME\U TABLICA
ODNOSA
Da biste odnos izbrisali, jednostavno ga kliknite u prozoru Relationships (crta izme|u tablica ozna~ena je masno) i tada pritisnite Delete. Access }e tra`iti potvrdu. Kliknite Yes i odnos je izbrisan.
[TO
SADA?
Kako iskoristiti prednosti nakon {to ste stvorili odnos izme|u tablica? Da biste shvatili odgovor, morate imati malo vi{e znanja. Kao prvo morate nau~iti unositi i urediti podatak u tablici te kako podesiti verzije jednostavne tablice formi, upita i izvje{taja. Tek tada }ete biti spremni, 25. vje`ba, da stvorite vi{etabli~ne forme, upite i izvje{taje koji su mogu}i zbog stvaranja odnosa. Ova vje`ba prikazuje stvaranje, ure|ivanje i brisanje odnosa izme|u tablica. U sljede}oj }ete vje`bi nau~iti kako unijeti podatak u tablicu.
77