Sunteți pe pagina 1din 6

Revista Informnatica Economica, nr.

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.

Fig.1. Trei dimensiuni si tabela “fact_table”


56 Revista Informnatica Economica, nr. 4 (24)/2002

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.

Fig.3. Dimensiuni din cadrul unui cub

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

Explozia datelor dimensiunii cubului se poate face agregând


Câmpurile agregate ale cuburilor pot îm- doar vânzarile zilnice si calculând în mod
bunatati timpul de raspuns la cereri întrucât dinamic vânzarile lunare, anuale si pe se-
raspunsul la o cerere exista deja înainte ca mestre. Acesta strategie reduce explozia
cererea sa fie formulata. Agregarile sunt datelor si nu are nici un efect asupra vitezei
stocate în cub la coordonate specificate de de raspuns la cereri. Instrumentul SQL
dimensiune. Un numa r mare de agregari Server care permite agregarea datelor,
duce la un timp scazut de raspuns, dar ne- Wizard-ul pentru Storage Design face si
cesita mai mult spatiu de stocare. Numarul calculul câstigului de performanta pentru
de agregari trebuie tinut sub control, altfel un anumit procent de agregari analizând
apare pericolul exploziei datelor. Cresterea numarul de niveluri pentru fiecare dimen-
în volum a datelor unui cub este expone n- siune si rata parinte-copil pentru fiecare
tiala cu numarul de va lori agregate adauga- nivel. În general 20% din toate agregarile
te la cubul respectiv. De exemplu, pentru posibile asigura 80% din performanta.
analiza vânzarilor unui produs folosim do- Storage Design ofera trei metode de con-
ua dimensiuni: “timp” si “produs”. Di- trol a agregarilor:
mensiunea “timp” contine nivelurile zile, 1. Mai întâi se stabileste spatiul de stocare
luni, trimestre si ani. Pentru fiecare mem- disponibil iar instrumentul determina ce
bru al dimensiunii “produs” vom avea câte agregari va stoca.
o valoare stocata în cub pentru fiecare 2. Se stabileste procentul de performanta
membru al fiecarui nivel al dimensiunii pe care dorim sa- l obtinem prin agregari si
“timp”. Daca avem 40000 de produse acest permitem tabelelor cu agregari sa ocupe
numar trebuie înmultit cu numarul de zile spatiul de care au nevoie.
dintr- un an (365) si asa mai departe pentru 3. Determinarea manuala a performantei si
fiecare dimesiune în parte. Daca ar trebui spatiului fizic ocupat pe disc urmarind gra-
sa mai adaugam o dimensiune, cubul ar ficul “Performance vs. Size” pus la dispo-
creste în mod exponential, deoarece mari- zitie de wizard cu oprirea acestuia când s-a
mea lui ar trebui multiplicata cu numarul atins raportul performanta/marime optim.
de membri ai noii dimensiuni. Controlul

Fig.5. Wizard -ul Storage Designer din cadrul SQL Server 2000

Securitatea cuburilor Controlul accesului la date se face prin


Securitatea cuburilor presupune autentifi- acordarea de drepturi de acces atribuite uti-
carea utilizatorilor, controlul drepturilor de lizatorilor si rolurilor. Drepturile de acces
acces si definirea si controlul rolurilor. sunt posibile numai pe sistemele de fisiere
Autentificarea utilizatorilor se face la nive- NTFS si sunt stocate în liste de control al
lul sistemului de operare fiind asigurat de accesului ACL (access control lists).
Windows NT/2000 care foloseste schemele Accesul la cub poate fi controlat atribuind
normale de autentificare. utilizatorului privilegii de Read sau Ad-
min. Nivelul “Read” asigura acces read-
Revista Informnatica Economica, nr. 4 (24)/2002 59

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

Fig.6. Structura de memorare MOLAP


Fig.6. Structura de memorare MOLAP
• ROLAP (Relational Online Analytical coloana în tabela. OLAP Services creeaza
Processing). Structurile ROLAP stocheaza automat pentru fiecare nivel al dimens iunii
atât baza de date cât si agregarile în tabele un index.
ale unei baze de date relationale. Când uti- Avantajele folosirii ROLAP sunt:
lizatorul interogheaza un cub, calculele - eliminarea datelor duplicate;
sunt executate în cadrul acestor tabele. În - utilizarea agregarilor existente;
loc sa pastreze o copie a datelor de baza, - scalabilitate;
ROLAP acceseaza tabelele originale pen- - suporta SQL Server v2000, Oracle, Mi-
tru a formula raspunsurile la cereri. Desi crosoft Access, ODBC;
un cub este stocat într-o baza de date de tip - economiseste spatiul pe disc.
warehouse datele de baza si agregarile sunt Este indicat sa se utilizeze ROLAP atunci
gestionate de serviciile OLAP. când datele nu sunt interogate cu o frec-
Structura ROLAP este formata din tabele venta mare.
ale bazei de date si din indecuri. Pentru fie-
care nivel (atribut) al unei dimensiuni se
creeaza o tabela iar fiecare masura este o
60 Revista Informnatica Economica, nr. 4 (24)/2002

Fig.7. Structura de memorare ROLAP

• 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

Fig.8. Structura de memorare HOLAP

Bibliografie • Speshoch, Carl – Microsoft SQL Server


• Bain, Toni – SQL Server 2000 Data- 2000, PrenticeHall 2002.
Warehousing with Analysis Services, Wrox • Todman, Chris – Designing a data
Press 2001. warehouse, PrenticeHall 2001.
• Patton, Robert – Designing SQL Server • Microsoft SQL 7.0 Data Warehousing
2000, Syngress Publishing 2001. on-line training kitt – Microsoft Press
• Seidman, Claude – Data Mining with 1999.
Microsoft SQL Server 2000, Microsoft
Press 2001.

S-ar putea să vă placă și