You are on page 1of 36

UNIVERZITET U NOVOM SADU

Tehnički fakultet “Mihajlo Pupin“


Zrenjanin

Seminarski rad

Prodavnica filmova – data warehouse


predmet: Kompleksne baze podataka

Mentor: Prof. dr Biljana Radulović Student: Duško Vejnović


Broj indeksa: MIT 4/12
Smer:
Informacione tehnologije
- master

Zrenjanin, 2012.
Kompleksne baze podataka Prodavnica filmova

Sadržaj:

1. Uvod ..........................................................................................................................................2
1.1. Skladište podataka ..............................................................................................................2
1.2. Transakciono i analitičko procesiranje podataka ................................................................3
1.2.1. Transakciono procesiranje podataka ......................................................................4
1.2.2. Analitičko procesiranje podataka ...........................................................................5
1.3. Razvoj skladišta podataka ...................................................................................................6
1.3.1. Analiza izvora podataka .........................................................................................7
1.3.2. Opis kocke .............................................................................................................9

2. Projektovanje baze podataka ...........................................................................................10


2.1.Opis baze podataka – Prodavnica filmova .........................................................................10
2.2. EER model podataka – Conceptual Data Model ..............................................................10
2.3. Relacioni model podataka – Physical Data Model ...........................................................11
2.4. Implementacija modela podataka u sistem za upravljanje bazama podataka ...................11

3. Postavljanje SQL upita, operatori CUBE i ROLLUP ................................................13

4. Kreiranje skladišta podataka (Datawarehouse) ...........................................................16


4.1. Analiza korisničkih zahteva kao osnova za analitički izvedenim podacima i izgradnju
skladišta podataka ....................................................................................................................17
4.2. Projektovanje OLAP kocke ..............................................................................................17
4.2.1. Dimenzije OLAP kocke .......................................................................................19
4.2.2. Šema OLAP kocke projektovana metodom “zvezde" (Star) ...............................20
4.2.3. Šema OLAP kocke projektovana metodom “pahulje" (Snowflake) .....................21
4.3. Kreiranje OLAP kocke .....................................................................................................22

5. Analiza podataka i grafički prikazi.................................................................................25


5.1. Kreiranje izeštaja (Reporting Services) ............................................................................25
5.1.1. MDX upiti (MDX queries) ...................................................................................28
5.2. Izvoz analitičkih podataka i kreiranje izvedenih (Pivot) tabela ....................................... 29
5.3. Izrada dijagrama i grafikona (Chart) ................................................................................31
5.4. Data mining ......................................................................................................................32

6. Zaključak ..............................................................................................................................34

7. Literatura ..............................................................................................................................35

1
Kompleksne baze podataka Prodavnica filmova

1. Uvod
Na tržištu koje se globalizuje vlada sve veća konkurencija. Takođe, kupci su sve
izbirljiviji. To tera proizvođače da stalno proveravaju svoju konkurentnost na tržištu i da
pronalaze uspešnu poslovnu strategiju. Strateška prednost nad konkurentima se može
ostvariti ispravnim planiranjem tržišta, inovacijama proizvoda, ispravnim odnosima s
kupcima, odnosno klijentima. Pritom je neophodno da poseduju pravovremene i
relevantne informacije o svim aspektima poslovanja i situaciji na tržištu.
Skladištenje podataka je važan koncept efikasnog odlučivanja, koji se intenzivno razvija
posljednjih godina. Donosi ideju aktivnog pronalaženja i nuđenja informacija
menadžeru, potrebnih u procesu odlučivanja. Skladištenje podataka koristi postupke
analitičke obrade, rudarenje podataka i otkrivanja znanja iz mnoštva podataka.
Spomenutim konceptima i metodama se želi postići "inteligentno" poslovanje poduzeća
u kompleksnim tržišnim uslovima. Za to se već ustalio naziv poslovna inteligencija. U
doba internetske ekonomije poslovna inteligencija počiva na podacima, koji se
transformišu u informacije potrebne za odlučivanje i upravljanje.
Poduzeće koje analizira ponašanje svojih kupaca ponaša se "inteligentno". Ono na
primer ima sve potrebne podatke o kupcu te u bazi podataka beleži svaku aktivnost koja
je s njim povezana. Analizom tih podataka, npr. analizom što je i kada kupac kupio,
koliko je reklamacija imao i na koje proizvode, izrađuje se profil kupca ili ga svrstava u
neku kategoriju. Dalje akcije prema kupcu određuju se na osnovu temeljne analize. To
na primer može biti nuđenje novog proizvoda specijalno napravljenog za potrebe jednog
kupca ili grupe kupaca. Skladištenje podataka radi na tome da analizom podataka
vlastitog poslovanja i spoljašnjih uticaja dobije informacije koje koristi u donošenju
optimalnih poslovnih odluka i na kraju ostvari profit i osigura dalju egzistenciju.

1.1 Skladište podataka


Sam pojam skladište podataka (Data Warehouse) podrazumeva zbirku podataka
izolovanih iz operativnih baza i spremljenih u posebne baze odnosno skladišta
podataka. Ralph Kimball u svojoj knjizi "The Data Warehouse Toolkit: Practical
Techniques for Building Dimensional Data Warehouses" definiše skladište podataka
kao kopiju transakcionih podataka specifično strukturiranih za upite i analize.
Skladište podataka je skup podataka na kojem se temelji sistem podrške u odličivanju.
Iz svrhe proizilazi da skladište podataka treba da podacima potpuno "pokrije" jedno ili
više poslovnih područja (npr. nabavke, prodaje), da podaci u skladištu trebaju da budu
sveobuhvatni. Podaci moraju da obuhvate duži vremenski period (pet, deset ili više
godina), jer su vremenske analize poslovno vrlo značajne. Orijentisanost prema
poslovnim analizama ne zahteva od skladišta da se podaci brzo ažuriraju kao u bazi
podataka. Manje skladište podataka koje obuhvata podatke samo jednog poslovnog
područja naziva se područnim skladištem podataka (data mart).
Skladište podataka namenjeno je menadžerima, ali i svima koji u svom poslu obavljaju
različite analitičke zadatke, kao što su poslovi praćenja i izveštavanja, koji se temelje na
primeni različitih poslovnih pravila.
Podaci u skladištu su stabilni i kad se jednom pohrane u skladištu po pravilu se ne
menjaju. Time se omogućuje da menadžement ili svako ko koristi skladište podataka
može biti siguran da će dobiti jednak odgovor nezavisno od vremena ili učestalosti

2
Kompleksne baze podataka Prodavnica filmova

postavljanja upita. Postupak skladištenja podataka predstavlja kontinualan proces


planiranja, građenja, i prikupljanja podataka iz različitih izvora,njegovog korišćenja,
održavanja, upravljanja, i stalnog unapređenja. Među mnogim koracima u tom
kompleksnom kontinualnom procesu bitno je naglasiti važnost posedovanja vizije o
tome što se želi postići kreiranjem skladišta podataka. Jedna od uloga skladišta je
primer razvoja i korišćenje znanja zasnovanog na podacima (data-based knowledge).
Glavni cilj skladišta podataka je osloboditi informacije koje su "zaključane" u bazama
podataka i "pomešati" ih sa informacijama iz ostalih, po pravilu spoljnih izvora
podataka. Velike organizacije danas sve više traže dodatne podatke iz spoljašnjih
izvora, kao što su na primer podaci o konkurenciji, demografski trendovi, prodajni
trendovi i sl.
Da bi skladište podataka moglo da ispuni cilj i svrhu svog postojanja, mora pre svega da
ispuni određene preduslove:
 Mora osiguravati pristup svim zaposlenim u preduzeću, a ne samo menadžerima,
znači može služiti velikom broju ljudi. Taj pristup mora biti pouzdan, brz i
jednostavan,
 Skladište treba sadržati veliku količinu detaljnih podataka. To znači da sve
poslovne transakcije relevantne za donošenje poslovnih odluka, koje su nastale u
procesima preduzeća moraju biti evidentirane u skladištu podataka. Uneseni
podaci trebaju biti konzistentni, npr. ako je sa dva različita mesta u različito
vreme postavljen jednak upit i rezultat tih upita mora biti isti,
 Osvežavanje, odnosno ažuriranje novim podacima treba biti kontinualan proces,
po mogućnosti treba se odvijati u stvarnom vremenu praktično odmah nakon što
se neki poslovni događaj odigrao ili odmah po završetku nekog procesa,
 Mora biti uvek raspoloživo i oblikovano na način da može poslužiti svakoj svrsi
