Professional Documents
Culture Documents
US - Uvod U Baze Podataka
US - Uvod U Baze Podataka
US - Uvod U Baze Podataka
U VOD U
BA Z E P O DTA K A
Peto izdanje
Beograd, 2010.
Tira:
870 primeraka
tampa:
Mladost Grup
Loznica
ISBN: 978-86-7912-252-0
poglavlje12
Sadraj
Predgovor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Osnovni koncepti i denicije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1. Podatak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. Informacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3. Metapodaci - podaci o podacima (metadata) . . . . . . . . . . . . . . 10
2.4. Sistem za upravljanje bazama podataka . . . . . . . . . . . . . . . . . . . 11
3. Klasian sistem zasnovan na datotekama . . . . . . . . . . . . . . . . . . . 13
3.1. Nedostaci sistema zasnovanog na datotekama . . . . . . . . . . . . . 15
4. Pristup zasnovan na bazama podataka . . . . . . . . . . . . . . . . . . . . . 17
4.1. Prednosti pristupa zasnovanog na bazama podataka . . . . . . . . 18
4.2. Trokovi i rizici pristupa zasnovanog na bazama podataka . . 19
4.3. Tipino okruenje baze podataka . . . . . . . . . . . . . . . . . . . . . . . . 21
5.Primene baza podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.1. Line baze podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2. Baze podataka za radne grupe . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3. Baze podataka odeljenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4. Baze podataka organizacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.5. Internet, Intranet i Extranet baze podataka . . . . . . . . . . . . . . . . 29
Sadraj
III
Sadraj
Sadraj
VII
VIII
Sadraj
poglavlje12
Predgovor
Knjiga Uvod u baze podataka je namenjena studentima Univerziteta Singidunum za pripremu ispita iz predmeta Baze podataka, ali moe biti od koristi i
svima onima koji kroz praksu i teoriju savladavaju baze podataka. Nastala je kao
rezultat viegodinjeg rada na Fakultetu za nansijski menadment i osiguranje i
na Fakultetu za poslovnu informatiku Univerziteta Singidunum. U toku izlaganja materije autori se nisu vezivali za konkretan softverski sistem za upravljanje
bazama podataka, ve su nastojali da na jednom mestu prikau sve koncepte
u bazama podataka u skladu sa savremenim kretanjima u ovoj oblasti. Dominantno je razmatran relacioni model podataka koji jeste osnova za najvei broj
poslovnih aplikacija.
Knjiga je podeljena u nekoliko delova. Na poetku se iznose osnovni koncepti i denicije koje se koriste u bazama podataka. italac se polako vodi od
klasinih sistema za rad sa podacima, koji su zasnovani na programskim jezicima
i datotekama, ka pravim bazama podataka koje se zasnivaju na sistemu za upravljanje bazama podataka. U nastavku se razmatra modelovanje i uvode razliiti
modeli podataka, onako kako su se istorijski pojavljivali. Baze podataka ne postoje same za sebe. One su osnova informacionih sistema, kako velikih tako i malih
organizacija, a projektuju se sa ciljem dobijanja pravovremenih informacija za
donoenje odluka. Zbog toga je posebna panja posveena strukturnoj sistemskoj
analizi, kao poetnom koraku u projektovanju baza podataka. Detaljno je razmotren relacioni model podataka, a u okviru njega posebna panja je posveena integritetskim komponentama, koje omoguavaju odravanje konzistentnosti jedne
baze podataka. U nastavku je ukratko razmatrana relaciona algebra kao osnova za upitne jezike, a zatim su prikazane mogunosti ANSI SQL jezika za rad sa
Predgovor
Predgovor
Autori
Poglavlje 1.
Uvod
Baze podataka se koriste za prikupljanje, uvanje i manipulaciju podacima
na osnovu kojih se dobijaju nove informacije u razliitim organizacijama, kao
to su poslovni sistemi, zdravstvo, kolstvo, vladine institucije itd. Svakodnevno
ih koriste pojedinci putem linih raunara, radne grupe putem mrenih servera
i svi zaposleni putem aplikacija koje se nalaze u poslovnim sistemima. Bazama
podataka takoe pristupaju kupci i drugi udaljeni korisnici korienjem razliitih
tehnologija kao to su govorni automati, web itai (browser-i), digitalni telefoni i sl. Zbog velike konkurencije u svim oblastima poslovanja, moe se oekivati
da tehnologija baza podataka dobije jo vei znaaj. Menaderi trae nain da iz
baze podataka bre dou do novih saznanja kako bi bili u prednosti u odnosu na
svoju konkurenciju. Na primer, detaljna baza podataka o prodaji se moe iskoristiti kako bi se saznalo koji kupci kupuju koje proizvode, to se koristi kao osnova za reklamu i marketinku kampanju. Organizacije mogu da ukljue u svoje
baze podataka procedure koje se zovu okidai - trigeri (alerts) koji upozoravaju o
moguim vanrednim dogaajima (kao to su predstojei nedostatak zaliha neke
robe ili ansa za prodaju dodatne koliine robe) i na osnovu kojih mogu nastati
odgovarajue reakcije. Mnoge organizacije danas prave posebne baze podataka
koje se zovu skladita podataka (data werehouses) koje slue za aplikacije za
podrku u odluivanju.
Izuavanje baza podataka i sistema za upravljanje bazama podataka jesu
osnova za izuavanje informacionih sistema. Strunjak za informacione sisteme
mora biti spreman da analizira potrebe preduzea i da dizajnira i implementira
baze podataka u okviru razvoja informacionog sistema jedne organizacije. Takoe,
mora biti spreman da se konsultuje sa krajnim korisnicima i da im pokae kako
Uvod
Uvod
NEKADA
DANAS
Slika 1.1. Baze podataka nekada i danas
Uvod
Poglavlje 2.
2.1. Podatak
Istorijski, pod terminom podatak se podrazumeva injenica o nekom predmetu i/ili dogaaju koja se moe zabeleiti i sauvati na raunaru. Na primer, u
bazi podataka nekog prodavca podaci bi bile injenice kao to su ime, adresa i
broj telefona kupca. Ovakav tip podatka se zove struktuirani podatak. Najvaniji
struktuirani podaci su brojevi, karakteri i datumi (vreme). Dananje baze podataka pored struktuiranih podataka sadre i druge vrste podataka kao to su razna
dokumenta, mape, fotograje, zvuk, ak i video zapise. Na primer, u bazi podataka
nekog prodavca mogla bi se nai i slika kupca. Takoe bi se mogao nai zvuni ili video zapis poslednjeg razgovora sa kupcem. Ova vrsta podatka se naziva
Osnovni koncepti i definicije
nestruktuirani podatak ili multimedijalni podatak. Multimedijalni podaci se najee mogu nai na web serverima i u Internet bazama podataka.
Danas se podatak denie kao sauvana reprezentacija predmeta i/ili
dogaaja koja ima smisla i vanosti za korisnika baze podataka. Ova denicija
ukljuuje i struktuirane i nestruktuirane podatke. esto se u okviru jedne baze
podataka mogu nai kombinovani struktuirani i nestruktuirani podaci kako bi
se stvorilo multimedijalno okruenje. Na primer, automehaniarska radnja moe
kombinovati struktuirane podatke (koji opisuju klijenta i njegova kola) sa multimedijalnim podacima (slika automobila i skenirana kopija osiguranja).
Pod podatkom se podrazumeva injenica prihvaena kao takva tj. kakva
jeste. Podatak sam po sebi nema znaenje, tek kada se interpretira nekom vrstom
sistema za obradu podataka poprima znaenje i postaje informacija. Tipino, termin podatak se odnosi na ono to je u bazi podatak. Dakle, podatak je sirova
injenica - neobraena informacija. Raunar vri obradu podataka, prema zadatom programu, te se na osnovu saznanja sadranih u podacima, a kao rezultat
njihove obrade, stiu nova saznanja - informacije.
2.2. Informacija
Termini podatak i informacija su usko povezani i esto se koriste kao sinonimi. Meutim, korisno je razlikovati termine podatak i informacija. Informaciju
deniemo kao podatak koji je bio obraen na takav nain da se znanje osobe
koja koristi podatak povealo. Na primer, razmotrimo sledei spisak injenica:
Petar Petrovi
1506983710325
Marko Markovi
0211979850123
Janko Jankovi
1112985830456
-----------
-----------
JMBG
Smer
Godina upisa
Petar Petrovi
1506983710325
PP
2002
Marko Markovi
0211979850123
RGD
2001
Janko Jankovi
1112985830456
PP
2001
-----------
-----------
BIZ
2003
Tip
Ime
Text
30
JMBG
Integer 1
Smer
CHAR
Smer na fakultetu
Studentska sluba
Godina upisa
Studentska sluba
GodUpisa Number
Izvor
3
2001
znae, i koja je razlika izmeu podataka koji na prvi pogled izgledaju isto. Upravljanje metapodacima je veoma bitno jer podaci bez jasnog znaenja mogu biti
zbunjujui, pogreno protumaeni ili puni greaka.
11
Termini baza podataka i upravljanje bazom podataka se ponekad meaju. Struno govorei, baza podataka je uvek skup injenica, a ne raunarski
program.
DBMS je uveden kao interfejs izmeu korisnika (korisnikih programa,
aplikacija) i zapisa baze podataka na disku. Korisniki programi ne pristupaju
podacima direktno, ve komuniciraju sa ovim softverom (programom). DBMS
upravlja strukturom baze podataka: denie objekte baze, njihova svojstva (atribute), dozvoljene vrednosti atributa, veze izmeu objekata, ogranienja nad
objektima i meusobnim vezama. Omoguava manipulaciju podacima u bazi:
unoenje, brisanje i izmene, tj. omoguava njeno odravanje. Kontrolie pristup
podacima: ko moe da pristupi podacima, kojim podacima i ta moe sa njima da
radi.. DBMS dozvoljava deljenje BP izmeu vie aplikacija/korisnika i ini upravljanje podacima uspenijim i delotvornijim Uobiajeno je da kada se govori o
softveru za baze podataka, onda se misli upravo na DBMS. DBMS upravlja interakcijom izmeu krajnjih korisnika (aplikacija) i baze podataka. Krajnji korisnici
imaju bolji pristup veem broju bolje organizovanih podataka
12
Poglavlje 3.
13
Da bi objasnili osnovne karakteristike sistema zasnovanog na datotekama, posmatrajmo jednu fabriku sa odreenim proizvodnim programom. Pretpostavimo da su nabavljene raunarske aplikacije za voenje poslovanja ove
fabrike realizovane na klasinim sistemima koji se zasnivaju na datotekama.
Ovaj pristup dizajnu informacionog sistema se fokusira na potrebe za obradom
podataka pojedinanih odeljenja, a ne na potrebe organizacije kao celine. Kada
bi se kod korisnika javila potreba za novim sistemima pisali bi se novi raunarski programi za individualne aplikacije kao to su kontrola proizvoda, prijem
rauna, ili kadrovsko poslovanje. Svaki od programa pravi se tako da odgovara
potrebama odreenog odeljenja ili radne grupe. Prema tome, ne postoji opti
plan, mapa ili model kojim bi se rukovodili za planiranje razvoja sistema. Tri
raunarske aplikacije (A, B i C) pomou kojih se obrauju podaci zapisani u
datotekama su prikazane na slici 3.2. Programima se odravaju tri nezavisna sistema porudbine, naplate i plate. Na slici se takoe vide osnovne datoteke vezane za svaku aplikaciju. Na primer, proces porudbina ima tri datoteke: podaci
o kupcu, podaci o proizvodima, podaci o porudbinama. Neke od datoteka se
ponavljaju u sva tri procesa (redudansa) to je tipino za sistem obrade podataka koji se zasniva na datotekama.
Redudansa podataka
Kako se u prikazanom sistemu procesi odvijaju nezavisno jedni od drugih,
ponavljanje podataka nije izuzetak ve je pravilo. Na primer, na slici 3.2
proces porudbina ima datoteke sa osnovnim podacima o proizvodima dok
proces naplate ima datoteku o cenama proizvoda. Dakle, obe ove datoteke
sadre podatke o istim proizvodima kao to su: cena po jedinici proizvoda,
opis proizvoda, i koliina u skladitu. Zbog nepotrebnih duplikata potreban
je vei prostor za njihovo uvanje kao i vie truda i rada pri njihovom auriranju. Neplanirana redudansa podataka moe da dovede do gubitka podataka. Na primer, isti podaci mogu se voditi pod razliitim imenima atributa u
razliitim dokumentima, ili obrnuto, isto ime se moe koristiti za razliite
vrste podataka.
15
Vano je znati da veina mana klasinog sistema zasnovanog na datotekama, koje smo u prethodnom delu teksta pominjali, mogu isto tako biti ogranienja za bazu podataka, pogotovo ako se ne promeni pristup razvoju baze
podataka. Na primer, ukoliko preduzee razvije nekoliko zasebnih baza podataka (recimo, za svaku radnu jedinicu ili proces po jednu bazu) sa malom ili nikakvom vezom izmeu njih, onda moe doi do bespotrebnog ponavljanja istih
podataka, ogranienja deljenja podataka, produavanja vremena potrebnog za
razvoj i preterane potrebe za odravanjem programa.
16
Poglavlje 4.
Pristup zasnovan na
bazama podataka
Pristup zasnovan na bazama podataka potencira integraciju i deljenje
podataka izmeu svih odeljenja jedne organizacije. Ovaj pristup zahteva potpunu
promenu u nainu razmiljanja, poevi od najvieg nivoa upravljanja. Takva promena naina razmiljanja za veinu organizacija je veoma teka.
Da bi objasnili pristup zasnovan na bazama podataka posmatrajmo prethodno razmatrani zastareli informacioni sistem fabrike koji se klasino zasnivao
na datotekama. Koncept pristupa razvoju informacionog sistema zasnovanog na
bazama podataka prikazan je na slici 4.1. Odmah se moe uoiti da podaci koji
su prethodno uvani u vie razliitih datoteka, sada su integrisani u jedinstvenu
bazu podataka. Takoe, metapodaci koji opisuju ove podatke se nalaze zajedno sa
njima u bazi podataka. Sistem za upravljanje bazama podataka prua mogunost
stvaranja razliitih pogleda na istu bazu podataka (ili baze podataka) za razliite
korisnike u organizaciji. DBMS dozvoljava korisnicima da dele, pretrauju, pristupaju i auriraju integrisanim podacima.
17
18
19
starijih modela baza podataka i softvera za upravljanje bazama podataka. Na sreu, relacioni modeli (kao i noviji objektno-orjentisani modeli) nemaju ovih problema. Drugi razlog za neuspeh da se iskoriste ove prednosti, je loe planiranje
i implementacija baza podataka ak ni najbolji softver za upravljanje bazama
podataka ne moe da prevazie ovakve manjkavosti. Pristup zasnovan na bazama podataka sadri neke dodatne trokove i rizike koji se moraju reavati kada
se sistem pone primenjivati.
20
problema je od izuzetne vanosti. Moderan sistem za upravljanje bazama podataka obino sam obavlja izradu sigurnosnih kopija i oporavak
podataka u sluaju havarija.
Konikti u organizaciji
Deljena baza podataka zahteva saglasnost u vezi sa denicijama i vlasnitvom podataka, kao i utvrenu osobu ili osobe odgovorne za odravanje
podataka. Iskustvo je pokazalo da nesuglasice u pogledu denicija podataka, formata i kodiranja podataka, prava na auriranje deljenih podataka i sl.
su esta i vrlo teka tema za reavanje. Da bi se ovi problemi reili potrebno
je da je organizacija u potpunosti posveena uvoenju/koritenju pristupa
zasnovanog na bazama podataka. Zatim je potreban sposoban administrator baze podataka kao i smislen pristup razvoju baza podataka. Ukoliko podrka i posveenost glavnih menadera za pristup okrenut bazama
podataka izostane, velika je ansa da e krajnji korisnici razviti vei broj
samostalnih baza podataka. Ove baze podataka e teko pruiti prednosti
koje smo prethodno opisali. U krajnosti, one mogu da dovedu do donoenja
loih odluka to naravno ugroava celu organizaciju.
21
6.
7.
8.
9.
Sa unapreenjem softvera, korisniki interfejs postaje sve laki za upotrebu. Primeri za ovakav napredak su sistemi zasnovani na menijima, sistemi sa mogunou pristupa Internetu, i sistemi koji prepoznaju govor (prihvataju govorne komande). Cilj ovih sistema je da to vie krajnjih korisnika
moe da koristi raunar, to znai da korisnici koji nisu raunarski eksperti
mogu sami da naprave izvetaje i koriste jednostavne aplikacije. Naravno, u
ovakvom okruenju administratori baza podataka moraju da obrate panju
na bezbednost baze podataka. Okruenje baze podataka prikazano na slici
4.2 predstavlja integrisani sistem hardvera, softvera i ljudi koji je napravljen
da olaka skladitenje, preuzimanje, i kontrolu izvora informacija i da povea
produktivnost preduzea.
23
Poglavlje 5.
25
Line baze podataka se iroko primenjuju jer esto mogu bitno unaprediti
produktivnost pojedinca. Meutim, one sadre jedan faktor rizika: podatke ovih
baza nije lako deliti sa drugim korisnicima. Na primer, ako bi menader prodaje
eleo celokupan spisak klijenata i kontakata, to se ne bi moglo ni brzo ni lako uraditi uzimanjem podataka iz linih baza svakog od prodavaca. Ovo ilustruje veoma
est problem: ako su neki podaci od interesa jednom oveku, onda su verovatno
(ili e brzo postati) od interesa i drugim ljudima. Zbog toga, line baze podataka
bi trebalo svesti na korienje pod posebnim okolnostima (npr. u veoma malim
preduzeima) gde je verovatnoa potreba za deljenjem podataka izmeu korisnika izuzetno mala.
Koje vetine, znanje poseduje odreeni radnik? I obrnuto, koji radnici poseduju odreenu vetinu, znanje?
2.
3.
Koje alate za razvoj baze podataka i aplikacija treba koristiti u sluaju ovako
kompleksnog okruenja?
Primene baza podataka
27
4.
5.
6.
2.
podataka) koja prua podrku u obavljanju raznih poslova. Ove baze podataka
imaju podatke o pacijentima, doktorima, medicinskim uslugama, poslovanju i
drugim bitnim entitetima. Baza podataka prua adekvatnu podrku za veinu
poslova u svakom pojedinanom medicinskom centru. Meutim, postoji potreba
za jedinstvenim pogledom na celu organizaciju; na primer, da bi se videla sva
poslovanja sa jednim dobavljaem ili pacijentom. Poveanje produktivnosti se
moe postii uvoenjem, na primer, centralnog sistema za naruivanje materijala za sve zdravstvene centre i rasporeivanjem osoblja i usluga koje vre na
sve zdravstvenim centre. ERP sistem omoguava uvoenje prethodnih promena.
Donoenje odluka na nivou cele organizacije, u vezi sa poslovanjem sa dobavljaima, i podnoenje izvetaja raznim agencijama zahteva sakupljene svih prethodnih
podataka i informacija. Da bi se zadovoljile ove potrebe, organizacija koristi skladite podataka koje se odrava i nalazi u seditu organizacije. Podaci koji se nalaze
u skladitu podataka su preuzeti (i potom sumirani) iz pojedinanih baza podataka svakog medicinskog centra. Ovaj proces preuzimanja podataka se odvija periodino putem telekomunikaciono- raunarske mree.
29
eljenog proizvoda ima u skladitu. Tada radnici u maloprodajnim objektima mogu da obaveste svoje kupce i da porue eljeni komad proizvoda preko
Interneta. Internet konekcija je kongurisana kao extranet to znai da samo
odobrene maloprodaje mogu da pristupe intranet-u fabrike.
Sve vee korienje Interneta, svetske mree koja povezuje korisnike, nebitno koje platforme je dovelo i do promena u okruenju baza podataka. Prihvatanje Interneta od strane poslovnog sveta je dovelo do bitnih promena u davno
utvrenim modelima poslovanja. Veoma uspene kompanije su bile ugroene
zbog novih kompanija koje su prihvatile Internet pomou koga su unapredile informisanje i usluge koje su pruale svojim klijentima, i koje su zaobile
tipine tokove marketinga i distribucije proizvoda. Na primer, kupci konguriu i poruuju svoj PC raunar direktno od proizvoaa raunara. Informacije o
upranjenim mestima i aktivnostima organizacije se mogu dobiti preko Interneta za veinu organizacija.
Svaka od ovih radnji zahteva podrku baze podataka. Lak pristup Internetu svih vrsta platformi omoguava kompanijama da reorganizuju svoje poslove
i razviju bre aplikacije i to po manjim trokovima. Standardni interfejsi omoguavaju veu produktivnost korisnika, uz manje provedenog vremena na obuci, i
manju potrebnu podrku. Osnova razvoja korisnikove aplikacije je prikljuivanje
baze podataka iz koje se mogu dobiti svee informacije. Kada je baza podataka povezana sa nekom Internet lokacijom, korisnici preko Web browser-a mogu
da postavljaju odreena pitanja na koja e dobiti odgovore bazirane na sveim
informacijama. Odgovaranje na pitanja je automatsko; nema potrebe da se putem
telefona prolazi kroz niz opcija da bi se postavilo pitanje nekoj osobi i da bi se
zatim od nje ekao odgovor. Internet baze podataka su nezamenljive u razvoju
sajtova za kupovinu preko Interneta. Kompanije prate sva deavanja na sajtu kako
bi doli do to vie informacija o svojim klijentima (obrazci pri kupovini, navigacija sajtom, duina zadravanja na svakoj stranici i tome slino) kako bi to vie
unapredili svoj odnos prema kupcima.
Veina primera koji su navedeni prikazuju Business-to-Customer (B2C)
veze. Kada su kupci kod nekih rmi druge rme, takav odnos se obino naziva
B2B (Business-to-Business) odnos. Internet se koristi da olaka B2C odnos, zato
to su kupci obavezno spoljni faktor u odnosu na rmu, i mogunost kupca da
pristupi poslovnim podacima i informacijama je od velike vanosti za uspean
odnos. Dozvoljavanjem pristupa poslovnim bazama podataka, od strane osoba
30
31
Poglavlje 6.
33
Nakon Drugog svetskog rata, u kompanijama i vladinim institucijama poeli su se pojavljivati prvi elektronski raunari. Oni su se esto koristili upravo za
jednostavne linearne baze podataka, najee za raunovodstvo. Ipak, vrlo brzo,
bogati kupci su poeli da zahtevaju vie od njihovih ekstremno skupih maina.
Sve je to vodilo do ranih baza podataka. Zanimljivo, ove rane aplikacije su nastavile da koriste Hollerith-ove buene kartice, neznatno modikovane u odnosu na
originalni dizajn. Neeksibilnost polja iste duine, baze podataka pokretane 80
kolonskim buenim karticama, uinile su rane raunare metom napada i ala i
potpunom misterijom za obinog oveka.
Veina prvobitnih baza podataka se odnosila na specine programe
napisane za specine baze podataka. Za razliku od modernih sistema koji
mogu biti primenjeni na potpuno razliite baze podataka, ovi sistemi su bili
usko povezani za bazu podataka da bi osigurali brzinu na utrb eksibilnosti.
Sistemi upravljanja bazama podataka su se prvi put pojavili tokom 1960-tih
godina i nastavili su da se razvijaju tokom sledeih decenija. U veini sluajeva,
period uvoenja je dugo trajao, skoro deceniju pre navedene godine poetka
upotrebe. Na primer, relacioni model je prvi put denisan od strane E.F.Codd
u tekstu objavljenom 1970 godine. Meutim, relacioni model nije bio iroko
prihvaen sve do 1980-tih godina.
1960te
Tokom ovog perioda, sistemi zasnovani na datotekama su i dalje imali
dominantnu ulogu. Pa ipak, prvi sistemi za upravljanje bazom podataka su uvedeni u ovoj deceniji, i korieni su najpre samo kod velikih i sloenih projekata, kao to je to bio projekat sletanja Apollo-a na Mesec. Ovaj period moemo
posmatrati kao period dokazivanja, u kom je demonstrirana sposobnost ovih
sistema da upravljaju ogromnim koliinama podataka. Takoe, prvi napor da se
standardizuju poduzet je sa formiranjem DBT Grupe (Data Base Task Group),
tokom kasnih 60-ih godina.
1970te
Tokom ove decenije, upotreba sistema za upravljanje bazom podataka
je postajala komercijalna stvarnost. Hijerarhijski i mreni sistemi za upravljanje podacima su uvedeni, velikim delom zbog potrebe za sistemom koji
e moi da upravlja sloenim strukturama podataka, kao to su rauni fabrika
34
pri nabavci sirovina, kojima je bilo izuzetno teko upravljati preko konvencionalnih metoda. Ovi modeli se i sutinski smatraju prvom generacijom sistema za upravljanje bazom podataka. Oba pristupa su se iroko primenjivala,
zapravo, mnogi od tih sistema su u upotrebi i danas. Pa ipak, imali su nekoliko
velikih nedostataka:
35
36
1.
Mogunost upravljanja sve sloenijim tipovima podataka. Ovi tipovi ukljuuju i multidimenzionalne podatke, koji su ve dobili na vanosti u aplikacijama skladitenja podataka.
2.
Nastavak razvoja univerzalnih servera. Zasnovani na sistemu tree generacije DBMs-a, to su serveri koji mogu da upravljaju irokom lepezom raznih
tipova podataka, tako da budu transparentni svim korisnicima. Bie naroito vani kod Internet aplikacija.
3.
4.
5.
6.
7.
I na kraju skale se nalazi dalje irenje PDA, to e dovesti do poboljane sinhronizacije malih baza podataka i poboljanje brzine beinog
prenosa. Bluetooth beini standard e u velikoj meri ubrzati razvoj
beine konekcije na Internet. Ali e i nametnuti pitanje daljeg razvoja
zatite podataka.
37
Poglavlje 7.
Modelovanje
Informacioni sistemi pojedinih rmi omoguavaju upravljanje podacima
koji su bitni za njeno poslovanje. Meutim, broj internih podataka i podataka
iz okruenja je ogroman te je nemogue sve podatke i sve uoene detalje opisati i sauvati unutar informacionog sistema. Postupkom selekcije identikuju se i
uvaju samo relevantni podaci. Time se dolazi do pojma modela podataka. On je
izraz i posledica zahteva za obradom podataka relevantnih za odreeno podruje primene. Modeli su ovekovo sredstvo pojednostavljivanja problema i njegovo posmatranje samo sa stanovita bitnih za ciljeve analize. Objekt posmatranja (npr. automobil) ima uvek vie osobina (atributa) od kojih u datom trenutku
analize moe biti dovoljan samo njihov manji broj (npr. samo registarski broj, tip
automobila, ime i prezime vlasnika). To su najvaniji atributi potrebni u postupku
pretraivanja i pronalaenja vlasnika vozila na osnovu registarskog broja vozila
unutar jednog informacionog sistema. Ostali atributi kao to su boja, godina proizvodnje, broj sedita i sl. nisu bitni (mogu se zanemariti ) za takav postupak. ovek, obdaren sposobnostima apstraktnog naina miljenja, stvara jedan apstraktni
model realnog sveta. Takav model realnog sveta (objekta posmatranja) zasniva se
na simbolima i zove se konceptualni model podataka.
Modelovanje podataka se radi paralelno sa analizom potreba. Kako se informacije prikupljaju, objekti se identikuju, dodjeljuju im se imena koristei termine
bliske krajnjim korisnicima. Objekti se onda modeluju i analiziraju koritenjem
dijagrama objekti-veze (ER dijagrami). Dijagram se moe pregledati od strane
dizajnera i krajnjeg korisnika da bi se osigurala njegova kompletnost i tanost.
Ako model nije taan, modikuje se, to ponekad zahteva da se prikupe dodatne
Modelovanje
39
40
Modelovanje
7.2. Entiteti
Modelima podataka nastoji se preslikati realan sistem. Realan sistem sastoji
se od objekata iz realnog sveta i njihovih veza izmeu kojih se uspostavljaju razliiti odnosi. Pod entitetom se podrazumeva sve to se moe jednoznano odrediti,
identikovati i razlikovati. Tako iroko postavljena denicija pokazuje da entitet
moe biti svaki realan ili apstraktan objekt o kojem u odreenom trenutku razmiljamo. Entitet je realan ako ziki, stvarno postoji. Najoptije se moe tvrditi
da su granice entiteta u modelu podataka odreene ljudskim pogledom i nainom razmiljanja.
Svaki entitet uoen u realnom sistemu ima svoje osobine koje ga ine
sloenim i njihove vrednosti omoguavaju razlikovanje entiteta. Svojstvo entiteta ukljuuje dva elementa - atribut i vrednost atributa (npr. entitet Student
ima atribute: Ime, Prezime, Broj indeksa, Adresu, Telefon i sl. i vrednosti Marko,
Modelovanje
41
Modelovanje
43
Modelovanje
45
46
Modelovanje
Poglavlje 8.
47
Hijerarhijski model se vie ne koristi kao osnova za trenutne komercijalne sisteme, ali jo uvek postoji mnogo nasleenih sistema baziranih na ovom
modelu. Zbog svih nedostataka koji postoje u hijerarhijskom modelu, razvijen je
mreni model.
49
51
Slika 8.5. Veze izmeu objekata realnog sveta formira se klasa veza
Klasa veza se moe posmatrati kao zaseban entitet, a taj entitet moe da
ima svoje posebne atribute. U naem primeru, klasa veza DRI moe da ima kao
atribut DATUM od kada student dri odreenu knjigu. Neka je trenutna situacija
iz realnog sveta prikazana sledeom slikom
53
potrebe da se vodi rauna o tome kako su podaci smeteni na disku. Ovo je razliito od hijerarhijskog i mrenog modela u kojima korisnik mora da razume kako
su podaci struktuirani unutar baze podataka da bi mogao da ih pretrauje, unosi
nove, aurira ili brie postojee slogove.
Relaciona baza podataka standardno se sastoji iz vie tabela. Ipak, za
razliku od mrene baze podataka, tabele nisu povezane pokazivaima. Umesto toga koriste se kljuevi da upare redove podataka u razliitim tabelama.
Klju je samo jo jedna ili vie kolona u tabeli, koja odgovara kolonama u
drugim tabelama.
Zahtev za podatkom iz relacione baze podataka se dobija izvravanjem
upita koji je napisan u posebnom jeziku, obino nekom od dijalekata SQL-a.
Iako je SQL originalno namenjen za krajnje korisnike, mnogo ee se SQL upiti
ugrauju u softver koji omoguava laki korisniki interfejs. Kao odgovor na
upit, baza podataka vraa skup podataka, koji je u stvari lista redova koji sadre
odgovor. Najjednostavniji upit je da se dobiju svi redovi iz tabele, ali ee, redovi se ltriraju na neki nain da bi se dobio traeni odgovor. esto se podaci iz
vie tabela kombinuju u jednu, procesom udruivanja.
Fleksibilnost relacionih baza podataka dozvoljava programerima da piu
upite koji nisu bili predvieni od strane dizajnera baze podataka. Kao rezultat, relacione baze podataka mogu da se koriste u vie aplikacija koje originalni
dizajneri nisu predvideli, to je posebno vano za baze podataka koje se mogu
koristiti decenijama. Ovo je model relacionih baza podataka uinilo veoma popularnim u poslovnoj primeni.
Slika 8.9. U objektno orijentisanim BP tip podatka moe biti drugi objekat
Objektno orjentisani DBMS-ovi omoguavaju uvanje objekata direktno,
bez mapiranja za razliite strukture podataka. Relacioni DBMS zahteva mapiranje
iz objekata u tabele. U objektno orijentisanom modelu, informacija je sauvana
Modeli baza podataka
55
kao stalni objekt, a ne kao red u tabeli. Ovo sistem ini ekasnijim u smislu prostora potrebnog za smetanje i uvanje podataka i osigurava da korisnik manipulie podacima samo na onaj nain koji je programer odredio.
S druge strane, obzirom da se kontrola vri na veoma niskom nivou, mnogo
je tee za treu stranu da napravi neki dodatak. Dok kod relacionih baza podataka
moemo imati korist od softvera izraenog od strane treeg dobavljaa, korisnici objektno orjentisanih sistema za upravljanje bazama podataka ili moraju da
narue dodatni softver od originalnog programera ili da ga razviju u saradnji sa
drugim rmama koje koriste isti sistem.
56
Poglavlje 9.
57
Sistemski dizajn;
Izgradnja i testiranje sistema;
Uvoenje i tranzicija sistema;
Odravanje produktivnosti sistema.
Model vodopada (Slika 9.1) zamenio je spiralni model, koji se zasniva na
iterativnosti procesa razvoja informacionih sistema (Slika 9.2). Prednost ovakve
metodologije je u tome to se sistem brzo uvodi u korienje (postizanjem samo
osnovnih funkcionalnosti), a zatim se dograuje i prilagoava potrebama konkretnih korisnika. Na taj nain proces razvoja nije zavren kada se informacioni
sistem uvede u upotrebu, ve se nastavlja dodavanjem novih softverskih modula,
osavremenjavanjem postojeih funkcionalnosti. To znai da razvoj sistema traje
dok se sistem koristi (dok je iv).
59
61
63
U toku procesa dekomponovanja, radi preglednosti dijagrama, jedan interfejs se moe ponoviti na istom dijagramu, s tim da je kopija oznaena zvezdicom
(Slika 9.8).
robe. Ovaj podproces se dekomponuje na tri nova, koja opisuju ta sistem radi po
prijemu robe. To znai da se prijem robe od 2. nivoa vie ne pojavljuje kao celovit
proces, ve njegovi podprocesi.
65
jer se podrazumeva da je njihova struktura denisana kroz spoljnje tokove (sistem - interfejs).
Namena internih TP izmeu procesa i skladita je da istaknu da li se i gde
ulazni podaci pamte u sistemu, odnosno iz kojih izvora (skladita) se generiu
izlazni podaci prema interfejsima.
TP izmeu procesa u sistemu odslikavaju njihovu uzajamnu povezanost.
Nije preporuljivo da se ovakvi TP pojavljuju u DTP 0. nivoa. Oni se pojavljuju
kao proizvod dekomponovanja osnovnih procesa, nisu imenovani i samo treba da predstave podprocese koji se koriste od vie drugih podprocesa na istom
nivou dekompozicije (odgovaraju procesima u stereotipskoj uses vezi u dijagramima sluajeva korienja UML).
U dekomponovanju DTP, tokovi podataka moraju biti konzistentni poevi od kontekstualnih dijagrama do najkonkretnijih DTP. Konvencija je da se ne
smeju pojaviti novi TP u procesu dekompozicije. Ako je to nuno, potrebno je
aurirati dijagrame na viim nivoima optosti.
Skladita podataka predstavljaju elemente sistema u kojima se podaci uvaju (Slika 9.13). Skladite podataka ne predstavlja bazu podataka, niti
tabelu u bazi. U ovoj fazi analize sistema skladita samo treba da istaknu
grupisanje podataka.
67
69
Problem su dakle tokovi podataka, jer u sluaju velikog broja DTP 0. nivoa
postaje vrlo nepregledan. To je indikator da je sistem koji se modeluje metodama
SSA - preglomazan. U tom sluaju reenje je da se informacioni sistem u samom
poetku deli na vie komponenti nezavisnih softverskih modula. Tako e, na
primer IS velikog meunarodnog hotelskog sistema biti podeljen na IS za rezervacije, IS odravanja i nabavke, IS voenja kadrovskog sektora, IS za odravanje
bezbednosti. Tek onda je mogua SSA takvih sistema (kroz modelovanje pojedinanih komponenti).
71
73
dobavljai, koje je 2 put prikazano na istom dijagramu. Kopija je oznaena zvezdicom, i na taj nain su izbegnuta presecanja TP na dijagramu. Skladita su sa
procesima povezana internim, neimenovanim TP. Podrazumeva se da su ti tokovi
u potpunosti opisani spoljnim TP (izmeu procesa i interfejsa).
Zatim se vri dekompozicija osnovnih poslovnih procesa. Proces nabavke se dekomponuje na 3 podprocesa (Slika 9.18): narucivanje, prijem_robe i
skladistenje.
ISPITNA_PRIJAVA
<<STUDENT>, <ISPIT>, <ISPITIVAC>, <PREDSEDNIK_ KOMISIJE>, BROJ_POKUSAJA>
ISPITNI_SPISAK
<<ISPIT>, <ISPITIVAC>, <PREDSEDNIK_ KOMISIJE>, {<STUDENT>}>
REZULTATI_ISPITA
< <ISPIT> ,{<JEDINACNI_REZULTAT>} >
ISPIT
<DATUM_ISP, PREDMET >
JEDINACNI_REZULTAT
<<STUDENT>,OCENA>
Strukturna sistemska analiza (SSA)
75
STUDENT
<<OSOBA>,<INDEKS>>
OSOBA
<IME,PREZIME,JMBG>
INDEKS
<GODINA_UPISA, PIN,DODATNO_OBELEZJE, <SEMESTAR>>
SEMESTAR
<RBR_SEMESTRA,DATUM_UPISA>
PREDSEDNIK_ KOMISIJE
<<ISPITIVAC>>
ISPITIVAC
<<OSOBA>,NAUCNO_ZVANJE, NASTAVNO_ZVANJE, [ID_ZAPOSLENOG, BR_UGOVORA]>
Slika 9.19. Primer denisanja struktura u reniku podataka
Na prethodnom primeru (Slika 9.19) strukture su imenovane (boldirane), a njihov sadraj predstavljen je uglastim zagradama < >. Moe se uoiti
da struktura u sebi sadri drugu ugnjedenu strukturu. Na primer, Student je
struktura koja se sastoji od 2 strukture: Osoba i Indeks. Strukture mogu sadrati i nabrojive elemente (nabrajanja - enumerations). Tako na primer, struktura Ispitni_spisak sadri listu studenata, to je notirano korienjem vitiastih
zagrada { }. Strukture mogu sadrati i opcione elemente. To su elementi koji se
mogu alternativno koristiti. Na primer struktura Ispitivac sadri dva opciona
elementa id_zapolsenog i broj_ugovora. Semantika ovih elementa je da ako
je ispitiva stalno zaposlen u prosvetnoj ustanovi, onda on ima identi kacioni
broj. Ako isti nije stalno zaposlen, da bi bio u statusu ispitivaa, mora da bude
ovlaen, to se regulie ugovorom izmeu u fakulteta i ispitivaa. Notacija
opcionih elemenata vri se pravougaonim zagradama [].
Na primeru (Slika 9.19) predstavljen je zavren renik podataka. Osnovno naelo pri denisanju struktura je da svi podaci koji se vezano viestruko
pojavljuju na vie mesta u reniku treba da se grupiu u imenovanu strukturu. Na
taj nain olakava se modikacija sistema jer, ako izmenimo podatak u strukturi, ta promena e se odraziti na sve izvedene strukture koji tu strukturu koriste.
Na primer ako se promeni nain davanja broja indeksa na fakultetu, to emo
76
DOMEN
OGRANICENJE
DATUM_ISP
DATE
DATUM_UPISA
DATE
GODINA_UPISA
INT(4)
IME
NAZIV
PREZIME
NAZIV
PREDMET
NAZIV
OCENA
INT(2)
IN(5,6,7,8,9,10)
RBR_SEMESTRA
INT(1)
IN(1,2,3,4,5,6,7,8)
PIN
IDENTIFIKACIJA
ID_ZAPOSLENOG
IDENTIFIKACIJA
BR_UGOVORA
IDENTIFIKACIJA
DODATNO_OBELEZJE
CHAR(3)
IN(II,III,IV)
NAUCNO_ZVANJE
NAZIV
IN (SPECIJALISTA,
DOKTOR, MAGISTAR, DIPL.ING)
NASTAVNICKO_ZVANJE
NAZIV
IN (REDOVNI PROFESOR,
VANREDNI PROFESOR , DOCENT, ASISTENT,ASISTENT PRIPRAVNIK)
77
Na gornjem primeru (Slika 9.20) u prvoj koloni mogu se uoiti nazivi polja
koji se podudaraju sa nazivima osnovnih podataka u strukturama istog renika
podataka (Slika 9.19).
Domeni su predstavljeni u istoimenoj koloni. To su skupovi denisani nad
osnovnim ili izvedenim tipovima podatka. Nad domenima su denisana polja.
Ova indirekcija (polje > domen > tip) omoguava da se podaci precizno deniu.
Domeni mogu biti:
Predenisani denisani nad osnovnim, ili izvedenim sistemskim tipovima (npr. INT- celi broj, osnovni tip, DATE datumski tip, izveden,
koji je implementiran u svim savremenim sistemima za upravljanje BP,
CHAR(30) karakterski niz, izveden tip...), ili
Korisniki denisan domen (vidi sledei paragraf)
U treoj koloni su ogranienja koja precizno deniu opsege (skupove
ili intervale) u kojima se vrednosti podataka mogu kretati. U primeru (Slika
9.20) moe se uoiti da nije mogue denisati ogranienja nad svim poljima.
Nemogue je ograniiti spisak imena, prezimena studenata, ili unapred denisati
konaan skup predmeta koji e se realizovati na fakultetu. S druge strane nuno
je ograniiti skup moguih ocena koje student moe da dobije. est sluaj iz
srednjokolske prakse je da nastavnici pored ocena, u dnevnike upisuju take,
pluseve, minuse. Zamislite IS koji dozvoljava takve unose i kakve posledice bi to
imalo u proraunima pojedinanih i zbirnih uspeha uenika/studenata. Isto tako
uvoenjem ogranienja na nauna i nastavnika zvanja onemoguava neovlaeno denisanje i dodeljivanje novih, nepostojeih i nepropisnih titula i zvanja.
Sutina ogranienja je da ogranii korisniki unos na zadate vrednosti/intervale
i time sauvaju konzistentnost podataka.
NAZIV DOMENA
PREDEFINISANI DOMEN
NAZIV
CHAR(25)
IDENTIFIKACIJA
CHAR(10)
OGRANICENJE
IS_UNIQUE_CODE
79
Poglavlje 10.
81
82
U DTP (dijagramima tokova podataka) koji su analizirani u prethodnom poglavlju nisu prikazane nikakve veze izmeu tokova podatka, odnosno
izmeu skladita podataka. U stvarnosti te veze postoje, a oigledan dokaz
njihovog postojanja su renici podataka. Na primer struktuirani tip NARUDZBENICA sadri podatke dobavljaa, podatke artikala koji se naruuju i
podatke naruioca. Sva tri navedena entiteta predstavljaju strukture za sebe.
Dijagrami objekti veze (DOV) otklanjaju ovaj nedostatak. Oni se sastoje od tri
osnovne komponente:
Objekti (entiteti)
Atributi
Veze (relacije)
10.2. Objekti
Objekti grupiu srodne podatke. Mogu predstavljati entitete iz realnog sveta, interfejse iz DTP, strukture iz renika podataka, ali mogu biti i isti fabrikati, koji samo treba da istaknu povezanost razliitih podataka pri procesiranju
u sistemu. Entitet objekat egzistira nezavisno i moe predstavljati ziki, realni
objekat (npr. Sredstvo) ili konceptualni, apstraktni objekat (npr. Radno iskustvo).
Objekat se identikuje nazivom i listom svojstava, a graki se predstavlja kao
pravougaonik u kome se ispisuje naziv entiteta, koji je najee imenica.U DOV
se razlikuju takozvani jaki i slabi objekti.
83
10.3. Atributi
Atributi su osobine (svojstva) entiteta. Atribut podrazumeva ime i vrednost
svojstva (npr. atribut boja i njegova vrednost plavo). Entitet se opisuje pomou
jednog ili vie svojstava (atributa). Atributi su podaci osnovnog tipa, ili predenisani domeni. Oznaavaju se elipsoidima i povezani su pravolinijskim konektorima
sa objektima (Slika 2).
10.4. Veze
Veze su najvaniji deo DOV, jer deniu naine na kojima su objekti uzajamno povezani. Veze se imenuju i njihovi nazivi oslikavaju sematniku povezanosti izmeu objekata (Slika 10.3). Pored imena, vezu potpuno denie njena
kardinalnost. Kardinalnost predstavlja odnos broja objekata koji se povezuju.
Odreivanje kardinalnosti se uglavnom vri prouavanjem veza i odnosa izmeu
posmatranih objekata. Kardinalnosti moe biti:
Jedan prema jedan (1:1) - na primer jedna uplata dobavljau se vri po
tano jednoj fakturi dobavljaa (Slika 10.3).
84
Jedan prema vie (1:*) - na primer jedna narudbenica sadri vie stavki
narudbenice (Slika 4).
Vie prema vie (*:*) - vie dobavljaa ima ugovore sa vie peditera.
85
ulogama naziva se rekurzivna ili unarna veza. Na primer, ako je uoen entitet
Zaposleni, jedan od zaposlenih je i magacioner. Magacioner izdaje sredstva zaposlenima pa se uoava veza IzdajeSredstvo. Po nekada magacioner mora i sebi da
izda sredstvo. Drugim reima, enetitet Zaposleni uestvuje dva puta u vezi IzdajeSredstvo: prvi put kao magacioner koji izdaje sredstva drugima, a drugi put kao
jedan od zaposlenih kome takoe moe da se izda sredstvo.
87
slab objekat, jer postoje sredstva koja mogu da budu, ali nisu kompoziti). Agregati
imaju svoje atribute, mogu da budu u vezama drugog tipa (generalizacije/specijalizacije) sa nekim drugim objektima (mogue agreiranim, takoe).
10.5. Primer
Na narednoj slici predstavljen je primer DOV (Slika 10.7). Pri modelovanju
DOV, polazi se od DTP i renika podataka, kojima se opisuje odreeni poslovni
proces. Na osnovu interfejsa i tokova podataka (TP) iz DTP, deniu se objekti. TP
su dekomponovani u reniku podataka kao strukture.
Elementi strukture (polja) su atributi objekata. Ako je element ugnjedena struktura (struktura u strukturi) ona se predstavlja kao drugi objekti koji se
nalaze u vezi (na primer narudbenica i stavaka narudbenice, ispitni spisak i
pojedinani rezultat).
Ove veze su obino implicitne i predstavljena im je samo kardinalnosti i
usmerenost. Zatim sledi denisanje preostalih veza izmeu objekata. Veze se imenuju i odreuje im se kardinalnost.
Opis DOV (Slika 10.7): u procesu nabavke, formira se narudbenica (objekat
NARUDZBENICA_DOB), kojom se potrauje roba od odreenog dobavljaa
(objekat DOBAVLJAC). Za svaki artikal koji se nabavlja (objekat ARTIKAL), formira se jedna stavka narudbenice (slabi objekat STAVKA_NAR_DOB). Pored
podataka artikla, stavka sadri i koliinu koja se nabavlja (nar_kol). Kreirana narudbenica se alje dobavljau i on na osnovu nje isporuuje robu, uz koju alje
fakturu - raun za naplatu (objekat FAKTURA_DOB). Kupac po fakturi vri uplatu dobavljau (objekat UPLATA_DOB), a potvrdu (kopiju) o uplati alje dobavljau, kao dokaz izmirenja svojih obaveza.
Model objekti veze omoguava potpunije shvatanje funkcionisanja sistema semantikim opisom objekata i njihovih uzajamnih veza. Korienjem DOV
pojednostavljuje se prevoenje logikog u ziki model podatka.
Model objekti veze je kompatibilan sa UML2 dijagramom klasa, to znai
da pored modelovanja podataka (data layer), omoguava i objektno orjentisano
modelovanje aplikacione logike (buisness logic layer).
89
Poglavlje 11
91
93
koristi da bi pronala tabelu. Korisniku je potrebno samo da zna ime tabele. Nema
potrebe da se vodi rauna o tome kako su podaci smeteni na disku. Ovo je razliito od hijerarhijskog i mrenog modela u kojima korisnik mora da razume kako
su podaci struktuirani unutar baze podataka da bi mogao da ih pretrauje, umee
nove, aurira ili brie slogove.
Relaciona baza podataka standardno se sastoji iz vie tabela. Ipak, za razliku od mrene baze podataka, tabele nisu povezane pokazivaima. Umesto toga
koriste se kljuevi da upare redove podataka u razliitim tabelama. Klju je
samo jedna ili vie kolona u tabeli, koja odgovara kolonama u drugim tabelama.
Bilo koja od kolona u tabeli moe biti klju (ako ispunjava odreene uslove) ili se
vie kolona moe grupisati u jedan klju. Za razliku od pokazivaa, nije potrebno
da se deniu svi kljuevi unapred; kolona se moe koristiti kao klju ak iako
originalno nije bila namenjena za to.
Kada klju sadri podatke koji imaju eksterno, stvarno znaenje (kao
to je ime osobe, ISBN kod knjige ili serijski broj automobila), takav klju
se naziva prirodni klju. Ako prirodni klju nije pogodan, moe se dodeliti klju (npr. davanje identifikacionog broja zaposlenim ili redni broj unosa
podataka). U praksi, veina baza podataka ima oba i generisane i prirodne
kljueve, jer generisani kljuevi mogu da se koriste interno da bi se stvorile
veze izmeu redova koji se ne mogu prekidati, dok se prirodni kljuevi koriste, manje pouzdano, za pretrage i integraciju sa drugim bazama podataka. (Na
primer, zapisi u dve nezavisno kreirane baze podataka mogu da se upare po
jedinstvenom matinom broju, osim u sluajevima kada je JMBG pogrean,
nedostaje ili je promenjen).
Zahtev za podatkom iz relacione baze podataka se dobija slanjem upita koji
je napisan u posebnom jeziku, obino nekom od dijalekata SQL-a. Iako je SQL
originalno namenjen za krajnje korisnike, mnogo ee se SQL upiti ugrauju
u softver koji omoguava laki korisniki interfejs. Kao odgovor na upit, baza
podataka vraa skup podataka, koji je u stvari lista redova koji sadre odgovor.
Najjednostavniji upit je da se dobiju svi redovi iz tabele, ali ee, redovi se ltriraju na neki nain da bi se dobio traeni odgovor. esto se podaci iz vie tabela
kombinuju u jednu, procesom udruivanja.
Konceptualno, ovo se radi uzimanjem svih mogui kombinacija redova (proizvod ukrtanja), a zatim izbacivanjem svega osim odgovora. U praksi,
94
95
11.3.2. Relacija
Relacija r zadata nad emom relacije je konaan skup n-torki eme relacije R.
Posledica denicije relacije je da imamo sledee 4 osobine:
Nazivi atributa u emi relacije moraju da budu razliiti
Redosled kolona u emi relacije nije bitan.
Relacija ne sadri dve jednake n-torke.
Redosled n-torki nije bitan.
Kako je relacija skup n-torki i sve n-torke su iste duine, u relacionom
modelu n-torke ne mogu imati promenljivu duinu.
Jednostavnije reeno, ema relacije je opis strukture jedne tabele, a sama
relacija je sadraj te tabele. Naravno, da bi takva tabela bila relacija potuju se gore
navedena ogranienja. Relaciji u praksi odgovara jedna datoteka, a svakoj n-torki
odgovara jedan slog te datoteke. Slogovi u datoteci su zapisani u odreenom redosledu, najee po redosledu unoenja
96
(BrInd
123/02
11/03
151/02
III-15/04
Ime)
J.Jankovic
P.Petrovic
J.Jovanovic
M.Markovic
97
99
(BR_IND,
IME,
PREZIME,
0001
Marko Anti
.......................................
ADRESA,
Tolstojeva 21
PREDMET
(SIFP,
01
B)
2
OCENE
(BR_IND,
SIFP,
OC)
0001
01
8
.......................................
NAZIV,
Programiranje
.......................................
GODINA SMER,
2
PP
RB)
1
101
103
104
Poglavlje 12
Relaciona algebra
Relaciona algebra pripada kategoriji formalnih upitnih jezika proceduralnog karaktera. ini je skup operatora za rad sa relacijama, a rezultati operacija su
takoe relacije. Relaciona algebra je osnova za upitne jezike koje koriste ljudi. Svaki od algebarskih izraza je jedan upit ili pretraivanje. Upitni jezik jezik kojim
korisnici zahtevaju informacije iz BP
Operacija je primena nekog operatora na jednu ili vie izvornih relacija
kako bi se formirala nova relacija. Relacionu algebru ini skup od 8 operacija koje
se nazivaju osnovnim (5 elementarnih i 3 izvedene)
Elementarne: restrikcija (selekcija), projekcija, unija, razlika, Dekartov
proizvod
Izvedene: presek, spajanje, deljenje
Operacije se mogu klasikovati i prema broju operanada. Pojedine operacije se izvravaju nad jednim, a pojedine nad dve relacije.
Unarne (1 operand)
Binarne (2 operanda)
Tabela: Klasikacija osam osnovnih operacija
Simbol
Naziv
Sloenost
Br. operanada
restrikcija
elementarna
unarna
projekcija
elementarna
unarna
unija
elementarna
binarna
Relaciona algebra
105
Simbol
Naziv
Sloenost
Br. operanada
razlika
elementarna
binarna
presek
izvedena
binarna
Dekartov proizvod
elementarna
binarna
><
spajanje
izvedena
binarna
deljenje
izvedena
binarna
12.1. Restrikcija -
Restrikcija (selekcija, ogranienje, eng: restrict) - kao rezultat daje tano
odreene n-torke iz tabele tj. samo one n-torke koje zadovoljavaju zadati kriterijum (izdvajanje redova u tabeli).
Denicija: Restrikcija je operacija relacione algebre koja iz polazne relacije po zadatom kriterijumu izdvaja podskup n-torki. Kriterijum je neki logiki
izraz koji je izraunljiv nad svakom n-torkom. Dobijena relacija ima istu strukturu kao i polazna.
Ako je r relacija nad emom R(X), a P(X) uslov restrikcije, formalna def.
restrikcije je:
P(X)(r) = t(X) = {x | xr P(X)}
Operacija restrikcije kao rezultat moe da da prazan skup n-torki.
Uslov restrikcije P se sastoji iz lanova koji su povezani sa:
(and),
(or),
(not),
a svaki lan je u formi
<atribut> op <atribut> ili <konstanta>
gde je op jedan od: =, , >, , <,
106
Relaciona algebra
Primer .
Selekcija studenta sa brojem indeksa 125/2004 iz klase studenata:
BrInd=125/2004 (student) = t (BrInd, Ime, Prezime, Adresa, Telefon)
kao rezultat daje podatke samo za studenta sa BrInd=125/2004.
Primer .
Iz relacije r(A;B;C;D):
A
12
23
10
23
10
12.2. Projekcija -
Projekcija (eng: project) kao rezultat daje relaciju koja se sastoji samo od
odreenih atributa zadate relacije (izdvajanje kolona u tabeli).
Denicija: iz polazne relacije po zadatom skupu atributa formira se nova
relacija kao skup n-torki nad tim atributima. Zadati skup atributa mora biti podskup skupa atributa polazne relacije. Vrednosti atributa u n-torkama nastale relacije odgovaraju onima u polaznoj relaciji.
Relaciona algebra
107
Ako je r relacija nad emom R(X), Y zadati skup atributa, a x i y n-torke nad
X i Y, formalna denicija restrikcije je: Y(r) = t(Y) = {t | YX yx}
Primenom operacije projekcije mogue je da vie n-torki polazne relacije
daje iste vrednosti. Poto rezultat operacije mora biti relacija, uzima se samo jedna
rezultantna relacija
Primer .
Projekcija relacije student po atributima BrInd, Ime i Prezime:
BrInd, Ime, Prezime (student) = t (BrInd, Ime, Prezime)
kao rezultat daje relaciju koja sadri samo podatke BrInd, Ime i Prezime. Kako je
BrInd primarni klju relacije r ne smanjuje se broj n-torki u novonastaloj relaciji.
Projekcija samo po Imenu ili Prezimenu moe da dovede do smanjenja broja ntorki u novonastaloj relaciji, kao i do gubitka podataka za studente sa istim imenom ili prezimenom.
Primer 2.
Iz relacije r(A;B;C;D):
A
10
20
30
40
108
Relaciona algebra
12.3. Unija -
Rezultat unije dve relacije je relacija koja se sastoji od svih n-torki koje se
nalaze i u jednoj i u drugoj relaciji.
Denicija: Unija je operacija relacione algebre kojom se iz dve polazne relacije formira novu koja sadri sve n-torke iz obe relacije. Ova operacija nije mogua
izmeu bilo koje dve relacije, tj. mora biti zadovoljeno:
eme relacija moraju imati isti broj atributa
Atributi ema relacija redom odgovaraju po znaenju i tipu (ne mora po
nazivu)
Navedeni uslovi se nazivaju unijska kompatibilnost
Ako su r i s relacije nad emom R(X) i S(X), gde X oznaava unijski kompatibilan skup atributa u obe relacije, formalna denicija unije je:
r s = t(X) = {x | xr xs}.
Svaka n-torka koja je prisutna u obe relacije pojavljuje se samo jednom u
rezultantnoj.
Primer 1.
Za unijski kompatibilne relacije r i s
Relaciona algebra
109
s
A
Primer 2.
Unijom relacija A i B
IFRA#
PREZIME
IME
TEL.BROJ
3244
Aksentijevi
Petar
1772
Maksimovi
Ilija
IFRA#
PREZIME
IME
TEL.BROJ
3244
Aksentijevi
Petar
2345
Petrovi
Petar
023 47 833
Dobija se relacija C = A B
110
IFRA#
PREZIME
IME
TEL.BROJ
3244
Aksentijevi
Petar
1772
Maksimovi
Ilija
2345
Petrovi
Petar
023 47 833
Relaciona algebra
12.4. Razlika - /
Rezultat razlike (eng: dierence) - dve relacije je relacija koja se sastoji od
svih n-torki koje se nalaze u prvoj i ne nalaze u drugoj relaciji, tj. iz prve relacije se
iskljuuju sve n-torke zajednike s drugom relacijom.
Denicija: iz dve polazne relacije formira se nova koja sadri sve n-torke
prve relacije koje se ne nalaze u drugoj. Ova operacija je mogua samo izmeu
unijski kompatibilnih relacija.
Ako su r i s relacije nad emom R(X) i S(X), X oznaava unijski
kompatibilan skup atributa u obe relacije, formalna denicija razlike je:
r - s = t(X) = {x | xr xs}
Primer 1.
Za relacije A i B
IFRA#
PREZIME
IME
TEL.BROJ
3244
Aksentijevi
Petar
1772
Maksimovi
Ilija
IFRA#
PREZIME
IME
TEL.BROJ
3244
Aksentijevi
Petar
2345
Petrovi
Petar
023 47 833
PREZIME
IME
TEL.BROJ
1772
Maksimovi
Ilija
ili relacija C= B- A
IFRA#
PREZIME
IME
TEL.BROJ
2345
Petrovi
Petar
023 47 833
Relaciona algebra
111
Primer 2.
Nad relacijama
kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)
racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)
Nai sve klijente koji u ekspozituri IEX imaju raun ali jo uvek nemaju kredit
Ovaj zadatak se reava u koracima. Prvo se selektuju sve n-torke koje se
odnose na ekspozituru IEX, a zatim se ostvari unijska kompatibilnost posmatranih relacija primenom operacije projekcije po eljenom atributu. Na kraju se
primeni operacija razlike novonastalih relacija:
Nai sve klijente koji imaju racun u ekspozituri IEX
IME_KL (IME_EXP=IEX(racun)) o t1
Nai sve klijente koji imaju kredit u ekspozituri IEX
IME_KL (IME_EXP=IEX(kredit)) o t2
Rezultat je: t1 - t2
12.5. Presek -
Presek (eng. intersect) - rezultat preseka dve relacije je relacija koja se sastoji
od n-torki koje su zajednike za obe relacije, odnosno koja sadri sve n-torke koje
se nalaze i u jednoj i u drugoj relaciji. Ova operacija je mogua samo izmeu unijski kompatibilnih relacija.
Ako su r i s relacije nad emom R(X) i S(X), X oznaava unijski kompatibilan skup atributa u obe relacije, formalna denicija preseka je:
r s = t(X) = {x | x r x s}.
Presek je izvedena operacija, moe se izvesti iz
r s = r (r-s)
Primer 1.
Za relacije A i B
112
Relaciona algebra
IFRA#
PREZIME
IME
TEL.BROJ
3244
Aksentijevi
Petar
1772
Maksimovi
Ilija
IFRA#
PREZIME
IME
TEL.BROJ
3244
Aksentijevi
Petar
2345
Petrovi
Petar
023 47 833
PREZIME
IME
TEL.BROJ
3244
Aksentijevi
Petar
Primer 2.
Nad relacijama
kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)
racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)
Nai sve klijente koji u ekspozituri IEX imaju i raun i kredit. Do rezultata
se dolazi u koracima, uz ostvarivanje unijske kompatibilnosti.
Nai sve klijente koji imaju racun u IEX
IME_KL (IME_EXP=IEX(racun)) o t1
Nai sve klijente koji imaju kredit u IEX
IME_KL (IME_EXP=IEX(kredit)) o t2
Rezultat je: t1 t2
113
Ako su r i s relacije nad emom R(X) i S(Y), a X i Y su skupovi atributa u emama relacija, formalna denicija Dekartovog proizvoda je:
r s = t(XY) = {xy | x r y s}
Kod oznaavanja za puni naziv atributa se moe koristiti relacija.atribut
(ako je X Y ), da bi se mogli razlikovati atributi iz jedne i druge relacije.
Primer 1.
Za polazne relacije r i s
r
s
A
10
10
20
10
10
10
20
10
10
10
20
10
Relaciona algebra
Primer 1.
Nad relacijama
klijent(IME_KL, UL_BR, GRAD),
licni_bankar(IME_KL, IME_SL)
Nai sve klijente sa linim bankarom IS1 i gradove u kojima klijenti ive
Nakon primene dekartovog proizvoda, samo neke od n-torki sadre traene
podatke.
licni_bankar klijent o t(LB.IME_KL, LB.IME_SL, K.IME_KL, K.UL_BR, K.GRAD)
Klijent
Zoran
Milan
Petar
Savska
Nika
Kralja Milana
Beograd
Novi Sad
Kruevac
Lini bankar
Zoran
Sl1
Milan
Sl2
Petar
Sl3
Savska
Savska
Savska
Nika
Nika
Nika
Kralja Milana
Kralja Milana
Kralja Milana
Beograd
Beograd
Beograd
Novi Sad
Novi Sad
Novi Sad
Kruevac
Kruevac
Kruevac
Zoran
Milan
Petar
Zoran
Milan
Petar
Zoran
Milan
Petar
Sl1
Sl2
Sl3
Sl1
Sl2
Sl3
Sl1
Sl2
Sl3
Relaciona algebra
115
12.6.2. spajanje
Prethodna denicija dozvoljava proizvoljni uslov P, pod uslovom da je izraunljiv za svaku n-torku nakon Dekartovog proizvoda
Neka su r i s relacije nad emom R(X) i S(Y). Neka su Xi i Yk atributi za koje
vai da je
XiX i YiY. Pod spajanjem r > Xi Yi< s
podrazumeva se spajanje kod koga operator oznaava bilo koji operator poreenja:
(=,,<,>,,)
Relaciona algebra
s
A
B
1
2
D
10
10
20
10
E
a
a
b
b
117
r>*< s
A
B
1
2
2
D
10
10
20
E
a
a
b
12.7. Deljenje - /
Deljenje je najsloenija operacija relacione algebre.
Deljenje se ne moe izvesti sa proizvoljnim tabelama. Za A/B potrebno je da
se svi atributi relacije B nalaze u relaciji A.
Npr: Mogue je deljenje za: a (X1,X2,...,Xn,Y1,Y2,...,Ym) b (Y1,Y2,...,Ym)
Primer: Za dve relacije r i s, date sa:
r
118
Relaciona algebra
Poglavlje 13
SQL
SQL (Stuctiured Query Language) je standardni relacioni upitni jezik (ANSI
- American National Standards Institute - standard). Slui za kreiranje, organizaciju i manipulaciju podacima u relacionim bazama podataka. Sam nastanak jezika se
vezuje za IBM-ovu istraivaku laboratoriju u San Hozeu u Kaliforniji, gde je SQL
razvijen kasnih 70-ih godina, u sklopu projekta System R.
Danas je SQL ugraen u sve vodee SUBP SQL je uspeno primenjen u sistemima za upravljanje bazom podataka kao to su MS Access, DB2, Informix, MS
SQL Server, Oracle, Sybase itd. Trenutno u svetu postoji vie standarda SQL jezika,
a najpoznatije su: ANSI-92, ISO, Microsoft SQL, itd. IBM je 1987. godine standardizovao sopstvenu verziju SQL-a. Zatim je ANSI 1989. godine objavio proirenu
verziju, poznatu kao SQL-89. Sledea standardizovana verzija je SQL-92, dok je
najnovija verzija publikovana 1999. godine.
119
SQL
121
OPIS
CHAR(n)
VARCHAR(n)
NUMBER
FLOAT
INT
NUMERIC
REAL
SMALLINT
DATE
BOOLEN
SQL
Dodatna svojstva:
DEFAULT - zadavanje predenisane vrednosti,
NOT NULL - vrednost ne sme biti nepoznata ili ne zadata,
CHECK - provera da je vrednost atributa u zadatim granicama,
UNIQUE - jedinstvenost meu n-torkama unutar relacije,
PRIMARY KEY - primarni klju,
REFERENCES - vrednost mora biti meu vrednostima iz druge relacije,
obino klju iz druge relacije.
123
Ime
Prezime
Ulica i broj
Grad
0104983134526
Petar
Petrovi
Njegoeva 46
Beograd
0505983871231
Ivan
Ivanovi
Dunavska 55
Novi Sad
0901983987651
Marko
Markovi
Durmitorska 3
Beograd
SQL
13.4. Pogledi
Pogled (view) predstavlja izvedenu tabelu, ima redove i kolone i nastaje
kao rezultat upita nad osnovnim tabelama i drugim pogledima. Redovi i kolone
pogleda nisu nigde trajno zapisani. Umesto toga, svaki put kada se pristupa pogledu izvrava se upit kojim je on denisan.
Prednosti koje imaju pogledi u radu sa RBP:
Pogled predstavlja jednu vrstu podprograma u SQL-u. Jednom kreiran,
moe se koristiti u podupitima u WHERE i HAVING klauzulama,
Komplikovani i esto korieni upiti se mogu formulisati u vidu pogleda
koje e korisnici jednostavno pozivati u upitima tipa SELECT * FROM
imePogleda,
Pogled razreava problem pojavljivanja vika podataka u svodnim upitima (kada u odreenim implementacijama pravila za SELECT naredbu
SQL
125
Unikatni naziv pogleda u bazi podataka, simbol formiran po pravilu za nazive varijabli
Kolona
Upit
13.5. Indeksi
Indeks je pomona datoteka koja treba da ubrza pristup podacima u nekoj
osnovnoj datoteci. Pored toga, indeks ima jo jednu namenu: zapisi u osnovnoj
datoteci nalaze se u zikom redosledu koji odgovara redosledu unosa podataka.
Kada pristupamo neposredno toj datoteci zapise oitavamo tim redosledom, ali
ako podacima pristupamo posredstvom indeksa, oitavaemo ih redosledom koji
odgovara rastuoj ili opadajuoj vrednosti indeksnog izraza.
126
SQL
Ime Indeksa
Kolona
Kada se zada ova opcija, indeks mora biti unikatan, odnosno u tabeli
na koju se indeks odnosi ne sme da se vie puta ponovi neka vrednost
Kolona
Unikatni naziv indeksa u bazi podataka, simbol formiran po pravilu
za nazive varijabli
Jedna ili vie kolona po kojima se formira indeks
Nad istom tabelom po potrebi moe biti denisano vie indeksa. To se koristi kada su potrebni razliiti pristupi podacima i razliiti redosledi podataka.
Indeks moe biti kreiran odmah, dok je tabela na koju se odnosi prazna, ili
naknadno. Ako se kreira naknadno, indeks dobija sadraj koji odgovara sadraju svoje tabele. Od tog trenutka, sadraj indeksa i tabele je sinhronizovan: svako
dodavanje ili uklanjanje podataka, kao i izmena vrednosti neke od kolona koja je
u sastavu indeksnog izraza, odraava se na sadraj indeksa.
Indeks se moe bilo kada i bez obzira na sadraj svoje tabele ukloniti naredbom ija je sintaksna denicija:
DROP INDEX ImeIndeksa ;
127
ALL
DISTINCT Traimo da se iz rezultata eliminiu suvina pojavljivanja (osim jednog) istovetnih redova
128
R-Izraz
Izraz izraunljiv nad svakim pojedinim redom tabele koji pored naziva kolona moe da sadri i operatore i konstante. Najee je u formi
navoenja jedne kolone
R-Predikat
SQL
Primer 1.
Najjednostavniji mogui SQL upit je u formi:
SELECT * FROM ImeTabele;
Ova naredba prikazuje sve redove tabele ije je ime navedeno iza FROM klauzule. U svakom redu prikazuju se vrednosti svih kolona, onim redom kako je to zapisano
u datoteci (tj. kreirano sa CREATE TABLE). Kod upita se obino trai prikaz samo
odreenih kolona, ili prikaz svih kolona u redosledu koji je drugaije odreen.
129
SQL
131
je u tom sluaju procedura za ouvanje integriteta spolja, tj. sam korisnik mora
voditi rauna o njoj. Ove naredbe direktno treba da koristi samo administrator
baze podataka i to za otklanjanje eventualno naruenog integriteta baze.
Normalno auriranje baze podataka vri se aplikacijama za interaktivno
auriranje u koje su ugraene procedure za ouvanje integriteta. Te procedure se
sastoje od naredbi INSERT, UPDATE i DELETE.
SQL
133
SQL
se dati svim korisnicima (PUBLIC) ili samo nekim, u kom sluaju se eksplicitno
navode identikatori korisnika kojima se daje pravo korienja. Pravo korienja
se daje drugom korisniku sa ili bez mogunosti da to to je dobio dodeli jo nekom korisniku (WITH GRANT OPTION).
SQL
135
Poglavlje 14
137
139
Krajnji je cilj normalizacije najverovatnije trea normalna forma.U veini sluajeva ona predstavlja najbolji kompromis izmeu ekstrema koji se odnose
na funkcionalnost i lakou implementacije. Nivoi iznad 3FN u praksi mogu da
iskomplikuju dizajn baze podataka do take da smetaju funkcionalnosti. Svi nivoi
normalizacije su kumulativni to znai da baza koja se nalazi u 2NF takoe mora
da ispunjava i sve uslove zadate prvom normalnom formom.
Proces analize eme relacije je proces primene serije testova na emu relacije da bi se proverilo da li ispunjava sva pravila denisana za odreenu normalnu formu. Normalne forme pomau projektantu baze podataka da ostvari eljeni
kvalitet relacione baze podataka.
Ime
ifP
Sati
123
Marko
P1
123
Marko
P3
123
Marko
P5
222
Petar
P3
222
Petar
P4
333
Janko
P1
5
Relacije loe strukture
141
Da bi se relacija RADPROJ prevela u bolju 1NF, potrebno je da se ugnjedena relacija formira kao nezavisna relacija. eme relacija sada imaju oblik:
RADNIK(JMBG,Ime) i PROJEKAT(JMBG, ifP, Sati):
RADNIK
PROJEKAT
JMBG
Ime
JMBG
ifP
Sati
M1
I1
123
P1
M2
I2
123
P3
M3
I3
123
P5
222
P3
222
P4
333
P1
Normalizacija tabele iz 1NF u 2NF se vri uklanjanjem deliminih zavisnosti, tj. funkcionalno zavisni atributi se izmetaju u novu tabelu zajedno sa kopijom
njihovih determinanti (kljueva).
143
ImeZaposlenog
ImeVlasnikaNekretnine
B003
Zoran Petrovi
Jelena Jankovi
B003
Miodrag Aleksi
Jelena Jankovi
B003
Zoran Petrovi
Predrag Stefanovi
B003
Miodrag Aleksi
Predrag Stefanovi
U ovom primeru zaposleni Zoran Petrovi i Miodrag Aleksi rade u ekspozituri B003, a vlasnici nekretnina Jelena Jankovi i Predrag Stefanovi su registrovani
u istoj ekspozituri, dakle B003. Poto ne postoji direktna veza izmeu zaposlenih i
vlasnika u datoj ekspozituri, mora se kreirati zapis za sve kombinacije zaposlenih
i vlasnika da bi se obezbedila konzistentnost. Ova situacija predstavlja zavisnost
viestruke vrednosti u tabeli EkspozituraZaposleniVlasnik. Drugim reima, zavisnost postoji zato to su u tabeli predstavljene dve nezavisne 1:* veze.
Zavisnost viestruke vrednosti predstavlja zavisnost izmeu atributa A, B i
C u tabeli, takvu da za svaku vrednost A postoji vie vrednosti B i vie vrednosti
C, pri emu su vrednosti B i C nezavisne jedna od druge.
ImeZaposlenog
B003
Zoran Petrovi
B003
Jelena Jankovi
B003
Miodrag Aleksi
B003
Predrag Stefanovi
Tabela: EkspozituraZaposleni
IdentBrEkspoziture ImeVlasnikaNekretnine
Tabela: EkspozituraVlasnik
Relacije loe strukture
145
146
Poglavlje 15
Transakcije
Danas je veoma bitan i znaajan koncept baze podataka po kome je to, u
stvari, zajedniki resurs koga istovremeno (konkurentno) koristi vei broj programa, jer se pravi efekti baze podataka ispoljavaju kada se radi u mrenom
okruenju. DBMS je upravo tu da upravlja konkurentnim radom vie korisnika,
obezbeuje sinhronizaciju njihovog rada...
Takoe, DBMS ima funkciju da sprei tetne posledice (naruen integritet
baze, nekonzistentno stanje baze...) pri promenama (transakcijama) koje se vre
nad bazom podataka u viekorisnikom okruenju, a za to koristi tehnike zakljuavanja podataka. Dalje, u tom smislu posebno je znaajno upravljanje istovremenim (konkurentnim) transakcijama.
Baze podataka kontinuirano skladite informacije koje opisuju trenutno
stanje preduzea. Na primer, baza podataka banke skladiti trenutni bilans na
svakom raunu deponenta. Kada se u stvarnom svetu dogodi neto to menja stanje preduzea, mora da se uradi odgovarajua promena informacija u
bazi podataka. Sa dostupnim DBMS-om, ove promene se deavaju u realnom
vremenu, uz pomo programa koji se nazivaju transakcije koje deluju kada
doe do promena u stvarnom svetu. Na primer, kada klijent stavlja novac u
banku (dogaaj u stvarnom svetu), izvrava se transakcija depozita. Svaka
transakcija mora biti ureena tako da odrava preciznost veze izmeu stanja
baze podataka preduzea koje je kreira i stvarnog sveta. Pored toga to menja
stanje baze podataka, transakcija sama po sebi moe da inicira neke dogaaje
u stvarnom svetu. Na primer, izdvojena transakcija kod bankomata, inicira
dogaaj odliva novca.
Transakcije
147
Transakcije
149
do greke, podaci moraju biti vraeni u stanje pre poetka transakcije. Transakcijom se mora pristupati i aurirati BP tako da sva ogranienja integriteta BP ostanu
zatiena. Svaka realna organizacija je organizovano u odnosu na odreena pravila koja ograniavaju mogua stanja organizacije.
Npr. broj studenata prijavljenih za nastavu ne moe prei broj mesta namenjenih za tu nastavu. Kada takvo pravilo postoji, mogua stanja BP su
ograniena na isti nain. Ogranienja integriteta, u odnosu na pomenuta pravila,
potvruju da broj registrovanih studenata koji se unosi u polje BP ne sme da pree
vrednost polja BP koja odgovara veliini sale. Dakle, kada se transakcija registracije zavri, BP mora da zadovolji ovo ogranienje integriteta (pretpostavljajui da
je ogranienje zadovoljeno na poetku transakcije).
Izolacija znai da kada se dve ili vie transakcija izvravaju istovremeno,
njihovi efekti moraju biti meusobno izolovani. Efekti koje izazovu transakcije koje se obavljaju istovremeno moraju biti jednaki efektima nekog njihovog
seriskog (jedna posle druge) izvrenja. Zbog poveanja paralelizma u obradi
transakcija dozvoljavaju se razliiti nivoi izolovanosti.
Prilikom rasprave o konzistentnosti BP, usredsredili smo se na efekat jedne
transakcije. Sledee to emo ispitivati je efekat niza transakcija. Rekli smo da
se niz transakcija izvodi sekvencijalno, ili serijski, ako se jedna transakcija niza
izvri pre nego to druga pone. Dobra vest kod serijskog izvravanja je da ako su
sve transakcije konzistentne i baza podataka je inicijalno u konzistentnom stanju.
Serijsko izvravanje uva konzistentnost. Kada prva transakcija niza zapone, BP
je u konzistentnom stanju, a s obzirom da je transakcija konzistentna i nakon njenog izvrenja BP e biti u konzistentnom stanju. Zbog toga to je BP konzistentna
pre poetka druge transakcije, i druga e se obaviti korektno.
Serijsko izvravanje je adekvatno za aplikacije iji su zahtevi skromni.
Meutim, mnoge aplikacije imaju stroge zahteve vremena odziva i pristupa, i
esto jedini nain da se zahtevi zadovolje je konkurentno izvravanje transacija.
Moderni sistemi mogu da istovremeno izvravaju vie od jedne transakcije, a
ovaj metod izvravanja nazivamo konkurentnim. Konkurentno izvravanje je
adekvatno kada se sistemom za obradu transakcija slui vie korisnika. U tom
sluaju bie dosta aktivnih, delimino zavrenih transakcija u svakom trenutku.
Kada se transakcije izvravaju konkurentno, konzistentnost svake od njih nije
dovoljna da obezbedi da baza posle izvrenja obe transakcije u potpunosti prikazuje stanje preduzea.
150
Transakcije
151
Transakcije
153
Transakcije
Verovatno je u izboru vrste zakljuavanja prihvatljivije ekskluzivno zakljuavanje, da bi se izbegli sukobi pri upisivanju. Meutim, uvek treba imati na umu
korisnike koji due vreme zakljuavaju objekte baze podataka. U tom sluaju bi
bilo dobro razmotriti upotrebu deljivog zakljuavanja. Ovaj problem delimino
moe biti reen i upotrebom ekskluzivnog zakljuavanja sa vremenskim ograniavanjem. Na primer, nekom obrascu se moe dodati mogunost vremenskog
ograniavanja tako da izmene koje korisnik nije snimio posle deset minuta automatski bivaju ponitene.
Protokol zakljuavanja obuhvata sledea pravila:
1. Transakcija koja ita neki objekat baze podataka mora da postavi SL na
taj objekat
2. Transakcija koja eli da aurira neki objekat mora da postavi XL. Ako je
ta transakcija prethodno postavila SL treba da ga promeni u XL
3. Ako transakcija nije postavila katanac, zato to je to pre uradila neka
druga, prelazi u stanje ekanja
4. Transakcija oslobaa XL i SL na kraju, sa COMMIT ili ROLLBACK
naredbom
Oba katanca XL i SL se postavljaju implicitno.
155
moe da zakae, baza podataka se mora uvati na razliitim hard diskovima. Jednostavan primer postizanja trajnosti jeste uvanje razliitih kopija baze podataka
na razliitim diskovima (koji se, po mogustvu, napajaju iz razliitih izvora energije). Poto je istovremeni pad oba diska malo verovatan, velika je verovatnoa
da e barem jedna kopija hard diska biti uvek dostupna. Duplikat, ili disk imid,
podrava ovakav pristup. Slika hard-diska (duplikat mirrored disk) je sistem
uvanja po kome, kad god aplikacija zahteva da disk izvri operaciju upisa, sistem
simultano belei istu informaciju na dva razliita diska. Tako je prvi disk identina kopija, ili disk imid, onog drugog.
U transakcijama koje obrauju aplikacije, sistem disk imida moe da
dostigne izuzetnu dostupnost sistema. Ukoliko jedan disk imid padne, sistem moe da nastavi dalje koristei drugi, bez usporavanja ili zaustavljanja.
Kada se zameni disk koji je zakazao, sistem mora da ponovo sinhronizuje oba.
Nasuprot tome, kada se trajnost postie samo pomou LOG fajla (dnevnika), proces oporavka nakon pada hard diska moe trajati znatno due, a u
toku tog perioda sistem je nedostupan korisnicima. Ipak, treba podsetiti da
ak i kada transakcija u procesu koristi disk imid, i dalje se mora koristiti
dnevnik kako bi se postigla atominost na primer, da bi se ponitila transakcija nakon pada.
156
Transakcije
Poglavlje 16
QBE query by example, alat koji omoguava kreiranje SQL upita bez potrebe poznavanja
sintakse SQL jezika. Primer QBE je Access-ov query designer i query wizard
157
159
vie razliitih mesta, i koji sadre vie nivoa obrade. Najei primer vieslojnih
distribuiranih sistema su Web aplikacije. Kod Web aplikacija, korisniku su vidljive
samo Web stranice, isporuene na klijentski pretraiva od strane Web servera i
komponovane od razliitih sadraja. Komponente stranice mogu biti kontrole za
interakciju sa korisnikom ili veze (linkovi) prema posebnim aplikacijama (modulima). Ove softverske komponente mogu biti ugnjedene na konkretnom serveru,
ali isto tako mogu biti distribuirane na razliite platforme.
161
alat za dizajn), ili unoenjem programskog koda u datoteku (ako se koristi obian
tekstualni editor). Fiziki gledano, formiraju se fajlovi (datoteke) odreenog tipa,
koji sadre kod koji se kompajlira, linkuje i izvrava, ili se interpretira (od strane
raunara) generiui pritom korisniki interfejs.
Korisniki interfejsi kod Web aplikacija dizajniraju se u skladu sa ogranienjima Web itaa koji se koriste na klijentskoj strani (Internet Explorer, Netscape navigator, Modzila i sl). ita interpretira HTML skript koji je primljen od
strane Web servera i otvara Web stranicu koja u sebi moe da sadri formu sa
kontrolama. Ovi interaktivni elementi omoguavaju korisniku unos podataka i
akcije slino kao kod desktop aplikacija.
163
164
10
HTTP Hypertext Transfer Protokol protokol koji omoguava transfer podataka izmeu
Web stranica
ASP Active Server Pages, Microsoft tehnologija za generisaje dinamikih Web stranica
165
standardnog HTML koda, sadri i programski kod pisan u nekom od jezika proizvedenih u Microsoft-u (C++, C#, VisualBasic), koji je korien za unos podataka u BP. Nakon uspostave konekcije sa Access-ovom BP partneri.mdb (lin.4-6),
komponuje se SQL naredba koja treba da izvri dodavanje podataka u tabeli kupci
koje je korisnik uneo preko prethodne Web stranice (Fragment 2 i 3) (lin.7-11).
Izvrenje stringa SQL naredbe vri se preko objekta konekcije conn (lin.13). Ako
je dodavanje zapisa uspeno, server isporuuje klijentskom itau zahtevanu stranicu s porukom Klijent <naziv> je dodat. Ako dodavanje nije uspelo, prikazae se
poruka Nemate prava na dodavanje podataka.
Osnovna karakteristika skripta koji se koristi u kreiranju Web stranica je da
se isti zasniva na tzv. tag-ovima (npr. <html>, ili </body>). Proizvoai framoworkova za razvoj Web aplikacija nude i tag-ove za komunikaciju sa BP. Na primer za
JSP11 postoji biblioteka tag-ova JSTL12, koja sadri sql tag-ove. Korienjem sql tagove, postie se neposrednost i standardni pristup u razmeni podataka aplikacije i
BP. Da bi se sql tag-ovi koristili u Web stranicama, potrebno je ukljuiti biblioteku
tagova i izvriti konekciju prema BP.
1: <sql:query var=upit1>
2: SELECT * FROM moja_tabela
3: </sql:query>
4: <c:forEach var=naziv_polja items=${upit1.columnNames}>
5: <th><c:out value=${naziv_polja}/></th>
6: </c:forEach>
7: <c:forEach var=red items=${upit1.rows}>
8: <tr>
9: <c:forEach var=kolona items=${red}>
10: <td><c:out value=${kolona.value}/></td>
11: </c:forEach>
12: </tr>
13: </c:forEach>
Fragment 5: Korienje SQL tag-ova za generisanje upita
U prethodnom primeru (Fragment 5) predstavljen je upit korienjem sql
tag-a query. Sql tag predstavlja poseban entitet (lin.1-3), koji je imenovan kao
upit1. U ovom tagu je ugnjeden standardni SQL upit (lin.2). Poto je upit izvren,
11
12
166
JSP Java Server Pages, Java tehnologija za generisaje dinamikih Web stranica
JSTL JSP Standard Tag Library
167
mestu), kao to su aplikacije za testiranje i isprobavanje. Ovakav pristup je pogodan i u sluajevima kada se izvravaju jednostavne SQL naredbe (naredbe koje ne
sadre ugnjedavanje, ne obuhvataju kombinovane podatke iz vie tabela) i kada
je ciljni SUBP unapred poznat i nepromenjiv.
Za razliite vrste SUBP, pa ek i za razliite verzije SUBP od istih proizvoaa, postoje razlike u sintaksi SQL naredbi. U sluaju promene, ili instalacijom
nove verzije SUBP, neretko je potrebno menjati kod SQL naredbi koji se nalazi u
objektima korisnikog inerfejsa. Ovo je jedna od kljunih slabosti pristupa podacima iz prezentacionog sloja.
Poslovne aplikacije su znatno sloenije. Za sloenije13 aplikacije, ovakav
pristup bi doveo do konfuzije ve u procesu implementacije, jer bi se preklapali
poslovi dizajnera i programera. Odravanje i upravljanje neraslojenim softverom
je mukotrpno i esto ispod oekivanih rezultata.
13
168
169
ime se oteava njegovo auriranje. Na primer ako se vri promena strukture, ili
naziva jedne tabele u BP, ovo auriranje mora da se izvede u svim SQL naredbama
u izvornom kodu, u kojima se referenciraju podaci te tabele. Tranzijentno, aplikacija mora ponovo da se generie, instalira i podeava. Kod aplikacija u velikim
poslovnim sistemima, ovakav pristup moe da stvori mnoge probleme.
Reenje za ovakav problem je izmetanje SQL naredbi iz izvornog koda aplikacije u SUBP. SQL naredbe se ugnjedavaju kao procedure (stored procedure) u
ciljnu BP (u jednom SUBP moe biti vie BP). Veina dananjih SUBP omoguava
kreiranje ugnjedenih procedura.
1: CREATE PROCEDURE `spUsedTestSets`(IN u_id INTEGER(11))
2: BEGIN
3: SELECT * FROM `t_mtutor_used_test_sets` WHERE ( user_id = u_id );
4: END;
Fragment 9: Primer denisanja ugnjedene procedure
U prethodnom fragmentu (Fragment 9) prikazana je denicija 1 ugnjedene procedure u SUBP MySQL 5.x. Ugnjedena procedura slina je bilo kojoj funkciji, izuzev to ne vraa vrednosti, ve sadri samo parametre. Parametri mogu
biti ulazni oznaeni slubenom reju IN, i izlazni oznaeni slubenom reju
OUT. Kod procedura koje vraaju vie zapisa, esto se deniu samo ulazni parametri. Umesto izlaznih parametara, rezultati (zapisi) se prihvataju korienjem
klase koja enkapsulira skup zapisa (npr. ResultSet, ili CRecordset). Pri denisanju,
procedura se najpre imenuje i deklariu se njeni parametri (lin.1). Implementacija zapoinje slubenom reju BEGIN, a zavrava slubenom reju END. Izmeu
poetka i kraja je telo procedure u vidu SQL izraza koji treba da se izvri (lin.3).
Ulazni prametri procedure se u telu koriste najee kao kriterijumi SQL izraza
(u_id). Denisane procedure se pozivaju iz aplikacije, prosleivanjem argumenata i prihvatanjem rezultata njihovog izvrenja.
U sledeem primeru (Fragment 10) prikazan je nain korienja ugnjedene procedure u Java kodu. Najpre se (lin.1) preko objekta konekcije sa BP
(conn) vri njeno pozivanje (naziv procedure je spUsedTestSets) i preuzimanje od strane objekta aplikacije (cs). Zatim se preko istog objekta prosleuju
parametri (lin.2).
1: cs = conn.prepareCall({call spUsedTestSets(?)});
2: cs.setInt(user_id, u_id);
3: rs = cs.executeQuery();
Baze podataka i aplikacije
171
4: while( rs.next() ){
5: int test_id = rs.getInt(test_set_id);
6: Date test_dat = rs.getDate(date);
7: }
Fragment 10: Primer korienja ugnjedene procedure
Upit se izvrava eksplicitnim pozivanjem (lin.3). Rezultati upita se prihvataju u objekat klase Recordset (rs). Kroz ciklinu strukturu (lin.5-7), preuzimaju se
pojedinani podaci iz skupa zapisa dobijenih upitom.
173
175
14
176
OLE (Object Linking and Embeding) ova tehnologija je prethodnica ActiveX tehnologiji,
i omoguavala je integraciju podataka razliitih formata i iz raznorodnih dokumenata
u jednom dokument kontejneru. Razlika u odnosu na ActiveX je to je omoguavala
pregled ali ne i editovanje podataka iz drugog izvorita.
177
178
179
181
Poglavlje 17
Dodatak 1.
Informacioni sistem kafia
17.1. Korisniki zahtev
Napraviti informacioni sistem koji e pratiti rad kaa. Potrebno je da IS
vodi evidenciju kataloga, narudbenica, zaliha, otpremnica, narudbi, rauna,
dobavljaa, banaka, naloga za uplatu i potvrda o uplati.
Proizvodi se dobijaju od dobavljaa. Funkcija uvoenja novih dobavljaa
treba da omogui uvoenje u evidenciju novih dobavljaa sa kojima ka posluje,
radi kontakata oko nabavke novih kataloga proizvoda i eventualnih nedoumica
ili problema. Preko kataloga se izdaju narudbenice. Na osnovu narudbenica se
dobijaju otpremnice i fakture.
183
184
185
Domen
AutoNumber
Text
Text
Text
AutoNumber
Text
Text
Text
Text
AutoNumber
Number
Date/Time
Uslov
NotNull
NotNull
NotNull
NotNull
Polje
IznosFakture
DatumFakture
SifraOtpremnice
BrojKataloga
SifraDobavljaca
Datum
SifraNaloga
Primalac
SvrhaUplate
Datum
Vreme
ZRPrimaoca
Domen
Uslov
Number
Date/Time
Number
AutoNumber NotNull
Number
Date/Time
AutoNumber NotNull
Text
Text
Date/Time
Date/Time
Text
Cena
Domen
Number
SifraFakture
SifraArtikla
Number
SifraNarudzbe
AutoNumber NotNull
RedniBroj
AutoNumber NotNull
BrojStola
Number
SifraNarudzbe
Number
SifraArtikla
Number
Datum
Date/Time
RedniBroj
AutoNumber NotNull
Potpisol
Text
SifraNarudzbenice Number
SifraDobavljaca
Number
SifraOtpremnice
Polje
SifraBanke
Domen
Number
SifraFakture
Polje
Uslov
Uslov
NotNull
NotNull
Kolicina
Number
AutoNumber NotNull
Cena
Number
SifraDobavljaca
Number
JedinicaMere
Text
ValutaPlacanja
Text
SifraArtikla
Number
Datum
Date/Time
RedniBroj
AutoNumber NotNull
UkupnoZaPlacanje Number
SifraOtpremnice
Number
NotNull
Potpisol
Text
SifraDobavljaca
Number
NotNull
SifraPotvrde
AutoNumber NotNull
Cena
Number
SifraBanke
Number
Kolicina
Number
BrojZiroRacuna
Text
JedinicaMere
Text
SvrhaPlacanja
Text
SifraArtikla
Number
SifraNaloga
Number
RedniBroj
AutoNumber NotNull
SifraRacuna
AutoNumber NotNull
SifraRacuna
Number
SifraNarudzbe
Number
Cena
Number
Vreme
Date/Time
Kolicina
Number
Datum
Date/Time
SifraArtikla
Number
BrojStola
Number
SifraArtikla
AutoNumber NotNull
UkupnaCena
Number
KolicinaZaliha
Number
RedniBroj
AutoNumber NotNull
NazivArtikla
Text
BrojKataloga
Number
NotNull
VrstaArtikla
Text
SifraDobavljaca
Number
NotNull
OpisArtikla
Text
JedinicaMere
Text
NotNull
NotNull
NotNull
NotNull
NotNull
187
188
17.4.2. Prodaja
189
17.5.1. Nabavka:
DOBAVLJAC (SifraDobavljaca, TelefonDobavljaca, AdresaDobavljaca,
ZRDobavljaca, NazivDobavljaca)
NARUDZBENICA (SifraNarudzbenice, Datum, Potpisol, SifraDobavljaca)
STAVKA NARUDZBENICE (RedniBroj, SifraNarudzbenice, Kolicina,
Cena, JedinicaMere, SifraArtikla)
ZALIHE (SifraArtikla, KolicinaZaliha, NazivArtikla, VrstaArtikla,
OpisArtikla)
KATALOG (SifraDobavljaca, BrojKataloga, Datum)
STAVKA KATALOGA (SifraDobavljaca, BrojKataloga, RedniBroj, JedinicaMere, Cena, SifraArtikla)
OTPREMNICA (SifraDobavljaca, SifraOtpremnice, ValutaPlacanja,
Datum, UkupnoZaPlacanje, Potpisol)
STAVKA OTPREMNICE (SifraDobavljaca, SifraOtpremnice, RedniBroj,
Cena, Kolicina, JedinicaMere, SifraArtikla)
FAKTURA (SifraDobavljaca, SifraFakture, RokPlacanja, IznosFakture,
DatumFakture, SifraOtpremnice)
17.5.2. Prodaja:
NARUDZBA (SifraNarudzbe, BrojStola)
STAVKA NARUDZBE (SifraNarudzbe, RedniBroj, SifraArtikla)
RACUN (SifraNarudzbe, SifraRacuna, Vreme, Datum, BrojStola, UkupnaCena)
STAVKA RACUNA (RedniBroj, SifraNarudzbe, SifraRacuna, Cena,
Kolicina, SifraArtikla)
191
192
193
Poglavlje 18
Dodatak 2.
Servis za odravanje rada
softverskog sistema
18.1. Korisniki zahtev
Stranka podnosi zahtev za popravku raunara. Na osnovu razgovora ili analize raunara isti se prihvata na popravku. Pri prijemu raunara stranci se izdaje
revers ili potvrda o prijemu.
Vri se popravka raunara (opravka sistema, spaavanje podataka, izrada
Back up-a podataka i td.) Po zavrenoj popravci stranci se izdaje raun koji on
plaa i nakon izvrene uplate izdaje se popravljen raunar.
Takoe servis nabavlja odgovarajui softver i vodi rauna o novim programima koji se izbacuju na trite. Softver se nabavlja od specijalizovanih
dobavljaa.
Razvojno okruenje izabrano za aplikaciju Servis za odravanje Softverskog
Sistema je Access 2003. Korieni su tabele, SQL upit i forme.
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
Poglavlje 19
Dodatak 3.
Uvoz i distribucija
proizvoda bele tehnike
19.1. Korisniki zahtev
Firma Singidunum Technic nam se obratila sa zahtevom za izradu i implementaciju sistema za upravljanje bazom podataka vezane za uvoz i distribuciju proizvoda bele tehnike. Uoeno je postojanje funkcija nabavke, prodaje i servisa.
Nabavka prima ponudu stranog dobavljaa, koja sadri spisak artikala i
njihove cene. Po zahtevu, dobavlja alje predraun za odreen broj eljenih artikala, na osnovu kog se pravi narudbenica. Prema raunu koji alje dobavlja vri
se uplata. Uz poiljku naruenih artikala prima se otpremnica, za koju se u odelu
prijema vezuje odgovarajua prijemnica.
Prodaja sastavlja razliite ponude vezane za odreeni broj artikala, koje
alje potencijalnim kupcima. Po prijemu porudbine, kupcu se alje raun, a iz
magacina, prema nalogu, traeni artikli sa otpremnicom. Uplata kupca vri se na
odgovarajui raun u banci.
U sluaju kvara na nekom od artikala, kupac se obraa odeljenju servisa, koji uruuje odgovarajui nalog za rad nekom od ovlaenih servisera. Po
zavrenom radu, serviser uz nalog o zavrenom radu alje i raun na osnovu
kog se vri odgovarajua uplata.
Dodatak 3. Uvoz i distribucija proizvoda bele tehnike
215
Servis
Uplata servisu
Raun servisa
Nalog za rad
Nalog o zavrenom radu
217
218
219
Kupci
Artikli
Rauni
Uplata kupca
220
221
222
223
224
225
226
227
228
Nabavka:
Artikli:
229
Prodaja:
Servis:
230
Literatura
[1] James L. Johnson, Database: Models, Languages, Design, Oxford University Press,
1997., London.
[2] Michael Kifer, A. Bernstein, P.M. Lewis, Database, Systems, Pearson, Addison
Wesley, 2004.
[3] S. Abiteboul, R. Hull, V.Vianu, Fundation of Databases, Addison Wesley, Boston, MA
[4] Branislav Lazarevi, Z. Marjanovi, N. Anii, S. Babarogi, Baze podataka, FON,
Beograd, 2003.
[5] Vladimir Blagojevi, Relacione baze podataka, Klub Nikola Tesla, Beograd, 2001.
[6] Phuong Lien, , Systems Analysis and Design, Tutorial, PPAC-VTVCompany, 2000
[7] Denis & Haley Wixom, Systems Analysis and Design, 2nd Edition, John Wiley &
Sons, 2003
[8] Jeffrey A. Hoffer, M.B. Prescott, F.R. McFadden, Modern Database Management,
Pearson, Prentice Hall, 2005.
[9] B. Thalheim, Fundamentals of ER Modeling, Springer Verlag, Berlin
[10] Craig S. Mullins, Administracija baza podataka, Kompjuter biblioteka, 2003.
Literatura
231
Renik pojmova
Model procesa vodi projektanta kroz redosled aktivnosti vezanih za projekat i predstavlja ivot ni ciklus projekta. Istorijski posmatrano, neki modeli procesa su statiki, a neki ne dozvoljavaju postojanje kontrolnih taaka. Dva takva
modela procesa su model vodopada i model spirale
Model vodopada. Ovaj model koristi markere kao prelazne i izvrne take.
Kada koristite model vodopada, treba da obavite svaki skup zadataka u okviru
jedne faze pre nego to predete na sledeu fazu. Najbolje je da ovaj model koristite
za projekte kod kojih se zahtevi projekta mogu jasno denisati i koji u budunosti nee biti podloni izmenama. Poto model vodopada ima ksne prelazne
take izmeu faza, veoma lako moete da nadgledate raspored i dodeljujete jasna
zaduenja i odgovornosti.
Model spirale. Ovaj model se zasniva na stalnoj potrebi za usavravanjem
zahteva i procena projekta. Model spirale je ekasan kada se koristi za aplikacije
koje se brzo razvijaju ili za male projekte. Ovaj pristup moe da dovede do uspene saradnje izmeu razvojnog tima i korisnika zato to je korisnik ukljuen u sve
faze tako to obezbeuje povratne informacije i daje odobrenja. Meutim, model
spirale nema ugraene jasne kontrolne take. To za posledicu moe imati haotian razvojni proces.
Microsoft solution framework - MSF model procesa kombinuje najbolje
principe modela vodopada i modela spirale. MSF kombinuje planiranje zasnovano na markerima i predvidljivosti rezultata kod modela vodopada sa Opte prihvaen ciklus razvoja poslovnih reenja sastoji se iz nekoliko faza: prikupljanje
Renik pojmova
233
zahteva, sistemska analiza, projektovanje sistema, kodiranje, testiranje i implementacija. MSF model procesa se sastoji od pet razliitih faza: predvianje; planiranje,
razvoj; stabilizacija, uvoenje.
Faza predvianja Prva faza procesnog modela MSF. Predvianje se moe
denisati kao pravljenje grubog opisa ciljeva i ogranienja projekta. U ovoj fazi
odreujete radni tim i ono to on treba da postigne za naruioca. Svrha faze
predvianja je da napravi zajedniku viziju projekta za sve vane interesne grupe u projektu.
Faza planiranja (eng planning phase) Druga faza procesnog modela MSF,
tokom koje tim odreuje ta e se razvijati i planira kako da napravi poslovno
reenje. Radni tim priprema funkcionalnu specifikaciju, pravi nacrt reenja
i priprema radne planove, procene trokova i rasporede za razne isporuive
rezultate. Za vreme faze planiranja prave se kolekcije modela i dokumenata sa
zahtevima. Ta kolekcija modela i dokumenata ini funkcionalnu specifikaciju
i nacrt reenja. Za vreme faze planiranja poinjete da se radi na funkcionalnoj
specifikaciji reenja. Tokom faze planiranja postoje tri procesa projektovanja:
konceptualno, logiko i fiziko projektovanje. Ova tri procesa se ne odvijaju
paralelno. Njihove poetne i krajnje take su meusobno povezane. Ovi procesi zavise jedan od drugog. Logiko projektovanje zavisi od konceptualnog
projektovanja, a fiziko projektovanje zavisi od logikog projektovanja. Svaka
izmena u konceptualnom dizajnu utie na logiki dizajn, to dalje dovodi do
izmena u fizikom dizajnu.
Konceptualno projektovanja Konceptualno projektovanja je proces
sakupljanja, analize i postavljanja prioriteta problema i reenja sa stanovita
posla i korisnika i pravljenje predstave reenja visokog nivoa. Konceptualno
projektovanje se pojavljuje za vreme faze planiranja. Neki od ciljeva pravljenja konceptualnog dizajna su: razumevanje poslovnog problema koji treba
da se rei, razumevanje poslovnih zahteva i zahteva korisnika i opisivanje
ciljnog budueg stanja posla.
Logiko projektovanje se denie kao proces opisivanja reenja u pogledu
njegove organizacije, strukture i interakcije delova reenja sa stanovita projektnog
tima. Logiko projektovanje: denie sastavne delove reenja, obezbeuje radni
okvir koji sve delove reenja dri zajedno, ilustruje nain na koji se reenje sastavlja i nain na koji stupa u interakciju sa korisnicima i drugim reenjima. Kada
234
Renik pojmova
pravi logiki dizajn, radni tim uzima u obzir sve zahteve posla, korisnika, sistema i
operacija koji utvruju potrebu za bezbednou, voenjem dnevnika, beleenjem
dogaaja, skalabilnou, upravljanjem stanjem, rukovanjem grekama, licenciranjem, globalizacijom, arhitekturom aplikacije i integracijom sa drugim sistemima.
Rezultati logikog projektovanja su: logiki model objekata; dizajn visokog nivoa
za korisniki interfejs; logiki model podataka.
Fiziko projektovanje predstavlja poslednji postupak u okviru faze planiranja u MSF modelu procesa. Projektni tim prelazi na fiziko projektovanje
onda kada se svi lanovi sloe sa tim da imaju dovoljno informacija na osnovu
logikog dizajna da bi mogli da predu na fiziko projektovanje. Tokom fizikog projektovanja, radni tim primenjuje tehnoloka razmatranja i ogranienja
na konceptualni i logiki dizajn. Poto fiziko projektovanje predstavlja nastavak konceptualnog i logikog projektovanja, njegov uspeh zavisi od tanosti
prethodna dva dizajna. Oslanjanje fizikog dizajna na konceptualni i logiki dizajn obezbeuje timu mogunost da zavri fiziki dizajn koji ispunjava
poslovne i korisnike zahteve.
Faza razvoja Trea faza procesnog modela MSF. Za vreme faze razvoja, projektni tim pravi reenje. Ovaj proces ukljuuje pravljenje programskog kda koji
implementira reenja i pravljenje dokumentacije za programskog kd. Pored razvoja programskog kda, radni tim razvija i infrastrukturu reenja. Proces razvoja prolazi kroz nekoliko faza: pokretanje razvojnog ciklusa, pravljenje prototipa aplikacije,
razvijanje komponenata reenja, izgradnja reenja, zavretak faze razvoja.
Faza stabilizacije etvrta faza procesnog modela MSF. Za vreme faze stabilizacije radni tim obavlja integraciju, uitavanje i beta testiranje poslovnog reenja. Pored toga, tim testira scenarija za uvoenje reenja. Tim usmerava panju na
odreivanje problema, postavljanje prioriteta i reavanje problema tako da reenje
moe biti pripremljeno za izdavanje. Za vreme ove faze, reenje prelazi iz stanja
u kome su sve karakteristike zavrene kao to je denisano u funkcionalnoj specikaciji za ovu verziju, u stanje u kome se ispunjavaju denisani nivou kvaliteta.
Pored toga, reenje postaje spremno za uvoenje u posao.
Faza uvoenja Peta faza procesnog modela MSF. Za vreme ove faze, tim
uvodi tehnologiju poslovnog reenja i smeta komponente, stabilizuje uvoenje,
prenosi projekat operativcima i podrci i dobija odobrenje projekta od krajnjeg
kupca. Nakon uvoenja, radni tim vodi pregled projekta i nadzire zadovoljstvo
naruioca projektom.
Renik pojmova
235
Renik pojmova
Sluaj korienja (eng. Use case) Opis interakcija visokog nivoa izmeu
pojedinca i sistema. Sluaj korienja oznaava redosled koraka koje e korisnik
preduzimati u scenariju upotrebe.
Scenario upotrebe (eng. Usage scenario) Oznaava aktivnosti koje obavlja
odreen tip korisnika i obezbeuje dodatne informacije o aktivnostima i sekvencama zadataka koje ine proces.
Interna dokumentacija projektnog tima Nakon sakupljanja informacija, kao deo analize, tim pravi nekoliko internih dokumenata koja se obino
ne dostavljaju kupcima. Ta dokumenta - katalog uesnika; katalog poslovnih
pravila i renik - su aktivna dokumenta i preciznije se deniu tokom ivotnog
ciklusa projekta.
Unied Modeling Language UML je standardni jezik modeliranja koji
koristite za modeliranje softverskih sistema razliite sloenosti. Ti sistemi mogu
biti od velikih zajednikih informacionih sistema do distribuiranih sistema zasnovanih na Web tehnologiji. UML je razvijen da bi korisnicima obezbedio standardni vizuelni jezik modeliranja tako da mogu da razvijaju i razmenjuju znaajne
modele. UML ne zavisi od konkretnih programskih jezika i razvojnih procesa.
UML prikazi UML omoguuje sistemskim inenjerima da naprave standardni nacrt bilo kog sistema. UML obezbeuje nekoliko grakih alata koje
moete da koristite za vizuelno predstavljanje i razumevanje sistema sa razliitih
taaka gledita. Razliiti UML prikazi opisuju nekoliko aspekata softverskog sistema. Prikazi koji se obino koriste su: prikaz korisnika. struktuirani prikaz. prikaz
ponaanja. prikaz implementacije. prikaz okruenja.
UML dijagrami Razliiti UML prikazi sadre dijagrame koji obezbeuju
vie aspekata reenja koje se razvija. Nije potrebno razvijati dijagrame za svaki sistem koji se pravi. Slino tome, ne koriste se svi dijagram za modeliranje
sistema. Pomou sledeih UML dijagrama mogu se opisati razliiti prikazi sistema: dijagrami klasa. dijagrami objekata. dijagrami sluajeva korienja. dijagrami komponenata. dijagrami uvoenja. dijagrami saradnje. dijagrami toka i
dijagrami stanja.
DBMS Baza podataka se denie kao skup podataka koji su organizovani
na odreen nain. DBMS Database Management System je sistem koji upravlja
bazama podataka.
Renik pojmova
237
238
Renik pojmova
CIP -
,
004.65(075.8)
, , 1962Uvod u baze podataka / Mladen Veinovi,
Goran imi. - 5. izd. - Beograd :
Univerzitet Singidunum, 2010 (Loznica :
Mladost grup). - VIII, 238 str. : ilustr. ;
24 cm
Na vrhu nasl. str.: Fakultet za informatiku i
menadment. - Tira 870. - Renik pojmova:
str. 233-238. - Bibliograja: str. 231.
ISBN 978-86-7912-252-0
1. , , 1967- []
a)
COBISS.SR-ID 176515596
2010.
Sva prava zadrana. Ni jedan deo ove publikacije ne moe biti reprodukovan u bilo kom
vidu i putem bilo kog medija, u delovima ili celini bez prethodne pismene saglasnosti
izdavaa.