You are on page 1of 50

Profesor: dr Miroslav Medenica Studenti: Aleksandar Lazarevi 35/2010 Milo Stankivi 230/2012 D ragutin Predojevi

Osnovni elementi baze podataka Elementi relacione baze podataka

Osnovni elementi baza podataka su: entitet, atribut, klju, polje, slog i relacija. Entitet je svaka realna injenica, dogaaj ili pojava, bez obzira na svoju sutinu (na primer sastanak, mainska operacija i sl.). Atributi predstavljaju entitet, odnosno opisuju njegove osobine (na primer za entitet "maina" atributi su proizvoa, godina proizvodnje, snaga, ...).

Klju je jedan od atributa koji je jedinstven i slui za ureivanje i pretraivanje podataka. Naziva se primarnim kljuem i najee je to ifra, odnosno identifikacioni broj odgovarajueg entiteta. Polje je osnovna jedinica baze podataka, sadri jedan podatak i karakterie se tipom (tekstualni, numeriki, datumski...).

Slog ili zapis je grupa polja, odnosno skup podataka o jednom entitetu za odgovarajue atribute. Relacija je veza izmeu dva entiteta u cilju povezivanja odreenih grupa podataka radi lakeg korienja tih podataka. Povezivanje je mogue samo ako entiteti sadre zajednike, kljune atribute kojima se vri povezivanje (na primer atribut "ifra maine" je klju za entitet "maina" i vri povezivanje ovog entiteta sa entitetom "radni nalog" u kome se takoe nalazi kao jedan od atributa).

Relaciona baza podataka, a posebno ona koja se razvija u Accessu u osnovi moe da se sastoji od sledeih elemenata: tabele, upiti, maske i izvetaji; a moe sadrati: Data Access strane, makroe i/ili VBA module (Visual Basic for Application - programski jezik za programiranje operacija u Office aplikacijama).U principu moemo rei da u osnovne elemente novijih baza podataka spadaju radne tabele, upiti, formulari i izvetaji, a u osnovne aktivnosti koje se izvravaju kod korienja baze spadaju auriranje - odravanje baze podataka koje obuhvata unos novih podataka, izmenu ili brisanje postojeih podataka, zatim pretraivanje baze podataka koje obuhvata pretraivanje po definisanim kriterijumima.

Pored toga obezbeuje se i dobijanje razliitih pregleda podataka na ekranu kao i mogunost tampanja odgovarajuih izvetaja ili pak arhiviranja na nekom od medija za kasniju upotrebu ili za neke druge namene. Pri tome treba imati na umu da je skup podataka u bazi kao i njihove meusobne veze u stvari slika stanja nekog realnog sistema u datom trenutku i da verovatno sadri odreene informacije o prolosti, sadanjosti i budunosti tog sistema.

Pored entiteta i veza meu njima kao elementi baze se pojavljuju i atributi koji im se pojedinano dodeljuju. Oni zajedno ine osnovni koncept modela entitet veza. Pre svega definiimo entitet to je jedan od objekata nekog realnog sistema koji se preko njega mogu lako definisati i identifikovati. Veza izmeu entiteta je ono to u stvari povezuje jedan entitet sa drugim u funkcionalnom smislu. Veze mogu biti parcijalne, pojedinane ili sveukupne odnosno totalne. Veza je totalna ako svaki entitet tog tipa ima bar po jednu vezu , a ako nema tada je veza parcijalna. to se tie atributa oni oznaavaju neke od karakteristinih odlika entiteta ili veze.

1. 2. 3. 4. 5. 6.

Tabele Tables Formulari - Forms Upiti - Queries Izvitaji - Reports Spajanje relacija - spajanje tabela Auriranje- unos, ispravka, dodavanje

7.Indeksi 8. Kljuevi 9. Pretraivanja, sortiranja, selekcija 10. Makroi i primena VBA

