Professional Documents
Culture Documents
Seminarski rad
Sadržaj:
1. Uvod ............................................................................................................................... 2
2. Pojam entiteta, podatka i informacije ............................................................................. 3
3. Organizacija podataka .................................................................................................... 4
4. Microsoft ACCESS ........................................................................................................ 5
4.1 Tabele...................................................................................................................... 6
4.2 Obrasci .................................................................................................................... 7
4.3 Upiti ........................................................................................................................ 7
4.4 Izveštaji ................................................................................................................... 8
4.5 Makroi ..................................................................................................................... 9
4.6 Moduli ................................................................................................................... 10
4.7 Forme .................................................................................................................... 10
5. Projekat “STUDENTSKA SLUŽBA” ......................................................................... 11
5.1 Analiza sistema ..................................................................................................... 11
5.2 Kreiranje tabela ..................................................................................................... 14
5.3 Postavlјanje relacija .............................................................................................. 22
5.4 Kreiranje upita ...................................................................................................... 28
5.7 Kreiranje formi ..................................................................................................... 40
5.8 Kreiranje izveštaja ................................................................................................ 43
6. Zaključak ...................................................................................................................... 47
7. Literatura ...................................................................................................................... 48
1
1. Uvod
2
2. Pojam entiteta, podatka i informacije
3
Primeri entiteta
ENTITET OBELEŽJA KONKRETIZACIJA (vrednost) OBELEŽJA
(podatak)
MAGACIN dužina 200 m
širina 50 m
lokacija Beograd, Cetinjska 30
stanje zaliha 35 000
kapacitet 1 000 000
3. Organizacija podataka
4
3. Zapis ili slog (records) predstavlja skup polja koja se odnose na isti entitet.
Svaki zapis sadrži istovetna polja, ali se u tim poljima nalaze ≠ podaci. U tabeli predstavljen
je redom.
4. Tabela (table) je skup zapisa koji čine slične podatke. Npr. podaci o fudbalskim
timovima i knjigovodstveni podaci ne mogu biti u istim tabelama ( u Dbase se tab. naziva
baza podataka !!?). Podaci se mogu čuvati i u nekoliko povezanih tabela (Relations..)
5. Baza podataka (database): datoteka baze podataka je skup svega sto se odnosi
na određenu klasu informacija (entiteta). Baza podataka (u Access-u) sadrzi sve tabele,
upite, izveštaje i ostale objekte koji se stvaraju u cilju sto bolje organizacije podataka – dakle
jedna zbirna datoteka (u Dbase je catalog !!?).
4. Microsoft ACCESS
5
Organizajica podataka obuhvata izradu i rukovanje tabelama koje sadrže
podatke u konvencionalnom tabelarnom formatu (red-kolona ili format
aplikacija za teabelarne proračune), koju Access naziva prikaz Datasheet.
Povezivanje tabela I izdvajanje podataka koristi upite (eng.queries) za
povezivaje više tabela prema relacijama između podataka i izradu virtuelnih
(privremenih) tabela, koje se nazivanju zapisi, a sadrže izabrane podatke koji
se čuvaju u memoriji računara il u privremenim datotekama na disku.
Unos i uređivanje podataka.
Prikazivanje podataka zahteva izradu izveštaja koji možete da pregledate,
štampate ili objavljujete na Internetu. Dijagrami i grafikoni prikladno
sumiraju podatke za one koji imaju ,,uopšten” pristup.
4.1 Tabele
Tabela baze podataka je po izgledu slična unakrsnoj tabeli po tome što su podaci
smešteni u redove i kolone, zbog toga je veoma lako unakrsnu tabelu uvesti u tabelu baze
podataka. Glavna razlika između skladištenja podataka u unakrsnoj tabeli i tabeli u bazi
podataka je u načinu organizacije podataka. A u cilјu što veće fleksibilnosti baze podataka,
podaci moraju da budu organizovani u tabele tako da se ne pojavlјuju suvišni podaci.
6
Svaki red u tabeli predstavlјa jedan zapis. U zapisima se skladište pojedinačne
informacije. Svaki zapis se sastoji od jednog ili više polјa. Polјa odgovaraju kolonama u
tabeli.
Slika 1. Tabela
4.2 Obrasci
Obrasci se ponekad zovu i „ekrani za unos podataka“. Oni predstavlјaju interfejs koji
se koristi za rad sa podacima i često sadrži komandnu dugmad koja izvršava različite
komande.
Dugmad se mogu programirati kako bi se odredili podaci koji će se pojavlјivati u
obrascu, da bi se otvarali drugi obrasci ili izveštaji, odnosno izvršavali brojni drugi obrasci.
Na primer, imamo „Obrazac kupaca“ koji sadrži podatke o kupcima. Taj obrazac
može da sadrži dugme koje otvara obrazac porudžbine, a u koji se mogu uneti nove
porudžbine kupaca.
4.3 Upiti
Upiti predstavlјaju pravu radnu snagu baze podataka i mogu da izvrše veliki broj
različitih funkcija. Nјihova najčešća funkcija je preuzimanje određenih podataka iz tabela.
Podaci se obično nalaze u više tabela, a upiti omogućavaju njihovo prikazivanje u jednom
listu sa podacima. Osim toga, upiti omogućavaju da se dodaju određeni kriterijumi kako bi
7
se „filtrirali“ podaci i dobili samo želјeni zapisi. Upiti često služe kao izvor zapisa za obrasce
i izveštaje.
Neki upiti mogu da se „ažuriraju“, što znači da se mogu uređivati podaci u osnovnim
tabelama koristeći list sa podacima upita. Upiti koji mogu da se da ažuriraju, stvaraju
promene u tabelama, a ne samo u listu sa podacima upita.
Postoje dve osnovne vrste upita: upiti za izdvajanje i radni upiti.
Upit za izdvajanje preuzima podatke i čini ih dostupnima za upotrebu. Rezultati upita
mogu se prikazati na ekranu, odštampati ili kopirati u ostavu.
Radni upit, kao što mu samo ime govori, izvršava neki zadatak u vezi sa podacima.
Radni upiti mogu se koristi za kreiranje novih tabela, dodavanje podataka u postojeće tabele,
ažuriranje podataka ili brisanje podataka.
Slika 2. Upiti
4.4 Izveštaji
8
Izveštaji su elektronski oblik klasičnih papirnih obrazaca koje možemo gledati na
ekranu ili štampati na papir. Podaci prikazani u izveštaju mogu biti izvedeni iz tabela ili iz
upita (filtrirani podaci). Dizajniranje izveštaja je veoma slično dizajniranju formi.
Slika 3. Izveštaj
4.5 Makroi
9
podataka mogu da se automatizuje pomoću makroa, tako da oni mogu značajno da utiču na
uštedu vremena.
4.6 Moduli
4.7 Forme
10
Slika 4. Forma
Da bi smo napravili bazu podataka moramo se prvo što bolje upoznati sa sistemoom
za koji radimo bazu podataka, tako da naš prvi zadatak postaje projektovanje opšte strukture
sistema. Potrebno je da prepoznamo entitete, odnosno osnovne skupove podataka koji čine
studentsku službu.
Ako posmatramo studentsku službu uočićemo tri osnovna skupa podataka i to:
Studenti
Profesori
Predmeti
11
Studenti Profesori
Predmeti
Studenti
12
Kada utvrdimo skup podataka o studentima, potrebno je utvrditi koje su osobine tih
podataka. Osobine predstavljaju opis svakog od entiteta.
Broj Upisani
Ime Predmet
indeksa semestar
Godina Overeni
Prezime Ocena
studija semestar
....
Ovo su samo neke od osobina, pored ovih može se dodati još puno osobina, ali za
potrebe ovog rada koristićemo samo gore navedene.
Profesori
Ime
Prezime
Zvanje
Status
13
Skup podataka o predmetima razložićemo na dva podskupa.
Plan i
Predmeti
program
Akademska
Naziv
godina
Godina
Oznaka
studija
Aktivan Predmet
Profesor
ESPB
14
Tabele u Access-u se mogu formirati na nekoliko načina:
Datasheet View omogućava direktno unošenje podataka u tabelu, pri čemu program
sam određuje tip polja. Ime polja se daje opcijom Rename Column iz menija koji se dobija
desnim klikom na naslov kolone. Ovaj način se retko koristi, jedino ako nije poznata
struktura tabele ili ako je potrebno ubaciti kopirane podatke iz nekog drugog programa
(npr.MS Excel).
Design View omogućava kreiranje tabele detaljnim izborom svojstava polja
podataka, kao što su imena polja, tip podataka i veličina polja, određivanje primarnog ključa,
i slično. To je najčešće korišćen pristup.
Table Wizard poziva čarobnjaka koji koristi biblioteku već formiranih tabela. Ova
mogućnost je korisna kada se kreiraju standardni objekti kao što su adresari, računi u fazi
učenja, ali se u praksi ne koristi mnogo.
Import Table omogućava uvoz tabele iz nekog drugog izvora podataka, druge
Access baze, MS Excel dokumenta, kao i fajlova tekstualnog formata.
Link Table obezbeđuje povezivanje sa tabelama iz druge MS Access baze (može i
neki drugi format baze), pri čemu tabela ostaje u matičnoj bazi, a linkom se omogućuje veza
na nju u cilju pregleda i eventualno ažuriranja podataka. U ovoj situaciji, pristup dizajnu
tabele nije moguć iz baze koja ima link na datu tabelu, ved samo iz matične (izvorne) baze.
Dizajnu tabele se ne može pristupiti dok se svi aktivni linkovi na odnosnu tabelu ne isključe,
što znači da pri dizajnu tabele niko (kroz mrežu) ne može da je ažurira.
15
Tabele kreiramo tako što izaberemo tab Create i onda odaberemo opciju Table
Design.
Dobijamo tabelu u kojoj ćemo mi da dizajniramo stvarni izgled naše tabele, odnosno
projektujemo našu tabelu koja će čuvati naše podatke.
Prvo kreiramo tabelu STUDENTI. Unosimo sve one entitete i podentitete koje smo
utvrdili prilikom analize sistema.
Za svaku od navedenih osobina potrebno je da odredimo tip podatka.
16
Slika 11. Tabela STUDENTI
17
Slika 12. Tipovi podataka
18
* Polje primarnog ključa ne može biti tipa: OLE object, Attachment i Hyperlink.
* Zapisi u tabeli se automatski sortiraju prema polju primarnog ključa.
* Polje primarnog ključa igra ključnu ulogu u povezivanju tabela, to je najvažnija
uloga ovog polja.
Kao primarni ključ tabela STUDENTI izabraćemo polje StudentID a kao tip
podataka izabrati AutoNumber. Na taj način, ACCESS će nam sam automatski generisati
određenu vrednost za svaku unetog studenta u tabelu.
Nakon dodeljivanja primarnog ključa, sačuvamo našu tabelu i unosimo određeni broj
podataka, kao što je prikazano na slici ispod.
Po istom principu formiramo i ostale potrebne tabele. Priparni ključ u ovim tabelama
dodelićemo u narednom poglavlju.
19
Slika 14. Tabela Studenti_ocene
20
Slika 17. Tabela Profesori
21
5.3 Postavlјanje relacija
22
Relacija jedan-prema-jedan
Relacija jedan-prema-jedan, iako retko korišćena u sistemima za rad sa bazama
podataka, može biti veoma korisna kao način da se dve tabele povežu. Dobar primer relacije
jedan-prema-jedan se javlja kod većine sistema za naplaćivanje; tabela za naplatu se formira
da bi se obezbedile dodatne informacije neophodne za fakturisanje kupaca na lokaciji koja
nije njihova uobičajena adresa. Ova tabela obično sadrži broj kupca i skup polja za adresu.
Samo nekolicina kupaca će imati zasebnu adresu za naplaćivanje, pa se taj podatak neće
dodavati u glavnu tabelu kupaca. Relacija jedan-prema-jedan između tabele kupaca i tabele
naplaćivanja se može uspostaviti da bi se obezbedila adresa za naplaćivanje za one kupce
koji žele da imaju zasebnu adresu za naplaćivanje. Iako se sve informacije iz jedne tabele
mogu dodati drugoj, tabele se drže odvojene zbog efikasnog korišćenja prostora.
Generalno, relacija jedan-prema-jedan se može iskoristiti i da bi se jedna velika
tabela podelila na dve manje tabele. Kod relacije jedan-prema-jedan najčešće se primarni
ključ jedne tabele povezuje sa primarnim ključem druge tabele.
Relacija jedan-prema-više
Relacija jedan-prema-više se koristi da se jedan zapis primarne tabele poveže sa više
zapisa sekundarne tabele. Ovo povezivanje se praktično vrši definisanjem stranog ključa
sekundarne tabele.
Relacija više-prema-više
Relacija više-prema-više je najteža za razumevanje. To je slučaj kada jednom zapisu
iz primarne tabele (A) odgovra više zapisa iz sekundarne (B) i obrnuto. Ova vrsta relacije je
moguća jedino uvođenjem treće tabele koja sadrži najmanje dva polja koja su strani ključevi
iz tabela A i B. Ova dva polja se mogu iskoristi i za kreiranje primarnog ključa treće tabele,
mada to nije obaveza. Relacija više-prema-više u stvari predstavlja dve jedan-prema-više
relacije, tabela A i B sa trećom tabelom.
23
Zašto kreirati relacije među tabelama?
Postoji više razloga zbog kojih se kreiraju relacije među tabelama, pre nego što
kreiramo druge objekte baze podataka, kao što su obrasci, upiti i izveštaji.
1. Relacije među tabelama utiču na dizajn upita
2. Relacije među tabelama obezbeđuju informacije za dizajn obrazaca i izveštaja
3. Relacije među tabelama predstavlјaju osnovu na koju se može nametnuti
referencijalni integritet i dr.
24
U ovom delu uvešćemo referentne tabele. Referentna tabela je lista predefinisanih
vrednosti, gde mi možemo da odaberemo ponuđenu vrednost.
Na slici 22 vidimo da nam je primarni ključ u tabeli Gradovi GradID a kao spoljni
ključ u tabeli Studenti imamo GradID.
Relaciju ćemo ostvariti pomoću primarnog i spoljnog ključa tako što ćemo primarni
ključ iz tabele Gradovi, levim klikom miša prevući na spoljni ključ u tabeli Studenti.
25
Preporuka je, mada to nije obavezno, da se primarnom i spoljnom ključu dodeli isti
naziv, radi lakšeg snalaženje prilikom izrade velikih baza podataka.
Napravićemo i referentnu tabelu Drzave.
26
Slika 25. Izvršene relacije
27
5.4 Kreiranje upita
Upiti su objekti baze podataka koji vam omogućavaju da izdvajate podatke iz baze
podataka da biste ih koristili u druge svrhe, kao izvor podataka koji se koriste za štampani
izveštaj, na primer, ili da dobijete listu stavki koja će se koristiti za kontrolu traženja na
obrascu za unos podataka. Upit može da se zasniva na jednoj ili više povezanih tabela. Pored
polja koja se izvlače direktno iz tabela, upit može takođe da sadrži polja izračunavanja koja
transformišu podatke-dodaju, na primer, porez iznosu računa ili izvode statističku analizu
nad grupom zapisa koji su izvučeni iz više tabela.
Access vam omogućava da pravite više tipova upita. Najčešći je upit biranja koji
izvlači informacije iz jedne ili više tabela. Možete takođe da napravite upit unakrsnih tabela,
koji grupiše i sumira informacije u formatima redova i kolona slično kao što radi Pivot Table
u Excelu. Neke od najmoćnijih stvari koje možete da uradite sa Accessom uključuje upite
radnje, koji menjaju podatke tabele nad kojom se vrši upit na osnovu kriterijuma koje
definišete u upitu.
Upiti (Query, Queries) predstavljaju moćan alat koji pruža pogled na podatke u bazi
podataka ili daje odgovore na specifična pitanja u vezi tih podataka. Na primer, ukoliko je
potrebno izlistati, tj. pogledati samo imena i prezimena svih studenata i datum rodjenja, ali
ne i ostale podatke, moguće je kreirati upit koji prikazuje samo ova tri podatka. Ili, ukoliko
je potrebno pogledati imena i prezimena samo onih studenata koji žive, recimo, u Beogradu,
onda bi se upit ograničio samo na njih.
Upiti se pišu posebnim upitnim jezikom koji se naziva SQL. Da bi se kreirali upiti
u MS Access 2013, nije potrebno veliko znanje SQL-a.
Za početak, ćemo kreirati upit koji će prikazati imena i prezimena studenata i
datum rodjenja. U ovom, kao i narednim primerima, koristiće se Query Design koji se
nalazi u tab-u Create, u delu Queryes što je prikazano na slededoj slici (Slika 26).
28
Izborom ove opcije otvara se prozor za kreiranje upita.
U pop-up prozoru Show Table potrebno je izabrati tabelu(e) nad kojom će se upit
kreirati. Za opisani primer potrebna je tabela Studenti. Izabrati je, kliknuti na dugme Add,
pa Close. Tada će se izabrana tabela pojaviti u prostoru za kreiranje upita. Ovo je prikazano
na slikama u nastavku (Slika 27 i Slika 28).
29
U donjem delu prozora za kreiranje upita nalaze se prazne kolone. Klikom na
potrebne atribute tabele Studenti, te kolone će se popuniti. Kako su za upit potrebni ime,
prezime i datum rodjenja, svaki od ovih atributa izabraćemo dvostrukim klikom miša.
Rezultat ovoga prikazan je na sledećoj slici (Slika 29).
30
Field predstavlja polje iz tabele koja je upisana u deo Table. Ovo je upit koji
prikazuje podatke iz samo jedne tabele, Studenti.
Rezultat prethodno kreiranog upita može se pogledati klikom na opciju Run iz
Design tab-a, u delu Results, što je prikazano na sledećoj slici (Slika 30).
31
potrebno je specificirati sortiranje prvo za ime, a zatim za prezime. Ovo je prikazano na
sledećoj slici (Slika 32).
Kreiraćemo upit koji će nam prikazati imena i prezimena studenata, datum rodjenja
i JMBG s tim što će nam rezultati upita biti sortirani.
32
Kreiraćemo upit koji će nam prikazati imena i prezimena studenata i datum rodjenja
s tim što će nam rezultati upita biti sortirani po imenima, ali će ujedno biti i filtrirani tako da
dobijemo kao rezultat samo studente muškog pola. To se postiže tako što u koloni Pol u redu
Criteria upišemo pol koji upit treba da nam filtrira, što je prikazano na sledećoj slici (Slika
34).
3) SQL kod:
SELECT Studenti.Ime, Studenti.Prezime,
Studenti.Datumrodjenja, Studenti.Pol
FROM Studenti
WHERE (((Studenti.Pol)="M"));
33
Pojam nulte vrednosti (NULL)
Jedna od osnovnih razlika između relacione baze podataka i starijih baza podataka
jeste pojam nulte vrednosti koji je prisutan u relacionim bazama podataka. Ova specijalna
vrednost u relacionim bazama podataka ukazuje na odsustvo bilo kakve vrednosti u polju
znakovnog ili numeričkog tipa.
U relacionoj bazi podataka nulta vrednost u koloni moze izrazavati različite
koncepte:
• Koloni nije moguće dodeliti vrednost za dati red.
• Koloni još uvek nije dodeljena vrednost.
Kreiraćemo upit koji će nam prikazati imena i prezimena studenata i ime roditelja s
tim što će nam rezultati upita biti prikazami samo za studente koji nemaju upisan email. To
se postiže tako što u koloni Email u redu Criteria upišemo is null, što je prikazano na
sledećoj slici (Slika 36).
34
4) SQL kod:
SELECT Studenti.Ime, Studenti.Prezime,
Studenti.Imeroditelja, Studenti.Email
FROM Studenti
WHERE (((Studenti.Email) Is Null));
Kao što smo dobili imena studenata kojima nije upisan email, tako možemo dobiti i
imena studenata kod kojih jeste upisan email. To se postiže tako što u koloni Email u redu
Criteria upišemo is not null, što je prikazano na sledećoj slici (Slika 38).
5) SQL kod:
SELECT Studenti.Ime, Studenti.Prezime, Studenti.Imeroditelja,
Studenti.Email
FROM Studenti
WHERE (((Studenti.Email) Is Not Null));
35
Formiraćemo upit koji će nam prikazati ime i prezime studenata koji imaju ocenu
veću od 7 iz predmeta Programiranje 1.
Sledeći upit koji kreiramo, prikazaće nam broj indeksa, ime i prezime studenata,
njihov matični broj i njihovu prosečnu ocenu.
36
Slika 43. Rezultat upita
7) SQL kod:
SELECT Studenti.BrojIndeksa, Studenti.Ime, Studenti.Prezime,
Studenti.JMBG, Avg(Studenti_ocene.Ocena) AS AvgOfOcena
FROM Studenti_ocene AS Studenti_ocene_1, Predmeti INNER JOIN
(Studenti INNER JOIN Studenti_ocene ON Studenti.StudentID =
Studenti_ocene.StudentID) ON Predmeti.PredmetID =
Studenti_ocene.PredmetID
GROUP BY Studenti.BrojIndeksa, Studenti.Ime,
Studenti.Prezime, Studenti.JMBG;
Formiraćemo upit koji će nam dati kao rezultat prosečnu starost studenata muškog i
ženskog pola, a oni naravno moraju biti stariji od 18 godina.
37
8) SQL kod:
SELECT Studenti.pol, avg(Int((Date()-[datumrodjenja])/365))
AS Expr1
FROM Studenti
GROUP BY Studenti.pol
HAVING (((avg(Int((Date()-[datumrodjenja])/365)))>18));
Upit koji ćemo sada formirati, prikazaće nam broj indeksa i JMBG studenata koji su
položili manje od 2 ispita.
9) SQL kod:
SELECT Studenti.BrojIndeksa, Studenti.JMBG,
Count(Studenti_ocene.Ocena) AS CountOfOcena
FROM Studenti INNER JOIN Studenti_ocene ON
Studenti.StudentID = Studenti_ocene.StudentID
GROUP BY Studenti.BrojIndeksa, Studenti.JMBG
HAVING (((Count(Studenti_ocene.Ocena))<2))
ORDER BY Studenti.BrojIndeksa;
38
Navešćemo još jedan primer upita, koji će nam ispisati ime i prezime, JMBG
studenata koji imaju ocene veće od prosečne, a to će biti sortirano po broju indeksa.
39
5.7 Kreiranje formi
40
Kreirali smo formu za unos podataka u Tabelu Profesori (Slika 52) i formu za unos
podataka u tabelu Studenti (Slika 53).
41
Slika 53. Studenti
Postoji mnogo opcija i podešavanja prilokom formiranja formi, koje u ovom radu ne
mogu biti prikazane, zbog svoje obimnosti.
42
5.8 Kreiranje izveštaja
43
Izveštaj se pomoću čarobnjaka kreira izborom opcije Report Wizard iz tab-a Create.
Nakon izbora ove opcije, otvara se prozor iz kojeg je potrebno izabrati tabelu(e) i/ili upit(e),
a zatim i njihove atribute koje treba prikazati na izveštaju. Kao što smo već rekli, za
formiranje ovog izveštaja koristićemo upit Query_studenti_gradovi.
44
Slika 57. Formiranje izveštaja
Na sledeći korak prelazi se klikom na dugme Next gde je potrebno specificirati
sortiranje ukoliko je potrebno i sumiranje željenih podataka. U ovom primeru najsmislenije
je sortiranje sortirati po atributu broj indeksa. Dakle, potrebno je u padajućoj listi izabrati
ovaj atribut, a zatim klikom na dugme pored označiti način sortiranja, rastući (acsending) ili
opadajudi (descending). Ovo je prikazano na sledećoj slici (Slika 58).
45
Potrebno je izabrati odgovarajući način prikaza podataka (Layout), kao i orijentaciju
izveštaja, uspravno (Portrait) ili vodoravno (Landscape). Takođe, može se označiti opcija
za automatsko podešavanje širine kolona, kako bi sve mogle stati na papir (opcija Adjust the
field width so all fields fit on a page).
Dobijamo izveštaj koji je prikazan na slici 59.
46
6. Zaključak
47
7. Literatura
[1] Bečejski-Vujaklija Dragana, Pantelić Ognjen, Valok Tamara, Microsoft Access 2007
– priručnik, Fakultet organizacionih nauka, Beograd, 2010.
[2] Čelebić Gordana, Dujlo Mario, Baze podataka – Microsoft Access 2010 – priručnik,
Otvoreno društvo za razmenu ideja (ODRAZI), Zagreb, 2011.
[3] Veinović Mladen, Šimić Goran, Uvod u baze podataka, Univerzitet Singidunum,
Beograd, 2010.
48