Return to ACCESS

REFERENCIJALNI INTEGRITET

Tipovi relacija. Referencijalni integritet. Sortiranje i filtriranje podataka. Štampanje tabela.

 

Ovo su poslednja dva dvočasa iz modula predviđenog za obradu tabela. Iskoristiću ih za obradu nekih detalja koje smo “površno” obradili i za eventualno popravljanje ocena. (Često se dešava da učenici dođu nepripremljeni na najavljeno ocenjivanje, pa traže još jednu šansu. Neki kalkulišu, čekaju da vide šta će da bude od zadataka, pa se razbole.)

Tipovi relacija

Da bi smo mogli da prikazujemo podatke iz više tabela odjedamput, a koji govore o istom pojmu, neophodno je da se uspostave relacije između tabela. Pored relacije jedan prema više (One-To-Many) o kojima sam već nešto rekao u lekciji kreiranje tabela, postoje i relacije jedan prema jedan (One-To-One) i više prema više (Many-To-Many).

Relacije

Relacija jedan prema više se najčešće koristi. Kod ovakve relacije, jednom slogu iz prve tabele odgovaraju više slogova iz druge tabele, i obrnuto svaki slog iz druge tabele ima jedan odgovarajući iz prve tabele. Polje iz prve tabele, koje je u relaciji, mora biti primarni ključ dok je polje iz druge tabele strani klju (Foreign Key). Imena polja za primarni i strani ključ ne moraju biti ista, ali tip podatka mora.

Relacija jedan prema jedan se retko koristi i kod ove relacije svaki slog iz prve tabele ima samo jedan odgovarajući iz druge tabele, i obrnuto. Npr. jedan rukovodilac može obavljati samo jednu funkciju.

Relacija više prema više je dosta komplikovana i takoreći je nemoguća kod relacionog modela baze podataka, pa je na ovom nivou nećemo obrađivati.

Pored primarnog i stranog ključa, postoji i složen ključ. Složen ključ se sastoji od dva polja koja treba da budu jodno do drugog. Selektuju se oba polja u dizajn modu tabele, pa onda desni klik tačno između ova dva polja, i izabere se primarni ključ.

Referencijalni integritet

Čekiranjem opcije  Enforce Referential Integrity omogućava se veća kontrola unosa podataka. Npr. nije moguće da se u tabelu Učenici, unese učenik u novo odeljenje (polje Odeljenje), ako pre toga niste u tabeli Smer definisali to odeljenje.

Relacije 1

Kada uključite referencijalni integritet, dozvoljava se uključivanje i opcija Cascade Update Related Fields i Cascade Delete Related Records. Prva opcija omogućava kaskadno ažuriranje podataka. To znači da ako nekom učeniku iz tabele Učenici promenimo šifru, automatski će se u tabeli Ekskurzija promeniti šifra za sve uplate tog učenika. Druga opcija se odnosi na kaskadno brisanje. To znači da ako u tabeli Smer obrišete jedno odeljenje, automatski će se obrisati svi učenici iz tog odeljenja u tabeli Učenici, kao i sve uplate učenika iz tog odeljenja u tabeli Ekskurzija.

Relacije 2

Zadaci za rad na času

  • Da ne bi nešto “pokvarili”, u novom folderu napravite kopiju baze Škola sa prethodnih časova.
  • Proverite sve relacije, i uključite sve opcije integriteta baze.
  • U tabelu Učenici, unesite novog učenika u novo odeljenje koje nije definisano u tabeli Smer. Dobićete poruku da nije mmoguće, kao na prvoj slici gore.
  • U tabelu Učenici, promenite šifru nekom učeniku koji ima evidentirane uplate. Proverite sada tabelu Ekskurzija. Videćete efekte kaskadnog ažuriranja podataka.
  • U tabeli Smer, obrišite jedno odeljenje koje ima evidentirane učenike i uplate. Dobićete poruku kao na drugoj slici gore. Otvorite sada tabele Učenici i Ekskurzija, i videćete efekte kaskadnog brisanja.

 

Ako ste sve ovo naučili, spremni ste za još nešto novo.

Kreiranje padajuće liste u polju tabele koja vuče podatke iz druge tabele

Polje Odeljenje u tabeli Učenici treba podesiti tako da ima kombo boks koji “vuče” podatak iz tabele Smer. U dizajn modu tabele Učenici, stavite kursor na polje Odeljenje i na tabu Lookup/Display Control  izaberite Combo Box (u prošloj lekciji smo koristili List Box sa unapred definisanim vrednostima). Row Source Type = Table/Query jer se podaci u ovom slučaju uzimaju iz tabele Smer, što biramo u Row Source.