Radi lakeg razumevanja moe se rei da tabele odgovaraju datotekama u klasinim aplikacijama i u njima se uvaju podaci date baze. Svaka tabela se sastoji od kolona i redova, dok se presek kolone i reda naziva polje. Polja u tabeli se koriste za smetanje jedinica informacija. Imena pojedinih polja mogu sadravati slova engleskog alfabeta, brojeve i donju crticu (_) i ne mogu sadravati prazna mesta. Polja mogu biti znakovna, numerika, datumska, logika ili MEMO polja. Pojedino polje moe dakle biti sledeeg tipa: tekst, broj, datum/vreme, logiko polje, memo polje (polje u koga se moe uneti tekst proizvoljne veliine do cca 65 K), polje za unos brojeva u novanom formatu, posebno polje u kome se automatski po zapoetom unosu sloga inkrementira broj (polje AutoNumber), hiperlink polje (pokaziva na adresu na Internetu), OLE objekt polje (polje sa objektom povezanim iz drugog programa) i Look Up polje (polje iji prikazani sadraj se nalazi u drugoj tabeli).

Znakovna polja mogu sadrati bilo koji znak sa tastature, dok numerika polja sadre samo numerike vrednosti, znakove + i kao i decimalnu taku. Datumska polja sadre datum. Kod veine baza je obezbeena automatska kontrola datuma. Logika polja sadre elemente Bulove algebre tj. logiko Da (T-True-istina) , logiko Ne (F- False la), Y- yes da, N no- ne. to se tie MEMO polja ona su predviena da se u njih mogu smestiti tekstualne informacije.

to se tie vrednosti memorijskih podataka oni mogu biti konstante i bie u tom sluaju posmatrane kao da su slova, a mogu biti karakteri, numerici ili pak prazna polja. Pored toga vrednosti memorijskih podataka mogu biti i promenljive i slue kako za smetanje polaznih podataka tako i za smetanje meurezultata. Pored toga memorijske promenljive se mogu definisati i kao nizovi koji sadre odgovarajui broj elemenata. Za davanje naredbi za izvoenje odgovarajuih operacija nad podacima koriste se odgovarajui simboli koji se nazivaju operatori i preko njih se definiu odgovarajue operacije koje e se izvoditi kao naprimer sabiranje, oduzimanje, mnoenje, deljenje itd.Operatori mogu biti aritmetiki,logiki, string kao i relacioni operatori.

Pri kreiranju baze podataka veoma je bitno dobro definisati tip polja,jer su brzina rada, organizovanost podataka i veliina same baze u direknoj vezi sa ispravno definisanim tipom polja. Naprimer za datum tipa 01/05/2004 tip polja emo postaviti na Date/Time(datum/vreme); za iskljuivo numerike vrednosti postavljamo tip polja @ViPserbia60 na Number; za kombinovani alfanumeriki unos tip polja postavljamo na Text kod koga se predvia maksimalni broj karaktera u unosu, itd.

Primer jedne tabele u Accessu

Baza podataka moe da sadri vie tabela koje se preko relacija meusobno povezuju. Npr. itaoce emo drati u jednoj tabeli, knjige u drugoj, a iznajmljivanja/vraanja knjiga u treoj. Relacije se uspostavljaju samo meu istovetnim podacima, a najee izmeu ifara (npr. ifru italaca u tabeli itaoci_osnovni_podaci i ifru italaca u tabeli izdavanje_knjiga valja meusobno povezati relacijom jedan prema vie - jedan italac moe uzeti vie knjiga, ali se jedna knjiga ne moe nalaziti kod vie italaca istovremeno). Na ovaj nain se izbegava viestruki unos podataka za itaoca pri svakoj njegovoj poseti biblioteci, a mogunost greaka pri unosu adrese ili naziva itaoca je praktino anulirana.

Mnogi dobro uraeni programski paketi, koji se odnose na baze podataka, nee vredeti mnogo za korisnike ako su ekranske forme i meniji za rad sa bazom loe dizajnirani odnosno ako ih je teko koristiti u svakodnevnom radu. Kada je dobro organizovan i dizajniran sistem menija on znaajno olakava korisniku rad sa bazom. Nekada je (sa ranijim bazama) tj. kod klasinog programiranja sistema menija izmena u nekom delu povlaila za sobom izmenu celog programa vezanog

Zbog toga se vremenom prelo na sistem gde se struktura stabla menija uvala u datoteci i zatim se ona koristila za kreiranje menija tako da bi program klizi po stablu po svim nivoima i gde bi se birala opcija za dati posao, a ije bi se ime takoe nalazilo u datoteci menija. Forma je u stvari samo "pogled" na tabelu u oveku prihvatljivijem izgledu.

Primer jedne forme u Accessu

