Return to ACCESS

KREIRANJE TABELA

Kreiranje tabela. Postavljanje ključa i povezivanje tabela. Unos i izmena podataka. Tipovi podataka.

Pre svega, potrebno je da se kreira nova baza podataka (ako već ne koristimo postojeću). Pokrenemo progam Microsoft Access, pa onda New Blank Database. Kreiraćemo bazu koja se zove Škola. Ukucamo ime baze, odredimo gde će se sačuvati, pa onda komanda Create. Ukoliko radite u Access 2007, ekstenzija baze je accdb. U prethodnim verzijama je mdb.

Kreiranje tabela

Sledći korak je kreiranje tabela. Na tabu Create biramo Table Design. U ovom modu (dizajn mod) upisujemo sve podatke potrebne za formiranje tabele. Ime polja (Field Name) je u stvari isto što i zaglavlje kolone u Excelu. Tip podatka (Data Type) se bira iz kombo boksa. Po difoltu, stoji Text. O tipovima podataka će mo kasnije (slično kao u Excelu). U nastavku je opis polja (Description) gde je poželjno da upišete čemu ovo polje služi. Ovo nije loše da se koristi za „velike“ baze jer kasnije, kada razvijete bazu, pa treba nešto da menjate, uvek znate za šta je neko polje planirano.

Pored ovog načina kreiranja tabele, koji ja lično preporučujem, tabele možete da kreirate i direktnim unošenjem podataka, ili pak da koristite gotove modele koji su ugrađeni u samom programu. Takođe, tabele možete i da uvezete iz drugih baza ili Excel datoteka.

Zadaci za rad na času

  • U novoformiranu bazu Škola napravite dve tabele Učenici i Smer, kao na slikama dole.

Tipovi podataka za sada neka ostanu kao text. Kada pokušate da snimite tabelu, program će vas obavestiti da tabela nema primarni ključ (Primary Key) i ponudiće da stavi umesto vas. Nemojte da prihvatate ovu opciju jer će vam program ubaciti polje AutoNumber kao šifru, a na prethodnom času smo dogovorili da šifra učenika bude četvorocifren broj. Usput, ne mora svaka tabela da ima primarni ključ (objašnjenje ide kasnije).

Kreiranje tabela 1Kreiranje tabela

  • Otvorite tabelu Učenici i unesite podatke za nekoliko učenika iz odeljenja.

Ukoliko niste menjali širine kolona ili nešto drugo vezano za dizajn, već samo unosili podatke, kada zatvorite tabelu program vas neće pitati da li hoćete da sačuvate izmene. To znači da se podaci automatski čuvaju na disku.

  • Kako bi videli značaj primarnog ključa, unesite još jednom nekog od učenika koga ste već uneli u tabelu. Zatvorite tabelu.

Namerno dupliramo podatak. Program će bez problema sačuvati sve podatke, iako imamo duplu šifru učenika.

Postavljanje primarnog ključa

  • Otvorite sada tabelu Učenici u dizajn modu. Kliknite na polje Sifra ucenika, a zatim na sličicu ključa u gornjem levom uglu. Pokušajte da snimite tabelu.
Postavljanje primarnog ključa

Postavljanje primarnog ključa

Nastao je problem jer u tabeli, u polju za šifru učenika, imate dupliranu vrednost, pa vas program o tome obaveštava i ne dozvoljava druge radnje dok ne rešite tekući problem. To znači da primarni ključ ne dozvoljava duplikate, što je u našem slučaju i logično jer kad jednom unesete učenika, nema potrebe da se isti unosi ponovo. (Napomena. Kada imate neki problem, Access vas uvek obaveštava o tome i treba da pažljivo pročitate komentar, jer je u njemu i sugestija za eventualnu ispravku greške. Primetio sam da učenici uglavnom ne čitaju ove komentare. Lakše je da pitaju profesora.)

  • Pošto vas program sada ne pušta da izađete iz tabele, dok ne rešite problem, prvo isključite primarni ključ, snimite tabelu, ponovo otvorite tabelu i izbrišite duplirani slog.
  • Sada ponovo stavite primarni ključ i sve će biti u redu.