koju nije uvek moguće unapred predvideti,
 Treba predvideti mogućnost izdvajanja i međusobnog povezivanja podataka
u smislu dobijanja svih mera i pokazatelja poslovanja u poduzeću (slice and
dice),
 Podaci u skladištu koji se skupljaju iz različitih izvora, se kontrolišu uz
osiguranje kvaliteta i samo takvi su dostupni korisnicima. Loši ulazni podaci ne
mogu davati dobre izlazne podatke,
 Mora biti proširivo da bi moglo pratiti strategiju proširenja poslovanja
preduzeća,
 I na kraju, mora da zadovolji odgovarajuće mere zaštite tajnosti osetljivih
podataka što se postiže sprovođenjem rigoroznih mera čuvanja tajnosti.

1.2 Transakciono i analitičko procesiranje podataka


Transakciono i analiticko procesiranje informacija zasnovano je na relacionim
bazama podataka upotrebi strukturnog upitnog jezika (SQL) i savremenih softverskih i
hardverskih platformama. Osnovna koncepcija vezana je za razvoj korisnickog
interfejsa nad izvorom podataka, koji pokriva potrebe poslovodstva i veoma je
delotvoran ukoliko su korisnicke potrebe dobro anticipirane i vremenski slabo
promenljive. Kako su cesto potrebe poslovodstva za informacijama veoma promenljive,
to transakciono mora da prerasta u analiticko procesiranje informacija.

3
Kompleksne baze podataka Prodavnica filmova

Mogu se zahtevati i pristupi nerelacionim izvorima podataka, što je sa svoje strane


znacajno ogranicenje što ce opet usloviti razvoj i primenu skladišta podataka. SQL jezik
je standardan jezik i predstavlja kohezioni faktor sistema, narocito ako se radi sa
heterogenim podacima. Važan element je i graficki interfejs zbog mogucnosti
prezentacije podataka i poslovne grafike.
Transakcioni sistemi su dizajnirani tako da preuzimaju podatke, vrše izmene nad
postojecim podacima, daju izveštaje, održavaju integritet podataka i upravljaju
transakcijama što je brže moguce. Analiticki sistemi nisu predvideni da obavljaju ove
poslove. Oni se dizajniraju za veliki broj podataka namenjenih samo za citanje,
obezbedujuci informacije koje se koriste za donošenje odluka. Skladište podataka je
analiticka baza podataka namenjena samo za citanje i koristi se kao osnova sistema za
podršku odlucivanju.
U tabeli 1.1 su date neke razlike između transakcionih sistema i analitičkih sistema:
Transakcioni sistemi Analitički sistemi
Sadržaj tekuce vrednosti arhivski podaci, sumarni
podataka podaci, proracunati podaci
Struktura složena i pogodna za jednostavna i pogodna za
podataka operaciona proracunavanja poslovnu analizu
Verovatnoca velika srednja do mala
pristupanja
Vreme odziva reda sekunde reda minuta
Namena automatizacija nalaženje i analiza
svakodnevnih operacija informacija
Model normalizovan dimenzionalan
podataka
Pristup SQL SQL i alati za poslovnu
analizu
Tip podataka podaci koji upravljaju informacije za poslovnu
poslovima analizu
Stanje dinamicno (promenljivi staticno (istorijski i opisni
podataka podaci) podaci)
Tabela 1.1 Karakteristike transakcionog i analitičkog procesiranja podataka

1.2.1 Transakciono procesiranje podataka

Kad god se spomene transakciono procesiranje, misli se na sisteme koji


izvršavaju svakodnevne poslove neke kompanije. To su OLTP (on line transaction
processing) sistemi koji se ažuriraju kontinualno tokom dana. Na primer, ako neko kupi
štampac iz jedne prodavnice racunarske opreme, transakcioni sistem ce odmah smanjiti
ukupni broj štampaca za jedan i to ce svaki korisnik sistema moci da zna. U slucaju da
se dopremi nova kolicina štampaca u prodavnice, transakcioni sistem ce to odmah
evidentirati. Ako se desi da se broj štampaca smanji na neki odredeni broj, transakcioni
sistem može automatski da generiše zahtev nabavljacima za novim štampacima.
Transakciono procesiranje informacija zasniva se na operaciji koja se zove transakcija i
kojom se izvodi serija izmena nad jednom ili više tabela, po principu "sve ili ništa", tj.
ili su sve aktivnosti uspešno obavljene ili je baza podataka ostala nepromenjena. Prvi
korak je informaciono modeliranje ili modeliranje podataka koji predstavlja proces

4
Kompleksne baze podataka Prodavnica filmova

predstavljanja poslovnih koncepata oblikom dijagrama koji se na jednostavan nacin


može prevesti u fizicke strukture podataka, tj. šemu baze podataka.
Model podataka otvara "crnu kutiju", koja je buducim korisnicima uvek bila nepoznata,
jer nisu mogli da prate razmišljanja projektanata informacionog sistema. Prvi put
korisnici uzimaju aktivno ucešce i u ovom delu i prvi put projektanti informacionog
sistema crtaju ono što predstavlja njihovo iskustvo i saznanje o poslovanju konkretnog
preduzeca i što su oni osmislili u svojoj glavi. Kroz definisanje objekata od interesa za
posmatranje i definisanje veza definiše se ER model, postupkom odozgo nadole, tj.
intervjuom sa buducim korisnicima.
Model podataka obuhvata definisanje:
 logickog modela, tj. definisanje entiteta, atributa, relacija, kardinalnosti i
kljuceva.
 fizickog modela, tj. definisanje tabela, domena, tipova i velicina kolona za
izbranu SUBP,
 dimenzionog modela podataka, koji obuhvata definisanje dimenzija, hijerarhija i
veza za definisanje OLAP kao osnove skladišta podataka.
CASE alat ERWin ugradio je za logicko modeliranje Information Engineering (IE) i
IDEF1X tehniku, a fizici model, pored prethodne dve, poseduje i tehniku dimenzionog
modeliranja.

1.2.2 Analitičko procesiranje podataka


Menadžment informacioni sistem zasnovan na interaktivnom analitickom
procesiranju pojavio se kao posledica:
 potreba za pretvaranjem transakcionih podataka u informacije,
 omogucavanja vece inicijative korisnicima, koji ne moraju da znaju SQL i
detalje o postavci informacionog sistema,
 zahteva za automatizacijom rada analiticara, komercijalista i menadžera.
Kako je menadžment informacioni sistem zasnivan na interaktivnom analitickom
procesiranju u razvoju, to se smatra da se u kombinaciji sa MIS-om zasnovanim na
relacionim bazama podataka može doci do uspešnih rešenja, kako korisnika koji se bave
analitikom, tako imenadžera koji žele "brz pogled" na informacije bez upuštanja u
detalje.
Ovo je osnovni razlog za nastanak skladišta podataka, cija je osnovna namena
izveštavanje korišcenjem transakcionih podataka, istorijskih podataka, kao i podataka iz
drugih sistema. Rad sa velikim kolicinama podataka, tj.velikim brojem tabela, cini da
brzina odgovora SQL rapidno opada.
Ovo je uslovilo nadgradnju skladišta podataka OLAP sistemima i data mining. OLAP
(On Line Analytical Processing) je softverska tehnologija koja omogucava analiticarima
i menadžerima brz, interaktivan i konzistentan uvid u informacije, putem širokog
spektra mogucih pogleda na informacije.
Kako se za donošenje poslovnih odluka i ovo pokazalo nedovoljnim, pristupa se tzv.
traganju (rudarenju) kroz podatke (data mining – DM). DM se odnosi na automatsko
otkrivanje implicitno prisutnih zakonitosti, pravilnosti i indirektnih sadržaja u velikim
bazama podataka savremenih informacionih sistema.
Na primer, analiticki sistem bi mogao da prikaže kako se odredena vrsta štampaca
prodaje u razlicitim delovima zemlje. Takode, mogao bi i da prikaže kako se jedna vrsta

5
Kompleksne baze podataka Prodavnica filmova