Osnovni upiti, sortiranje, selekcija, sloene selekcije su najee aktivnosti koje se primenjuju od strane veine korisnika prilikom korienja neke baze podataka. Naime jedna od najvanijih dobrih osobina baza podataka jeste mogunost da se brzo i jednostavno pristupi eljenim podacima. Upiti se mogu koristiti i za auriranje podataka u tabelama, ali taj deo e biti analiziran kasnije. Kada se koriste za biranje odreenih grupa podataka moraju se definisati odgovarajui kriterijumi po kojima e se podaci selektirati i grupisati radi prezentiranja korisniku.

Izvetaj je grupa podataka koji su meusobno povezani na odgovarajui nain. Oni slue da se korisniku baze mogu predstaviti potrebni podaci. Izvetaji mogu biti usmereni na ekran, na tampa ili u neku posebnu datoteku na neki poseban medij za kasniju upotrebu. Dobijanje izvetaja se ostvaruje primenom nekog od potrebnih programa ili primenom odgovarajuih generatora izvetaja kakve uglavnom poseduju novije baze podataka u svom asortimanu. Meutim ukoliko korisnik nije zadovoljan postojeom formom izvetaja koji su ponueni od strane proizvoaa baze programer moe iskoristiti dobijene podatke u selektovanoj formi i u nekom od drugih programskih alata napraviti izvetaj po elji korisnika.

Podaci prikazani u izvetaju mogu biti izvedeni iz tabela ili iz upita (filtrirani podaci). Dizajniranje izvetaja je veoma slino dizajniranju formi, ali se priprema za selekciju podataka i generisanje izvetaja radi na slian nain i kao priprema upita.

Primer jednog upita u Accessu

Primer jednog izvetajau Accessu

Veoma esto je potrebno obezbediti odgovarajue preglede podataka koji se nalaze u nekoliko razliitih tabela podataka. Meutim povezivanje takvih tabela u jednu novu tabelu je mogue samo ako te tabele sadre zajednika polja. Ova polja su neophodna da bi se moglo izvriti povezivanje i nazivaju se kljuna polja. Neophodno je obezbediti da ova kljuna polja imaju jednoznane vrednosti bar u jednoj od tabela. Pri tome je neophodno da ova kljuna polja na pravi nain tj. nedvosmisleno obezbede identifikaciju datog zapisa u tabeli.

Za veze odnosno mogue relacije izmeu tabela postoji vie mogunosti kao to su naprimer veza jedan prema jedan, jedan prema vie, vie prema jedan ili pak vie prema vie. Primer eme "entieti-relacije" realizovane za potrebe aplikacije na Famu:

Unos Da bi se mogli unositi podaci u bazu podataka, a posebno kada to ini vei broj korisnika poeljno je ili bolje reeno potrebno je da se naprave odgovarajue ekranske forme na kojima e se lepo kreirati eljeni oblik dokumenta za unos sa svim poljima koja korisnik treba da unosi. Pri tome se definiu tipovi podataka, odgovarajue duine polja, kao i odgovarajue kontrole koje e obezbediti da korisnici sa to manje greaka ili propusta unose potrebne podatke. Veina savremenih baza ima gotove odreene forme ekrana za unos koji se mogu u takvoj ili donekle izmenjenoj i po elji korisnika prilagoenoj formi koristiti.

Ispravka

Ukoliko je prilikom unosa korisnik napravio greku i pogreno uneo neki podatak ili neki njegov deo ili su pak odreeni podatak ili grupa podataka u bazi tokom vremena i promena koje ono nosi sobom postali nevaei ili neadekvatni tada je potrebno obezbediti mogunost njihove ispravke delimine ili potpune ili pak kompletnog brisanja nekog podatka. Zavisno od programera koji realizuje aplikaciju na datoj bazi ove izmene ili ispravke serealizuju uglavnom primenom ekranskog formulara za unos pri emu se vri ili unosi samo ispravka ili se pak unosi ceo podatak iznova koji e prilikom auriranja prebrisati postojei podatak koji je neispravan.

Ispravka Pri tome treba imati na umu da se ne mogu sve ispravke vriti na takav nain jer postoje u razliitim bazama podataka i razliite grupe podataka koje podleu raznim propisima i dok je kod jednih podataka dozvoljeno da se nesmetano neispravan podatak zameni ispravnim kod grugih se mora ispotovati odgovarajua procedura.

Veoma esto je u takvim sluajevima potrebno da i neispravan i ispravan podatak ostanu u bazi kao evidencija o promenama u bazi ali sam krajnji korisnik kada pristupi bazi e dobiti na uvid samo poslednji ispravljeni podatak.