Ako sada probate da unesete neku duplu vrednost u polje šifra učenika, program vam to neće dozvoliti. Proverite.

  • Otvorite tabelu Smer i stavite primarni ključ na polje Odeljenje. Unesite sada vaše odeljenje ( II/6 unosimo kao 26), smer i razrednog. Unesite još nekoliko odeljenja.

Povezivanje tabela

Kako bi znali kom odeljenju pripada koji učenik iz tabele Učenici, ili koliko je učenika u kom odeljenju, neophodno je da se povežu tabele.

  • Pređite na tab Database Tools i izaberite Relationships. Ukoliko se ne vide tabele, desni klik na prazno, pa iz kontekst menija izaberite Show Table… i izaberite tabele.
  • Sada kliknite na polje Odeljenje iz tabele Smer i ne puštajući miša odvucite ga na polje Odeljenje u tabelu Učenici.

Ovakav redosled je bitan zato što pravimo relaciju jedan prema više (One-To- Many). Jedno odeljenje ima više učenika. Kod ovakvog tipa relacije je bitno da je jedno od povezanih polja primarni ključ.

Kada napravite relaciju, otvara se dijalog prozor Edit Relationships. Ovde treba da izaberete Enforce Referential Integrity. Referencijalni Integritet je u stvari zaštita od pogrešnog unosa. (Npr. ne možete da unesete učenika a da ga ne priključite nekom odeljenju.) To je ujedno i skup pravila kojim se osigurava da veze između zapisa u povezanim tabelama budu važeće, i da ne bi smo slučajno obrisali ili izmenili podatke. Primena integriteta je moguća samo ako je odgovarajuće polje iz prve tabele primarni ključ i ako povezana polja imaju isti tip podataka.

Kreiranje relacija

Unos i izmena podataka.

Otvorite bazu Škola sa prethodnog časa. Kako bi učenici videli da je moguće proširenje postojeće tabele, dodajte polje Slika u tabelu Učenici. U ovo polje će mo ubacivati fotografije učenika. Adekvatan tip podatka za ovo polje će mo izabrati kasnije u nastavku ove lekcije. Za sada ostaje kao Text.

Pored dve tabele koje smo već napravili, u bazu treba dodati i treću koja bi se odnosila na evidenciju uplata rata ze ekskurziju. Predlog polja za tabelu predlažu učenici.

Posle kraće diskusije, baza treba da izgleda kao na slici dole. Dodata je jednostavna tabela Ekskurzija sa četiri polja. Obratite pažnju na polje Sifra ucenika u tabeli Ekskurzija. Šifra učenika nije primarni ključ. Zašto?

Kada evidentiramo uplate učenika, jedan učenik može da plati recimo tri rate. To znači da će njegova šifra da se pojavi tri puta, što opet znači da se dupliraju podaci. Upravo zbog ovoga ne može da se stavi primarni ključ. Na početku sam pisao da tabela ne mora da ima primarni ključ. Umesto ovoga, primarni ključ može da bude AutoNumber mada ja nisam pristalica jer ponekad može da zasmeta, posebno kod brisanja podataka iz tabele.

Optimizacija baze 3

Pre nego što proknjižimo par uplata, podesićemo tipove podataka.

Tipovi podataka.

Slično kao u Excelu, svako polje mora imati svoj tip kako bi Access ”znao” kako da se ophodi prema sadržaju tog polja.

  • Text. Ovaj tip, pored običnog teksta tj. pored slova, može sadržati i brojeve i simbole. Često može da vas prevari, jer kada vidite samo brojeve za šifru, telefon, PIB, JMBG, po inerciji koristite Number, međutim u ovim slučajevima treba koristiti Text zato što se nad ovim podacima nikada ne primenjuju aritmetičke operacije tj. šifra ili PIB se nikada ne sabira, oduzima ili množi. Polje obeleženo kao Text može sadržati najviše 255 karaktera.
  • Memo. Ovo polje se koristi za beleške ili opise. Takoreći je neograničeno. Možete uneti nešto više od 65000 karaktera.
  • Number. Ovaj tip je namenjen za sve vrste brojeva (osim datuma). Upravo zbog toga postoje i podtipovi na cele i realne brojeve (što nije slučaj u Excelu), ali o tome će mo kasnije. U ovom polju je zabranjen upis bilo kojeg teksta.
  • Date/Time . Upravo to, datum ili vreme. Može se koristiti i samo datum.
  • Currency. Slično kao i Nuber samo što se koristi za prikazivanje valuta. Najveća brojka koja može da se upiše u ovo polje je sa 15 cifara levo od decimalnog zareza i 4 cifre desno.
  • AutoNumber. Ovo je automatski ”brojač”. Za svaki nov slog broj se uvećava za jedan i automatski popunjava polje. Ako za neku tabelu niste odredili primarni ključ, prilikom snimanja Access će vam ponuditi da stavi primarni ključ kao AutoNumber ID.
  • Yes/No . Za ovo polje se nude samo dve mogućnosti: Da ili Ne, Yes ili No, True ili False.
  • OLE Object . Ovo je veza sa nekom datotekom (npr. fotografija).