proizvoda prodaje sada u odnosu na period kada se proizvod prvi put pojavio na tržištu.
Za analiticke sisteme razvijaju se analiticke baze podataka.
Analiticke baze podataka ne sadrže ažurirane podatke, vec cuvaju informacije iz
odredenog trenutka vremena. Takvi podaci su od izuzetnog znacaja za poredenja i
analizu trendova. Naprimer, moguce je utvrditi da je prodaja u jednom mesecu znatno
opala samo ako u sistemu postoje podaci o prodaji u prethodnim mesecima, tako da se
može vršiti poredenje. Ovakvo poredenje je skoro nemoguce izvesti u OLTP sistemima,
jer se u takvim sistemima podaci neprestano menjaju.

1.3 Razvoj skladišta podataka


Za razliku od transakcionih sistema (OLTP sistemi), koji su orjentisani
poslovnim procesima, skladišta podataka su subjektno orjentisana, što znaci da su
fokusirana na subjekte u poslovnim procesima, kao što su kupci, zaposleni i dobavljaci.
Integrisanost podataka u skladištima podataka obezbeduje da se podaci predstavljaju u
konzistentnim formatima korišcenjem konvencija pri zadavanju imena i ogranicenja nad
domenima, atributima i merama. Podaci u skladištima podataka su vremenski zavisni,
što znaci da je svaki podatak koji se nalazi u skladištu podataka u vezi sa nekim
vremenskim trenutkom. Na kraju, podaci u skladištima podataka su nepromenljivi, tj.
cim se neki podatak upiše u skladište podataka, moguce mu je samo pristupati. Na slici
1.1 su prikazani svi elementi potrebni za razvoj skladišta podataka.

Slika 1.1 Data warehouse i OLAP

Pri izgradnji skladišta podataka najbitniji su sami podaci, a ne poslovni procesi i


funkcije, kao što je to slucaj sa transakcionim sistemima. Baze podataka namenjene
sistemima za podršku odlucivanju mogu biti veoma velike (terabajtne), pri cemu neke
tabele mogu sadržati i gigabajt podataka. Zato se velicina baze podataka mora uzeti u
obzir pri planiranju skladišta podataka.
Za razvoj skladišta podataka potrebno je:
 izvršiti analizu izvora podataka,

6
Kompleksne baze podataka Prodavnica filmova

 pripremiti podatake,
 izgraditi skladište podataka.

1.3.1 Analiza izvora podataka

Izvori podataka za koncept skladišta podataka su operativni (transakcioni) OLTP


podaci, kao i spoljne informacije nastale kao istorija poslovanja. Analiza izvornih
podataka se smatra kljucnim elementom i oduzima 80% vremena, jer je potrebno
definisati odgovarajuca pravila za preuzimanje podataka iz izvornih podataka.
Analiza izvora podataka prolazi kroz sledece faze:
 prikupljanje zahteva,
 planiranje skladišta podataka,
 izbor tehnike analize podataka.
U fazi prikupljanja zahteva razmatraju se poslovne potrebe i zahtevi buducih korisnika
sistema. Postoji mnogo metoda za prikupljanje poslovnih zahteva. U opštem slucaju,
ove metode mogu biti smeštene u dve kategorije:
 prikupljanje izvornih zahteva je metoda bazirana na definisanju zahteva
korišcenjem izvornih podataka u produkciono operativnim sistemima. Ovo se
radi analiziranjem ER-modela izvornih podataka.
 prikupljanje korisnickih zahteva je metoda bazira na definisanju zahteva
istraživanjem funkcija kojima korisnik teži, odnosno koje korisnik izvršava. Ovo
se obicno postiže kroz seriju sastanaka i/ili intervjua sa korisnikom.
Sve prikupljene podatke potrebno je dokumentovati jer broj intervjuisanih korisnika
može biti veliki, te se može desiti da se neki zahtevi i potrebe korisnika zaborave.
Dobijene podatke treba organizovati u nekoliko sekcija, kao što su:
 podaci o analizi (podaci o svim vrstama analiza koje se trenutno koriste) i
 zahtevi vezani za podatke (opis svih polja podataka koja se koriste, nivo detalja,
izvori).
Tako organizovane podatke treba proslediti svim ucesnicima intervjua da bi se culo i
njihovo mišljenje i da bi se izvršile potrebne korekcije.
Faza planiranje skladišta podataka obuhvata mnoge zadatke koji se javljaju i pri razvoju
bilo kojeg projekta. Planiranje skladišta podataka sastoji se od sledecih zadataka:
 definisanje obima projekta,
 kreiranje projektnog plana,
 definisanje tehnickih uslova,
 definisanje resursa, zadataka i vremenskih rokova.
Skladište podataka se gradi da bi se obezbedio lako pristupacan izvor podataka visokog
kvaliteta. Obicno postoji potreba da se vrše analize i donose odluke kroz korišcenje tog
izvora podataka. Postoji nekoliko tehnika analize podataka [Slika 1.2] koje su danas u
širokoj upotrebi. To su upiti i izveštaji, višedimenzionalne analize i data mining. One se
koriste za formulisanje i prikazivanje rezultata upita, analizu sadržaja podataka
njihovim posmatranjem iz razlicitih perspektiva i otkrivanje šablona i klasterisanih
atributa u podacima koji ce omoguciti dublji pogled u sadržaj podataka.

7
Kompleksne baze podataka Prodavnica filmova

Slika 1.2 Izbor tehnike analize podataka


Tehnike analize podataka mogu uticati na tip odabranog modela podataka i njegov
sadržaj. Naprimer, ako je namera da se obezbedi jednostavna mogucnost upita i
izveštaja, model podataka koji struktuira podatke na normalizovani nacin verovatno ce
obezbediti najbrži i nalakši pristup podacima. Mogucnost upita i izveštavanja se
primarno sastoji od biranja povezanih elemenata podataka, eventualnog njihovog
sumiranja i grupisanja u neku kategoriju i prezentovanja rezultata. Izvršavanje ovog tipa
mogucnosti uglavnom može da dovede do korišcenja direktnijeg skeniranja tabela. Za
ovu vrstu mogucnosti, ER model sa normalizovanom i/ili denormalizovanom
strukturom podataka je najprikladniji.
Tehnika analize podataka upitima i izveštavanjem je proces postavljanja pitanja na koje
se traži odgovor, izdvajanje podataka od znacaja iz skladišta podataka, njihova
transformacija u odgovarajuci kontekst i prikazivanje u citljivom formatu. Ovim
procesom upravlja analiticar, koji mora postavljati pitanja da bi dobio odgovor.
Definicija upita je proces uzimanja poslovnih pitanja ili hipoteza i njihovo prevodenje u
format upita koji može koristiti odredeni alat za podršku pri odlucivanju. Kada se upit
izvrši, alat generiše odgovarajuce komande za dobijanje traženih podataka, koji se
smeštaju u skup odgovora. Analiticar podataka zatim obavlja potrebne kalkulacije i
manipulacije na skupu odgovora da bi dobio željene rezultate. Ovi rezultati se zatim
formatiraju da bi odgovarali obrascu prikaza ili izveštaja koji je odabran da krajnjem
korisniku olakša razumevanje. Ovaj obrazac se može sastojati od kombinacije teksta,
grafike, videa i audia. Na kraju, izveštaj se dostavlja krajnjem korisniku na željenom
izlaznom medijumu koji može biti papir, monitor, ili se može predstaviti zvukom.
Tehnika višedimenzionalne analize podataka je nacin da se prošire mogucnosti upita i
izveštaja. Ovo znaci da se umesto izvršavanja višestrukih upita podaci struktuiraju da bi
se omogucio brz i lak pristup odgovorima na pitanja koja se tipicno postavljaju.
Naprimer, podaci su struktuirani tako da sadrže odgovore na pitanje: "Koja kolicina
svakog proizvoda je prodata odredenog dana, od strane odredenog prodavca u odredenoj
prodavnici?" Svaki deo ovog upita se naziva dimenzija. Racunanjem odgovora unapred
za svaki podupit u okviru veceg konteksta, mnogo odgovora može biti uvek dostupno
pošto se rezultati ne racunaju ponovo za svaki upit, vec im se lako pristupa i lako se
prikazuju. Višedimanzionalne analize omogucavaju korisnicima da sagledaju veliki broj
meduzavisnih faktora koji ucestvuju u poslovnom problemu i da pregledaju podatke u
složenim vezama. Krajnji korisnici su zainteresovani u istraživanju podataka na
razlicitim nivoima detaljnosti, koji se dinamicki odreduju. Složene veze mogu biti
analizirane kroz iterativni proces koji sadrži probijanje na niže nivoe detaljnosti ili
dizanje na više nivoe sumarizacije i agregacije. Kao kod upita i izveštavanja,
višedimenzionalne anlize se nastavljaju dokle god se vrše probijanja dole i vracanja
gore.

