143
Lekcija 13 - Pisanje aplikativne logike nad bazama podataka

baze it350

Embed Size (px)

DESCRIPTION

baze it350

Citation preview

Page 1: baze it350

Lekcija 13 - Pisanje aplikativnelogike nad bazama podataka

Page 2: baze it350

 | Contents | 2

Contents

LearningObject................................................................ 3Lekcija-13-Predavanja.......................................................................................................3Standardi za pristup bazama podataka........................................................................... 3ODBC standard (Open Database Connectivity standard).................................................5Arhitektura ODBC standarda............................................................................................5Nivoi komformnosti ODBC standard: ODBC komformnost................................................7Nivoi komformnosti ODBC standard: SQL komformnost.................................................. 8JDBC (Java data base connectivity) standard.................................................................10JDBC (Java data base connectivity) standard: korišćenje...............................................11Pisanje aplikativne logike korišćenjem proceduralnih ekstenzija SQL-a......................... 13PL/SQL: osnovna struktura.............................................................................................13PL/SQL: promenljive i tipovi........................................................................................... 14PL/SQL: primeri jednostavnih programa.........................................................................15PL/SQL: kontrola toka.....................................................................................................16PL/SQL: CURSOR.............................................................................................................18Stored procedure............................................................................................................20Stored procedure:primer................................................................................................ 22Stored procedure:primer................................................................................................ 24Stored procedure u MySQL-u......................................................................................... 25Stored procedure - Blok naredbe - u MySQL-u.............................................................. 33Stored procedure u MySQL-u -IF THEN ELSE................................................................. 37Lekcija-13-Predavanja.....................................................................................................40

Page 3: baze it350

 | LearningObject | 3

LearningObject

Lekcija-13-Predavanja

UvodU ovom predavanju su obrađeni standardi za pristup bazama podataka. ODBC standardirešavaju problem pristupa podacima koji mogu biti organizovani i čuvani na različite načinekao što su relacione baze podataka (Oracle, DB2 ili SQL server), nerelacioni podaci tipa IMS,podacima koji su smešteni u file-ovima, email direktorijumima itd. ODBC standardi se u ovompredavanju sagledavaju sa aspekta arhitekture i nivoa konformnosti. JDBC je alternativaODBC-u koja omogućuje pristup bazama podatka iz Java programa. Četiri tipa JDBC drajverakoje je definisao Sun, proizvođač Jave, je raspoloživ za skoro sve postojeće DBMS proizvode.

U predavanju se takođe govori i o mogućnosti korišćenja proceduralnih jezika za rad sabazama podataka, konkretno PL/SQL-u koji se koristi u okviru ORACLE-a. PL/SQL se u zapisanje aplikativne logike nad bazom koristi kroz korišćenje Stored procedura i trigera.

Standardi za pristup bazama podataka

Cilj• Upoznati se standardima za pristup bazama podataka

Standardi za pristup bazama podatakaWeb okruženje u kojem rade današnje aplikacije je veoma složeno jer je su njime obuhvaćenipodaci različitih tipova. Pored relacionih baza podatak, to su neralacione baze, VSAM i drugevrste podataka smeštenih u file-e, email itd. Da bi sve te podatke integrisali, programeričesto imaju mnogo problema jer moraju da pristupe npr. Oracle bazi podataka, DB2 bazi,nerelacionom podacima kao što je IMS, podacima koji su smešteni u file-ovima kao što suVSAM i ISAM; email direktorijumima, što je prikazano na sledećoj slici. Svaki od ovih proizvodaima različiti programski interfejs koji programer mora da nauči.

Page 4: baze it350

 | LearningObject | 4

Slika: Različiti programski interfejsi za pristup bazama podataka

Osim toga, čest slučaj sa bazama podataka je da organizacija već ima poslovni sistem iželi da podatke iz tog sistema koristi na novi način. Ako se novi sistem razvija u objektno-orijentisanom jeziku, neophodno je kreirati sloj u arhitekturi koji obavija postojeće podatketako da oni izgledaju kao objekti mada su zapamčeni u relacionoj bazi podataka. To jeprikazano na slici “Slojevita arhitektura postojećeg i novog sistema koji deli postojeću bazupodataka”.

Slika: Slojevita arhitektura postojećeg i novog sistema koji deli postojeću bazu podataka

Na primer postojeći sistema nalik ovom može da koristi SQL-Server kao bazu podataka iVisual Basic za klijentski program. Klijent u Visual Basic-u pristupa podacima u bazi podatakakorišćenjem ODBC-a i SQL-a. Novi sistem kao prezentacioni sloj može da korisi Java aplikacijuza sloj poslovne logike i Java komponente za sloj pristupa podacima. Java komponente trebada obezbede omotač oko redova podataka u relacionoj bazi podataka tako da se oni u slojuposlovne logike pojave kao objekti. Sloj za pristup podacima treba da koristi ODBC, ili u ovomslučaju JDBC i SQL za konektovanje na bazu podataka, ali objekti koji se korsite za pristuppodacima se mogu koristiti i u drugim aplikacijama. Ako je sloj za pristup podacima dizajnirantako da uključuje entity bean-ove (Java tehnika) koji čine omotač za sve podatke u bazi

Page 5: baze it350

 | LearningObject | 5

podataka, staroj klijent server aplikaciji je moguće dodati prezentacioni sloj i sloj poslovnelogike a koristiti postojeći sloja za pristup podacima.

ODBC standard (Open Database Connectivity standard)

Cilj• Upoznati se sa ODBC standardom za pristup bazama podataka

ODBC standard (Open Database Connectivity standard)Da bi se rešio problema koji se odnosi na relacione baze podataka i podatke smeštene utabelama (kao što je spreadsheet), kreiran je ODBC (Open Database Connectivity)standard.

Kao što je prikazano na sledećoj slici, ODBC je interfejs između Web servera ( ili drugih database aplikacija) i DBMS. On se sastoji od skupa standarda na osnovu kojih se mogu izvršavatiSQL naredbe, vraćati rezultati njihovih izvršenja ili poruke o greškama. Slika pokazuje da seDBMS može pozivati korišćenjem prirodnog DBMS interfejsa (naročito u slučajevima kadatreba poboljšati performanse sistema) ili ako programer nema vremena ili ne želi da učiprirodne biblioteke različitih DBMS-a, može se koristiti ODBC.

ODBC je interfejs preko kojeg aplikativni programeri mogu da pristupe i obrade baze podatakana način koji je potpuno nezavistan od DBMS-a. To na primer znači da aplikacija koja koristiODBC interfejs može da obrađuje Oracle bazu podataka, DB2 bazu ili spreadsheet bez bilokakvih izmena u kodu. Cilj je dozvoliti programeru da kreira samo jednu aplikaciju koja možepristupati bazama podataka podržanim od različitih DBMS proizvoda, bez potrebe da se uaplikaciji prave bilo kakve izmene podrazumevajući i rekompilaciju.

Slika: ODBC interfejs između Web servera ( ili drugih data base aplikacija) i DBMS.

Arhitektura ODBC standarda

Page 6: baze it350

 | LearningObject | 6

Cilj• Upoznati se sa arhitekturom ODBC standarda za pristup bazama podataka

Arhitektura ODBC standardaNa slici “Komponente ODBC standarda” je prikazana arhitektura ODBC standarda.

Na računaru koji ima ulogu aplikativnog servera, smešteni su aplikativni programi, drajvermenadžer i DBMS drajveri koji šalju zahteve prema izvorima podataka koji su smešteni naserveru baze podataka. Saglasno standardu, izvor podataka je baza podataka, njoj pridruženDBMS, operativni sistem i mrežna platforma.

Slika: Komponente ODBC standarda

Aplikacija može poslati zahtev za:• kreiranje konekcije sa izvorom podataka;• za izvršenje SQL naredbe i dobijanje rezultata;• za obradu grešaka;• za startovanje, pamćenje i roll back transakciju

ODBC obezbeđuje standardni način za svaki od ovih zahteva i definiše standardni skupkodova i poruka o greškama.

Drajver menadžer služi kao posrednik između aplikacije i DBMS drajvera. Kada aplikacijapošalje zahtev za uspostavljanje konekcije, drajver menadžer određuje tip DBMS-a koji će daobradi dati ODBC izvor podataka i taj drajver loaduje u memoriju.

Drajver obrađuje ODBC zahtev i prosleđuje specifične SQL naredbe ka datom tipu izvorapodataka. Svaki tip izvora podataka ima različite drajvere. Na primer, postoje drajveri zaDB2, Oracle, Access i sve druge proizvode čiji su proizvođači odlučili da učestvuju u ODBCstandardu. Drajvere obezbeđuju DBMS proizvođači ili nezavisne softverske kompanije.Odgovornost drajvera je da obezbedi da se standardna SQL naredba korektno izvrši. Unekim slučajevima, kada izvor podataka ne podržava SQL, drajver ima potrebu da izvršiodgovarajuću obradu kojom se može prevazići njegova nemogućnost da prihvati SQL zahtev.U drugim slučajevima, kada izvori podataka podržavaju SQL, drajver ima zadatak da zahtevsamo prenese kako bi obradio izvor podataka. Drajver takodje konvertuje kodove i poruke ogreškama koje generišu izvori podataka u kodove i poruke ODBC standarda.

ODBC identifikuju dva tipa drajvera:• jednoslojne i

Page 7: baze it350

 | LearningObject | 7

• višeslojne

Jednoslojni drajver obrađuje i ODBC poziv i SQL naredbu. Primer jednoslojnog drajvera jeprikazan na sledećoj slici pod stavkom (a). U ovom slučaju su podaci smešteni u Xbase file-ove, pa pošto Xbase drajver ne obrađuje SQL, zadatak drajvera je da SQL zahtev transformišeu komandu za manipulaciju Xbase file-ovima i da rezultat transformiše nazad u SQL komandu.

Višeslojni drajver obrađuje ODBC pozive, ali SQL zahtev direktno prenosi SQL serveru.Mada on može da reformatira SQL zahtev, kako bi ga prilagodio dijalektu određenog izvorapodataka, on ne obrađuje SQL. Jedan primer korišćenja višeslojnog drajvera je prikazan naslici pod stavkom (b).

Slika: Jednoslojni drajver; 4.b. Višeslojni drajver

Nivoi komformnosti ODBC standard: ODBC komformnost

Uvodne napomeneKreatori ODBC standarda su bili u dilemi da li da definišu standard sa minimalnim nivoommogućnosti, tako da ga može podržati veliki broj proizvođača ili sa visokim nivou mogućnosti,kada bi se u njega mnogo uklopiti samo mali broj proizvođača. Da bi se ova dilema razrešila,definisana su dva nivoa komformnosti:• ODBC komformnost i• SQL komformnost

Ovde će biti reči o ODBC komformnosti

Cilj• Upoznati se sa nivoima komformnosti ODBC standarda za pristup bazama podataka

Page 8: baze it350

 | LearningObject | 8

Nivoi komformnosti ODBC standard: ODBC komformnostODBC nivo komformnosti se odnosi na karakteristike i funkcije koje na raspolaganje stavljaAPI (application program interface) datog drajvera. API jednog drajvera je skup funkcijakoje može da poziva aplikacija, kako bi primile odgovarajuće servise.

Na sledećoj slici su predstavljena tri nivoa ODBC komformnosti. U praksi, gotovo svi drajveriobezbeđuju i nivo API komformnosti.

Slika: API komformnosti

Nivoi komformnosti ODBC standard: SQL komformnost

Uvodne napomeneKreatori ODBC standarda su bili u dilemi da li da definišu standard sa minimalnim nivoommogućnosti, tako da ga može podržati veliki broj proizvođača ili sa visokim nivou mogućnosti,kada bi se u njega mnogo uklopiti samo mali broj proizvođača. Da bi se ova dilema razrešila,definisana su dva nivoa komformnosti:

Page 9: baze it350

 | LearningObject | 9

• ODBC komformnost i• SQL komformnost

Ovde će biti reči o SQL komformnosti

Cilj• Upoznati se sa nivoima komformnosti ODBC standarda za pristup bazama podataka

Nivoi komformnosti ODBC standard: SQL komformnostSQL nivom komformnosti se specificira koje SQL naredbe, izraze i tipove podatka može daobrađuje drajver. Definisana su tri nivoa komormnosti što je prikazano na sledećoj slici.

Slika: Nivoi SQL komformnosti

Aplikacija može da pozove drajver i odredi koji nivo SQL komformnosti on podržava,na osnovu čega zatim može da odredi koje SQL naredbe mogu da se izvršavaju. Ako jeneophodno, aplikacija može da završi sesiju i koristi alternativni, manje moćan način zadobijanje podataka.

Page 10: baze it350

 | LearningObject | 10

JDBC (Java data base connectivity) standard

Cilj• Upoznati se sa JDBC standardom za pristup bazama podataka

JDBC (Java data base connectivity) standardJDBC je alternativa ODBC-u koja omogućuje pristup bazama podatka iz Java programa. JDBCdrajver je raspoloživ za skoro sve postojeće DBMS proizvode. Sun, pronalazač Jave, održavadirektorijum JDBC drivera java.sun.com/products/jdbc. Neki od drajvera su besplatni, askoro svaki od njih ima verziju koja se može besplatno koristiti ograničen period vremena.

Sun je definisao četiri tipa drajvera:Tip 1 drajveri: su JDBC-ODBC drajveri koji obezbeđuju interfejs između Jave i regularnihODBC drajvera. Većina ODBC drajvera je pisana u C++ ili C pa iz razloga koji su zanas nevažni, postoji nekompatiblnost između Jave i C++ ili C. Ovim drajverima se tanekompatibilnost rešava i iz Jave dozvoljava pristup ODBC izvorima podataka.Tip 2 do tip 4 drajveri su u celosti pisani u Javi; oni se razlikuju po načinu na koji sekonektuju na DBMS.Tip 2 drajveri: se konektuje na prirodan API za DBMS; oni na primer pozivaju Oraclekorišćenjem standardnog (ne-ODBC) programskog interfejsa za Oracle.Tip 3 drajveri: prevode JDBC pozive u DBMS nezavisni mrežni protokol koji se nakon togaprevodi u mrežni protokol za konkretan DBMS.Tip 4 drajveri: prevode JDBC poziv u specifičan DBMS mrežni protokol.

Da bi se razumelo po čemu se razlikuju drajveri tipa 2 do 4, treba razumeti razliku kojapostoji između servleta i apleta. Kao što se zna, Java je dizajnirana tako da bude portabilnaodnosno prenosiva što se postiže time što se Java programi ne kompiliraju na određenimašinski jezik (za računar na kojem se Java program izvršava) već u bytekod koji jenezavistan od računara. Sun, Microsoft i drugi proizvođači računara su napisali bytekodinterpretere za svaki od računara koji se nazivaju Java virtualne mašine.

Da bi se kompilirani Java kod izvršio, Java virtualna mašina u trenutku izvršenja interpretirabytekod koji je nezavistan od mašine. Cena ovoga je svakako da bytekod interpreterpredstavlja jedan dodatni korak, tako da Java programi ne mogu biti nikada brzi kao što su toprogrami koji se direkno kompiliraju u određeni mašinski kod.

Aplet je Java bytekod program koji se izvršava u okviru aplikacije na korisnikovom računaru.Aplet bytekod se na korisnikov računar šalje preko HTTP protokola gde ga interpretiravirtualna mašina koja je često deo browsera. Zahvaljujući portabilnosti, isti bytekod se možeslati na Windows, UNIX ili Apple računar.Servlet je Java program koji se preko HTTP protokola poziva sa Web server računara. Onodgovara na zahteve browsera. Java virtualna mašina interpretira i izvršava servlete naračunaru koji ima ulogu servera.

Obzirom da imaju konekciju na komunikacioni protokol, tip 3 i tip 4 drajveri se mogu koristitiili kao apleti ili kao servleti. Tip 2 drajveri se mogu koristiti samo u situacijama gde se Javaprogrami i DBMS nalaze na istom računaru ili gde se tip 2 drajvera konektuje na DBMSprogram koji upravlja komunikacijom između računara na kojem se izvršava Java program iračunara na kojem se nalazi DBMS.

Page 11: baze it350

 | LearningObject | 11

Tako, ako se na bazu podataka konektujete iz apleta (dvo nivovska arhitektura) mogu sekoristiti samo tip 3 i tip 4 drajvera, s tim što će tip 4 biti brži od tipa 3.

U tronivovskoj ili n-nivovskoj arhitekturi, ako se Web server i DBMS izvršavaju na istomračunaru, može se koristiti bilo koji od 4 tipa drajvera. Ako se Web server i DBMS nalaze narazličitim računarima, bez problema se mogu koristiti tip 3 i tip 4 drajvera. Tip 2 drajvera semože takodje koristiti ako DBMS proizvođač upravlja komunikacijama između Web servera iDBMS.

Karakteristike JDBC drajvera su sumirane u sledećoj tabeli.

Tabela: Karakteristike tipova drajvera

JDBC (Java data base connectivity) standard: korišćenje

Cilj• Upoznati se sa načinom korišćenja JDBC standarda za pristup bazama podataka

Korišćenje JDBC standardaJDBC drajver se koristi na sledeći način:

• Drajver se loaduje• Uspostavi se konekcija sa bazom podataka• Kreira se naredba• Sa naredbom se nešto uradi

Da bi se drajver loadovao, treba najpre dobiti biblioteku drajvera i instalirati je udirektorijumu.

Drajver se u program može loadovati na nekoliko načina od kojih je najpouzdaniji sledeći:Class.forName(string).newInstance( );

Vrednost string parametra zavisi od drajvera koji se koristri. Za Connector/J drajver se možekoristiti sledeći metod.Class.forName(”org.gtj.com.mysql.jdbc.Driver ”).newInstance( );

Uspostavljanje konekcije sa bazom podataka: Pošto se loaduje drajver sledeću korak jekreirati objekat koji ima konekciju sa bazom podataka. Format je sledeći:

Page 12: baze it350

 | LearningObject | 12

Connection conn = DriverManager.getConnection (string);

Klasa driver menager-a je deo JDBC biblioteke koja je loadovana u prvom koraku. Ona igraistu ulogu kao i ODBC driver manager. Za datu mašinu se može registrovati nekoliko drajvera.Kada se pozoveDriverManager.getConnection, on pregledava listu svojih JDBC drajvera za odgovarajućidrajver i koristi ga.

String parametar koji se prenosi u getConnection ima tri dela koja su odvojena dvotačkom.Prvi deo je uvek „jdbc”, drugi je ključna reč koja identifikuje DBMS koji se koristi, a treći je URLbaze podataka koja se obrađuje sa opcionim parametrima kao što su username i password.Sledećom naredbom se vrši konekcija na MySQL bazu podataka koja se zove vr1 sa usernamei password-om dk1/sesame:

Ova metoda nema parametara koje treba preneti. Naredbe se mogu obradjivati na različitenačine.

Obrada naredbi: U JDBC specifikaciji su standardizovane sve metode naredbi. U ovimprimerima će biti korišćenje metode executeQuery i executeUpdate.ResultSet rs = stmt.executeQuery (querystring);iint result = stmt.executeUpdate (updatestring);

Prva naredba vraća skup rezultata koji se mogu koristiti na isti način kao što je korišćen kursoru prethodnim primerima. Druga naredba vraća integer koji ukazuje na broj ažuriranih slogova.Specifičan primer uključuje sledeće:ResultSet rs = stmt.executeQuery (“SELECT * FROM CUSTOMER”);iint result = stmt.executeUpdate („UPDATE ARTIST SET Nationality = ’English’WHERE Name=’Foster’ “);

Pripremljene naredbe i pozivne naredbe (Prepared statements i Collablestatements ):Prepared statements objekti i Collable statements objekti se mogu koristiti za pozivanjekompiliranih upita i zapamćenih procedura u bazama podataka. Da bi ilustrovali collablestatement, pretpostavimo da obrađujemo View Ridge bazu podataka koja je kreirana uOracle-u i da želimo da pozovemo CustomerInsert stored proceduru.CollableStatement cs = conn.prepareCall (“{call CustomerInsert (?, ?, ?, ?)}”);cs.setString (1, „Mary Johnson“);cs.setString (2, „212“);cs.setString (3, „555-1234“);cs.setString (4, „US“);cs.execute ( );

Page 13: baze it350

 | LearningObject | 13

Pisanje aplikativne logike korišćenjem proceduralnihekstenzija SQL-a

Cilj• Upoznati se sa mogučnostima pisanja aplikativne logike nad bazama podataka korišćenjem

proceduralnih ekstenzija SQL-a

Pisanje aplikativne logike korišćenjem proceduralnih ekstenzija SQL-aPored korišćenja ODBC i JDBC standarda za pisanje aplikativne logike nad bazama podataka,postoji i mnogo drugih načina.

Jedan od načina obrade je kreiranje stored (zapamćenih) procedura. Stored procedure semogu pozivati iz aplikativnih programa ili iz Web stranice korišćenjem jezika kao što suVBScript ili Jscript. Stored procedure se takođe mogu izvršavati iz SQL*Plus-a ili iz MangerConsole. To se može uraditi samo pošto su procedure razvijene i testirane. Iz razlogabezbednosti, obradu nad bazom podataka može da izvrši samo autorizovani članovi iliadministrator baze podataka.

Pored toga za obradu baze podataka se mogu koristiti i komande koje se čuvaju u .sql file-ovima. Takvi file-ovi se obrađuju korišćenjem komande Start. Zbog zaštite, takvi file-ovi semogu koristiti samo za vreme razvoja aplikacije i testiranja, nikada nad operativnom bazompodataka.

Na kraju, aplikativna logika se može ugraditi u trigere. Trigeri se mogu koristiti za različiteprovere, za postavljanje default vrednosti, za ažuriranje pogleda i za implementacijuograničenja referencijalnog integriteta.

Za pisanje trigera i stored procedura se npr. u Oracle bazi podataka koristi proceduralnoproširenje SQL-a koji je poznat kao PL/SQL. Svaki sistem za upravljanje bazama podataka imarazvijen svoj specifičan proceduralni jezik za razvoj aplikativne logike nad bazom podataka.Osnovna karakteristika ovih jezika što se pored određenih SQL komendi mogu koristiti inaredbe koje omogućavaju kreiranje petlji i grananja na način koji je već poznat.

PL/SQL: osnovna struktura

Cilj• Upoznati se sa osnovnom strukturom PL/SQL-a

PL/SQL: osnovna strukturaOsnovna jedinica PL/SQL-a jeste blok. Svi PL/SQL programi su sastavljeni od blokova kojise mogu umrežavati jedan u drugi. Obično, svaki blok izvršava jednu logičku akciju u svomprogramu. Blok ima sledeću strukturu:

DECLARE/* Sekcija za deklaraciju: variables, types, and local subprograms. */BEGIN/* Izvršna sekcija: proceduralne i SQL naredbe. */

Page 14: baze it350

 | LearningObject | 14

/* To je jedina sekcija koja u okviru bloka mora da postoji. */EXCEPTION/* Sekcija u kojoj se obrađuju izuzeci: ovde dolaze naredbe za obradu grešaka*/END;

Obavezna je samo izvršna sekcija, dok su ostale sekcije opcione. U PL/SQL-u su dozvoljenesamo naredbe SELECT, INSERT, UPDATE, DELETE i nekoliko drugih naredbi za manipulacijuplus neke naredbe za kontrolu transakcija. Međutim, SELECT naredba ima specijalnu formu ukojoj se kao promenljiva koristi jedan red tabele, o čemu će kasnije biti više reči. Naredbe zadefiniciju podacima kao što su CREATE, DROP, ili ALTER nisu dozvoljene. Izvršna sekcija sadržikonstrukcije kao što su dodeljivanje, grananje i petlje, pozivi procedura i trigeri o čemu ćetakođe biti reči u predavanju. U PL/SQL-u se ne pravi razlika između malih i velikih slova imogu se koristiti komentari koji se koriste u C-u tipa (/* ... */)

Da bi se PL/SQL program izvršio, iza teksta programa mora da stojiLinija u kojoj se nalazi samo tačka ("."), a zatimLinija sa run;

Kao i slučaju Oracle SQL programa, PL/SQL program se može pozvati bilo tako što će seon odkucati u sqlplus-u ili stavljanjem koda u file i pozivanjem file-a o čemu je bilo reči uprethodnom kursu kada se govorilo o SQL-u.

PL/SQL: promenljive i tipovi

Cilj• Upoznati se sa načinom definisanja promenljivih u PL/SQL-u.

PL/SQL: promenljive i tipoviInformacije se između PL/SQL programa i baze podatka razmenjuju preko promenljivih. Svakapromenljiva ima specifičan tip koji joj je pridružen. Tip može biti:Jedan od tipova koji se u SQl koristi za definisanje kolonaGenerički tip koji se koristi u PL/SQL-u kao što je NUMBERDeklarisan kao isti tip neke od kolona baze podataka

Najčešće korišćen generički tip je NUMBER. Promenljive tipa NUMBER mogu biti ili intedžer ilirealni brojevi. Najčešće korišćen tip za string karaktera jeste VARCHAR (n) gde je maksimalnadužina stringa izražena u bajtovima. To je potrebna dužina i ne postoji default vrednost. Naprimer mi možemo deklarisati:

