Tehnologia OLAP. Prep. Daniela-Ioana SANDU, prep. Elena POSDARIE Catedra de Informatica Economica, A.S.E. Bucuresti

Similar documents
Metrici LPR interfatare cu Barix Barionet 50 -

Procesarea Imaginilor

Versionare - GIT ALIN ZAMFIROIU

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

Subiecte Clasa a VI-a

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

GHID DE TERMENI MEDIA

Modalitǎţi de clasificare a datelor cantitative

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

Baze de date distribuite și mobile

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

Mecanismul de decontare a cererilor de plata

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Olimpiad«Estonia, 2003

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

Propuneri pentru teme de licență

ISBN-13:

Multidimensional data analysis using OLAP Technology (1)

R O M Â N I A CURTEA CONSTITUŢIONALĂ

CERERI SELECT PE MAI MULTE TABELE

Managementul referinţelor cu

O caracterizare a sistemelor OLAP actuale

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

CERERI SELECT PE O TABELA

Creare baza de data Deschidem aplicaţia Microsoft Access. Lansarea în execuţie a programului se face urmând calea:

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Auditul financiar la IMM-uri: de la limitare la oportunitate

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Documentaţie Tehnică

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

The First TST for the JBMO Satu Mare, April 6, 2018

INTEROGĂRI ÎN SQL SERVER

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

UNIVERSITATEA ŞTEFAN CEL MARE SUCEAVA

Update firmware aparat foto

Evoluția pieței de capital din România. 09 iunie 2018

CHAMPIONS LEAGUE 2017 SPONSOR:

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

Baza de date: tabele, date. Componentele unei B.D.: tabele, constrangeri, relatii. Entitati ale unei B.D.: formulare, interogari, rapoarte

Relational and Object-Oriented Methodology in Data Bases Systems

EN teava vopsita cu capete canelate tip VICTAULIC

Mai bine. Pentru c putem.

Capete terminale şi adaptoare pentru cabluri de medie tensiune. Fabricaţie Südkabel Germania

DE CE SĂ DEPOZITAŢI LA NOI?

M C I O H L BAZE DE CUNOŞTINŢE A H E O L N S I S T E M E D E R E P R E Z E N A R E Ş I P R O C E S A R E A A C U N O Ş T I N Ţ E L O R

BAZE DE DATE Crearea, gestionarea şi exploatarea bazelor de date spaţiale

Reţele Neuronale Artificiale în MATLAB