8
Kompleksne baze podataka Prodavnica filmova

Data mining je relativno nova tehnika anlize podataka. Data mining traži odgovore na
pitanja koja ne moraju biti prethodno postavljana. Otkrivanje može imati formu
pronalaženja znacaja u vezama izmedu odredenih elemenata podataka, klasterisanja
odredenih elemenata podataka ili neki drugi obrazac u korišcenju odredenih skupova
elemenata podataka. Nakon iznalaženja ovih obrazaca, algoritmi mogu da iz njih izvedu
pravila. Ova pravila tada mogu biti korišcena da se generiše model koji ima željeno
ponašanje, identifikuje veze medu podacima, otkriva obrasce i grupiše klastere zapisa sa
slicnim atributima. Data mining je voden podacima. Postoji visok nivo složenosti u
uskladištenim podacima i medusobnim vezama podataka u skladištu podataka koje je
teško otkriti bez data mininga. Data mining nudi nove poglede na posao koji se ne mogu
ostvariti sa upitima i izveštajima ili višedimenzionalnom analizom. Data mining može
pomoci da ostvarimo nove poglede na posao dajuci nam odgovore na pitanja koja nikad
nismo mislili da postavimo.

1.3.2 Opis kocke

U menadžerskom zahevu "zanima me prodaja proizvoda po tržištima i mesecima


(vremenu)" prepoznajemo dimenzije proizvoda, tržišta i vremena, kroz koje se prati
prodaja. Slika 1.3 prikazuje podatke prodaje dimenzijski prikazane u obliku kocke.
Svaka dimenzija kocke odnosi se na jedno obilježje poslovne pojave. U prikazanom
slučaju radi se o tržištu, proizvodu i vremenu. Jedna ćelija (kockica) odgovara jednom
elementu svake dimenzije i sadrži vrednosti prodaje (npr. broj prodanih jedinica,
novčani iznos prodaje) za npr. proizvod Opel Astra, tržište Zrenjanin i vreme
25.01.2013. Neke su kockice prazne, jer za dotične proizvode na tim tržištima u tim
mesecima nije ostvarena prodaja.

Slika 1.3 Tri dimenzije prikazane u obliku kocke


Kocka (Cube) je kolekcija podataka grupisanih po više dimenzija da bi se upiti brže
izvršavali. Kocke su uređene po dimenzijama (Dimensions) i merama (Measures).
Dimenzije se dobijaju iz tabele dimenzija, a mere iz tabele činjanica.
Tabela dimenzija sadrži hijerarhijski uređene podatke po kojima želimo da radimo
sumiranja. Svaka kocka ima jednu ili više dimenzija od kojih se svaka zasniva na jednoj
ili više tabela dimenzija. Dimenzija predstavlja kategoriju za analiziranje poslovnih
podataka, a svaki tip sumiranja koji se može izvesti na osnovu jedne dimenzije naziva
se nivo (level).

9
Kompleksne baze podataka Prodavnica filmova

Tabela činjenica sadrži osnovne podatke koje želimo da sumiramo i iz čega se može
dobiti prosečna vrednost. Svaka kocka može imati jednu ili više mera, od kojih se svaka
zasniva na koloni tabele činjenica koju analiziramo.

2. Projektovanje baze podataka


2.1 Opis baze podataka – prodavnica filmova
Prodavnica filmova je organizacija koja se bavi dobavljanjem i prodavanjem
filmova. Na početku radnog dana radnik dolazi u prodavnicu i prijavljuje se na sistem
preko korisničkog imena i lozinke. U sistemu se razlikuje statusi radnika, tj. običan
radniki ili administrator. Radnik ima mogućnosti evidentiranja novih filmova, novih
žanrova, evidentiranje dobavljača i prilikom prodaje filma ima mogućnost formiranja i
štampanja računa. Pored svih ovih mogućnosti administrator ima još mogućnost
evidentiranja novih radnika i ima uvid o svim radnicima koji su zaposleni. Prilikom
prodaje filma u tabelu prodaja evidentiraju se detalji prodaje, film koji se prodaje,
radnik koji u tom trenutku radi, što znači da se jedna prodaja odnosi na jedan naslov
filma i na jednog radnika. Ukoliko kupac kupuje više naslova filmova kreira se isto
toliko i prodaja, a sve te prodaje zajedno čine jedan račun. Šifarnik račun ima atribut
datum i popust koji je pri tome ostvaren.
Svaki film pripada jednom žanru i dobavljen je od jednog dobavljača. Za svakog
dobavljača i radnika se zna mesto stanovanja. Cene filmova su u režimu slobodnog
formiranja, odnosno dobijaju se sabiranjem nabavne cene koju formira dobavljač i
marže.

2.2 EER model podataka - Conceptual Data Model


Na slici 2.1 je prikazan konceptualni model podataka.

Slika 2.1 Konceptualni model podataka prodavnice filmova

10
Kompleksne baze podataka Prodavnica filmova

Ovaj model podataka prikazuje strukturu baze podataka, koja je nezavisna od softvera
ili strukture skladištenja. Kreiran je u alatu Power Designer 15.

2.3 Relacioni model podataka – Physical Data Model


Fizički model podataka omogućava da se definiše struktura baze podataka sa
stanovišta fizicke implementacije. On uzima u obzir fizicke resurse: DBMS (sistem za
upravljanje bazom podataka), strukture za skladištenje podataka i softver kako bi opisao
strukturu baze podataka.
Fizicki dijagram se kreira na kraju procesa analize podataka, pre nego što se krene sa
programiranjem softvera. On omogucava da se definiše kako ce podaci iz
konceptualnog modela biti implementirani u bazi podataka.
Na slici 2.2 je prikazan fizički model, fizički model podatak se kreira iz prethodno
kreiranog konceptualnog modela: Tools->Generate Physical Data Model.

Slika 2.2 Fizički model podataka prodavnice filmova

2.4 Implementacija modela podataka u sistemu za upravljanje bazama


podataka
Fizički model podataka je implementira u Mirosoft SQL server 2008 preko
Power Designer-a. Preko naredbe Database->Generate Database se otvara dijalog [Slika
2.3]. Kao što se vidi na slici sistem za upravljanje bazom podataka je Microsoft SQL
Server 2008, fajl koji se kreira ima naziv crebas.sql, taj fajl predstavlja script za
generisanje baze podataka.

11
Kompleksne baze podataka Prodavnica filmova

Slika 2.3. Database Generation dijalog


Potvrđivanjem dijaloga se kreira skript na izabranoj lokaciji. Zatim u New Query
Microsoft SQL Server Management Studio-ja kreiramo bazu podatka dodavanjem
create database ProdavnicaFilmova. Zatim u New Query unosimo use
ProdavnicaFilmova i kopiramo i nalepimo sadržaja prethodno kreirane datoteke
crebas.sql. Na taj način smo kreirali bazu podataka u Microsoft SQL server. Na slici 2.4
je prikazan dijagram prethodno kreirane baze podataka iz fizičkog modela podataka.

Slika 2.4. Fizička realizacija modela podataka u MS SQL Server 2008

12
Kompleksne baze podataka Prodavnica filmova

3. Postavljanje SQL upita, operatori CUBE i ROLLUP


Prvi upit je upit bez primene operatora CUBE i ROLLUP, računa se broj
prodatih filmova i njihov iznos po žanrovima i dobavljačima.
SELECT nazivZanra as Zanr, Dobavljac.naziv as Dobavjac,
SUM(kolicina) as [Broj prodatih filmova],
SUM(kolicina*cenaFilma) as Iznos
FROM Film, Zanr, Prodaja, Radnik, Dobavljac
WHERE Zanr.idZanra=Film.idZanra
and film.sifraFilma=Prodaja.sifraFilma
and Film.idDobavljaca=Dobavljac.idDobavljaca
and Prodaja.idRadnika=Radnik.idRadnika
GROUP BY Dobavljac.naziv, nazivZanra

Zanr Dobavjac Broj prodatih Iznos