DECLAREprice NUMBER;myBeer VARCHAR(20);

Tipovi u PL/SQL-u mogu biti nepouzdani. U mnogim slučajevima, PL/SQL za manipulacijupodacima koristi promenljive koji su zapamćeni u postojećim relacijama. U tom slučaju jevažno da promenljiva ima isti tip kao i kolona relacije. Ukoliko postoji bilo kakvo neslaganje,dodeljene promenljive neće raditi na način kako se to očekuje. Zato, da bi bili sigurni umesto

Page 15: baze it350

 | LearningObject | 15

da se tip promenljive hardkoduje u PL/SQL procedure, treba koristiti operator %TYPE. Naprimer:

DECLAREmyBeer Beers.name%TYPE;

PL/SQL promenljivoj myBeer dodeljuje onaj tip koji je deklarisan za ime kolone urelacijiBeers.

Napomenimo da PL/SQL dozvoljava upotrebu BOOLEN promenljivih, mada Oracle ne podržavaBOOLEN kao tip kolone baze podataka.

Promenljiva takođe može imati tip koji se odnosi na nekoliko polja. Najjednostavniji način zadeklarisanje takve promenljive je korišćenje %ROWTYPE uz ime relacije. Rezultat je tipsloga u kojem polja imaju ista imena i tipove kao i atributi u relaciji. Naprimer:

DECLAREbeerTuple Beers%ROWTYPE;

deklariše promenljivu beerTuple kao slog sa poljima name i manufacture tj. kaže da ona imaistu strukturu kao relacija Beers(name, manufacture).

Inicijalna vrednost bilo koje promenljive je, bez obzira na tip NULL. Promenljivoj se možedodeliti neka vrednost korišćenjem operatora ":=". Dodeljivanje se može izvršiti bilo odmahposle deklaracije tipa promenljive ili bilo gde u izvršnom delu programa. Na primer:

DECLAREa NUMBER := 3;BEGINa := a + 1;END;.run;

Ovaj program nema nikakve efekte u toku izvršenja jer nema promena u bazi podataka.

PL/SQL: primeri jednostavnih programa

Cilj• Upoznati se sa načinom pisanja jednostavnijih PL/SQL programa.

PL/SQL: primeri jednostavnih programaNajjednostavnija forma programa ima nekoliko deklaracija iza kojih stoji izvršna sekcijakoja se sastoji od jedne ili više SQL naredbi sa kojima smo se upoznali u kursu IT350 Bazepodataka. Razlika je jedino u neznatno promenjenoj formi SELECT naredbe koja se razlikuje odsvoje SQL forme.

Page 16: baze it350

 | LearningObject | 16

Napomenimo da sada umesto o redovima relacije (tabele) govorimo o redu, jer SELECTnaredba u PL/SQL-u radi samo ako rezultat upita sadrži jedan red. Ukoliko upit vraća više odjednog reda, potrebno je koristiti cursor, na način koji je opisan u sledećoj sekciji. Ovde je datjedan primer.

CREATE TABLE T1(e INTEGER,f INTEGER);

DELETE FROM T1;INSERT INTO T1 VALUES(1, 3);INSERT INTO T1 VALUES(2, 4);

/* Gore je dat direktan, izvorni SQL; dole je dat PL/SQL program. */

DECLAREa NUMBER;b NUMBER;

BEGINSELECT e,f INTO a,b FROM T1 WHERE e>1;INSERT INTO T1 VALUES(b,a);END;.run;

Na sreću postoji samo jedan red T1 koji ima prvu komponentu veću od 1 tj (2,4). INSERTnaredba tako u T1 insertuje (4,2).

PL/SQL: kontrola toka

Cilj• Upoznati se sa kreiranjem petlji i grananja u PL/SQL programima.

PL/SQL: kontrola tokaPL/SQL omogućava kreiranje petlji i grananja na način koji je već poznat.

Sve IF naredbe izgledaju kao:

IF <condition>THEN <statement_list>ELSE <statement_list>END IF;

Page 17: baze it350

 | LearningObject | 17

Deo ELSE je opcion. Ako postoji potreba za višestrukim grananjem, treba koristiti:

IF <condition_1>THEN ...ELSIF <condition_2> THEN ...... ...ELSIF <condition_n> THEN ...ELSE ...END IF;

Ovde je dat jedan primer, koji je neznatno modifikovan u odnosu na predhodni, u kojim se vršiinsertovanje reda samo ako je druga komponenta 1. Ako nije, svakoj komponenti treba prvododati 10 a zatim izvršiti insertovanje.

DECLAREa NUMBER;b NUMBER;

BEGIN

SELECT e,f INTO a,b FROM T1 WHERE e>1;IF b=1 THENINSERT INTO T1 VALUES(b,a);ELSEINSERT INTO T1 VALUES(b+10,a+10);END IF;

END;.run;

Petlje se kreiraju na sledeći način:

LOOP

<loop_body> /* Lista naredbi. */

END LOOP;

Bar jedna od naredbi u <loop_body> treba da bude EXIT naredba u formi EXIT WHEN<condition>;

Izvršenje petlje se prekida ako je if <uslov> istinit. Na primer, ovde je prikazan način zainsertovanje parova od (1,1) do (100, 100) u T1.

DECLAREi NUMBER := 1;BEGIN

Page 18: baze it350

 | LearningObject | 18

LOOPINSERT INTO T1 VALUES(i,i);i := i+1;EXIT WHEN i>100;END LOOP;

END;.run;

Druge korisne naredbe za formiranje petlji su:

EXIT za bezuslovni izlazak iz petlje. Može se koristiti i unutar uslova ukoliko se to želi. WHILEpetlja se može formirati sa:

WHILE <condition> LOOP<loop_body>END LOOP;

FOR petlja se može formirati sa:

FOR <var> IN <start>..<finish> LOOP<loop_body>END LOOP;

Ovde, <var> može biti bilo koja promenljiva; ona može biti lokalna za for-loop i ne mora bitideklarisana. Takođe, <start> i <finish> su konstante.

PL/SQL: CURSOR

Cilj• Upoznati se sa načinom funkcionisanja kursora

PL/SQL: CURSORKursor je promenljiva koja se izvršava nad redovima neke relacije. Ta relacija može bitizapamćena u tabeli ili može biti odgovor na neko pitanje. Učitavanjem (fečovanjem) u kursorsvakog reda relacije, može se napisati program za čitanje i obradu vrednosti svakog takvogreda. Ako je relacija zapamćena, takođe možemo ažurirati ili izbrisati red koji se nalazi natekućoj poziciji kursora.

Primer ilustruje petlju kursora. U njemu se koristi relacija T1(e,f) čiji redovi predstavljajupar integer vrednosti. Program briše svaki red čija je prva komponenta manja od druge i u T1insertuje obrnuti red.

1) DECLARE/* Izlazne promenljive u kojima se čuva rezultat upita: */

Page 19: baze it350

 | LearningObject | 19

2) a T1.e%TYPE;3) b T1.f%TYPE;/* Deklaracija kursora: */4) CURSOR T1Cursor IS5) SELECT e, f6) FROM T17) WHERE e < f8) FOR UPDATE;9) BEGIN10) OPEN T1 Cursor;11) LOOP/* Pretraži svaki red rezultata gornjeg upita i smesti u PL/SQL promenljive: */12) FETCH T1Cursor INTO a, b;/* Ako više nema redova za smeštanje, izađi iz petlje: */13) EXIT WHEN T1Cursor%NOTFOUND;/* Briši tekući red: */14) DELETE FROM T1 WHERE CURRENT OF T1Cursor;/* Ubaci obrnut red: */15) INSERT INTO T1 VALUES(b, a);16) END LOOP;/* Oslobodi kursor koji je korišćen u petlji. */17) CLOSE T1Cursor;18) END;19) .20) run;

Ovde su data objašnjenja različitih linija programa:Linija (1) predstavlja sekciju za deklaraciju.

Linije (2) i (3) deklarišu promenljive a i b koje imaju isti tip koji imaju i atributi e i f relacijeT1. Mada mi znamo da su ti tipovi INTEGER, PL/SQL promenljive deklariše kao kopije kolonatabele T1 ( za razliku od prethodnog primera gde smo bili manje oprezni i promenljivedeklarisali kao tip NUMBER).

Linije od (4) do (8) definišu kursor T1Cursor. On radi nad relacijom koja je definisana upitomSELECT-FROM-WHERE. Ovaj upit selektuje one redove T1 čija je prva komponenta manja oddruge komponente. Linija (8) deklariše kursor FOR UPDATE kojim će se T1 modifikovatikasnije na liniji (14). Uopšteno, FOR UPDATE nije neophodan ukoliko se ne koristi kursor zamodifikaciju.

Linija (9) je početak izvršne sekcije programa.Linija (10) otvara kursor.

Page 20: baze it350

 | LearningObject | 20

Linije od (11) do (16) čine PL/SQL petlju. Napomenimo da je ovakva petlja ograničena sa LOOPi END LOOP. U okviru petlje, nalazimo:

• Na liniji (12), korišćenjem kursora vršimo učitavanje u lokalne promenljive. Uopšteno,naredba FETCH mora da obezbedi promenljive za svaku komponentu reda koja sepretražuje. Obzirom da upit od linije (5) do (7) proizvodi parove, mi smo obezbedili tačnodve promenljive za koje znamo da su odgovarajućeg tipa.

• Linija (13), predstavlja test uslova za izlazak iz petlje. Njeno značenje je jasno: %NOTFOUNDposle imena kursora označava da se učitavanje (fetch) završilo porešno u smislu naraženjanovih redova.

• Na liniji (14), naredba SQL DELETE briše tekući red korišćenjem specijalnog WHERE uslovaCURRENT OF T1Cursor.

• Linija (15), je SQL INSERT naredba koja insertuje obrnuti red u T1.

Linija (17) zatvara kursor.Linija (18) završava PL/SQL program.Linije (19) i (20) pozivaju program na izvršenje.

Stored procedure

Cilj• Upoznati se sa načinom pisanja stored procedura

Stored procedureStored procedura je program koji se pamti u bazi podataka i kompilira u trenutku korišćenja.U Oracle, stored procedure se mogu pisati u PL/SQL ili Javi a u SQL Serveru u T-SQL, VisualBasic, .NET, C++. Stored procedure su programi, oni mogu imati parametre, mogu pozivatidruge procedure i funkcije, mogu vraćati vrednosti i u njima se mogu pojavljivati izuzeci(exeption), Stored procedure se mogu i udaljeno pozivati.PL/SQL procedure se ponašaju veoma slično kao i procedure u drugim programskim jezicima.Ovde je dat jedan primer PL/SQL procedure addtuple1 koja za dati intedžer i, insertujeredove (i, 'xxx') u sledeći primer relacije:

CREATE TABLE T2 (a INTEGER,b CHAR(10));CREATE PROCEDURE addtuple1 (i IN NUMBER) ASBEGININSERT INTO T2 VALUES (i, 'xxx');END addtuple1;.run;

Procedura se označava ključnim rečima CREATE PROCEDURE iza kojih stoje ime procedure injeni parametri iza čega se opciono može nalaziti CREATE BY ili REPLACE.

Page 21: baze it350

 | LearningObject | 21

Može se koristiti bilo koji broj parametara, od koji svaki mora da bude praćen sa mode i type.Moguće vrednosti za mode su IN (samo čitanje), OUT (samo pisanje), and INOUT (čitanje ipisanje).Napomena: Nasuprot specifikaciji tipova u deklaraciji PL/SQL promenljivih, specifikacijatipova u deklaraciji parametara mora biti bez ograničenja. Na primer, CHAR(10) iVARCHAR(20) su pogrešne deklaracije; umesto toga, treba koristiti CHAR ili VARCHAR. Stvarnadužina parametra zavisi od odgovarajućeg argumenta koji se prenosi kada se procedurapozove.

Iza argumenata se nalazi ključna reč AS (IS je sinonim). Zatim dolazi telo, koje predstavljaPL/SQL blok. Posle reči END se ponavlja ime procedure, ali to je opciono. Međutim, sekcijaDECLARE ne treba da počne korišćenjem ključne reči DECLARE već iza AS imamo:

... AS<deklaracija_lokalnih_promenljivih>BEGIN<telo_procedure>END;.run;

Run na kraju izvršava naredbe koje kreiraju proceduru; run ne izvršava proceduru. Zaizvršenje procedure se koristi druga PL/SQL naredba, u kojoj se procedura poziva kao izvršnanaredba. Na primer:BEGIN addtuple1(99); END;.run;

Sledeća procedura takođe insertuje red u T2, ali ona obe komponente uzima kao argumente:CREATE PROCEDURE addtuple2(x T2.a%TYPE,y T2.b%TYPE)ASBEGININSERT INTO T2 (a, b) VALUES (x, y);END addtuple2;.run;

Sada, da bi dodali red (10, 'abc') u T2:BEGINaddtuple2(10, 'abc');END;.run;

Page 22: baze it350

 | LearningObject | 22

Sledeći primer ilustruje korišćenje parametra OUT:

CREATE TABLE T3 (a INTEGER,b INTEGER);CREATE PROCEDURE addtuple3(a NUMBER, b OUT NUMBER)ASBEGINb := 4;INSERT INTO T3 VALUES(a, b);END;.run;DECLAREv NUMBER;BEGINaddtuple3(10, v);END;.run;Napomenimo da dodeljivanje vrednosti parametrima koji su deklarisani kao OUT ili INOUTprouzrokuje zapisivanje odgovarajućih ulaznih argumenata. Zbog toga, ulazni argument zaparametar OUT ili INOUT treba da bude nešto sa "lvalue", kao što je promenljiva v u gornjemprimeru. Za OUT/INOUT parametar se ne može koristiti konstanta ili literalni argument.

Stored procedure:primer

Cilj• Upoznati se sa načinom pisanja stored procedura

Stored procedure:primerStored procedura za za unošenje kupca (Customer_Insert Stored procedura):

Predpostavimo da u bazi podataka galerije slika treba dodati novog korisnika i zapamtiti kojasu njegova interesovanja. Konkretno galerija želi da evidentira podatke o imenu telefonukupca i tada kupca poveže sa umetnicima određene nacionalnosti. Slika prikazuje storedproceduru koja izvršava ovaj zadatak. Procedura koja je nazvana Customer_Insert, pretražuječetiri parametra: newname, new areacode, newphone i artistnationality. Ključna reč INoznačava da su to ulazni parametri. OUT označava izlazne paramtere; IN OUT označava kojise koriste i kao ulazni i kao izlazni. Napomenimo da je za parametre dat tip podataka ali ne idužina. Oracle će sam odrediti dužinu na osnovu konteksta.

Page 23: baze it350

 | LearningObject | 23

Promenljive su definisane posle ključne reči AS. Cursor varijabla koja je nazvana artistcursorje definisana u okviru SELECT naredbe. Taj kursor se koristi za obradu svih redova za jednogumetnika (artist) date ulazne nacionalnosti (nationality).

Prva sekcija procedure vrši proveru kako bi se odredilo da li podaci o kupcu (customer) većpostoje. Ako postoje, ne radi se ništa, i štampa se izlazna poruka. Stored procedura napisanau PL/SQL-u je prikazana na sledećoj slici.

Slika: Stored procedura Customer_Insert

U ostatku procedure se insertuju novi podaci o kupcu a zatim pretražuju svi umetnici zadatenacionalnosti. Obratimo pažnju na korišćenje specijalne PL/SQL konstrukcijeFOR artist IN artistcursor

Ova konstrukcija izvršava nekoliko zadataka. Ona otvara kursor i vrši fech-ova prvog reda.Tada ona stupa u interakciju sa svim redovima u kursoru; kada više nema redova, kontrola seprenosi na sledeću naredbu posle FOR. Takođe napomenimo da se vrednosti ArtistID tekućegreda na koji ukazuje kursor može pristupiti korišćenjem sintakse artist.ArtistID, gde je artistime promenljive u naredbi FOR a ne ime kursora.

Kada je proceura napisana, ona mora prvo da se izkompilira i zapamti u bazi podataka.Procedura se

Page 24: baze it350

 | LearningObject | 24

Izvršava korišćenjem naredbe Execute.

Stored procedure:primer

Cilj• Upoznati se sa načinom pisanja stored procedura

Stored procedure:primerStored procedura za akviziciju umetničkih radova u bazi podataka galerije slika

Slika prikazuje stored proceduru za akviziciju umetničkih radova u bazi podataka galerijeslika.

Slika: Stored procedura za akviziciju umetničkih radova u bazi podataka galerije slika

Procedura prima pet ulaznih parametara a ne vraća ni jedan. U realnim situacijama, se običnovraća neki parametar koji ukazuje na uspešno ili neuspešno izvršenje operacije.

Page 25: baze it350

 | LearningObject | 25

Ovaj kod pretpostavlja da je vrednost ArtistID koja se prenosi u stored proceduru validan ID.Da bi se ova pretpostavka verifikovala, prvi blok naredbi prebrojava broj redova koji imajudatu vrednost ArtistID. Ako je broj 0, tada je vrednost ArtistID pogrešna i procedura javljagrešku.

U suprotnom, procedurom se proverava da li je rad ranije bio u galeriji. Ako jeste, tabelaWORK već sadrži red za tog umetnika (Artist), naslov (Title) i kopiju (Copy). Ako takav red nepostoji, procedura kreira novi red u WORK. Nakon toga, naredbom SELECT se dobija vrednostza WorkID. U slučaju da dobija nova vrednost surogat ključa WorkID, u suprotnom dobija seWorkID postojećeg reda.

Kada se dobije vrednost za WorkID, u tabeli TRANSACTION se kreira novi red.

Stored procedure u MySQL-u

Cilj• Stored procedure u MySQL-u

Stored procedure u MySQL-uSQL procedura se kreira CREATE PROCEDURE iskazom, a sa komandne linije se poziva saCALL naziv_procedure iskazom. Uvek se kreira u tekućoj bazi. Kada se definiše procedura,naziv procedure sledi iza službenih reči CREATE PROCEDURE, a potom slede parametriprocedure.

CREATE PROCEDURE procedure1 /* name */(IN parameter1 INTEGER) /* parameters */BEGIN /* start of block */DECLARE variable1 CHAR(10); /* variables */IF parameter1 = 6 THEN /* start of IF */SET variable1 = 'pticice'; /* assignment */ELSESET variable1 = 'mackice'; /* assignment */END IF; /* end of IF */INSERT INTO table1 VALUES (variable1); /* statement */END /* end of block */

U sledećem primeru kreiraćemo prostu bazu u našem slučaju pod imenom baza 1. U toj bazikreiraćemo tabelu sa jednom kolonom i dodeliti inicijalni podatak:

Page 26: baze it350

 | LearningObject | 26

Slika: Prikaz imena baze, tabele i dodavanje inicijalnog podatka

Kreiranje proste procedure je dato na sledećoj slici:

Page 27: baze it350

 | LearningObject | 27

Slika: Kreiranje proste procedure

Procedura se poziva na sledeći način:

Slika: Pozivanje procedurePozvana procedura ce se izvrsiti:

Page 28: baze it350

 | LearningObject | 28

Slika: Izvravanje pozvane procedure

Procedura se menja kao i svaki drugi objekat baze pomoću komande ALTER PROCEDURE.Procedura se briše pomoću opcije DROP PROCEDURE.

Page 29: baze it350

 | LearningObject | 29

Slika: Brisanje procedure

Kreiramo sledeći primer:

Page 30: baze it350

 | LearningObject | 30

Slika: Prikaz primera stored procedure

Rezultat pozivanja procedure:

Page 31: baze it350

 | LearningObject | 31

Slika: Rezultat pozivanja procedure

Informacija o jeziku (SQL) je tu zbog kompatibilnosti sa drugim sistemima, na primer DB2sistemom. Odredba (NOT) DETERMINISTIC znači da procedura za jedne te iste ulaznepodatke uvek vraća isti skup vrednosti. SQL SECURITY DEFINER daje instrukciju serveru da utrenutku pozivanja procedure proveri privilegije koje ima kreator procedure (INVOKER ispitujeprivilegije koje ima korisnik koji poziva proceduru). Umesto gornje definicije moglo je samo dastoji:

CREATE PROCEDURE p2 ()SELECT CURRENT_DATE, RAND() FROM tabela1;

Rezultat bi bio isti.

Uzmimo na primer sada da zelimo da ispisemo proceduru koja vraća: "Ovo je mojaprocedura".

Page 32: baze it350

 | LearningObject | 32

Slika: Prikaz kreiranja procedure

Page 33: baze it350

 | LearningObject | 33

Slika: Prikaz pozivanja procedure

Stored procedure - Blok naredbe - u MySQL-u

Cilj• Stored procedure - Blok naredbe - u MySQL-u

Page 34: baze it350

 | LearningObject | 34

Stored procedure - Blok naredbe - u MySQL-u

Page 35: baze it350

 | LearningObject | 35

Slika: kreiranje procedure

Pozivanje procedure:

Page 36: baze it350

 | LearningObject | 36

Slika: Pozivanje procedure

Može se primetiti da su korišćene globalne promenljive, tj. promenljive sesije koje seoznačavaju sa @a, @b, ... Ove promenljive se dalje mogu koristiti gde se želi unutar sesije ivrednost će im biti jednaka poslednjoj vrednosti koju su primile. Osim toga, procedura možeda sadrži lokalne promenljive. Deklaracija lokalne promenljive se vrši pomoću iskaza DECLAREnaziv_promenljive TIP_PODATAKA. Ove promenljive se koriste samo unutar procedure.

Page 37: baze it350

 | LearningObject | 37

Slika: Prikaz kreiranja procedure

Stored procedure u MySQL-u -IF THEN ELSE

Cilj• Stored procedure u MySQL-u

Stored procedure u MySQL-u -IF THEN ELSEU uskladištenoj proceduri mouće je koristiti IF ... ELSE naredbu slično kao sto se koristi u bilokom programskom jeziku. Moguće je ugnjezditi više IF ... ELSE naredbi:

Page 38: baze it350

 | LearningObject | 38

Slika: Prikaz koda

Nakon izvrsavanja naredbe potrebno je dodeliti neki argument:

Page 39: baze it350

 | LearningObject | 39

Slika 2: Prikaz pozivanja procedure i dodeljivanje argumenata

Nakon toga izvrsimo select da bi videli rezultat:

Page 40: baze it350

 | LearningObject | 40

Slika: Rezultat

Lekcija-13-Predavanja

ZaključakU ovom predavanju je bilo reči o standardima za pristup podacima u relacionim bazamapodataka ili nekim drugim strukturama podataka kao što su ODBC i JDBC.U predavanju je takođe dato nekoliko primera stored procedura i trigera koji izvršavajuaplikativnu logiku nad relacionim bazama podataka a u pisani su proceduralnim jezicima.Svaki specifičan RDBMS ima svoj proceduralni jezik ali se svi oni baziraju na korišćenju sličnihprincipa: kursora, naredni za granjanje i naredbi za obradupodataka kroz petlje. Ovde jeprikzan primer korišćenja ORACLE-ovog PL/SQL.

Page 41: baze it350

Lekcija 14 - XML i bazepodataka; Xquery; Xpath

Page 42: baze it350

 | Contents | 2

Contents

LearningObject................................................................ 3Lekcija-14-Predavanja.......................................................................................................3Osnovno o XML-u............................................................................................................. 3XML sintaksa.................................................................................................................... 4XML i baze podatka......................................................................................................... 8XML-enabled baze podataka............................................................................................ 9XML-enabled baze podataka: Mapiranje bazirano na tabelama.....................................10XML-enabled baze podataka: objektno relaciono mapiranje..........................................12XML-enabled baze podataka: upitni jezici......................................................................15XML-enabled baze podataka: XQuery............................................................................ 19Potrebe za native XML bazama podataka......................................................................20Tehnička realizacija native XML baza podataka............................................................. 22XQuery............................................................................................................................23XQuery:primer korišćenja XPath izraza.......................................................................... 25XQuery:primer korišćenja XPath izraza.......................................................................... 28XQuery:primer korišćenja FLWOR izraza........................................................................ 32XQuery:primer korišćenja FLWOR izraza pri čemu se rezultati prezentuju u vidu HTML

liste............................................................................................................................ 36XQuery: naredba IF THEN ELSE..................................................................................... 40XQuery: Dodavanje elemenata i atributa rezultatu........................................................44XQuery: Selektovanje elemenata i propuštanje kroz filter............................................. 48XQuery i XML primeri.....................................................................................................53Lekcija-14-Predavanja.....................................................................................................55

Page 43: baze it350

 | LearningObject | 3

LearningObject

Lekcija-14-Predavanja

UvodProučavanje baza podataka sa aspekta XML standarda je danas veoma aktuelna temajer se na takvom konceptu zasniva veliki broj e-business aplikacija. U XML okruženje, ubazu podataka se mogu smeštati podaci koji su struktuirani kao XML dokumenti ili iz njeekstrahovati podaci u XML formatu. Samo čuvanje XML dokumenata u bazi podataka se možerealizovati kroz XML-enabled baze podataka i Native XML baze podataka čija je strukturaopisana u predavanju.