Varijante za tip Number

Najčešće se koriste dve varijante i to: Long Integer za cele brojeve i Double za realne brojeve. Pored ovoga, postoje još i Byte, Integer i Single. Ove varijante su ”posebna nauka” za programere i matematičare, ali za ekonomiste, na ovom nivou učenja, je dovoljno da koriste prve dve navedene.

Zašto je ovo bitno? Zato što npr. ne možete da iznajmite  3,2 knjige (ovde mora da se stavi ceo broj). Sa druge strane za cenu morate da stavite realan broj jer cena nije uvek ”okrugla”.

Ubacivanje OLE objekata u bazu

Desni klik na polje u tabeli, u koje želite da ubacite objekat, pa onda Insert Object… Dalje, bira se opcija Create from File. Da bi videli sliku (kasnije, kada se obrade forme i izveštaji), potrebno je čekirati polje Link. Izbor slike se vrši na dugme Browse…

Ubacivanje OLE objekta

Zadaci za rad na času

Podesiti tipove podataka u bazi Škola, kao na slikama dole.

Ukoliko se jave problemi prilikom promena tipova podataka, morate da obrišete relacije između tabela. Uradite sada promene, snimite tabele i ponovo ih povežite.

Tipovi podataka

Probajte sada da unesete uplate učenika za ekskurziju.

Dobro povezane tabele, sa uključenim integritetom, vam omogućavaju da iz tabele Učenici, kliknete na plus ispred određenog učenika, i da automatki, za istog učenika, u drugu tabelu unosite ili menjate podatke. Pokušajte još i da napravite namerne greške, recimo da u polje Vrednost uplate unesete neki tekst. Videćete da ne može.

Unos podataka

Dobro planiranje baze, što uključuje tabele, polja i tipove podataka, omogućava vam eliminisanje slučajnih grešaka prilikom unošenja podataka i veću tačnost. Na narednom dvočasu, pokazaću vam kako se ova efikasnost podiže na još viši nivo korišćenjem različitih formata, maski i svojstava polja.

 

3 comments

    • Maja on 05/12/2017 at 21:50
    • Reply

    Kada hoću da dodam Odlejenje iz tabele učenici u smer kaže da je tabela učenici već u upotrebi od nekog drugog lica i ne mogu da povežem dve tabele vezom.

    1. Ako se vaše pitanje odnosi na relacije između tabela, verovatno je neka tabela otvorena.
      Drugo, ako pokušavate da nešto menjate u dizajnu tabela, a tabele su već povezane, onda morate da obrišete relacije, snimite, napravite izmene, i ponovo vratite relacije.

    • Бранислав Јоцић on 10/02/2020 at 12:54
    • Reply

    Господину Славољубу Симићу велика захвалност при помоћи отварања једног документа. Иако се са господином лично не познајем, то за овог информатичког стручњака није представљало препреку у комуникацији. Урадио је за мене једну веома важну стручну услугу без накнаде, нешто што су многи други покушавали безуспешно да отворе. Показао се прави мастор свог заната.
    Оваквог стручњака и педагога препоручујем свима, а поготово онима који желе да науче у информатичком смислу нешто више.

Komentariši

Your email address will not be published.

Ova web stranica koristi Akismet za zaštitu protiv spama. Saznajte kako se obrađuju podaci komentara.