[{CYCLE NOCYCLE}] [{CACHE

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

Proiectarea bazelor de date. PL/SQL Înregistrări și Colecții # 13. Adrian Runceanu

Metoda de programare BACKTRACKING

Proiectarea Sistemelor Software Complexe

SGBD Access 2010: Query

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE.

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

SAG MITTIGATION TECHNICS USING DSTATCOMS

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

ACADEMIA DE STUDII ECONOMICE. Integrarea Sistemelor Informatice

Prelucrarea numerică a semnalelor

The driving force for your business.

Universitatea George Bariţiu, Braşov

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig.

Ce este o BAZA DE DATE?

Lucrarea Nr.1. Sisteme de operare. Generalitati

Colegiul Național Calistrat Hogaș Piatra-Neamț LIMBAJUL SQL

Capitolul 4 SUBCERERI. F. Radulescu. Curs: Baze de date - Limbajul SQL

F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

I. CONCEPTE ALE BAZELOR DE DATE RELAŢIONALE

Class D Power Amplifiers

Cuprins Cuprins Bănci şi baze de date Etapele de realizare a unei bănci de date... 17

Consideratii privind structurile de date specifice sistemelor informationale geografice

PACHETE DE PROMOVARE

Laboratorul 3 Lucrul cu baze de date relaționate în Visual C#.NET

X-Fit S Manual de utilizare

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

INPUT MODELLING USING STATISTICAL DISTRIBUTIONS AND ARENA SOFTWARE

COMUNICAȚII INFORMATIZARE

MICROSOFT ACCESS 2007 (DE CĂUTAT???)

Proiectarea bazelor de date # 11. PL/SQL Funcții în PL/SQL (partea a II-a) Adrian Runceanu

STARS! Students acting to reduce speed Final report

DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului produselor pentru construcții UE 305/2011/UE

Programarea rapidă a aplicaţiilor pentru baze de date relaţionale. Lorentz JÄNTSCHI

Ghid. Administratori Portal <SRE> <Sistemul de Relationare Electronica> pentru. Versiunea 0.1. Întocmit de NET BRINEL S.A.

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

UNIVERSITATEA TEHNICĂ din CLUJ-NAPOCA FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE SPECIALIZAREA: Inteligență și viziune artificială.

INFLUENZA ACTIVITY UNITED STATES AND WORLDWIDE, SEASON *

USING MOBILE AGENTS FOR INFORMATION RETRIEVAL IN B2B SYSTEMS

A Die-Linked Sequence of Dacian Denarii

Rem Ahsap is one of the prominent companies of the market with integrated plants in Turkey, Algeria and Romania and sales to 26 countries worldwide.

5.1 Definirea datelor în SQL

2. In the pattern below, which number belongs in the box? 0,5,4,9,8,13,12,17,16, A 15 B 19 C 20 D 21

Transcription:

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 consistent, 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 sa analizeze o baza de date larga sau un depozit de date. Baza de date a unui sistem OLAP este proiectata pentru stocarea datelor de tip static. O unitate de stocare OLAP este o unitate multidimensionala numita cub - spre deosebire de denumirea de tabela din teoria relationala. Cubul permite stocarea datelor agregate si ierarhice. Un cub este format din mai multe dimensiuni pâna la 64 - iar agregarea datelor se face dupa atribute denumite masuri (measures). O dimensiune poate avea mai multe niveluri. De exemplu, daca ne intereseaza vânzarile la un anumit produs pe un anumit semestru al anului, cubul OLAP ne permite sa defalcam/agregam aceste vânzari pe luni, saptamâni si zile. Definitie. Un cub poate fi definit în astfel: 1. O structura de memorare multidimensionala folosita în OLAP care creste viteza de regasire a datelor oferind acces facil la diferite niveluri ale unei ierarhii de date. 2. Un subset de date dintr-un depozit de date, stocat într-o structura multidimensionala. Principalul avantaj în folosirea cuburilor este oferit de raspunsul rapid la cererile complexe datorita modului de organizare a datelor pe dimensiuni si masuri permitând si agregarea acestora. Pentru a întelege mai usor notiunea de cub, sa consideram ca managementul unui magazin de desfacere doreste sa cunoasca evolutia vânzarilor de mere din Detroit între trimestrele 1 si 3. Se vor construi 3 dimensiuni: Product_dim, Time_dim, Location_dim si o masura: Sales_fact. Fig.1. Trei dimensiuni si tabela fact_table

56 Revista Informnatica Economica, nr. 4 (24)/2002 Dimensiunea Product_dim are ca membri toate produsele distribuite de firma. Membrii dimensiunii Time_dim sunt trimestrele anului, iar ai dimensiunii Location_dim localitatile de distributie. Masurile cubului sunt vânzarile sales si unitatile vândute units sold. O masura poate fi orice atribut al depozitului de date cu singura restrictie ca acest atribut trebuie sa fie o data numerica care poate fi însumata, agregata. Desi denumirea înseala, un cub poate avea pâna la 64 de dimensiuni cu tot cu dimensiunea masurilor. Fiecare celula a cubului contine o valoare ce reprezinta intersectia dimensiunilor, fiind de fapt o valoare agregata. Exemplu: o celula ce contine vânzarile de mere din Detroit în trimestrul 3. Fig.2. O celula a unui cub Componentele cubului Componentele unui cub sunt dimensiunile, membrii, celulele, ierarhiile si proprietatile. În cadrul unui cub o dimensiune descrie o axa individuala în cub reprezentând o perspectiva din care pot fi vizualizate datele. De exemplu, vânzarile pot fi vazute dupa data vânzarii sau dupa produsul vândut. Membrul reprezinta o valoare anume a dimensiunii. De exemplu dimensiunea product_dim contine membrii Grapes, Cherrie, Melons, Apples, Peras si All. Membrul all reprezinta totalitatea membrilor dimensiunii. Fiecare celula este identificata de niste coordonate si anume câte un membru din fiecare dimensiune. Daca avem în vedere un cub bidimensional care reprezinta vânzarile unei bacanii, axa Ox reprezinta data vânzarii, axa Oy produsul vândut iar celula, intersectia dintre cele 2 axe, cantitatea vânduta. Î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 lunilor î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 nostru are o dimensiune timp formata din an, trimestru, luna si saptamâna, celula de la intersectia Grapes (struguri) cu Ianuarie 1998 va contine totalul vânzarilor de struguri pentru Ianuarie 1998. Vânzarile totale pentru fiecare produs vor fi stocate pentru fiecare an, trimestru, luna si saptamâna. Fig.3. Dimensiuni din cadrul unui cub Unele dimensiuni pot contine la rândul lor mai multe dimensiuni. Valorile din dimensiunea de timp pot fi agregate dupa ziua saptamânii, dupa zilele de sarbatoare, sau

Revista Informnatica Economica, nr. 4 (24)/2002 57 dupa anotimpuri. Ierarhiile multiple adauga noi puncte de intersectie cu celelalte dimensiuni. Proprietatile reprezinta atributele unui membru al unei dimensiuni. Fig.4. Proprietatea Quarter (trimestru) De exemplu, primul trimestru al unei companii poate începe la 1 Iulie si poate sfârsi la 30 Septembrie. Fiecare nivel al unei ierarhii poate avea un set diferit de proprietati, dar un membru al unui nivel trebuie sa aiba proprietati similare cu ale celorlalti membri ai nivelului, desi proprietatile vor avea valori diferite. De exemplu, la nivelul trimestru fiecare nivel va avea date de început si de sfârsit diferite. Etape în crearea unui cub Primul pas în crearea unui cub este identificarea (daca exista)/ crearea (daca nu exista) a bazelor de date si a surselor de date. La proiectarea unui cub se identifica întâi sursele de date si tabela de masuri: fact table. Masurile pe care le alegem depind de tipul de informatii cerute de utilizator. Fiecare masura este creata dintr-o coloana tabelei fact table (trebuie sa avem grija când cream aceasta tabela, deoarece ea trebuie sa contina toate informatiile care la un moment dat ar putea deveni masuri). Câteva masuri foarte des folosite sunt vânzarile, costurile, productia. Masurile unui cub nu pot fi alese decât dintr-o singura tabela, (tabela de masuri). O masura poate fi si o expresie mai multe coloane ale tabelei pot fi combinate într-o expresie pentru a forma o masura noua. De exemplu: profitul=venit-cheltuieli. SQL Server permite utilizarea atât a coloanelor însumabile cât si a celor neînsumabile drept masuri. Coloanele însumabile sunt coloanele numerice a caror însumare are o anumita semnificatie. Vânzarile zilnice pot fi însumate în vânzari saptamânale sau lunare. Coloanele neînsumabile nu pot fi folosite drept masuri într-un cub deoarece agregarea lor nu are nici o semnificatie. O coloana 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 create dimensiunile. O dimensiune poate fi creata pentru a fi folosita doar de un cub dimensiune privata - sau pentru a fi folosita de mai multe cuburi ale bazei de date dimensiune partajata. Dimensiunile partajate tipice sunt dimensiunile de timp si cele geografice. De exemplu, daca o companie are un numar de puncte de desfacere în diverse tari, iar în cadrul fiecarei tari în diverse orase, ierarhia care defineste aceste locatii poate fi creata o singura data si apoi utilizata ori de câte ori este nevoie. Dimensiunile partajate permit atât evitarea duplicarii dimensiunilor private în cuburi diferite, cât si standardizarea procedurii de calcul a masurilor. Daca pentru toate departamentele organizatiei se foloseste aceeasi dimensiune partajata profit putem fi siguri astfel ca functia de calcul a profitului este aceeasi pentru toate departamentele. Etapele de creare a unei dimensiuni cu Analysis Services sunt: 1. Se specifica daca dimensiunea se creeaza din una sau mai multe tabele. Daca dimensiunea se creeaza dintr-o singura tabela va fi o dimensiune de tip star schema. Daca se creeaza din mai multe tabele va fi o dimensiune snow flake, iar în acest caz toate tabelele trebuie sa provina din aceeasi sursa de date. 2. Se selecteaza tabela/tabelele din care se va crea dimensiunea. 3. Se alege tipul dimensiunii: standard sau dimensiune de timp. 4. Se identifica coloanele din tabele care vor deveni nivelurile dimensiunii. 5. Se stabileste daca dimensiunea va fi partajata sau privata.

58 Revista Informnatica Economica, nr. 4 (24)/2002 Explozia datelor Câmpurile agregate ale cuburilor pot îmbunatati timpul de raspuns la cereri întrucât raspunsul la o cerere exista deja înainte ca cererea sa fie formulata. Agregarile sunt stocate în cub la coordonate specificate de dimensiune. Un numar mare de agregari duce la un timp scazut de raspuns, dar necesita mai mult spatiu de stocare. Numarul de agregari trebuie tinut sub control, altfel apare pericolul exploziei datelor. Cresterea în volum a datelor unui cub este exponentiala cu numarul de va lori agregate adaugate la cubul respectiv. De exemplu, pentru analiza vânzarilor unui produs folosim doua dimensiuni: timp si produs. Dimensiunea timp contine nivelurile zile, luni, trimestre si ani. Pentru fiecare membru al dimensiunii produs vom avea câte o valoare stocata în cub pentru fiecare membru al fiecarui nivel al dimensiunii timp. Daca avem 40000 de produse acest numar trebuie înmultit cu numarul de zile dintr-un an (365) si asa mai departe pentru fiecare dimesiune în parte. Daca ar trebui sa mai adaugam o dimensiune, cubul ar creste în mod exponential, deoarece marimea lui ar trebui multiplicata cu numarul de membri ai noii dimensiuni. Controlul dimensiunii cubului se poate face agregând doar vânzarile zilnice si calculând în mod dinamic vânzarile lunare, anuale si pe semestre. Acesta strategie reduce explozia datelor si nu are nici un efect asupra vitezei de raspuns la cereri. Instrumentul SQL Server care permite agregarea datelor, Wizard-ul pentru Storage Design face si calculul câstigului de performanta pentru un anumit procent de agregari analizând numarul de niveluri pentru fiecare dimensiune si rata parinte-copil pentru fiecare nivel. În general 20% din toate agregarile posibile asigura 80% din performanta. Storage Design ofera trei metode de control a agregarilor: 1. Mai întâi se stabileste spatiul de stocare disponibil iar instrumentul determina ce agregari va stoca. 2. Se stabileste procentul de performanta pe care dorim sa-l obtinem prin agregari si permitem tabelelor cu agregari sa ocupe spatiul de care au nevoie. 3. Determinarea manuala a performantei si spatiului fizic ocupat pe disc urmarind graficul Performance vs. Size pus la dispozitie de wizard cu oprirea acestuia când s-a atins raportul performanta/marime optim. Fig.5. Wizard-ul Storage Designer din cadrul SQL Server 2000 Securitatea cuburilor Securitatea cuburilor presupune autentificarea utilizatorilor, controlul drepturilor de acces si definirea si controlul rolurilor. Autentificarea utilizatorilor se face la nivelul sistemului de operare fiind asigurat de Windows NT/2000 care foloseste schemele normale de autentificare. Controlul accesului la date se face prin acordarea de drepturi de acces atribuite utilizatorilor si rolurilor. Drepturile de acces sunt posibile numai pe sistemele de fisiere NTFS si sunt stocate în liste de control al accesului ACL (access control lists). Accesul la cub poate fi controlat atribuind utilizatorului privilegii de Read sau Admin. Nivelul Read asigura acces read-

Revista Informnatica Economica, nr. 4 (24)/2002 59 only permitând doar vizualizarea datelor si împiedicând modificarea si procesarea lor. Nivelul Admin ofera acces complet pentru a manipula si modifica un cub. În mod implicit, contul utilizator creat la instalarea SQL Server are privilegiile Admin. Rolurile mapeaza conturile utilizator si grupurile din WindowsNT/2000 pe anumite drepturi de accces. Conturile utilizator si grupurile se definesc în WNT User Manager iar apoi pentru fiecare grup în parte se selecteaza rolurile care pot accesa cubul. Structuri de memorare La constructia unui cub se poate alege între trei structuri de memorare: - OLAP Relational (ROLAP); - OLAP Multidimensional (MOLAP); - OLAP Hibrid (HOLAP). Structura de memorare afecteaza atât performanta cât si spatiul fizic ocupat de cub. MOLAP (Multidimensional Online A- nalytical Processing). Structura pastreaza atât o copie a datelor de baza cât si a agregarilor în structuri multidimensionale. A- ceste structuri multidimensionale vor fi stocate în afara depozitului de date. Atunci când se interogheaza un cub, calculele sunt facute în cadrul cubului. Când se creeaza un cub în OLAP Services, daca nu se specifica structura de memorare se considera implicit o structura MOLAP. În cadrul unei structuri MOLAP toate masurile sunt în acelasi articol ceea ce reduce timpul de regasire datorita unor algoritmi specifici de compresie a datelor. Structura MOLAP pastreaza date într-un format ce include segmente rând de 64KB. Structura este folosita atunci când datele sunt frecvent interogate si se cere viteza mare de raspuns. Desi spatiul ocupat pe disc va fi redus, cuburile MOLAP vor ocupa multa memorie interna datorita nivelurilor de agregare numeroase care duc la cresterea dimensiunii acestora. ROLAP (Relational Online Analytical Processing). Structurile ROLAP stocheaza atât baza de date cât si agregarile în tabele ale unei baze de date relationale. Când utilizatorul interogheaza un cub, calculele sunt executate în cadrul acestor tabele. În loc sa pastreze o copie a datelor de baza, ROLAP acceseaza tabelele originale pentru a formula raspunsurile la cereri. Desi un cub este stocat într-o baza de date de tip warehouse datele de baza si agregarile sunt gestionate de serviciile OLAP. Structura ROLAP este formata din tabele ale bazei de date si din indecuri. Pentru fiecare nivel (atribut) al unei dimensiuni se creeaza o tabela iar fiecare masura este o Fig.6. Structura de memorare MOLAP Fig.6. Structura de memorare MOLAP coloana în tabela. OLAP Services creeaza automat pentru fiecare nivel al dimensiunii un index. Avantajele folosirii ROLAP sunt: - eliminarea datelor duplicate; - utilizarea agregarilor existente; - scalabilitate; - suporta SQL Server v2000, Oracle, Microsoft Access, ODBC; - economiseste spatiul pe disc. Este indicat sa se utilizeze ROLAP atunci când datele nu sunt interogate cu o frecventa mare.

60 Revista Informnatica Economica, nr. 4 (24)/2002 Fig.7. Structura de memorare ROLAP HOLAP (Hybrid Online Analytical Processing). Este o combinatie între MOLAP si ROLAP. HOLAP stocheaza datele în tabele relationale în acceasi baza de date în care sunt stocate si tabelele depozitului de date, însa agregarile multidimensionale sunt stocate în afara bazei de date (depozitului de date). Când se executa o interogare asupra cubului calculele sunt executate în cadrul cubului. Structura hibrida este foarte folosita când au loc interogari frecvente ale datelor agregate pe baza unui volum foarte mare de date de baza. O structura HOLAP regaseste rapid datele din cub utilizând acelasi procesor de cereri folosit si de MOLAP însa ocupa mult mai mult spatiu decât acesta (MOLAP). Structurile HOLAP evita duplicarea datelor deoarece datele de baza sunt în tabelele relationale. Fig.8. Structura de memorare HOLAP Bibliografie Bain, Toni SQL Server 2000 Data- Warehousing with Analysis Services, Wrox Press 2001. Patton, Robert Designing SQL Server 2000, Syngress Publishing 2001. Seidman, Claude Data Mining with Microsoft SQL Server 2000, Microsoft Press 2001. Speshoch, Carl Microsoft SQL Server 2000, PrenticeHall 2002. Todman, Chris Designing a data warehouse, PrenticeHall 2001. Microsoft SQL 7.0 Data Warehousing on-line training kitt Microsoft Press 1999.