filmova
akcioni film d.o.o 15 2550
akcioni filmovizija 16 2960
animirani movietrade 5 875
drama filmovizija 11 2035
horor film d.o.o 12 2040
horor moviein 5 895
komedija moviein 14 2506
komedija movietrade 7 1225
krimi film d.o.o 2 338
krimi nsmovie 9 1593
naucna fantastika kraljevofilm 10 1880
ratni filmovizija 1 180
ratni nsmovie 11 1947
romanse filmovizija 3 555
romanse kraljevofilm 3 535
romanse moviein 4 720
Na primer prvi red nam govori da je prodato 15 akcionih filmova od dobavljača pod
nazivom film d.o.o i ukupna cena tih filmova je 2550 novčanih jedinica (dinara). Drugi
red nam govori da je prodato 16 akcionih filmova od dobavljaca filmovizija i ukupna
cena je 2960 i tako za svaki red.
Sledeći upit je sa ROLLUP operatorom, upit je isti kao i prethodni samo sto je dodat
operator rollup.
SELECT nazivZanra as Zanr, Dobavljac.naziv as Dobavjac,
SUM(kolicina) as [Broj prodatih filmova],
SUM(kolicina*cenaFilma) as Iznos
FROM Film, Zanr, Prodaja, Radnik, Dobavljac
WHERE Zanr.idZanra=Film.idZanra
and film.sifraFilma=Prodaja.sifraFilma
and Film.idDobavljaca=Dobavljac.idDobavljaca
and Prodaja.idRadnika=Radnik.idRadnika
GROUP BY Dobavljac.naziv, nazivZanra with rollup

13
Kompleksne baze podataka Prodavnica filmova

Zanr Dobavjac Broj prodatih Iznos


filmova
akcioni film d.o.o 15 2550
horor film d.o.o 12 2040
krimi film d.o.o 2 338
NULL film d.o.o 29 4928
akcioni filmovizija 16 2960
drama filmovizija 11 2035
krimi filmovizija 2 360
ratni filmovizija 1 180
romanse filmovizija 3 555
NULL filmovizija 33 6090
. . . .
. . . .
. . . .
krimi nsmovie 9 1593
ratni nsmovie 11 1947
romanse nsmovie 4 742
NULL nsmovie 24 4282
NULL NULL 199 35617
Sumarne vrste u GROUP BY su prikazane kao NULL, a to predstavlja indikator za
ALL (sve) vrednosti. Dobija se nešto više redova negu u prethodnom upitu (ukupno 34
reda). U ROLLUP operatoru grupe su sumirane u hierarhiskom redu od najnižeg nivoa
u grupi do najvišeg. Menjanje redosleda grupisanih kolona (u GROUP BY odeljku)
može se uticati na promenu broja vrsta u rezultujućem setu. Vidimo da u nekim poljima
imamo NULL vrednosti, tako na primer u četvrtom redu imamo NULL vrednost u
koloni žanr, što nam daje podatak da je od dobavljača film d.o.o prodato ukupno 29
filmova i da je njihov iznos 4928 novčanih jedinica. U zadnjem redu imamo NULL
vrednost i u koloni žanr i u koloni dobavljač što nam govori da je ukupno prodato 199
filmova sa iznosom od 35617 novčanih jedinica.
Sledeći primer je sa CUBE operatorom:
SELECT nazivZanra as Zanr, Dobavljac.naziv as Dobavjac,
SUM(kolicina) as [Broj prodatih filmova],
SUM(kolicina*cenaFilma) as Iznos
FROM Film, Zanr, Prodaja, Radnik, Dobavljac
WHERE Zanr.idZanra=Film.idZanra
and film.sifraFilma=Prodaja.sifraFilma
and Film.idDobavljaca=Dobavljac.idDobavljaca
and Prodaja.idRadnika=Radnik.idRadnika
GROUP BY Dobavljac.naziv, nazivZanra with cube

Zanr Dobavjac Broj prodatih Iznos

14
Kompleksne baze podataka Prodavnica filmova

filmova
akcioni film d.o.o 15 2550
akcioni filmovizija 16 2960
akcioni movietrade 9 1575
akcioni NULL 40 7085
animirani movietrade 5 875
animirani NULL 5 875
drama filmovizija 11 2035
drama NULL 11 2035
horor film d.o.o 12 2040
horor moviein 5 895
horor NULL 17 2935
komedija moviein 14 2506
komedija movietrade 7 1225
komedija NULL 21 3731
krimi film d.o.o 2 338
krimi filmovizija 2 360
krimi kraljevofilm 8 1436
krimi moviein 2 380
krimi movietrade 3 540
krimi nsmovie 9 1593
krimi NULL 26 4647
naucna fantastika kraljevofilm 10 1880
naucna fantastika NULL 10 1880
ratni filmovizija 1 180
ratni moviein 6 1062
ratni movietrade 9 1530
ratni newmovie 12 2124
ratni nsmovie 11 1947
ratni NULL 39 6843
romanse filmovizija 3 555
romanse kraljevofilm 3 535
romanse moviein 4 720
romanse newmovie 16 3034
romanse nsmovie 4 742
romanse NULL 30 5586
NULL NULL 199 35617
NULL film d.o.o 29 4928
NULL filmovizija 33 6090
NULL kraljevofilm 21 3851
NULL moviein 31 5563
NULL movietrade 33 5745
NULL newmovie 28 5158
NULL nsmovie 24 4282
U zavisnosti od uobičajenog broja vrsta dobijenih sa GROUP BY, sumarne vrste se
vraćaju (kao rezultat) za svaku moguću kombinaciju grupa i podgrupa u rezultujućem
setu. U CUBE operatoru broj sumarnih vrsta je određen brojem kolona uključenih u
GROUP BY uslov. Svaki operand (kolona) u GROUP BY uslovu je prikazana kao

15
Kompleksne baze podataka Prodavnica filmova

NULL vrednost a grupisanje je primenjeno na sve ostale operatore (kolone). Iz razloga


što CUBE vraća sve moguće kombinacije grupa i podgrupa, broj vrsta je isti,
zanemarujući redosled po kojem su grupisane kolone.
Kao što vidimo primenom operatora ROLLUP nismo mogli da vidmo koliko je filmova
prodato po žanrovima već samo po dobavljačima. Ukoliko bi zamenili mesta kolona u
GROUP BY odeljku mogli bi da vidimo ukupan broj prodatih filmova po žanru, ali ne i
po dobavljačima. U CUBE operatoru možemo i jedni i drugo. Tako na primer u
četvrtom redu imamo NULL vrednost kod dobavljača i iz toga možemo da zaključimo
da je ukupno prodato 40 akcionih filmova u vrednosti od 7085 novčanih jedinica.

4. Kreiranje skladišta podataka (Datawarehouse)


Skladište podataka je kreirano u alatu za datawarehouse Microsoft Business
Intelligence Mangement Studio 2008 i na osnovu podataka iz transakcione SQL Server
2008 baze podataka.
Nakon pokretanja SQL Server Business Intelligence Development Studio-a biramo novi
projekat i iz listi template-a biramo Analysis Services Project.
U solution explorer-u desnin klikom na naziv projekta biramo properties i kad se otvori
prozor u kartici deployment podešavamo naziv servera.
Za dodavanje data source-a potrebno je u solution explorer-u desnim klikom odabrati
new data source i nakon toga se otvara data source wizard. Dodajemo novi data source,
za dodavanje je potrebno uneti naziv servera i bazu podataka na koju vršimo
povezivanje (baza ProdavnicaFilmova).
Sličan postupak je i za dodavanje data source view-a. Desnim klikom bramo new data
source view. Iz dostupnih tabela koje nam program ponudi potrebno je uključiti one
koje su na potrebne za naš data source view. Na slici 4.1 je prikazan data source view.

Slika 4.1 Data source view prodavnice filmova

16
Kompleksne baze podataka Prodavnica filmova

4.1 Analiza korisničkih zahveta kao osnova za analitički izvedenim


podacima i izgradnju skladišta podataka
Analizom podataka u formi skladišta podataka, potrebno je dati odgovore na
sledeće korisničke zahteve:
 Koliko je filmova prodato?
 Koliko filmova je prodato po žanrovima?
 Koliko filmova je prodato po dobaljacima?
 Kako se kretala prodaja po godinama, mesecima, kvartalima?
 Deset najprodavanijih filmova?
 Koji radnik je najviše prodao filmova?
 Prikazati ponudu po žanrovima, filmovima, dobavljačima?

4.2 Projektovanje OLAP kocke


