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
© Copyright 2024 Paperzz