Brisanje Kako je pomenuto u prethodnom pasusu ponekad je potrebno obrisati neki podatak u celini jer vie nije vaei ili je bio ceo pogreno unesen. Tada se primenjuje opcija brisanja koja omoguava korisniku da trajno izbrieneki podatak iz baze. Postoje takoe i podaci u bazama podataka za koje nije dozvoljeno brisanje jer neki podaci predstavljaju hronologiju ili istoriju nekih promena ili kretanja i ako bi se ti podaci izbrisali izgubio bi se tok promena.

Brisanje Sa druge strane postoje naprimer grupe knjigovodstvenih i drugih podataka koje se nikako ne smiju brisati i moraju ostati uvek u evidenciji sa svim moguim grekama i ispravkama koje su unoene i za koje mora da postoji validna podloga dokument na osnovu ega se izvode. U suprotnom bi se omoguila manipulacija podacima koja nije dozvoljena niti po zakonu o knjigovodstvu niti po drugim zakonskim propisima.

Dodavanje novih podataka

Baza podataka je u veini sluajeva podloana promenama ili zbog svakodnevnih promena vezanih za podatke koji se nalaze u bazama recimo baza kupaca, dobavljaa, roba, knjiga itd. koje se sakodnevno moraju dopunjavati novima ili se pak u nekim bazama sa protokom vremena pojavljuju nove grupe podataka koje je potrebno uneti. Kao i kod prvobitnih unosa podataka u polaznu bazu i ovde se koriste ekranske forme za unos podataka koje omoguavaju korisnicima da mogu da unose i te nove podatke ili grupe podataka.

Ubacivanje novih polja u bazu

Ma koliko se kreatori baze trudili da prilikom kreiranja baze obuhvate sve potrebne podatke i polja koja e biti potrebna korisniku u eksploataciji baze uvek postoji mogunost ili da je prevideo neko polje ili da se u toku eksploatacije baze pojavi potreba za ubacivanjem dodatnih polja. Dok je to kod ranijih baza ponekad predstavljalo problem i zahtevalo ozbiljnije zahvate u aplikaciji, dananje baze odnosno alati baza omoguavaju da se ubacivanje jednog ili vie novih polja u bazu mogu izvoditi bez ikakvih problema. Na taj nain je omoguen nesmetan razvoj baza u kladu sa eljama, zahtevima ili pak razvojem potreba ili obima poslovanja pojedinih korisnika.

Indeksi predstavljaju odgovarajue pomone strukture koje imaju zadatak da ubrzaju pristup podacima u bazi. Definisanje indeksa se vri odgovarajuim naredbama to naravno zavisi od baze koja se koristi. Prilikom definisanja indeksa potrebno je navesti sledee: naziv relacije, naziv polja nad kojim treba definisati indeks, odnosno za vie njih ako se nad vie polja definie indeks, zatim je potrebnodefinisati dozvolu ili zabranu postojanja polja sa jednakim vrednostima podataka tj. moguih duplikata. Ukoliko duplikati nisu dozvoljeni, a to je obino sluaj kada kombinacija polja predstavlja primarni klju relacije, tada recimo nijedno od polja komponenata ne sme sadravati nula vrednosti.

Indeksi se naprimer u nekim SUBP mogu definisati na dva naina: kao SORTED ili kao HASHED. U prvom sluaju indeks je struktura poznata kao hijerarhijska - stablo, pri emu se u samom indeksu, uz lokaciju zapisa odreene n-torke, dupliraju neki podaci iz polja/kolona nad kojima je indeks definisan. U drugom sluaju indeks je takozvana hash-tablica, kod koje se lokacija zapisa n-torke izraunava na osnovu vrednosti podataka u njoj; vreme pristupa trebalo bi da bude relativno konstantno, dakle nezavisno od vrednosti podataka u n-torci.

Nasuprot tome, kod indeksa u obliku stabla moe se desiti da se neki zapis pronae ve na najviem, prvom nivou stabla, a neki drugi na najniem nivou stabla (dobro projektovana stabla obino imaju jednocifren broj nivoa, ak i za vrlo veliki broj n-torki). Indeksi u obliku stabla, imaju jo jednu prednost: kod upita za koje je potrebna vrednost podataka samo iz onih polja/kolona nad kojima je indeks definisan, dovoljno je proitati indeks, dok se samim n-torkama ne mora uopte pristupiti. Kod indeksa u obliku hashtablice, podaci iz n torki uvek se moraju itati.