U zavisnosti od predstave dimenzija na modelu, govorimo o normalizovanom ili
denormalizovanom modelu. Kod denormalizovanog modela dimenzije su organizovane
u šemu zvezde, a kod normalizovaog u šemu snežne pahuljice [Slika 4.2]. Postoje
situacije u kojima šema zvezde nije pogodna za skladištenje podataka. Osnovni razlozi
za to su: denormalizovana šema zvezde može zahtevati previše memorijskog kapaciteta
i veoma velike dimenzione tabele mogu uticati na pad performansi sistema.
Ovi problemi se mogu rešiti normalizacijom dimenzija. Time se šema zvezde prevodi u
šemu pahulje. Glavni nedostatak šeme pahulje je njena složenost u odnosu na šemu
zvezde, cime se otežava održavanje skladišta podataka. Zato je potrebno vršiti
normalizaciju samo onih dimenzija koje sadrže mnogo redova podataka i koje imaju
mnogo atributa.
Osnovna karakteristika šeme pahulje jeste da se ne vrši denormalizacija dimenzionih
tabela, cime se poboljšavaju performanse sistema. Šema zvezde obezbeduje najbolje
performasne kada se radi sa agregacionim podacima. Nedostatak šeme pahulje je što se
moraju kreirati dodatne veze, koje pri procesiranju upita mogu pogoršati performanse
sistema. Takode, održavanje šeme pahulje je relativno složeno s obzirom da u bazi
podataka postoji veci broj tabela i da meta podaci više nisu jednostavni.

Slika 4.2. Šema zvezde i pahulje

17
Kompleksne baze podataka Prodavnica filmova

Fizicka arhitektura dimenzionog modela opisana je pomocu šeme zvezde definisane sa


dve vrste tabela – dimenzione tabele (dimension table) i tabele cinjenica (fact table).
Tabela cinjenica sadrži kvantitativne podatke o poslovima, tj. podatke koje korisnici
analiziraju. Ovi podaci su najcešce numerickog tipa i mogu se sastojati i od nekoliko
miliona redova i kolona.
Dimenzione tabele su znatno manje i sadrže podatke koji opisuju dati posao, tj. one
podatke po kojima se vrši analiziranje. Ti podaci se nazivaju atributi.
Osnovna karakteristika šeme zvezde jeste da su dimenzione tabele denormalizovane.
Denormalizacija je pristup gde se podaci u bazi podataka ponavljaju zbog
pojednostavljenja dizajna i karakteristika. Denormalizacija je proces kombinovanja
tabela da bi se poboljšale performanse sistema. Ovim postupkom se smanjuje broj
potrebnih veza koje se moraju procesirati zadavanjem upita. Time se direktno utice na
poboljšanje performansi sistema, jer što je manji broj veza, to sistem brže nalazi tražene
podatke.
MOLAP (više dimenzioni OLAP) baze podataka imaju ogranicenje fizicke velicine
skupa podataka sa kojima mogu da barataju. Takode, postoji i ogranicenje na broj
dimenzija koje još uvek obezbeduju dobre performanse sistema. Da bi se vršila bilo
kakva analiza, potrebno je prvo ucitati podatke u višedimenzione strukture. Pri tome se
vrše razni proracuni da bi se kreirale agregacije i popunili podaci, što vremenski može
trajati relativno dugo. Po završenom procesu, korisnik može zapoceti analizu. Prednost
MOLAP sistema je što obezbeduju odlicne performanse sistema kada se radi sa vec
sracunatim podacima (agregacijama). Nedostatak MOLAP sistema je teškoca dodavanja
novih dimenzija. Prema tome, MOLAP sisteme je pogodno koristiti u slucajevima kada
je moguce podeliti veliki skup podataka na više manjih skupova podataka.
ROLAP (relacioni OLAP) sistemi pristupaju podacima direktno iz skladišta podataka i
rade sa relacionim bazama podataka. Ovi sistemi mogu da rade sa velikim skupovima
podataka. Cim se odredi izvor podataka, korisnik može zapoceti analizu. S obzirom da
se radi direktno nad bazom podataka, korisniku su uvek na raspolaganju tekuci podaci.
Takode, kod ROLAP sistema ne postoje ogranicenja po pitanju broja dimenzija koja
postoje u slucaju MOLAP sistema.
Nakon što se definiše model podataka za skladište podataka, podaci iz transakcionih
sistema se ucitavaju u skladište podataka. Višedimenziona analiza, koju korisnik
zahteva, dinamicki se transformiše u niz SQL naredbi koje se dalje prenose na relacionu
bazu podataka. ROLAP sistemi su optimizovani za pristupanje podacima, dok su
MOLAP sistemi optimizovani za prikupljanje podataka. Prednost ROLAP sistema je što
su sumarne tabele kreirane direktno u RSUBP-u, cime se obezbeduje kratko vreme
odziva sistema na upit, i što su tabele veoma čitljive.
Evo nekih karakteristika MOLAP i ROLAP sistema:
 višedimenziona analiza moguca je korišcenjem ROLAP i MOLAP sistema,
 za manje kolicine podataka ROLAP sistemi imaju skoro iste performanse kao i
MOLAP sistemi,
 MOLAP sistemi nisu pogodni za rad sa velikim skupom podataka,
 MOLAP sistemi su manji od ROLAP sistema, te je potrebno manje U/I
operacija pri pribavljanju podataka, što uslovljava da su MOLAP sistemi brži.

18
Kompleksne baze podataka Prodavnica filmova

Dimenzije se smeštaju u tabele dimenzija koje sadrže nazive svakog člana dimenzije, a
svaki član dimenzije naziva se atribut. U svetu skladišta podataka ključni atribut u tabeli
dimenzija mora da sadrži jedinstvenu vrednost za svakog člana dimenzije. Jedna
dimenzija može da sadrži više atributa. Atributi mogu da budu:
 Grupišući i
 Negrupišući
Ne grupišući mogu da se nazivaju i osobinama člana dimenzije a grupišući atributu
mogu da se kombinuju u hijerarhije. Hijerarhije predstavljaju put kojim se u izradi
analiza sistem kreće po dubini kroz vrednosti.
Mere se smestaju u tabele kojima nazivamo tebele činjenica. Svaka kolona u tabeli
činjenica je ključna kolona uli kolona činjenica. Kolona može da sadrži podatke o
referencama. Tabela činjenica za svakog člana radije koristi šifru numeričkog tipa nego
naziv člana. Ukoliko se za označavanje članova dimenzije koriste celobrojni podaci,
tada se za opisane podatke članova dimenzije kreiraju tabele dimenzija, što sustinski
možemo shvatiti kao šifarnik.

4.2.1 Dimenzije OLAP kocke

Standardne dimenzije kocki koje će biti kreirane su podaci iz tabela:


 Film – Naziv filma,
 Film – Naziv rezisera,
 Dobavljac – Naziv dobavljaca,
 Zanr – Naziv zanra,
 Radnik – Radnik (ime, prezime, status),
 Vreme – vremenska dimenzija (datumProdaje)
Na slikama 4.3 i 4.4 su prikazane dimenzije:

Slika 4.3. Dimenzije OLAP kocke (metoda Pahulja)

19
Kompleksne baze podataka Prodavnica filmova

Slika 4.4. Dimenzije OLAP kocke (metoda zvezde)

4.2.2. Šema OLAP kocke projektovana metodom “zvezde“ (Star)

Slika 4.5 Šema OLAP kocke

Na slici 4.6 su prikazane mere OLAP kocke projektovane na bazi zvezde:

Slika 4.6 Mere OLAP kocke


Vidimo sa slike da imamo jedno izračunljivo polje (Calculated Member) a to je Cena
filma, ovo izračunljivo polje jednostavno sabira nabavnu cenu i marzu.
CREATE MEMBER CURRENTCUBE.[Measures].[Cena filma]
AS [Measures].[Marza]+[Measures].[Nabavna Cena],
VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = 'Ponuda filmova' ;

20
Kompleksne baze podataka Prodavnica filmova

4.2.3. Šema OLAP kocke projektovana metodom “pahulje“ (Snowflake)

Slika 4.7. Šema OLAP kocke

Na slici 4.8 su prikazane mere OLAP kocke projektovane na bazi metode pahulje.

Slika 4.8. Mere OLAP kocke


Kreirenje pogleda/upita za izračuniljivo polje Iznos = cenaFilma*kolicina - (cenaFilma*
kolicina* popust/100)
CREATE VIEW [Iznosi racuna sa popustom]
AS
SELECT Prodaja.sifraFilma, Prodaja.idRacuna, Prodaja.idRadnika,
idProdaje, cenaFilma, kolicina, popust, datumProdaje,
CASE
WHEN popust is not null
THEN (cenaFilma*kolicina)-(cenaFilma*kolicina*popust
/ 100)
ELSE cenaFilma*kolicina
END as Iznos
FROM Prodaja INNER JOIN Racun
ON Prodaja.idRacuna=Racun.idRacuna

