Documente Academic
Documente Profesional
Documente Cultură
Sandu Posdarie PDF
Sandu Posdarie PDF
4 (24)/2002 55
Tehnologia OLAP
Prep. Daniela-Ioana SANDU, prep. Elena POSDARIE
Catedra de Informatica Economica, A.S.E. Bucuresti
OLAP enables analysts, managers and executives to gain insight into data through fast con-
sistent, interactive access to a wide variety of possible views of information. OLAP transforms
raw data to useful information so that it reflects the real factors affecting or enhancing the
line of business of the enterprise. Nowadays many corporations adopted databases for their
mission-critical data needs, but the queries needed to summarize the data and realize the
management reports are extremely slow because of the large amount of data. The solution is
to separate the data used for reporting and decision making from the operational systems into
a datawarehouse designed and built to house this kind of data.
In this article we proposed to present the general terms used in OLAP. The examples are
made using the Analysis Services component of Microsoft SQL Server 2000.
Keywords: OLAP, cube, fact table, measure, dimension, aggregation, members, cells,
ROLAP, HOLAP, MOLAP.
I ntroducere
On Line Analytical Processing (OLAP)
este tehnologia care permite utilizatorilor
Definitie. Un cub poate fi definit în astfel:
1. O structura de memorare multidimensi-
onala folosita în OLAP care creste viteza
sa analizeze o baza de date larga sau un de regasire a datelor oferind acces facil la
depozit de date. Baza de date a unui sistem diferite niveluri ale unei ierarhii de date.
OLAP este proiectata pentru stocarea date- 2. Un subset de date dintr- un depozit de
lor de tip static. O unitate de stocare OLAP date, stocat într-o structura multidimensi-
este o unitate multid imensionala numita onala.
cub - spre deosebire de denumirea de tabe- Principalul avantaj în folosirea cuburilor
la din teoria relationala. Cubul permite este oferit de raspunsul rapid la cererile
stocarea datelor agregate si ierarhice. Un complexe datorita modului de organizare a
cub este format din mai multe dimensiuni – datelor pe dimensiuni si masuri permitând
pâna la 64 - iar agregarea datelor se face si agregarea acestora.
dupa atribute denumite masuri (measures). Pentru a întelege mai usor notiunea de cub,
O dimensiune poate avea mai multe nive- sa consideram ca managementul unui ma-
luri. gazin de desfacere doreste sa cunoasca
De exemplu, daca ne intereseaza vânzarile evolutia vânzarilor de mere din Detroit în-
la un anumit produs pe un anumit semestru tre trimestrele 1 si 3. Se vor construi 3 di-
al anului, cubul OLAP ne permite sa defal- mensiuni: “Product_dim”, “Time_dim”,
cam/agregam aceste vânzari pe luni, sap- “Location_dim” si o masura: “Sales_fact”.
tamâni si zile.
Dimensiunea “Product_dim” are ca mem- perspectiva din care pot fi vizualizate da-
bri toate produsele distribuite de firma. tele. De exemplu, vânzarile pot fi vazute
Membrii dimensiunii “Time_dim” sunt dupa data vânzarii sau dupa produsul vâ n-
trimestrele anului, iar ai dimensiunii dut.
“Location_dim” localitatile de distributie. Membrul reprezinta o valoare anume a
Masurile cubului sunt vânzarile “sales” si dimensiunii. De exemplu dimensiunea
unitatile vândute “units sold”. O masura “product_dim” contine membrii Grapes,
poate fi orice atribut al depozitului de date Cherrie, Melons, Apples, Peras si All.
cu singura restrictie ca acest atribut trebuie Membrul “all” reprezinta totalitatea mem-
sa fie o data numerica care poate fi însu- brilor dimensiunii.
mata, agregata. Fiecare celula este identificata de niste co-
Desi denumirea înseala, un cub poate avea ordonate si anume câte un membru din fie-
pâna la 64 de dimensiuni cu tot cu dimen- care dimensiune. Daca avem în vedere un
siunea masurilor. Fie care celula a cubului cub bidimensional care reprezinta vânzari-
contine o valoare ce reprezinta intersectia le unei bacanii, axa Ox reprezinta data
dimensiunilor, fiind de fapt o valoare agre- vânzarii, axa Oy produsul vândut iar celu-
gata. la, intersectia dintre cele 2 axe, cantitatea
Exemplu: o celula ce contine vânzarile de vânduta.
mere din Detroit în trimestrul 3. În cadrul fiecarei dimensiuni se pot defini
ierarhii, adica grupari de membri. Un e-
xemplu la îndemâna este gruparea datelor
în saptamâni, a saptamânilor în luni, a luni-
lor în trimestre iar a trimestrelor în ani.
Când se defineste o ierarhie se foloseste
notiunea de nivel. Un nivel descrie ordinea
membrilor, de la nivelul care contine cele
mai multe grupari de date pâna la cel mai
detaliat nivel. De exemplu, daca magazinul
Fig.2. O celula a unui cub nostru are o dimensiune timp formata din
an, trimestru, luna si saptamâna, celula de
Componentele cubului la intersectia “Grapes (struguri)” cu “Ianu-
Componentele unui cub sunt dimensiunile, arie 1998” va contine totalul vâ nzarilor de
membrii, celulele, ierarhiile si proprietati- struguri pentru Ianuarie 1998. Vânzarile
le. În cadrul unui cub o dimensiune descrie totale pentru fiecare produs vor fi stocate
o axa individuala în cub reprezentând o pentru fiecare an, trimestru, luna si sapta-
mâna.
Unele dimensiuni pot contine la rândul lor siunea de timp pot fi agregate dupa ziua
mai multe dimensiuni. Valorile din dimen- saptamânii, dupa zilele de sarbatoare, sau
Revista Informnatica Economica, nr. 4 (24)/2002 57
dupa anotimpuri. Ierarhiile multiple adau- catie. Vânzarile zilnice pot fi însumate în
ga noi puncte de intersectie cu celelalte vânzari saptamânale sau lunare.
dimensiuni. Coloanele neînsumabile nu pot fi folosite
Proprietatile reprezinta atributele unui drept masuri într-un cub deoarece agrega-
membru al unei dimensiuni. rea lor nu are nici o semnificatie. O coloa-
na numerica continând un identificator, (un
numar de cont bancar) nu este însumabila.
Coloanele de acest tip pot fi combinate cu
alte functii – de exemplu functia count –
iar rezultatul poate fi folosit ca o masura.
Dupa identificarea sursele de date trebuie
Fig.4. Proprietatea Quarter (trimestru) create dimensiunile. O dimensiune poate fi
creata pentru a fi folosita doar de un cub –
De exemplu, primul trimestru al unei com- dimensiune privata - sau pentru a fi folosi-
panii poate începe la 1 Iulie si poate sfârsi ta de mai multe cuburi ale bazei de date –
la 30 Septembrie. Fiecare nivel al unei ie- dimensiune partajata.
rarhii poate avea un set diferit de proprie- Dimensiunile partajate tipice sunt dimensi-
tati, dar un membru al unui nivel trebuie sa unile de timp si cele geografice. De exe m-
aiba proprietati similare cu ale celorlalti plu, daca o companie are un numar de
membri ai nivelului, desi proprietatile vor puncte de desfacere în diverse tari, iar în
avea valori diferite. De exemplu, la nivelul cadrul fiecarei tari în diverse orase, ierar-
“trimestru” fiecare nivel va avea date de hia care defineste aceste locatii poate fi
început si de sfârsit diferite. creata o singura data si apoi utilizata ori de
câte ori este nevoie. Dimensiunile partajate
Etape în crearea unui cub permit atât evitarea duplicarii dimensiuni-
Primul pas în crearea unui cub este identi- lor private în cuburi diferite, cât si standar-
ficarea (daca exista)/ crearea (daca nu exis- dizarea procedurii de calcul a masurilor.
ta) a bazelor de date si a surselor de date. Daca pentru toate departamentele organi-
La proiectarea unui cub se identifica întâi zatiei se foloseste aceeasi dimensiune par-
sursele de date si tabela de masuri: “fact tajata “profit” putem fi siguri astfel ca
table”. functia de calcul a profitului este aceeasi
Masurile pe care le alegem depind de tipul pentru toate departamentele.
de informatii cerute de utilizator. Fiecare Etapele de creare a unei dimensiuni cu
masura este creata dintr-o coloana tabelei Analysis Services sunt:
“fact table” (trebuie sa avem grija când 1. Se specifica daca dimensiunea se creea-
cream aceasta tabela, deoarece ea trebuie za din una sau mai multe tabele. Daca di-
sa contina toate informatiile care la un mensiunea se creeaza dintr-o singura tabe-
moment dat ar putea deveni masuri). Câte- la va fi o dimensiune de tip “star schema”.
va masuri foarte des folosite sunt vânzari- Daca se creeaza din mai multe tabele va fi
le, costurile, productia. Masurile unui cub o dimensiune “snow flake”, iar în acest caz
nu pot fi alese decât dintr-o singura tabela, toate tabelele trebuie sa provina din aceeasi
(tabela de masuri). O masura poate fi si o sursa de date.
expresie – mai multe coloane ale tabelei 2. Se selecteaza tabela/tabelele din care se
pot fi combinate într-o expresie pentru a va crea dimensiunea.
forma o masura noua. De exemplu: profi- 3. Se alege tipul dimensiunii: standard sau
tul=venit-cheltuieli. SQL Server permite dimensiune de timp.
utilizarea atât a coloanelor însumabile cât 4. Se identifica coloanele din tabele care
si a celor neînsumabile drept masuri. Co- vor deveni nivelurile dimensiunii.
loanele însumabile sunt coloanele numeri- 5. Se stabileste daca dimensiunea va fi
ce a caror însumare are o anumita semnifi- partajata sau privata.
58 Revista Informnatica Economica, nr. 4 (24)/2002
Fig.5. Wizard -ul Storage Designer din cadrul SQL Server 2000
only permitând doar vizualizarea datelor si atât o copie a datelor de baza cât si a agre-
împiedicând modificarea si procesarea lor. garilor în structuri multidimensionale. A-
Nivelul “Admin” ofera acces complet pen- ceste structuri multidimensionale vor fi
tru a manipula si modifica un cub. În mod stocate în afara depozitului de date. Atunci
implicit, contul utilizator creat la instalarea când se interogheaza un cub, calc ulele sunt
SQL Server are privilegiile Admin. facute în cadrul cubului. Când se creeaza
Rolurile mapeaza conturile utilizator si un cub în OLAP Services, daca nu se spe-
grupurile din WindowsNT/2000 pe anumi- cifica structura de memorare se considera
te drepturi de accces. Conturile utilizator si implicit o structura MOLAP. În cadrul
grupurile se definesc în WNT User Mana- unei structuri MOLAP toate masurile sunt
ger iar apoi pentru fiecare grup în parte se în acelasi articol ceea ce reduce timpul de
selecteaza rolurile care pot accesa cubul. regasire datorita unor algoritmi specifici de
compresie a datelor.
Structuri de memorare Structura MOLAP pastreaza date într-un
La constructia unui cub se poate alege între format ce include segmente rând de 64KB.
trei structuri de memorare: Structura este folosita atunci când datele
- OLAP Relational (ROLAP); sunt frecvent interogate si se cere viteza
- OLAP Multidimensional (MOLAP); mare de raspuns. Desi spatiul ocupat pe
- OLAP Hibrid (HOLAP). disc va fi redus, cub urile MOLAP vor ocu-
Structura de memorare afecteaza atât per- pa multa memorie interna datorita niveluri-
formanta cât si spatiul fizic ocupat de cub. lor de agregare numeroase care duc la cres-
• MOLAP (Multidimensional Online A- terea dimensiunii acestora.
nalytical Processing). Structura pastreaza
• HOLAP (Hybrid Online Analytical au loc interogari frecvente ale datelor agre-
Processing). Este o combinatie între gate pe baza unui volum foarte mare de da-
MOLAP si ROLAP. HOLAP stocheaza te de baza.
datele în tabele relationale în acceasi baza O structura HOLAP regaseste rapid datele
de date în care sunt stocate si tabelele de- din cub utilizând acelasi procesor de cereri
pozitului de date, însa agregarile multidi- folosit si de MOLAP însa ocupa mult mai
mensionale sunt stocate în afara bazei de mult spatiu decât acesta (MOLAP).
date (depozitului de date). Când se executa Structurile HOLAP evita duplicarea date-
o interogare asupra cubului calculele sunt lor deoarece datele de baza sunt în tabelele
executate în cadrul cubului. relationale.
Structura hibrida este foarte folosita când