Professional Documents
Culture Documents
alempije@beotel.yu
Uvod
U vreme ekspanzije zahteva za to raznovrsnijim podacima sve je potrebnije i dobijanje
kvalitetnih informacija. Ovu potrebu treba da zadovolji razvoj informacionih sistema i
odgovarajuih sistema za upravljanje podacima (SUBP). Oni bi trebalo da integriu
teoretske postavke vezane za korienje metodologije odozgo nadole (Top-Down) sa
implementacijom koja se izvodi metodologijom odozdo nagore (Bottom-Up).
Metodologija odozgo nadole se izvodi sa stanovita rukovodeeg menadmenta preduzea,
korienjem metode intervjua. Na taj nain se definiu ciljevi, procesi, resursi i dr. Obrnutim
putem, metodologijama odozdo nagore (analizom dokumenata) izvodi se generisanje baza
podataka. irinu u pristupu daje metodologija odozgo nadole, a preciznost metodologija
odozdo nagore.
Za uspeno izvodenje aktivnosti vezanih za razvoj informacionih sistema potrebno je na
samom poetku raskrstiti sa zabludama, definisati ogranienja i dati odgovarajue
pretpostavke.
Najee zablude su:
!" da neko drugi moe obaviti ovaj posao, po principu "klju u ruke";
!" da se naruivanjem projekta moe bre zavriti posao;
!" da se preslikavanjem postojeih aplikacija u novo hardversko i softversko okruenje
moe doi do novog sistema.
Kada se raskrsti sa zabludama, na sledeem koraku javljaju se ogranienja koja, pak, mogu
sa svoje strane usporiti razvoj informacionih sistema, imajui u vidu:
!" stepen organizovanosti sistema koji se analizira i koji zavisi od razraenosti standardnih
dokumenta i procedura za njihovu obradu i distribuiranje;
!" ogranienja vezana za korisnike, koja su u vezi sa odbojnou prema ideji uvoenja
novog sistema;
!" znanje projektnog tima, njihovu metodologiju rada i iskustvo za sline sisteme koji mogu
biti od presudnog znaaja.
Imajui u vidu ogranienja, treba ispuniti tri osnovne pretpostavke :
!" Prva pretpostavka je vezana za jedinstven sistem oznaavanja i podrazumeva
definisanje najee tzv. paralelnog sistema oznaavanja. Paralelnim sistemom
oznaavanja se definiu: jedinstven identifikacioni broj, standardizovan naziv i
odgovarajui klasifikacioni broj. Jedinstven identifikacioni broj ili IDENT BROJ je
neimenovani redni broj (najee od est cifara). Naziv je definisan po standardu JUS
A.A0.006 i ima tano propisanu strukturu. Klasifikacioni broj definie grupe PREDMETA
POSLOVANJA i svako mesto ima odgovarajue znaenje (do pet cifara).
!" Druga pretpostavka odnosi se na jedinstvenost modela procesa i podataka, gde se
podrazumeva, obino, primena jedinstvene metodologije vezane za projektovanje
informacionog sistema korienjem CASE alata (Computer Aidid Software Engineering).
Korienje metodologije projektovanja informacionog sistema IDEF0 i IDEF1X, tj. CASE
alata BPwin i Erwin predmet je razmatranja ove knjige.
alempije@beotel.yu
alempije@beotel.yu
alempije@beotel.yu
Standardi
kao podrka modeliranju
Postupak razvoja informacionih sistema opisan u ovoj knjizi ima za osnovu standarde IDEF0
i IDEF1X, koji podravaju modeliranje. Istorijski gledano, tokom 60-ih i 70-ih godina
Douglas T. Ross je razvio tehniku modeliranja poznatu kao SADT (Structured Analysis &
Design Technique). Prihvatajui SADT tehniku, avijacija SAD razvila je SADT kao deo ICAM
(Integrated Computer Aided Manufacturing) programa tokom kasnih 70-ih, koji je dobilo
naziv IDEF tehnika (Integation DEFinition). Cilj ICAM programa je bio da se pobolja
proizvodna produktivnost primenjivanjem kompjuterske tehnologije. Uesnici u izgradnji
ICAM programa su uvideli sve prednosti korienja IDEF tehnike, jer tekstualni opis ne
predstavlja efikasan nain za dokumentovanje procesa i podataka.
U ranim 90-im, IDEF Users Group, u kooperaciji sa National Institutes for Standards and
Technology (NIST), preduzela je odreene postupke za stvaranje standarda IDEF0 za
funkcionalno modeliranje i IDEF1X (eXtend), kao tehniku za informaciono modeliranje
(semantiko modeliranje podataka), publikujui ih 1993. godine (U.S. Government
standards documents). Ovi standardi su pod pokroviteljstvom Institute of Electrical and
Electronics Engineers (IEEE), a prihvatila ih je i International Organization of Standards
(ISO).
Cilj modeliranja je da se razviju tehnologije koje e omoguiti logiku i fiziku integraciju
mrea hardverski i softverski veoma razliitih konfiguracija. Tehnika IDEF modeliranja je
prihvaena kao osnova za sprovoenje postupka reinenjeringa poslovnih procesa.
Imajui u vidu sve ove injenice, funkcionalno modeliranje IDEF0 omoguuje:
!" izvrenje funkcionalne dekompozicije i dizajna na svim nivoima, za sistem sastavljen od
ljudi, maina, materijala, raunara i informacija;
!" stvaranje dokumentacije, paralelno sa reinenjeringom poslovnih procesa;
!" bolju komunikaciju izmeu projektnog tima, korisnika i menadera;
!" diskusiju u projektnom timu da bi se postiglo meusobno razumevanje;
!" upravljanje velikim i sloenim projektima;
!" obezbeenje elemenata potrebnih za informaciono modeliranje (IDEF1X metodologija).
Softverska realizacija IDEF0 standarda je BPwin (Bussines Process windows) firme
LogicWorks (2) koji se koristi u ovoj knjizi.
Drugi standard koji je IDEF Users Group definisala je IDEF1X tehnika za informaciono
modeliranje. Informaciono modeliranje (IDEF1X) predstavlja apstraktno vienje realnog
sistema, tj. to je pojednostavljeno predstavljanje realnog sistema preko skupa objekata
(entiteta), veza izmeu objekata i atributa objekata. Informaciono modeliranje je pojam koji
je definisan u okviru IDEF1X metodologije i definie odgovarajui model podataka.
Zapravo, IDEF1X je semantiki bogat modelar podataka tree generacije koji je realizovan u
okviru softvera ERwin (Entity Relationships for windows) CASE alata (3). ERwin CASE alat
omoguuje generisanje u neki od sistema za upravljanje bazama podataka (SUBP). Mora se
naglasiti pojam generisanje, a ne programiranje, jer ERwin omoguuje da se direktno
kreiraju tabele, veze, atributi i sva ogranienja koja su se nekada programirala.
alempije@beotel.yu
Postupak
razvoja informacionog sistema
Imajui u vidu postavke vezane za IDEF0 i IDEF1X metodologiju, kao i potrebe za
reinenjeringom poslovnih procesa, moe se rei da se razvoj informacionog sistema (RIS)
izvodi kroz etiri sledee faze (slika 1):
!" Aktivnost 1. Funkcionalno modeliranje,
!" Aktivnost 2. Informaciono modeliranje,
!" Aktivnost 3. Aplikativno modeliranje i
!" Aktivnost 4. Implementacija.
RAZVOJ
INFORMACIONOG
SISTEMA
0
FUNKCIONALNO
MODELIRANJE
INFORMACIONO
MODELIRANJE
APLIKATIVNO
MODELIRANJE
FUNKCIONALNA
DEKOMPOZICIJA
DEFINISANJE
ZAHTEVA
KORISNIKA
TEHNI^KI
PREDUSLOVI
DEFINISANJE
DETALJNIH
ZAHTEVA
DEFINISANJE
FIZI^KOG
DIZAJNA
KREIRANJE ER
DIJAGRAMA
IMPLEMENTACIJA
4
GENERISANJE
[EME BAZE
PODATAKA
KREIRANJE
ATRIBUTA
DEFINISANJE
POSLOVNIH
PRAVILA
UVO\ENJE
TESTIRANJE
ODR@AVANJE
IZRADA
APLIKACIJE
alempije@beotel.yu
alempije@beotel.yu
alempije@beotel.yu
Aktivnost
1. Funkcionalno
modeliranje
Aktivnost 1.1. Funkcionalna dekompozicija
Aktivnost 1.2. Definisanje zahteva korisnika
Aktivnost 1.3. Tehniki preduslovi
10
alempije@beotel.yu
FUNKCIONALNA
DEKOMPOZICIJA
DEFINISANJE
ZAHTEVA
KORISNIKA
1.1
1.2
1.3
DEFINISANJE
GRANICA
SISTEMA
DEFINISANJE
ZAHTEVA IZ
DOKUMENATA
DEFINISANJE
ARHITEKTURE
SISTEMA
DEFINISANJE
STABLA
AKTIVNOSTI
DEFINISANJE
ZAHTEVA
INTERVJUOM
KADROVSKE
POTREBE
VERIFIKACIJA
STABLA
AKTIVNOSTI
DEFINISANJE
MATRICE
ODNOSA
TEHNI^KI
PREDUSLOVI
DINAMIKA
REALIZACIJE
ANALIZA
ZAHTEVA
KORISNIKA
alempije@beotel.yu
11
Aktivnost
1.1. Funkcionalna dekompozicija
Prilikom realizacije aktivnosti "1.1. Funkcionalna dekompozicija" posebna panja se poklanja
zahtevima top-menadmenta, jer se, zbog brzih promena u novim trinim uslovima, iz
osnova menjaju koncept, principi, arhitektura, funkcije, prioriteti i dr. U preduzeu,
praktino, treba da se reflektuje vienje poslovanja vodeeg menadmenta i da uspeh
reinenjeringa poslovnih procesa zavisi od njihovih postavki datih u obliku vizija, misija i
definisanih ciljeva.
Aktivnost "1.1. Funkcionalna dekompozicija" izvodi se kroz tri podreene aktivnosti:
!" Aktivnost 1.1.1. Definisanje granica sistema,
!" Aktivnost 1.1.2. Definisanje stabla aktivnosti,
!" Aktivnost 1.1.3. Verifikacija stabla aktivnosti.
U daljem tekstu detaljno e biti obrazloene definisane aktivnosti.
Aktivnost
1.1.1. Definisanje granica sistema
Aktivnost "1.1.1. Definisanje granica sistema" je vezana za nabrajanje objekata koji e u
sledeem koraku biti po hijerarhiji povezani u stablo aktivnosti.
U okviru utvrivanja granica sistema treba jasno definisati ciljeve koji moraju da sadre
sledee elemente:
!" zato se proces modelira;
!" ta e proces da prikae;
!" ta e korisnik modela napraviti sa njim;
!" emu slui model.
Odgovori na ova pitanja treba da pomognu u fokusiranju postavljene problematike. Sledea
pitanja na koja treba dati odgovor su:
!" koji su zadaci na datom radnom mestu;
!" koji je redosled izvoenja koraka;
!" kako se izvodi kontrola;
!" koji se resursi koriste.
Dakle, treba identifikovati zadatke svakog zaposlenog i shvatiti odnose izmeu zadataka. Za
izvoenje ovih aktivnosti koristi se grafiki jezik IDEF0. IDEF0 tehnika je svojevrsan grafiki
jezik koji omoguuje komunikaciju, razumljivu svim uesnicima u postupku reinenjeringa
poslovnih procesa.
Da bi se realizovale naredne aktivnosti, u daljem tekstu detaljno e biti obrazloena
struktura grafikog jezika IDEF0.
12
alempije@beotel.yu
NAZIV
AKTIVNOSTI
1
Slika 2.2. Sintaksa pravougaonika (Box)
alempije@beotel.yu
13
Strelice (Arrows)
Strelica se sastoji od jedne ili vie linija, sa vrhom strelice na jednom kraju. Strelice mogu
biti pravolinijske ili savijene pod uglom od 90 stepeni i mogu se ravati ili spajati
(slika
2.3).
Pravolinijske
strelice
Strelica
zakrenuta za 90
stepeni
Ravanje
strelica
Spajanje
strelica
90o
Strelice predstavljaju podatke ili objekte vezane za aktivnosti. One ne znae samo tok ili
sekvencu, kao u tradicionalnom modelu dijagrama toka podataka, ve prenose podatke ili
objekte vezane za posmatranu aktivnost.
Svaka strelica je definisana nazivom (imenicom). Za opis naziva strelice se definie i
odgovarajui tekstualni opis.
U daljem tekstu detaljno e biti opisana semantika grafikog jezika IDEF0.
Kontrola
Ulaz
NAZIV
AKTIVNOSTI
Mehanizam
Izlaz
Poziv
Strelice sa leve strane pravougaonika se definiu kao ulazi (Input). Strelice koje ulaze u
pravougaonik odozgo se definiu kao kontrole (Control). Strelice koje izlaze iz
pravougaonika na desnoj strani predstavljaju izlaze (Output). Izlazi su podaci ili objekti,
odnosno proizvodi aktivnosti.
Dakle, elementi prikazani na slici 2.4. mogu se opisati reenicom: "Ulazi se preko aktivnosti
transformiu u odgovarajui izlaz, dok kontrole specificiraju uslove pod kojima aktivnost
daje korektan izlaz".
Strelice na donjoj strani pravougaonika predstavljaju mehanizme. Strelice okrenute
14
alempije@beotel.yu
prema gore identifikuju znaenje koje podrava izvrenje aktivnosti. Strelice mehanizma
koje su okrenute nadole definiu se kao strelice poziva (Call arrows).
Imajui u vidu englesku notaciju, dijagrami se zovu i ICAM dijagrami, jer je to skraenica
od:
!" I - Input, neto to se upotrebljava u aktivnosti;
!" C - Control, kontrole ili uslovi izvoenja aktivnosti;
!" O - Output, rezultat izvoenja aktivnosti;
!" M - Mehanizam, neto to se koristi u aktivnosti ali se ne menja.
Imajui u vidu navedene postavke, postavlja se pitanje: koje resurse nose pojedini tipovi
strelica.
Ulazna (Input) strelica predstavlja materijal ili informaciju koja se koristi ili transformie
radi definisanja izlaza (Output). Dozvoljava se mogunost da odreene aktivnosti ne moraju
imati ulazne strelice.
Kontrolne (Control) strelice reguliu, odnosno odgovorne su za to kako, kada i da li e se
aktivnost izvesti, odnosno kakvi e biti izlazi (Output). Svaka aktivnost mora imati najmanje
jednu kontrolnu strelicu.
Kontrole su esto u obliku pravila, politika, procedura, ili standarda. One utiu na aktivnost,
ali ne mogu da budu transformisane ili upotrebljene. U sluaju da je cilj aktivnosti da
promeni pravilo, politiku, proceduru ili standard, treba oekivati da e strelice koje sadre tu
informaciju, u stvari, biti ulaz.
Izlazne (Output) strelice su materijali ili informacije stvorene aktivnou. Svaka aktivnost
mora imati najmanje jednu izlaznu (Output) strelicu. Ne treba modelirati aktivnost koja ne
stvara izlaz.
Strelice mehanizama su izvori koji izvode aktivnosti, a sami se ne "troe". Mehanizmi mogu
biti ljudi, maine i/ili oprema, tj. objekti koji obezbeuju energiju potrebnu za izvoenje
aktivnosti. Po slobodnoj volji projektanta, strelice mehanizama mogu biti i izostavljene iz
aktivnosti.
Strelica poziv (Call) specifini je sluaj strelice mehanizma i ona oznaava da pozivajui
pravougaonik nema vlastiti detaljniji dijagram, ve daje detaljniji prikaz izveden na nekom
drugom pravougaoniku u istom ili nekom drugom modelu. Vie pozivajuih pravougaonika
mogu pozivati isti pravougaonik na nekom drugom ili istom modelu. Imenuju se brojem
dekompozicionog dijagrama, koji sadri pozvani pravougaonik zajedno sa brojem pozivnog
pravougaonika.
Kao kolski primer, koji treba da poslui za prikaz IDEF0 metoda modeliranja, definisan je
test-primer dokumenta "Karton isplata", prikazan na slici 2.5.
alempije@beotel.yu
15
IME I PREZIME
STRANI JEZIK
ODELJENJE
7359
Zoran Starcevic
Engleski,
Ruski
Razvoj
Francuski
R.BR. ISPLATE
IZNOS ISPLATE
DATUM
ISPLATE
01
150,00
08.12.1996
02
450,00
20.02.1997
03
800,00
PRIMEDBE
30.09.1997
Kontekstni dijagram
Prvi korak koji se preporuuje u aktivnosti "1.1.1. Utvrivanje optih zahteva" predstavlja
izrada kontekstnog dijagrama. Na taj se nain definiu okviri IDEF0 modela.
Kontekstni dijagram je definisan jednim pravougaonikom koji predstavlja granicu modela
koji se prouava. U tom sistemu i van njega teku informacije preko strelica. Kontekstni
dijagram je najvii nivo apstrakcije koji se dekompozicionim dijagramima prevodi u nii nivo
apstrakcije. Na slici 2.6. prikazan je kontekstni dijagram pod imenom "Praenje isplata" za
dokument "Karton isplata" sa slike 2.5.
Granice modela se definiu da bi se, pre svega, znalo gde treba stati sa modeliranjem.
Ovaj problem se moe posmatrati sa aspekta:
!" irine (definisanja elemenata koji se posmatraju) i
16
alempije@beotel.yu
"Karton
isplata"
prikazani
su
svi
elementi
Postupak o Pravilnik o
Postupak o
definisanju
isplatama
izve{tavanju
{ifarnika
Zahtev iz kadrovskog
Izve{taj knjigovo
Zahtev za isplatu
Zahtev za novu {ifru
PRA]ENJE
ISPLATA
Nalog za isplatu
Zahtev za izve{taj
0
SUBP
Prevodioci
Kao to se na slici 2.6. vidi, sama aktivnost definisana je glagolskom frazom "Praenje
alempije@beotel.yu
17
postupak o izvetavanju;
pravilnik o isplatama.
prevodioci.
Imajui u vidu ovako postavljeni kontekstni dijagram, u sledeem koraku se definie stablo
aktivnosti.
18
alempije@beotel.yu
Aktivnost
1.1.2. Definisanje stabla aktivnosti
Na osnovu definisanih granica sistema prelazi se na sledeu aktivnost "1.1.2. Definisanje
stabla aktivnosti", gde se uspostavljaju vertikalne (hijerarhijske) veze izmeu aktivnosti.
Stablo aktivnosti se definie primenom metode reavanja problema odozgo nadole (top- down), kada se sloena aktivnost rastavlja na vie podreenih aktivnosti, a zatim se
pristupa reavanju jednostavnih podreenih aktivnosti.
Drugim reima, polazna sloena aktivnost razvija se u hijerarhiju podreenih aktivnosti, ija
je struktura tipa stabla. Koren stabla (to je najvii vor stabla) sadri polaznu aktivnost, dok
listovi, tj. vorovi koji nemaju potomke, sadre aktivnosti ije je reavanje relativno
jednostavno. Reavanjem svih podreenih aktivnosti iz listova reena je i polazna sloena
aktivnost. Za aktivnost "1.2. Definisanje zahteva korisnika" ide se do treeg nivoa, dok se
detalji razmatraju u okviru aktivnosti "2.1.1. Izrada detaljnog stabla aktivnosti".
Dakle, stablo aktivnosti predstavlja hijerarhiju definisanih aktivnosti, oienu od strelica, i
omoguuje funkcionalnu dekompoziciju i uvid u dubinu odvijanja veza izmeu aktivnosti.
Ovaj pristup je veoma vaan kada se uspostavlja okvir reinenjeringa poslovnih procesa koji
mogu doi u razmatranje.
Aktivnost na vrhu (root) uvek je oznaena sa 0. Brojevi se koriste da bi prikazali koliko
detalja sadri aktivnost. Aktivnost A0 je dekomponovana (razdvojena) na 1, 2, 3 itd.
Aktivnost 1 je dekomponovana u 11, 12, 13 itd. Nadreena aktivnost se zove 'roditelj'
(parent), a podreene aktivnosti su deca (childs).
Razbijanje aktivnosti 'roditelj' na svoju decu treba da ima od dve do est podreenih
aktivnosti. Ako je vie od est podreenih aktivnosti, to znai pokuaj da se smesti previe
detalja na jedan nivo.
Na osnovu svega to je dosad reeno, treba definisati stablo aktivnosti za aktivnost
"Praenje isplata".
alempije@beotel.yu
19
PRA]ENJE
ISPLATA
0
ODR@AVANJE
PODATAKA O
PREVODIOCIMA
ODR@AVANJE
[IFARNIKA
ODR@AVANJE
OSNOVNIH
PODATAKA
ODR@AVANJE
[IFARNIKA
JEZIKA
PRA]ENJE
NIVOA ZNANJA
JEZIKA
IZRADA
IZVE[TAJA
3
ODR@AVANJE
[IFARNIKA
RADNIH
MESTA
OBRA^UN
ISPLATE
IZVE[TAJ
KNJIGOVODSTVU
IZVE[TAJ BANCI
ODR@AVANJE
[IFARNIKA
ODELJENJA
20
alempije@beotel.yu
Aktivnost
1.1.3. Verifikacija stabla aktivnosti
Aktivnost "1.1.3.Verifikacija stabla aktivnosti" veoma je vana, jer je to strateki momenat,
tj. odluka rukovodstva da li je to ono to se eli postii reinenjeringom poslovnih procesa.
Kao veoma bitna aktivnost, ona prva mora biti usaglaena i verifikovana. Ovaj elemenat se
mora razmatrati prilikom klasinog naina uvoenja dokumenata za obezbeenje kvaliteta,
po standardu ISO 9000.
Verifikaciono telo treba stalno da kontrolie rad strunog tima, uz blagovremeno otklanjanje
eventualnih greaka i nedoslednosti u njihovom radu. S druge strane, zbog postojanja ovog
tela, nije potreban supervizor projekta, jer je projekat kontrolisan i verifikovan u svim
fazama izrade.
Verifikaciono telo ne mora da bude stalnog sastava; u zavisnosti od sadraja koji se
verifikuje, ono moe da ima ui ili iri sastav.
Drugi veliki kvalitet je uestvovanje dela rukovodstva preduzea u izradi projekta, od ijeg
angaovanja iskljuivo zavisi kasnija uspena realizacija projektovanih reenja.
Nakon verifikacije stabla aktivnosti od strane top-menadmenta, pristupa se definisanju
zahteva korisnika koji e da potvrde ili koriguju ovako postavljenu tezu.
alempije@beotel.yu
21
Aktivnost
1.2. Definisanje zahteva korisnika
Sa stanovita projektanta koji izvodi reinenjering poslovnih procesa, aktivnost
"1.2. Definisanje zahteva korisnika" kljuni je momenat. U pitanju su informisanje i "uenje"
projektanta, odnosno upoznavanje sa potrebama i eljama korisnika, kako bi projektant
mogao da uspostavi informacione veze i donese pravilne zakljuke.
Ova aktivnost se deli u etiri podaktivnosti (slika 2.1):
!" Aktivnost 1.2.1. Definisanje zahteva iz dokumenata;
!" Aktivnost 1.2.2. Definisanje zahteva intervjuom;
!" Aktivnost 1.2.3. Definisanje matrice odnosa;
!" Aktivnost 1.2.4. Analiza zahteva korisnika.
U daljem tekstu detaljno e biti opisane definisane aktivnosti.
Aktivnost
1.2.1. Definisanje zahteva iz dokumenata
Aktivnost "1.2.1. Definisanje zahteva iz dokumenata" je pogled odozdo nagore i u
nadreenoj aktivnosti "1.2. Definisanje zahteva korisnika" ima globalni karakter, jer se
prikupljaju dokumenta iz cele firme.
Ako u preduzeu postoje definisane odgovarajue slube za izradu organizacionih propisa i
internih standarda, prikupljanje informacija iz postojee dokumentacije je olakano; u
suprotnom, to je najei sluaj, ova aktivnost moe veoma dugo da traje. Veliku pomo u
izvoenju ove aktivnosti mogu pruiti i odgovarajue procedure i uputstva, definisani po
standardu kvaliteta ISO 9000, jer sistematizuju klasinu "runu" dokumentaciju.
Dakle, treba prikupiti:
!" ulazne dokumente,
!" izlazne dokumente,
!" uzorke izvetaja,
!" organizacione propise i dr.
Na ovom nivou postoji velika opasnost da se prikupe netane informacije kojima se opisuje
zastareli nain rada i zato treba stalno proveravati da li je dobijena poslednja verzija
dokumentacije.
Za prikupljenu dokumentaciju, potrebno je dati odgovore na sledea pitanja:
!" odakle potiu podaci;
!" kako su podaci dobijeni;
!" koliki su maksimum i minimum podataka dobijenih u praksi;
22
alempije@beotel.yu
alempije@beotel.yu
23
Aktivnost
1.2.2. Definisanje zahteva intervjuom
Aktivnost "1.2.2. Definisanje zahteva intervjuom" je pristup odozgo nadole, i treba da
omogui definisanje:
!" potreba za informacijama,
!" ciljeva i
!" problema kako ih vide rukovodioci i neposredni izvrioci.
To je kljuni momenat u reinenjeringu poslovnih procesa, jer se ovde rukovodstvo
izjanjava o pitanju budunosti, odnosno daljem poslovanju. Ova analiza treba da da i
odgovore vezane za primenu Interneta u preduzeu.
Prvi korak su opte pripreme za izvoenje intervjua koje su vezane za definisanje:
!" liste rukovodilaca za intervjue,
!" vremenskog rasporeda intervjua,
!" teme za razgovor,
!" potvrde termina,
!" organizacije grupe za intervjue,
!" voenje zapisnika,
!" priprema panela,
!" opremanje prostorije,
!" izbor optih pitanja i
!" probni intervju.
Ne sme se zaboraviti da rukovodilac treba da poalje pismo sa objanjenjem, svrhom,
temama i pitanjima tako da bi se druga strana mogla pripremiti.
Posebno treba naglasiti organizaciju grupe za intervjue, gde treba definisati:
!" koji e lan tima voditi zapisnik,
!" ko e prezentovati dosadanje rezultate,
!" ko e postavljati pitanja.
Teme treba unapred odrediti, jer se posle lake sreuju. Preporuuje se izvoenje probnog
intervjua u okviru lanova tima, radi bolje pripreme i uvebanosti.
Cilj svih aktivnosti je razvoj preporuka za budue akcije. Naime, aktivnosti treba da
omogue da se za trenutno postojee objekte poslovanja (organizacione jedinice, procese i
dr.), aplikacije i datoteke identifikuje redundantnost podataka, razjasne odgovornosti i,
uopte, razume poslovanje.
Da bi se ostvarile ove aktivnosti pristupa se postupku intervjuisanja, poev od najviih
rukovodilaca do neposrednih korisnika.
Treba jo jednom naglasiti da intervju zahteva pre svega ukljuivanje najviih rukovodilaca i
sagledavanje problema u poslovanju sa njihovog stanovita.
Opta pitanja za intervjuisanje su:
!" koje su nadlenosti i odgovornosti;
!" ta su osnovni ciljevi i kakve se promene mogu oekivati u odreenoj oblasti za sledeu
godinu i dalje;
!" koji su kritini faktori u pogledu odgovornosti upravljanja i odluivanja;
24
alempije@beotel.yu
alempije@beotel.yu
25
26
alempije@beotel.yu
Aktivnost
1.2.3. Definisanje matrice odnosa
Aktivnost "1.2.3.Definisanje matrice odnosa" treba da definie matricu veza izmeu
aktivnosti i dokumenata koji treba da poveu dokumenta odreena kao ulazne ili izlazne
informacije sa aktivnostima iz stabla aktivnosti na gornjem okvirnom nivou. Dokumenta su
definisana odgovarajuim rubrikama, ijom se analizom odreuju odgovarajui entiteti.
Entiteti na ovom nivou predstavljaju objekat koji se moe opisati nekim osobinama. Za ovu
aktivnost bitni su samo nazivi entiteta, bez ulaenja u definisanje osobina.
Svakom entitetu se pridodaje nain na koji aktivnost koristi taj entitet, odnosno ta radi sa
pojedinim instancama tog entiteta preko tzv. CRUD matrice.
Entitet se u okviru neke aktivnosti: i/ili kreira (C-Create), i/ili pretrauje (R-Retrive) i/ili
aurira (U-Update), i/ili brie ( D-Delete), pa otuda i naziv CRUD matrica (definisana
poetna slova engleskog naziva).
Za aktivnost "Praenje isplata" na slici 2.8. prikazana je CRUD matrica.
Naziv aktivnosti
Naziv entiteta
CRUD
ODRZAVANJE
ISPLATA
CRUD
PODATAKA O
OSOBA
CRUD
PREVODIOCIMA
JEZIK
CERTIFIKAT
R
CRUD
ODELJENJE
RMESTO
ODRZAVANJE
JEZIK
CRUD
SIFARNIKA
ODELJENJE
CRUD
RMESTO
CRUD
IZRADA
ISPLATA
IZVESTAJA
JEZIK
ODELJENJE
OSOBA
CERTIFIKAT
alempije@beotel.yu
27
Aktivnost
1.2.4. Analiza zahteva korisnika
Aktivnost "1.2.4. Analiza zahteva korisnika" znai da postavke definisane u prethodnim
koracima treba da verifikuje odgovarajui verifikacioni organ preduzea.
Zadatak verifikacionog tela je da usvaja rezultate rada strunog tima u kontrolnim takama
koje predstavljaju okonanje pojedinih faza na izradi projekta.
Treba naglasiti da sve navedene aktivnosti i podaktivnosti moraju ii ovim redosledom i da
definisanje tehnikih preduslova tek onda dolazi u razmatranje. U praksi se obino, radi
naopako.
28
alempije@beotel.yu
Aktivnost
1.3. Tehniki preduslovi
Tehniki preduslovi podrazumevaju, pre svega, raunarski sistem sa definisanim:
!" sistemom hardver (neto opipljivo);
!" sistemom softver (neto neopipljivo, tj. preneta ljudska znanja i pamet);
!" sistemom dokumentacije (opis za sistem hardver i sistem softver).
Sistem hardver ine: radna memorija, masovna memorija, ulazne jedinice, izlazne jedinice
i centralna procesorska jedinica. Radna memorija sadri operativnu (RAM-Random access
memory) i postojanu (ROM-Read only memory, PROM-Programable read only memory,
EPROM-Eresable programable read only memory) i dr.
U masovnu memoriju spadaju: magnetni diskovi, diskete, optiki diskovi, magnetne trake,
kasete, CD.
Ulazna jedinica omoguuje da se u raunar unose instrukcije, programi, podaci; ine je:
tastatura, disketna jedinica, mi, skener, optiki tap i dr.
Izlazna jedinica se koristi da se preko nje saoptavaju rezultati rada raunara; ine je:
monitor, tampa, ploter i dr.
Centralna procesorka jedinica izvrava instrukcije uskladitene u operativnoj memoriji.
Sistem softver ine operativni sistemi, koji mogu biti jednokorisniki (CPM, MS-DOS) i
viekorisniki (UNIX, OPEN/VMS, Windows 2000), zatim, jeziki procesori koji se dele na
interpretere (BASIC) i kompajlere (FORTRAN, PASCAL, C++), kao i aplikativni softveri u
koje spadaju tekst-procesori (Word for Windows) i baze podataka.
Sistem dokumentacije ine dokumentacija za sistem hardver, dokumentacija za sistem
softver i ostala dokumentacija.
Imajui sve to u vidu, aktivnost "1.3. Tehniki preduslovi" izvodi se kroz tri podreene
aktivnosti:
!" Aktivnost 1.3.1. Definisanje arhitekture sistema,
!" Aktivnost 1.3.2. Kadrovske potrebe,
!" Aktivnost 1.3.3. Dinamika realizacije i trokovi.
alempije@beotel.yu
29
Aktivnost
1.3.1. Definisanje arhitekture sistema
Aktivnost "1.3.1. Definisanje arhitekture sistema" treba da ukae na osnovne pretpostavke
koje se moraju ispuniti da bi se mogao sprovoditi postupak reinenjeringa poslovnih
procesa.
Tehnike i tehnologije raunarstva, komunikacija, pogotovu razvoj Interneta i Intraneta,
osnova su za pristupanje sloenom poslu reinenjeringa poslovnih procesa. Otuda
reinenjering poslovnih procesa treba zasnivati na najnovijim saznanjima, tehnikama i
tehnologijama, kao i principima distribuirane obrade, korienja baza podataka, postizanja
kompatibilnosti u mreama raunara i upotrebama ureaja za prikaz informacija. Prilaz
razmatranja tehniko-tehnolokih resursa treba da je u saglasnosti sa otvorenom
arhitekturom referentnog modela organizacije za standarde, gde je definisano sedam nivoa
povezivanja i komuniciranja raunarske i druge opreme:
!" NIVO 7. APPLICATION (aplikacijski nivo)
!" NIVO 6. PRESENTATION (prezentacijski nivo)
!" NIVO 5. SESSION (nivo sesije)
!" NIVO 4. TRANSPORT (transportni nivo)
!" NIVO 3. NETWORK (mreni nivo)
!" NIVO 2. DATA LINK (nivo podaci - veze)
!" NIVO 1. PHISICAL (fiziki nivo)
Pri izboru opreme treba imati u vidu tehniko-tehnoloke preduslove, koji su sagledavani
prema strukturi arhitekture referentnog modela:
!" kvalitetan komunikacioni sistem,
!" visok stepen kompatibilnosti raunarske opreme,
!" otvorenost mrene arhitekture,
!" modularnost opreme krajnjih korisnika,
!" efikasnost sistema upravljanja podacima,
!" korienje softverskih proizvoda za razvoj aplikacije.
30
alempije@beotel.yu
alempije@beotel.yu
31
Aktivnost
1.3.2. Kadrovske potrebe
Pod kadrovskim potrebama podrazumevaju se broj potrebnog kadra za realizaciju projekta
reinenjeringa poslovnih procesa i potrebna obuka za korienje informacionih tehnologija.
Uz obezbeivanje neophodne raunarske opreme, komunikacione i ostale pratee opreme,
od posebnog znaaja su i kadrovski resursi, odnosno kvalitetna i u dovoljnoj meri
zastupljena kadrovska podrka.
Saglasno tom prilazu, kao informatiku osnovu u sprovoenju reinenjeringa poslovnih
procesa, treba imati minimum potrebnog kadra. Potrebni su:
!" rukovodilac,
!" vodei projektant za modeliranje procesa i podataka,
!" vodei projektant softverskih reenja,
32
alempije@beotel.yu
alempije@beotel.yu
33
Kompjutersko opismenjavanje
(WINDOWS, MS Word)
Sadraj kursa:
Raunari i raunarski sistemi. Sistem hardver. Sistem softver. Sistem dokumentacije. PC
raunari, konfiguracija, komponente, tampai.
WINDOWS operativni sistem: Osnovno o WINDOWS okruenju i nainu korienja prozora.
Organizacija podataka. Pojam direktorijuma, stabla, navigacija. Rad sa disketom (formati,
kapaciteti, formatizovanje). Tipovi podataka.
Microsoft Office - funkcije i elementi.
WORD for WINDOWS: Pozivanje programa WORD for WINDOWS. Dokument, font, format
stranice, tabulatori, automatski back-up, korienje stilova, podeavanje osnovnih
parametara stranice. Navigacija, unos teksta, brisanje, obeleavanje teksta. Operacije sa
blokovima teksta. Ubacivanje prekida stranica, stranienje, heder-futer, fusnota. Ubacivanje
datoteka, okvira i slika. Editor formula. Rad sa makroima. tampanje dokumenta. Unakrsne
tabele. Baze podataka.
Napomena: Opismenjeni korisnici su korisniji sagovornici, jer imaju vie zahteva i proireni
su im vidici.
Modeliranje podataka-ERwin
Sadraj kursa:
ta je to IDEF1X standard? Identifikacija kandidata za entitete. Identifikacija veze.
Definisanje entiteta i relacija. Nezavisni entitet. Zavisni entitet. Asocijativni entitet.
Identifikujue i neidentifikujue veze. Izrada ER modela. Atributi ER modela. Lista kandidata
za atribute. Definisanje kljueva u modelu. Atributi i normalizacija. Definisanje poslovnih
pravila. Ogranienja. Prikaz i verifikacija kardinalnosti veza. Definisanje referencijalnog
integriteta. Identifikacija poslovnog domena. Identifikacija operacija.
Napomena: Obueni korisnici su korisni sagovornici za modeliranje podataka, jer na ovom
nivou, pre nego to se pree na programiranje, treba razreiti to vie dilema.
34
alempije@beotel.yu
alempije@beotel.yu
35
Aktivnost
1.3.3. Dinamika realizacije i trokovi
Kada je re o dinamici realizacije i trokovima, neophodno je korienje nekog od softvera
za upravljanje projektima (npr., MS Project).
Trokovi realizacije najee se posmatraju u okviru grupa poslova kao:
!" trokovi razvoja aplikacija,
!" trokovi tehniko-tehnolokih resursa,
!" trokovi eksploatacije.
Svaka od ovih grupa poslova se, takoe, sastoji iz posebnih trokova i otuda specifikaciju
trokova treba da ini sledea struktura:
!" trokovi razvoja:
odravanje opreme,
amortizacija opreme,
plate radnika.
36
alempije@beotel.yu
Aktivnost
2. Informaciono
modeliranje
Aktivnost 2.1. Definisanje detaljnih zahteva
Aktivnost 2.2. Kreiranje ER dijagrama
Aktivnost 2.3. Kreiranje atributa
Aktivnost 2.4. Definisanje poslovnih pravila
alempije@beotel.yu
37
DEFINISANJE
DETALJNIH
ZAHTEVA
KREIRANJE
ER DIJAGRAMA
2.1
2.2
KREIRANJE
ATRIBUTA
2.3
VEZA
DEFINISANJE
DEFINISANJE ER KLJU^EVA
MODELA
POSTUPAK
NORMALIZACIJE
VERIFIKACIJA
ER DIJAGRAMA
DEFINISANJE
ATRIBUTA
DEFINISANJE
POSLOVNIH
PRAVILA
2.4
DEFINISANJE
KARDINALNOSTI
VEZA
DEFINISANJE
REFERENCIJALNIH
INTEGRITETA
IDENTIFIKACIJA
POSLOVNOG
DOMENA
ANALIZA DETALJNIH
ZAHTEVA
38
alempije@beotel.yu
Aktivnost
2.1. Definisanje detaljnih zahteva
Aktivnost "2.1. Definisanje detaljnih zahteva" se izvodi na osnovu prethodno uraene
aktivnosti "1. Funkcionalno modeliranje", tj. definisane studije kojom se odreuju okviri koji
se u ovoj aktivnosti za izabrane podsisteme detaljno razrauju. Definisanje detaljnih
zahteva treba da predstavlja reviziju postavljenih elemenata iz studije, uz dalje detaljno
produbljivanje za izabranu funkciju za koju se sprovodi reinenjering poslovnih procesa.
Definisanje detaljnih zahteva se izvodi posredstvom sledeih akivnosti (slika 3.1):
!" Aktivnost 2.1.1. Izrada detaljnog stabla aktivnosti,
!" Aktivnost 2.1.2. Definisanje dekompozicionog dijagrama,
!" Aktivnost 2.1.3. Definisanje detaljnih matrica odnosa,
!" Aktivnost 2.1.4. Definisanje dijagrama toka podataka,
!" Aktivnost 2.1.5. Analiza detaljnih zahteva.
C1
Idejni
projekat
Detaljni
dekompozicioni
dijagram
IZRADA
Stablo
DETALJNOG
aktivnosti
STABLA
AKTIVNOSTI
2.1.1
DEFINISANJE
DEKOMPOZICIONOG
DIJAGRAMA
I1
Informacije od
korisnika
2.1.2
DEFINISANJE
DETALJNE
MATRICE
ODNOSA
2.1.3
DEFINISANJE
DIJAGRAMA
TOKA
PODATAKA
Detaljni
zahtevi
DFD
2.1.4
ANALIZA
DETALJNIH
ZAHTEVA
O1
2.1.5
Radna
grupa
M1
alempije@beotel.yu
39
Aktivnost
2.1.1. Izrada detaljnog stabla aktivnosti
Ulaz u aktivnost "2.1.1. Izrada detaljnog stabla aktivnosti" je idejni projekat na osnovu
dobijene informacije od korisnika. Sama aktivnost se izvodi za izabranu kritinu funkciju,
gde se vri dekompozicija do nivoa primitivnih procesa za koje se realizuju odgovarajui
scenariji dogaanja. Izlaz iz ove aktivnosti je detaljno stablo aktivnosti za kritinu funkciju.
Nain izrade stabla aktivnosti opisan je u prethodnom poglavlju. Ovde treba istai da
primenom BPwin-a CASE alata ovaj pristup ima novu dimenziju, jer omoguuje da se
nastavi projekat na onim mestima gde se zavrava navedena studija. Ovakav pristup
omoguuje stalnu aurnost projekta i praenje vremenske i novane dinamike, vezane za
sprovoenje reinenjeringa izabrane poslovne funkcije preduzea.
Na osnovu definisanog detaljnog stabla aktivnosti u sledeem koraku prelazi se na
definisanje dekompozicionog dijagrama.
Aktivnost
2.1.2. Definisanje dekompozicionog dijagrama
Ulaz u aktivnost "2.1.2. Definisanje dekompozicionog dijagrama" su dokumenta: "Detaljno
stablo aktivnosti" i "Informacije od korisnika". U okviru ove aktivnosti uspostavljaju se
horizontalne veze izmeu podaktivnosti koje su povezane strelicama. Izlaz iz ove aktivnosti
je "Detaljni dekompozicioni dijagram" .
U okviru definisanja dekompozicionog dijagrama u daljem tekstu bie razmatrani:
!" pravougaonici u dekompozicionom dijagramu,
!" strelice u dekompozicionom dijagramu,
!" grananje ili udruivanje strelica,
!" ugao posmatranja,
!" postojei (as-is) i budui (to-be) model,
!" formiranje trokovnih centara,
!" tekstualni opis.
40
alempije@beotel.yu
0
A0
A-0
Op{tj
ie
1
2
Det j j
alnie
3
4
A4
A0
1
2
A42
3
A4
1
2
3
A42
alempije@beotel.yu
41
Gr ~ne stelce
ani
ri
I er stelce
nt ne r i
Gr ~ne
ani
stelce
ri
Ulazne granine strelice koje dolaze iz nadreenog dijagrama u podreeni dijagram mogu se
deliti u vie specifinih strelica i obrnuto, izlazne granine strelice iz podreenog
dekompozicionog dijagrama se grupiu i izlaze u nadreeni dijagram.
Strelice u okviru dekompozicionog dijagrama mogu se definisati kao:
!" strelice koje se granaju ili udruuju,
!" povratne strelice i
!" skrivene strelice.
A
Puni skupovi informacija u svim granama.
A
A
Integracija strelica
A
42
alempije@beotel.yu
Povratne strelice
Povratna (feedback) petlja je pojava kada izlaz iz aktivnosti predstavlja ulaz, kontrolu ili
mehanizam neke ranije aktivnosti u dekompozicionom dijagramu. Ovakvi izlazi su, obino,
neke negativne karakteristike.
Izlaz - Kontrola
Izlaz - Ulaz
Izlaz - Mehanizam
1
1
1
2
U prvom i drugom sluaju prikazanom na slici 3.6. povratna petlja i ulazna povratna petlja
kao kontrola predstavljaju iteraciju ili rekurziju, dok u treem sluaju povratna petlja
Izlaz - Mehanizam ima ulogu podrke na nivou resursa za izvoenje odreene aktivnosti.
Skrivene strelice
Poseban
ne budu
kada je
situacija
tip strelica su tzv. skrivene (tunneled) strelice koje nastaju ako se eli da strelice
viene na nadreenom ili podreenom dekompozicionom dijagramu. To je situacija
dijagram prenatrpan, pa se zbog jasnoe izbegava njegovo prikazivanje. Druga
je ako se eli prikaz buduih dogaaja.
Moe biti i sluaj da strelica predstavlja kontrolu koja se primenjuje na svakoj aktivnosti u
dekompoziciji, a da je bila proputena radi jasnoe u niim nivoima. Oznaka da je strelica
sakrivena su zagrade (slika 3.7).
Nema prikaza u dijagramu
'dete'ta
C1
( )
( )
O1
( )
I1
( )
( )
M1
alempije@beotel.yu
43
C1 C2 C3
Rodi l k
tj i
es
di gr m
j a
a
r tl k
odi j a
es
a tv t
kinos
2
A12
3
A1
di gr m
j a
a
dee
t
Steia ( ii C2)ni
rl pozcj
c
a
j
e
prk z nanadi gr mudee
ia a
j a
a
t
C1
I
1
C3
1
2
3
O1
A12
Da bi se ovo pojasnilo posluie primer skrivenih strelica na slici 3.8. Ako su skrivene
strelice nacrtane u 'roditelj'skom dijagramu (pozicija C2) onda se ne pojavljuju u dijagramu
'dete'ta. Ukoliko su, pak, skrivene strelice nacrtane u dijagramu 'dete'ta, onda se ne vide u
dijagramu 'roditelj'.
Ugao posmatranja
Prilikom IDEF0 modeliranja mogu se razmatrati razliita gledita za reavanje postavljenog
problema. Pri tom se mora usvojiti jedno kompromisno reenje koje e se dalje koristiti.
Meutim, razliita gledita se mogu predstaviti korienjem takozvanih FEO (For Exposition
Only) dijagrama samo za prikazivanje. FEO dijagrami se, obino, koriste za prezentaciju
kada se ele ukloniti neki detalji zbog lakeg razumevanja problema. Za razliku od IDEF0
grafikog dijagrama, FEO dijagram ne mora da potuje IDEF0 pravila. Ovaj prilaz se
najee koristi za prezentacije.
44
alempije@beotel.yu
Tekstualni opis
Pored prikazanog grafikog opisivanja, potrebno je, kao dopunu, i tekstom opisati
aktivnosti. Tekstom se opisuju do detalja namena i funkcionisanje svake aktivnosti u
modelu. Tekstualni opis se esto koristi da bi se obezbedio kompletan rezime poslovnog
procesa, tj. opisuju se relevantni detalji do tanina. To je bitno ako se sprovode elementi
vezani za internu standardizaciju i definisani postupci i uputstva vezani za seriju standarda
ISO 9000, jer postupci i uputstva postaju sastavni deo grafikog opisa.
Imajui sve to u vidu, definisan je dekompozicioni dijagram za Aktivnost "Praenje isplata".
Dekompozicioni dijagram
za aktivnost "Praenje isplata"
Na osnovu definisanog kontekstnog dijagrama (prikazanog na slici 2.6) i stabla aktivnosti
(sa slike 2.7) definie se dekompozicioni dijagram prikazan na slici 3.9. Sa prethodno
definisanog kontekstnog dijagrama (prikazanog na slici 2.6) automatski su prenesene
granine strelice, a na osnovu stabla aktivnosti (slika 2.7) pojavljuju se nepovezane tri
aktivnosti. Potrebno je granine strelice povezati sa odgovarajuim aktivnostima i definisati
interne strelice koje e povezati aktivnosti izmeu sebe.
C3
C2
C1
Postupak o
definisanju
{ifarnika
Pravilnik o
isplatama
Postupak o
izve{tavanju
Zahtev iz kadrovskog
I1
Zahtev za isplatu
I2
Lista
isplata
ODR@AVANJE
PODATAKA O
PREVODIOCIMA
1
[ifarnici
ODR@AVANJE
[IFARNIKA
I3
Izve{taj knjigovod
IZRADA
IZVE[TAJA
O1
Nalog za isplatu
Zahtev za izve{taj
O2
I4
Prevodioci
M2
alempije@beotel.yu
45
Aktivnost
2.1.3. Definisanje detaljnih matrica odnosa
Tokovi podataka prikazani strelicama povezuju se sa entitetima i sa svim ili samo sa
pojedinim atributima tih entiteta. Ako se posmatraju naini na koje strelica koristi entitet,
onda se definiu CRUD matrice (slika 3.10), to je skraenica od:
!" kreirati entitete, to se oznaava sa C (Create);
!" pretraivati entitete, to se oznaava sa R (Retrive);
!" aurirati entitete, to se oznaava sa U (Update);
!" brisati entitete, to se oznaava sa D (Delete).
Kada se za svaku strelicu definie, osim naina korienja entiteta, i povezanost entiteta sa
atributima, onda se definie IRUN (slika 3.10) matrica, to je skraenica od:
!" ubacivanje atributa, to se oznaava sa I (Insert);
!" pretraivanje atributa, to se oznaava sa R (Retrive);
!" auriranje atributa, to se oznaava sa U (Update);
!" dodela nula vrednosti, to se oznaava sa N (Null field).
Dakle, mogu se kreirati dve matrice:
!" CRUD matrica, na kojoj bi sa jedne strane bili entiteti, a sa druge strane aktivnosti koje
koriste te entitete i
!" IRUN matrica, sa definicijom korienja svakog atributa u odreenom entitetu i
odreenoj aktivnosti.
Veza IDEF0 funkcionalnog modela i IDEF1X informacionog modela je omoguena preko
renika podataka (data dictionary manager). Na taj nain (indirektnom sinhronizacijom)
dozvoljeno je sinhronizovanje jednog modela podataka sa vie modela procesa, to se u
praksi ne samo esto deava ve i preporuuje. ERwin CASE alat omoguuje importovanje
renika podataka iz ERwin-ovog modela podataka u BPwin model procesa i obrnuto.
Kao to se moe zakljuiti, prebacivanje renika podataka je omogueno u oba smera, tako
da je, sa stanovita projektanta, nebitno u kom trenutku je uoio potrebe za promenama na
datom modelu. U sluaju da se pojavi potreba da se definie novi entitet ili atribut, ili da se
izmeni postojei, to se moe uraditi u BPwin-u, a zatim nadograditi renik podataka kao
veza sa ERwin-om. Mogue je, takoe, u BPwin-u definisati entitete ili atribute koji za model
podataka ne treba da budu vidljivi. Entiteti i atributi iz renika podataka se pridruuju
objektima koji opisuju kretanje podataka kroz procese, kao i nain kreiranja, odravanja i
upotrebe podataka.
Kao jedan od vanih momenata je postupak "inverznog inenjerstva" (reverse engineering)
kada se od gotovog softverskog proizvoda, posredstvom ERwin-a, formira njegova
specifikacija (model podataka), pa se importuje u dekompozicioni dijagram BPwin, gde se
opisuju entiteti i atributi za kasniji, tzv. direktni inenjering, tj. modeliranje podataka
korienjem ERwin-a (videti "2. Aktivnost Informaciono modeliranje" ).
"Inverzni inenjering" je potreban, jer postoji, npr., skup COBOL-skih programa u kojima su
definisane gomile datoteka koje se jo uvek koriste, ali za koje, osim izvornog koda, ne
postoji nikakva dokumentacija. Da bi se ove informacije iskoristile postupkom "inverznog
inenjerstva", treba praviti standardnu specifikaciju dela sistema, pa na osnovu nje
nastavljati razvoj, tj. definisati renik podataka u BPwin-u. U 4. delu za aktivnost
"3. Aplikativno modeliranje" o ovom postupku bie vie rei. Treba napomenuti da se na
ovaj nain ne moe dobiti potpuna specifikacija, jer implementacija nekog softvera je
semantiki siromanija od njegove specifikacije, pa se ne moe rekonstruisati potpuna
semantika sistema, mada se na taj nain ipak pokuava sa korienjem onoga to je ve
projektovano kao softver i to ve radi.
46
alempije@beotel.yu
Imajui sve to u vidu, za primer dokumenta "Karton isplata" bie definisane detaljne CRUD i
IRUN matrice.
alempije@beotel.yu
47
Naziv aktivnosti
ODRZAVANJE
PODATAKA O
PREVODIOCIMA
CRUD
CRUD
CERTIFIKAT
CRUD
ISPLATA
CRU
JEZIK
CRUD
ODELJENJE
CRUD
RAD.MESTO
ODRZAVANJE
SIFARNIKA
Naziv entiteta
OSOBA
CRUD
Naziv atributa
DATUMZ
IME
PLATA
PREZIME
SIFRA ODELJENJA
SIFRA RM
SIFRA OSOBE
STIMULACIJA
JMBG
VRSTA
SIFRA JEZIKA
SIFRA OSOBE
STEPEN ZNANJA
BROJ ISPLATE
SIFRA OSOBE
DATUM ISPLATE
IZNOS
NAZIV JEZIKA
SIFRA JEZIKA
MESTO
NAZIV ODELJENJA
SIFRA ODELJENJA
SIFRA RM
NAZIV RM
IRUN
I UN
IU
IU
IU
N
N
IR
I UN
IU
IR
R
R
RU
IR
R
IU
IU
IU
IRU
IU
IU
IRU
IRU
IU
Aktivnost
2.1.4. Definisanje dijagrama toka podataka
Dijagram toka podataka (DTP) grafiki je opis koji povezuje procese, tokove podataka
(dokumenta), skladita podataka (kartoteke). Drugim reima, dijagram toka podataka se
koristi za prikaz na onom nivou gde su mogu definisati ulazi, izlazi, tokovi, skladita i
procesi.
Dijagram toka podataka ili Data Flow Diagram (DFD) ugraen je u softverski proizvod BPwin
i koristi se pri modeliranju procesa. Dijagram toka podataka fokusira problem tokova
podataka izmeu procesa, a vri i analizu skladita podataka radi maksimalnog poveanja
njihove raspoloivosti i smanjenja vremena pretraivanja.
Dijagram toka podataka treba da nadomesti nedostatke koji postoje u IDEF0 metodologiji i
definiu se za nie nivoe dekompozicionog dijagrama.
Dakle, DTP je skup procesa koji se paralelno izvravaju i ne treba ga meati sa dijagramom
toka programa (flow chart). Dijagram toka programa je akcioni dijagram, tj. sekvencijalni
proces, dok je dijagram toka podataka-skup paralelnih procesa i veza tokova podataka i
skladita podataka izmeu njih.
Primer razlika izmeu dijagrama toka podataka i dijagrama toka programa (flow chart)
moe se opisati na sledei nain:
"Ako je redosled aktivnosti u jednom preduzeu takav da jedan radnik obrauje jedan
dokument dok svi ostali ne rade nita, pa kad zavri obradu dokumenta, aktivira se sledei
radnik a prethodni eka, onda je dijagram toka programa identian dijagramu toka
podataka."
Dijagram toka podataka se grafiki opisuje preko:
!" procesa (Processes),
48
alempije@beotel.yu
Proces (Processes)
Proces je niz operacija kojima se transformiu ulazni podaci u izlazne.
Svaki proces obrade podataka definisan je:
!" nekim ulaznim tokom podataka,
!" procesom koji se obavlja na osnovu jasno specificirane logike obrade, korienjem
podataka iz ulaznog toka ili nekog skladita podataka, a iji je rezultat obrade izlazni tok
podataka i/ili aurirani podaci u skladitu podataka.
Proces je oznaen:
!" brojnom oznakom kojom je referenciran proces i
!" nazivom procesa.
Nain definisanja brojne oznake je vezan za oznaavanje nivoa dekomponovanja u
dekompozicionom dijagramu.
Grafiki se proces predstavlja zaobljenim pravougaonikom, tako da, za razliku od IDEF0,
stranice pravougaonika nisu orijentisane po ICOM metodologiji, tj. ulazi i izlazi se mogu
definisati sa bilo koje strane.
alempije@beotel.yu
49
1.1
Zahtev iz kadrovskog
ODR@AVANJE
OSNOVNIH
PODATAKA
Osnovni podaci
Podaci za
kalkulaciju
KARTON
ISPLATA
[ifarnici
Stepen
1.2 znanja
jezika
PRA]ENJE
NIVOA ZNANJA
JEZIKA
Podaci o
stavkama
isplata
1.3
Zahtev za isplatu
Lista
isplata
OBRA^UN
ISPLATE
Prevodioci
Slika 3.12. Dijagram toka podataka za aktivnost "1. Odravanje podataka o prevodiocima"
50
alempije@beotel.yu
Aktivnost
2.1.5. Analiza detaljnih zahteva
Aktivnost "2.1.5. Analiza detaljnih zahteva" treba da bude svojevrsna rekapitulacija do sada
obavljenih aktivnosti (slika 3.13).
Ativnost "1. Provera prikupljenih informacija" predstavlja proveru prethodne faze, vezane za
postavljanje modela reinenjeringa, jer postoji mogunost da u meuvremenu doe do
nekih izmena.
Ulaz je definisana studija iz prethodne faze i zahtev da se izvri ekspertiza, a izlaz su
izmenjene ili nove injenice koje zadovoljavaju postavljene ciljeve projekta i koje izvode
odgovarajui eksperti, uz pomo uesnika u izradi studije.
Sledeom aktivnosti "2. Provera pojedinanih modela", u svetlu novih injenica, definisanih
prethodnom aktivnou uesnika, tj. autora pojedinanog modela moe zahtevati dodatne
informacije, a kao rezultat ove aktivnosti su pojedinani modeli.
S obzirom na to da se prilikom izvoenja aktivnosti "3. Provera kompletiranog modela"
moraju napraviti pojedini kompromisi i odstupanja, to kao povratna informacija ide
"Komentar radnog materijala ", kao i model za pregled.
Kako su korisnici konane sudije, to oni u okviru aktivnosti "4. Validacija modela" treba da
prekontroliu valjanost modela. Izlaz iz ove aktivnosti su komentari korisnika koji
predstavljaju ulaz za prethodnu aktivnost.
Na kraju, potrebno je da odgovarajue verifikaciono telo izvri proveru modela u okviru
aktivnosti "5. Verifikacija modela". Ako postoje primedbe, one su kao komentar modela ulaz
u aktivnost "3. Provera kompletiranog modela", a ako je model verifikovan - on se alje kao
kontrolna informacija u aktivnost "3. Provera kompletiranog modela". Nakon verifikacije kao
izlaz se dobija detaljni IDEF0 model koji je rezultat aktivnosti "2.1. Definisanje detaljnih
aktivnosti".
Dosadanjim aktivnostima modelirani su procesi, tj. definisana je dinamika sistema, dok e
u sledeem koraku biti izvreno modeliranje podataka, tj. bie definisana statika sistema.
Informacije
^injenice
od korisnika PROVERA
PRIKUPLJENIH
INFORMACIJA
2.1.5.1
Detaljni
Dodatne
informacije
I4
dekompozicioni
dijagram
Verifikovan
model
PROVERA
POJEDINA^NIH Pojedina~ni
MODELA
modeli
I3
CRUD i IRUN matrica
I1
DFD
I2
2.1.5.2
Komentar
radnog
materijala
Eksperti
U~esnici
PROVERA
KOMPLETIRANOG
MODELA
Model za
2.1.5.3
pregled
Detaljn
zahtevi
O1
Napomena
VALIDACIJA
MODELA
2.1.5.4
VERIFIKACIJA
MODELA
Dokumentarista
Komentar modela
Radna
grupa
Korisnici
2.1.5.5
Vrifikaciono te
M1
alempije@beotel.yu
51
Aktivnost
2.2. Kreiranje ER dijagrama
Na osnovu prethodno izvedenih opsenih priprema i definisanih entiteta i atributa u
aktivnosti "2.2. Kreiranje ER dijagrama" pristupa se modeliranju podataka, tj. definisanju
entitetnog dijagrama. Za kreiranje ER dijagrama treba koristiti tehniku za opisivanje
strukture podataka i poslovnih pravila pod nazivom model podataka, kojim se definiu
entiteti (entities). Pri tom svaki entitet ima svoje osobine, tj. atribute (attributes), a sve je
to povezano vezama (relationships). Prema ustaljenim konvencijama, velikim slovima u
jednini piu se entiteti, a atributi i veze malim slovima.
Detaljni
zahtevi
I1
IDENTIFIKACIJA Nepotpuna
lista entiteta
KANDIDATA ZA
ENTITETE
2.2.1
Modelirani
IDENTIFIKACIJA entiteti
VEZA
2.2.2
DEFINISANJE
ER MODELA
Informacije
od korisnika
I2
ER model sa
definicijama
2.2.3
VERIFIKACIJA
ER DIJAGRAMA
Verifikova
ER model
O1
2.2.4
Radna
grupa
M1
52
alempije@beotel.yu
Aktivnost
2.2.1. Identifikacija kandidata za entitete
S obzirom na to da svaki sledei korak zahteva kontrolu i reviziju prethodnog, to su
potrebne i ovde provera i identifikacija kandidata za entitete.
Za aktivnost "2.2.1. Identifikacija kandidata za entitete" polazi se od objekata posmatranja.
Objekt posmatranja je sve to se moe jednoznano identifikovati, pa samim tim i izolovati
iz okoline i opisati. Tako je objekt posmatranja i "entitet". Entitet je osoba, stvar, dogaaj,
pojam (realni ili apstraktni) koji je od trajnog interesa za preduzee, tj. neto to se eli
pojedinano posmatrati.
Za potrebe definisanja ER dijagrama, na primer, mogu se posmatrati sledei objekti, i to:
!" fiziki objekti (vozilo, maina,...),
!" osobe,
!" mesta (adrese, koordinate na karti,...),
!" organizacije (preduzea, zavod,...),
!" grupe/klase/tipovi (tip proizvoda, klasa poslova,...),
!" ugovori,
!" potraivanja (narudbe, fakture,...),
!" prenos/ premetaj (stvari, vozila, novca,...),
!" pridruenje (zadatak - osoba, vozila, vonja,...),
!" pripadnost/lanstvo (komponente - sastavi,...) i dr.
Za navedene mogue entitete treba:
!" odrediti prikladne radne nazive;
!" napraviti grupe entiteta (ako ih je vie od 15);
!" po grupama, traiti dodatne entitete (posmatrati najvaniji entitet);
!" po potrebi, rearanirati grupe.
Kako se entiteti opisuju preko svojih osobina, tj. atributa, to se identifikacija atributa moe
izvesti i na sledei nain.
Treba poi od postavke da svaki atribut u jednom trenutku vremena ima neku vrednost,
zatim analizirati tu vrednost i na osnovu toga proiriti listu entiteta na sledei nain:
!" Na osnovu prethodne analize strukture teksta, imenicu po analogiji smatrati entitetom.
!" Na osnovu slinosti ATRIBUTA koji mogu pripadati entitetu, uoava se znaajna razlika
(slinost), to moe da ukae na to da je re o razliitim (istim) objektima.
!" U toku identifikovanja entiteta, za svaki tip entiteta mora postojati jedan atribut (ili
grupa atributa) koji jedinstveno identifikuje konkretni entitet u okviru tog tipa.
!" Atribut koji identifikuje drugi tip entiteta je entitet.
!" Entitet je i atribut koji je istovremeno i atribut drugog entiteta.
!" Na osnovu pasivne i aktivne uloge veze mogu se definisati odgovarajui tipovi
entiteta (slika 3.15):
alempije@beotel.yu
53
ULOGA VEZE
RUKOVODI
RUKOVOEN
NARUCUJE
NARUCEN
TIP ENTITETA
RUKOVODILAC
ODELJENJE
KUPAC
PROIZVOD
ATRIBUT
BOJA
STAROST
DATUM
PITANJE
BOJA CEGA?
STAROST CEGA?
DATUM CEGA?
ODGOVOR
PROIZVOD
RADNIK
NARUDZBE
Entitet "KUCA"
ulica
kucni broj
godina izgradnje
broj spratova
broj stanova
Entitet "ULICA"
Atributi
Atributi
!" Na osnovu interesa posmatranja, atribut moe biti entitet, a moe biti i atribut entiteta,
to zavisi od interesovanja, odnosno od toga koji se deo realnog sveta i koji pogled na
njega eli predstaviti. Npr., ako je osnovni objekt od interesa-kua, onda je entitetkua, a atribut-ulica, a ako su od interesa-ulice onda su atributi-kue. Objekti od
interesa posmatranja prikazani su na slici 3.17.
Aktivnost
2.2.2. Identifikacija veza
Celokupna dosadanja aktivnost bila je usmerena na definisanje entiteta i atributa kroz
CRUD i IRUN matrice, dok se u okviru aktivnosti "2.2.2. Identifikacija veza" prvi put definiu
veze izmeu entiteta. Veza predstavlja interakciju meu objektima, tj. znanje o njihovoj
meusobnoj povezanosti. Vezama se definiu zavisnosti izmeu entiteta, odnosno opisuju
naini povezivanja (uzajamna dejstva) entiteta.
Predmet daljih razmatranja predstavlja identifikacija veza, i to:
!" povezivanje entiteta na osnovu odgovarajuih interesa;
!" definisanje zavisnosti entiteta (gde se definiu nezavisni i zavisni entiteti);
!" definisanje znaenja zavisnosti (definisanjem referencijalnog integriteta);
!" izvoenje varijacija zavisnosti (nalaenjem optimalne);
!" izbor entiteta 'roditelj' i entiteta 'dete'.
Veze u reenici su 'glagolske fraze' koje pokazuju kakav je odnos meu entitetima. Premda
glagolske fraze ne opisuju pravila precizno, one dozvoljavaju osobi koja posmatra model da
54
alempije@beotel.yu
stekne osnovni oseaj o povezanosti entiteta. Dobra je praksa ako itanje modela daje
valjane reenice (iskaze).
Na slici 3.18. dat je predlog moguih fraza kojima se definisu veze izmeu entiteta.
odnosi
zahteva
sadrzi
definise
salje
poseduje
realizuje
ukljucuje
vazi
poslata
poredi
trazi
odgovora
identifikuje
podstice
ima
koristi
postize
odreuje
upravlja
potvruje
specificira
nabavlja
upucuje
izgrauje
potvruje
prihvata
proverava
nalazi
povezuje
razdvoja
selektuje
Imajui u vidu nain definisanja potencijalnih entiteta i njihovih veza, u sledeoj aktivnosti
bie definisani ER modeli.
Aktivnost
2.2.3. Definisanje ER modela
Kao to je u prethodnom poglavlju istaknuto, realan svet se sastoji iz objekata (entiteta)
posmatranja, koji mogu biti ili realni objekti (osoba, maina, vozilo, kua), ili apstraktni
koncept (preduzee, radno mesto), dogaaj (prekraj, prevoz) ili odnosi (studentpredmet, mu-ena). Entiteti su, obino, imenovani imenicama, kao OSOBA, TELEFON,
JEZIK, ISPLATA.
Preciznije, moe se razmiljati o nekom entitetu kao o setu ili kolekciji (skupu) individualnih
objekata zvanih primerci ili instance (instances). Jedan primerak je jedan pojavni oblik
datog entiteta. Svaki primerak mora imati identitet razliit od svih ostalih primeraka.
Npr., moe se rei da entitet OSOBA predstavlja skup svih moguih osoba definisanih kao
primerci entiteta (slika 3.19.).
Postupak izvoenja aktivnosti "2.2.3. Definisanje ER modela" sadri sledee korake:
!" definisanje nezavisnih entiteta, tj. pronalaenje 'roditelj';
!" definisanje zavisnih entiteta;
!" definisanje veza.
alempije@beotel.yu
55
OSOBA
Sifra
osobe
827369
827499
STEVIC
ALAGIC
ZORAN
MILAN
1411952710331
2503965345611
827521
VUKIC
MILOS
1304970554321
827566
JOVIC
MARA
1511956710343
827654
MARTIC
ZORA
2406965345311
827698
BOBIC
IVAN
2304950554322
827782
CEBIC
GORAN
2311952710441
827788
SUSIC
ZORAN
1103965345611
827839
KLJAKIC
STEVAN
1404970554321
827844
TUBIC
MIRA
1611956710343
827876
ALIMPIC
PETAR
2706965345311
827900
827902
JAKIC
FILIPIC
VLADA
DRAGA
N
2904950554322
1305970554821
Prezime
Ime
JMBG
Plata
8000
1600
0
1250
0
2975
0
1250
0
2850
0
2450
0
3000
0
5000
0
1500
0
1100
0
9500
3000
0
Stimulacija
0
3000
Datum
zaposlenja
17.12.80
20.02.81
5000
22.02.81
02.04.81
14000
28.09.81
01.05.81
09.06.81
09.06.86
17.11.81
08.09.81
19.09.87
0
0
03.12.81
03.12.81
OSOBA
Slika 3.20. Grafiki prikaz nezavisnog entiteta OSOBA
Kao to se moe videti na slici 3.20, entitet OSOBA predstavlja skup svih moguih osoba sa
kojima se komunicira. Svaki primerak entiteta OSOBA je jedan korisnik. Svaki entitet sastoji
se od odgovarajuih primeraka ili instanci, kao to je prikazano na slici 3.19.
56
alempije@beotel.yu
Grafiki se zavisni entiteti prikazuju kao zaobljeni pravougaonici u okviru kojih se upisuje
naziv tipa entiteta u jednini.
Karakteristini entitet ili slab entitet predstavlja grupu atributa koji se ponavljaju vie puta
za jedan entitet i koji se identifikuju preko nezavisnog entiteta; npr., entiteti OSOBA i
ISPLATA. Za entitet ISPLATA se kae da je karakteristian entitet, jer zavisi od entiteta
OSOBA (slika 3.21).
prima / je primio
OSOBA
ISPLATA
Kar erst~ni
akt i i
entt
iet
Asocijativni entiteti su sastavljeni od vie veza izmeu dva ili vie entiteta, kao to se moe
videti na slici 3.22. Npr., ako OSOBA zna vie JEZIK-a i jedan JEZIK poznaje vie OSOBA,
tada je CERTIFIKAT asocijativni entitet koji opisuje veza izmeu entiteta: OSOBA i JEZIK.
Dakle, asocijativni entiteti nose informaciju o vieznanoj vezi.
O SO BA
j dat/
e
poseduj
e
vaz /
i
K
odnosise JEZI
CERTI KAT
FI
Asociatvni
ji
entt
iet
OSOBA
Gener~ki
i
entt
iet
Vrsta
KONSULTAN
REDOVN
Entt
iet
alempije@beotel.yu
57
Definisanje veza
Za razliku od hijerarhijskih i mrenih modela, gde se relacije prikazuju na fizikom nivou
kao pointeri na slogove, relacioni model prikazuje relacije na logikom nivou i te relacije se
zovu veze.
Kao to se u realnom svetu uspostavljaju odreene veze izmeu objekata, po istoj analogiji
se definiu i veze izmeu entiteta. Veza je asocijacija izmeu dva ili vie entiteta, tj.
predstavlja odnos koji postoji meu objektima, bilo u realnosti, ili u mislima. Veza u IDEF1X
metodologiji se prikazuje kao linija koja povezuje dva entiteta, sa takom na jednom kraju i
glagolskom frazom napisanom du linije.
Entitet od koga je uspostavljena veza zove se 'roditelj' (parent), a entitet ka kome je
uspostavljena veza zove se 'dete' (child).
Veza 'roditelj'-'dete' je asocijacija izmeu entiteta gde su svi primerci entiteta 'roditelj'
asocirani sa nula, jedan ili vie primeraka entiteta 'dete', a svi primerci entiteta 'dete' su
asocirani sa nula ili jedan - primerkom entiteta 'roditelj'.
Drugim reima, nain povezivanja dva entiteta ima osobine koje se nazivaju kardinalnost,
koja pokazuje "koliko neega" od dva entiteta moe biti ukljueno (sadrano).
Da bi se sve to bolje razumelo, posluie primer sa slike 3.24. Prvo treba definisati reenicu
gde je glagol <koristi> veza izmeu entiteta OSOBA i TELEFON.
OSOBA <koristi> jedan ili vie TELEFON-a
U ovom primerku veza izmeu dva entiteta je izabrana tako da ima oblik koji je poznat kao
jedan ili vie. To znai da je jedan (i samo jedan) primerak entiteta osoba (entitet 'roditelj')
povezan sa vie primeraka entiteta telefon (entitet 'dete'). Na osnovu definisane reenice,
korienjem glagolske fraze <koristi>, definie se primer relacije izmeu entiteta 'roditelj'
OSOBA i entiteta 'dete' TELEFON (slika 3.24).
korst
ii
TELEFON
OSOBA
P
Slika 3.24. Primer relacije
Identifikujue veze
Veza se zove identifikujua zato to kljuevi entiteta 'roditelj' predstavljaju deo identiteta
entiteta 'dete', tj. entitet 'dete' zavisi od entiteta 'roditelj' preko identifikatora. Dakle, ako se
primerak entiteta 'dete' identifikuje preko asocijacije sa entitetom 'roditelj', onda se veza
definie kao identifikujua veza, i svaki primerak entiteta 'dete' mora biti povezan sa
najmanje jednim primerkom entiteta 'roditelj'.
58
alempije@beotel.yu
Entt iet A
Kluc ati aj
rbut A
Entt r t j
iet odiel
I ii u}a veza
dentfkuj
Nazv vez
i
e
Entt -B
iet
Kluc ati a- (
j
rbut A FK)
Kluc ati aj
rbut B
Entt det
iet e
Neidentifikujue veze
Ako se svaki primerak entiteta 'dete' moe jedinstveno identifikovati, bez znanja veze sa
primerkom entiteta 'roditelj', onda se takva veza definie kao neidentifikujua veza.
Neidentifikujue veze su prikazane isprekidanom linijom koja povezuje entitet 'roditelj' i
entitet 'dete' sa takom na strani entiteta 'dete'.
Entt ietA
Kluc entt aj
iet A
Entt r t j
iet odiel
Nazv vez
i
e
Entt ietB
Kluc ati aj
rbut B
Kluc ati a- (
j
rbut A FK)
Entt det
iet e
Neidentifikujua ili slaba veza zavisi od naina definisanja kljueva od 'roditelj' ka 'dete'tu
na dva naina:
!" kao obavezna neidentifikujua veza i
!" kao neobavezna (opciona) neidentifikujua veza.
Ako je veza (relationships) obavezna (No Nulls ili Mandatory) iz perspektive 'roditelj', onda
je 'dete' egzistencijalno zavisno od 'roditelj' (slika 3.26). No nulls ili Mandatory znai da je
obavezan unos prenesenog kljua entiteta 'roditelj' u okviru entiteta 'dete' [Klju entiteta A
(FK) slika 3.26].
Ako je veza neobavezna (Nulls Allowed ili Optional), tada 'dete' niti je egzistencijalno niti
identifikaciono zavisno, ali potuje tu vezu. Null Allowed ili Optional znai da nije obavezan
(moe biti Null) unos prenesenog kljua entiteta 'roditelj' u okviru entiteta 'dete' [Klju
entiteta A (FK) slika 3.27].
alempije@beotel.yu
59
Entt ietA
Kluc ati aj
rbut A
Entt r t j
iet odiel
Nazv vez
i
e
Entt ietB
Kluc ati aj
rbut B
Kluc ati a- (
j
rbut A FK)
Entt det
iet e
Veza kategorije
Veza kategorije je definisana za hijerarhijsku vezu izmeu nadreenog generalizovanog
(generikog) entiteta koji sadri zajednike osobine podreenih entiteta kategorije
(slika
3.28).
Ovaj tip veze se deli na:
!" potpunu strukturu (tzv. kompletan set kategoriju) kada je zatvoren skup entiteta
kategorije;
!" nepotpunu strukturu (tzv. nekompletnu set kategoriju) kada nije zatvoren skup entiteta
kategorije.
Potpuna struktura
Nepotpuna struktura
Gener~ki
i
entt
iet
Gener~kientt
i
iet
Nekom pl an setkat ia
et
egorj
Di i i or
skrm nat
Di i i or
skrm nat
Kom pl an setkat ia
et
egorj
Entt kat ie
iet egorj
Entt ikat ie
iet egorj
Potpuna struktura se definie za tano odreeni broj entiteta kategorije i ne moe se vie
nijedan ukljuiti; nepotpuna struktura ostavlja mogunost ukljuivanja drugih entiteta
kategorije.
Potpuni opis vezan za ovaj tip veze detaljno e biti opisan u sledeem poglavlju.
Neodreujua veza
Neodreujua veza je nespecificirana, a govori o tome da se jedan entitet (Entitet A)
pridruuje veem broju entiteta drugog tipa (Entitet B) i obrnuto (slika 3.29).
Vez od A pr a B
a
em
Entt ietA
Entt ietB
Nazv vez
i
e/
Nazv vez
i
e
Vez od B pr a A
a
em
Ovaj tip veze zahteva, prema IDEF1X metodologiji, da se prevede uvoenjem asocijativnog
entiteta izmeu entiteta A i entiteta B.
60
alempije@beotel.yu
Aktivnost
2.2.4. Verifikacija ER dijagrama
Verifikacija ER dijagrama zahteva optu proveru entiteta, i to: naziva, pojavljivanja,
zavisnosti i dr. Provera se izvodi pitanjima: ta ako..., imajui uvek u vidu da se to mora
obavezno izvoditi sa korisnicima. Za verifikaciju treba koristiti analogiju sa strukturom
teksta, kao to je prikazano na slici 3.30.
TEKST
IMENICA
GLAGOL
PRIDEV
PRILOG
GLAGOL.IMENICA
RECENICA
POGLAVLJE
ER KONCEPT
ENTITET
VEZA
ATRIBUT ENTITETA
ATRIBUT VEZE
MESOVITI TIP ENTITETA-VEZA
OBJEKTI POVEZANI VEZAMA
LOKALNI PODMODEL
se
na
many
vie
alempije@beotel.yu
Opis
Jedan JEZIK odnosi se na nula,
jedan ili vie CERTIFIKATA. To
znai da moe biti definisan
JEZIK, a da nije izdat nijedan
CERTIFIKAT.
ODELJENJU pripada nula, jedan
ili vie OSOBA. To znai da
odeljenje moe da bude bez
zaposlenih.
U odnosu na atribut Pol entiteta
OSOBA, OSOBA je ZENA ili
MUSKARAC.
Obavezan
unos
jedne od alternativa.
U odnosu na atribut Vrsta
entiteta OSOBA, OSOBA je
REDOVNI ili KONSULTANT. Nije
obavezan
unos
jedne
od
alternativa.
OSOBA je rukovodilac
jedan ili vie OSOBA.
nula,
61
(OSOBA
OSOBA)
je
rukovodilac
A
OSOBA
CERTIFIKATs.
(OSOBA
certifikata).
poseduje
vie
many
poseduje
vie
Poslovna pravila 'roditelj' poinju reenicom u kojoj je naziv entiteta 'roditelj' na poetku
reenice, a naziv entiteta 'dete' na kraju.
Poslovna pravila 'dete'ta
Opis
A KONSULTANT
OSOBA.
KONSULTANT
je
tip
ili
specijalizacija entiteta OSOBA.
is
type
of
MUSKARAC
je
tip
ili
specijalizacija entiteta OSOBA.
nula
ili
REDOVNI
je
tip
ili
specijalizacija entiteta OSOBA.
62
CERTIFIKAT
poseduje
exactly
Jedan
CERTIFIKAT
poseduje
alempije@beotel.yu
one OSOBA.
(CERTIFIKAT
jedna OSOBA).
poseduje
tano
Poslovna pravila 'dete'ta poinju reenicom u kojoj je naziv entiteta 'dete'ta na poetku
reenice, a naziv entiteta 'roditelj' na kraju.
JEZI
K
RADNO M ESTO
prpada /
i
r
aspor en
edj
P
vaz /
i
odosise
CERTI KAT
FI
z
aposlava /
j
ODELJENJE
r
adi
OSOBA
j dat/
e
poseduj
e
prm a /
i
j prm i
e i o
r
ukovodi /
jr
e ukovodi
oc
Pol
M USKARAC
I
SPLATA
Vr a
st
ZENA
KONSULTANT
REDOVNI
ER dijagram prikazan na slici 3.31. predstavlja rezultat, sa jedne strane, analize dokumenta
"Karton isplata" (prikazanog na slici 2.5. - pogled odozdo) i sa, druge, rezultat elja i
potreba za informacijama, dobijenih na osnovu sprovedenog intervjua (pogled odozgo).
ER dijagram sa slike 3.31. uraen je u ERwin-u i moe se predstaviti i na sledei nain - u
obliku izvetaja definisanog kao poslovna pravila. Tako se razlikuju poslovna pravila
'roditelj' i poslovna pravila 'dete'ta.
ER modelom definisani su okviri modela podataka, a sledeom aktivnou bie izvreno
kreiranje atributa za svaki entitet.
alempije@beotel.yu
63
Aktivnost
2.3. Kreiranje atributa
Svaki objekat realnog sveta je definisan osobinama, pa po toj analogiji i entiteti imaju
atribute kojima se opisuju karakteristina svojstva. U okviru aktivnosti "2.3. Kreiranje
atributa" definisane su sledee podaktivnosti:
!" Aktivnost 2.3.1. Definisanje lista kandidata za atribute,
!" Aktivnost 2.3.2. Definisanje kljueva,
!" Aktivnost 2.3.3. Postupak normalizacije,
!" Aktivnost 2.3.4. Definisanje atributa.
Na slici 3.32. prikazan je dekompozicioni dijagram za aktivnost "2.3. Kreiranje atributa".
Verifikovani USVAJANJE
ER model sa
ER model
LISTA
atributima
KANDIDATA
I1
ZA ATRIBUTE
2.3.1
Klju~evi za
DEFINISANJE ER model
KLJU^EVA
2.3.2
Nomalizovan
POSTUPAK
atributivni model
NORMALIZACIJE
2.3.3
Informacije
od korisnika
I2
Verifikovani
DEFINISANJE atributivni m
ATRIBUTA
O1
2.3.4
Radna
grupa
M1
64
alempije@beotel.yu
Aktivnost
2.3.1. Definisanje liste kandidata za
atribute
Ulaz u aktivnost "2.3.1. Definisanje liste kandidata za atribute" je verifikovani ER model,
koji u okviru ove aktivnosti kao izlaz ima ER model sa atributima.
Da bi se definisala lista kandidata za atribute, mora se dati odgovor na pitanje ta je interes
posmatranja. Da li e po nekoj osobini objekat biti entitet ili atribut, tj. koju e ulogu imati,
zavisi od pogleda koji se eli predstaviti.
Osnovna pravila koja se koriste u realizaciji aktivnosti "2.3.1. Definisanje liste kandidata za
atribute" su:
!" Svaki entitet ima proizvoljan broj atributa, to znai da nema ogranienja u broju
atributa.
!" Odreeni atribut pripada jednom i samo jednom entitetu, tako da isti atribut ne moe
biti opisan u okviru dva ili vie entiteta.
!" Svako pojavljivanje entiteta ima vrednosti za sve atribute tog entiteta.
!" Atribut odreenog pojavljivanja entiteta moe imati samo jednu vrednost, pa primerak
entiteta za odreeni atribut ima jednu vrednost.
!" Svaki atribut predstavlja jednu odreenu injenicu, tako da i svako znaenje vrednosti
atributa mora imati jedno dosledno znaenje.
Na osnovu definisane liste kandidata za atribute u sledeem koraku bie definisani svi tipovi
kljueva.
Aktivnost
2.3.2. Definisanje kljueva
Aktivnost "2.3.2. Definisanje kljueva" ima zadatak da za svaki entitet bude definisan
atribut ili kombinacija atributa, ije vrednosti jedinstveno identifikuju svaki primerak
entiteta.
Taj atribut ili grupa atributa naziva se primarni klju. Ako klju ini samo jedan atribut,
onda je prost klju; u suprotnom je sloen. Kao to se vidi na slici 3.33, atributi mogu biti
definisani u oblasti kljueva (primarni klju) ili u oblasti podataka.
Na primeru prikazanom na slici 3.33. entitet OSOBA je predstavljen crtanjem pravougaonika
sa imenom entiteta na vrhu i svim atributima u okviru pravougaonika. Atribut "Sifra osobe"
je u oblasti kljua, a svi ostali atributi su u oblasti podataka.
alempije@beotel.yu
65
Struktura atributa
Primer
OSOBA
Sifra osobe
Naziv entiteta
Naziv atributa
[Naziv atributa]
Oblast
kljuceva
Naziv atributa]
[Naziv atributa]
[Naziv atributa]
Oblast
podataka
Prezime
Ime
JMBG
Plata
Stimulacija
Datum zaposlenja
Primarni klju
Atributi ili grupe atributa koji mogu biti izabrani kao primarni kljuevi nazivaju se 'atributi
kandidati za klju'. Kandidat za klju mora jedinstveno da identifikuje svaki primerak
entiteta. Iz toga sledi da nijedan deo primarnog kljua ne moe biti NULL, odnosno prazan
(empty) ili nedostajui (missing). Od kandidata za kljueve bira se jedan koji se naziva
primarni klju.
Osnovno pitanje koje se postavlja jeste kako izabrati primarni klju kojim se identifikuje
jednoznano entitet. Izbor kljua nekog entiteta moe biti jedan atribut kojim se definie
jednostavni primarni klju ili kombinacija atributa kojom se definie sloeni primarni klju.
Ako se pogleda entitet OSOBA sa slike 3.33, atributi su:
!" Sifra osobe
!" Plata
!" JMBG
!" Stimulacija
!" Prezime
!" Ime
Neka je, na primer, atribut 'Sifra osobe' prvi kandidat za klju, zato to je jedinstven za
svaku osobu. Sledei atribut JMBG bi mogao da bude kandidat za klju ako su pretpostavke
o jedinstvenosti broja korektne. Meutim, verovatno je da nee sve osobe imati JMBG, jer
treba koristiti usluge i stranaca. Mada se na prvi pogled ini da ovaj atribut moe biti
kandidat za klju, treba ga ostaviti po strani. Sledei atributi 'Ime i Prezime' ne bi mogli da
budu dobar kandidat za klju, jer mogu postojati dva Zorana Petrovia.
Kombinacija 'Ime i Prezime' i 'Datum zaposlenja' mogla bi biti kandidat za klju (osim ako
ne postoje, npr., dva Zorana Petrovia zaposlena istog dana).
Premda je to nekorektno, neka u ovom primeru kombinacija 'Ime i Prezime' i 'Datum
zaposlenja' odreuju specifinu osobu. Tako je dobijen drugi kandidat za klju: kombinacija
'Ime i Prezime' i 'Datum zaposlenja'.
Dakle, dobijena su dva kandidata za klju: jedan je 'Sifra osobe' a drugi je grupa atributa
koja sadri atribute: 'Ime i Prezime' i 'Datum zaposlenja' i sada treba izabrati primarni klju.
Koji e od ova dva kandidata biti izabran za primarni klju zavisi od analize koja se sprovodi
na sledei nain:
!" Prvo i najvanije prilikom izbora primarnog kljua je nai atribut koji nee menjati
vrednost za vreme 'ivota' svakog primerka entiteta, jer klju odreuje identitet
primerka entiteta (ako se promeni klju, to je ve drugi primerak). Ovaj uslov
66
alempije@beotel.yu
alempije@beotel.yu
67
Preneseni kljuevi
Preneseni klju je kolekcija atributa koji u posmatranom entitetu nisu klju, ali su zato klju
u nekom drugom entitetu. Preneseni klju (Foreign Key) jeste atribut koji povezuje entitet
'dete' sa entitetom 'roditelj' i odreen je oznakom FK, koja dolazi iza imena atributa.
OSOBA
Sir osobe
fa
Entt r t j
iet odiel
M i acia
gr j
prm a
i
I at
spl a
Sir osobe(
fa
FK)
r
ednibr
oj
Entt det
iet e
(dentfkz snost
I ii. avi
)
Na slici 3.35. prikazan je postupak migracije primarnog kljua entiteta OSOBA (entitet
'roditelj') u entitet ISPLATA (entitet 'dete'), tj. veza prenosi klju entiteta 'roditelj' u entitet
'dete'.
Kada se vri migracija kljueva, tj. povezivanje entiteta, moe se dogoditi i situacija
prikazana na slici 3.36, gde se pojavljuje i redundantna veza koju treba izbrisati.
Redundant
na
vez
a
ODELJAK
Odelak br
j
ia
m
ia
m
ODELJENJE
Sir
fa
Odelak br (
j
FK)
ia
m
OSOBA
Sir osobe
fa
Sir
fa
(
FK)
Odelak br (
j
FK)
Slika 3.36. Primer redundandne veze
Kao to se na slici 3.37. vidi, migracija kljueva moe biti u oblasti opisa i tada je u pitanju
neidentifikujua veza (oznaena isprekidanom linijom kao na slici 3.36) ili, pak, u oblasti
kljueva, kada je u pitanju identifikujua veza (oznaena punom linijom kao na slici 3.35).
68
alempije@beotel.yu
OSOBA
I
SPLATA
Sir osobe
fa
Pr
enesenikluc
j
( ei Key)
For gn
Sir odelenj (
fa
j a FK)
Pr
enesenikluc
j
( ei Key)
For gn
Sir osobe (
fa
FK)
r
ednibr
oj
Preneseni kljuevi mogu imati i drugo ime, to se definie kao uloga atributa u entitetu. Ime
uloge (Rolename) predstavlja novo ime za prenesene kljune atribute koji definiu ulogu
koju ti atributi igraju u tom entitetu. Ime uloge deklarie novi atribut, ije ime treba da
opie poslovno pravilo ugraeno preko veze koja zahteva preneseni klju (slika 3.38).
Definisanje imena uloge bie pokazano na primeru definisanja strukture proizvoda.
PRO I D
ZVO
I
dentbr
oj
j kom ponent
e
a
j sast j i
e
avlena z
STRUKTURA
M i acia nazva ati a
gr j
i
rbut
Kom ponent I
a. dentbr (
oj FK)
Sast I
av.dentbr (
oj FK)
Nazv ul
i oge
Kako entitet STRUKTURA ima sloeni klju od istog nadreenog entiteta PROIZVOD, to se
definisanjem uloge definiu razliita imena atributa i identifikuje entitet STRUKTURA.
Detalji za definisanje ovog tipa veze bie kasnije detaljno opisani.
Imajui sve to u vidu, za primer ER modela dokumenta "Karton isplata", u sledeem koraku
bie izvreno definisanje primarnih kljueva.
alempije@beotel.yu
69
JEZIK
Sifra jezika
vazi /
odosi se
CERTIFIKAT
Sifra osobe (FK)
Sifra jezika (FK)
OSOBA
Sifra osobe
prima /
je primio
ISPLATA
Sifra osobe (FK)
rbr
rukovodi /
je rukovodilac
je dat /
poseduje
Vrsta
Pol
MUSKARAC
Sifra osobe (FK)
ODELJENJE
Sifra odeljenja
zaposljava /
radi
ZENA
Sifra osobe (FK)
KONSULTANT
Sifra osobe (FK)
REDOVNI
Sifra osobe (FK)
Aktivnost
2.3.3. Postupak normalizacije
Prilikom definisanja atributa, kao to je reeno, pristupa se modeliranju podataka odozdo
nagore (Bottom Up). Ovaj pristup veoma je prihvatljiv za poetnike u ovoj oblasti, jer polazi
od opipljivih informacija definisanih na dokumentima i u kartotekama. Osnovu za ovaj nain
modeliranja podataka ine analiza funkcionalnih zavisnosti i postupak normalizacije.
U okviru aktivnost "2.3.3.Postupak normalizacije" uklanjaju se sve strukture koje stvaraju
redundansu podataka, pa je slogan normalizacije: Jedna injenica na jednom mestu.
Pravilno izveden postupak normalizacije podataka omoguuje korektno izvoenje aktivnosti
"3. Aplikativno modeliranje", koja ima strukturu kojom osigurava da u radu sa njom nee
biti neeljenih anomalija, kao to su, npr., unitavanje odreenih podataka ili neusklaenost
izmeu memorisanih podataka kao posledica auriranja baze podataka.
Drugim reima, postupak normalizacije predstavlja transformaciju poetnog entiteta u jednu
ili vie korektnih entiteta ili veza u kojima su svi atributi potpuno funkcijski zavisni od
kljua, a meusobno funkcijski nezavisni.
Da bi se mogao opisati postupak normalizacije, treba prethodno opisati pojam funkcijske
zavisnosti.
Ako je svakoj vrednosti atributa A u relaciji R prikljuena samo jedna vrednost atributa B u
istoj relaciji, onda je atribut B funkcijski zavisan od atributa A asocijacijom tipa 1.
Funkcijska zavisnost se
jednostavnog atributa.
moe
definisati
izmeu
sloenog
kljua
(vie
atributa)
Ako se svakom paru vrednosti atributa A i B relacije R moe prikljuiti tano jedna vrednost
C iste relacije, tada je atribut C funkcijski zavisan od sastavljenog atributa A i B.
Potpuna funkcijska zavisnost se definie na osnovu definicije funkcijske zavisnosti.
Atribut B je potpuno funkcijski zavisan od atributa A iste relacije, ako je funkcijski zavisan
od atributa A, a ne od nekog sastavnog dela atributa A.
Na osnovu ovako izvedenih definicija na primeru entiteta OSOBA bie pokazan postupak
normalizacije kroz definisanje prve (1NF), druge (2NF) i tree (3NF) normalne forme.
70
alempije@beotel.yu
OSOBA
Sifra osobe
Prezime(IE1)
Ime (IE1)
JMBG (AK1)
Plata
Stimulacija
Datum zaposlenja
Isplate
OSOBA
Sif.oso
827369
827499
827521
827566
827654
827698
827782
827788
827839
827844
827876
827900
827902
Prezime
STEVIC
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
ALIMPIC
JAKIC
FILIPIC
Ime
ZORAN
MILAN
MILOS
MARA
ZORA
IVAN
GORAN
ZORAN
STEVA
MIRA
PETAR
VLADA
DRAGA
JMBG
141195271033
250396534561
130497055432
151195671034
240696534531
230495055432
231195271044
110396534561
140497055432
161195671034
270696534531
290495055432
130597055482
Plata
8000
16000
12500
29750
12500
28500
24500
30000
50000
15000
11000
9500
30000
Stimu
0
3000
5000
0
1400
0
0
0
0
0
0
0
0
Dat.zapos.
17.12.80
20.02.81
22.02.81
02.04.81
28.09.81
01.05.81
09.06.81
09.06.86
17.11.81
08.09.81
19.09.87
03.12.81
03.12.81
Isplate
200,300
400
800,300
200,100
3000,20
300,400
alempije@beotel.yu
71
OSOBA
Sifra osobe
ISPLATA
Prezime
Ime
JMBG
Plata
Stimulacija
Datum zaposlenja
prima / je primio
Datum isplate
Iznos
Prikaz dat na slici 3.42. preveden u tabele OSOBA i ISPLATA sa definisanim instancama
(slika 3.43) izgleda ovako:
OSOBA
Sif oso
827369
827499
827521
827566
827654
827698
827782
827788
827839
827844
Prezime
STEVIC
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
Ime
ZORAN
MILAN
MILOS
MARA
ZORA
IVAN
GORAN
ZORAN
STEVA
MIRA
JMBG
141195271033
250396534561
130497055432
151195671034
240696534531
230495055432
231195271044
110396534561
140497055432
161195671034
Plata
8000
1600
1250
2975
1250
2850
2450
3000
5000
1500
Stim
0
300
500
0
140
0
0
0
0
0
Datum
17.12.80
20.02.81
22.02.81
02.04.81
28.09.81
01.05.81
09.06.81
09.06.86
17.11.81
08.09.81
ISPLATA
Sifra osobe
7369
7369
7521
7521
7521
rbr
1
2
1
2
3
Datum
12.12.97
12.11.97
10.10.97
11.11.97
11.12.97
Iznos
2.433,00
2.322,00
212
232
2.122
Poto je otkrivena grupa podataka koji se ponavljaju i od njih stvoren novi entitet ISPLATA,
time je uinjen prvi korak prema normalizovanom modelu.
Kao jo jedan primer vezan za definisanje prve normalne forme, treba navesti sluaj koji se
najee pojavljuje - vieznana upotreba istog atributa, gde se jednim atributom, npr.,
"Dat_zap ili Dat_odlaska" (slika 3.44) definiu dve injenice.
OSOBA
Sifra osobe
Prezime
Ime
Dat_zap_ili_dat_odlaska
Slika 3.44. Vieznana upotreba istog atributa
72
alempije@beotel.yu
OSOBA
Sif osobe
827369
827499
827521
827566
827654
827698
827782
827788
827839
827844
Prezime
STARCEVI
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
Ime
ZORAN
MILAN
MILOS
MARA
ZORA
IVAN
GORAN
ZORAN
STEVAN
MIRA
Dakle, problem je u atributima: 'dat_zap ili dat_odlaska' koji predstavljaju jednu od dve
injenice, poetak rada u firmi i prestanak rada u firmi. Ne postoji mogunosti da se otkrije
ta taj datum predstavlja, kao to ne postoji mogunost da se zapamte oba datuma, iako
su, moda, oba poznata. Reenje nije u tome da atribut moe da sadri dve injenice, ve
da postoje dva atributa koji govore o poetku i zavretku rada.
Stoga je potrebno da se ugrade dva atributa koji nose dve razliite informacije (sl. 3.46. i
sl. 3.47.) prikazuju izvedenu 1NF za ovaj sluaj.
OSOBA
Sifra osobe
Prezime
Ime
Dat_zap_
Dat_odlaska
Slika 3.46. Jednoznana upotreba atributa
OSOBA
Sif osobe
827369
827499
827521
827566
827654
827698
827782
827788
827839
Prezime
STARCEVI
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
Ime
ZORAN
MILAN
MILOS
MARA
ZORA
IVAN
GORAN
ZORAN
STEVAN
Dat zapos
17.12.80
20.02.81
22.02.81
02.04.81
28.09.81
01.05.81
09.06.81
09.06.86
17.11.81
dat odlaska
12.12.1995
13.09.1990
I u primeru sa sl. 3.40. i sl. 3.44. pogrena reenja ne zadovoljavaju prvu normalnu formu.
Menjajui strukturu, sasvim sigurno, jedan se atribut pojavljuje samo jednom u entitetu i
nosi samo jednu injenicu.
Dakle, prva normalna forma je ispunjena ako svaki od atributa entiteta ima jedno znaenje i
ne vie od jedne vrednosti za svaki primerak. Ako je sigurno da svi entiteti i atributi ne nose
vie injenica, model zadovoljava prvu normalnu formu.
Ovi elementi su ugraeni i u ERwin CASE alatu koji prihvata bilo koje ime za definiciju
entitetat ili atribut, ali postoje ogranienja:
!" ERwin e obavestiti o ponovnom korienju imena entiteta, zavisno od postavke opcije o
jedinstvenom imenu.
!" ERwin e obavestiti o ponovnom korienju imena atributa, osim ako je to ime uloge
(Rolename). Kada je pridrueno ime uloge za atribut, moe biti korieno u razliitim
entitetima.
!" Erwin nee dozvoliti ulazak prenesenih kljueva u entitet vie nego jednom, osim ako
alempije@beotel.yu
73
rbr
1
2
2
3
Datum
12.12.97
12.11.97
11.11.97
11.12.97
Datum
17.12.80
17.12.80
22.02.81
22.02.81
Iznos
2.433,00
2.322,00
232
2.122
74
alempije@beotel.yu
Aktivnost
2.3.4. Definisanje atributa
Definisanje atributa se izvodi u tri koraka:
!" identifikacijom atributa,
!" alociranjem atributa i
!" revizijom atributa.
Identifikacija atributa se definie na osnovu zahteva korisnika i poslovne dokumentacije.
Alociranje atributa se izvodi u zavisnosti od toga da li atribut zavisi od kljua ili je opisni.
Revizijom atributa se eliminie viestruko nastupanje vrednosti atributa pojedinog entiteta i
pri tom se za svaki atribut postavljaju pitanja:
!" da li je potrebno traiti viestruke vrednosti za isto pojavljivanje entiteta (Sifra
odeljenja, Naziv odeljenja);
!" da li atribut moe pripadati nekom drugom entitetu;
!" da li postoje atributi koji ne nastupaju za neko pojavljivanje entiteta;
!" da li postoje izvedeni atributi (koje treba ili odstraniti ili dodati);
!" da li postoje atributi bez entiteta;
!" da li je prikladan identifikator/ klju.
Za atribute se mogu definisati :
!" set vrednosti,
!" pravila dozvoljenih vrednosti,
!" null vrednosti,
!" dosledno znaenje, tj. meusobno iskljuivanje (npr., Atribut: Pol; Vrednost: mukarac,
ena).
Pravila za definisanje atributa bie definisana u sledeem poglavlju, kao tzv. poslovna
pravila.
alempije@beotel.yu
75
Aktivnost
2.4. Definisanje poslovnih pravila
Za aktivnost "2.4. Definisanje poslovnih pravila" potrebne su sledee podaktivnosti
3.49):
(slika
Veik a
rf ov ni
i
arbut n mode
ti i i
v
l
I
1
DEFNI E
I SANJ
KARDI
NALNOSTI
VEZA
2..
41
DEFNI E
I SANJ
REF
ERENCIAL H
J NI
I GRI
NTE TETA
2..
42
I
DENTII J
FKACIA
Poso ni
lv dome
n
POSLOVNOG
DOMENA
2..
43
I o ma i
nfr cj
e
odk ink
ors ia
I
2
M1
Glv i
an
pr e a
ojk t
O1
Ra
dna
gr
upa
Definisanje poslovnih pravila vezano je za tzv. strukturna dinamika pravila integriteta koja
se definiu ureenom trojkom:
<Ogranienje, Operacija , Akcija>
Strukturna dinamika pravila integriteta su:
!" ogranienja kojima se definiu dozvoljena stanja baze podataka,
!" operacije koje mogu potencijalno ugroziti ogranienja i
!" akcije koje treba preduzeti ukoliko doe do naruavanja ogranienja.
Ogranienja
Ogranienja se posmatraju preko:
!" strukturnih ogranienja,
!" ogranienja nad standardnim domenom,
!" ogranienja nad vrednou domena i
76
alempije@beotel.yu
kardinalnost tipa Zero, One or More, gde se jedan primerak entiteta 'roditelj'
pridruuje nijednom, jednom ili veem broju primeraka entitetu 'dete';
kardinalnost tipa One or More (P), gde se jedan primerak entiteta 'roditelj' pridruuje
najmanje jednom ili veem broju primeraka entiteta 'dete';
kardinalnost tipa Zero or One (Z), gde se jedan primerak entiteta 'roditelj' pridruuje
nijednom ili jednom primerku entiteta 'dete';
TOTALNO uee, gde svi primerci entiteta 'dete' uestvuju bar u jednoj vezi (No
Nulls) sa entitetom 'roditelj';
PARCIJALNO (delimino) uee, gde samo pojedini primerci entiteta 'dete' uestvuju
u vezi (Nulls Allowed) sa entitetom 'roditelj'.
Operacije
Operacije koje potencijalno ugroavaju ogranienja su standardne operacije auriranja, tzv.
IRD operacije, to je skraenica od:
!" ubacivanje novog sloga (Insert),
alempije@beotel.yu
77
Akcije
Za iskazivanje strukturnih pravila integriteta, tj. za iskazivanje potpune specifikacije budue
baze podataka, definiu se akcije koje treba preduzeti kada neka operacija auriranja baze
podataka narui definisano ogranienje.
Mogu se definisati sledei tipovi akcija:
!" RESTRICT (R), tj. akcija odbijanja operacije kojom se efekti te operacije ponitavaju ako
je uslov integriteta naruen;
!" CASCADE (C), tj. akcija prosleivanja operacije na vezni entitet;
!" DEFAULT (D), tj. akcija kojom se kreira specifino pojavljivanje tzv."default objekta" koji
oznaava "pretpostavljeni objekat" i zamenjuje objekat ije je nepostojanje uzrok
naruavanja integriteta;
!" SET NULL (SN), tj. akcija koja treba da eliminie da primerak entiteta "visi" u sistemu,
tj. atribut koji uspostavlja vezu setuje se na null vrednost. Specificira se "nul objekat"
koji oznaava "jo nepoznato pojavljivanje datog tipa objekta" i zamenjuje objekat ije
je nepostojanje uzrok naruavanja integriteta;
!" NONE, to znai da ne postoji ogranienje i da se operacija neometano izvodi.
Ovako nabrojana strukturna dinamika pravila integriteta bie u sledeim aktivnostima
detaljno opisana.
78
alempije@beotel.yu
Aktivnost
2.4.1. Definisanje kardinalnosti veza
S obzirom na to da su u prethodnom poglavlju navedeni tipovi veza, trebalo bi sada izneti
njihove osobine. Naime, veze (relationships) imaju osobinu koja se zove kardinalnost
preslikavanja, koja definie:
!" kardinalnost preslikavanja 'roditelj'-'dete' i
!" kardinalnost preslikavanja 'dete'-'roditelj'.
Kardinalnost preslikavanja 'roditelj'-'dete' definie "koliko mnogo" instanci entiteta 'roditelj'
je povezano sa "koliko mnogo" instanci entiteta 'dete'. Po IDEF1X metodologiji, definiu se
etiri naina definisanja kardinalnosti preslikavanja 'roditelj'-'dete':
!" Zero , One or More - bez oznake
Veza 'dete'-'roditelj'
alempije@beotel.yu
79
RODITELJ(PARENT)
sadrzi /
je sadrzano
Roditelj kljuc
Sledee varijante tipova kardinalnosti identifikujuih veza bie prikazane na primeru entiteta
ODELJENJE ('roditelj') i entiteta OSOBA ('dete'), imajui u vidu opcije prikazne na slici 3.50.
gde je fiksirana opcija 'dete'-'roditelj' na No Nulls (ONE).
OSOBA
Sifra osobe
Sifra odeljenja (FK)
One-to-Zero-One-or-More
ODELJENJE
zaposljava /Sifra odeljenja
radi
Ova veza govori da Odeljenje nema nijednu zaposlenu Osobu, ili ima jednu ili vie
zaposlenih Osoba. Kako je to identifikujua veza, OSOBA zavisi od ODELJENJA, pa se
OSOBA ne moe identifikovati ukoliko identifikator entiteta ODELJENJA nije poznat. Dakle,
entitet OSOBA egzistencijalno zavisi od entiteta ODELJENJE. Ovaj tip identifikujue veze se
preporuuje za korienje, jer je najmanje ograniavajui.
ODELJENJE
zaposljava /
Sifra odeljenja
radi
P
One-to -One-or-More(P)
OSOBA radi u jednom(One) ODELJENJU.
ODELJENJE zaposljava, jednu(One)
ili vise(More) OSOBA.
Ova veza zahteva da Odeljenje mora (One-P) da zapoljava bar jednu Osobu, a moe i vie
(More). Kako je to identifikujua veza, entitet OSOBA je zavisan od entiteta ODELJENJE, pa
se OSOBA ne moe identifikovati ukoliko identifikator entiteta ODELJENJE nije poznat.
Dakle, OSOBA zavisi od entiteta ODELJENJE (iskljuena je opcija Nulls).
alempije@beotel.yu
OSOBA
Sifra osobe
Sifra odeljenja (FK)
One-to-Zero-or-One(Z)
ODELJENJE
zaposljava /
OSOBA radi u jednom(One) ODELJENJU.
Sifra odeljenja
radi
ODELJENJE zaposljava nijednu(Zero) ili
Z
jednu(One) OSOBA.
Ova veza govori da Odeljenje ne mora (Zero) da zapoljava nijednu osobu ili zapoljava
samo jednu Osobu (One). Kako je to identifikujua veza, entitet OSOBA je zavisan od
entiteta ODELJENJE, pa se OSOBA ne moe identifikovati ukoliko identifikator entiteta
ODELJENJE nije poznat. Dakle, entitet OSOBA je zavisan od entiteta ODELJENJE (iskljuena
je opcija Nulls).
ODELJENJE
zaposljava /
Sifra odeljenja
radi
4
Ova veza omoguuje da osoba radi samo u jednom Odeljenju (One), dok u obrnutoj vezi
odeljenje zapoljava tano n osoba. Kako je to identifikujua veza, entite OSOBA je zavisan
od entiteta ODELJENJE, pa se OSOBA ne moe identifikovati ukoliko identifikator entiteta
ODELJENJE nije poznat. Dakle, entitet OSOBA je zavisan od entiteta ODELJENJE (iskljuena
je opcija Nulls).
sadrzi /
je sadrzano
RODITELJ(PARENT)
Roditelj kljuc,
Ako je veza neobavezna (Nulls Allowed), tada 'dete' nije egzistencijalno zavisno, ali potuje
tu vezu i grafiki se predstavlja rombom (slika 3.57).
alempije@beotel.yu
81
RODITELJ (PARENT)
DETE (CHILD)
Dete kljuc
Roditelj kljuc (FK)
sadrzi /
je sadrzano
Roditelj kljuc
ODELJENJE
Zero(Nulls Allowed)- or-One-to-Zero-One-or-More
zaposljava /
Sifra odejlenja
Sifra odeljenja (FK) radi
OSOBA radi u nijednom(Zero) ili jednom (One)
ODELJENJU.ODELJENJE zaposljava nijednu(Zero),
jednu(One) ili vise(More) OSOBA.
Ova veza dozvoljava da Osoba ne radi u nijednom (Nulls Allowed) Odeljenju ili da radi u
jednom Odeljenju. U Odeljenje moe biti nerasporeena (veza zapoljava) nejedna (Zero),
ili rasporeena jedna (One) ili vie (More) Osoba. Ova veza je najmanje ograniavajua, jer
omoguuje definisanje 'roditelj' (ODELJENJE) i 'dete' (OSOBA) bez ogranienja i meusobnih
zavisnosti.
ODELJENJE
zaposljava Sifra odeljenja
/
radi
One(No Nulls)-to-Zero-One-or-More
OSOBA radi u jednom(One) ODELJENJU.
ODELJENJE zaposljava nijednu(Zero),
jednu(One) ili vise(More) OSOBA.
Ova veza dozvoljava da Osoba mora da radi u jednom (No Nulls) i samo jednom Odeljenju.
U Odeljenje moe biti rasporeena (veza zapoljava) nejedna (Zero), jedna (One) ili vie
(More) Osoba.
Ako je svako ODELJENJE (PARENT) povezano sa jednom ili vie instanci OSOBA (CHILD),
gde OSOBA moe, a ne mora da zavisi od ODELJENJA, kardinalnost je prikazana na
slici
3.60.
82
alempije@beotel.yu
OSOBA.
Sifra osobe
Ova veza dozvoljava da Osoba moe da ne radi u nijednom (Nulls Allowed) Odeljenju ili da
radi u jednom Odeljenju. U Odeljenje mora biti rasporeena (veza zapoljava) najmanje
jedna (One-P) ili vie (More) Osoba. Ova veza je ograniavajua, jer zahteva da u Odeljenju
mora biti najmanje jedna Osoba, dok definisanje podataka o Osobama ne zavisi od
Odeljenja u kome e biti.
Ova veza zahteva da Osoba mora da radi u jednom (No Nulls) i samo jednom Odeljenju. U
Odeljenje mora biti rasporeena (veza zapoljava) najmanje jedna (One-P) ili vie (More)
Osoba. Ova veza je ograniavajua jer zahteva da u odeljenju mora biti najmanje jedna
Osoba i da ta Osoba radi iskljuivo u jednom odeljenju. Ova veza zahteva programsko
reenje vezano za brisanje poslednje Osobe.
ODELJENJE
zaposljava /Sifra odeljenja
radi
Z
Ova veza dozvoljava da Osoba moe da radi u nijednom (Nulls Allowed) ili jednom
Odeljenju. U Odeljene moe biti rasporeena (veza zapoljava) nijedna (Zero) ili jedna
(One) Osoba.
ODELJENJE
zaposljava Sifra odeljenja
/
radi
Z
One(No Nulls)-to-Zero-or-One(Z)
OSOBA radi u jednom(One) ODELJENJU.
ODELJENJE zaposljava nijednu(Zero) ili
jednu(One) OSOBA.
alempije@beotel.yu
83
Ova veza dozvoljava da Osoba mora da radi u jednom (No Nulls) i samo jednom Odeljenju.
U Odeljenje moe biti rasporeena (veza zapoljava) nijedna (Zero) ili jedna (One) Osoba.
ODELJENJE
Sifra osobe
Sifra odeljenja (FK)
Ova veza dozvoljava da Osoba moe da radi u nijednom (Nuls Allowed) ili jednom
Odeljenju. U Odeljenje moe biti rasporeeno (veza zapoljava) tano n Osoba.
ODELJENJE
Sifra odeljenja
zaposljava /
radi
4
One(No Nulls)-to-Exactly 4
OSOBA radi u jednom(One) ODELJENJU.
ODELJENJE zaposljava tacno(Exactly)
4 OSOBE.
Ova veza dozvoljava da Osoba mora da radi u Odeljenju. U Odeljenje moe biti rasporeeno
(veza zapoljava) tano n Osoba.
84
alempije@beotel.yu
je rukovodjena /
je rukovodilac
STRUKTURA
je komponenta za Komponenta br.Ident broj (FK)
Sastav br.Ident broj (FK)
je sastavljena od
Veza kategorije
Veza kategorije uspostavlja vezu izmeu nadreenih entiteta i njegovih zavisnih, klasnih
entiteta. Preko ove veze entitet koji se specijalizuje u klase prosleuje primarni klju
klasnim zavisnim entitetima. Ova veza se definie postupkom generalizacije, tj. postupkom
apstrakcije podataka, u kome se skup slinih tipova entiteta predstavlja NADTIPOM, tj.
generikim (generalizovanim) entitetom (IDEF1X metodologija).
Pod slinim tipovima objekata podrazumevaju se oni koji imaju JEDAN broj ISTIH
(zajednikih) atributa, tipova veza i/ili operacija sa drugim objektima.
Kardinalnost veze kategorije od generikog oblika ka entitetu kategorije je tipa "One-to-zero-or-one" i sadri implicitni izraz 'is a', a ita se na sledei nain:
"Svaka (One) instanca generikog entiteta moe, a ne mora (zero-or-one) da ima instancu
kategorije, dok svaka instanca entiteta kategorije je (is a) instanca generikog oblika."
Dakle, objekti su hijerarhijski GENERALIZOVANI ako se skup srodnih objekata posmatra kao
jedan objekat. Svi atributi sa nieg nivoa, koji su zajedniki, prenose se na vii nivo, dok se
alempije@beotel.yu
85
na niem nivou definiu entiteti kategorije koji sadre atribute koji su svojstveni samo tom
nivou.
U generalizacionoj hijerarhiji objekata (entiteta) vai pravilo nasleivanja osobina i
nasleivanja operacija nadtipa.
IDEF1X metodologija simboliki obezbeuje razlikovanje dva tipa entiteta kategorije, tj.
nepotpune i potpune strukture.
Nepotpune strukture
Nepotpuna struktura se definie kada nije sigurno da su identifikovani svi oblici entiteta
kategorije (jednostruka linija na dnu simbola klase naznauje da mogu biti ukljuene druge
kategorije). Za ovakvu vezu se definie atribut diskriminator u entitetu koji se specijalizira i
koji obezbeuje ekskluzivnost veze. Ako se diskriminator ne definie, veza se moe smatrati
neekskluzivnom.
Na primeru prikazanom na slici 3.68. generalizovani entitet OSOBA moe imati dva pojavna
oblika: KONSULTANT ili REDOVNI. Diskriminator "Vrsta" omoguuje definisanje oba tipa
angaovanja, ali ne ograniava da moe biti vie podtipova.
Diskriminator 'kategorije' je atribut koji pokazuje kako razlikovati entitete jedne kategorije
od entiteta druge kategorije. U navedenom primeru atribut 'vrsta' je diskriminator kategorije
i definisan je u entitetu OSOBA.
OSOBA
Sifra osobe
Status
KONSULTANT
TSifra osobe (FK)
REDOVNI
Sifra osobe (FK)
Potpune strukture
Potpuna struktura se definie za sluajeve kada je sigurno da nema vieklasnih entiteta u
koje bi se specijalizovao odreeni entitet (dvostruka linija na dnu simbola klase naznauje
da ne mogu biti ukljuene druge kategorije). U literaturi se jo zove ekskluzivna
specijalizacija.
Na slici 3.69. prikazan je primer potpune strukture gde generiki entitet OSOBA ima entitete
kategorije MUSKO ili ZENSKO. U IDEF1X formatu potpuna struktura se definie pod nazivom
"complete category cluster" i ima osobinu da primerak generalizovanog (generikog)
entiteta ne moe postojati bez asocijacije sa primerkom specijalizovanog (kategorisanog)
entiteta. Diskriminator 'Pol' definisan u entitetu OSOBA, iskljuuje pojavljivanje tree
varijante.
86
alempije@beotel.yu
OSOBA
Sifra osobe
Pol
MUSKARAC
ZENA
Pol
MUSKARAC
Sifra osobe (FK)
ZENA
Sifra osobe (FK)
Status
KONSULTANT
Sifra osobe (FK)
REDOVNI
Sifra osobe (FK)
O SO BA
zna
JEZIK
alempije@beotel.yu
87
je dat /
poseduje
CERTIFIKAT
Sifra osobe (FK)
Sifra jezika (FK)
vazi /
JEZIK
odnosi se
Sifra jezika
Naziv jezika
Stepen znanja
88
alempije@beotel.yu
NARUCILAC POSLA
OSOBA
Sifra firme
Sifra projekta
Sifra osobe
Naziv firme
Adresa firme
Naziv projekta
Datum pocetka
Prezime
Ime
JMBG
Plata
Stimul
definisao
UGOVOR
Sifra projekta (FK)
Sifra firme (FK)
Sifra osobe (FK)
narucio
potpisao
Opis ugovora
Entitet UGOVOR ovde predstavlja trostruku vezu od entiteta NARUCILAC POSLA, PROJEKAT i
ZAPOSLEN. Struktura sa slike 3.73. indicira da vie NARUCILACA POSLA naruuje vie
PROJEKATA u kojima uestvuje vie OSOBA.
Meutim, namee se pitanje: "kako ponuditi projekat pre nego to je ugovoren"(slika
3.74.).
OSOBA
PROJEKTANT
NARUCILAC POSLA
Sifra firme
Sifra projekta
Sifra osobe
Naziv firme
Adresa firme
Naziv projekta
Datum pocetka
Prezime
Ime
JMBG
Plata
Stimul
nudi
trazi
UGOVOR
PONUDA
Sifra firme (FK)
Sifra projekta (FK)
predhodi
potpisao
Opis ugovora
alempije@beotel.yu
89
Imajui sve to u vidu, za primer dokumenta "Karton isplata" u sledeem koraku bie
definisan atributivni model.
JEZIK
Sifra jezika
MUSKARAC
Sifra osobe (FK)
Sluzio vojsku
ZENA
Sifra osobe (FK)
Prezime devojacko
rukovodi /
je rukovodilac
zaposljava /
radi
prima /
je primio
Vrsta
KONSULTANT
Sifra osobe (FK)
Broj sati
ODELJENJE
Sifra odeljenja
Naziv odeljenja
Mesto
ISPLATA
Sifra osobe (FK)
rbr
Datum isplate
Iznos
REDOVNI
Sifra osobe (FK)
Vrsta posla
isto opisni atributi u entitetu OSOBA su: "Plata", "Stimul" i "Datum zaposlenja". Atribut
"JMBG (AK1)" alternativni je klju i po njemu se moe izvriti sekundarno indeksiranje.
Atributi: "Prezime (IE1)" i "Ime (IE2)" atributi su tipa "Inverse Entry" i oni se koriste za
indeksiranje, s tim to indeks nije jednoznaan, tj. vrednosti kljua se mogu ponavljati.
Atribut "Sifra odeljenja (FK)" preneseni je klju od entiteta ODELJENJE i dozvoljava unos
Null podataka, tj. ne mora se odmah definisati ODELJENJE gde OSOBA radi. Atribut:
"Sifrarm (FK)" preneseni je klju entiteta RADNO MESTO i ne dozvoljava unos Null
podataka, tj. mora se obavezno uneti radno mesto Osobe.
Atribut: "Pol" diskriminator je kategorije MUSKARAC ili ZENA i automatski zahteva izbor
jedne od opcija. Atribut "Vrsta" je diskriminator kategorija entiteta: KONSULTANT i
REDOVNI i ne zahteva odmah odluku o vrsti, tj. naknadno se moe definisati da li je osoba
konsultant ili redovni.
Entitet ODELJENJE, kojim se definie istoimeni ifarnik, treba da omogui da ne postoji
nijedna Osoba zaposlena u njemu (Zero-One-or-Many). Entitet RADNO MESTO zahteva da
makar jedna Osoba ima odgovarajue radno mesto (One-or-Many).
Na slici 3.75. definisan je i asocijativni entitet CERTIFIKAT koji je "povukao" kljueve
entiteta OSOBA i entiteta JEZIK i ima sloeni klju (Sifra osobe+Sifra jezika) i opisni atribut:
"Stepen znanja", kojim se definie stepen znanja jezika.
Entitet ISPLATA je primer slabog entiteta, iji je sloeni klju povukao klju jakog (OSOBA)
entiteta "Sifra osobe (FK)" i atribut "rbr" kojim se definie redni broj isplate. Opisni atributi
entiteta ISPLATA su: "Datum isplate" i "Iznos".
Entiteti kategorije povukli su: primarni klju "Sifra osobe" iz entiteta OSOBA i imaju svoje
opisne atribute. Tako, entitet MUSKARAC ima opisni atribut: "Sluzio vojsku", a entitet ZENA
ima opisni atribut: "Prezime devojacko". Entitet KONSULTANT ima opisni atribut: "Broj sati"
90
alempije@beotel.yu
Aktivnost
2.4.2. Definisanje referencijalnog
integriteta
Uproeno reeno, referencijalni integritet obezbeuje korektno povezivanje objekata, jer
objekat koji nije predstavljen u odgovarajuem skupu objekata ne moe da uestvuje u
nekoj od veza predstavljenih u modelu podataka.
Referencijalni integritet je vezan za postojanje prenesenog kljua za neki entitet (npr. "Sifra
odeljenja" u entitetu OSOBA). Entitet gde se nalazi preneseni klju zove se 'dete' (CHILD), a
entitet gde se definie primarni klju je 'roditelj' (PARENT). Primarni klju se moe preneti i
postati preneseni klju u okviru identifikujue ili neidentifikujue veze.
Preneseni klju u identifikujuoj vezi je sastavni deo primarnog kljua entiteta 'dete', pa se
'dete' identifikuje preko 'roditelj', ime uestvuje u definisanju integriteta entiteta. Kod
neidentifikujue veze preneseni kljuevi nisu deo primarnog kljua ''dete'ta', pa se 'dete' ne
moe identifikovati preko 'roditelj'. Ova razlika je veoma vana kada treba podrati vezu
izmeu 'roditelj' i ''dete'ta' kod operacija: ubacivanje (insert), brisanje (delete) i auriranje
(update), to ini sutinu referencijalnog integriteta.
Na osnovu toga mogu se definicije integriteta entiteta i referencijalnog integriteta dopuniti
sledeim tvrdnjama.
Integritetom entiteta se onemoguuje pojava da se mogu uneti dva entiteta sa istom
vrednou primarnog kljua ili da je klju NULL podatak.
Referencijalni integritet entiteta zahteva da unesena vrednost atributa odgovara vrednosti
atributa koji je primarni klju drugog entiteta. Referencijalni integritet opisuje ponaanje
modela kada, usled operacija odravanja, dolazi do naruavanja kardinalnosti veza. To
ponaanje modela ili strukturna pravila integriteta (SPI) definiu se kao strukturna
ogranienja.
Referencijalni integritet se definie za svaku vezu, posebno za stranu entiteta 'roditelj', a
posebno za stranu entiteta 'dete', i to za operacije: insert (ubacivanje), delete (brisanje) i
update (auriranje).
U daljem tekstu bie prikazane sve varijante referencijalnog integriteta za sledee tipove
veza:
!" identifikujue veze,
!" neidentifikujua veza,
!" rekurzivne veze,
!" veza kategorije,
!" neodreujua veza tipa vie prema vie i
!" N-arne veze.
alempije@beotel.yu
91
RODITELJ(PARENT)
sadrzi /
je sadrzano
Roditelj kljuc
92
alempije@beotel.yu
OSOBA
Sifra osobe
Sifra odeljenja (FK)
I:C Prezime
U:C Ime
TELEFON
JMBG
Sifra osobe (FK) I:R
Plata
U:R
Broj telefona
Stimulacija
Status
p
Datum zaposlenja
Slika 3.77. Primer identifikujue veze
D:C
U:C
One-to-Zero-One-or-More
ODELJENJE
___
OSOBA INSERT
OSOBA UPDATE
OSOBA
CHILD
OSOBA DELETE
RESTRICT
RESTRICT
PARENT
ODELJENJE DELETE CASCADE
ODELJENJE INSERT ______
ODELJENJE UPDATE CASCADE
alempije@beotel.yu
93
Bez ogranienja
Entitet OSOBA
Restrict
Restrict
Entitet
ODELJENJE
Entitet OSOBA
Bez ogranienja
Cascade
Entitet OSOBA
Restrict
I:R
One-to -One-or-More(P)
D:C
U:R
I:C
U:C
OSOBA
CHILD
ODELJENJE.
PARENT
___
OSOBA INSERT
RESTRICT
OSOBA UPDATE
OSOBA DELETE
RESTRICT
94
alempije@beotel.yu
Cascade
Entitet OSOBA
Restrict
Restrict
Cascade
Restrict
Entitet
ODELJENJE
Entitet OSOBA
Cascade
Entitet OSOBA
Restrict
I:R
U:R
One-to-Zero-or-One(Z)
D:C
U:C
OSOBA
CHILD
ODELJENJE
PARENT
___
OSOBA INSERT
RESTRICT
OSOBA UPDATE
OSOBA DELETE
RESTRICT
alempije@beotel.yu
95
Entitet
ODELJENJE
Entitet OSOBA
Restrict
Restrict
Entitet
ODELJENJE
Entitet OSOBA
Bez ogranienja
Cascade
Entitet OSOBA
Restrict
ODELJENJE
4
CHILD
OSOBA DELETE
OSOBA INSERT
OSOBA UPDATE
PARENT
___
ODELJENJE DELETE RESTRICT
RESTRICT ODELJENJE INSERT _____
RESTRICT ODELJENJE UPDATE RESTRICT
96
alempije@beotel.yu
Entitet OSOBA
Restrict
Cascade
Restrict
Entitet OSOBA
Restrict
Entitet
ODELJENJE
Restrict
Entitet OSOBA
Restrict
RODITELJ(PARENT)
sadrzi /
je sadrzano
Roditelj kljuc
alempije@beotel.yu
97
se
postaviti
RODITELJ (PARENT)
sadrzi /
je sadrzano
Roditelj kljuc
98
alempije@beotel.yu
!" tree, za svaku obrisanu instancu 'roditelj' moe se instanca entiteta 'dete' postaviti kao
Set Default;
!" etvrto, za svaku obrisanu instancu 'roditelj' moe se instanca entiteta 'dete' moe se
postaviti kao Set Null.
U okviru ERwin CASE alata difoltna vrednost za brisanje entiteta 'dete' ne zahteva izvoenje
prethodne etiri akcije (NONE), dok je difoltna vrednost za brisanje 'roditelj' SET NULL.
CASCADE omoguuje da sve instance ''dete'ta' koje e biti obuhvaene brisanjem instance
'roditelj' budu obrisane, to je definisano reenicom PARENT DELETE CASCADE (D:C).
RESTRICT definie ogranienje tako da instanca 'roditelj' ne moe biti obrisana dok sve
instance ''dete'ta' koje imaju nasleeni klju ne budu prethodno obrisane. Ako postoji neki
nasleeni, brisanje je zabranjeno.
Set Null ili Set Default pokazuje da je instanca 'roditelj' obrisana, ali je klju 'roditelj'
zadran kao podatak u entitetu 'dete'. Brisanje nije CASCADE, pa se klju postavlja kao
NULL ili Set Default vrednost. Prednost tog pristupa je da se mogu sauvati informacije o
''dete'tu' dok je efektivna veza izmeu 'roditelj' i ''dete'ta' prekinuta.
Pravila ubacivanja (Insert) i auriranja (Update)
Pravila za ubacivanje (INSERT) i auriranje (UPDATE) upravljaju ta e biti kada je red u
tabeli dodat ili auriran. Auriranje je, u sutini, ubacivanje, ali sa nekim dodatnim
pravilima.
Za operacije ubacivanje (INSERT) i izmena (UPDATE), red moe biti dodat ili izmenjen
samo ako svi referencirani preneseni kljuevi odgovaraju postojeim redovima u
referenciranim tabelama.
Pravila ubacivanja/auriranja mogu se izvesti korienjem etiri akcije:
!" prvo, ne moe se ubaciti/aurirati instanca ''dete'ta' bez instance 'roditelj' (akcija
RESTRICT);
!" drugo, alternativno, moe se za ubaenog/auriranog 'roditelj' ubaciti/aurirati i bilo koje
'dete' iji bi deo primarnog kljua bio klju 'roditelj' (akcija CASCADE);
!" tree, prilikom ubacivanja/auriranja instance entiteta 'dete' moe
standardna vrednost instance entiteta 'dete' za 'roditelj' koji ne postoji;
se
postaviti
!" etvrto, prilikom ubacivanja/auriranja instance entiteta 'dete' moe se postaviti Null
vrednost instance entiteta 'dete' za 'roditelj' koji ne postoji.
U okviru ERwin CASE alata difoltna vrednost za ubacivanje/auriranje entiteta 'dete' je Set
Null, dok je difoltna vrednost za ubacivanje 'roditelj' - NONE, a za auriranje Set Null.
OSOBA
D:SN
U:C
ODELJENJE
CHILD
OSOBA DELETE
OSOBA INSERT
OSOBA UPDATE
PARENT
______
ODELJENJE DELETE SET NULL
SET NULL ODELJENJE INSERT ______
______
ODELJENJE UPDATE CASCADE
alempije@beotel.yu
99
Entitet
ODELJENJE
Entitet OSOBA
Set Null
Set Null
Entitet
ODELJENJE
Entitet OSOBA
Bez ogranienja
Cascade
Entitet OSOBA
OSOBA
One(No Nulls)-to-Zero-One-or-More
D:R
U:C
ODELJENJE
CHILD
OSOBA DELETE
OSOBA INSERT
OSOBA UPDATE
PARENT
___
ODELJENJE DELETE RESTRICT
RESTRICT ODELJENJE INSERT ______
RESTRICT ODELJENJE UPDATE CASCADE
100
alempije@beotel.yu
Bez ogranienja
Entitet OSOBA
Restrict
Entitet
ODELJENJE
Entitet OSOBA
Bez ogranienja
Cascade
Entitet OSOBA
Restrict
OSOBA
I:R
U:R
CHILD
ODELJENJE
OSOBA DELETE
OSOBA INSERT
OSOBA UPDATE
PARENT
___
ODELJENJE DELETE SET NULL
RESTRICT ODELJENJE INSERT ______
RESTRICT ODELJENJE UPDATE RESTRICT
Slika 3.86. Referencijalni integritet za tip veze Zero (Nulls Allowed)-or-One-to-One-or-More (P)
alempije@beotel.yu
101
Entitet
ODELJENJE
Entitet OSOBA
Restrict
Cascade
Entitet OSOBA
Set Null
Entitet
ODELJENJE
Restrict
Restrict
Entitet OSOBA
Restrict
OSOBA
I:R
U:R
One(No Nulls)-to-One-or-More(P)
D:R
U:R
CHILD
OSOBA DELETE
ODELJENJE
RESTRICT
PARENT
ODELJENJE DELETE RESTRICT
OSOBA INSERT
OSOBA UPDATE
RESTRICT
RESTRICT
Slika 3.87. Referencijalni integritet za tip veze One (No Nulls)-to-One-or-More (P)
102
alempije@beotel.yu
Entitet
ODELJENJE
Entitet OSOBA
Restrict
Restrict
Cascade
Restrict
Entitet
ODELJENJE
Entitet OSOBA
Restrict
Entitet OSOBA
Restrict
I:SN
D:R
U:R
OSOBA
Z
ODELJENJE
CHILD
OSOBA DELETE
______
OSOBA INSERT
OSOBA UPDATE
SET NULL
_______
PARENT
ODELJENJE DELETE RESTRICT
ODELJENJE INSERT ______
ODELJENJE UPDATE RESTRICT
Slika 3.88. Referencijalni integritet za tip veze Zero (Nulls Allowed)-or-One-to-Zero-or-One (Z)
alempije@beotel.yu
103
Bez ogranienja
Entitet OSOBA
Set Null
Set Null
Entitet
ODELJENJE
Entitet OSOBA
Bez ogranienja
Restrict
Entitet OSOBA
Restrict
Bez ogranienja
OSOBA
Z
D:R
U:R
ODELJENJE
CHILD
OSOBA DELETE
OSOBA INSERT
OSOBA UPDATE
________
RESTRICT
RESTRICT
PARENT
ODELJENJE DELETE RESTRICT
ODELJENJE INSERT ______
ODELJENJE UPDATE RESTRICT
Slika 3.89. Referencijalni integritet za tip veze One (No Nulls)-to-Zero-or-One (Z)
104
alempije@beotel.yu
Entitet
ODELJENJE
Entitet OSOBA
Restrict
Restrict
Entitet
ODELJENJE
Entitet OSOBA
Restrict
Entitet OSOBA
Restrict
OSOBA
I:SN
U:SN D:SN
U:SN
ODELJENJE
Zero(Nulls Allowed)-or-One-to-Exactly 4
CHILD
OSOBA DELETE
OSOBA INSERT
OSOBA UPDATE
________
SET NULL
SET NULL
PARENT
ODELJENJE DELETE SET NULL
ODELJENJE INSERT ______
ODELJENJE UPDATE SET NULL
alempije@beotel.yu
105
Restrict
Entitet
ODELJENJE
Set Null
Cascade
Entitet OSOBA
Restrict
Set null
Set Null
Entitet OSOBA
Set Null
I:R
U:R
OSOBA
N
D:R
U:R
ODELJENJE
CHILD
OSOBA DELETE
OSOBA INSERT
OSOBA UPDATE
PARENT
________ ODELJENJE DELETE RESTRICT
RESTRICT ODELJENJE INSERT ______
RESTRICT ODELJENJE UPDATE RESTRICT
106
alempije@beotel.yu
Entitet OSOBA
Cascade
Restrict
Cascade
Restrict
Entitet
ODELJENJE
Restrict
Entitet OSOBA
Restrict
alempije@beotel.yu
107
OSOBA
Sifra osobe
CHILD
OSOBA DELETE
OSOBA INSERT
OSOBA UPDATE
________
SET NULL
SET NULL
PARENT
ODELJENJE DELETE SET NULL
ODELJENJE INSERT ______
ODELJENJE UPDATE SET NULL
D:SN
U:SN
je rukovodilac /
je rukovodjen
D:R
U:R
I:R STRUKTURA
U:R Komponenta br.Ident broj (FK)
D:R
U:R
su
su
od
ne
108
alempije@beotel.yu
OSOBA
D:C
U:C
Pol
I:R
U:R
I:R
U:R
MUSKARAC
ZENA
Entitet OSOBA
Entitet
MUSKARAC
Entitet ZENA
Cascade
Restrict
Entitet
MUSKARAC
Entitet ZENA
Cascade
Restrict
Cascade
Restrict
alempije@beotel.yu
109
O S O BA
D :C
U :C
V rst a
I:R
U :R
I:R
U :R
K ON S UL TA NT
R E DO VN I
Entitet OSOBA
Entitet
KONSULTANT
Entitet
REDOVNI
Cascade
Restrict
Cascade
Entitet
KONSULTANT
Restrict
Set Null
Entitet
REDOVNI
Cascade
Restrict
O SO BA
zna
JE ZIK
Ovaj problem se reava tako to se dodaje asocijativni entitet nazvan CERTIFIKAT i na taj
nain prevodi 'Many-to-Many' veza u par One-to-Zero-One-or-Many vezu (slika 3.97).
110
alempije@beotel.yu
OSOBA
je dat /
poseduje
Sifra osobe
Sifra odeljenja (FK)
Prezime
Ime
JMBG
Plata
Stimulacija
Datum zaposlenja
vazi /
JEZIK
odnosi se
Sifra jezika
CERTIFIKAT
Sifra osobe (FK)
Sifra jezika (FK)
Naziv jezika
Stepen znanja
Pravila brisanja
Pravila brisanja mogu se izvesti korienjem dveju operacija:
!" prvo, moe se obrisati svaka instanca CERTIFIKAT iji je nasleeni klju obrisana
instanca entiteta JEZIK (akcija CASCADE), ili
!" drugo, moe se spreiti brisanje JEZIKA ako postoji bilo koji CERTIFIKAT iji bi deo
primarnog kljua bio nekompletan (akcija RESTRICT).
Ove situacije koje su u vezi sa pravilima brisanja nazivaju se CASCADE i RESTRICT, a
odluka koje pravilo treba da se koristi bie definisana u modelu.
Dakle, CASCADE omoguuje da sve instance CERTIFIKAT obuhvaene brisanjem instance
JEZIKA budu, takoe, obrisane, to je definisano reenicom PARENT (JEZIK) DELETE
CASCADE (D:C), tj. ako je u pitanju, npr., instanca "nemaki jezik" u entitetu JEZIK, onda
e se izbrisati automatski svi certifikati izdati za "nemaki jezik" (slika 3.98).
CERTIFIKAT
Sifra osobe (FK)
Sifra jezika (FK)
D:C
JEZIK
Sifra jezika
Naziv jezika
Stepen znanja
Slika 3.98. Brisanje entiteta CERTIFIKAT akcijom CASCADE
RESTRICT definie ogranienje tako da instanca JEZIKA ne moe biti obrisana dok sve
instance CERTIFIKAT koje imaju nasleeni klju ne budu prethodno obrisane. Ako postoji
neki nasleeni, brisanje je "ogranieno". U dosadanjem primeru moraju prethodno biti
izbrisane sve instance entiteta CERTIFIKAT za "nemaki jezik", pa tek onda da se pristupi
brisanju instance "nemaki jezik" u entitetu JEZIK (slika 3.99).
CERTIFIKAT
Sifra osobe (FK)
Sifra jezika (FK)
JEZIK
D:R Sifra jezika
Naziv jezika
Stepen znanja
Slika 3.99. Brisanje entiteta CERTIFIKAT akcijom CASCADE
alempije@beotel.yu
111
D:SN
CERTIFIKAT
JEZIK
Sifra jezika
Naziv jezika
D:C
U:C
je dat /
poseduje
vazi /
D:R
JEZIK
odnosi seU:C
Sifra jezika
I:R CERTIFIKAT
U:R Sifra osobe (FK) I:R
Naziv jezika
U:R
Sifra jezika (FK)
Stepen znanja
112
alempije@beotel.yu
RADNO MESTO
D:R
Sifrarm
U:R
Nazivrm
D:R
U:R
I:R
U:R
CERTIFIKAT
I:R
Sifra osobe (FK) U:R
Sifra jezika (FK)
Stepen znanja
I:R
U:R
MUSKARAC
Sifra osobe (FK)
Sluzio vojsku
Pol
OSOBA
Sifra osobe
Prezime (IE1)
D:C
I:R Ime (IE1)
U:C
U:R Sifrarm (FK)
I:SN
JMBG (AK2)
P
U:SN
D:R rukov (FK)
U:R Datum zaposlenja
Plata
D:C
D:C Stimulacija
U:C Sifra odeljenja (FK) U:C
Pol
Vrsta
I:R
U:R
ZENA
Sifra osobe (FK)
Prezime devojacko
D:SN
U:SN
ODELJENJE
D:SN
U:SN Sifra odeljenja
Naziv odeljenja
Mesto
I:SN
U:SN
I:R
U:R ISPLATA
Sifra osobe (FK)
rbr
Vrsta
I:R
U:R
KONSULTANT
Sifra osobe (FK)
Broj sati
Datum isplate
Iznos
I:R
U:R
REDOVNI
Sifra osobe (FK)
Vrsta posla
alempije@beotel.yu
113
114
alempije@beotel.yu
Entitet 'dete'
ime veza
ISPLATA
Prima
OSOBA
Rukovodi
MUSKARAC
is a
ZENA
is a
REDOVNO
is a
KONSULTANT
is a
CERTIFIKAT
Zna
ODELJENJE
OSOBA
Zaposljava
RADNO
MESTO
OSOBA
Pripada
JEZIK
CERTIFIKAT
govori
U- Restrict
Restrict
OSOBA
I - Restrict D -
alempije@beotel.yu
115
Aktivnost
2.4.3. Identifikacija poslovnog domena
Entiteti se, kao to je ve reeno, opisuju preko svojih svojstava, odnosno atributa, od kojih
svaki (atribut) u jednom trenutku vremena ima neku vrednost. Tanije, atributi uzimaju
vrednost iz skupa moguih vrednosti koji se zove domen.
Poto domen predstavlja skup vrednosti, u njemu se svaka vrednost javlja samo jednom.
Svi elementi skupa se meusobno razlikuju. Atribut nema svojstvo skupa, jer se odreene
vrednosti mogu ponavljati, pa nije mogua jednoznana identifikacija pojedinih elemenata.
Domen se moe definisati po IDEF1X metodologiji kao bazni i tipski domen.
Bazni domen
Svaki domen se tretira kao podtip baznog domena. Naime, pod baznim domenima se
podrazumevaju tipovi podataka (po IDEF1X standardu to su Character, Numeric ili Boolen),
koji postoje u standardnim programskim jezicima (ceo broj, niz karaktera i slino) i samim
tim nasleuju karakteristike i operacije koje se mogu definisati nad ovim domenima.
Tipski domen
Tipski domen se definie preko svog imena, baznog domena i, eventualno, prostih ili
sloenih ogranienja datih odgovarajuim domen-pravilima (domain rules) kojima se
definiu mogue vrednosti u domenu.
Definiu se sledea prosta ogranienja, tj. domen-pravila:
!" relacioni operatori (operatora poreenja <,>,=,...);
!" IN lista vrednosti, kao skup pojedinanih vrednosti koje se definiu eksplicitnim
navoenjem svih dozvoljenih vrednosti (IN ['A,B,C']);
!" BETWEEN rang domena, koji se definie tako da se vrednosti iz domena uzimaju iz ueg
skupa vrednosti (BETWEEN 10 AND 200);
!" NOT NULL kada se eli iskazati da neki atribut ne moe da ima nula vrednost, pa se
uvodi specifian predikat NOT NULL, preko koga se definie odgovarajui domen;
obrnuto, pretpostavlja se da svaki domen ukljuuje u sebe i nula vrednost (specijalnu
vrednost koja se dodeljuje nekom atributu objekta kada se njegova vrednost ne
poznaje).
Dakle, specifiraju se dozvoljene vrednosti domena koje se definiu validacionim izrazima
pomou kljunih rei BETWEEN, IN i preko relacionih operatora (operatora poreenja
<,>,=,...) i slino.
Sloena ogranienja se sastoje iz prostih, povezanih logikim operatorima AND, OR i NOT.
Imajui sve to u vidu za primer dokumenta "Karton isplata", u sledeem koraku treba
definisati poslovni domen.
116
alempije@beotel.yu
Opis domena
default
Null
Opcija
Default
naziv
Text(18)
Broj
Datum
Naziv
Oznaka
Primanja
Stimulaci
ja
Stepen
Tip
podatka
(Domen)
Domen definie
sve brojeve
Opti datum
kome je
vrednost
sistemski datum
Ovaj domen je
definisan za sve
atribute koji
opisuju nazive
Ovaj domen
definie
identifikacione
oznake
Domen opisuje
plate i honorare
Domen za
definisanje
intervala i tipa
stimulacije
Stepen znanja
P-pie;G-govori;
C-ita
Integer
Validaciono
pravilo
(Ogranienje)
<>IsNull()
NOT
NULL
Date/
Time
Dananj
i datum
slici
Validacioni
naziv
Obavezan
unos
Obavezan
unos
<=Date()
Datum
zapoljenja
Text(30)
NOT
NULL
<>IsNull()
Obavezan
unos
Text(6)
NOT
NULL
<>IsNull()
Obavezan
unos
Currency
NOT
NULL
BETWEEN
500 AND 1000
Interval
stimulacije
IN'P,G,C'
Stepen
Currency
Text(3)
NOT
NULL
Stepen
U tabeli su prikazani:
!" naziv domena za koji se vezuju odgovarajui atributi;
!" domen, definisan kao tip podataka;
!" null opcija, kojom se definie obaveznost unosa podataka;
!" default vrednost, kao specificirana vrednost koja se ubacuje (insert) u kolonu kada se
unose podaci;
!" default naziv (komentar vezan za default vrednost);
!" ogranienje ili validaciono pravilo kojim se ograniavaju set vrednosti datog domena;
!" validacioni naziv, koji se pojavljuje kada je narueno zadato ogranienje (validacioni
naziv je oigledna ili neka opta poruka).
Za primer dokumenta "Karton isplata" definisani su sledei domeni (slika 3.104):
!" U okviru kolone Naziv domena definie se default domen (<default>) koji je ERwin
predifinisani domen, koji se automatski setuje, a svi ostali domeni nasleuju osobine tog
domena koji je 'roditelj'. Definie se tipom podatka Text (18) i ima obavezan unos.
!" Broj je domen kojim se definiu: svi brojevi, Integer tip podatka i NOT NULL.
!" Datum je domen kojim se definiu atributi tipa datuma i koji, po difoltu, uzima dananji
datum i ima obavezan unos.
!" Naziv je domen za definisanje svih atributa, koji se opisuju tipom podataka Text, duine
alempije@beotel.yu
117
118
alempije@beotel.yu
Aktivnost
3. Aplikativno
modeliranje
Aktivnost 3.1.
Aktivnost 3.2.
Aktivnost 3.3.
alempije@beotel.yu
Izrada aplikacije
119
DEFINISANJE
FIZI^KOG
DIZAJNA
GENERISANJE
[EME BAZE
PODATAKA
3.1
3.2
IZRADA
APLIKACIJE
3.3
SELEKTOVANJE
SUBP
KREIRANJE
TABELA
DEFINISANJE
MENIJA
DEFINISANJE
TABELA I
KOLONA
KREIRANJE
INDEKSA
DEFINISANJE
IZGLEDA
FORME
DEFINISANJE
INDEKSA
DEFINISANJE
NA^INA
UPRAVLJANJA
PODACIMA
GENERISANJE
POSLOVNIH
OGRANI^ENJA
VERIFIKACIJA
DIZAJNA [EME
DEFINISANJE
UPITA
DEFINISANJE
IZVE[TAJA
Na slici 4.1 prikazano je stablo aktivnosti za aktivnost "3. Aplikativno modeliranje" ine ga
sledee aktivnosti:
!" Aktivnost 3.1. Definisanje fizikog dizajna,
!" Aktivnost 3.2. Generisanje sheme baze podataka,
!" Aktivnost 3.3. Izrada aplikacije.
Prve dve aktivnosti se definiu u okviru ERwin CASE alata, dok se trea aktivnost izvodi u
odgovarajuem alatu za izabrani sistem za upravljanje bazom podataka i nije podrana
IDEF1X standardom. Za prikaz izrade aplikacije za test-primer dokumenta "Karton isplata",
bie korien MS ACCESS SUBP, jer je njegova upotreba i najea.
U daljem tekstu detaljno e biti obrazloene aktivnosti prikazane na slici 4.1.
120
alempije@beotel.yu
Aktivnost
3.1. Definisanje fizikog dizajna
Aktivnost "3.1. Definisanje fizikog dizajna" prevodi logiki u fiziki model, tj. entitet u
tabele, atribute u kolone, kao i odgovarajua ogranienja. ERwin nudi mogunost
istovremenog definisanja logikog i fizikog nivoa i jednostavno prebacivanje sa logikog na
fiziki pogled na model.
Definisanje fizikog dizajna se izvodi posredstvom sledeih aktivnosti (slika 4.1):
!" Aktivnost 3.1.1. Izbor SUBP,
!" Aktivnost 3.1.2. Definisanje tabela i kolona,
!" Aktivnost 3.1.3. Definisanje indeksa,
!" Aktivnost 3.1.4. Definisanje naina upravljanja podacima.
IZBOR
SUBP
Izabrani
SUBP
3.1.1
DEFINISANJE
TABELA
I KOLONA
Definisani
nazivi tabela i
kolona
3.1.2
DEFINISANJE
INDEKSA
I1
Model
podataka
Definisani
indeksi
3.1.3
DEFINISANJE
Fizi~ki
NA^INA
dizajn
UPRAVLJANJA
PODACIMA
O1
3.1.4
alempije@beotel.yu
121
Aktivnost
3.1.1. Izbor SUBP
Aktivnost "3.1.1. Izbor SUBP" treba da definie SUBP, gde e fizika ema biti kreirana i gde
e se specificirati default tipovi podataka, null opcije i druge default opcije koje se koriste za
generisanje kolona.
ERwin nudi komunikaciju prema sledeim SUBP (slika 4.3): DB2, ORACLE, Ingress, NetWare
SQL, SQL Server, SQLBase, SYBASE, INFORMIX, Rdb, WATCOM, AS/40, Progres, Clipper,
dBase III, dBase IV, Access, FoxPro i Peradox.
Svaki od ovih SUBP podrava odreene tipove podataka i odreenu sintaksu za definisanje
strukture modela (sintaksa za opis relacija, kolona i domena na fizikom nivou).
122
alempije@beotel.yu
Strukturirani tipovi podataka su skupovi vrednosti ija struktura ima odreeni smisao.
Nosioci strukturiranih podataka su strukturirane promenljive. U okviru SQL SUBP definiu
se, sledei strukturirani tipovi, imajui u vidu logiki model podataka:
!" entiteti postaju tabele,
!" atributi se definiu kao kolone,
!" instance ili primerci postaju redovi,
!" u preseku reda i kolone definiu se polja.
Tabela se sastoji od kolona i redova, koji se mogu sagledavati u bilo kom redosledu, bez
uticaja na sadraj tabele. Tabelarno prikazivanje je prirodan nain prikazivanja veza izmeu
podataka.Tabele moraju biti tako sastavljene da se nijedna veza ne izgubi.
Kolone su definisane nazivom i u jednoj koloni postoji samo jedna vrsta podataka. Ako se
koristi ERwin, kolona se generie iz atributa logikog modela, pa se tip i duina kolone
generiu na osnovu osobina atributa ili ih odreuje sam korisnik, dodeljujui im SIMBOLIKI
naziv.
Red se moe definisati kao skup meusobno povezanih polja, koja sadre osnovne podatke
o neemu.
Polje je osnovna i najmanja jedinica podatka koja moe biti numerika, alfabetska ili
alfanumerika.
Redovi se razlikuju meu sobom, pa duplikati redova nisu dozvoljeni.
Kad se posmatra, na primer, tabela ODELJENJE sa kolonama definisanim vertikalno i
redovima definisanim horizantalno:
ODELJENJE
SIFRAO
NAZIVO
MESTO
10
PRIPREMA
PANCEVO
20
RAZVOJ
NOVI SAD
30
PRODAJA
BEOGRAD
40
PROIZVOD
NJA
PAZOVA
alempije@beotel.yu
123
Veliki broj SUBP sa atributom "relacioni", koji se pojavio na tritu sedamdesetih godina, od
trenutka kada je E.F.Codd dao prvu teorijsku definiciju ovoga modela, primorao je njegovog
tvorca da 1981. godine definie, a kasnije i dopunjava, kriterijume koje neki sistem treba da
zadovolji da bi se mogao zvati relacionim.
Funkcije SUBP
S obzirom na prethodno definisana 12 pravila, sistemi za upravljanje bazama podataka
imaju dve osnovne funkcije. Prva funkcija se koristi za memorisanje i odravanje podataka,
koji izraavaju svojstva tabela (objekata posmatranja). Za izvoenje ove funkcije koriste se
jezik za definisanje podataka i struktura podataka (Data Definition Language ili DDL). O tom
jeziku bie vie rei u poglavlju 4.2.
Druga funkcija se koristi za kontrolisan pristup do memorisanih podataka i prikazivanje
podataka (vrednosti svojstava tabela) na zahtev korisnika. Za izvoenje ove funkcije koristi
se jezik za manipulaciju podacima (Data Manipulation Language ili DML). O tom jeziku bie
vie rei u poglavlju 4.3.
124
alempije@beotel.yu
Treba istai da SUBP mora vriti nadzor nad simultanim korienjem baze podataka. U
naelu, svakom je korisniku data mogunost da vri manipulaciju sa memorisanim
podacima. Tako, moe se dogoditi da vie korisnika istovremeno pokua modifikovanje istih
podataka. Stoga SUBP mora sinhronizovati simultane zahteve vie korisnika, da ne bi dolo
do gubljenja podataka.
Kada se to ima u vidu, rad sa SUBP treba da omogui:
!" menjanje postojeih podataka u okviru baze podataka,
!" brisanje postojeih redova,
!" dodavanje novog reda,
!" traenje (izdvajanje) konkretnog reda i
!" pretraivanje baze podataka.
Mora se naglasiti da se sve promene u vezi sa poljem (unoenje novih podataka, menjanje
postojeih i brisanje) moraju sprovoditi u okviru reda.
Postupak menjanja polja je sledei:
!" red u kome se vri izmena podataka pronalazi se u memoriji pomou adrese ili kljua;
!" red se iz eksterne memorije prenosi u operativnu memoriju;
!" vri se izmena sadraja datih polja;
!" red se ponovo zapisuje u eksternu memoriju.
Postupak brisanja ve postojeih redova zahteva panju - da se briu pravi redovi, tj. da se
potuju pravila vezana za integritet baze podataka, kao i referencijalni integritet.
Postupak dodavanja novih redova zahteva obezbeenje potrebnog memorijskog prostora i
potovanje integriteta baze podataka, kao i referencijalnog integriteta.
Traenje podrazumeva traenje konkretnog reda koje se obavlja preko primarnog kljua.
Traenje je uspelo ako je vrednost primarnog kljua reda identina vrednosti kljua datog u
argumentu.
Pretraivanje se vri putem argumenta koji je dat kao LOGIKI izraz. Sastavlja se lista
zahtevanih svojstava i kriterijuma po kojima se vri pretraivanje tabela i izdvajaju svi oni
redovi koji u potpunosti udovoljavaju zahtevima (videti glavu 4.3).
Pr am i
ogr
I ve{t i
z aj
PLATNISPI
SAK
PLATNISPI
SAK
PLATNISPI
SAK
Dat eka
ot
Pr am i
ogr
I ve{t i
z aj
KNJI
GOVODSTVO
KNJI
GOVODSTVO
KNJI
GOVODSTVO
Dat eka
ot
Pr am i
ogr
I ve{t i
z aj
I
NVENTAR
I
NVENTAR
I
NVENTAR
alempije@beotel.yu
125
programima i prema njima imaju vlasniki odnos. Meutim, nisu prilagoene za upotrebu
kod novih programa, jer oni nisu bili uzeti u obzir pri definisanju datoteke, a mogli bi
uspeno da koriste neke podatke. Ovaj problem se polovino reava promenom dizajna
datoteke ili definisanjem dodatne datoteke za potrebe novog programa. Meutim, negativna
reakcija je pojava viestrukog memorisanja podataka, ili tzv. redundanse podataka.
Za razliku od rada sa datotekama, korienje SUBP omoguuje da neprogrameri mogu
pristupiti podacima i njima manipulisati:
!" direktnim radom sa raunarom svakog korisnika,
!" jednostavnim definisanjem obrade (obradu definiu osobe koje se bave fizikom
problema, a ne obradom podataka).
Dakle, SUBP treba da omogui svim ovlaenim korisnicima korienje zajednikih podataka
(slika 4.5), skladitenje podataka sa minimalnom redundansom, logiku i fiziku nezavisnost
programa od podataka, jedinstveno komuniciranje sa bazom podataka preko jezika bliskih
korisniku. Nezavisnost programa i podataka se postie kada se moe dopunjavati i
modifikovati struktura baze podataka bez posledica po postojee korisnikove programe.
Jezik blizak korisniku je tzv. SQL upitni jezik.
Baza podataka
Podaci
PLATNI SPISAK
Podaci
KNJIGOVODSTVO
Podaci
INVENTAR
Programi
PLATNI SPISAK
SUBP
Programi
KNJIGOVODSTVO
Programi
INVENTAR
126
alempije@beotel.yu
!
!
!
!
!
DROP
DROP
DROP
DROP
!
!
!
!
TABLE
VIEW
SYNONYM
INDEX
kreiranje tabele,
kreiranje pogleda,
kreiranje sinonima, *
kreiranje indeksa,
dodavanje kolona ili redefinisanje u
tabeli,
brisanje tabele,
brisanje pogleda,*
brisanje sinonima,*
brisanje indeksa;
!
!
!
ROLLBACK
LOCK TABLE
AUDIT
!
!
dodeljivanje privilegije,
opoziv privilegije,
prenos transakcija iz bafera u
tabelu,
ponitavanje izmena u tabelama pre
commita,
zakljuavanje tabele,*
definisanje ORACLE pregleda.*
Napomena: Zvezdica (*) znai da su naredbe definisane u okviru ORACLE verzije SQL-a.
Na osnovu izabranog SUBP pristupa se u sledeem koraku - definisanju tabela i kolona.
alempije@beotel.yu
127
Aktivnost
3.1.2. Definisanje tabela i kolona
Implementacija entiteta i njihovih atributa u tabele i kolone nekog SUBP, korienjem
ERwin-a, relativno je jednostavan posao. Programski modul ERwin-a za izgradnju fizikog
modela ita opis entiteta i atributa i formira tabele i polja fizikog modela (slika 4.6).
Proces implementacije veza i njihovih definicija je mnogo sloeniji posao. Radi ilustracije,
sledi razmatranje prevoenja ERwin modela u MS Access dekstop SUBP.
Dakle, ERwin definie tabele i kolone automatski, tj. nazivi tabela po defaultu dobijaju
imena na osnovu naziva entiteta, a nazivi atributa po defaultu postaju nazivi kolona. I druge
osobine se dodeljuju kao default setovane vrednosti (vrednosti koja e biti insertovana u
kolonu). U Target Server editoru (Erwin) postavljaju se default vrednosti za (slika 4.3):
!" Default Access Datatype kojim se definiu default tip i veliina kolone, npr., text (18);
!" Reset Physical Name kojim se izvodi resetovanje fizikih imena;
!" Referential Integrity
integriteta.
Default
kojim
se
definiu
default
vrednosti
referencijalnog
Logiki
model
za primer
dokumenta
"Karton
isplata"
Naziv jezika
RADNO MESTO
D:R
Sifrarm
U:R
Nazivrm
D:R
U:R
I:R
U:R
CERTIFIKAT
I:R
Sifra osobe (FK) U:R
Sifra jezika (FK)
Stepen znanja
Pol
I:R
U:R
MUSKARAC
I:R
U:R
ZENA
OSOBA
Sifra osobe
Prezime (IE1)
D:C
I:R Ime (IE1)
U:C
U:R Sifrarm (FK)
I:SN
JMBG (AK2)
P
U:SN
D:R rukov (FK)
U:R Datum zaposlenja
Plata
D:C
D:C Stimulacija
U:C Sifra odeljenja (FK) U:C
Pol
Vrsta
I:R
U:R ISPLATA
Sifra osobe (FK)
rbr
Vrsta
I:R
U:R
KONSULTANT
Sifra osobe (FK)
D:SN
U:SN
Sluzio vojsku
Fiziki
model
podataka
za
primer
dokumenta
"Karton
isplata"
ODELJENJE
D:SN
U:SN Sifra odeljenja
Naziv odeljenja
Mesto
I:SN
U:SN
Prezime devojacko
JEZIK
Sifraj
RADNOM
D:R
Sifrarm
U:R
Nazivrm
pripada
Nazivj
vazi
D:R
I:R
U:R
U:R
CERTIFIKAT
I:R
Sifrar (FK)
U:R je dat
Sifraj (FK)
Stepen
I:R
U:R
MUSKARAC
Sifrar (FK)
Sluziov
I:R
U:R
P
D:R
U:R
D:C
U:C
Pol
I:R
U:R
ZENA
Sifrar (FK)
Prezime (IE1)
Ime (IE1)
Sifrarm (FK)
JMBG (AK2)
rukov (FK)
Datumz
Plata
Stimul
Sifrao (FK)
Pol
vrsta
I:SN
U:SN
D:C
U:C
I:SN
U:SN
zaposljava
prima
ODELJENJE
D:SN
Sifrao
U:SN
Nazivo
Mesto
I:R
U:R ISPLATA
Sifrar (FK)
rbr
D:C
U:C
D:SN
U:SN
rukovodi
Prezimed
I:R
U:R
REDOVNI
Sifra osobe (FK)
Vrsta posla
Broj sati
RADNIK
Sifrar
Datum isplate
Iznos
Vrsta
Datumis
Iznos
I:R
U:R
KONSULTANT
Sifrar (FK)
Brojs
I:R
U:R
REDOVNI
Sifrar (FK)
Vrstap
Moe se videti na slici 4.6. da su za potrebe ove knjige promenjena pojedina imena za
tabele i kolone da bi se ukazalo na razliku izmeu logikog i fizikog modela. Naime, u
okviru fizikog modela definisane su skraenice za kolone umesto punih imena atributa u
logikom modelu (pogledati entitet OSOBA i tabelu RADNIK).
Ako se ele promeniti default vrednosti za kolone bie korieni ERwin editori:
!" Column property Editor, kojim se definiu osobine kolona;
!" Domain Editor, kojim se definiu osobine domena;
128
alempije@beotel.yu
alempije@beotel.yu
129
Byte
Counter
Currency
Data/Time
Datum i vreme.
Double
Integer
Long
Integer
Memo
OLE
Objecat
Single
Text
Yes/No
Na osnovu definisanih osobina kolona (slika 4.7) na slici 4.8. prikazan je fiziki model za
primer dokumenta "Karton isplata" sa definisanim tipovima i veliinama podataka za
odgovarajue kolone.
JEZIK
Sifraj: Text(2)
RADNOM
Sifrarm: Text(2)
Nazivj: Text(20)
Nazivrm: Text(20)
D:R
U:R
I:R
U:R
CERTIFIKAT
Sifrar: Text(6)
Sifraj: Text(2)
I:R
U:R
Stepen: Text(10)
I:R
U:R
MUSKARAC
Sifrar: Text(6)
Sluziov: Text(2)
Pol
RADNIK
Sifrar: Text(6)
D:R
U:R
I:R
U:R
ZENA
Sifrar: Text(6)
Prezimed: Text(20)
D:SN
U:SN
ODELJENJE
D:SN
U:SN Sifrao: Text(2)
Nazivo: Text(20)
Mesto: Text(20)
I:SN
U:SN
D:C
U:C
I:SN
U:SN
I:R
U:R ISPLATA
Sifrar: Text(6)
rbr: Text(2)
D:C
U:C
Vrsta
I:R
U:R
KONSULTANT
Sifrar: Text(6)
Brojs: Integer
Datumis: Date/Time
Iznos: Double
I:R
U:R
REDOVNI
Sifrar: Text(6)
Vrstap: Text(18)
Grafika prezentacija data na slici 4.8. u tablici 4.2. prikazana je za primer dokumenta
"Karton isplata" kao uporedna tabela.
130
alempije@beotel.yu
TABELE
ATRIBUTI
Sifra osobe(PK)(FK)
ISPLATA
ISPLATA
rbr(PK)
Datum isplate
Iznos
JEZIK
JEZIK
Sifra jezika(PK)
Naziv jezika
KONSULTANT
KONSULTANT
Sifra osobe(PK)(FK)
Broj sati
MUSKARAC
MUSKARAC
Sifra osobe(PK)(FK)
Sluzio vojsku
Sifra deljenja(PK)
ODELJENJE
ODELJENJE
Naziv odeljenja
Mesto
Sifra osobe (PK)
Prezime (IE1)
Ime(IE1)
Sifrarm(FK)
JMBG(AK2)
OSOBA
RADNIK
rukov(FK)
Datum zaposlenja
Plata
Stimulacija
Sifra odeljenja(FK)
Pol
Vrsta
RADNO
MESTO
RADNOM
REDOVNI
REDOVNI
Sifrarm(PK)
Nazivrm
Sifra osobe(PK)(FK)
Vrsta posla
Sifra osobe(PK)(FK)
CERTIFIKAT
CERTIFIKAT
Sifra Jezika(PK)(FK)
Stepen znanja
ZENA
ZENA
KOLONE
Sifrar Text(6)NOT
NULL
rbr Text(2)NOT NULL
Datumis Date/Time
Iznos Double NOT
NULL
Sifraj Text(2) NOT
NULL
Nazivj Text(20) NOT
NULL
Sifrar Text(6) NOT
NULL
Brojs Integer NOT
NULL
Sifrar Text(6) NOT
NULL
Sluziov Text(2) NOT
NULL
Sifrao Text(2) NOT
NULL
Nazivo Text(20) NOT
NULL
Mesto Text(20) NOT
NULL
Sifrar Text(6) NOT
NULL
Prezime Text(20)NOT
NULL
Ime Text(20) NOT
NULL
Sifrarm Text(2) NOT
NULL
JMBG Text(13) NOT
NULL
rukov Text (6) NOT
NULL
DatumzDate/TimeNOT
NULL
Plata Double NOT NULL
Stimul Double NOT
NULL
Sifrao Text(2)
Pol Text(1) NOT NULL
vrsta Text(1)
Sifrarm Text(2) NOT
NULL
Nazivrm Text(20) NOT
NULL
Sifrar Text (6) NOT
NULL
Vrstap Text (18)
Sifrar Text(6) NOT
NULL
Sifraj Text(2) NOT
NULL
Stepen Text(10) NOT
NULL
Sifrar Text (6) NOT
NULL
Prezimed Text(20) NOT
NULL
Sledei korak je da se definiu osobine domena. Pritiskom na tipku Domain... (slika 4.7)
prelazi se u novu formu gde se definiu osobine domena (slika 4.9).
alempije@beotel.yu
131
Dodeljivanjem NULL opcije definie se Null vrednost polja, tj. ako je NOT NULL polje mora
uvek da ima i neku vrednost; ako je NULL - ne mora.
Na slici 4.10. prikazan je fiziki model podataka sa definisanim atributima i njima
definisanim odgovarajuim domenima.
Kao to se moe videti na slici 4.10, tabele su opisane kolonom i odgovarajuim nazivima
domena. Moe se primetiti da domen moe, a ne mora da ima isto ime kao kolona. Domeni
prikazani na slici 4.10. u tablici 4.3. detaljno su opisani.
RADNIK
RADNOM
Sifrarm: Sifarnici pripada Sifrar: IDbroj
Prezime: Naziv (IE1)
Nazivrm: Naziv
Nazivj: Naziv
Ime: Naziv (IE1)
Sifrarm: Sifarnici
vazi
JMBG: Text(13) (AK2)
P
rukov: IDbroj
Datumz: Datum
CERTIFIKAT
Plata: Plata
Sifrar: IDbroj
je dat
Stimul: Stimulacija
Sifraj: Sifarnici
Sifrao: Sifarnici
Pol: Pol
Stepen: Text(10)
Pol
vrsta: vrsta
JEZIK
Sifraj: Sifarnici
MUSKARAC
Sifrar: IDbroj
Sluziov: Sluziovojsku
rukovodi
ODELJENJE
Sifrao: Sifarnici
Nazivo: Naziv
Mesto: Naziv
prima
Vrsta
KONSULTANT
Sifrar: IDbroj
ZENA
Sifrar: IDbroj
Prezimed: Naziv
zaposljava
Brojs: Broj
ISPLATA
Sifrar: IDbroj
rbr: Text(2)
Datumis: Datum
Iznos: Primanja
REDOVNI
Sifrar: IDbroj
Vrstap: <default>
132
alempije@beotel.yu
TIP I
VELIINA
<default>
Broj
Datum
IDbroj
Naziv
Primanja
Plata
Text (18)
Integer
Date/Time
Text (6)
Text (20)
Double
Double
Pol
Text (1)
Sifarnici
Sluziovojsku
Stepen
Stimulacija
Text (2)
Text (2)
Text (10)
Double
vrsta
Text (1)
OPIS DOMENA
Default vrednost definisana u ERwin-u
Domenom Broj definiu se svi brojevi
Podrazumevajua vrednost sistemskog datuma
Jedinstven paralelni sistem oznaavanja
Definie atribute koji opisuju nazive
Domen opisuje plate i honorare
Poddomen od domena primanja
Domen definisan IN listom vezan za definisanje
potpune strukture (M- Muski Z-Zenski)
Domen opisuje sifarnike
Domen definisan IN listom (DA, NE)
Stepen znanja jezika definisan IN listom (P,G,C)
Domen definie interval i tip stimulacije
Domen definisan IN listom vezan za definisanje
nepotpune strukture
Pritiskom na dugme Validation... (slika 4.9) prelazi se na sledei nivo gde se definiu
validaciona pravila (slika 4.11), tj. definie se ogranienje nad vrednou domena.
!" IN lista se formira kao lista od konstanti iz odgovarajueg domena (slika 4.12), tj.
eksplicitnim navoenjem svih dozvoljenih vrednosti. Za validacioni naziv Pol validaciono
pravilo je IN ['M','Z'] i validacioni naziv Vstepen validaciono pravilo je IN
['Govori','Pise','Cita'].
alempije@beotel.yu
133
!" BETWEEN opseg dozvoljenih vrednosti gde atribut moe poprimiti samo ui skup
vrednosti iz domena; npr., za validacioni naziv Stimulacija definie se validaciono pravilo
BETWEEN 500 and 1000 (slika 4.13).
Ako se pritisne dugme Valid Value (slika 4.13) prelazi se u novi editor, gde se definiu
validacione vrednosti (slika 4.14).
134
alempije@beotel.yu
Trigeri i procedure
Trigeri predstavljaju imenovane blokove SQL koda koji su prekompajlirani i memorisani da
bi ubrzali postavljanje upita, bre izvrili validaciju nad podacima ili neku vrlo esto
korienu operaciju. Najvea prednost je u tome da se jednom programirani blokovi SQL-a
prenose na razliite platforme bez modifikacija.
Dakle, trigeri su imenovani skupovi prekompajliranih SQL izraza 'memorisanih na serveru'
koji se izvravaju kada se pojavi odgovarajui dogaaj; oni govore SUBP kako da izvri
ubacivanje, auriranje ili brisanje u tabeli, i to onako kako je zamiljeno.
Trigeri referencijalnog integriteta (u daljem tekstu: RI trigeri) posebna su vrsta trigera koji
se koriste da bi se odrao integritet izmeu dve tabele izmeu kojih je uspostavljena
relacija, odnosno oni govore SUBP ta da uini sa redom u onoj drugoj tabeli u kojoj je
preneseni klju jednak primarnom kljuu u prvoj tabeli ako se u prvoj tabeli brie, aurira ili
dodaje novi red.
ERwin kreira RI trigere automatski i automatski dodeljuje podrazumevani RI triger svakom
entitetu u vezi. SQL kod RI trigera se generie na osnovu tri kriterijuma:
!" vrste pravila referencijalnog integriteta koji se primenjuje na vezu (RESTRICT,
CASCADE, SET NULL,SET DEFAULT ILI NONE)
!" vrste veze, tj. da li je identifikujua, neidentifikujua ili podtip veze;
!" vrste uloge entiteta u vezi, tj. da li je tabela 'dete' ili 'roditelj'.
Pritiskom na tipku Referential Integrity Default... (slika 4.3) prelazi se na editor za
definisanje default vrednosti referencijalnog integriteta (slika 4.16).
alempije@beotel.yu
135
136
alempije@beotel.yu
Aktivnost
3.1.3.Definisanje indeksa
U tabelama, podaci se smetaju po redosledu njihovog unoenja. Postupak pretraivanja
zahtevanog podatka u tabeli moe dugo da potraje, pa se za reavanje problema
pretraivanja koriste specijalni tipovi tabela pod imenom indeksi, u kojima se nalaze adrese
redova.
Npr., za tabelu RADNIK automatski se formira indeksna tabela vezana za primarni klju (PK)
nad kolonom Sifrar (slika 4.17).
Mogu se kreirati i separatni indeksi za svaku kolonu u tabeli ako je esta potreba za
pretraivanjem pojedinanih vrednosti memorisanih u koloni.
Takoe, moe se formirati i indeks nad vie kolona kao, npr., nad kolonama: Prezime i Ime
u tabeli RADNIK.
Kada se generie fizika ema baze podataka, ERwin automatski kreira pojedine indekse za:
!" primarne kljueve nad svakom tabelom (PK),
!" alternativne kljueve (AKx),
!" prenesene kljueve (IF),
!" inverzne kljueve (IE),
!" kolone koje imaju esto pretraivanje.
Korienjem Index editora, u okviru naziva indeksa definie se sledea struktura oznake:
"X" + "PK" (ili "AK", " IF" ili "IE" + "n") + Naziv tabele entiteta.
alempije@beotel.yu
137
RADNIK
ISPLATA
KONSULTANT
JEZIK
MUSKARAC
ODELJENJE
RADNOM
REDOVNI
CERTIFIKAT
ZENA
Izraz za indeks
XPKRADNIK Unique Index Columns: Sifrar
XAK2RADNIK Unique Index Columns: JMBG
XIE1RADNIK Index Columns: Prezime Ime
XIF1RADNIK Index Columns: Sifrao
XIF13RADNIK Index Columns: Sifrarm
XIF6RADNIK Index Columns: rukov
XPKISPLATA Unique Index Columns: Sifrar
rbr XIF2ISPLATA Index Columns: Sifrar
XPKE/9 Unique Index Columns Sifrar
XIF8E/9 Index Columns: Sifrar
XPKJEZIK Unique Index Columns Sifraj
XPKMUSKARAC Unique Index Columns:
Sifrar
XIF11MUSKARAC Index Columns: Sifrar
XPKODELJENJE Unique Index Columns:
Sifrao
XPKRADNOM Unique Index Columns:
Sifrarm
XPKE/8 Unique Index Columns: Sifrar
XIF9E/8 Index Columns: Sifrar
XPKZNA JEZIK Unique Index Columns:
Sifrar Sifraj
XIF3ZNA JEZIK Index Columns: Sifrar
XIF4ZNA JEZIK Index Columns Sifraj
XPKZENA Unique Index Columns: Sifrar
XIF12ZENA Index Columns: Sifrar
Npr., za tabelu RADNIK i odgovarajuu kolonu formira se, po default-u sledea struktura
indeksa:
!" Sifrar (PK) ima indeks XPKRADNIK;
!" Prezime (AK1)+Ime (AK1) ima indeks XAK1RADNIK;
!" JMBG (AK2) ima indeks XAK2RADNIK;
!" Sifrao (IF1) ima indekS XIF1RADNIK;
!" Rukov (IF6) ima indeks XIF6RADNIK.
Kako su alternativni kljuevi, takoe, jednoznani, a instance kolona: Prezime i Ime se
mogu ponoviti, to iskljuivanjem opcije "Unique" AK1 prelazi u IE1 (slika 4.17).
Primarni indeks XPKRADNIK ima ukljuenu opciju "Clustered" koja omoguuje da se podaci
u tabelama fiziki smetaju uz indekse, ime se poboljavaju performanse upita.
U tablici 4.4. prikazani su formirani indeksi u ERwin-u za primer fizikog modela podataka
"Karton isplata".
Na osnovu prethodno izvedenih aktivnosti (slika 4.2) u sledeem koraku potrebno je
definisati nain upravljanja podacima.
138
alempije@beotel.yu
Aktivost
3.1.4.Definisanje naina upravljanja
podacima
Aktivnost "3.1.4. Definisanje naina upravljanja podacima" je bitna funkcija organizacije
podataka koja obuhvata:
!" skladitenje, pod ime se podrazumevaju kontrola redosleda upisivanja podataka, naini
pristupa i adresiranja podataka i nain fizikog predstavljanja podataka;
!" ponovno pristupanje, tj. odreivanje mesta nalaenja podataka (adresiranje), formiranje
podataka i odreivanje redosleda podataka;
!" kontrolu, tj. unutranje regulisanje toka odvijanja postupka upravljanja podacima,
odreivanje prava pristupa podacima, ime osigurava podatke da ne doe do gubitaka i
obezbeuje aurnost podataka na sistemu.
Ova aktivnost se ostvaruje u okviru klijent/server-arhitekture i treba da se nalazi na jednoj
ili vie hardverskih platformi, gde server izvodi zajednike servise za klijenta, tj. upravlja
podacima preko ugraenih poslovnih pravila i centalizovanih procedura. Klijent ogranieno i
kontrolisano optereuje server, distribuirano procesira informacije i zadrava samostalnost
vezanu za rad u lokalu (pogledati detalje u poglavlju 4.3).
Upravljanje podacima treba da podri:
!" integritet baze podataka,
!" transakcionu obradu podataka,
!" sigurnost podataka,
!" zakljuavanje podataka i
!" oporavak baze podataka.
alempije@beotel.yu
139
Renik podataka je baza podataka o bazi podataka (meta-baza podataka) i u njoj su opisi
tabela, relacija izmeu tabela, kao i svi objekti tipa formi, izvetaja, upita, makroa i
programa koji se uvaju u meta-bazi, koja se logiki predstavlja kao i sama baza podataka.
U renik podataka smetaju se pravila integriteta koja su definisana pomou nekog jezika
visokog nivoa. Renik podataka je korektan pristup; no, meutim, neki SUBP ne podravaju
integritet na taj nain, jer se podrka prebacuje u aplikacione programe, odnosno ostavlja
se mogunost da programer, uz pomo generatora aplikacija, sam vodi rauna o integritetu
baze podataka.
Integritet domena je dozvoljeni skup vrednosti, gde svaka vrednost u polju mora da pripada
domenu te kolone. Dakle, red se nalazi u tabeli ako su vrednosti u svim kolonama tog reda
u domenu kolona, a integritet domena kolone je odran ako zapis moe biti upisan u tabelu
samo u sluaju da tip podatka u svakoj koloni odgovara dozvoljenom tipu za datu kolonu.
Integritet tabela je ispunjen ako je svaki red u tabeli jedinstven, tj. ako postoji jednoznana
identifikacija reda koji se definie primarni kljuem, u kojem se moe nalaziti jedna ili vie
kolona. Kolona ija se vrednost koristi za identifikaciju ostalih kolona naziva se kljuem.
Postoje dve vrste kljueva: primarni i sekundarni.
Primarni klju jednoznano odreuje red; stoga i ne mogu postojati dva reda sa istim
vrednostima kljua. Ako u redu nema kolone koja bi jednoznano odredila neki red, mogu se
nai dva ili vie koji zajedno odreuju jednoznanost. Tada se govori o zdruenom kljuu.
Sekundarni klju je kolona po kojoj se vri pretraivanje. Sekundarni klju ne mora biti
jednoznaan.
Referencijalni integritet ili integritet relacija omoguuje vezu izmeu raznih kolona i tabela.
Vrednosti u jednoj koloni ili grupa kolona referiu se vrednostima u drugoj koloni ili skupu
kolona i pri tom se definie za tabelu 'dete' preneseni klju (foreign key), a za tabelu
'roditelj' - primarni klju (primary key).
Autoreferencijalni integritet je definisan spoljnim i orginalnim kljuem u istoj tabeli, gde je
jedna kolona u tabeli povezana sa vrednostima u drugoj koloni iste tabele.
Poslovna pravila ili tzv. korisnika pravila su pravila za ouvanje integriteta podataka koja
zadaje korisnik; npr., zabrana izmene podataka van radnog vremena. Uskladitena
procedura je, takoe, primer za poslovna pravila, gde se definiu pravila za prevoenje
skupa SQL iskaza i programski iskazi za kontrolu toka obrade. Takoe, poslovnim pravilima
se deklariu promenljive, kao i odgovarajui operatori za dodelu vrednosti. Uskladitena
procedura automatski se "ispaljuje" pod odreenim uslovima i nalazi se u serveru baze
podataka, to omoguuje da se saobraaj u mrei svede na minimum.
Ogranienjima se definie integritet podataka izmeu tabela; ta ogranienja su vezana za
rang validnih vrednosti.
140
alempije@beotel.yu
Drugim reima, transakcija predstavlja izvrenje jednog skupa operacija (npr., SELECT,
UPDATE, INSERT i DELETE) nekog programa koji poinje sa prvom izvodljivom DML ili DDL
naredbom (BEGIN TRANSACTION), a zavrava se:
!" operacijom COMMIT (ako je ceo skup operacija uspeno izvren),
!" ROLLBACK (ako ceo skup operacija nije uspeno izvren),
!" DDL naredbom,
!" vaeom grekom (slino deadlock),
!" log off,
!" grekom maine.
Nakom izvrenja jedne transakcije, sledea SQL naredba automatski startuje drugu po redu
transakciju.
Drugim reima, na nivou SQL naredbi upravljanje transakcijom se upravlja sa:
!" naredbom COMMIT, kojom se:
!" naredbom CHECKPOINT za duge transakcije kojom se deli transakcija u male 'porcije', tj.
uva rad u transakciji u jednoj taki sa opcijom za kasniji COMMIT;
!" naredbom ROLLBACK, kojom se ponitavaju sve izmene u tekuoj transakciji, odnosno
kojom se:
TO
CHECKPOINT
kojom
se
ponitava
samo
deo
U radu sa bazom podataka koji se koriste u transakcijama definiu se dve operacije, i to:
!" itanje (read) sa baze podataka, korienjem naredbe SELECT i
!" ispisivanje (write) u bazu podataka, korienjem naredbi INSERT, UPDATE i DELETE.
Jednim programom se moe predstaviti sekvenca transakcija, iako je najee jedan
program jedna transakcija.
Transakcije ne mogu biti "ugnjedene", tj. u jednom programu se operacija BEGIN
TRANSACTION moe izvriti samo ako taj program nema nijednu drugu transakciju u
izvrenju. Naredbe: COMMIT i ROLLBACK se izvravaju samo ako je neka transakcija u
izvrenju.
Transakcije moraju da prate i odgovarajue izlazne poruke, koje ne smeju da se prenose
direktno, ve tek nakon planiranog zavretka transakcije (COMMIT ili ROLLBACK).
Posebna panja se poklanja sistemu poruka u postupku oporavka baze podataka.
Poruke se ne prihvataju direktno, ve se ulazne poruke stavljaju u ulazni red, a izlazne
poruke u izlazni red. Pri planiranju zavretka transakcije (COMMIT ili eksplicitni ROLLBACK)
izvrava se:
!" upisivanje log izlazne poruke,
!" stvarno se prenose izlazne poruke i
!" izbacuju se ulazne poruke iz ulaznog reda.
alempije@beotel.yu
141
Pri neplaniranom ROLLBACK (izvrava se automatski ako doe do neke greke u programu
tipa "overflow", deljenja sa nulom i slino) dolazi do izbacivanja izlaznih poruka iz izlaznog
reda.
Stoga su u MS ACCESS-u elementi transakcionog rada ugraeni u okviru ACCESS BASIC,
gde su mogui: definisani poetak transakcije (BeginTrans), zapisivanje rezultata rada
transakcije (CommitTrans) i vraanje na stanje pre poetka transakcije (Rollback).
Sigurnost podataka
Sigurnost podataka odnosi se na mehanizam zatite podataka od neovlaenog korienja,
koji je ugraen u SUBP. Zatitom podataka se definie koji subjekt zatite (npr., Eremija)
nad kojim tabelama (npr., RADNIK) moe da izvede neku operacuju (npr., SELECT, UPDATE,
INSERT i DELETE) i pod kojim uslovima (npr., samo za odeljenje 10).
Polazi se od injenice da je korisnik vlasnik kreirane tabele i da samo on kao vlasnik moe
da je koristi osim ako i drugima ne dozvoli pristup. Za dodeljivanje privilegije korienja
drugim korisnicima koristi se GRANT naredba koja se sastoji iz tri osnovne klauzule:
GRANT <Privilegija>
ON <tabele ili pogled>
TO <korisnik ili grupa korisnika>
[WITH GRANT OPTION];
Privilegije mogu biti :
!" SELECT,
!" UPDATE,
!" INSERT,
!" DELETE,
!" INDEX,
!" EXPAND (dodavanje atributa relacije),
!" ALL (vai za sve navedene privilegije),
!" RESOURCE (omoguuje korisniku kreiranje objekata baze podataka, kao to su: tabele,
indeksi, klasteri),
!" DBA (obavlja administrativne zadatke, kao to su: CREATE TABLESPACE i CREATE
ROLLBACK SEGMENT),
!" DBA privilegijom korisnik moe definisati:
Ako bi trebalo da se da nekom drugom privilegija za samo SELECT nad tabelom RADNIK, i
142
alempije@beotel.yu
Privilegije se mogu davati i za poglede nad naredbama: SELECT, INSERT, UPDATE i DELETE.
Na primer, ako se ne eli da korisnik ALEMPIJE ima pogled na kolone: PLATA i STIMUL, onda
je bolje da se privilegije ograniavaju na pogled, a ne na tabele.
Prvo se definie pogled na tabelu RADNIK koja ne sadri kolone: PLATA I STIMUL.
CREATE VIEW ZAPS AS
SELECT SIFRAR,PREZIME,SIFRARM,RUKOV,DATUMZ,SIFRAO
FROM RADNIK;
Moe se definisati, kao primer, i pogled nad tabelom RADNIK koja daje podatke samo o
onim zaposlenima sa istim brojem odeljenja koji ima i osoba koja koristi pogled.
CREATE VIEW IMERAD AS
SELECT *
FROM RADNIK
WHERE SIFRAO IN
(SELECT SIFRAO
FROM RADNIK
WHERE PREZIME = USER);
USER definie ime prijavljenog korisnika. Ako CEBIC, koji je u odeljenju 10, pristupio
pogledu moe videti samo zaposlene u odeljenju 10. Ovim pogledom moe se dati korisniku
CEBIC privilegija da vri, npr., auriranje na sledei nain:
GRANT SELECT, UPDATE
ON IMERAD
TO CEBIC;
Ako neki zaposleni pree u drugo odeljenje (polje SIFRAO se menja), novi rukovodilac
automatski dobija pristup podacima dok ga stari rukovodilac gubi.
Kada treba ponititi privilegije koristi se klauzula REVOKE.
Npr., ako se eli oduzeti privilegija korisniku ALEMPIJE za ubacivanje podataka u tabelu
RADNIK pie se:
REVOKE INSERT
ON RADNIK
FROM ALEMPIJE;
Zakljuavanje podataka
Zakljuavanje podataka je mehanizam za upravljanje konkurentnim pristupom podacima i
izvodi se kada korisnik pokua da izvri izmenu nad podacima u bazi podataka.
Zakljuavanje se vri prilikom:
!" sintaksne analize,
!" izvravanja komandi i
alempije@beotel.yu
143
144
alempije@beotel.yu
sama baza podataka oteena, kada se izvodi oporavljanje baze podataka na osnovu
arhivske kopije, ili
!" baza dovedena (nije oteena) u neko nekonzistentno stanje i pomou log-a se
ponitavaju sve nekorektne promene, a same transakcije koje su ih proizvele se ponove.
Da bi se omoguio oporavak baze podataka potrebno je, pre svega, razmotriti koje su to
vrste otkaza:
!" planirani ROLLBACK, tj. naruavanje integriteta u nekoj od transakcija koje program
sam otkriva;
!" otkazi u transakciji (lokalna greka, npr., deljenje nulom);
!" sistemski otkaz koji utie na sve transakcije, ali ne oteuje bazu podataka (npr.,
nestanak struje);
!" fiziko oteenje baze podataka.
Otkazi u transakciji
Ako se transakcija zavri pre naredbe COMMIT ili eksplicitni ROLLBACK, neophodno je da se
izvri automatski ROLLBACK. Proceduru ROLLBACK obavlja Recavery Manager, ponitavajui
sve promene unazad kroz log, dok se u log-u ne dostigne slog koji oznaava poetak
transakcije.
U toku ponitavanja moe doi do otkaza i u tom sluaju ROLLBACK procedura mora
startovati ponovo, pa je i to jedan od uslova da transakcija bude to kraa.
alempije@beotel.yu
145
Otkaz diska
Ako bi dolo do otkaza diska, baza podataka bi se oporavljala na osnovu arhivske kopije i
log-a, obnavljajui sve transakcije od trenutka uzimanja kopije do otkaza. To je veoma
dugotrajan proces i izvodi se, obino, kada nijedna transakcija nije aktivna.
Moe se definisati i tzv. inkrementni dump, odnosno na kopiju se prenose samo oni slogovi
koji su pretrpeli promene poslednjeg uzimanja kopije.
Na osnovu definisanog fizikog dizajna (slika 4.1) u sledeem koraku pristupa se
generisanju eme baze podataka.
146
alempije@beotel.yu
Aktivnost
3.2. Generisanje eme baze podataka
Aktivnost "3.2. Generisanje eme baze podataka" izvodi se na osnovu prethodno uraene
aktivnosti "3.1. Definisanje fizikog dizajna", tj. definisanih elemenata za izabrani SUBP.
emu baze podataka ine fizike tabele, kolone i relacije, koje se, kao to je reeno u
prethodnom poglavlju, u CASE alatu automatski generiu iz logikog modela. Takoe, u
prethodnom poglavlju pokazani su i automatsko kreiranje default tipova podataka za svaku
generisanu kolonu i nain izmene specifikacija kolona (domen i validacija podataka).
Proces generisanja eme baze podataka moe se izvesti na dva naina:
!" direktnim inenjerstvom (forward engineering) i/ili
!" inverznim inenjerstvom (reverse engineering).
Proces generisanja eme baze podataka iz logikog modela podataka naziva se direktni
inenjering. Kada se generie ema baze podataka, entiteti prelaze u tabele, atributi u
kolone, a veze u relacije i definiu se referencijalni integritet, trigeri, procedure, indeksi i
druge osobine koje podrava izabrani SUBP.
Dakle, da bi se generisala baza podataka potrebno je, prvo, izabrati odgovarajuu ciljnu
platformu (SUBP) i potom se logovati na nju (slika 4.3). Kada korisnik loguje na izabranu
platformu, ERwin kreira aktivnu bidirekcionu vezu sa sistemskim katalogom izabranog
servera koja omoguava direktno kreiranje baze podataka. MS ACCESS koristie kao test
SUBP za generisanje eme baze podataka za primer dokumenta "Karton isplata".
Na slici.4.18. prikazani su za MS ACCESS bazu podataka elementi eme koja e se
generisati. ema je struktura baze podataka definisana DDL (Data Definition Language)
skript-fajlom koji e u sledeem poglavlju biti detaljno objanjen.
Inverzni inenjering predstavlja proces dobijanja fizikog i logikog modela iz postojee
fizike baze podataka. Mnogi e se zapitati: "Zato je to potrebno, kad ve postoji kreirana
baza koja odrauje jedan posao". Mora se istai da je najtea i najskuplja faza - odravanje
baze podataka (videti aktivnost: "4.3.Odravanje" ). Pod odravanjem se podrazumevaju
dogradnja i proirivanje prema zahtevima korisnika. Obino, po zavretku "izgradnje"
aplikacije "zaboravlja" se na dokumentaciju, to za posledicu ima otean proces odravanja
baze podataka. Odlaskom programera iz firme, odravanje postaje problem. Da bi se to
prevazilo i da bi se mogla uraditi nadgradnja (uzimajui u obzir i zahteve standarda ISO
9000), postupkom inverznog inenjerstva, od fizike baze podataka dolazi se do polaznog
fizikog i logikog modela, tj. dokumentacije koja nedostaje.
alempije@beotel.yu
147
ERwin omoguava inverzni inenjering sa dvanaest SQL SUBP upravljanja bazom podataka
(AS/400, DB2, Informix, Ingres, NetWare SQL, ORACLE, Progress, Rdb, SQL Base, SQL
Server, SYBASE i WATCOM SQL) i est desktop-sistema za upravljanje bazom podataka
(Microsoft Access, FoxPro, Clipper, dBase III, dBase IV i Paradox, prikazanih na slici 4.3).
Dakle, inverznim inenjerstvom iz postojee fizike baze podataka kreiraju se fiziki i logiki
model i zatim uz pomo CASE alata i editora redizajnira logiki model podataka. Jedan od
proizvoda ovog redizajna je i sistemska dokumentacija. Nakon kreiranja logikog modela
podataka moe se, postupkom reinenjeringa poslovnih procesa, struktura baze prebaciti na
drugu ciljnu platformu (drugi format baze podataka). U ERwin-u se moe na dva naina
izvriti inverzni inenjering fizike baze podataka:
!" direktnom vezom sa ciljnom platformom i
!" otvaranjem i itanjem SQL skript-datoteke.
No, bilo koji nain da se izabere, automatski se kreira novi fiziki model podataka. Ako se
koristi direktna veza sa ciljnom platformom, SQL baza podrava deklaraciju prenesenih
kljueva (FOREIGN KEYS). ERwin prepoznaje jake i slabe veze i podrazumevajue
"rolename" za generisani model podataka. Za DB2, SQL server i SYBASE, ERwin "izvlai" sve
vane informacije o modelu podataka, izuzev podtipova, koji nisu podrani ni od jednog SQL
sistema za upravljanje bazom podataka.
Ako se izabere opcija SQL skript-datoteke, onda ERwin generie atribute gde primarni klju
nije u prvoj koloni. Takoe, moe se pratiti itav postupak inverznog inenjeringa baze, kao
i "on-line" ispravljanje greaka SQL skrpit-datoteke.
Na slici 4.19. prikazan je dekompozicioni dijagram za aktivnost "3.2. Generisanje eme baze
podataka" koja se sastoji od sledeih aktivnosti:
!" Aktivnost 3.2.1. Kreiranje tabela,
!" Aktivnost 3.2.2. Kreiranje indeksa,
!" Aktivnost 3.2.3. Generisanje poslovnih pravila,
!" Aktivnost 3.2.4. Verifikacija eme baze podataka.
148
alempije@beotel.yu
Topologija
mre`e
KREIRANJE Tabele
TABELA
3.2.1
Fizi~ki
dizajn
I1
KREIRANJE
INDEKSA
Indeksi
3.2.2
GENERISANJE Poslovna
ograni~enja
POSLOVNIH
OGRANI^ENJA
3.2.3
VERIFIKACIJA [ema baze
DIZAJNA
podataka
[EME
3.2.4
O1
Slika 4.19. Dekompozicioni dijagram za aktivnost "3.2. Generisanje eme baze podataka"
alempije@beotel.yu
149
Aktivnost
3.2.1. Kreiranje tabela
U okviru aktivnosti "3.2.1. Kreiranje tabela" kreiraju se tabele naredbom CREATE TABLE,
koja definie "praznu" tabelu sa nazivom i imenima kolona sa fizikog modela podataka
datog u ERwin-u. Podaci se kasnije unose INSERT naredbom ili iz razvijene korisnike
aplikacije.
Opis tabela podrazumeva definisanje naziva tabele, naziva kolone (tip podatka i
ogranienje), odreivanje primarnog kljua i, po potrebi, definisanje indeksa po bilo kojoj
koloni ili grupi kolona u tabeli.
Dakle, imena tabela i kolona se automatski preuzimaju iz fizikog modela definisanog u
ERwin-u, no ako se direktno u SUBP definiu imena moraju se potovati sledea uputstva:
!" koristiti opisna imena za tabele, kolone, indekse i druge objekte;
!" biti dosledan u korienju skraenica;
!" koristiti ista imena za opis istih tabela ili kolona;
!" pisati nazive tabela ili kolona u jednini (predlog).
Sintaksa SQL naredbe za kreranje tabela ima sledeu strukturu:
CREATE TABLE tabela (kolona1 tip [ (velicina)] [index1] [, kolona2 tip [ (velicina)] [index2] [, ...]]
[, indexvisekol [, ...]])
Opis
tabela
Naziv tabele
kolona1, kolona2
tip
velicina
Veliina
kolone)
index1, index2
indexvisekol
kolone
karakterima
(za
Text
Korienjem ERwin CASE alata za izabran desktop SUBP MS Access izgenerisana tabela
RADNIK (videti tablice 4.1. i 4.2) ima sledei izgled:
CREATE TABLE
`RADNIK`
150
alempije@beotel.yu
Aktivnost
3.2.2. Kreiranje indeksa
U okviru aktivnosti "3.2.2. Kreiranje indeksa" definiu se indeksi naredbom CREATE INDEX
za odreenu tabelu nad jednom ili vie kolona neke tabele. Indeks sadri po jednu stavku za
svaku razliitu vrednost indeksirane kolone (ili kolona) u tabeli. U svakoj stavci indeksa
pamte se fizike adrese redova koji imaju datu vrednost u indeksiranoj koloni/kolonama.
Indeksi se implicitno koriste u sledeim sluajevima:
!" kada se pretrauju tabele po vrednostima indeksiranih kolona (WHERE uslov) i
!" kada se izdvajaju redovi tabele u redosledu vrednosti indesiranih kolona.
Indeks omoguava direktan pristup redovima i tako smanjuje vreme pristupa. Mogu se
kreirati vie indeksa za razne kombinacije kolona u istoj tabeli, ali svaki indeks uveava
vreme auriranja.
Dakle, na performanse baze podataka veoma utie nain na koji su podaci fiziki smeteni,
tj. memorisani. Kreiranje indeksa pomae SUBP da locira specifine redove u bazi na isti
nain kao indekse u knjizi koji pomau da se brzo lociraju specifine informacije.
Sintaksa kojom se kreira indeks je:
CREATE [UNIQUE] INDEX Index_ime
ON tabela (kolona [,<kolona2>...])
Argument
Opis
Index_ime
Tabela
kolona
Na taj nain se spreava ubacivanje ili modifikovanje reda u kome vrednost ide u
indeksirano polje, duplicirajui bilo koju vrednost polja.
Indeksa nad tabelom moe biti koliko se eli, a moe se i eksperimentisati da bi se nalo
najpovoljnije reenje. Preporuuje se da se male tabele ne indeksiraju, ve da se to ini
samo sa velikim tabelama.
alempije@beotel.yu
151
Aktivnost
3.2.3. Generisanje poslovnih ogranienja
Kroz aktivnost "3.2.3. Generisanje poslovnih ogranienja" treba sagledati potrebu
prilagoavanja definisanog fizikog modela za konkretno realizovanu bazu podataka.
Ogranienja mogu biti definisana za tabele ili kolone i specificirana kao deo CREATE ili
ALTER TABLE komande u okviru SQL-a. Svrha ogranienja je da se definie rang validnih
vrednosti. Svaka INSERT, UPDATE, ili DELETE naredba se proverava vaeim ogranienjem.
Ogranienje mora biti zadovoljeno da bi naredba uspela.
Generalno govorei, ogranienjima se definiu domeni kolona, pravila referencijalnog
integriteta (RI), pravila integriteta tabela, kao i dodatna pravila poslovanja.
Ogranienje se definie kljunom rei CONSTRAINT i nazivom ime_ogranicenja kojim se
specificira ime ogranienja (da li je u pitanju primarni ili preneseni klju).
Sintaksa SQL za definisanje ogranienja je za:
CONSTRAINT ime_ogranicenja
{PRIMARY KEY (kolonapk1[, kolonapk2 [, ...]]) |
UNIQUE (kolonau1[, kolonau2 [, ...]]) |
FOREIGN KEY (kolonafk1 [, kolonafk2]...)
REFERENCES tabelafk (kolona1[,kolona2]...)
Opis
ime_ogranicenja
kolonapk1, kolonapk2
kolonau1, kolonau2
kolonafk1, kolonafk2
tabelafk
fkolona1, fkolona2
152
Naziv ogranienja
alempije@beotel.yu
Ako je u pitanju primarni klju, definie se ime ogranienja kao, npr., za tabelu RADNIK,
XPKRADNIK. U nastavku se definie kljuna re PRIMARY KEY, kojom se odreuje naziv
kolone kao primarni klju (Sifrar) tako da se dobije za primer tabele RADNIK sledei oblik
ogranienja:
CONSTRAINT `XPKRADNIK` PRIMARY KEY (`Sifrar`),
Dakle, primarni klju je odabran kao jedinstven klju, ija nijedna kolona ne sme da poprimi
NULL vrednost ni u jednom redu. Kada se ovom klauzulom definie primarni klju tabele,
SUBP u pozadini implicitno kreira jedinstven indeks i dodatna NOT NULL ogranienja nad
svakom kolonom primarnog kljua.
Kompletna definicija tabele podrazumeva definisanje primarnog kljua. Mora se imati u vidu
da se vrednosti kolona primarnog kljua nikada ne menjaju (auriraju), ve postupak
auriranja treba posmatrati kao brisanje reda i dodavanje reda sa novom vrednou
primarnog kljua.
Ogranienje UNIQUE
Ogranienje UNIQUE definie jedinstven klju tabele nad jednom ili vie kolona, tj. svaki red
mora imati razliitu vrednost za kolonu, a svaka kolona mora biti deklarisana kao NOT NULL
i ne mora biti primarni klju.
alempije@beotel.yu
153
CHECK ogranienje
U CHECK ogranienju, za kolone, uslovi se moraju pozivati na kolone na koje se ogranienje
ve odnosilo. Za CHECK ogranienja tabele uslovi se mogu odnositi na vie kolona. Po
ANSI/ISO standardu, CHECK ogranienje je narueno samo ako je izraz laan, tj. istinite i
nepoznate vrednosti ne naruavaju ogranienje.
Prikaz ogranienja za Oracle SUBP za primer nad tabelom RADNIK ima sledei izgled:
154
alempije@beotel.yu
JEZIK
Sifraj: Text(2)
RADNOM
Nazivj: Text(20)
Sifrarm: Text(2)
Nazivrm: Text(20)
D:R
U:R
I:R
U:R
CERTIFIKAT
Sifrar: Text(6)
Sifraj: Text(2)
I:R
U:R
MUSKARAC
Sifrar: Text(6)
Sluziov: Text(2)
I:R
U:R
P
D:R
U:R
I:R
U:R
Stepen: Text(10)
RADNIK
Sifrar: Text(6)
D:R
U:R
D:C
U:C
Pol
I:R
U:R
ZENA
Sifrar: Text(6)
Prezimed: Text(20)
D:SN
U:SN
ODELJENJE
D:SN
U:SN Sifrao: Text(2)
Nazivo: Text(20)
Mesto: Text(20)
I:SN
U:SN
D:C
U:C
I:SN
U:SN
I:R
U:R ISPLATA
Sifrar: Text(6)
rbr: Text(2)
D:C
U:C
Vrsta
I:R
U:R
KONSULTANT
Sifrar: Text(6)
Brojs: Integer
Datumis: Date/Time
Iznos: Double
I:R
U:R
REDOVNI
Sifrar: Text(6)
Vrstap: Text(18)
Model baze
podataka
primera
dokumenta
"Karton
isplata"
realizovan u
MS ACCESSu
Slika 4.20. Fiziki model podataka i model baze podataka za dokument "Karton isplata"
alempije@beotel.yu
155
razliitim tabelama baze podataka. Relacije izmeu polja tabela se uspostavljaju po slinosti
(jednakosti) naziva, tipa i veliine polja. Na slici 4.21. prikazana je relacija izmeu tabela:
RADNIK i ODELJENJE.
Slika 4.21. MS ACCESS relacija izmeu tabela: RADNIK i ODELJENJE sa slike 4.20.
156
alempije@beotel.yu
RADNIK
I:SN
U:SN
MS ACCESS
zaposljava
D:SN
U:SN
ODELJENJE
RADNIK
ODELJENJE
Na slici 4.22. dat je uporedni prikaz kardinalnosti veza i referencijalnog integriteta u ERwinu i generisanih kardinalnosti i relacija u MS ACCESS-u.
Referencijalni integritet fizikog modela definisanog u ERwin-u ima sledee operacije:
Unos (Insert) omoguuje izvoenje sledeih akcija:
Tabela RADNIK
Set
Null
Set
Null
Set
Null
Tabela RADNIK
Set
Null
alempije@beotel.yu
157
RADNIK
U:R
D:R
U:R
RADNIK
MS ACCESS
pripada
RADNOM
RADNOM
Restrict
Restrict
Restrict
Tabela RADNIK
Restrict
MS ACCESS
prima
I:R
U:R
ISPLATA
158
D:C
U:C
RADNIK
RADNIK
ISPLATA
alempije@beotel.yu
Restrict
Cascade
Cascade
Tabela ISPLATA
Restrict
alempije@beotel.yu
159
ERwin
MS ACCESS
RADNIK
D:C
U:C
Pol
1
I:R
U:R
MUSKARAC
I:R
U:R
RADNIK
MUSKARAC
ZENA
Tabela ZENA
Cascade
160
alempije@beotel.yu
ERwin
MS ACCESS
RADNIK
D:C
U:C
I:R
U:R
KONSULTANT
Vrsta
I:R
U:R
RADNIK
REDOVNI
REDOVNI
Tabela REDOVNI
alempije@beotel.yu
Cascade
161
CERTIFIKAT
MS ACCESS
je dat
D:R
U:R
RADNIK
RADNIK
CERTIFIKAT
Restrict
Restrict
Restrict
Tabela
CERTIFIKAT
Restrict
162
alempije@beotel.yu
ERwin
MS ACCESS
I:R
CERTIFIKAT
je dat
D:R
U:R
U:R
JEZIK
RADNIK
ISPLATA
Restrict
Restrict
Restrict
Tabela
CERTIFIKAT
Restrict
alempije@beotel.yu
163
MS ACCESS
I:SN
U:SN
rukovodi
RADNIK
RADNIK_1
D:SN
U:SN
RADNIK
je rukovodilac /
je rukovodjen
Set Null
Set Null
Set Null
Tabela RADNIK
Set Null
164
alempije@beotel.yu
Aktivnost
3.2.4. Verifikacija eme baze podataka
Aktivnost "3.2.4. Verifikacija eme baze podataka" verifikuje za dosadanji primer,
dokument "Karton isplata", gde se za kreirane tabele unose test-podaci.
JEZIK
Sifraj: Text(2)
RADNOM
Sifrarm: Text(2)
Nazivj: Text(20)
Nazivrm: Text(20)
D:R
U:R
I:R
U:R
CERTIFIKAT
Sifrar: Text(6)
Sifraj: Text(2)
I:R
U:R
Stepen: Text(10)
I:R
U:R
MUSKARAC
Sifrar: Text(6)
Sluziov: Text(2)
Pol
RADNIK
D:R
U:R
Sifrar: Text(6)
Prezime: Text(20) (IE1)
I:R Ime: Text(20) (IE1)
U:R Sifrarm: Text(2)
JMBG: Text(13) (AK2)
P
D:R rukov: Text(6)
U:R Datumz: Date/Time
Plata: Double
D:C Stimul: Double
U:C Sifrao: Text(2)
Pol: Text(1)
vrsta: Text(1)
I:R
U:R
ZENA
Sifrar: Text(6)
Prezimed: Text(20)
D:SN
U:SN
ODELJENJE
D:SN
U:SN Sifrao: Text(2)
Nazivo: Text(20)
Mesto: Text(20)
I:SN
U:SN
D:C
U:C
I:SN
U:SN
I:R
U:R ISPLATA
Sifrar: Text(6)
rbr: Text(2)
D:C
U:C
Vrsta
I:R
U:R
KONSULTANT
Sifrar: Text(6)
Brojs: Integer
Datumis: Date/Time
Iznos: Double
I:R
U:R
REDOVNI
Sifrar: Text(6)
Vrstap: Text(18)
U sledeim tabelama bie prikazan SQL skript generisanih tabela u MS ACCESS-u, kao i
izvrena verifikacija eme unoenjem test-podataka. Na slici 4.30. prikazan je fiziki model
koji je korien da ERwin izgenerie eme baze podataka, tj. odgovarajue tabele.
alempije@beotel.yu
165
ODELJENJE
CREATE TABLE `ODELJENJE`(
`Sifrao` TEXT (2),
`Nazivo` TEXT (20),
`Mesto` TEXT (20),
CONSTRAINT `XPKODELJENJE`
PRIMARY KEY (`Sifrao`));
CREATE UNIQUE INDEX
`PrimaryKey` ON`ODELJENJE`
(`Sifrao`);
166
alempije@beotel.yu
RADNIK
Sifra
827369
827499
827521
827566
827654
827698
827782
827788
827839
827844
827876
827900
827902
827934
Prezime
STEVIC
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
ALIMPIC
JAKIC
FILIPIC
MILIC
Ime
ZORAN
MILAN
MILOS
MIRA
ZORA
IVAN
GORAN
ZORAN
STEVA
MIRA
PETAR
VLADA
DRAGA
DRAGA
Sifr
01
02
02
03
02
03
03
04
05
02
01
01
04
01
JMBG:
1411952171033
2503964345612
1130497055432
1130497056435
1140496055444
1405987055455
1203970654566
1304954676755
1312952122344
1312954342122
2503976343566
1211965457231
1210970534221
0706956456465
rukov:
827902
827698
827698
827839
827698
827839
827839
827566
827839
827698
827788
827698
827566
827782
Datumz
28/03/98
28/03/98
28/03/98
28/04/90
12/06/88
15/11/89
11/06/80
23/10/91
06/12/87
08/03/78
09/05/92
28/03/90
20/11/96
28/03/93
Plata Stim Si
8000
600 2
1600
600 3
1250
600 3
2975
700 2
1250 1000 3
2850
800 3
2450
500 1
3000
650 2
5000
600 1
1500
600 3
1100
780 2
9500
900 3
3000 1000 2
1300
790 1
P
M
M
M
Z
Z
M
M
M
M
Z
M
M
M
M
Vr
2
2
1
1
2
2
2
2
1
2
2
Nazivo
PRIPREMA
RAZVOJ
PRODAJA
PROIZVODNJA
Mesto
PANCEVO
NOVI SAD
BEOGRAD
PAZOVA
JEZIK
CREATE TABLE `JEZIK` (`Sifraj`
TEXT (2),
`Nazivj` TEXT (20),
CONSTRAINT `XPKJEZIK`
PRIMARY KEY (`Sifraj`));
CREATE UNIQUE INDEX
`PrimaryKey` ON `JEZIK`
(`Sifraj`);
alempije@beotel.yu
JEZIK
Nazivrm
PROJEKTANT
REFERENT
DIREKTOR
TEHNOLOG
GEN DIR
01
02
03
04
Sifraj
Nazivj
ENGLESKI
NEMACKI
RUSKU
FRANCUSKI
167
ISPLATA
Sifraj
01
02
03
01
03
ISPLATA
Stepen
Cita
Govori
Pise
Cita
Cita
Sifrar
827654
827654
827698
827698
rbr
01
02
01
02
Datumis Iznos
01/01/98
450
08/03/98
1500
01/02/98
2000
01/06/98
1000
168
KONSULTANT
CREATE TABLE `KONSULTANT`
(`Sifrar` TEXT (6),
`Brojs` SHORT,
CONSTRAINT `XPKE/9`
PRIMARY KEY (`Sifrar`),
CONSTRAINT `v1`
FOREIGN KEY (`Sifrar`)
REFERENCES `RADNIK`
(`Sifrar`));
CREATE UNIQUE
INDEX`PrimaryKey` ON
`KONSULTATNT` ( `Sifrar`);
alempije@beotel.yu
REDOVNI
Sifrar
827654
827698
827782
827788
Brojs
10
5
15
12
Sifrar
827369
827499
827521
827566
Vrstap
01
02
01
03
MUSKARAC
CREATE TABLE `MUSKARAC` (
`Sifrar` TEXT (6),
`Sluziov`TEXT (2),
CONSTRAINT `XPKMUSKARAC`
PRIMARY KEY (`Sifrar`),
CONSTRAINT `v2`
FOREIGN KEY (`Sifrar`)
REFERENCES`RADNIK`
(`Sifrar`));
CREATE UNIQUE INDEX
`PrimaryKey` ON `MUSKARAC`
(`Sifrar`);
MUSKARCI
Prezimed
Vasic
Savic
Miric
Sifrar
827698
827782
827788
827369
827499
Sluziov
DA
DA
NE
DA
DA
Na osnovu generisane eme i verifikovanih tabela za fiziki model sa slike 4.29. pristupa se
izradi odgovarajue aplikacije kroz aktivnost "3.3 Specifikacija aplikacije", to je predmet
daljih razmatranja.
Na osnovu prethodno izvedenih aktivnosti (slika 4.1) u sledeem koraku pristupa se izradi
aplikacije.
alempije@beotel.yu
169
Aktivnost
3.3. Izrada aplikacije
Aktivnost "3.3. Izrada aplikacije" izvodi se na osnovu prethodno uraene eme baze
podataka, kao i konkretnih zahteva buduih korisnika. Specifikacija forme se izvodi za
sledee aktivnosti (slika 4.31):
!" Aktivnost 3.3.1. Definisanje menija,
!" Aktivnost 3.3.2. Definisanje izgleda forme,
!" Aktivnost 3.3.3. Definisanje upita i
!" Aktivnost 3.3.4. Definisanje izvetaja.
C1
Topologija
mre`e
Informacije
Definisan
od korisnika DEFINISANJE meni
MENIJA
I2
3.3.1
DEFINISANJE Definisane
forme
IZGLEDA
FORME
I1
[ema baze
podataka
3.3.2
DEFINISANJE
Upiti
UPITA
Izvo|a~ki
projekat
O1
3.3.3
DEFINISANJE
IZVE[TAJA
3.3.4Izve{taji
Aktivnost "3.3. Izrada aplikacije" pravi se uz sve specifinosti konkretnog SUBP. Meutim, u
okviru ove aktivnosti treba opisati zajednike postavke koje se moraju potovati bez obzira
na izabrani SUBP. Kada treba prikazati izgled odgovarajuih objekata, koristi se desktop
SUBP MS ACCESS.
Izrada aplikacije, sa druge strane, neposredno je vezana i za klijent/server arhitekturu, i to
u zavisno od toga da li je u pitanju dvoslojna ili troslojna arhitektura.
U dvoslojnoj klijent/server arhitekturi definie se jedan server u kojoj se nalazi baze
podataka i SUBP (videti glavu 4.2) i klijent-strana gde su definisane klijentove (korisnike)
aplikacije, pa se izrada aplikacije izvodi na klijent-strani.
Troslojna arhitektura sadri server kao u prethodnom sluaju, ali i tzv. aplikativni server koji
sadri zajednike aplikacije koje napada klijent; trei sloj je klijent gde se definiu aplikacije
koje su specifine za konkretnog korisnika i nalaze se na klijent-strani. Kako se i u jednom i
drugom sluaju aplikacije odnose na korisnika, to se i definiu kao aplikacija klijent.
Aplikacija klijent: radi sa redovima iz tabele; poseduje interfejs prema korisniku, tzv. GUI
(Graphical User Interface); izvrava logiku aplikacije; proverava ispravnost ulaznih
podataka; trai prijem podataka od servera.
Aplikacija klijent se razmatra sa aspekta:
!" korienja same aplikacije klijent,
170
alempije@beotel.yu
Aktivnost
3.3.1. Definisanje menija
Definisani meniji treba da prate scenario odvijanja aktivnosti budueg korisnika. Za
definisanje menija moraju se koristiti odgovarajua pravila za strukturiranje kojima se
definie mogui redosled pozivanja operacija.
Meniji treba da se definiu na takav nain:
!" da svaki meni ima koncizan naslov na vrhu;
!" da meniji koji zauzimaju ceo ekran budu balansirani;
!" da se razdvajaju liste opcija na vie celina;
!" da se ogranii broj izbora u meniju na jedan ekran;
!" da se razmisli o selekciji menija;
!" da se omogui naputanje menija bez izbora bilo koje opcije;
!" da se koriste aktivne imenice za opis opcija menija;
!" da se koriste nedvosmislene ikone;
!" da se izbegava esto naglaavanje;
!" da se omogui korienje i malih i velikih slova,
!" da se proveri tastatura pre upotrebe;
!" da se izabere jasna, optepoznata, kratka re za komande;
alempije@beotel.yu
171
Aktivnost
3.3.2. Definisanje izgleda forme
Ekranske forme su osnovni tip objekata u veini SUBP i treba da omogue korisniku
predstavljanje podataka iz baze i unos podataka u bazu. Forme u sebi mogu imati veliki broj
drugih objekata (kontrola). Veina SUBP, koji za osnovu imaju MS WINDOWS, podrava tzv.
wizard metodologiju za kreiranje formi. Specifinosti u izradi formi nisu predmet
razmatranja ove knjige, pa se itaoci upuuju na literaturu, u zavisnosti koji su SUBP
izabrali. Ovde e biti definisane neke opte postavke koje se moraju potovati prilikom
definisanja ekranskih formi.
Dakle, ekranske forme treba da ispune sledee karakteristike:
!" opte kakrakteristike:
!" naglaavanje:
ne preterivati sa naglaavanjem;
172
alempije@beotel.yu
Na slici 4.32. prikazan je primer realizovane forme za dokument "Karton isplata". Forma je
podeljena u jednu glavnu formu i dve podforme. U glavnoj formi definiu se ekranska polja
o radnicima, kao to su: SIFRAR, PREZIME, IME, PLATA, STIMUL i DATUMZ koji odgovaraju
definisanim kolonama u okviru tabele RADNIK. Ekransko polje SIFRAR odgovara koloni
Sifrar u tabeli RADNIK koji je definisan kao primarni klju.
U okviru glavne forme definisana su ekranska polja: SIFRAO i SIFRARM kao tzv. ComboBox
za prenesene kljueve Sifrao i Sifrarm u tabeli RADNIK. ComboBox nudi listu za izbor iz
tabela: SIFRARM i ODELJENJE, gde su Sifrao i Sifrarm primarni kljuevi (videti sliku 4.32).
U okviru glavne forme realizovane su specijalizacije Pol i Vrsta. Prva specijalizacija Pol
zahteva obavezan unos podatka o radniku, dok druga specijalizacija Vrsta (Tip zaposlenog
sa slike 4.32) ne zahteva unos, ve se auriranje radi po potrebi (default NULL opcija).
Definisane su i dve podforme vezane za: isplate radnika i stepen poznavanja jezika
(slika
4.32). Podforma sadri vezu sa glavnom formom. Veza izmeu polja glavne forme i
podforme ostvaruje se preko veznih polja sa glavne forme i veznih polja na podformi. Za
podformu isplate radnika vezno polje je Sifrar koje je definisano u glavnoj formi i podformi a
koje je prikazano i u fizikom modelu podataka.
Podforma stepen poznavanja jezika, vezana je za glavnu formu preko polja Sifrar sa
tabelom CERTIFIKAT. U okviru ove podforme je definisano ekransko polje JEZIK koji
uspostavlja vezu sa tabelom JEZIK preko ComboBox za polje Sifraj.
Fiziki
model
podataka
za
primer
dokumenta
"Karton
isplata"
alempije@beotel.yu
JEZIK
Sifraj
RADNOM
D:R
Sifrarm
U:R
pripada
Nazivrm
Nazivj
vazi
D:R
I:R
U:R
U:R
CERTIFIKAT
I:R
Sifrar (FK)
U:R je dat
Sifraj (FK)
Stepen
I:R
U:R
MUSKARAC
Sifrar (FK)
Sluziov
RADNIK
Sifrar
I:R
U:R
P
D:R
U:R
D:C
U:C
Pol
I:R
U:R
ZENA
Sifrar (FK)
Prezimed
I:SN
U:SN
Prezime (IE1)
D:C
Ime (IE1)
U:C
Sifrarm (FK)
JMBG (AK2) I:SN
U:SN
rukov (FK)
Datumz
Plata
D:C
Stimul
U:C
Sifrao (FK)
Pol
vrsta
D:SN
U:SN
rukovodi
zaposljava
prima
ODELJENJE
D:SN
U:SN Sifrao
Nazivo
Mesto
I:R
U:R ISPLATA
Sifrar (FK)
rbr
Vrsta
I:R
U:R
KONSULTANT
Sifrar (FK)
Brojs
Datumis
Iznos
I:R
U:R
REDOVNI
Sifrar (FK)
Vrstap
173
Ekranska
forma za
dokument
"Karton
isplata"
174
alempije@beotel.yu
Aktivnost
3.3.3. Definisanje upita
U okviru aktivnosti "3.3.3. Definisanje upita" pokazan je na dosadanjem primeru fiziki
realizovan model podataka u SUBP. Predmet posmatranja je set zajednikih komandi i
funkcija definisanih ISO standardom za SQL i realizovanih u razliitim SUBP. Upiti su
testirani u okviru MS ACCESS-a. Specifinosti SQL za MS ACCESS nisu razmatrane ve se
itaoci upuuju na literaturu4.
Za prikaz naina postavljanja upita koristi se deo modela baze podataka sa slike 4.20.
prikazan na slici 4.33.
Pozivanje i dobijanje eljenih podataka iz baze podataka su najee SQL operacije. Ovaj
postupak se naziva QUERY (query znai pitanje ili upit), a izvrava se SELECT naredbama.
Osnovna podela upita je na:
!" upiti nad jednom tabelom i
!" upiti nad vie tabela.
SELECT izvlai redove i kolone iz jedne ili vie tabela. U stvari, SELECT naredba je, sama po
sebi, upit, a moe biti i podupit kada je klauzula u drugoj naredbi.
SELECT klauzula se uvek prva upisuje i odmah iza nje sledi FROM klauzula i njome se
pretrauju informacije iz baze podataka, implementirajui sve operatore relacione algebre.
Klauzule moraju biti prikazane jedna iznad druge kada su koriene zajedno.
Oigledno je da SELECT odgovara operaciji projekcije u relacionoj algebri. Iskaz FROM se
moe smatrati ekvivalentnim operaciji Dekartovog proizvoda (u relacionoj algebri), a iskaz
WHERE (o emu e biti vie rei kasnije) ekvivalentnim operaciji selekcije u relacionoj
algebri, jer uslov zadovoljavaju selektovane n-torke u rezultatu (videti prilog br. 1).
Prvo treba pogledati podatke u tabeli ODELJENJE, a potom i u tabeli RADNIK.
Ako se izlistaju svi redovi i sve kolone tabele ODELJENJE, upit koji e dati eljeni rezultat je:
alempije@beotel.yu
175
NAZIVO
PRIPREMA
RAZVOJ
PRODAJA
PROIZVODNJA
MESTO
PANCEVO
NOVI SAD
BEOGRAD
PAZOVA
U ovom primeru upita izlistana su imena svih kolona tabele ODELJENJE (SIFRAO, NAZIV,
MESTO) SELECT naredbom.
Meutim, mnogo jednostavnije je da se izlistaju sve kolone neke tabele korienjem znaka
"*", odnosno (SELECT *), umesto da se nabrajaju sve kolone tabele pojedinano.
Na primeru tabele RADNIK to izgleda ovako:
SELECT *
FROM RADNIK
176
alempije@beotel.yu
PREZIM
STEVIC
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
ALIMPIC
JAKIC
FILIPIC
MILIC
IME
ZORAN
MILAN
MILOS
MIRA
ZORA
IVAN
GORAN
ZORAN
STEVA
MIRA
PETAR
VLADA
DRAGA
DRAGA
SI
0
0
0
0
0
0
0
0
0
0
0
0
0
0
JMBG
141195217103
250396434561
113049705543
113049705643
114049605544
140598705545
120397065456
130495467675
131295212234
131295434212
250397634356
121196545723
121097053422
070695645646
RUKO
827902
827698
827698
827839
827698
827839
827839
827566
827839
827698
827788
827698
827566
827782
DATUMZ
28/03/98
28/03/98
28/03/98
28/04/90
12/06/88
15/11/89
11/06/80
23/10/91
06/12/87
08/03/78
09/05/92
28/03/90
20/11/96
28/03/93
PLAT STIM SI
8000
600 2
1600
600 3
1250
600 3
2975
700 2
1250 1000 3
2850
800 3
2450
500 1
3000
650 2
5000
600 1
1500
600 3
1100
780 2
9500
900 3
3000 1000 2
1300
790 1
P
M
M
M
Z
Z
M
M
M
M
Z
M
M
M
M
V
2
2
1
1
2
2
2
2
1
2
2
Ako korisnik ne eli da vidi sve kolone tabele, onda u SELECT klauzulu ukljuuje imena
samo onih kolona koje eli da vidi, kao to je prikazano sledeim upitom.
SELECT NAZIVO, SIFRAO
FROM ODELJENJE
SIFRA
10
20
30
40
Iako se u tabeli RADNIK nalazi ukupno etrnaest radnih mesta koja odgovaraju broju
radnika, u ovoj tabeli se nalazi samo pet razliitih radnih mesta.
Rezultat SQL upita je:
SIFRAR
01
02
03
04
05
alempije@beotel.yu
177
Prezim
ALAGIC
VUKIC
MARTIC
BOBIC
TUBIC
JAKIC
Ime
MILAN
MILOS
ZORA
IVAN
MIRA
VLADA
Plata
16000
12500
12500
28500
15000
9500
Sifrao
30
30
30
30
30
30
Treba zatim posmatrati i primer selektovanja kolona: Sifrar, Prezime, Ime, Plata, Sifrao
tabele RADNIK koji NE rade u odeljenju 30, operatorom negacije NOT i operatorom
poreenja "=":
SELECT Sifrar, Prezime, Ime, Plata, Sifrao
FROM RADNIK
WHERE NOT ( SIFRAO = '30')
178
Prezime
STEVIC
JOVIC
CEBIC
SUSIC
KLJAKIC
ALIMPIC
FILIPIC
MILIC
Ime
ZORAN
MIRA
GORAN
ZORAN
STEVAN
PETAR
DRAGAN
DRAGAN
Plata:
8000
29750
24500
30000
50000
11000
30000
13000
Sifrao
20
20
10
20
10
20
20
10
alempije@beotel.yu
PREZIM PLATA
VUKIC
12500
MARTIC
12500
MILIC
13000
Operator NOT BETWEEN omoguava da se izaberu redovi koji su van vrednosti u nekom
rasponu, a koje je korisnik specificirao.
Na primer, treba videti listu svih zaposlenih RADNIKa, ija plata NIJE u rasponu 12000 i
14000.
SELECT PREZIME, PLATA
FROM RADNIK
WHERE PLATA NOT BETWEEN 12000 AND 14000
PLATA
8000
16000
29750
28500
24500
30000
50000
15000
11000
9500
30000
NAZIVO
PRIPREMA
PRODAJA
MESTO
PANCEVO
BEOGRAD
NOT IN operator omoguava da se izaberu redovi koji NE sadre vrednost koja je jednaka
alempije@beotel.yu
179
Naziv
RAZVOJ
PROIZVODNJA
Mesto
NOVI SAD
PAZOVA
U ovom primeru korien je SQL LIKE operator, da bi se SQL usmerio na pozivanje svih onih
redova iz tabele RADNIK, ija kolona PREZIME sadri vrednost koja odgovara LIKE klauzuli.
U navedenom uzorku to je ('?U*'). Upitnik (?) oznaava poziciju jednog karaktera, a znak *
oznaava bilo koji niz nula ili niz vie karaktera.
Rezultat SQL upita je:
PREZIM
VUKIC
SUSIC
TUBIC
Treba, meutim, pokazati NOT LIKE operator i na primeru spiska svih Radnika koji nemaju
"U" kao drugo slovo u prezimenu.
SELECT PREZIME
FROM RADNIK
WHERE PREZIME NOT LIKE '?U*'
180
alempije@beotel.yu
Prezime Ime
ALAGIC MILAN
ALIMPIC PETAR
JAKIC
VLADA
Vrsta:
Korienjem IS NOT NULL operatora mogu se selektirati redovi koji su NOT NULL. U primeru
je dat spisak svih radnika kojima je definisana kolona Vrsta.
SELECT Prezime, Ime, Vrsta
FROM RADNIK
WHERE VRSTA IS NOT NULL;
Prezime
STEVIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
FILIPIC
MILIC
Ime
ZORAN
MILOS
MIRA
ZORA
IVAN
GORAN
ZORAN
STEVAN
MIRA
DRAGA
DRAGA
Vrsta
2
2
1
1
2
2
2
2
1
2
2
Viestruki uslovi pretraivanja se vezuju za re AND (SIFRARM = '03' AND PLATA > 28000).
AND konektor znai da eljeni podatak mora da "sretne" sve navedene uslove pretraivanja,
pre nego to SQL da traeni red. U WHERE klauzulu pomou AND konektora moe se dodati
neogranieni broj ovakvih uslova.
Rezultat SQL upita je:
PREZIME
JOVIC
BOBIC
SIFRARM
03
03
PLATA
29750
28500
Alternativni uslov pretraivanja, tzv. OR konektor selektuje redove koji udovoljavaju bilo
kojem od vie datih uslova.
Na primer, pretpostavka je da se u dosadanjem primeru eli dobiti i lista DIREKTORA (03),
ili svih onih koji zarauju vie od 28000 dinara.
SELECT PREZIME, SIFRARM, PLATA
FROM RADNIK
WHERE SIFRARM ='03'
OR PLATA > 28000
U ovom primeru uslov pretraivanja se povezuje sa reju OR (SIFRARM = '03' OR PLATA >
28000). OR znai da ako naredni podatak udovoljava jednom od uslova, SQL e izdati
eljeni red.
alempije@beotel.yu
181
SIFRAR PLATA
03
29750
03
28500
03
24500
04
30000
05
50000
04
30000
Na primer, treba kreirati tabelu PRIMANJA ako se iz tabele RADNIK selektuju prezime i suma
plate i stimulacije za sve Radnike sa SIFRARM= '02'.
SELECT PREZIME,PLATA+STIMUL AS UKUPNO
INTO PRIMANJA
FROM RADNIK
WHERE SIFRARM = '02'
182
UKUPNO
16600
13100
13500
15600
alempije@beotel.yu
PLATA
13000
11000
9500
8000
16000
15000
12500
12500
29750
28500
24500
30000
30000
50000
PREZIME
MILIC
ALIMPIC
JAKIC
STEVIC
ALAGIC
TUBIC
MARTIC
VUKIC
JOVIC
BOBIC
CEBIC
FILIPIC
SUSIC
KLJAKIC
alempije@beotel.yu
183
tabelu.
Sintaksa ove klauzule ima sledei izgled:
SELECT [DISTINCT] kolona [,kolona...]
FROM tabela
[WHERE uslov-selekcije]
[GROUP BY izraz {,izraz}]
ORDER BY (izraz|pozicija)[ASC | DESC]
Na primer, treba pogledati sledei primer:
SELECT SIFRAO, MAX (PLATA)
FROM RADNIK
GROUP BY SIFRAO
MAX
50000
30000
28500
Svaki red dobijenog rezultata reprezentuje jednu grupu redova, memorisanu u tabeli
RADNIK, tj. svaki je red tabele RADNIK stavljen u jednu od tri grupe.
Dakle, GROUP BY klauzula omoguuje dobijanje sumarnih informacija za svaku razliitu
vrednost kolone po kojoj se vri grupisanje.
AVG
COUNT (*)
29125
2
30000
2
50000
1
184
alempije@beotel.yu
Sifrarm:
01
02
03
04
05
AVG
10375
14000
27583
30000
50000
Sifrao
20
30
AVG (PLATA)
18125.2
15666.7
Grupni upiti
Grupni upiti vraaju rezultate koji su karakteristika neke grupe redova umesto jednog reda.
Redovi koji zadovoljavaju uslov selekcije predstavljaju grupu nad kojom se izraunava jedna
ili vie grupnih funkcija.
Na primer, korienjem COUNT funkcije treba izraunati broj zaposlenih radnika u odeljenju
20:
SELECT COUNT (*)
FROM RADNIK
WHERE SIFRAO = '20'
Pored grupne funkcije COUNT, mogu se definisati i sledee grupne funkcije nad numerikim
vrednostima:
!" AVG
!" SUM
!" MIN
!" MAX
alempije@beotel.yu
185
Tako, ako se eli izraunati srednja aritmetika vrednost plata radnika, treba pisati:
SELECT AVG (PLATA)AS SREDNJA_ARIT_VRED
FROM RADNIK
MIN (PLATA)
12500
Funkcija MAX (DISTINCTALLexpr) izraunava maksimalnu vrednost izraza expr.
Tako, ako se eli izraunati maksimalna plata radnika za SIFRARM = '02', treba pisati:
SELECT MAX (PLATA)
FROM RADNIK
WHERE SIFRARM='02'
186
alempije@beotel.yu
PLATA
8000
Za podupit sa povratkom jednog reda koriste se komparacioni ili logiki operatori: =, <, >,
<= i dr.
Skriveni podupit se obrauje pre glavnog upita, jer je rezultat podupita potreban da bi se
naao rezultat glavnog upita. Druga SELECT naredba u ovom primeru, u okviru skrivenog
podupita, izdvojila je vrednost 03, poto je to zanimanje radnika JOVIC u tabeli RADNIK.
Rezultat SQL upita je:
PREZIM
JOVIC
BOBIC
CEBIC
SIFRAR
03
03
03
Na primer, ako se ele liste svih radnika koji zarauju vie od proseka treba napisati:
SELECT PREZIME,PLATA
FROM RADNIK
WHERE PLATA >
(SELECT AVG (PLATA)
FROM RADNIK)
alempije@beotel.yu
187
PREZIME PLATA
JOVIC
29750
BOBIC
28500
CEBIC
24500
SUSIC
30000
KLJAKIC
50000
FILIPIC
30000
Kao to se u gornjim primerima vidi, i za podupite sa povratkom vie redova mogu se
koristiti komparacioni ili logiki operatori: =, <, >, <= i dr.
Podupit sa operatorom IN
Podupit se moe upotrebiti i umesto liste vrednosti iza operatora IN. U tom sluaju podupit
moe da vraa vie redova, od kojih se svaki posmatra kao pojedina vrednost u listi.
Na primer, definisana lista Radnika u odeljenju 10 sa istim SIFRARM u odnosu na odeljenje
30 izgleda ovako:
SELECT PREZIME,SIFRARM
FROM RADNIK
WHERE SIFRAO= '10'
AND SIFRARM IN
(SELECT SIFRARM
FROM RADNIK
WHERE SIFRAO= '30')
Prezime
KLJAKIC
05
Sifrarm
188
alempije@beotel.yu
PREZIME
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
ALIMPIC
FILIPIC
MILIC
PLATA
16000
12500
29750
12500
28500
24500
30000
50000
15000
11000
30000
13000
SIFRAO
30
30
20
30
30
10
20
10
30
20
20
10
PLATA
29750
30000
50000
30000
SIFRAO
20
20
10
20
alempije@beotel.yu
189
AVG
29166,66
18125,16
Viestepeni podupiti
Poseban predmet razmatranja u definisanju podupita su viestepeni podupiti kojima se
definie vie uzastopnih upita.
Kao primer viestepenih podupita bie definisani sledei primeri:
1. Treba izlistati imena radnika koji rade isti posao kao JOVIC ili imaju platu koja je vea od
plate ili jednaka kao plata FILIPIC, i to u rastuem nizu SIFRARM i PLATA:
SELECT PREZIME, SIFRARM, SIFRAO, PLATA
FROM RADNIK
WHERE SIFRARM =
(SELECT SIFRARM
FROM RADNIK
WHERE PREZIME=' JOVIC')
OR PLATA >
(SELECT PLATA
FROM RADNIK
WHERE PREZIME= 'FILIPIC')
ORDER BY SIFRARM, PLATA
SIFRARM
05
SIFRAO
10
PLATA
50000
PLATA
24500
13000
3. Treba Izlistati SVE radnike koji zarauju vie od srednje vrednosti plata u sopstvenom
odeljenju i to prikazati u rastuem redosledu SIFRAO.
SELECT SIFRAO, PREZIME, PLATA
FROM RADNIK X
WHERE PLATA >
(SELECT AVG (PLATA)
FROM RADNIK
WHERE X.SIFRAO= SIFRAO)
ORDER BY SIFRAO
Svakom redu tabele RADNIK dodeljuje se ALIAS X nakon ega se izvodi unutranji SELECT
190
alempije@beotel.yu
gde se utvruje prosena plata za odeljenje; ako je manja od plate iz glavnog selecta onda
se prikazuje.
Rezultat SQL upita je:
SIFRAO
10
20
20
30
30
PREZIME
KLJAKIC
FILIPIC
SUSIC
BOBIC
ALAGIC
PLATA
50000
30000
30000
28500
16000
Ovaj uslov definie odnos izmeu tabela: RADNIK i ODELJENJE, tj. broj odeljenja (SIFRAO)
u tabeli RADNIK odgovara broju odeljenja u tabeli ODELJENJE, to je omoguilo spajanje
redova u zajedniki.
WHERE klauzula sadri i uslov PREZIME = 'ALAGIC', koji kae da iz baze treba dohvatiti
samo podatke za radnika ALAGIC-a. Tako se povezuje ALAGIC-ev red iz tabele RADNIK, koji
sadri vrednost 30 u polju SIFRAO, sa redom u tabeli ODELJENJE, koja, takoe, sadri istu
vrednost u polju SIFRAO. Kolone koje su listane SELECT klauzulom pokazuju da se iz baze
uzima samo polje PREZIME iz tabele RADNIK i samo polje MESTO iz tabele ODELJENJE da bi
se dobio eljeni rezultat.
alempije@beotel.yu
191
MESTO
BEOGRAD
Mogu se povezivati pojedini redovi kao u prethodnom primeru, delovi tabela ili cele tabele.
Ako se posmatra tzv. spajanje (videti prilog br.1) koje je najei sluaj, kada se
izjednaavaju vrednosti kolona koje se navode u klauzuli WHERE, mogu se spojiti tabele
RADNIK i ODELJENJE preko zajednike kolone SIFRAO:
SELECT NAZIVO, PREZIME, SIFRARM,PLATA
FROM RADNIK, ODELJENJE
WHERE RADNIK.SIFRAO = ODELJENJE.SIFRAO
ORDER BY NAZIVO,PLATA DESC
PREZIME
KLJAKIC
CEBIC
MILIC
BOBIC
ALAGIC
TUBIC
VUKIC
MARTIC
JAKIC
SUSIC
FILIPIC
JOVIC
ALIMPIC
STEVIC
SIFRA
05
03
01
03
02
03
02
02
01
04
04
03
01
01
PLATA
50000
24500
13000
28500
16000
15000
12500
12500
9500
30000
30000
29750
11000
8000
Potpuno isti rezultat kao u prethodnom sluaju dobija se i prilikom definisanja spajanja
korienjem opcije INNER JOIN definisane u MS ACCESS-u.
SELECT NAZIVO, PREZIME, SIFRARM, PLATA
FROM RADNIK
INNER JOIN ODELJENJE ON RADNIK.SIFRAO =
ODELJENJE.SIFRAO
Prezime:
CEBIC
KLJAKIC
MILIC
STEVIC
JOVIC
SUSIC
ALIMPIC
FILIPIC
ALAGIC
VUKIC
MARTIC
BOBIC
TUBIC
JAKIC
Sifrar Plata
03
2450
05
5000
01
1300
01
8000
03
2975
04
3000
01
1100
04
3000
02
1600
02
1250
02
1250
03
2850
02
1500
01
9500
192
alempije@beotel.yu
!" COUNT - broji redove (broja) koji pripadaju svakoj od ovih grupa;
!" AVG - nalazi prosenu vrednost odreenih polja u svakoj grupi.
Na primer, na kom je SIFRARM mestu i koliko je radnika radilo (COUNT) na svakom od
poslova u svakom odeljenju, kao i kolike su suma (SUM) i prosena plata (AVG) u ovako
formiranim grupama?
SELECT NAZIVO,SIFRARM,SUM (PLATA),COUNT(*),AVG
(PLATA)
FROM RADNIK,ODELJENJE
WHERE RADNIK.SIFRAO = ODELJENJE.SIFRAO
GROUP BY NAZIVO,SIFRARM
SIFRAR
01
03
05
02
03
01
03
04
SUM
COUNT AVG (PLATA)
13000
1
13000
24500
1
24500
50000
1
50000
56000
4
14000
28500
1
28500
19001
3
6333,67
29750
1
29750
60000
2
30000
U sledeem primeru bie prikazani poslovi koje obavljaju vie ili najmanje dva radnika u
svakom odeljenju korienjem HAVING klauzule.
SELECT NAZIVO,SIFRARM,SUM (PLATA)COUNT (*), AVG (PLATA)
FROM RADNIK,ODELJENJE
WHERE RADNIK.SIFRAO =ODELJENJE.SIFRAO
GROUP BY NAZIVO,SIFRARM
HAVING COUNT (*) >= 2
SIFRA
02
01
04
SUM
56000
19001
60000
COUNT
4
3
2
AVG
14000
6333,6
30000
Da bi se realizovao ovaj upit, tabeli RADNIK se daju dva sinonima: PODR i NADR. Kada su
potrebni podaci o radniku tabela RADNIK se referencira sinonimom PODR, a kada su
potrebni podaci o neposrednim rukovodiocima - sinonimom NADR. Na taj nain, pomou
navedenih sinonima, praktino, formiraju se dve virtuelne tabele sa identinim sadrajem.
alempije@beotel.yu
193
SIFRAR
04
04
02
02
02
02
01
01
01
03
03
03
05
01
RUKOV
827566
827566
827698
827698
827698
827698
827698
827782
827788
827839
827839
827839
827839
827902
SIFRAO
827566
827566
827698
827698
827698
827698
827698
827782
827788
827839
827839
827839
827839
827902
PREZIM
JOVIC
JOVIC
BOBIC
BOBIC
BOBIC
BOBIC
BOBIC
CEBIC
SUSIC
KLJAKIC
KLJAKIC
KLJAKIC
KLJAKIC
FILIPIC
SIFRA
03
03
03
03
03
03
03
03
04
05
05
05
05
04
Prezime
CEBIC
KLJAKIC
MILIC
STEVIC
JOVIC
SUSIC
ALIMPIC
FILIPIC
ALAGIC
VUKIC
MARTIC
BOBIC
TUBIC
JAKIC
Sifrarm:
03
05
01
01
03
04
01
04
02
02
02
03
02
01
Plata
24500
50000
13000
8000
29750
30000
11000
30000
16000
12500
12500
28500
15000
9500
194
alempije@beotel.yu
Prezime
CEBIC
KLJAKIC
MILIC
STEVIC
JOVIC
SUSIC
ALIMPIC
FILIPIC
ALAGIC
VUKIC
MARTIC
BOBIC
TUBIC
JAKIC
Sifrarm
03
05
01
01
03
04
01
04
02
02
02
03
02
01
Plata:
24500
50000
13000
8000
29750
30000
11000
30000
16000
12500
12500
28500
15000
9500
alempije@beotel.yu
195
Druga varijanta omoguuje definisanje samo onih kolona za koje treba uneti podatke (NON
NULL), ali redosled kolona mora da odgovara redosledu iza VALUES.
U INSERT naredbi se imenuje tabela (ODELJENJE), u koju se ubacuju red i lista vrednosti
svih podataka.
Ako se eli dodati istovremeno vie slogova, onda naredba INSERT INTO ima sledeu
sintaksu:
INSERT INTO tabela [ (kolona,kolona,..)
SELECT kolona, kolona... FROM tabela
Klauzula UPDATE imenuje tabelu koju treba menjati (UPDATE RADNIK). Klauzula SET
izjednaava polje koje korisnik imenuje sa nekom vrednosti (SET PLATA = PLATA + 100). U
klauzuli WHERE specificira se jedan red ili niz redova koje treba promeniti (WHERE SIFRARM
= '04').
Posle izvedenih izmena, tabela RADNIK za radnike na SIFRARM mestu 04 sada izgleda:
SELECT PREZIME, SIFRARM, PLATA
FROM RADNIK
WHERE SIFRARM = '04'
196
alempije@beotel.yu
odnosno dodavanjem kolone SIF, prethodno treba kreirati tabelu HPOSAO pomou komande
CREATE TABLE.
CREATE TABLE HPOSAO (SIF TEXT (3),
NAZIVH TEXT (20),
CENAP FLOAT8);
SIF
101
102
103
Da bi se mogla dodati nova kolona SIF
NAZIVH
CENAP
MASINE
96000
ALATI
82000
DELOVI
15000
tabeli RADNIK, koristi se komanda ALTER TABLE:
Ovom naredbom su definisani: tabela koju treba izmeniti (RADNIK), kolona koju treba
dodati (SIF), tip podatka nove kolone (TEXT) i maksimalna duina polja nove kolone TEXT
(3).
Izlistana tabela RADNIK sa dodatom kolonom SIF izgleda ovako:
SELECT * FROM RADNIK;
SIF
Sifra
827369
827499
827521
827566
827654
827698
827782
827788
827839
827844
827876
827900
827902
827934
Prezime
STEVIC
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
ALIMPIC
JAKIC
FILIPIC
MILIC
Ime:
ZORAN
MILAN
MILOS
MIRA
ZORA
IVAN
GORAN
ZORAN
STEVA
MIRA
PETAR
VLADA
DRAGA
DRAGA
Si
0
0
0
0
0
0
0
0
0
0
0
0
0
0
JMBG:
141195217103
250396434561
113049705543
113049705643
114049605544
140598705545
120397065456
130495467675
131295212234
131295434212
250397634356
121196545723
121097053422
070695645646
P
M
M
M
Z
Z
M
M
M
M
Z
M
M
M
M
V
2
2
1
1
2
2
2
2
1
2
2
Kada je definisana nova kolona naredbom UPDATE treba pridruiti odreene radnike koji
imaju honorarni posao i to samo u odeljenju 20, za REFERENTA (02) sa honorarnim poslom
ija je ifra 101.
UPDATE RADNIK
SET SIF = '101'
WHERE SIFRAO = '20'
OR SIFRARM = '02';
alempije@beotel.yu
197
SIF
101
101
101
101
101
101
101
101
101
Prezime
STEVIC
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
ALIMPIC
JAKIC
FILIPIC
MILIC
Ime:
ZORAN
MILAN
MILOS
MIRA
ZORA
IVAN
GORAN
ZORAN
STEVA
MIRA
PETAR
VLADA
DRAGA
DRAGA
Si
0
0
0
0
0
0
0
0
0
0
0
0
0
0
JMBG:
141195217103
250396434561
113049705543
113049705643
114049605544
140598705545
120397065456
130495467675
131295212234
131295434212
250397634356
121196545723
121097053422
070695645646
PV
M2
M
M2
Z1
Z1
M2
M2
M2
M2
Z1
M
M
M2
M2
Ako treba pridruiti honorarni posao 102 svim radnicima koji nemaju nijedan posao (SIF IS
NULL) onda se to pie ovako:
UPDATE RADNIK
SET SIF = '102'
WHERE SIF IS NULL;
SIF
101
101
101
101
101
102
102
101
102
101
101
102
101
102
Prezime
STEVIC
ALAGIC
VUKIC
JOVIC
MARTIC
BOBIC
CEBIC
SUSIC
KLJAKIC
TUBIC
ALIMPIC
JAKIC
FILIPIC
MILIC
Ime:
ZORAN
MILAN
MILOS
MIRA
ZORA
IVAN
GORAN
ZORAN
STEVA
MIRA
PETAR
VLADA
DRAGA
DRAGA
Si
0
0
0
0
0
0
0
0
0
0
0
0
0
0
JMBG:
141195217103
250396434561
113049705543
113049705643
114049605544
140598705545
120397065456
130495467675
131295212234
131295434212
250397634356
121196545723
121097053422
070695645646
P
M
M
M
Z
Z
M
M
M
M
Z
M
M
M
M
V
2
2
1
1
2
2
2
2
1
2
2
Ova promena vezana za nova polja u tabeli RADNIK dozvoljava uspostavljanje relacija
izmeu tabela: RADNIK i HPOSAO.
SELECT PREZIME,SIFRARM,SIFRAO,NAZIVH
FROM RADNIK, HPOSAO
WHERE RADNIK.SIF = HPOSAO.SIF;
198
alempije@beotel.yu
Prezime
FILIPIC
ALIMPIC
TUBIC
SUSIC
MARTIC
JOVIC
VUKIC
ALAGIC
STEVIC
MILIC
JAKIC
KLJAKIC
CEBIC
BOBIC
Sifrar
04
01
02
04
02
03
02
02
01
01
01
05
03
03
Sifra
20
20
30
20
30
20
30
30
20
10
30
10
10
30
NAZIV
MASIN
MASIN
MASIN
MASIN
MASIN
MASIN
MASIN
MASIN
MASIN
ALATI
ALATI
ALATI
ALATI
ALATI
Kako u odeljenju 40 (tabela ODELJENJE) nema zaposlenih (tabela RADNIK) moe se brisati
na sledei nain:
DELETE FROM ODELJENJE
WHERE SIFRAO = '40'
10
20
30
Sifrao
Nazivo
PRIPREMA
RAZVOJ
PRODAJA
Mesto
PANCEVO
NOVI SAD
BEOGRAD
DELETE FROM klauzula imenuje tabelu iz koje treba izbrisati jedan ili vie redova (na
primer, tabela ODELJENJE). WHERE klauzula nije obavezna; ako je nema, onda se briu svi
redovi iz tabele.
Ako postoji WHERE klauzula onda se redovi briu pod nekim datim uslovom. U ovom
primeru korienjem WHERE klauzule briu se iz tabele ODELJENJE oni redovi ija je
vrednost SIFRAO = 40.
Na taj nain brie se definicija tabele iz baze podataka zajedno sa podacima koje tabela
sadri; naredbu DROP moe izvesti samo onaj koji je kreirao tabelu ili ima DBA privilegiju.
Na osnovu prethodno izvedenih aktivnosti (slika 4.31) u sledeem koraku potrebno je
definisati izvetaj.
alempije@beotel.yu
199
Aktivnost
3.3.4. Definisanje izvetaja
Kreiranje izvetaja izvodi se korienjem ve definisanih i standardizovanih formi sa
nadgradnjom.
Za primer izvetaja knjigovodstvu definisan je sledei QBE upit:
200
SIFRA
827566
827698
827782
827839
827369
827876
827900
827934
827499
827521
827654
827844
827788
827902
UK
30450
29300
25000
50600
8700
11780
10400
13790
16600
13100
13500
15600
30650
31000
NAZIV
RAZVOJ
PRODAJA
PRIPREMA
PRIPREMA
RAZVOJ
RAZVOJ
PRODAJA
PRIPREMA
PRODAJA
PRODAJA
PRODAJA
PRODAJA
RAZVOJ
RAZVOJ
IME:
MIRA
IVAN
GORAN
STEVA
ZORAN
PETAR
VLADA
DRAGA
MILAN
MILOS
ZORA
MIRA
ZORAN
DRAGA
alempije@beotel.yu
alempije@beotel.yu
201
Korienjem objekta Report definie se korisniki izvetaj koji moe imati sledei izgled:
Izvestaj knjigovodstvu
15-Jun-98
ODELJENJE
SIFRA
RAD
DAT.
ZAP
PREZIME
PLATA
STIM
UKUPNO
PRIPREMA
DIREKTOR
827782
CEBIC
GORAN
11.6.80
24500
500
25000
GEN_DIR
827839
KLJAKIC
STEVAN
6.12.87
50000
600
50600
PROJEKTAN
T
827934
MILIC
DRAGAN
28.3.93
13000
790
13790
PRIPREMA UKUPNO
87500
1890
89390
PRODAJA
DIREKTOR
827698
BOBIC
IVAN
15.11.8
9
28500
800
29300
PROJEKTAN
T
827900
JAKIC
VLADAN
28.3.90
9500
900
10400
REFERENT
827499
ALAGIC
MILAN
28.3.98
16000
600
16600
54000
2300
56300
PRODAJA UKUPNO
RAZVOJ
DIREKTOR
82756
6
JOVIC MIRA
28.4.90
29750
700
30450
PROJEKTAN
T
82736
9
STARCEV.ZORA
N
28.3.98
8000
700
8700
TEHNOLOG
82778
8
SUSIC ZORAN
23.10.9
1
30000
650
30650
RAZVOJ UKUPNO
67750
2050
69800
Grand Total:
20925
0
8640
21549
0
202
alempije@beotel.yu
Aktivnost
4. Implementacija
Aktivnost 4.1. Uvoenje
Aktivnost 4.2. Testiranje
Aktivnost 4.3. Odravanje
alempije@beotel.yu
203
Nakon izvedene aktivnosti "3. Aplikativno modeliranje" definisan je tok podataka "Radni IS"
koji predstavlja ulaz u aktivnost "4. Implementacija" (slika 5.1).
Konsultant na ovom nivou treba da pomogne u uvoenju, testiranju i odravanju budueg
korisnikog softvera.
Na slici 5.1. prikazano je stablo aktivnosti za aktivnost "4. Implementacija", koju ine
sledee aktivnosti:
!" Aktivnost 4.1. Uvoenje,
!" Aktivnost 4.2. Testiranje,
!" Aktivnost 4.3. Odravanje.
IMPLEMENTACIJA
4
UVO\ENJE
TESTIRANJE
4.1
ODR@AVANJE
4.2
4.3
VREDNOVANJE
SOFTVERA
TESTIRANJE
MODULA
PRA]ENJE RADA
SOFTVERA
IZMENE U
TOKU
UVO\ENJA
TESTIRANJE
PODSISTEMA
ISPRAVLJANJE
GRE[AKA
TESTIRANJE
INTEGRISANOG
SISTEMA
POBOLJ[AVANJE
SISTEMA I
DODAVANJE
NOVIH FUNKCIJA
IZRADA
KORISNI^KIH
UPUTSTAVA
IZRADA PLANA
OBUKE
ZAVR[NO
TESTIRANJE U
OKRU@ENJU
KORISNIKA
IZMENA
HARDVERA I
SOFTVERA
Postupak
implementacije
Korisni~ka uputstva
Radni JAIS
I1
UVO\ENJE
4.1
Korisni~k
softver
O1
Testiran softver
TESTIRANJE
Specijani korisni~ki zahtev
4.2
Postupak
odr`avanja
Izmene
I2
Informacije
od korisnika
Plan odr`avanja
ODR@AVANJE Tro{kovi odr`avanja
Nove verzije
4.3
Spoljni
konsultant
M1
Alati za
M2 testiranje
204
alempije@beotel.yu
alempije@beotel.yu
205
Aktivnost
4.1. Uvoenje
Aktivnost "4.1. Uvoenje" izvodi se posredstvom sledeih aktivnosti (slika 3.1):
!" Aktivnost 4.1.1. Vrednovanje softvera,
!" Aktivnost 4.1.2. Izmene u toku uvoenja,
!" Aktivnost 4.1.3. Izrada korisnikih uputstava,
!" Aktivnost 4.1.4. Izrada plana obuke.
Na slici 5.3. prikazan je dekompozicioni dijagram za aktivnost "4.1. Uvoenje", gde je
definisan tok informacija poev od ulaznog dokumenta "Radni JAIS" preko nabrojanih
aktivnosti (prikazanih na slici 5.3), do izlaza definisanog dokumentom Prihvaen softver.
Radni
JAIS
I1
Ocenjen softver
VREDNOVANJE
SOFTVERA
Prihva}en softver
O3
Primedbe
4.1.1
IZMENE
U TOKU
UVO\ENJA
Izmene
I3
I2
Informacije
od korisnika
Izmene
4.1.2
IZRADA
KORISNI^KIH
UPUTSTAVA
Korisni~ka uputstv
O1
4.1.3
Spoljni
konsultant
IZRADA
PLANA
OBUKE
4.1.4
M1
206
alempije@beotel.yu
Aktivnost
4.1.1. Vrednovanje softvera
Vrednovanje softvera je podskup aktivnosti softverskog inenjerstva i moe se smatrati
sistemom, odnosno sistemom vrednovanja.
Da bi se izvrilo vrednovanje, treba specificirati zahteve, tj. definisati osnovne zahteve za
funkcije i performanse i dati potrebna ogranienja i dr. Kao poseban element izdvajaju se
zahtevi za kvalitetom, definisani kvantitativnim i kvalitativnim formulisanim zahtevima. To
uslovljava i formulisanje faktora kvaliteta koji je odlika ili karakteristika odreenog
elementa. Kvantitativna mera se izraava preko tzv. metrike kvaliteta. Rezultat vrednovanja
je ocenjivanje kao aktivnost primene odreenog dokumentovanog kriterijuma ocenjivanja
softverskog modula, paketa ili softverskog proizvoda radi odreivanja prihvatljivosti ili
putanja u eksploataciju softverskog paketa ili proizvoda.
Osnovu procesa vrednovanja ine zahtevi vrednovanja koji se iskazuju preko:
!" funkcionalnih zahteva,
odgovarajuih teina;
definisanih
listom
potrebnih
funkcija
odreenih
preko
alempije@beotel.yu
207
Specifikacija vrednovanja
Specifikacija vrednovanja, kao sloeni proces, u sebi sadri sledee procese:
!" izbor metrike i indikatora,
!" izbor karakteristika,
!" definisanje nivoa ranga,
!" definisanje kriterijuma ocenjivanja.
Izbor metrike se definie za svaki zahtev. Metrika je, uopteno posmatrano, numerika
vrednost na skali. Moe se koristiti ceo ili realan broj. Primeri za skale metrika su:
!" 1...10 prirodni brojevi;
!" 0...1 realni;
!" procenat;
!" "odlian, "dobar", "solidan", "lo";
208
alempije@beotel.yu
Projektovanje vrednovanja
Projektovanje vrednovanja, kao sloeni proces, sastoji se iz povezivanja tehnika
vrednovanja za karakteristike i nivoe softvera, kao i povezivanja modula vrednovanja za
tehnike vrednovanja. Ovaj sloeni proces kao izlaz daje plan vrednovanja.
Projektovanje vrednovanja ine procesi:
!" specifikacija modula vrednovanja,
!" ugradnja modula vrednovanja u biblioteku.
Specifikacija modula vrednovanja obuhvata saimanje jedne ili vie tehnika vrednovanja.
Aktivnost obuhvata specificiranje zahtevanih informacija o: proizvodu i procesu, tehnikama
vrednovanja, izlazu koji je rezultat primene tehnike, kao i procenjenom troku primene
modula vrednovanja. Jasno je da su tehnike vrednovanja i moduli vrednovanja u vezi sa
karakteristikama softvera i nivoima vrednovanja. Posle odreivanja tehnika vrednovanja, tj.
identifikovanja koje karakteristike softvera treba razmatrati i koliko detaljno, uz tehnika
ogranienja softvera, bira se i skup primenjivih modula vrednovanja iz biblioteke modula
vrednovanja.
Ugradnja modula vrednovanja u biblioteku odnosi se na donoenje odluke o razvijanju
novog modula i njegovo dodavanje u biblioteku.
Primena vrednovanja
Sloeni proces Primena vrednovanja daje rezultate vrednovanja dobijenih kao izlazi iz
procesa:
!" merenje pomou metrika,
!" ocenjivanje poreenjem,
!" izvetavanje merenja ocenjivanja na osnovu plana merenja definisanog u prethodnom
procesu.
alempije@beotel.yu
209
Izvetavanje o vrednovanju
Sloeni proces - Izvetavanje o vrednovanju ine procesi:
!" analiza rezultata vrednovanja,
!" generisanje izvetaja.
Na osnovu rezultata dobijenih kao izlaz iz procesa Primena vrednovanja i analize tih
rezultata stvaraju se razne vrste izvetaja koji predstavljaju izlaze iz kompletnog sistema
vrednovanja.
Aktivnost
4.1.2. Izmene u toku uvoenja
Na osnovu definisanih primedbi izvode se izmene koje, ako se koriste CASE alati, ostaju kao
trag aktuelnoj elektronskoj dokumentaciji o sprovedenim izmenama. Ako se izmene naprave
u tabelama baze podataka, automatski se sprovode iste izmene i u modelu podataka.
Aktivnost
4.1.3. Izrada korisnikih uputstava
Korisnika uputstva mogu biti opta uputstva za rad sa aplikacijom, kao i detaljna korisnika
uputstva za svaki programski sistem. Pored papira, treba da imaju i dimenziju On-line
dokumentacije. Dokumentacija mora da ima sledee karakteristike:
!" pri pisanju neophodni su jasni i koncizni izrazi;
!" oslovljavanje korisnika treba da bude u drugom licu, uz korienje aktivnih glagola;
!" pri opisu procedure treba upotrebljavati jednostavne glagole;
!" procedure se moraju opisivati logikim redom;
!" ne treba upotrebljavati izraze iz argona;
!" treba izbegavati ale;
!" dati mogunost jednostavnog izbora i dr.
Aktivnost
4.1.4. Izrada plana obuke
Pretpostavka za izvoenje aktivnosti "4.1.4. Izrada plana obuke" je da su budui korisnici
kompjuterski opismenjeni, kao to je to opisano u okviru aktivnosti "1.3.2. Kadrovske
potrebe". Za ovu aktivnost se napravi plan obuke po prioritetima uvoenja pojedinih modula
ili podsistema.
Na osnovu prethodno izvedenih aktivnosti (slika 5.2) u sledeem koraku treba izvesti
testiranje.
210
alempije@beotel.yu
Aktivnost
4.2. Testiranje
Procesom "4.2.Testiranje" testira se softver za konkretno korisniko okruenje, uz poetni
unos podataka, to je naroito bitno za testiranje softvera koji radi u mrei i za koji treba da
se istestiraju elementi vezani za transakcionu obradu i odgovarajua zakljuavanja.
Testiranjem se ocenjuje valjanost programa, tj. testiraju se performanse programa i vre
korekcije programa da bi se njegove performanse prilagodile korisniku. Dakle, testiranje
podrazumeva ocenjivanje odlika programa i njegovo revidiranje da bi se dostigli postavljeni
ciljevi. Od iskustva programera i korisnika zavisi da li e se program pravilno oceniti.
Statistike govore da se kod ozbiljnih softverskih projekata oko 50% ukupnog vremena i
napora troi na testiranje.
Od nivoa ukljuenosti budueg korisnika prilikom izrade softverskog proizvoda zavisi i
stepen njegovog ukljuenja u testiranje. Obino se definiu dva koncepta provere: validacija
i verifikacija.
Validacija proverava da li proizvod zadovoljava spoljne kriterijume klijenta. Verifikacija
proverava da li je proizvod napravljen kako treba.
Na slici 5.2. definisani su za aktivnost "4.2. Testiranje" resursi u obliku alata za testiranje i
kao kontrola tehnike testiranja.
Alati za testiranje treba da omogue planiranje, praenje i realizaciju testiranja i da
automatizuju pojedine faze testiranja.
Tehnike testiranja su podeljene na:
!" tehniku crne kutije ili funkcionalnu tehniku;
!" tehniku bele kutije ili strukturno testiranje sofvera.
Tehnika crne kutije omoguuje testiranje funkcionalne specifikacije programa, ne vodei
rauna o unutranjoj tehnici i strukturi programa. Tehnika crne kutije je vezana za izbor
test-primera i scenarija za to iri dijapazon ulaznih podataka.
Tehnika bele kutije svodi se na automatsko proveravanje programskih struktura, tokova
podataka, logike meuzavisnosti procedura i njihovih ulaza/izlaza i dr.
U principu, definiu se etiri strategije testiranja softvera, i to:
!" demonstracija, gde se utvruje da li softver radi u skladu sa specifikacijom;
!" destrukcija, kada se namerno rui program, i to, obino, suprotno zahtevima;
!" evaulacija, gde se testiranje izvodi u ranim fazama razvoja softvera;
!" prevencija, gde se testiranje izvodi u ranim fazama razvoja softvera korienjem raznih
alata za generisanje formalne specifikacije.
Aktivnost "4.2. Testiranje", kao to je prikazano na slici 5.4, ine sledee aktivnosti:
!" Aktivnost 4.2.1. Testiranje modula,
!" Aktivnost 4.2.2. Testiranje podsistema,
!" Aktivnost 4.2.3. Testiranje integrisanog sistema,
alempije@beotel.yu
211
TESTIRANJE
PODSISTEMA
Podsistemi
4.2.2
I1
Prihva}en
softver
Integrisani
TESTIRANJE
podsistemi
INTEGRISANOG
SISTEMA
4.2.3
ZAVR[NO
TESTIRANJE U
OKRU@ENJU
KORISNIKA
4.2.4
Testiran soft
O1
212
alempije@beotel.yu
Aktivnost
4.2.1. Testiranje modula
Kako su moduli povezani sa nizom nezavisnih komponenti, to se zahteva provera svih
specifikacija i konstrukcija vezanih za modul.
Aktivnost
4.2.2.Testiranje podsistema
Prilikom testiranja podsistema najee se pojavljuju problemi, jer su mnogi softverski
inenjeri ukljueni u izgradnju podsistema. Razliite interpretacije specifikacija, obino,
rezultiraju problemima, pa ih treba uklopiti. Problematika na ovom nivou se
pojednostavljuje ako su korieni CASE alati gde je definisan jedinstven renik podataka i
procesa i gde su veze prikazane na grafiki nain.
Osnovni koraci vezani za ovu aktivnost su:
!" spajanje modula,
!" definisanje internih interfejsa,
!" testiranje rada grupe modula,
!" testiranje veze sa eksternim interfejsima.
Aktivnost
4.2.3. Testiranje integrisanog sistema
Testiranje integrisanog sistema zahteva od budueg korisnika da pripremi realne podatke za
upotrebu. Pri tom se testiraju: funkcionalnost, performanse, restart, oporavak i
funkcionisanje.
Aktivnost
4.2.4. Zavrno testiranje u okruenju korisnika
Zavrno testiranje u okruenju korisnika se, obino, zove alfa-testiranje ako je u pitanju
jedan korisnik, a ako se proizvod distribuira na mnogo mesta ili mnogo pojedinaca tada je
beta-testiranje. Test preuzimanja izvodi se u dva koraka:
!" definisanjem zahteva i specifikacija i
!" ispunjenjem uslova preuzimanja.
Na osnovu prethodno izvedenih aktivnosti (slika 5.2) u sledeem koraku bie izvedena
aktivnost "4.3. Odravanje".
alempije@beotel.yu
213
Aktivnost
4.3. Odravanje
Na nivou odravanja drastino se pokazuju sve manjkavosti vezane za loe uraene
prethodno opisane faze. U zavisnosti od korektnosti rada u prethodnim fazama, programer
troi u proseku od 20% do 80% svog radnog vremena za odravanje.
Osnovni problemi u odravanju su:
!" nepridravanje standarda,
!" loa dokumentacija,
!" nedostatak kadra,
!" nepostojanje testova,
!" nekorektno odravanje,
!" odsustvo povratne veze,
!" nepoznavanje trokova odravanja.
Aktivnost "4.3. Odravanje", kao to je prikazano na slici 5.5, ine sledee aktivnosti:
!" Aktivnost 4.3.1. Praenje rada,
!" Aktivnost 4.3.2. Ispravljanje greaka,
!" Aktivnost 4.3.3. Poboljanje sistema i dodavanje novih funkcija,
!" Aktivnost 4.3.4. Izmena hardvera i softvera.
U daljem tekstu detaljno e biti obrazloene aktivnosti prikazane na slici 5.5.
Testiran
softver
I1
Plan odr`avanja
O1
PRA]ENJE
RADA
Akcije
SOFTVERA
4.3.1
ISPRAVLJANJE
GRE[AKA
Gre{ke za ispravku
4.3.2
POBOLJ[AVANJE
SISTEMA I
DODAVANJE
NOVIH FUNKCIJA
4.3.3
Informacije
od korisnika
I2
Tro{kovi odr`avan
O2
IZMENA
HARDVERA I
SOFTVERA
4.3.4
Nove verzije
O3
Spoljni
konsultant
M1
214
alempije@beotel.yu
Aktivnost
4.3.1. Praenje rada
Aktivnost "4.3.1. Praenje rada" treba izvoditi kontinualno, sve dok ne bude potrebno da se
izvede zamena, jer informacije steene u toku tog praenja omoguuju da se odredi vrsta
promena, tj. na taj nain se izvodi tzv. kontinualno usavravanje. Mogu se na osnovnom
nivou pratiti:
!" sati u upotrebi,
!" uraeni poslovi i transakcije,
!" informacije o vremenu,
!" uitavanja,
!" registrovanje nedostataka i dr.
Ovakvo praenje omoguava oporavak sistema od katastrofalnih greaka. Stoga je ova
aktivnost neposredno vezana i za sprovoenje korektivnih akcija. Tako, ako se prati vreme i
primete varijacije u vremenu izvoenja transakcija, automatski se izvode korektivne akcije.
Aktivnost
4.3.2. Ispravljanje greaka
U aktivnosti "4.3.2. Ispravljanje greaka", pored ispravljanja greaka, prati se i odstupanje
softvera, i vri prilagoavanje korisniku i zadatku.
Aktivnost
4.3.3. Poboljanje sistema i dodavanje
novih funkcija
Aktivnost "4.3.3. Poboljanje sistema i dodavanje novih funkcija" skoro uvek nastupa, jer
korisnik ubrzo spozna nove mogunosti sistema, pa ima nove zahteve vezane za poboljanje
sistema. Dodavanje novih funkcija ne mora da bude teko, ako su ispotovani prethodno
opisani koraci.
Aktivnost
4.3.4. Izmena hardvera i softvera
Aktivnost "4.3.4. Izmena hardvera i softvera" posmatra se kroz softverske izmene vezane
za promenu SUBP, kao i hardverske izmene vezane za izgradnju mree u okviru
klijent/server-arhitekture.
alempije@beotel.yu
215
Softverske izmene
Baza podataka i aplikacije, koje se na njoj temelje, podvrgnute su estim promenama.
Promene mogu biti izazvane razvojem opreme (npr., na tritu se javlja efikasniji tip:
memorije, terminala, procesora).
ee promene su potrebne zbog razvoja korisnikog sistema (aplikacija), promena uslova i
pravila poslovanja, novih zakonskih zahteva itd. Korisniku SUBP mora obezbediti to veu
fleksibilnost, tako da funkcionie kao nekakav tit izmeu aplikacije i baze podataka.
SUBP poznaje fiziku i logiku strukturu baze podataka na jednoj strani i zahteve
korisnikovih programa na drugoj strani, te deluje kao posrednik (interface), koji
korisnikovom programu osigurava uvek isti pogled na podatke, bez obzira na eventualne
promene u fizikoj ili logikoj strukturi baze podataka (data indepedence). Time se, sa jedne
strane, postie imunost korisnikovih programa na promene, koje doivljava baza podataka,
a, sa druge, znatno se olakava i pojednostavljuje odravanje korisnikovih programa.
Pojavom Interneta i otvorenih sistema omoguen je razvoj softvera, nezavisno od
hardverske platforme, to dalje omoguuje razvoj na personalnim raunarima i
implementaciju na nekom drugom hardveru. Sline mogunosti su i u vezi sa softverom.
Ako je u okviru klijent/server-aplikacije razvijen ceo sistem na strani servera i klijenta, npr.
u MS ACCESS-u, a treba na strani servera instalisati MS SQL SERVER, i ako je ispotovana
prethodno definisana modularnost, ovakvi poslovi se obavljaju preko vikenda. Ako korisnik u
okviru odravanja sakuplja odgovarajua iskustva, to e ovaj posao bre i bezbolnije obaviti.
Ceo ovaj posao zaokruuju na poetku spomenuti CASE alati, koji treba automatski da
registruju svaku izmenu i omogue aurno odravanje dokumentacije.
Hardverske izmene
Harverske izmene se odnose na nadgradnju mree u okviru klijent/server-arhitekture, gde
je mrea sredstvo za prenos podataka koje omoguuje razmenu poruka izmeu aplikacije
klijent (koja alje, prima i analizira podatke) i servera baze podataka (koji obrauje zahteve
za pristup bazi).
Predmet izmena moe biti:
!" topologija mree,
!" hardver i softver za umreeni klijent/server-sistem,
!" aplikacioni posrednik za rad sa bazom podataka,
!" aktivnosti u sistemu klijent/server.
Topologija mree moe biti: zvezdasta (gde istovremena komunikacija zavisi od centralnog
vora), linijska (gde se izvodi komunikacija jedan po jedan izmeu vorova) i prstenasta (tj.
istovremena komunikacija bez zavisnosti od centra vora).
Hardver i softver za umreeni klijent/server-sistem vezani su za:
!" mreni hardver,
!" mreni softver i
!" komunikacioni softver.
Mreni hardver ine: mreni adapter (koji ine jedna ili vie utinica za prikljuivanje
kablova preko upletenih parica ili optikih vlakana), beini mreni adapteri
(visokofrekventni radio-signali), modemi i telefonske linije za regionalne mree (WAN),
spoljni modemi za velike udaljenosti.
Mreni softver omoguuje: kontrolu pristupa mrei; upravljanje redovima ekanja na
tampau; dodeljivanje prostora za korisnike datoteke; rad sa elektronskom potom.
216
alempije@beotel.yu
Komunikacini softver omoguava da razni raunari u mrei alju i primaju pakete programa
preko mree za koju je definisan komunikacioni protokol, tj. jezik sporazumevanja raunara,
i to:
!" TCP/IP - Transmission Control Program / Internet Program (UNIX),
!" SPX/IPX - Sequenced Packet Exchange / Internet Package Exchange (NetWare),
!" mrena skretnica (komunikacioni most).
Aplikacioni posrednik za rad sa bazom podataka ili softverski sloj (Application middleware)
omoguava komunikaciju izmeu razliitih komponenti distribuirane aplikacije; aktivan je i
na klijentu i na serveru i pri tom prevodi poruke koje oni meusobno razmenjuju. Postoji i
konverzacioni posrednik koji, prvo, omoguuje povezivanje, a potom razmenjivanje poruka,
da bi u jednom trenutku poruka ila u jednom smeru (asinhrono), ali nije mnogo efikasan.
Pozivanje udaljenih procedura (RPC-Remote Procedure Call) omoguuje jednostavni poziv
procedura, i to procedura niskog nivoa, koje su jednostavne za upotrebu. API (Application
Programming Interface) predstavlja specifinu skupinu f-ja koji omoguavaju komunikaciju
izmeu aktivnosti koje se odvijaju na klijentima i onih na serverima vezanim sa ODBC-Open
DataBase Connectivity i IDAPI-Integrated Database Application Programming Interface. API
programski interfejs koristi se za razliite tipove servera baze podataka i to je najmanji
zajedniki imenitelj.
Aktivnosti u sistemu klijent/server su zadatak ijim izvrenjem upravlja OS, a ako su u
pitanju vieprocesni OS, onda se istovremeno upravlja sa vie zadataka. Server baze
podataka u klijent/server-sistemu radi pod vieprocesnim OS (UNIX, NT ili VMS). Aktivnost
klijent izvrava aplikacije klijent koje se povezuju sa serverom baze podataka i pri tom se
definie zahtev za povezivanje, tj. ime korisnika i lozinka. Aktivnost server obrauje zahteve
koje alje Aktivnost klijent i pri tom neposredno obrauje proces koji ide od klijenta i
upisuje podatke u datoteku sa podacima, tj. vodi datoteku dnevnika transakcija.
alempije@beotel.yu
217
Prilog 1.
Teoretske postavke
relacionih modela
Struktura relacionih modela je jednostavna i prihvatljiva za svakog korisnika, jer relaciona
baza podataka predstavlja skup tabela. Same relacije iz skupa tabela (baze podataka)
generiu izlaz, takoe, u obliku jednostavne i lako prihvatljive tabele.
S druge strane, jednostavna je i formalno matematika interpretacija tabela, tj. tabela se
moe definisati kao matematika relacija.
Da bi se pristupilo razmatranju relacionih modela potrebno je dati definicije za:
!" kartenzijanski (Dekartov) proizvod,
!" relacije,
!" domen relacije,
!" stepen relacije,
!" kardinalnost relacije,
!" atribute relacije,
!" kljueve,
!" primarni klju,
!" spoljne kljueve,
!" bazne relacije,
!" izvedene relacije,
!" emu relacione baze podataka i
!" null vrednost.
Kartezijanski proizvod od n skupova D1 x D2 x...Dn je skup svih moguih ureenih n-torki
<d1,d2,....dn> tako da je d1 D1, d2 D2 ...dn Dn
Primer: Data su dva skupa brojeva:
D1 = {1,2,3,4} i D2 = {4,5}
D1 x D2 = {<1,4>,<1,5>,<2,4>,<2,5>,<3,4>,<3,5>,<4,4>,<4,5>
Relacija se definie kao podskup Dekartovog proizvoda nad n-skupova, tj. podskup sadri
one n-torke Dekartovog proizvoda koje zadovoljavaju zadatu relaciju.
R D1 x D2 x ...x Dn
218
alempije@beotel.yu
alempije@beotel.yu
219
Atributi relacije
Atributi relacije su imenovani domeni sa imenom koje definie ulogu domena u relaciji.
Atributi relacije RADNIK su SIFRAR, PREZIME, RUKOV i dr.
Ovako definisan koncept atributa omoguuje predstavljanje relacija kao tabela, pa se
relacija RADNIK moe predstaviti sa:
SIFRAR
827369
827499
827521
PREZIME
STEVIC
ALAGIC
VUKIC
RUKOV
827902
827698
827698
Razlika izmeu relacije i tabele je u tome to je relacija skup, a svaka tabela to nije. Stoga
se definiu uslovi koje tabela mora da zadovolji da bi bila relacija:
!" ne mogu postojati duple vrste tabela;
!" redosled vrsta nema znaaja;
!" redosled kolona nema znaaja;
!" nisu dozvoljeni atributi ili grupe atributa sa ponavljanjem.
Prikazana tabela zadovoljava uslove da jedna tabela bude relacija. Ako je zadovoljen
poslednji uslov, onda se kae da se tabela nalazi u prvoj normalnoj formi.
220
alempije@beotel.yu
Kljuevi
Kljuevi se definisu kao jedan ili vie atributa ija vrednost jedinstveno identifikuje jednu ntorku u relaciji, tj. jedan red u tabeli. Ako je klju definisan samo jednim atributom, onda je
to prost klju (npr., u relaciji RADNIK klju je SIFRAR). Ako je klju definisan sa vie
atributa, onda je to sloeni klju (npr., relacija CERTIFIKAT-klju je SIFRAR, SIFRAJ).
Ako se definie relacija R, onda se moe rei da klju relacije R predstavlja kolekcija K
njenih atributa koja zadovoljava :
!" osobinu jedinstvenosti i
!" osobinu neredundantnosti.
Osobina jedinstvenosti je vezana za ogranienje da ne postoje bilo koje dve n-torke sa istom
vrednou K.
Osobina neredundantnosti se odnosi na gubljenje osobina jedinstvenosti ako se bilo koji
atribut izostavi iz K.
U jednoj relaciji moe postojati vie razliitih kolekcija K atributa koje zadovoljavaju
definiciju kljua; sve se one nazivaju kandidati za klju.
Primarni klju je jedan od izabranih kandidata za klju koji slui za identifikaciju n-torke
relacije. Ostali kandidati za klju postaju alternativni kljuevi.
Atributi koji uestvuju u kljuevima nazivaju se kljuni atributi, dok se ostali nazivaju opisni
atributi.
Spoljni klju ili preneseni klju je atribut ili grupa atributa u relaciji R, ija se vrednost
koristi za povezivanje sa vrednou primarnog kljua u nekoj relaciji R2. Spoljni kljuevi i
njima odgovarajui primarni kljuevi definisani su nad istim domenom. Dakle, spoljni
kljuevi slue da se uspostave veze izmeu relacija u relacionoj bazi podataka. Na primer, u
relaciji RADNIK spoljni klju SIFRAO vezuje sa relacijom ODELJENJE.
Bazna relacija je relacija koja se ne moe izvesti iz ostalih relacija u relacionoj bazi
podataka.
Izvedena relacija je relacija koja se izvodi iz skupa baznih i izvedenih relacija, i to preko
operacija koje se definiu nad relacijama.
Kako se u tekstu koriste termini vezani za relacije, tabele i klasinu obradu podataka, to se
u sledeoj tabeli definiu njihove veze:
RELACIONA
DOMEN
ATRIBUT
N-TORKA
PRIMARNI KLJUC
RELACIJA
STEPEN
KARDINALNOST
TABELARNA
SKUP VREDNOSTI
KOLONA
RED
IDENTIFIKATOR REDA
TABELA
BROJ KOLONA
BROJ REDOVA
KLASICNA OBRADA
TIP
POLJE
SLOG (RECORD)
JEDINSTVEN KLJUC
DATOTEKA
BR.POLJA U SLOGU
BR.SLOGOVA U DAT.
Ekstenzija relacije je skup svih n-torki date relacije, odnosno predstavljanje tabele
navoenjem svih vrsta. Tabela RADNIK predstavlja ekstenziju odgovarajuih relacija.
alempije@beotel.yu
221
(Ispred zagrade je naziv relacije, u zagradi su navedeni atributi, a primarni klju je obeleen
masnim otiskom.)
222
alempije@beotel.yu
Null vrednosti
Null vrednosti se koriste da se oznae jo nepoznate vrednosti za neki atribut ili
neprimenjivo svojstvo za neki objekat ili vezu koju predstavlja tabela (oznaavae se
znakom ?).
Relaciona algebra
Relaciona algebra definie skup operacija pomou kojih se, na proceduralan nain, moe
dobiti eljena relacija, tj.tabela iz skupa datih relacija.
Relacija se definie kao podskup Dekartovog proizvoda i moe se tretirati kao skup n-torki.
Za nivo relacione algebre operacije: unija, presek i diferencije nad relacijama R1 i R2
moraju zadovoljiti uslov kompatibilnosti (union compatible relations), tj. relacije R1 i R2
moraju imati isti broj atributa (isti stepen), a odgovarajui atributi su definisani nad istim
domenom.
Na nivou relacione algebre, operacije su:
!" unija,
!" diferencija,
!" presek,
!" Dekartov proizvod,
!" projekcija,
alempije@beotel.yu
223
Unija
Ako su date relacije R1 i R2 koje zadovoljavaju uslove kompatibilnosti, onda je rezultat
operacije unije
R3 = R1 U R2
relacija R3 koja sadri sve n-torke koje se pojavljuju bilo u R1, bilo u R2.
Diferencija
Ako su date relacije R1 i R2 koje zadovoljavaju uslov kompatibilnosti, onda rezultat
operacije diferencije
R3 = R1 - R2
predstavljaju n-torke relacije R1, koje nisu istovremeno i n-torke relacije R2.
Presek
Ako su date relacije R1 i R2 koje zadovoljavaju uslov kompatibilnosti, onda je rezultat
operacije preseka
R3 = R1 R2
Dekartov proizvod
Dekartov proizvod se moe primeniti na bilo koje dve relacije. Rezultat je ove operacije
R3 = R1 x R2
relacija R3 ije su n-torke svi "parovi" koje ine jedna n-torka relacije R1 i jedna n-torka
relacije R2.
224
alempije@beotel.yu
Projekcija
Operacija projekcije se definise kao unarna operacija koja iz neke relacije selektuje skup
navedenih atrubuta, odnosno "vadi" vertikalni podskup iz odgovarajue tabele.
Formalno, projekcija se definie na sledei nain:
Neka je R (A1,A2,...,An) relacija, a X podskup njenih atributa.
Ako se sa Y oznai komplement {A1,A2,...An}-X rezultat operacije projekcije relacije R po
atributima X glasi:
P[X] = {x | tako da postoji y da je <x,y> R}
Operacijom projekcija eliminiu se duplikati n-torki.
Selekcija (Restrikcija)
Selekcija je unarna operacija koja iz date relacije selektuje n-torke koje zadovoljavaju
zadati uslov ( "vadi" horizontalni podskup tabele).
Formalno se definie na sledei nain:
Dati su relacija R (A1,A2,...An) i predikat P, definisan nad njenim atributima. Rezultat
operacije selekcije glasi:
S[P]R = {x | x R i P (x)}
Spajanje (Join)
Spajanje je binarna operacija koja spaja dve relacije na taj nain da se u rezultatu
pojavljuju oni parovi n-torki jedne i druge relacije koji zadovoljavaju uslov zadat nad
njihovim atributima.
Formalno se definie na sledei nain:
Date su relacije R1 (A1,A2,...,An) i R2 (B1,B2,...,Bm) i predikat , definisan nad njihovim
atributima.
Ako se sa X i Y obelee skupovi atributa relacija R1 i R2, respektivno, rezultat operacije
spajanja ovih relacija (tzv. -spajanje) glasi ovako:
R1[x]R2 = {<x,y> | x R1 AND y R2 AND (x,y)}
Oznaka x za operaciju spajanja ukazuje na injenicu, oiglednu iz definicije spajanja, da
ova operacija nije primitivna operacija relacione algebre, ve da se moe izvesti uzastopnom
primenom operacije Dekartovog proizvoda (x) i selekcije po predikatu iz tako dobijene
relacije.
Ako je predikat definisan sa Ak = Bj, s tim da su i atributi Ak i Bj definisani nad istim
domenima, tada se takvo spajanje naziva ekvispajanje.
Oigledno je da se u rezultatu ekvispajanja uvek pojavljuju dve iste kolone. Ako se jedna od
te dve kolone izbaci, takvo spajanje se naziva prirodno spajanje.
alempije@beotel.yu
225
Deljenje
Deljenje je operacija pogodna za upite u kojima se javlja re "svi".
Formalno se definie na sledei nain:
Neka su A (X,Y) i B (Z) relacije, gde su X, Y i Z skupovi atributa takvi da su Y i Z
jednakobrojni, a odgovarajui domeni su im jednaki.
Rezultat operacije deljenja je
A[Y ) Z]B = R (X)
gde n-torka X uzima vrednosti iz A.X, a par <x,y> postoji u A za sve vrednosti y koje se
pojavljuju u B (Z).
Operacija deljenja nije primitivna operacija relacione algebre, ve se moe izvesti na sledei
nain:
A(X,Y)[Y ) ZB(Z) = P[XA - P[X((P[XA x B)- A)
Objanjenje:
P[X]A daje sve n-torke koje mogu da uestvuju u rezultatu.
P[X]A x B daje relaciju u kojoj se za svaku vrednost z iz B pojavljuju parovi <x,z> sa svim
vrednostima x.
P[X]A x B) - A ne sadri ni u jednom paru <x,z> one vrednosti x za koje u relaciji A, kao
vrednosti y, postoje sve vrednosti z.
Kompletan izraz, prema tome, jeste relacija koja sadri one n-torke x za koje postoje u paru
<x,y>, kao vrednosti y, sve vrednosti z.
Relaciona algebra je proceduralni jezik. Pomou operacija relacione algebre sainjava se
procedura koja dovodi do odgovora na postavljeni upit.
Mada je proceduralni jezik, relaciona algebra je znatno monija od klasinih programskih
jezika, koji su, takoe, proceduralni. Razlog za to je to operand relacione algebre
predstavlja relaciju (cela tabela), a operand operacija sa datotekama u klasinim jezicima je
rekord (vrsta tabele).
Moe se pokazati da se bilo koja relacija (bilo koji upit), izvodljiva iz skupa datih relacija,
moe dobiti procedurom (algoritmom) od tri koraka:
1. Dekartov proizvod svih relacija koje se koriste;
2. selekcija n-torki za koje se predikat selekcije sraunava u T;
3. projekcija rezultata po atributima koji se prikazuju.
Ova procedura se moe iskazati jednim optim izrazom relacione algebre:
P[A1, A2, ..., An (S[P (R1 x R2 x ... x Rm))
Meutim, ovakvo izvoenje operacija bilo bi veoma "skupo", jer bi rezultat Dekartovog
proizvoda relacija R1, R2, ..., Rm bio relacija sa k1 x k2 x ... x km
n-torki, gde su sa ki
oznaene kardinalnosti odgovarajuih relacija. Zbog toga se i definie operacija spajanja,
koja istovremeno obavlja Dekartov proizvod i selekciju, smanjujui na taj nain broj n-torki
koji se pretrauje. Pored toga, oigledno je da su znatno efikasniji algoritmi sa vie koraka,
u kojima bi se prvo vrile sve selekcije koje se mogu izvesti na pojedinanim relacijama,
zatim projekcije, pa tek onda spajanja.
226
alempije@beotel.yu
T
T
?
F
T
?
F
?
?
F
F
?
F
O
R
T
T
?
F
NOT
T
T
T
T
?
?
T
?
F
T
?
F
F
?
T
(Znak ? predstavlja nula vrednost, a moe se u okviru tablica istinitosti itati i kao
"moda".)
(2) Sraunavanje aritmetikih formula. Neka " oznaava neki od aritmetikih operatora (+,
-, *, /) i neka su x i y dve numerike vrednosti. Vrednost aritmetikog izraza "x " y" je, po
definiciji, nula vrednost, ako bilo x, bilo y, bilo oba dobiju nula vrednost.
(3) Skupovi sa nula vrednostima. Da li kolekcija {1,2,3,?}, predstavlja skup? Ako ? uzme
vrednost 1,2 ili 3, onda nije, ili se moe tretirati kao skup sa kardinalnou 3. Ako ? nije ni
1, ni 2, ni 3, onda gornja kolekcija predstavlja skup sa kardinalnou 4. To pokazuje da
postoje razliite nula vrednosti: nula vrednost koja nije 1, nula vrednost koja nije 2, zatim
nula vrednost koja nije ni 1, ni 2, i tako dalje. Operacije koje bi uzele u obzir razliitost nula
vrednosti bile bi veoma sloene. Zbog toga se operacije definiu jednom vrstom nula
vrednosti, a ostale nula vrednosti se tretiraju kao duplikati.
Imajui u vidu ove opte postavke, primeri nekih ranije definisanih operacija na relacijama
koje poseduju nula vrednosti izgledaju ovako:
alempije@beotel.yu
227
UNIJA
R3 = R1 U R2
R
1
a
a
?
?
R
2
b
?
b
?
x
?
?
y
b
?
R
3
a
a
?
?
x
b
?
b
?
y
DIFERENCIJA
R4 = R1 - R2
R
4
a
a
b
?
DEKARTOV PROIZVOD
Dekartov proizvod ostaje neizmenjen.
SELEKCIJA
Operacija selekcije ostaje neizmenjena, selektuju se one n-torke za koje se odgovarajui
predikat sraunava u T na osnovu trovrednosnih tablica istinitosti. Ova operacija se esto
zove i "TRUE SELECTION" (istinita selekcija).
S[A = aR1
A
a
a
B
b
?
PROJEKCIJA
Uzima se u obzir da su nula vrednosti duplikati (jedna vrsta nula vrednosti):
P[AR1
A
a
?
SPAJANJE
Operacija spajanja ostaje neizmenjena, jer operacije Dekartovog proizvoda i selekcije ostaju
neizmenjene. U rezultatu se pojavljuju one n-torke za koje se predikat spajanja sraunava u
T na osnovu trovrednosnih tablica istinitosti (TRUE TETA JOIN - istinito spajanje).
DODATNE OPERACIJE
Zbog postojanja nula vrednosti u bazi podataka, neophodno je da se definie logika
funkcija "IS_NULL", iji argument moe da bude neki skalarni izraz, a koja se sraunava u T
ako je vrednost tog argumenta nula vrednost, a inae uzima vrednost F.
MODA SELEKCIJA (MAYBE_SELECT)
Selektuju se one n-torke relacije za koje se predikat selekcije sraunava u nula vrednost na
osnovu trovrednosnih tablica istinitosti.
MAYBE_SELECT[A]R
3
?
?
b
?
228
alempije@beotel.yu
Ra = Rb[MAYBE_JOIN A = D]Rc
R
b
a1
b
1
b
2
b
3
a2
?
R
c
c1
c2
d
2
?
c3
Ra
e1
a1
c1
e1
e2
a1
c3
e3
e3
a2
b
1
b
1
b
2
b
2
b
3
b
3
b
3
c1
e1
c3
e3
c1
e1
c2
d
2
?
e2
a2
?
?
?
c3
e3
1
2
4
R
2
2
1
?
3
2
R
3
4
2
2
1
?
4
1
2
?
?
2
?
3
?
2
?
4
?
a1
b
1
b
1
c1
a2
c2
R
2
R
3
a1
a1
b
1
b
1
?
?
?
c1
a1
a2
c2
a2
a1
a1
a2
?
?
?
4
7
5
Relacioni raun
Relacioni raun je neproceduralni nain iskazivanja operacija, gde se pomou konstrukcije
predikatskog rauna prvog reda, u kome su promenljive date kao n-torka relacija ili domeni
relacija, koriste za definisanje osobina relacija koje se ele dobiti.
alempije@beotel.yu
229
(Prikazuju se vrednosti atributa A relacije R1, atributa B relacije R2, ... i atributa C relacije
Rn za one n-torke koje zadovoljavaju uslov definisan formulom f.)
230
alempije@beotel.yu
gde je R ime neke relacije, a svaki term ima oblik A:v, gde je A neki atribut relacije R, a v je
ili promenljiva ili konstanta.
Uslov lanstva se izaunava u T (TRUE) ako postoji n-torka u relaciji R, koja ima zadate
vrednosti navedenih atributa.
Opti izraz relacionog rauna domena je:
x, y, ...,z GDE_JE f
alempije@beotel.yu
231
Prilog 2.
Alati za projektovanje
informacionih sistema
i SUBP (CASE alati)
Razvoj informacione tehnologije karakteristie zaostajanje softvera u odnosu na hardver.
Pomenuti nedostatak softvera, koji se esto naziva softverska kriza, nastaje zbog niske
produktivnosti i visokih proizvodnih trokova.
Reenje softverske krize je u iskorienju osobina inenjera proverenih u praksi, i to, pre
svega, metodinosti i operativne discipline. Kao rezultat nastaje softverski inenjering koji u
sebi sadri sistematizovane i koordinirane aktivnosti potrebne pri projektovanju,
implementaciji, eksploataciji i odravanju softverskih proizvoda.
Dalji razvoj softverskih sistema na dananjem nivou mogunosti raunara i oekivanja
korisnika, zahteva visokostruan rad i programiranje za svoju realizaciju. Poto je runo
razvijanje softvera od najnieg nivoa skupo i dugotrajno i sa ne uvek predvidivim
rezultatima, postoji potreba da se razvoj softvera olaka, zbog ega je, pre vie od dvadeset
godina, nastalo softversko inenjerstvo kao disciplina.
Automatizacija softverskog inenjeringa na raunaru se izvodi posebnim alatom, iji je naziv
CASE (Computer Aided Software Engineering).
Definicija CASE
Computer Aided Software Engineering (CASE) alati slue za automatizaciju softverskog
inenjerstva i samim tim predstavljaju osnovni alat kojim se slui projektant informacionog
sistema.
Prve definicije CASE alata su podrazumevale da predstavljaju sisteme iji su ciljevi da
definiu, integriu i automatizuju to je mogue vie faza u razvoju softvera. CASE alati
omoguavaju da razvijanje softvera postane vie inenjerska delatnost, a manje
individualna umetnost i umee.
232
alempije@beotel.yu
Zavisno od toga koje faze projektovanja i implementacije CASE alati pokrivaju, oni se dele
na CASE alate na viem i CASE alate na niem nivou. CASE alati na viem nivou pokrivaju
prve faze u proizvodnji softvera (analizu sistema i projektovanje), a CASE alati na niem
nivou pruaju pomo u fazama programiranja.
CASE sistem predstavlja alat koji slui kao pomo projektantu informacionih sistema. Od
efikasnosti ovog alata moe da zavisi kvalitet gotovog proizvoda (informacionog sistema),
tako da je projektantu veoma vano da odabere pravi alat koji e ga zamenjivati u veini
manuelnih poslova vezanih za projektovanje.
Od efikasnosti CASE alata moe zavisiti kvalitet gotovog softverskog proizvoda. Uspenim
korienjem pravilno odabranog CASE alata moe se:
!" minimizirati vreme i trud (kotanje) razvoja softvera,
!" viestruko poveati produktivnost u pisanju softvera,
!" podii nivo kvaliteta,
!" poveati pouzdanost,
!" standardizovati proizvedeni softver.
2. vertikalna - po funkciji:
Integrisani CASE alati (Integrated CASE ili I-CASE) ine alate koji pokrivaju vie vremenskih
faza i vie funkcija. Primer takvog alata je Oracle Designer/2000, koji u sebi sadri itav niz
alata baziranih na integrisanom reniku i koji pokriva sve faze izrade jednog informacionog
sistema.
Alati mogu podravati razliite tehnike modeliranja poslovnih sistema, pa se i po tome mogu
podeliti. Najrasprostanjenije tehnike modeliranja su:
!" ER metodologija (ili proirena ER metodologija) po notaciji Chen-a, Bachman-a...;
!" SSA (sistemska strukturna analiza za modeliranje funkcionalnog aspekta posmatranog
sistema) po notaciji Yourdon/de Marco, Gane/Sarson, Ward/Mellor;
dijagrami toka programa (flow chart);
funkcionalne hijerarhije (dekompozicije poslovnih funkcija);
objektno-orijentisane metodologije, kao OMT i Grady Booch;
alempije@beotel.yu
233
234
alempije@beotel.yu
ALAT ZA
G RAFI
^KU O BRAD U
REPO ZI RI
TO JUM
KO RI I
SN ^KI
I TERFEJS
N
REPO ZI RI
TO JUM
M EN AD @ER
ALAT ZA
O BRAD U TEKSTA
AN ALI
ZATO R
SO FTVERA
Slika B.1. CASE arhitektura
Repozitorijum je aktivan renik podataka koji podrava definisanje razliitih tipova objekata
i njihovih veza. Alati za grafiku obradu omoguavaju razvijanje raznih tipova dijagrama,
kao i ocenu kompletnosti dijagrama na osnovu unapred definisanih pravila.
Alat za obradu teksta omoguava definisanje naziva, sadraja i detalja pojedinih stavki u
repozitorijumu. Korisniki interfejs je interpreter koji odreuje formu podataka koju treba
uzeti (grafika ili tekst). Analizator softvera je ekspertni deo CASE i on analizira ulaze kako u
dijagram tako i u repozitorijum, utvrujui njihovu leksiku kompletnost, a i proveravajui
kompatibilnost sa ostalim objektima u aplikaciji. Korisniki interfejs obezbeuje interaktivnu
i off-line obradu preko ekrana i izvetaja.
Idealni CASE treba da omogui potpunu automatizaciju kompletnog ivotnog ciklusa
projekta informacionog sistema, obuhvatajui poetnu inicijativu, nivo analize, rad na
odravanju softverskog proizvoda sve do njegovog povlaenja. Takav CASE postaje ia za
sve poslove softverskog inenjerstva, pa se rad na razvoju softvera koncentrie na logiki
aspekt projektovanja. Upravo zbog toga idealni CASE treba da omogui: izradu arhitekture
procesa organizacije, planiranje i praenje projekta, grupni rad na razvoju softvera,
aplikativno i runo definisanje procedura, normalizaciju podataka, generisanje eme baze
podataka, generisanje koda u korisniki odabranom programskom jeziku, automatsko
testiranje generisanog koda prema specifikaciji aplikacije i ekspertnu procenu savrenosti
proizvoda, kao i nain korekcije. Idealni CASE treba ve u repozitorijumu da prepozna
komponente koje su za ponovnu analizu, dizajn i kodiranje.
Po pravilu 40-20-40, koje vai za razvoj programskog sistema, 40% projektnog vremena
otpada na analizu i modelovanje, 20% je odvojeno za programiranje, a preostalih 40% za
testiranje. Trend dobavljaa je da se eliminie kodiranje, to ini samo jednu petinu
vremena potrebnu za razvoj softverskog proizvoda. Sadanji trenutak zahteva postojanje
CASE alata koji e pokriti proces testiranja, a samim tim i skratiti vreme izrade softverskog
proizvoda.
Budui CASE bie u mogunosti da u ostatku 40% projektnog vremena identifikuje delove
aplikacije koji mogu biti ponovo iskorieni. Iz navedenog se moe pretpostaviti i put
razvoja CASE alata, a to je efikasnije pokrivanje vremena za analizu i dizajn, kao i vremena
potrebnog za testiranje.
alempije@beotel.yu
235
Systems Modeling
Entity Relationship
Diagrammer
Entities
Attributes
Relationship
Systems Design
Data Diagrammer
Database
Design
Wizard
Tables
Columns
Constraints
Systems Generation
Funcion Hierarchy
Diagrammer
Process Modeller
Organization Units
Proces Steps
Flows
Stores
Triggers
Outcomes
Functions
Triggers
Entity/Attribute
Usages
Module Structure
Diagrammer
Application
Design
Wizard
Module/Menus
Module Network
Dataflow Diagrammer
Functions
Datastores
Dataflows
Externals
Triggers
Entity/Attribute
Usages
Forms Generator
Generators Forms and
Menus
Module Data
Diagrammer
Modules
Detailed Table Usages
(DTU)
Detailed Column Usages
(DCU)
Report Generators
Generated Reports
Preferences Navigator
Generator Preferences
Repository Administration
Repository Object Navigator, Matrix Diagrammer, Repository Reports
236
alempije@beotel.yu
Pri modeliranju veza meu entitetima zadaju se njihova opcionalnost (obaveznost veze se
predstavlja punom linijom, a neobaveznost veze isprekidanom linijom (sa svake strane veze
ponaosob) i njihova kardinalnost (veza sa gornjom granicom kardinalnosti 1 se predstavlja
jednom takom dodira linije, koja predstavlja vezu i odgovarajueg entiteta, dok se veza sa
gornjom granicom kardinalnosti M predstavlja razgranatom linijom sa tri dodirne take).
Posebne vrste veza koje su podrane ovim CASE alatom su: prenosive i neprenosive veze
(transferable i non-transferable), a odnose se na mogunost prevezivanja jedne pojave
entiteta sa drugom pojavom referentnog entiteta; sputeni kljuevi, kada se kroz ovakvu
vezu u klju zavisnog entiteta ukljuuje kompletan klju entiteta od koga egzistencijalno
zavisi; rekurzivne veze, koje modeliraju vezu jedne pojave entiteta sa drugom pojavom
istog entiteta; ekskluzivne veze, koje modeliraju situaciju u kojoj moe u jednom trenutku
postojati samo jedna od dve ili vie veza koje polaze od jednog entiteta.
alempije@beotel.yu
237
238
alempije@beotel.yu
ERwin
ERwin alat za modeliranje podataka je izgraen na konceptima koji su postavljeni IDEF1X
standardom.
ERwin/ERX je CASE alat namenjen modeliranju podataka ER (Entity Relationship) metodom,
koja je podrana IDEF1X (Integration DEFinition for information modeling) metoda, a
korisnik moe opciono koristiti i IE (Information Engineering) metodu. Modeliranje podataka
obuhvata dva aspekta: logiko definisanje modela i fiziki dizajn baze. Korienje ovog alata
podrazumeva istovremeni razvoj logikog modela podataka i fiziko definisanje baze, to
znai da nije potrebno nikakvo dodatno prebacivanje modela iz logikog nivoa u fiziki i
obrnuto.
U bilo kom trenutku definisanja logikog nivoa baze, pre nego to se pone sa fizikom
definicijom baze podataka, potrebno je odabrati ciljni server. To je DBMS na kome e model
biti realizovan. Izbor ciljnog servera nije definitivna stvar, to znai da se ciljni server moe
menjati. ERwin insistira na nezavisnosti modela od DBMS platforme.
Server FRE (Forward and Reverse Engineering) omoguava ivu vezu ERwin-ovog modela i
baze podataka. Konekcija se vri preko ODBC drivera. Na osnovu definisanog fizikog
modela podataka moe se kreirati baza na odabranoj DBMS platformi. ERwin poseduje i
modul za inverzni inenjering, koji ita sistemske kataloge postojee baze podataka, pa na
osnovu njih automatski kreira ER dijagram po metodologiji IDEF1X standarda.
Oba smera se svode na sinhronizaciju modela podataka sa bazom podataka i poreenje
modela sa stanjem baze. Osim sa bazom podataka, ERwin moe da poredi model sa SQL
emom ili drugim ERwin modelom. Model moe selektivno da se sinhronizuje sa promenama
u bazi podataka u oba smera. Omoguena je postepena nadogradnja baze podataka iz
ERwin-ovog modela podataka, uz kontrolu fizikih parametara baze podataka. Pri svakoj
sinhronizaciji sa bazom, ERwin prua detaljan izvetaj o svim promenama nastalim
sinhronizacijom. Isti model podataka se moe koristiti za generisanje vie baza podataka na
razliitim DBMS platformama, ili za konvertovanje aplikacija sa jedne DBMS platforme na
drugu.
ERwin/ModelMart (ili ERwin/AOS) proiren je na ERwin/ERX koji se standardno nalazi od
ERwin ver, 2.6. i predstavlja prvi alat koji omoguava viekorisniki rad na modelima
podataka (Workgroup). U tom sluaju je praenje razvoja modela podataka znatno
komplikovanije. Korisnici svoje promene na modelu pohranjuju u SQL bazu podataka,
smetenu na Microsoft SQL, Sybase ili ORACLE server, gde se vodi rauna o zakljuavanju
modela, verzijama, ovlaenjima korisnika i sl.
ERwin je razvio set specijalizovanih verzija, kao to su: ERwin for Visual Basic, ERwin for
Power Builder, ERwin for ORACLE, ERwin for SYBASE i sl. U kreiranju specijalizovanih verzija
ide se za tim da se pojaa sprega sa proizvodom za koji je verzija specijalizovana. Tako,
ERwin for ORACLE ima detaljniji rad sa ORACLE bazom, kao i interfejs ka ORACLE CASE-u.
Rad sa ostalim DBMS platformama je na nivou ERX verzije. Verzije za Power Builder i Visual
Basic imaju i proirenje koje gradi klijent-stranu aplikacije na navedenom alatu, bez obzira
na DBMS u koji se baza pohranjuje.
Verzija 2.6. ERwin-a obuhvata proirenje na ERwin/OPEN i predstavlja generalizaciju
specijalizovanih verzija ERwin-a koje tretiraju klijent-stranu aplikacije. Osim izbora servera,
korisnik bira i stranu klijenta. Ponueni su mu Power Builder i Visual Basic. U zavisnosti od
izbora klijenta, korisnik na modelu moe definisati koncepte vezane za klijent-stranu
aplikacije koja se oslanja na bazu podataka koju modelira. Izbor Target Client-a ne zavisi od
izbora Target Servera. Logic works najavljuje i jo neka proirenja kada je u pitanju klijentstrana, npr. interfejs ka Delphi-ju.
ERwin/Navigator je jeftin alat koji prua korisniku read-only pristup modelima podataka
razvijenim u Modelmart okruenju. Ovi dijagrami se mogu pretraivati i tampati i moe se
iz njih kreirati dokumentacija. Uz ista ogranienja je podrana i klijent-strana razvoja
alempije@beotel.yu
239
Komponente klijent
aplikacije
SQLWindows
Sistemi baza
ERwin
ModelMart
PowerBuilder
ER Model
Entiteti i atributi
Poslovna pravila
SQL DBMSs
ModelMart
Klase objekata
Modeli
poslovnih procesa
- AS/400
-DB2/MVS
-DB2/2
-Informix
-Ingres/OpenIngres
-InterBase
-NetWare SQL
-Oracle
-Progress
-Red Brick
-Rdb
-SqlBase
-SYBASE
-Teradata
-Watcom/
SQLAnywhere
Desktop DBMSs
OOwin
BPwin
-Access
-Clipper
-dBase
-Foxpro
-Paradox
240
alempije@beotel.yu
Artist
Artist CASE alat je razvijan da bi se pokrio celokupan razvoj informacionog sistema. Alat
omoguava automatizaciju prve faze u razvoju informacionih sistema, odnosno planiranje
razvoja informacionih sistema, koje se zasniva na BSP (Business System Planning) metodi.
Pored toga, poseduje i model koji podrava modelovanje procesa (SSA).
Modul koji omoguava modelovanje podataka podrava semantiki veoma bogat model,
tako da se moe modelirati neki skup podataka na veoma efektan i brz nain. Artist
podrava sledee koncepte: jak entitet, slab entitet, agregaciju, specijalizaciju i
generalizaciju (podtipove i nadtipove), vezu, identifikujuu vezu. Deo koncepata prikazan je
na primeru (slika B.6).
Izgled atributa i opis entiteta kroz formu dati su, takoe, na slici B.6. Nema komandi za
dodavanje, brisanje i ispravku atributa na samoj formi za opis entiteta, ve se to realizuje
na formi koja se aktivira komandom Attributes, nakon ega se pojavljuje forma za unos.
alempije@beotel.yu
241
MagiCASE
MagiCASE je grafiki orijentisan alat za modelovanje podataka. Zasnovan je na sledeim
konceptima: atribut, jak entitet, slab entitet, agregacija, specijalizacija i generalizacija
(podtipovi i nadtipovi), veza, identifikujua veza.
U samom alatu moe se menjati grafika prezentacija koncepata, ime je korisnik donekle
osloboen krutih stega metodologije, to predstavlja veliki podstrek u kreativnosti korisnika
programa.
242
alempije@beotel.yu
EasyCASE System Designer podrava sledee koncepte: atributi (za koje se mora naglasiti
da li je neki od njih obian atribut), primarni klju, spoljni klju, vievrednosni ili izvedeni
atribut, jak entitet, slab entitet.
Deo koncepata dat je primerom na gornjoj slici.
Na sledeoj slici data je forma za unos entiteta.
Podrava generisanje eme baze podataka za sledee server baze: ORACLE7, DB2, Rdb,
Ingres, SQLServer, SQLBase, SYBASE, Progress, kao i sisteme za upravljanje bazama
podataka na personalnim raunarima: Clipper, FoxPro, dBASE, Paradox.
alempije@beotel.yu
243
S-Designor
S-Designor je alat za modeliranje podataka, grafiki orijentisan, koji radi u okruenju
Microsoft Windows.
Osnovni elementi na kojima poiva su: atributi, entiteti, veze. Deo koncepata koje podrava
S-Designor dat je na slici B.12.
Iako prividno siromaan (poseduje samo jedan koncept od objekata), mogu se iskazati sve
vrste koncepata koje se pojavljuju u modelu objekti-veze. Prilikom definisanja entiteta i
njegovih osobina grafike prezentacije, rad sa njim je identian, nezavisno od toga koji se
koncept predstavlja. Naziv, atributi i opisi unose se na identian nain kod svih objekata, a
razlike izmeu njih postaju oigledne tek kada se opredeli za vrste veza kojima se odreeni
objekat povezuje sa ostatkom podmodela.
koji
omoguava
Prvi deo Planing Workstation podrava definisanje objekata, kao i njihovo povezivanje preko
asocijativnih matrica. Mogu se definisati organizaciona struktura i informacione potrebe,
ciljevi, poslovne funkcije, kritini inioci uspeha. Postoji mogunost utvrivanja prioriteta
projekata na osnovu postavljenih kritinih inilaca. Sve informacije se smetaju u centralnu
enciklopediju kojoj mogu da pristupe svi delovi alata.
Drugi deo Analisis Workstation, koji slui za modelovanje procesa i podataka, sadri itav
niz modula za crtanje dijagrama: dijagram sastavnih delova, dijagram toka podataka, ER
dijagram, dijagram tipova informacija, kao i akcioni dijagram.
Deo RAD Workstation je alat za izradu prototipova i omoguava ispitivanje poetnog dizajna
aplikacija za krajnjeg korisnika.
Delovi Design Workstation i Construction Workstation, na osnovu prethodnih informacija
koje su smetene u enciklopediji, mogu izgenerisati generike klijent/server-aplikacije
relacionih i hijerarhijskih baza podataka (Oracle7, Sybase SQL Server, DB2, DB2\2, IMS,
VSAM) i relacione baze koje podravaju ANSI standard. Generatori na osnovu generike
aplikacije izrauju klijent/server-aplikaciju za ciljni operativni sistem (UNIX.Motif, OS/2
Presentation Manager, DOS/Windows3.x, AS/400 i MVS).
244
alempije@beotel.yu
Platinum
Platinum je integrisan skup alata sa mogunou da podri proces razvoja informacionog
sistema, pratei ivotni ciklus procesa. Pojedini delovi, odnosno moduli razvijeni su tako da
podre pojedine faze razvoja, a da, opet, ine jednu vrstu celinu.
Platinum Proces Continuum pokriva aktivnosti upravljanja projektom razvoja informacionog
sistema, to ukljuuje izbor metodologija, planiranje i praenje projekta, kao i praenje
trokova uz mogunost izvetavanja iz svih aktivnosti.
Platinum Paradigm Plus je esencijalni deo koji podrava fazu analize i dizajna. Alat je
izgraen tako da potpuno podri objektnu analizu i objektno projektovanje. To je grafiki
orijentisan alat sa mogunou rada na raznim platformama i operativnim sistemima.
Podrava identifikaciju poslovnih zahteva, izgradnju modela i komponenti aplikacije.
Faza konstrukcije podrana je preko sledeih alata:
!" Platinum AionDS
!" Platinum ObjectPro
!" Platinum RuleServer
!" Platinum SQL-Station Tool Suite
Veoma vana faza testiranja pokrivena je modulima:
!" Platinum Final Exam Tool Suite
!" Platinum Final Exam Internet Test
uglavnom
!" Objektno oirjentisane metode jednostavno e zauzeti mesto postojeih metoda, jer su
efikasnije; meutim, to e biti lagan proces.
!" CASE tehnologija e zameniti 4GL tehnologiju.
Konano, oekuje se vrsta veza izmeu CASE alata i proizvoda za razvoj desktop-aplikacija,
kao to su: PowerBuilder, MS SQL SERVER, MS ACCESS, Visual Basic i drugi.
alempije@beotel.yu
245
Literatura
1. dr Alempije Veljovi, Integracija zahteva sistema kvaliteta u poslovanju preduzea,
Savezi inenjera i tehniara Jugoslavije, Beograd, 1996. godina
2. dr Branislav Lazarevi: "Projektovanje informacionih sistema", interni materijal, FON,
Beograd, 1990.
3. IT E 04-2-1, Sistemska analiza, podsetnik Intertrade, TOZD zastupnitvo IBM,
Izobrazevalni centar, Ljubljana, Ver.1.0, 1984.
4. IT FA 40-2-1, Planiranje informacionih sistema, podsetnik Intertrade, TOZD zastupnistvo
IBM, Izobrazevalni centar, Ljubljana, Ver.1.0, 1984.
5. dr Vladimir R. Milai, Sistem Analiza, Proizvodni informacioni sistem, Institut Mainskog
fakulteta, Odeljenje za primenu kompjutera, Beograd, 1974.
6. User Guide for BPwin.
7. User Guide for ERwin.
8. Veljovi A. i dr., Projekat revizije po standardu ISO 9000:2000 i veza sa informacionim
sistemom, Sojaprotein, Beej, 2000.godina
9. Veljovi A. i dr., Idejni projekat informacionog sistema programa A-85, interni materijal,
1989.
10. Veljovi A. i dr., Detaljni projekat informacionog sistema programa A-85, interni
materijal, 1990.
11. ERwin, Methods Guide, 1995.
12. Veljovi A. Razvoj informacionog sistema kvaliteta, materijal za istoimeni seminar,
Savez ininjera i tehniara Jugoslavije, Beograd.
13. Veljovi A. Kako definisati informacije potrebne raunaru vezane za postavljanje sistema
kvaliteta serije standarda JUS ISO 9000. Seminar, Jugoslovenska organizacija za
standardizaciju i kvalitet (JUSK), Beograd, 20 - 21. decembar 1994. godine.
14. Veljovi A. Gotova reenja upravljanja kvalitetom za JUS ISO 9004 orjentisanih
raunarskoj obradi podataka. Seminar, Jugoslovenska organizacija za standardizaciju i
kvalitet (JUSK), Beograd, 14 - 15. mart 1995. godine.
15. Veljovi A. Nauite da kreirate informacioni sistem za upravljanje kvalitetom,
Informativno instruktivni seminar, Savez ininjera i tehniara Jugoslavije, Beograd, 22 23. juna 1995. godine.
16. Veljovi A. Elementi osiguranja kvaliteta u ambijentu osvajanja novog proizvoda
korienjem CASE alata, 21 JUPITER konferencija sa meunarodnim ueem, 1.
simpozijim KVALITET, strana 5.97-5.103., Beograd, februar 1995.
17. Veljovi A., Dekomponovanje procesa petlje kvaliteta, asopis za unapreenje kvaliteta
Kvalitet, broj 5-6, strana 31-33, Poslovna politika, Beograd, 1995.
246
alempije@beotel.yu