21
Kompleksne baze podataka Prodavnica filmova

sifraFilma idRacuna idRadnika idProdaje cenaFilma kolicina popust datumProdaje Iznos


1 1 1 1 175 5 20 2011-02-12 700.000000
11 1 1 2 185 2 20 2011-02-12 296.000000
15 1 1 3 185 3 20 2011-02-12 444.000000
23 1 1 4 190 2 20 2011-02-12 304.000000
12 2 2 5 185 3 20 2012-01-01 444.000000
Prilikom kreiranje data source view-a u SQL Server Business Intelligence Development
Studio-u ovaj prethodno kreirani pogled (Iznosi racuna sa popustom) nam predstavlja
novu tabelu koju je potrebno povezati sa tabelama Radnik i Film preko odgovarajuch
ključeva kao što se vidi na slici 4.1.

4.3 Kreiranje OLAP kocke


U ovom radu autor je kreirao dve kocke, prva kocka predstavlja ponudu filmova
kupcima, po nazivu filma, zanrovima i dobavljačima (cbZvezda). Druga kocka
predstavlja analizu prodaje filmova, najprodavaniji filmovi po zanrovima,
dobavljačima, radnicima, a i analiza prodaje filmova po godinama, mesecima,
kvartalima itd (cbPahulja).
Postoje dva načina za kreiranje kocke, prvi način je kreiranje prazne kocke, a nakon
toga se naknadno dodaju dimenzije i mere. Drugi način je preko wizard-a, u okviru
wizard-a se biraju dimenzije i mere.
Kreiranje kocke se započinje desnim klikom na čvor Cubes,a zatim se bira New cube
[Slika 4.9].
Nakon što potvrdimo kreiranje nove kocke otvara se
wizard, nakon potvrde na dugme Next biramo opciju
Create an empty cube (kreiranje prazne kocke – prvi
načina) zatim biramo odgovarajući data source view i
tako smo kreirali praznu kocku.
Slika 4.9. Kreiranje kocke
Sledeće što je potrebno je kreiranje dimenzija. Na čvoru Dimenzions desnim klikom se
otvara padajući meni na kome je potrebno izabarti New Dimenzion [Slika 4.10].
Nakon potvrde na dugme Next biramo opciju Use an
existing tabel, zatim biramo Main table, odnosno
tabelu koja će nam predstavljati podatke koju opisuju
neki posao. Na primer ukoliko želimo činjenicu naziv
filma naša tabela će biti film. Na kraju dajemo naziv
kocki i kocka je kreirana.

Slika 4.10 Kreiranje dimenzije

22
Kompleksne baze podataka Prodavnica filmova

Kada smo kreirali potrebne dimenzije, sledeće što


je potrebno jeste uključivanje dimenzija kocki.
Dvostrukim klikom na kocku otvaramo kocku i u
kartici Cube Structure primećujemo deo za mere i
deo za dimenzije. U delu za dimenzije desnim
klikom se otvara padajući meni u kom biramo Add
Cube Dimenzion [Slika 4.11].

Slika 4.11 Dodavanje dimenzija


U kocku je takođe potrebno uključiti mere [slika 4.12], u delu za mere desnim klikom
otvaramo meni i biramo New Measure. U novo otvorenom prozoru biramo tabelu
činjenica (Source Table) i agregatnu funkciju (Sum, Count of rows, Minimum,
Maximum itd).

Slika 4.12. Dodavanje mere OLAP kocki

Prilikom kreiranje kocke wizard-om (Use existing tables) u wizard-u biramo tabele koje
će nam predstavljati činjenice i zatim program sam daje neke mere koje se mogu
iskoristiti ili ne i listu dimenzija od kojih se mogu izabrati sve ili pojedine, zavisno od
analize. Kreiranjem kocke wizard-om nije potrebno naknadno dodavati dimenzije jer su
već uključene u kocku.
Jedna od najvaznijih primena Business Intelligence Development Studio-a jeste analiza
podataka u zavisnosti od vremene, što znači da je potrebno dodati i vremensku
dimenziju.
Kada se otvori wizard za kreiranje dimenzije biramo Generate a time table in the data
source. Nakon toga je potrebno izabrati period za koji se vrši analiza i vremenske
intervale [Slika 4.13]. Nakon kreiranja vremenske dimenzije u našem data source view-
u se pojavljuje tabela sa nazivom dimenzije. Tu tabelu je potrebno povezati sa tabelom
koja ima atribut tipa DataTime [Slika 4.1].

23
Kompleksne baze podataka Prodavnica filmova

Slika 4.13. Podešavanje perioda za vremensku dimenziju

Slika 4.14 prikazuje editor i čitač kocke za analizu prodaje filmova po zanrovima,
dobavljačima, radnicima, godinama, mesecima, kvartalima (šema pahulje).

Slika 4.14. Čitač kocke cbPahulja

24
Kompleksne baze podataka Prodavnica filmova

Slika 4.15 prikazuje editor i čitač kocke za prikaz ponude filmova po zanrovima i
odbavljačima (šema zvezde).

Slika 4.15. Čitač kocke cbZvezda

5. Analiza podataka i grafički prikazi


5.1. Kreiranje izveštaja (Reporting Services)
Izveštaj je takođe kreiran u alatu Microsoft Business Intelligence Mangement
Studio 2008. Nakon pokretanja programa biramo novi projekat i iz listi template-a
biramo Report Server Project.
Zatim u Solution Explorer-u na čvor Reports desnim klikom miša biramo Add New
Report [Slika 5.1].

Slika 5.1 Kreiranje novog Izveštaja


Nakon toga nam se otvara wizard za kreiranje izveštaja, prvo što je potrebno jeste
kreiranje izvora podataka (data source-a) [Slika 5.2]

25
Kompleksne baze podataka Prodavnica filmova

Slika 5.2. Kreiranje izvora podataka


Kada kreiramo izvor podataka u Query Designer-u je potrebno kreirati upit za
izvlačenje podataka koji će nam se pojaviti u izveštaju, detaljnije o ovim upitima u
poglavlju 5.1.1 MDX upiti.
Kada kreiramo MDX upit za isčitavanje podataka potrebno je dizajnirati izgled tabele
[Slika 5.3].

Slika 5.3. Dizajniranje izgleda tabele

26
Kompleksne baze podataka Prodavnica filmova

Tabela 5.1 predstavlja izveštaj prodaje filmova.

Prodaja filmova
Calendar 2010
Naziv Zanra Naziv filma Cena filma Broj Popust Iznos sa
prodatih popustom
filmova
akcioni
Ghost Ride
175 1 0 175
The Amazing
Spider Man
185 5 10 832.5
The Courier
170 5 5 824.5
Vampire
Hunter
170 4 10 612
animirani
Wreck-It
Ralph
175 2 0 350
drama
Young Adult
185 2 0 370
Tabela 5.1. Izveštaj prodaje filmova

U tabeli 5.2 je prikazan izveštaj o ponudi filmova

Ponuda filmova
akcioni

Naziv film d.o.o filmovizija movietrade


dobavljaca
Naziv filma Naziv rezisera Broj Cena Broj Cena Broj Cena
filmova filma filmova filma filmova filma
na na na
lageru lageru lageru
Ghost Ride Mark 20 175
Neveldine
The Amazing Marc Webb 13 185
Spider Man

27
Kompleksne baze podataka Prodavnica filmova

The Courier Hany Abu- 10 170


Assad
The Simon West 14 185
Expendables
2
Total Recall Len Wiseman 10 175
Vampire Timur 11 170
Hunter Bekmambetov
Tabela 5.2. Ponuda filmova

5.1.1. MDX upiti (MDX queries)

Višedimenzionalni izrazi (eng. Multidimensional Expressions) ili MDX je upitni


jezik koji se koristi za rad i preuzimanje višedimenzionalnih podataka u Analysis
Service-u. MDX je zasnovan na XML for Analysis (XMLA) specifikaciji sa posebnim
dodacima za SQL Server Analysis Services. MDX je površno sličan SQL sintaksi koja
se koristi u relacionim bazama podataka, ali ipak nije produžetak SQL jezika i
razlikuju se međusobno. Za kreiranje MDX upita koristimo aplikaciju „MDX Sample
Application“ koja je sastavni deo MS SQL Server Analysis Services sistema.
Kreiranje MDX upita [Slika 5.4] je relativno jednostavno, u query designer-u
prevlačimo mere i dimenzije koje su nam potrebne za izveštaj iz odgovarajuće kocke.