Za pretraživanje podataka u XML bazama podataka se mogu koristiti upitni jezici kaošto su XQuery. XQuery je dizajniran za upite nad XML dokumentima a ne relacionimbazama podataka. On svaki XML dokument definiše kao stablo čiji su čvorovi elementi uodgovarajućem XML-u. XQuery je funkcionalan jezik gde je svaki upit predstavljen izrazom. Upredavanju je opisana sintaksa za korišćenje ovog jezika.

Osnovno o XML-u

Cilj• Osnovno o XML-u

Osnovno o XML-uXML je standardni skup pravila za definisanje formata podataka u elektronskoj formi. Propisanje od strane W3C. Sledeći pravila XML standarda, korisnici definišu sopstvene (XML) formatepodataka koje mogu koristiti za njihovo skladištenje, obradu i razmenu.

XML je skraćenica za Extensible Markup Language, odnosno proširivi (metajezik) zaoznačavanje (engl. markup) tekstualnih dokumenata. Ideja je bila da se stvori jezik kojiće i ljudi i računarski programi moći jednostavno da čitaju. XML definiše opštu sintaksu zaoznačavanje podataka pomoću odgovarajućih etiketa (engl. tags) koje imaju poznato ili lakorazumljivo značenje. Format koji obezbeđuje XML za računarske elemente može se prilagoditinajrazličitijim oblastima, kao što su elektronska razmena podataka, čuvanje podataka,odvajanje podataka od prezentacije, vektorska grafika, sistemi glasovne pošte, izrada novihspecijalizovanih jezika za označavanje.

XML je na prvom mestu tehnologija. Nakon toga dolazi definicija da je XML jezik mada je XMLmanje jezik a više konvencija za kodiranje. XML je i skup srodnih tehnologija i sam za sebene predstavlja nešto posebno već tek sa srodnim tehnologijama daje pune rezultate. Srodnetehnologije su:• DTD• CSS• XLS• DOM• ADO

Page 44: baze it350

 | LearningObject | 4

• XLink• XFragments• XPointerU nekim od pomenutih tehnologija XML se ponaša kao klijent dok je za neke server a možebiti i jedno i drugo istovremeno. Jedan od najvećih problema kada je u pitanju transferinformacija je njihov sadržaj u logičkom smislu te reči. XML služi kao kontejner za transferjer u sebi pored informacije ima i njenu poziciju u odnosu na ostale informacije – XML poredinformacije opisuje i strukturu. Detaljna specifikacija XML-a je data na W3C sajtu.XML omogućava stvaranje dugotrajnih formata podataka koji su nezavisni od platforme.Često se dokumenti pisani na jednoj platformi ne mogu čitati na drugim platformama, nitiu različitim programima na istoj platformi, čak ni u ranijoj verziji jednog programa na istojplatformi. U XML dokumentima tekstualni su ne samo podaci već i etikete koje su smeštene usamoj XML datoteci. To znači da ih može čitati svaka alatka koja je u stanju da čita tekstualnedatoteke. Tako se podaci mogu prenositi sa jednog sistema na drugi. Tako XML daje prenosivepodatke.XML-ova osnovna svrha je da olakša deljenje podataka kroz različite informacione sisteme,posebno kroz one sisteme koji su povezani sa Internetom.

XML je jednostavno čitljiv i čoveku i računaru. Pošto je XML dokument obično tekstualnadatoteka, čitljiva je na svakoj platformi koja može čitati tekstualne podatke. Tako postajeneosetljiv na tehnološke promene – bez obzira na napredak tehnologije, tekstualne podatkeće još dugo svaki računar moći da pročita. Etikete XML podržava Unikod i omogućava prikazteksta na svim poznatim jezicima. Takođe, ovaj format je samodokumentujući: etikete opisujusadržaj koji se nalazi unutar njih. Ispravnost nastalog XML dokumenta vrlo je jednostavnokontrolisati, jer XML ima stroga sintaksna pravila. Računarski programi za obradu dokumenatamogu jednostavno da obrađuju XML sadržaj.

XML je međunarodno prihvaćen standard. Prihvatili su ga mnogi proizvođači programai koriste ga u svojim proizvodima. Kompatibilan je sa SGML-om, koji se koristi od 1986.godine, a SGML može obrađivati veliki broj računarskih programa. XML može da predstavljanajuopšteniju strukturu kompjuterske nauke: snimke, liste i stabla, a njegova hijerarhijskastruktura je prikladna za većinu (ali ne i za sve) tipove dokumenata. Može se reći da je za XMLnajvažnije to što predstavlja jezik za metaoznačavanje, što podrazumeva da on nema fiksanskup oznaka i elemenata. U imenu XML-a slovo X potiče od reči Extensible (proširiv). To značida se jezik može prilagođavati i proširivati kako bi zadovoljio različite potrebe korisnika.

Jedan od osnovnih nedostataka XML-a je redundantna i opširna sintaksa. Ona može zbunjivatičoveka, a računarski program koji obrađuje dokument može delimično usporiti. Ovi računarskiprogrami su veoma složeni jer moraju da obrađuju velike količine ugneždenih podataka naviše nivoa. Treba imati u vidu da je XML samo jezik za označavanje, a ne programski jezik.XML dokument samo postoji, ne radeći ništa.Kao ni HTML, ni XML ne šalje podatke preko mreže. Poslani podaci mogu biti kodirani u XML-u,ali izvan XML dokumenta mora postojati neki protokol (HTTP, FTP, NFS i slično) koji će poslatidokument. To znači da XML nije protokol za mrežni prenos.Iako XML veoma dobro služi kao prenosni format, koji je nezavisan od platforme, on nije bazapodataka. Sama baza podataka, iako može sadržati XML podatke, nije XML dokument. Da bikorisnik preuzeo XML dokument iz baze podataka, mora upotrebiti neki posrednički program(eng. middleware product), kao što je Enhydra.

XML sintaksa

Page 45: baze it350

 | LearningObject | 5

Cilj• XML

XML SintaksaSvaki XML dokument počinje deklaracijom koja definiše XML verziju:

<?xml version="1.1"?>

Primer XML dokumenta:

<poruka>

<odKoga> Milosa </odKoga>

<kome>Milici</kome>

<naslovPoruke>Molba</naslovPoruke>

<tekstPoruke>Milice jel mozes molim te da mi pozajmis citanku? </tekstPoruke>

</poruka>

Dokument se snima kao npr. prviPrimer.xml koristeći opcije Notepad editora ili Notepad++napoznati način. Nakon toga kada se otvori snimljeni dokument izgleda kao na primeru na slici:

Za strukturu dokumenta mnogo su važniji elementi. Element čine odgovarajući tagovii sadržina. Element može imati početni i završni tag ili samo jedan prazan tag.Sadržina se često naziva i character data što znači da se sastoji od znakova. Možese reći da su tagovi specifični znakovni nizovi koji se koriste za predstavljanje elemenata uXML dokumentima.

Page 46: baze it350

 | LearningObject | 6

XML dokument čini nekoliko osnovnih komponenti koje opisuju izgled različitihdelova. To su:· tagovi elemenata,· reference entiteta,· komentari,· instrukcije za obradu, i· deklaracije tipa dokumenta.Ove komponente čine osnovnu strukturu XML jezika i određuju izgled dokumenata.

Ukoliko želimo da kreiramo dokument za kreiranje podataka za izlozbu psa koji ce sadrzatipse vlasnika Milovana Nikolica i Petra Djordjevica. Jedan pas je pit bull a drugi je dalmatinac.Atribut ce opisivati vrstu psa. Svaki pas ima svoji cip kod. To ce izgledati ovako:

<izlozbaPsa>

<pas vrsta="pit bull"><imeVlasnika>Petar</imeVlasnika><prezimeVlasnika>Petrovic</prezimeVlasnika><cip> 4564654654</cip></pas>

<pas vrsta="dalmatinac"><ime>Marko</ime><prezime>Marković</prezime><cip> 1321321 </cip></pas>

</izlozbaPsa>

Prilikom pisanja XML dokumenta potrebno je, između ostalog, imati na umu sledećapravila:svi XML elementi moraju obavezno imati završni tag,XML pravi razliku između malih i velikih slova,XML elementi moraju biti pravilno ugnježdeni između početnog i završnogtaga,XML dokument mora imati koren - root element,vrednosti atributa se moraju uvek navoditi između znaka navoda...U našem primeru pravilo 1. je poštovano jer svaki element ima i svoj završni tag. Dokumentima root element <izlozba>, čime je zadovoljeno pravilo 4. Za root element ostali elementipredstavljaju elemente nižeg ranga i po pravilu su „uvučeni” uz pomoć npr. tastera Tab. Ovielementi mogu imati svoje pod-elemente. U tom slučaju elementi višeg nivoa nazivaju seroditeljima, a nižeg deca: <root><roditelj>

Page 47: baze it350

 | LearningObject | 7

<dete>......</dete></roditelj></root>

XML dokument koji je gore prikazan moze se formirati i na sledeci nacin:

<izlozbaPsa>

<pas><vrsta> pit bull </vrsta><imeVlasnika>Petar</imeVlasnika><prezimeVlasnika>Petrovic</prezimeVlasnika><cip> 4564654654</cip></pas>

<pas><vrsta> dalmatinac </vrsta><ime>Marko</ime><prezime>Marković</prezime><cip> 1321321 </cip></pas>

</izlozbaPsa>

Kao sto se da primetiti XML moze se reci da na svoj nacin skladisti podatke i pravi kreiranegu bazu podataka. Evo na primer ukoliko zelimo da skladistimo podatke za neku videoteku.Tabela sa podacima nam izgleda:

XML kod bi mogao izgledati ovako:

Page 48: baze it350

 | LearningObject | 8

XML i baze podatka

Cilj• Pokazati da se između XML-a i baza podataka može uspostaviti interkacija

XML i baze podatakaU interakciji između XML-a i baza podataka, XML se nože koristiti na dva načina:

• u bazi podataka se može pamtiti sam XML dokument (native baze podataka)• XML se smešta u relacionu bazu podataka kao skup tabela eksplicitno dizajniranih za

pamćenje XML dokumenata (XML enabled baze podataka)

Za pamćenje XML dokumenta u bazi podataka tj. postojanje native baze podataka postojiviše argumenata: hijerarhijski model koji koristi XML je idealan za opisivanje velikog brojapodataka; XML koristi Unicode koji XML čini prenosivim sa sistema na sistem; tekstualniformat XML-a čini XML dokumente lakim za čitanje. Pored toga, XML familija uključuje jezikešema (XML šema i DTD), upitne jezike (Xquery, Xpath), API-je (SAX, DOM, JDOM) i mnogedruge tehnologije koje se koriste i u bazama podataka.

Ipak, postoji i mnogo argumenata protiv korišćenja native XML baze podataka. Potreba zaparsiranjem XML dokumenata rezultuje veoma sporim pristupom podacima. Čak i ako bi se tajproblem rešio, familiji XML-a nedostaju mnoge tehnologije koje se danas koriste u modernimbazama podataka kao što su indeksi, transakcije, višekorisnički pristup, zaštita, logovanje,referencijalni integritet, trigeri itd. Korišćenje XML dokumenata kao baze bi zahtevalo pisanjemnogo programskog koda, koji već postoji u modernim bazama podataka.

Page 49: baze it350

 | LearningObject | 9

Kao rezultat ovakvih argumenata za i protiv, može se reći da se XML dokumenti kao bazapodataka mogu koristiti samo u slučaju malih, jednokorisničkih baza, dok svi ostali slučajevizahtevaju da se dokumenti smeste u relacionu bazu podataka. U tom slučaju, XML dokumentse može smestiti kao skup tabela eksplicitno dizajniranih za pamćenje XML dokumenata. Uovom slučaju, XML „se vidi” unutar baze podataka tj. baza podataka sadrži informacije kaošto su tip elementa ili imena atributa. Osim toga, za pamćenje svih XML dokumenata se možekoristiti ista šema. Baze podataka koje XML koriste na ovaj način su poznate kao XML enabledbaze podataka.

U slučaju XML enabled baze podataka, XML se koristi za razmenu podataka između bazepodataka i neke aplikacije ili druge baze, pa treba posmatrati dva procesa:• izdvajanje podataka iz baze i konstruisanje XML dokumenta – što je poznato kao

publikovanje ili kompozicija.• izdvajanje podataka iz XML dokumenata i pamćenje tih podataka u bazi podataka – što je

poznato kao isecanje ili dekompozicija.

Bez obzira da li se XML dokumenti seku ili publikuju, treba naglasiti dve važne stvari:• U samoj bazi podataka XML se “ne vidi” – tj. XML dokument je potpuno izvan baze

podatake. On se konstruiše na osnovu podataka koji se nalaze u bazi podataka ili se koristikao izvor podataka koji se pamte u bazi.

• Drugo, šema baze podataka se slaže sa XML šemom, što znači da je za svaku šemu bazepodataka potrebna različita XML šema. Baza podataka koja na taj način koristi XML jepoznata kao XML-enabled baza podataka.

Baze podataka koje XML koriste na ovakav način se zovu XML-enabled baze podataka.

Tehnički ispravniji pogled na razliku između XML-enabled baza podataka i navite bazapodataka iziskuje da se svetu baza podataka doda novi model podataka. Tako poredpostojećeg hijerarhijskog, relacionog, objektno-orijetisanog i drugih modela podataka, XMLdodaje svoj sopstevi model. XML model podataka je uređeno stablo sa imenovanim čvorovimana granama stabla i podacima koji su zapamćeni u neimenovanim čvorovima listova stabla.Tako gledajući, XML-enabled baza podataka je baza koja koristi non-XML model podataka iinstance tog modela (kao što su tabele u kojima se pamte informacije o narudžbenici) mapirana instance. Native XML baza podataka direkno koristi XML model podataka.

XML-enabled baze podataka

Uvodne napomeneU interakciji između XML-a i baza podataka, XML se nože koristiti na dva načina:

• u bazi podataka se može pamtiti sam XML dokument (native baze podataka)• XML se smešta u relacionu bazu podataka kao skup tabela eksplicitno dizajniranih za

pamćenje XML dokumenata (XML enabled baze podataka)

Ovde će biti reči o XML enabled bazama podataka

Cilj• Objasniti karakteristike XML-enabled baze podataka

Page 50: baze it350

 | LearningObject | 10

XML-enabled baze podatakaXML-enable baza podataka je baza koji ima model podataka drugačiji od XML-a. Najčešće to jerelacioni model, čija se svaka instanca mapira u jednu ili više instanci XML modela. Na primerrelaciona šema za podatake iz narudžbenice se može mapirati na različite XML šeme, kao štoje šema za sam dokument narudžbenice ili izveštaj koji pokazuje prodaju po regionima.

XML-enabled baze podataka generalno uključuju softver za prenos podataka između njihsamih i XML dokumenata. Taj softver može biti integrisan u sam sistem za upravljanje bazompodataka ili može biti izvan njega. Na primer, DB2 XML Extender, XML Wrapper i SQL/XMLmogu prenositi podatke između XML dokumenata i DB2 baze podataka. XML Extender i XMLWrapper se nalaze van sistema za upravljanje bazom podataka dok je podrška za SQL/XMLintegrisana u sam sistem za upravljanje DB2. Generalno govoreći, ovaj softver ne možeda podrži sve moguće XML dokumente, već samo onu podklasu XML dokumenata čiji semodeli podataka nalaze u bazi. Na primer, softver za transfer podataka koji radi sa relacionimbazama podataka retko podržava XML dokumente sa mešovitim sadržajem, pošto se mešovitisadržaji ne mogu lako modelirati korišćenjem relacionog modela.

Osnovna prednost korišćenja XML-enabled baza podataka je što one postojeće podatake iaplikacije drže odvojeno. To znači da je dodavanje nove XML funkcionalnosti bazi podatakajednostavno stvar dodavanja i konfigurisanja softvera koji prenosi podatke između XMLdokumenata i baze podataka, pri čemu nema potrebe menjati niti postojeće podatke nitiaplikacije.

Kada se koristi XML-enabled baza podataka, neophodno je šemu baze podataka mapiratiu XML šemu (ili obrnuto). Takvo mapiranje je tipa više-prema-više. Na primer, šema bazepodataka za informacije o porudžbenici se može mapirati u XMl šemu za dokumenteporudžbenice ili u XML šemu za izveštaje koji prikazuju ukupnu prodaju po regionima.

Mapiranje šema baza podataka u XML šeme, slično pisanju upita, je generalno operacija kojase dešava u vreme dizajna. Mada je iz date šeme baze podataka moguće generisati XMLšemu, ili obrnuto, to je često samo početna tačka u kojoj se moraju učiniti neke predpostavkeo šemama, od kojih ne moraju sve da budu tačne.

Postoje tri vrste mapiranja:

• bazirano na tabelama (table-based)• objektno-relaciono mapiranje (object-relational)• upitni jezici

Table-based i object-relational mapiranja su važna jer omogućavaju dvosmerno mapiranje, štoznači da se isto mapiranje može koristiti za prenos podataka i u i iz baze podataka. Mada XMLupitni jezici definišu mapiranje samo u jednom smeru (trenutno, iz baze podataka u XML), onisu takođe važni, jer su mnogo fleksibilniji od predhodne dve vrste mapiranja.

XML-enabled baze podataka: Mapiranje bazirano na tabelama

Uvodne napomeneKada se koristi XML-enabled baza podataka, neophodno je šemu baze podataka mapirati uXML šemu (ili obrnuto).

Postoje tri vrste mapiranja:• bazirano na tabelama (table-based)

Page 51: baze it350

 | LearningObject | 11

• objektno-relaciono mapiranje (object-relational)• upitni jezici

Ovde će biti reči o mapiranju baziranom na tabelama.

Cilj• Objasniti mapiranje bazirano na tabelama kod XML-enabled baze podataka

XML-enabled baze podataka: Mapiranje bazirano na tabelamaKod mapiranja koje se bazira na tabelama se podrazumeva da XML dokument mora imati istustrukturu kao i relaciona baza podataka, što znači podatke iz dokumenta treba grupisati u“redove” a redove grupisati u “tabele”. Drugim rečima, table-based mapiranje zahteva daXML dokument ima strukturu koja odgovara jednoj tabeli ili skupu tabela. Na primer, XMLdokument koji odgovara tabeli narudžbenica (SalesOrders).

dok XML dokument koji odgovara tabeli narudžbenice (SalesOrders) i odgovarjućim redovimatabele koja sadrži stavke naredžbenice (Item) izgleda:

Page 52: baze it350

 | LearningObject | 12

Postoje tri važne stvari koje treba napomenuti u vezi ovog drugog XML dokumenta:

Prvo, podaci iz svake tabele su izlistani posebno, tj. podaci o stavkama nisu povezani saodgovarajućom narudžbenicom što se može očekivati u XML dokumentu. To je osnovnoograničenje table-based mapiranja.

Drugo, broj porudžbenice koji se koristi kao veza između dve tabele je izlistan dva puta.Jedanput u podacima za tabelu narudžbenice a jedanputa u podacima za tabelu stavki, jer sebroj porudžbenice pojavljuje u obe tabele u bazi podataka.

Treće, dokument ima jedan element koji služi kao omotač nad svim drugim elementima.Taj element ne odgovara ni jednoj strukturi i bazi podataka, ali je potreban jer XML zahtevajedinstveni root element.

XML-enabled baze podataka: objektno relaciono mapiranje

Uvodne napomeneKada se koristi XML-enabled baza podataka, neophodno je šemu baze podataka mapirati uXML šemu (ili obrnuto).

Page 53: baze it350

 | LearningObject | 13

Postoje tri vrste mapiranja:• bazirano na tabelama (table-based)• objektno-relaciono mapiranje (object-relational)• upitni jezici

Ovde će biti reči o objektno relacionom mapiranju.

Cilj• Objasnitiobjektno relaciono mapiranje kod XML-enabled baze podataka

XML-enabled baze podataka:objektno relaciono mapiranjeObjektno-relaciono mapiranje se može posmatrati na dva načina:

1. Iz perspektive baze podataka, individulani redovi tabela se mapiraju primenom principamapiranja baziranog na tabelama, s tim što relacije primarni ključ/ strani ključ koje postojeu bazi podataka određuju kako će ti redovi biti umetnuti u XML dokument. Tako stablotabela u bazi podataka postaje stablo elemenata u XML dokumentu, što je prikazano na slici“Mapiranje stabla tabela u XML dokument”.

Slika: Mapiranje stabla tabela u XML dokument

2. Iz XML perspektive, XML dokument se posmatara kao serijsko stablo povezanih objekatakojim se na jedan očigledan način ukazuje na relacije koje postoje između njih. Ti objekti seu bazu podataka mapiraju tehnikom objektno-relacionog mapiranja, što podrazumeva da seobjekti mapiraju u tabele, svojstva objekata u kolone a međusobne veze između objekatau relacije primarni ključ / strani ključ. ( slika “Mapiranje XML dokumenta u objekte a onda utabele”.)

Page 54: baze it350

 | LearningObject | 14

Slika: Mapiranje XML dokumenta u objekte a onda u tabele

Tako se XML dokument sa slike “XML dokument koji sadrži porudžbenicu”, korišćenjemobjektno-relacionog mapiranja može videti kao serijsko stablo objekata prikazano na slici“Objektno-relaciono mapiranje XML dokumenta koji sadrži porudžbenicu”., a zatim se onomože mapirati u tabelu SalesOrder i tabelu Items.

Slika: XML dokument koji sadrži porudžbenicu i stavku porudženice

Page 55: baze it350

 | LearningObject | 15

Slika: Objektno-relaciono mapiranje XML dokumenta koji sadrži porudžbenicu i stavkuporudžbenice

XML-enabled baze podataka: upitni jezici

Uvodne napomeneKada se koristi XML-enabled baza podataka, neophodno je šemu baze podataka mapirati uXML šemu (ili obrnuto).

Postoje tri vrste mapiranja:• bazirano na tabelama (table-based)• objektno-relaciono mapiranje (object-relational)• upitni jezici

Ovde će biti reči o upitnim jezicima

Cilj• Objasniti korišćenje upitnih jezika kod XML-enabled baze podataka

Page 56: baze it350

 | LearningObject | 16

XML-enabled baze podataka: upitni jeziciDok table-based i object-relational mapiranje zahteva da XML šema bude veoma slična šemibaze podataka, upitni jezici obezbeđuju mnogo fleksibilnije konstruisanje XML dokumenata.Najvažniji upitni jezik za XML-enabled relacione baze podataka je SQL/XML.Kod SQL Servera je na primer SQL/XML realizovan tako što je sintaksi osnovnih SQLnaredbi SELECT dodat izraz FOR XML. 2002. godine je SQL Server grupa SQL Server proširilabibliotekom klasa SQLXML koja se može download-ovati sa msdn.microsft.com. Sve njenekarakteristike i funkcije su umerdžovane u SQL Server 2005.

SQL naredbom:SELECT *FROM ARTISTFOR XML ROW;se vrednost svake kolone u rezultujući XML dokument predstavlja kao atribut elementaARTIST:

SQL naredbom:SELECT *FROM ARTISTFOR XML AUTO, ELEMENTS;se vrednost svake kolone predstavlja kao element:

Page 57: baze it350

 | LearningObject | 17

Naredba SELECT….FOR XML se može primeniti i na JOIN više tabela:

Kao izlaz se dobija sledeći XML dokument:

Page 58: baze it350

 | LearningObject | 18

Hijerarhisko mesto elemenata u XML dokumentu je određeno redosedom tabela u FROMklauzuli. Ovde je element na najvišem nivou CUSTOMER a element na nižem nivou je ARTIST.Tabela CUSTOMER_ARTIST_INT se ne pojavljuje u generisanom dokumentu jer se ni jednakolona iz ove tabele ne pojavljuje u SELECT rečenici.

Korišćenjem izraza FOR XML AUTO umesto izraza FOR XML AUTO, ELEMENTS se umesto XMLdokumenta dobija sledeća XML šema:

Page 59: baze it350

 | LearningObject | 19

Na slici „Grafički prikaz XML šeme dobijene korišćenjem FOR XML AUTO, ELEMENTS“ je istašema grafički predstavljena.

Slika: Grafički prikaz XML šeme dobijene korišćenjem FOR XML AUTO, ELEMENTS

SQL naredbe se mogu koristiti za kreiranje XML dokumenata samo dok je tim dokumentimaobuhvaćena samo jedna putanja. Za generisanje dokumenta u kojem postoje dve ili višeputanje se moraju koristiti dve ili više SQL naredbe.

XML-enabled baze podataka: XQuery

Uvodne napomeneKada se koristi XML-enabled baza podataka, neophodno je šemu baze podataka mapirati uXML šemu (ili obrnuto).

Page 60: baze it350

 | LearningObject | 20

Postoje tri vrste mapiranja:• bazirano na tabelama (table-based)• objektno-relaciono mapiranje (object-relational)• upitni jezici