U polje Bound Column treba upisati 1 jer to označava prvu kolonu u tabeli Smer tj. polje Odeljenje u tabeli Učenici će se popuniti vrednošću iz prve kolone tabele Smer. Polje Column Count označava koliko će se kolona videti u padajućoj listi kada unosimo podatke. Ako upišemo 2, to znači da će se videti prve dve kolone tj. Odeljenje i Smer. Ako upišemo 3, videće se i Razredni starešina. U polju Column Widths se unose vrednosti za širinu kolona. Ja sam uneo 1cm;4cm što znači da će prva kolona biti široka 1cm a druga 4cm. Ako vam se ovo ne vidi lepo, treba da u View modu tabele Učenici raširite polje Odeljenje kao na slici dole.

Probajte da sami uradite.

Combo

Sortiranje i filtriranje podataka

Značaj sortiranja, filtriranja i pronalaženja podataka može se videti samo u velikim tabelama. Zbog toga će mo raditi sa bazom Magacinsko poslovanje koju možete preuzeti na stranici Optimizacija u podnaslovu Objekti baze podataka. (Napomena: kada izađete iz glavne forme, ako ne vidite tabele, treba da uključite okno za navigaciju pomoću Access Options/Current Database gde čekirate Display Navigation Pane. Na istoj stranici je i video sa objašnjenjem.) Narednim vežbama će mo se molo bolje upoznati sa bazom jer nam je to neophodno za dalji rad sa upitima.

Sortiranje podataka je slično kao u Excelu (podsetnik). Kliknete na neko polje u koloni koju želite da sortirate pa onda na dugme za sortiranje. Sortiranje može biti u rastućem ili opadajućem redosledu.

Zadatak. Otvorite tabelu Roba iz baze Magacinsko poslovanje i proverite koliko ima proizvoda čija je cena imeđu 90 i 100 hiljada. Najlakši način, da odgovorite na ovo pitanje, se dobijaSortiranje i filtriranje sortiranjem cene. Probajte još da sortirate robu prema nazivu ili prema šifri.

Filtriranje podataka je takođe slično kao u Excelu. Kliknete na neko polje i uključite filtriranje. Iz kombo boksa u zaglavlju tabele sada možete izabrati željene podatke. Drgi način je korišćenje opcije Selection, gde možete koristiti i logičke operatore.

Zadatak. Korišćenjem filtera u polju Index proveriti koliko proizvoda imamo od dobavljača 23. Pored ovoga, uradite prethodni zadatak koristeći Between u Selection filtriranju.

Pronalaženje podataka u tabeli pomoću komande Find (Ctrl + F) se ipak razlikuje u Accessu u odnosu na Word i Excel. U pomenuta dva programa, nije bitno gde je kursor tj. pretraga se obavlja u celom dokumentu. U Accessu je bitno da u okviru dijalog prozora Find and Replace proverite polja Look In i Match. Prvo polje možete da podesite tako da se pretraga odvija samo po koloni ili pak po celoj tabeli. Drugo polje vam omogućava da tražite celu reč ili deo reči. (Ako npr. ukucate reč proizvod a u polju Match stoji Whole Field program neće naći ni jedan pogodak iako se reč proizvod javlja u tabeli na 1103 mesta. Potrebno je da se izabere Any Part of Field).

Štampanje tabela

Štampanje je takoreći isto kao i u drugim programima. Jedina razlika je u tome što imate mogućnost da  štampate samo selektovane slogove jer pojedine tabele imaju više hiljada slogova (slično kao u Excelu gde postoji mogućnost da, iz velikih tabela, štampate samo selektovane ćelije). Moja preporuka je da, pre nego što zadate komandu za štampanje, obavezno proverite izgled pre štampanja (Print Preview).

Obnavljanje i upoznavanje sa bazom, a zbog upita koji slede

Zadatak. Otvorite bazu Magacinsko poslovanje i analizirajte zašto je nabavka odvojena u dve tabele (isto važi i za prodaju).

Na jednoj npr. ulaznoj fakturi, možemo imati više desetina stavki nabavke, a zaglavlje sa podacima o dobavljaču, datumu nabavke i … je samo jedno. Koliko puta bi morali da unesemo podatke iz zaglavlja ako bi imali samo jednu tabelu za knjiženje ulaznih faktura?

Nabavka i prodaja

 

Leave a Reply

Your email address will not be published.