Documente Academic
Documente Profesional
Documente Cultură
7.6. Lansarea în execuţie a unui briefing sau a unei pagini ................................................ 212
9.2. Studiul şi analiza procesului decizional curent şi a cerinţelor informaţionale ...... 254
6
Sisteme OLAP-sisteme suport de decizie moderne
7
Iniţiere în tehnologia OLAP-teorie şi practică
Tabelul 1.1
Definiţii ale conceptului de SSD
Sursa Definirea unui SSD
Sprague, Carlson Tipul problemei şi funcţia sistemului
Little Funcţia sistemului
Alter Obiectivele sistemului
Moore, Chang Facilităţile sistemului
Keen Procesul de dezvoltare
Bonczek Componentele sistemului
Holsapple, Whinston Caracteristicile sistemului
Turban O combinare a definiţiilor date de Alter, Moore,
Bonczek, Sprague
8
Sisteme OLAP-sisteme suport de decizie moderne
9
Iniţiere în tehnologia OLAP-teorie şi practică
10
Sisteme OLAP-sisteme suport de decizie moderne
11
Iniţiere în tehnologia OLAP-teorie şi practică
12
Sisteme OLAP-sisteme suport de decizie moderne
13
Iniţiere în tehnologia OLAP-teorie şi practică
14
Sisteme OLAP-sisteme suport de decizie moderne
15
Iniţiere în tehnologia OLAP-teorie şi practică
16
Sisteme OLAP-sisteme suport de decizie moderne
Tabelul 1.4
Analiză comparativă între depozitele de date şi centrele de date
Depozitul de date Centru de date
Se foloseşte: la nivel de organizaţie, pentru firme mici, la nivel
pentru firme mari de departament
Domenii multiple un singur domeniu
Surse de date numeroase puţine
Dimensiunea 100 Gb-Tb < 100 Gb
Timpul de ani luni
implementare
17
Iniţiere în tehnologia OLAP-teorie şi practică
mai mare diferenţa între deciziile bune şi cele greşite, cu atât este mai important de
a avea informaţii bune. Majoritatea firmelor investesc mult în tehnologiile
informatice. Informaţiile bune trebuie să fie corecte, curente, complete şi uşor de
înţeles. Prima cerinţă funcţională a sistemelor OLAP decurge din aceste cerinţe
generale pentru prelucrarea informaţiei: să ofere informaţii corecte, curente,
complete şi uşor de înţeles.
Activităţile operaţionale şi cele de analiză orientată pe decizie constituie
nucleul activităţii unei firme, independent de mărimea ei, domeniul de activitate,
forma legală. Cumpărarea, vânzarea, producţia şi transportul sunt exemple de
activităţi operaţionale. Informaţiile despre vânzări, producţie şi costuri pot fi
înregistrate şi gestionate în una sau mai multe baze de date, folosite pentru scopuri
operaţionale. Activităţile operaţionale se execută la un interval relativ constant.
Datele sunt citite şi actualizate frecvent şi reprezintă o fotografie curentă a ceea ce
se întâmplă în firmă. Fiecare cerere foloseşte un volum mic de informaţii iar natura
ei este în general previzibilă.
Monitorizarea, evaluarea, compararea, planificarea şi alocarea strategică a
resurselor sunt exemple de activităţi de analiză. Informaţia generată prin activităţile
de analiză este orientată pe decizie, deoarece este într-o formă ce o face imediat
utilizabilă în procesul decizional. Orientarea spre decizie a analizei este esenţială.
Multe activităţi operaţionale sunt orientate pe decizie, fără a se baza pe analiză. De
exemplu dacă un client doreşte o creştere a creditului, trebuie luată o decizie. Dacă
înregistrarea corespunzătoare clientului menţionează că s-a ajuns la limita cardului,
decizia este NU. Informaţia despre credit a fost orientată pe decizie, dar nici o
analiză nu a fost implicată în decizie.
Cu o frecvenţă mai mică, managerii şi analiştii pot pune întrebări analitice cum
ar fi: “Ce produse au fost cele mai profitabile pentru firmă, în acest an?” “Care
este profitul firmei în acest trimestru faţă de acelaşi trimestru al anului trecut?”
etc. Răspunsurile la aceste tipuri de întrebări reprezintă informaţii ce sunt bazate pe
analiză şi orientate pe decizie. Datele sunt mai mult citite decât actualizate în aceste
activităţi. Cererile analitice folosesc date derivate şi natura lor nu este întotdeauna
previzibilă. Diferenţele între activităţile operaţionale şi cele orientate pe decizie şi
bazate pe analiză sunt prezentate în tabelul 1.5. Ca urmare a acestor diferenţe,
majoritatea firmelor folosesc instrumente diferite pentru cele două tipuri de
activităţi :
pentru a asigura eficienţă maximă în ambele activităţi;
pentru a realiza actualizare rapidă în activităţile tranzacţionale şi calcul
rapid în activităţile de analiză.
18
Sisteme OLAP-sisteme suport de decizie moderne
Tabelul 1.5
Analiză comparativă între activităţile operaţionale
şi cele orientate pe decizie şi bazate pe analiză
Activităţi operaţionale Activităţi orientate pe decizie
şi bazate pe analiză
Mai frecvente Mai puţin frecvente
Mai previzibile Mai puţin previzibile
Volume mai mici de date pe cerere Volume mai mari de date pe cerere
Utilizează mai mult date de bază Utilizează mai mult date derivate
Utilizează datele cele mai curente Utilizează date istorice şi date
curente
19
Iniţiere în tehnologia OLAP-teorie şi practică
Pentru acces eficient maxim, sistemele OLAP trebuie să ofere combinaţia corectă
de rezultate antecalculate şi calculate la momentul interogării. Sistemele OLAP
stochează date istorice, curente, de detaliu sau agregate.
Tabelul 1.6
Locul sistemelor OLAP în SSDOD-uri
Scopuri Colecţii Multe Mulţi Mulţi
mari de niveluri factori utilizatori
date
Oportunitate Acces rapid OLAP OLAP OLAP DW
Calcule rapide OLAP OLAP OLAP OLAP
Acurateţe Date de bază DW DW DW DW
exacte
Expresivitate OLAP OLAP OLAP
de calcul
Inteligibilitate Interfaţă OLAP OLAP OLAP
prietenoasă
Viziuni OLAP OLAP OLAP
flexibile
20
Sisteme OLAP-sisteme suport de decizie moderne
Sistemele OLAP sunt cel mai potrivit mediu pentru implementarea modelelor
de afaceri (business models) ce aplică principiile dinamice ale sistemelor. Pentru
a putea fi folosite efectiv, modelele trebuie să fie accesate şi manipulate uşor.
Sistemele OLAP oferă aceste facilităţi.
Încă din anii ‘70-’80, s-au dezvoltat sisteme informatice ce au permis analiză
multidimensională, înainte de a fi cunoscute sub numele de sisteme OLAP.
Principalele eforturi în dezvoltarea tehnologiei OLAP pot fi prezentate cronologic
după cum urmează :
În 1962 Ken Iverson, în cartea sa “A programming Language”, descrie primul
limbaj multidimensional, limbajul APL. Acest limbaj a fost implementat de IBM pe
mainframe-uri, la sfârşitul anilor ’60. Multe din conceptele acestui limbaj sunt
folosite şi astăzi (de exemplu, Adaytum Planning şi Lex 2000 folosesc limbajul
APL).
La sfârşitul anilor ’60, John Little, doctor în fizică, Len Lodish, tânăr specialist
în marketing la Massachusetts Institute of Technology Sloan School şi Glen Urban,
decanul de la Sloan School, au încercat să utilizeze calculatoarele în aplicaţii
matematice şi analitice. Au încercat utilizarea analiticului în marketing, în special
în marketingul bunurilor de consum. Aceasta era o arie ideală de investigaţie,
deoarece exista un volum mare de date brute neprelucrate şi procesul decizional
putea fi îmbunătăţit prin înţelegerea mai bine a datelor. Efortul lor a condus la
apariţia sistemelor de gestiune a deciziilor (Management Decision Systems), în
1974. MDS-urile erau utilizate în special pentru crearea de modele matematice
pentru analize de marketing. A fost o muncă complexă de programare în Fortran,
care a avut ca rezultat o bibliotecă de funcţii analitice şi facilităţi de stocare a
matricilor pe disc. John Wirts a considerat că biblioteca de subrutine ar putea fi
generalizată şi că facilităţile analitice ar putea fi îmbunătăţite mult, pentru
utilizatorul final, prin adăugarea facilităţilor de gestiune a datelor. Acesta a fost un
important pas în dezvoltarea primelor sisteme OLAP.
În 1972 funcţiile analitice şi facilităţile de gestiune a datelor au fost integrate
într-un limbaj, limbajul Express. După 30 de ani, Express rămâne una din
principalele tehnologii OLAP folosite, conceptele şi modelul de date fiind
neschimbate.
La începutul anilor ’70, firma Comshare a ales analiza financiară ca o activitate
centrală. Firma a achiziţionat un limbaj de modelare financiară numit FCS de la o
firmă de software britanică (EPS Consultants). Specialiştii firmei au căutat să facă
din limbajul FCS, un limbaj care să satisfacă cerinţele utilizatorilor pentru analiza
multidimensională.
În 1978-1979, Comshare a considerat necesară trecerea la o nouă generaţie de
limbaj de modelare financiară, realizată prin combinarea funcţiilor analitice de
modelare cu tehnologia gestiunii datelor, în scopul de a gestiona volume mult mai
21
Iniţiere în tehnologia OLAP-teorie şi practică
22
Sisteme OLAP-sisteme suport de decizie moderne
categorie de software mai bine înţeleasă şi cunoscută. După 8 luni de muncă, patru
fabricanţi de software au format consiliul OLAP (OLAP Council) cu scopul a
elimina confuziile şi de a face sistemele OLAP mult mai atrăgătoare pe piaţă, prin
stabilirea unor standarde deschise (OLAP API). Consiliul OLAP definea conceptul
de OLAP ca “o categorie de instrumente software, care permit analiştilor,
managerilor şi directorilor să înţeleagă esenţa datelor printr-un acces rapid,
consistent şi interactiv la o mare varietate de viziuni posibile ale informaţiilor,
care au fost obţinute prin tranformarea datelor primare astfel încât să reflecte
dimensiunile reale ale întreprinderii aşa cum o percepe şi o înţelege utilizatorul”.
În 1997 apare Microsoft OLEDB for OLAP, un standard OLAP API dezvoltat
de Microsoft, ca un set de obiecte COM şi interfeţe destinate a oferi acces la
sursele de date multidimensionale prin OLEDB. OLEDB for OLAP dezvoltă un
model pentru cuburi şi dimensiuni, oferă un limbaj MDX (multidimensional
expressions) pentru calcul şi vizualizare a cuburilor şi este utilizat de peste 40 de
firme.
În 1997 apare standardul MDIS (Metadata Interchange Specification) propus
de un grup de firme (IBM, Sybase, Informix) care oferă un mecanism standard de
acces şi o interfaţă standard pentru a gestiona metadatele.
În 1998 apare IBM DB2 OLAP Server, o versiune a lui Essbase, care utilizează
date stocate în baze de date relaţionale (schemă stea).
În 1999 apare Microsoft OLAP Services (numit iniţial Plato sau Decision
Support Services) ce utilizează o tehnologie achiziţionată de la Panorama Software
Systems şi cu o arhitectură de stocare complexă (ROLAP/MOLAP/HOLAP).
În 2000 Microsoft redenumeşte Microsoft OLAP Services ca Microsoft
Analysis Services.
În 2002 Oracle lansează Oracle9i Release 2 OLAP care integrează toate
facilităţile OLAP (Analytical Workspace) în baza de date relaţională Oracle.
Indiferent de tipul de arhitectură implementat, sistemele OLAP prezintă datele
la utilizator într-un model de date multidimensional, iar cererile sunt formulate
utilizând paradigma multidimensională. Începând cu 1995 cercetătorii, din diferite
domenii de aplicaţii, au propus o serie de modele multidimensionale şi limbaje de
interogare corespunzătoare. Multe din modelele propuse sunt extensii ale
modelului relaţional. De exemplu, Gray [GRAY96] propune operatorul CUBE care
generalizează clauza GROUP BY din limbajul SQL, o abordare foarte pragmatică,
potrivită pentru aplicaţiile OLAP. Modelul lui Li şi Wang [LIWA96] şi modelul lui
Gyssens şi Lakshmanan [GYSS97] constituie o extensie a algebrei relaţionale, iar
modelul lui Agrawal, Gupta şi Sarawagi [AGRA97] şi modelul lui Cabbibo şi
Torlone [CABB97] sunt modele orientate pe cub. Cele mai multe dintre ele sunt
modele de date logice şi numai câteva pot fi considerate pur conceptuale. Dar
fiecare model prezintă o viziune proprie a cerinţelor analizei multidimensionale, o
terminologie şi un formalism propriu.
23
Iniţiere în tehnologia OLAP-teorie şi practică
Sistemele OLAP şi depozitele de date fac parte din categoria sistemelor suport
de decizie orientate pe date şi sunt similare. Totuşi depozitul de date pune accentul
pe procesele ce asigură consistenţa, corectitudinea şi valabilitatea datelor la
utilizatori, iar sistemele OLAP pun accentul pe cerinţele analitice şi procesele de
modelare şi calcul necesare. Bill Inmon părintele conceptului de data warehouse a
sugerat că scopul unui depozit de date este de a asigura consistenţa şi
corectitudinea datelor utilizate în întreprindere, accesibile utilizatorilor finali.
Valoarea unui depozit de date constă în calitatea informaţiilor livrate utilizatorului
final şi nu în cantitatea de date stocate în depozit. Aaron Zornes, un analist
proeminent, a numit depozitele de date monolitice “închisori de date” (data
jailhouses).
Tabelul 1.7 prezintă o analiză comparativă între datele operaţionale şi cele
necesare pentru suport decizional, realizată de Bill Inmon [INMO92], iar tabelul
1.8 prezintă o analiză comparativă între sistemele tranzacţionale şi sistemele
OLAP, realizată de Jeff Stamen, vicepreşedinte pentru Oracle OLAP Division
[THOM96], la care s-au adaugat şi alte criterii de comparare.
Tabelul 1.7
Analiză comparativă între datele operaţionale
şi datele necesare pentru suport decizional
24
Sisteme OLAP-sisteme suport de decizie moderne
Tabelul 1.8
Analiză comparativă între sistemele OLTP şi sistemele OLAP
Caracteristici Aplicaţie
Procesarea tranzacţională Procesarea
(OLTP) analitică (OLAP)
Volum de date pe mic mare
tranzacţie
Orientarea înregistrări atribute
Modul de afişare pe ecran nemodificabil definit de utilizator
Operaţii tipice actualizare analiză
Nivelul datelor detaliu agregate
Orizontul de timp curente istorice
Scopul operaţional analiză
Tip de acces citire/scriere citire/scriere
Structura datelor normalizată dimensională,
ierarhică
Investiţii hardware moderate la scumpe minime la moderate
Durata de implementare luni săptamâni/luni
Termenul de OLAP a fost folosit prima dată în septembrie 1993 de către Codd,
în articolul “Providing OLAP (On-line Analytical Processing) to User-Analysts: An
IT Mandate”. Cele 12 reguli, mai târziu considerate ca facilităţi (caracteristici) ale
sistemelor OLAP au fost extinse la 18, în mai 1995 [CODD93]:
Caracteristici de bază
Regula 1: O viziune conceptuală multidimensională. Codd consideră că
viziunea utilizatorului asupra întreprinderii este multidimensională şi de aceea,
viziunea conceptuală a modelelor OLAP trebuie să fie, de asemenea,
25
Iniţiere în tehnologia OLAP-teorie şi practică
26
Sisteme OLAP-sisteme suport de decizie moderne
Caracteristici speciale
Regula 9: Denormalizarea datelor. Codd sugerează că prelucrarea datelor într-
un mediu OLAP nu trebuie să afecteze datele externe ce servesc ca sursă.
Instrumentele OLAP sunt folosite pentru a procesa colecţii mari de date, actualizate
periodic, de aceea trebuie să aibă abilitatea de a stabili legături persistente cu
sursele externe de date, pentru a asigura sincronizarea între sursele externe şi
hypercub (cubul de date). Deoarece sistemele OLAP sunt în general separate de
sistemele sursă, legăturile servesc ca funcţii de transformare. Ele indică cum se
transformă datele din tabele sau foi de calcul tabelar în date multidimensionale.
Legăturile pot descrie relaţii structurale, atributele membrilor sau conţinutul
hypercuburilor. Legăturile pot fi unidirecţionale (de citire) sau bidirecţionale
(citire/scriere). Unele instrumente OLAP oferă suport pentru legături bidirecţionale
(de exemplu Essbase). Legăturile oferă o infrastructură persistentă pentru
importarea şi exportarea datelor şi a metadatelor. Ele variază în functie de tipul
informaţiei adusă în cub şi de tipul sursei de date, de la care informaţia este
obţinută.
27
Iniţiere în tehnologia OLAP-teorie şi practică
Regula 11: Manipularea valorilor lipsă. Valorile lipsă sunt diferite de valorile
zero şi cele invalide. Termenul de împrăştiere a fost utilizat cu semnificaţia de
valoare lipsă, valoare inaplicabilă şi valoare zero. Primele două cazuri sunt
considerate date invalide (conceptul de null). Codd sugerează că modelele OLAP
respectă regula privind valorile null, a modelului relaţional. Existenţa unui număr
mare de valori zero nu este totuşi un exemplu real de împrăştiere. Valoarea zero
este validă ca orice alt număr. Confuzia a apărut deoarece în aplicaţiile OLAP
apare un număr mare de valori zero, precum şi volume mari de date lipsă şi
invalide. Tehnicile pentru optimizarea fizică a stocării unui număr mare de valori
repetate sunt similare şi uneori aceleaşi cu tehnicile pentru optimizarea fizică a
stocării de volume mari de date lipsă şi invalide. Totuşi valorile lipsă şi cele
invalide nu sunt date valide. Ele nu pot fi tratate în acelaşi mod ca orice altă
valoare. De aceea, sunt necesare tehnici speciale pentru aceste cazuri. Tratamentul
impropriu al valorilor null poate cauza calcule incorecte. Acurateţea calculelor este
de o importanţă crucială pentru analiza oricărui set de date, indiferent că este sau
nu multidimensional. Problema tratării datelor împrăştiate este una foarte
importantă şi este frecvent dezbătută în domeniul bazelor de date. Cele două tipuri
de date (lipsă şi invalide) trebuie totuşi să fie tratate individual, deoarece ele
afectează calculele în moduri diferite.
Regula 12: Modul de tratare al valorilor lipsă. Valorile lipsă sunt ignorate de
instrumentul OLAP, indiferent de sursa lor.
Modul de prezentare al datelor
Regula 13: Flexibilitatea rapoartelor. Codd consideră că orice subset de
membri ai unei dimensiuni poate fi mapat la orice rând, coloană sau pagină a
ecranului de afişare. Cu alte cuvinte, aranjamentul axelor în raportare trebuie să fie
la libera alegere a utilizatorului.
Regula 14: Performanţa raportării. Codd sugerează că performanţa raportării
nu trebuie să varieze semnificativ cu numărul de dimensiuni sau mărimea bazei de
date. Principalii factori care afectează performanţa raportării sunt: modul cum sunt
realizate calculele (antecalculate sau la momentul interogării) şi locul unde sunt
procesate calculele (client/server). Aceşti factori sunt mai importanţi decât
mărimea bazei de date, numărul de dimensiuni sau complexitatea raportului.
Regula 15: Ajustarea automată a nivelului fizic. Codd cere sistemelor OLAP
să-şi modifice automat schema fizică a bazei de date, în funcţie de tipul modelului
logic şi de volumul datelor. Sistemele MOLAP nu au încă o tehnologie pentru
stocarea şi gestionarea datelor unanim acceptată. Stocarea fizică a datelor
multidimensionale, precum şi fenomenul de împrăştiere sunt preocupări majore în
domeniul bazelor de date multidimensionale. O tehnică de stocare a datelor optimă
trebuie să ţină cont de mulţi factori dinamici şi anume:
profilul datelor şi volumul lor (numărul de dimensiuni şi membrii ai
dimensiunilor, tipuri de date etc);
28
Sisteme OLAP-sisteme suport de decizie moderne
Controlul dimensiunilor
Regula 16: Dimensionalitate generică. Codd consideră că dimensiunile
trebuie să fie echivalente structural şi operaţional. Cu alte cuvinte să permită
ierarhii multiple şi toate tipurile de operaţii multidimensionale şi în acelaşi timp să
poate fi actualizate (adăugarea/ştergerea unui membru, adăugarea/ştergerea unei
ierarhii, modificarea unui membru/ierarhie etc).
29
Iniţiere în tehnologia OLAP-teorie şi practică
30
Sisteme OLAP-sisteme suport de decizie moderne
31
Iniţiere în tehnologia OLAP-teorie şi practică
Sisteme MOLAP
Alte stocuri
de informaţii
Web, Internet/Intranet
32
Sisteme OLAP-sisteme suport de decizie moderne
Gestiunea metadatelor
Accesul
interfeţele aplicaţiilor servere de aplicaţii
administrare
Gestiunea datelor
Depozit Centre de Alte
central date stocuri de
informaţii
33
Iniţiere în tehnologia OLAP-teorie şi practică
Rezumat
Un SSD este “un sistem informatic interactiv, flexibil şi adaptabil, special
proiectat pentru a oferi suport în soluţionarea unor probleme manageriale
nestructurate sau semistructurate, cu scopul de a îmbunătăţi procesul decizional.
Sistemul utilizează date (interne şi externe) şi modele, oferă o interfaţă simplă şi
uşor de utilizat, permite decidentului să controleze procesul decizional şi oferă
suport pentru toate etapele procesului decizional”.
Power propune o nouă clasificare (la nivel conceptual) a SSD-urilor în: SSD-
uri orientate pe comunicaţie, SSD-uri orientate pe date, SSD-uri orientate pe
documente, SSD-uri orientate pe cunoştinţe şi SSD-uri orientate pe modele.
Un SSDOD este un sistem informatic interactiv care-i ajută pe manageri să
utilizeze baze de date de dimensiuni foarte mari ce conţin date preluate din surse
interne şi externe ale organizaţiilor.
Principalele categorii de sisteme suport de decizie orientate pe date sunt:
sistemele informatice executive, sistemele suport de decizie spaţiale, sistemele
suport de decizie care utilizează depozite de date, sistemele OLAP.
Sistemele informatice executive sunt sisteme suport de decizie la nivel de
întreprindere care îi ajută pe manageri să analizeze, să compare şi să pună în
evidenţă tendinţele, să monitorizeze performanţele şi să identifice oportunităţile şi
problemele cu care se confruntă organizaţia.
Sistemele suport de decizie spaţiale îi ajută pe manageri să acceseze, afişeze şi
analizeze datele care au conţinut geografic şi-au aplicabilitate în domenii ca
geologie, industria forestieră, agricultură.
Depozitul de date este „o colecţie de date orientată pe subiect, integrată,
dependentă de timp şi nevolatilă, destinată pentru a susţine procesul decizional
dintr-o organizaţie.”
Sistemele OLAP reprezintă o categorie importantă de sisteme suport de decizie
orientate pe date.
Principalele obiective ale sistemelor OLAP sunt: access rapid şi calcule
rapide, facilităţi analitice puternice (analize ad-hoc foarte rapide), interfaţă
prietenoasă şi prezentări flexibile, permit prelucrarea unor volume mari de date
(1-500 Gb), cu multe niveluri de detaliu, în mediu multiutilizator.
Consiliul OLAP definea conceptul de OLAP ca “o categorie de instrumente
software, care permit analiştilor, managerilor şi directorilor să înţeleagă esenţa
datelor printr-un acces rapid, consistent şi interactiv la o mare varietate de viziuni
posibile ale informaţiilor, care au fost obţinute prin tranformarea datelor primare
astfel încât să reflecte dimensiunile reale ale întreprinderii aşa cum o percepe şi o
înţelege utilizatorul”.
Termenul de OLAP a fost folosit prima dată în septembrie 1993 de către Codd,
în articolul “Providing OLAP (On-line Analytical Processing) to User-Analysts:
An IT Mandate”, care a şi propus 18 reguli, mai târziu considerate ca facilităţi
(caracteristici) ale sistemelor OLAP.
34
Sisteme OLAP-sisteme suport de decizie moderne
Cele mai comune domenii de aplicaţii pentru sistemele OLAP sunt analiza şi
modelarea financiară, cercetarea şi analiza pieţei. Singurul principiu arhitectural
ce caracterizează sistemele OLAP este multidimensionalitatea.
Sistemele informatice pentru inteligenţa afacerilor sunt de fapt sisteme suport
de decizie moderne la nivel de organizaţie, care utilizează noile tehnologii
informatice. Termenul de sistem informatic pentru inteligenţa afacerilor este de
fapt un termen “umbrelă” utilizat de specialişti pentru o categorie mai vastă de
sisteme suport de decizie ce integrează toate facilităţile oferite de depozitele de
date, instrumentele OLAP, instrumentele data mining, Web-ul etc.
Cuvinte cheie
Sisteme suport de decizie, sisteme suport de decizie orientate pe date, sisteme
suport de decizie orientate pe Web, sisteme informatice executive, depozite de date,
sisteme OLAP, sisteme informatice pentru inteligenţa afacerilor, sisteme suport de
decizie spaţiale, centre de date.
35
Capitolul 2
Modele de date multidimensionale
pentru sisteme OLAP
Economia din zilele noastre este caracterizată de o creştere substanţială a
competiţiei între întreprinderi. Pentru a face faţă acestei competiţii acerbe,
managerii trebuie să ia decizii strategice corecte, bazate pe informaţii reale. Astfel,
informaţia devine un factor de producţie esenţial. Factorii care au condus la aceasta
situaţie sunt: creşterea complexităţii structurii întreprinderilor, a relaţiilor între
firme, crearea de noi procese de afaceri, redirecţionarea proceselor de afaceri
existente către client, globalizarea pieţelor, clienţilor şi întreprinderilor şi apariţia
de noi tehnologii cum ar fi Internetul sau comerţul electronic.
Instrumentele OLAP sunt utilizate frecvent în sistemele suport de decizie,
deoarece permit analiza interactivă a datelor multidimensionale. Avantajul lor
principal este că sunt apropiate de modul de gândire al analiştilor şi îmbunătăţesc
performanţa execuţiei cererilor. În consecinţă, tehnologia bazelor de date
multidimensionale a câştigat, în ultima perioadă, multă atenţie din partea firmelor
producătoare şi a cercetătorilor. Indiferent de tipul de arhitectură implementat,
instrumentele OLAP prezintă datele la utilizator într-un model de date
multidimensional, iar cererile sunt formulate utilizând paradigma
multidimensională. Totuşi multe din produsele OLAP existente au o serie de
limitări:
nu oferă un limbaj de interogare similar cu limbajul SQL;
tratează dimensiunile şi măsurile asimetric;
nu există un model conceptual unanim acceptat pentru bazele de date
multidimensionale.
Modelarea multidimensională este o tehnică de modelare conceptuală folosită
de aplicaţiile OLAP. Totuşi modelarea datelor multidimensionale nu este o
problemă specifică sistemelor OLAP. Bazele de date statistice, bazele de date
geografice şi cele temporale au legătură cu datele multidimensionale. Modelele de
date propuse în domeniul bazelor de date statistice, spaţiale, temporale au multe
puncte comune cu modele de date OLAP. De exemplu, în bazele de date temporale
rândurile şi coloanele unei tabele relaţionale sunt vizualizate ca două dimensiuni,
iar timpul apare ca a treia dimensiune, formând ceea ce se numeşte cubul timpului
36
Modele de date multidimensionale pentru sisteme OLAP
(time cube). Acest cub este diferit de cubul multidimensional propus de Agrawal,
unde toate dimensiunile sunt tratate uniform. Eforturile de modelare în bazele de
date spaţiale sunt concentrate pe reprezentarea obiectelor geometrice (puncte, linii,
poligoane, regiuni etc) în spaţiul multidimensional. Datele OLAP pot fi vizualizate
ca puncte în spaţiul multidimensional al atributelor. Totuşi operaţiile specifice
bazelor de date spaţiale sunt diferite de operaţiile OLAP. Domeniul cel mai
apropiat de depozitele de date şi sistemele OLAP este domeniul bazelor de date
statistice, unde o serie de modele multidimensionale au fost propuse [SHOS97].
Aceste modele au fost propuse înainte de apariţia termenului de OLAP şi sunt în
principal extensii ale modelelor de date existente (de regula relaţionale). În bazele
de date statistice, dimensiunile şi măsurile sunt tratate diferit. De exemplu, în
[RAFA93] este prezentat un model funcţional “Mefisto” bazat pe definiţia unei
structuri de date numită entitate statistică (statistical entity) şi un set de operatori
(agregare, restricţie etc).
Multe firme utilizează şi dezvoltă propriile modele de date multidimensionale.
De asemenea, diferite comitete de standardizare au definit propriile modele
[META97], [OLAP97], [TPCB99]. Multe dintre ele sunt modele de date logice şi
numai câteva pot fi considerate pur conceptuale. De asemenea, cercetătorii din
diferite domenii de aplicaţii au propus o serie de modele multidimensionale
formale şi limbaje de interogare corespunzătoare. Dar fiecare model prezintă o
viziune proprie a cerinţelor analizei multidimensionale, o terminologie şi un
formalism propriu. La ora actuală nu există nici un model de date multidimensional
(conceptual şi formal) acceptat în unanimitate.
37
Iniţiere în tehnologia OLAP-teorie şi practică
Totalul vânzărilor este afişat pe ultimul rând. Este o singură coloană de date:
coloana Vânzări. Setul de date are două dimensiuni: o dimensiune Luna aranjată pe
rânduri şi o dimensiune Vânzări aranjată pe coloane. Lunile reprezintă modul cum
sunt organizate datele. Lunile sunt un tip de cheie sau identificator. În concluzie,
modelul prezentat are două dimensiuni: o dimensiune de identificare şi una pentru
variabile. În figura 2.1 variabila “cantitatea vândută” este determinată în funcţie de
trei dimensiuni: Locaţie, Produs şi Timp. Dimensiunea Locaţie include o ierarhie
cu două niveluri “judeţ” şi “oraş”, iar dimensiunea Produs ierarhia cu nivelurile
“produs” şi “model produs”. Deşi nu se reprezintă în figură, dimensiunea Timp se
referă la anul 2003. Fiecare subcub conţine cantitatea vândută pentru o anumită
combinaţie de valori ale dimensiunilor. De exemplu, într-o anumită perioadă de
timp, în oraşul Deva, din judeţul Hunedoara, s-au vândut 10 telefoane celulare,
model Nokia 3410.
Ecranul calculatorului, la fel ca o hârtie, are numai două dimensiuni fizice.
Putem crea o reprezentare bidimensională pe ecran a unui cub tridimensional.
Afişarea datelor pe ecranul bidimensional al calculatorului este diferită de
38
Modele de date multidimensionale pentru sisteme OLAP
metaforele folosite pentru a vizualiza datele. Cubul vizualizat în figura 2.1 este o
metaforă vizuală. Acest aspect îi face pe dezvoltatorii de software să caute un mod
optim de reprezentare a structurilor numerice cu mai mult de două dimensiuni pe
un ecran bidimensional, pentru vizualizare şi manipulare. De exemplu, în cazul
foilor de calcul tabelar tridimensionale, setul de date tridimensional din figura 2.1
este afişat pe ecran, pe rânduri, coloane şi pagini. Este uşor de a vizualiza relaţia
între datele prezentate pe ecran şi întregul set de date stocat în calculator. Tot ce
trebuie să facem este să ne imaginam un cub de date tridimensional şi un ecran ce
afişează o felie din acel cub.
Hune Hune
doara doara
Deva
10 22 10 29 21 9
Bacău Bacău
2 21 12 34 22 8
Piatra
Neamţ
3410 3310 6100 8100
Nokia
Membru dimensiunea Produs (ierarhia: produs, model produs)
39
Iniţiere în tehnologia OLAP-teorie şi practică
Nokia
telefoane mobile Nokia
vânzări
martie
40
Modele de date multidimensionale pentru sisteme OLAP
41
Iniţiere în tehnologia OLAP-teorie şi practică
Toate produsele
cosmetice electronice
radio casetofon
TV fax xerox
cu baterii electric
42
Modele de date multidimensionale pentru sisteme OLAP
an
L L L L L L L L L L L L
43
Iniţiere în tehnologia OLAP-teorie şi practică
Diviziuni Oraşe
Departamente
44
Modele de date multidimensionale pentru sisteme OLAP
Date cum ar fi: culoarea, adresa, tipul de ambalaj, tipul de client sunt factori
esenţiali pentru analiză.
Conceptul de nivel într-o ierarhie este foarte important pentru a determina ce
tipuri de navigări se pot executa în dimensiuni şi ce tipuri de calcule suportă
dimensiunile. În glosarul OLAP se specifică că “ doi membrii ai unei ierarhii sunt
de aceeaşi generaţie dacă ei au acelaşi număr de strămoşi….. Termenii de
generaţie şi nivel sunt necesari pentru a descrie subgrupuri de membrii întrucât,
de exemplu, deşi doi fraţi membri au acelaşi părinte şi sunt de aceeaşi generaţie, ei
ar putea să nu fie la acelaşi nivel, dacă unul din fraţi are un copil şi celălalt nu.”
45
Iniţiere în tehnologia OLAP-teorie şi practică
exista clienţi, care au cumpărat mai multe tipuri de produse, din categoria
respectivă.
indicatori neaditivi care nu se pot însuma după nici o dimensiune (de
exemplu profitul marginal). Variabilele neaditive pot fi combinate cu alte
variabile pentru a deveni aditive.
46
Modele de date multidimensionale pentru sisteme OLAP
47
Iniţiere în tehnologia OLAP-teorie şi practică
împrăştiere. Valoarea zero este validă ca orice alt număr. Confuzia a apărut,
deoarece în aplicaţiile OLAP apare un număr mare de valori zero, precum şi
volume mari de date lipsă şi invalide. Tehnicile pentru optimizarea fizică a stocării
unui număr mare de valori repetate sunt similare şi uneori aceleaşi cu tehnicile
pentru optimizarea fizică a stocării de volume mari de date lipsă şi invalide. Totuşi
valorile lipsă şi cele invalide nu sunt date valide. Ele nu pot fi tratate în acelaşi mod
ca orice altă valoare. De aceea, sunt necesare tehnici speciale pentru aceste cazuri.
Tratamentul impropriu al valorilor null poate cauza calcule incorecte. Acurateţea
calculelor este de o importanţă crucială pentru analiza oricărui set de date,
indiferent că este sau nu multidimensional. Problema tratării datelor împrăştiate
este una foarte importantă şi este frecvent dezbătută în lumea bazelor de date.
Logicienii au crezut că există numai două valori logice: adevărat şi fals.
Regulile logice, care se aplică la bazele de date, sunt exprimate în funcţie de aceste
două valori. Problema apare totuşi când se introduc date invalide. Dar conform
logicii, o propoziţie şi inversa sa nu pot avea ambele valoarea adevărat. Nu ştim
dacă este adevărat sau fals, deoarece datele sunt lipsă. Conceptul de “invalid” este
similar cu conceptul de “lipsă” în sensul că nu se poate prelucra ca o valoare
validă, dar este diferit în sensul că ar putea fi greşit introdusă o valoare în acel
câmp. Datele lipsă şi cele invalide se introduc regulat în toate tipurile de baze de
date, inclusiv cele multidimensionale. În modelul relaţional, versiunea 2, Codd a
propus utilizarea unei logici bazată pe patru valori logice (figura 2.7). El a
schimbat semnificaţia termenului de negaţie. Pentru propoziţii adevărate şi false,
negaţia unui termen produce un termen diferit cu o valoare adevărată diferită.
Negaţia lui adevărat este fals şi negaţia lui fals este adevărat. Pentru propoziţii cu
valori lipsă sau invalide, negaţia unui termen este el însuşi. Deci negaţia unei valori
lipsă este “lipsă” şi negaţia unei valori invalide este “invalid” [THOM96].
Dimensiuni globale
Locaţie Timp
○ ○
○ ○
○ ○ ○ ○ ○
48
Modele de date multidimensionale pentru sisteme OLAP
P Not (P)
T F
A A
I I
F T
T=adevărat A=lipsă
F=fals I=invalid
49
Iniţiere în tehnologia OLAP-teorie şi practică
Modelul Golfarelli
Modelul Gyssens
Modelul Rafanelli
Modelul StarER
Modelul Guazzo
Modelul Teste
Modelul Blanschka
Modelul MAC
50
Modele de date multidimensionale pentru sisteme OLAP
Multe sisteme relaţionale permit deja aceşti operatori (Oracle, SQL Server). De
exemplu, se consideră tabela de fapte F2_indicatori_performanţă (codcat, an,
nrcadre, nrtesa, nrstud_cer, nrdoct, …) şi tabela de dimensiuni Instituţii (codcat,
dencat, codfac, denfac, codinst, denumire). Cheia primară a tabelei de fapte este
cheie compusă (codcat, an), iar a tabelei de dimensiuni este codcat:
AN CODCAT PROFESORI
-------------------------------------------
2000 CIB 1
2000 IE 8
2000 MAN 1
2001 IE 3
CODFAC AN PROFESORI
-------------------------------------------
CSIE 2000 9
CSIE 2001 3
FMAN 2000 1
CODFAC AN PROFESORI
-------------------------------------------
CSIE 2000 9
CSIE 2001 3
CSIE 12
FMAN 2000 1
FMAN 1
13
51
Iniţiere în tehnologia OLAP-teorie şi practică
Primele două rânduri sunt identice cu cererea anterioară. Al treilea rând este un
subtotal al atributului “an” (apare valoarea null în coloană “an”). În realitate nu
sunt valori nule în această coloană (este un artificiu al operatorului ROLLUP).
Următorul rând este rând de detaliu, iar al cincilea rând este un alt subtotal după
atributul “an”. Ultimul rând este un total general. Următoarea cerere este
echivalentă cu cererea ce utilizează operatorul ROLLUP:
SQL > select i.codfac, f.an, sum(f.nrcadre) profesori
from F2_indicatori_performanţă f, institutii i
where f.codcat=i.codcat
group by i.codfac, f.an
union
select i.codfac, ‘ ‘, sum(f.nrcadre) profesori
from F2_indicatori_performanţă f, institutii i
where f.codcat=i.codcat
group by i.codfac, ‘ ‘
union
select ‘ ‘, ‘ ‘, sum(f.nrcadre) profesori
from F2_indicatori_performanţă f, institutii i
where f.codcat=i.codcat
group by ‘ ‘, ‘ ‘, ;
CODFAC AN PROFESORI
-------------------------------------------
CSIE 2000 9
CSIE 2001 3
CSIE 12
FMAN 2000 1
FMAN 1
13
Citirea cererii este dificilă. De asemenea, tabela se parcurge de mai multe ori.
Operatorul ROLLUP, mai concis şi mai uşor de citit, este mai eficient (mai ales
pentru seturi mari de date), deoarece tabela se parcurge o singură dată. Sunt
posibile şi operaţii rollup parţiale:
SQL > select f.an, i.codfac, sum(f.nrcadre) PROFESORI
from F2_indicatori_performanţă f, institutii i
where f.codcat=i.codcat
group by f.an, rollup(i.codfac);
AN CODFAC PROFESORI
----------------------------------------------------
2000 CSIE 9
2000 FMAN 1
2000 10
2001 CSIE 3
2001 3
52
Modele de date multidimensionale pentru sisteme OLAP
AN CODFAC PROFESORI
----------------------------------------------------
2000 CSIE 9
2000 FMAN 1
2000 10
2001 CSIE 3
2001 3
CSIE 12
FMAN 1
13
Operatorul CUBE produce toate combinaţiile posibile sau 2**N tipuri de
subtotaluri. Cubul poate fi un cub complet sau un cub parţial. Funcţia GROUPING
face distincţie între valorile null curente şi cele ce rezultă prin agregare, returnând o
valoare 0 pentru primul caz şi o valoare 1, când este detectat un subtotal. De
exemplu:
SQL> select f.an, i.codfac, sum(f.nrcadre) profesori,
grouping(f.an) t,
grouping(i.codfac) f
from F2_indicatori_performanţă f, institutii I
where f.codcat=i.codcat
group by cube(f.an,i.codfac);
AN CODFAC PROFESORI T F
-----------------------------------------------------------------------
2000 CSIE 9 0 0
2000 FMAN 1 0 0
2000 10 0 1
2001 CSIE 3 0 0
2001 3 0 1
CSIE 12 1 0
FMAN 1 1 0
13 1 1
Funcţia GROUPING poate fi utilizată, de asemenea, pentru filtrarea rândurilor.
53
Iniţiere în tehnologia OLAP-teorie şi practică
De exemplu:
SQL> select f.an, i.codfac, sum(f.nrcadre) profesori
grouping(f.an) t,
grouping(i.codfac) f
from F2_indicatori_performanţă f, institutii i
where f.codcat=i.codcat
group by cube(f.an,i.codfac)
having grouping(f.an)=0
and grouping(i.codfac)=0;
AN CODFAC PROFESORI T F
-----------------------------------------------------------------------
2000 CSIE 9 0 0
2000 FMAN 1 0 0
2001 CSIE 3 0 0
Toate funcţiile utilizate în clauza GROUP BY (sum, count, max, min, variance,
stddev) pot fi utilizate şi cu ROLLUP şi CUBE.
54
Modele de date multidimensionale pentru sisteme OLAP
55
Iniţiere în tehnologia OLAP-teorie şi practică
Dimensiunea Dimensiunea
Client Timp
Dimensiunea
Locaţie
Tabela de fapte
Dimensiunea Vânzări
Vânzător
Dimensiunea
Produs
56
Modele de date multidimensionale pentru sisteme OLAP
Client Locaţie
locaţie
fabrica
Tabela de
fapte
Vânzări
vânzător
model
produs
piaţa de
Vânzător desfacere Produs
regiune
57
Iniţiere în tehnologia OLAP-teorie şi practică
58
Modele de date multidimensionale pentru sisteme OLAP
În modelul lui Agrawal datele sunt organizate în unul sau mai multe cuburi n-
dimensionale (hypercuburi). Un cub are următoarele componente:
k dimensiuni (fiecare dimensiune are un nume Di şi un domeniu de valori
domi);
elementele cubului sunt definite printr-o funcţie E(C) care asociază dom1
×…×domk la un n-tuplu (valorile celulelor cubului C ) sau { 0, 1}. Astfel,
E (C) (d1, …….., dk ) referă elementul de la “poziţia” d1,……,dk a
cubului C. Elementele unui cub (valorile celulelor cubului) pot fi fie {0,1}
sau un n-tuplu <X1,……,Xn>. Dacă elementul corespunzător la
E(C)(d1,…..,dk) este “0” atunci acea combinaţie de valori ale
dimensiunilor nu există (celule fără conţinut). Valoarea “1” indică
existenţa acelei combinaţii. Un n-tuplu reprezintă existenţa unei înregistrări
cu n măsuri. Dacă un element al unui cub este “1” atunci nici unul din
celelalte elemente ale cubului nu pot fi un n-tuplu. Dacă toate elementele
unui cub sunt “0” sau dacă domeniul domi al dimensiunii Di nu are valori,
atunci cubul este considerat a fi “gol” (empty).
un n-tuplu ce descrie elementele cubului.
59
Iniţiere în tehnologia OLAP-teorie şi practică
Data
Mar4
Feb3
Feb2
Ian1
15 P1 P2 P3 P4 Produs
20
Vânzare
60
Modele de date multidimensionale pentru sisteme OLAP
utilizând o funcţie felem. Acest operator este necesar pentru a permite tratarea
uniformă a dimensiunilor şi măsurilor. Are ca intrări cubul C, dimensiunile Di şi
ca ieşire cubul C cu fiecare element (diferit de zero) extins cu valoarea dimensiunii
Di corespunzătoare pentru acel element.
Matematic: push (C, Di ) =Ca
E (Ca)(d1,……..,dk) = g ⊕ di unde g= E (C)(d1,……..,dk).
Operatorul ⊕ este :
- 0 dacă g=0 ,
- < d i > dacă g=1
- altfel g concatenat cu < di >.
Data
P1 P2 P3 P4 Produs
Data
Mar4 <15,p1> <10,p1> <Vânzări, Produs>
Feb3 <20,p1> <15,p2> <15,p3> <20,p4>
Feb2 <10,p2><15,p3>
Ian1 ………..
p1 p2 p3 p4 produs
61
Iniţiere în tehnologia OLAP-teorie şi practică
62
Modele de date multidimensionale pentru sisteme OLAP
luna numeric
zona contract
ziua Ora
Număr_telefon şir de
caractere
Moment
Client
Timp
Tarif [ora: ora, contract: contract, zona de apel: zona, zona apelată: zona] : numeric
Durata [apel: număr telefon, apelatul: număr telefon, momentul_începerii_convorbirii: moment] : numeric
Factura_lunară [clientul::număr _telefon, perioada: luna] : numeric
Propietar (număr_ telefon) : şir
63
Iniţiere în tehnologia OLAP-teorie şi practică
64
Modele de date multidimensionale pentru sisteme OLAP
Nivel
Fapt
Relaţie de clasificare
65
Iniţiere în tehnologia OLAP-teorie şi practică
district
garaj regiune
Un model MD (schema MD) este 6-tuplu <F, L, A, gran, class, attr> unde:
F⊂Z* este un set finit de m fapte {f1,……,fm} unde fi∈Z* pentru 1≤ i
≤m;
L⊂ Z* este un set finit de k niveluri dimensionale {l1,…..,lk} unde li ∈ Z*
pentru 1≤ i ≤ k;
A⊂ Z* este un set finit de p atribute {a1,….,ap} unde ai ∈ Z* pentru 1≤ i
≤ p. Fiecare atribut ai are un domeniu ataşat dom(ai ) şi L∩F∩A=∅;
gran este o funcţie ce asociază un set de niveluri cu o colecţie de fapte.
Aceste niveluri gran(f) sunt numite niveluri de bază ale colecţiei de fapte
F;
class ⊆L×L este o relaţie definită pe niveluri ;
attr: A→F∪L este o funcţie ce asociază un atribut la o colecţie de fapte (în
acest caz se numeşte măsură), la un nivel (în acest caz se numeşte atribut al
nivelului);
Se constată că nu s-a definit o construcţie pentru noţiunea de dimensiune,
deoarece există nivelurile şi relaţiile de clasificare, ambele construcţii furnizează
informaţiile necesare pentru o dimensiune. Se pot defini măsuri structurate ca
înregistrare întrucât funcţia attr poate asocia mai multe atribute la o colecţie de
fapte. De exemplu, modelul multidimensional pentru analiza activităţii de reparaţii
are următoarele componente (figura 2.17):
colecţie de fapte: F={reparatie_vehicul};
nivelurile: L={client, vehicul, model, marca, zi, luna, an, garaj, tip_garaj,
geog.regiune, ţara};
atributele: A={costc, sal, costt, nrpers, durata, vârsta, venit};
66
Modele de date multidimensionale pentru sisteme OLAP
67
Iniţiere în tehnologia OLAP-teorie şi practică
Cex={creparaţie_vehicul} cu Creparaţie_vehicul:
dom (reparaţie_vehicul)→codom (reparaţie_vehicul)
De exemplu: creparaţie_vehicul (“Popescu”, “Cluj”, “01/01/97”, “B-07-NID”)= ($500,
$200, $700, 2, 8)
AVex={avvârsta, avvenit} cu
avvârsta : dom (client)→dom (vârsta) şi avvenit: dom (client)→dom (venit)
De exemplu: avvârsta(“Popescu”)=70; avvenit(“Popescu”)=50000$
O schemă MD consistentă ℳ=<F, L, A, gran, class, attr> trebuie să respecte
următoarele restricţii:
fiecare colecţie de fapte trebuie să fie asociată la cel puţin un nivel;
fiecare nivel trebuie să facă parte dintr-o ierarhie de clasificare sau să fie
asociat la o colecţie de fapte (niveluri izolate nu există);
fiecare atribut trebuie să fie asociat fie la o colecţie de fapte sau la un nivel
dimensional;
nu se permit ierarhii dimensionale izolate (nu sunt conectate la o colecţie
de fapte).
Costc an
sal
luna
costt Tip
garaj
ziua
nrpers
durata
vârsta
client
costc=costuri componente
venit sal=salarii
costt=costuri totale
nrpers=număr persoane
68
Modele de date multidimensionale pentru sisteme OLAP
ODL SGBDMD
69
Iniţiere în tehnologia OLAP-teorie şi practică
70
Modele de date multidimensionale pentru sisteme OLAP
71
Iniţiere în tehnologia OLAP-teorie şi practică
72
Modele de date multidimensionale pentru sisteme OLAP
73
Iniţiere în tehnologia OLAP-teorie şi practică
Tabelul 2.3
Evaluarea modelelor multidimensionale conform cerinţelor prezentate
în [BLAS99]
Tabelul 2.4
Evalurea modelelor de date multidimensionale conform cerinţelor prezentate
în [VASS99]
74
Modele de date multidimensionale pentru sisteme OLAP
Rezumat
La ora actuală există un număr mare de modele de date multidimensionale
propuse. Cele mai multe dintre ele sunt modele de date logice şi numai câteva pot
fi considerate pur conceptuale. Fiecare prezintă o viziune proprie a cerinţelor
analizei multidimensionale, o terminologie şi un formalism propriu.
Modelele de date multidimensionale s-au dezvoltat pe două direcţii şi anume:
modele extensii ale modelului relaţional şi modele orientate pe cub.
Pentru a descrie în detaliu modelele de date multidimensionale şi a putea fi
înţelese, se utilizează o serie de concepte de bază şi anume: cubul n-dimensional,
multicubul, dimensiunile, ierarhiile şi măsurile.
Combinaţia de multiple dimensiuni şi multiple niveluri pe dimensiune
constituie esenţa unui cub n-dimensional.
Dimensiunile furnizează informaţii descriptive despre fiecare indicator, conţin
în general date statice şi sunt esenţiale pentru analiză.
Cele mai multe dimensiuni au o structură multi-nivel sau ierarhică. Ierarhiile
sunt fundamentul pentru agregarea datelor şi pentru navigarea între nivelurile de
detaliu dintr-un cub n-dimensional.
O măsură este un indicator de performanţă prin care se poate analiza
performanţa activităţii modelate. Valorile unui indicator se modifică continuu.
Datele multidimensionale sunt împrăştiate şi celulele de date nu sunt
distribuite în mod egal în spaţiul multidimensional. Proiectanţii de instrumente
OLAP au adoptat o varietate de strategii pentru a trata fenomenul de împrăştiere
dar şi gruparea datelor.
Cuvinte cheie
Cub n-dimensional, dimensiune, structură multicub, ierarhie, măsură, împrăştierea
datelor, model multidimensional conceptual, model multidimensionl logic, schema
stea, schema fulg de zăpadă, modele de date OLAP extensii ale modelului
relaţional, modele orientate pe cuburi.
75
Capitolul 3
Arhitectura sistemelor OLAP
Sistemele OLAP permit analiştilor şi managerilor să îmbunătăţească
performanţele unei firme, printr-un acces interactiv rapid la o mare varietate de
viziuni de date organizate, pentru a reflecta aspectul multidimensional al datelor
dintr-o întreprindere. Modelul conceptual multidimensional este cel mai natural
mod de a vizualiza informaţiile din afaceri. Dar stocarea acestor volume mari de
informaţii multidimensionale, într-un mod practic pe calculator, este departe de a fi
uşor. Datele multidimensionale nu trebuie să fie numai stocate ci trebuie să fie
vizualizate, actualizate şi folosite pentru calculul altor rezultate, preferabil în mai
puţin de cinci secunde. Modul cum sunt stocate va afecta performanţa şi
funcţionalitatea la fiecare din celelalte cerinţe. Din acest motiv, instrumentele
OLAP trebuie să ofere un răspuns rapid, indiferent de volumul de date ce trebuie
utilizat pentru o simplă interogare. Timpul de răspuns pentru o cerere ar trebui să
depindă de numărul de rezultate afişate pe ecran şi nu de dimensiunea bazei de
date. În practică, cele mai multe aplicaţii OLAP sunt foarte împrăştiate. În general
mai puţin de o celulă dintr-o mie de celule are date. Deoarece aplicaţiile OLAP
sunt de fapt sisteme suport de decizie interactive, este important ca ele să rămână
rapide, chiar dacă baza de date este mare şi împrăştiată. Se urmăreşte să se
consume mai puţin spaţiu fizic pentru stocarea informaţiilor lipsă sau a indecşilor.
Multe soluţii există, fiecare cu avantaje şi dezavantaje.
Factorii ce determină alegerea unei soluţii sunt :
Volumul de date curente stocat. Dacă volumul este relativ mic, o stocare
în RAM ar fi cea mai bună soluţie;
Gradul de împrăştiere a datelor. Dacă datele sunt foarte împrăştiate, poate
fi necesară o indexare mai complexă şi compresia datelor, care vor face
instrumentul mai lent;
Frecvenţa de actualizare a datelor şi modul cum se face actualizarea (în
loturi sau celule individuale);
Numărul de utilizatori;
Tipul arhitecturii client/server (unde are loc procesarea
multidimensională);
Cantitatea de memorie reală şi virtuală valabilă. Aceasta va determina câte
date active trebuie păstrate în memorie;
76
Arhitectura sistemelor OLAP
77
Iniţiere în tehnologia OLAP-teorie şi practică
Aplicaţia analitică
client
Clienţi OLAP
Interfaţa
multidimensională
SQL interfaţa
relaţională
SGBDR
78
Arhitectura sistemelor OLAP
79
Iniţiere în tehnologia OLAP-teorie şi practică
Atomicitate
(Gb) 1000
1 2
100
3 ROLAP 4
10
5 6
MOLAP
1=SSD pentru analiza vânzărilor (activitate de comerţ) 4=SSD pentru analiza poliţelor de asigurare
2=SSD pentru analiza promoţională 5=EIS pentru analiza financiară
3=SSD pentru analiza profitului bancar 6= SSD pentru analiza creditului bancar
Figura 3.2 Utilizarea sistemelor MOLAP sau ROLAP pentru diferite tipuri
de aplicaţii SSD
80
Arhitectura sistemelor OLAP
este foarte rar eficientă. Chiar şi atunci când datele sunt stocate în memorie, este
adesea necesar de a păstra datele într-un format mai complex decât o simplă
matrice. Aceasta are legatură cu fenomenul de împrăştiere şi cu cerinţa de a
modifica dimensiunile, fără să fie nevoie să se reconstruiască din nou întreaga
matrice. În cazul stocării pe disc a datelor împrăştiate, datele sunt citite în blocuri şi
dacă fiecare bloc are un grad de împrăştiere mare, multe blocuri goale sau aproape
goale vor fi stocate în memorie, iar memoria va fi utilizată de mult mai multe ori
decât este necesar.
Sistemele MOLAP au pus accentul pe flexibilitatea şi optimizarea tehnicilor de
stocare şi pe conceptul de tranzacţie. Sistemele MOLAP nu au încă o tehnologie
pentru stocarea şi gestionarea datelor unanim acceptată. Stocarea fizică a datelor
multidimensionale, precum şi fenomenul de împrăştiere sunt preocupări majore, în
domeniul bazelor de date multidimensionale. O tehnică de stocare a datelor optimă
ar trebui să ţină cont de mulţi factori dinamici şi anume:
81
Iniţiere în tehnologia OLAP-teorie şi practică
82
Arhitectura sistemelor OLAP
Tabelul 3.1
Analiză comparativă între sistemele ROLAP şi MOLAP
Criterii MOLAP/Baze de date ROLAP/Baze de date
multidimensionale relaţionale
Spaţiul de disc ocupat mare, dacă agregatele sunt posibil zero, dacă sunt
antecalculate (explozia datelor folosite baze de date
derivate şi fenomenul de existente nemodificate
împrăştiere) (depozite de date
virtuale), dar poate fi
mare dacă noi structuri
sunt create
Performanţa la moderată scăzută
încărcarea datelor
Viteza de calcul mare mică
Volumul datelor atomice mediu la mare (Mb-Gb) extrem de mare (Gb-Tb)
Posibilitatea de acces la limitată excelentă în principiu,
date de către alte dar poate fi limitată dacă
aplicaţii (integrare cu este folosită o schemă
alte sisteme existente) complexă
Accesul la date încet şi adesea limitat, performanţă moderată
citire/scriere
Dimensionalitate mică (modele multidimensionale mare (modele
simple, 5-10 dimensiuni) multidimensionale
complexe)
Modificarea bună dar baza de date trebuie să bună
dimensiunilor fie off-line
83
Iniţiere în tehnologia OLAP-teorie şi practică
84
Arhitectura sistemelor OLAP
85
Iniţiere în tehnologia OLAP-teorie şi practică
Împrăştiate
0.00001%
10%
100%
Dense Volumul de date de bază (celule)
86
Arhitectura sistemelor OLAP
Pentru aplicaţii foarte împrăştiate, o soluţie hibridă este probabil cea mai bună.
Aria graficului, în care sistemele MOLAP sunt recomandate, reflectă abilitatea lor
de a stoca cel mai eficient volume medii până la mari de date. Pentru date foarte
împrăştiate sau pentru baze de date foarte mari, o strategie de stocare de tip bază de
date relaţională poate fi singura opţiune fezabilă. În general, dacă se doreşte
implementarea unei singure aplicaţii, este mai eficient din punct de vedere al
costului de a selecta un instrument mai simplu, decât unul proiectat special pentru
acea aplicaţie. Pentru scopuri strategice şi aplicaţii complexe poate fi necesar de a
achiziţiona un instrument complex. În funcţie de tipul bazei de date, se poate alege
tehnica de indexare folosită. Cele mai multe baze de date multidimensionale
stabilesc automat tehnica de indexare.
Interfaţa 5
Se împart între client şi server
depinde de locaţia datelor
Calcule ad hoc
multidimensionale 4
Gestiunea datelor 2
Datele şi agregatele stocate trebuie să
fie distribuite între utilizatori
1. Fişiere de date
87
Iniţiere în tehnologia OLAP-teorie şi practică
Calcule multi
Fişiere Gestiune dimensionale Calcule multi Interfaţa
de date date în lot dimensionale
ad-hoc
88
Arhitectura sistemelor OLAP
Tabelul 3.3
Tipuri de arhitecturi client/server
Server relaţional/client OLAP În funcţie de aplicaţie poate fi gestionată Cere un SGBD potrivit pe server,
Nivelurile 1 şi 2 sunt pe un server securitatea pe server. Reduce încărcarea adaugând la costuri şi complexitatea.
de baze de date relaţional, reţelei, deoarece datele pot fi selectate şi Poate genera trafic excesiv în reţea,
nivelurile 3-5 pe client procesate parţial de serverul de bază de date, dacă toate procesările
înainte de a fi trimise la client pentru multidimensionale sunt făcute pe client.
procesare şi prezentare. Cele mai multe
procesări pot fi făcute de SGBD-ul relaţional,
care permite o exploatare bună a procesării
paralele. Capabil de actualizări online cu
blocări mai bune a datelor.
Arhitectura pe trei niveluri Distribuţie flexibilă a procesării între serverul Greu de implementat şi se cere
Nivelurile 1 şi 2 pe un server de de bază de date şi serverele de aplicaţii. Se experienţă în reţele. Adesea mai puţin
baze de date relaţional, nivelul 3 reduce traficul în reţea pentru că datele pot fi deschis decât arhitectura cu bază de
pe unul sau mai multe servere de procesate acolo unde sunt stocate. date distribuită . Scalabilitatea în
aplicaţii, nivelurile 4 şi 5 pe client. Funcţionalitate ridicată prin utilizarea unui funcţie de numărul de utilizatori poate
Nivelul 3 poate avea, de SGBD relaţional complex şi a unui server de fi restricţionată de limitele fiecărui
asemenea, o bază de date locală aplicaţii puternic. Scalabilitate bună în funcţie server de bază de date sau de aplicaţii .
pentru stocarea informaţiilor de dimensiunea aplicaţiei.
multidimensionale.
Server OLAP/ client OLAP Performanţă optimă cu trafic în reţea minim. În general o arhitectură mai puţin
Nivelurile 1-3 pe un server de bază Costuri hardware mici. Uşor de implementat deschisă. Instrumentele de acest tip
de date multidimensional, actualizarea multiutilizator a datelor sunt adesea mai specializate şi mai
nivelurile 4 şi 5 pe client. multidimensionale, cu securitate puţin potrivite pentru utilizare generală.
multidimensională la nivel de detaliu.
Aplicaţiile complexe sunt mai simplu de
implementat.
WEB OLAP pe trei niveluri Uşor de utilizat pentru un număr mare de Funcţionalitate şi performanţă redusă.
Nivelurile 1 şi 2 sunt pe un server utilizatori, incluzând acei utilizatori din afara Reduce manipulările de date la nivel de
relaţional, nivelurile 3 şi 4 pe organizaţiei. Reţea la un cost mic. Nu cere client.
serverul de aplicaţii şi nivelul 5 pe software dedicat pe client, reducând costurile
un browser WEB conectat prin cu software-ul. Suportă o varietate de
Internet sau Intranet. platforme.
89
Iniţiere în tehnologia OLAP-teorie şi practică
Rezumat
90
Arhitectura sistemelor OLAP
Cuvinte cheie
91
Capitolul 4
Instrumente OLAP
Cerinţele utilizatorilor, identificate în etapa de analiză a sistemului informatic,
vor determina alegerea instrumentului OLAP. De exemplu, dacă aplicaţia implică
analiză financiară, atunci instrumentul trebuie să permită conversii de valută.
Caracteristicile unui instrument OLAP sunt clasificate în două categorii:
caracteristici logice şi caracteristici fizice [THOM96].
Caracteristicile logice sunt independente de platforma hardware utilizată, de
sistemul de operare, de numărul de utilizatori şi de metodele de stocare fizică.
Dimensiunile, ierarhiile, formulele, legăturile sunt exemple de atribute logice.
Caracteristicile fizice sunt independente de modelul definit sau analizat şi
includ modul cum se stochează şi încarcă datele şi ce platforme software şi
hardware se folosesc.
92
Caracteristicile sistemelor OLAP
93
Iniţiere în tehnologia OLAP-teorie şi practică
94
Caracteristicile sistemelor OLAP
4.1.2 Operaţii
95
Iniţiere în tehnologia OLAP-teorie şi practică
96
Caracteristicile sistemelor OLAP
Stocare/acces. Se va analiza:
dacă datele din sesiunea curentă sunt stocate pe client sau pe server;
cum sunt stocate datele lipsă, invalide şi cele cu valoarea zero;
97
Iniţiere în tehnologia OLAP-teorie şi practică
98
Caracteristicile sistemelor OLAP
instrument foarte scalabil (până la câteva mii de utilizatori), cuburile pot fi create
pe client sau pe servere Unix. Ele pot fi create ca fişiere într-un sistem de gestiune
de fişiere sau ca tabele într-o bază de date relaţională (Oracle sau Sybase). Power
Play permite o metodologie de proiectare a aplicaţiilor iterativă.
Impromptu permite utilizatorilor să creeze rapoarte complexe fără să cunoască
limbajul SQL sau structura bazei de date. Power Play şi Impromptu se folosesc
pentru aplicaţii de analiză a vânzărilor, analiză financiară, controlul calităţii etc.
Instrumentele pot importa date din peste 100 de surse de date relaţionale şi
multidimensionale.
Pilot Software, Inc [www.pilotsw.com] este o firmă a corporaţiei The Dun &
Bradstreet, care dezvoltă instrumente suport de decizie interactive pentru manageri
şi analişti. Pilot Decision Support Suite constă din cinci componente şi poate fi
instalat monoutilizator, workgroup sau distribuit. Clienţii suportă Windows 95,
Windows NT şi Windows 3.1, iar serverul Windows NT şi Unix .
Pilot Desktop este un mediu monoutilizator pentru analiză interactivă de
afaceri cu un set complet de instrumente multidimensionale, ce permit utilizatorilor
să facă operaţii de drill down, roll up şi pivotare prin datele agregate. Include un
motor OLAP cu cunoştinţe de timp şi instrumente pentru analiza de excepţii.
Sursele de date pot fi relaţionale .
Pilot Analysis Server este un server OLAP multiutilizator ce oferă multe
facilităţi de modelare (suport pentru analiza seriilor de timp), include o bibliotecă
de funcţii (funcţii de previziune, funcţii de corelaţie, analiza de regresie etc).
Pilot Designer este un instrument pentru crearea tuturor tipurilor de aplicaţii
vizuale de tip suport de decizie (de la EIS la aplicaţii OLAP complexe). Include un
limbaj pentru scripturi ce este compatibil cu Visual Basic.
Pilot Analysis Library este o bibliotecă opţională de module de analiză ce
permite utilizatorilor să accelereze implementarea de soluţii suport de decizie
complexe .
Pivot Excel Add-In este o componentă opţională ce permite utilizatorilor Excel
de a integra facilităţile mediului Pilot în soluţiile Excel .
99
Iniţiere în tehnologia OLAP-teorie şi practică
(DSS Agent Relational OLAP, DSS Objects pentru dezvoltarea de aplicaţii OLAP,
DSS Web Relational OLAP- client pentru Web ), DSS Architect (instrument de
proiectare), DSS Administrator (client pentru depozite de date), DSS Executive EIS
(instrument de proiectare).
100
Caracteristicile sistemelor OLAP
101
Iniţiere în tehnologia OLAP-teorie şi practică
RDBMS
Essbase Management
Spreadsheet Tools
Add-In
Multidimensional Storage
Manager Relational Storage Manager
Fişiere/baze de date
Bază de date
multidimensionale
relaţională
(schema stea)
102
Caracteristicile sistemelor OLAP
Da Nu
Date in
Express
cache
Modulul de runtime generează comenzi SQL SELECT
103
Iniţiere în tehnologia OLAP-teorie şi practică
Project Editor sau Project Wizard. Opţiunea Project Editor este o interfaţă
prin care se poate crea un proiect pentru orice tip de schemă, în timp ce
opţiunea Project Wizard oferă o metodă simplă pentru crearea unui model
multidimensional bazat pe o schemă stea. RAA defineşte automat cuburi
de date, un cub de date separat pentru fiecare set unic de dimensiuni, ce
este utilizat în definirea variabilelor. De exemplu, dacă avem două
variabile: variabilă Vânzări dimensionată după Produs, Locaţie geografică
şi Timp şi variabila Populaţie după Locaţia geografică şi Timp, RAA
defineşte două cuburi CUBUL 1 (Produs, Locaţie geografică, Timp) şi
CUBUL2 (Locaţie geografică, Timp). Cu ajutorul opţiunii
Database/Sparsity, RAA permite specificarea dimensiunilor împrăştiate şi
includerea lor într-o dimensiune de tip conjoint. Pentru stocarea datelor
lipsă, Oracle Express foloseşte dimensiunile de tip conjoint. O dimensiune
conjoint stochează combinaţii de valori de la două sau mai multe
dimensiuni, numai pentru acele celule ce conţin date.
Build modul conţine programul ce construieşte noi baze de date Express
sau actualizează pe cele existente. Acest modul citeşte proiectul şi
construieşte sau actualizează baza de date Express, ce corespunde
modelului de date multidimensional definit în proiect.
Runtime modul conţine utilitare ce încarcă datele relaţionale la momentul
de execuţie.
Express
RAM RAM
Runtime Build
Modul modul
Depozit de date
Baza de date
Express
104
Caracteristicile sistemelor OLAP
Client Server
Express Web Agent
105
Iniţiere în tehnologia OLAP-teorie şi practică
browser Web, Sales Analyzer poate executa analize ad-hoc folosind facilităţile
Internetului.
Oracle Financial Analyzer este o aplicaţie preconstruită pentru planificare,
stabilirea bugetelor, analize şi rapoarte financiare.
SNAPI (structured N dimensional application programming interface) este o
bibliotecă de funcţii C care permite ca aplicaţiile client Windows să poată
comunica cu serverul Express. Local SNAPI permite clienţilor să se conecteze la
Personal Express, iar Remote SNAPI la serverul Express. ExpressCommunication
Architecture (XCA) permite comunicarea între Personal Express şi Express Server
şi între instanţe diferite ale serverului Express.
4.4 Standarde
Consiliul OLAP a propus un APB-1 benchmark [OLAP97b ] pentru a compara
serverele OLAP din punct de vedere al timpului mediu de interogare (Average
Query Time-AQT). Standardul defineşte un set de dimensiuni specifice activităţii
de analiză a vânzărilor. Structura logică a bazei de date este formată din 6
dimensiuni: Timp, Scenariu, Măsura, Produs, Client şi Canal de distribuţie.
Benchmark-ul nu consideră un anumit model fizic de bază de date, datele de intrare
sunt furnizate în format de fişiere ASCII. Operaţiile simulează perfect operaţiile
standard OLAP şi includ încărcarea secvenţială şi în lot a datelor de la surse de
date interne sau externe, agregarea sau deagregarea (roll up, drill down) datelor de
a lungul ierarhiilor, calcule de noi date bazându-se pe modele de afaceri etc.
TPC-D benchmark [TPBC98] modelează un mediu suport de decizie în care
sunt executate cereri ad-hoc complexe pe un volum mare de date relaţionale. TPC-
D include o schemă fulg de zăpadă cu mai multe tabele de fapte şi tabele de
dimensiuni. Dimensiunile au o structură simplă. Benchmark-ul prezintă un set de
cereri specifice mediului SSD.
Standardul OLEDB pentru OLAP [MICR98] a fost dezvoltat de firma
Microsoft ca un set de obiecte COM şi interfeţe destinate pentru a furniza acces la
surse de date multidimensionale prin OLEDB. Standardul OLEDB pentru OLAP
utilizează un model pentru cuburi şi dimensiuni şi oferă un limbaj de expresii
multidimensionale (MultiDimensional eXpressions/MDX) pentru calcule şi
prezentări de cuburi. Acest standard are o serie de dezavantaje: îi lipseşte un suport
teoretic solid (nu există definită schema unui multicub) şi utilizează un limbaj prea
complex (deşi destul de puternic).
Metadata Interchange Specification [META97] a fost propus de Metadata
Coalition (un grup de firme cum ar fi IBM, Sybase, Informix etc). MDIS oferă un
mecanism de acces standard şi o interfaţă API standard pentru a gestiona
metadatele cu instrumente specificate de standard. MDIS încearcă să prezinte un
metamodel de metadate pentru o varietate de modele de baze de date (relaţional,
orientat-obiect etc). Modelul propus de MDIS suportă noţiunea de dimensiune
(care include un set de niveluri). Cuburile nu sunt direct modelate în modelul
106
Caracteristicile sistemelor OLAP
Tabelul 4.3
Clasificarea instrumentelor OLAP
Modul de procesare Modul de stocare a datelor multidimensionale
multidimensională BDR BDMD Fişiere client
SQL în mai mulţi paşi 1.
Microstrategy
Motor OLAP pe server 2. 4.
IBM DB2 OLAP Server Comshare Decision
Informix Metacube Essbase
Microsoft OLAP Services Oracle Express,
Oracle Express Seagate Holos, Gentia
Pilot Analysis Server Microsoft OLAP
Seagate Holos Services
Applix TM-1 Power Play Enterprise
White Light Server
Pilot Analysis Server
Applix TM-1
Motor OLAP pe client 3. 5. 6.
Oracle Discoverer Dimensional Insight Brio Enterprise,
Informix MetaCube Comshare FDC Business Objects
Cognos PowerPlay
Personal Express
107
Iniţiere în tehnologia OLAP-teorie şi practică
Tabelul 4.4
Produse OLAP cu facilităţi Web
Firma Produsul OLAP Produsul Web Modul de stocare
Arbor Software Essbase Essbase Web Gateway BDMD
Brio Technology Inc. BrioQueryEnterprise BrioQuery Enterprise BDR
Business Objects Inc Business Objects Business Objects BDR
Cognos Corp. Power Play PowerPlay BDR
Comshare Inc. Commander Decision CDWeb BDMD
Dimensional Insight Inc. CrossTarget DataFountain BDR
Information Advantage Inc. DecisionSuiteServer WebOLAP BDMD
InformixSoftware Inc. Informix MetaCube MetaCube for the Web BDR
Kenan Systems Corp. Acumate Es Acumate Web BDMD
Microstrategy Inc. DSS Server DSS Web BDR
Oracle Corp. Oracle Express Server Oracle Express Web Agent BDMD
Pilot Software Inc. Pilot Analysis Server Pilot Internet Publisher BDMD
Seagate Software IMG Holos Holos BDMD
TM-1 Software TM-1 Server TM-1Server BDMD
Tabelul 4.5
Analiză comparativă a instrumentelor OLAP
Produs Vizualizarea Tipul de aplicaţii Modul Modul de Tipul de Platforma Limbajul
OLAP datelor de procesare arhitectură utilizată utilizat
stocare
Power Play Tabele Analiza vânzarilor Fişiere Motor Client/ Server APL2000
Cognos Grafice, Analiză financiară BDR OLAP pe server Unix pentru
Rapoarte Controlul calităţii BDM client/ WinNT, aplicaţii
server Client financiare
Windows
DecisionBas Rapoarte HTML, Analiza vânzărilor BDM Motor Client/ Windows Orientat
e OLAP Grafice OLAP pe server pe trei obiect
Computer server niveluri
Associates
Oracle Rapoarte, tabele, Analiza vânzărilor BDR Motor Client/ Server Express
Express grafice Analiza financiară BDM OLAP pe Server, PC WinNT Basic
Oracle Fişiere server / Client
client Windows
Business Rapoarte Analiza vânzărilor Fişiere Motor Client/ WinNT Visual
Objects Analiza financiară OLAP pe server pe Basic
client două/trei
niveluri
DSS Rapoarte, grafice Marketing BDR SQL în Client/ Server SQL
Micro mai mulţi server WinNT
strategy paşi Client
Windows
Acumate Rapoarte Telecomunicaţii, BDM Motor Client/ Server Limbaj
Kenan Servicii OLAP pe server WinNT multidim
Systems financiare, server Client MSPL
marketing, Windows
Analiza
vânzărilor,
previziuni,
Segmentarea
pieţei,
Analiza clienţilor
Informix Rapoarte, grafice Analiza vânzărilor BDR Motor Client/ Server Limbaj
Metacube Analiză financiară OLAP pe server pe WinNT OO,
Informix server/ două şi trei Unix, SQL
Software client niveluri Client
Windows
108
Caracteristicile sistemelor OLAP
Rezumat
Caracteristicile unui instrument OLAP sunt clasificate în două categorii:
caracteristici logice şi caracteristici fizice.
Cuvinte cheie
Caracteristici logice, caracteristici fizice, standarde OLAP.
109
Capitolul 5
Proiectarea sistemelor OLAP
Firmele şi mediul academic au acordat puţină atenţie problemelor legate de
modelarea multidimensională conceptuală. Tehnicile de modelare conceptuale
existente nu pot fi direct aplicate la caracteristicile modelului de date
multidimensional [BLAS98]. Ca o consecinţă, multe proiecte industriale elimină
etapa de modelare conceptuală şi încep cu proiectarea logică (de exemplu
modelarea unei scheme stea sau fulg de zăpadă).
Nu există la ora actuală, nici un standard pentru modelarea multidimensională
conceptuală a datelor. Există însă un consens general că tehnica de modelare
entitate-asociere nu este potrivită pentru proiectarea sistemelor cu depozite de date
şi a sistemelor OLAP. De exemplu, în [KIMB96] se precizează că “ modelele
entitate-asociere nu pot fi utilizate pentru proiectarea depozitelor de date la nivel
de întreprindere”, iar în [BULO96] că “modelul entitate-asociere nu este potrivit
pentru modelarea cuburilor n-dimensionale.”
În [BLAS98] se consideră că procesul de proiectare a modelului
multidimensional conceptual depinde foarte mult de cerinţele utilizatorilor şi de
valabilitatea şi structura datelor din sistemele operaţionale. Cele mai multe proiecte
folosesc o metodologie evolutivă [KIMB96],[INMO92]. Proiectele încep cu un
prototip, care este apoi modificat în concordanţă cu cerinţele utilizatorilor. Procesul
de proiectare a modelului multidimensional conceptual este executat de mai multe
ori (iterativ). Există două motive principale pentru acest comportament dinamic:
tehnologia de analiză multidimensională interactivă este nouă pentru
analist. Aceasta înseamnă că este imposibil pentru el să stabilească de la
început toate cerinţele aplicaţiei;
procesele de afaceri pe care analistul trebuie să le modeleze, se modifică
frecvent. Aceste modificări trebuie reflectate în cerinţele de analiză (noi
tipuri de cereri). Întrucât modelul multidimensional determină facilităţile
de analiză posibile, noile cerinţe conduc la modificări ale schemei bazei de
date.
La ora actuală se identifică două abordări în proiectarea modelului
multidimensional conceptual şi anume:
Abordarea orientată pe sursele de date ce presupune existenţa sistemului
informatic tranzacţional şi începe cu analiza datelor existente în baza de date
110
Proiectarea sistemelor OLAP
111
Iniţiere în tehnologia OLAP-teorie şi practică
112
Proiectarea sistemelor OLAP
113
Iniţiere în tehnologia OLAP-teorie şi practică
Cod produs
valoare
Produs Cost
produs
denumire
114
Proiectarea sistemelor OLAP
115
Iniţiere în tehnologia OLAP-teorie şi practică
116
Proiectarea sistemelor OLAP
Costul produsului [timp: luna, produs: produs]: numeric (obţinută din faptul
Cost prin valoare(cost))
Produs
nume marca cost valoare
categorie produs
venit
sex
client vânzare zi luna
Timp
ocupaţie
princ Locatie
oraş Perioada trimestru
specială
magazin
vârsta zona an
Client adresa
Produs Locaţie
Denumire Vânzare Magazin
Marca Oraş
Categorie Zona
etc etc
Cost Client
Timp Sex
Ziua Vârsta
Luna Oraş
Trimestru etc
etc
117
Iniţiere în tehnologia OLAP-teorie şi practică
118
Proiectarea sistemelor OLAP
119
Iniţiere în tehnologia OLAP-teorie şi practică
tip (m:m) între entităţile E1,….,En. În ultimul caz, pentru simplitate, este indicat a
se transforma relaţia într-o entitate F prin înlocuirea fiecărei ramuri Ei cu o relaţie
binară între F şi Ei. Atributele relaţiei devin atribute ale lui F, identificatorul lui F
este combinaţia identificatorilor lui Ei, i=1,…n. Entităţile sau asocierile care sunt
actualizate frecvent (cum ar fi Vânzare) pot fi considerate fapte. Cele care nu se
modifică frecvent (sunt aproape statice, cum ar fi entităţile Magazin şi Oraş) nu pot
fi considerate fapte. Fiecare fapt identificat în modelele entitate-asociere sursă,
devine rădăcină a unei scheme fapt.
120
Proiectarea sistemelor OLAP
marca
manager categorie dieta cant data manager adresa
tip
codprodus vânzare nrbon magazin oras judet stat
121
Iniţiere în tehnologia OLAP-teorie şi practică
marca
manager categorie dieta cant data manager adresa
tip
codprodus vânzare magazin oras judet stat
122
Proiectarea sistemelor OLAP
123
Iniţiere în tehnologia OLAP-teorie şi practică
124
Proiectarea sistemelor OLAP
125
Iniţiere în tehnologia OLAP-teorie şi practică
126
Proiectarea sistemelor OLAP
1 ∧ 1 ∧ 1 ∧
Variabile pentru analiza vânzărilor:
- volumul vânzărilor 10 ∧ 500 ∧ 10 ∧
- cantitatea vândută •
- numărul de clienţi etc 100 • 10000 500 •
Notă: dimensiunea Locaţie geografică are trei niveluri ierarhice (ţara, judeţ, oraş) cu 1,
10 şi 100 de membrii fiecare nivel. Nivelul de granulaţie de bază este oraşul, iar
direcţia de calcul şi agregare este simbolizată prin săgeată cu linie întreruptă.
127
Iniţiere în tehnologia OLAP-teorie şi practică
128
Proiectarea sistemelor OLAP
129
Iniţiere în tehnologia OLAP-teorie şi practică
Proiectarea fizică
130
Proiectarea sistemelor OLAP
Modele multi
Obiectivele proiectului dimensionale
Subiecte /domenii Analiza
iniţiale
datelor
Cerinţe validate
Scenarii
Rezumat
Nu există la ora actuală nici un standard pentru modelarea multidimensională
conceptuală a datelor. Există însă un consens general că tehnica de modelare
entitate-asociere nu este potrivită pentru proiectarea sistemelor cu depozite de
date şi a sistemelor OLAP.
Procesul de proiectare a modelului multidimensional conceptual depinde
foarte mult de cerinţele utilizatorilor şi de valabilitatea şi structura datelor din
sistemele operaţionale.
La ora actuală se identifică două abordări în proiectarea modelului
multidimensional conceptual şi anume: abordarea orientată pe sursele de date ce
presupune existenţa sistemului informatic tranzacţional şi începe cu analiza
datelor existente în baza de date operaţională şi abordarea orientată pe cereri ce
este utilizată în absenţa surselor de date.
Modelarea multidimensională a datelor reprezintă o etapă centrală în
proiectarea unui sistem OLAP.
La ora actuală nu există nici o metodologie unanim acceptată pentru
proiectarea şi realizarea unui sistem OLAP, dar există un consens general că
proiectarea unui sistem OLAP (în special a unui sistem ROLAP) este un proces
complex şi evolutiv.
Cuvinte cheie
Modelarea multidimensională a datelor, modelul multidimensional conceptual,
abordare orientată pe sursele de date, abordare orientată pe cereri, fapte,
dimensiuni, ierarhii, măsuri.
131
Capitolul 6
Dezvoltarea sistemelor OLAP cu
Oracle Express Objects
Oracle Express este un pachet software de tip sistem de gestiune a bazelor de
date multidimensionale (SGBDMD) cu următoarele caracteristici:
oferă un limbaj de manipulare a datelor foarte puternic;
utilizează modelul de date multidimensional;
utilizează o arhitectură client/server (Oracle Express Server) sau o
arhitectură pe un singur nivel (Oracle Personal Express);
permite dezvoltarea de aplicaţii OLAP care pot fi executate utilizând un
browser Web.
Instrumente de dezvoltare
Express Express Express Web Financial Sales
Objects Analyzer Publisher Analyzer Analyzer
BDR (depozite
de date)
BDMD
132
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
Arhitectura pe componente a lui Oracle Express este formată din (figura 6.1):
133
Iniţiere în tehnologia OLAP-teorie şi practică
134
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
135
Iniţiere în tehnologia OLAP-teorie şi practică
136
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
face dublu click cu mouse-ul pe briefing-ul creat sau se selectează opţiunea Edit
din meniul ataşat butonului dreapta al mouse-ului (briefing-ul este selectat cu
mouse-ul). Briefing Editor conţine o bară de instrumente (Briefing Toolbar) ce
permite navigarea între paginile briefing-ului, un browser pentru a afişa briefing-
urile deschise şi o zonă de editare a paginii curente (figura 6.7).
137
Iniţiere în tehnologia OLAP-teorie şi practică
138
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
139
Iniţiere în tehnologia OLAP-teorie şi practică
140
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
141
Iniţiere în tehnologia OLAP-teorie şi practică
142
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
143
Iniţiere în tehnologia OLAP-teorie şi practică
144
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
145
Iniţiere în tehnologia OLAP-teorie şi practică
146
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
147
Iniţiere în tehnologia OLAP-teorie şi practică
148
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
Stop termină execuţia unui proiect, a unui briefing sau a unei pagini;
Create View creează o viziune temporară (tabel sau grafic) pe baza uneia
existente;
Define Custom Measure afişează fereastra de dialog Custom Measures,
care permite utilizatorului să vizualizeze, editeze, copieze sau să creeze
măsuri;
Execute Express Command execută una sau mai multe comenzi Express;
Export Table permite exportul paginii curente (de exemplu în Microsoft
Excel);
Execute Action List permite execuţia unei liste de acţiuni de tip
QuickAction etc.
149
Iniţiere în tehnologia OLAP-teorie şi practică
150
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
151
Iniţiere în tehnologia OLAP-teorie şi practică
152
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
Tabelul 6.1
Valorile ce se pot utiliza pentru butoane
Valoarea Semnificaţie
0 Afişează butonul OK
1 Afişează butoanele OK şi CANCEL
2 Afişează butoanele Abort, Retry, Ignore
3 Afişează butoanele Yes, No şi Cancel
4 Afişează butoanele Yes şi No
5 Afişează butoanele Retry şi Cancel
16 Afişează icoana de mesaj critic (STOP)
32 Afişează icoana de întrebare de atenţionare (?)
48 Afişează icoana de mesaj de atenţionare (!)
64 Afişează icoana de mesaj informativ (i)
0 Selectează primul buton ca implicit
256 Selectează al doilea buton ca implicit
512 Selectează al treilea buton ca implicit
153
Iniţiere în tehnologia OLAP-teorie şi practică
154
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
155
Iniţiere în tehnologia OLAP-teorie şi practică
156
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
[CASE lista_expresii
[secventa_comenzi]]
[CASE lista_expresii
[secventa_comenzi]]
[CASE else
[secventa_comenzi]]
END SELECT
De exemplu, se creează un buton în pagina pagina_quickaction cu următoarele
propietăţi: Name: btntrimestru, Text şi Description: Afişează trimestru. Se asociază
evenimentului AfterClick o procedură ce utilizează funcţia Month() pentru a stoca
luna curentă într-o variabilă. Se utilizează structura SELECT CASE pentru a evalua
valoarea variabilei şi a afişa într-o casetă de mesaje următorul mesaj: “Trimestru
…. Luna…” (figura 6.25). În figura 6.26 se prezintă pagina pagina_quickaction
lansată în execuţie.
157
Iniţiere în tehnologia OLAP-teorie şi practică
158
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
sau :
DO
[secventa_comenzi]
[EXIT DO]
[secventa_comenzi]
LOOP [{WHILE|UNTIL} conditie]
159
Iniţiere în tehnologia OLAP-teorie şi practică
160
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
161
Iniţiere în tehnologia OLAP-teorie şi practică
162
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
163
Iniţiere în tehnologia OLAP-teorie şi practică
164
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
165
Iniţiere în tehnologia OLAP-teorie şi practică
166
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
167
Iniţiere în tehnologia OLAP-teorie şi practică
168
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
169
Iniţiere în tehnologia OLAP-teorie şi practică
170
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
171
Iniţiere în tehnologia OLAP-teorie şi practică
172
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
173
Iniţiere în tehnologia OLAP-teorie şi practică
174
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
175
Iniţiere în tehnologia OLAP-teorie şi practică
176
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
177
Iniţiere în tehnologia OLAP-teorie şi practică
Figura 6.49 Codul pentru deplasarea de la o pagină logică la alta pagină logică
178
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
179
Iniţiere în tehnologia OLAP-teorie şi practică
180
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
Obiectul Dimension List este o listă ce afişează valorile unei dimensiuni din
care utilizatorul poate selecta una sau mai multe valori. Pentru a crea o listă de
valori se selectează icoana DimListBox din caseta de instrumente (Toolbox) şi click
cu mouse-ul în pagină. Se va crea o listă care va fi mai târziu populată cu date. Sau
se selectează o dimensiune din fereastra utilitarului Database Browser şi se “trage”
în pagină. Această metodă creează o listă ce afişează valorile dimensiunii selectate.
Pentru a popula o listă cu valorile unei dimensiuni, se selectează opţiunea
Dimension din meniu ataşat butonului dreapta al mouse-ului sau se selectează
opţiunea Inspect. Se deschide fereastra Object Inspector. Apoi dublu click pe
181
Iniţiere în tehnologia OLAP-teorie şi practică
182
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
care va sincroniza lista cu tabelul (ce se selectează din listă se va afişa în tabel). De
exemplu, dacă din listă se selectează produsul Tents, în tabel se vor afişa numai
vânzările acestui produs (figura 6.56). În figura 6.57 se afişează pagina
pagina_dimensionlist lansată în execuţie.
183
Iniţiere în tehnologia OLAP-teorie şi practică
184
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
185
Iniţiere în tehnologia OLAP-teorie şi practică
186
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
187
Iniţiere în tehnologia OLAP-teorie şi practică
188
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
189
Iniţiere în tehnologia OLAP-teorie şi practică
190
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
instrumente, sau dublu click pe bara de butoane nou creată, apoi se “trage” (drag
and drop) o imagine din instrumentul Toolbar Galery în bara de butoane nou
creată. Instrumentul Toolbar Galery (figura 6.67) conţine o colecţie de imagini
predefinite ce pot fi utilizate pentru a crea butoane în bara de butoane. Aceste
imagini sunt grupate în şase categorii. De exemplu, categoria Stock conţine imagini
pentru funcţiile standard cum ar fi print şi paste, categoria Graph conţine imagini
reprezentând diferite tipuri de grafice etc.
191
Iniţiere în tehnologia OLAP-teorie şi practică
192
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
193
Iniţiere în tehnologia OLAP-teorie şi practică
Obiectul de dialog File este utilizat pentru a permite unui utilizator să deschidă
un fişier (propietatea DialogType=0) sau să-l salveze cu alt nume (propietatea
DialogType=1). În exemplul următor obiectul de dialog permite utilizatorului să
salveze un fişier cu un alt nume:
Filedialog1.dialogtype=1
Call filedialog1.show()
Propietatea Filter specifică lista de filtre (condiţii) care se vor afişa în caseta
Files of Type din fereastra de dialog File. Un filtru specifică un tip de fişier. De
exemplu:
Project Files (*.xpj)|*.xpj|Text Files (*.txt)|*.txt|All Files (*.*)|*.*
Propietatea DefaultExt specifică extensia implicită a fişierelor. Propietatea
DialogTitle specifică numele ferestrei de dialog (implicit este Open sau Save As),
propietatea DialogType specifică tipul de fereastră (Open/Save As), propietatea
InitDir specifică directorul utilizat implicit. Setul de propietăţi File se referă la o
serie de propietăţi ale fişierelor selectate în fereastra de dialog File (de exemplu:
driverul implicit, directorul implicit, numele fişierului, extensia etc).
Obiectul de dialog Font afişează fereastra de dialog Font, în care utilizatorul
poate specifica numele fontului utilizat, stilul, dimensiunea, efectele utilizate,
culoarea etc. Obiectul de dialog Font are multe propietăţi şi anume: titlul ferestrei
(implicit Font), fontul (nume, stil, culoare) etc (figura 6.70).
194
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
195
Iniţiere în tehnologia OLAP-teorie şi practică
196
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
197
Iniţiere în tehnologia OLAP-teorie şi practică
Rezumat
Oracle Express Objects este un instrument OLAP ce permite crearea de
aplicaţii OLAP, precum şi realizarea de programe în limbaj Express, prin care se
controlează comportamentul aplicaţiei.
Acest instrument este un element cheie în pachetul de instrumente pentru
inteligenţa afacerilor Oracle Integrated Business Intelligence Tools, fiind integrat
cu Oracle Discoverer. Aplicaţiile OLAP dezvoltate cu Oracle Express Objects
accesează datele stocate în baze de date multidimensionale sau baze de date
relaţionale.
Oracle Express Objects utilizează tabele şi grafice pentru a vizualiza datele
multidimensionale stocate în baza de date multidimensională.
Un proiect este unitatea de bază pentru stocarea obiectelor create cu Express
Objects. Este un container rădăcină ce include celelalte obiecte.
O aplicaţie OLAP poate fi formată din unul sau mai multe proiecte.
Utilitarul Object Browser permite deschiderea şi vizualizarea mai multor
proiecte sau briefing-uri, selectarea, mutarea, copierea, ştergerea, derivarea
obiectelor incluse în proiect (sau briefing), editarea şi modificarea paginilor,
vizualizarea propietăţile obiectelor etc.
În Oracle Express Objects se pot crea următoarele tipuri de obiecte: briefing-
uri, pagini, tabele, grafice, obiecte de tip ieşire, diferite tipuri de butoane, diferite
tipuri de liste, etichete, bare de defilare, obiecte de tip arbore, meniuri, obiecte de
dialog, obiecte de tip Timer etc.
Utilitarul Database Browser afişează dimensiunile şi măsurile bazei de date
multidimensionale, la care se conectează Express Objects.
Instrumentul Selector permite dezvoltatorilor de aplicaţii OLAP şi
utilizatorilor să selecteze valorile unei dimensiuni ce vor fi afişate într-un tabel
(grafic sau listă de valori).
Modulul este unitatea de compilare în limbajul Express şi există trei tipuri de
module: modulul de cod, modulul bibliotecă şi modulul global.
O variabilă poate fi declarată la nivel de procedură, la nivel de modul şi
global.
În limbajul Express se pot declara următoarele tipuri de date: integer, long,
single, double, currency, date, string, object, record şi variant.
În limbajul Express se pot defini structuri de program: structura alternativă
simplă (IF…END IF), structura alternativă cu mai multe ramuri (SELECT
CASE…END SELECT), structura repetitivă condiţionată anterior cu numărător
(FOR…NEXT), structura repetitivă (WHILE…WEND) etc.
198
Dezvoltarea sistemelor OLAP cu Oracle Express Objects
Cuvinte cheie
Obiect, moştenire, metodă, eveniment, modul de cod, modul bibliotecă, modul
global, aplicaţie, proiect, briefing, pagină, variabilă globală, tabel, grafic, obiecte
de tip ieşire, etichete, bare de defilare, obiecte de tip arbore, meniuri, obiecte de
dialog, obiecte de tip timer etc.
199
Capitolul 7
Dezvoltarea sistemelor OLAP
cu Oracle Express Analyzer
Oracle Express Analyzer [OEAG99] este un instrument OLAP ce permite :
analiza datelor. Se pot crea tabele şi grafice ce afişează datele stocate în
baza de date multidimensională. Datele sunt selectate cu ajutorul
instrumentului Selector;
crearea de briefing-uri ce pot fi folosite de alţi utilizatori;
editarea şi modificarea briefing-urilor create cu Express Analyzer sau
Express Objects;
lansarea în execuţie a unui briefing;
lansarea în execuţie a aplicaţiilor create cu Express Objects.
Oracle Express Analyzer poate accesa datele stocate în baze de date
multidimensionale Express sau baze de date relaţionale.
La lansarea în execuţie a lui Express Analyzer, se afişează fereastra de dialog
Welcome to Oracle Express Analyzer (figura 7.1). Se poate selecta opţiunea: Run a
Briefing or Application pentru a lansa în execuţie un briefing sau o aplicaţie,
Create a new Briefing (crearea unui briefing), Change an existing Briefing pentru a
modifica un briefing existent, Analyzer Express Data pentru a afişa în fereastra
Database Browser o listă cu baze de date multidimensionale existente, pentru
conectare, Start where I left off last time pentru a redeschide briefing-ul utilizat
anterior şi a realiza conectarea automată la bazele de date deschise anterior.
Utilitarul Briefing Browser listează toate briefing-urile deschise şi se poate
vizualiza conţinutul fiecăruia (figura 7.2). Acest utilitar se utilizează şi pentru
modificarea unui briefing şi anume: se poate modifica ordinea paginilor în briefing,
se poate deschide o pagină şi poate fi modificată, se poate muta o pagină de la un
briefing la altul sau se poate face o copie etc.
Utilitarul Database Browser permite selectarea datelor din una sau mai multe
baze de date multidimensionale, pentru a fi afişate în tabele sau grafice, în paginile
unui briefing (figura 7.3).
Pentru baza de date la care se face conexiunea se afişează dimensiunile şi
măsurile. Pentru a determina dimensionalitatea unei variabile se selectează baza de
date din Database Browser. Apoi se selectează una sau mai multe dimensiuni (în
200
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
201
Iniţiere în tehnologia OLAP-teorie şi practică
202
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
203
Iniţiere în tehnologia OLAP-teorie şi practică
204
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
205
Iniţiere în tehnologia OLAP-teorie şi practică
Paginile create nu se pot salva separat de briefing. Atunci când o pagină este
creată, ea este adaugată automat la briefing-ul curent. Dacă dorim ca paginile
create să nu fie adăugate la un briefing, se parcurg următorii paşi:
din submeniul Edit se alege opţiunea Options şi se afişează fereastra de
dialog Options;
se deselectează caseta de validare Add New pages to briefing (figura 7.9).
Totuşi, atunci când se doreşte închiderea paginii, Express Analyzer întreabă
utilizatorul dacă doreşte să adauge pagina la briefing-ul curent.
206
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
207
Iniţiere în tehnologia OLAP-teorie şi practică
Pentru a crea un tabel sau un grafic ce conţine date se parcurg următorii paşi:
din fereastra utilitarului Database Browser se selectează baza de date şi
apoi măsurile dorite;
se „trag” cu mouse-ul (drag and drop) pe suprafaţa paginii şi apare un
meniu vertical cu două opţiuni: Table şi Graph. Se alege una din opţiuni şi
va apare în pagină fie un tabel populat cu date, fie un grafic (figura 7.11).
Se pot adăuga şi alte obiecte în pagină, dacă propietatea AutoSize a tabelului
sau graficului este setată pe No. Se selectează cu mouse-ul pagina unde este creat
tabelul şi se alege din meniul vertical ataşat butonului dreapta al mouse-ului,
opţiunea Inspect. Se deschide fereastra Object Inspector şi se setează propietatea
AutoSize.
Pentru a crea un obiect de tip ieşire (Express output object) se selectează
icoana obiectului din caseta de instrumente şi se „trage” cu mouse-ul în pagină. Se
poate utiliza acest tip de obiect pentru a afişa rezultatele comenzilor Express
executate de utilizatori (figura 7.12).
Express Analyzer permite includerea de informaţii preluate din alte aplicaţii
folosind obiecte OLE (Object Linking and Embedding). Express Analyzer permite
numai obiecte OLE incluse (embedding OLE objects). Odată adăugate în pagina
briefing-ului, ele devin elemente componente ale briefing-ului. Pentru a crea un
obiect OLE, se selectează icoana OLE din caseta de instrumente şi se „trage” cu
208
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
mouse-ul în pagină. Se alege obiectul OLE care va fi inserat (de exemplu un fişier
cu extensia (.bmp) sau un fişier Excel) (figura 7.13).
209
Iniţiere în tehnologia OLAP-teorie şi practică
210
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
211
Iniţiere în tehnologia OLAP-teorie şi practică
Lansarea în execuţie a unui briefing, se poate face prin selectarea opţiunii Run
nume_briefing din submeniul File.
Pentru a lansa în execuţie o pagină, se selectează pagina şi apoi opţiunea Run
din meniul vertical asociat butonului dreapta al mouse-ului.
Ordinea în care apar paginile într-un briefing (în fereastra utilitarului Briefing
Browser), este ordinea în care vor fi afişate la lansarea în execuţie a briefing-ului.
Când se creează o nouă pagină, Express Analyzer o adaugă la sfârşitul briefing-ului
curent. Pentru a modifica ordinea de afişare a unei pagini, se selectează pagina în
fereastra utilitarului Briefing Browser şi se „trage” (drag and drop) cu mouse-ul la
noua locaţie .
În Express Analyzer se pot tipări paginile briefing-ului, tabelele sau graficele.
Când se tipăresc pagini, se poate selecta tipărirea paginii curente, a tuturor
paginilor sau numai a unui set de pagini.
212
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
dimensiuni fizice ale cubului de date şi anume pagina (page edge icon), rândul
(row edge icon) şi coloana (column edge icon). În pagină se afişează numele
dimensiunilor logice ale cubului de date, vizibile în pagina curentă a tabelului. De
exemplu, în figura 7.16, pagina conţine valorile dimensiunii Instituţii, rândul
conţine tipurile de proiecte, iar coloana conţine valorile variabilei număr proiecte şi
anii de analiză: 2000, 2001, 2002, 2003. Se pot modifică dimensiunile logice
incluse într-o dimensiune fizică, precum şi ordinea lor de afişare. De exemplu, în
figura 7.17 s-a mutat dimensiunea logică Timp (anii) pe rând. Nu se poate muta o
dimensiune logică de pe coloană pe rând, dacă există o singură dimensiune logică
inclusă în coloană.
Formatul unui tabel este controlat de propietăţile sale, care pot fi modificate
folosind utilitarul Object Inspector. Un tabel are următoarele componente:
coloanele (column edge), rândurile (row edge), paginile (page edge), titlul,
subtitlul, zona de date (databody), nota de subsol (footnote). Aceste componente
sunt listate prin selectarea opţiunii Contents din fereastra Object Inspector şi au
propriile propietăţi.
213
Iniţiere în tehnologia OLAP-teorie şi practică
214
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
215
Iniţiere în tehnologia OLAP-teorie şi practică
216
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
217
Iniţiere în tehnologia OLAP-teorie şi practică
Se poate modifica selecţia curentă prin adăugarea unor noi valori ale
dimensiunii sau ştergerea unor valori. De exemplu, se alege opţiunea List a
selectorului (figura 7.23). În fereastra de dialog List, se selectează cu mouse-ul, din
caseta Available Instituţii, valorile care se doresc adăugate (de exemplu FPS). Apoi
se selectează butonul Add. Valorile selectate apar în caseta Selected Institutii. La
selectarea butonului OK, valorile sunt adăugate la selecţie curentă. Dacă se
selectează butonul Select, selecţia curentă este înlocuită cu noile valori selectate.
Butonul Add adaugă noi valori la selecţia curentă. Butonul Keep păstrează noile
valori în selecţia curentă şi le şterge pe celelalte, iar butonul Remove şterge noile
valori din selecţia curentă şi le păstrează pe celelalte.
Se poate salva o selecţie, pentru a fi reutilizată. Salvarea se poate face în două
moduri:
static. Selecţiile salvate au aceleaşi valori ori de câte ori sunt utilizate. De
exemplu, o selecţie ce conţine numai facultăţile (dimensiunea Institutii). Se
alege opţiunea Library şi se deschide fereastra de dialog Selection Library
(figura 7.24).
dinamic. Selecţiile salvate variază în timp, deoarece ele se bazează pe un
criteriu de selecţie respectat de valorile dimensiunii. De exemplu, se poate
crea o selecţie ce cuprinde primele 3 facultăţi care au cel mai mare număr
de proiecte. Această selecţie variază de la an la an. Scriptul pentru o
218
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
219
Iniţiere în tehnologia OLAP-teorie şi practică
220
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
Figura 7.27 Numărul total de produse vândute în primele 10 luni ale anului
221
Iniţiere în tehnologia OLAP-teorie şi practică
Rezumat
Oracle Express Analyzer este un instrument OLAP ce permite analiza datelor,
crearea de briefing-uri, actualizarea briefing-urilor create cu Express Analyzer
sau Express Objects, lansarea în execuţie a unui briefing şi lansarea în execuţie a
aplicaţiilor create cu Express Objects.
222
Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer
Cuvinte cheie
Briefing, pagină, obiect de tip ieşire, obiect de tip OLE, tabel, grafic, agregarea
datelor.
223
Capitolul 8
Crearea unei baze de date
multidimensionale cu Oracle Express
Administrator
Oracle Express Administrator [OEDA99] se utilizează pentru a crea şi
administra baze de date multidimensionale Express. Elementele componente ale
unei baze de date Express sunt:
Variabilele. O variabilă este un obiect al bazei de date Express ce stochează
date, o matrice multidimensională ale cărei celule stochează date. Tipul de dată al
unei variabile indică datele pe care le conţine. Fiecare variabilă este organizată sau
dimensionată după una sau mai multe dimensiuni (max 32 de dimensiuni). Nu este
necesar ca toate variabilele să aibă aceeaşi dimensionalitate (să utilizeze acelaşi set
de dimensiuni). În lumea multidimensională, dimensionalitatea unei variabile este
adesea numită configuraţia variabilei.
Dimensiunile. Primele obiecte care trebuie create într-o bază de date Express
sunt dimensiunile. Express Server permite definirea a trei tipuri de dimensiuni:
Timp (valorile reprezintă perioade de timp), Text (valorile sunt descrieri ale
entităţilor pe care le reprezintă) şi INTEGER (valorile sunt identificate prin
poziţiile lor numerice. O dimensiune de tip integer este o secvenţă de numere ce
începe cu 1). O dimensiune ce conţine valori la toate nivelurile de agregare este
cunoscută ca dimensiune cu totaluri incluse (embedded total dimension).
Relaţiile. O relaţie descrie corespondenţa între valorile unei dimensiuni şi
valorile altei dimensiuni din baza de date. De exemplu, se poate crea o relaţie
numită niv_inst ce asociază valorile dimensiunii Instituţii cu valorile dimensiunii
Nivel_institut. Se pot utiliza relaţiile şi pentru a defini ierarhiile în dimensiuni.
Formulele. O formulă este un obiect al bazei de date Express ce defineşte o
expresie. Valorile formulei sunt calculate ori de câte ori este apelată formula.
Termenul de măsură este folosit pentru a referi variabilele, formulele şi relaţiile.
Obiectele compuse (composite). Un obiect compus este o dimensiune artificială
ce combină valorile a două dimensiuni împrăştiate. Express Server creează automat
un obiect compus, când se defineşte o variabilă împrăştiată.
224
Crearea unei baze de date multidimensionale
225
Iniţiere în tehnologia OLAP-teorie şi practică
226
Crearea unei baze de date multidimensionale
227
Iniţiere în tehnologia OLAP-teorie şi practică
228
Crearea unei baze de date multidimensionale
229
Iniţiere în tehnologia OLAP-teorie şi practică
230
Crearea unei baze de date multidimensionale
231
Iniţiere în tehnologia OLAP-teorie şi practică
232
Crearea unei baze de date multidimensionale
(figura 8.15). Se definesc apoi valorile care vor fi incluse în ierarhie. Aceste valori
se „trag” apoi din caseta Available în caseta Hierarchy pentru a crea ierarhia de
valori (figura 8.13).
233
Iniţiere în tehnologia OLAP-teorie şi practică
234
Crearea unei baze de date multidimensionale
235
Iniţiere în tehnologia OLAP-teorie şi practică
236
Crearea unei baze de date multidimensionale
Valorile variabilei se pot adăuga fie manual, dacă se selectează opţiunea Data
din fereastra de dialog Modify Variable (figura 8.19), fie prin import din surse
externe, dacă se selectează opţiunea Import din submeniul File. Se pot importa date
din fişiere text, fişiere create cu instrumentul Discoverer, din baze de date
relaţionale etc. De exemplu, pentru a importa date dintr-o bază de date relaţională,
se selectează opţiunea Import Relational din submeniul File şi se afişează fereastra
de dialog Import Relational Data (figura 8.20). Se selectează butonul SQLConnect
pentru a realiza conexiunea la baza de date relaţională. Se selectează din caseta
TableName numele tabelei sursă (de exemplu nrprof_cat din schema de obiecte
mihaela), apoi se identifică obiectele din baza de date multidimensională
corespunzătoare atributelor tabelei (se „trag”cu mouse-ul din Database Browser în
caseta Express Object). Se selectează butonul Save şi se deschide fereastra de
dialog Save SQL Data Loader (figura 8.21), în care se specifică numele
programului de încărcare a datelor (implicit newloader). Acest program apare în
fereastra Database Browser, în ramura Programs şi se poate executa ori de câte ori
237
Iniţiere în tehnologia OLAP-teorie şi practică
238
Crearea unei baze de date multidimensionale
239
Iniţiere în tehnologia OLAP-teorie şi practică
240
Crearea unei baze de date multidimensionale
241
Iniţiere în tehnologia OLAP-teorie şi practică
242
Crearea unei baze de date multidimensionale
243
Iniţiere în tehnologia OLAP-teorie şi practică
244
Crearea unei baze de date multidimensionale
Compile din bara de butoane a ferestrei de dialog Edit program şi lansa în execuţie,
dacă se selectează icoana Run Program. Un program se poate lansa în execuţie şi
dacă se selectează opţiunea Execute din meniul ataşat butonului dreapta al mouse-
ului şi se deschide fereastra Express Command. În fereastra Express Command, se
pot executa comenzile limbajului Express.
245
Iniţiere în tehnologia OLAP-teorie şi practică
246
Crearea unei baze de date multidimensionale
Rezumat
Oracle Express Administrator se utilizează pentru a crea şi administra baze de
date multidimensionale Express.
Pentru a crea o bază de date multidimensională se definesc dimensiunile bazei
de date, măsurile (variabile, relaţii, formule), seturile de valori, programele şi
modelele de analiză.
Cuvinte cheie
Bază de date multidimensională, dimensiuni, variabile, formule, relaţii, seturi de
valori, programe, modele de analiză, obiecte compuse.
247
Capitolul 9
Proiectarea şi realizarea unui sistem
OLAP
(studiu de caz)
În secolul 21, secolul informaţiilor şi al afacerilor inteligente, organizaţiile vor
putea să-şi îndeplinească obiectivele, numai dacă managerii vor putea utiliza ca
suport în procesul decizional informaţii suficiente şi de calitate.
La ora actuală, preocuparea majoră a specialiştilor în domeniul sistemelor
informatice este de a satisface cererea tot mai mare a managerilor pentru informaţii
care să le permită evaluarea cât mai rapidă şi mai corectă a performanţelor
organizaţiilor pe care le conduc. Sistemele OLAP pot satisface această cerere de
informaţii de calitate şi pot îmbunătăţi eficacitatea muncii decizionale a
managerilor.
Obiectivul acestui capitol este de a arăta că modelarea multidimensională a
datelor existente în organizaţii, în funcţie de subiectele de interes ale managerilor şi
vizualizarea multidimensională a informaţiilor, poate oferi un suport informaţional
eficace managerilor în procesul decizional, indiferent de domeniul de activitate.
Pentru a demonstra acest lucru, în acest capitol, se va proiecta un model de date
multidimensional şi un sistem OLAP pentru analiza activităţii de cercetare
ştiinţifică în învăţământul universitar.
Tehnica de modelare entitate-asociere şi structurarea datelor în tabele
normalizate reprezintă standardul pentru specialiştii de baze de date, care utilizează
în mod frecvent bazele de date relaţionale, pentru a stoca volumele mari de date
tranzacţionale existente în organizaţii. Totuşi, utilizarea tabelelor pentru a furniza
informaţiile necesare procesului decizional la nivelul organizaţiilor, nu este
întotdeauna o soluţie ideală pentru manageri.
Accesul la informaţiile stocate în bazele de date relaţionale tranzacţionale cere
realizarea de operaţii, adesea foarte complexe, între multe tabele. Din acest motiv,
managerii trebuie să apeleze la specialişti pentru a executa cererile de regăsire (de
exemplu în limbajul SQL). De asemenea, bazele de date relaţionale de dimensiuni
mari, proiectate să ofere suport aplicaţiilor tranzacţionale, permit cu dificultate
vizualizarea informaţiilor după subiectele de interes ale managerilor.
248
Proiectarea şi realizarea unui sistem OLAP
Organizaţii
executând
Procese
Produse şi
Resurse: servicii:
Bani Învăţământ
Oameni Cercetare
Experienţa Suport financiar
Munca Sănatate
Facilităţi Alimentaţie
…….. …….
Clienţi
Figura 9.1 Modelul conceptelor de afaceri sub forma unui cub n-dimensional
249
Iniţiere în tehnologia OLAP-teorie şi practică
Exemple de dimensiuni
Resurse: Exemple de
Bani dimensiuni
Organizaţii Client:
Personal Studenţi
Echipamente Stat/societate
Clienţi interni
Figura 9.2 Procesul (problema analizată) sub forma unui “cub” de informaţii
250
Proiectarea şi realizarea unui sistem OLAP
Promoţie
Cod Locaţie geografică
Denumire Cod magazin
Tipul de reducere a Denumire
preţului Cubul n- Adresa, Oraş
Tipul de publicitate Judeţ, Regiune
Costul promoţional dimensional pentru
Ţara,
Data începerii analiza vânzărilor Manager magazin,
promoţiei Telefon,
Data de sfârşit fax,
Suprafaţă
251
Iniţiere în tehnologia OLAP-teorie şi practică
252
Proiectarea şi realizarea unui sistem OLAP
253
Iniţiere în tehnologia OLAP-teorie şi practică
254
Proiectarea şi realizarea unui sistem OLAP
255
Iniţiere în tehnologia OLAP-teorie şi practică
256
Proiectarea şi realizarea unui sistem OLAP
Indicatorul n1
Granturi câştigate (granturi CNCSIS şi ale Academiei Române)
n1=n1a*p1+n1b*p2
n1a=c1*N1/(Ncd+Nc)
n1b=c2*Vtgn/(Ncd+Nc) unde:
Indicatorul n2
Contracte de cercetare internaţionale
n2=n2a*p3+n2b*p4
n2a=c3*N2/(Ncd+Nc)
n2b=c4*Vtci/(Ncd+Nc) unde:
Indicatorul n3
Contracte cu diverse companii din ţară şi contracte obţinute în cadrul Planului
Naţional de Cercetare Dezvoltare
n3=n3a*p5+n3b*p6
n3a=c5*N3/(Ncd+Nc)
n3b=c6*Vtcn/(Ncd+Nc) unde:
257
Iniţiere în tehnologia OLAP-teorie şi practică
Indicatorul n4
Teze de doctorat finalizate
n4=n4.1*p7+n4.2*p8
n4.1=c7*N dcd /Np
n4.2=c8*N ftd /Nd unde:
Indicatorul n5
Articole publicate în reviste cotate
n5=n5.1*p9+n5..2*p10
n5.1=c9*N5.1/(Ncd+Nc)
n5.2=c10* N5.2/(Ncd+Nc) unde:
258
Proiectarea şi realizarea unui sistem OLAP
Indicatorul n6
Cărţi publicate în edituri recunoscute
n6=n6.1*p11+n6..2*p12
n6.1=c11*∑pagin/Npnr(Ncd+Nc)
n5.2=c10*∑pagiin /Npir(Ncd+Nc) unde:
Indicatorul n7
Brevete sub protecţie/produse cu drept de propietate intelectuală
n7=c13*N7/(Ncd+Nc) unde:
Indicatorul n8
Centre de cercetare sau creaţie artistică acreditate/recunoscute
n8=n8.1*p13+n8.2*p14
n8.1=c14*N8.1/(Ncd+Nc)
n8.2=c15* N8.2/(Ncd+Nc) unde:
259
Iniţiere în tehnologia OLAP-teorie şi practică
Indicatorul n9
Reprezentări în academii, organizaţii profesionale
n9=n9.1*p15+n9.2*p16+n9.3*p17
n9.1=c16*N9.1/Np
n9.2=c17* N9.2/Np
n9.3=c18* N9.3/Np unde:
Indicatorul n10
Premii la nivel naţional: premiile Academiei Române, premiile acordate de
CNCSIS şi premiile acordate de Uniunile de Creaţie (UNITER, Uniunea
Scriitorilor, UAP, UCMR, UCIN, UAR)
n10=c19*N10/(Ncd+Nc) unde:
260
Proiectarea şi realizarea unui sistem OLAP
Măsuri:
Număr de publicaţii
Dimensiunea Dimensiunea
Rata publicaţiilor
Institut (Universitate) Timp
Număr de proiecte
Valoarea contractată (lei)
Valoarea contractată (dolari)
Număr de cadre didactice
implicate în cercetare etc
Dimensiunea Dimensiunea
Centre Publicaţie
Cubul n-dimensional
Dimensiunea
Tip_proiect
261
Iniţiere în tehnologia OLAP-teorie şi practică
262
Proiectarea şi realizarea unui sistem OLAP
Total_publicaţii
263
Iniţiere în tehnologia OLAP-teorie şi practică
264
Proiectarea şi realizarea unui sistem OLAP
265
Iniţiere în tehnologia OLAP-teorie şi practică
266
Proiectarea şi realizarea unui sistem OLAP
Valoare_lei an valoare_dol
nrproiecte
FS_1
finanţator tip_proiect catedra facultate universitate
an
nrpub
FP_1
categorie subcat catedra facultate universitate
nrcadre ncd
nrtesa nrstud
d N10
N cd
N7 Nrstud_cer
nrdoct
vallei
an nrpro
valdol
267
Iniţiere în tehnologia OLAP-teorie şi practică
268
Proiectarea şi realizarea unui sistem OLAP
269
Iniţiere în tehnologia OLAP-teorie şi practică
270
Proiectarea şi realizarea unui sistem OLAP
271
Iniţiere în tehnologia OLAP-teorie şi practică
272
Proiectarea şi realizarea unui sistem OLAP
273
Iniţiere în tehnologia OLAP-teorie şi practică
274
Proiectarea şi realizarea unui sistem OLAP
275
Iniţiere în tehnologia OLAP-teorie şi practică
276
Proiectarea şi realizarea unui sistem OLAP
277
Iniţiere în tehnologia OLAP-teorie şi practică
Datele au fost încărcate din baza de date relaţională sursă, a cărei schemă
logică a fost prezentată în etapa 9.3, iar programele de încărcare sunt scrise în
limbajul Express şi prezentate în anexa 1.
Pentru agregarea datelor s-au creat următoarele programe:
“program pentru agregarea variabilei ncd după dimensiunea Instituţii
rollup ncd over institutii using inst_inst
“program pentru agregarea variabilei nrstud după dimensiunea Instituţii
limit institutii to fac_set, 'ASE'
rollup nrstud over institutii using inst_inst
“program pentru agregarea variabilelor nrtesa, nrcadre, nrdoct şi nrstud_cer
după dimensiunea Instituţii
rollup nrtesa over institutii using inst_inst
rollup nrcadre over institutii using inst_inst
rollup nrdoct over institutii using inst_inst
rollup nrstud_cer over institutii using inst_inst
“program pentru agregarea variabilelor nrproiecte, valoare_dolari şi valoare_lei
după dimensiunea Instituţii
rollup nrproiecte over institutii using inst_inst
rollup valoare_dolari over institutii using inst_inst
rollup valoare_lei over institutii using inst_inst
278
Proiectarea şi realizarea unui sistem OLAP
279
Iniţiere în tehnologia OLAP-teorie şi practică
280
Proiectarea şi realizarea unui sistem OLAP
evoluţia indicatorilor: N1 (figura 9.17), Vtgn, N2, Vtci, N3, Vtcn, N dcd ,
N ftd , N7, N91, N92, N93 şi N10.
evoluţia grafică a numărului de studenţi implicaţi în activitatea de cercetare
(figura 9.18);
încărcarea cadrelor didactice, rata publicaţiilor (figura 9.19);
evoluţia grafică a numărului de publicaţii (include şi evoluţia grafică a
indicatorilor N5.1, N5.2, N6.1, N6.2) (figura 9.20);
procentul de participare la activitatea de cercetare;
evoluţia grafică a numărului de studenţi la nivel de facultate. Se alege
facultatea sau facultăţile, precum şi anul sau anii de analiză şi se afişează
tabelar, evoluţia numărului de studenţi. Tabelul rezultat poate fi exportat în
Excel.
evoluţia grafică a numărului de doctoranzi implicaţi în activitatea de
cercetare;
evoluţia grafică a numărului de proiecte de cercetare. De exemplu: evoluţia
numărului de proiecte în perioada 2000-2003, evoluţia numărului de
proiecte finanţate prin Orizont 2000 în perioada 2000-2003, evoluţia
indicatorului N1, la nivel de catedră, facultate sau universitate, în perioada
2000-2003, evoluţia indicatorului N2, la nivel de catedră, facultate sau
universitate, în perioada 2000-2003, evoluţia indicatorului N3, la nivel de
catedră, facultate sau universitate, în perioada 2000-2003 etc;
Utilizarea modelului multidimensional şi a unei baze de date
multidimensionale permite managerilor să manipuleze datele fără intermediari
(cum ar fi în cazul interogării unui sistem relaţional) şi să identifice mult mai uşor
erorile şi datele care lipsesc, precum şi să le corecteze. Prezentarea
multidimensională a informaţiilor permite managerilor să manipuleze şi să
interpreteze mai uşor aceste informaţii. Se reduce astfel timpul de acces şi efortul
depus.
Toţi managerii, care utilizează sistemul OLAP, vor vizualiza informaţiile din
aceleaşi perspective (modelul multidimensional este proiectat pe baza tipurilor de
cereri şi a scenariilor de analiză stabilite de manageri). Cererile realizate pe bazele
de date relaţionale au diferite rezultate, în funcţie de modul cum sunt ele formulate.
281
Iniţiere în tehnologia OLAP-teorie şi practică
282
Proiectarea şi realizarea unui sistem OLAP
283
Iniţiere în tehnologia OLAP-teorie şi practică
284
Proiectarea şi realizarea unui sistem OLAP
285
Iniţiere în tehnologia OLAP-teorie şi practică
Figura 9.21 Sistemul OLAP oferă informaţii despre structura bazei de date
Rezumat
În acest capitol s-a proiectat şi realizat un sistem OLAP. Pentru proiectarea
sistemului OLAP s-a utilizat metodologia propusă în capitolul 5.
De asemenea, s-a propus un model de afaceri, pentru evaluarea activităţii de
cercetare, sub forma unui cub de informaţii, pe baza studiului procesului
286
Proiectarea şi realizarea unui sistem OLAP
Cuvinte cheie
Model de afaceri, cub n-dimensional de informaţii, sistem OLAP, metoda
orientată pe cereri, model multidimensional conceptual, structură multicub,
schema stea, schema fulg de zăpadă, tabelă de fapte.
287
Anexa 2
Interfaţă sistemului OLAP a fost realizată cu instrumentul Oracle Express
Objects 6.3.2. Elementele componente ale interfeţei sunt prezentate în figura A2.1.
În această anexă, sunt prezentate cele mai semnificative pagini ale aplicaţiei,
elementele lor componente, precum şi codul scris în limbajul Express. Elementele
componente ale paginii principale pagmain (Text: Evaluarea activităţii de
cercetare universitară) sunt prezentate în figura A2.2. Pagina conţine un meniu
principal menu1, un grup de obiecte grpstatusbar ce include o eticheta label2 şi o
bară de stare, un obiect de tip banner ase (Text: Academia de Studii Economice), un
obiect de tip timer timer1, o figură picturebox2 (File Name: D :\oracle \olap\
OEO632\work\PERSCMP1.BMP) şi o etichetă label1 (Text: Activitatea de
288
Anexa 2
289
Iniţiere în tehnologia OLAP-teorie şi practică
290
Anexa 2
291
Iniţiere în tehnologia OLAP-teorie şi practică
292
Anexa 2
Sub AfterItemClick ()
Dim tStr as String
Dim iPageResult as Integer
iPageResult = evolutie_vol_finantarii_dol.ShowModal()
pagMain.SetFocus
End Sub
293
Iniţiere în tehnologia OLAP-teorie şi practică
Sub AfterItemClick ()
Dim tStr as String
Dim iPageResult as Integer
iPageResult = evolutia_valdol_centre.ShowModal()
pagMain.SetFocus
End Sub
294
Anexa 2
Sub AfterItemClick ()
dim tstr as string
dim ipageresult as integer
ipageresult=studenti_grafic.showmodal()
pagmain.setfocus
End Sub
295
Iniţiere în tehnologia OLAP-teorie şi practică
Sub AfterItemSelect ()
Dim tStr as string, tMsg as String
If ( it.ItemStyle = 2) Then
tMsg = " "
Else
tStr = it.Text
If (Instr(tStr, "...") > 0) Then
tStr = Left$(tStr, Len(tStr) - 3)
End If
tMsg = tStr
296
Anexa 2
End If
grpStatusBar.SetStatusMsg tMsg
End Sub
Opţiunea commanditem1 (Text: Facultăţile din ASE) are ataşat următorul cod:
Sub AfterItemClick ()
institutii.showmodal
End Sub
297
Iniţiere în tehnologia OLAP-teorie şi practică
298
Anexa 2
Pagina pgiterator1_1 (Text: Baza de date) este prezentată în figura A2.7 şi are
următoarele componente: o etichetă label1_3 (Text: Baza de date a aplicaţiei), un
grup de obiecte groupbox1 (Text: Opţiuni) format din două casete de validare
chkvisible (Text: Afişează numai obiectele vizibile utilizatorului, Value: 1-
Checked)) şi chklabels (Text: Utilizează etichetele, Value: 0-Unchecked), o etichetă
label3_1 (Text: Obiectele bazei de date), o etichetă label2_1 (text: Tipuri de
obiecte), două liste lbtypes (unde se vor afişa tipurile de obiecte ale bazei de date)
şi lbobjects (unde se vor afişa obiectele de un anumit tip), o etichetă label3_1_1
(Text: Dimensiuni), o listă lbdims (unde se vor afişa dimensiunile măsurilor) şi o
etichetă label1 (Text: Se selectează obiectele bazei de date pe care dorim să le
afişam (dublu click cu mouse-ul). La evenimentul AfterDblClick al listei lbtypes se
ataşează următorul cod:
Sub AfterDblClick ()
Dim db as DatabaseFile
Dim iter as DatabaseIterator
Dim desc as String
Dim i as Integer
Dim objType as String
Dim objFlags as Integer
Dim flags as Integer
Dim sort as Integer
Dim useLabels as Integer
Const MB_ICONEXCLAMATION = 48
' Get the database file
On Error Goto haderror
Set Db = DataDictionary.AttachDatabase("EVALUARE_FINAL" )
If Db is Nothing Then Goto haderror
objType = UCase( text )
Select Case ObjType
Case "DIMENSIUNI"
objFlags = dbiOTDimension
Case "FORMULE"
objFlags = dbiOTFormula
Case "VARIABILE"
objFlags = dbiOTVariable
Case "RELATII"
objFlags = dbiOTRelation
End Select
If GroupBox1.chkVisible.Value = 1 Then
flags = dbiOBJUserData
Else
flags = 0
End If
If GroupBox1.chkLabels.Value = 1 Then
299
Iniţiere în tehnologia OLAP-teorie şi practică
useLabels = YES
sort = dbiSTLongName
Else
useLabels = NO
sort = dbiSTName
End If
Set iter = db.GetDatabaseIterator( objFlags, flags, sort )
If useLabels = YES Then
call lbObjects.SetItems( iter.GetDescription(-1), , YES )
Else
call lbObjects.SetItems( iter.GetName(-1), , YES )
End If
set lbObjects.iter = iter
Exit Sub
haderror:
Call MsgBox( "EVALUARE_FINAL.DB nu poate fi gasita",
MB_ICONEXCLAMATION, "BAZA APLICATIEI" )
Exit Sub
End Sub
300
Anexa 2
301
Iniţiere în tehnologia OLAP-teorie şi practică
' 'FPS'"
If ExpCmd.Execute(cmd) <> true then
MsgBox ExpCmd.Errortext
End If
' se execută comanda şi se afişează rezultatele
cmd = "rpr down institutii nrpub"
If ExpCmd.Execute(cmd) <> true then
txtOutput.text = ExpCmd.ErrorText
Else
txtOutput.text = ExpCmd.GetLog()
End If
'Call ExpressOutput1.Execute()
End Sub
302
Anexa 2
303
Iniţiere în tehnologia OLAP-teorie şi practică
304
Anexa 2
Graph5.GraphType = grGTMultiPieProp
if Graph5.Effect3D = No then
Graph5.Effect3D = Yes
end if
if Graph5!XTitle.Visible = Yes then
Graph5!XTitle.Visible = No
end if
if Graph5!Y1Title.Visible = Yes then
Graph5!Y1Title.Visible = No
end if
Graph5.Visible = Yes
End Sub
305
Iniţiere în tehnologia OLAP-teorie şi practică
306
Anexa 2
307
Iniţiere în tehnologia OLAP-teorie şi practică
308
Anexa 2
309
Iniţiere în tehnologia OLAP-teorie şi practică
RotateError:
call dcpers.Rotate(dcROSwap, enMeasure, enLastInrow)
resume next
End Sub
310
Anexa 2
311
Iniţiere în tehnologia OLAP-teorie şi practică
312
Anexa 2
End Sub
Pagina Top (Text: Primele trei facultăţi) este prezentată în figura A2.17 şi are
următoarele componente: un buton domzoom (Text: Total), un buton tipzoom (Text:
Tip_proiect), un buton Top3 (Text: Top3), un buton explicatie (Text: Explicaţie),
un grup de obiecte measgroup (Text: Indicatori) format din trei casete de validare
opt1 (Text: Valoare(lei), Value:1-Checked), opt2 (Text: Valoare(dolari), Value: 0-
unchecked), opt3 (Text: Număr proiecte, Value:0-unchecked), un tabel table1 (se
vor afişa valorile variabilei selectate). La evenimentul AfterRun al paginii se
ataşează următorul cod:
313
Iniţiere în tehnologia OLAP-teorie şi practică
314
Anexa 2
application.showhourglass = true
table1.datacube.autorefreshdata = false
call table1.GetSelectedObject(Comp, ObjClass, Row, Column)
select case objclass
case vwocdatabody, vwocdataedge, vwocbodynondata
measVal = table1.GetDimValues(ObjClass, Row, Column,
"XP_MEASUREDIM")
timpval = table1.GetDimValues(ObjClass, Row, Column, "TIMP")
if (measval = "" or timpval = "") Then goto exit_sub
set sel = table1.getselection("INSTITUTII")
sel.AutoSort = NO
sel.sortdatameasure = measval
sel.StatusScript = _
"call XP_SLLIMIT('INSTITUTII', 'EXTREME', 'KEEP'," & _
"'NONE', 'NA', 'TOP', '3', 'NO', 'NA', 'NO', 'YES', " & _
"'YES', '" & MEASVAL & "', 'TIP_PROIECT\nTIMP', " & _
"'TOTAL\n" & timpval & " ')"
call table1.GetSelectedObject(Comp, ObjClass, Row, Column)
case else
end select
exit_sub:
table1.datacube.autorefreshdata = true
End Sub
315
Iniţiere în tehnologia OLAP-teorie şi practică
strmsg=strmsg & "Se apasă apoi butonul Top 3 pentru a afişa primele trei facultăţi
în funcţie de valorile indicatorului selectat" & chr$(13) & chr$(13)
strmsg=strmsg & "Pentru detalii se apasă apoi butonul Tip_proiect. Se afişează în
detaliu valorile indicatorului pentru fiecare tip de proiect"
msgbox strmsg, 64,"Explicatii", container.[text]
End Sub
316
Anexa 2
call diminstitut1.refreshselection(dlbselhighlight)
call DimLB1.RefreshSelection( dlbSELHighlight )
call DimLBpub.RefreshSelection( dlbSELHighlight )
set graph1.datacube=table1.datacube
End Sub
317
Iniţiere în tehnologia OLAP-teorie şi practică
Pagina instituţii (Text: Facultăţile şi catedrele din ASE) este prezentată în figura
A2.19 şi are următoarele componente: un arbore treeview1 (TreeLine: 1-Root lines,
Tree ViewStyle: 6-Lines...). La evenimentul AfterActivate al paginii se ataşează
următorul cod:
Sub AfterActivate ()
dim i as integer
call TreeView1.Clear
call TreeView1.AddTreeNode("ACADEMIA DE STUDII ECONOMICE",
"ASE")
call TreeView1.AddTreeNode("FACULTATEA STUDII ECONOMICE IN
LIMBI STRAINE", "FSELS", "ASE", tvwRSChild)
318
Anexa 2
319
Iniţiere în tehnologia OLAP-teorie şi practică
320
Anexa 2
end if
End Function
321
Anexa 3
Sistemul informatic tranzacţional utilizează o bază de date relaţională Oracle
8.1.7. Modelul entitate-asociere al sistemului informatic tranzaţional, precum şi
schema conceptuală a bazei de date relaţională sursă sunt prezentate în capitolul 9.
Scriptul SQL pentru definirea structurii bazei de date relaţionale este prezentat
în cele ce urmează:
drop table facultati cascade constraints;
drop table catedre cascade constraints;
drop table categ_pub cascade constraints;
drop table persoane cascade constraints;
drop table publicatii cascade constraints;
drop table pers_pub;
drop table nrprof_cat;
drop table stud_fac;
drop view pub_prof;
drop table teze;
drop table brevete;
drop table reprezentari;
drop table premii;
drop table centre cascade constraints;
drop table tip_proiect cascade constraints;
drop table proiecte cascade constraints;
drop table pers_proi;
prompt creare tabelă Facultati
create table facultati(codfac varchar2(5) primary key, den_fac varchar2(60),
den_inst varchar2(6));
prompt creare tabelă Catedre
create table catedre(codcat varchar2(5) primary key, dencat varchar2(60),
codfac varchar2(5), foreign key(codfac) references facultati(codfac));
prompt creare tabelă Categorii
create table categ_pub(codsubcat varchar2(2) primary key,
den_subcat varchar2(70), categ varchar2(10));
prompt creare tabelă Persoane_cercetare
create table persoane(codp number(3) primary key, nume varchar2(30),
functia varchar2(3), doctorat varchar2(3), imagine blob, an_prom varchar2(4),
322
Anexa 3
323
Iniţiere în tehnologia OLAP-teorie şi practică
324
Anexa 3
325
Bibliografie
Cărţi
[BALL98] C. Ballard, D. Herreman, D. Schau, Data Modeling Techniques for
Data Warehousing, http://www.redbooks/ibm/com, 1998
[BARA00] C. Baragoin, J. Bercianos, G. Robinson “DB2 OLAP Server
Theory and Practices”, International Technical Support
Organization, http://www.redbooks/ibm/com, 2000
[BATI92] C. Batini, S. Ceri, S. Navathe, Conceptual database Design - an
Entity-Relationship Approach, Benjamin/Cummings, 1992
[BEYO97] D. Beyon, Information and Data Modeling, MacGraw Hill
Publishing Company, 1997
[BONC81] R. Bonczek, C. Holsapple, A. Whinston, Foundation of Decision
Support Systems, Academy Press, New York, 1981
[CODD91] E. Codd, The relational Model for Database Management: version
2, Addison-Wesley Publishing Company, Reading, MA, 1991
[DATE95] Date, Chris J., An Introduction to Database Systems, 6th ed.,
Addison-Wesley Publishing Company, Reading, MA, 1995
[DAOE98] Oracle Corporation, Develop Applications with Oracle Express
Objects, Student Guide, vol 1, 2, 1998
[ELMA94] R. Elmasri, S. Navathe, Fundamentals of Database Systems, 2nd
Benjamin/Cummings, 1994
[GRAY98] P. Gray, H. Watson, Decision Support in the Data Warehouse,
Prentice Hall, 1998
[INMO92] W H Inmon, Building the Data Warehouse, John Wiley&Sons,
New York, 1992
[KEND92] K. E. Kendall, J E. Kendall, Systems Analysis and Design, 2nd ed.,
Englewood Cliffs, New Jersey, Prentice Hall Inc., 1992
[KILA98] R. Kimball, Laure Reeves, Margy Ross, The Datawarehouse Life
Cycle Toolkit. Experts Methods for Designing, Developing and
Deploying Data Warehouses, John Willey &Sons, 1998
[KIMB96] R. Kimball, The Data Warehouse Toolkit, Practical Techniques
for Building Dimensional Data Warehouses, John Wiley&Sons,
New York, 1996
326
Bibliografie
327
Iniţiere în tehnologia OLAP-teorie şi practică.
Articole şi comunicări
[ABEL00] A. Abello, J. Samos, F. Saltor, A data warehouse multidimensional
Data Models classification, Proc. Workshop on Design and
Management of Data Warehouses, 2000
[AGRA97] R. Agrawal, A. Gupta, S. Sarawagi, Modeling multidimensional
databases, 13th International Conference on Data Engineering,
1997
[ARBO97] Arbor Sofware Corporation, Relational OLAP: Expectiations &
Reality, White Paper, 1997
[ARBO00] Arbor Software Corporation, Analytical Processing: A comparison
of multidimensional and SQL-based approaches, White paper,
2000
[BLAS98] M. Blaschka, C. Sapia, G. Höfling, B. Dinter, Finding your way
through multidimensional data models, Proc of 9th International
Conference on Database and Expert Systems Applications, nr 1460
in LNCS Springer, 1998
[BLAS99] C. Sapia, M. Blaschka, G. Höfling, B. Dinter, Extending the E/R
model for the multidimensional paradigm, Proc. International
Workshop on Data Warehouse and Data Mining in conjunction
with the ER’98, nr 1552, in LNCS, Springer, 1999
[BLAS00] M. Blaschka, Fiesta: A framework for Schema Evolution in
Multidimensional Databases, PhT thesis, Institut fur Informatik
der Technischen Universität München, 2000
[BULE01] Academia de Studii Economice, Departamentul de Cercetări
Economice, Buletin Informativ, 2001, 2002, 2003
[BULO96] Bulos D., A new Dimension, Database Programming& Design,
6/1996
[CABB97] L. Cabbibo, R. Torlone, Querying Multidimensional databases,
Proc of 6th Workshop Database Programming Languages, USA,
1997
[CABB98a] L. Cabbibo, R. Torlone, From a procedural to a Visual Query
Language for OLAP, 10th IEEE International Conference on
Scientific and Statistical Database Management, 1998
[CABB98b] L. Cabbibo, R. Torlone, A logical approach to multidimensional
databases, Proc. of EDBT’98, Springer, 1998
[CHAU97] S. Chaudhuri, U. I. Dayal, An overview of Data Warehousing and
OLAP Technology, ACM SIGMOD Record 26, Tucson, 1997
328
Bibliografie
329
Iniţiere în tehnologia OLAP-teorie şi practică.
330
Bibliografie
331
Iniţiere în tehnologia OLAP-teorie şi practică.
Adrese Internet
http://www.dce.ase.ro/
http://www.cncsis.ro/
http://www.arborsoft.com/
http://www.businessobjects.com/
http://www.cognos.com/
http://www.informix.com/
http://www.ibm.com
http://www.holistic.com/
http://www.kenan.com/
http://www.pilotsw.com/
http://www.olapcouncil.org
http://www.olapreport.com/
http://www.oracle.com
http://www.strategy.com/
332