Ovde će biti reči o XQuery-u kao upitnom jeziku.

Cilj• Objasniti korišćenje upitnih jezika kod XML-enabled baze podataka

XML-enabled baze podataka: XQueryXQuery je XML upitni jezik koji je definisan od strane W3C ikoji još uvek nije završen. Međutim,već postoji više od dvadeset implementacija Xquery-a.

On je dizajniran za upite nad XML dokumentima a ne relacionim bazama podataka. Da bi bioimplementiran nad relacionom bazom, neophodno je prvo mapirati relacionu bazu na jedan iliviše virtualnih dokumenata. Najlakši način da se to uradi je mapirati svaku tabelu u posebandokument korišćenjem table-based mapiranja. Tako se XQuery naredba za upit nad virtualnimdokumentom može mapirati u SELECT naredbu za upit nad tabelom (slika “Mapiranje XQuerynaredba za upit nad virtualnim dokumentom u SELECT naredbu za upit nad tabelom”)

Slika: Mapiranje XQuery naredba za upit nad virtualnim dokumentom u SELECT naredbu zaupit nad tabelom

Primer jedne XQuery naredbe glasi:

Potrebe za native XML bazama podataka

Page 61: baze it350

 | LearningObject | 21

Uvodne napomeneU interakciji između XML-a i baza podataka, XML se nože koristiti na dva načina:

• u bazi podataka se može pamtiti sam XML dokument (native baze podataka)• XML se smešta u relacionu bazu podataka kao skup tabela eksplicitno dizajniranih za

pamćenje XML dokumenata (XML enabled baze podataka)

Ovde će biti reči o native XML bazama podataka

Cilj• Objasniti potrebu za native XML bazama podataka

Potrebe za native XML bazama podatakaNative XML baza podataka je ona koja direktno korsti XML model podataka tj. skup strukturau kojima se mogu pamtiti bilo kakvi XML dokumenti. Ova činjenica native XML baze podatakačini dobrim izborom u situacijama kada:• šema dokumenta koji se pamti nije poznata u trenutku dizajniranja• podaci koji se modeliraju ne mogu biti dobro uklapnjeni u druge modele, kao što je npr.

relacioni

U prvom od ova dva slučaja se ne može primeniti XML-enabled baza podataka jer ona morada bude konfigurisana za svaku XML šemu čiji se podaci pamte. Mada se to može uraditiu trenutku izvršenja, takva procedura je generalno podložna greškama i mapiranje nijeoptimalno. U drugom slučaju, XML-enabled baze podataka mogu da se primene samo zaneke klase podataka. Na primer, XHTML šema se može mapirati u relacionu šemu, međutimčesta upotreba elemenata mešovitog sadržaja u XHTML zahteva po jednu tabelu za svaki tipelementa, što rezultuje lošim performansama prilikom pretraživanja podataka.

Najbolji način da se razume potreba za native XML bazama podataka je analizirati primere izrealnog okruženja. Na primer:

• Upravljanje dokumentima kao što je korisnička dokumentacija, marketinške brošure,Web stranice itd. Native XML baze podataka posebno odgovaraju ovim slučajevima jer seXML modeli podataka dobro uklapaju u ovu vrstu dokumenata.

• Polu-struktuirani podaci koji se takođe dobro uklapaju u XML model podataka iz dvarazloga. Prvo, XML model podataka može smestiti razgranatu šemu bez gubljenja prostora.Drugo, XML model podataka je proširiv pa se ne zahteva fiksna šema.

• Transakcije čije izvršenje traje dugo. Mnoge transakcije elektronske trgovine danaskoriste XML dokumente kao način za razmenu informacija između različitih delovaaplikacije. Pošto ove transakcije često mogu da traju nekoliko nedelja (na primer, svakideo mora da bude potvrđen od strane nekog ovlašćenog lica), native XML baze podatakasu dobar način za pamćenje jednog stanja transakcije dok je ona u fazi izvršenja, čak ikada se krajnje stanje te transakcije pamti u relacionoj bazi podataka. Native XML bazapodataka dozvoljava da se nad tekućim stanjem transakcije postavi upit korišćenjem XMLupitnih jezika a omogućava i korišćenje drugih XML alata kao što je XSLT transformacija.

• Arhiviranje dokumenata. Mnoge kompanije kao što su one u farmaceutskoj i finansijskojindustriji moraju da arhiviraju dokumente jer ih na to obavezuju pravni propisi. Ako suto XML dokumenti, tada je native XML baza podataka prirodni izbor za arhiviranje jernjena podrška za XML upitni jezik dozvoljava da se dokumenti koriste kao izvor istorijskihpodataka koji se često koriste pri analizi trendova.

Page 62: baze it350

 | LearningObject | 22

Tehnička realizacija native XML baza podataka

Uvodne napomeneU interakciji između XML-a i baza podataka, XML se nože koristiti na dva načina:

• u bazi podataka se može pamtiti sam XML dokument (native baze podataka)• XML se smešta u relacionu bazu podataka kao skup tabela eksplicitno dizajniranih za

pamćenje XML dokumenata (XML enabled baze podataka)

Ovde će biti reči o native XML bazama podataka

Cilj• Objasniti način na koji se native XML baze podataka mogu tehnički realizovati

Tehnička realizacija native XML baza podatakaTehnička definicija native XML baza podataka bi glasila: To je baza podataka koja:

• Definiše XML model podataka. Minimalni model uključuje elemente, atribute, tekst iredosled dokumenata

• XML dokument koristi kao osnovnu logičku jedinicu za pamćenje podataka• Može koristiti bilo koju fizičku strategiju za pamćenje

XML model podataka: opisuje koji su delovi XML dokumenta logički značajni. Na primer,svi XML modeli podataka uključuju elemente, atribute, tekst i redosled dokumenata, dok nekimodeli uključuju stvari kao što su reference na entitete i sekcije CDATA a drugi ne.

XML modeli podataka se koriste kao osnova za XML upitne jezike i definišu minimalnu količinuinformacija koju native XML baze podataka moraju da pamte. Native XML baze podatakasu slobodne da definišu svoje sopstvene XML modele jer u vreme kada su se one prvi putpojavile, nisu postajali standardizovani XML modeli. Tako među njima postoje native XMLbaze koje se zasnivaju na info setu, DOM objektima, XPath modelu podataka i XQuery modelupodataka. Mnoge native XML baze podataka danas podržavaju XPath 1.0 i njihov modelpodataka s tendencijom da mnoge od njih u budućnosti koriste XQuery model podataka.

Osnovna jedinica za pamćenje podataka: to je najmanja grupa logički povezanihpodataka koja se pamti. U relacionim bazama podataka to je red a u native XML bazama toje dokument. Obzirom da je bilo koji fragment dokumenta koji je označen kao jedan elementpotencijalno XML dokument, izbor šta će činiti jedan XML dokument je čisto stvar odlukedizajnera. Na primer:

• Knjiga pisana u XML-u. Mada će se mnogi ljudi složiti da knjiga treba da bude podeljena naviše dokumenata a da je takođe smešno da za svaki paragraf postoji poseban dokument,nije jasno šta je idealna veličina dokumenta. Na primer, treba li svaka knjiga da sadržipoglavlje? Sekciju? Podsekciju? To u potpunosti zavisi od knjige i uslova pod kojim će seona koristi.

• Medicinski podaci zapamćeni kao XML dokumenti. Poseban XML dokument može postajatiza svakog pacijenta, za svakog pružaoca medicinskih usluga (doktor, bolnica, klinika itd.)i za svaku osiguravajuću kuću. Na taj način je šema baze podataka do izvesnog stepenanormalizovana, mada ta normalizacija nije kompletna u meri u kojoj se to može postići urelacionoj bazi podataka.

Page 63: baze it350

 | LearningObject | 23

• Search engine XML dokumenata. U ovom slučaju, nisu pravljeni pokušaji da se nađeidealna veličina dokumenta već se svaki dokument jednostavno pamti u bazi podataka bezobzira da li je njegova veličina idealna.

Native XML baze podataka se mogu implementirati na bilo koji način. Na primer, pamćenjem:

• Celih XML dokumenata u CLOB strukturama relacionih baza podataka i indeksiranjemindividualnih vrednosti elemenata i atributa.

• Parsiranih XML dokumenata u fiksnim skupovima tabela (elementi, atributi, tekst itd.) urelacionoj bazi podataka.

• Parsiranih XML dokumenata kao DOM stabla u objekno-orijentisanoj bazi podataka.• Parsiranih XML dokumenata u indeksiranom skupu heš tabela

Od načina na koji je native XML baza podataka implementirana u mnogome zavise njeneperformanse. Najznačajniji faktor koji utiče na performanse je da li dokument zapamćen ucelini ili u parsiranoj formi.

Na primer, dokument koji je zapamćen u indeksiranom CLOB-u je zapamčem ceo. Dokumentkoji je zapamćen kao DOM stablo u objektno orijentisanoj bazi podataka je zapamćenu parsiranoj formi a samo parsiranje se izvodi u trenutku insertovanja kada se pamteindividualni elementi i atributi. Da bi se sagledalo kako to utiče na performanse, mogu serazmotriti sledeće klase upita:

• Upiti kojima se pretražuje čitav dokument a koji se baziraju na indeksiranim vrednostima.Na takve upite bolje performanse pruža baza podataka koja pamti ceo dokument, jer nepostoji potreba da se dokument ponovo kreira tj. da se izvrši njegova ponovna serijalizacijašto je slučaj kada je dokument zapamćen u parsiranoj formi.

• Upiti kojima se pretražuju indeksirane vrednosti. Za datu ekvivalentnu šemu indeksiranja,ovakve upite izvršavaju jednako sve baze podataka, jer se oni mogu rešiti jednostavnopretraživanjem indeksa.

• Upiti kojima se pretražuju neindeksirane vrednosti ili fragmenti dokumenata. Ovaj upitbolje izvršavaju baze podataka koje pamte predhodno parsirane dokumente jer baze kojepamte cele dokumente moraju da svaki dokument parsiraju kako bi ovakav upit rešile. Zaovakve baze podataka, performanse mogu biti prihvatljive samo ako se upitom parsiranekoliko dokumenata dok su u suprotnom, one potpuno neprihvatljive.

• Upiti koji ažuriraju dokumenta. Ove upite najbolje izvršavaju baze podataka koje pamtepredhodno parsirana dokumenta, jer one mogu da ažuriraju, insertuju ili brišu pojedinečvorove. Baze podataka koje pamte cela dokumenta ne moraju samo da parsiraju imodifikuju dokument; one moraju takođe da pretraže čitav dokument da bi ga zapamtileposle ažuriranja.

Sve Native XML baze podržavaju upotrebu nekog od API-ja. API-ji nude mogućnost za spajanjena bazu, postavljanje upita, pretraživanje meta-podataka, ... Rezultati se obično vraćajuu formi XML stringa ili DOM stabla. Ako rezultat upita može sadržavati više dokumenata,podržane su i metode za iterativni prolazak kroz skup.

Sve Native XML baze podržavaju jedan ili više upitnih jezika. U početku se najviše koristioXPath, ali kako ovaj jezik nije bio kreiran za tu namenu, W3C je razvio XQuery upitni jezik.Native XML baze podržavaju indeksiranje sadržaja što, naravno, bitno utiče na performanse.

XQuery

Page 64: baze it350

 | LearningObject | 24

Cilj• Objasniti karakteristike i upotrebu jezika XQuery

XQueryNajbolji način da se objasni XQuery jezik je reći da je XQuery za XML isto što je i SQL za bazepodataka. XQuery je dizajniran da pravi upite nad XML-om ne samo nad XML fajlovima većsvim podacima koji mogu biti predstavljeni XML-om pa čak i baze podataka, i poznat je joškao XML query. Dizajniran je tako da omogući lako manipulisanje metodama i upitima da bise pristupilo podacima iz XML-a. Za učenje XQuery-ja potrebno je prethodno znanje HTML /XHTML, XML / XML namespace -a i XPath-a.

XQuery jezik je jezik za pronalaženje, ekstrakciju i manipulaciju elementima i atributimaiz XML dokumenta. On svaki XML dokument definiše kao stablo čiji su čvorovi elementi uodgovarajućem XML-u. Dizajniran je tako da lako može da manipuliše kolekcijom dokumenataili fragmenata dokumenata. XQuery je funkcionalan jezik gde je svaki upit predstavljenizrazom. Postoji sedam tipova izraza u XQuery jeziku: path izrazi, konstruktori elemenata,FLWOR izrazi, izrazi koji uključuju operatore i funkcije, uslovni izrazi, kvantitativni izrazi i izrazikoji testiraju ili modifikuju tipove podataka. Sledi primer upita koji može biti razrešen XQueryjezikom:

"Select all CD records with a price less than $10 from the CD collection stored in the XMLdocument called cd_catalog.xml"

Najvažnije karakteristike XQuery jezika su:• XQuery je jezik za pravljenje upita nad XML podacima• izgrađen je nad XPath-om• definisan je od strane W3C• podržan je od strane svih velikih baza (Oracle, IBM DB2, Microsoft, MySQL...).

Primeri upotrebe: XQuery jezik se koristiti za:• ekstrakciju podataka da bi se dobili odgovarajući podaci potrebni za rad u Web servisima• generisanje ukupnog izveštaja• transformisanje XML podataka u XHTML (ili neki drugi format)• pretragu web dokumenata za relevantne informacije.

XQuery je kompatibilan sa nekoliko W3C standarda. To su: XML, XML namespace, XSLT, XPathi nekim XML shemama.

U XQuery jeziku postoji sedam vrsta čvorova: element, atribut, tekst, namespace, procesorskeinstrukcije, komentari, i element korena stabla (root). Element korena stabla se zove i čvordokumenta(root node). Sve sto važi za xml terminologiju važi i ovde pa stoga nema potrebenavoditi detaljnija objašnjenja istoga.

Atomične vrednosti su čvorovi bez roditelja čvorova i bez dece čvorova.Items su ili atomične vrednosti ili čvorovi.

XQuery jezik je case-sensitive zatim XQuery elementi, atributi, i promenljive morajubiti validna xml imena. XQuery stringovne vrednosti mogu biti jednostruke ili dvostrukekvote. XQuery promenljive se definišu sa znakom $ iza koga sledi ime promenljive npr.$ime_sirovine. Komentari se u XQuery jeziku pišu između znakova (: xquery komentar :).

Page 65: baze it350

 | LearningObject | 25

XQuery:primer korišćenja XPath izraza

Uvodne napomeneSvi primeri koji prezentuju XQuery jezik će biti nadalje izvedeni nad sledećim XMLdokumentom:

Page 66: baze it350

 | LearningObject | 26

Page 67: baze it350

 | LearningObject | 27

Cilj• Na primeru prikazati upotrebu jezika XQuery

XQuery: primer korišćenja XPath izrazaZa navigaciju kroz elemente XML dokumenta se koriste XPath izrazi i XML standard zaspecificiranje path-a u XML dokumentu. Sledeći path izraz izdvaja sve elemente sirovina iznavedenog xml dokumenta.

doc("prvi.xml")/meeis/sirovine/sirovina

Rezultat:

Page 68: baze it350

 | LearningObject | 28

XQuery:primer korišćenja XPath izraza

Uvodne napomeneSvi primeri koji prezentuju XQuery jezik će biti nadalje izvedeni nad sledećim XMLdokumentom:

Page 69: baze it350

 | LearningObject | 29

Page 70: baze it350

 | LearningObject | 30

Page 71: baze it350

 | LearningObject | 31

Cilj• Na primeru prikazati upotrebu jezika XQuery korišćenjem XPath izraza

XQuery: primer korišćenja XPath izrazaXQuery može koristi i odgovarajuće Xpath izraze, kojima se može ograniči izdvajanjepodataka iz xml fajla na grupu potrebnih podataka. Sledeći izraz selektuje sve sirovine kojeimaju podelement kolicina manju od 300.

doc("prvi.xml")/meeis/sirovine/sirovina[kolicina<300]

Page 72: baze it350

 | LearningObject | 32

XQuery:primer korišćenja FLWOR izraza

Uvodne napomeneSvi primeri koji prezentuju XQuery jezik će biti nadalje izvedeni nad sledećim XMLdokumentom:

Page 73: baze it350

 | LearningObject | 33

Page 74: baze it350

 | LearningObject | 34

Page 75: baze it350

 | LearningObject | 35

Cilj• Na primeru prikazati upotrebu jezika XQuery korišćenjem FLWOR izraza

Page 76: baze it350

 | LearningObject | 36

XQuery: primer korišćenja FLWOR izraza

XQuery:primer korišćenja FLWOR izraza pri čemu se rezultatiprezentuju u vidu HTML liste

Uvodne napomeneSvi primeri koji prezentuju XQuery jezik će biti nadalje izvedeni nad sledećim XMLdokumentom:

Page 77: baze it350

 | LearningObject | 37

Page 78: baze it350

 | LearningObject | 38

Page 79: baze it350

 | LearningObject | 39

Cilj• Na primeru prikazati upotrebu jezika XQuery korišćenjem FLWOR izraza

Page 80: baze it350

 | LearningObject | 40

XQuery:primer korišćenja FLWOR izraza pri čemu se rezultati prezentuju u viduHTML liste

Rezultat:<ul><li>armatura</li><li>brasno</li><li>drvo</li><li>secer</li></ul>

XQuery: naredba IF THEN ELSE

Page 81: baze it350

 | LearningObject | 41

Uvodne napomene

Page 82: baze it350

 | LearningObject | 42

Page 83: baze it350

 | LearningObject | 43

Cilj• Objasniti upotrebu naredbe IF THEN ELSE u XQuery jeziku

Page 84: baze it350

 | LearningObject | 44

XQuery: naredba IF THEN ELSE

XQuery: Dodavanje elemenata i atributa rezultatu

Uvodne napomene

Page 85: baze it350

 | LearningObject | 45

Page 86: baze it350

 | LearningObject | 46

Page 87: baze it350

 | LearningObject | 47

Cilj• Objasniti način dodavanja elemenata i atributa u rezultatu XQuery jezika

Page 88: baze it350

 | LearningObject | 48

XQuery: Dodavanje elemenata i atributa rezultatu

Dobija se rezultat:

<html><body><h1>Proizvodi</h1><ul><li>bukovo drvo . Kategorija: drvo</li><li>hrastovo drvo . Kategorija: drvo</li><li>keramicke plocice . Kategorija: keramika</li><li>prvi proizvod. Kategorija: dete</li><li>vrata . Kategorija: </li></ul></body></html>

XQuery: Selektovanje elemenata i propuštanje kroz filter

Page 89: baze it350

 | LearningObject | 49

Uvodne napomene

Page 90: baze it350

 | LearningObject | 50

Page 91: baze it350

 | LearningObject | 51

Cilj• Objasniti način selektovanja elemenata i propuštanje kroz filter u XQuery jeziku

Page 92: baze it350

 | LearningObject | 52

XQuery: Selektovanje elemenata i propuštanje kroz filter

Page 93: baze it350

 | LearningObject | 53

XQuery i XML primeri

Cilj• Objasniti karakteristike i upotrebu jezikaXQuery i primeri XML-a

XQuery i XML primeriUzmimo na primer neku knjizaru. Recimo da zelimo da napravimo XML po tabeli s tim stocemo kategoriju knjige staviti kao atribut. To se može prikazati kao više tabela koje čine svezajedno knjižaru, ali u ovom slučaju ćemo koristiti samo jednu tabelu. S obzirom da za nekuknjigu imamo vise autora mozemo vise puta pod tagom <autor> da navedemo ili sve danavedemo od jednom. Mi cemo se odluciti za svaki posebno.

Slika: Tabela koju cemo koristiti za kreiranje XML fajla

XML ce izgledati ovako:

<knjizara>

<knjiga kategorija="COOKING"><naslov>Everyday Italian</naslov><autor>Giada De Laurentiis</autor><godina>2005</godina><cena>4000</cena></knjiga>

Page 94: baze it350

 | LearningObject | 54

<knjiga kategorija="CHILDREN"><naslov >Harry Potter</naslov><autor>J K. Rowling</autor><godina>2005</godina><cena>3500</cena></knjiga>

<knjiga kategorija="WEB"><naslov>XQuery Kick Start</naslov><autor>James McGovern</autor><autor>Per Bothner</autor><autor>James Linn</autor><godina>2003</godina><cena>2600</cena></knjiga>

<knjiga kategorija="WEB"><naslov>Learning XML</naslov><autor>Erik T. Ray</autor><godina>2003</godina><cena>4265</cena></knjiga>

</knjizara>

XQuery koristi funkcije da bi izdvojio podatke iz XML dokumenata. Funkcija doc() će se koristitida bi otvorila "knjige.xml" fajl.

doc("knjige.xml")

XQuery koristi putanje da bi se kretao kroz elemente u XML dokumentu. Sledeća putanja ćese koristiti da bi selektovala sve iz elementa pod nazivom naslov u knjige.xml fajlu:

doc("knjige.xml")/knjizara/knjiga/naslov

XQuery ce izdvojiti sledece:

<naslov>Everyday Italian</naslov><naslov>Harry Potter</naslov><naslov>XQuery Kick Start</naslov><naslov>Learning XML</naslov>

Sledeći kod se koristi kako bi se selektovale knjige (pod tim nazivom elementa) iz elementaknjižare čije su cene manje od 3500:

doc("knjige.xml")/knjizara/knjiga[cena<3500]

Page 95: baze it350

 | LearningObject | 55

Izdvojice sledece:<knjiga kategorija="WEB"><naslov>XQuery Kick Start</naslov><autor>James McGovern</autor><autor>Per Bothner</autor><autor>James Linn</autor><godina>2003</godina><cena>2600</cena></knjiga>

Lekcija-14-Predavanja

ZaključakXML baze podataka pretstavljaju veoma savremenu problematiku koja ima široku primenunaročito e-poslovanju gde se XML koristi za razmenu različitih subjekata poslovanja. XQuerys druge strane pretstavlja jezik za pretraživanje podataka smeštenim u XML dokumentima.Ono što je SQL za relacione baze podataka to je XQuery za XML. U XQuery jeziku postojisedam vrsta čvorova: element, atribut, tekst, namespace, procesorske instrukcije, komentari,i element korena stabla (root). Element korena stabla se zove i čvor dokumenta(root node).Sve sto važi za xml terminologiju važi i ovde pa stoga nema potrebe navoditi detaljnijaobjašnjenja istoga.U predavanju je na primeru jednog XML dokumenta prikazana primena XQuery-a.

Page 96: baze it350

Lekcija 15 - Baze podataka zaposlovne inteligentne sisteme

Page 97: baze it350

 | Contents | 2

Contents

LearningObject................................................................ 3Lekcija-15-Predavanja.......................................................................................................3Uloga baza podataka u poslovnoj inteligenciji.................................................................3Data warehouse baze podataka (skladišta podataka)..................................................... 4Data mart baze podataka................................................................................................ 6Razvoj data warehouse baza podataka........................................................................... 7Razvoj data warehouse baza podataka: Analiza izvora podataka....................................8Razvoj data warehouse baza podataka: Priprema podataka..........................................10Razvoj data warehouse baza podataka: Izgradnja skladišta podataka-dimenziono

modeliranje................................................................................................................ 12Razvoj data warehouse baza podataka: Izgradnja skladišta podataka-definisanje

hijerarhija................................................................................................................... 15Razvoj data warehouse baza podataka: Izgradnja skladišta podataka-kreiranje

agregacija...................................................................................................................16Razvoj data warehouse baza podataka: Izgradnja skladišta podataka- kreiranje

fizičkog modela, generisanje baze podataka, učitavanje podataka........................... 17Primena skladišta podataka........................................................................................... 18Alati za upite i izveštaje................................................................................................ 19Alati za interaktivnu analitičku obradu – OLAP.............................................................. 22Alati za interaktivnu analitičku obradu (OLAP)-komponente..........................................24Alati za interaktivnu analitičku obradu (OLAP)-analiza tržišta....................................... 28Data mining (rudarenje podatka)...................................................................................30Data mining (rudarenje podatka)...................................................................................31Data mining-priprema podataka.................................................................................... 32Data mining-metode...................................................................................................... 34Data mining-metode-Stabla odlučivanja........................................................................ 35Višedimenziona analiza.................................................................................................. 38Lekcija-15-Predavanja.....................................................................................................48

Page 98: baze it350

 | LearningObject | 3

LearningObject

Lekcija-15-Predavanja

