Professional Documents
Culture Documents
@ViPserbia production
BAZE PODATAKA
-KNJIGA-
@ViPserbia
Sadrţaj
1. Uvod 5
1.1. Pojam baze 9
1.2. Istorijat baza 10
1.3. Neke od većih baza podataka 10
1.4. Neke od manjih baza podataka 11
2. Modeli – strukture podataka 14
2.1. Osnovne strukture podataka 14
2.2. Dodatna definisanja nad podacima 24
2.3. Definisanje baze 29
3. Relacione baze podataka 32
3.1. Programsko okruženje za upravljanje podacima 41
3.2. Projektovanje aplikativnih rešenja primenom relacionih baza 44
3.3. Projektovanje baze podataka 45
3.4. Projektovanje relacione baza podataka 46
3.5. Izrada dijagrama procesa 49
3.6. Izrada dijagrama funkcija 50
3.7. Izrada dijagrama toka podataka 52
3.8. Izrada matričnih dijagrama 53
3.9. Izrada dijagrama entiteta i relacija 54
4. Elementi relacione baze podataka 58
4.1. Tabele – Tables 60
4.2. Formulari – Forms 61
4.3. Upiti – Queries 63
4.4. Izveštaji – Reports 64
4.5. Spajanje relacija – spajanje tabela 65
4. 6. Ažuriranje – unos, ispravka, dodavanje 67
4. 7. Indeksi 68
4. 8. Ključevi 69
4. 9. Pretraživanja, sortiranja, selekcija 70
4.10. Makroi i primena VBA 70
5. Primena Microsoft Accessa u razvoju baze podataka 72
5.1. Uvodne informacije - uputstva 74
5.2. Primer razvoja aplikacije (poslovna praksa) 75
5.3. Pokretanje rada MS Accessa 76
5.4. Izrada tabela 76
2
@ViPserbia
3
@ViPserbia
Baze podataka
1. Uvod
5
@ViPserbia
Veoma je vaţno pitanje da li su to dva različita tipa modela podataka ili ne.
Ukoliko se radi o istom tipu modela podataka tada se postavlja pitanje da li je on
dovoljno semantički bogat da bi se mogao koristiti u fazi dizajna i da li je u isto vreme
jednostavan da bi se, u fazi implementacije, mogao lako realizovati.
Ukoliko se u navedenim fazama radi sa različitim tipovima modela podataka
tada postoji problem njihovih semantičkih razlika i načina prevoĎenja jednog modela
u drugi. Ukoliko je semantička razlika značajna nije moguće izvršiti prevoĎenje
semantički bogatijeg u semantički siromašniji model.
Očigledno je da se korišćenje različitih modela podataka u različitim fazama
razvoja softvera svodi na efekte i mogućnosti onog koji je siromašniji.
Moderna obrada podataka se zasniva na dva osnovna koncepta:
a) Na konceptu baze podataka kao jedinstvenog skladišta svih informacija
potrebnih za opis jednog realnog sistema, iz koga onda svaki korisnik moţe da izvuče
one informacije koje su mu potrebne,
b) Na konceptu sistema za upravljanje bazom kao sloţenog softverskog proizvoda,
čiji je cilj da korisniku omogući lako i brzo rukovanje potrebnim podacima, ne
opterećujući ga pritom detaljima fizičke organizacije, zaštite, obezbeĎenja
konkurentnosti i drugim sloţenim administrativnim poslovima.
Najveći broj komercijalnih SUBP je zasnovan na hijerarhijskom, mreţnom,
relacionom ili objektno orijentisanom modelu podataka.
Prvi sistemi za upravljanje bazama podataka bili su hijerarhijskog tipa (sistem
IMS – information management system, firme IBM), mada u to vreme njihovi
projektanti nisu toga bili ni svesni. Pojam modela podataka, pa samim tim i
hijerarhijskog modela, uveden je tek kasnije.
Mreţni model se pojavio nešto kasnije u odnosu na hijerarhijski, dok je relacioni
model nešto noviji u odnosu na njih - prvi ga je predloţio Codd 1970. godine.
Poslednjih godina se počeo veoma intenzivno počeo primenjivati objektno orijentisani
model.
Prvi komercijalni relacioni SUBP pojavio se krajem sedamdesetih godina i od tada
praktično kompletan razvoj SUBP i najveći broj novih realizacija koristi relacioni
model podataka. Prvi eksperimentalni sistemi koji su koristili relacioni model
konstruisani su u firmi IBM.
Na trţištu je 80 –tih i 90- tih godina postojalo preko stotinu raznih relacionih
SUBP. Vcćina njih su koristili strukturni upitni jezik SQL - Structured Query
Language ili neku njegovu varijantu.
U tom periodu veoma značajnu ulogu u svetu baza podataka je imao Rdb/VMS
proizvod američke firme Digital Equipment Corporation, namenjen računarima tipa
VAX i mikroVAX pod operativnim sistemom VMS i predstavljao je sloţen, ali
veoma dobar sistem za upravljanje bazama podataka, koji je podrţavao sve osnovne
operacije relacionog modela.
6
@ViPserbia
7
@ViPserbia
Kako je upitni jezik SQL kasnije vremenom postao standard u oblasti relacionih
baza podataka, to je Digital razvio i SQL interfejs za Rdb/VMS baze. Ovaj se softver,
pod komercijalnim nazivom VAX SQL, isporučivao zajedno sa Rdb/VMS softverom,
te je kupac imao na raspolaganju oba interfejsa i, shodno tome, imao mogućnost da
bira.
8
@ViPserbia
9
@ViPserbia
Oracle
Oracle je vodeći sistem za upravljanje bazama podataka, prenosiv, distributivan
i otvoren, poseduje izvanredne mogućnosti i ima veoma visoke performanse,
omogućava rad sa veoma velikim bazama podataka. On je u svetu najrasprostranjeniji
DBMS – data base management system – sistem za rukovanje bazama podataka jer na
najbolji način zadovoljava i zahteve današnjih najzahtevnijih informacionih sistema.
On u sebi sadrţi podršku za najkompleksnije DSS – decision support systems –
sisteme za podršku odlučivanju preko najrigoroznijih OLTP – on-line transaction
processing aplikacija čak do aplikacija koje zahtevaju simultane DSS i OLTP pristupe
do istih kritičnih podataka, pa do vodeće primene u industriji zahvaljujući dobrim
performansama i mogućnostima koje Oracle pruţa korisnicima.
Ono što je posebno vaţno kod primene Oracle-a je činjenica da on omogućava
da korisnik moţe da integriše sve svoje računarske sisteme bez obzira pod kojim
operativnim sistemom da rade UNIX, XENIX, VMS, OS-2, MVS, a pored toga
omogućava meĎuoperativnost sa manjim bazama ili sa sličnim aplikativnim alatima.
Pored toga veoma je značajna činjenica da Oracle ima razvijene brojne SQL -
alate i CASE- Computer Aided Software Engineering-softver inţinjering pomoću
računara – alate koji omogućavaju korisnicima da na što lakši način mogu da rade pod
Oracle-om.
10
@ViPserbia
Ingres
Ingres je jedna od vodećih RDBMS – Relational Data Base Management
Systems – sistema za upravljanje relacionim bazama podataka, koji je posebno
pokazao svoje izvanredne mogućnosti primene pod UNIX operativnim sistemom.
Ingres se koristi u mnogim oblastima. Pomenućemo samo neke kao što su trgovina,
bolnice, farmacija, industrija, telekomunikacije, proizvodnja, inţenjerstvo, nauka,
obrazovanje, seizmika itd. Ingres baze podataka se koriste na većini vaţnijih UNIX
platformi od single-user – pojedinačnih korisnika na PC – personal computer – ličnim
računarima do main frames – glavnih - centralnih računara u velikim računskim
centrima.
Od 1980. godine, kada je osnovana kompanija, Ingres je prilagoĎen i podešen
za rad pod UNIX operativnim sistemom tako da je Ingres multi server arhitektura
izuzetno dobra za rad u modelu client-server – klijent server, koji je prihvaćen kao
standard u današnjem komercijalnom okruţenju. Ingres se takoĎe veoma lepo i
uspešno primenjuje kod VAX – VMS sistema, u klijent server arhitekturi, bez obzira
da li lokalno ili preko mreţe.
Informix
Informix – Informiks je takoĎe jedna od vodećih i u svetu često primenjivanih
baza podataka. Ovo je baza koja ima otvorenu arhitekturu koja kombinuje efikasnu
strukturu za transfer podataka, koristi snagu SQL-a – Structured Query Language –
jezik za strukturno programiranje - za manipulaciju podacima, za definisanje podataka
kao i za kontrolu podataka, a za povećanje brzine uzimanja podataka koristi
pogodnosti C-ISAM –a- Indexed Sequential Access Method for the C language –
indeks-sekvencijalni metod pristupa uz primenu C jezika.
Programiranje sa Informiksovim 4GL – Fourth Generation Programming
Language, programski jezik četvrte generacije je mnogo brţe i jednostavnije nego sa
drugim programskim jezicima.
To je neproceduralan jezik koji omogućava korisniku da veoma lako moţe da
kreira i najkompleksnije aplikacije. Pored toga i Informiks poseduje brojne pomoćne
alate koji korisniku olakšavaju pretraţivanja kao i druge manipulacije sa podacima
smeštenim u bazu. Nadalje Informiks nudi i svoje integrisano rešenje koje omogućava
korisniku da brzo razvije ţeljeni sistem
dBase
Data Base ili skraćeno dBASE je verovatno najrasprostranjenija baza podataka
koja se u svojim različitim varijantama od dBASE, pa preko dBASE II, dBASE III pa
11
@ViPserbia
zatim Clippera gotovo ušetala u većinu ličnih računara koje su korisnici širom sveta
koristili u prvim fazama primene PC računara i baza podataka na njima, čak i u
varijantama kada su PC računari povezivani u raznovrsne mreţe. Postepeno je
izgubila dah u konkurenciji sa novodolazećim bazama i mogućnostima koje su one
nudile.
Ipak one će ostati u sećanju kao alati koje su mnogi korisnici koristili u raznim
fazama svoga rada sa bazama podataka i preko kojih su upoznali osnovne principe i
pravila u radu sa bazama.
ZIM
Jedna od baza podataka koja je u periodu 1990-tih godina bila veoma
rasprostranjena na našim prostorima pa i u celom svetu bila je ZIM baza podataka.
Ova baza je zbog svojih veoma malih zahteva u pogledu hardverskih resursa recimo u
odnosu na Oracle, kao i zbog svoje veoma dobre transportabilnosti sa manjih na veće
računarske sisteme bila veoma dobro prihvaćena od strane brojnih korisnika.
Obzirom da je to ipak bila 4GL baza podataka, ona je bila sa svim
pogodnostima koje nude takve baze, a imala je i sopstveni ER modeler – Entity
Relationship data modeler – modeler za definisanje relacija izmeĎu entiteta u bazi,
koji je omogućavao otvoren pristup u razvoju aplikacija, povećavao produktivnost u
razvoju aplikacija i obezbeĎivao jednostruko uniformno okruţenje u svim fazama
razvoja aplikacija.
Ono što je davalo posebnu prednost ovoj bazi podataka bila je činjenica da ste
mogli i najsloţeniju aplikaciju baze razviti na jednom PC-u, recimo pod DOS-om –
disc operating system, a zatim je preneti na veliki recimo VAX sistem, koji je radio
pod VMS-om – Vax operating system, i da ta aplikacija lepo radi kao da je razvijena
na samom VAX-u.
12
@ViPserbia
Progress
Progress je takoĎe jedna od baza podataka koja je veoma prisutna na našim
prostorima. Kao i ZIM i ova baza je zahtevala relativno skromne hardverske resurse i
imala mogućnost veoma lakog transportovanja sa jedne računarske opreme ili
operativnog sistema na druge. Zbog toga je i bila rado primenjivana kod onih firmi
koje su se bavile razvojem aplikacija za druge korisnike, jer im je na taj način bio
olakšan prenos i instalacija jednom razvijenih programskih paketa – aplikacija na
različite platforme koje su bile prisutne kod različitih korisnika.
Ovo je takoĎe baza zasnovana na visokorazvijenom i potpuno proceduralom
4GL jeziku četvrte generacije, koja poseduje veoma veliku brzinu u radu, veoma
veliku efikasnost, već pomenutu prenosivost, mogućnost veoma dobrog rada u raznim
varijantama mreţa i pod različitim operativnim sistemima. Pored toga ova baza
podataka obezbeĎuje i veoma visok integritet podataka kao i sigurnost u radu.
13
@ViPserbia
Pošto se isti skup podataka moţe urediti na više načina, prilikom projektovanja
se obično postavlja pitanje izbora strukture koja će omogućiti, efikasniju obradu.
U operativnoj kao i u eksternim memorijama grade se, u principu, isti tipovi
strukture podataka, ali se za njihovu izgradnju koriste različiti postupci. Za izgradnju
strukture podataka u operativnoj memoriji, biraju se postupci koji dozvoljavaju
efikasno korišćenje memorijskog prostora. Pri izgradnji struktura podataka na
eksternim memorijama, osnovni cilj predstavlja minimizacija broja pristupa ureĎaju
pri traţenju odreĎenog podatka.
Svaka klasa entiteta ima odreĎene osobine kao što su naziv, boja, vrednost,
trajanje i slično. Ove osobine se nazivaju obeleţjima. Sa tačke gledišta zadataka
informacionog sistema, nisu sva obeleţja klase entiteta jednako vaţna.
Od obeleţja, bitnih za realizaciju zadataka informacionog sistema, gradi se
odgovarajući model klase entiteta.
Svakom od obeleţja odgovara jedan skup svih mogućih vrednosti koje to
obeleţje, u konkretnim slučajevima, moţe imati. Obeleţje boja uzima vrednosti iz
skupa {bela, ţuta, crna, plava, ...}.
Obzirom da, u opštem slučaju, obeleţje uzima pojedine vrednosti iz datog
skupa sa različitim verovatnoćama, obeleţje se moţe smatrati slučajnom veličinom. U
14
@ViPserbia
15
@ViPserbia
ključna u postojećoj pojavi sloga kao i brisanje postojećih pojava sloga i njihovih
veza ukoliko je to dozvoljeno, tj. ukoliko se ne narušava integritet baze.
U nastavku ćemo dati neke od osnovnih pojmova koji se odnose na strukture
podataka. Tako naprimer skup S moţe predstavljati skup obeleţja, skup slogova
različitog tipa, skup podataka, skup pojava slogova istog tipa, skup pojava slogova
različitog tipa.
Često se u skupove podataka uvode razne relacija Ri (i=1,2, ...,), a kao
rezultantna relacija se moţe pojaviti unija, presek ili neka druga forma relacija Ri.
Tako se naprimer unija R relacija R1 i R2 se definiše kao R = R1UR2.
Relacija se mogu predstavlja spiskom ureĎenih parova, a kao prikaz relacija se
moţe se koristiti matrica aij sa vrstama ai i kolonama matrice aj (i,j = 1,2...,N)
Zatim se kao jedan od mogućih načina grafičkog predstavljanja strukture
podataka koristi usmereni graf tj. na taj način se moţe nacrtati neka struktura.
Usmerani graf G predstavlja par (S,p), gde je S skup svih elemenata, a P skup
svih potega strukture dok se elementi skupa S predstavljaju se pravougaonicima sa
upisanim nazivom elementa, a usmereni potezi strelicama.
Na slici 2.1 je dat primer jedne takve moguće strukture podataka.
S1
S2 S3
S4 S5 S6 S7
16
@ViPserbia
Linearne strukture podataka se obično nazivaju se listama ili lancima. Pri tome
je struktura liste veoma jednostavna jer svaki elemenat liste moţe imati samo jednog
prethodnika i jednog sledbenika. Na slici 2.2 je prikazana jedna takva otvorena lista, a
na slici 2.3 zatvorena lista
S1 S2 S3
S1 S2 S3
S6 S5 S4
17
@ViPserbia
S1
S2 S3
S4 S5
U zavisnosti od ključa nadreĎenog segmenta ili grane moţe da zavisi jedan, ili
više podreĎenih segmenata, a moţe se desiti da ne postoji ni jedan podreĎeni segment.
Pri tome treba imati na umu da su segmenti – grane stabla na niţem nivou u
podreĎenom odnosu tj. podreĎeni segmentima odnosno granama stabla na višem
nivou.
Hijerarhijske strukture se nazivaju i strukturama tipa stablo. Svaki elemenat
strukture naziva se čvorom stabla. Pri tome čvor, kome odgovara nula kolona,
odnosno, čvor, u koji ne dolazi ni jedan poteg, naziva se koren stabla. Čvor, kome
odgovara nula vrsta, odnosno, čvor iz koga ne polazi nijedan poteg, naziva se listom.
Svaki čvor predstavlja koren jednog podstabla.
MeĎu čvorovima stabla postoji hijerarhija nivoa. Koren predstavlja čvor prvog
nivoa hijerarhije. Proizvoljan čvor se nalazi se na k-tom nivou hijerarhije (k < (l, 2,...
,h), gde je h broj nivoa hijerarhije stabla, ako se nalazi na kraju puta duţine k-l, a put
počinje u korenu stabla. Duţina puta se meri brojem potega izmeĎu dva posmatrana
čvora. Broj nivoa hijerarhije h naziva se visinom stabla. Visinu stabla h predstavlja
broj, koji je za jedan veći od duţine puta izmeĎu korena i najudaljenijeg lista.
Za stablo se kaţe da je puno, ako se svi listovi nalaze na istom odstojanju od
korena, odnosno, ako, od korena, svakom listu odgovara put duţine h-1. Za stablo se
kaţe da je kompletno, ako svi njegovi čvorovi, koji ne predstavljaju listove, imaju
svih n odlaznih potega.
Stablo na slici 2.1 je kompletno i puno, dok je stablo na slici 2.5 kompletno, ali
nije puno, a stablo na slici 2.4 je nekompletno i nepotpuno.
Za pojmove punog i kompletnog stabla vezan je i pojam kapaciteta stabla. Pod
kapacitetom stabla K podrazumeva se broj elemenata koji se mogu smestiti u čvorove
kompletnog punog stabla reda n i visine h. Kapacitet čvora k predstavlja broj
elemenata koji se moţe smestiti u čvor.
18
@ViPserbia
S1
S2 S3
S4 S5 S6
Odelenje knjigovodstva
o Slogovi (zaposleni)
Jovanović
Petrović
Kukoč
Odelenje marketinga
o Slogovi (zaposleni)
Ugren
Napomenimo ovde da su se još ranih 60-tih godina pojavile prve ideje o razvoju
posebnih softvera za upravljanje bazama podataka. Poznati teoretičar toga doba
Charles W. Bachman (General Electric Co.) razvio je tehniku dijagrama preko kojih
je stvarao takozvane programske strukturne dijagrame (PSD-program structure
diagrams). Ove tehnike su značajno poboljšale metodologiju analize informacionih
19
@ViPserbia
BAZA PODATAKA
20
@ViPserbia
Ono što je posebno značajno kod ove strukture je da svaki elemenat skupa
moţe imati više direktnih prethodnika i više direktnih sledbenika
Mreţni model podataka se zasniva na mreţi podataka koji su tako povezani da
ne postoje ni nadreĎeni niti podreĎeni segmenti baze.
Ovakva struktura je mnogo sloţenija u odnosu na hijerarhijsku strukturu.
Mreţna struktura se moţe dobiti i odgovarajućom kombinacijom hijerarhijkih
struktura.
Pored toga ona značajno smanjuje dupliranje nekih podataka u odnosu na
hijerarhijsku strukturu i značajno smanjuje vreme potrebno za pronalaţenje nekih
podataka.
Hijerarhijska i mreţna struktura podataka mogu zadovoljiti kada su veze
izmeĎu podataka malobrojne ili pak jednostavne. MeĎutim u slučajevima sloţenijih
21
@ViPserbia
1970. godine E.F. Kod (E.F.Codd - u to vreme je bio član IBM-ove istraţivačke
laboratorije u San Hozeu (San Hose, California) je publikovao sada već klasični rad
"A Relational model of Data for Large Shared Data Banks" – Relacioni model
podataka za velike distribuirane baze podataka. Pojava relacionog modela je bila
uslovljena dobro poznatim negativnim karakteristikama hijerarhijskog i mreţnog
modela. U delu koji se odnosi na objekte, relacioni model je relativno siromašan jer
raspolaţe objektima relacija, atribut, kandidat za ključ, primarni ključ i strani ključ.
Veze izmeĎu relacija se uspostavljaju na osnovu stranih ključeva ili uvoĎenjem
asocijativnih relacija. Najznačajnija ograničenja relacionog modela su ograničenja
integriteta entiteta i ograničenja referencijalnog integriteta. U nekim realizacijama
SUBP-a definiše se odreĎeni skup integriteta atributa (na domen, na opseg vrednosti i
slično).
Uopšteno relacioni sistem se moţe opisati kao grupa slobodno povezanih
struktura podataka koje zajedno daju potrebne informacije o nekom subjektu. Naime
u većini slučajeva je besvrsishodno drţati baš sve informacije o nekom subjektu u
jednoj datoteci ili tabeli ili zapisu. Ove informacije se grupišu u odreĎene logičke
celine i smeštaju u posebne datoteke ili tabele, a relacije se koriste za povezivanje
ovih srodnih grupa podataka.
22
@ViPserbia
E-R model
Kao što se relacioni model javio kao odgovor na nedostatke mreţnog i
hijerarhijskog modela, tako se Čenov (P.P.Chen) E-R model (Entity-Relationship
Model) javio kao odgovor na nedostatke relacionog modela. Neki autori oval model
nazivaju i postrelacionim. Prvobitna upotreba E-R modela podataka se svodila na fazu
dizajniranja informacionog sistema, zbog velikog broja koncepata koji poseduje i, u to
vreme, nepostojanja realizovanih operatora u nekom od SUBP-a. Svi koncepti
relacionog modela (relacija se u E-R modelu zove tip entiteta) su i dalje zadţani i
pridodat im je skup novih:
Slab tip entiteta - tip objekta koji je identifikaciono i/ili egzistencijalno zavisan
od drugog tipa objekta pri čemu ta zavisnost moţe biti i zavisnost prethoĎenja.
Tip veze - Objekat preko koga se uspostavlja veza izmeĎu tipova entiteta.
Ukoliko se radi o vezi izmeĎu pojava jednog tipa entiteta tada govorimo o
refleksivnoj vezi.
Mešoviti tip objekta (agregacija) - objekat preko koga se uspostavlja veza
izmeĎu tipova entiteta, pri čemu se on dalje moţe povezivati sa drugim tipovima
entiteta preko veza
23
@ViPserbia
Kada se u skup obeleţja jedne klase entiteta uvede relacija strogog poretka tako
da svako obeleţje moţe imati najviše jednog neposrednog prethodnika i najviše
jednog neposrednog sledbenika, dobija se linearna struktura obeleţja. Ta linearna
struktura obeleţja naziva se tipom sloga.
UvoĎenjem relacija u skup slogova različitog tipa ponovo se dobija logička
struktura obeleţja.
Logička struktura obeleţja definisana nad skupom slogova različitog tipa,
karakteristična je za baze podataka. Logičke strukture obeleţja baza podataka mogu
biti linearne, hijerarhijske, mreţne ili relacione. Tip sloga predstavlja logičku
strukturu obeleţja datoteke. Datoteci najčešće odgovara linearna logička struktura
obeleţja definisana nad skupom elementarnih obeleţja.
Svakom tipu sloga, kao linearnoj strukturi obeleţja, odgovara skup pojava
sloga. Svaka pojava sloga predstavlja jednu linearnu strukturu podataka. UreĎenje
podataka u pojavi sloga definisano je ureĎenjem obeleţja u tipu sloga. Kada se u skup
pojava, sloga jednog tipa, uvede relacija strogog poretka dobija se logička struktura
podataka datoteke. Logička struktura podataka datoteke je najčešće linearna, a dobija
se ureĎivanjem pojava sloga jednog tipa saglasno rastućim ili opadajućim
vrednostima ključa.
Logičke strukture podataka u bazama podataka se definišu uvoĎenjem relacija u
skup pojava slogova različitog tipa. Pored relacija izmeĎu pojava slogova različitog
tipa, koje diktira logička struktura slogova različitog tipa, skup pojava slogova
snabdevaju i relacije izmeĎu pojava sloga.
24
@ViPserbia
25
@ViPserbia
26
@ViPserbia
27
@ViPserbia
Kod sektorskog postupka sve staze na aktivnim površinama ploče diska su podeljene
na odreĎeni broj sektora. Broj sektora varira od ureĎaja do ureĎaja. Obično
predstavlja neki stepen broja 2, koji jc veći od 1, a moţe biti manji ili jednak 128.
Blokovi sa jednim ili više slogova memorišu se tako što se nakon početka
sektora ostavi jedan mali meĎusektorski razmak, a zatim se upisuje blok na stazu.
Ukoliko je blok duţi od kapaciteta soktora, njegovo se momorisanje nastavlja u
narednim scktorima, ali se nakon svakog početka sektora ostavlja mali razmak.
Svaki novi blok se počinje memorisati od meĎusektorskog razmaka novog sektora.
Ukoliko se za memorisanje jednog bloka upotrebi samo deo nekog sektora, ostatak
sektora ostaje prazan. Na slici 2.8 je prikazan upis podataka na magnetni disk. U
slučaju promenljivog faktora blokiranja ili slogova promenljive duţine, kod primene
sektorskog postupka upisa podataka na disk koriste se reči za opis bloka i reči za opis
sloga.
Naziv programabilan potiče od činjenice da se razmaci, izmeĎu fizičkih
blokova sa podacima, generišu programskim putem, kao i od činjenice da se uz svaki
blok memorišu informacije o njegovom sadrţaju. O memorisanju razmaka i dodatnih
informacija brine operativni sistem.
Traţenje bloka na stazi moţe se vršiti ili uz pomoć adrese, odnosno rednog
broja bloka, u kojem se slog nalazi ili uz pomoć vrednosti argumenta traţenja. Ako se
traţenje vrši na osnovu adrese, u operativnu memoriju se prenosi samo sadrţaj
lokacije svakog bloka. Tek kada se adresa bloka u lokaciji pokaţe jcdnakom adresi
traţenog bloka, u operativnu memoriju se prenosi i sadrţaj date lokacije.
N TRAG – STAZA
SEKTOR
n TRAG – STAZA
MEĐUSEKTORSKI
RAZMAK
0 TRAG - STAZA
SEKTOR
28
@ViPserbia
Moţda će izgledati čudno zašto se ovde bavimo definisanjem baze, kad je o tome
već ranije nešto rečeno. U početnom delu, meĎutim, namerno su preskočene sve
naredbe koje se odnose na fizičku organizaciju podataka. Sada ćemo se vratiti na te
naredbe (DEFINE DATABASE, odnosno CREATE SCHEMA) i ukratko ćemo
pokazati šta se sve moţe specificirati prilikom definisanja baze.
Pre svega, pojedini SUBP daju mogućnost projektantu da svoju bazu drţi u jednoj
ili više datoteka, koje se mogu nalaziti na različitim fizičkim jedinicama eksterne
memorije (najčešće su to diskovi). Osnovni razlozi za deljenje baze na više fizičkih
datoteka su dvojaki: prvo, na taj način se povećava raspoloţivi prostor za smeštaj
baze, i drugo, poboljšavaju se performanse sistema, jer se ulazno-izlazne operacije
kojima se pristupa bazi raspodeljuju na različite diskove i disk kontrolere, pa je vreme
čekanja kraće.
Prilikom definisanja baze, mogu se naprimer zadati sledeći parametri fizičke
organizacije:
. lokacija (ALLOCATION) i prostor rezervisan za bazu (EXTENT), kao i veličina
stranice u blokovima (PAGE SIZE);
. dozvoljeni prostor za širenje baze (za koji se navode MINIMUM i MAXIMUM broj
stranica, kao i PERCENT GROWTH);
29
@ViPserbia
- nazivi, lokacije i veličine datoteka u kojima će biti smešteni delovi baze (FILE-
NAME, ALLOCATION, EXTENT);
- veličina stranica i način popunjavanja stranica (PAGE SIZE, PAGE FORMAT), koji
moţe biti UNIFORM (ako stranice sadrţe podatke iz samo jedne relacije) ili
MIXED (ako stranice mogu da sadrţe podatke iz više od jedne relacije) ;
30
@ViPserbia
31
@ViPserbia
Istorijski gledano, kako je već pomenuto u uvodnom delu, tokom 60-tih i 70-tih
godina implementirani su prvi softveri za rukovanje (upravljanje) bazama podataka,
koje su bile zasnovane na hijerarhijskim i mreţnim modelima podataka i kada su se
koristile takozvane flat datoteke. U praksi se pokazalo da je ovakva organizacija
podataka bila nefleksibilna zbog toga što su strukture podataka bile veoma stroge i
bilo je mnogo teškoća da se sa aplikativnim programima izvršavaju rutinske obrade.
32
@ViPserbia
Svaka od ovih kolona zadovoljava jedan od tri tipa podataka. Tip podataka
jedne kolone označen je i vrednošću podatka koji se moţe smestiti u takvu kolonu.
Number - mogu se smeštati samo brojevi (celi i decimalni)
Character - mogu se smeštati brojevi, slova, znakovi punktuacije (u Access-u
se ovakav tip podataka naziva tekst)
Date - mogu se smeštati samo podaci oblika datuma i vremena .
Kod nekih baza podataka implementirane su druge vrste tipova podataka kao
naprimer bit-mape slika (Images), ali ovi i napred navedeni su najtipičniji u upotrebi.
33
@ViPserbia
Treba zapaziti da ove dve tabele dele istu kolonu "KlijentiID" tako da pojave
ove kolone imaju iste vrednosti i u jednoj i u drugoj tabeli. To znači da postoji relacija
koja dozvoljava da klijent pod imenom Jovan Jovanović ima tekući račun sa
čekovima (Čekovi) i račun za štednju (Štednja), a da su oba otvorena istoga dana: 1.
XII 1999.
Za ovakve relacije koristi se i specijalno ime relacije pod nazivom "sastavnice"
(Master/Detail). U relacijama tipa sastavnica, jedan slog iz matične datoteke (kao npr.
klijent sa šifrom KlijentID= 1001 odnosno imenom Ime_i_Prezime=Jovan Jovanović)
moţe imati više slogova u datoteci sa detaljima (u ovom slučaju su to dva računa)
dodeljena jednom slogu iz glavne matične datoteke - tabele.
Moguće je da u ovakvim relacijama tipa "sastavnica" postoji slog u matičnoj
tabeli, a da taj slog nema detalje. MeĎutim, nemoguće je da se pojavi slog u datoteci
"detalji" koji nema odgovarajuću relaciju sa matičnom datotekom. Na primer, moţete
imati klijente u tabeli "Klijent" a da nemate nikakve informacije o računima takvog
klijenta. Medjutim, bilo kakva informacija o računu MORA biti asocirana jednom
klijentu u tabeli "Klijent"- klijenata.
U svrhu obezbeĎenja egzistencije relacija izmeĎu tabela, svaka tabela MORA
imati i jednu kolonu koja se naziva "Ključ" (indeks tabele, key) koja se koristi kao
jedinstveni (unikatni) identifikator reda odnosno sloga u tabelama. U navedenim
tabelama kolona-ključ se nikada ne moţe duplicirati. U primeru datom primeru to je
kolona "KlijentID" za tabelu "Klijent" odnosno kolona "Broj_Racuna" je ključ za
tabelu "Racuni".
Za skup operacija nad relacijama, svi operandi moraju imati istu šemu, a
rezultat mora takoĎe imati istu šemu.
34
@ViPserbia
Selekcija
To znači da se iz skupa R1 kreira nova relacija R2 koja sadrţi sve one n-torke
iz R1 koji zadovoljavaju (iskaz je istinit) kriterijum (predikat) P. Predikat moţe biti
bilo koji Bool-ov izraz: "manje od" <, "veće od" >, "jednako ili veće od" >=, "jednako
ili manje od" =<, "jednako" = kao i "nije jednako" !=).
Projekcija
R2 = project(R1,D1,D2,...Dn)
project (Server,Name,Status)
35
@ViPserbia
Ime Status
Asus aktivan
Intel aktivan
Intel neaktivan
Asus aktivan
Asus aktivan
Sastavnica
R3 = join(R1,D1,R2,D2)
sortiranje (sort)
mešanje (merge)
kopiranje (copy)
ubacivanje (insert)
brisanje/odbacivanje) (delete/remove)
rad sa indeksima (mogu biti jedinstveni, sa duplikatima, kombinovani
odnosno sloţeni, strani ključevi)
ugnjeţdene petlje
Krajnji korisnik relacionu bazu podataka vidi kao skup mnogo tabela koje su
povezane sa nekom relacijom:
- tabela je vertikalno izdeljena na "kolone" a horizontalno na "redove"
- n kolona
- m redova
- presek kolone i reda predstavlja "polje"
Primer:
36
@ViPserbia
Zaposleni
Ime i prezime zaposlenog Godina roĎenja Zanimanje
Jovan Jovanović 1961. dipl. ekonomista
…
Petrović Petar 1950. dipl.inţ.elektrotehnike
…
Ţivković Ţivko 1978. auto-mehaničar
Pravila normalizacije
Normalizacija je formalizovani postupak za grupisanje atributa podataka u
tabele i tabela u baze podataka. Ciljevi normalizacije sadrţe sledeće:
- Eliminisanje dupliranih informacija u tabelama,
- PrilagoĎavanje budućim izmenama u strukturi tabela,
- Umanjivanje uticaja strukturnih izmena baze podataka na korisničke aplikacije
koje pristupaju podacima.
Proces normalizacije se sprovodi u pet koraka.
Prva normalna forma
Druga normalna forma zahteva da podaci u svim kolonama koje nisu deo ključa
budu potpuno zavisni od primarnog ključa i svakog elementa primarnog ključa kada
je on sloţeni primarni ključ. Potpuno zavisni znači da je vrednost podataka u svakoj
koloni koja nije deo ključa zapisa, na jedinstven način odreĎena vrednošću primarnog
37
@ViPserbia
ključa. Ova normalna forma uklanja veći deo nepotrebnih (redudantnih) podataka,
kojih verovatno ima u prvoj normalnoj formi.
Zahteva da sve kolone koje nisu deo ključa tabele budu zavisne od primarnog
ključa tabele i nezavisne jedna od druge. Tabele moraju da odgovaraju prvoj i drugoj
normalnoj formi da bi bile sposobne za treću normalnu formu.
38
@ViPserbia
39
@ViPserbia
40
@ViPserbia
41
@ViPserbia
Obuka - Edukacija
Da bi bilo koji sistem za upravljanje podacima mogao da se napravi,
neophodna je obuka osoblja za upotrebu takvog sistema.
KORISNIK
SISTEM ZA UPRAVLJANJE
BAZOM PODATAKA
42
@ViPserbia
Programski jezik
Programski jezik treba da omogući korisniku da model poslovnih funkcija
transformiše u program koji će sa svojim interfejsom (preko aplikativnih
sistema) omogućiti korisniku pristup podacima.
Danas je na trţištu prisutno nekoliko standardnih programskih jezika:
- C (sa svojim dijalektima) (kompajlerskog tipa)
- Borlandov Delphi ko (kompajlerskog tipa)
- Microsoftov VisualBasic (pseudointerpretativnog i/ili
kompajlerskog topa)
- COBOL sa preprocesorima za pristup podacima
(kompajlerskog tipa)
- ADA (kompajlerskog tipa)
- Java (pseudointerpretatorskog tipa)
- XML (Extented Mark-Up Language) (nije programski jezik u
pravom smislu ali omogućava upravljanje interfejsima za
obuhva podataka)
- SQL (Structured Query Language) (nije pravi programski
jezik)
- i niz specifičnih drugih jezika
Aplikativni sistemi
o Aplikativni sistemi su programske celine napravljene po meri
korisnika a na osnovu prihvaćenog glavnog odnosno izvoĎačkog
projekta informacionog podsistema.
o Aplikativni sistemi se realizuju sa konkretnim programskim jezikom
primenjenim nad konkretnom fizičkom i logičkom bazom podataka.
Baza podataka
o Sistem za kreiranje fizičke organizacije baze podataka za smeštaj
podataka (fizička organizacija podataka)
o Sistem za kreiranje logičke organizacije baze podataka (tabele,
relacije, indeksi)
o Sistem za administraciju i nadzor logičke organizacije podataka
o Skup alata za projektante baze podataka:
- Rečnik podataka
- Dijagrami za kontrolu projekata (upravljanje vremenom
realizacije projekata)
- Dijagrami poslovnih funkcija
- Dijagrami poslovnih procesa
43
@ViPserbia
44
@ViPserbia
45
@ViPserbia
5. Izrada uvodnog rečnika podataka koji bi pomogao u definiciji tabela koje čine
osnovu baze podataka;
6. OdreĎivanje relacija izmeĎu tabela baze podataka na osnovu veza izmeĎu
objekata koje se nalaze u njima i ove informacije svakako treba uključiti u
rečnik podataka;
7. Uspostavljanje tipova aţuriranja i transakcija koje prave i menjaju podatke u
tabelama uključujući i sve neophodne zahteve u vezi sa integritetom podataka;
8. OdreĎivanje načina korišćenja indeksa kako bi se ubrzalo kreiranje upita, s tim
da se izrazito ne uspori dodavanje podataka u tabele ili da se dodatno ne
zauzme veliki prostor na disku;
9. ObezbeĎivanje zaštite podataka – odreĎivanje ko moţe da pristupi i menja
podatke u svakoj tabeli i da promeni strukturu tabela;
10.Dokumentovanje dizajna baze podataka kao jedne celine, pisanje procedura za
odrţavanje baze podataka uključujući i one za izradu rezervne kopije datoteke i
restauraciju.
Posebno treba imati na umu da u postupku projektovanja svaki korak zavisi od
prethodnog.
Kao što je već pomenuto teorija projektovanja relacione baze podataka
utemeljena je na grani matematike koja se naziva Teorija skupova, zajedno sa velikim
udelom kombinatorike i nešto malo statističke metodologije. Skup pravila i simbola
pomoću kojih se relacione baze podataka definišu naziva se relaciona algebra.
46
@ViPserbia
47
@ViPserbia
48
@ViPserbia
model podataka sistema. Ovde se definišu svi atributi objekata i sva pravila
integriteta podataka.
- u fazi projektovanja i implementacije sistema, model podataka je osnova za
projektovanje baze podataka i aplikacije. Iz modela objekti-veze se
formalno i automatizovano (uz pomoć softverskih alata) mogu definisati
logička struktura baze podataka i programi za odrţavanje baze podataka.
- u fazi operativnog rada sistema, model podataka implementiran kao rečnik
baze podataka je osnova za odrţavanje sistema (izmene koje se zahtevaju).
Implementacija funkcija
Poslovne funkcije se transformišu u programske module pa se poslovne
funkcije implementiraju kao:
- forme za obuhvat podataka (obrasci, maske,...) na ekranu terminala,
- izveštaji koji se mogu štampati ili ne,
- zasebne programske jedinice kojima se obraĎuju podaci (sprovodi se proces
vezan za konkretnu pojavu funkcije) ili
- uputstva za obavljanje funkcije.
49
@ViPserbia
Kod izrade dijagrama procesa najčešće se koristi opisivanje rečima. Pored toga,
navodi se startna tačka procesa (okidač) i finalni proizvod procesa (rezultat),
Primer:
Dijagram baznog (osnovnog) procesa ima nekoliko komponenti:
- korake procesa (svaka aktivnost unutar baznog procesa); diskretan "komadić
- delić" posla koji se obavlja,
- prenošenja kontrola unutar procesa iskazanih kao koraci (tok procesa),
- gde se smeštaju materijali ili podaci ("magacin-skladište") sa periodom
vremena,
- identifikacija i definisanje dogaĎaja (okidači i rezulati procesa),
- definisanje i opis organizacione jedinice u čijoj je nadleţnosti proces
- kreiranje sirove verzije modela i
- verifikacija modela procesa.
50
@ViPserbia
"Da"
DogaĎaj Uslov? Tok
"Ne"
Organizaciona
jedinica "i"
Magacin
Kako ovakav model za izradu dijagrama procesa nije dovoljan onda se ide na
izradu dijagrama funkcija.
Poslovna funkcija je nešto što radi posao ili što treba da se uradi, odnosno,
identifikuje se, definiše i opisuje misija i ciljevi posla. Jedan proces moţe imati na
stotine a ponekad i na hiljade funkcija (npr. proizvodnja aviona).
51
@ViPserbia
Primer:
***
ADM1
Obraditi i promovisati proizvode na
zalihama i pruţiti usluge klijentima
ADM2
Kontrolisati zalihe proizvoda
***
ADM3
Identifikovati akcije prema nelikvidnim
klijentima
ADM4
Arhivirati transakcije
52
@ViPserbia
Poslovna funkcija:
1 "Rent-a-car" Aktivnost "Rent-a-car" koja transformiše
podatke unutar poslovanja
Uradi procenu najma
automobila i procenu
prihoda preduzeću
Tok podataka:
Izvor/Cilj podataka:
Memorija za podatke:
53
@ViPserbia
Primer:
"odgovaram..." "gledam..."
1 "Rent-a-car"
"dovozim auto.." "zahtevam..."
54
@ViPserbia
Entitet je stvar, predmet sa nekim značajem, koja opisuje suštinu odnosno ono
što moramo znati o toj stvari, odnosno mesto gde čuvamo informaciju o toj stvari.
Primer: "Student", "Predmet", "Knjiga".
Relacija moţe biti opcionalna (pod nekim uslovima se moţe pojaviti). Relacija
u smislu skupova ima svoju kardinalnost (broj elementa skupa): 1:1; 1:M ili M:M
(M=mnogo).
55
@ViPserbia
Primer:
56
@ViPserbia
Kao što je već rečeno baza podataka se moţe definisati i kao skup
odgovarajućih entiteta koji odgovaraju stvarnim elementima, dogaĎajima ili
konceptima realnog sistema za koji je baza načinjena. Ovi entiteti su u bazi povezani
odreĎenim meĎusobnim vezama. Entiteti i veze izmeĎu njih su opisani takozvanim
atributima. Veoma je vaţno kako su definisani modeli podataka u bazi jer oni imaju
veoma vaţnu ulogu u svim fazama baze, počev od analize zahteva korisnika pa do
kreiranja baze, puštanaja u rad do redovne primene baze u praksi.
U praksi je kao što smo pomenuliu drugom poglavlju tokom primene raznih
vrsta skupova podataka i njihovih meĎusobnih veza bio prisutan i veliki broj različitih
tehnika modeliranja podataka. Dok je klasični pristup koji se odnosio na kreiranje
klasičnih datoteka podataka bio više vezan za načine obrade koji su se primenjivali
nad tim podacima, a manje na same podatke, noviji model podataka koji je omogućio
mnogo bolju i efikasniju realizaciju baza podataka je zasnovan na primeni relacija tj.
veza izmeĎu entiteta i to je takozvani Entity – relationship model. Primenom ovakvog
modela je obezbeĎen mnogo veći stepen nezavisnosti podataka od programa koji ih
koriste tj. omogućeno je, da kada korisnik ima formiran skup podatka na takav način,
da posle moţe na tim podacima graditi veoma različite aplikacije i praviti veoma
različita programska rešenja.
57
@ViPserbia
Pored entiteta i veza meĎu njima kao elementi baze se pojavljuju i atributi koji
im se pojedinačno dodeljuju. Oni zajedno čine osnovni koncept modela entitet-veza.
Pre svega definišimo entitet – to je jedan od objekata nekog realnog sistema koji se
preko njega mogu lako definisati i identifikovati. Veza izmeĎu entiteta je ono što u
stvari povezuje jedan entitet sa drugim u pojmovnom ili funkcionalnom smislu. Veze
mogu biti parcijalne pojedinačne 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 tiče atributa oni označavaju neke od karakterističnih odlika entiteta ili veze.
Nadalje veoma je vaţno i ovom prilikom napomenuti da izmeĎu entiteta mogu
postojati različiti stepeni veza tako na primer postoji veze tipa 1:1 – jedan prema
jedan, zatim 1: N – jedan prema više i N : N – više prema više kada se entitetu jednog
tipa pridruţuje više entiteta drugog tipa i obrnuto. Jednom definisane relacije postaju
osnova za realizaciju same baze. Da bi se definisani model podataka mogao
realizovati u formi realne baze neophodno je da se definišu relacije izmeĎu podataka
koji su prisutni u sistemu. Zatim je potrebno te podatke grupisati u odreĎene logičke
celine. Prilikom prevoĎenja modela entiteta i veza u relacije tj. prevoĎenja u relacioni
model potrebno je da se vodi računa o sledećim osnovnim pravilima:
58
@ViPserbia
korisnici ţele i kojima se aţurira baza podataka. Kao prvo javlja se zahtev da se kreira
ţeljeni skup podataka i da se on i fizički realizira na računarskoj podlozi. Kod novijih
baza podataka ovaj postupak se svodi na kreiranje odgovarajućih tabela podataka.
Znakovna polja mogu sadrţati bilo koji znak sa tastature, dok numerička polja
sadrţe samo numeričke vrednosti, znakove + i – kao i decimalnu tačku. Datumska
polja sadrţe datum. Kod većine baza je obezbeĎena automatska kontrola datuma.
Logička polja sadrţe elemente Bulove algebre tj. logičko Da (T-True-istina) , logičko
Ne (F- False – laţ), Y- yes – da, N – no- ne. Što se tiče MEMO polja ona su
predviĎena da se u njih mogu smestiti tekstualne informacije.
Što se tiče vrednosti memorijskih podataka oni mogu biti konstante i biće u tom
slučaju posmatrane kao da su slova, a mogu biti karakteri, numerici ili pak prazna
polja. Pored toga vrednosti memorijskih podataka mogu biti i promenljive i sluţe
kako za smeštanje polaznih podataka tako i za smeštanje meĎurezultata. Pored toga
memorijske promenljive se mogu definisati i kao nizovi koji sadrţe odgovarajući broj
elemenata. Za davanje naredbi za izvoĎenje odgovarajućih operacija nad podacima
koriste se odgovarajući simboli koji se nazivaju operatori i preko njih se definišu
odgovarajuće operacije koje će se izvoditi kao naprimer sabiranje, oduzimanje,
mnoţenje, deljenje itd.Operatori mogu biti aritmetički, logički, string kao i relacioni
operatori.
Pri kreiranju baze podataka veoma je bitno dobro definisati tip polja, jer su
brzina rada, organizovanost podataka i veličina 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 isključivo numeričke vrednosti postavljamo tip polja
59
@ViPserbia
Baza podataka moţe da sadrţi više tabela koje se preko relacija meĎusobno
povezuju. Npr. čitaoce ćemo drţati u jednoj tabeli, knjige u drugoj, a
iznajmljivanja/vraćanja knjiga u trećoj. Relacije se uspostavljaju samo meĎu
istovetnim podacima, a najčešće izmeĎu šifara (npr. šifru čitalaca u tabeli
čitaoci_osnovni_podaci i šifru čitalaca u tabeli izdavanje_knjiga valja meĎusobno
povezati relacijom jedan prema više - jedan čitalac moţe uzeti više knjiga, ali se jedna
knjiga ne moţe nalaziti kod više čitalaca istovremeno). Na ovaj način se izbegava
višestruki unos podataka za čitaoca pri svakoj njegovoj poseti biblioteci, a mogućnost
grešaka pri unosu adrese ili naziva čitaoca je praktično anulirana.
Mnogi dobro uraĎeni programski paketi, koji se odnose na baze podataka, neće
vredeti mnogo za korisnike ako su ekranske forme i meniji za rad sa bazom loše
dizajnirani odnosno ako ih je teško koristiti u svakodnevnom radu. Kada je dobro
organizovan i dizajniran sistem menija on značajno olakšava korisniku rad sa bazom.
Nekada je (sa ranijim bazama) tj. kod klasičnog programiranja sistema menija izmena
u nekom delu povlačila za sobom izmenu celog programa vezanog za menije.
60
@ViPserbia
Zbog toga se vremenom prešlo na sistem gde se struktura stabla menija čuvala
u datoteci i zatim se ona koristila za kreiranje menija tako da bi program klizio po
stablu po svim nivoima i gde bi se birala opcija za dati posao, a čije bi se ime takoĎe
nalazilo u datoteci menija. Forma je u stvari samo "pogled" na tabelu u čoveku
prihvatljivijem izgledu.
Forma takoĎe ne mora da sadrţi niti jedno polje za unos ili prikaz podataka.
Ona jednostavno moţe biti kreirani pozdravni ekran vza datu aplikaciju sa prigodnim
tekstom i slikom, koji se posle isteka definisanog vremenskog intervala sam zatvara.
61
@ViPserbia
Takve forme mogu uzeti oblik pozdravne slike koja se pojavljuje prilikom starta
nekog većeg programa, kao što se to često dogaĎa u programima paketa Microsoft
Office.
U stvari moţemo reći da su upiti posebni pregledi kojima se postavlja neki upit
nad tabelom i koji izdvajaju podatke za pregled na ekranu ili štampanje putem
izveštaja. Naprimer ukoliko ţelimo pregled svih narudţbina ostvarenih posle meseca
januara u kriterijum za upit se moţe upisati >31.01.2000.
Sem izdvajanja podataka postoje i posebni upiti koji mogu kreirati tabelu
koristeći drugu tabelu ili više drugih tabela nad kojom je postavljen upit, odnosno
mogu brisati podatke iz postojeće tabele takoĎe po nekom kriterijumu.
62
@ViPserbia
Podaci prikazani u izveštaju mogu biti izvedeni iz tabela ili iz upita (filtrirani
podaci). Dizajniranje izveštaja je veoma slično dizajniranju formi, ali se priprema za
selekciju podataka i generisanje izveštaja radi na sličan način i kao priprema upita.
63
@ViPserbia
64
@ViPserbia
65
@ViPserbia
Unos
Da bi se mogli unositi podaci u bazu podataka, a posebno kada to čini veći broj
korisnika poţeljno je ili bolje rečeno potrebno je da se naprave odgovarajuće ekranske
forme na kojima će se lepo kreirati ţeljeni oblik dokumenta za unos sa svim poljima
koja korisnik treba da unosi. Pri tome se definišu tipovi podataka, odgovarajuće
duţine polja, kao i odgovarajuće kontrole koje će obezbediti da korisnici sa što manje
grešaka ili propusta unose potrebne podatke. Većina savremenih baza ima gotove
odreĎene forme ekrana za unos koji se mogu u takvoj ili donekle izmenjenoj i po ţelji
korisnika prilagoĎenoj formi koristiti.
Ispravka
Ukoliko je prilikom unosa korisnik napravio grešku i pogrešno uneo neki
podatak ili neki njegov deo ili su pak odreĎeni podatak ili grupa podataka u bazi
tokom vremena i promena koje ono nosi sobom postali nevaţeći ili neadekvatni tada
je potrebno obezbediti mogućnost njihove ispravke delimične ili potpune ili pak
kompletnog brisanja nekog podatka. Zavisno od programera koji realizuje aplikaciju
na datoj bazi ove izmene ili ispravke se realizuju uglavnom primenom ekranskog
formulara za unos pri čemu se vrši ili unosi samo ispravka ili se pak unosi ceo
podatak iznova koji će prilikom aţuriranja prebrisati postojeći podatak koji je
neispravan.
Pri tome treba imati na umu da se ne mogu sve ispravke vršiti na takav način
jer postoje u različitim bazama podataka i različite grupe podataka koje podleţu
raznim propisima i dok je kod jednih podataka dozvoljeno da se nesmetano
neispravan podatak zameni ispravnim kod grugih se mora ispoštovati odgovarajuća
procedura. Veoma često je u takvim slučajevima 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 više nije vaţeći ili je bio ceo pogrešno unesen. Tada se primenjuje
opcija brisanja koja omogućava korisniku da trajno izbriše neki podatak iz baze.
Postoje takoĎe 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.
Sa druge strane postoje naprimer grupe knjigovodstvenih i drugih podataka
koje se nikako ne smiju brisati i moraju ostati uvek u evidenciji sa svim mogućim
greškama i ispravkama koje su unošene i za koje mora da postoji validna podloga –
66
@ViPserbia
4.7. Indeksi
Indeksi predstavljaju odgovarajuće pomoćne strukture koje imaju zadatak da
ubrzaju pristup podacima u bazi. Definisanje indeksa se vrši odgovarajućim
naredbama što naravno zavisi od baze koja se koristi. Prilikom definisanja indeksa
potrebno je navesti sledeće: naziv relacije, naziv polja nad kojim treba definisati
indeks, odnosno za više njih ako se nad više polja definiše indeks, zatim je potrebno
definisati dozvolu ili zabranu postojanja polja sa jednakim vrednostima podataka tj.
mogućih duplikata. Ukoliko duplikati nisu dozvoljeni, a to je obično slučaj kada
kombinacija polja predstavlja primarni ključ relacije, tada recimo nijedno od polja
komponenata ne sme sadrţavati nula vrednosti.
Indeksi se naprimer u nekim SUBP mogu definisati na dva načina: kao SORTED
ili kao HASHED. U prvom slučaju indeks je struktura poznata kao hijerarhijska -
stablo, pri čemu se u samom indeksu, uz lokaciju zapisa odreĎene n-torke, dupliraju
neki podaci iz polja/kolona nad kojima je indeks definisan. U drugom slučaju indeks
je takozvana hash-tablica, kod koje se lokacija zapisa n-torke izračunava na osnovu
vrednosti podataka u njoj; vreme pristupa trebalo bi da bude relativno konstantno,
67
@ViPserbia
4.8. Ključevi
68
@ViPserbia
69
@ViPserbia
datoj bazi ili se pak grupe funkcija moraju vezati u jedan sloţeniji sklop, te se za
razvijanje i automatizovanje baze podataka mora pristupiti pisanju programa.
Makroima se iz konačnog skupa funkcija i naredbi automatizuje rad baze; meĎutim,
njihovo korišćenje se u novijim aplikacijama sve više izbegava, jer se puna sloboda i
funkcionalnost ostvaruju primenom VBA. Makroi, zapravo, postoje uglavnom zbog
kompatibilnosti sa prethodnim verzijama Accessa i drugih baza.
70
@ViPserbia
Napomena:
Namena ovog uputstva za primenu Accessa je da se studenti Fakulteta za
menaţdment uvedu u osnove rada sa Microsoft Access softverom za rad i upravljanje
sa relacionom bazom podataka. Osnovni razlog je njegova rasprostranjenost na
trţištu, jednostavnost razvoja baze podataka, jednostavnost rada i odrţavanja.
MeĎutim ono što je najvaţnije je da primena nekih od ovde navedenih principa
vaţi za sve relacione baze podataka bez obzira na to ko su njihovi proizvoĎači, takoĎe
način definisanja i postavljanja aplikacije u bilo kojoj od tih baza je gotovo identičan.
Razlika je više izraţena u pojedinim dodatnim alatima, wizardima, Cases – kejsovima
koji se dobijaju uz pojedine baze pa je aplikacije nešto teţe ili lakše projektovati I
kreirati. Bitno je da se studenti osposobe i nauče da naprave sami pojedine aplikacije
u bazi, da uoče najvaţnije stvari o kojima se mora voditi računa pri takvom radu, da
nauče o čemu moraju voditi računa u mreţnom ili distribuiranom radu ili pak nadzoru
ili zaštiti baze, a svaki od njih će na svom budućem radnom mestu gde budu radili
imati prilike da se iz dokumentacije upozna detaljnije sa specifičnostima pojedinih
baza koje se budu koristile u njihovim preduzećima.
71
@ViPserbia
72
@ViPserbia
Razmotrimo kao primer rad jedne male banke. Pretpostavimo da banka ima
nekoliko klijenata koji otvaraju i rade sa jednim ili više računa. Za svakog klijenta se
čuvaju podaci o imenu, adresi i mestu sedišta odnosno stanovanja. Jednom klijentu se
pridruţuje jedinstveni identifikator KlijentID koji po nalogu progamera moţe da se
generiše i mašinski (računarski). Ovaj identifikator je potreban da bude jedinstven jer
se moţe desiti da u banci se pojave dva klijenta sa istim imenom i prezimenom.
73
@ViPserbia
74
@ViPserbia
ili
75
@ViPserbia
76
@ViPserbia
Potrebno je proći sve ove korake pa izabrati kreiranje nove, prazne baze
podataka (new, blank) kao što je prikazano na napred datim slikama.
Zatim je potrebno izabrati Blank Database i kliknuti na OK dugme te nastaviti
sa praćenjem ekrana koji slede odnosno uneti polje ime baze podataka File Name kao
bankdb.mdb i kliknuti na dugme Create:
77
@ViPserbia
Slika 5.7. Primer za izbor banka baze – bankdb.mdb iz menija baza Accessa
MS Access '97
78
@ViPserbia
MS Access 2000
File - Stavke ovog menija su funkcije Open, Close, Create new, Save i Print baze
podataka i njenog sadrţaja. U ovom meniju je i funkcija Exit za izlazak iz Access-a.
Edit - Funkcije su Cut, Copy, Paste, Delete
View - Uvid (upit) u razne objekte baze podataka (tabele, upiti, forme izveštaji)
Insert - Insert nove tabele, upita, forme, izveštaja itd.
Tools - Skup alata kao što su overa pravopisa, izrada relacija izmeĎu tabela,
obavljanje analize performansi baze podataka i izveštavanje o sadrţaju baze podataka
(aplikativni deo, a ne deo o podacima).
Window – Korisnik se moţe prikoključivati na različite baze podataka koje su u
isto vreme otvorene.
Help - Ukoliko korisniku nešto nije jasno moţe koristiti pomoć o Access-u – Help
(u zavisnosti od instaliranog Access-a to moţe biti ili na maternjem jeziku ili na
engleskom)
79
@ViPserbia
U MS Access 2000 ovi tabovi se pojavljuju na levoj strani glavnog ekrana koji
se pojavljuje kao default. MS Access 2000 ima mogućnosti da radi i sa Web Pages
(Web stranicama) i sa Favorites, ali ove mogućnosti nisu ovde obuhvaćene. Ovde će
biti obuhvaćene sledeće teme:
* Tables (tabele)
* Queries (upite)
* Forms (forme za obuhvat podataka) i
* Reports (izveštaji).
1. Koristi se dugme "Start" u donjem levom uglu trake za poslove (task bar)
Windowsa na sledeći način Programs MS Office Microsoft
Access
2. Napraviti novu bazu izborom Blank Database i dodeliti ime datoteke u koju će
biti smeštena nova baza podataka (ne mora se kucati i ekstenzija .mdb). Klikom
na Ok tipku -dugme obavljeno je kreiranje baze podataka.
3. Za otvaranje postojećih baza podataka koristi se funkcija Open an Existing
Database a ukoliko imate dopunsku poruku More Files... (ima još ... - zahtev
za više fajlova - datoteka) onda kliknite na OK dugme. Navigacionim
pomagalima dolazi se do ţeljenih baza podataka. Za napuštanje Access-a
koristi se funkcija File i odabirom stavke Exit.
80
@ViPserbia
Slika 5.10. Primer izbora opcije Design View u meniju za rad sa tabelama
81
@ViPserbia
2. Sledi ekran sa nazivima specijalnih kolona Field Name (Ime polja), Data Type
(Tip podataka) i Description (opis) za svaku kolonu (polje) u tabeli koju ćemo
sada kreirati. Polje KlijentID se kreira kao što je prikazano:
Slika 5.11. Primer rada sa tabelama u meniju Design View u Accessu 2000
82
@ViPserbia
3. Sada kada imamo definisana sva polja tabele, odreĎujemo primarni ključ (indeks)
Primary Key i to prvo desnim klikom na polje KlijentID, a zatim u padajućem meniju
odaberemo Primary Key kao što je pokazano na sledećoj slici.
83
@ViPserbia
Posle ovoga se u imenu ove kolone sa leve strane pojavljuje simbol malog
ključića. Da biste izbacili definiciju primarnog indeksa, treba opet ponoviti proceduru
te isključiti Primary key. Dobro je znati da sa F6 funkcijskom tipkom moţe prelaziti
iz FiledName u detalje definisanja obeleţja (svojstava) te kolone.
KLIJENTI
84
@ViPserbia
Sada ćemo kao primer napraviti tabelu računa pod nazivom Racuni koristeći
iste korake kao kada smo kreirali tabelu Klijenti.
1. Kliknite na dugme New i odaberite Design View u dijalog prozoru koji se pojavio i
potom kliknite na dugme Ok.
2. Pojaviće se prozor "Table Design View" (koji je ranije opisan). Popunićemo Field
Name, Data Type i Description za svaku kolonu (polje) tabele Accounts kako je to
pokazano u tabeli na slici 5.18.
85
@ViPserbia
5. Sačuvaćemo ovako kreiranu novu tabelu pod imenom Racuni (preko File
menija i izborom funkcije Save). Popunićemo ime tabele sa Racuni i potom kliknuti
na dugme Ok.
86
@ViPserbia
87
@ViPserbia
88
@ViPserbia
89
@ViPserbia
90
@ViPserbia
Kada se pojavi dijalog kutijica Show Table osvetlićemo (odabrati) obe kreirane
tabele i pritisnuti dugme Add:
91
@ViPserbia
Posle toga ćemo klikom na dugme Close zatvoriti kutijicu za dijalog. Ekran
Relationship će imati izgled kao na sledećoj slici:
Da bi smo povezali ove dve tabele Klijenti i Racuni i na taj način formirali
relacije, kliknućemo na polje KlijentID u tabeli Klijenti i prevući preko polja
92
@ViPserbia
Access će učiniti sve što je najbolje da definiše tip relacije (u većini slučajeva
to su relacije 1:M One-to-Many). U ovom slučaju, Access zna da je KlijentID
primarni ključ tabele Klijenti i na taj način smo izabrali stranu tabele "1" ("One").
Povezivanjem sa drugom stranom u tabeli Racuni izabrali smo stranu "više" ("Many")
tako da imamo relaciju 1:M odnosno za jednog korisnika moţemo imati M otvorenih
računa, uzimajući u obzir i slučaj da nema otvorene račune.
Osim relacije 1:M postoje još dve relacije 1:1 ("jedan prema jedan") ili M:M
("mnogo-prema-mnogo"). Treba napomenuti da se relacija M:M postupkom
normalizacije na naprimer takozvanu 3 normalnu formu eliminiše, a na taj način se
kontroliše i redundancija u bazi podataka.
93
@ViPserbia
Slika 5.31. Primer - izgled povezanih tabela koje smo ţeleli povezati
Na kraju ćemo rezimirati preĎenu temu. Ukratko moţemo reći da izrada nove
tabele zahteva da se obave sledeće aktivnosti:
94
@ViPserbia
7. Zatvorite novo formiranu tabelu izborom funkcije Close u padajućem meniju File.
95
@ViPserbia
96
@ViPserbia
Slika 5.33. Primer - izgled menija za izbor načina rada pri izredi upita
Prvi korak u Simple Query čarobnjaku jeste da se navede tabela nad kojom se
pravi upit i koje kolone (polja) će biti prikazane kao rezultat upita (izlaz upita). Tri
glavne sekcije ovoga su:
97
@ViPserbia
Slika 5.34. Primer - izgled menija za izbor polja pri izradi upita
Ovo ponavljate za svako navedeno polje tabele koje ţelite da prenesete. Kada
ste ovo uradili, čarobnjak vam daje stanje kao što je pokazano na sledećoj slici:
98
@ViPserbia
Open the query to view information - ovo znači da će čarobnjak izvesti upit i
prikazati traţene podatke koji se nalaze u odabranim kolonoma,
Modify the query design - čarobnjak će vas prebaciti na Design View i ovde će
vam biti dozvoljeno da modifikujete upit.
U ovom primeru, odaberite Open the query to view information – otvorite upit
da biste pogledali informacije i kliknite na dugme Finish. Kada se upit izvede,
dobijate samo ime korisnika, adresu, mesto i drţavu, ali se svi redovi pojavljuju kao
što se to pokazano na sledećoj slici:
99
@ViPserbia
Zatvorite ovaj upit preko menija File i odabirom funkcije Close. Nakon toga
dobijate standardni glavni ekran Access-a odnosno treba da se pojavi Queries tab. Pri
tome će se na Query tabu pojaviti novi upit qryklijent.
100
@ViPserbia
101
@ViPserbia
Da bismo napravili filter za prikaz klijenata mini banke Klijenti koji ţive u
drţavi DZSCG, potrebno je kliknuti na područje Criteria polja Drzava i otkucati
uslov = 'SCG'
Slika 5.40. Primer - izgled upita po drţavama klijenata – filtar SCG – design view
102
@ViPserbia
Slika 5.41. Primer - izgled rezultata upita po drţavama klijenata – filtar SCG
103
@ViPserbia
5. Ovom novom upitu moţete dati ime: QryRacuni i zatim kliknite na dugme
Finish.
Kao rezultat ćete dobiti izgled izlaza iz ovakvog upita otprilike kao na sledećoj
slici:
1. Na glavnom Access ekranu pozovite tab Queries i obeleţite ranije napravljen upit
QryRacuni a zatim treba kliknuti na dugme Design.
2. Promenite redosled sortiranja za polje Broj racuna, tako da se prikazuje u
rastućem redosledu (Ascending).
3. Pored toga moţete dodati sledeći uslov za kriterijum Criteria: polje Vrsta racuna
treba da zadovolji uslov = 'Štednja'
104
@ViPserbia
Slika 5.42. Primer - izgled upita – Design view po tipu računa - Štednja
4. Upit izvodite tako da u padajućem meniju Query odaberete komandu Run. Izlaz bi
trebao da izgleda poput primera prikazanog na sledećoj slici:
105
@ViPserbia
Do sada smo kreirali upite koji se sprovode nad jednom tabelom. Sada ćemo
preći na prikazivanje mogućnosti da se upiti prave tako da se u njih uvlače podaci iz
više tabela. Na primer, pretpostavimo da neki menadţer ţeli da vidi listu svih
klijenata kao i koje tipove računa banka ospluţuje. Očigledno je da se upit pravi od
dve tabele Klijenti i Racuni. Kod takvih upita, Access će iskoristiti relacije
uspostavljene u takvim tabelama i dovesti vas do rešenja kako će se prikupiti podaci
za potrebe ţeljenog upita.
Pre nego što nastavimo sa radom napravimo 1:M (jedan-prema-više) relaciju
izmeĎu tabela Klijenti i Racuni koje su prethodno kreirane i na na;in koji smo opisali
u segmentu o kreiranju relacija.
Pre započinjanja procesa stvaranja upita nad više tabela, izabrane tabele se
moraju "osvetliti" u podmeniju Query, a zatim se klikne na dugme New da bi se
kreirao ţeljeni upit. Odaberite opciju čarobnjaka - "Simple Query Wizard" kao što
smo to činili ranije. Kada se čarobnjak odazove odaberite polje KlijentID i polje
Ime_i_Prezime iz tabele Klijenti, a zatim se prebacite na Tables/Queries i odaberite u
tabeli Racuni polja KlijentID, Tip racuna i Saldo. Rezultat ovakvog postupka bi
trebao da dovede pojave ekrana poput onoga prikazanog na sledećoj slici:
106
@ViPserbia
107
@ViPserbia
Kao što smo pokazali kod upita nad jednom tabelom, moţete i upite nad više
tabela da menjate tako da im dodajete dopunske filtere odnosno uslove za odabir
podataka koji će se prikazivati (preko alata Design view) (naprimer ţelimo prikazati
sve informacije za klijente koji imaju kao drţavu oznaku 'SCG').
Na kraju ćemo kao primer napraviti upit koji će se zvati "qryZbirni". Upit spaja
tabelu Klijenti (uključujući polja KlijentID i Ime_i_Prezime) sa tabelom Racuni
(uključujući samo polje salda ). U drugom koraku čarobnjaka, kliknite na opciju
Summary (umesto na Details) a potom kliknite na dugme "Summary Options...".
Isključite sve kućice u opcijama "Summary option" kao što su Sum (zbir), AVG
(prosek), Min i Max kao što je pokazano na sledećoj slici:
U ovoj sekciji, prikazali smo osnovne korakei za izradu i izvoĎenje upita. Pri
tome, se moţe koristiti čarobnjak za izradu upita da bi se napravili jednostavni upiti
kojima se pristupa jednoj tabeli. Pored toga, moguće je modifikovati upit da bi se
ostvarilo sortiranje po nekoj koloni tabele ili da se filtriraju slogovi u tabeli.
108
@ViPserbia
Često je korisno napraviti upit koga moţete da iskoristite u formi i/ili izveštaju.
109
@ViPserbia
Klijenti
110
@ViPserbia
111
@ViPserbia
112
@ViPserbia
113
@ViPserbia
Za navigaciju kroz polja u slogu treba koristiti tipku "Tab" (/) koja se vidi
na formi. Za kretanje kroz tabelu preko forme (da biste videli slogove), koristi se
navigaciona traka koja je smeštena pri dnu forme (u podnoţju forme).:
Slika 5.56. Izgled navigacione trake za kretanje kroz tabelu preko forme
114
@ViPserbia
Na kraju ćemo dati osnovne korake pri izradi jednostavne forme za obuhvat
podataka nad jednom tabelom, a to su:
115
@ViPserbia
Izveštaji su slični upitima jer kao i oni pretraţuju i pronalaze podatke iz jedne
ili više tabela i kao rezultat prikazuju takve podatke. MeĎutim, za razliku od upita,
izveštaji omogućavaju formatiranje izlaza sa mogućnošću izbora fontova, boja,
pozadine kao i niza drugih mogućnosti. Izveštaji se često štampaju na papiru radije
nego da se gledaju na ekranu. U ovom segmentu ćemo pokriti oblast kreiranja
jednostavnijih izveštaja i to upotrebom odgovarajućeg čarobnjaka.
Klijenti
116
@ViPserbia
117
@ViPserbia
118
@ViPserbia
U sledećem koraku se bira stil izveštaja. Za potrebe ovog primera, odaberite stil
Corporate, a zatim kliknite na dugme Next za nastavak.
119
@ViPserbia
120
@ViPserbia
Kada je izveštaj prikazan, on, pored toga što moţe biti posmatran na ekranu,
moţe biti odštampan ili moţe biti prenet u Microsoft Word ili Microsoft Excel
okruţenje. Dugmići koji se vide na gornjem delu ekrana imaju sledeće značenje:
Štampaj izveštaj
Zatvori izveštaj
121
@ViPserbia
122
@ViPserbia
5. Odaberite da vam obrazac za izgled izveštaja bude Block layout, a zatim kliknite
na dugme Next.
6. Odaberite stil Corporate i kliknite na dugme Next.
7. Na kraju, dajte ime izveštaju AccountsReport i pritisnite na dugme Finish a potom
okončajte kreiranje, sačuvajte listu i generišite izveštaj.
123
@ViPserbia
124
@ViPserbia
125
@ViPserbia
Slika 5.73 Izgled menija za definisanje imena novog Switch board managera
Slika 5.74 Izgled menija za definisanje komande pri kreiranju Switch board
managera
126
@ViPserbia
Slika 5.75. Izgled menija za definisanje pojedinih elemenata pri kreiranju Switch
board managera
1 10 Izlaz iz aplikacije 6
127
@ViPserbia
128
@ViPserbia
129
@ViPserbia
130
@ViPserbia
OpenFormAdd =2
OpenFormBrowse = 3
OpenReport =4
ExitApplication = 6
RunMacro =7
RunCode =8
OpenPage =9
131
@ViPserbia
Slika 5.83. Podešavanje prve forme kod startovanja pristupa bazi podataka
132
@ViPserbia
133
@ViPserbia
134
@ViPserbia
135
@ViPserbia
136
@ViPserbia
137
@ViPserbia
138
@ViPserbia
Odlaskom na dogaĎaj "On Click" potrebno je još podesiti VBA kod tako da
naša rutina obezbedi prikaz onih podataka koji su u tekućoj formi, a ne prikaz svih
podataka u tabeli.
139
@ViPserbia
Slika 5.96. Izveštaj kao rezultat aktiviranja na prethodni način definisanog dugmeta
140
@ViPserbia
Ovo se sve realizuje pomoću Look Up (kod kreiranja tabele koja je u relaciji sa
nekom drugom tabelom) i modifikacijom LookUp-a izborom Combo box-a.
141
@ViPserbia
Pre tabele tblKnjige, treba da se kreira posebna tabela tblAutori tj. tabela autora
knjiga:
142
@ViPserbia
143
@ViPserbia
If IsNull(Me![Id_Autora]) Then
Me![Id_Autora].Text = ""
Else
lngId_Autora = Me![Id_Autora]
Me![Id_Autora] = Null
End If
DoCmd.OpenForm "frmAutori", , , , , acDialog, "GotoNew"
Me![Id_Autora].Requery
If lngId_Autora <> 0 Then Me![Id_Autora] = lngId_Autora
Exit_Id_Autora_DblClick:
Exit Sub
Err_Id_Autora_DblClick:
MsgBox Err.Description
Resume Exit_Id_Autora_DblClick
End Sub
145
@ViPserbia
146
@ViPserbia
Leva kućica sadrţi fasciklu u kojoj je lista tabela, upita, formi i izveštaja kao
objekata baze u kojoj se trenutno nalazite. Zatim sledi deo sa ugraĎenim
funkcijama (built-in) a onda dolazi deo sa funkcijama koje je napravio i
definisao sam korisnik (user-defined), potom konstante (vrednost koja nije
izračunata i prema tome se ne menja tokom rada. Na primer broj 210 ili tekst
"Kvartalni bilans". Napomena: Izraz ili vrednost koja proizilazi iz izraza nije
konstanta u Access-ovoj terminologiji), operatori i opšti (zajednički) izrazi.
Srednja kućica sadrţi specifične elemente ili kategorije elemenata iz fascikle u
levoj kućici. Na primer, ako kliknete na ugraĎene funkcije (Built-In) u levoj
kućici, u srednjoj kućici se prikazuje spisak kategorija svih Microsoft Access-
ovih funkcija.
Desna kućica daje spisak vrednosti bilo kojeg izabranog elementa, koga ste
izabrali u levoj i srednoj kućici. Na primer, ako ste kliknuli u ugraĎene funkcije
(built-in) u levoj kućici, a dobijete kategorije funkcija u srednjoj kućici onda u
levoj kućici dobijate spisak svih ugraĎenih funkcija odabrane kategorije.
Napomena: Ako upotrebom ovog alata prenosite identifikatore koji su
reference polja u nekoj tabeli, ili kontrole, ili svojstva tada se obrazuje posebna
sintaksa. Na primer Forms![Orders]![OrderID] označava identifikator sa
vrednošću OrderID koja se dobija preko kontrole u formi Orders.
Primer
Slika 5.104. Meni za izbor ţeljenog alata - u ovom slučaju Text box
147
@ViPserbia
=IIF(([tblKol]-[rptKol])=0;"Ok!";IIF(([tblKol]-[rptKol])>0;"MANJAK";"VIŠAK"))
148
@ViPserbia
Ovde se
klikanjem doziva
Expression
Builder
Na na sledećoj slici je dat izveštaj koji je nastao kao rezultat ovakvog rada:
149
@ViPserbia
150
@ViPserbia
Makroi se prave klikom na dugme New (ako je nov) ili desnim klikom na
makro koji se redizajnira kao što je pokazano na sledećim slikama.
151
@ViPserbia
152
@ViPserbia
1. Kada se ţeli kreirati makro, unosi se akcija (postoji ograničen skup akcija
koje nudi Access 2000) (OpenReport).
2. Za tu akciju potrebno je navesti argumente akcije naprimer ime izveštaja
(Invoice) i mesto prikaza izveštaja (Print)
Makro moţe biti komponovan u sekvenci više akcija ili se moţe koristiti grupa
makroa koje je korisnik sam napravio. Moguće je koristiti uslovne izraze (naprimer
If...Then...Else ili Select Case naredbe). Ako je uslov zadovoljen obavlja se jedna ili
više operacija a ako nije operacija (-e) se preskače. Na sledećoj slici je dat prikaz
jedne serije akcija koje Microsoft Access izvodi svaki put kada se aktivira makro.
153
@ViPserbia
Slika 5.110. Meni - prikaz serije akcija koje izvodi odreĎeni makro
154
@ViPserbia
155
@ViPserbia
Primer
156
@ViPserbia
157
@ViPserbia
Columns
Name Type Size
RadoviID Long Integer 4
F1-Redni broj spiska Long Integer 4
F2-Smer Text 50
F3-Godina studiranja Text 50
F4-Predmet Text 50
F5-Tip rada Text 50
F6-Autor Text 120
F7-Naslov Text 50
F8-Mentor Text 50
F9-Školska godina Text 50
F10-Ocena Number 4
F20-Komentar Memo -
158
@ViPserbia
159
@ViPserbia
160
@ViPserbia
161
@ViPserbia
overiti i proveriti da li neka datoteka postoji u sistemu ili ne, a to se radi uz pomoć
Automation ili dynamic data exchange (DDE) postupaka koje omogućavaju
komunikaciju sa svim Windows orijentisanim aplikacijama kao što su Microsoft
Excel, ili da pozivate funkcije iz Windows dynamic-link libraries (DLLs) biblioteka
(naprimer kalendar).
Manipulacija slogovima u jednom trenutku: Moţete koristiti VBA za obradu
slogova "korak-po-korak" u jednom trenutku (naprimer za takozvane paketne obrade
(batch processing)) i da obavite operacije nad jednim slogom. Sa druge strane, makroi
rade sa svim slogovima bez izuzetka u jednom trenutku.
Prenos argumenata u vaše VBA procedure: Moţete postaviti argumente za
potrebe makro akcija (u donjem delu Macro prozora) kod kreiranja makroa, ali ne
moţete ih menjati tokom izvoĎenja makroa. Ta vrsta ograničenja ne postoji, ako
koristite VBA, jer moţete napraviti procedure u koje prenosite spisak argumenata
(varijabli), a kao rezultat dobijate povratnu akciju procedure.
162
@ViPserbia
163
@ViPserbia
165
@ViPserbia
166
@ViPserbia
Da biste grupisali sva pisma čije su adrese u istom regionu, nalepnice sortirajte
po poštanskim brojevima.
- U četvrtom okviru za dijalog čarobnjaka label, iz liste Available Fields pritisnite dva
puta Poštanski broj.
Listi Sort By dodaje se polje Poštanski broj.
- Pritisnite Next.
167
@ViPserbia
168
@ViPserbia
169
@ViPserbia
Atribut Maksimum
Broj akcija u makrou 999
Broj znakova u uslovu 255
Broj znakova u komentaru 255
Broj znakova u argumentu akcije 255
170
@ViPserbia
Ova oblast je vrlo vaţna sama za sebe i mnoge tehnike su bile razvijene u te
svrhe počevši od vrlo jednostavnih podrutina do celih sistema za rukovanje bazom
podataka. Obzirom da se pod bazom podataka podrazumeva skup tabela koje se
odnose na istu oblast, u tom slučaju na primer tabele o ličnim podacima radnika,
plaćanjima, radu i efikasnosti itd. mogu formirati bazu podataka radnika. Takva baza
podataka ima daleko veće zahteve sa aspekta obrade podataka nego pojedine tabele
pošto upit ili unos nekog podatka mogu zahtevati nalaţenje uporednih elemenata u
nekoliko raznih tabela simultano. Organizacija i rukovanje bazom podataka u on line
reţimu rada je svakako jedna od kritičnih oblasti u celokupnoj postavci bilo koje baze
podataka..
U izboru najadekvatnijih oblika u rukovanju bazom podataka moraju biti uzeta
u obzir sledeća ključna pitanja:
- raspoloţivost memorijskog medija
- lakoća i efikasnost programiranja
- način korišćenja baze podataka,
- frekvencija pristupa,
- zahtevano vreme odgovora,
- frekvencija i obim aţuriranja itd.
- cena programiranja i korišćenja, plus cena baza podataka
- sigurnost koja podrazumeva odrţavanje integriteta baza podataka, autorizaciju
pristupa, zaštitu od dupliciranja itd.
Projektant prema tome ima veoma teţak zadatak u traţenju najboljeg rešenja
uzimajući u obzir sve ove faktore. Pored toga analiza moţe značajno varirati od
jednog slučaja do drugog.
171
@ViPserbia
172
@ViPserbia
Pravilo 1:
Nezavisnost lokalnog sedišta baze podataka: Svako sedište u sistemu DDB –
Distributed Data Base – distribuirane baze podataka bi trebalo da funkcioniše
nezavisno i da se pri tome poštuju i očuvaju vitalne funkcije upravljanja bazom
podataka:
- bezbednost,
- kontrola konkurentnosti pristupa podacima
- arhiviranje
- oporavak podataka
Pravilo 2:
Nezavisnost centralnog sedišta baze podataka: Svako sedište u sistemu
distribuiranih baza podataka funkcioniše nezavisno u odnosu na centralno sedište i u
odnosu na sva udaljena sedišta.
173
@ViPserbia
Napomena: Sva sedišta bi trebala da imaju iste mogućnosti, čak i ako neko
sedište ne moţe da zadovolji sve te mogućnosti u jednom trenutku.
Pravilo 3:
Nezavisnost pri greškama bilo koje vrste: Softver za upravljanje bazama
podataka bi trebalo da bude neosteljiv na greške čvora ili čvorišta tako da ostatak
čvorišta i softver za upravljanje distribuiranim bazama podataka (DDBM) kao celina
moţe da nastavi sa radom.
Napomena: Na sličan način DDBMS – Distributed Data Base Management
System bi trebalo da nastavi sa radom i kada se dodaju nova čvorišta.
Pravilo 4:
Transparentnost lokacije: Korisnici ne bi trebalo da imaju nikakvo saznanje o
lokaciji podataka prilikom pretraţivanja.
Pravilo 5:
Transparentnost fragmentacije: Korisnik ne bi trebalo da niti da ima ikakvo
saznanje o fragmentaciji (iscepkanosti) distribuirane baze podataka. Korisnik moţe
pretraţivati podatke bez potrebe da zna da li su oni fragmentirani unutar distribuirane
baze podatka.
Pravilo 6:
Transaparentnost replikacije: Korisnik bi trebalo da bude u mogućnosti da
koristi distribuiranu bazu podataka bez saznanja da li su ili ne podaci replicirani
unutar sistema baze podataka.
Pravilo 7:
Obrada distribuiranih upita: Trebalo bi da postoji mogućnost upita da se izvede
u bilo kom čvorištu sistema za upravljanje distribuiranom bazom podataka koja sadrţi
relevantne podatke traţene preko upita. Nekoliko čvorišta moţe učestvovati u
odgovoru na korisnikov upit a da pri tome korisnik ne mora da zna gde je pronaĎen
podatak (u slučaju zadovoljavanja kriterijuma u selekciji podatka).
Pravilo 8:
Distribuirana obrada transakcija: Transakcijom se moţe pristupiti i menjati
podatak na nekoliko različitih sedišta unutar sistema distribuirane baze podataka bez
saznanja i učešća korisnika tokom izvoĎenja transakcije.
174
@ViPserbia
Pravilo 9:
Nezavisnost hardvera: Distribuirana baza podataka i njoj pridruţeni sistem za
upravljanje distribuiranom bazom podataka bi trebalo da se implementira na bilo
kojoj pogodnoj paltformi tj. na bilo kom računarskom sistemu sa odgovorajućim
hardverskim resursima bez obzira na to koja kompanija je proizvela računar.
Naţalost jedan broj današnjih sistema distribuiranih baza podataka još uvek ne
zadovoljavaju ovaj cilj, tj. ovo pravilo.
Pravilo 10:
Nezavisnost operativnih sistema: Distribuirana baza podataka i njoj pridruţeni
sistem za upravljanje distribuiranom bazom podataka bi trebali da budu sposobni da
se implementiraju na bilo kom pogodnom operativnom sistemu tj. operativni sistem bi
trebalo da bude sposoban za opsluţivanje različitih i mnogobrojnih korisnika.
Napomena: Danas, ovaj uslov zadovoljavaju Windows 2000 i XP i različiti
varijeteti Unixa (uključujući i Linux).
Pravilo 11:
Mreţna nezavisnost: Distribuirana baza podataka i njoj pridruţeni sistem za
upravljanje distribuiranom bazom podataka bi trebali da budu sposobni da se
implementiraju na bilo kojoj pogodnoj mreţnoj platformi.
Napomena: U današnje vreme to su uglavnom sistemi za upravljanje
distribuiranom bazom podataka koji se izvode na Windows 2000 ili XP operativnim
sistetima, na raznim varijantama Unixa (preko Ethernet mreţe) i na Novell mreţama.
Pravilo 12:
Nezavisnost baze podataka: Dizajn distribuirane baze podataka bi trebala da
pokaţe sposobnost da bude podrţana sa zadovoljavajućim performansama i sa
sofisticiranim alatima koje obezbeĎuju proizvoĎači softvera za upravljanje
distribuiranim bazama podataka.
175
@ViPserbia
Primer:
Kompanija
"Turistička organizacija"
Kontroler toka
rada
Menadžer
transakcijama
176
@ViPserbia
177
@ViPserbia
8. Rad u mreţi
178
@ViPserbia
Klijent strana:
- Java VM (Virtual Machine) sa pratećim Javinim komponentama koje
omogućavaju Servlet korisničkog interfejsa i Servlet servera
- HTTP protokol osposobljen sa pratećim Web Internet pretraţivačem (Netscape
Navigator, Microsoft Internet browser, Sun-ova HotJava, Opera, …),
- Preko Ethernet mreţe (TCP/IP protokolom) (LAN ili Internet ili po pozivu
(dial-up)) se uspostavlja komunikacija sa serverom,
179
@ViPserbia
Baza podataka
- Tehnologija relacionih baza podataka (centralizovane ili distribuirane) (Oracle,
Microsoft SQL, Sybase, Ingres, Informix, IBM DB/2, MySQL, PostgreSQL
(RDBMS),
- Tehnologija objektno orijentisanih baza podataka (OODBS – Object Oriented
Data Base System).
180
@ViPserbia
podacima od strane klijenta. Bolje rečeno, klijent dobije samo rezultate koji su
mu potrebni o poslovnom objektu unutar poslovne funkcije.
Za razliku od 2-slojnog modela, gde se podacima pristupalo kao javno
dostupnim, poslovni objekti mogu da se smeste unutar aplikativne logike i da se
proglase "servisom" (uslugom) unutar mreţe. Na primer, identifikacioni broj
moţe se proveravati po modulu 10 ili 11, a kalkulacija ne mora biti uraĎena na
serveru nego na klijentu kao standardni servis tog klijenta.
Serveri su osetljivi delovi sistema tako da autorizacija mora biti maksimalno
pouzdana i pojednostavljena prilikom naleta na stotine klijenata. Takvi
algoritmi i rešenja već postoje na trţištu.
Upotreba jeftinih servera u grozdu (cluster) omogućava da se dinamički
balansira preopterećenje servera.
Najvaţnija i najkorisnija pogodnost n-slojne arhitekture jeste jednostavna
izmena komponenti aplikativne logike na strani servera bez prenošenja izmene
klijentu. To je bila noćna mora onog dela kompanije koja se bavila razvojem i
odrţavanjem klijent-server modela.
Dvoslojna arhitektura
M
REŢ
A
Baza podataka
181
@ViPserbia
3-slojna arhitektura
Baza podataka
n-slojna arhitektura
n – slojna arhitektura
182
@ViPserbia
183
@ViPserbia
Neki programeri vide podelu nivoa kao tri nivoa dok drugi vide
razne klase aplikacionih logika kao individualne nivoe.
184
@ViPserbia
9. Bezbednost baze
Kada neki korisnik kreira bazu, programski paket baze mu dodeljuje sva prava
manipulacije i kontrole nad tom bazom, a ista prava dobijaju i svi ostali korisnici
sistema. U realnim situacijama, meĎutim, svi korisnici nemaju i ne treba da imaju ista
prava pristupa bazi. U tom cilju, baza pruţa izdiferencirane metode dodeljivanja i
provere prava pristupa, na nivou baze, relacija i pogleda, za svakog korisnika
posebno.
Kako je već pomenuto prava pristupa dodeljuju se preko liste prava pristupa
(Access Control List), u kojoj se za celu bazu, kao i za objekte u njoj, navodi ko im
sme pristupiti i kakve radnje sme da radi. Sličan pristup problemima bezbednosti
primenjen je obično i u samim operativnim sistemima gde se razlikuje tri vrste prava
pristupa:
kontrolna prava, koja se odnose na mogućnost dodele drugih prava pristupa, u
početku ih ima vlasnik baze, koji ga sebi ne moţe uskratiti;
definiciona prava, koja se odnose na pravo kreiranja novih objekata i menjanja
postojećih objekata u bazi, tj. na manipulaciju podacima u metabazi, i
manipulaciona prava, kojima se dozvoljava manipulisanje podacima u bazi.
185
@ViPserbia
186
@ViPserbia
poloţaj moţe biti AFTER ili POSITION; ako se ovaj podatak ne navede, SUBP
smešta novododatu stavku na sam vrh ACL liste.
187
@ViPserbia
Za dodelu prava pristupa SQL koristi listu prava pristupa (ACL), jednako kao i
neki drugi SUBP. Za dodavanje novih prava pristupa koristi se naredba GRANT, čija
je sintaksa:
188
@ViPserbia
190
@ViPserbia
otvorenih transakcija, počinje postupak arhiviranjia, tokom koga bazi mogu pristupati
drugi korisnici.
SUBP moţe da arhivira i dnevnik završenih transakcija i na taj način se štedi
prostor na disku. Postoji i mogućnost da se arhiviranje dnevnika obavlja periodično, u
zadatim vremenskim intervalima, čime se prostor koji dnevnik zauzima na disku
odrţava u zadatim granicama.
Baza se restaurira iz arhivirane kopije odgovarajućom naredbom RESTORE; pri
čemu se mogu promeniti vrednosti nekih parametara; takoĎe, mogu se aţurirati
definicije struktura podataka u rečniku podataka, na osnovu strukture zapisane u bazi.
Ako se baza poziva preko naziva datoteke, a ne preko naziva CDD putanje – Code
Data Definition , bilo koja naredba kojom se menja struktura baze neće promeniti
odgovarajuće definicije u rečniku podataka, pa postoji opasnost da pristup preko
nekog drugog softvera ne bude moguć. Da bi se aţurirale definicije strukture baze u
rečniku podataka, potrebno je izdati odgovarajuću naredbu kojom se definicije
objekata kopiraju u rečnik podataka.
Ova se naredba se ne moţe izdati dok je baza čija se definicija kopira aktivna, već
ili pre pozivanja, ili posle zatvaranja baze. Korisnik mora imati dozvolu za aţuriranje
za CDD katalog. Po izvršavanju ove naredbe navedena baza postaje aktivna, iako nije
eksplicitno aktivirana.
Razmena podataka
Većina korisničkih interfejsa prema bazama poseduju dva para naredbi čiji je
cilj obezbeĎivanje i olakšavanje razmene podataka izmeĎu različitih verzija istoga
SUBP. Pri tome, naprimer naredbe BACKUP i RESTORE sluţe za razmenu podataka
sa jednog računarskog sistema na drugi. Jedan od tih sistema moţe da radi i pod
operativnim sistemom koji sluţi za upravljanje procesima, po mogućnosti u realnom
vremenu, a da je drugi operativni sistem, da se tako izrazimo, opšte namene. Pored
ovih preporučuje se da se koriste i naredbe EXPORT i IMPORT, sa sličnom
namenom, ali sa više mogućnosti.
Naredba EXPORT formira kopiju baze u komprimovanom obliku. Kopija
dobijena na taj način moţe se iskoristiti za prestruktuiranje, tj. promenu fizičkih
parametara baze (čak i onih koji se ne mogu menjati naprimer standardnim naredbama
za promenu baze kao što su CHANGE DATABASE, odnosno ALTER SCHEMA),
pretvaranje single-file baze u multifile bazu, ili za prenos baze sa jednog računarskog
sistema na drugi itd.
191
@ViPserbia
Osnovni aspekti zaštite podataka jesu oporavak u slučaju nezgode, arbitraţa pri
konkurentnom pristupu bazi od strane više korisnika, bezbednost pojedinih podataka i
čitave baze, te zaštita integriteta - ispravnosti i konzistentnosti podataka u bazi.
Transakcija je logička jedinica posla, pristup bazi koji ima atomski karakter - ili
se izvršava u celosti, ili se ne izvršava uopšte. Naime, ukoliko se upis, brisanje ili
izmena podataka uspešno završi, podaci bi trebalo da budu aţurirani. Sa druge strane,
ukoliko iz bilo kojeg razloga doĎe do greške, baza bi trebalo da bude vraćna u
prvobitno stanje, ono koje je postojalo pre početka pristupa bazi od strane dotičnog
korisnika.
Razlog za postojanje transakcija jeste opasnost od grešaka do kojih moţe doći bilo
usled neispravno zadatih upita od strane jednog korisnika, bilo usled konkurentnog
pristupa podacima od strane više korisnika, bilo usled otkaza softvera ili hardvera u
toku aţuriranja podataka.
Stoga su gotovo u sve relacione SUBP ugraĎene naredbe COMMIT (naredba za
izvršenje) i ROLLBACK (naredba za vraćanje u nazad). Naredbom COMMIT
korisnik obaveštava SUBP da je upit korektan i da sve izmene treba da se zaista
izvrše, tj. da se podaci u bazi aţuriraju. Ukoliko doĎe do neke greške, ili ako korisnik
primeti da upit nije bio korektno postavljen, naredbom ROLLBACK sve izmene se
poništavaju i sadrţaj baze se dovodi u stanje u kojem se nalazio pre početka
transakcije. Kako se ovo izvodi? Sistem ne samo da izvršava naredbe, već ih i pamti u
sklopu posebnih datoteka - dnevnika izvršenih aktivnosti (log ili journal); u slučaju
da doĎe do ROLLBACK naredbe, na osnovu podataka iz tih datoteka baza se vraća u
prvobitno stanje.
Fizički, transakcije su podrţane putem mehanizma poznatog kao before-image
journaling. Postupak se odvija u dva koraka: prilikom svake izmene podataka u bazi,
najpre se u posebnu datoteku (koja se zove run-unit journal, RUJ, a vodi se za svakog
korisnika posebno) upisuje prethodno stanje svih izmenjenih podataka. Zatim se nove
vrednosti podataka upisuju direktno u bazu. Postupak se ponavlja za svaku izmenu
izvršenu tokom tekuće transakcije. Pošto se sve izmene unesu, naredbom COMMIT
korisnik obaveštava SUBP da ţeIi da izmene ostanu za stalno u bazi.
Ukoliko sistem nije otkrio nikakvu grešku (naprimer dupliranje neke n-torke, ili
narušavanje nekih), po naredbi COMMIT prethodno stanje podataka se briše iz .RUJ
datoteke, a u bazi ostaje novo stanje. Transakcija se tek tada smatra uspešno
okončanom. Ukoliko sistem detektuje grešku, transakcija ostaje otvorena: u bazi se
nalaze izmenjeni podaci, ali je i .RUJ datoteka otvorena i sadrţi prethodno stanje. U
tom slučaju SUBP obaveštava korisnika, čija je duţnost da izda naredbu ROLLBACK
i da poništi efekte neispravne transakcije. Kada se transakcija poništi (korisnik je
192
@ViPserbia
193
@ViPserbia
bazi, vreme odziva je kraće, i to za obe transakcije. Naravno, ne moţe baš sve biti
idealno, uvek postoji opasnost da podaci u datoteci snimka nisu sasvim ispravni:
moţda su stvarni podaci u bazi izmenjeni, a izmene još nisu unete u datoteku snimka.
Ukoliko takav rizik nije prihvatljiv, mora se specificirati transakcija za upisivanje,
koja pristupa direktno bazi a ne snimku, ako ţelimo da čitamo samo podatke iz baze.
Problemi konkuretnosti
Posebni problemi nastaju kada dva ili više korisnika pokušaju da istovremeno
pristupe podacima u bazi. Ako se tom prilikom vrši samo čitanje podataka sa obe
strane, sve je u redu; ali ako bilo koji upit ima za cilj aţuriranje podataka, moţe doći
do problema. Postoji više mogućih scenarija u kojima dolazi do greške, do stanja u
kome su sve transakcije okončane, a podaci u bazi su ipak u nekonsistentnom stanju;
navešćemo tri karakterističcna slučcaja:
2. Recimo da A čita ili aţurira podatke, dok ih B istovremeno aţurira. Najpre B izmeni
podatak, A ga zatim pročita, a onda B-ova transakcija propadne i podatak dobije
prethodnu vrednost ili pak B izmeni podatak, zatim ga i A izmeni, a onda B-ova
transakcija propadne i podatak dobije vrednost koju je
imao pre no što su ga menjali i A i B. Rezultat: izmena koju vrši A zavisi od uspeha
transakcije u okviru koje radi B (the uncommitted dependency problem, problem
zavisnosti od druge transakcije).
3. Moguća je i situacija u kojoj A vrši neku zbirnu analizu podataka, dok B istovremeno
aţurira podatke u istoj relaciji: tako A moţe da urašuna u zbir neki podatak, koji
potom B izmeni. Rezultat: iako je B-ova transakcija uspešno završena, zbir koji je
izračunao A nije više ispravan (the inconsistent analysis problem, problem
nekonsistentne analize).
Naravno, stvari mogu biti još sloţenije kada više korisnika pristupa bazi.
Da bi se osigurao integritet baze i korektnost aplikacija pri višekorisničkom radu,
pored transakcije uvodi se i zaključavanje pojedinih podataka. Ukoliko jedan korisnik
ţeli da izmeni podatak u odreĎenoj vrsti ili celoj tabeli, za vreme njegove transakcije
svim ostalim korisnicima moţe biti uskraćen pristup vrsti ili tabeli čiji se sadrţaj
menja. Naravno, stvari nisu postavljene na principu sve ili ništa, već postoji relativno
194
@ViPserbia
Nivoi zaključavanja
195
@ViPserbia
196
@ViPserbia
197
@ViPserbia
198
@ViPserbia
1 AUTORI
1. Identifikacija autora AutoNum * Primarni indeks
2. Prezime i ime Char
3. e-mail Char
4. Biografija Memo
2 OBLASTI
1. Identifikacija oblasti AutoNum * Primarni indeks
2. Opis oblasti Char
199
@ViPserbia
3 IZDAVAČI
1. Identifikacija izdavača AutoNum * Primarni indeks
2. Naziv izdavača Char
3. Adresa uzdavača (mesto,ulica i broj) Char
4. Telefoni Char
5. Dosije izdavača
4 JEZICI
1. Identifikacija jezika AutoNum * Primarni
indeks
2. Naziv jezika Char
5 REVERSI
1. Identifikacija zaduţenja AutoNum * Primarni indeks
2. Prezime i ime duţnika Char
3. Opis zaduţenja Char
4. Datum početka zaduţenja Date()
5. Datum završetka zaduţenja Date()
6. Odobrio revers (ime i prezime) Char
7. Poništio revers (ime i prezime) Char
8. Status zaduţenja Yes/No
6 KNJIGE
1. Identifikacija knjige AutoNum * Primarni indeks
2. Autor Num ** Strani ključ
3. Naslov Char
4. Kratak sadrţaj Memo
5. Izdavač Num ** Strani ključ
6. Godina izdavanja Date()
7. Oblast Num ** Strani ključ
8. Jezik Num ** Strani ključ
9. ISBN oznaka Char
10. Lokacija (orman-polisa) Char
11. Identifikacija reversa Num ** Strani ključ
12. Slika naslovne strane OLE objekat (.BMP format slike)
13. Broj stranica Num
14. Sadrţaj knjige Memo
15. Tip literature Num ** Strani ključ
16. Status knjige(foto-kopija) Yes/No
200
@ViPserbia
201
@ViPserbia
202
@ViPserbia
203
@ViPserbia
204
@ViPserbia
205
@ViPserbia
206
@ViPserbia
207
@ViPserbia
208
@ViPserbia
209
@ViPserbia
210
@ViPserbia
211
@ViPserbia
212
@ViPserbia
213
@ViPserbia
214
@ViPserbia
215
@ViPserbia
216
@ViPserbia
217
@ViPserbia
218
@ViPserbia
Prikaz izveštaja
Slika 14.15 Prikaz izveštaja o srednjim ocenama
grupisanim po učenicima
219
@ViPserbia
220
@ViPserbia
221
@ViPserbia
tabeli za traţenje
Integritet Data Integrity Pravila koja obezbeĎuju
podataka tačnost i čitljivost
podataka
Izraz Expression Skup vrednosti, funkcija,
promenljivih i operatora
koji vraćaju rezultat
Klijent Client Računar ili aplikacija koji
komuniciraju sa serverom
Ključ Key Polje koje identifikuje
odreĎeni zapis
Komanda Command Naredba - instrukcija
Komandno Command Button Objakat koji aktivira neku
dugme akciju ako se na njega
klikne
LAN Local Area Network Lokalna mreţa
Makro Macro Skup nekoliko naredbi
koje reaguju na dogaĎaje
Meni Menu Skup mogućih izbora
Niz String Podaci koji imaju
tekstualni sadrţaj, mogu
sadrţavati i brojeve
Normalna Normal Form Skup od pet pravila za
forma projektovanje baza
Objekat u bazi Data Base Object Komponenta u bazi
podataka podataka
Obrazac Form Korisnički definisan
prozor u Accessu
off-line off-line autonoman, nezavisan rad
Okvir sa Tool box Skup komandih dugmadi
alatima koja pozivaju alate
Okvir za text Text box Okvir za ubacivanje teksta
OLE Object Linking and Tehnika koja omogućava
Embedding ubacivanje i povezivanje
objekata
on-line on-line neprekidna veza u radu
Operativni Operating system Programi koji prevode
sistem osnovne naredbe u jezik
koji računar razume
222
@ViPserbia
223
@ViPserbia
224
@ViPserbia
16. LITERATURA:
225