Za standardni SORTED indeks moe se predvideti i veliina vora u bajtima, procenat popunjenosti i nain korienja indeksa. Naime, ako je namena indeksa u prvom redu bri pristup pri pretraivanju, onda je bolje da stranice indeksa budu u potpunosti popunjene: broj stranica bie manji, pa e biti manji i srednji broj stranica koje treba pretraiti. S druge strane, ukoliko indeks valja koristiti pri auriranju,

Ukoliko je baza raspodeljena na vie fizikih datoteka (multifileschema), iskazom STORE... moe se zahtevati da indeks bude u jednoj ili vie zona (storage area), kao i da se raspodela po zonama vri bilo po sluajnom redosledu, bilo ravnomerno po svim raspoloivim zonama.

Treba primetiti da neke baze dozvoljavajuda se nad istim poljem/kolonom, ili kombinacijom polja/kolona, definie i SORTED i HASHED indeks, budui da je prvi efikasniji kod upita kod kojih se trai opseg vrednosti nekih podataka, a drugi ima prednost kod upita koji zahtevaju tano slaganje nekih podataka. Reijsko vreme potrebno za odravanje dva indeksa, meutim, vee je nego za odravanje samo jednog, pa i tu valja proceniti ta se vie isplati.

Kljuevi su karakteristini podaci u svakom pojedinanom redu neke transakcije ili stavke koji su nedvosmisleno vezani za odreenog kupca ifra kupca, robu ifra robe, dobavljaa ifra dobavljaa,dokumenta ifra ili broj dokumenta i preko kojih se celatransakcija moe direktno dovesti u vezu sa datim kupcem, robom, dobavljaem ili dokumentom. Uvoenje kljua je bilo prisutno ikod konvencionalnih klasinih datoteka iz istih razloga, a saprelaskom na baze podataka kao viih integrisanih oblika klasinih datoteka je dobilo jo vie na znaaju.

Mogu se koristiti jedan ili vie kljueva, pri emu ako ih je vie onda je jedan primarni, a ostali su sekundarni. Kod selekcionisanja, grupisanja i pretraivanja podataka kjuevi nalaze svoju punu primenu jer su oni pored drugih kriterijuma koje korisnici postave jedan od osnovnih elemenata po kojima se vri selekcija i sortiranje.

Mada je ovaj segment delimino spomenut u okviru upita zbog njegove vanosti daemo neka dodatna objanjenja. Baze podataka su i dobile svoju punu vrednost u odnosu na druga klasinija reenja ba zbog injenice da su omoguile laka i jednostavna pretraivanja, sortiranja i selekcije podataka po razliitim i esto veoma sloenim kriterijumima, od kojih poneki nisu ni bili predvieni u fazi kreiranja baze, nego su se naknadno pojavili kao neminovnost i potreba u datom trenutku vremena ili

poslovanja neke firme ili institucije. Lepota u primeni baza podataka je ba u injenici da se kod veine baza mogu obezbeivati najrazliitiji pregledi na osnovu odgovarajuih pretraivanja, selekcija ili sortiranja podataka u bazi, po odgovarajuim kriterijumima koje korisnici mogu kombinovati od sluaja do sluaja prema trenutnim potrebama ili zahtevima posla.

Makroi i moduli nainjeni primenom VBA Visual Basic for Applications visual basic za aplikacije - predstavljaju dve dodatne mogunosti koje se mogu koristiti prilikom izrade aplikacija u nekim bazama kao i kod primene Accessa.

Primer pozivanja VBA u Accessu

Naime esto se javlja potreba za korienjem grupisanih naredbi koje su obuhvaene pojedinim modulima ili pak za formiranje funkcija koje ne postoje u datoj bazi ili se pak grupe funkcija moraju vezati u jedan sloeniji sklop, te se za razvijanje i automatizovanje baze podataka mora pristupiti pisanju programa.

Makroima se iz konanog skupa funkcija i naredbi automatizuje rad baze; meutim, njihovo korienje se u novijim aplikacijama sve vie izbegava, jer se puna sloboda i funkcionalnost ostvaruju primenom VBA. Makroi, zapravo, postoje uglavnom zbog kompatibilnosti sa prethodnim verzijama Accessa i drugih baza.

You might also like