UvodDanašnjih informacionih sistema preduzeća očekuje da osiguraju informacije čiji sadržaj,brzina pristupa i način prikazivanja odgovaraju trenutnim potrebama menadžera u procesuodlučivanja. Za potrebe operativnog vođenja poslovanja koriste klasične baze podataka,zasnovane na relacionom modelu. Sa druge strane za donošenje pravilnih poslovnih odlukapotrebno je imati uvid i u vremenski redosled pojavljivanja poslovnih događaja, pa relacionebaze u tom slučaju ne predstavljaju zadovoljavajuće rešenje.Zbog toga su kreirani novi oblici organizovanja podataka. Razvijena je nova generacijaračunarskih sistema koja se temelji na konceptu skladištenja podataka. Skladište podatakasadrži podatke prikupljene iz različitih izvora, istorijske o poslovanju preduzeća kao i podatkeiz spoljnog okruženja, a dizajnirano je tako da omogućava pretraživanje podataka, on-lineanalitičku obradu, izveštavanje i podržavanje procesa donošenja odluka. Skladište podatakaje po tehničkim zahtevima i po sadržaju sasvim drugačije od transakcionih sistema. Madaje operativna baza njegova pretpostavka, skladišta podataka se u svom dizajnu oslanjajuna višedimenzionalni koncept. Nova generacija računarskih sistema se sastoji od dva dela,operativnog (transakcijskog) i skladišta podataka (analitičkog), čime se postiže izdvajanjeprocesa za generisanje informacija (ekstrakcije, agregacije, izveštaji, analize) koji se po svojojprirodi razlikuju od operativnih procesa.

Uloga baza podataka u poslovnoj inteligenciji

Cilj• Objasniti ulogu baza podataka u sistemima poslovne inteligencije

Uloga baza podataka u poslovnoj inteligencijiDanas, više nego ikad, menadžerima su potrebni lako dostupni i konzistentni podacipredstavljeni tako da u isto vreme, precizno i sažeto daju prikaz organizacije u celini kao injenog okruženja. Međutim složeni uslovi poslovanja generišu svakim danom sve veći brojposlovnih događaja u okviru preduzeća i izvan njega, a dobijeni podaci najčešće su smešteniu operacionim bazama podataka. Zbog veličine takvih baza nije ih moguće pretraživati urealnom vremenu. Dodatno, kad se i dobije konačni odgovor na upit, obično su to izveštaji udvodimenzionalnom obliku na velikom broju stranica i predstavljaju selektirano prepisivanjepodataka iz baze. Pošto je pravovremeno dobivanje kvalitetnih informacija bitno za ostvarenjeprednosti pred konkurencijom, menadžer mora da ih dobije što pre i u obliku prilagođenomnjegovim potrebama.Iz toga proizlazi da se od današnjih informacionih sistema preduzeća očekuje da osigurajuinformacije čiji sadržaj, brzina pristupa i način prikazivanja odgovaraju trenutnim potrebamamenadžera u procesu odlučivanja. Za potrebe operativnog vođenja poslovanja koristeklasične baze podataka, zasnovane na relacionom modelu, koje odražavaju ažurno, stvarnostanje poslovnog sistema, a određenim se podacima nakon ažuriranja gubi trag. Sa drugestrane za donošenje pravilnih poslovnih odluka potrebno je imati uvid i u vremenski redosled

Page 99: baze it350

 | LearningObject | 4

pojavljivanja poslovnih događaja, pa takve baze podataka ne predstavljaju zadovoljavajućerešenje.Zbog toga su kreirani novi oblici organizovanja podataka u računarskim memorijamainformacionih sistema. Razvijena je nova generacija računarskih sistema koja se temelji nakonceptu skladištenja podataka. Skladište podataka sadrži podatke prikupljene iz različitihizvora, istorijske o poslovanju preduzeća kao i podatke iz spoljnog okruženja, a dizajniranoje tako da omogućava pretraživanje podataka, on-line analitičku obradu, izveštavanje ipodržavanje procesa donošenja odluka. Skladište podataka je po tehničkim zahtevima ipo sadržaju sasvim drugačije od transakcionih sistema. Mada je operativna baza njegovapretpostavka, skladišta podataka se u svom dizajnu oslanjaju na višedimenzionalni koncept.Dakle, nova generacija računarskih sistema sada se sastoji od dva dela, operativnog(transakcijskog) i skladišta podataka-data warehouse baza podataka (analitičkog), koje su deosistema poslovne inteligencije. Time se postiže izdvajanje procesa za generisanje informacija(ekstrakcije, agregacije, izveštaji, analize) koji se po svojoj prirodi razlikuju od operativnihprocesa.

Sledeća slika prikazuje vezu između operacionihih sistema i sistema poslovne inteligencije.Operacioni sistemi kao što su sistemi za unošenje porudžbina, proizvodnju, vođenje zaliha itd.podržavaju primarne poslovne aktivnosti. Oni koriste DBMS da bi čitali i zapisivali podatake uoperacione baze podataka.

Slika: Veza između operacionih sistema i sistema poslovne inteligencije

Poslovni inteligentni sistemi (business intelegent system – BI) uzimaju podatke iz tri različitaizvora:• Operacionih baza podataka (koriste operacioni DBMS da bi podatke dobili, ali ne i za

insertovanje, modifikovanje ili brisanje operacionih podataka)• Ekstrata koji se dobijaju iz operacionih baza podataka• Podataka koji se kupuju od različitih proizvođačaPostoje dve vrste baza podataka koje se koriste u sistemima poslovne inteligencije: skaldištapodataka (data warehouse) i data mart.

Data warehouse baze podataka (skladišta podataka)

Page 100: baze it350

 | LearningObject | 5

Cilj• Objasniti ulogu data warehouse baza podataka (skladišta podataka) u sistemima poslovne

inteligencije

Data warehouse baze podataka (skladišta podataka)Slika “Veza između operacionih sistema i sistema poslovne inteligencije” pokazuje da nekiposlovni inteligentni sistemi čitaju i obrađuju operativne podatake direkno iz operacionih bazapodataka. Mada je to moguće u slučaju jednostavnijih sistema za izveštavanje i manjih bazapodataka, direkno čitanje operacionih baza podataka nije pogodno za složenije aplikacijeili veće baze podataka, zbog čega mnoge organizacije za podršku poslovnim inteligentnimsistemima razvijaju data warehouse ili data mart baze podataka.

Slika: Veza između operacionih sistema i sistema poslovne inteligencije

Postavlja se pitanji na koje se to probleme nailazi prilikom korišćenja operacionih podataka.Mnoge operacione baze podataka imaju probleme koji ograničavaju njihovu korisnost i zanajjednostavnije poslovne inteligentne sisteme. Najveće kategorije problema su:• „Prljavi” (dirty) podaci• Podaci čije vrednosti nedostaju• Nekonzistentni podaci• Neintegrisani podaci• Pogrešni formati podataka• Veliki obim podataka

„Prljavi” (dirty) podaci su problematični podaci kao što je na primer vrednost „P” za pol nekogkupca, vrednost „213” za njegovu starost ili „[email protected]” zanjegovu mail adresu.Podaci koji se dobijaju iz drugih izvora (na primer kupljeni od nekog proizvođača) često imajuatribute čije vrednosti nedostaju. Organizacije kupuju takve podatke jer u nekim slučajevimabolje je imati bilo kakve podatke nego nikakve, pogotovo u slučajevima kada je do tihpodataka veoma teško doći.

Nekonzistentni podaci se najčešće javljaju u slučajevima kada se podaci skupljaju u dužemvremenskom periodu. Kada na primer, kupac promeni mesto stanovanja, njegov telefonskibroj će se razlikovati od broja koji je imo pre te promene. Nekonzistentnost podataka se javljanajčešće zbog prirode poslovnih aktivnosti. Ako na primer analiziramo slučaj jednog Webbaziranog sistema za unošenje narudžbina kojeg koriste kupci širom sveta, doćićemo do

Page 101: baze it350

 | LearningObject | 6

primera pojave nekonzistentnih podataka vezanih za vreme slanje porudžbina koje će bitirazličito zavisno od vremenske zone u kojoj se poružbina šalje.Neintegrisanog podataka se može objasniti na primeru neke organizacije koja želi dakupce obaveštava o izvršenim narudžbinama i plaćanjima. Može se desiti da su podaci oporudžbinama zapamćeni u CRM sistemu razvijenom od strane Siebela dok su podaci oplaćanju zapanćeni u PeopleSoft finansijskoj bazi podataka. Da bi se obavila predhodnospomenuta analiza, podatake je potrebno integrisati.

U operacionim bazama podataka se takođe možemo suočiti da problemom velikog obimapodataka koji se može odnositi kako na veliki broj atributa koji se pamte o nekom entitetu (naprimer kupci) tako i na veliki broj instanci odnosno slogova podataka koji se na njega odnose.

Da bi se ovi problemi prevazišli, koristi se data warehouse tj. baze podataka koje raspolažupodacima, programima i specijalizovanim osobljem koje priprema podatke za obraduu poslovnim inteligentnim sistemima. Data warehouse baze podataka se razlikuju odoperacionoh baza podataka jer su u njima podaci denormalizovani, šo znači da sadržeredudantne – ponovljene podatake. Sledeća slika prikazuje komponente data warehouse-a.

Slika: Komponente data warehouse-a.

Programi za izdvajanje podataka (extraction program) čitaju podatke iz operacionih baza,čiste ih i pripremaju za obradu u poslovnim inteligentnim sistemima. Izdvojeni podaci sepamte u data warehouse bazama podataka korišćenjem data warehouse DBMS-a koji se možerazlikovati od DBMS-a operacionih baza. Data warehouse često uključuje podatke koji sukupljeni iz eksternih izvora. Data warehouse baza metapodataka sadrži metapodatake koji seodnose na izvore podataka, njihove formate, predpostavke, ograničenja i druge činjenice.

Data mart baze podataka

Cilj• Objasniti ulogu data mart baza podataka (skladišta podataka) u sistemima poslovne

inteligencije

Page 102: baze it350

 | LearningObject | 7

Data mart baze podatakaData mart je kolekcija podataka koja je manja od data warehouse i koja se odnosi na jednukomponentu ili funkciju poslovanja. Korisnici data marta dobijaju podatake koji pripadajujednoj poslovnoj funkciji iz data warehouse. Takvi korisnici nemaju iskustvo u upravljanjupodataka koje imaju zaposleni koji rade sa data warehouse, već su oni samo analitičari kojiimaju određena znanja iz određene funkcije poslovanja. Sledeća slika prikazuje veze kojepostoje između data warehouse i data mart.

Slika: Veze koje postoje između data warehouse i data mart

Data warehouse uzima podatake iz odgovarajućih izvora podataka i distribuira ih u tri datamart baze podataka. Jedan data mart analizira podatake dobijene sa Web site-a za potrebedizajniranja Web stranica. Drugi analizira podatake o prodaji u klasičnim prodavnicama iodređuje koji proizvodi imaju tendenciju da se prodaju zajedno. Treći data mart analizirapodatke o narudženicama kupaca u cilju smanjenja rada potrebnog da se naručeni proizvodiiz odgovarajućih skladišta isporuče kupcu.

Kreiranje i održavanje data warehouse i data mart sistema je veoma skupo. Samo velikeorganizacije koje raspolažu velikim budžetom mogu imaju mogućnosti da razviju sistemprikazan na prethodnoj slici.

Razvoj data warehouse baza podataka

Cilj• Objasniti postupak razvoja data werehouse baza podataka (skladišta podataka)

Razvoj data warehouse baza podatakaKao što je rečeno, data warehouse baza podataka predstavlja specifičnu bazu podataka,namenjenu podršci odlučivanju u određenoj organizaciji. Za razliku od transakcionih sistema(OLTP sistemi), koji su orjentisani poslovnim procesima, skladišta podataka su subjektnoorjentisana, što znači da su fokusirana na subjekte u poslovnim procesima, kao što sukupci, zaposleni i dobavljači. Integrisanost podataka u skladištima podataka obezbeđuje da

Page 103: baze it350

 | LearningObject | 8

se podaci predstavljaju u konzistentnim formatima korišćenjem konvencija pri zadavanjuimena i ograničenja nad domenima, atributima i merama. Podaci u skladištima podataka suvremenski zavisni, što znači da je svaki podatak koji se nalazi u skladištu podataka u vezi sanekim vremenskim trenutkom. Na kraju, podaci u skladištima podataka su nepromenljivi, tj.čim se neki podatak upiše u skladište podataka, moguće mu je samo pristupati. Na slici “Datawarehouse i OLAP” su prikazani svi elementi potrebni za razvoj skladišta podataka.

Razvoj skladišta podataka obuhvata sledeće tri faze:• analiza izvora podataka• priprema podataka• izrada skladišta podataka.

Slika: Data warehouse i OLAP

Razvoj data warehouse baza podataka: Analiza izvorapodataka

Uvodne napomeneRazvoj skladišta podataka obuhvata sledeće tri faze:• analiza izvora podataka• priprema podataka• izrada skladišta podataka.

Ovde će biti rečio analizi izvora podataka.

Cilj• Objasniti postupak razvoja data werehouse baza podataka (skladišta podataka)

Razvoj data warehouse baza podataka: Analiza izvora podatakaKao što je rečeno, osnovni izvori podataka za koncept skladišta podataka su operacioni(transakcioni) podaci, kao i spoljne informacije nastale kao istorija poslovanja, ili industrijski idemografski podaci uzeti iz velikih javnih baza podataka. Analiza izvornih podataka se smatra

Page 104: baze it350

 | LearningObject | 9

ključnim elementom i oduzima 80% vremena, jer je potrebno definisati odgovarajuća pravilaza preuzimanje podataka iz izvornih podataka. Znanja vezana za ovu oblast su najčešće uglavama onih koji treba da koriste skladište podataka. Analiza izvora podataka prolazi krozsledeće faze:• prikupljanje zahteva,• planiranje skladišta podataka,• izbor tehnike analize podataka.

Prikupljanje zahteva: U ovoj fazi razvoja skladišta podataka, razmatraju se poslovnepotrebe i zahtevi budućih korisnika sistema. Postoji mnogo metoda za prikupljanje poslovnihzahteva. U opštem slučaju, ove metode mogu biti smeštene u dve kategorije: prikupljanjeizvornih zahteva i prikupljanje korisničkih zahteva.

Prikupljanje izvornih zahteva, jeste metoda bazirana na definisanju zahteva korišćenjemizvornih podataka u produkciono-operativnim sistemima. Ovo se radi analiziranjem ERmodela izvornih podataka. Ovaj pristup omogućava da korisnici imaju uvida u to šta stoji naraspolaganju.

Prikupljanje korisničkih zahteva: se bazira na definisanju zahteva istraživanjem funkcijakojima korisnik teži, odnosno koje korisnik izvršava. Ovo se obično postiže kroz serijusastanaka i/ili intervjua sa korisnikom. Glavna prednost ovog pristupa je što se koncentriše naono što je potrebno, a ne na ono što je dostupno. Uopšteno, ovaj pristup ima manje područjeposmatranja nego izvorišno upravljani pristup. Zbog toga ovaj pristup proizvodi upotrebljivoskladište podataka u kraćem vremenskom periodu. Dobijene podatke treba organizovati unekoliko 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 učesnicima intervjua da bi se čulo i njihovomišljenje i da bi se izvršile potrebne korekcije.

Planiranje skladišta podataka: obuhvata mnoge zadatke koji se javljaju i pri razvoju bilokojeg projekta. Planiranje skladišta podataka sastoji se od sledećih zadataka:• definisanje obima projekta,• kreiranje projektnog plana,• definisanje tehničkih uslova,• definisanje resursa, zadataka i vremenskih rokova.

Kreiranje projektnog plana i definisanje realnih vremenskih rokova može biti težak posao.Veoma je bitno da se pre početka razvoja projekta razmotri arhitektura i infrastrukturaskladišta podataka.Potrebno je napomenuti da se moraju uzeti u obzir i neki tehnički uslovi.Oni se moraju uključiti u plan projekta, s obzirom da zahtevaju određene resurse i vreme

Izbor tehnike analize podataka: Kao što je više puta rečeno, postoji nekoliko tehnikaanalize podataka koje su danas u širokoj upotrebi. To su upiti i izveštaji, višedimenzionalneanalize i data mining. One se koriste za formulisanje i prikazivanje rezultata upita, analizusadržaja podataka njihovim posmatranjem iz različitih perspektiva i otkrivanje šablona iklasterisanih atributa u podacima koji će omogućiti dublji pogled u sadržaj podataka.

Tehnika analize podataka upitima i izveštavanjem: Analiza upitima i izveštajima je procespostavljanja pitanja na koje se traži odgovor, izdvajanje podataka od značaja iz skladištapodataka, njihova transformacija u odgovarajući kontekst i prikazivanje u čitljivom formatu.Ovim procesom upravlja analitičar, koji mora postavljati pitanja da bi dobio odgovor. Ovo jerazličito od, na primer, data mininga koji je vođen podacima.

Page 105: baze it350

 | LearningObject | 10

Tradicionalno, upiti se rade sa dve dimenzije ili dva faktora u trenutku vremena. Na primer,neko može pitati: "Koja količina nekog proizvoda je prodata ove nedelje?" Upiti koji sledeovom pitanju će biti urađeni da odrede koja količina proizvoda je prodata u određenojprodavnici. Definicija upita je proces uzimanja poslovnih pitanja ili hipoteza i njihovoprevođenje u format upita koji može koristiti određeni alat za podršku pri odlučivanju. Kadase upit izvrši, alat generiše odgovarajuće komande za dobijanje traženih podataka, koji sesmeštaju u skup odgovora.

Tehnika višedimenzionalne analize podataka: Višedimezionalna analiza je način da seprošire mogućnosti upita i izveštaja. Ovo znači da se umesto izvršavanja višestrukih upitapodaci struktuiraju tako da se može omogućiti brz i lak pristup odgovorima na pitanjakoja se tipično postavljaju. Na primer, podaci su struktuirani tako da sadrže odgovore napitanje: "Koja količina svakog proizvoda je prodata određenog dana, od strane određenogprodavca u određenoj prodavnici?" Svaki deo ovog upita se naziva dimenzija. Računanjemodgovora unapred za svaki podupit u okviru većeg konteksta, može biti dostupno uvek mnogoodgovora.

Višedimanzionalne analize omogućavaju korisnicima da sagledaju veliki broj međuzavisnihfaktora koji učestvuju u poslovnom problemu i da pregledaju podatke u složenim vezama.Krajnji korisnici su zainteresovani u istraživanju podataka na različitim nivoima detaljnosti, kojise dinamički određuju.

Tehnika analize podataka – Data mining: Data mining je relativno nova tehnika anlizepodataka. Veoma je različita od upita i izveštaja, kao i od višedimenzionalnih analiza, potome što koristi tehniku otkrivanja. Ovo znači da se ne postavlja određeno pitanje već sekoriste određeni algoritmi koji analiziraju podatke i izveštavaju šta su otkrili. Za razlikuod upita, izveštaja i višedimenzionalnih anliza, gde je korisnik morao da kreira i izvršavaupite zasnovane na hipotezama, data mining traži odgovore na pitanja koja ne morajubiti prethodno postavljana. Otkrivanje može imati formu pronalaženja značaja u vezamaizmeđu određenih elemenata podataka, klasterisanja određenih elemenata podataka ili nekidrugi obrazac u korišćenju određenih skupova elemenata podataka. Nakon iznalaženja ovihobrazaca, algoritmi mogu da iz njih izvedu pravila. Ova pravila tada mogu biti korišćena da segeneriše model koji ima željeno ponašanje, identifikuje veze među podacima, otkriva obrascei grupiše klastere zapisa sa sličnim atributima. Data mining je jedna od inteligentnih tehnikaanalize.

Razvoj data warehouse baza podataka: Priprema podataka

Uvodne napomeneRazvoj skladišta podataka obuhvata sledeće tri faze:• analiza izvora podataka• priprema podataka• izrada skladišta podataka.

Ovde će biti reči o pripremi podataka.

Cilj• Objasniti postupak razvoja data werehouse baza podataka (skladišta podataka)

Page 106: baze it350

 | LearningObject | 11

Razvoj data warehouse baza podataka: Priprema podatakaU procesu razvoja skladišta podataka, priprema podataka je jedna od najbitnijih aktivnosti.Dalji proces razvoja skladišta podataka biće uspešan samo ako je ova aktivnost uspešnozavršena. Priprema podataka se vrši na osnovu ranije određenog izvora podataka, pravilaza preuzimanje tih podataka, procedure pripreme i zahteva korisnika. Priprema se vršiodređenim ekstrakciono-transformacionim alatima kroz sledeće korake:• ekstrakcija i čišćenje podataka,• transformacija podataka.

Rezultat ovih aktivnosti treba da budu podaci koji će nam omogućiti generisanje metapodataka, na osnovu kojih se može pristupiti dizajnu skladišta podataka.

Ekstrakcija i čišćenje podataka se sastoji se od sledećih zadataka:

• Razvoj procedura za ekstrakciju podataka: Podaci koji će se koristiti u skladištu podatakamoraju se ekstrahovati iz transakcionih baza podataka koji sadrže te podatke. Podacise inicijalno ekstrahuju u procesu kreiranja skladišta podataka, a kasnije se na osnovuodređnih procedura vrši dodavanje novih podataka u skladište podataka. Ekstrakcijapodataka je vrlo jednostavna operacija, ako se potrebni podaci nalaze u jednoj relacionojbazi, ali može da bude i veoma kompleksna operacija, ako su podaci smešteni uvišestrukim heterogenim transakcionim sistemima. Cilj procesa ekstrakcije podataka jeda sve potrebne podatke, u pogodnom i konzistentnom formatu, pripremi za učitavanje uskladište podataka. Pre procesa ekstrakcije trebalo bi proveriti da li u bazi podataka iz kojevršimo ekstrakciju ima logičkih grešaka. Ovakve greške bi pre ekstrakcije trebalo uklonitikorišćenjem procedura za proveru grešaka. Postoji mogućnost da se ne može utvrditieventualno postojanje logičkih grešaka. To se dešava u situacijama kada se ekstrakcija vršiiz više izvora podataka. Prilikom ekstrakcije iz više izvora podataka može se javiti i problemnekonzistentnosti podataka usled različitog označavanja istih pojmova (nazivi država semogu skraćeno označavati sa tri ili sa dva simbola).

• Razvoj procedura za čišćenje podataka: Zbog problema koji se javljaju prilikomekstrakcije podataka, podaci dobijeni ekstrakcijom se moraju "čistiti". Čišćenje podatakapodrazumeva: proveru postojanja logičkih grešaka, "poboljšanje" podataka i eliminisanjeostalih grešaka. "Poboljšanje" podataka je proces čišćenja kojim se teži da podaci dobijupuno značenje. Primer za ovo su podaci o imenima i adresama. Često su ti podaci (npr. zajednog kupca) smešteni na više mesta u bazi i vremenom postaju nesihronizovani. Ovimprocesom se teži da se takve situacije razreše. Eliminisanje ostalih grešaka je proces ukome se odlučuje o sudbini podataka koji su nepotpuni ili nemaju veliko značenje. Ovipodaci se mogu odbaciti, privremeno smestiti i popraviti ili smestiti u skladište podataka satim svojim nesavršenostima.

Transformacija podataka podrazumeva definisanje izvora podataka i tipova transformacijakoje treba izvršiti nad podacima i ostvariti mapiranje podataka iz izvorišta u odredišta. Fazamapiranja i transformacije podataka sastoji se od nekoliko zadataka:

• Kreiranje plana transformacije podataka: Potrebno je da svi shvate zahtev zatransformacijom podataka, kao i način na koji se ona izvodi. Planom je potrebno odreditinajbolji put migracije izvornih podataka do skladišta podataka. Pri tome se analizirajuraspoloživi resursi, količina izvornih podataka, različite izvorne šeme, različiti načinipristupanja podacima, struktura skladišta podataka i potreban broj agregacija. Planom sedokumentuju sve izvorne platforme, metode pristupa i programski jezik koji je potreban zaekstrakciju podataka.

• Razvoj procedura za transformaciju podataka: Pod transformacijom podataka sepodrazumeva proces kojim se usklađuju različiti načini prikazivanja podataka različitihsistema u jedinstveni oblik. Na primer, neki sistemi mogu označavati pol ljudi sa 1 za muški

Page 107: baze it350

 | LearningObject | 12

pol i 2 za ženski pol. Ako se u skladištu podataka ovo označavanje vrši sa M i Z, onda morapostojati proces koji će transformisati 1 u M i 2 u Z.

• Razvoj procedura za učitavanje podataka: obuhvata aktivnosti kreiranja formata podataka,prenošenje podataka iz starijih sistema u skladište podataka., kreiranje agregacija štopodrazumeva postupak sortiranja podataka po određenim atributima na osnovu kojih sevrši sumiranje, kreiranje ključeva za agregacione zapise, obrada neučitanih podataka,indeksiranje podataka itd.

Izrada meta baze podataka: Upravljanje složenim distribuiranim IS zahtevima i razvojmeta baze podataka, odnosno rečnika podataka. Meta baza podataka čuva sve podatke opodacima mapirajući izvorni i ciljni sistem i uspostavlja vezu između podataka sa izvora icilja. Oni čuvaju informacije o transakcionim podacima, definiciju podataka u ciljnoj bazi itransformaciono-integracionu logiku. Tek po postavci meta baze podataka može se krenutidalje u izdvajanje podataka iz transakcione baze podataka, pa potom sumiranje, sortiranje iorganizovanje pre punjenja DW.

Razvoj data warehouse baza podataka: Izgradnja skladištapodataka-dimenziono modeliranje

