BUSINESS INTELLIGENCE U NAUTIČKOM

SVEUÈILIŠTE U ZAGREBU
EKONOMSKI FAKULTET - Zagreb
Diplomski rad
BUSINESS INTELLIGENCE U NAUTIÈKOM TURIZMU
– implementacija OLAP sustava
Mentor:
prof. dr. Mladen Varga
Student:
Damir Sovilj
Smjer:
Poslovna informatika
Zagreb, lipanj 2004.
Sadržaj
1. UVOD ........................................................................................................................2
2. POJAM BUSINESS INTELLIGENCE (POSLOVNA INTELIGENCIJA) ......3
3. KAKO I KADA JE POÈELA PRIÈA? .................................................................4
4. ZAŠTO POSLOVNA INTELIGENCIJA U NAUTIÈKOM TURIZMU?.........5
4.1. Dosadaðnji naèin prikupljanja i obrade podataka ............................................5
4.2. Razlozi za implementacijom sustava poslove inteligencije ...............................5
4.3. Vizija koriðtenja sustava.....................................................................................6
5. VIŠE RIJEÈI O OLAP-U........................................................................................7
5.1. Pojam...................................................................................................................7
5.2. Obilježja OLAP-a................................................................................................8
5.3 Inaèice OLAP alata .............................................................................................9
6. DIZAJN I IMPLEMENTACIJA OLAP SUSTAVA ..........................................11
6.1. Dizajn tabele za unos podataka i priprema podataka za SQL server.............11
6.1.1. Dizajn Excel tabele .................................................................................................11
6.1.2. Priprema podataka za SQL Server.........................................................................12
6.2. ETL procesi – pocesi ekstrakcije, transformacije i punjenja .........................16
6.2.1 Data Transformation Services (DTS)......................................................................16
6.2.2. Ekstrakcija podataka (engl. Extract)......................................................................17
6.2.3. Kreiranje paketa za ekstrakciju podataka u DTS-u ...............................................17
6.2.4. Transformacija odnosno preoblikovanje podataka (engl. Transform)..................25
6.2.5. Kreiranje paketa za transformaciju u DTS-u .........................................................29
6.2.6. Opis SQL upita za transformaciju podataka..........................................................31
6.2.7. Punjenje ili unos podataka (engl. Load) ................................................................34
6.3. Izgradnja OLAP kocke .....................................................................................34
6.3.1. Zvjezdasta shema (engl. Star shema) .....................................................................36
6.3.2. Pahuljasta shema (engl. Snowflake shema) ...........................................................37
7. ANALIZA PODATAKA........................................................................................39
7.1. Raslojavanje i presijecanje (engl. Slice and Dice Method) ............................39
7.2. Rotacija ili pivotiranje (engl. Pivoting) ...........................................................40
8. ZAKLJUÈAK .........................................................................................................43
9. KORIŠTENI IZVORI............................................................................................44
10. PRILOG ................................................................................................................45
1
1. UVOD
Danas je u svijetu poslovanja opãi trend implementacija Business Intelligence
sustava, odnosno sustava poslovne inteligencije. Ne iz razloga kako bi se zaposlenici
poduzeãa mogli hvaliti da su u trend pa su ga zato implementirali veã iz nužnosti, jer
kvalitetne poslovne odluke moguãe je donositi samo uz pomoã informacija. Sustav
poslovne inteligencije na osnovu podataka koji se nalaze interno u poduzeãu,
smjeðteni u transakcijskim bazama ili nekim fileovima (èesto u fileovima tabliènih
kalkulatora npr. MS Excel), te podataka koji dolaze iz eksternih izvora (npr. Državni
zavod za statistiku, Hrvatska narodna banka i sl.) kreira informacije. Informacije koje
su podloga za donoðenje kvalitetnih poslovnih odluka koje su se do nedavno donosile
na osnovu intuicije. Uz sustav poslovne inteligencije toèno se zna kakovo je stanje u
poduzeãu i svim njegovim dijelovima, te stanje na tržiðtu kako bi suvremeni
menadžer mogao pokazati svoje sposobnosti rukovoðenja u punom sjaju.
Ovaj diplomski rad ãe prikazati dizajniranje i implementiranje sustava
poslovne inteligencije za nautièki turizam. Podaci su prikupljeni od strane Državnog
zavoda za statistiku i nalaze se u papirnatom obliku. Vidjet ãemo kako se podaci
prebacuju u digitalni oblik kako bi ih mogli iskoristiti za stvaranje sustava poslovne
inteligencije te dizajn i implementaciju istoga. Sustav ãe prvenstveno biti namijenjen
istraživaèima tržiðta i znanstvenicima ali uvelike i poduzetnicima nautièkog turizma.
Sustav ãe poèivati na MS SQL Server 2000 platformi a ovim radom ãe se prikazati
sve faze njegovog nastajanja.
2
2. POJAM BUSINESS INTELLIGENCE
(POSLOVNA INTELIGENCIJA)
Pojam Business Intelligence (poslovna inteligencija) prilièno davno skovao je
Stevan Dedijer ali je on u uporabi razmjerno kratko vrijeme. Iz akademskoobavjeðtajne sfere "prikupljanja" informacija evoluirao je u disciplinu kojoj je svrha
ne toliko prikupljanje, koliko obrada, analiza, vizualizacija i upotreba informacija u
poslovne svrhe, prvenstveno u svrhu podrðke donoðenju poslovnih odluka.
Prema definiciji pojam poslovna inteligencija objedinjava metodologije,
tehnologije i platforme za Data Warehousing (DW), On-line Analytical Processing
(OLAP) i Data Mining (DM), koje omoguãavaju tvrtkama kreiranje korisnih
upravljaèkih informacija iz podataka o poslovanju, koji se nalaze disperzirani na
razlièitim transakcijskim sustavima te dolaze iz razlièitih internih i eksternih izvora.
U stvarnosti, poslovna inteligencija je s jedne strane naèin poslovnog
promiðljanja koji omoguãava da se poslovne odluke na svim razinama odluèivanja
donose temeljene na relevantnim i ažurnim poslovnim informacijama, a ne temeljene
na predosjeãaju i subjektivnom utisku. Promatrano s informatièke strane, poslovna
inteligencija je složeni informacijski sustav koji automatiziranim procedurama
prikuplja podatke iz razlièitih izvora, obraðuje ih, transformira i integrira, te
omoguãava korisnicima dostup do kvalitetne informacije na intuitivan i lako
razumljiv naèin1.
I za kraj, od mnoðtva definicija navedene su dvije koje prezentiraju sve prije
reèeno:
Steve Murfitt:
"Poslovna je inteligencija naèin dostavljanja pravih informacija u pravome
formatu u prave ruke u pravom trenutku. Dobar sustav poslovne inteligencije
prikuplja informacije iz svih dijelova tvrtke, analizira ih, priprema potrebna izvjeðãa i
ðalje ih ljudima koji ih trebaju.
1
http://www.skladistenje.com/
3
Na taj naèin, svaki pojedinac dobiva informacije 'skrojene' prema njegovim
potrebama – financijski direktor financijske podatke, direktor prodaje podatke o
prodaji, direktor marketinga marketinðke podatke, itd."
Vinod Badami:
"Pojednostavljeno definirano, poslovna inteligencija je proces prikupljanja
raspoloživih internih i relevantnih eksternih podataka, te njihove konverzije u korisne
informacije koje mogu pomoãi poslovnim korisnicima pri donoðenju odluka.2"
3. KAKO I KADA JE POÈELA PRIÈA?
Bit poslovne inteligencije razvijena je prilièno davno. Naime, 17. stoljeãe bilo
je razdoblje procvata meðunarodne trgovine. Otkriveni su novi teritoriji i plovni
putovi, a pomorci-pustolovi sa svojih su putovanja donosili egzotiène stvari èudnih
svojstava, izgleda i namjena. Meðutim, njihova putovanja su bila izložena raznim
kuðnjama, izazovima i novim tipovima rizika. Trebala im je neka vrsta zaðtite od
opasnosti ðto su na njih vrebale na otvorenom moru. To je nadahnulo novi tip
poduzetnika – pomorske osiguravatelje – koji su bili spremni pokriti ðtete, odnosno
gubitke, u zamjenu za odgovarajuãu naknadu ili premiju.
Veã su tada osiguravatelji ovisili o toènim i ažurnim informacijama,
primjerice, o plovnim putovima, gusarskim aktivnostima, politièkoj situaciji u
razlièitim regijama svijeta, atmosferskim prilikama u odreðenim zemljopisnim
podruèjima, stanju broda i tereta, te karakteristikama posade, ali isto tako i o
potrebama, željama i preferencijama potencijalnih kupaca, te njihovoj spremnosti na
kupnju egzotiènih artikala.
Da bi doðli do potrebnih informacija, mnogi su pomorski osiguravatelji poèeli
posjeãivati tada popularnu kavanu (a zapravo, krèmu) koju je u Londonu držao
stanoviti Edward Lloyd. Bilo je to mjesto gdje su ti novi poduzetnici mogli
meðusobno i s pomorcima razmjenjivati i dijeliti informacije, steèena iskustva i
spoznaje. Danas možemo ustvrditi: bilo je to mjesto gdje je stvorena prva
2
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
4
osiguravajuãa kompanija, koju je osnovalo 79 poduzetnika, prvih dionièara kompanije
Lloyd's. No, danas možemo isto tako mirne duðe ustvrditi – bilo je to mjesto gdje je
roðena poslovna inteligencija, koju je stvorila masa znanih i neznanih poduzetnika,
pomoraca i pijanaca3.
4. ZAŠTO POSLOVNA INTELIGENCIJA U NAUTIÈKOM
TURIZMU?
4.1. Dosadaðnji naèin prikupljanja i obrade podataka
Podaci o nautièkom turizmu u Hrvatskoj se prikupljaju na poèetku tekuãe
godine za proteklu godinu, ðto znaèi da se primjerice u 2004. godini kompletiraju
podaci za 2003. godinu. Podaci se prikupljaju slanjem obrasca TU-18 (vidi prilog,
poglavlje 10.), od strane Državnog zavoda za statistiku, svakoj marini na podruèju
Republike Hrvatske koja ispunjeni obrazac vraãa Državnom zavodu za statistiku.
Državni zavod za statistiku prikupljene podatke obraðuje i analizira te prezentira
informacije koje smatra bitnima za stanje u nautièkom turizmu. Kako se naime radi u
veãini sluèajeva da se usporede podaci sa prethodnom godinom, i to podaci koje oni
smatraju bitnima, poduzetniku za dobro stanje na tržiðtu preostaje jedino da naruèi
detaljniju analizu koja iziskuje vrijeme i povlaèi za sobom izvjesne troðkove.
4.2. Razlozi za implementacijom sustava poslove inteligencije
Iz obrasca TU-18 (vidi prilog, poglavlje 10.) prilièno je mukotrpan posao
obrade i analize jer govorimo o sedamdesetak marina pa kad joð naruèitelj analize želi
usporedbu sa prethodnih pet ili ðest godina, ili za cjelokupno razdoblje za koje postoje
podaci, statistièari se nalaze u nezavidnoj situaciji u kojoj je zaraðeni kruh poprilièno
tvrd.
3
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
5
Implementacijom OLAP sustava poslovne inteligencije, kojem je cilj obrada,
analiza i vizualizacija podataka za sva razdoblja za koja postoje podaci, prethodno
opisani posao statistièara sada radi sustav, a naruèitelju se podaci isporuèuju trenutno.
4.3. Vizija koriðtenja sustava
Institut za turizam, kao veliki konzument podataka Državnog zavoda za
statistiku, prepoznao je prednosti implementacije ovakvog sustava te krenuo u
realizaciju istoga. Ideja je da se otkupljuju podaci od Državnog zavoda za statistiku te
se obradom pomoãu OLAP-a sustava koriste za interne potrebe ali da se ujedno
omoguãi i eksterna konzumacija (komercijalizacija). Eksterna konzumacija se provodi
na naèin da se uspostavi Web mjesto na kojem je moguãe koriðtenje sustava uz
razlièite modele pretplate (tarife) koji su proporcionalni razini detaljnosti analize
podataka. Primjerice ako želimo usporeðivati prihode marina na osnovu teritorijalnog
ustroja (i to administrativne podjele), moguãa ja usporedba na razini županija, opãina
i naselja (vidi sliku 1.). Marina bi bila najniži nivo detaljnosti ali kako se podaci
dobivaju agregirani na razini naselja jer se ne odobrava ustupanje podataka koji imaju
identifikacijski kljuè marine, najniža razina detaljnosti su naselja a pretplata je
naravno najviða.
ÞUPANIJA
OPÃINA
NASELJE
slika 1. Teritorijalni ustroj - administrativna podjela
Ovakvim sustavom poduzetniku je potreban analitièki naèin razmiðljanja,
edukacija iz koriðtenja sustava te financijska sredstva za pretplatu kako bi posao
analize tržiðta mogao obaviti samostalno u udobnosti vlastite stolice.
6
5. VIŠE RIJEÈI O OLAP-U
5.1. Pojam
OLAP alati služe za izvoðenje znanja iz podataka. OLAP je nastao kao
akronim punog engleskog naziva On-Line Analytical Processing, ðto se može prevesti
kao "online analitièka obrada". Termin je "skovao" britanski matematièar E.F. Codd,
koji je postavio temelje relacijskog raèuna (engl. Relational Calculus) i 1970. godine
predstavio relacijski model podataka. Taj je model podataka osnovom danas
najpopularnijeg tipa baza podataka – relacijskih baza podataka.
Naziv nije sluèajno odabran, jer on sam, a joð viðe akronim, dobro ukazuju na
razliku prema veã prije poznatim alatima za online transakcijsku obradu, u izvornom
engleskom izrièaju On-Line Transaction Processing, odnosno OLTP. 1993. godine
Codd je definirao ðirok skup kriterija kojima trebaju udovoljavati baze podataka u
kojima ili nad kojima ãe se primjenjivati OLAP alati.
Proizvoðaèi softvera ubrzo su shvatili potencijale i revolucionarne utjecaje
koje primjena Coddove teorije može imati na praksu upravljanja podacima te prionuli
razvoju odgovarajuãih softverskih rjeðenja za analitièku obradu podataka. Valja
napomenuti kako su tada relacijske baze podataka bile veã uvelike u uporabi i zapravo
postale vodeãim modelom u podruèju pohrane podataka, ali su se koristile iskljuèivo
u svrhe online transakcijskih obrada.
Danas, desetak godina kasnije, gotovo da i nema važnijeg proizvoðaèa
softvera koji ne nudi neke svoje OLAP alate. Koncem 2002. godine ukupan promet
ostvaren na tržiðtu OLAP alata iznosio je približno 3.5 milijardi amerièkih dolara4.
4
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
7
5.2. Obilježja OLAP-a
Suvremeni OLAP sustavi nude sljedeãe moguãnosti5:
1. OLAP predstavlja konceptualni i intuitivni model kojega i oni korisnici koji
nisu posebno obrazovani i specijalizirani za obavljanje analitièkih poslova
mogu lako razumjeti i brzo primijeniti u svom radu. Model se zasniva na
metodologiji multidimenzijske analize, ðto
znaèi
da podatke može
istovremeno "gledati" kroz veãi broj filtara, koji se u struènoj terminologiji
nazivaju dimenzijama.
2. OLAP alati omoguãuju obavljanje vrlo brzih analiza. Brzina rada OLAP
sustava omoguãuje menadžerima i struènjacima postavljanje pitanja i
dobivanja odgovora u vremenu kraãem no ðto je bilo ikada prije pojave tih
alata, ðto, dakako, ima pozitivnog utjecaja na kvalitetu njihovih odluka.
Sustavi rade "brzinom misli" pa dolazi do stvaranja tzv. sindroma beskonaènih
pitanja, ðto znaèi da se svaki zanimljiv uzorak i koristan segment informacija u
bazi podataka može istražiti.
3. OLAP alati u sebi ukljuèuju vrlo robusne sposobnosti raèunanja, potrebne za
zadovoljavanje
specifiènih
proraèunskih
zahtjeva
koje
postavlja
viðedimenzijska struktura. Teorijski, broj dimenzija je neogranièen, a u praksi
nisu rijetki sluèajevi da se taj broj u sofisticiranim analizama penje na desetke
ili èak i viðe. To èak nadilazi i kognitivne moguãnosti prosjeènog èovjeka, pa
se može reãi da kvalitetni OLAP alati na neki naèin predstavljaju proðirenje ili
nadogradnju èovjekove inteligencije. Proraèunske moguãnosti OLAP alata
dopuðtaju èovjeku – poslovnom analitièaru – pisanje jednostavnih formula
koje ãe primjenjivati uzduž viðe dimenzija, a pritom moraju napisati samo
nekoliko jednostavnih programskih instrukcija, odnosno linija koda.
OLAP alati, dakle, obuhvaãaju ðirok spektar moguãnosti, od jednostavnog
pretraživanja i navigacije, preko proraèuna (kalkulacija), do ozbiljnijih analiza poput
5
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
8
analize vremenskih serija i kompleksnog modeliranja. Na taj naèin, oni mogu
"pokriti" èitav hijerarhijski lanac ðto èini okosnicu donoðenja informiranih poslovnih
odluka – lanac koji zapoèinje podacima, nastavlja se informacijama, a zavrðava
poslovnom inteligencijom.
5.3 Inaèice OLAP alata
Danas se na tržiðtu mogu naãi èetiri glavne inaèice OLAP alata6:
·
·
·
·
MOLAP (engl. Multidimensional OLAP)
ROLAP (engl. Relational OLAP)
DOLAP (engl. Desktop OLAP)
HOLAP (engl. Hybrid OLAP)
MOLAP ili viðedimenzijski OLAP predstavlja skup proizvoda koji koriste
svoju vlastitu bazu podataka n dimenzionalne matriène strukture. Ona nije izgraðena
ni na relacijskom niti na bilo kojem drugom opãem modelu ili standardu, ðto može
izazvati odreðene probleme u primjeni ovog tipa OLAP alata. S jedne strane, takvi ãe
alati biti teðko prilagodljivi promjenama u velièini sustava kojeg se pomoãu njih želi
analizirati i pratiti, jer se svi elementi tog sustava smatraju potpuno ravnopravnima,
tretiraju se gotovo mehanièki i nemoguãe je utvrditi neku vrstu hijerarhije ili sheme
prioriteta meðu njima, pa takav model podataka neãe uvijek objektivno odražavati
obilježja onog dijela stvarnog svijeta na koji se odnosi.
MOLAP gledan kao pravac u razvoju OLAP alata prvi se pojavio te je od
izvorne relacije napravio multidimenzionalnu kocku. Njegova prednost bila je brzina,
a mana ogromno zauzeãe prostora u sluèaju postojanja veãeg broja dimenzija7.
ROLAP ili relacijski OLAP kao ðto mu sam naziv kaže, koristi relacijski
model kao temelj svoje baze podataka. Kao i svaki relacijski model podataka, i ovaj
se može definirati tako da vrlo vjerno odražava stvarni svijet, ðto je velika prednost
ROLAP-a pred MOLAP-om. Naime, svaki proizvoðaè ovakvih alata želi u svoj
6
7
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
http://www.skladistenje.com/
9
proizvod unijeti neku specifiènost, koju onda predstavlja kao posebnu kvalitetu svojeg
rjeðenja. Time se, meðutim, otežava primjena standardnih upitnih jezika, poput SQLa, na koje su korisnici navikli, pa neke druge oblike interakcije s bazom podataka ne
smatraju prednoðãu veã nedostatkom takvih sustava8.
ROLAP je bio drugi pravac u razvoju OLAP alata, koji je na postojeãu relaciju
dodao samo sumarizacije. Njegova prednost je bio mali prostorni overhead, ðto je
plaãeno smanjenom brzinom9.
DOLAP ili OLAP za stolna raèunala prilagoðen je, dakako, primjeni na
stolnim raèunalima skromnijih memorijskih kapaciteta i obradbenih moguãnosti od
velikih poslužiteljskih raèunala. U naèelu, DOLAP ne podržava viðekorisnièke
aplikacije, veã samo manje aplikacije namijenjene zadovoljavanju potreba
pojedinaènih korisnika. U najnovije vrijeme razvijene su i inaèice za prijenosna, pa
èak i ruèna raèunala.
HOLAP ili hibridni OLAP predstavlja kompromisno rjeðenje. Zamisao je
njegovih tvoraca bila kombinirati prednosti MOLAP-a i ROLAP-a. Neki su u tome i
uspjeli, pa je upravo ova hibridna inaèica OLAP alata danas najèeðãe u primjeni.
HOLAP kao hibridni koncept u razvoju OLAP alata je prevladao. HOLAP
samo sumarizacije drži u multidimenzionalnoj kocki, dok elementarni nivo podataka
drži u izvornoj relaciji i njima pristupa pomoãu drill-trough procedura. Na taj naèin
objedinjene su i velika brzina pristupa i relativno malo zauzeãe prostora9.
U desetak godina postojanja OLAP alata na softverskoj sceni, struènjaci nisu
uspjeli doãi do jedinstvenog stava o tome koji je model, odnosno koja je inaèica
OLAP alata najbolja. Sa stajaliðta korisnika, meðutim, zapravo uopãe nije važno koju
inaèicu OLAP alata imaju na raspolaganju. Ono ðto ãe ih opredjeljivati pri
ocjenjivanju takvog alata jest, s jedne strane, njegova jednostavnost pri uporabi, te
brzina i prilagodljivost analitièkih moguãnosti koje nudi, s druge strane8.
8
9
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
http://www.skladistenje.com/
10
6. DIZAJN I IMPLEMENTACIJA OLAP SUSTAVA
Prilikom dizajniranja OLAP sustava za nautièki turizam pomno je prouèavan
obrazac TU-18 (vidi prilog, poglavlje 10.) kako bi se sustav optimizirao, odnosno
kako bi bio saèinjen od ðto manjeg broja kocaka koje sadrže sve podatke prikupljene
obrascom. Nakon poduljeg razmatranja doðlo se do konaènog broja OLAP kocaka
koje ãe sustav sadržavati a on iznosi ðest. S obzirom da bi opis cjelokupnog dizajna i
implementacije sustava zauzeo poprilièan broj stranica odluèeno je da se prikaže
cjelokupan postupak (proces) za jednu OLAP kocku. Naziv kocke je Nautièki promet
– Duljina plovila, a sadrži podatke o broju plovila u luci nautièkog turizma za
razdoblje od 1995. do 2004. godine.
6.1. Dizajn tabele za unos podataka i priprema podataka za SQL server
6.1.1. Dizajn Excel tabele
Iz obrasca TU-18 (vidi prilog, poglavlje 10.), tabela 2. BROJ PLOVILA U
LUCI NAUTIÈKOG TURIZMA ZA RAZDOBLJE_____ , pod b) prema duljini
plovila, uneseni su podaci za plovila u luci nautièkog turizma prema duljini i tipu
plovila. Podatke je bilo potrebno prepisati u Excel tabele kako bi se isti mogli
"povuãi" u SQL server (viðe rijeèi kasnije).
Kao ðto vidimo u obrascu (vidi prilog, poglavlje 10.) tabela se sastoji od dva
dijela. Jedan dio se odnosi na plovila koja su stacionarna u promatranom razdoblju a
drugi dio na ona koja su u tranzitu. Odluèeno je da ãe se podaci prepisivati u dvije
tabele, jedna koja se odnosi na nautièki promet – stacionarno, a druga koja se odnosi
na nautièki promet – tranzitno.
Godina
Naselje
Duljina
plovila
Ukupno
Motorne
Jahte na
jahte
jedra
Ostalo
slika 2. Izgled Excel tabele za unos podataka iz obrasca TU-18
11
Podaci su se prepisivali kao ðto je veã reèeno u dvije tabele ovisno o
nautièkom prometu te su se kasnije spojeni u jednu tabelu (vidi sliku 3.) kojoj je
dodan jedan stupac (polje) koji sadrži podatak o nautièkom prometu (ovisno da li je
stacionaran ili tranzitan).
Godina
Naselje
Nautièki
Duljina
promet
plovila
Ukupno
Motorne
Jahte na
jahte
jedra
Ostalo
slika 3. Izgled spojne tabele u Excelu
Kako tabela u ovakvom obliku sadrži prilièan broj tekstualnih podataka
potrebno je izvrðiti sreðivanje ("peglanje") podataka kako bi prenijeli podatke u SQL
Server bez odstupanja.
6.1.2. Priprema podataka za SQL Server
Podaci koji su u tekstualnom obliku (polja: Naselje, Nautièki promet, Duljina
plovila) se ðifriraju kako bi se ðto lakðe moglo manipulirati podacima kada oni budu
"povuèeni" u SQL Server. Šifranti (vidi slike 4., 5., i 6.), tabele koje sadrže ðifrirane
tekstualne podatke, kasnije ãe biti napravljene u SQL serveru
i predstavljat ãe
dimenzije (viðe rijeèi kasnije). Ostali podaci, numerièki, se sreðuju na naèin da se na
mjesta na kojima nije uneðen podatak ili je uneðen neki znak (npr. x) unosi nula.
Duljina plovila
Šifra duljine
Duljina
1
do 6 metara
2
6–8m
3
4
5
8 – 10 m
10 – 12 m
12 – 15 m
6
15 –20 m
7
preko 20 m
slika 4. Šifrant za duljine plovila
12
Nautièki promet
Šifra stac/tran
Stac_tran
1
Stacionarno
2
Tranzitno
slika 5. Šifrant za nautièki promet
Naselja
Šifra naselja
Naselje
061581
Supetarska Draga
055174
Rijeka
045110
Opatija
015709
Dubrovnik
052825
Pula
053147
Rab
055476
Rogoznica
…
…
slika 6. Šifrant za naselja – navedena su samo neka naselja
Kako bi se dobio uvid u ðifrant za naselja na slici 6. su prikazane ðifre za
nekolicinu naselja. Kada ãe se raditi dimenzija teritorijalnog ustroja koja se sastoji,
pored naselja, joð i od opãina i županija kreirat ãe se tabela koja sadrži sve relevantne
podatke za dotiènu dimenziju (viðe rijeèi kasnije).
13
Godina
Naselje
Nautièki
Duljina
promet
plovila
Motorne jahte
Jahte na
Ostalo
jedra
1997
Opatija
Stacionarno
do 6 metara
0
1
0
1997
Opatija
Stacionarno
6–8m
8
11
0
1997
Opatija
Stacionarno
14
42
3
1997
Opatija
Stacionarno
27
72
3
1997
Opatija
Stacionarno
14
38
0
1997
Opatija
Stacionarno
15 – 20 m
10
13
0
1997
Opatija
Stacionarno
preko 20 m
0
0
0
1997
Opatija
Tranzitno
do 6 metara
26
58
3
1997
Opatija
Tranzitno
6–8m
72
154
8
1997
Opatija
Tranzitno
53
119
6
1997
Opatija
Tranzitno
60
132
11
1997
Opatija
Tranzitno
37
85
5
1997
Opatija
Tranzitno
15 – 20 m
10
23
2
1997
Opatija
Tranzitno
preko 20 m
0
0
0
8 – 10 m
10 – 12 m
12 – 15 m
8 – 10 m
10 – 12 m
12 – 15 m
slika 7. Izgled tabele prije ðifriranja (obrisano je polje Ukupno)- naveden je primjer
za jedno naselje u odreðenom razdoblju
Kao ðto vidimo na slici 7. potrebno je ðifrirati polja Naselje, Nautièki promet i
Duljina plovila. Polje Ukupno je obrisano jer ono predstavlja zbroj polja koja se
odnose na tip plovila. Ako korisnik uvidi potrebu za zbrojevima ili nekim drugim
matematièkim operacijama nad podacima iste se naprave u front-end klijentu koji ãe
biti spojen na OLAP kocku.
14
Konaèni izgled Excel tabele iz koje ãe se "povlaèiti" podaci u SQL server
možemo vidjeti na slici 8..
Godina
Sifra_naselja
Sifra_stac_tran
Sifra_duljine
Motorne_jahte
Na_jedra
Ostalo
1997
45110
1
1
0
1
0
1997
45110
1
2
8
11
0
1997
45110
1
3
14
42
3
1997
45110
1
4
27
72
3
1997
45110
1
5
14
38
0
1997
45110
1
6
10
13
0
1997
45110
1
7
0
0
0
1997
45110
2
1
26
58
3
1997
45110
2
2
72
154
8
1997
45110
2
3
53
119
6
1997
45110
2
4
60
132
11
1997
45110
2
5
37
85
5
1997
45110
2
6
10
23
2
1997
45110
2
7
0
0
0
slika 8. Konaèni izgled tabele u Excelu sa primjerom podataka za jedno naselje u
odreðenom razdoblju
Vidimo da je promijenjen naziv polja Naselje u naziv Sifra_naselja, jer se sada
u tom polju nalaze ðifre naselja, mjestom naziva naselja. Nadalje, polje Nautièki
promet je promijenjeno u naziv Sifra_stac_tran, i u njemu se nalaze ðifre koje ukazuju
na stacionaran ili tranzitan nautièki promet. I na kraju, polju Duljina plovila je
promijenjen naziv u Sifra_duljine, te se u njemu nalaze ðifre duljina ovisno o duljini
plovila (vidi sliku 4.). Ostalim poljima je samo promijenjen naziv, dok su numerièki
podaci nakon "peglanja" ostali neizmijenjeni.
15
6.2. ETL procesi – procesi ekstrakcije, transformacije i punjenja
Skup procesa koji se u struènim krugovima nazivaju ETL procesi imaju za cilj
ekstrahirati odnosno zahvaãati ili vaditi (engl. Extract), transformirati odnosno
preoblikovati (engl. Transform) i puniti ili unositi (engl. Load) podatke iz jednog ili
viðe transakcijskih sustava u skladiðte podataka10.
MS SQL server 2000 ukljuèuje programski alat za obavljanje ovih procesa
naziva Data Transformation Services (DTS).
6.2.1 Data Transformation Services (DTS)
DTS je fleksibilan alat za prenoðenje i transformaciju podataka iz razlièitih
OLE DB izvora podataka.
Neke od osobina DTS-a su:
·
Fleksibilnost: Pored moguãnosti rada sa standardnim objektima SQL
Servera, DTS omoguãuje rad sa podacima bilo kojeg OLE DB izvora
podataka. Izvori podataka mogu biti izvori podataka ili odrediðta
podataka. Na primjer, DTS se može upotrijebiti za prenoðenje
podataka iz Oraclove baze podataka u Microsoft Accses bazu
podataka.
·
Transformacije: DTS nije ogranièen samo na prenoðenje podataka iz
jedne tabele u drugu, veã podatke može i transformirati. Moguãe
transformacije kreãu se od pronalaženja vrijednosti koje se nalaze u
drugoj tabeli do izraèunavanja koja obuhvaãaju podatke iz viðe kolona
i izvrðavanja složenih VBScript procedura za svaki red podataka.
·
Koriðtenje skriptova: DTS se može proðiriti upotrebom popularnih
·
Radni postupak: DTS sadrži dizajner radnog postupka koji
skript jezika, kao ðto su VBScript, JavaScript i PerlScript.
omoguãava povezivanje viðe DTS operacija i jedan paket. Operacije se
mogu izvrðavati jedna za drugom ili istovremeno, a paket može
10
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
16
odluèiti na osnovu uspjeha operacije, neuspjeha operacije ili nakon
njenog zavrðetka11.
6.2.2. Ekstrakcija podataka (engl. Extract)
Podatke koje smo pripremili u Excel tabeli sada je potrebno ekstrahirati
odnosno zahvatiti ili izvaditi. Kako ovaj proces izmeðu ostalog ukljuèuje i èiðãenje
podataka ono neãe biti opisano jer smo podatke veã pripremili (vidi poglavlje 6.1.2.
Priprema podataka za SQL Server).
Nakon ðto je u SQL Serveru kreirana baza podataka u kojoj ãemo pohraniti
podatke koje ãemo ekstrahirati iz Excel tabele pomoãu DTS alata (neãemo govoriti o
kreiranju baze jer je cjelokupni postupak opisan u knjizi: Kartalovski A.; Šeãerovski
S. "SQL Server 2000" – prijevod knjige Gunderloy M.; Jorden Joseph. L. "Mastering
SQL Server" Beograd, Mikroknjiga, 2001.), kreiramo paket koji ãe to izvrðiti. DTS je
sastavni dio MS SQL 2000 Servera, i to Enterprise Managera.
6.2.3. Kreiranje paketa za ekstrakciju podataka u DTS-u
Kreiranje paketa za ekstrakciju podataka obavlja se pomoãu DTS Import/Export
Wizard-a.
slika 9. DTS Import/Export Wizard
Kartalovski A.; Šeãerovski S. "SQL Server 2000" – prijevod knjige Gunderloy M.; Jorden Joseph. L.
"Mastering SQL Server" Beograd, Mikroknjiga, 2001.
11
17
Prilikom pokretanja DTS Import/Export Wizarda (vidi sliku 9.) klikom miða
na gumb Next kreãemo u kreiranje paketa koji ãe nam ekstrahirati podatke koji se
nalaze u Excel tabeli.
slika 10. Odabir izvora podataka
Forma prikazana na slici 10. nam omoguãuje da odaberemo izvor iz kojeg
ãemo ekstrahirati podatke. Za Data Source odaberemo Microsoft Excel 97-2000 te
nam se automatski otvori forma prikazana na slici 11..
18
slika 11. Lociranje filea
U formi prikazanoj na slici 11. lociramo file iz kojeg ãe biti ekstrahirani
podaci. Pokraj natpisa File name kliknemo na gumb sa tri toèke te lociramo Excel file
koji sadrži podatke koje želimo ekstrahirati u SQL Server. Nakon toga pritisnemo
gumb Next.
slika 12. Odabir destinacije
19
Klikom na gumb Next otvara nam se nova forma (vidi sliku 12.) u kojoj
odabiremo gdje želimo da nam se pohrane podaci. Kako nam je cilj da podaci budu
pohranjeni na SQL Server sve parametre ostavljamo kakvi jesu te pritisnemo gumb
Next. Naime, destinacija je SQL Server iako klikom na padajuãi meni pokraj
Destination možemo primjerice podatke pohraniti kao Access tabelu. Za Server je
automatski odreðen postojeãi, na padajuãem meni-u pokraj Server-a moguãe je
odabrati neki drugi. I na kraju kao baza podataka u koju ãe biti spremljeni podaci
namjeðtena je Nautika te je takoðer moguãe pomoãu padajuãeg meni-a odabrati neku
drugu.
Klikom na gumb Next kreãemo korak dalje u izradi paketa za ekstrakciju te
nam se otvara nova forma prikazana na slici 13.
slika 13. Specificiranje Kopiranje tabele ili Upit
Forma prikazana na slici 13. nam omoguãuje odabir da li želimo kopirati
tabelu iz filea koji smo odredili kao izvorni (vidi sliku 11.) ili želimo napraviti SQL
upit za ekstrakciju podataka. Mi odabiremo prvu moguãnost i klikom na gumb Next
otvaramo novu formu.
20
slika 14. Odabir tabele
Na formi prikazanoj na slici 14. imamo moguãnost odabira tabele iz izvornog
Excel filea. Kako se u izvornom Excel fileu nalazi ðest tabela, jer ovaj projekt
ukljuèuje izradu ðest OLAP kocaka, odabiremo tabelu u kojoj se nalaze podaci
potrebni za izradu kocke Nautièki promet – Duljina plovila. Znaèi podaci koji se
odnose na broj plovila u luci nautièkog turizma za razdoblje od 1995. do 2004.
godine. Nakon odabira tabele kliknemo na gumb Next.
slika 15. Odabir opcije za snimanje paketa
21
U formi koja nam se otvorila (vidi sliku 15.) imamo moguãnost odabira
snimanja paketa oznaèivanjem opcije Save DTS Package i izmeðu ostalog možemo
paket odmah pokrenuti odabirom opcije Run immediately, mi se odluèujemo na
snimanje jer ãemo u tom sluèaju na snimljenom paketu moãi izvrðiti joð neke
promjene, odnosno prilagoditi ga. Nakon oznaèavanja Save DTS Package kliknemo
na gumb Next a ostale postavke ostavljamo kako je prikazano na slici 15.
slika 16. Snimanje DTS paketa
Forma prikazana na slici 16. nam omoguãuje odabir imena DTS paketa koji ãe
nam služiti za ekstrakciju podataka. Na formi oznaèimo automatski postavljeno New
Package te ga preimenujemo u željeno ime, ostale postavke ostavimo kakve jesu te
kliknemo na gumb Next.
22
slika 17. Zavrðetak postupka izrade DTS paketa
Nakon ðto smo kliknuli na gumb Next, pojavljuje nam se forma prikazana na
slici 17.. Ona naime upuãuje na to da smo postupak izrade DTS paketa za ekstrakciju
podataka iz Excel tabele priveli kraju te da bi postupak zavrðili potrebno je kliknuti na
gumb Finish. Klikom na taj gumb nað paket ãe biti pohranjen pod imenom koje smo
odabrali te isti možemo pokrenuti ili pak opcijom Design Package redizajnirati.
Izgled DST paketa za ekstrakciju podataka iz Excel filea možemo vidjeti na
slici 18.
slika 18. Izgled DTS paketa za ekstrakciju podataka
23
Na slici 18. prikazan je izgled DTS paketa gdje Connection 1 oznaèava izvor
iz kojeg se podaci ekstrahiraju (u naðem sluèaju je to Excel tabela), Connection 2
oznaèava odrediðte podataka (u naðem sluèaju je to baza kreirana u SQL Server-u), te
je prikazan žuti valjak koji govori da ãe prilikom izvrðavanja ovog paketa biti kreirana
tabela (automatizirani SQL upit koji kreira tabelu).
Dvostrukim klikom miða na svaki od ovih elemenata koji èine DTS paket
moguãe je prilagoditi paket prema naðim željama. Primjerice u žutom valjku možemo
prilagoditi SQL upit ako želimo da nam se tabela drugaèije zove, ili da nam se
drugaèije zovu polja ili pak možemo unijeti SQL upit koji ãe obaviti joð neku
operaciju osim kreiranja tabele. Konkretno, nakon pokretanja paketa unosimo i
naredbu DROP TABLE jer prilikom dobivanja novih podataka za nautièki turizam
koristit ãemo ovaj paket za ekstrakciju, pa ãe postojeãa tabela biti obrisana i
napunjena novim ali i starim podacima. Starim podacima jer ãemo nove podatke
unijeti u postojeãi Excel file kako bi nam svi podaci bili na jednom mjestu s obzirom
da ne zauzimaju veliki prostor na hard disku.
Dvostrukim klikom na strelicu koja povezuje Connection 1 i Connection 2
moguãe je redizajnirati transformacije, primjerice ako ne želimo da nam sva polja iz
Excel tabele budu "povuèena" veã samo neka. O raznim moguãnostima dizajniranja
paketa vidi knjigu Kartalovski A.; Šeãerovski S. "SQL Server 2000" – prijevod knjige
Gunderloy M.; Jorden Joseph. L. "Mastering SQL Server" Beograd, Mikroknjiga,
2001..
Nakon ðto smo prilagodili DTS paket isti izvrðavamo naredbom Execute
package te izvrðavamo ekstrakciju podataka iz Excela u SQL Server. Tabela sa
podacima koju dobivamo naziva se "stagging" tabela, odnosno privremena tabela.
Ova tabela ne mora nužno biti privremena jer ako kojim sluèajem nije potrebno
izvrðiti nikakve obrade nad njom mogli bismo odmah krenuti u izradu kocke. Naravno
da to nije sluèaj u naðem primjeru pa kreãemo u izradu novog paketa kojim ãemo
podatke dovesti u željeni oblik.
24
6.2.4. Transformacija odnosno preoblikovanje podataka (engl. Transform)
Transformacija
podataka
se
takoðer
obavlja
pomoãu
alata
Data
Transformation Services (DTS) koja je sastavni dio softvera MS SQL Server 2000.
Prije nego li krenemo u prikaz izrade DTS paketa za transformaciju podataka
potrebno je prvo dizajnirati skladiðte podataka koje ãe nam biti osnovica za izradu
OLAP kocke.
Godina
Sifra_naselja
Sifra_stac_tran
Sifra_duljine
Motorne_jahte
Na_jedra
Ostalo
slika 19. Izgled privremene "stagging" tabele
Kao ðto možemo vidjeti na slici 19. koja prikazuje privremenu tabelu koju
smo dobili ekstrakcijom podataka iz Excel filea, moguãe je napraviti OLAP kocku
koja bi imala èetiri dimenzije i tri mjere.
Moguãe dimenzije su:
·
Vremenska – dobiva se iz polja Godina
·
Nautièki promet – dobiva se iz polja Sifra_stac_tran
·
·
Teritorijalni ustroj – dobiva se iz polja Sifra_naselja
Duljina – odnosi se na duljinu plovila, dobiva se iz polja
Sifra_duljine
Moguãe mjere :
·
Motorne jahte – polje Motorne_jahte
·
Ostalo – polje Ostalo
·
Jahte na jedra – polje Na_jedra
Kako nam je cilj da nam kocka omoguãi pogled na podatke kroz ðto viðe
dimenzija, iz moguãih mjera je moguãe napraviti joð jednu dimenziju koja bi
25
predstavljala tip plovila (motorne jahte, jahte na jedra i ostalo). Znaèi, potrebno je
napraviti takvu transformaciju podataka gdje bismo uveli dodatno polje koje ãe nam
oznaèavati tip plovila te polje koje ãe govoriti o broju plovila a odnosi se na pojedini
tip plovila.
Prilikom pripreme podataka za
SQL Server govorili smo o sreðivanju
podataka gdje smo ðifrirali tekstualne podatke. Kako smo onda rekli, ti ðifranti ãe nam
predstavljati dimenzije pa je potrebno u bazi koju smo kreirali u SQL Serveru
napraviti dimenzijske tabele (kreiranje tabela vidi u knjizi Kartalovski A.; Šeãerovski
S. "SQL Server 2000" – prijevod knjige Gunderloy M.; Jorden Joseph. L. "Mastering
SQL Server" Beograd, Mikroknjiga, 2001).
Dimenzija je pripadnost entiteta na kojega se podaci odnose odreðenoj
kategoriji, klasi ili skupini. Dakle, svi èlanovi neke dimenzije prema nekim se
njihovim obilježjima mogu svrstati u neku skupinu.
Pripadnost skupini moguãe je provjeriti, odnosno testirati, i to na dva naèina12:
·
Podaci o èlanovima moraju se moãi usporeðivati. Primjerice, mogu se
·
Podaci o èlanovima moraju se moãi agregirati u sumarne èlanove.
usporeðivati sadaðnji i buduãi èlanovi skupine, odnosno dimenzije.
Dimenzija nam zapravo predstavlja svojevrsni filter koji omoguãuje pogled na
podatke.
Vratimo se na nað problem gdje je potrebno uvesti dodatnu dimenziju koja se
odnosi na tip plovila.
Potrebno je kreirati tabelu koja ãe sadržavati dva polja i to polje koje
predstavlja ðifru plovila (znaèi govori o tipu plovila) i polje koje govori o broju
plovila (mjera). Izgled dimenzijske tabele možemo vidjeti na slici 20.
12
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
26
Tip plovila
Šifra plovila
Tip plovila
1
Motorne jahte
2
Jahte na jedra
3
Ostalo
slika 20. Dimenzijska tabela - tip plovila
Ostale veã spomenute dimenzijske tabele izgledaju identièno kao i ðifranti koji
su se koristili prilikom pripreme podataka za SQL Server pa ih nema potrebe
prikazivati, osim dimenzijske tabele teritorijalnog ustroja koja se sastoji od viðe razina
(nivoa).
Teritorijalni
ustroj
Šifra županije
Naziv županije
Šifra opãine
Naziv opãine
Šifra naselja
Naziv naselja
slika 21. Dimenzijska tabela - teritorijalni ustroj
Slika 21. predstavlja dimenzijsku tabelu teritorijalnog ustroja koji se sastoji od
tri razine i to županija, opãina i naselja. Naime, takav teritorijalni ustroj predstavlja
administrativnu podjelu i omoguãit ãe nam pogled na podatke kroz tri, prethodno
spomenute razine.
Dimenzija vrijeme se dobiva iz polja Godina i za nju nije potrebno raditi
dimenzijsku tabelu, a ako bi osim godine sadržavala joð i dane i mjesece pomoãu
Analysis Managera, koji je sastavni dio SQL Servera 2000, napravila bi se datumska
dimenzija (moguãnost koju nam pruža taj alat).
27
Poðto smo objasnili sve vezano uz dimenzije vrijeme je da pogledamo kako
izgleda naðe skladiðte podataka sa pripadajuãim dimenzijama.
Teritorijalni
ustroj
Šifra županije
Naziv županije
Šifra opãine
Naziv opãine
Šifra naselja
Naziv naselja
Duljina plovila
Šifra duljine
Nautièki promet
Šifra stac/tran
Stac_tran
1
Stacionarno
2
Tranzitno
1
do 6 metara
2
6–8m
3
4
5
Tip plovila
Šifra plovila
Tip plovila
Nautièki promet – Duljina plovila
Šifra naselja
Godina
1
Motorne jahte
2
Jahte na jedra
3
Ostalo
Šifra stac/tran
Šifra plovila
Duljina
8 – 10 m
10 – 12 m
12 – 15 m
6
15 –20 m
7
preko 20 m
Šifra duljine
Broj plovila
slika 22. Izgled skladiðta podataka sa pripadajuãim dimenzijskim tabelama
Na slici 22. možemo vidjeti konaèan izgled skladiðta podataka na osnovu
kojeg ãemo napraviti naðu OLAP kocku. Kao ðto možemo vidjeti od tri polja
(Motorne jahte, Jahte na jedra i Ostalo) napravili smo dimenziju naziva Tip plovila, a
28
podatke koje smo imali u ta tri polja sad je potrebno prebaciti u polje Broj plovila koje
ãe predstavljati mjeru u naðoj OLAP kocki. Tu se vraãamo na poèetak ovog poglavlja,
znaèi kreãemo u izradu DTS paketa kojim ãemo izvrðiti tu transformaciju.
6.2.5. Kreiranje paketa za transformaciju u DTS-u
Prilikom kreiranja ovog DTS paketa neãemo viðe koristiti Wizard veã ãemo
prikazati izradu "ruèno".
U SQL Server-ovom alatu Enterprise Manager otvorimo Data Transformation
Services, oznaèimo Local Packages te desnim klikom miða odaberemo New Package.
S obzirom da su nam svi podaci potrebni za izradu skladiðta podataka u bazi na SQL
Serveru za izradu paketa potrebne su nam dvije stvari. Na lijevom dijelu ekrana (kad
pokrenemo naredbu New Package) imamo meni bar sa raznoraznim ikonicama koje
nam omoguãuju izradu paketa. Nama treba konekcija (znaèi veza sa serverom,
nacrtan je server) i ikona koja nam omoguãuje upis SQL upita (žuti valjak) (vidi sliku
23.).
slika 23. Suèelje za izradu DTS paketa ("ruèno")
29
slika 24. DTS paket za transformaciju – konekcija (veza)
Prilikom stavljanja konekcije (vidi sliku 24.) jedino ðto trebamo odabrati pod
Database, bazu podataka koju smo kreirali i u kojoj nam se nalazi privremena tabela,
tabela dobivena ekstrakcijom podataka, i dimenzijske tabele. Nakon toga kliknemo na
OK.
slika 25. DTS paket za transformaciju – SQL upit
30
Nakon stavljanja žutog valjka (vidi sliku 25.) omoguãen nam je unos SQL
upita kojim ãemo kreirati skladiðte podataka, izvrðiti transformaciju nad privremenom
tabelom te napuniti skladiðte podataka.
6.2.6. Opis SQL upita za transformaciju podataka
Prvo ãemo navesti nazive tabela koje smo veã pohranili na SQL Server kako
bi bio razumljiviji SQL upit koji unosimo u DTS paket za transformaciju.
·
Privremena tabela – duzine_excel
·
Nautièki promet – Stac_tran
·
·
·
·
Teritorijalni ustroj – di_teritorijalni_ustroj
Tip plovila – Tip_plovila
Duljina plovila – Duljina
Skladiðte podataka – fact_Duzine
SQL upit:
CREATE TABLE [Nautika].[dbo].[fact_Duzine] (
[Sifra_naselja] numeric (9),
[Godina] numeric (9),
[Sifra_stac_tran] numeric (9),
[Sifra_plovila] numeric (9),
[Sifra_duljine] numeric (9),
[Broj_plovila] int null);
insert into dbo.fact_Duzine
select
duzine_excel.Sifra_naselja,
duzine_excel.Godina,
duzine_excel.Sifra_stac_tran,
Tip_plovila.Sifra_plovila,
duzine_excel.Sifra_duljine,
duzine_excel.Motorne_jahte
from duzine_excel, Tip_plovila, di_teritorijalni_ustroj, Stac_tran, Duljina
where Tip_plovila.Sifra_plovila=1 and
di_teritorijani_ustroj.Sifra_naselja=duzine_excel.Sifra_naselja and
Stac_tran.Sifra_stac_tran=duzine_excel.Sifra_stac_tran and
Duljina.Sifra_duljine=duzine_excel.Sifra_duljine;
31
insert into dbo.fact_Duzine
select
duzine_excel.Sifra_naselja,
duzine_excel.Godina,
duzine_excel.Sifra_stac_tran,
Tip_plovila.Sifra_plovila,
duzine_excel.Sifra_duljine,
duzine_excel.Na_jedra
from duzine_excel, Tip_plovila, di_teritorijalni_ustroj, Stac_tran, Duljina
where Tip_plovila.Sifra_plovila=2 and
di_teritorijalni_ustroj.Sifra_naselja=duzine_excel.Sifra_naselja and
Stac_tran.Sifra_stac_tran=duzine_excel.Sifra_stac_tran and
Duljina.Sifra_duljine=duzine_excel.Sifra_duljine;
insert into dbo.fact_Duzine
select
duzine_excel.Sifra_naselja,
duzine_excel.Godina,
duzine_excel.Sifra_stac_tran,
Tip_plovila.Sifra_plovila,
duzine_excel.Sifra_duljine,
duzine_excel.Ostalo
from duzine_excel, Tip_plovila, di_teritorijalni_ustroj, Stac_tran, Duljina
where Tip_plovila.Sifra_plovila=3 and
di_teritorijalni_ustroj.Sifra_naselja=duzine_excel.Sifra_naselja and
Stac_tran.Sifra_stac_tran=duzine_excel.Sifra_stac_tran and
Duljina.Sifra_duljine=duzine_excel.Sifra_duljine;
Opis upita:
Prvo kreiramo tabelu fact_Duzine koja ãe nam predstavljati naðe skladiðte
podataka. Polje Broj_plovila nam je jedino integer jer nam ono predstavlja mjeru nad
kojem moramo omoguãiti matematièke operacije ako se žele vrðiti analize.
Nakon ðto je kreirano skladiðte podataka potrebno je napuniti ga kroz tri
koraka. Zaðto tri koraka? Zato jer naða privremena tabela ima podatke o plovilima
smjeðtene u tri polja pa ãemo izvuãi podatke korak po korak. Prvo se odredi gdje se
podaci pune (naredba insert into) te se zatim selektiraju (naredba select). Iz
privremene tabele (duzine_excel) prvo selektiramo polja Sifra_naselja, Godina, i
Sifra_stac_tran. Zatim iz tabele Tip_plovila selektiramo polje Sifra_plovila jer takovo
polje ne postoji u privremenoj tabeli pa podatke moramo povuãi iz dimenzijske
tabele, ostala polja potrebna za naðe skladiðte podataka, znaèi Sifra_duljine i
32
Motorne_jahte (u drugom koraku je to polje Na_jedra, a u treãem Ostalo),
selektiramo ponovno iz privremene tabele (duzine_excel). Izvor podataka odreðujemo
naredbom from. Kako vrðimo punjenje naðeg skladiðta odreðenim redom moramo
staviti odreðene uvjete (nareba where).
Opisi uvjeta:
·
Tip_plovila.Sifra_plovila=1 – kako u prvom koraku punimo podatke iz polja
Motorne_jahte, a one imaju ðifru plovila 1, to specificiramo ovim uvjetom. U
drugom koraku, za polje Na_jedra unosi se ðifra 2 a u treãem za polje Ostalo
·
unosi se ðifra 3.
di_teritorijalni_ustroj.Sifra_naselja=duzine_excel.Sifra_naselja - želimo da
nam budu povuèeni iz privremene tabele samo oni podaci koji imaju ðifru
naselja koja se ujedno nalazi i dimenzijskoj tabeli za teritorijalni ustroj.
·
Stac_tran.Sifra_stac_tran=duzine_excel.Sifra_stac_tran - želimo da nam
budu povuèeni iz privremene tabele samo oni podaci koji imaju ðifru
nautièkog prometa (Sifra_stac_tran) koja se ujedno nalazi i dimenzijskoj tabeli
za nautièki promet.
·
Duljina.Sifra_duljine=duzine_excel.Sifra_duljine - želimo da nam budu
povuèeni iz privremene tabele samo oni podaci koji imaju ðifru duljine
(Sifra_duljine) koja se ujedno nalazi i dimenzijskoj tabeli za duljine plovila.
Da zakljuèimo. Vidimo da se kroz tri koraka specificiraju podaci koji ãe biti
povuèeni iz privremene tabele te da kroz ta tri koraka specificiramo unos ðifre plovila
koju smo definirali prilikom dizajna skladiðta podataka. Konaèni rezultat je da smo,
gledajuãi privremenu tabelu, uspjeli stvoriti dodatnu dimenziju u skladiðtu podataka
(polje Tip_plovila) te podatke o broju plovila smjestiti u jedno polje (Broj_plovila), za
razliku od privremene tabele kada su bila tri (Motorne_jahte, Na_jedra, Ostalo).
Ovaj DTS paket želimo koristit i u buduãnosti te jedino trebamo unesti naredbu za
brisanje tabele koja predstavlja skladiðte podataka (drop table), a ostali dio SQL upita
ostavljamo kakav je. Rekli smo veã prije da ãe nam podaci u Excel fileu biti jedini
izvor, znaèi za naredne godine ãe se tamo smjeðtati, te nakon pokretanja paketa za
33
ekstrakciju podataka pokrenut ãemo ponovno ovaj paket (naravno sa naredbom drop
table) kako bi imali ažurirano skladiðte podataka.
6.2.7. Punjenje ili unos podataka (engl. Load)
Teorija razlikuje tri vrste ETL programa za punjenje podataka13:
·
·
·
programe za inicijalno punjenje
programe za punjenje povijesnih podataka
programe za inkrementalno punjenje
U naðem primjeru vidjeli smo da smo vrðili ekstrahiranje povijesnih podataka
te transformacijom napunili naðe skladiðte podataka. Inicijalno punjenje se vrði nad
transakcijskim bazama u kojima se nalaze "živi" podaci, znaèi oni koji se
permanentno slijevaju u transakcijske baze podataka obavljanjem poslovnih
aktivnosti. Inkrementalno punjenje predstavlja periodièko punjenje skladiðta podataka
(dnevno, tjedno ili mjeseèno) a ono bi u naðem sluèaju bilo izvedivo kada bi
postojale transakcijske baze iz kojih bi vukli podatke, pa bi naðe pakete automatizirali
da se sami pokreãu periodièki na godiðnjoj razini.
6.3. Izgradnja OLAP kocke
Nakon ðto smo naðe skladiðte podataka napunili podacima vrijeme je da
krenemo na izgradnju OLAP kocke Nautièki turizam – Duljina plovila. OLAP kocka
ãe se izraditi u SQL Server-ovom alatu Analysis Manager koji je kao i Enterprise
Manager sastavni dio SQL Server 2000 softverskog paketa.
Kako ne bih sada opisivao cjelokupan postupak izgradnje kocke, primjerice
povezivanje Analysiy Managera sa serverom, pravljenje baze za kocku… naèin na
koji se to radi opisan je u knjizi Kartalovski A.; Šeãerovski S. "SQL Server 2000" –
prijevod knjige Gunderloy M.; Jorden Joseph. L. "Mastering SQL Server" Beograd,
Mikroknjiga, 2001.. Ujedno i pokretanjem Analysis Managera možemo to proèitati u
13
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
34
Concepts & Tutorijal, kao i pravljenje cjelokupne kocke pa se neãemo previðe
zadržavati na detaljima veã krenuti na prikaz postupaka.
slika 26. Izgled suèelja Analysis Managera
Znaèi, nakon ðto smo stvorili bazu gdje ãe biti smjeðtena naða kocka oznaèimo
Cubes (vidi sliku 26.) i kliknemo desnim klikom miða te odaberemo New Cube,
Wizard. Wizard ãe nas voditi kroz postupak i kako smo veã rekli postupak se nalazi
opisan u Concepts & Turorials (vidi sliku 26.) tako da nema potrebe isti prikazivati.
Bitno je reãi da prvo odabiremo mjeru za koju smo rekli da je to polje Broj_plovila a
dimenzije kreiramo sve kao Star Shema: A single dimension table (jedna od nekoliko
opcija u Wizardu).
Kada izraðujemo vremensku dimenziju (polje Godina) bitno je naglasiti da
iskljuèimo opciju Share this dimension with other cubes jer prilikom izrade ostalih pet
35
kocaka imat ãemo vremensku dimenziju istog naziva pa da zabunom prilikom
izgradnje vremenske dimenzije za novu kocku ne bismo stavili vremensku dimenziju
neke veã postojeãe kocke.
6.3.1. Zvjezdasta shema (engl. Star shema)
Nakon ðto smo prateãi upute Concepts & Tutorial, napomene koje smo
spomenuli te dali naziv naðoj OLAP kocki, otvorit ãe nam se suèelje gdje ãemo vidjeti
naðu kocku prikazanu kao Star shemu (vidi sliku 27.).
slika 27. Star shema (Zvjezdasta shema)
Na slici 27.
predstavljen je dimenzijski model u obliku Star sheme
(Zvjezdaste sheme), gdje je funkcionalno podruèje "srce" zvijezde a "krakovi"
predstavljaju dimenzije.
36
Zvjezdasta shema je uobièajena shema pohranjivanja podataka u skladiðtu.
Naziv je dobila, naravno, prema svojem obliku. U srediðtu sheme se nalazi tzv.
èinjenièna tablica (fact table) koja sadrži podatke za analizu i kljuèeve za povezivanje
s tzv. dimenzijskim tablicama (dimension tables) u kojima su pojedine znaèajke
detaljno opisane i koje služe za kreiranje hijerarhija za prikaz. Èinjenièna tablica
najèeðãe se sastoji od viðe milijuna zapisa kraãe duljine, dok dimenzijske tablice
imaju manji broj zapisa, ali veã duljine (zbog znakovnih varijabli koje opisuju
pojedine znaèajke). Kombiniranjem tih tablica dobije se konaèna detaljna tablica iz
koje se kreiraju OLAP kocke ili se "napadaju" ad-hoc upitima14.
Vidimo da jedino vremenska dimenzija nema dimenzijsku tabelu a to je iz
razloga ðto se ta dimenzija kreira direktno iz skladiðta na naèin prethodno opisan u
tekstu.
6.3.2. Pahuljasta shema (engl. Snowflake shema)
Osim zvjezdaste sheme prilikom kreiranja OLAP kocki èeste su i Snowflake
sheme (Pahuljaste sheme). Za razliku od zvjezdaste sheme koja podrazumijeva da je
svaka dimenzija za analizu u potpunosti denormalizirana, kod pahuljaste sheme to nije
sluèaj.
U naðem primjeru da su podaci prikupljani na razini marine, teritorijalni ustroj
bi imao èetiri nivoa: županija, opãina, naselje i marina. U tom sluèaju èinjenièna
tabela bi sadržavala podatke o ðiframa marine koji bi bili povezani sa dimenzijskom
tabelom koja bi sadržavala ðifru i naziv marine te ðifru naselja koja je poveznica sa
dimenzijskom tabelom teritorijalni ustroj.
Kako izgleda pahuljasta shema možemo vidjeti na slici 28.
14
http://www.skladistenje.com/
37
slika 28. Snowflake shema (Pahuljasta shema)
Izrada naðe OLAP kocke je privedena kraju. Kocku je potrebno procesirati
(naredba Process) i spremna je za koriðtenje.
38
7. ANALIZA PODATAKA
Prilikom analize podataka razlikujemo dvije metode:
·
·
metoda raslojavanja i presijecanja (engl. Slice and Dice Method)
te metoda rotacije ili pivotiranja (engl. Pivoting)
Zapravo toènije bi bilo reãi da ovdje govorimo o karakteristikama OLAP
sustava koje proizlaze iz njegovog viðedimenzionalnog ustroja tj. o razlièitim
moguãnostima pogleda na podatke.
7.1. Raslojavanje i presijecanje (engl. Slice and Dice Method)
Viðedimenzijski
skupovi
podataka
mogu
se
analizirati
horizontalno
(raslojavanje) i vertikalno (presijecanje). Kvaliteta ove metode se ogleda u tome ðto je
ona korisnicima intuitivno lako shvatljiva, te ðto je suvremeni OLAP alati obavljaju
vrlo brzo.
U naðem primjeru podatke možemo raslojiti primjerice prema duljini plovila a
zatim presijecati prema vremenu, teritorijalnom ustroju, nautièkom prometu i tipu
plovila.
slika 29. Raslojavanje prema duljini plovila, presijecanje prema vremenu
39
Možemo takoðer izvrðiti viðe razina raslojavanja i presijecanja po razlièitim
dimenzijama, i to na naèin da samo povuèemo dimenziju iz gornjeg dijela ekrana te je
spustimo na željeno mjesto (vidi sliku 30.).
slika 30. Raslojavanje prema duljini plovila i tipu plovila, presijecanje prema
vremenu i nautièkom prometu
7.2. Rotacija ili pivotiranje (engl. Pivoting)
OLAP kocka se može na razlièite naèine rotirati oko svoje osi. Ono ðto su bili
reci možemo prikazati kao stupce i obrnuto. Što je viðe dimenzija to je i viðe
moguãnosti kojima se mogu prikazati podaci. Ako se neka dimenzija sastoji od viðe
nivoa ðto je kod nas primjerice teritorijalni ustroj (županije, opãine, naselja)
moguãnosti analize i prikaza podataka rastu. Spuðtanje kroz te dimenzijske nivoe
naziva se detaljiziranje (engl. Drill down), a uzdizanje agregiranje (engl. Drill up).
40
Na slici 31. možemo vidjeti kako su podaci rotirani u odnosu na podatke koji
su prikazani slikom 29. Sada su podaci raslojeni prema vremenu a presijecanje je
izvrðeno prema duljini plovila.
slika 31. Raslojavanje prema vremenu, presijecanje prema duljini plovila –
pivotiranje ili rotacija u odnosu na podatke prikazane slikom 29.
Što se tièe detaljiziranja (engl. Drill down) prikazat ãemo u narednim slikama
kako izgleda pogled na podatke kroz nivoe dimenzije teritorijalnog ustroja. Podatke
ãemo raslojiti prema tipu plovila a presijecanje ãemo izvrðiti prema teritorijalnom
ustroju (vidi sliku 32.).
slika 32. Raslojavanje prema tipu plovila, presijecanje prema teritorijalnom ustroju najviða razina (županija)
41
Jednostavnim klikom miða na pluseve (+) pokraj naziva svake županije
korisnik izvrðava detaljiziranje (engl. Drill down) te je na slici 33. prikazano kako
smo "probuðili" županiju Šibensko-kninsku kako bi nam se prikazale opãine unutar te
županije, a nakon toga smo joð "probuðili" opãinu Murter te dobili njezina naselja
Murter i Kornate.
slika 33. Drill down kroz dimenziju teritorijalni ustroj
42
8. ZAKLJUÈAK
Kroz ovaj rad se pokuðalo približiti intrigantno podruèje Business Intelligence
- a, odnosno podruèje poslovne inteligencije. Izrada OLAP sustava za nautièki
turizam koja je prikazana u ovom rada ispunila je oèekivanja od ovog sustava i
opravdala sve njegove troðkove. Omoguãen je uvid u stanje tržiðta nautièkog turizma
kroz devet godina pomoãu ðest OLAP kocki i time je prikazana analitièka sposobnost
koju pruža ovakav sustav. Kako do zakljuèenja ovog diplomskog, sustavu nije
prikljuèen front-end klijent koji omoguãuje korisniku rad sa sustavom, ðto ukljuèuje
veãe moguãnost vizualizacije i analize podataka, ta zavrðna faza nije prikazana. No
unatoè tome, dobili smo dobar uvid u nastajanje i rad sustava, te veãinu njegovih
moguãnosti kako bi potencijalnom korisniku prezentirali jasan dokaz zaðto se danaðnji
poslovni svijet okreãe prema inteligentnim rjeðenjima.
43
9. KORIŠTENI IZVORI
Panian, Þ.; Klepac G. "Poslovna inteligencija", Masmedia, Zagreb, 2003.
Varga, M. "Baze podataka: Konceptualno, logièko i fizièko modeliranje podataka",
DRIP, Zagreb, 1994.
Kartalovski A.; Šeãerovski S. "SQL Server 2000" – prijevod knjige Gunderloy M.;
Jorden Joseph. L. "Mastering SQL Server", Mikroknjiga, Beograd, 2001.
http://www.skladistenje.com/ - prvi hrvatski nezavisni i nekomercijalni web centar za
poslovnu inteligeciju i skladiðtenje podataka
http://www.iztzg.hr/ - službeno web mjesto Instituta za turizam na kojem možete
pristupiti Sustavu poslovne inteligencije za turizam (BIST)
http://www.dzs.hr/ - službeno web mjesto Državnog zavoda za statistiku RH
44
10. PRILOG
45
46
47
48
49