Slika 5.4. Kreiranje MDX upita

28
Kompleksne baze podataka Prodavnica filmova

MDX upit izveštaja o prodaji filmova (metoda pahulje):


SELECT NON EMPTY { [Measures].[Iznos sa popustom], [Measures].[Broj prodatih
filmova], [Measures].[Popust], [Measures].[Cena filma] } ON COLUMNS, NON
EMPTY { ([Naziv zanra].[Naziv Zanra].[Naziv Zanra].ALLMEMBERS * [Naziv
filma].[Naziv filma].[Naziv filma].ALLMEMBERS *
[Vreme].[Year].[Year].ALLMEMBERS ) } DIMENSION PROPERTIES
MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [cbPahulja]
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR,
FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE,
FONT_FLAGS

MDX upit izveštaja o ponudi filmova (metoda zvazde):


SELECT NON EMPTY { [Measures].[Broj filmova na lageru], [Measures].[Cena
filma] } ON COLUMNS, NON EMPTY { ([Naziv filma].[Naziv filma].[Naziv
filma].ALLMEMBERS * [Naziv rezisera].[Naziv Rezisera].[Naziv
Rezisera].ALLMEMBERS * [Naziv zanra].[Naziv Zanra].[Naziv
Zanra].ALLMEMBERS * [Naziv dobavljaca].[Naziv dobaljvaca].[Naziv
dobaljvaca].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION,
MEMBER_UNIQUE_NAME ON ROWS FROM [cbZvezda] CELL PROPERTIES
VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE,
FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

5.2. Izvoz analitičkih podataka i kreiranje izvedenih (Pivot) tabela


Microsoft Excel je profesionalni alat namenjen za obradu tabelarno sređenih
podataka. Veoma je koristan u savremenom poslovanju gde se traži brza i kvalitetna
informacija. Prednost Excel-a je u tome što omogućava interaktivan tj. neposredan rad
sa podacima, tako da ga mogu koristiti ljudi različitog nivoa i vrste obrazovanja za
automatizaciju pre svega svog ličnog poslovanja i to bez ikakvog programerskog
znanja.
Pivot tabela je dinamička tabela sa objedinjenim podacima iz nekog izvora podataka.
Za ovaj primer autor je koristio Microsoft Office 2007.
U kartici Insert biramo PivotTable, nakon toga je potrebno odabrati izvor podatka (Data
Source) biramo combo box Use an external data source i zatim pritiskamo dugme
Choose Connection -> Browse for more -> New Source, kao što je prikazano na slici
5.5.

29
Kompleksne baze podataka Prodavnica filmova

Slika 5.5 Kreiranje pivot tabele


Kada kliknemo na New Source otvara se Data Connection Wizard [Slika 5.6] u kome je
potrebno označiti Microsoft SQL Server Analysis Services, pa upisati naziv SQL server
i odabrati kocku za koju kreiramo pivot tabelu.

Slika 5.6. Data Connection Wizard

30
Kompleksne baze podataka Prodavnica filmova

Na slici 5.7 je prikazana pivot tabela prodaje filmova.

Slika 5.7. Pivot tabela prodaje filmova

5.3. Izrada dijagrama i grafikona (Chart)


Za kreiranje krafikona u kratici Insert biramo PivotChart, zatim biramo combo
box Use an external data source i program ce nam ponuditi prethodno kreirani data
source koji smo koristili za pivot tabelu. Ukoliko želimo drugi izvor podataka postupak
je isti kako i kod kreiranja pivot tabele (Slike 5.5 i 5.6).

Na slici 5.8. je slikovito prikazana prodaja filmova po godinama i žanrovima. Kreiranje


je jednostavno, kad se povežemo na izvor podataka u polje Legend prevlačimo godine,
u polje Axis prevlačimo naziv žanra i u polje za vrednosti prevlačimo broj prodatih
filmova [Slika 5.9].

30
25
20
15
10 Calendar 2010
5 Calendar 2011
0
Calendar 2012

Slika 5.8. Grafikon prodaje filmova po godinama i žanrovima

31
Kompleksne baze podataka Prodavnica filmova

Na slici 5.9 je grafički prikazana prodaja filmova po dobavljačima u zavisnosti od


vremena. U polje Legend prevlačimo naziv dobavljača, u polje Axis prevlačimo godine
i u polje Values prebacujemo broj prodatih filmova.
20
film d.o.o
15 filmovizija
kraljevofilm
10
moviein
movietrade
5
newmovie

0 nsmovie
Calendar 2010 Calendar 2011 Calendar 2012

Slika 5.9. Prodaja filmova po dobavljačima

5.4. Data mining


Za razliku od upita, izveštaja i više dimenzionalnih analiza, gde korisnik
izvršava upite zasnovane na hipotezama, data mining traži odgovore na pitanja koja ne
moraju prethodno biti postavljena. Otkrivanje može imati formu pronalaženja značaja u
vezama između određenih elemenata podataka, klasterisanju određenih elemenata
podataka ili drugi obrazac u korišćenju drugih elemenata podataka.Iz ovih obrazaca
algoritmi izvode pravila, koja mogu biti korišćena za generisnaje modela željenog
ponašanja, identifikuje veze među podacima otkriva obrasce i grupiše klastere zapisa
sličnih atributa.
Data mining se koristi za statističke analize podataka i otkrivanje znanja. Data mining je
vođen podacima, može omogući da ostvarimo nove poglede na posao dajući odgovore
na pitanja koja nismo mislili da postavimo.
Kreiranje data mining strukture započinjemo desnim klikom miša na čvor Mining
Structures i biramo New Mining Structure. Nakon toga nam se otvara Data Mining
Wizard. U ovom primeru vršićemo kreiranje strukture iz postojeće kocke (From
existing cube), zatim biramo Microsoft Decision Trees kao tehnologiju data mining
strukture. Sledeći korak [Slika 5.10] je odabir dimenzije iz predhodno kreirane kocke, to
je dimenzija Film, nakon toga biramo atribute i mere koje ćemo uključiti u mining
strukturu, u sledećem koraku biramo kolonu za koju ćemo vršiti predviđanje, to je
kolona naziv žanra.

32
Kompleksne baze podataka Prodavnica filmova

Slika 5.10. Kreiranje data mining strukture

Na slici 5.11 je prikazana data mining struktura, na slici 5.12 model mining strukture i
na 5.13 mining legend.

Slika 5.11. Data mining struktura

Slika 5.12. Data mining model

33
Kompleksne baze podataka Prodavnica filmova

Slika 5.13. Data mining legend

6. Zaključak
Skladište podataka je posebno projektovano tehnološko okruženje koje
omogućuje objedinjavanje srodnih podataka u oblik pogodan za analizu čime se
olakšava proces donošenja odluka i daje nov pristup sistemima za podršku odlučivanju.
Ovaj koncept obezbeđuje fleksibilan i efikasan način raspolaganja podataka u formatu
pogodnom za savremene poslovne aplikacije. Uvođenjem koncepta skladišta podataka,
operativne baze prestaju da budu opterećene složenim upitima, pa ceo informacioni
sistem koji se sad sastoji od dva dela, operativnog i skladišta podataka, postaje
produktivniji i lakše se kontroliše i restrukturira.
Data Warehouse je revolucionaran prilaz koriščenju podataka i kreiranja informacija,
koji kao deo poslovne inteligencije je brzo preovladao stare metode dolaska do
informacija. Danas kao što se dosta ulaže u ovu tehnologiju od strane svih srednjih i
većih preduzeda takođe se ulaže dosta u razvijanje alata koji omogućuju ovu snagu
informacija da iskoriste i obični korsinici.

34
Kompleksne baze podataka Prodavnica filmova

7. Literatura

[1] Doc. dr Gordana Radić, Upravljanje poslovnim informacionim sistemima,


Panevropski univerzitet “APEIRON“ Banja Luka (2009).
[2] Varga Mladen, Upravljanje podacima, Element Zagreb (2012).
[3] Alempije Veljović, Miroslav Radojičić, Jasmina Vesić, Menadžment informacioni
sistemi u praksi, Kompjuter biblioteka Čačak, 2002.

35

You might also like