Uvodne napomeneRazvoj skladišta podataka obuhvata sledeće tri faze:• analiza izvora podataka• priprema podataka• izrada skladišta podataka.

Ovde će biti reči o izgradnji skladišta podataka koja se sastoji od sledećih zadataka:• dimenziono modeliranje• denormalizacija podataka,• definisanje hijerarhija,• kreiranje agregacija,• kreiranje fizičkog modela,• generisanje baze podataka,• učitavanje podataka.

Ovde će biti reči o dimenzionom modeliranju.

Cilj• Objasniti postupak razvoja data werehouse baza podataka (skladišta podataka)

Razvoj data warehouse baza podataka: Izgradnja skladišta podataka- dimenzionomodeliranjeDimenziono modeliranje je tehnika logičkog dizajna čiji je cilj prezentacija podataka u oblikukoji obezbeđuje visoke performanse sistema radi vršenja analize podataka. U dimenzionommodeliranju, strukture podataka su tako organizovane da opisuju mere i dimenzije.

Mere su podaci smešteni u centralnoj, takozvanoj tabeli činjenica (fakt tabela). Tabelačinjenica sadrži kvantitativne podatke o poslovima, tj. podatke koje korisnici analiziraju. Ovipodaci su najčešće numeričkog tipa i mogu se sastojati i od nekoliko miliona redova i kolona.

Page 108: baze it350

 | LearningObject | 13

Dimenzije su standardni poslovni parametri koji definišu svaku transakciju. Dimenzije sesmeštaju u tabele neposredno, ili preko druge tabele dimenzije, povezane sa tabelomčinjenica. Osnovu za izradu dimenzionog modela predstavljaju meta podaci. Svakadimenziona tabela ima svoj primarni ključ, a svi oni učestvuju u stvaranju primarnogključa tabele činjenica. Ovakvi modeli se nazivaju šemama zvezde. Na slici “Primeridvodimenzionih i trodimenzionih modela podataka” su upoređeni načini prikazivanja podatakau dvodimenzionom i trodimenzionom modelu podataka.

Slika: Primeri dvodimenzionih i trodimenzionih modela podataka

Kao što se vidi sa slike, u slučaju pod a) podaci o prodaji za svaku oblast se nalaze u različitimtabelama, dok su u slučaju pod b) svi podaci smešteni u trodimenzioni niz.

Iako su podaci sačuvani samo jednom i to na jednom mestu, svaki korisnik može dobitirazličite poglede na jedne iste podatke. Jedan od primera dat je na slici “Različiti pogledi naiste podatke”

Slika: Različiti pogledi na iste podatke

Page 109: baze it350

 | LearningObject | 14

Dimenzione tabele su znatno manje i sadrže podatke koji opisuju dati posao, tj. one podatkepo 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 pojednostavljenjadizajna i karakteristika. Ovim postupkom se smanjuje broj potrebnih veza koje se morajuprocesirati zadavanjem upita. Time se direktno utiče na poboljšanje performansi sistema, jeršto je manji broj veza, to sistem brže nalazi tražene podatke.

Prema tome, dimenzioni atributi mogu biti smešteni više puta u dimenzione tabele, uzavisnosti od toga koji nivo dimenzione hijerarhije atribut opisuje. Svaka tabela morasadržati primarni ključ koji predstavlja kolonu ili grupu kolona u tabeli čiji sadržaj jedinstvenoidentifikuje zapise. Na sledećoj slici dat je izgled jednostavne šeme zvezde.

Slika: Jednostavna šema zvezde

Na slici se vidi da je primarni ključ tabele činjenica sastavljen od tri spoljna ključa. Na slici“Šema zvezde na primeru EDIFACT fakture” prikazana je šema zvezde na primeru ovakvevrste fakture.

Page 110: baze it350

 | LearningObject | 15

Slika: Šema zvezde na primeru EDIFACT fakture

Razvoj data warehouse baza podataka: Izgradnja skladištapodataka-definisanje hijerarhija

Uvodne napomeneRazvoj skladišta podataka obuhvata sledeće tri faze:• analiza izvora podataka• priprema podataka• izrada skladišta podataka.

Ovde će biti reči o izgradnji skladišta podataka koja se sastoji od sledećih zadataka:• dimenziono modeliranje• definisanje hijerarhija,• kreiranje agregacija,• kreiranje fizičkog modela,• generisanje baze podataka,• učitavanje podataka.Ovde će biti reči o definisanju hijerarhije.

Cilj• Objasniti postupak razvoja data werehouse baza podataka (skladišta podataka)

Razvoj data warehouse baza podataka: Izgradnja skladišta podataka- definisanjehijerarhije.Dimenzije veoma često mogu biti organizovane u hijerarhiji. Svaki hijerarhijski nivo senastavlja sa nekim drugim hijerarhiskim nivoom. Na primer, unutar vremenske dimenzije,dani se nastavljaju na nedelje, koji se nastavljaju na kvartale. Za dimenziju proizvoda vezuje

Page 111: baze it350

 | LearningObject | 16

se proizvodna grupa, koja se nastavlja na proizvodne vrste. Ovakva povezivanja mogu bitiveoma složena.

Dimenzioni elementi su specijalna kategorija podataka, koja predstavlja određeni nivo udimenzionoj hijerarhiji. Za svaki hijerarhijski nivo postoji po jedan dimenzioni element. Naprimer, kod dimenzije proizvod, mogu postojati tri dimenziona elementa: prozvod, grupa ivrsta proizvoda. U ovom modelu možemo reći da dimenzioni element "proizvod" predstavljanajniži hijerarhijski nivo u dimenziji proizvod, dok vrsta proizvoda predstavlja najviši nivo.Posmatranje podataka iz različitih, ali blisko povezanih perspektiva omogućava da korisnikanalizira podatke na različitim nivoima detalja. Postupak prelaska sa nivoa sa većim brojemdetalja na nivo sa manjim brojem detalja, na tzv. sumarne podatke, naziva se dizanjenaviše (drill up). Dizanje naviše je suprotno od spuštanja nadole i zahteva zbirni pogled napodatke. Dobro dizajnirana šema zvezde mora obezbediti postojanje različitih nivoa detalja, tj.hijerarhija.

Na primer, geografski podaci vezani za prodaju mogli bi se organizovati u sledeću hijerarhiju:SVET –> KONTINENT –> DRŽAVA –> OBLAST –> GRAD

Pored operacija drill down i drill up, postoji i operacija drill across, koja se koristi zapovezivanje dve ili više činjeničnih tabela na istom nivou hijerarhije.

Razvoj data warehouse baza podataka: Izgradnja skladištapodataka-kreiranje agregacija

Uvodne napomeneRazvoj skladišta podataka obuhvata sledeće tri faze:• analiza izvora podataka• priprema podataka• izrada skladišta podataka.

Ovde će biti reči o izgradnji skladišta podataka koja se sastoji od sledećih zadataka:• dimenziono modeliranje• definisanje hijerarhija,• kreiranje agregacija,• kreiranje fizičkog modela,• generisanje baze podataka,• učitavanje podataka.Ovde će biti reči o kreiranju agregacija.

Cilj• Objasniti postupak razvoja data werehouse baza podataka (skladišta podataka)

Razvoj data warehouse baza podataka: Izgradnja skladišta podataka- kreiranjeagregacijaAgregacija je proces skupljanja činjeničnih podataka po unapred definisanim atributima.Na primer, moguće je kreirati sumarne podatke o prodaji po regionu i oblasti skupljajući ihiz svake prodavnice, tj. najnižeg nivoa detalja. Agregacijama se sumiraju detalji podatakai smeštaju u posebne tabele. Ove tabele se koriste od strane aplikacija da bi se eliminisala

Page 112: baze it350

 | LearningObject | 17

potreba da se ponovo vrše neki proračuni koji bi se inače morali sprovesti ako ove tabele nebi postojale.

Glavni razlozi kreiranja agregacija su da se poboljšaju performanse upita, tj. da se smanjivreme odziva na upit, kao i da se smanji broj resursa potrebnih za izvršenje upita. Pri kreiranjuagregacija mora se voditi računa o tome koje bi zaista trebalo da postoje. Na primer, tipičnikorisnik će često postaviti zahtev da mu se prikaže ukupna prodaja za ceo mesec. Ovaj zahtevbi se u bazi podataka interpretirao kao potreba da se saberu svi podaci vezani za prodaju akoji postoje za svaki dan tog meseca. Ako bi, na primer, tokom jednog dana postojalo 1000transakcija u svakoj od 1000 prodavnica, onda bi ovaj upit morao da procesira 30 milionaredova da bi se dobio odgovor. Za podatke kojima se češće pristupa poželjno je izvršitisumiranje. Time se omogućava da se već postojeći sumarni podaci mogu odmah koristiti,čime se znatno smanjuje vreme odziva na upit koji treba da procesira te sumarne podatke. Naprimer, ako bi postojala tabela u kojoj bi se čuvali sumarni podaci o prodaji za svaku od 1000prodavnica, onda bi upit o ukupnoj prodaji za ceo mesec morao da procesira 1000 redova.Prema tome, postojanje tabele sa sumarnim podacima, u ovom primeru, smanjuje potrebuprocesiranja 30 miliona redova podataka na hiljadu.

Jedan od načina na koji se mogu kreirati agregacije jeste korišćenje SQL naredbi. Iako ovajnačin nije najbolji po pitanju performansi sistema, on je najjednostavniji, što se najlakšepokazuje na primeru. Neka se u jednom skladištu podataka primarni ključ tabele činjenicasastoji od spoljnih ključeva Proizvod_Id, Vreme_Id i Prodavnica_Id. Da bi se odredila agregacijapodataka o proizvodima po podgrupama, može se zadati sledeća SQL naredba:

SELECT PodgrupaID, ProdavnicaID, VremeID,FROM fact_tabelaWHERE ProizvodID = PodgrupaIDGROUP BY PodgrupaID, ProdavnicaID, VremeID

U slučaju kreiranja agregacija koje nisu zasnovane na SQL naredbama, potrebno je razvitispecijalizovane programe, što usložnjava procese razvoja i održavanja skladišta podataka.

Proces se sastoji u traženju redova podataka koje treba agregirati, zatim sortiranju datoteke,kreiranju podzbirova, a potom agregaciji i učitavanju tokom jednog prolaza kroz datoteku.

Razvoj data warehouse baza podataka: Izgradnja skladištapodataka- kreiranje fizičkog modela, generisanje bazepodataka, učitavanje podataka.

Uvodne napomeneRazvoj skladišta podataka obuhvata sledeće tri faze:• analiza izvora podataka• priprema podataka• izrada skladišta podataka.

Ovde će biti reči o izgradnji skladišta podataka koja se sastoji od sledećih zadataka:• dimenziono modeliranje• definisanje hijerarhija,• kreiranje agregacija,

Page 113: baze it350

 | LearningObject | 18

• kreiranje fizičkog modela,• generisanje baze podataka,• učitavanje podataka.Ovde će biti reči o kreiranje fizičkog modela, generisanje baze podataka, učitavanje podataka.

Cilj• Objasniti postupak razvoja data werehouse baza podataka (skladišta podataka)

Razvoj data warehouse baza podataka: Izgradnja skladišta podataka- kreiranjefizičkog modela, generisanje baze podataka, učitavanje podatakaKreiranje fizičkog modela: U okviru kreiranja fizičkog modela baze podataka, izvodi sepostupak prevođenja logičkog modela u fizički model prikazan preko dijagrama entiteti –veze koji fokusira podatke. Fizički model za potrebe našeg skladišta podataka biće orijentisanrelacionim bazama podataka i koristiće se za kreiranje šeme baze podataka. Za kreiranjefizičkog modela može se koristiti CASE alat, koji omogućava ostvarivanje veze izmeđukonceptualnog (logički), dimenzionog i fizičkog modela. Neposredno pre kreiranja modelatreba izabrati sistem za upravljanje bazama podataka na kome će biti implementirana bazapodataka.

Generisanje baze podataka: Aktivnost generisanja baze podataka vrši se korišćenjemSQL jezika. Naime, CASE alat u kome je izvršeno kreiranje fizičkog modela omogućavaautomatsko generisanje koda preko takozvanih DDL (Data Definition Language) datoteka.Treba napomenuti da se prilikom generisanja baze mora doneti odluka o načinu mapiranjaoperacija koje će biti na raspolaganju u okviru fizičke baze podataka. Način koji je u ovomslučaju primenjen jeste da se operacije mapiraju u obliku trigera (kod trigera je dat, u okviruSQL koda za generisanje baze, u prilogu).

Učitavanje podataka: Pošto su završene sve pripreme, može se pristupiti učitavanjupodataka u skladište podataka. U toku učitavanja se mogu eventalno izvršiti još neketransformacije, mada bi sa transformacijama podataka trebalo završiti pre učitavanja zbogproblema konzistentnosti baze.

Primena skladišta podataka

Cilj• Objasniti postupak razvoja data werehouse baza podataka (skladišta podataka)

Primena skladišta podatakaPrimena skladišta podataka je širokog dijapazona, počev od državnih organa, zdravstva iobrazovanja, pa do finansija, prodaje, marketinga, nabavke i proizvodnje.

Primena skladišta podataka u finansijama vezana je za, npr.:• izveštaj o protoku novca po grupama proizvoda i organizacionim jedinicama koji

omogućuje analizu prihoda i troškova po velikom broju parametara;• detaljnu analizu profita, multidimenzione izveštaje po kategorijama profitnih i troškovnih

centara;• izradu bilansnih računa;• izradu sumarnih izveštaja o ključnim finansijskim parametrima.

Page 114: baze it350

 | LearningObject | 19

Primena skladišta podataka u marketingu vezana je za izradu strateških marketinških analizakoje se implementiraju putem multidimenzionih izveštaja, sa detaljima o prodaji viskoprofitnihproizvoda i praćenjem po vremenu, regionima, distributerima, sektorima potrošnje i dr.Mogućnost slobodnog izvlačenja sumarnih izveštaja i zalaženja u detalje u područjima kojane ispunjavaju očekivanja daje sektoru marketinga uvid u promenu na tržištu. Kako sumarketinške kampanje skupe, to arhiviranje podataka o tržištu daje odgovor na pitanje kojije segment tržišta reagovao, preko kojih kanala, na kom geografskom području i preko kojihmedija. Ovi podaci su od neprocenjivog značaja za organizovanje narednih kampanja.

Primena skladišta podataka u prodaji vezana je za analizu prodaje i davanje odgovora napitanja kao što su:• Koji proizvod donosi najveći profit?• Koji kupci kupuju najprofitabilnije proizvode?

Primena multidimenzionih izveštaja dovodi do uočavanja Pareto pravila, pokazujući odnosizmeđu proizvoda, profatibilnosti i geografske distribucije (npr. 20% proizvoda koji donose80% profita). Precizna analiza može biti osnova za stimulaciju prodavaca (stimulacija poostvarenom profitu a ne po prihodu) i za planiranje prodaje.

Primena skladišta podataka u nabavci veoma je važna jer nabavka određuje profitabilnostpreduzeća na više načina. Pre svega, to su troškovi materijala, praćenje odnosa sadobavljačima kroz vreme. Još su veće mogućnosti upravljanja zalihama, u smislu oslobađanjaobrtnog kapitala zarobljenog u zalihama. Upravljanje odnosima sa dobavljačima je posebnovažno u svetlu JIT (Just in Time) proizvodnje. Uz dobro planiranje omogućuje se dobroanalitičko praćenje prformansi dobavljača, tačno ispunjenje dogovorenih rokova, kvaliteta idrugih parametara, kroz koncept kartice rezultata dobavljača.

Primena skladišta podataka u proizvodnji vezana je za davanje odgovora na pitanja kao štosu:• Koliko vremena treba da se napravi proizvod A?• Gde je usko grlo proizvodne linije?• Gde se javlja najviše problema vezanih za kvalitet?

Analiza upravljanja kapacitetima rešava probleme u operativnom planiranju i otvaramogućnost za "provlačenje" proizvodnje kroz ograničene kapacitete bez većih investicija. Iovde se može uključiti Pareto analiza, tj. 80% problema potiče od 20% uzroka, što je posebnovažno za praćenje kvaliteta proizvoda. Da bi se problem kvaliteta mogao dobro analizirati i utransakcionim sistemima i u skladištu podataka, potrebno je obezbediti potpunu sledljivostproizvodnog procesa, od ulaznih sirovina do gotovog proizvoda.

Primena skladišta podataka u upravljanju kadrovima vezana je za analizu i planiranje razvojakadrova i predstavlja prvi korak u uvođenju upravljanja znanjem kao novog kvaliteta iprednosti organizacija u tržišnoj utakmici.

Skladišta podataka se mogu primeniti i za praćenje i analizu zarada i troškova (po grupama,organizacionim jedinicama, regionima), efikasno ulaganje u obrazovanje kadrova i dr.

Alati za upite i izveštaje

Uvodne napomeneSkladište podataka predstavlja potencijalno vrlo vredno okruženje. Međutim, ukolikose podaci smešteni unutar njega ne iskoriste na kvalitetan način, taj potencijal postaje

Page 115: baze it350

 | LearningObject | 20

bezvredan. Trenutno se mogu izdvojiti tri klase korisničkih alata čija je namena pomoćikrajnjim korisnicima u “otključavanju” potencijalne vrednosti skladišta podataka:• Alati za upite i izveštaje (engl. Query and reporting tools)• Alati za interaktivnu analitičku obradu – OLAP alati• Data mining alatiOvde će biti reči o alatima za upite i izveštaje

Cilj• Obajsniti način na koji se mogu koristiti data warehouse baze podataka

Alati za upite i izveštajeAlati za upite i izveštaje nisu primarno namenjeni za skladišta podataka, već su to alati kojiosiguravaju jednostavnije postavljanje strukturiranih upita (npr. koliko artikala trenutno imana zalihama i sl.).

Svrha alati za upite i izveštaje je kreiranje značajnih informacija iz različitih izvora podataka islanje tih informacija do odgovarjućih korisnika na vremenskoj osnovi. Alati za upite i izveštajese razlikuju od data mining sistema jer oni informacije kreiraju korišćenjem jednostavnihoperacija sortiranja, filtriranja, grupisanja i pravljenjem jednostavnih kalkulacija. Sve analizese mogu izvršiti korišćenjem standardnog SQL-a mada se nekad da bi se olakšao zadatakizveštavanja koriste i neka proširenja SQL-a kao što su ona koja se koriste za OnLine AnaliticalProcessing (OLAP). OLAP alati predstavljaju korak napred u proširivanju snage i mogućnostisistema za izveštavanje. Oni za razliku od tradicionalnog tabelarnog prikaza podataka, moguupotrebiti višedimenzione modele podataka.

Alati za upite i izveštaje sumiraju tekuće stanje poslovnih aktivnosti i taj status upoređujusa prošlim ili predvidivim budućim aktivnostima. Alati za upite i izveštaje se takođe koristeda bi entitete kao što su kupac, proizvod, zaposleni klasifikovali. Jedna popularna tehnika zaklasifikaciju je RFM analiza.

RFM analiza je način za analizu i rangiranje kupaca prema uzorcima njihovih kupovina. To jejednostavna tehnika kojom se analizira koliko je skoro (recently –R) i koliko često (frequently –F) kupac nešto naručivao i koliko je para (money – M) potrošio na kupovinu. Da bi se proizveoRFM rezultat, kupci se po napred navedenim kriterijumima dele u pet grupa i svakoj grupi sedodeljuje rezultat od 1 do 5. Sledeća tabela prikazuje jedan uzorak RFM podataka.

Tabela:Uzorak RFM podataka

Na osnovu sadržaja tabele se može zaključiti da je prvi kupac Ajax naručivao skoro, da onnaručuje često ali da ne naručuje skupe proizvode. Drugi kupac može predstavljati problemje on nije u skorije vreme naručivao ništa, ali kada je ranije naručivao, to je radio često inaručivao je skupe proizvode.

Sledeća slika prikazuje glavne komponente alata za upite i izveštaje. Kao što je prikazano,podaci se čitaju i obrađuju iz različitih sistema. Alati za upite i izveštavanje mogu dobijatipodatake iz operativnih baza podataka, iz data werehouses ili data mart sistema. Neki od

Page 116: baze it350

 | LearningObject | 21

podataka se generišu u okviru same organizacije, drugi se dobijaju iz nekih javnih izvora atakođe se mogu kupiti od drugih.

Slika: Glavne komponente alata za upite i izveštaje

Alati za upite i izveštaje održavaju bazu metapodataka za izveštavanje. Zahvaljujućimetapodacima, ili podacima o podacima, sistemi za izveštavanje ukidanju potrebu dakorisnici shvate dizajn baze podataka i postavljaju relacije neophodne za povezivanje tabela utrenutku pravljenja upita.

Razvoj robusnijih sistema za analizu i izveštavanje je napravio značajan korak ka smanjenju –ali ne i eliminisanju – potrebe za unapred definisanim izveštajima. Naime, ti alati su zamenilijedan način unapred definisanih upita, drugim. Na primer, izvršenje zadataka vezanhi zapodršku odlučivanju – sabiranje i pronalaženje srednjih vrednosti – zahteva znatan brojunapred definisanih koraka i znatno programiranje. Logično je da u slučaju promene zahteva,postupak predefinisanja i programiranja treba ponoviti. Zaključak je da alati za upite iizveštaje u suštini ne podržavaju stvarne ad hoc korisničke upite, odnosno upite formirane “odnule” direktno na podacima iz baze podataka.

I pored značajnog napretka alata za upite i izveštaje, oni su još uvek dovoljni samo u manjesloženim delovima sistema za podršku odlučivanju. Kako je za njih karakterističan nedostataksofisticiranosti potrebne za složeno okruženje za podršku odlučivanju, u takvom okruženjuoni se mogu upotrebljavati samo u kombinaciji s drugim alatima za podršku odlučivanjupodesnijim. Osnovni nedostaci sistema za izveštavanje ogledaju se u sledećem:

• Stalno učešće informatičara u procesu izrade i održavanja;• Poteškoće u ispunjavanju izazova vezanih za složena poslovna pitanja;• Nesposobnost podrške velikim upitima;• Nedostatak koncepta vremena, konsolidovanja i agregiranja;• Nemogućnost transparentne podrške i ujednačavanja različitih tehnika optimizovanja baza

podataka;• Slaba povezanost između upita i izveštavanja;• Dizajn tipa “debeli” klijent.

Navedena ograničenja, kao i ukupan razvoj sistema za zveštaje koji je primarno bio vezanza transakcione, a ne sisteme za podršku odlučivanju, dovela su do toga da su ti alati ostali

Page 117: baze it350

 | LearningObject | 22

marginalni s aspekta podrške odlučivanju. Za potrebe podrške odlučivanju razvijeni su mnogosofisticiraniji alati bazirani isključivo na potrebama tih sistema.

Alati za interaktivnu analitičku obradu – OLAP

Uvodne napomeneSkladište podataka predstavlja potencijalno vrlo vredno okruženje. Međutim, ukolikose podaci smešteni unutar njega ne iskoriste na kvalitetan način, taj potencijal postajebezvredan. Trenutno se mogu izdvojiti tri klase korisničkih alata čija je namena pomoćikrajnjim korisnicima u “otključavanju” potencijalne vrednosti skladišta podataka:• Alati za upite i izveštaje (engl. Query and reporting tools)• Alati za interaktivnu analitičku obradu – OLAP alati• Data mining alatiOvde će biti reči o alatima za interaktivnu analitičku obradu

Cilj• Obajsniti način na koji se mogu koristiti data ware house baze podataka

Alati za interaktivnu analitičku obraduSkladište podataka, samo za sebe, ne osigurava organizacijama mogućnost iskorišćenjasvih prednosti skladištenja podataka. Da bi se zatvorio krug od transakcijskih sistema dodonosioca odluka, organizacije treba da imaju alate koji omogućavaju donosiocima odluka ianalitičarima da donose strategijske i taktičke odluke zasnovane na informacijama smeštenimu skladištu podataka. Alati koji se najčešće spominju kao prirodna nadogradnja skladištapodataka jesu alati za interaktivnu analitičku obradu – OLAP alati.

Prema jednom od eksperata u ovoj oblasni Bill Inmon-a, OLAP alati su definisain kao“kategorija softverske tehnologije koja omogućava analitičarima, menadžerima i izvršiocimada shvate podatke kroz brz, konzistentan, interaktivan pristup raznovrsnim mogućimpogledima na informacije koje su nastale transformisanjem iz sirovih podataka …”

OLAP alati omogućavaju korisnicima da iskoriste sve prednosti multidimenzionog modelapodataka u smislu da korisnici mogu da posmatraju podatke na različite načine, ne samo ustandardnom formatu izveštaja, već kao mrežu ili ukrštene tabele koje se mogu jednostavnookretati što omogućava analiziranje podataka iz različitih uglova. Takođe, OLAP uključuje iinteraktivno pretraživanje podataka. Korisnik je u mogućnosti da sledi tok svojih razmišljanjai posmatra informaciju na agregatnom nivou (na primer: Prodajna regija) i zatim ide dodetaljnijih informacija (na primer: grad, prodavaonica i sl.).

OLAP alati omogućavaju analitičarima i donosiocima odluka da intuitivno, brzo i fleksibilnomanipulišu operativnim podacima koristeći uobičajene poslovne izraze, a sve u ciljuosiguravanja analitičkog razumevanja. To podrazumeva da donosioci odluka mogu da sekreću kroz bazu podataka ka nižim nivoima detalja ili “okrećući” podatke i posmatrajućiih iz različitih perspektiva. Da bi osigurali takvu potpuno funkcionalnu poslovnu analizu,OLAP sistemi treba da pre svega podržavaju multidimenzioni konceptualni pogled,ugrađeno dimenzioniranje, unakrsne operacije nad dimenzijama bez ograničenja, Intuitivnumanipulaciju podacima, neograničene nivoe dimenzija i agregiranja itd.

Po pravilu, kod OLAP-a, kao i kod svih tehnologija namenjenih osiguranju prelaska podataka uinformacije, važi pravilo da što je korisniku osiguran lakši i jednostavniji pristup i razumevanjetakvih informacija, to je više IT rada potrebno za podršku i održavanje tih mogućnosti.

Page 118: baze it350

 | LearningObject | 23

OLAP omogućava sumiranje, prebrojavanje, izračunavanje srednjih vrednosti i izvršavanjedrugih jednostavnih aritemetičkih funkcija nad data warehouse BP. Značajna karakteristikaOLAP izveštaja je da su oni dinamički što znači da sam korisnik može menjati format izveštaja.

Kao i data ware house baze podataka, LAP izveštaji imaju metriku i dimenziju. Metrikaje podatak koji je predmet našeg interesovanja; to je podatak koji će se sumirati, tražitisrednja vrednost ili na neki drugi način obrađivati u OLAP izveštaju. Primeri metrike su ukupnaprodaja, srednja prodaja, srednja cena itd. Dimenzija je karakteristika metrike: tip kupca,lokacija kupca, region prodaje su primeri dimenzija.

Slika “Tipičan OLAP izveštaj”prikazuje izveštaj u kojem je Prodaja po prodavnicama (StoreSale Net) metrika a dimenzije su Familija proizvoda (Family Product) i Tip prodavnice (StoreType). Ovaj izveštaj pokazuje kako prodaja po prodavnicama varira zavisno od familijeproizvoda i tipa prodavnice. OLAP alati omogućavaju korisnicima da iskoriste sve prednostivišedimenzionog modeliranja podataka u smislu da korisnici mogu posmatrati podatke narazličite načine, ne samo u standardnom formatu izveštaja, već kao mrežu ili ukrštene tabelekoje se mogu jednostavno okretati, što omogućava analiziranje podataka iz različitih uglova.

Slika: Tipičan OLAP izveštaj

Takođe, OLAP uključuje i mogućnost interaktivnog menjanja izveštaja. Slika “Izveštaj sadodatom dimenzijom-Lokacija prodavnice” prikazuje alternativu prethodnog izveštaja u koju jekorisnik dodao još jednu dimenziju Store lokacion.

Slika: Izveštaj sa dodatom dimenzijom-Lokacija prodavnice

Korisnik je u mogućnosti da sledi tok svojih razmišljanja i posmatra informaciju naagregatnom nivou ( na primer: Prodajna (regija) i zatim ih produbljuje (“burgija”) do detaljnijihinformacija (na primer: grad, prodavnica i sl.). Na slici “Detaljnije prikazana informacije olokacijama prodavnica u Kaliforniji

Page 119: baze it350

 | LearningObject | 24

” je predstavljen primer izveštaja sa više detalja o lokaciji prodavnica.

Slika: Detaljnije prikazana informacije o lokacijama prodavnica u Kaliforniji

Po pravilu, kod OLAP-a, kao i kod svih tehnologija namenjenih osiguranju prelaza podataka uinformacije, važi pravilo da je korisniku osiguran što lakši i jednostavniji pristup i razumevanjetakvih informacija. Danas proizvođači OLAP produkata deklarišu svoju arhitekturu ili kaovišedimenzioni OLAP – MD-OLAP ili kao relacioni OLAP – ROLAP.

Karakteristika OLAP proizvoda je da se oni međusobno mnogo više razlikuju od relacionihbaza podataka, programskih jezika, tekst procesora itd. Zato je bitno da pri evaluaciji ovihalata u cilju izbora najpovoljnijeg rešenja učestvuju i odlučuju zajedno korisnici i IT stručnjaci.Sam model OLAP alata zasniva se na sistemu multidimenzione analize, pri čemu se podacimogu istovremeno posmatrati kroz veći broj dimenzija. Pri tom je bitno napomenuti dakorisnici tih alata ne treba da budu posebno obučeni niti obrazovani za obavljanje analitičkihposlova. Zbog jednostavne razumljivosti navedenog modela mogu ga brzo primeniti u svomradu. Tako „računarske“ karakteristike OLAP alata dopuštaju korisniku pisanje jednostavnihformula koje će se primenjivati na nekoliko dimenzija, a pri tome je potrebno napisati teknekoliko jednostavnih programskih instrukcija.

Karakteristika OLAP alata je velika brzina rada što omogućava njegovim korisnicima, najčešćestručnjacima i menadžerima postavljanje upita i dobijanja odgovora u najkraćem mogućemvremenu, praktički trenutno, što nije slučaj kod drugih SW alata. U pravilu su tako modeliranida se najveći broj odgovora dobije unutar pet sekundi, za jednostavnije analize ne više odsekunde, a u složenijim slučajevima ponekad je potrebno više od trideset sekundi.

Alati za interaktivnu analitičku obradu (OLAP)-komponente

Page 120: baze it350

 | LearningObject | 25

Uvodne napomeneSkladište podataka predstavlja potencijalno vrlo vredno okruženje. Međutim, ukolikose podaci smešteni unutar njega ne iskoriste na kvalitetan način, taj potencijal postajebezvredan. Trenutno se mogu izdvojiti tri klase korisničkih alata čija je namena pomoćikrajnjim korisnicima u “otključavanju” potencijalne vrednosti skladišta podataka:• Alati za upite i izveštaje (engl. Query and reporting tools)• Alati za interaktivnu analitičku obradu – OLAP alati• Data mining alatiOvde će biti reči o alatima za interaktivnu analitičku obradu

Cilj• Obajsniti komponenete OLAP alata

Alati za interaktivnu analitičku obradu: komponenteOLAP alati omogućavaju struktuiranje podataka u skladu sa načinom na koji ljudi prirodnoizvode analize određenih pojava ili procesa što omogućava upravo dimenzioni modeli,dimenzione analize podataka i hijerarhijske strukture. Skupovi podataka struktuirani podimenzijama, npr. proizvodima ili dobavljačima, mogu se podvrći analizi prema navedenimdimenzijama. Kao nužna dimenzija svake analize pojavljuje se vreme, čime se dolazi dovišedimenzionalnog modela.Na slici “Varijante prikaza dimenzionig modela podataka šemom zvezde (otpreme proizvoda)” date su dve varijante prikaza višedimenzionog modela. Centralni deo šeme, tabelačinjenica, predstavlja središnji deo koordinacije, koji uz osnovne podatke o šiframa relacionihtabela koje su objedinjene u strukturu, može sadržati i ostale segmente informacija.

Page 121: baze it350

 | LearningObject | 26

Slika: Varijante prikaza višedimenzionig modela podataka šemom zvezde (otpreme proizvoda)

U slučaju tri dimenzije modela, najbolji grafički prikaz višedimenzionalnog modela je kocka,kao što je prikazano na slici “Primer trodimenzionalnog prikaza podataka”.

Slika: Primer trodimenzionalnog prikaza podataka

Prema tome, OLAP baza podataka je definisana sledećim komponentama:• Numeričke mere – Mere su vrednosti podataka ili činjenice koje korisnici analiziraju. Primeri

mera su Prodaja, Jedinice, Troškovi prodate robe itd.

Page 122: baze it350

 | LearningObject | 27

• Dimenzije – dimenzije predstavljaju poslovne kategorije koje obezbeđuju kontekstnumeričkim merama. Dimenzijama OLAP je lakše navigirati nego dimenzijama šemezvezde.

• Kocke – Kocke kombinuju sve dimenzije i sve mere u jedan konceptualni model.

Na slici “Kombinovanja dimenzija za kreiranje OLAP kocke” je prikazan jedan primerkombinovanja dimenzija.

Slika: Kombinovanja dimenzija za kreiranje OLAP kocke

Kocka je logička struktura skladištenja OLAP baze podataka. Kocka kombinuje dimenzije imere kako bi korisnici mogli da prave upite. Kocka definiše skup povezanih dimenzija kojeformiraju jednu n-dimenzionalnu mrežu:• Svaka ćelija kocke sadrži jednu vrednost;• Vrednost svake ćelije je presek dimenzije.• Mere su numeričke vrednosti koje korisnici analiziraju.

Svaka kocka mora da sadrži barem jednu meru, ali ne može da ima više od 1024 mera.Karakteristike mere su:• Mere su numeričke;• Mere odgovaraju činjenicama u tabeli činjenica. Samo jedna tabela činjenica se može

koristiti za kreiranje kocke;• Mere su preseci svih dimenzija i nivoa

Pri dimenzionalnoj analizi podataka višedimenzionalni skupovi mogu se analiziratihorizontalno (raslojavanje) i vertikalno (presecanje), pa se i glavna metoda ove analizenaziva metoda raslojavanja i presecanja (engl. Slice and Dice Method). To je prikazano na slici“Raslojavanje i presecanja”.

Page 123: baze it350

 | LearningObject | 28

Slika: Raslojavanje i presecanja

Tako je npr. podatke o otpremi moguće prvo raslojiti prema proizvodima i zatim vršiti njihovopresecanje po kupcima, vremenu otpreme, načinu otpreme itd. Odlika OLAP alata je da serezultati sprovedene metode raslojavanja i presecanja prikazuju lako razumljivim grafičkimnačinima koji odnose među podacima prikazuju kockama ili zvezdastim dijagramima.Višedimenzionalni podaci pomoću OLAP alata mogu se organizovati u hijerarhijske strukture,čime je detaljne podatke moguće agregisati u nove podatke sve višeg i višeg nivoaapstrakcije. Time je analitičaru omogućeno da započetu analizu s vrha hijerarhije nastaviprema nižim nivoima podataka, tj. odozgo prema dole, od opštih pitanja prema detaljima, ucilju pronalaženja određenih interesantnih obrazaca ili pak nepravilnosti. U ovom slučaju radise o postupku poniranja (engl. Drill down).Glavna prednost koju pružaju mehanizmi OLAP alata je pre svega mogućnost sprovođenjabrzih tzv. ad hoc analiza, u odnosu na opšte korišćene rutinske periodične analize. Za razlikuod ograničavajućih rutinskih analiza, pomoću odgovarajućih ili ad hoc analiza moguće jegenerisati odgovor u stvarnom vremenu, koje se meri u minutama ili čak sekundama. Skorosve izveštaje na osnovu tih analiza moguće je grafički prikazati na vrlo privlačan i razumljivnačin pa praktičko svi zaposleni mogu brzo i lako naučiti kako napraviti ad hoc analizu i kakoje koristiti u poslu.

Alati za interaktivnu analitičku obradu (OLAP)-analiza tržišta

Uvodne napomeneSkladište podataka predstavlja potencijalno vrlo vredno okruženje. Međutim, ukolikose podaci smešteni unutar njega ne iskoriste na kvalitetan način, taj potencijal postajebezvredan. Trenutno se mogu izdvojiti tri klase korisničkih alata čija je namena pomoćikrajnjim korisnicima u “otključavanju” potencijalne vrednosti skladišta podataka:• Alati za upite i izveštaje (engl. Query and reporting tools)• Alati za interaktivnu analitičku obradu – OLAP alati• Data mining alatiOvde će biti reči o alatima za interaktivnu analitičku obradu

Cilj• Pretstaviti analzu svetskog tržišta OLAP alata

Page 124: baze it350

 | LearningObject | 29

Alati za interaktivnu analitičku obradu (OLAP)-analiza tržištaSamo OLAP tržište raste brže od mnogih drugih SW sektora, a taj trend se nastavlja u danaskada se očekuje da će ostvariti najbolji rast od 2000. godine. Teškoće koje se javljaju uodređivanju precizne veličine celog OLAP tržišta i individualnih udela u njemu, nastaju zbogtoga što veliki prodavači kao Microsoft, Oracle, SAP, Business Objects ne mogu uvek izmeritiOLAP udeo sam za sebe jer se ti alati ne isporučuju i prodaju samostalno već često kao deovećih paketa proizvoda.

Teškoće u dobivanju preciznih podataka za određivanje OLAP tržišta javljaju se i zbog mnogihdrugih razloga, npr. mnoge velike "non-BI" kompanije preuzimaju prave OLAP vendore,neke od njih ne razdvajaju OLAP proizvode od ostalih (Microsoft), neke manje kompanijenpr. na tržištu SAD nemaju obavezu prikazivanja financijskih rezultata, neke kompanije sukoncentrisane na direktnu prodaju, dok druge to čine uz pomoć posrednika itd.Na slici “Prikaz veličine svetskog tržišta OLAP alatima” dat je prikaz u razdoblju od 1994.godine do 2003., kao i trend rasta do 2006. godine izražen u USD, na osnovu citiranogizveštaja.

Slika: Prikaz veličine svetskog tržišta OLAP alatima(Izvor: "The Olap Report, http//www.olapreport.com/market.htm, 24.08.2004.

Iz grafa se može videti da je vrednost svetskog OLAP tržišta, u čiji prikaz su uključene i uslugeimplementacije, sredinom devedesetih bila oko 1 milijardu USD, i imala trend rasta preko 2mlrd. USD u 1998. godini, uz dalji trend rasta. Stopa rasta u 2003. godini je mali u odnosu na2002. godinu, međutim značajan trend rasta prodaje postoji do 2006 i još očekuje se nadalje.U sledećoj tabeli je dat prikaz vodećih kompanija na svetskom tržištu OLAP alata i njihov udeou tom tržištu u period 2001-2003.

Tabela: Prikaz vodećih kompaniji na svetskom OLAP tržištu i njihov udeo u tom tržištu u 2001,2002. i 2003. godinuna 2003. 202001.

Page 125: baze it350

 | LearningObject | 30

Izvor: "The OLAP Report: Market share analysis", www. olap report.com/ market.htm,24.08.2004

Data mining (rudarenje podatka)

Uvodne napomeneSkladište podataka predstavlja potencijalno vrlo vredno okruženje. Međutim, ukolikose podaci smešteni unutar njega ne iskoriste na kvalitetan način, taj potencijal postajebezvredan. Trenutno se mogu izdvojiti tri klase korisničkih alata čija je namena pomoćikrajnjim korisnicima u “otključavanju” potencijalne vrednosti skladišta podataka:• Alati za upite i izveštaje (engl. Query and reporting tools)• Alati za interaktivnu analitičku obradu – OLAP alati• Data mining alatiOvde će biti reči o data miningu poznatom u našoj zemlji i kao rudarenje podatka

Cilj• Pretstaviti data mining alate

Data mining (rudarenje podatka)Data mining alati koriste sofisticiranu tehnologiju koja kombinuje tehnike višestruke analizepodataka uključujući statističku analizu, stablo odlučivanja i neuronske mreže. Oni “prolaze”kroz podatke da bi pronašli trendove, uzorke i veze koje se na drugi način ne mogu uočiti.

Jedna od početnih paradigmi dobijanja informacija iz baza podataka je bila da krajnji korisniciznaju šta traže i alati su išli u smeru da im osiguraju jednostavan način postavljanja upita.Data mining se bazira na potpuno drugačijoj paradigmi – inicijativa pronalaženja podataka jeu “rukama” alata a ne korisnika tj. ne pretpostavlja se da korisnik zna šta traži ili šta očekuje.

Page 126: baze it350

 | LearningObject | 31

Sam pojam data mining može se definisati kao proces pronalaženja skrivenih trendova,modela, zakonitosti i odnosa među podacima. Alati za data mining daju odgovore na poslovnapitanja za čija je rešavanja u tradicionalnom pristupu trebalo puno više vremena. Onipretražuju baze podataka tražeći skrivene modele i pronalaze predvidljive informacije kojemeđutim mogu promaći stručnjacima jer "leže" izvan njihovih očekivanja. Primenom alataza data mining moguće je otkriti pre neprepoznate matrice ponašanja, mogu se tačnije ibrže predvideti budući trendovi i ponašanja, što omogućuje poslovnom svetu donošenjeproaktivnih odluka zasnovanih na znanju (knowledge-driven decisions). Razvitak metoda kojese danas koriste u okviru pojma data mininga započinje sedamdesetih i osamdesetih godinaprošlog veka, a od sredine devedesetih godina pojam data mining objedinjuje skup metoda ipostupaka čiji je zajednički cilj otkrivanje zakonitosti u masi podataka.Same tehnike data mininga rezultat su dugog procesa istraživanja i razvoja statističkihalgoritama. Ova evolucija je započela još kad su poslovni podaci prvi put uskladišteniu računare, a nastavlja se kontinuirano s unapređenjem pristupa podacima i u zadnjevreme, generisanjem tehnologija koje omogućuju korisnicima navigaciju kroz podatke urealnom vremenu. Proces data mininga je danas moguće sprovoditi zahvaljujući razvoju trjuitehnologija koje su sada dovoljno sazrele:• moćnom multiprocesorskom računarskom tehnologijom• tehnologijom za masovno prikupljanje podataka i• algoritamskim tehnikama za data mining.

Razvojem informacionih sistema pohranjivanje podataka u baze podataka postalo je relativnojednostavno i cenama pristupačno, pa su se nametnula pitanja da li se istorijski podacisadržani u bazama podataka mogu koristiti za izradu modela procesa koji bi bili osnovaza generisanje dosad skrivenih podataka. Zatim, mogu li se na osnovu izrađenih modelaprocesa analizirati prošla kretanja sistema u celini, ili poslovnih podsistema, i iz toga izvućikonkretni zaključci. I važno pitanje, mogu li se na osnovu izrađenih modela procesa previdetibuduća kretanja poslovnog sistema u određenom vremenskom periodu. Širenjem upotrebebaze podataka i novim pristupom dinamičnog istraživanja podataka (Data Exploration) izvelike količine podataka dolazi se do skrivenih podataka koji su značajni u pribavljanju novihinformacija te otkrivanja znanja zasnovanog na podacima i stvaranja nove poslovne vrednosti.

Data mining (rudarenje podatka)

Cilj• Pretstaviti data mining alate

Data mining (rudarenje podatka)Danas u mnogim poslovnim područjima, na primer finansijama, trgovini, marketingu,zdravstvu i slično ili u bilo kojem naučno-istraživačkom području standardni pristup analizipodataka zasniva se na radu analitičara koji obrađuju podatke uz primenu računarskihprograma ili bez njih. S obzirom da količina podataka dramatično raste, danas je bilo kakvaobrada podataka bez upotrebe računara i savremenih algoritama obrade potpuno neefikasnai praktički nemoguća. U okviru razvoja informacionih sistema, kao što je ranije napomenuto,prisutna je pojava rasta baza podataka, koja je posledica kontinuiranog pohranjivanjapodataka u baze podataka.

Inteligentna analiza takvih podataka preduslov je za donošenje kvalitetnih odluka umodernom poslovanju, a isto tako i kvalitetnog naučno-istraživačkog rada. Rezultat analizepodataka iz baza podataka je otkrivanje novog znanja. Izraz otkrivanje znanja podrazumeva

Page 127: baze it350

 | LearningObject | 32

celokupni proces otkrivanja korisnog znanja iz podataka, a data miningje jedan korak u tomprocesu. U procesu data mininga koriste se različite metode, među kojima analitička statistikapredstavlja osnov svih postupaka otkrivanja znanja. Gledano iz perspektive statistike,postupak data mininga uz pomoć računara samo je automatizovana istraživačka analizapodataka iz velikih i kompleksnih baza podataka.

Kao osnovni koraci u procesu otkrivanja znanja mogu se navesti selekcija podataka,pročišćavanje podataka, ugrađivanje odgovarajućeg apriornog znanja i ispravna interpretacijarezultata procesa data mininga. Oni se mogu definisati i opisati na sledeći način:

• selekcija podataka – u prvom koraku ili fazi bira se ciljani skup podataka na kojoj ćese provesti postupak otkrivanja znanja, odnosno vrši se izbor baza podataka, varijabli iuzoraka podataka. To mogu biti podaci o potrošačima, starosnoj granici, prodaji i slično.

• pročišćavanje podataka – u ovoj fazi podaci se prikupljaju s raznih računara i bazapodataka, zatim čiste i uparuju

• redukcija i projekcija podataka – u ovom koraku vrši se transformacija podataka iztransakcionih baza podataka i iz ostalih izvora u višedimenzione baze. Npr. u primerumaloprodaje, dimenziona baza sastoji se od dimenzije vremena, prodavaonica i potrošača

• određivanje najprikladnije metode data mininga – u poslednjem koraku kako jenaznačeno bira se najpogodnija metoda data mininga, npr. klasifikacija, klasterisanje,analiza potrošačke korpe, stabla odlučivanja, neuronske mreže i slično.

Na kraju sledi ispravna interpretacija i izvođenje zaključaka (pravila) kao rezultat procesaotkrivanja znanja.

Data mining-priprema podataka

Uvodne napomeneSkladište podataka predstavlja potencijalno vrlo vredno okruženje. Međutim, ukolikose podaci smešteni unutar njega ne iskoriste na kvalitetan način, taj potencijal postajebezvredan. Trenutno se mogu izdvojiti tri klase korisničkih alata čija je namena pomoćikrajnjim korisnicima u “otključavanju” potencijalne vrednosti skladišta podataka:• Alati za upite i izveštaje (engl. Query and reporting tools)• Alati za interaktivnu analitičku obradu – OLAP alati• Data mining alatiOvde će biti reči o data miningu poznatom u našoj zemlji i kao rudarenje podatka

Cilj• Pretstaviti data mining alate

Data mining-priprema podatakaUspešnost data mininga zavisi od izvora podataka i od samog kvaliteta podataka. Upreduzećima koja su razvila i koriste alate poslovne inteligencije izvori podataka koji sekoriste za analize najčešće su data warehouse sistemi (skladišta podataka). Međutimpostojanje warehouse sistema ne mora biti preduslov za proces data mininga. Kreiranjei izgradnja warehouse sistema najčešće je ogroman posao koji ponekad traje godinamai pretpostavlja znatna finansijska sredstva. Stoga kao izvori podataka ponekad služe idruge, izvorne baze podataka u kojima podaci mogu biti nekompletni, ne pojavljuju se nazadovoljavajućem stepenu granulacije ili se može pojaviti nekonzistentnost unutar samihpodataka, npr. u označavanju pojedinih kategorija i sl.

Page 128: baze it350

 | LearningObject | 33

Nadalje, izvori podataka ne moraju uvek biti pohranjeni u bazama podataka. Podaci mogubiti pohranjeni i na primer u Excel datotekama, ASCII, DBF datotekama i slično, a moguće sui kombinacije proizašle iz prethodno spomenutih kategorija. Isto tako se data mining možeprimenjivati i na Webu i u tekstualnim podacima.

Pristup tim podacima se razlikuje od klasičnog pristupa bazama podataka i datotekama urazličitim formatima podataka. Vodeći računa o planiranom cilju analize, ponekad je potrebnopovezati se na sve bitne izvore podataka i izvući podatke relevantne za analitički proces. Takvipodaci trebaju proći kroz postupak čišćenja, predprocesiranja i analize relevantnosti atributa.U svakom procesu analize navedeni postupci uzimaju i do 80% vremena, dok sama primenaalgoritama data mininga zauzima tek 20% vremena u celokupnom procesu. Primena dobrihalgoritama data mininga na loše pretprocesirane podatke, ili još gore, na "sirove" podatkerezultovaće, bez izuzetka, lošim rezultatima.

U najznačajnije metodološke postupke predprocesiranja ubrajaju se:• Pronalaženje ekstremnih vrednosti. Ako se u skupu podataka pojavljuju ekstremne

vrednosti (Outliers) one se ne smeju isključiti bez prethodne dijagnostike uzroka zbog kojihse pojavljuju. Naime, ekstremne vrednosti ponekad mogu upućivati na poučnu devijacijute je stoga potrebno sprovesti dodatne analize i doneti odluku o njihovom uključivanju iliisključivanju iz daljnjih analiza

• Dijagnostika nedostajućih vrednosti i predviđanje nedostajućih vrednosti.U skupu podataka može se naići i na nedostajuće vrednosti. U tom slučaju u procesuanalize podataka primeniće se metode predviđanja nedostajućih vrednosti. Najčešće su tostandardne metode data mininga.

• Povezivanje relacionih ključeva iz različitih izvora podataka. Ako se podaciprikupljaju iz različitih izvora često ne postoji jednoznačna definicija relacionih ključeva.Kad se primenjuju različiti sistemi kategorizacije unutar podataka, nailazi se do pojavenedoslednosti vrednosti atributa vezanih uz iste relacione ključeve.

• Postizanje jednoobraznosti (konzistentnosti) u podacima. U postupku data mininga,uz izvore podataka unutar preduzeća (npr. skladište podataka) često se koristi i niz spoljnihizvora gde su informacije iskazane u različitim formatima. U tim slučajevima dolazi doizražaja kompleksnost čitave problematike, jer se dodavanjem izvora može promenitimetodologija pretprocesiranja i čišćenja podataka.

• Uzorkovanje. U slučajevima kada fizički nije moguće zahvatiti celokupan skup podataka,koriste se metode uzorkovanja s tim da uzorak što reprezentativnije predstavlja celi skup.Metoda uzorkovanja se primenjuje i pri cepanju osnovnog skupa na uzorak za učenjemodela i testni uzorak.

• Kategorizacija vrednosti atributa. U postupku pretprocesiranja podataka jedan odvažnih koraka odnosi se na formiranje kategorija na osnovu podataka. Na primer pri dodelivrednosti atributa kategoriji starosne dobi (npr. od 20 do 40) se uvrštavaju svi slogovi čijase vrednost atributa starosno doba nalazi unutar tih granica.

• Formiranje izvedenih atributa (Binning). Slična metoda prethodno navedenojmetodologiji je i formiranje izvedenih atributa, a odnosi se na formiranje novih kategorijakoje obuhvataju vrednosti sortiranog niza, pri čemu svaka od kategorija sadrži jednak brojvrednosti definisanog niza.

• Grupisanje (sažimanje) podataka. Primenom ove metode velika količina podatakasažima se grupisanjem po određenim kriterijumima.

• Normiranje podataka. Metode normiranja podataka koje se najčešće primenjuju uprocesu data mininga su: Min-max normiranje (primenjuje se u slučajevima kad je poznataminimalna i maksimalna vrednost izvornog niza), Z-skaliranje (primenjuje se u slučajuda se ne zna minimalna i maksimalna vrednost originalnog niza) i metoda Decimalnogskaliranja kad se normiranje provodi direktno na relacionoj tabeli.

Po završetku predhodno navedenih metodoloških postupaka predprocesiranja podataka, ucilju još temeljitijeg upoznavanja podataka može se sprovesti i analiza relevantnosti atributa.

Page 129: baze it350

 | LearningObject | 34

Iako ova analiza nije preduslov za uspešno sprovođenje data mininga, ona može doprinetiboljem razumevanju odnosa među atributima i izboru najprimerenije metode data mininga.Naime, po završetku postupaka predprocesiranja podataka može se postaviti pitanje dali je izabran pravi skup atributa koji jednoznačno opisuju problem koji treba rešiti, jesu livrednosti tih atributa pravilno grupisane, kao i je li opravdano sprovesti analizu nad izabranimstepenom granulacije podataka. Glavni zadatak analize relevantnosti atributa svodi se naotkrivanje onih atributa koji imaju slab ili skoro nikakav uticaj na zadani analitički cilj, štomože rezultovati njihovim neuvrštavanjem u daljnje procese analize. Slika “Odnos analizerelevantnosti atributa nakon predprocesiranja podataka” prikazuje celokupni postupak obradepodataka pre ulaska u data mining sistem.

Slika: Odnos analize relevantnosti atributa nakon predprocesiranja podataka

Idealna situacija po pitanju kvaliteta podataka bila bi u slučaju da preduzeća imaju razvijensistem skladištenja podataka (data warehouse) i da se u njima nalaze svi relevantni atributikoji se planiraju koristiti u analizama. U njima su podaci već čisti, integrisani i potpuni.Ponekad je u praksi potrebno integrisati podatke iz različitih izvora s ciljem dobijanjapredprocesirane tabele, na koju se mogu primeniti metode data mininga. Krajnji cilj postupkapredprocesiranja podataka i sprovođenja analize relevantnosti atributa jest dobijanjejedinstvene tabele koja treba sadržavati atribute relevantne za analizu.

Na kraju, kao pomoć u cilju što boljeg uočavanja bitnih karakteristika podataka preporučuje sesprovođenje metode vizuelizacije podataka. Ako se ona sprovodi na neočišćenim podacima,radi se u cilju boljeg upoznavanja skupa koji se želi analizirati, dok se pretprocesirani podacivizualizuju sa ciljem uočavanja određenih pravilnosti u podacima, koji već u ovoj fazi analizemogu dati obrise mogućeg rešenja. Slikovito rečeno, vizualizacijom, na primer grafičkimprikazom, postiže se puno veća širina u odnosu na prikaz samog teksta i brojeva, čime jeanalitičaru omogućeno da vidi "šumu" kao i da se zumira na određeno "drvo".

Data mining-metode

Uvodne napomeneSkladište podataka predstavlja potencijalno vrlo vredno okruženje. Međutim, ukolikose podaci smešteni unutar njega ne iskoriste na kvalitetan način, taj potencijal postajebezvredan. Trenutno se mogu izdvojiti tri klase korisničkih alata čija je namena pomoćikrajnjim korisnicima u “otključavanju” potencijalne vrednosti skladišta podataka:

Page 130: baze it350

 | LearningObject | 35

• Alati za upite i izveštaje (engl. Query and reporting tools)• Alati za interaktivnu analitičku obradu – OLAP alati• Data mining alatiOvde će biti reči o data miningu poznatom u našoj zemlji i kao rudarenje podatka

Cilj• Pretstaviti data mining alate

Data mining-metodeMetode data mininga primenjuju se prvenstveno u poslovanju preduzeća. Međutim datamining je primenjiv i u svim ostalim područjima u kojima se raspolaže s velikom masompodataka, na osnovu kojih se žele otkriti određene veze, pravilnosti i zakonitosti (npr. umedicini, mikrobiologiji, genetici, mehanici itd.). Za uspešno provođenje procesa data miningapotrebno je precizno formulisati cilj i problem koji se želi rešiti, uspešnost data miningazavisiće i od kvaliteta raspoloživih podataka. Kad je u pitanju izbor metoda data mininga,danas na raspolaganju stoji celi niz metoda.

Postoje glavne, opšte prihvaćene metode data mininga, dok isto tako postoji i čitav nizmetoda iz ostalih područja koje se ne mogu svrstati u neku "fioku".Najčešće korišćene metodeu procesu data mininga su:• Regresiona metoda - koristi se za opisivanje veza između varijable od primarnog

interesa (npr. prodaja, iznos računa) i tzv. varijabli predikcije (npr. primanja kupca, brojčlanova domaćinstva, dob itd.), tj. kada se postojeće vrednosti koriste za predviđanjaostalih vrednosti

• Klasifikacione metode – imaju za cilj da se identifikuju karakteristike koje označavajugrupu kojoj pripada svaki pojedini slučaj.

• Genetički algoritmi - uglavnom se koriste kao tehnike za rešavanje problemaoptimizacije. Dat im je naziv genetički, stoga što slede model teorije evolucije.

• Stabla odlučivanja - vrlo moćne i popularne tehnike modeliranja za klasifikacijske ipredikcijske probleme.

• Klasterovanje - postupak kojim se provodi grupisanje objekata sličnih karakteristika.Cilj klasterovanja je da se pronađu grupe koje se znatno razlikuju jedna od druge, doksu članovi unutar grupa vrlo slični jedni drugima. Za razliku od klasifikacije, kod koje sesegmentacija podataka vrši u klase koje su prethodno definisane, na početku klasterisanjane zna se po kojim će atributima podaci biti svrstani u grupe klastera.

• Neuronske mreže - predstavljaju snažan alat, naročito za prognoziranje trendova ipredviđanje na osnovu istorijskih podataka. U matematičkom modelu neuronske mrežeosnovna jedinica je dizajnirana po uzoru na biološki neuron. Jedinice kombinuju ulaze ujedinstveni rezultat (najčešće funkcija sumiranja), koji zatim biva preusmeren u funkcijutransformacije koja kalkuliše izlaznu vrednost i najčešće poprima vrednost između ''0'' i''1''. Kombinaciona i transferna funkcija zajedno čine aktivacionu funkciju neurona.

• Metode za analizu veza (asocijativna pravila)- obuhvataju metode za analizupotrošačke korpe, koje služe za analizu kombinacija proizvoda koji se često kupuju zajedno.Glavni cilj ove metode je otkrivanje zakonitosti o kupovini skupova artikala u trgovačkimcentrima, a što može biti korisno za povećanje prodaje. Bit metode sastoji se u otkrivanjuasocijativnih pravila koja ukazuju koji se parovi proizvoda i s kojom verovatnoćom koja sesračunava na osnovu istorijskih podataka iz transakcionih baza.

Data mining-metode-Stabla odlučivanja

Page 131: baze it350

 | LearningObject | 36

Uvodne napomeneSkladište podataka predstavlja potencijalno vrlo vredno okruženje. Međutim, ukolikose podaci smešteni unutar njega ne iskoriste na kvalitetan način, taj potencijal postajebezvredan. Trenutno se mogu izdvojiti tri klase korisničkih alata čija je namena pomoćikrajnjim korisnicima u “otključavanju” potencijalne vrednosti skladišta podataka:• Alati za upite i izveštaje (engl. Query and reporting tools)• Alati za interaktivnu analitičku obradu – OLAP alati• Data mining alatiOvde će biti reči o data miningu poznatom u našoj zemlji i kao rudarenje podatka

Cilj• Pretstaviti data mining alate

Data mining-metode- stabla odlučivanjaStablo odlučivanja je klasifikacijski algoritam u formi stablaste strukture (Slika “Primer stablaodlučivanja za određivanje “kada je dobar dan za igranje tenisa” – igrati ili ne ?”), u kojoj serazlikuju dva tipa čvorova povezanih granama:• krajnji čvor ("leaf node") – kojim se završava određena grana stabla. Krajnji čvorovi definišu

klasu kojoj pripadaju primeri koji zadovoljavaju uslove na toj grani stabla;• čvor odluke ("decision node") - ovaj čvor definiše određeni uslov u obliku vrednosti

određenog atributa (varijable), iz kojeg izlaze grane koje zadovoljavaju određene vrednostitog atributa.

Slika: Primer stabla odlučivanja za određivanje “kada je dobar dan za igranje tenisa” – igrati iline ?

Stablo odlučivanja se može koristiti za klasifikaciju primera, tako što se „krene“ od prvogčvora odlučivanja u korenu stabla i kreće po onim granama stabla sve do krajnjeg čvora, kojasvojim vrednostima zadovoljavaju jednu od postojećih klasa problema. Svaki od unutrašnjihčvorova stabla predstavlja test na vrednost određenog atributa, pa se put gradi dodavanjemone grane koja odgovara vrednosti atributa u posmatranom primeru. Put završava u nekomod listova, gde se primer klasifikuje u klasu kojom je list označen.

Sa slike “Primer stabla odlučivanja za određivanje “kada je dobar dan za igranje tenisa” –igrati ili ne ?” je prikazan u tabeli „Trening uzorci: Atributi i njihove vrednosti“. Za opisanje

Page 132: baze it350

 | LearningObject | 37

uzoraka treninga se koriste sledeća četiri atributa: izgled, temperatura, vlažnost i vetar.Moguće vrednosti atributa izgled su: sunčano, kišno, oblačno. Postoji jedan ciljni atribut: IgratiDa/Ne. Moguće vrednosti ovog su Da i Ne. Jedna vrsta u tabeli , odgovara jednom treninguzorku. Trening uzorci imaju vrednosti za svaki od atributa uključujući i ciljni atribut. To daljeznači d asvaki trening uzorak pripada jednoj i samo jednoj klasi.Tabela: Trening uzorci: Atributi i njihove vrednosti

Proces generisanja stabla odlučivanja pirkazan je na slici “Vizualizacija procesa generisanjastable odlučivanja”. Algoritam kreiranja stabla odlučivanja na apstraktnom niovu može sedefinisati na sledeći način: Za zadati skup primera za učenje – T:• Izaberi varijablu V• Podeli (split) primere prema vrednosti varijable V• Stvori (pod)stabla za čvorove-decu rekurzivno• Zaustavi proces podele kada svi primeri u čvoru imaju iste oznake.

Slika: Vizualizacija procesa generisanja stable odlučivanja

Algoritam konstruiše stablo odlučivanja od korena prema listovima. U svakom koraku rekurzijegeneriše se podstablo visine 1, uz to se koriste samo oni primeri koji pripadaju tom podstablu.Konstrukcija podstabla se zasniva na izboru jednog od atributa, a pri tom su iz razmatranjaisključeni svi oni atributi koji su prethodno iskorišćeni u istoj grani stabla. Zato se svaki atributmože pojaviti najviše jednom na bilo kom putu od korena do lista. Treba primetiti da se uovom osnovnom obliku algoritma implicitno pretpostavlja da su svi atributi nominalnog tipa.

Rekurzija se nastavlja sve dok za posmatrani čvor stabla nije zadovoljen jedan od dvakriterijuma:• skup podataka za učenje koji pripada čvoru je prazan ili se sastoji od primera samo jedne

klase (pa je dalje grananje nepotrebno), ili

Page 133: baze it350

 | LearningObject | 38

• svi atributi su već iskorišćeni na putu od korena do posmatranog čvora (pa dalje grananjenije moguće).

Pošto je cilj konstrukcije što manje stablo odlučivanja, treba nastojati da se rekurzivni procesgrananja što ranije zaustavi. Osnovni način zaustavljanja rekurzije su čvorovi kojima pripadajuprimeri samo jedne od klasa. Zato je poželjno kao kriterijum grananja izabrati one atributekoji proizvode što homogenije podskupove primera za učenje kao rezultat grananja.

Stabla odlučivanja imaju svoje prednosti i nedostatke.

Višedimenziona analiza

Cilj• Objasniti ulogu data warehouse baza podataka (skladišta podataka) u sistemima poslovne

inteligencije

Višedimenziona analizaU ovoj vežbi ćemo se upoznati sa višedimenionalnom analizom, sa DataWarhouse(DWH),arhitekturom DWH-a, izvorima podataka za DWH, transformacijama za DWH, kreiranje tabelasa činjenicama, i tabela sa dimenzijama. Na jednostavnom primeru od samo 3 tabele će bitiurađena višedimenziona analiza i time će biti demostrirana ova oblast.

Baze podataka sadrže velike količine podataka, koji su struktuirani za lako punjenjeinformacijama i rad IS-ova. Takve baze su orejntisane na transakcije koje se vrše. Ovakostruktuisane baze su neophodne za svakodnevni rad sa bazom. Međutim ovakve baze nisuzgodne za analize i pomoć u donošenju poslovnih odluka i za kreiranje izveštaja. Za tepotrebe neophodna je drugačija struktura baze podataka, struktura orjentisana na činjenicekoje se posmatraju i njihove dimenzije.

Data Warhouse nije rešenje za izveštaje. To je integrisani i ujedinjeni skup podatakaorganizovan u dimenzijama vremena ili podataka koji su subjekti razmatranja. Koristi seu svrhu analize, planiranja i evaluacije poslovnih mogućnosti. Treba da bude sposoban dapodjednako i supešno obrađuje podatke bez obzira na njihov rast.

DWH je organizovan oko subjekata posmatranja kao što su na primer prodaja, proizvod,partner. Prilikom kreiranja DWH-a treba se fokusirati na modelovanje i analizu podataka kojiće se koristiti za donošenje odluka tj. definisanje subjekata posmatranja. Podaci koji nisu bitniu procesu donošenja odluka potrebno je isključiti iz analize i modelovanja.

Izvor podataka za DWH ne mora da bude jedna baza podataka. Može da budu više iz višerazličitih izvora. Na primer relaciona baza podataka, neki Legacy sistemi ili čak i običan flatfajl. Svi podaci prolaze kroz proces transformacije podataka i ulaze u DWH.

Page 134: baze it350

 | LearningObject | 39

Slika: Prikaz korišenja podataka iz više izvora

Podaci u DWH se ne menjanju. DWH ima samo dve operacije, učitavanje podataka i pristuppodacima. OLAP kocka odnosno baza podataka koja sadrži činjenice i dimenzije se kreira naosnovu drugih izvora informacija i takav sistem se učita u DWH koji služi za učitavanje, rad sapodacima, za kreiranje izveštaja itd.

Slika: Prikaz kocke i učitavanje u DWH

Izvori podataka koji mogu biti razni relacioni DB sistemi, legacy fajlovi, obicni fajlovi prolazekroz proces transformacije u okviru kojeg se rade čiščenje, selekcija, integracija podatakai smešta se u bazu podataka koja predstavlja OLAP kocku OLAP server i DWH. Iz ovihinformacija koje su orjentisane na činjenice i njihove dimenzije lako se mogu napraviti razneprezentacije ka klijentima što može biti razne informacije za analizu, za donošenje odluka, zakriranje različitih izveštaja.

Page 135: baze it350

 | LearningObject | 40

Slika: Podaci, DWH, OLAP i prezentacija

Kada treba kreirati DWH kreće se prvo izbora podataka. Uzimaju se razni informacija kojidonose informacije u DWH od svih informacija biraju se koje su od interesa. Posle krecepreprocesiranje podataka. U okviru predprocesiranja se dodaj nove vrednosti koje fale kaoinformacije, neke redudatnosti podataka, čiste se podaci i vrši se validacija podataka. Nakontoga se vrši transformacija podataka i integracija u sistem (OLAP kocku). Nakon toga se takosređeni podaci učitavaju u DWH.

Kako izgleda arhitektura DWH-a?Prvo imamo razne izvore informacija(eksterni fajlovi, baze, interni dokumenti, arhive, legacysistemi). Nakon toga ulazimo u proces data staginga gde se vrše transformacije nad ulaznimpodacima i prepakuju se u multidimenzione kocke koji se učitavaju u DWH. U okviru togapostoje izvrsni metapodaci koji definišu DWH. Nakon toga mogu da se vrše razni reporti,analiza kocka, jednostavno da se vrši razni data mining.

Page 136: baze it350

 | LearningObject | 41

Slika: Arhitektura DWH-a

Iako DWH nije alat za izvestaje ipak pomaze u dobijanju adekvatnih izvestaja jer podaciu DWH su jako pogodniji za izvestaje nego kod DB. Imamo DWH i mozemo nad njim daprimenimo neke od komponenata za ekstrakciju informacija. To su najcesce softveri koji senakace na DWH i sposobni su da prolaze kroz činjenice i dimenzije i kreiranju odgovarajućeizveštaje. Podaci mogu biti dostavljeni online ili u okviru mreze preduzeca ili da ih spakujui posalju mailom. Mogu da se kreiraju razni ad hock izveštaji, da se rade razne analize,statističke ili analize rada preduzeća ili može da se radi razni datamining ili istraživanjesistema po dimentijama i činjenicama.

Page 137: baze it350

 | LearningObject | 42

Slika: Dobijanje izveštaja iz DWH

Podaci u DWH su smešteni u dve vrste tabela. Tabele sa činjenicama koje sebi sadrže čineniceo poslu i dimenzionalne tabele prate tabele sa činjenicama i sadrže informacije o činenicamakoje se koriste prilikom davanja upita DWH. Tabele sa činjenicama su centar DWH i okruženesu sa dimenzionim tabelama.

Zvezdasta šema znači da postoji jedna centralna tabela sa činenicama i po jedna tabela zasvaku dimenziju. Dakle centar DWH bi bila tabela sa činenicama Fact Table gde bi postaviliodgovarajuće informacije koje su subjekti posmatranja. A druge tabele bi bile vezane zafact tabelu kao što su u ovom slučaju dimentija vremena, dimenzija prodavnica ili dimenzijaproizvoda.

Page 138: baze it350

 | LearningObject | 43

Slika: Zvezdasta šema

Evo jedne od varijacije zvezdaste šeme. Centralna tabela je sa činenicama i jedna ili višetabela oko nje sa dimenzijama. Dimenzione tabele su dormalizovane i podeljene u dodatnetabele.

Slika: Varijacija zvezdaste šeme

Postoji još jedna vrsta šeme a to je kada su dimenzije zajedničke. Mogu da budu tabela sačinenicama da budu više ali da dele zajedničke tabele sa dimenzijama. Ovaka šema se zovešema konstalacija činenica.

Page 139: baze it350

 | LearningObject | 44

Slika: Šema konstalacija činjenica

Da bi primenili DWH na nekom primeru mora da se uradi čitav niz koraka koji će od postojećebaze podataka napraviti DWH bazu koja će se dalje moći koristiti za analizu, izveštaje itd.Na jednom jednostavnom priemru će biti prikazano kako se od podataka u transakcionojbazi pravi DWH i OLAP kocke. Realna potreba za DWH može da se vidi samo na složenijimprimerima.

Recimo da imamo jedan jednostavan primer baze podataka koja sadrži ocene studenata. ovajmodel je nepogodan za potrebe fakulteta jer ne sarži podatke o:-Smeru-Skolskoj godini-Obrazovnoj instituciji-Nacinu studiranja-Predavacima-Predispitnim obavezama itd...

Page 140: baze it350

 | LearningObject | 45

Slika: Prikaz fizickog modela

Iz aspekta poslovne inteligencije, relevatni podaci mogu biti:-Prosecna ocena-Broj studenata-Broj studenata koji su polozili kurs-Prisustvo na predavanjima i vezbama

Ovi podaci moraju biti odvojeno grupisani po:-Predmetima-Predavacima-Školskim godinama-Tipu nastave

Svaka od pomenutih dimenzija se može grupisati u hijerarhijsku strukturu:-Predmeti se mogu grupisati po smerovima, godini studija i semestru(prolećni/jesenji)-Predavači se mogu grupisati po oblasti (IT, menadžment...) ili stručnoj spremi-Tip nastave se može podeliti na internet i tradicionalnu nastavu

Dimenzije za kurseve bi bila IT i OM. U okviru IT kursevi prve, kursevi druge... U okviru OM istoprva god, druga god... U okviru kurseva prve godine za IT je IT101 i 110...

Kada govorimo o dimenziji predavača možemo ih podeliti na:

Predavače iz menadžmenta, IT-a, Matematike, DIzajna, u okviru svakog imam određenepredavače. Sve je prikazano na sledećoj slici.

Page 141: baze it350

 | LearningObject | 46

Slika: Dimenziona hijerarhija

U OLAP sistemima termin "Kocka" (eng.Cube) se koristi za strukturu podataka sa tri iliviše dimenzija. U našem primeru možemo zamisliti kocku koja predstavlja prosečne ocenestudenata. Dimenzije ove kocke su:-Kursevi-Tipovi nastave-Školske godinePri svakom prikazu kocke potrebno je utvrditi stepen hijerarhije za svaku dimenziju.

Primer kocke:

Recimo da prosečna ocena može da se definiše po:- Smeru- Po školskoj godini- Po tipu nastave.

Obeležene ćelije sadrže vrednsoti prosečne ocene studeneta na smeru SE u školskoj godini2006/07 i na smeru IT u 2004/05.

Page 142: baze it350

 | LearningObject | 47

Slika: Primer kocke

Broj studenata možemo da posmatramo po:-Predmetu-Školskoj godini-Tipu nastave.

Obeležene ćekije sadrže broj studenata tradicionalne nastave na predmetu IT350 u školskojgodini 2006/07 i na predmetu IT110 u 2004/05.

Slika: Primer kocke

U OLAP sistemima, presek kocke (Slice) je višedimenzioni niz koji je podskup višedimenzionogniza (kocke), dobijen fiksiranjem dimenzija koje nisu prikazane na preseku. U našem primeru:

Page 143: baze it350

 | LearningObject | 48

-Fiksiranjem dimenzije "Školska godina" na 2009/10 dobiće se presek sa brojem studenata iliprosečnom ocenom za tu školsku godinu, po predmetu/smeru, po tipu nastave.-Fiksiranjem dimenzija "Tip nastave" na "Tradicionalna" dobiće se presek.

Fiksiranjem dimenzije "Tip nastave" na "Internet" u kocki koja predstavlja prosečnu ocenustudenata dobija se:

Slika: Presek kocke

Lekcija-15-Predavanja

ZaključakSkladišta podataka (Datawarehouse baze podataka) se formiraju izdvajanjem podatakaiz operativnih baza, čiste ih i pripremaju za obradu u poslovnim inteligentnim sistemima.Prečišćeni podaci se pamte u data warehouse bazama podataka korišćenjem data warehouseDBMS-a koji se može razlikovati od DBMS-a operativnih baza.Data warehouse često uključuje podatke koji su kupljeni iz eksternih izvora. Data warehousebaza metapodataka sadrži metapodatake koji se odnose na izvore podataka, njihove formate,predpostavke, ograničenja i druge činjenice.Data mart je kolekcija podataka koja je manja oddata warehouse i koja se odnosi na jednu komponentu ili funkciju poslovanja.Mogu se izdvojiti tri klase korisničkih alata čija je namena pomoći krajnjim korisnicima u“otključavanju” potencijalne vrednosti skladišta podataka: alati za upite i izveštaje (engl.Query and reporting tools), alati za interaktivnu analitičku obradu – OLAP alati i Data miningalati