You are on page 1of 332

Cuprins

1. Sistemele OLAP sisteme suport de decizie moderne .........................


1.1. Locul sistemelor OLAP n evoluia sistemelor suport de decizie ............................... 1.2. Sisteme suport de decizie orientate pe date (Data Driven Decision Support Systems) ......................................................................................................................................... 1.2.1. Sisteme informatice executive ............................................................................ 1.2.2. Sisteme suport de decizie spaiale .................................................................... 1.2.3. Sisteme suport de decizie ce utilizeaz depozite de date .......................... 1.2.4. Sisteme OLAP ......................................................................................................... 1.2.4.1. Evoluia sistemelor OLAP ....................................................................... 1.2.4.2. Relaia ntre depozitele de date i sistemele OLAP ........................ 1.2.4.3. Regulile lui Codd ........................................................................................ 1.3. Sisteme informatice pentru inteligena afacerilor ......................................................

6 6 13 13 14 15 17 21 24 25 39 36 37 37 41 42 45 46 47 49 50 54 55 59 59 62

2. Modele de date multidimensionale pentru sisteme OLAP ....................


2.1. Concepte de baz .................................................................................................................. 2.1.1. Conceptul de cub n - dimensional ........................................................................ 2.1.2. Conceptul de dimensiune ....................................................................................... 2.1.3. Conceptul de ierarhie ............................................................................................ 2.1.4. Conceptul de msur .............................................................................................. 2.1.5. Conceptul de multicub ........................................................................................... 2.1.6. Conceptul de mprtiere ...................................................................................... 2.2. Modele de date OLAP extensii ale modelului relaional .......................................... 2.2.1. Operatorul Cub de date ........................................................................................ 2.2.2. Modelul lui Li Wang ................................................................................................ 2.2.3. Modelul lui Kimball ................................................................................................. 2.3. Modele orientate pe cuburi ............................................................................................... 2.3.1. Modelul lui Agrawal ................................................................................................ 2.3.2. Modelul lui Cabibbo ................................................................................................

2.3.3. Modelul lui Blaschka .............................................................................................. 2.4. Evaluarea modelelor multidimensionale ...........................................................................

64 69 76 77 80 85 87 92 92 93 95 96 96 97 98 106 110 111 112 113 115 116 118 119 120 121 122 122 123 124

3. Arhitectura sistemelor OLAP .....................................................................


3.1. Sisteme ROLAP ..................................................................................................................... 3.2. Sisteme MOLAP .................................................................................................................... 3.3. Sisteme hibride (HOLAP) .................................................................................................. 3.4. Arhitectura sistemelor OLAP ...........................................................................................

4. Instrumente OLAP ........................................................................................


4.1. Caracteristici logice ............................................................................................................. 4.1.1. Structura datelor ................................................................................................... 4.1.2. Operaii ..................................................................................................................... 4.1.3. Modul de reprezentare a datelor multidimensionale ..................................... 4.1.4. Alte caracteristici logice ...................................................................................... 4.2. Caracteristici fizice ............................................................................................................ 4.3. Exemple de instrumente OLAP ......................................................................................... 4.4. Standarde ..............................................................................................................................

5. Proiectarea sistemelor OLAP .....................................................................


5.1. Metoda lui Cabibbo i Torlone ........................................................................................... 5.1.1. Identificarea faptelor, dimensiunilor, ierarhiilor i msurilor .................... 5.1.2. Restructurarea modelului entitate asociere ................................................. 5.1.3. Derivarea unui graf dimensional .......................................................................... 5.1.4. Transformarea n modelul multidimensional conceptual ................................ 5.2. Metoda lui Golfarelli ............................................................................................................ 5.2.1. Identificarea faptelor .......................................................................................... 5.2.2. Construirea unui arbore al atributelor ............................................................. 5.2.3. Rafinarea arborelui ................................................................................................ 5.2.4. Definirea dimensiunilor ........................................................................................ 5.2.5. Definirea msurilor ............................................................................................... 5.2.6. Definirea ierarhiilor .............................................................................................. 5.3. Metoda lui Erik Thomsen ....................................................................................................

5.3.1. Definirea cuburilor i a dimensiunilor ................................................................ 5.3.2. Rafinarea cuburilor n dimensionale ................................................................. 5.3.3. Identificarea ierarhiilor din dimensiuni ........................................................... 5.3.4. Identificarea variabilelor .................................................................................... 5.3.5. Stabilirea formulelor de calcul i a tipurilor de agregare ........................... 5.3.6. Tratarea fenomenului de mprtiere ............................................................... 5.3.7. Definirea modelelor de calcul complexe necesare analizelor ......................

125 125 126 126 126 126 127 132 135 136 137 139 141 143 148 150 153 156 165 171 176 181 185 190 192 192 200 204 204 205

6. Dezvoltarea sistemelor OLAP cu Oracle Express Objects .................


6.1. Utilitarul Object Browser .................................................................................................. 6.2. Crearea unui proiect ............................................................................................................ 6.3. Deschiderea, nchiderea i lansarea n execuie a unui proiect ................................ 6.4. Crearea, editarea i lansarea n execuie a unei pagini ............................................... 6.5. Componentele lui Object Inspector ................................................................................ 6.6. Crearea obiectelor unui proiect ........................................................................................ 6.7. Utilizarea coleciei de rutine QuickActions .................................................................. 6.8. Limbajul de programare Express....................................................................................... 6.8.1. Declararea variabilelor .......................................................................................... 6.8.2. Structuri de program ............................................................................................ 6.9. Utilitarul Database Browser .............................................................................................. 6.10. Crearea i utilizarea tabelelor i a graficelor ............................................................. 6.10.1. Crearea tabelelor i a graficelor ...................................................................... 6.11. Crearea listelor ce conin valori ale dimensiunilor ...................................................... 6.12. Instrumentul Selector ...................................................................................................... 6.13. Crearea meniurilor ............................................................................................................. 6.14. Adugarea obiectelor definite de utilizator n caseta de instrumente ................ 6.15. Utilizarea obiectelor de dialog ........................................................................................

7. Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer ...............


7.1. Conectarea la baza de date multidimensional .............................................................. 7.2. Crearea, actualizarea i salvarea unui briefing ........................................................... 7.3. Crearea i editarea paginilor .............................................................................................

7.4. Mutarea, duplicarea i referirea paginilor ..................................................................... 7.5. Crearea obiectelor unui briefing ...................................................................................... 7.6. Lansarea n execuie a unui briefing sau a unei pagini ................................................ 7.7. Utilizarea tabelelor pentru analiza datelor ................................................................... 7.8. Instrumentul Selector ........................................................................................................ 7.9. Agregarea datelor ................................................................................................................

206 207 212 212 215 219 224 225 236 240 242 243 244 248 252 254 261 261 262 264 264 266 270 271 288 326

8. Crearea unei baze de date multidimensionale cu Oracle Express Administrator ......................................................................................................


8.1. Definirea dimensiunilor bazei de date ............................................................................. 8.2. Definirea variabilelor .......................................................................................................... 8.3. Definirea relaiilor ............................................................................................................... 8.4. Definirea formulelor ........................................................................................................... 8.5. Definirea seturilor de valori .............................................................................................. 8.6. Definirea programelor ........................................................................................................

9. Proiectarea i realizarea unui sistem OLAP (studiu de caz) ...............


9.1. Iniierea proiectului ............................................................................................................. 9.2. Studiul i analiza procesului decizional curent i a cerinelor informaionale ...... 9.3. Proiectarea modelului multidimensional conceptual ..................................................... 9.3.1. Identificarea variabilelor ..................................................................................... 9.3.2. Identificarea dimensiunilor i a ierarhiilor ..................................................... 9.3.3. Definirea cuburilor n dimensionale sau a structurii multicub .................. 9.3.4. Rafinarea modelului multidimensional ............................................................... 9.4. Proiectarea logic ................................................................................................................. 9.5. Proiectarea fizic ................................................................................................................. 9.6. Construirea sistemului OLAP .............................................................................................

Anexe .................................................................................................................... Bibliografie ..........................................................................................................

Capitolul 1 Sistemele OLAP-sisteme suport de decizie moderne


Accesul la informaie este o cerin de prim importan n orice organizaie, care i dorete s aib o prezen competitiv pe pia, n condiiile schimbrilor rapide din ziua de azi. Managerii doresc o informaie corect i actual, oferit n timp real, ntr-un format corespunztor i la un pre convenabil. n 1992 Codd observa c Abilitatea ntreprinderii de a concura cu succes i de a prospera este corelat direct cu eficacitatea capacitii sale OLAP. Dei sistemele OLAP (On-Line Analytical Processing) au fost incluse n sistemele suport de decizie orientate pe date [POWE01] totui ele sunt mai exact sisteme suport de decizie hibride, deoarece utilizeaz tehnici analitice simple (analiza multidimensional a datelor) pentru a analiza seturi mari de date. Majoritatea specialitilor sunt de acord c depozitele de date (data warehouse) mpreun cu instrumentele OLAP ofer posibilitatea de a transforma cantitile uriae de date ce exist n firme, n informaii utile procesului decizional. De asemenea, folosirea tehnicilor analitice oferite de instrumentele OLAP mpreun cu depozitele de date i facilitile oferite de Web, permit un acces mai uor i mai rapid la informaiile necesare procesului decizional modern. Aceste sisteme au reuit s ofere managerilor o informaie de calitate i noi moduri de interpretare a informaiilor, astfel eficacitatea procesului decizional s-a mbuntit. Ca urmare a creterii rolului pe care sistemele OLAP l au n infrastructura informatic a unei organizaii, s-a considerat necesar prezentarea, n acest capitol, a evoluiei sistemelor OLAP de la apariia lor pn n prezent, a locului acestor sisteme n cadrul sistemelor suport de decizie moderne i rolul lor n managementul inteligent al firmelor secolului XXI.

1.1 Locul sistemelor OLAP n evoluia sistemelor suport de decizie


Conceptul de sistem suport de decizie (SSD) este extrem de larg i definiia sa variaz n funcie de punctul de vedere al celui care a formulat-o. nc din anii70

Sisteme OLAP-sisteme suport de decizie moderne

specialitii au ncercat s defineasc ct mai complet sistemele suport de decizie i s le stabileasc caracteristicile. Prima definiie a sistemelor suport de decizie a fost dat de Little, la nceputul anilor70 [TURB98]. El definea SSD-ul ca fiind un model bazat pe un set de proceduri pentru procesarea datelor i pentru asistarea unui manager n procesul decizional. Un SSD trebuie s fie simplu, robust, uor de ntreinut, adaptiv, uor de comunicat cu el etc. Unul din pionerii cercetrii n domeniul sistemelor suport de decizie, Steven Alter [TURB98] definete aceste sisteme n comparaie cu sistemele tranzacionale. El consider c sistemele suport de decizie sunt destinate managerilor i au ca obiectiv principal eficacitatea deciziilor spre deosebire de sistemele tranzacionale care sunt folosite de operatori i au ca obiectiv principal eficiena i consistena datelor. Moore i Chang [TURB98] definesc sistemul suport de decizie ca un sistem extensibil, capabil s suporte analize ad-hoc i modelarea deciziei, orientat pentru planificri viitoare i folosit la intervale neplanificate i neregulate. n lucrarea Decision Support Systems: An Organizational Perspective (1978), Keen definete sistemul suport de decizie ca un produs al procesului de dezvoltare n care managerul, proiectantul i sistemul sunt capabili s se influeneze reciproc, cu rezultate n evoluia sistemului [TURB98]. Bonczek i Holsapple n lucrarea Foundation of Decision Support Systems (1981) definesc sistemul suport de decizie ca fiind un sistem informatic format din trei componente ce interacioneaz: interfaa cu utilizatorul (Dialog Management), componenta de gestiune a datelor (Data Management), componenta de gestiune a modelelor (Model Management). Sprague i Carlson [SPRA93] definesc SSD-ul ca fiind un sistem informatic interactiv ce i ajut pe decideni s foloseasc date i modele, pentru a rezolva probleme economice semistructurate i nestructurate. Holsapple i Whinston n lucrarea Decision Support Systems: A knowledge Based Approach (1996) pun n eviden cinci caracteristici specifice unui SSD i anume: conine o baz de cunotine ce descrie unele aspecte ale lumii decidentului (de exemplu cum se realizeaz diferite activiti ale procesului decizional); are abilitatea de a achiziiona i gestiona cunotine descriptive i alte tipuri de cunotine (proceduri, reguli); are abilitatea de a prezenta cunotinele ad-hoc sau sub form de rapoarte periodice; are abilitatea de a selecta un subset de cunotine pentru a fi vizualizate sau pentru a deriva alte cunotine necesare procesului decizional; poate interaciona direct cu decidentul i i permite acestuia flexibilitate n alegerea soluiilor i a gestiunii cunotinelor. ntr-un mod mult mai precis, Turban [TURB98] definete un SSD ca un sistem informatic interactiv, flexibil i adaptabil, special proiectat pentru a oferi suport n soluionarea unor probleme manageriale nestructurate sau

Iniiere n tehnologia OLAP-teorie i practic

semistructurate, cu scopul de a mbunti procesul decizional. Sistemul utilizeaz date (interne i externe) i modele, ofer o interfa simpl i uor de utilizat, permite decidentului s controleze procesul decizional i ofer suport pentru toate etapele procesului decizional. Hattenschwiler [HATT99] consider c SSD-urile sunt sisteme informatice bine organizate, proiectate n special pentru un mediu de decizie clar definit i capabile s fie perfecionate continuu. SSD-urile nu iau decizii dar propun decidenilor analize ale avantajelor i dezavantajelor alternativelor existente, studii de fezabilitate i documentaii ale alternativelor. Se observ c definirea sistemelor suport de decizie a pornit de la: percepia a ceea ce face un astfel de sistem (suport pentru procesul decizional, n probleme nestructurate i semistructurate); ideile despre cum pot fi realizate obiectivele unui SSD; identificarea componentelor unui SSD; facilitile oferite utilizatorilor (tabelul 1.1). Tabelul 1.1 Definiii ale conceptului de SSD Sursa Definirea unui SSD Sprague, Carlson Tipul problemei i funcia sistemului Little Funcia sistemului Alter Obiectivele sistemului Moore, Chang Facilitile sistemului Keen Procesul de dezvoltare Bonczek Componentele sistemului Holsapple, Whinston Caracteristicile sistemului Turban O combinare a definiiilor date de Alter, Moore, Bonczek, Sprague Pe de alt parte, Schroff [SCHR98] i Keen [POWE01] consider c este imposibil de a da o definiie precis incluznd toate aspectele SSD-urilor. Totui conceptul de SSD rmne un termen folositor care se refer la multe tipuri de sisteme informatice, ce ofer suport procesului decizional [POWE01]. n ultimii ani, noile tehnologii informatice au determinat apariia de noi criterii de clasificare a sistemelor suport de decizie moderne. Astfel Power [POWE01] propune o nou clasificare (la nivel conceptual) a SSD-urilor n: SSD-uri orientate pe comunicaie (Communication-Driven DDS), SSD-uri orientate pe date (DataDriven DSS), SSD-uri orientate pe documente (Document-Driven DDS), SSD-uri orientate pe cunotine (Knowledge-Driven DDS), SSD-uri orientate pe modele (Model-Driven DDS), SSD-uri bazate pe Web (Web-based DSS), SSD-uri specializate (Function-specific DSS/industry-specific DDS) i SSD-uri interorganizaionale sau intraorganizaionale (Inter-organizational/Intraorganizational DSS).

Sisteme OLAP-sisteme suport de decizie moderne

SSD-urile orientate pe date includ sistemele de fiiere, sistemele de raportare pentru conducere, depozitele de date, sistemele OLAP, sistemele informatice executive (Executive Information Systems), sistemele informatice spaiale (Spatial Information Systems) i sistemele informatice pentru inteligena afacerilor (Business Intelligence Systems). Aceste sisteme pun accentul pe accesul i manipularea unor baze de date structurate, de dimensiuni mari (n special serii de timp ale datelor interne i externe). Sistemele simple de fiiere, accesate de instrumente de interogare, ofer cel mai elementar nivel de funcionalitate, iar sistemele cu depozite de date, sistemele OLAP i sistemele informatice pentru inteligena afacerilor ofer cel mai nalt nivel de funcionalitate. SSD-urile orientate pe modele includ sisteme ce utilizeaz modele financiare i de contabilitate, modele de optimizare i de simulare. Un SSD orientat pe modele pune accentul pe accesul i manipularea unui model. n aceste sisteme, valorile variabilelor cheie se modific adesea, pentru a reflecta modificrile ce apar n activitile de livrare, producie, etc. Instrumentele analitice i statistice simple ofer cel mai elementar nivel de funcionalitate. Unele sisteme OLAP, ce permit analiza complex a datelor pot fi clasificate ca SSD-uri hibride, deoarece permit att modelare ct i agregarea datelor. SSD-urile orientate pe cunotine (Suggestion DSS/Knowledge Driven DDS/ Management Expert Systems) pot sugera sau recomanda aciuni managerului. Aceste SSD-uri ofer experien (cunotine despre domeniul analizat, nelegerea problemelor din acel domeniu) n rezolvarea unor probleme. Aceste sisteme utilizeaz modele speciale pentru procesarea regulilor sau identificarea relaiilor ce apar n date. Instrumentele utilizate pentru construirea SSD-urilor orientate pe cunotine sunt uneori numite suport de decizie inteligente (Intelligent Decision Support Methods) [Dhar i Stein 1997]. Instrumentele de tip data mining pot fi folosite pentru a crea SSD-uri hibride ce includ att date ct i cunotine. Un nou tip de SSD este cel orientat pe documente sau sistem de gestiune a cunotinelor (Knowledge Management System) care i ajut pe manageri s gestioneze documente nestructurate i pagini Web, ntr-o varietate de formate electronice. Un astfel de SSD integreaz o varietate de tehnologii de stocare i prelucrare a documentelor. Web-ul ofer acces la baze de documente, de dimensiuni mari (baze de documente hypertext, imagini, sunete i video). Un astfel de SSD trebuie s includ un motor de cutare foarte rapid. Activitile specifice acestui tip de SSD sunt crearea, cutarea, gruparea i indexarea documentelor. SSD-urile de grup (Group Decision Support Systems) sau o categorie mai extins i anume sistemele suport de decizie orientate pe comunicaii includ tehnologii de comunicare, colaborare i suport de decizie. Un SSD de grup este un SSD hibrid ce pune accentul att pe utilizarea comunicrii ct i a modelelor de decizie. Un SSD de grup este un sistem informatic interactiv ce faciliteaz soluionarea problemelor ce apar ntr-un proces decizional de grup. Aceste sisteme ofer suport pentru comunicarea electronic, planificarea ntlnirilor, distribuirea documentelor etc.

Iniiere n tehnologia OLAP-teorie i practic

SSD-urile interorganizaionale sau intraorganizaionale (Inter-organizational/ Intra-organizational DSS) utilizeaz facilitile oferite de Internet i Intranet. Cele mai multe SSD-uri sunt intraorganizaionale, deoarece sunt proiectate pentru a fi folosite de angajaii unei firme, ca sisteme monoutilizator, sau de un grup de manageri, ca sisteme la nivel de ntreprindere . Multe SSD-uri sunt proiectate pentru a oferi suport n anumite domenii de activitate sau pentru funcii specifice (de exemplu pentru planificarea bugetar, marketing, planificarea activitii de zbor pentru o firm de transport aerian etc). Astfel de SSD-uri se numesc SSD-uri specializate (Function-specific DSS/industry-specific DDS). Aceste SSD-uri specializate pot fi mai departe clasificate n funcie de componenta dominant, ca fiind SSD-uri orientate pe modele, orientate pe date sau pe cunotine. Unele SSD-uri specializate sunt proiectate pentru un scop mai general, cum ar fi managementul proiectelor, analiza deciziilor sau planificarea afacerilor i n acest caz ele se mai numesc generatoare SSD, deoarece pot fi folosite pentru a dezvolta sau genera un SSD mai specializat [SPRA93]. SSD-urile bazate pe Web (Web-based DSS) sunt sisteme informatice ce livreaz informaii necesare procesului decizional sau instrumente suport de decizie managerilor sau analitilor, utiliznd un simplu browser Web (de exemplu Netscape Navigator, Microsoft Internet Explorer) i facilitile oferite de arhitectura client/server. n multe firme, un SSD bazat pe Web este sinonim cu un SSD la nivel de ntreprindere sau intraorganizaional. SSD-urile bazate pe Web permit: analiza i afiarea datelor structurate stocate n baze de date relaionale sau multidimensionale, acces la modele, acces la documente multimedia i date nestructurate, comunicarea i luarea deciziilor n echipele distribuite. n general, toate tipurile de SSD-uri (orientate pe date, orientate pe modele, orientate pe cunotine, orientate pe documente i cele de grup) pot fi implementate folosind tehnologii Web (tabelul 1.2). Tehnologiile Web au extins scopul SSD-urilor, n special pentru SSD-urile de grup. Tabelul 1.2 Implementarea SSD-urilor Tehnologia utilizat LAN Web Aplicabile la nivel local Aplicabile la nivel global Client complex Numai documente de tip (.doc), (.xls) Monoutilizator Client simplu (de tip browser) Documente HTML Multiutilizator

Tipuri de SSD-uri SSD-uri de grup SSD-uri orientate pe comunicaii SSD-uri orientate pe date SSD-uri orientate pe documente SSD-uri orientate pe model

10

Sisteme OLAP-sisteme suport de decizie moderne

Tendina actual n tehnologia informaiei este de a utiliza facilitile Web n toate sistemele informatice, deci i n sistemele suport de decizie. Un SSD bazat pe Web impune existena unui server de Web (de exemplu Apache WWW Server) (figura 1.1). Instrumentele pentru construirea unui sistem suport de decizie bazat pe Web includ HTML, CGI, Java Applets, cod JavaScript n pagini HTML, componente ActiveX. Limbajul Java asigur faciliti puternice instrumentelor de dezvoltare a SSD-urilor, iar JavaScript permite integrarea obiectelor Web. Arhitecturile Web trebuie s manipuleze un numr mare de cereri concurente, simultan cu obinerea unui rspuns n timp util, n condiiile creterii numrului de utilizatori i a volumului datelor procesate. Multe firme au realizat SSD-uri bazate pe Web sau ofer instrumente pentru dezvoltarea i implementarea unui sistem suport de decizie orientat pe Web. De exemplu, Oracle ofer posibilitatea de a construi un sistem OLAP pe Web sau un sistem cu depozite de date pe Web (WebHouse).

Browser

Server Web

Modele/baza de date

Figura 1.1 Arhitectura unui SSD bazat pe Web Avantajele SSD-urilor bazate pe Web sunt: s-au eliminat barierele tehnologice i s-a permis utilizatorilor un acces distribuit la informaii, cu costuri mici; firmele pot oferi managerilor prin Intranet, clienilor i furnizorilor prin extranet sau prin Internet, facilitile specifice SSD-urilor; folosind infrastructura Web la realizarea SSD-urilor, s-au realizat analize i s-au luat decizii mai consistente n problemele decizionale repetitive, ntr-o organizaie distribuit; permit aducerea de noi resurse de cunotine n procesul decizional; nu mai este necesar un software complex, ci un simplu browser instalat pe staia client. Dezavantajele unui SSD bazat pe Web sunt: uneori ateptrile pot fi supradimensionate, n raport cu informaia accesibil pe Web; apar probleme tehnice de implementare n timpul procesului de interogare sau ncrcare; costuri mari pentru instruirea utilizatorilor (clieni, furnizori). Managerii trebuie s aib n vedere faptul c sistemele suport de decizie orientate pe Web pot oferi un avantaj important firmelor. Locul de aciune al

11

Iniiere n tehnologia OLAP-teorie i practic

sistemelor suport de decizie moderne este Internetul. Web-ul reprezint o important oportunitate n livrarea cantitativ i calitativ a informaiilor decidenilor. Pentru a putea realiza un studiu comparativ al sistemelor suport de decizie moderne este necesar s stabilim criteriile pe baza crora se face analiza comparativ. Aceste criterii sunt: scopul sistemului, arhitectura utilizat, tipul de utilizatori, componenta principal a sistemului (tabelul 1.3). Dup cum se observ, SSD-urile orientate pe date, pe cunotine i pe documente au componenta principal baza de date (date, cunotine, documente). Un SSD orientat pe model are componenta principal format din modele analitice i matematice. Tabelul 1.3 Analiza comparativ a sistemor suport de decizie Componenta Utilizatorii: Scopul: general/ Arhitectura principal a SSDinterni/ specific utilizat ului externi Echipe interne/ Suport pentru Web sau client/ Comunicaii SSD-uri orientate pe parteneri comunicare i server comunicaii externi colaborare Mainframe, Manageri, Interogarea unui Baze de date client/server, SSD-uri orientate pe furnizori depozit de date, Web date folosete date structurate Client/server, Cutarea paginilor Utilizatori Baze de documente Web sau a Web interni dar SSD-uri orientate pe grupul poate fi documentelor documente nestructurate extins Utilizatori Folosete reguli, Client/server, Baze de cunotine SSD-uri orientate pe interni, clieni relaii Web, PC cunotine Manageri, Folosete modele PC,client/server, Modele SSD-uri orientate pe clieni Web modele Suport pentru Client/server, Modele/ baze de date Utilizatori interni i intermediari Web i comunicaii SSD-uri externi interorganizaionale /intraorganizaionale Suport pentru orice Web Modele/ baze de date Utilizatori interni i sarcin a SSD-ului i comunicaii SSD-uri bazate pe externi Web

12

Sisteme OLAP-sisteme suport de decizie moderne

Componenta principal a SSDului Modele/baze de date SSD-uri specializate

Utilizatorii: interni/ externi Utilizatori interni

Scopul: general/ specific Specializate pe anumite domenii de activitate sau cu un scop mai general (generator SSD)

Arhitectura utilizat PC, client/server

1.2 Sisteme suport de decizie orientate pe date (Data Driven Decision Support Systems)
Sistemele suport de decizie orientate pe date (SSDOD) au captat atenia managerilor, deoarece aceste sisteme pot furniza un acces mai uor la colecii foarte mari de date. ntr-o lume a competiiei acerbe i a comunicrii electronice, managerii doresc s gseasc propriile rspunsuri la ntrebrile ce apar n domeniul afacerilor. Managerii sunt utilizatorii direci i cei mai vizai ai acestor sisteme. Ei trebuie s identifice mpreun cu proiectantul, datele necesare pentru analiz i relevante pentru procesul decizional. Un SSDOD este un sistem informatic interactiv care-i ajut pe manageri s utilizeze baze de date de dimensiuni foarte mari ce conin date preluate din surse interne i externe ale organizaiilor [POWE01]. Utilizatorii sistemului pot realiza analize foarte complexe i cereri analitice de date. ntr-un sistem suport de decizie orientat pe date, managerii proceseaz date pentru a identifica fapte i pentru a trage concluzii despre relaiile dintre date sau despre tendina lor de evoluie. Sistemele suport de decizie orientate pe date pot ajuta managerii s gseasc, s afieze i s analizeze date istorice. Dei aceste sisteme sunt scumpe i greu de implementat, multe firme mari le-au implementat. Se pot defini urmtoarele categorii principale de sisteme suport de decizie orientate pe date: Sisteme informatice executive; Sisteme suport de decizie spaiale; Sisteme suport de decizie care utilizeaz depozite de date; Sisteme OLAP.

1.2.1 Sisteme informatice executive


Sistemele informatice executive (Executive Information Systems) sunt sisteme suport de decizie la nivel de ntreprindere care i ajut pe manageri s analizeze, s compare i s pun n eviden tendinele, s monitorizeze performanele i s

13

Iniiere n tehnologia OLAP-teorie i practic

identifice oportunitile i problemele cu care se confrunt organizaia. Au urmtoarele caracteristici: sunt proiectate pentru cerinele informaionale ale managerilor de la nivelul tactic i strategic al organizaiei; acceseaz date din surse variate (interne i externe); pun accentul pe afiarea grafic a informaiilor i pe uurina n a utiliza interfaa. Aceste sisteme ofer faciliti puternice de raportare (standard i ad-hoc) i tehnici analitice complexe; utilizeaz de obicei o arhitectur client/server. La ora actual, exist o mare varietate de instrumente software pentru proiectarea sistemelor informatice executive (de exemplu: ActiveInsightsActiveInsights, Action Driven balanced Scorecard-Show Business Software, Active Architect-European Management Systems etc), precum i un numr mare de sisteme informatice executive proiectate (de exemplu: Decision-Datavision Technologies Inc., Focus EIS-Information Builders Inc., Executive Information Support System-Applied Media Resources Inc. etc). Cerinele informaionale ale managerilor se modific rapid, astfel multe sisteme informatice executive sunt proiectate i dezvoltate folosind metodologia prototipului. Identificarea factorilor critici de succes pentru organizaie (de exemplu distribuia pieei, productivitatea etc) i poate ajuta pe analiti s determine ce informaii trebuie prezentate ntr-un sistem informatic executiv. Un proiect SIE este similar cu proiectele de depozite de date, dar pune accent n special pe proiectarea interfeei.

1.2.2 Sisteme suport de decizie spaiale


Sistemele suport de decizie spaiale (Spatial Decision Support Systems) sunt construite folosind tehnologii GIS (Geographic Information System). Datele spaiale sunt reprezentri de obiecte construite din puncte, linii, suprafee, volume sau chiar date cu dimensionalitate ridicat. Datele spaiale pot constitui reprezentri ale oraelor, judeelor, rurilor dintr-o hart codificat ntr-un sistem GIS. Bazele de date spaiale faciliteaz memorarea i prelucrarea eficient a informaiilor spaiale i nespaiale. Astfel de baze de date sunt din ce n ce mai folosite n sistemele informatice geografice. n bazele de date spaiale, unui obiect grafic i se pot ataa att propieti spaiale (de exemplu, frontiera unui jude poate fi o propietate spaial asociat respectivului jude) ct i atribute nespaiale cum ar fi numele unui ora sau nlimea unui munte. Sistemele suport de decizie spaiale i ajut pe manageri s acceseze, afieze i analizeze datele care au coninut geografic. Ele i-au gsit aplicabilitate n domenii ca geologie, industria forestier, agricultur. Multe firme software ofer instrumente GIS puternice pentru proiectarea sistemelor suport de decizie spaiale (de exemplu: Expert Base-Expert Database Marketing System, SAS System-SAS Institute, Arcview, BusinessMapESRI etc).

14

Sisteme OLAP-sisteme suport de decizie moderne

1.2.3 Sisteme suport de decizie ce utilizeaz depozite de date


n fiecare organizaie exist multe sisteme informatice tranzacionale ce automatizeaz operaiile zilnice ale unei organizaii, operaii care sunt structurate i repetitive i constau din tranzacii scurte, atomice i izolate. Aceste sisteme permit conducerea operativ a organizaiilor i utilizeaz date de detaliu, reprezentri curente i n timp real a strii firmei, accesate i actualizate frecvent. Dimensiunea bazelor de date operaionale variaz de la sute de Mb la Gb, iar consistena datelor stocate este o cerin fundamental a sistemelor tranzacionale. Spre deosebire de sistemele tranzacionale, sistemele suport de decizie sunt utilizate pentru a gestiona i controla firma. Depozitele de date sunt destinate suportului decizional. Datele istorice i datele agregate sunt mai importante dect datele de detaliu. Dimensiunea depozitelor de date pentru ntreprindere variaz de la sute de Gb pna la Tb. Cererile ad-hoc pot accesa milioane de nregistrri i execut o mulime de parcurgeri ale tabelelor, jonciuni i agregri. Timpul de rspuns este un factor principal n proiectarea sistemelor suport de decizie orientate pe date. Pentru a facilita analize complexe i vizualizri, datele stocate n depozitul de date sunt modelate multidimensional. Operaiile specifice acestor sisteme sunt: roll up (creterea nivelului de agregare), drill down (creterea nivelului de detaliu), slice/dice (selecia i proiecia) i pivot (reorientarea viziunii multidimensionale a datelor). De asemenea, sistemele suport de decizie pot utiliza date ce nu se gsesc n bazele de date operaionale (de exemplu, pentru realizarea de predicii se cer date istorice, n timp ce bazele de date operaionale stocheaz numai date curente). Datele din depozitele de date provin din surse variate: sisteme operaionale eterogene (sisteme de gestiune a bazelor de date, sisteme de gestiune a fiierelor) i alte surse de date externe (baze de date demografice i statistice, Internet). Sursele de date externe sau interne pot conine date inconsistente, cu formate variate, date care trebuiesc curate i prelucrate nainte de a fi stocate n depozitul de date. De asemenea, modele de date multidimensionale i operaiile tipice OLAP impun o organizare diferit a datelor i metode de acces care nu sunt oferite n general de SGBD-urile comerciale, destinate pentru sistemele informatice tranzacionale. Din aceste motive, depozitele de date sunt implementate separat de bazele de date operaionale. n concluzie, un depozit de date este o baz de date de dimensiuni mari, specific proiectat pentru a susine procesul decizional dintr-o organizaie i optimizat pentru interogri on-line rapide i pentru agregri complexe. n 1995, Bill Inmon definea depozitul de date ca fiind o colecie de date orientat pe subiect, integrat, dependent de timp i nevolatil, destinat pentru a susine procesul decizional dintr-o organizaie: Orientat pe subiect. ntr-un depozit, datele sunt organizate n funcie de subiectele importante pentru organizaie, cum ar fi clienii, produsele i activitile.

15

Iniiere n tehnologia OLAP-teorie i practic

Integrat. Datele trebuie s fie reprezentate, n depozitul de date, ntr-un format consistent, pentru a permite analistului s se concentreze asupra utilizrii datelor din depozit i nu asupra credibilitii i consistenei lor. Nevolatil. n depozitul de date, exist doar dou tipuri de operaii: ncrcarea iniial a datelor i interogarea datelor. Datele nu mai sunt actualizate dup ce au fost ncrcate n depozitul de date. La proiectarea depozitului de date, tratarea anomaliilor de actualizare nu mai este un factor important. Ralph Kimball [KIMB96] afirma c un depozit de date este o copie a datelor tranzacionale, specific structurat pentru interogare i analiz. Dependent de timp. Datele din depozitul de date sunt asociate cu elemente temporale. n depozitul de date, orizontul de timp este cuprins ntre 5 i 10 ani, n timp ce n sistemele tranzacionale poate lua valori ntre 60 i 90 de zile. De asemenea, structura cheilor conine implicit sau explicit un element de timp.

Tehnologiile pentru depozite de date au fost utilizate cu succes n multe domenii: producie, comerul cu amnuntul (pentru gestiunea stocurilor), servicii financiare (analiza riscului, analiza cardurilor de credit i detectarea fraudelor), transport, telecomunicaii (analiza apelurilor i detectarea fraudelor) etc. Motivul fundamental pentru construirea unui depozit de date este de a mbunti calitatea informaiilor din organizaie. Problema cheie este de a oferi acces la o viziune global a datelor la nivelul organizaiei, indiferent de locaia lor. Datele provin din surse interne externe, existnd ntr-o varietate de forme de la datele structurate la cele nestructurate cum ar fi documentele sau multimedia. Multe organizaii doresc s implementeze un depozit de date la nivel de ntreprindere integrat ce colecteaz informaii despre toate subiectele (clieni, produse, vnzri, personal etc). Totui construirea unui depozit de date este un proces lung i complex. De aceea, unele organizaii utilizeaz centrele de date (data mart). Un centru de date este un depozit de date la nivel de departament, care are dimensiuni mai reduse (10-50 Gb). El este concentrat pe un singur subiect (de exemplu vnzri, finane, asigurri), fiind construit i folosit de un singur departament al unei organizaii i preia date din sistemul operaional intern al organizaiei, din depozitul de date central sau din surse externe. Centrele de date permit o agregare mai rapid a datelor, dar pot conduce la probleme de integrare complexe. n tabelul 1.4 se prezint o analiz comparativ ntre depozitele de date i centrele de date.

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 folosete: la nivel de organizaie, pentru firme mici, la nivel pentru firme mari de departament Domenii multiple un singur domeniu Surse de date numeroase puine Dimensiunea 100 Gb-Tb < 100 Gb Timpul de ani luni implementare Depozitele de date virtuale sunt considerate un mod de a implementa mai rapid un depozit de date. Utilizatorii au posibilitatea de a accesa direct datele surs reale utiliznd instrumente cu faciliti de reea complexe. Dezavantajele acestor depozite de date virtuale sunt: calitatea i consistena datelor nu este garantat, ntruct nu se execut anterior nici o pregtire a datelor; datele istorice nu sunt valabile; timpul de acces al utilizatorilor este de obicei imprevizibil depinznd de valabilitatea surselor de date operaionale, ncrcarea reelei, complexitatea cererii etc. Majoritatea firmelor de renume, n domeniul bazelor de date, ofer instrumente software puternice pentru proiectarea depozitelor de date, precum i pentru extracia, transformarea i ncrcarea datelor din surse variate n depozitele de date (Power Designer Warehouse Architect Power Soft, Red Brick WarehouseInformix, Warehouse Builder-Oracle, SAS System SAS Institute etc).

1.2.4 Sisteme OLAP


Aa cum indic cuvintele folosite pentru a construi acronimul (on-line, analytic, proccesing), rolul sistemelelor OLAP ntr-o organizaie este de a oferi un acces interactiv i uor la resursele analitice necesare procesului decizional i de conducere. n teoria sistemelor suport de decizie sunt recunoscute dou tipuri de resurse analitice: datele (informaii statice) i modelele (informaii dinamice). La ora actual nu exist nc o teorie OLAP complet, unanim acceptat de toi specialitii. Exist totui o serie de principii (reguli) care pun n eviden potenialul sistemelor OLAP, ca o component critic n orice infrastructur informaional. Aceste principii sunt simple dar relevante i nu trebuie s fie ignorate: La baza tuturor activitilor dintr-o firm st prelucrarea informaiilor. Aceasta include colectarea, stocarea, transmiterea i manipularea datelor. Importana unei bune informaii poate fi gndit ca diferena n valoare ntre deciziile corecte i cele greite, unde deciziile sunt bazate pe informaii. Cu ct este

17

Iniiere n tehnologia OLAP-teorie i practic

mai mare diferena ntre deciziile bune i cele greite, cu att este mai important de a avea informaii bune. Majoritatea firmelor investesc mult n tehnologiile informatice. Informaiile bune trebuie s fie corecte, curente, complete i uor de neles. Prima cerin funcional a sistemelor OLAP decurge din aceste cerine generale pentru prelucrarea informaiei: s ofere informaii corecte, curente, complete i uor de neles. Activitile operaionale i cele de analiz orientat pe decizie constituie nucleul activitii unei firme, independent de mrimea ei, domeniul de activitate, forma legal. Cumprarea, vnzarea, producia i transportul sunt exemple de activiti operaionale. Informaiile despre vnzri, producie i costuri pot fi nregistrate i gestionate n una sau mai multe baze de date, folosite pentru scopuri operaionale. Activitile operaionale se execut la un interval relativ constant. Datele sunt citite i actualizate frecvent i reprezint o fotografie curent a ceea ce se ntmpl n firm. Fiecare cerere folosete un volum mic de informaii iar natura ei este n general previzibil. Monitorizarea, evaluarea, compararea, planificarea i alocarea strategic a resurselor sunt exemple de activiti de analiz. Informaia generat prin activitile 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 esenial. Multe activiti operaionale sunt orientate pe decizie, fr a se baza pe analiz. De exemplu dac un client dorete o cretere a creditului, trebuie luat o decizie. Dac nregistrarea corespunztoare clientului menioneaz c s-a ajuns la limita cardului, decizia este NU. Informaia despre credit a fost orientat pe decizie, dar nici o analiz nu a fost implicat n decizie. Cu o frecven mai mic, managerii i analitii pot pune ntrebri 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 acelai trimestru al anului trecut? etc. Rspunsurile la aceste tipuri de ntrebri reprezint informaii ce sunt bazate pe analiz i orientate pe decizie. Datele sunt mai mult citite dect actualizate n aceste activiti. Cererile analitice folosesc date derivate i natura lor nu este ntotdeauna previzibil. Diferenele ntre activitile operaionale i cele orientate pe decizie i bazate pe analiz sunt prezentate n tabelul 1.5. Ca urmare a acestor diferene, majoritatea firmelor folosesc instrumente diferite pentru cele dou tipuri de activiti : pentru a asigura eficien maxim n ambele activiti; pentru a realiza actualizare rapid n activitile tranzacionale i calcul rapid n activitile de analiz.

18

Sisteme OLAP-sisteme suport de decizie moderne

Tabelul 1.5 Analiz comparativ ntre activitile operaionale i cele orientate pe decizie i bazate pe analiz Activiti operaionale Activiti orientate pe decizie i bazate pe analiz Mai frecvente Mai puin frecvente Mai previzibile Mai puin 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 Teoria sistemelor suport de decizie st la baza fundamentrii teoretice a sistemelor OLAP. Definiia sistemului suport de decizie: Sistem informatic interactiv, flexibil i adaptabil, special proiectat pentru a oferi suport n soluionarea unor probleme manageriale nestructurate sau semistructurate, cu scopul de a mbunti procesul decizional, ce utilizeaz date i modele, ofer o interfa simpl i uor de folosit, permite decidentului s controleze procesul decizional i ofer suport pentru toate etapele procesului decizional [TURB98] a fost o provocare pentru sistemele OLAP . Sistemele OLAP reprezint o categorie important de sisteme suport de decizie orientate pe date. Cerinele funcionale ale sistemelor OLAP decurg din obiectivele sistemelor suport de decizie orientate pe date: Oportunitate. Un SSDOD trebuie s garanteze urmtoarele: - datele de baz au fost deja prelucrate sau pregtite pentru analiz. Aceasta se refer la curarea i integrarea datelor; - accesul la date este rapid; - calculele sunt rapide. Acuratee. Un SSDOD trebuie s asigure precizia datelor de baz i exactitatea calculelor. Inteligibile. Un SSDOD trebuie s asigure interfee prietenoase sau intuitive. Locul sistemelor OLAP n SSDOD-uri, n raport cu obiectivele SSDOD-urilor, este pus n eviden n tabelul 1.6 [THOM96]. Se observ c principalele obiective ale sistemelor OLAP sunt : access rapid i calcule rapide, faciliti analitice puternice (analize ad-hoc foarte rapide); interfa prietenoas i prezentri flexibile; permit prelucrarea unor volume mari de date (1-500 Gb), cu multe niveluri de detaliu, n mediu multiutilizator. Acces rapid i calcule rapide. Sistemele OLAP ofer suport pentru cereri analitice ad-hoc. Obiectivul principal al sistemelor OLAP este de a furniza un timp de rspuns de cinci secunde sau mai puin, indiferent de tipul de cerere sau de dimensiunea bazei de date, ntr-un mediu multiutilizator i distribuit [OLAP97].

19

Iniiere n tehnologia OLAP-teorie i practic

Pentru acces eficient maxim, sistemele OLAP trebuie s ofere combinaia corect de rezultate antecalculate i calculate la momentul interogrii. Sistemele OLAP stocheaz date istorice, curente, de detaliu sau agregate. Tabelul 1.6 Locul sistemelor OLAP n SSDOD-uri Scopuri Colecii Multe Muli mari de niveluri factori date Oportunitate Acces rapid OLAP OLAP OLAP Calcule rapide OLAP OLAP OLAP DW DW Acuratee Date de baz DW exacte OLAP OLAP OLAP Expresivitate de calcul Inteligibilitate Interfa OLAP OLAP OLAP prietenoas Viziuni OLAP OLAP OLAP flexibile Muli utilizatori DW OLAP DW

Faciliti analitice puternice. Sistemele OLAP permit navigarea interactiv la niveluri diferite de agregare i viziuni multidimensionale ale datelor Flexibilitate. Flexibilitatea este un alt obiectiv al sistemelor OLAP. Ea are o varietate de nelesuri (prezentri flexibile, definiii flexibile, analiz flexibil, interfee flexibile). Sistemele OLAP trebuie s fie flexibile n toate modurile. Flexibilitatea prezentrii se refer la faptul c utilizatorul poate vizualiza informaia sub form de grafice, matrici sau hri. De asemenea, utilizatorii trebuie s fie capabili s modifice definiiile formulelor i locaia surselor de date. Flexibilitatea interfeei este o form mai general a ceea ce uneori se numete o interfa intuitiv. Flexibilitatea interfeei se aplic la o varietate de arii cum ar fi definiia modelului, vizualizarea modelului, specificarea formulelor, introducerea direct a datelor i legturile la sursele de date externe. Suport multiutilizator. Organizaiile sunt medii de lucru n colaborare. Ca rezultat al descentralizrii, numrul relativ de angajai, ce trebuie s aib acces de citire i scriere la datele analitice pentru decizii, este n cretere. Sistemele OLAP sunt o aplicaie a combinrii ntre algoritmi i structuri de date n scopul de a crete puterea de calcul. La nceput tehnologia OLAP a fost considerat ca o tehnologie de baze de date, fundamental diferit de tehnologia bazelor de date relaionale [CODD93]. Teoria lui Codd nu a fost complet i nici n totalitate real, dar a constituit o list de cerine pe care sistemele OLAP trebuie s le respecte. Ali autori au ncercat s detalieze aceste cerine [THOM96].

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 uor. Sistemele OLAP ofer aceste faciliti. 1.2.4.1 Evoluia sistemelor OLAP 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 sfritul anilor 60. Multe din conceptele acestui limbaj sunt folosite i astzi (de exemplu, Adaytum Planning i Lex 2000 folosesc limbajul APL). La sfritul anilor 60, John Little, doctor n fizic, Len Lodish, tnr specialist n marketing la Massachusetts Institute of Technology Sloan School i Glen Urban, decanul de la Sloan School, au ncercat s utilizeze calculatoarele n aplicaii matematice i analitice. Au ncercat utilizarea analiticului n marketing, n special n marketingul bunurilor de consum. Aceasta era o arie ideal de investigaie, deoarece exista un volum mare de date brute neprelucrate i procesul decizional putea fi mbuntit prin nelegerea mai bine a datelor. Efortul lor a condus la apariia 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 funcii analitice i faciliti de stocare a matricilor pe disc. John Wirts a considerat c biblioteca de subrutine ar putea fi generalizat i c facilitile analitice ar putea fi mbuntite mult, pentru utilizatorul final, prin adugarea facilitilor de gestiune a datelor. Acesta a fost un important pas n dezvoltarea primelor sisteme OLAP. n 1972 funciile analitice i facilitile de gestiune a datelor au fost integrate ntr-un limbaj, limbajul Express. Dup 30 de ani, Express rmne 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 achiziionat un limbaj de modelare financiar numit FCS de la o firm de software britanic (EPS Consultants). Specialitii firmei au cutat s fac din limbajul FCS, un limbaj care s satisfac cerinele utilizatorilor pentru analiza multidimensional. n 1978-1979, Comshare a considerat necesar trecerea la o nou generaie de limbaj de modelare financiar, realizat prin combinarea funciilor analitice de modelare cu tehnologia gestiunii datelor, n scopul de a gestiona volume mult mai

21

Iniiere n tehnologia OLAP-teorie i practic

mari de date asociate cu conceptul de multidimensionalitate. Instrumentul rezultat a fost System W DSS, primul instrument OLAP pentru aplicaii financiare, care folosea conceptul de hypercub. Principala sa utilizare era ca suport decizional financiar, utilizat n activitatea bugetar, de previziune i de planificare strategic. A introdus multe concepte cum ar fi: reguli complet neprocedurale, vizualizare multidimensional a datelor, integrare cu datele relaionale etc. Aa cum Express a devenit un instrument important n aplicaiile de analiz de pia, System W a devenit o for n planificare, analiz i aplicaii de raportare financiar, n anii80. Hyperion Essbase, dei nu este un descendent direct al lui System W, folosete multe din conceptele utilizate de System W (de exemplu conceptul de hypercub). n 1984 a aprut primul instrument ROLAP, Methafor, folosit n analiza de marketing. A introdus noi concepte, care au devenit populare n anii90, cum ar fi calcule distribuite client/server, procesare multidimensional a datelor relaionale. Din pcate costurile pentru hardware i software erau foarte mari i nu a folosit o arhitectur deschis i interfee GUI standard. La mijlocul anilor80 a aprut termenul de EIS (Executive Information System). n 1985 apare Pilot Command Center, primul instrument OLAP stil EIS, cu arhitectur client/server. Instrumentul utiliza analiza seriilor de timp, fiind implementat pe servere VAX i clieni PC standard. Pilot a introdus multe concepte utilizate de noile instrumente OLAP cum ar fi procesarea multidimensional client/server. Unele din aceste concepte au fost implementate n Pilots Analysis Server. n 1990 Cognos Power Play devine primul instrument OLAP cu arhitectur desktop, pentru Windows. Firma Cognos ofer i versiuni pentru arhitectur client/server i Web. n 1991 Metaphor este achiziionat de consoriul Apple - IBM Taligent. Firma Arbor Software s-a constituit n 1991, cu scopul unic de a crea un server de baz de date multidimensional i multiutilizator, care s-a numit Essbase. Essbase a fost introdus pe pia n 1992 i s-a lansat sub sistemul de operare OS/2 i Windows NT . n 1993 Codd introduce termenul de OLAP i cele 12 reguli referitoare la sistemele OLAP. Dup ce a vzut Essbase, ca un exemplu de baz de date multidimensional, a ajuns la concluzia c limbajul SQL nu a fost niciodat adecvat pentru analiz multidimensional. El a afirmat c exist o diferen semnificativ ntre tehnologia sistemelor multidimensionale i tehnologia sistemele tranzacionale [CODD93]. n 1994 apare primul instrument ROLAP, Microstrategy DSS Agent, fr motor multidimensional. Toat procesarea era executat cu limbajul SQL (multipass SQL), o tehnic utilizat foarte des pentru baze de date foarte mari . n 1995 apare primul OLAP hibrid, HOLOS 4.0 ce permite accesul att la baze de date relaionale ct i multidimensionale. Multe din instrumentele OLAP folosesc aceast arhitectur. n 1995 Oracle achiziioneaz Express. Ianuarie 1995 a marcat i formarea consiliului OLAP care a jucat un rol cheie n stabilirea sistemelor OLAP ca o

22

Sisteme OLAP-sisteme suport de decizie moderne

categorie de software mai bine neleas i cunoscut. Dup 8 luni de munc, patru fabricani de software au format consiliul OLAP (OLAP Council) cu scopul a elimina confuziile i de a face sistemele OLAP mult mai atrgtoare pe pia, prin stabilirea unor standarde deschise (OLAP API). Consiliul OLAP definea conceptul de OLAP ca o categorie de instrumente software, care permit analitilor, managerilor i directorilor s neleag esena datelor printr-un acces rapid, consistent i interactiv la o mare varietate de viziuni posibile ale informaiilor, care au fost obinute prin tranformarea datelor primare astfel nct s reflecte dimensiunile reale ale ntreprinderii aa cum o percepe i o nelege utilizatorul. n 1997 apare Microsoft OLEDB for OLAP, un standard OLAP API dezvoltat de Microsoft, ca un set de obiecte COM i interfee 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 relaionale (schem stea). n 1999 apare Microsoft OLAP Services (numit iniial Plato sau Decision Support Services) ce utilizeaz o tehnologie achiziionat de la Panorama Software Systems i cu o arhitectur de stocare complex (ROLAP/MOLAP/HOLAP). n 2000 Microsoft redenumete Microsoft OLAP Services ca Microsoft Analysis Services. n 2002 Oracle lanseaz Oracle9i Release 2 OLAP care integreaz toate facilitile OLAP (Analytical Workspace) n baza de date relaional Oracle. Indiferent de tipul de arhitectur implementat, sistemele OLAP prezint datele la utilizator ntr-un model de date multidimensional, iar cererile sunt formulate utiliznd paradigma multidimensional. ncepnd cu 1995 cercettorii, din diferite domenii de aplicaii, au propus o serie de modele multidimensionale i limbaje de interogare corespunztoare. Multe din modelele propuse sunt extensii ale modelului relaional. De exemplu, Gray [GRAY96] propune operatorul CUBE care generalizeaz clauza GROUP BY din limbajul SQL, o abordare foarte pragmatic, potrivit pentru aplicaiile OLAP. Modelul lui Li i Wang [LIWA96] i modelul lui Gyssens i Lakshmanan [GYSS97] constituie o extensie a algebrei relaionale, 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 cteva pot fi considerate pur conceptuale. Dar fiecare model prezint o viziune proprie a cerinelor analizei multidimensionale, o terminologie i un formalism propriu.

23

Iniiere n tehnologia OLAP-teorie i practic

Se poate afirma c la ora actual nu exist nici un model de date multidimensional (conceptual i formal) acceptat n unanimitate. Un astfel de model este totui necesar pentru a servi ca o fundamentare pentru standardizare i cercetarea viitoare. 1.2.4.2 Relaia ntre depozitele de date i sistemele OLAP Sistemele OLAP i depozitele de date fac parte din categoria sistemelor suport de decizie orientate pe date i sunt similare. Totui depozitul de date pune accentul pe procesele ce asigur consistena, corectitudinea i valabilitatea datelor la utilizatori, iar sistemele OLAP pun accentul pe cerinele analitice i procesele de modelare i calcul necesare. Bill Inmon printele conceptului de data warehouse a sugerat c scopul unui depozit de date este de a asigura consistena i corectitudinea datelor utilizate n ntreprindere, accesibile utilizatorilor finali. Valoarea unui depozit de date const n calitatea informaiilor 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 operaionale i cele necesare pentru suport decizional, realizat de Bill Inmon [INMO92], iar tabelul 1.8 prezint o analiz comparativ ntre sistemele tranzacionale i sistemele OLAP, realizat de Jeff Stamen, vicepreedinte pentru Oracle OLAP Division [THOM96], la care s-au adaugat i alte criterii de comparare. Tabelul 1.7 Analiz comparativ ntre datele operaionale i datele necesare pentru suport decizional Date operaionale Detaliate Curente Destinate operatorilor Repetitive Orientate pe aplicaie Neredundante Statice Suport pentru operaii zilnice Date necesare pentru suport decizional Agregate Serii de timp Destinate managerilor Nerepetitive Orientate pe subiect Redundante Dinamice Suport strategic

24

Sisteme OLAP-sisteme suport de decizie moderne

Tabelul 1.8 Analiz comparativ ntre sistemele OLTP i sistemele OLAP Aplicaie Caracteristici Procesarea tranzacional Procesarea (OLTP) analitic (OLAP) Volum de date pe mic mare tranzacie Orientarea nregistrri atribute Modul de afiare pe ecran nemodificabil definit de utilizator Operaii tipice actualizare analiz Nivelul datelor detaliu agregate Orizontul de timp curente istorice Scopul operaional analiz Tip de acces citire/scriere citire/scriere Structura datelor normalizat dimensional, ierarhic Investiii hardware moderate la scumpe minime la moderate Durata de implementare luni sptamni/luni Prin compararea tabelului 1.7 cu tabelul 1.8, se obine o analiz comparativ ntre depozitele de date i sistemele OLAP (tabelul 1.9). Tabelul 1.9 Analiz comparativ ntre depozitele de date (DW) i sistemele OLAP Caracteristici OLAP DW Baza modelului atribute orientat pe subiect Granulaia datelor agregate agregate Orizontul de timp istorice serii de timp Redundana datelor redundante redundante Volumul de date accesate pe cerere mare depinde de cerere Caracteristici cerere analiza manageri, strategic

1.2.4.3 Regulile lui Codd Termenul de OLAP a fost folosit prima dat n septembrie 1993 de ctre Codd, n articolul Providing OLAP (On-line Analytical Processing) to User-Analysts: An IT Mandate. Cele 12 reguli, mai trziu considerate ca faciliti (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

Iniiere n tehnologia OLAP-teorie i practic

multidimensional. La ora actual puine modele propuse sunt considerate modele multidimensionale pur conceptuale i anume: modelul lui Lehner [Leh98], modelul lui Cabibbo i Torlone [CABB98], modelul lui Golfarelli [GOLF98], modelul lui Sapia i Blaschka [BLAS99], modelul StarER [TRYF99] i modelul MAC [TSOI01]. Aceste modele ncearc s reprezinte modul cum utilizatorii percep un cub multidimensional, fr s acorde o atenie deosebit formalismului. Regula 2: Manipularea intuitiv a datelor. Majoritatea modelelor multidimensionale propuse permit operaii de manipulare a datelor (operaii de drill down, drill up, drill across), iar multe din instrumentele OLAP, existente la ora actual pe pia, permit manipularea intuitiv a datelor (de exemplu: Express, Essbase, Microsoft OLAP etc). Regula 3: Accesibilitate. Sistemele OLAP trebuie s prezinte o singur viziune logic a datelor din ntreprindere. Sursele de date trebuie s fie transparente la utilizator. Codd consider c i utilizatorii pot fi, de asemenea, o surs de date. Regula 4: Surse de date variate. Codd consider c un sistem OLAP trebuie s fie capabil s lucreze cu date stocate fie n baze de date multidimensionale (MOLAP) ct i n baze de date relaionale (ROLAP). La ora actual, o parte din produsele OLAP ndeplinesc aceast regul (de exemplu: Power Play, Oracle Express, Pilot Analysis, Seagate Holos sunt sisteme OLAP hibride). Sunt diferite arhitecturi pentru un sistem hibrid OLAP i anume: integrarea sistemelor MOLAP i ROLAP printr-o interfa comun (de exemplu Seagate Holos), integrarea mutual a sistemelor ROLAP i MOLAP (de exemplu Arbor Essbase) i extensii la SGBDR sau SGBDOR (de exemplu Informix cu opiunea Metacube). Regula 5: Modele de analiz OLAP. Codd consider c instrumentele OLAP trebuie s suporte patru modele de analiz: explicativ, direct, contemplativ i formativ. Cu alte cuvinte instrumentele OLAP trebuie s permit cel puin realizarea rapoartelor parametrizate, analize de tip ce se ntmpl dac? (simulare) i de urmrire a unui scop (optimizare), operaii de tip drill down, roll up, slice i dice. Regula 6: Arhitectura client/server. Codd consider c un sistem OLAP trebuie s permit arhitectur client/server. Majoritatea instrumentelor OLAP permit arhitectur client/server (de exemplu: Power Play, Oracle Express, Business Object, DSS Microstrategy, Acumate, Informix Metacube, Microsoft OLAP etc) i chiar arhitectur pe trei niveluri (de exemplu: Business Objects, Informix Metacube, DB2 OLAP etc).

26

Sisteme OLAP-sisteme suport de decizie moderne

Regula 7: Transparen. Sistemele OLAP trebuie s conin interfee spre diverse instrumente client (de exemplu instrumente de tip foaie de calcul tabelar) i s permit acces la tipuri de date eterogene. La ora actual puine instrumente OLAP ofer transparen (de exemplu Acumate, Express). Regula 8: Suport multiutilizator. Instrumentele OLAP trebuie s asigure acces concurent, integritatea i securitatea datelor. Sistemele ROLAP permit accesul concurent la scriere, integrarea cu alte sisteme informatice relaionale existente. Puine instrumente MOLAP (de exemplu Arbor Essbase) permit acces multiutilizator concurent, att la citire ct i la scriere. Majoritatea instrumentelor MOLAP permit acces multiutilizator la citire i monoutilizator la scriere. SGBDMD blocheaz ntreag baz de date n timpul actualizrilor (o form foarte simpl de acces concurent). De asemenea, multe instrumente MOLAP au o noiune foarte vag a conceptului de tranzacie. Modificrile n cuburile de date pot fi executate ca adugri n cub sau n timpul analizei de tip what if. Adesea ele cer o actualizare incremental a agregatelor sau a msurilor care sunt calculate pe baz de formul. Astfel de dependene fac actualizrile mult mai complicate. Multe sisteme MOLAP nu ofer facilitatea de recuperare a erorilor i alte faciliti specifice sistemelor ROLAP. Caracteristici speciale Regula 9: Denormalizarea datelor. Codd sugereaz c prelucrarea datelor ntrun mediu OLAP nu trebuie s afecteze datele externe ce servesc ca surs. Instrumentele OLAP sunt folosite pentru a procesa colecii mari de date, actualizate periodic, de aceea trebuie s aib abilitatea de a stabili legturi 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, legturile servesc ca funcii de transformare. Ele indic cum se transform datele din tabele sau foi de calcul tabelar n date multidimensionale. Legturile pot descrie relaii structurale, atributele membrilor sau coninutul hypercuburilor. Legturile pot fi unidirecionale (de citire) sau bidirecionale (citire/scriere). Unele instrumente OLAP ofer suport pentru legturi bidirecionale (de exemplu Essbase). Legturile ofer o infrastructur persistent pentru importarea i exportarea datelor i a metadatelor. Ele variaz n functie de tipul informaiei adus n cub i de tipul sursei de date, de la care informaia este obinut. Regula 10: Stocarea rezultatelor generate de instrumentul OLAP. Sistemele OLAP trebuie s stocheze datele separat de sistemele tranzacionale. Aceast cerin apare ca urmare a diferenelor ce exist ntre datele operaionale i cele destinate suportului decizional.

27

Iniiere n tehnologia OLAP-teorie i practic

Regula 11: Manipularea valorilor lips. Valorile lips sunt diferite de valorile zero i cele invalide. Termenul de mprtiere a fost utilizat cu semnificaia 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 relaional. Existena unui numr mare de valori zero nu este totui un exemplu real de mprtiere. Valoarea zero este valid ca orice alt numr. Confuzia a aprut deoarece n aplicaiile OLAP apare un numr mare de valori zero, precum i volume mari de date lips i invalide. Tehnicile pentru optimizarea fizic a stocrii unui numr mare de valori repetate sunt similare i uneori aceleai cu tehnicile pentru optimizarea fizic a stocrii de volume mari de date lips i invalide. Totui valorile lips i cele invalide nu sunt date valide. Ele nu pot fi tratate n acelai mod ca orice alt valoare. De aceea, sunt necesare tehnici speciale pentru aceste cazuri. Tratamentul impropriu al valorilor null poate cauza calcule incorecte. Acurateea calculelor este de o importan crucial pentru analiza oricrui set de date, indiferent c este sau nu multidimensional. Problema tratrii datelor mprtiate este una foarte important i este frecvent dezbtut n domeniul bazelor de date. Cele dou tipuri de date (lips i invalide) trebuie totui 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 rnd, coloan sau pagin a ecranului de afiare. Cu alte cuvinte, aranjamentul axelor n raportare trebuie s fie la libera alegere a utilizatorului. Regula 14: Performana raportrii. Codd sugereaz c performana raportrii nu trebuie s varieze semnificativ cu numrul de dimensiuni sau mrimea bazei de date. Principalii factori care afecteaz performana raportrii sunt: modul cum sunt realizate calculele (antecalculate sau la momentul interogrii) i locul unde sunt procesate calculele (client/server). Aceti factori sunt mai importani dect mrimea bazei de date, numrul 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 funcie 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 mprtiere sunt preocupri majore n domeniul bazelor de date multidimensionale. O tehnic de stocare a datelor optim trebuie s in cont de muli factori dinamici i anume: profilul datelor i volumul lor (numrul de dimensiuni i membrii ai dimensiunilor, tipuri de date etc);

28

Sisteme OLAP-sisteme suport de decizie moderne

fenomenul de mprtiere (n care dimensiuni sau combinaii de dimensiuni, tipul de mprtiere); frecvena de modificare n sursele de date (ct de des vor fi actualizate bazele de date multidimensionale); frecvena de modificare n datele multidimensionale (de exemplu pentru analiza de tip what if); frecvena de modificare n modelul multidimensional; accesul concurent etc. Ideal un sistem MOLAP ar trebui s aleag structura de date optim n funcie de aceti factori. n cele mai multe sisteme MOLAP comerciale, se utilizeaz o tehnic de stocare pe dou niveluri: la nivelul inferior sunt stocate toate dimensiunile dense, iar la nivelul superior dimensiunile mprtiate ca o structur index, care conine pointeri la cuburile de date dense, din nivelul inferior. Unele dintre instrumentele OLAP ofer administratorului un numr foarte limitat de opiuni de optimizare. De exemplu Arbor Essbase are o metod proprie pentru stocarea i ncrcarea datelor multidimensionale n memorie. Aceast metod utilizeaz o structur multinivel (cu un numr arbitrar de niveluri pentru diferitele grade de mprtiere). Administratorul poate specifica dimensiunile dense i mprtiate. Oracle Express suport, de asemenea, o structur pe dou niveluri. Pilot Decision Support Suite (Pilot Software) suport aa numitele multicuburi. Se trateaz timpul ca o dimensiune dens (toate celelalte dimensiuni sunt considerate mprtiate). Seagate Holos (Seagate Software) ofer structuri de date multiple, ce pot fi combinate n aa numita arhitectur OLAP compus (Compound OLAP Architecture). Controlul dimensiunilor Regula 16: Dimensionalitate generic. Codd consider c dimensiunile trebuie s fie echivalente structural i operaional. Cu alte cuvinte s permit ierarhii multiple i toate tipurile de operaii multidimensionale i n acelai timp s poate fi actualizate (adugarea/tergerea unui membru, adugarea/tergerea unei ierarhii, modificarea unui membru/ierarhie etc). Regula 17: Dimensiuni i niveluri de agregare nelimitate. Tehnic vorbind, nici un produs software nu poate realiza acest lucru, pentru c nu se poate vorbi de un lucru nelimitat pe un calculator cu resurse limitate. Puine aplicaii OLAP necesit mai mult de 8 sau 10 dimensiuni i puine ierarhii conin mai mult de 6 niveluri. Codd consider c dac ar trebui stabilit un numr maxim de dimensiuni, acesta ar fi de 15-20 de dimensiuni. n practic exist o multitudine de alte cerine i limitri ale instrumentelor OLAP, astfel nct problema numrului maxim de dimensiuni poate fi pur i simplu nesemnificativ. Regula 18: Operaii ntre dimensiuni nerestrictive. Limbajul de manipulare al instrumentului OLAP trebuie s permit calcule i manipularea datelor indiferent de numrul de dimensiuni.

29

Iniiere n tehnologia OLAP-teorie i practic

1.3 Sisteme informatice pentru inteligena afacerilor


n pagina Web a firmei IBM, conceptul de Business Intelligence (BI) (inteligena afacerii) este definit astfel: BI nseamn utilizarea tuturor datelor de care dispune o firm, pentru a mbunti procesul decizional. BI presupune accesul la date, analiza lor i descoperirea de noi oportuniti de utilizare a lor. n climatul competiional al zilelor noastre, este vital pentru organizaii s ofere acces rapid la informaii, la costuri mici, pentru un numr ct mai mare i mai variat de utilizatori. Soluia la aceast problem este un sistem BI care ofer un set de tehnologii i produse software ce livreaz utilizatorilor informaiile necesare pentru a rspunde la ntrebrile ce apar n rezolvarea problemelor de afaceri: Nevoia de a crete veniturile i de a reduce costurile. S-au dus zilele cnd utilizatorii finali puteau gestiona i planifica activitile utiliznd rapoarte lunare i organizaiile IT aveau mult timp la dispoziie pentru a implementa noi aplicaii. Astzi firmele trebuie s dispun rapid de aplicaii, s ofere utilizatorilor acces rapid i uor la informaiile, ce reflect schimbrile mediului de afaceri. Sistemele BI pun accentul pe accesul i livrarea rapid a informaiilor la utilizatori. Nevoia de a gestiona i modela complexitatea mediului de afaceri curent. A nelege i gestiona un mediu de afaceri complex i a maximiza investiiile devine mult mai dificil. Sistemele BI ofer mai mult dect mecanisme de interogare i raportare, ele ofer instrumente de analiz a informaiilor complexe i de data mining. Nevoia de a reduce costurile IT. Astzi, investiia n sistemele informatice este un procent semnificativ din cheltuielile firmelor i nu este necesar numai s se reduc aceste cheltuieli, dar de asemenea, s se obin beneficii maxime de la informaiile gestionate de sistemele IT. Noile tehnologii informatice ca Intranetul i arhitectura pe trei niveluri, reduc costul de utilizare a sistemelor BI de ctre o mare varietate de utilizatori, n special manageri. n cele ce urmeaz, se va prezenta evoluia sistemelor informatice pentru inteligena afacerii: Primele sisteme informatice pentru afaceri foloseau aplicaii a cror ieiri implicau volume uriae de hrtie, pe care utilizatorii trebuiau s le citeasc, pentru a obine rspunsurile dorite. Aplicaiile client/server cu clieni de tip terminal permiteau un acces mai rapid la date, dar erau totui greu de utilizat i cereau acces la baze de date operaionale complexe. Aceste sisteme informatice pentru afaceri erau folosite numai de analiti. Managerii i directorii executivi puteau foarte rar s utilizeze aceste sisteme. A doua generaie de sisteme informatice pentru afaceri a aprut odat cu depozitele de date, care au o serie de avantaje fa de sistemele din prima generaie: depozitele de date sunt proiectate pentru a satisface nevoile managerilor i nu a aplicaiilor tranzacionale;

30

Sisteme OLAP-sisteme suport de decizie moderne

informaia din depozitele de date este curat, consistent i este stocat ntr-o form pe care managerii o neleg; spre deosebire de sistemele operaionale, care conin numai date de detaliu curente, depozitele pot furniza att informaii istorice ct i agregate; utilizarea unei arhitecturi client/server ofer utilizatorilor de depozite de date interfee mbuntite i instrumente suport de decizie mai puternice. A treia generaie: BI. Un depozit de date nu este totui o soluie complet pentru nevoile managerilor. Un punct slab al soluiilor ce folosesc depozitele de date este c specialitii pun accentul pe tehnologie i mai puin pe soluii manageriale (business solutions). Dei productorii de depozite de date ofer instrumente puternice pentru construirea i accesarea unui depozit de date, aceste instrumente cer un volum semnificativ de munc pentru implementare. De asemenea, se pune prea mult accent pe procesul de construire a depozitului i mai puin pe accesul la datele din depozit. Multe organizaii consider c dac construiesc un depozit de date i ofer utilizatorilor instrumente corecte, problema este rezolvat. De fapt este tocmai nceputul. Dei informaia din depozit este complet documentat i uor de accesat, complexitatea va limita utilizarea depozitului de ctre manageri, principalii beneficiari. Sistemele pentru inteligena afacerii pun accentul pe mbuntirea accesului i livrrii de informaii utile att la consumatorii de informaii ct i la cei care ofer informaii. Un sistem informatic pentru inteligena afacerii trebuie s ofere scalabilitate i s fie capabil s suporte i s integreze instrumente software de la mai muli fabricani. Un depozit de date este una din sursele de date ale unui sistem BI. De asemenea, exist un volum mare de informaii pe serverele de Web ale Intranetului, pe Internet i n format de hrtie. Sistemele informatice pentru inteligena afacerilor sunt proiectate pentru a permite acces la toate formele de informaii, nu numai cele stocate ntr-un depozit de date. ntr-o firm se colecteaz volume mari de date n tranzaciile zilnice: date despre comenzi, stocuri, facturi, vnzri, clieni etc. De asemenea, firmele au nevoie i de informaii externe (de exemplu informaii demografice). A fi capabil s consolidezi i s analizezi aceste date poate conduce adesea la un avantaj competiional (creterea vnzrilor, reducerea costurilor de producie, mbuntirea activitii de desfacere, descoperirea unor noi surse de venit etc). Toate acestea sunt posibile dac exist aplicaii corespunztoare i instrumente necesare pentru a analiza datele i dac datele sunt ntr-un format corespunztor pentru analiz. n concluzie, un sistem BI are trei avantaje cheie: include n arhitectura sa cele mai avansate tehnologii informatice; pune accentul pe accesul i livrarea de informaii la utilizatorii finali i ofer suport att pentru specialiti ct i pentru utilizatorii finali; permite acces la toate formele de informaii, nu numai cele stocate ntr-un depozit de date.

31

Iniiere n tehnologia OLAP-teorie i practic

Principalele obiective ale unui sistem BI sunt: s permit soluii cu costuri sczute ce ofer avantaje firmei; s permit acces rapid i uor la informaiile firmei pentru un numr mare i variat de utilizatori ; s ofere suport pentru tehnologiile moderne (tehnici de analiz complexeinstrumente OLAP, instrumente de tip data mining etc); s ofere un mediu de operare deschis i scalabil. Observm c sistemele informatice pentru inteligena afacerilor sunt de fapt sisteme suport de decizie moderne la nivel de organizaie, care utilizeaz noile tehnologii informatice. Termenul de sistem informatic pentru inteligena afacerilor este de fapt un termen umbrel utilizat de specialiti pentru o categorie mai vast de sisteme suport de decizie, ce integreaz toate facilitile oferite de depozitele de date, instrumentele OLAP, instrumentele data mining, Web-ul etc. n funcie de complexitatea procesului decizional la nivel de organizaie, de numrul de utilizatori, de cerinele organizaiei, de volumul de informaii necesare procesului decizional i de ali muli factori, sistemele suport de decizie moderne vor utiliza i vor integra una sau mai multe din noile tehnologii informatice actuale. Dac se utilizeaz depozite de date/centre de date i instrumente de interogare i raportare atunci avem un sistem suport de decizie cu depozite de date. Dac se integreaz depozitele de date cu instrumentele OLAP se obin aa numitele sisteme ROLAP, iar dac se utilizeaz i facilitile oferite de Web se obin sistemele suport de decizie orientate pe Web (figura 1.2). Multe firme prefer s construiasc un sistem separat pentru aplicaii BI fie din motive de securitate, fie din motive de performan ale sistemelor operaionale.
Moduri de stocare a datelor
Depozit de date / centru de date

BI ( tip de dat+ tip de analiz) SSD hibride orientate pe cunotine i date SSD cu depozite de date

Tehnici de analiz a datelor Data mining

Cerere

BDMD

Sisteme ROLAP Sisteme MOLAP

OLAP

Alte stocuri de informaii

SSD orientat pe Web

Web, Internet/Intranet

Figura 1.2 Influena noilor tehnologii informatice n evoluia sistemelor suport de decizie moderne

32

Sisteme OLAP-sisteme suport de decizie moderne

La ora actual exist o gam variat de instrumente i metodologii valabile pentru a dezvolta soluii BI : Aplicaii cum ar fi IBMs DecisionEdge pentru managementul relaiilor cu clienii, Oracle Sales Analyzer pentru analiza activitii de marketing, Oracle Financial Analyzer pentru analiza activitii financiare etc; Instrumente pentru interogri cum ar fi Power Play-Cognos, Business Objects-Business Objects, IBMs Query Management Facility etc; Instrumente OLAP cum ar fi Essbase-Arbor Software, Express Analyzer, Express Objects-Oracle etc; Instrumente pentru analiz statistic cum ar fi SAS System-SAS Institute, etc; Instrumente pentru data mining cum ar fi IBMs Intelligent Miner. Multe din aceste aplicaii i instrumente au faciliti Web. n figura 1.3 este prezentat arhitectura unui sistem informatic pentru inteligena afacerilor sau a unui sistem suport de decizie modern la nivel de organizaie.
Aplicaii pentru inteligena afacerilor

Instrumente suport de decizie Cerere i raportare OLAP

data mining

Accesul interfeele aplicaiilor servere de aplicaii

Gestiunea datelor Depozit central Centre de date Alte stocuri de informaii

Instrumente pentru construirea i modelarea depozitelor de date

Date externe i operaionale

Figura 1.3 Arhitectura unui sistem informatic pentru inteligena afacerilor

Gestiunea metadatelor

administrare

33

Iniiere n tehnologia OLAP-teorie i practic

Rezumat Un SSD este un sistem informatic interactiv, flexibil i adaptabil, special proiectat pentru a oferi suport n soluionarea unor probleme manageriale nestructurate sau semistructurate, cu scopul de a mbunti procesul decizional. Sistemul utilizeaz date (interne i externe) i modele, ofer o interfa simpl i uor 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: SSDuri orientate pe comunicaie, SSD-uri orientate pe date, SSD-uri orientate pe documente, SSD-uri orientate pe cunotine 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 conin date preluate din surse interne i externe ale organizaiilor. Principalele categorii de sisteme suport de decizie orientate pe date sunt: sistemele informatice executive, sistemele suport de decizie spaiale, 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 tendinele, s monitorizeze performanele i s identifice oportunitile i problemele cu care se confrunt organizaia. Sistemele suport de decizie spaiale i ajut pe manageri s acceseze, afieze i analizeze datele care au coninut geografic i-au aplicabilitate n domenii ca geologie, industria forestier, agricultur. Depozitul de date este o colecie de date orientat pe subiect, integrat, dependent de timp i nevolatil, destinat pentru a susine procesul decizional dintr-o organizaie. 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, faciliti analitice puternice (analize ad-hoc foarte rapide), interfa prietenoas i prezentri 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 analitilor, managerilor i directorilor s neleag esena datelor printr-un acces rapid, consistent i interactiv la o mare varietate de viziuni posibile ale informaiilor, care au fost obinute prin tranformarea datelor primare astfel nct s reflecte dimensiunile reale ale ntreprinderii aa cum o percepe i o nelege utilizatorul. Termenul de OLAP a fost folosit prima dat n septembrie 1993 de ctre Codd, n articolul Providing OLAP (On-line Analytical Processing) to User-Analysts: An IT Mandate, care a i propus 18 reguli, mai trziu considerate ca faciliti (caracteristici) ale sistemelor OLAP.

34

Sisteme OLAP-sisteme suport de decizie moderne

Cele mai comune domenii de aplicaii pentru sistemele OLAP sunt analiza i modelarea financiar, cercetarea i analiza pieei. Singurul principiu arhitectural ce caracterizeaz sistemele OLAP este multidimensionalitatea. Sistemele informatice pentru inteligena afacerilor sunt de fapt sisteme suport de decizie moderne la nivel de organizaie, care utilizeaz noile tehnologii informatice. Termenul de sistem informatic pentru inteligena afacerilor este de fapt un termen umbrel utilizat de specialiti pentru o categorie mai vast de sisteme suport de decizie ce integreaz toate facilitile 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 inteligena afacerilor, sisteme suport de decizie spaiale, centre de date.

35

Capitolul 2 Modele de date multidimensionale pentru sisteme OLAP


Economia din zilele noastre este caracterizat de o cretere substanial a competiiei ntre ntreprinderi. Pentru a face fa acestei competiii acerbe, managerii trebuie s ia decizii strategice corecte, bazate pe informaii reale. Astfel, informaia devine un factor de producie esenial. Factorii care au condus la aceasta situaie sunt: creterea complexitii structurii ntreprinderilor, a relaiilor ntre firme, crearea de noi procese de afaceri, redirecionarea proceselor de afaceri existente ctre client, globalizarea pieelor, clienilor i ntreprinderilor i apariia de noi tehnologii cum ar fi Internetul sau comerul 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 gndire al analitilor i mbuntesc performana execuiei cererilor. n consecin, tehnologia bazelor de date multidimensionale a ctigat, n ultima perioad, mult atenie din partea firmelor productoare i a cercettorilor. Indiferent de tipul de arhitectur implementat, instrumentele OLAP prezint datele la utilizator ntr-un model de date multidimensional, iar cererile sunt formulate utiliznd paradigma multidimensional. Totui multe din produsele OLAP existente au o serie de limitri: nu ofer un limbaj de interogare similar cu limbajul SQL; trateaz dimensiunile i msurile asimetric; nu exist un model conceptual unanim acceptat pentru bazele de date multidimensionale. Modelarea multidimensional este o tehnic de modelare conceptual folosit de aplicaiile OLAP. Totui modelarea datelor multidimensionale nu este o problem specific sistemelor OLAP. Bazele de date statistice, bazele de date geografice i cele temporale au legtur cu datele multidimensionale. Modelele de date propuse n domeniul bazelor de date statistice, spaiale, temporale au multe puncte comune cu modele de date OLAP. De exemplu, n bazele de date temporale rndurile i coloanele unei tabele relaionale sunt vizualizate ca dou dimensiuni, iar timpul apare ca a treia dimensiune, formnd ceea ce se numete 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 spaiale sunt concentrate pe reprezentarea obiectelor geometrice (puncte, linii, poligoane, regiuni etc) n spaiul multidimensional. Datele OLAP pot fi vizualizate ca puncte n spaiul multidimensional al atributelor. Totui operaiile specifice bazelor de date spaiale sunt diferite de operaiile 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 apariia termenului de OLAP i sunt n principal extensii ale modelelor de date existente (de regula relaionale). n bazele de date statistice, dimensiunile i msurile sunt tratate diferit. De exemplu, n [RAFA93] este prezentat un model funcional Mefisto bazat pe definiia unei structuri de date numit entitate statistic (statistical entity) i un set de operatori (agregare, restricie 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 cteva pot fi considerate pur conceptuale. De asemenea, cercettorii din diferite domenii de aplicaii au propus o serie de modele multidimensionale formale i limbaje de interogare corespunztoare. Dar fiecare model prezint o viziune proprie a cerinelor 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.

2.1 Concepte de baz


Pentru a descrie n detaliu modelele de date multidimensionale (extensii ale modelului relaional sau orientate pe cub) i a putea fi nelese, s-a considerat necesar a se prezenta o serie de concepte utilizate i anume: hypercubul (cub ndimensional), multicubul, dimensiunile, ierarhiile, msurile i fenomenul de mprtiere. Aceste concepte apar n majoritatea modelelor OLAP, dei modul lor de definire difer uneori foarte mult. De asemenea, consiliul OLAP a propus un glosar de termeni care se dorete standardizat. De aceea, n prezentarea acestor concepte de baz s-au utilizat i definiiile date de Consiliul OLAP. 2.1.1 Conceptul de cub n-dimensional Conceptul de hypercub sau cub cu mai mult de trei dimensiuni (cub ndimensional) sau structur multidimensional este fundamental pentru nelegerea sistemelor OLAP i a modelului multidimensional. Instrumentele OLAP folosesc conceptul de hypercub n acelai mod n care foile de calcul tabelar folosesc conceptul de foaie de lucru (worksheet) i bazele de date relaionale conceptul de

37

Iniiere n tehnologia OLAP-teorie i practic tabel. Toate vizualizrile, rapoartele i analizele sunt fcute n termeni de hypercuburi (cuburi n-dimensionale). Consiliul OLAP definete hypercubul ca un grup de celule de date aranjate dup dimensiunile datelor. De exemplu, o foaie de calcul tabelar exemplific o matrice bidimensional cu celulele de date aranjate n rnduri i coloane, fiecare fiind o dimensiune. O matrice tridimensional poate fi vizualizat ca un cub cu fiecare dimensiune formnd o fa a cubului. Dimensiunile tipice ale datelor dintro ntreprindere sunt timpul, msurile, produsele, regiunile geografice, canalele de distribuie etc. [OLAP97] Pentru a nelege conceptul de hypercub (cub n-dimensional) trebuie s inem cont de urmtoarele aspecte: Afiarea pe ecranul calculatorului nu este identic cu metaforele vizuale. Se consider un exemplu de date bidimensionale i anume informaiile despre vnzrile lunare (cantitatea vndut) de telefoane mobile Nokia ale unei firme. Exemplul poate fi realizat foarte uor cu ajutorul unei foi de calcul tabelar i afiat pe orice ecran (tabelul 2.1). Tabelul 2.1 Vnzrile lunare ale unei firme Luni Vnzri Ianuarie 790 Februarie 850 Martie 900 Aprilie 910 .. Decembrie 810 Total 10180 Totalul vnzrilor este afiat pe ultimul rnd. Este o singur coloan de date: coloana Vnzri. Setul de date are dou dimensiuni: o dimensiune Luna aranjat pe rnduri i o dimensiune Vnzri 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 vndut este determinat n funcie de trei dimensiuni: Locaie, Produs i Timp. Dimensiunea Locaie include o ierarhie cu dou niveluri jude i ora, iar dimensiunea Produs ierarhia cu nivelurile produs i model produs. Dei nu se reprezint n figur, dimensiunea Timp se refer la anul 2003. Fiecare subcub conine cantitatea vndut pentru o anumit combinaie de valori ale dimensiunilor. De exemplu, ntr-o anumit perioad de timp, n oraul Deva, din judeul Hunedoara, s-au vndut 10 telefoane celulare, model Nokia 3410. Ecranul calculatorului, la fel ca o hrtie, are numai dou dimensiuni fizice. Putem crea o reprezentare bidimensional pe ecran a unui cub tridimensional. Afiarea 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 afiat pe ecran, pe rnduri, coloane i pagini. Este uor de a vizualiza relaia 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 afieaz o felie din acel cub.

dimensiunea Locaie Ierarhia: Jude, Ora Hune doara Bacu Hune doara Deva Bacu Piatra Neam 3410 Nokia Membru

variabila (cantitatea vndut)

10 22 10 29 21 9 2 21 12 34 22 8

3310

6100

8100

dimensiunea Produs (ierarhia: produs, model produs)

Figura 2.1 Reprezentarea sub forma unui cub a modelului multidimensional Dimensiunile logice nu sunt identice cu dimensiunile fizice. Cuburile studiate la geometrie sunt implicit fizice, deoarece se bazeaz pe noiuni fizice ca lungime, lime i nlime. Cele trei axe perpendiculare (x, y, z) se transform perfect n dimensiuni fizice ca lungime, lime i nlime. Cubul fizic este o reprezentare intuitiv a unui eveniment, deoarece toate dimensiunile coexist pentru orice punct din cub i sunt independente ntre ele. ntr-un spaiu tridimensional, orice punct (orice vnzare) este identificat de coordonatele sale x, y i z (sau de produs, timp i locaie). Totui fizic sunt numai trei dimensiuni independente. Chiar dac nu este greit de a folosi un cub cu unghiuri drepte pentru reprezentarea multidimensional a unui eveniment, definiia bazat pe unghi drept a unei dimensiuni nu este necesar pentru reprezentarea evenimentului. O reprezentare corect cere dimensiuni independente [THOM96]. Erik Thomsen [THOM96] utilizeaz pentru reprezentarea evenimentelor un nou concept: structur de domeniu multidimensional (multidimensional domain structure-MDS) (figura 2.2). Fiecare dimensiune este reprezentat printr-un segment vertical. Orice membru dintr-o dimensiune este reprezentat de un interval

39

Iniiere n tehnologia OLAP-teorie i practic din segment. Pentru exemplu tridimensional anterior, se identific patru segmente: unul pentru timp, unul pentru produse, unul pentru locaie i unul pentru variabile. Fiecrui element din eveniment i din cub i corespunde un interval din fiecare din cele patru segmente. De exemplu, n figura 2.2, MDS prezint vnzrile de telefoane mobile Nokia din luna martie. Un MDS este mai descriptiv dect un cub fizic, totui nu arat punctele de date curente, ci combinaii posibile ale membrilor dimensiunilor. Utiliznd un MDS este uor de a aduga alte dimensiuni la model. Un MDS nu este o reprezentare fotografic a evenimentului ce a generat datele, dar nu este nici cub fizic. Un MDS: arat numrul de puncte de date extrase din eveniment i organizarea lor logic; prezint toate dimensiunile care se pot vizualiza; arat mai multe informaii structurale dect un cub fizic; i poate fi realizat pentru orice numr de dimensiuni. Dimensiunile logice pot fi combinate. Cum se pot reprezenta patru sau mai multe dimensiuni logice n trei dimensiuni fizice (rnd, coloan, pagin)? Rspunsul este de a combina multiple dimensiuni logice n aceeai dimensiune fizic. Maparea a dou dimensiuni logice ntr-o singur dimensiune fizic nseamn crearea unei versiuni unidimensionale. Metoda tipic este de a include o dimensiune n alta. Dou lucruri se modific ca rezultat al combinrii dimensiunilor : forma datelor prezentate i vecinii.
Evenimentul ce genereaz datele Timp MDS Produse cubul de date Variabile

Vnzri (buc)

Martie

telefoane mobile Nokia

Nokia

vnzri

martie

Figura 2.2 Exemplu de utilizare a MDS-ului pentru reprezentarea evenimentelor ntr-o matrice bidimensional, fiecare punct are patru vecini. Cnd dimensiunile sunt combinate fiecare punct ntr-o list unidimensional are numai doi vecini. Un lucru important nu se modific n timpul procesului de combinare a dimensiunilor logice: nu are importan cum se combin dimensiunile, rezultatele sunt aceleai. Abilitatea de a modifica uor prezentrile acelorai date, prin reconfigurarea a cum sunt afiate dimensiunile, este una din cele mai mari avantaje

40

Modele de date multidimensionale pentru sisteme OLAP ale sistemelor OLAP. Se separ structura datelor reprezentat n MDS, de afiarea datelor. Orice combinaie de dimensiuni logice poate fi mapat la orice combinaie de rnduri, coloane i pagini ale unui ecran.

2.1.2 Conceptul de dimensiune


Conceptul de dimensiune este definit de Consiliul OLAP ca un atribut structural al unui cub ce const dintr-o list de membrii, pe care utilizatorii i percepe ca fiind de acelai tip. De exemplu, toate lunile, trimestrele, anii formeaz dimensiunea Timp.. O dimensiune acioneaz ca un index pentru identificarea valorilor dintr-o matrice multidimensional....Dimensiunile ofer un mod foarte concis, intuitiv de organizare i selectare a datelor pentru explorare i analiz. [OLAP97] Dimensiunile sunt atribute de identificare a evenimentelor msurabile sau a lucrurilor pe care le analizm. Spre deosebire de dimensiunile fizice care sunt bazate pe unghiuri i sunt limitate la trei, dimensiunile logice nu au astfel de limite. Frecvent numrul de dimensiuni ntr-un set de date depete cele trei dimensiuni fizice (rnd, coloan, pagin) ale ecranului de afiare. Abilitatea instrumentului OLAP de a modela multiple dimensiuni de informaii l face mult mai potrivit pentru a lucra cu seturi complexe de date, dect bazele de date relaionale i foile de calcul tabelar. Dimensiunile au urmtoarele caracteristici: furnizeaz informaii descriptive despre fiecare indicator (variabil); conin n general date statice i sunt eseniale pentru analiz. Un model multidimensional ce ofer un numr mare de atribute dimensionale permite analize ct mai complexe i mai variate; ntr-un cub n-dimensional o dimensiune este reprezentat printr-o ax; ntr-o schem stea sunt tabelele care se dispun radial n jurul tabelei de fapte i se mai numesc tabele de dimensiuni. De exemplu, ntr-o baz de date pentru analiza vnzrilor se identific urmtoarele dimensiuni: Timp, Regiune/locaie, Client, Agent de vnzare, Produs. O dimensiune conine mai muli membri. Un membru este un nume distinct sau un identificator folosit pentru a determina poziia unui element de dat (n schema stea apare sub denumirea de atribut dimensional). De exemplu, toate lunile, trimestrele i anii formeaz dimensiunea Timp i toate oraele, regiunile i rile dimensiunea Locaie. Un membru poate aparine la una sau mai multe ierarhii sau poate s nu fie inclus ntr-o ierarhie (independent). De exemplu, n dimensiunea Produs membru culoare nu este inclus n nici o ierarhie.

41

Iniiere n tehnologia OLAP-teorie i practic

2.1.3 Conceptul de ierarhie


O ierarhie este un atribut al unei dimensiuni. Cele mai multe dimensiuni au o structur multi-nivel sau ierarhic. Timpul este o dimensiune ierarhic multi-nivel (ore, zile, sptmni, luni, trimestre i ani), Locaia geografic este o dimensiune ierarhic (vecini, orae, state i ri). n cele mai multe activiti ale unei firme, ierarhiile sunt o necesitate. Ar fi imposibil de a funciona o firm, dac toate datele sale ar fi limitate la nivel tranzacional. De exemplu, este necesar de a pstra informaii despre volumul vnzrilor lunare, pe trimestru, pe an, pentru a vedea care produse se vnd mai bine i care mai prost. Criteriile dup care datele sunt agregate pentru analiz i raportare trebuie s fie aceleai cu factorii folosii n procesul decizional. n figura 2.3 este prezentat o ierarhie de produse.
Toate produsele

cosmetice

electronice

sapun

ampon

parfum

acas

birou

radio casetofon

TV

fax

xerox

cu baterii

electric

Figura 2.3 O ierarhie de produse Elementele individuale sau nodurile sunt numite membri (de exemplu: cosmetice, echipamente de birou etc). Cei mai muli membri au conexiuni n sus i jos, n ierarhie. Conexiunile n sus sunt de tip (m:1) i sunt numite asocieri printe. Conexiunile n jos sunt de tip (1:m) i sunt numite asocieri copil. De exemplu, echipamentele electronice sunt prini pentru echipamentele de birou. Faxurile i xerox-urile sunt copii pentru echipamentele de birou. n general, un membru poate avea un singur printe. Un membru ce nu are printe se numete membru rdcin (root). n figura 2.3 membru Toate Produsele este rdacin n ierarhia de produse. Membrii ce nu au copii sunt numii frunz (de exemplu radio casetofoane cu baterii etc).

42

Modele de date multidimensionale pentru sisteme OLAP Pentru a identifica poziia unui membru ntr-o dimensiune se folosesc conceptele de nlime i adncime n ierarhie. nlimea se stabilete de jos n sus. Din acest motiv nivelul (L0) al ierarhiei reprezint nodurile frunz ale ierarhiei (nlimea cea mai mic). Adncimea n ierarhie este stabilit de sus n jos. Exist posibilitatea ca doi membri, care au aceeai nlime, s aib adncimi diferite i invers (structuri arborescente neechilibrate). Structurile arborescente neechilibrate sunt implementate cu succes n bazele de date multidimensionale, bazele de date relaionale fiind necorespunztoare. Ierarhiile dimensionale pot fi simetrice sau asimetrice (figura 2.4). n dimensiunea Timp exist o ierarhie simetric. Cu ierarhiile simetrice se pot referi membrii prin nivelul lor ierarhic. n glosarul de termeni OLAP se specific c membrii dimensiunilor pot fi organizai pe baza relaiilor de tip printe-copil, unde un membru printe reprezint consolidarea (agregarea) membrilor copil. Rezultatul este o ierarhie i relaiile printe/copil sunt relaii ierarhice. Produsele se pot grupa i n alte moduri dect cosmetice i electronice. De exemplu, preul reprezint un alt criteriu pentru organizarea dimensiunii Produs (de exemplu: solduri, specifice, de lux). Cu alte cuvinte, ntr-o dimensiune pot exista mai multe ierarhii. Alegerea nivelurilor intermediare de grupare sau agregare este important pentru nelegerea i abilitatea de a lua decizii, deoarece datele au numai un nivel de detaliu, un nivel de agregare complet, dar multe niveluri intermediare. Aa cum arat figura 2.5, fiecare direcie de agregare scoate n eviden unii factori i-i ascunde pe alii [THOM96]. Numrul de niveluri intermediare, cum ar fi grupuri de produse dup pre, grupuri de produse dup profit, dup tipul produsului i productor, permite s experimentm diferite moduri de a privi i nelege datele. Aceasta este una din ariile de convergen ntre structurile multidimensionale i analiza statistic.
an

Trim1

Trim2

Trim3

Trim4

Figura 2.4 Ierarhie simetric Ierarhiile sunt fundamentul pentru agregarea datelor i pentru navigarea ntre nivelurile de detaliu dintr-un cub n-dimensional. Dei nu toate dimensiunile conin ierarhii, toate aplicaiile din lumea real implic dimensiuni ierarhice. Numrul de ierarhii distincte ntr-o structur multidimensional este egal cu produsul dintre numrul de ierarhii din fiecare dimensiune. De exemplu, dac sunt trei ierarhii n

43

Iniiere n tehnologia OLAP-teorie i practic dimensiunea Timp, trei ierarhii n dimensiunea Locaie, patru ierarhii n dimensiunea Produs i o singur variabil ar putea fi 3*3*4*1=36 ierarhii distincte. Unele instrumente OLAP permit numai o singur ierarhie pe dimensiune. n acest caz, fiecare ierarhie este tratat ca o dimensiune separat. Combinaia de multiple dimensiuni i multiple niveluri pe dimensiune constituie esena unui cub n-dimensional sau hypercub. O celul ntr-un cub n-dimensional este definit de intersecia unui membru din fiecare dimensiune. Unele celule conin date de intrare cum ar fi vnzrile zilnice, altele conin date derivate. Valorile datelor derivate sunt definite cu ajutorul formulelor. Cu ct sunt mai multe dimensiuni i ierarhii n cub, cu att este mai complex vecintatea din jurul unei celule i exist mai multe direcii dup care se pot vizualiza datele. ntr-un cub n-dimensional (cu un nivel ierahic pe dimensiune), fiecare celul are 2n vecini imediai sau direcii de vizualizare. De exemplu, o celul ntr-o foaie de calcul tabelar are patru vecini (4 celule adiacente), iar o celul ntr-un cub tridimensional are ase. Cnd se adaug ierarhii, numrul de direcii de vizualizare crete.
Toat compania

Domenii de activitate

Regiuni

Diviziuni

Orae

Departamente

Figura 2.5 Agregarea datelor dintr-o dimensiune Ce tip de date pot fi stocate ntr-un cub n-dimensional? Dei majoritatea datelor stocate n cuburile n-dimensionale sunt numerice, orice tip de date de la text la grafice i chiar sunete pot fi multidimensionale. Multe instrumente OLAP ofer abilitatea de a popula cuburile n-dimensionale cu date text. Datele numerice sunt mai potrivite pentru aplicaiile OLAP, deoarece au o organizare multidimensional i se pot agrega. Alte tipuri de date pot beneficia de organizarea multidimensional, dar apar probleme datorate agregrii lor. Totui cele mai multe date surs, la nivel de ntreprindere, sunt de tip caracter. Din acest motiv, datele de tip ir de caractere vor deveni mult mai importante pentru instrumentele OLAP.

44

Modele de date multidimensionale pentru sisteme OLAP Date cum ar fi: culoarea, adresa, tipul de ambalaj, tipul de client sunt factori eseniali pentru analiz. Conceptul de nivel ntr-o ierarhie este foarte important pentru a determina ce tipuri de navigri 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 aceeai generaie dac ei au acelai numr de strmoi.. Termenii de generaie i nivel sunt necesari pentru a descrie subgrupuri de membrii ntruct, de exemplu, dei doi frai membri au acelai printe i sunt de aceeai generaie, ei ar putea s nu fie la acelai nivel, dac unul din frai are un copil i cellalt nu.

2.1.4 Conceptul de msur


O msur (variabil) este un indicator de performan prin care se poate analiza performana activitii modelate (de regul un atribut numeric al unui element din colecia de fapte). Valorile unui indicator se modific continuu. Pentru fiecare combinaie posibil ntre dimensiuni, exist sau nu o valoare corespunztoare a indicatorilor. Nu orice atribut numeric este un indicator. De exemplu, dimensiunea ambalajului este un atribut numeric i totui nu este un indicator ci un atribut dimensional. Dac valoarea atributului numeric variaz continuu (de exemplu: costul de livrare, cantitatea vndut, volumul vnzrilor) atunci atributul este un indicator, iar dac atributul este perceput mai mult ca o constant (de exemplu: dimensiunea ambalajului, descriere produs, culoare) atunci este un atribut dimensional. Indicatorii pot fi clasificai n: indicatori de baz (de exemplu: volumul vnzrilor, cantitatea vndut, costurile, numrul de clieni); indicatori derivai care se obin prin combinarea indicatorilor de baz (de exemplu profitul). O alt clasificare este dat de Ralph Kimball n cartea sa The Data Warehouse Toolkit i anume dup posibilitatea indicatorilor de a se nsuma dup dimensiuni: indicatori aditivi care se pot nsuma dup toate dimensiunile. De exemplu, indicatorul volumul vnzrilor se poate calcula pentru o categorie de produse sau pentru o anumit regiune sau pentru a anumit perioad de timp. Volumul vnzrilor, cantitatea vndut i costurile sunt aditive. Aceasta nseamn c are sens de a aduna lei sau cantiti de-a lungul oricrei combinaii timp, produs, magazin. indicatori semiaditivi care se pot nsuma numai dup unele dimensiuni. De exemplu, indicatorul numrul de clieni este semiaditiv, deoarece se poate calcula numrul de clieni ntr-o anumit perioad de timp sau pentru o anumit regiune, dar nu este aditiv de-a lungul dimensiunii Produs. Dac pentru fiecare produs (dintr-o categorie de produse) se cunoate numrul de clieni i dorim s aflm numrul de clieni pentru categoria de produse, nu se pot aduna aceste numere. Rezultatul poate fi eronat, deoarece pot

45

Iniiere n tehnologia OLAP-teorie i practic exista clieni, care au cumprat 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.

2.1.5 Conceptul de multicub


Un cub n-dimensional este de fapt un set de variabile ce utilizeaz aceleai dimensiuni de identificare. ntrebarea care apare este dac se poate aduga un numr nelimitat de dimensiuni la un cub n-dimensional i dac pentru modelarea unei activiti complexe este suficient un singur cub n-dimensional. De exemplu, se consider cubul n-dimensional care modeleaz activitatea de vnzri cu dimensiunile iniiale: Timp, Locaie, Produs i dimensiunea de variabile [THOM96]. Se adaug dimensiunea Angajat i variabila numrul de ore lucrate/tip de angajat. n modelul modificat, variabilele iniiale (de exemplu cantitatea vndut, volumul vnzrilor) continu s fie identificate de locaie, timp i produs la care se adaug tipul de angajat. n cubul modificat, variabilele pentru vnzri sunt acum n funcie de locaie, timp, produs i angajat. Dar n realitate, vnzrile nu depind de tipul angajatului. ntr-un caz simplificat (fr dimensiunile Locaie i Timp) se consider dimensiunea Angajat cu 10 membri, dimensiunea Produs cu 10 membri. Ca variabile se consider numai volumul vnzrilor pentru fiecare produs i totalul vnzrilor pentru toate produsele i numrul de ore lucrate pentru fiecare tip de angajat, precum i total numr de ore lucrate pentru toi angajaii. Cele dou seturi de date au cte 11 puncte de date fiecare. Ierarhiile au fost eliminate din cub. Membrii Toti angajaii i Toate produsele au fost adugai la fiecare din dimensiunile respective, pe un singur nivel. Cubul rezultat este format din 11*11*2 = 242 de intersecii (celule). Din acestea numai 22 de celule au date, celelalte sunt goale. Cu alte cuvinte rezult un cub ndimensional foarte mprtiat. Apare necesitatea de a defini un nou cub ndimensional logic i un mod de a determina cnd o dimensiune nou aparine sau nu unui nou cub n-dimensional. Dac dou seturi de date aparin aceluiai cub ndimensional logic, densitatea combinaiilor lor va fi egal cu media aritmetic a densitilor lor nainte de a fi combinate. De exemplu, un cub perfect dens ce conine dimensiunea Locaie (cu 100 de membri), dimensiunea Timp (cu 10 perioade de timp), dimensiunea Produs (cu 100 de produse) i dimensiunea de variabile (cu 5 variabile) va avea 500000 puncte de date. Un cub ce conine dimensiunea Locaie (cu 100 de magazine), dimensiunea Timp (cu 10 perioade de timp), dimensiunea Produs (cu 100 de produse), dimensiunea de variabile (cu 5 variabile) i dimensiunea Scenariu (planificat, curent i variaia), iar datele exist numai pentru scenariu planificat, va conine 500000 celule de date, dar este numai 33 % dens. Combinaia celor dou cuburi va conine 1000000 celule de date i este 67% dens.

46

Modele de date multidimensionale pentru sisteme OLAP n multe aplicaii multidimensionale se utilizeaz date din mai multe domenii de activitate (de exemplu activitatea financiar i activitatea de marketing sau activitatea de producie i activitatea de desfacere). n aceste cazuri, se utilizeaz mai multe cuburi n-dimensionale logice sau structuri multicub. Problema care apare n proiectarea unei structuri multicub este legat de modul cum se realizeaz legtura ntre cuburile n-dimensionale. Se consider cele dou cuburi din exemplu anterior: cubul cu date despre vnzri i cubul cu date despre angajai. Cele dou cuburi au dou dimensiuni comune: Locaie i Timp. Cubul pentru vnzri are n plus dimensiunile Produs, Scenariu i dimensiunea de variabile. Niciuna din aceste dimensiuni nu este folosit de cubul pentru angajai. Cubul pentru angajai are dimensiunea Angajat i dimensiunea de variabile legate de activitatea angajailor (de exemplu numrul total de ore lucrate/tip angajat) care nu sunt folosite de cubul pentru vnzri. Se dorete s se analizeze dac exist o relaie ntre variabila numrul de ore lucrate/tip de angajat i variabila cantitatea de produse vndute. Pentru a compara valorile celor dou variabile, care se gsesc n dou cuburi ndimensionale separate, trebuie mai nti s se defineasc un cadru analitic sau un numitor comun [THOM96]. n cazul celor dou cuburi n-dimensionale, numitorul comun sunt cele dou dimensiuni comune: Locaie i Timp. n acest fel se pot compara valori individuale, serii dimensionale sau volume dimensionale. Figura 2.6 arat o schem pentru acest model multicub. Se observ c modelul conine dimensiunile globale Locaie i Timp i fiecare cub n-dimensional din model este o ramificaie a dimensiunilor globale. Prin utilizarea structurii multicub este posibil de a integra seturi de date eterogene. n concluzie, cel mai simplu mod de reprezentare a datelor unei aplicaii multidimensionale este cel al unui spaiu cartezian definit de toate dimensiunile aplicaiei (spaiul datelor). Totui datele multidimensionale sunt mprtiate i celulele de date nu sunt distribuite n mod egal n spaiul multidimensional. Proiectanii de instrumente OLAP au adoptat o varietate de strategii pentru a trata fenomenul de mprtiere dar i gruparea datelor. Instrumente ca Essbase, Power Play utilizeaz structura hypercub, o structur logic de cub simplu, dar cu un model sofisticat de compresie a datelor. Cealalt structur, multicubul, este mai des ntlnit. n aplicaiile multicub, proiectanii descompun baza de date ntr-un set de structuri multidimensionale, fiecare fiind compus dintr-un subset de dimensiuni ale bazei de date. Aceste structuri multidimensionale au diferite denumiri (variabile Oracle Express, Pilot; structuri Holos; cuburi Microsoft OLAP).

2.1.6 Conceptul de mprtiere


Conceptul de mprtiere este frecvent asociat cu datele multidimensionale. Termenul de mprtiere a fost utilizat cu semnificaia de valoare lips, valoare inaplicabil i valoare zero. Primele dou cazuri sunt considerate date invalide (conceptul de null). Codd, n cele 18 reguli pentru OLAP [CODD93], sugereaz c modelele OLAP respect regula privind valorile null, a modelului relaional. Existena unui numr mare de valori zero nu este totui un exemplu real de

47

Iniiere n tehnologia OLAP-teorie i practic mprtiere. Valoarea zero este valid ca orice alt numr. Confuzia a aprut, deoarece n aplicaiile OLAP apare un numr mare de valori zero, precum i volume mari de date lips i invalide. Tehnicile pentru optimizarea fizic a stocrii unui numr mare de valori repetate sunt similare i uneori aceleai cu tehnicile pentru optimizarea fizic a stocrii de volume mari de date lips i invalide. Totui valorile lips i cele invalide nu sunt date valide. Ele nu pot fi tratate n acelai mod ca orice alt valoare. De aceea, sunt necesare tehnici speciale pentru aceste cazuri. Tratamentul impropriu al valorilor null poate cauza calcule incorecte. Acurateea calculelor este de o importan crucial pentru analiza oricrui set de date, indiferent c este sau nu multidimensional. Problema tratrii datelor mprtiate este una foarte important i este frecvent dezbtut n lumea bazelor de date. Logicienii au crezut c exist numai dou valori logice: adevrat i fals. Regulile logice, care se aplic la bazele de date, sunt exprimate n funcie de aceste dou valori. Problema apare totui cnd se introduc date invalide. Dar conform logicii, o propoziie i inversa sa nu pot avea ambele valoarea adevrat. Nu tim dac este adevrat 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 greit introdus o valoare n acel cmp. Datele lips i cele invalide se introduc regulat n toate tipurile de baze de date, inclusiv cele multidimensionale. n modelul relaional, versiunea 2, Codd a propus utilizarea unei logici bazat pe patru valori logice (figura 2.7). El a schimbat semnificaia termenului de negaie. Pentru propoziii adevrate i false, negaia unui termen produce un termen diferit cu o valoare adevrat diferit. Negaia lui adevrat este fals i negaia lui fals este adevrat. Pentru propoziii cu valori lips sau invalide, negaia unui termen este el nsui. Deci negaia unei valori lips este lips i negaia unei valori invalide este invalid [THOM96].
Dimensiuni globale Locaie Timp

Hypercubul pentru vnzri Produs Scenariu Variabile

Hypercubul pentru angajai Angajat Variabile

Figura 2.6 Model multicub

48

Modele de date multidimensionale pentru sisteme OLAP Aceast inconsisten n definiia negaiei produce totui o serie de probleme. Unii specialiti prefer s pstreze logica cu dou valori, datorit propietilor ei de deducere i eliminarea datelor invalide. Ei caracterizeaz n general, datele invalide ca fiind rezultatul unei proiectri proaste a bazei de date. De exemplu, n loc de a introduce valoare null pentru numele soiei ntr-o baz de date cu informaii despre angajai, cnd un angajat nu are soie, ar fi mai bine de a introduce valoarea valid Nu n cmpul numit este cstorit. Se poate crea o tabel separat cu informaii despre soii. mbuntirea proiectrii bazei de date ar putea elimina datele invalide. Cele dou tipuri de date (lips i invalide) trebuie totui s fie tratate individual, deoarece ele afecteaz calculele n diferite moduri.
P T A I F T=adevrat F=fals A=lips I=invalid Not (P) F A I T

Figura 2.7 Logica cu patru valori a modelului relaional, versiunea 2

2.2 Modele de date OLAP-extensii ale modelului relaional


Aa cum se observ n figura 2.8 modelele de date multidimensionale s-au dezvoltat pe dou direcii i anume: modele extensii ale modelului relaional i modele orientate pe cub. Multe din modelele propuse sunt extensii ale modelului relaional. De exemplu, Gray [GRAY96] propune operatorul CUBE ce generalizeaz clauza GROUP BY din limbajul SQL i care este o abordare foarte pragmatic, potrivit pentru aplicaiile OLAP. Modelul lui Li i Wang [LIWA96] i modelul lui Gyssens i Lakshmanan [GYSS97] constituie o extensie a algebrei relaionale. n cele ce urmeaz, se vor analiza cteva modele de date multidimensionale.

49

Iniiere n tehnologia OLAP-teorie i practic

2.2.1 Operatorul Cub de date


n limbajul SQL standard 93 se utilizeaz pentru agregare cinci funcii: count(), sum(), min(), max(), avg() i clauza GROUP BY. De asemenea, limbajul SQL permite agregarea valorilor distincte (clauza DISTINCT). n afara de cele cinci funcii de agregare standard, multe SGBDR-uri permit funcii statistice, funcii de analiz financiar i alte funcii specifice unor domenii. Unele sisteme permit utilizatorilor s defineasc noi funcii de agregare (de exemplu Informix Illustra).
Modele extensii ale algebrei relaionale Modele orientate pe cub Concepte extinse

Operatorul Data CubeGray

Modelul Agrawal Model cu faciliti extinse Lehner

Algebra de gruparemodelul Li, Wang

Modelul Cabbibo

Modelul lui Kimball

Modelul Vassiliadis

Modelul Golfarelli Modelul Gyssens

Modelul Rafanelli Modelul StarER Modelul Guazzo

Modelul Teste

Modelul Blanschka

Modelul MAC

Figura 2.8 Istoria modelului de date multidimensional

50

Modele de date multidimensionale pentru sisteme OLAP Gray [GRAY96] propune pentru agregare utilizarea operatorului CUBE. Multe sisteme relaionale permit deja aceti 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 Instituii (codcat, dencat, codfac, denfac, codinst, denumire). Cheia primar a tabelei de fapte este cheie compus (codcat, an), iar a tabelei de dimensiuni este codcat: SQL> select an, codcat, nrcadre profesori from F2_indicatori_performan; AN CODCAT PROFESORI ------------------------------------------2000 CIB 1 2000 IE 8 2000 MAN 1 2001 IE 3 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; CODFAC AN PROFESORI ------------------------------------------CSIE 2000 9 CSIE 2001 3 FMAN 2000 1 Operatorul ROLLUP creeaz subtotaluri: SQL > select i.codfac, f.an, sum(f.nrcadre) profesori from F2_indicatori_performan f, institutii i where f.codcat=i.codcat group by rollup(i.codfac, f.an); CODFAC AN PROFESORI ------------------------------------------CSIE 2000 9 CSIE 2001 3 CSIE 12 FMAN 2000 1 FMAN 1 13

51

Iniiere n tehnologia OLAP-teorie i practic Primele dou rnduri sunt identice cu cererea anterioar. Al treilea rnd 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). Urmtorul rnd este rnd de detaliu, iar al cincilea rnd este un alt subtotal dup atributul an. Ultimul rnd este un total general. Urmtoarea 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 uor de citit, este mai eficient (mai ales pentru seturi mari de date), deoarece tabela se parcurge o singur dat. Sunt posibile i operaii rollup pariale: 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 n acest caz, nu se produce un total general (total dup toate dimensiunile). Dac n ROLLUP sunt specificate N coloane, atunci se produc N+1 tipuri de subtotal. Operatorul CUBE realizeaz toate tipurilor posibile de agregare (totaluri pentru fiecare combinaie posibil de dimensiuni). De exemplu: SQL> select f.an, i.codfac, sum(f.nrcadre) PROFESORI from F2_indicatori_performan f, institutii i where f.codcat=i.codcat group by cube(f.an,i.codfac); 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 combinaiile posibile sau 2**N tipuri de subtotaluri. Cubul poate fi un cub complet sau un cub parial. Funcia GROUPING face distincie ntre valorile null curente i cele ce rezult prin agregare, returnnd o valoare 0 pentru primul caz i o valoare 1, cnd 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 Funcia GROUPING poate fi utilizat, de asemenea, pentru filtrarea rndurilor.

53

Iniiere 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 funciile utilizate n clauza GROUP BY (sum, count, max, min, variance, stddev) pot fi utilizate i cu ROLLUP i CUBE.

2.2.2 Modelul lui Li, Wang


n [LIWA96] se definete un model de date multidimensional (MDD) pentru aplicaii OLAP. Conceptul de baz este cubul multidimensional. O schem de cub n-dimensional este un set {(D1, R1), ,(Dn, Rn)} unde : Di sunt dimensiuni i Ri atribute. Un cub MD este o pereche (F,) unde F={(D1, r1), ,(Dn, rn)}(unde ri este o relaie pe Ri pentru fiecare i) i este o funcie de la {(D1, t1), ,(Dn, tn) | 1 i n , ti ri } la V (set de valori scalare). Deci un cub MD este un set de relaii dimensionale ri i o funcie de la un n-tuplu la o valoare scalar. O baz de date multidimensional este un set finit de cuburi MD i un set finit de relaii de grupare (grouping relations). De asemenea, se introduce o algebr (MD cube algebra), o extensie a algebrei relaionale, pentru manipularea cuburilor (de exemplu reuniune de cuburi, adugarea unei noi dimensiuni, agregarea cubului etc) i un limbaj de interogare algebric numit algebra de grupare (grouping algebra). Modelul lui Li i Wang este un model multidimensional cu o puternic expresivitate prin setul de operatori definii, dar nu permite modelarea msurilor complexe ntr-un singur cub. Pentru fiecare msur trebuie construit un cub MD separat. Ierarhiile multiple pot fi exprimate folosind operatorii algebrei de grupare (operatorul roll, order, operatorul de agregare).

54

Modele de date multidimensionale pentru sisteme OLAP Pentru a ilustra acest model, autorii propun ca exemplu o fabric de automobile care dorete s analizeze cazurile de reparaii pentru mainile pe care le produce. Se consider c o reparaie este descris n funcie de urmtoarele dimensiuni: Vehicul (vehiculul ce trebuie reparat); Timp (data reparaiei); Garaj (garajul ce execut reparaia); Clientul (propietarul mainii reparate). Pentru o reparaie sunt relevante urmtoarele informaii: costurile pieselor componente (cost_comp), salariile (sal), costurile totale (cost_total), numrul de persoane implicate (nr_pers) i durata reparaiei (durata). Pentru fiecare msur se construiete un cub separat. De exemplu, pentru msura cost_total se definete urmtorul cub : Reparatie_Vehicul=(rt, rg, rv, cost_total). Schema cub n dimensional este: <(timp, Rd), (garaj, Rg), (vehicul, Rv)>, unde Rd ={an, luna, zi} .

2.2.3 Modelul lui Kimball


n [KIMB96] se definete schem stea, o reprezentare intuitiv a cubului de date multidimensional ntr-un mediu relaional. Schema stea conine o tabel central i un set de tabele de dimensiuni aranjate ntr-o manier radial, n jurul tabelei centrale. Fiecare tabel de dimensiuni reprezint o dimensiune a activitii analizate, n timp ce tabela central conine coninutul cubului de date. Schema este foarte asimetric. Exist o tabel dominant n centrul schemei, singura tabel din schem cu multiple jonciuni, prin care se conecteaz la celelalte tabele. Aceast tabel se numete tabela de fapte (fact table). Celelalte tabele au numai o singur jonciune, prin care se leag la tabela central i se numesc tabele de dimensiuni sau dimensiuni (dimension table). Schema stea reduce numrul de jonciuni ntre tabele, ca urmare a procesului de denormalizare. Nu exist nici o informaie despre nivelurile ierarhice stocate n structura schemei stea. n plus, reprezentarea unei dimensiuni printr-o singur tabel conduce la date redundante, denormalizate i inconsistente. n mediile cu depozite de date, aceasta nu cauzeaz nici o problem, deoarece datele sunt n cele mai multe cazuri interogate. Tabel de fapte are urmtoarele caracteristici: Conine un numr foarte mare de tupluri (posibil milioane). Numrul de tupluri din tabel reprezint de fapt produsul cartezian al dimensiunilor. De exemplu, pentru analiza activitii de desfacere a unei firme de comer cu 500 de magazine de distribuie n ntreaga lume i care comercializeaz 50000 de produse n fiecare magazin, tabela de fapte va conine 500*50000*2*365 de tupluri. Baza de date va stoca informaiile referitoare la tranzaciile zilnice, pe o perioad de doi ani. Dimensiunea ei crete dinamic, n funcie de cantitatea de date ncrcate la fiecare ciclu de actualizare a bazei de date, precum i n funcie de volumul de date istorice stocate n baza de date.

55

Iniiere n tehnologia OLAP-teorie i practic Este tabela care reflect performana activitii (procesului) analizate. Cheia primar a tabelei este o cheie compus, format din cheile primare ale tabelelor de dimensiuni. Fiecare tabel de fapte are o cheie compus i invers fiecare tabel care are o cheie compus este o tabel de fapte. Este normalizat i realizeaz de fapt o legtur indirect ntre dimensiuni. Figura 2.9 prezint un exemplu de schem stea. Tabela central este tabela Vnzri nconjurat de dimensiunile Timp, Client, Locaie, Produs, Vnztor. Deci schema stea are urmtoarele caracteristici: tabela de fapte se leag de dimensiuni prin jonciuni de egalitate; fiecare atribut din cheie primar a tabelei de fapte reprezint cheia primar a unei dimensiuni; atributele non cheie pot fi agregate. Tabelele de fapte conin numai atribute numerice; tabelele de dimensiuni sunt denormalizate.
Dimensiunea Client Dimensiunea Timp Dimensiunea Locaie Tabela de fapte Dimensiunea Vnztor

Vnzri
Dimensiunea Produs

Figura 2.9 Modelul stea Avantajele schemei stea: este simplu de construit; reflect cu exactitate modul cum neleg utilizatorii activitatea modelat; furnizeaz o performan ridicat pentru cereri analitice, prin reducerea numrului de jonciuni; permite modelarea unor structuri multidimensionale complexe; este o schem uor de neles de ctre utilizatori, deoarece datele sunt aranjate ntr-un mod uor de neles, iar relaiile ntre entiti sunt foarte clare; toi indicatorii de performan ai activitii modelate sunt stocai n tabela de fapte. Dezavantajele schemei stea: este o schem inflexibil. Adugarea unei noi dimensiuni n schem, poate duce la modificarea granulaiei tabelei de fapte; conine date redundante ce conduc la creterea riscului de inconsisten a datelor;

56

Modele de date multidimensionale pentru sisteme OLAP pentru a permite analize complexe, trebuie s includ multe tabele de agregate; are o scalabilitate limitat; face dificil jonciunea ntre tabelele de fapte. Schema fulg de zpad este o variant a schemei stea. Este rezultatul descompunerii unei dimensiuni sau a mai multor dimensiuni care au ierarhii. Relaiile de tip (m:1) ntre membrii unei dimensiuni se descompun n tabele separate formnd o ierarhie de tabele. De exemplu, dimensiunea Produs este descompus n subdimensiunile Model i Produs (figura 2.10). Schema fulg de zpad vizualizeaz structura ierarhic a dimensiunilor. Diferena esenial fa de schema stea este c dimensiunile sunt normalizate. Principala motivaie a normalizrii este spaiul de stocare. Dac ierarhiile se pstreaz n tabele separate, se consider c spaiul de stocare se reduce consistent. Totui Ralph Kimball n lucrarea sa Practical Techniques for Building Dimensional Data Warehouse(1996) ncearc s demonstreze contrariul. El afirm c eforturile de a normaliza tabelele, n scopul de a reduce spaiul de stocare, sunt inutile i consumatoare de timp. Normalizarea dimensiunilor reduce cu mai puin de 1% spaiul total de stocare, iar vizualizarea datelor este mai dificil, implicnd un numr mai mare de jonciuni ntre tabele. Muli proiectani nu consider c salvarea spaiului ar fi o cerin major n selectarea tehnicii de modelare.
Timp
sptmna client luna data regiune

Client

locaie

Locaie
Tabela de fapte fabrica

Vnzri
vnztor model

Vnztor

piaa de desfacere

produs

Produs

regiune

Figura 2.10 Modelul fulg de zpad

57

Iniiere n tehnologia OLAP-teorie i practic Avantajele schemei fulg de zpad: este mai flexibil i se pot defini cerinele utilizatorilor mult mai bine. De exemplu, cu schema stea nu se pot folosi tabele istorice pentru modificarea dimensiunilor; structura normalizat a dimensiunilor este mai uor de modificat; reduce redundana datelor; mbuntete performana operaiilor de drill down i roll up. Dezavantajele schemei fulg de zpad: este mai complex dect schema stea; scade performana la interogare, deoarece sunt folosite multe jonciuni; schema este mai dificil de neles de ctre utilizatori, fiind mai apropiat de modelul entitate-asociere. Modelele stea i fulg de zpad, precum i variantele lor au devenit o reprezentare logic bine cunoscut a structurilor de date multidimensionale, n sistemele relaionale. Selectarea unei scheme potrivite ine cont de raportul ntre costul de stocare i performana interogrii. Schema stea ofer performane mai bune la interogare, datorit unui numr mic de operaii de jonciune ntre tabela de fapte i tabelele de dimensiuni, dar costul de stocare este mai ridicat. Schema fulg de zpad implic mai multe operaii de jonciune, dar presupune o capacitate de stocare mai mic. Pentru ambele modele exist o mulime de variante. Schema stea de zpad (starflake) sau schema fulg de zpad degenerat (degenerated snowflake scheme) este o combinaie de schem stea i schem fulg de zpad, n care o parte a tabelelor de dimensiuni sunt denormalizate. Schema galaxie este o schem stea cu mai multe tabele de fapte. n schema constelaie (fact constellation scheme) exist tabele de fapte suplimentare ce stocheaz date agregate. O constelaie este o colecie de stele i const dintr-o stea central nconjurat de alte stele. Steaua central conine datele la nivel atomic, iar celelalte stele conin date agregate. Steaua central se leag de celelalte stele prin atribute dimensionale (figura 2.11).

Figura 2.11 Constelaia

58

Modele de date multidimensionale pentru sisteme OLAP

2.3 Modele orientate pe cuburi


Au existat, de asemenea, eforturi pentru a modela direct i mai natural bazele de date multidimensionale i anume modelele orientate pe cuburi.

2.3.1 Modelul lui Agrawal


Modelul de date multidimensional propus de Agrawal [AGRA97] are n vedere urmtoarele aspecte: tratarea simetric a dimensiunilor i msurilor; flexibilitatea (multiple ierarhii, agregate ad-hoc); un set minimal de operatori asemntori cu cei din algebra relaional. n modelul lui Agrawal datele sunt organizate n unul sau mai multe cuburi ndimensionale (hypercuburi). Un cub are urmtoarele componente: k dimensiuni (fiecare dimensiune are un nume Di i un domeniu de valori domi); elementele cubului sunt definite printr-o funcie 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 poziia d1,,dk a cubului C. Elementele unui cub (valorile celulelor cubului) pot fi fie {0,1} sau un n-tuplu <X1,,Xn>. Dac elementul corespunztor la E(C)(d1,..,dk) este 0 atunci acea combinaie de valori ale dimensiunilor nu exist (celule fr coninut). Valoarea 1 indic existena acelei combinaii. Un n-tuplu reprezint existena unei nregistrri cu n msuri. 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. Dimensiunile nu au structur sau ordine i elementele cubului sunt adresate prin numele lor. De exemplu, un cub pentru analiza vnzrilor poate avea urmtoarele dimensiuni : Dimensiunea Produs (D1) cu domeniul de valori dom1={p1, p2, p3, p4}; Dimensiunea Data (D2) cu domeniul de valori dom2={ian1, feb2, feb3, mar4}; Dimensiunea Furnizori (D3) cu domeniul de valori dom3={s1, s2, s3, s4}; n-tuplu este format dintr-un singur membru <vnzare>; Elementele cubului : E (C)(p1, ian1, s1) este <10> E (C)(p1, ian1, s2) este <20> E (C)(p1, ian1, s3) este <50>

59

Iniiere n tehnologia OLAP-teorie i practic E (C)(p1, ian1, s4) este <70> E (C)(p2, ian1, s1) este <15> E (C)(p2, ian1, s1) este <20> etc. Notaia < > indic c fiecare element din cub este o valoare a vnzrilor. Modelul de date pentru analiza reparaiilor este de forma : C= (D, E (C), N) unde : D={garaj, timp, vehicul} sunt dimensiunile cubului N=(costurile pieselor componente, salariile, numrul de persoane, durata reparaiei). E (C) este funcia care definete elementele cubului Modelul lui Agrawal trateaz simetric dimensiunile i msurile (de exemplu msura Vnzare se poate transforma ntr-o dimensiune). n figura 2.12 cubul multidimensional are dimensiunile: Produs, Data i Vnzare. Elementul corespunztor la data=mar 4, produs=p1 i vnzri=15 este 1. Notaia <vnzare> din figur 2.13 indic c fiecare element din cub este o valoare a vnzarilor. De exemplu, <15> este valoarea vnzarilor pentru data=mar 4 i produs=p1.
Data
Mar4 Feb3 Feb2 Ian1 15 20 P1 P2 P3 P4

Produs

Vnzare

Figura 2.12 Msura Vnzare este transformat n dimensiune Autorii definesc i un set minimal de operatori multidimensionali (push, pull, destroy, restriction, join i merge), utiliznd un cub C cu k dimensiuni (dimensiunile D1, ., Dk). Valorile dimensiunilor din modelul de date determin funcional elementele cubului. Operatorii propui pot fi combinai pentru a construi operatori OLAP cum ar fi roll up, drill down etc. Ei au o serie de propieti: sunt bine definii semantic i sunt minimali n sensul c nici unul nu poate fi exprimat n funcie de ceilali. Fiecare operator este definit pe cuburi i produce ca ieire un cub. Operatorii pot fi implementai fie ntr-un sistem relaional (limbajul SQL) sau ntr-un sistem multidimensional. De exemplu, operatorul Push (figura 2.13) este utilizat pentru a converti dimensiunile n elemente ce pot fi apoi manipulate

60

Modele de date multidimensionale pentru sisteme OLAP utiliznd o funcie felem. Acest operator este necesar pentru a permite tratarea uniform a dimensiunilor i msurilor. Are ca intrri cubul C, dimensiunile Di i ca ieire cubul C cu fiecare element (diferit de zero) extins cu valoarea dimensiunii Di corespunztoare 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 >. Operatorul Pull este invers operatorului Push i se utilizeaz pentru a converti un element ntr-o dimensiune, astfel c elementul poate fi utilizat pentru jonciune i este necesar pentru tratamentul simetric al dimensiunilor i msurilor. Operatorul Destroy terge o dimensiune D ce are domeniul format dintr-o singur valoare. Operatorul Restriction opereaz pe o dimensiune a unui cub i terge valorile cubului ce nu satisfac o condiie dat (operaia slice i dice pe un cub ). Operatorul Join realizeaz jonciunea unui cub m-dimensional C cu un cub n-dimensional C1 pe k dimensiuni numite dimensiuni de jonciune (joining dimensions) i se obine cubul Ca cu m+n-k dimensiuni. n cazul produsului cartezian, cele dou cuburi nu au nici o dimensiune de jonciune comun. Operatorul Merge este un operator de agregare.
Data
Mar4 Feb3 Feb2 Ian1 <15> <10> <Vnzri>

<20> <15> <15> <20> <10> <15> <10> <20> <25> P1 P2 P3 P4

Produs

Data
Mar4 Feb3 Feb2 <15,p1> <10,p1> <20,p1> <15,p2> <15,p3> <20,p4> <10,p2><15,p3> <Vnzri, Produs>

Ian1

.. p1 p2 p3 p4 produs

Figura 2.13 Operatorul Push

61

Iniiere n tehnologia OLAP-teorie i practic Tratarea simetric a dimensiunilor i msurilor are o influen mare n proiectarea schemei conceptuale multidimensionale. Absena ei cauzeaz reproiectarea schemei atunci cnd se dorete agregarea dup un atribut ce a fost iniial definit ca msur. Autorii consider c operatorii relaionali: proiecie, reuniune, intersecie i diferen ct i operaiile multidimensionale roll up, drill down pot fi exprimai n funcie de operatorii prezentai anterior. Modelul nu face o distincie explicit ntre structur i coninut, nu conine informaii despre structura dimensiunilor. Aceasta nseamn c toate informaiile structurale i funcionale trebuie s fie incluse n cerere. Msurile structurate ca nregistrri pot fi exprimate uor, deoarece modelul permite n-tupluri.

2.3.2 Modelul lui Cabibbo


Modelul MD propus de Cabibbo este un model de date multidimensional conceptual pentru sisteme OLAP. Cabbibo propune i un limbaj de interogare descriptiv bazat pe un calcul logic [CABB97]. n modelul MD, dimensiunile sunt categorii lingvistice ce descriu diferite moduri de prezentare i de analiz a informaiilor. Fiecare dimensiune este organizat ntr-o ierarhie de niveluri (un nivel corespunde la un domeniu de date cu o anumit granularitate). Un nivel poate avea asociate descrieri. Fie un set de nume numite niveluri. Fiecare nivel l este asociat cu un set finit de valori numit domeniu al lui l i notat cu DOM(l). O dimensiune const din: un set finit de niveluri L; o ordine parial pe nivelurile din L (cnd l1 l2 spunem c l1 rollup la l2). De exemplu, garaj regiune nseamn c nivelul garaj se va agrega la nivelul regiune. o familie de funcii roll-up. O funcie R-UP(l1l2) : DOM(l1)

DOM(l2 ) este definit pentru fiecare pereche de niveluri l1 l2. Funciile roll-up sunt o facilitate a modelului MD, ele descriu cum sunt asociate valorile diferitelor niveluri (de exemplu garajele A, B, C aparin la regiunea Bavaria). Funciile roll-up ofer un instrument puternic pentru interogarea datelor multidimensionale, ntruct ele specific modul cum trebuie agregate datele. Fiecare nivel lL este asociat cu un set de valori numit domeniu (de exemplu dom(garaj) ={A,B,C,.}). O dimensiune cu un singur nivel se numete atomic. O schem MD const din: un set finit D de dimensiuni; un set finit F de tabele de fapte (f-table) de forma f[A1:l1<d1>,.., An:ln<dn>]: lo<do>, unde f este numele tabelei, fiecare

62

Modele de date multidimensionale pentru sisteme OLAP Ai (1 i n) este un atribut al lui f i fiecare li (0 i n) este un nivel al dimensiunii di; un set finit de descrieri de nivel.

n acest context, se prezint i o metodologie de proiectare a unui model MD, avnd ca punct de pornire modelul entitate-asociere al bazei de date operaionale surs. Modelul conceptual MD poate fi implementat logic fie folosind tabele relaionale n form de schem stea (sisteme ROLAP) sau folosind matrici multidimensionale (sisteme MOLAP). Se consider pentru exemplificare o firm de telecomunicaii interesat n analiza informaiilor ei operaionale. Datele despre apelurile telefonice pot fi organizate de a lungul dimensiunilor Timp i Client. Ierarhiile corespunztoare sunt prezentate n figura 2.14. Dimensiunea Client conine nivelurile: numr_telefon, zona (zona geografic n care telefonul este localizat, identificat de codul zonei) i contract. Dimensiunea Timp conine nivelurile: moment curent, zi, ora, luna. Se definesc urmtoarele tabele de fapte (f-table): Tariful (reprezint costul pentru un minut de conversaie ntre un client dintr-o zon de apel i un client dintr-o zon apelat), Durata (asociaz fiecrui apel durata n secunde), Factura_lunar (o tabela de fapte derivat ce conine ncasrile dup numr telefon i lun). Propietarul este o descriere de nivel ce asociaz numele unui client cu un numr de telefon.

luna zona contract

numeric

ziua

Ora Numr_telefon ir de caractere

Moment

Timp

Client

Tarif [ora: ora, contract: contract, zona de apel: zona, zona apelat: zona] : numeric Durata [apel: numr telefon, apelatul: numr telefon, momentul_nceperii_convorbirii: moment] : numeric Factura_lunar [clientul::numr _telefon, perioada: luna] : numeric Propietar (numr_ telefon) : ir

Figura 2.14 Un exemplu de schema MD

63

Iniiere n tehnologia OLAP-teorie i practic Modelul MD a fost definit n principal, pentru dezvoltarea unei metodologii de proiectare a bazelor de date multidimensionale. Ierarhiile dimensionale sunt definite explicit n modelul MD, n timp ce n modelul lui Agrawal ele sunt implementate folosind un operator special al limbajului de interogare (operatorul merge). De asemenea, modelul lui Agrawal este orientat n principal, spre o implementare SQL, n baze de date relaionale. Este posibil definirea ierarhiilor multiple ntr-o dimensiune, deoarece relaia definete numai o ordine parial pe nivelurile dimensiunii. Limbajul de interogare descriptiv este un calcul logic (conine operaii logice (, , ), cuantificatori ( i ) i funcii definite de utilizatori). n [CABB98b] se extinde modelul multidimensional pentru a permite i msuri structurate ca nregistrare i se definete un limbaj de interogare algebric. Algebra utilizeaz 10 operatori, muli sunt similari cu operatorii relaionali (jonciunea, produsul cartezian, selecia etc).

2.3.3 Modelul lui Blaschka


Tehnica de modelare ME/R propus de autori [BLAS00] pentru proiectarea schemei multidimensionale este o extensie a tehnicii entitate-asociere. Notaiile grafice utilizate sunt specificate n figura 2.15. Se definesc urmtoarele concepte: o entitate special : nivel al dimensiunii (dimension level); o relaie n-ar numit relaia fapt (fact relationship); o relaie binar numit relaia de clasificare (classification relationship). Pentru a modela structura datelor se introduce o relaie binar special: relaia de clasificare. Ea asociaz un nivel A cu un nivel superior B (de exemplu nivelul ora este clasificat n funcie de nivelul ar). Graficul de clasificare este un graf aciclic definit astfel: RG=(E,V) unde : E este un set finit al tuturor nivelurilor e1,,ek i V={(ei, ej) | i#j 1 i, j k ei este clasificat n funcie de ej}. Numele relaiei de clasificare descrie criteriul de clasificare (de exemplu, locuiete n pentru relaia de clasificare ce conecteaz nivelul client i nivelul regiune geografic). Relaia fapt asociaz n niveluri. O astfel de relaie reprezint un fapt (de exemplu repararea mainilor) de dimensionalitate n. Nivelurile asociate direct cu faptul sunt numite niveluri dimensionale atomice (atomic dimension levels).

64

Modele de date multidimensionale pentru sisteme OLAP

Nivel

Fapt

Relaie de clasificare

Figura 2.15 Notaii grafice n tehnica ME/R Atributele unei relaii fapt modeleaz msurile faptului (date cantitative) n timp ce nivelurile asociate prin aceasta relaie, modeleaz datele calitative. Autorii propun ca exemplu o fabric de automobile, care dorete s analizeze cazurile de reparaii pentru mainile pe care le produc. Se consider c o reparaie este descris n funcie de urmtoarele dimensiuni: Vehicul (vehiculul ce trebuie reparat), Ziua (data reparaiei), Garaj (garajul ce execut reparaia) i Clientul (propietatul mainii reparate). Pentru o reparaie sunt relevante urmtoarele informaii: costurile pieselor componente, salariile, costurile totale, numrul de persoane implicate i durata reparaiei. Pentru a construi graful ME/R trebuie respectate urmtoarele condiii : nu exist noduri izolate, fiecare arc conecteaz dou noduri (fiecare nod este fie surs sau destinaie la cel puin un arc). Sunt patru tipuri de arce : relaia ntre un nivel i un atribut, relaia ntre un fapt i un atribut, relaia de clasificare ntre dou niveluri i relaia este dimensiune a ntre un fapt i nivelurile corespunztoare; nu se poate conecta un fapt cu un nivel printr-o relaie de clasificare; sunt trei tipuri de noduri: nivel, fapt i atribut. Dou noduri atribut nu pot fi conectate; un graf ME/R const minim dintr-un nod fapt i un nod nivel conectat printr-un arc este dimensiune a. La orice nod se ajunge plecnd de la nodul fapt printr-o secven de noduri i arce; se evit ciclurile n ierarhiile de clasificare (figura 2.16); Autorii propun, de asemenea, urmtorul set de operaii: inserare nivel (se creeaz un nivel izolat). Relaiile de clasificare pentru acest nou nivel trebuie adugate separat; tergerea unui nivel (tergerea unui nivel existent dar izolat). Instanele nivelului sunt terse automat; actualizarea unui atribut (crearea un nou atribut fr ataarea lui la un nivel sau fapt, tergerea unui atribut existent dar deconectat, conectarea sau

65

Iniiere n tehnologia OLAP-teorie i practic deconectarea unui atribut la un nivel, conectarea sau deconectarea unui atribut la un fapt); actualizarea unei relaii de clasificare (inserarea unei relaii de clasificare ntre dou niveluri existente, tergerea unei relaii existente ntre dou niveluri); actualizarea unui fapt (inserarea unui fapt fr ataarea nivelurilor dimensionale la el, tergerea unui fapt existent dar izolat mpreun cu instanele lui, inserarea sau tergerea unui nivel dimensional).
district

garaj

regiune

Figura 2.16 Ciclu ntr-o ierarhie de clasificare Un model MD (schema MD) este 6-tuplu <F, L, A, gran, class, attr> unde: FZ* este un set finit de m fapte {f1,,fm} unde fiZ* 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 ataat dom(ai ) i LFA=; gran este o funcie ce asociaz un set de niveluri cu o colecie de fapte. Aceste niveluri gran(f) sunt numite niveluri de baz ale coleciei de fapte F; class LL este o relaie definit pe niveluri ; attr: AFL este o funcie ce asociaz un atribut la o colecie de fapte (n acest caz se numete msur), la un nivel (n acest caz se numete atribut al nivelului); Se constat c nu s-a definit o construcie pentru noiunea de dimensiune, deoarece exist nivelurile i relaiile de clasificare, ambele construcii furnizeaz informaiile necesare pentru o dimensiune. Se pot defini msuri structurate ca nregistrare ntruct funcia attr poate asocia mai multe atribute la o colecie de fapte. De exemplu, modelul multidimensional pentru analiza activitii de reparaii are urmtoarele componente (figura 2.17): colecie 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, vrsta, venit};

66

Modele de date multidimensionale pentru sisteme OLAP funcia: gran(reparatie_vehicul) ={client, vehicul, zi, garaj} asociaz colecia de fapte F cu nivelurile de baz ale dimensiunilor; relaiile ntre niveluri: class={(zi, luna), (luna, an), (garaj, tip_garaj), (garaj, geog.regiune), (geog.regiune, tara), (client, geog.regiune), (vehicul, model), (model, marca)}; funciile: attr(costc)=reparatie_vehicul, attr(sal)=reparatie_vehicul; attr(costt)=reparatie_vehicul, attr (nrpers)=reparatie_vehicul; attr(durata)=reparatie_vehicul, attr(vrsta)=client, attr(venit)=client. Domeniul unui nivel lL este un set finit de membrii dimensionali (dimension members): dom(l)={m1,.,mq}. Pentru a reprezenta structura instanelor unei colecii de fapte se definete domeniul i co-domeniul. Domeniul unei colecii de fapte este produsul cartezian al tuturor nivelurilor de baz (coordonatele celulei cubului), iar co-domeniul este produsul cartezian al msurilor acestei colecii de fapte. Instana unui model MD = <F, L, A, gran, class, attr> este un triplet: = < R - UP, C, AV > unde : R-UP ={r-up} este un set finit de funcii r-up: dom(nivel1) dom(nivel2) pentru (nivel1, nivel2)class; C={cf1,..cfm}, fiF 1 i m este un set finit de funcii cf : dom(f)codom(f), fF. Funcia C asociaz coordonatele cubului la msuri definind astfel coninutul cubului; AV={av1,.,avr} este un set finit de funcii care conine o funcie ava pentru fiecare atribut a unde attr(a)L (atributul a este un atribut al nivelului). Un exemplu de instan a modelului MD din figura 2.17 este: ex este <R-UPex, Cex, AVex> dac: dom (client)={Popescu, Ionescu} dom (garaj)={Deva, Cluj, Iasi} dom (geog.regiune)={Vest, Est} dom (zi)={01/01/97, 01/02/97} dom (vehicul)={B-07-NID, B-08-JAD} Domeniul i co-domeniul coleciei de fapte reparaie_vehicul sunt: dom (reparaie_vehicul)=dom (client)dom (garaj)dom (zi)dom (vehicul) codom (reparaie_vehicul)=dom(costc) dom (sal) dom (costt) dom (nrpers) dom (durata) R-UPex={r-upgarajgeogr.regiune, r-upgarajtip_garaj, r-upgeogr.regiunetara, rupclientgeogr.regiune, r-upvehiculmodel, r-upmodelmarca, r-upziluna, r-uplunaan} unde r-uplevel1level2 este o funcie ce asociaz membrii nivelului 1 la membrii nivelului superior 2. De exemplu: r-up garajgeogr.regiune(Cluj)=Vest.

67

Iniiere n tehnologia OLAP-teorie i practic Cex={creparaie_vehicul} cu Creparaie_vehicul: dom (reparaie_vehicul)codom (reparaie_vehicul) De exemplu: creparaie_vehicul (Popescu, Cluj, 01/01/97, B-07-NID)= ($500, $200, $700, 2, 8) AVex={avvrsta, avvenit} cu avvrsta : dom (client)dom (vrsta) i avvenit: dom (client)dom (venit) De exemplu: avvrsta(Popescu)=70; avvenit(Popescu)=50000$ O schem MD consistent =<F, L, A, gran, class, attr> trebuie s respecte urmtoarele restricii: fiecare colecie de fapte trebuie s fie asociat la cel puin un nivel; fiecare nivel trebuie s fac parte dintr-o ierarhie de clasificare sau s fie asociat la o colecie de fapte (niveluri izolate nu exist); fiecare atribut trebuie s fie asociat fie la o colecie de fapte sau la un nivel dimensional; nu se permit ierarhii dimensionale izolate (nu sunt conectate la o colecie de fapte).

Costc sal costt

an

luna Tip garaj

ziua nrpers durata marca model masina

garaj

regiune

tara

vrsta venit

client costc=costuri componente sal=salarii costt=costuri totale nrpers=numr persoane

Figura 2.17 Reprezentarea grafic a unui model MD

68

Modele de date multidimensionale pentru sisteme OLAP

2.4 Evaluarea modelelor multidimensionale


Un model de date [ELMA94, BATI92] este un set de concepte ce pot fi utilizate pentru a descrie structura unei baze de date. Modele de date pot fi clasificate n: modele conceptuale (high-level models): ofer concepte ce sunt apropiate de modul n care utilizatorii percep datele i sunt independente de implementare; modele logice: ofer concepte ce pot fi nelese de utilizatorii finali i depind de tipul de SGBD utilizat . modele fizice (low-level models): ofer concepte ce descriu detalii despre cum sunt stocate fizic datele (descrierea datelor pe suport fizic), depinznd de SGBD-ul utilizat ; De exemplu, ntr-un mediu tranzacional, proiectarea la nivel conceptual poate utiliza modelul entitate-asociere sau limbajul de definire obiectual (Object Definition Language-ODL) pentru a reprezenta ideile utilizatorilor, la nivel logic se poate utiliza modelul relaional, ierarhic sau reea i la nivel fizic implementarea depinde de SGBD-ul folosit (de exemplu Oracle, Informix, ObjectStore etc) (figura 2.18). ntr-o manier asemntoare, ntr-un mediu OLAP (figura 2.18) se poate folosi modelul de date multidimensional la nivel conceptual i n funcie de arhitectura aleas: relaional-OLAP (ROLAP), orientat-obiect-OLAP (O3LAP) sau multidimensional (MOLAP) se poate folosi un model diferit la nivel logic i un SGBD diferit pentru implementare. n afar de cele trei modele menionate mai sus, exist un set de modele (la nivel formal) al cror concepte nu pot fi utilizate n etapa de proiectare a bazei de date, dar ofer un cadru teoretic i includ o algebr sau calcul. De exemplu, n mediu tranzacional, un model formal ar putea fi algebra relaional. Conform cu aceast clasificare, modelele multidimensionale pot fi: modele multidimensionale conceptuale, modele multidimensionale logice, modele multidimensionale fizice i modele multidimensionale formale.
Mediu tranzacional ODL idei E/R relaii SGBDR idei MDDM SGBDOO Mediu OLAP SGBDMD clase relaii SGBDOO SGBDR

Figura 2.18 Procesul de modelare a datelor n mediu tranzacional i mediu OLAP

69

Iniiere n tehnologia OLAP-teorie i practic Urmtoarele modele sunt considerate modele conceptuale: modelul lui Lehner [LEHN98], modelul lui Cabibbo i Torlone [CABB98], modelul lui Golfarelli [GOLF98], modelul lui Blaschka [BLAS00], modelul StarER [TRYF99] i modelul MAC [TSOI01]. Aceste modele ncearc s reprezinte modul cum utilizatorii percep un cub multidimensional, fr s acorde o atenie deosebit formalismului. Modelul StarER [TRYF99] este un model de date bazat pe modelul entitate-asociere care satisface urmtoarele cerine: modeleaz faptele i propietile lor, asociaz dimensiunile temporale la fapte, modeleaz obiecte, propietile lor i asocierile dintre ele, modeleaz asocierile ntre obiecte i fapte. Elementele constructive ale modelului sunt : faptele, entitile, asocierile ntre entiti i fapte (1:1, 1:m, n:m) i atributele (propieti statice ale entitilor, asocierilor sau faptelor). Urmtoarele modele sunt considerate modele logice: modelul lui Kimball [KIMB96], modelul lui Mangisengi i Wagner [MANG99], modelul lui Moody i Kortink [MOOD00] i modelul lui Teste [TEST00]. n [KIMB96] se definete schema stea (star join schema) ca fiind compus dintr-o tabel de fapte central, de dimensiuni mari i un set de tabele de dimensiuni mai mici. n [MANG99] se definete conceptul de relaii imbricate (nested relations), relaii care nu sunt n forma normal unu. O relaie imbricat este o relaie ale crui atribute pot fi alte relaii. Prin relaii imbricate se pot specifica nivelurile de detaliu diferite ale msurilor. n [MOOD00] se prezint o metodologie de proiectare a modelelor multidimensionale plecnd de la modelele entitate-asociere. Schemele multidimensionale propuse sunt caracterizate de niveluri diferite de denormalizare, n fiecare tabel de fapte sau tabel de dimensiuni. Autorii prezint urmtoarele tipuri de scheme multidimensionale: schema flat conine un numr minim de tabele de fapte i nici o tabel de dimensiuni, deoarece sunt denormalizate i toate informaiile sunt stocate n tabele de fapte. Toate jonciunile sunt antecalculate; schema cu etaje (terraced) conine numai tabele de fapte i nici o tabel de dimensiuni. Aceast schem antecalculeaz numai jonciunile stea (care implic o tabel de fapte i o tabel de dimensiuni); schema stea conine tabele de fapte i tabele de dimensiuni. Ierarhiile nu sunt prezentate n mod explicit; schema constelaie (constellation); schema galaxie (galaxy); schema fulg de zpad este o schem stea normalizat; schema stea cluster (star cluster) este o schem fulg de zpad n care tabelele de dimensiuni, ce nu au ierarhii multiple, sunt compuse ntr-o singur tabel de dimensiuni.

70

Modele de date multidimensionale pentru sisteme OLAP La nivel formal, s-au identificat urmtoarele modele: modelul lui Agrawal [AGRA97], modelul lui Li i Wang [LIWA96], modelul lui Gyssens [GYSS97], modelul lui Vassiliadis [VASS98] i modelul lui Guazzo [GUAZ00]. n [AGRA97] se prezint unul din primele modele multidimensionale i probabil unul de referin. Principalele caracteristici ale acestui model sunt: tratamentul simetric al msurilor i dimensiunilor, un set minim de operatori, care pot fi prezentai i n limbajul SQL i posibilitatea de a defini ierarhii multiple ntr-o dimensiune. Acest model nu ofer prea multe elemente conceptuale pentru a modela o schem conceptual multidimensional. n [GYSS97] modelul permite cereri ad-hoc, gruparea i agregarea seturilor de date. Se propune, de asemenea, o algebr asemntoare cu algebra relaional. Operatorii fold i unfold permit conversia msurilor n atribute dimensionale i invers. n [VASS99] i [VASS00] se descrie un alt model formal pentru date multidimensionale, care poate fi implementat n arhitectura ROLAP i MOLAP. La nivel fizic, se pune accentul mai mult pe tehnicile de stocare utilizate, specifice SGBD-ului i mai puin pe definirea unui model de date. n tabelul 2.2 se prezint o sintez a clasificrii modelelor multidimensionale pe cele trei niveluri: conceptual, logic i formal. Se constat c modelele conceptuale ofer un set mai bogat de construcii semantice, n scopul de a captura ideile utilizatorilor. Se observ, de asemenea, c cele mai recente modele folosesc mai multe semantici. Aceasta poate fi interpretat ca o tendin a mbogirii semantice a modelelor multidimensionale. Tabelul 2.2 Analiz comparativ a modelelor multidimensionale Modele extensii ale Modele orientate pe cub modelului relaional StarER, Lehner, Cabibbo, Golfarelli, Blaschka, MAC Kimball, Teste Teste, Li i Wang, Gyssens, Cabibbo, Agrawal, Vassiliadis, Guazzo

Nivelul conceptual logic formal

n [BLAS99] Carsten Sapia prezint un set de cerine pe care ar trebui s le aib un model de date multidimensional i limbajul lui de interogare. Aceste cerine sunt derivate din principiile generale de proiectare ale sistemelor informatice ce au utilizat modelul relaional i de la caracteristicile aplicaiilor OLAP dezvoltate: Principii generale de proiectare. Cerinele generale pentru selectarea unui model de date formal, ce poate servi ca un fundament pentru sistemele de baze de date multidimensionale, sunt similare cu acelea ce au determinat succesul modelului relaional i anume: un model independent de implementare. Modelul formal trebuie s fie pur conceptual, s nu conin vreun detaliu de implementare. Aceast cerin este important n special, pentru sistemele ROLAP care implementeaz multidimensionalitatea prin maparea modelului multidimensional logic la

71

Iniiere n tehnologia OLAP-teorie i practic un model relaional. n acest caz, nivelul relaional trebuie s fie considerat ca structura fizic pentru stocarea datelor. separarea structurii de date de coninut. Formalismul trebuie s permit definiia separat a structurii de date (cubul multidimensional i dimensiunile lui) i a coninutului (valorile din celule). limbaj de interogare declarativ. Analog cu limbajul SQL, limbajul de interogare multidimensional (calcul logic sau algebr) trebuie s fie declarativ, pentru a permite optimizarea cererii i independena datelor. Pe lng aceste cerine generale, aplicaiile OLAP au o serie de cerine speciale ce nu se aplic la alte domenii de aplicaii pentru analiza multidimensional. Aceste cerine sunt: Dimensiuni structurate complex. Dimensiunile ofer informaii de context despre datele ce sunt analizate. Pentru a prezenta aceste cerine, autorii utilizeaz un exemplu. O firm de maini dorete s analizeze reparaiile de maini pentru a mbunti produsele ei, s defineasc noi politici de garanie i s creasc calitatea garajelor. Subiectul de analiz este reparaia mainii. Dimensiunile acestei aplicaii sunt: maina ce este reparat (de exemplu maina lui Ionescu), garajul ce face reparaia i ziua cnd se execut reparaia (de exemplu 27 Iunie). Pentru aplicaiile OLAP, din perspectiva utilizatorului OLAP, elementele (respectiv instanele) unei dimensiuni (membrii dimensiunii) nu sunt ordonate linear (de exemplu garajele). O excepie de la aceast regul este dimensiunea Timp ce posed o ordine motenit. Pentru a structura o dimensiune sunt utilizate ierarhiile. Fiecare nivel ierarhic conine un set distinct de membri. Un nivel L1 al ierarhiei se poate agrega (roll-up) la alt nivel L2 . Semantica acestei relaii este c nivelul L2 reprezint o clasificare (sau abstractizare) a conceptelor lui L1. Pentru a descrie o ierarhie, este necesar a modela structura unui nivel (level structure) i a determina corespondena ntre elementele nivelului inferior i elementele nivelului superior (structura membru/member structure). Ambele structuri ale unei dimensiuni pot fi vizualizate folosind grafice, unde nivelurile/membrii apar ca noduri i relaiile de agregare ca arce. De exemplu, garajele pot fi clasificate dup regiunea geografic (de exemplu Bavaria) sau dup tipul de garaj (de exemplu cu contract sau independent). n terminologia OLAP, se spune ca nivelul ierarhic garaj roll up la nivelurile regiune geografic i tip de garaj. Logic se definesc dou ierarhii distincte pe dimensiunea Garaj. Un alt mod de structurare a dimensiunilor, din punctul de vedere al utilizatorului, este utilizarea atributelor dimensionale. Aceste atribute descriu membrii dimensiunii, dar nu definesc ierarhii (de exemplu numele i adresa propietarului actual al unei maini). Nivelurile ierarhiilor pot avea diferite atribute dimensionale. Ierarhiile i atributele ce structureaz dimensiunile sunt elementele componente ale schemei conceptuale a bazei de date. Msuri complexe. Coninutul unei celule a cubului multidimensional poate fi, de asemenea, structurat ntr-un mod complex. Fiecare celul poate conine o serie de msuri ce formeaz o structur tip nregistrare. Aplicaiile OLAP adesea conin un volum mare de msuri derivate (msuri ce nu sunt atomice, n sensul c ele pot fi calculate de la alte msuri atomice sau derivate). n exemplu prezentat, sunt definite urmtoarele msuri: salariul, costul pieselor componente, costul total, durata de reparaie i numrul de persoane implicate ntr-o reparaie. Costul total este o msur derivat, se calculeaz din costurile pieselor

72

Modele de date multidimensionale pentru sisteme OLAP componente i salarii. Conceptul de msuri derivate este similar cu conceptul de viziune din sistemele relaionale. Astfel, definiia msurilor derivate (formula de calcul) ar trebui s fie o parte a schemei conceptuale a bazei de date. Msurile atomice i cele derivate trebuie tratate egal de limbajul de interogare. De asemenea, aditivitatea unei msuri de a lungul unei dimensiuni ar trebui s fie exprimat n modelul conceptual. Tipuri de cereri. Cererile multidimensionale selecteaz hiperplane (adesea dou dimensiuni) din spaiul multidimensional. Pentru a reduce dimensionalitatea cubului rezultat pot fi formulate predicate pe nivelurile dimensiunilor (de exemplu an=1997). Pentru fiecare dimensiune se poate stabili un nivel de granulaie printrun predicat de restricie. Acesta definete implicit operaiile de agregare necesare. Restriciile pot fi formulate utiliznd, de asemenea, msuri n predicat (de exemplu numrul de persoane>3). Un limbaj de interogare trebuie s permit, de asemenea, integrarea funciilor definite de utilizator, precum i operaii de navigare prin ierarhiile dimensiunilor. n tabelul 2.3. se prezint o evaluare a modelelor de date multidimensionale n funcie de aceste criterii. n [VASS99], Vassiliadis propune un alt set de criterii de evaluare a modelelor multidimensionale i anume: modelarea spaiului multidimensional sub form de cuburi sau tabele (notate cu C sau T), modelarea ierarhiilor, caracterul limbajului de interogare (procedural, declarativ, vizual) i arhitectura utilizat pentru implementare (ROLAP i/ sau MOLAP). n tabelul 2.4. se prezint o evaluare a modelelor multidimensionale n funcie de aceste criterii.

73

Iniiere n tehnologia OLAP-teorie i practic Tabelul 2.3


Evaluarea modelelor multidimensionale conform cerinelor prezentate n [BLAS99]
Separarea explicit structura/ coninut Nu Da Da Da Nu Da Da Da Da Da Da Modelarea dimensiunilor complexe Formalism pentru niveluri Da Da Da Da Da Da Nu Nu Nu Da Da Atribute dimen sio nale Nu Da Da Nu Nu Da Da Nu Da Da Da Simetrie msuri i membri Da Nu Da Da Da Nu Nu Da Da Da Da Modelarea msurilor complexe Formalism pentru limbaj de interogare Funcii de agreg. definite de utiliz. Da Da Da Da Nu Nu Nu se specifica Nu Nu Nu Nu

Model

Nivel ierarhic Nu Da Da Da Da Da Da Da Da Da Da

Membri

tip nreg Nu Nu Da Nu Nu Nu Da Nu Nu Da Nu

Deriv

Adititiv

Tip

Ierarhii ad-hoc Da Da Da Da Nu Nu Da Nu Nu Nu Nu

Agrawal Li/Wang Gyssens Cabbibo Vassiliadis Lehner Golfarelli MAC StarER Blaschka Teste

Nu Da Da Da Da Da Da Da Da Da Da

Nu Nu Nu Nu Nu Nu Da Da Da Da Nu

Nu Nu Nu Nu Nu Pe msura Da Nu Nu Nu Nu

algebra algebra algebra si calcul algebra si calcul algebra algebra algebra Nu Nu algebra algebra

Tabelul 2.4
Evalurea modelelor de date multidimensionale conform cerinelor prezentate n [VASS99]
Spaiu multidimensional Cuburi Ierarhii T T T T T C C C C C C C C Implicit da da da da da da da da da da Limbajul de interogare Procedural algebra algebra algebra algebra algebra algebra algebra algebr algebra algebra Declarativ extensie SQL calcul calcul Vizual da da Arhitectura implementat ROLAP MOLAP da da da da da da da da da da da da da da implicit da da da da

Modele Orientat pe relaional Gray Li/Wang Gyssens Teste StarER Agrawal Cabibbo Vassiliadis Lehner Golfarelli MAC Guazzo Blaschka

Orientat pe cub

74

Modele de date multidimensionale pentru sisteme OLAP La ora actual exist un numr mare de modele de date multidimensionale propuse. Cele mai multe dintre ele sunt modele de date logice i numai cteva pot fi considerate pur conceptuale. Fiecare prezint o viziune proprie a cerinelor analizei multidimensionale, o terminologie i un formalism propriu. Modelele de date multidimensionale s-au dezvoltat pe dou direcii i anume: modele extensii ale modelului relaional i modele orientate pe cub. Pentru a descrie n detaliu modelele de date multidimensionale i a putea fi nelese, se utilizeaz o serie de concepte de baz i anume: cubul n-dimensional, multicubul, dimensiunile, ierarhiile i msurile. Combinaia de multiple dimensiuni i multiple niveluri pe dimensiune constituie esena unui cub n-dimensional. Dimensiunile furnizeaz informaii descriptive despre fiecare indicator, conin n general date statice i sunt eseniale 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 msur este un indicator de performan prin care se poate analiza performana activitii modelate. Valorile unui indicator se modific continuu. Datele multidimensionale sunt mprtiate i celulele de date nu sunt distribuite n mod egal n spaiul multidimensional. Proiectanii de instrumente OLAP au adoptat o varietate de strategii pentru a trata fenomenul de mprtiere dar i gruparea datelor. Cuvinte cheie Cub n-dimensional, dimensiune, structur multicub, ierarhie, msur, mprtierea datelor, model multidimensional conceptual, model multidimensionl logic, schema stea, schema fulg de zpad, modele de date OLAP extensii ale modelului relaional, modele orientate pe cuburi.

Rezumat

75

Capitolul 3 Arhitectura sistemelor OLAP


Sistemele OLAP permit analitilor i managerilor s mbunteasc performanele 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 informaiile din afaceri. Dar stocarea acestor volume mari de informaii multidimensionale, ntr-un mod practic pe calculator, este departe de a fi uor. Datele multidimensionale nu trebuie s fie numai stocate ci trebuie s fie vizualizate, actualizate i folosite pentru calculul altor rezultate, preferabil n mai puin de cinci secunde. Modul cum sunt stocate va afecta performana i funcionalitatea la fiecare din celelalte cerine. Din acest motiv, instrumentele OLAP trebuie s ofere un rspuns rapid, indiferent de volumul de date ce trebuie utilizat pentru o simpl interogare. Timpul de rspuns pentru o cerere ar trebui s depind de numrul de rezultate afiate pe ecran i nu de dimensiunea bazei de date. n practic, cele mai multe aplicaii OLAP sunt foarte mprtiate. n general mai puin de o celul dintr-o mie de celule are date. Deoarece aplicaiile OLAP sunt de fapt sisteme suport de decizie interactive, este important ca ele s rmn rapide, chiar dac baza de date este mare i mprtiat. Se urmrete s se consume mai puin spaiu fizic pentru stocarea informaiilor lips sau a indecilor. Multe soluii exist, fiecare cu avantaje i dezavantaje. Factorii ce determin alegerea unei soluii sunt : Volumul de date curente stocat. Dac volumul este relativ mic, o stocare n RAM ar fi cea mai bun soluie; Gradul de mprtiere a datelor. Dac datele sunt foarte mprtiate, poate fi necesar o indexare mai complex i compresia datelor, care vor face instrumentul mai lent; Frecvena de actualizare a datelor i modul cum se face actualizarea (n loturi sau celule individuale); Numrul de utilizatori; Tipul arhitecturii client/server (unde are loc procesarea multidimensional); Cantitatea de memorie real i virtual valabil. Aceasta va determina cte date active trebuie pstrate n memorie;

76

Arhitectura sistemelor OLAP Performana discului i a microprocesorului; Frecvena de modificare a dimensiunilor bazei de date etc. innd cont de aceti factori, proiectanii de instrumente OLAP selecteaz tehnicile pe care le vor utiliza pentru a stoca i gestiona datele multidimensionale, pentru aceste aplicaii. Astfel, nici un instrument nu este optim pentru orice aplicaie OLAP. Toate instrumentele folosesc o combinaie de tehnici. Prima decizie ce trebuie luat este de a stabili unde sunt stocate datele din model, cnd sunt procesate i accesate. n ultimii ani, un numr mare de instrumente OLAP permit stocarea datelor att n baze de date relaionale ct i multidimensionale. Astfel, modul de stocare a datelor a devenit un criteriu de clasificare a sistemelor OLAP i anume n: sisteme ROLAP, sisteme MOLAP i sisteme HOLAP. n acest capitol, se vor prezenta comparativ aceste sisteme. Se va pune accentul pe avantajele i dezavantajele lor, precum i pe tipurile de aplicaii pentru care sunt destinate. n finalul capitolului, se prezint comparativ tipurile de arhitecturi specifice sistemelor OLAP.

3.1 Sisteme ROLAP


n ultimii ani, un numr mare de instrumente OLAP permit stocarea datelor multidimensionale n baze de date relaionale (depozite de date). Chiar dac o aplicaie OLAP stocheaz toate datele sale ntr-o baz de date relaional, totui ea va lucra separat, pe o copie separat a datelor (depozite de date/centre de date), nu pe baza de date tranzacional. Aceasta permite s fie structurat optim pentru OLAP, mai bine dect pentru alte aplicaii. Datele multidimensionale pot fi stocate n depozite de date/centre de date, utiliznd schema stea sau fulg de zpad. Problema este de a oferi acces rapid i flexibilitate n manipularea multidimensional. Totui tabela de fapte este un mod ineficient de a stoca volume mari de date. Dac sunt multe variabile, exist posibilitatea de a nu le putea stoca pe toate ntr-o singur tabel de fapte (gradul de mprtiere poate diferi mult ntre grupurile de variabile). Datele pot fi ncrcate din multiple surse, astfel actualizrile unei singure tabele de fapte foarte mare sunt ineficiente. De aceea, n aplicaiile complexe, tabela de fapte este partiionat n grupuri de variabile dup gradul de mprtiere, stabilindu-se, de asemenea, dimensiunile corespunztoare i sursele de date. n aplicaiile OLAP complexe pot exista 10..20 de tabele de fapte. Pentru o bun performan la interogare, unele agregri trebuie antecalculate i stocate n tabele de agregate. n aplicaiile complexe pot exista mii de tabele de agregate. n figura 3.1, este prezentat arhitectura unui sistem ROLAP. Un motor ROLAP face trecerea dinamic ntre modelul de date multidimensional logic M i modelul de stocare relaional R. Tehnic vorbind acest motor implementeaz o transformare a unei cereri multidimensionale m pe modelul de date multidimensional logic M, ntr-o cerere relaional r pe modelul de stocare R. Eficiena la interogare este factorul dominat asupra performanei globale a sistemului i scalabilitii. Strategiile de optimizare sunt factorii principali n

77

Iniiere n tehnologia OLAP-teorie i practic diferenierea sistemelor ROLAP existente. Preocuparea major este gsirea celei mai eficiente reprezentri a cererii pentru un SGBDR dat i a schemei date, precum i ncrcarea dinamic echilibrat ntre SGBDR i motorul ROLAP. ntruct optimizatorul de cereri al SGBDR ar putea s nu fie capabil s aleag planul de execuie optim pentru cereri, unele instrumente (de exemplu DSS Server/Microstrategy) mpart cererea complex n mai multe subcereri, care sunt executate secvenial (SQL n mai muli pai). S considerm QR(m) setul tuturor reprezentrilor relaionale ale cererii multidimensionale m pentru modelul relaional R (incluznd toate variantele n mai muli pai). Pentru fiecare cerere, motorul ROLAP trebuie s aleag o reprezentare optim pe baza unui criteriu (de exemplu performana cererii). Unele operaii multidimensionale nu pot fi exprimate uor folosind limbajul SQL. Este necesar pentru motorul ROLAP s implementeze aceste operaii folosind structuri de date multidimensionale. Aceasta complic problema de optimizare prin extinderea spaiului de cutare QR(m). ncrcarea echilibrat ntre serverul de baz de date i motorul ROLAP este un rezultat al strategiei utilizate pentru a alege cererea optim. Evaluarea operaiilor multidimensionale de ctre motorul ROLAP poate reduce timpii de procesare a unei cereri, dar i scalabilitatea global a sistemului.
Aplicaia analitic client Clieni OLAP
Interfaa multidimensional optimizarea cerererii multidimensionale generarea cererii relaionale procesarea multidimensional

metadate

Motor ROLAP
transformare

SQL interfaa relaional

SGBDR

Figura 3.1 Arhitectura unui sistem ROLAP Factorii ce influeneaz decizia de optimizare pot fi mprii n statici i dinamici (ce pot fi evaluai numai la momentul execuiei). Factorii statici sunt: natura operaiei multidimensionale, complexitatea operaiei executate de motorul

78

Arhitectura sistemelor OLAP ROLAP fa de complexitatea implementrii relaionale. Factorii dinamici includ caracteristicile de ncrcare ale serverului de baz de date i ale motorului ROLAP, volumul datelor curente ce trebuie s fie transferate de la sistemul relaional la motorul ROLAP. De exemplu, Decision Suite/Microstrategy permite administratorului s determine locaia procesrii prin metadate. Alte probleme ale instrumentelor ROLAP sunt metamodelele (pentru o schem stea sau fulg de zpad metamodelul este foarte important), seturile de funcii complexe etc. Limbajul SQL standard nu permite operaii multidimensionale. Specialitii ofer trei soluii pentru a aduga funcionalitate multidimensional la datele stocate n tabelele SQL: integrarea procesrii multidimensionale n sistemul de gestiune a bazei de date relaionale, fie prin extinderea limbajului SQL sau prin adugarea funcionalitii multidimensionale n nucleul SGBD-ului; executarea n mai muli pai a comenzilor SQL (multipass SQL). Instrumentul OLAP realizeaz o serie de comenzi SELECT, n care ieirile comenzilor anterioare sunt stocate n tabele temporale, care sunt apoi utilizate de comenzile urmtoare; ncrcarea datelor relevante din tabelele corespunztoare pe un server de aplicaie intermediar, unde este realizat procesarea multidimensional. Datorit modului complicat n care datele sunt stocate pe disc, instrumentele OLAP ce folosesc baze de date relaionale permit numai citirea datelor. Alte instrumente trebuie s fie utilizate pentru actualizarea datelor de baz i a tabelele de agregate. Aceste instrumente ROLAP nu pot fi folosite pentru analize de tip what-if. n concluzie, stocarea datelor multidimensionale se face ntr-o baz de date relaional atunci cnd: Volumul de date este prea mare pentru a fi duplicat. Datele atomice nu sunt copiate n baza de date multidimensional ci sunt stocate n baze de date relaionale surs (depozite de date/centre de date) i citite cnd este nevoie; Datele surs se modific frecvent i este mai bine de a citi n timp real dect din copii; Integrarea cu alte sisteme informatice relaionale existente; Firma are o politic de neduplicare a datelor n alte structuri de fiiere, pentru securitate sau alte motive, chiar dac aceasta conduce la aplicaii mai puin eficiente; Cteva avantaje ale sistemelor ROLAP sunt: se integreaz cu tehnologia i standardele existente; sistemele MOLAP nu permit cereri ad-hoc eficace, deoarece sunt optimizate pentru operaii multidimensionale; actualizarea sistemelor MOLAP este dificil; sistemele ROLAP sunt adecvate pentru a stoca volume mari de date, prin utilizarea procesrii paralele i a tehnologiilor de partiionare etc; sistemele MOLAP sunt limitate la 5-10 dimensiuni i sunt adecvate pentru aplicaii departamentale cu volume mici de date i dimensionalitate

79

Iniiere n tehnologia OLAP-teorie i practic limitat, iar sistemele ROLAP au o arhitectur flexibil ce ofer suport pentru o varietate mare de SSD-uri i cerine analitice (figura 3.2); volatilitatea descrie gradul la care datele i structurile de date se modific n timp. Datele cu un nivel de volatilitate sczut rmn relativ constante. De exemplu, datele despre timp au un nivel sczut de volatilitate (zilele sunt grupate ntotdeauna n luni i lunile sunt ntotdeauna grupate n ani). Datele despre produse, angajai, clieni se modific frecvent. Volatilitatea datelor afecteaz cerinele de procesare n lot ale sistemului. Ori de cte ori datele atomice se modific, datele agregate, ce au fost antecalculate, trebuie s fie recalculate. De aceea, datele volatile au un impact mai mare asupra unui sistem, care conine un volum mare de informaii agregate, dect asupra unui sistem care calculeaz valorile agregate la momentul execuiei. Att sistemele ROLAP ct i cele MOLAP sunt optime pentru aplicaii cu volatilitate sczut a datelor. Pentru aplicaiile cu volatilitate ridicat a datelor, numai sistemele ROLAP sunt optime.

Atomicitate (Gb) 1000 1 100 3 10 5 MOLAP 10 100 6 ROLAP 4 2

1000

dimensionalitate

1=SSD pentru analiza vnzrilor (activitate de comer) 4=SSD pentru analiza polielor de asigurare 2=SSD pentru analiza promoional 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 aplicaii SSD

3.2 Sisteme MOLAP


Cel mai evident mod de a stoca datele multidimensionale este ca o simpl matrice. Spaiul este rezervat pentru fiecare combinaie posibil ntre membrii dimensiunilor. n unele instrumente, numai valorile nenule sunt stocate. Numai matricile ce conin date sunt stocate fizic. Fiecare dimensiune a matricii reprezint o dimensiune a cubului. Coninutul matricii sunt msurile cubului. O astfel de matrice are multe avantaje: se identific rapid locaia oricrei celule, iar celulele pot fi actualizate fr a afecta locaia fizic a celorlalte celule. Totui stocarea datelor pe disc folosind o simpl matrice, ce reflect direct viziunea utilizatorului,

80

Arhitectura sistemelor OLAP este foarte rar eficient. Chiar i atunci cnd datele sunt stocate n memorie, este adesea necesar de a pstra datele ntr-un format mai complex dect o simpl matrice. Aceasta are legatur cu fenomenul de mprtiere i cu cerina de a modifica dimensiunile, fr s fie nevoie s se reconstruiasc din nou ntreaga matrice. n cazul stocrii pe disc a datelor mprtiate, datele sunt citite n blocuri i dac fiecare bloc are un grad de mprtiere mare, multe blocuri goale sau aproape goale vor fi stocate n memorie, iar memoria va fi utilizat de mult mai multe ori dect este necesar. Sistemele MOLAP au pus accentul pe flexibilitatea i optimizarea tehnicilor de stocare i pe conceptul de tranzacie. Sistemele MOLAP nu au nc o tehnologie pentru stocarea i gestionarea datelor unanim acceptat. Stocarea fizic a datelor multidimensionale, precum i fenomenul de mprtiere sunt preocupri majore, n domeniul bazelor de date multidimensionale. O tehnic de stocare a datelor optim ar trebui s in cont de muli factori dinamici i anume: profilul datelor i volumul lor (numrul de dimensiuni i membrii ai dimensiunilor, tipuri de date etc); fenomenul de mprtiere (n care dimensiuni sau combinaii de dimensiuni, tipul de mprtiere); frecvena de modificare n sursele de date (ct de des vor fi actualizate bazele de date multidimensionale); frecvena de modificare n datele multidimensionale; frecvena de modificare n modelul multidimensional ; accesul concurent.

Ideal un SGBD multidimensional (SGBDMD) ar trebui s aleag structura de date optim n funcie de aceti factori. n cele mai multe SGBDMD comerciale se utilizeaz o tehnic de stocare pe dou niveluri. La nivelul inferior sunt stocate toate dimensiunile dense. Nivelul superior conine dimensiunile mprtiate ca o structur index, care conine pointeri la cuburile de date dense din nivelul inferior. Unele instrumente OLAP ofer administratorului un numr foarte limitat de opiuni de optimizare. De exemplu, Arbor Essbase are o metod proprie pentru stocarea i ncrcarea datelor multidimensionale n memorie. Aceasta metod utilizeaz o structur multinivel (cu un numr arbitrar de niveluri pentru diferitele grade de mprtiere). Administratorul poate specifica dimensiunile dense i mprtiate, care construiesc cele dou niveluri. Oracle Express suport, de asemenea, o structur pe dou niveluri. Pilot Decision Support Suite (Pilot Software) suport aa numitele multicuburi. Timpul este tratat ca o dimensiune dens, iar toate celelalte dimensiunile sunt considerate mprtiate. O alt problem este transferul conceptului de tranzacie aa cum este cunoscut i acceptat n lumea relaional la SGBDMD. Puine instrumente MOLAP (de exemplu Arbor Essbase ) permit acces multiutilizator concurent att la citire ct i la scriere. Majoritatea instrumentelor MOLAP permit acces multiutilizator la citire i monoutilizator la scriere. SGBDMD blocheaz ntreaga baz de date n timpul

81

Iniiere n tehnologia OLAP-teorie i practic actualizrilor (o form foarte simpl de acces concurent). De asemenea, multe instrumente MOLAP au o noiune foarte vag a conceptului de tranzacie. Modificrile n cuburile de date pot fi executate ca adugri n cub sau n timpul analizei de tip what if. Adesea ele cer o actualizare incremental a agregatelor sau msurilor, care sunt calculate pe baz de formul. Astfel de dependene fac actualizrile mult mai complicate. Conceptul de tranzacie este legat de multe alte probleme cum ar fi: propietile ACID (atomic, consistency, isolation, durability). Pentru a realiza propietile ACID, toi termenii (n special consistena i izolarea) trebuie reanalizai. De exemplu, dependenele ntre datele de detaliu, datele agregate i msuri complic noiunea de consisten; mecanismul de blocare. Dac controlul concurenial este realizat printr-o tehnic de blocare, trebuie s fie definite modurile de blocare i nivelul la care se face blocarea. Blocarea ntregii baze de date nu este o soluie foarte potrivit. Interdependenele ntre date fac ca definirea nivelurilor de blocare s fie o problem complex; strategia de propagare a modificrilor. Datele (agregate i msuri) trebuie modificate n conformitate cu modificrile din datele de detaliu sau din modelul de date. Sunt i alte probleme importante, deja rezolvate n SGBDR, dar care sunt nerezolvate sau numai parial rezolvate n SGBDMD cum ar fi: restaurarea bazei de date, conceptul de tabel virtual etc. Avantajul sistemelor MOLAP este c ofer o viziune multidimensional direct a datelor, n timp ce sistemele ROLAP sunt o interfa multidimensional la datele relaionale. SGBDMD cer antecalcularea tuturor agregatelor posibile, astfel sunt adesea mai performante dect SGBDR tradiionale, dar mai dificil de actualizat i administrat. Deoarece, bazele de date multidimensionale folosesc acelai motor att pentru stocare ct i pentru procesarea datelor i acest motor are informaii complete despre structurile de date multidimensionale i manipulrile multidimensionale, este uor pentru instrument de a manipula datele multidimensionale i de a face calcule corecte i complexe. Totui multe baze de date multidimensionale nu ofer facilitatea de recuperare a erorilor i alte faciliti specifice bazelor de date relaionale. Cteva avantaje ale sistemelor MOLAP sunt: tabelele relaionale nu sunt potrivite pentru date multidimensionale; matricile multidimensionale permit stocarea eficient a datelor multidimensionale; limbajul SQL nu este corespunztor pentru operaii multidimensionale. Tabelul 3.1 prezint o analiz comparativ ntre sistemele ROLAP i sistemele MOLAP.

82

Arhitectura sistemelor OLAP Tabelul 3.1 Analiz comparativ ntre sistemele ROLAP i MOLAP
Criterii Spaiul de disc ocupat MOLAP/Baze de date multidimensionale mare, dac agregatele sunt antecalculate (explozia datelor derivate i fenomenul de mprtiere) ROLAP/Baze de date relaionale posibil zero, dac sunt folosite baze de date existente nemodificate (depozite de date virtuale), dar poate fi mare dac noi structuri sunt create sczut mic extrem de mare (Gb-Tb) excelent n principiu, dar poate fi limitat dac este folosit o schem complex performan moderat mare (modele multidimensionale complexe) bun adecvate pentru volatilitate ridicat foarte puternice aproape imposibil client/server pe dou sau trei niveluri, arhitectur deschis, standarde da SQL limitate da da da da

Performana la ncrcarea datelor Viteza de calcul Volumul datelor atomice Posibilitatea de acces la date de ctre alte aplicaii (integrare cu alte sisteme existente) Accesul la date Dimensionalitate Modificarea dimensiunilor Volatilitatea datelor Faciliti de administrare a SGBD-ului Uurina de a construi aplicaii de ctre utilizatorii finali Arhitectura Managementul metadatelor Limbaj de interogare Faciliti de calcul Jonciuni Agregri dinamice Partiionarea datelor Cereri paralele

moderat mare mediu la mare (Mb-Gb) limitat

ncet i adesea limitat, citire/scriere mic (modele multidimensionale simple, 5-10 dimensiuni) bun dar baza de date trebuie s fie off-line adecvate pentru volatilitate sczut puine moderat client/server pe dou sau trei niveluri, lipsa standardelor nu specific fiecrui instrument foarte complexe, n toate dimensiunile nu nu nu nu

83

Iniiere n tehnologia OLAP-teorie i practic


Criterii Algoritmi hash Indexare Msuri derivate Comparaii ale perioadelor de timp Analiza valutelor Previziuni Consolidri financiare Tipul aplicaiilor da da da da nu da da la nivel departamental MOLAP/Baze de date multidimensionale ROLAP/Baze de date relaionale da da da da da da da la nivelul ntreprinderii

n [COLL96], se face o evaluare comparativ a sistemelor ROLAP i MOLAP. Se utilizeaz un model de afaceri cu ase dimensiuni al unei firme de buturi. Fiecare dimensiune este compus dintr-o ierarhie de membri. Se consider urmtorul numr de membrii pentru fiecare dimensiune: dimensiunea Canal: 6 membri; dimensiunea Produs: 1500 de membri; dimensiunea Zona de desfacere: 100 membri; dimensiunea Timp: 17 membri; dimensiunea Scenariu: 8 membri; dimensiunea Msuri: 50 msuri; Se dorete stabilirea profitului real al firmei pentru luna curent i comparaia lui cu bugetul alocat, apoi operaii de drill down pe regiuni de desfacere i familie de produse. Sistemul ROLAP utilizeaz o schem stea denormalizat. Agregrile sunt antecalculate i stocate n tabela de fapte. Numrul potenial de rnduri din tabela de fapte este produsul cartezian al dimensiunilor: canal(6)* produs(1500)* piaa de desfacere(100) * timp(17) * scenariu(8) = 122 milioane. Dac se consider un grad de mprtiere de 80%, numrul de rnduri este de 24 milioane (20%*122 mil). Dimensiunea unui rnd este de 500 bytes i tabela de fapte ajunge la 13Gb. Dac se consider i indecii construii pe fiecare coloan (cod_canal, cod_produs, cod_pia, cod_timp i cod_scenariu) necesari pentru a se executa jonciunile, dimensiunea tabelei de fapte ajunge la 17 Gb (blocul de date de 4Kb) . n ciuda popularitii bazelor de date relaionale n aplicaiile tranzacionale, autorii demonstreaz c modelul relaional nu este potrivit pentru aplicaii OLAP, datorit numrului mare de operaii I/O necesare pentru a executa operaii simple de drill down sau calcule simple. Pentru sistemul MOLAP, datele relevante pentru analiz sunt extrase dintr-un depozit de date relaional sau alte surse de date i ncrcate ntr-o baza de date multidimensional (un cub cu 6 dimensiuni). Implementarea acestui cub ndimensional este specific lui Essbase.

84

Arhitectura sistemelor OLAP Autorii constat c: ncrcarea este foarte rapid, deoarece datele corespunztoare oricrei combinaii de membrii ai dimensiunilor pot fi ncrcate cu o singur operaie de I/O, valorile sunt antecalculate, indecii corespunztori sunt de dimensiuni mici i pot fi stocai n memorie; stocarea este foarte eficient deoarece blocurile conin numai date, pentru localizarea unui bloc de date este necesar un singur index, indecii rezid complet n memorie; calculele sunt eficiente, deoarece numai o singur citire i o singur scriere I/O pe bloc sunt necesare pentru a agrega toat baza de date (tabelul 3.2). Tabelul 3.2 Comparaie ntre sisteme ROLAP i MOLAP ROLAP Spaiul ocupat pe disc (Gb) 17 ncrcarea datelor(I/O) 240 Calculul datelor derivate (timpul I/O n ore) 237 MOLAP 10 1 2

n concluzie, bazele de date multidimensionale utilizeaz cel mult jumtate din spaiu, ncarc datele i calculeaz datele derivate mult mai repede dect bazele de date relaionale. O serie de instrumente OLAP permit stocarea datelor multidimensionale n fiiere, pe client (desktop OLAP). Volumul de date multidimensionale stocat pe client este mic i poate fi creat la cerere (utiliznd faciliti Web).

3.3 Sisteme hibride (HOLAP)


Un sistem OLAP hibrid (HOLAP) este un sistem care utilizeaz pentru stocarea datelor att baze de date relaionale ct i baze de date multidimensionale, n scopul de a beneficia de caracteristicile corespunztoare i de tehnicile de optimizare. Un sistem HOLAP trebuie s aib urmtoarele caracteristici: transparena locaiei i a accesului (locaia datelor utilizate trebuie s fie ascuns pentru utilizator). Transparena accesului permite utilizatorului s acceseze datele la fel, indiferent dac sunt stocate n BDR sau BDMD; transparena fragmentrii. Fragmentarea datelor trebuie s fie invizibil pentru utilizator (cererile utilizatorului trebuie s fie descompuse n cereri pariale n funcie de sistemul de stocare); transparena performanei. Trebuie furnizate tehnici de optimizare pentru ambele sisteme MOLAP i ROLAP; un model de date comun utilizat att de datele relaionale ct i de datele multidimensionale;

85

Iniiere n tehnologia OLAP-teorie i practic alocarea optim n sistemele de stocare. Sistemele hibride ar trebui s beneficieze de strategiile de alocare specifice sistemelor distribuite.

Sunt diferite arhitecturi pentru un sistem hibrid OLAP: integrarea sistemelor MOLAP i ROLAP printr-o interfa comun. Clientul OLAP poate fi luat n considerare ntr-o astfel de soluie, ntruct ofer o interfa comun pentru SGBDMD i motoarele ROLAP. Totui multe din cerinele listate mai sus nu sunt satisfcute. De exemplu, Seagate Holos utilizeaz aceast arhitectur, permite tehnici de stocare relaionale i multidimensionale integrate n aa numita arhitectur OLAP compus; integrarea mutual a sistemelor ROLAP i MOLAP. Aceasta arhitectur poate fi gsit la Arbor Essbase, care ofer acces la datele relaionale (IBM DB2 OLAP Server); extensii la SGBDR sau SGBDOR prin utilizarea tehnologiei datablade (de exemplu Informix cu opiunea Metacube). Totui acesta nu este un sistem OLAP hibrid (Metacube este un motor ROLAP, deci nu este nc implicat un SGBDMD). Aplicaiile complexe i cu grad mare de mprtiere vor folosi o combinaie a acestor moduri de stocare. Datele care sunt utilizate cel mai des vor fi stocate n memoria RAM. Datele care sunt utilizate regulat, dar nu frecvent pot fi stocate n baze de date multidimensionale optimizate. n final, volumele mari de date detaliate sunt stocate n baze de date relaionale surs. n figura 3.3 [THOM96] se prezint strategia de stocare optim pentru aplicaii de diferite mrimi i grade de mprtiere. Desigur scara este aproximativ i va depinde de hardware-ul utilizat.

mprtiate
0.00001% 0.00001% 0.001% 0.1% stocare n RAM stocare n BDM 1% 10% 100% Dense Volumul de date de baz (celule) stocare n BDR sau hibrid

Figura 3.3 Moduri de stocare

86

Arhitectura sistemelor OLAP Pentru aplicaii foarte mprtiate, o soluie 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 pn la mari de date. Pentru date foarte mprtiate sau pentru baze de date foarte mari, o strategie de stocare de tip baz de date relaional poate fi singura opiune fezabil. n general, dac se dorete implementarea unei singure aplicaii, este mai eficient din punct de vedere al costului de a selecta un instrument mai simplu, dect unul proiectat special pentru acea aplicaie. Pentru scopuri strategice i aplicaii complexe poate fi necesar de a achiziiona un instrument complex. n funcie de tipul bazei de date, se poate alege tehnica de indexare folosit. Cele mai multe baze de date multidimensionale stabilesc automat tehnica de indexare.

3.4 Arhitectura sistemelor OLAP


Aplicaiile OLAP au o varietate mare de arhitecturi, unele foarte complexe. Multe aplicaii OLAP stocheaz volume mari de date, care nu pot fi duplicate pentru fiecare utilizator. Aceast cerin impune arhitectur client/server. n arhitectura client/server, att clientul ct i unul sau mai multe procesoare ale serverului pot face transformri multidimensionale i calcule. n principiu, se pot defini mai multe niveluri logice ntr-o arhitectur client/server (figura 3.4).

Interfaa

5
Se mpart ntre client i server depinde de locaia datelor

Calcule ad hoc multidimensionale

4
Calcule fcute n avans pe server

Calcule multidimensionale n lot

3
Motor pentru gestiunea datelor-baze de date relaionale sau multidimensionale

Gestiunea datelor

2
Datele i agregatele stocate trebuie s fie distribuite ntre utilizatori

1. Fiiere de date

Figura 3.4 Niveluri logice n arhitectura client/server

87

Iniiere n tehnologia OLAP-teorie i practic n general, ntr-o implementare particular, nu toate aceste niveluri logice pot exista ca niveluri distincte, astfel nct dou sau mai multe pot fi combinate ntr-un singur program [THOM96]. Totui n cazuri extreme, ar putea fi niveluri separate, executate pe maini separate. n figura 3.4 volumele de date transmise ntre niveluri sunt indicate de grosimea sgeilor. Volumele vor varia n funcie de aplicaie. Figurile de la 3.5. la 3.9. ilustreaz diferite tipuri de configuraii client/server, iar tabelul 3.3. prezint avantajele i dezavantajele lor [THOM96].
Server de fiiere
Fiiere de date Gestiune date

client OLAP
Calcule multi dimensionale n lot Calcule multi dimensionale ad-hoc Interfaa

Figura 3.5 Server de fiiere-client OLAP


Server de baz de date relaional
Gestiune date Calcule multi dimensionale n lot

client OLAP

Fiiere de date

Calcule multidimensi onale ad-hoc

Interfaa

Figura 3.6 Arhitectura client/server (server relaional/client OLAP)


Server de baz de date relaional
Gestiune date

Server de aplicaii
Calcule multi dimensionale n lot

client OLAP

Fiiere de date

Calcule multi dimensionale ad-hoc

Interfaa

Figura 3.7 Arhitectura pe trei niveluri


Server OLAP
Gestiune date Calcule multi dimensionale n lot Calcule multi dimensionale ad-hoc

client OLAP

Fiiere de date

Interfaa

Figura 3.8. Arhitectura client/server (Server OLAP/client OLAP)

88

Arhitectura sistemelor OLAP


Server de baz de date relaional
Gestiune date

Server de aplicaii
Calcule multi dimensionale ad-hoc

client WEB
Interfaa

Fiiere de date

Calcule multi dimensionale n lot

Figura 3.9 WEB OLAP pe trei niveluri Tabelul 3.3 Tipuri de arhitecturi client/server
Descriere Server de fiiere/client OLAP Numai nivelul 1 este pe un server de fiiere, nivelurile 2-5 pe client Faciliti Uor de implementat, independent de protocoalele de reea, server ieftin. Orice server de fiiere poate fi folosit Dezavantaje Nu este chiar o arhitectur client/server. Procesarea nu se face pe server. Poate cere clieni PC puternici. Poate genera trafic excesiv n reea, deoarece toate datele trebuie s fie mutate la clieni pentru procesare. Securitatea trebuie s fie gestionat de aplicaiile client. Greu de implementat actualizarea multiutilizator Cere un SGBD potrivit pe server, adaugnd la costuri i complexitatea. Poate genera trafic excesiv n reea, dac toate procesrile multidimensionale sunt fcute pe client.

Server relaional/client OLAP Nivelurile 1 i 2 sunt pe un server de baze de date relaional, nivelurile 3-5 pe client

n funcie de aplicaie poate fi gestionat securitatea pe server. Reduce ncrcarea reelei, deoarece datele pot fi selectate i procesate parial de serverul de baz de date, nainte de a fi trimise la client pentru procesare i prezentare. Cele mai multe procesri pot fi fcute de SGBD-ul relaional, care permite o exploatare bun a procesrii paralele. Capabil de actualizri online cu blocri mai bune a datelor. Distribuie flexibil a procesrii ntre serverul de baz de date i serverele de aplicaii. Se reduce traficul n reea pentru c datele pot fi procesate acolo unde sunt stocate. Funcionalitate ridicat prin utilizarea unui SGBD relaional complex i a unui server de aplicaii puternic. Scalabilitate bun n funcie de dimensiunea aplicaiei. Performan optim cu trafic n reea minim. Costuri hardware mici. Uor de implementat actualizarea multiutilizator a datelor multidimensionale, cu securitate multidimensional la nivel de detaliu. Aplicaiile complexe sunt mai simplu de implementat. Uor de utilizat pentru un numr mare de utilizatori, incluznd acei utilizatori din afara organizaiei. Reea la un cost mic. Nu cere software dedicat pe client, reducnd costurile cu software-ul. Suport o varietate de platforme.

Arhitectura pe trei niveluri Nivelurile 1 i 2 pe un server de baze de date relaional, nivelul 3 pe unul sau mai multe servere de aplicaii, nivelurile 4 i 5 pe client. Nivelul 3 poate avea, de asemenea, o baz de date local pentru stocarea informaiilor multidimensionale. Server OLAP/ client OLAP Nivelurile 1-3 pe un server de baz de date multidimensional, nivelurile 4 i 5 pe client.

Greu de implementat i se cere experien n reele. Adesea mai puin deschis dect arhitectura cu baz de date distribuit . Scalabilitatea n funcie de numrul de utilizatori poate fi restricionat de limitele fiecrui server de baz de date sau de aplicaii .

n general o arhitectur mai puin deschis. Instrumentele de acest tip sunt adesea mai specializate i mai puin potrivite pentru utilizare general.

WEB OLAP pe trei niveluri Nivelurile 1 i 2 sunt pe un server relaional, nivelurile 3 i 4 pe serverul de aplicaii i nivelul 5 pe un browser WEB conectat prin Internet sau Intranet.

Funcionalitate i performan redus. Reduce manipulrile de date la nivel de client.

89

Iniiere n tehnologia OLAP-teorie i practic

Rezumat
Sistemele OLAP permit analitilor i managerilor s mbunteasc performanele 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. n funcie de modul de stocare a datelor, sistemele OLAP se clasific n: sisteme ROLAP, sisteme MOLAP i sisteme HOLAP. Sisteme ROLAP permit stocarea datelor multidimensionale n baze de date relaionale (depozite de date), utiliznd schema stea sau fulg de zpad. Stocarea datelor multidimensionale se face ntr-o baz de date relaional atunci cnd: Volumul de date este prea mare pentru a fi duplicat. Datele atomice nu sunt copiate n baza de date multidimensional ci sunt stocate n baze de date relaionale surs (depozite de date/centre de date) i citite cnd este nevoie; Datele surs se modific frecvent i este mai bine de a citi n timp real dect din copii; Integrarea cu alte sisteme informatice relaionale existente; Firma are o politic de neduplicare a datelor n alte structuri de fiiere, pentru securitate sau alte motive, chiar dac aceasta conduce la aplicaii mai puin eficiente; Sistemele MOLAP permit stocarea datelor multidimensionale n baze de date multidimensionale, sub form de matrici multidimensionale. Spaiul este rezervat pentru fiecare combinaie posibil ntre membrii dimensiunilor. Numai matricile ce conin date sunt stocate fizic. Fiecare dimensiune a matricii reprezint o dimensiune a cubului. Coninutul matricii sunt msurile cubului. Un sistem OLAP hibrid (HOLAP) este un sistem care utilizeaz pentru stocarea datelor att baze de date relaionale ct i baze de date multidimensionale, n scopul de a beneficia de caracteristicile corespunztoare i de tehnicile de optimizare. Sunt diferite arhitecturi pentru un sistem hibrid OLAP i anume: integrarea sistemelor MOLAP i ROLAP printr-o interfa comun, integrarea mutual a sistemelor ROLAP i MOLAP, extensii la SGBDR sau SGBDOR prin utilizarea tehnologiei datablade. Aplicaiile OLAP au o varietate mare de arhitecturi, unele foarte complexe i anume: server de fiiere/client OLAP, server relaional/client OLAP, server de

90

Arhitectura sistemelor OLAP baze de date relaional/server de aplicaii/client OLAP, server OLAP/client OLAP, server de baz de date relaional/server de aplicaii/client WEB. Cuvinte cheie Sisteme ROLAP, sisteme MOLAP, sisteme HOLAP

91

Capitolul 4 Instrumente OLAP


Cerinele utilizatorilor, identificate n etapa de analiz a sistemului informatic, vor determina alegerea instrumentului OLAP. De exemplu, dac aplicaia 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 numrul de utilizatori i de metodele de stocare fizic. Dimensiunile, ierarhiile, formulele, legturile 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.

4.1 Caracteristici logice


Caracteristicile logice sunt: structura datelor (modul cum sunt definite modelele, dimensiunile, tipurile de relaii ce pot exista ntre membrii unei dimensiuni), operaiile (tipurile de legturi ce pot fi create, tipurile de formule ce pot fi definite) i reprezentrile (modul de afiare a datelor multidimensionale: tabel sau grafic). Aceast organizare este similar dar nu identic cu modelul relaional care este definit n funcie de structura datelor, operaiile ntre date i integritatea datelor. Instrumentele OLAP au fost construite i dezvoltate n absena unui model de date spre deosebire de modelul relaional, care a fost definit ca un model de date nainte ca s se construiasc un SGBDR. Aspectele structurale ale modelului relaional constau din domenii, atribute, tupluri, relaii i scheme. n lumea multidimensional, ele sunt compuse din dimensiuni, ierarhii, cuburi n-dimensionale (hypercuburi) i modele (scheme). Operatorii modelului relaional sunt specifici algebrei relaionale i calculului relaional. Produsul cartezian, jonciunea i proiecia sunt exemple de operatori relaionali. Aceti operatori pot fi numii operatori structurali, n sensul c ei manipuleaz structura relaiilor. Modelul relaional i SGBDR-urile se

92

Caracteristicile sistemelor OLAP concentreaz mai mult pe operaiile structurale dect pe operaiile pe date (data operations) cum ar fi suma, maxim, minim, order by etc. n lumea multidimensional se pune accentul pe operaiile pe date (tipurile de formule ce pot fi definite ntr-un cub sunt probleme legate de operaiile pe date) i mai puin pe operaiile structurale (formarea unui cub dintr-un set de dimensiuni nu corespunde unui operator n lumea multidimensional, dar n lumea relaional reprezint produsul cartezian al dimensiunilor). Restriciile de integritate denumite i reguli de integritate definesc cerinele pe care trebuie s le satisfac datele din cadrul bazei de date pentru a putea fi considerate corecte, coerente n raport cu lumea real pe care o reflect. Restriciile de integritate reprezint principalul mod de integrare a semanticii datelor n cadrul modelului relaional al datelor, mecanismele de definire i verificare a acestor restricii reprezentnd principalele instrumente pentru controlul semantic al datelor. Restriciile de integritate ale modelului relaional sunt de dou tipuri i anume: restricii de integritate structurale inerente modelului relaional care se definesc prin egalitatea sau inegalitatea unor valori din cadrul relaiilor (restricia de unicitate a cheii, restricia entitii, restricia referenial i dependenele ntre date); restriciile de integritate de comportament proprii unei anumite BDR, care in cont de semnificaia valorilor din cadrul bazei de date. n funcie de realitatea descris n baza de date, se pot defini de ctre utilizatori mai multe tipuri de restricii de integritate de comportament i anume: restricii de domeniu, restricii temporale etc [LUBO95]. Restriciile de integritate nu sunt o component a modelului multidimensional (unele modele fac totui referiri la restriciile de integritate), dar s-au inclus reprezentrile care lipsesc de la descrierea modelului relaional. Modelele multidimensionale au totui legtur cu problema integritii n sensul de filtrare. Testarea integritii datelor este o parte important a modelrii multidimensionale i este inclus ca o parte a aplicaiilor. Reprezentrile sunt o problem important pentru modelele multidimensionale (modul de afiare a datelor multidimensionale: tabel sau grafic). n modelul relaional reprezentarea ar putea fi legat de viziuni.

4.1.1 Structura datelor


Dimensiunile. Unele instrumente OLAP permit numai o direcie de agregare pe dimensiune. Pentru aceste instrumente, fiecare direcie de agregare constituie o dimensiune separat. Alte instrumente definesc o dimensiune ca un singur nivel al unei ierarhii. De exemplu, sptmnile ar putea descrie o dimensiune. Lunile ar descrie alt dimensiune. Trimestrele ar defini a treia dimensiune etc. Alte instrumente consider c toate dimensiunile sunt compuse din niveluri cu nume. Timpul folosete de regul niveluri cu nume. Unele instrumente trateaz dimensiunile i msurile n acelai mod. Ele nu fac distincie ntre dimensiuni i

93

Iniiere n tehnologia OLAP-teorie i practic msuri. Alte instrumente trateaz explicit msurile ca o dimensiune special i le ataeaz la celelalte dimensiuni pentru a forma un cub (instrumentele ROLAP). n alegerea unui instrument OLAP se vor analiza urmtoarele aspecte [THOM96]: Cardinalitatea (numrul maxim de membri dintr-o dimensiune). Instrumentul lucreaz eficient sau nu cu dimensiunile foarte mari. Ierarhiile. Instrumentul permite sau nu : dimensiuni ierarhice; multiple ierarhii ntr-o singur dimensiune; niveluri cu nume n ierarhie i ierarhii neregulate. Dac agregrile sunt neregulate i se modific frecvent (cazul produselor sau ierarhiilor organizaionale) este necesar un instrument ce permite ierarhii neregulate; conectarea membrilor copii la mai muli prini ntr-o singur ierarhie (de exemplu un ora care se gsete n dou state). Versiunile. Dac ntr-un model multidimensional sunt multiple cuburi de date sau dac dimensiunile pot fi create i actualizate independent de cuburi, aceleai dimensiuni apar frecvent n mai multe cuburi. Problema care apare este legat de modul cum se realizeaz sincronizarea ntre multiple instane ale unei dimensiuni. n acest caz, instrumentul trebuie s suporte mai multe versiuni ale dimensiunii. Cuburile. Cele mai multe propieti ale cuburilor decurg din propietile componentelor lor (dimensiunile i formulele). n alegerea unui instrument OLAP se va ine cont de: numrul maxim de dimensiuni ntr-un cub. Instrumentele care nu permit dimensiuni ierarhice sau ierarhii multiple pe dimensiune sunt mai limitate (de exemplu un model cu 6 dimensiuni ierarhice cu multiple direcii de agregare ar putea s aib nevoie de 30 sau mai multe dimensiuni neierarhice); numrul maxim de celule ntr-un cub; numrul maxim de date de intrare/pe cub; numrul maxim de celule de date stocate/pe cub; Modelele. Unele instrumente trateaz toate dimensiunile drept componente ale unui singur cub n-dimensional. Alte instrumente permit ca unele dimensiuni s fie comune la mai multe cuburi (multicuburi). De aceea, se va stabili dac : modelul este compus dintr-un singur cub n-dimensional sau din multiple cuburi interactive; toate variabilele sunt dimensionate n acelai mod. Tipurile de date. Valorile de date sunt limitate de tipul de date. n modelul relaional, valorile atributelor trebuie s se ncadreze ntre anumite limite (domeniul ce definete toate valorile posibile). Cu instrumentele OLAP, definirea unei variabile prin specificarea tipului de date determin valorile posibile pe care membrul le poate avea. Orice instrument OLAP permite stocarea numerelor reale, dar nu toate instrumentele OLAP permit stocarea: irurilor de caractere, a imaginilor i a tipurilor de date definite de utilizator.

94

Caracteristicile sistemelor OLAP

4.1.2 Operaii
Toate instrumentele OLAP permit ca datele de intrare atomice s fie agregate. n alegerea unui instrument OLAP se va analiza dac: datele trebuie ncrcate numai la nivel atomic; formulele pot utiliza date de pe orice nivel ierarhic din cub; formulele pot utiliza date din mai multe cuburi. Se vor analiza, de asemenea, i urmtoarele aspecte: Prioritate. Pentru unele formule, ordinea n care ele sunt combinate afecteaz rezultatele. n aceste cazuri se va stabili: logica implicit utilizat de instrument; prioritatea prin definirea de ctre utilizator a tipului de date sau utiliznd prioritatea implicit a formulei; dac instrumentul ofer posibilitatea de a testa impactul utilizrii unei prioriti diferite. Variabile/msuri. n alegerea unui instrument OLAP se va analiza dac: variabilele sunt tratate diferit de dimensiuni; se pot ataa formule de agregare la variabile; se pot declara tipuri de variabile i moteni formula de la alte variabile; instrumentul permite variabile care nu sunt numerice. Fenomenul de mprtiere. Cuburile n-dimensionale sunt mprtiate. Aceast mprtiere poate indica fie lips de date, date invalide sau date cu valoare zero. Cele mai multe instrumente OLAP ofer suport pentru procesarea datelor lips i a celor invalide. n aceste cazuri, se va analiza dac instrumentul proceseaz datele lips diferit de cele invalide i de cele cu valoare zero. Formule. Un instrument OLAP trebuie s permit utilizarea formulelor algebrice pentru definirea variabilelor. n alegerea instrumentelor OLAP se va analiza dac: instrumentul permite ataarea unei formule algebrice la orice membru dintr-o dimensiune; instrumentul OLAP permite, de asemenea, funcii logice i ecuaii; instrumentul permite definirea vizual a formulelor. Legturi. Modelele multidimensionale utilizeaz diferite surse de date i din acest motiv, n alegerea unui instrument OLAP se va analiza dac: datele i metadatele pot fi ncrcate dintr-o singur colecie de date; legturile sunt persistente; formulele stocate n sursele de date externe pot fi apelate n formulele din cub etc. ntruct sistemele OLAP utilizeaz adesea volume mari de date ce se actualizeaz regulat, procesul de propagare a modificrilor de la surse la cub impune multe activiti ce trebuie automatizate. Din acest motiv, se va analiza dac: modificrile ce apar n tabelele externe se pot propaga automat n modelul multidimensional;

95

Iniiere n tehnologia OLAP-teorie i practic modificrile ce apar n denumirea unui membru sunt propagate automat n toate formulele n care membrul este folosit; ordinea n care elementele sunt modificate se poate stabili automat (cum ar fi de exemplu, calculul dimensiunilor naintea cuburilor); Optimizare/eficien. Un instrument OLAP trebuie s fie capabil s detecteze toate tipurile de valori modificate i s declaneze automat modificrile n cubul ndimensional (hypercub). De asemenea, se va analiza dac: instrumentul permite ca un administrator s specifice care agregate sunt antecalculate i stocate i care sunt calculate la momentul interogrii; instrumentul poate stabili automat care agregate trebuie s fie antecalculate i care se execut la momentul interogrii; instrumentul poate stabili locul unde se execut un calcul (pe client sau pe server).

4.1.3 Modul de reprezentare a datelor multidimensionale


Reprezentarea datelor multidimensionale este un domeniu important n sistemele OLAP i se refer la: Vizualizarea datelor. Un instrument OLAP trebuie s permit cel puin vizualizarea datelor multidimensionale sub form de tabel. n plus, un instrument OLAP trebuie s ofere prezentri grafice ale datelor multidimensionale. Multe instrumente OLAP permit grafice n dou i trei dimensiuni. Unele instrumente permit vizualizare multicub, n care dimensiunile comune pentru dou sau mai multe cuburi sunt afiate pe ecran ca dimensiuni imbricate. Navigarea. Ideal un instrument OLAP trebuie s permit operaii de tip drill down, roll up i drill across n ierarhiile dimensionale. Formatul de afiare a variabilelor. Modelele OLAP sunt folosite de utilizatori pentru a comunica informaia necesar procesului decizional. La ora actual, instrumentele OLAP au o abilitate foarte limitat de a defini modul cum se afieaz o variabil. Ideal, un instrument OLAP ar trebui s permit un format de afiare implicit (cum ar fi valoarea curent), care s fie asociat cu variabila.

4.1.4 Alte caracteristici logice


Domenii de cunotine. Domeniile n care un instrument multidimensional posed cunotine sunt : timpul, valuta, limbile strine. Timpul este o dimensiune ce apare n orice model multidimensional i de aceea, este necesar ca instrumentul: s aib cunotine despre timp; s neleag diferitele tipuri de calendare (de exemplu fiscal); s permit compararea seriilor de timp, de periodiciti diferite; s poat crea o dimensiune Timp specific unei aplicaii; s permit crearea mai multor dimensiuni Timp ntr-un singur cub.

96

Caracteristicile sistemelor OLAP De asemenea, este necesar ca instrumentul: s recunoasc valutele, s execute conversii de valute, s se bazeze pe o anumit rat de schimb (medie, ultima zi, prima zi, cea mai mare, cea mai mic) etc. Este necesar, de asemenea, a se stabili ce limbi suport instrumentul i ct din aplicaie poate fi tradus (de exemplu: opiunile din meniu, mesajele de eroare, help-ul). Domeniile orientate pe proces se refer la: Realizarea aplicaiei. Se va analiza: dac instrumentul ofer un mediu complet de dezvoltare a aplicaiei; ce funcii realizeaz instrumentul (analiz, crearea modelului etc); dac instrumentul folosete un limbaj procedural sau neprocedural; dac instrumentul ofer faciliti de depanare etc. Asigurarea securitii multiutilizator. Sistemele OLAP au aceleai nevoi de securitate ca orice mediu de date multiutilizator i de aceea, se va analiza: dac ofer securitate att la citire ct i la scriere; dac securitatea este definit folosind un limbaj multidimensional; la ce nivel de granulaie poate fi definit securitatea (model, cub, membrii dimensiunii, celul); dac sistemul poate monitoriza toate ncercrile utilizatorilor de a accesa datele; dac utilizatorul poate vedea membrii pentru celulele la care el nu are acces; dac drepturile unui utilizator pot fi modificate; dac se pot defini grupuri de utilizatori (roluri) sau numai utilizatori individuali etc. Faciliti de gestiune a datelor. Se va analiza: ce tip de faciliti de salvare i restaurare ofer instrumentul, dac instrumentul realizeaz controlul tranzaciilor etc. Interfaa instrumentului. Sunt n general o serie de probleme legate de interfaa cu utilizatorul, care trebuie luate n considerare i anume dac: instrumentul permite utilizatorului confirmarea nainte de execuia operaiilor importante, cum ar fi tergerea unui cub; utilizatorul poate s opreasc o cerere n execuie; exist faciliti de anulare a diferitelor aciuni etc.

4.2 Caracteristici fizice


Caracteristicile fizice sunt independente de modelul multidimensional i se refer la: 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

Iniiere n tehnologia OLAP-teorie i practic care este spaiu necesar pentru a stoca 1 milion, 10 milioane i 100 milioane de numere etc. Modul de calcul. Unele instrumente pot fi rapide pentru calcule simple, dar neperformante pentru cele complexe. Altele pot lucra cel mai bine cu un numr mic de dimensiuni. Tipul de arhitectur client/server. Se va determina: ce calcule, definite de utilizator, pot fi procesate pe server; dac sistemul poate stabili cel mai eficient mod de a distribui calculele ntre client i server; care este numrul maxim de clieni concureni (la citire); dac instrumentul suport access concurenial la scriere; ce se ntmpl dac doi utilizatori, cu drept de scriere, ncearc s scrie n aceeai celul la un moment dat; la ce nivel este blocat cubul n cazul scrierilor concurente etc. Platforma. Pentru a alege un instrument OLAP se va stabili: care sunt sistemele de operare acceptate de instrument; ce tipuri de maini folosete instrumentul OLAP; dac instrumentul poate s foloseasc avantajele lui MPP pentru ncrcare, cerere i/sau calcule etc.

4.3 Exemple de instrumente OLAP


Business Objects Americans [www.businessobjects.com] este lider n furnizarea de instrumente suport de decizie incluznd interogare, raportare, analiza proceselor on-line, data mining i administrare SSD pentru arhitectur client/server i mediu Internet : Business Objects permite dezvoltarea de aplicaii suport de decizie cu faciliti de interogare i raportare. Asigur acces la diferite surse de date (depozite de date /centre de date, baze de date multidimensionale, fiiere text, pachete de aplicaii, sisteme SAP). Folosind facilitatea VBA permite utilizatorilor s modifice i s extind nucleul funcional al produsului Business Objects (se pot crea noi funcii, noi comenzi sau subprograme) . Developer Suite permite integrarea complet a lui Business Objects cu alte aplicaii (financiare, resurse umane, marketing sau producie) i cuprinde urmtoarele componente: Business Objects, WebIntelligence (server de Web), Broadcast Agent i o component pentru vizualizarea rapoartelor. Cognos [www.cognos.com] ofer instrumente pentru inteligena afacerii (Power Play i Impromptu), medii de dezvoltare a aplicaiilor (Power House, Axiant, RealObjects). Power Play este un instrument de analiz i raportare multidimensional folosit pentru a oferi informaii utile managerilor. Este folosit de manageri pentru a explora datele n format numeric sau grafic i pentru raportare. Power Play este un

98

Caracteristicile sistemelor OLAP instrument foarte scalabil (pn la cteva mii de utilizatori), cuburile pot fi create pe client sau pe servere Unix. Ele pot fi create ca fiiere ntr-un sistem de gestiune de fiiere sau ca tabele ntr-o baz de date relaional (Oracle sau Sybase). Power Play permite o metodologie de proiectare a aplicaiilor iterativ. Impromptu permite utilizatorilor s creeze rapoarte complexe fr s cunoasc limbajul SQL sau structura bazei de date. Power Play i Impromptu se folosesc pentru aplicaii de analiz a vnzrilor, analiz financiar, controlul calitii etc. Instrumentele pot importa date din peste 100 de surse de date relaionale i multidimensionale. Holistic Systems, Inc [www.holistic.com] este un membru al grupului Seagate Software Information Management i este cel mai puternic furnizor de instrumente pentru inteligena afacerii. Holistic Systems este complet dedicat pentru activitatea de marketing, fiind un lider n BI. Holos este un mediu de dezvoltare pentru aplicaii BI, ncorporeaz faciliti EIS, SSD i OLAP, cu o arhitectur pe trei niveluri, pentru firme de dimensiuni foarte mari. Holos se poate instala pe Unix, VMS i NT i clieni Windows, Windows NT i MacIntosh. n versiunea 5.0 a fost introdus facilitatea de data mining, bazat pe reele neuronale, integrat cu nivelul analitic foarte puternic ale lui Holos. Pilot Software, Inc [www.pilotsw.com] este o firm a corporaiei The Dun & Bradstreet, care dezvolt instrumente suport de decizie interactive pentru manageri i analiti. Pilot Decision Support Suite const din cinci componente i poate fi instalat monoutilizator, workgroup sau distribuit. Clienii 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 operaii de drill down, roll up i pivotare prin datele agregate. Include un motor OLAP cu cunotine de timp i instrumente pentru analiza de excepii. Sursele de date pot fi relaionale . Pilot Analysis Server este un server OLAP multiutilizator ce ofer multe faciliti de modelare (suport pentru analiza seriilor de timp), include o bibliotec de funcii (funcii de previziune, funcii de corelaie, analiza de regresie etc). Pilot Designer este un instrument pentru crearea tuturor tipurilor de aplicaii vizuale de tip suport de decizie (de la EIS la aplicaii OLAP complexe). Include un limbaj pentru scripturi ce este compatibil cu Visual Basic. Pilot Analysis Library este o bibliotec opional de module de analiz ce permite utilizatorilor s accelereze implementarea de soluii suport de decizie complexe . Pivot Excel Add-In este o component opional ce permite utilizatorilor Excel de a integra facilitile mediului Pilot n soluiile Excel . MicroStrategy, Inc [http://www.strategy.com] este lider n soluii ROLAP i ofer urmtoarele produse OLAP: DSS Server (motor relaional-OLAP), clieni

99

Iniiere n tehnologia OLAP-teorie i practic (DSS Agent Relational OLAP, DSS Objects pentru dezvoltarea de aplicaii 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). Kenan Systems Corp [http://www.kenan.com] ofer soluii pentru firmele din domeniul telecomunicaiilor, servicii financiare, comer. Ofer urmtoarele produse: Acumate Server este un mediu de dezvoltare de aplicaii, incluznd un limbaj procedural multidimensional (MSPL) i instrumente de analiz complexe. Serverul include un set de instrumente de ncrcare a datelor, pentru accesarea depozitelor de date i a sistemelor operaionale eterogene. Acutrieve este o aplicaie suport de decizie optimizat pentru analiti. Acumate Workbench este o interfa grafic ce permite utilizatorilor s foloseasc avantajele mediului Windows, precum i a limbajului multidimensional MSPL. Acumate Web este un motor generator HTML ce poate fi utilizat pentru a permite raportare ad-hoc i static folosind tehnologia Web. Informix Software, Inc [http://www.informix.com] ofer urmtoarele produse OLAP: INFORMIX MetaCube este un motor de analiz complex, ce transform Informix Online Dynamic Server ntr-un server OLAP foarte performant. INFORMIX MetaCube Explorer este un instrument SSD pentru utilizatori ce ofer o interfa simpl pentru acces la depozitele de date i realizarea de rapoarte. INFORMIX MetaCube Warehouse Manager este un instrument grafic pentru administrarea metadatelor ce descriu depozitul de date. INFORMIX MetaCube Warehouse Optimizer analizeaz automat depozitul de date pentru a recomanda agregarea optim i strategii de performan. INFORMIX MetaCube for Excel extinde mediul foaie de calcul tabelar pentru a oferi acces de tip wizard la depozitul de date. Arbor Software Corporation [http://www.arborsoft.com] ofer instrumente OLAP pentru activitatea de planificare i analiz a afacerilor : Essbase Analysis Server este un server de baz de date multidimensional optimizat pentru aplicaii de planificare i analiz a afacerilor (analiza profitabilitii, analiza bugetar, previzionare, planificare, analiza de pia i EIS) cu urmtoarele caracteristici: arhitectur client/server, acces concurent la citire/scriere, stocheaz volume mari de date, permite calcule analitice complexe, navigare flexibil prin date, timp de rspuns mic, permite aplicaii OLAP robuste ce acceseaz direct sisteme OLTP sau un centru de date i opereaz pe Windows NT, OS/2, IBM-AIX, Sun Solaris i AS/400 cu clieni Windows, MacIntosh i Unix.

100

Caracteristicile sistemelor OLAP Essbase Spreasheet Add-In permite integrarea facilitilor oferite de instrumentele de tip foaie de calcul tabelar (Excel, Lotus) cu facilitile OLAP. Essbase Application Manager este folosit pentru a construi, modifica i gestiona modele analitice, securitatea accesului la date, reguli de ncrcare a datelor. Exist o serie de module opionale cum ar fi: Essbase Adjustment Module (pentru planificarea automat a momentului lansrii n execuie a rapoartelor) i Essbase Currency Conversion Module (pentru conversii de valute). Wired for OLAP este un instrument de prezentare i analiz ce opereaz att pe client ct i pe server. Essbase Objects este un instrument puternic ce permite dezvoltarea de aplicaii OLAP. IBM Corporation [www.ibm.com]. Arhitectura general a unei soluii IBM OLAP este prezentat n figura 4.1.

Componenta de prezentare

Componenta de aplicaie

Motorul OLAP

Depozitul de date

Figura 4.1 Arhitectura unei soluii IBM OLAP Componenta de prezentare ofer un set de faciliti de vizualizare, navigare i raportare. Motorul OLAP permite reprezentarea multidimensional a schemei stea, calcule analitice complexe i agregri. Unele soluii OLAP includ un nivel suplimentar componenta de aplicaie. Aceast component ofer logica afacerii, specific pentru subiectul analizat (de exemplu marketing i vnzri). DB2 OLAP Server utilizeaz un motor OLAP Essbase dezvoltat de firma Arbor Software Corporation, pentru gestiunea i proiectarea aplicaiilor, navigarea i accesul la date, ncrcarea datelor. Este compatibil cu Essbase i cu toate instrumentele firmei Arbor i permite: analize multidimensionale pe volume mari de date relaionale, gestiunea datelor, accesul i interogarea datelor din schema stea folosind limbajul SQL. Essbase este o soluie MOLAP iar DB2 OLAP Server folosete o baz de date relaional DB2 (DB2 Universal Database/UDB) i este o soluie ROLAP. Figura 4.2 prezint arhitecturile lui Essbase i DB2 OLAP Server. Arhitectura lui DB2 OLAP Server combin avantajele lui DB2 UDB, un sistem de gestiune a bazelor de date relaional foarte puternic, cu puterea motorului OLAP. Permite administratorilor s gestioneze datele multidimensionale, n acelai mod ca datele relaionale din depozitele de date i sistemele tranzacionale. Att Essbase ct i DB2 OLAP folosesc acelai motor OLAP, accesat printr-o interfa API (Essbase API). DB2 OLAP structureaz datele ntr-o schem stea special proiectat pentru analiza multidimensional a datelor relaionale. Componenta

101

Iniiere n tehnologia OLAP-teorie i practic Relational Storage Manager (RSM) separ motorul OLAP de baza de date relaional.
Componentele de prezentare i aplicaie
MS Excel Lotus Essbase Objects Essbase Application Manager Essbase Currency Conversion Module
Essbase Adjustment Module

SQL Decision Support

Essbase Spreadsheet Add-In

RDBMS Management Tools

Essbase API

Essbase API

Motor Essbase OLAP

Motor Essbase OLAP

Multidimensional Storage Manager

Relational Storage Manager

Motorul OLAP

SQL

Fiiere/baze de date multidimensionale

Baz de date relaional (schema stea)

Figura 4.2 Arhitectura pentru Essbase i DB2 OLAP Server Oracle Corporation [http://www.oracle.com] ofer urmtoarele produse OLAP: Oracle Express Server/Oracle Personal Express este un server OLAP. Datele sunt stocate ntr-o baz de date multidimensional. n 2002, Oracle lanseaz Oracle9i Release 2 OLAP care integreaz toate facilitile OLAP (Analytical Workspace) n baza de date relaional Oracle. Oracle Express Administrator este un utilitar grafic pentru definirea, ntreinerea i popularea bazelor de date multidimensionale Express. Oracle Express Relational Access Manager (RAM) permite ca Express Analyzer s acceseze datele stocate ntr-o baz de date relaional, care a fost configurat cu Oracle Relational Access Administrator (RAA).

102

Caracteristicile sistemelor OLAP Pentru a construi o baz de date Express se parcurg urmtoarele etape: Etapa de definire. n aceast etap, cu ajutorul lui RAA se execut urmtoarele activiti: se selecteaz tabelele depozitului de date folosit; se definete modelul multidimensional; se determin modul cum se acceseaz datele relaionale i se definesc caracteristicile bazei de date Express. Modelul de date mpreun cu maprile asociate i definiiile bazei de date formeaz un proiect. RAM construiete un set de metadate i le stocheaz n baza de date relaional. Pot exista mai multe proiecte asociate cu un singur depozit de date i fiecare proiect poate utiliza un model de date multidimensional diferit. Etapa de creare/actualizare. n aceast etap, se contruiete baza de date Express pentru a fi utilizat de aplicaiile Express. Etapa online. Utilizatorii pot utiliza datele prin aplicaii Express (figura 4.3).
Clientul Express genereaz o cerere de date

Da

Date in Express cache

Nu

Modulul de runtime genereaz comenzi SQL SELECT

Se trimit comenzile SELECT la SGBDR

Se primete rspunsul i se stocheaz n Expres Cache

Express proceseaz datele

Rspunsul este trimis la client

Figura 4.3 Etapa online RAM conine urmtoarele componente (figura 4.4): Relational Access Administrator, un utilitar folosit pentru a defini un model multidimensional i a determina cum acceseaz serverul Express datele relaionale. Cnd se creeaz un nou proiect se alege fie opiunea

103

Iniiere n tehnologia OLAP-teorie i practic Project Editor sau Project Wizard. Opiunea Project Editor este o interfa prin care se poate crea un proiect pentru orice tip de schem, n timp ce opiunea Project Wizard ofer o metod simpl pentru crearea unui model multidimensional bazat pe o schem stea. RAA definete 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 Vnzri dimensionat dup Produs, Locaie geografic i Timp i variabila Populaie dup Locaia geografic i Timp, RAA definete dou cuburi CUBUL 1 (Produs, Locaie geografic, Timp) i CUBUL2 (Locaie geografic, Timp). Cu ajutorul opiunii Database/Sparsity, RAA permite specificarea dimensiunilor mprtiate i includerea lor ntr-o dimensiune de tip conjoint. Pentru stocarea datelor lips, Oracle Express folosete dimensiunile de tip conjoint. O dimensiune conjoint stocheaz combinaii de valori de la dou sau mai multe dimensiuni, numai pentru acele celule ce conin date. Build modul conine programul ce construiete noi baze de date Express sau actualizeaz pe cele existente. Acest modul citete proiectul i construiete sau actualizeaz baza de date Express, ce corespunde modelului de date multidimensional definit n proiect. Runtime modul conine utilitare ce ncarc datele relaionale la momentul de execuie.
Aplicaie Express Relation Access Administrator

Express RAM Runtime Modul

RAM Build modul

Depozit de date Baza de date Express

Figura 4.4 Componentele lui Relational Access Manager Oracle Express Analyzer este un instrument OLAP folosit pentru analiza datelor i realizarea rapoartelor. Permite: lansarea n execuie a briefing-urilor (dosare); crearea de briefing-uri pentru utilizatori; analiz ad-hoc; lansarea n execuie a aplicaiilor realizate cu Express Objects;

104

Caracteristicile sistemelor OLAP editarea briefing-urilor create cu Express Objects. Aceste briefing-uri pot fi accesate prin Web. Un briefing este un set de pagini ce conin tabele, grafice i date preluate de la alte instrumente, organizate ntr-un mod accesibil utilizatorilor, pentru a putea fi analizate. Datele afiate ntr-un briefing pot fi stocate ntr-o baz de date relaional (Oracle) sau multidimensional (Express). Oracle Express Objects permite crearea de aplicaii OLAP i briefing-uri complexe care pot fi rulate n Express Analyzer, precum i realizarea de programe n limbaj Express, prin care se controleaz comportamentul aplicaiei. Este un element cheie n Oracle Integrated Business Intelligence Tools, fiind integrat cu Oracle Discoverer. Oracle Express Spreadsheet Add-In permite afiarea datelor multidimensionale ntr-o foaie de tip calcul tabelar Excel. Oracle Express Web Agent permite crearea de aplicaii Express ce pot fi lansate n execuie folosind un browser Web i const din urmtoarele componente distribuite ntr-o arhitectur client/server: Web Listener primete i proceseaz cererile de la browserul Web pentru a vizualiza documente HTML sau a executa programe. Se poate utiliza Oracle Web Server; WebListener Interface (Oracle Web Request Broker cartridge sau Common Gateway Interface CGI); Web Agent Modules for Express Server ce permite comunicarea ntre Express Server i Web Listener Interface; Developers Toolkit ce conine programe folosite n aplicaii Web pentru a genera tag-uri HTML i a produce viziuni de date multidimensionale (figura 4.5).
Client
Web browser

Server Express Web Agent


Web Listener Web Listener Interface Express Server Web Modules Developers Toolkit

Figura 4.5 Componentele lui Express Web Agent Aplicaii Oracle Express (Oracle Sales Analyzer i Oracle Financial Analyzer) sunt aplicaii preconstruite pentru analiza vnzrilor i a pieei i analiz financiar. Sales Analyzer poate estima tendine ale vnzrilor, profitabilitatea unor produse sau a unor clieni, ciclul de via al unui produs, eficacitatea unei campanii de promovare. Include template-uri pentru rapoarte de excepii, o bibliotec de formule predefinite. Utilizatorii i pot defini propriile lor formule. Cu ajutorul unui

105

Iniiere n tehnologia OLAP-teorie i practic browser Web, Sales Analyzer poate executa analize ad-hoc folosind facilitile Internetului. Oracle Financial Analyzer este o aplicaie preconstruit pentru planificare, stabilirea bugetelor, analize i rapoarte financiare. SNAPI (structured N dimensional application programming interface) este o bibliotec de funcii C care permite ca aplicaiile client Windows s poat comunica cu serverul Express. Local SNAPI permite clienilor 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 instane 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 definete un set de dimensiuni specifice activitii de analiz a vnzrilor. Structura logic a bazei de date este format din 6 dimensiuni: Timp, Scenariu, Msura, Produs, Client i Canal de distribuie. Benchmark-ul nu consider un anumit model fizic de baz de date, datele de intrare sunt furnizate n format de fiiere ASCII. Operaiile simuleaz perfect operaiile standard OLAP i includ ncrcarea secvenial 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 bazndu-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 relaionale. TPCD include o schem fulg de zpad 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 interfee 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 prezentri de cuburi. Acest standard are o serie de dezavantaje: i lipsete un suport teoretic solid (nu exist definit schema unui multicub) i utilizeaz un limbaj prea complex (dei 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 (relaional, orientat-obiect etc). Modelul propus de MDIS suport noiunea de dimensiune (care include un set de niveluri). Cuburile nu sunt direct modelate n modelul

106

Caracteristicile sistemelor OLAP MDIS. n tabelul 4.2 este prezentat o analiz comparativ ntre standardele descrise mai sus (C-cub, T-tabela). Tabelul 4.2 Standarde Comparaie ntre standarde Spaiu multiLimbajul dimensional de interogare Cuburi Ierarhii Procedu- Declaral rativ C da Limbaj propriu T SQL C da C++ SQL T da Stocarea datelor ROLAP MOLAP

APB-1 TPC-D OLEDB MDIS

da da

da

n tabelul 4.3 este prezentat o clasificare a celor mai cunoscute instrumente OLAP, n funcie de modul de stocare a datelor multidimensionale i de modul de procesare multidimensional utilizat. Instrumentele din grupele 1, 2 i 3 sunt instrumente ROLAP, cele din grupele 4 i 5 instrumente MOLAP, cele din grupa 6 instrumente desktop OLAP, iar cele din grupele 2, 4 instrumente OLAP hibride (cele scrise italic). n tabelul 4.4 sunt prezentate produse OLAP cu faciliti Web, iar n tabelul 4.5 este prezentat o evaluare a ctorva instrumente OLAP lund n considerare urmtoarele criterii: modul de vizualizare a datelor, tipul de aplicaii, modul de stocare a datelor, modul de procesare a datelor, tipul de arhitectur utilizat, sistemul de operare utilizat i limbajul utilizat. Tabelul 4.3
Clasificarea instrumentelor OLAP
Modul de procesare multidimensional SQL n mai muli pai Motor OLAP pe server Modul de stocare a datelor multidimensionale BDR 1. Microstrategy 2. IBM DB2 OLAP Server Informix Metacube Microsoft OLAP Services Oracle Express Pilot Analysis Server Seagate Holos Applix TM-1 White Light 3. Oracle Discoverer Informix MetaCube BDMD Fiiere client

Motor OLAP pe client

4. Comshare Decision Essbase Oracle Express, Seagate Holos, Gentia Microsoft OLAP Services Power Play Enterprise Server Pilot Analysis Server Applix TM-1 5. Dimensional Insight Comshare FDC

6. Brio Enterprise, Business Objects Cognos PowerPlay Personal Express

107

Iniiere n tehnologia OLAP-teorie i practic Tabelul 4.4


Produse OLAP cu faciliti Web
Firma Arbor Software Brio Technology Inc. Business Objects Inc Cognos Corp. Comshare Inc. Dimensional Insight Inc. Information Advantage Inc. InformixSoftware Inc. Kenan Systems Corp. Microstrategy Inc. Oracle Corp. Pilot Software Inc. Seagate Software IMG TM-1 Software Produsul OLAP Essbase BrioQueryEnterprise Business Objects Power Play Commander Decision CrossTarget DecisionSuiteServer Informix MetaCube Acumate Es DSS Server Oracle Express Server Pilot Analysis Server Holos TM-1 Server Produsul Web Essbase Web Gateway BrioQuery Enterprise Business Objects PowerPlay CDWeb DataFountain WebOLAP MetaCube for the Web Acumate Web DSS Web Oracle Express Web Agent Pilot Internet Publisher Holos TM-1Server Modul de stocare BDMD BDR BDR BDR BDMD BDR BDMD BDR BDMD BDR BDMD BDMD BDMD BDMD

Tabelul 4.5
Analiz comparativ a instrumentelor OLAP
Produs OLAP Power Play Cognos Vizualizarea datelor Tabele Grafice, Rapoarte Rapoarte HTML, Grafice Rapoarte, tabele, grafice Rapoarte Tipul de aplicaii Analiza vnzarilor Analiz financiar Controlul calitii Analiza vnzrilor Modul de stocare Fiiere BDR BDM BDM Modul de procesare Motor OLAP pe client/ server Motor OLAP pe server Motor OLAP pe server / client Motor OLAP pe client SQL n mai muli pai Motor OLAP pe server Tipul de arhitectur Client/ server Platforma utilizat Server Unix WinNT, Client Windows Windows Limbajul utilizat APL2000 pentru aplicaii financiare Orientat obiect Express Basic Visual Basic SQL

DecisionBas e OLAP Computer Associates Oracle Express Oracle Business Objects DSS Micro strategy Acumate Kenan Systems

Client/ server pe trei niveluri Client/ Server, PC Client/ server pe dou/trei niveluri Client/ server Client/ server

Analiza vnzrilor Analiza financiar Analiza vnzrilor Analiza financiar Marketing

BDR BDM Fiiere Fiiere

Server WinNT Client Windows WinNT

Rapoarte, grafice

BDR

Rapoarte

Informix Metacube Informix Software

Rapoarte, grafice

Telecomunicaii, Servicii financiare, marketing, Analiza vnzrilor, previziuni, Segmentarea pieei, Analiza clienilor Analiza vnzrilor Analiz financiar

BDM

Server WinNT Client Windows Server WinNT Client Windows

Limbaj multidim MSPL

BDR

Motor OLAP pe server/ client

Client/ server pe dou i trei niveluri

Server WinNT Unix, Client Windows

Limbaj OO, SQL

108

Caracteristicile sistemelor OLAP


Produs OLAP DB2 OLAP IBM Vizualizarea datelor Rapoarte Tipul de aplicaii Telecomu nicaii (Decision Edge), marketing, previziuni Modul de stocare BDR BDM Modul de procesare Motor OLAP pe server (motor Essbase) Tipul de arhitectur Client/ server pe trei niveluri Platforma utilizat Server WinNT, OS/2 Unix Limbajul utilizat SQL Interfa API pentru Visual Basic, C

Microsoft OLAP Services Microsoft

Grafice, rapoarte

Previzionri Analiz financiar

BDR BDM

Motor OLAP pe server

Client/ server

Essbase Arbor Software

Rapoarte, grafice

Analiza de pia Analiza profitabilitii, Planificare, Analiza bugetar, Previzionare, EIS

BDM Fiiere BDR

Motor OLAP pe server

Client/ server

Server WinNT Unix VAX/ VMS Sun, Mac, Aix server WinNT OS/2 IBM-AIX Sun Solaris AS/400 Client Windows Unix

Visual Basic

Interfa API pentru Visual Basic, C, Power Builder

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 puin atenie 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 zpad). 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 cerinele utilizatorilor i de valabilitatea i structura datelor din sistemele operaionale. Cele mai multe proiecte folosesc o metodologie evolutiv [KIMB96],[INMO92]. Proiectele ncep cu un prototip, care este apoi modificat n concordan cu cerinele 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 cerinele aplicaiei; procesele de afaceri pe care analistul trebuie s le modeleze, se modific frecvent. Aceste modificri trebuie reflectate n cerinele de analiz (noi tipuri de cereri). ntruct modelul multidimensional determin facilitile de analiz posibile, noile cerine conduc la modificri ale schemei bazei de date. La ora actual se identific dou abordri n proiectarea modelului multidimensional conceptual i anume: Abordarea orientat pe sursele de date ce presupune existena sistemului informatic tranzacional i ncepe cu analiza datelor existente n baza de date

110

Proiectarea sistemelor OLAP operaional. Aceast abordare utilizeaz n general ca punct de pornire, modelul entitate-asociere al bazelor de date operaionale existente, pentru domeniul analizat, pe care apoi l transform n modelul multidimensional (de exemplu metoda lui Cabibbo [CABB98a] i metoda lui Golfarelli [GOLF99]). De asemenea, aceast abordare se utilizeaz n special, n procesul de proiectare a sistemelor ROLAP, care utilizeaz un depozit de date pentru stocarea datelor multidimensionale. Abordarea orientat pe cereri este utilizat n absena surselor de date (i a modelelor entitate-asociere corespunztoare). Pe baza studiului i analizei activitii pentru care se construiete sistemul OLAP, se vor identifica indicatorii de performan ai activitii respective (variabilele cubului n-dimensional). Aceast abordare se poate utiliza n procesul de proiectare a sistemelor MOLAP. Indiferent de tipul abordrii, se utilizeaz aceleai concepte, iar paii sunt asemntori (figura 5.1).
Modelarea multidimensional datelor

Orientat pe cereri

Orientat pe surse de date

Identificarea msurilor (variabilelor) Identificarea dimensiunilor i a ierarhiilor Identificarea hypercubului sau a structurii multicub

Identificarea faptelor Identificarea dimensiunilor i a ierarhiilor Identificarea msurilor

Figura 5.1 Abordri n modelarea multidimensional a datelor n cele ce urmeaz, se vor prezenta cteva metode de modelare multidimensional i anume: metoda lui Cabibbo, metoda lui Golfarelli i metoda lui Thomsen. Ele utilizeaz concepte asemntoare (de exemplu conceptul de dimensiune, ierarhie, msur, fapt), dar etapele parcurse pentru proiectarea modelului multidimensional conceptual sunt diferite.

5.1 Metoda lui Cabibbo i Torlone


Metoda propus de autori, pentru proiectarea unei model multidimensional [CABB98b] are ca punct de pornire modelul entitate-asociere al bazelor de date operaionale existente pentru domeniul analizat. Se consider c modelul entitate-

111

Iniiere n tehnologia OLAP-teorie i practic asociere existent este complet (conine toate informaiile necesare n procesarea analitic) i normalizat. Metoda propus const din patru etape: identificarea faptelor, dimensiunilor, ierarhiilor i msurilor; restructurarea modelului entitate-asociere; derivarea unui graf dimensional; transformarea n modelul multidimensional. De obicei, primele dou etape nu sunt strict secveniale, n multe cazuri se execut n paralel (n etapa de restructurare a modelului entitate-asociere, faptele i dimensiunile identificate pot fi rafinate i modificate). Apoi celelalte etape se execut secvenial, ntruct fiecare etap cere completarea etapei anterioare. Autorii utilizeaz aceast metod pentru a proiecta un model multidimensional conceptual pentru analiza activitii de desfacere a unei firme. Modelul entitateasociere al activitii de desfacere este prezentat n figura 5.2.

5.1.1 Identificarea faptelor, dimensiunilor, ierarhiilor i msurilor


n prima etap, se face o analiz atent a modelului entitate-asociere existent pentru a se identifica faptele, msurile i dimensiunile de interes pentru domeniul analizat. Faptele pot fi entiti, asocieri sau atribute ale modelului entitate-asociere, importante n procesul decizional. O msur este o propietate atomic a unui fapt (n general un atribut numeric al unui fapt sau un numr al instanelor lui). O dimensiune este o subschem a modelului entitate-asociere ce descrie o perspectiv prin care analiz unui fapt poate fi executat. Firma dorete pe de o parte s cunoasc evoluia n timp a volumului vnzrilor i veniturile corespunztoare, pe de alt parte analiza variaiei costurilor de producie ale produselor vndute. n acest caz, faptele sunt entitatea Vnzare i atributul cost al entitii Produs. Faptul Vnzare are urmtoarele msuri: numrul de vnzri (numrul de instane ale entitii) i veniturile obinute din vnzri (atributul venit). Faptul Cost are msura valoarea costului. De-a lungul unei dimensiuni, analiza unui fapt este executat prin consolidarea (agregarea) datelor. De aceea, se poate identifica o dimensiune prin navigarea n schem ncepnd de la fiecare fapt i incluznd conceptele ce sugereaz un mod de a grupa datele (entitile asociate prin relaii (1:m) sau atributele dup care se pot face clasificri, de exemplu atributele vrsta sau sex). Se consider de exemplu, faptul Vnzare. Se poate vedea c fiecare vnzare este asociat cu produsul corespunztor vndut i fiecare produs este asociat cu categoria i marca corespunztoare. nseamn c vnzrile pot fi analizate dup tipurile de produse vndute, la diferite niveluri de agregare (produs, categorie, marc). Astfel, o posibil dimensiune pentru analiza vnzrilor este Tipologia produsului vndut. Aceast dimensiune include entitile Produs, Marc i Categorie. Se poate, de asemenea, observa c pentru unele vnzri exist informaii despre clientul asociat. Clienii pot fi grupai dup vrst, sex, ora de reedin i ocupaie. Deci o alt

112

Proiectarea sistemelor OLAP dimensiune pentru analiza vnzrilor este Tipologia clientului. Aceast dimensiune include entitile Client i Ocupaie (i atributele lor corespunztoare). De asemenea, Locaia vnzrilor este o alt posibil dimensiune pentru analiza vnzrilor. Aceast dimensiune include numai entitatea Magazin. Se poate identifica i o dimensiune temporal pentru analiza vnzrilor (atributul datavnzrii al entitii Vnzare). Aceasta este o dimensiune fundamental n analiza multidimensional.

Figura 5.2 Modelul entitate-asociere

5.1.2 Restructurarea modelului entitate-asociere


n aceast etap, se face o reorganizare a modelului entitate-asociere existent, pentru a pune n eviden faptele i dimensiunile. Aceast etap include urmtoarele activiti : Reprezentarea faptelor ca entiti. n general, faptele corespund la entiti, dar pot corespunde i la atribute sau asocieri. n aceste cazuri, este necesar s fie transformate n entiti. De exemplu, costul de producie al unui produs este un atribut n modelul entitate-asociere iniial. Acest atribut poate fi transformat uor ntr-o entitate Cost al produsului prin adugarea unei asocieri (1:1) ntre noua entitate i entitatea Produs (figura 5.3). Se poate ntmpla ca unele dimensiuni importante pentru analiz s lipseasc din modelul entitate-asociere al bazelor de date operaionale surs, dar pot fi derivate din baze de date externe. De exemplu, analiza efectiv a costurilor poate fi realizat numai prin comparaia lor, n diferite perioade de timp. De aceea, este necesar a se aduga informaii temporale despre

113

Iniiere n tehnologia OLAP-teorie i practic costuri. Dac se consider c se cunoate momentul exact al operaiilor de actualizare a costurilor i c costurile se modific de regul, o singur dat pe lun, se face restructurarea entitii Cost. Astfel, ntre entitatea Produs i entitatea Cost apare o asociere (1:m), iar ntre entitatea Cost i entitatea Luna o asociere (m:1) (figura 5.4).
Cod produs Produs denumire Cost produs valoare

Figura 5.3 Restructurarea entitii Cost Rafinarea nivelurilor din fiecare dimensiune. n fiecare dimensiune trebuie s se reprezinte ntr-un mod explicit, nivelurile de agregare importante pentru analiza faptelor (de exemplu atributele categorie i marca unui produs) i s se diferenieze de conceptele ce sunt numai descriptive i nu pot fi utilizate n analiz, ntruct nu permit realizarea de agregri (de exemplu atributele adresa i numrul de telefon al unui magazin). n practic, aceast activitate presupune urmtoarele transformri : nlocuirea relaiilor (m:m); adugarea de noi concepte (entiti sau atribute) ce reprezint noi niveluri de agregare; stabilirea unui identificator pentru fiecare entitate nivel; eliminarea conceptelor irelevante. Se consider de exemplu, entitatea Client. Clienii se pot agrega dup vrst, sex i ora de reedin. Dac se dorete agregarea clienilor n funcie de ocupaia lor, nu se poate utiliza direct entitatea Ocupaie, ntruct ntre entitile Client i Ocupaie exist o asociere (m:m), fiecare client are n general mai multe ocupaii. Totui se poate nlocui aceast entitate cu o nou entitate Ocupaia Principal ce descrie ocupaia unui client n cea mai mare parte a timpului, astfel c relaia este transformat din (m:m) n (1:m) (figura 5.4). Dimensiunea Locaie const din entitatea Magazin. Ar putea fi de interes agregarea magazinelor dup ora i zona geografic (aceast informaie poate fi derivat din atributul adresa). Aceasta poate fi fcut explicit prin adugarea unor noi entiti Ora i Zon (figura 5.4). Pentru noile entiti se stabilete un identificator. Dac se dorete agregarea vnzrilor, de exemplu dup zile, luni, perioade speciale (Crciun, Pate etc), trimestre i ani se adaug noi entiti. Cnd toate dimensiunile au fost examinate, pasul final const n eliminarea conceptelor (entiti, atribute i relaii) ce nu sunt folositoare n procesarea analitic (de exemplu niveluri de agregare nesemnificative). Modelul entitate-asociere obinut dup etapa de restructurare este prezentat n figura 5.4.

114

Proiectarea sistemelor OLAP

Figura 5.4 Modelul entitate-asociere restructurat

5.1.3 Derivarea unui graf dimensional


Pornind de la modelul entitate-asociere restructurat, se poate deriva un graf special numit dimensional. Un graf dimensional reprezint faptele i dimensiunile modelului entitate-asociere restructurat. Fiecare nod al grafului corespunde unui concept specific (entitate sau atribut), iar reprezentarea unui domeniu se face astfel: dac nodul corespunde la o entitate, se reprezint domeniul cheii entitii, iar dac nodul corespunde unui atribut, se reprezint domeniul atributului. Arcul ntre dou noduri reprezint o funcie ntre domeniile corespunztoare (arcul este punctat dac funcia este parial). Figura 5.5 reprezint graful dimensional obinut din modelul entitate-asociere prezentat n figura 5.4. n acest graf, nodul Produs reprezint domeniul atributului cod_produs, nodul Luna reprezint domeniul atributului nume al entitii corespunztoare, nodul Venit reprezint domeniul atributului

115

Iniiere n tehnologia OLAP-teorie i practic venit al entitii Vnzare. Se observ c dimensiunile devin subgrafuri ale grafului dimensional. n graful dimensional se pot distinge patru tipuri de noduri: noduri de fapte (fact nodes) ce au marginile bolduite (ele i au originea n entitile de fapte); noduri nivel (level nodes) sunt acelea ce apar ntr-o dimensiune; noduri descriptive sunt noduri reprezentate n afara dimensiunilor, dar sunt legate prin arce de nodurile nivel (se obin din atributele descriptive); i noduri msuri legate printr-un arc la un nod de fapte. De exemplu, nodul Vnzare este un nod de fapte, nodul Valoare i nodul Venit sunt noduri msuri, iar nodul Adres este un nod descriptiv.

5.1.4 Transformarea n modelul multidimensional conceptual


Modelul multidimensional conceptual (figura 5.6) poate fi derivat din graful dimensional i anume: fiecare dimensiune a grafului dimensional devine o dimensiune a modelului multidimensional; fiecare nod nivel al grafului devine un nivel al modelului multidimensional; fiecare arc al subgrafului corespuztor se transform ntr-o funcie de agregare (roll-up). Subgrafurile grafului dimensional, asociate cu dimensiunile, determin ordinea parial pe nivelurile modelului multidimensional. Trebuie s se defineasc, de asemenea, un numr de dimensiuni atomice pentru a reprezenta nodurile msuri i nodurile descriptive. De exemplu, se poate defini o dimensiune numeric pentru veniturile obinute din vnzri i costurile produselor i o dimensiune ir de caractere pentru numele produselor i adresele magazinelor. n exemplul prezentat de autori, modelul multidimensional conceptual este implementat n baze de date relaionale i transformat n schema stea. Tabelele de fapte pot definite astfel: pentru fiecare nod de fapte din graful dimensional se selecteaz o combinaie de niveluri de la dimensiunile asociate (dimensiuni pentru care exist un arc de la nodul de fapte la ele). Se pot selecta mai multe niveluri pentru fiecare dimensiune corespunztoare i nu toate dimensiunile asociate cu un nod de fapte trebuie s fie selectate. n exemplu studiat sunt identificate trei msuri: cantitatea de produse vndute pentru fiecare tip de produs i n fiecare magazin, veniturile obinute prin vnzarea fiecrui tip de produs, n fiecare magazin i costul lunar al produselor. Aceste msuri pot fi reprezentate de urmtoarele tabele de fapte: Vnzare [timp: ziua, produs: produs, locaie: magazin] : numeric (obinut din faptul Vnzare prin count(vnzare)); Venituri [timp: ziua, produs: produs, locaie: magazin]: numeric (obinut din faptul Vnzare prin sum(venit(vnzare));

116

Proiectarea sistemelor OLAP Costul produsului [timp: luna, produs: produs]: numeric (obinut din faptul Cost prin valoare(cost))
Produs nume marca cost valoare

categorie sex client ocupaie princ

produs

venit

vnzare

zi Timp

luna

ora

Locatie magazin

Perioada special

trimestru

vrsta Client

zona adresa

an

Figura 5.5 Graful dimensional

Produs Denumire Marca Categorie etc

Vnzare

Locaie Magazin Ora Zona etc

Timp Ziua Luna Trimestru etc

Cost

Client Sex Vrsta Ora etc

Figura 5.6 Modelul multidimensional conceptual

117

Iniiere n tehnologia OLAP-teorie i practic Metoda lui Cabibbo poate fi utilizat n procesul de proiectare a unui sistem ROLAP, care presupune utilizarea unui depozit de date pentru stocarea datelor multidimensionale.

5.2 Metoda lui Golfarelli


n [GOLF99], Golfarelli propune o metodologie pentru proiectarea unui depozit de date (poate fi utilizat pentru proiectarea unui sistem ROLAP). Aceast metodologie pune accentul pe proiectarea modelului multidimensional conceptual. n tabelul 5.1 sunt prezentate etapele acestei metodologii. Tabelul 5.1 Metodologia de proiectare a unui depozit de date Etape Intrri Ieiri Personalul implicat Analiza sistemului documentaia schema bazei de Proiectant, informatic existent existent date operaionale manageri ai sistemului informatic Specificarea schema bazei de faptele Proiectant, cerinelor date operaionale utilizatori finali Proiectant Proiectarea schema bazei de modelul conceptual date operaionale, multidimensional (modelul faptele multidimensional) Validarea modelului modelul modelul Proiectant, multidimensional multidimensional multidimensional utilizatori finali conceptual validat Proiectarea logic modelul modelul logic al Proiectant multidimensional, depozitului de modelul logic date utilizat Proiectarea fizic modelul logic al modelul fizic al Proiectant depozitului, depozitului SGBD-ul ales n timpul analizei sistemului operaional proiectantul trebuie: s verifice corectitudinea datelor surs sau dac lipsesc date importante pentru analiz; s selecteze sursele de date operaionale n funcie de calitatea datelor i stabilitatea schemelor lor; s determine care date pot fi integrate n scopul de a obine o viziune complet. Persoanele implicate n aceast etap sunt proiectantul

118

Proiectarea sistemelor OLAP depozitului de date mpreun cu cei care gestioneaz sistemul informatic operaional existent i cu proiectanii si. Specificarea cerinelor const n colectarea i filtrarea cerinelor utilizatorilor, implicnd att proiectantul ct i utilizatorii finali ai depozitului. Se obin ca ieiri faptele i cerinele preliminare legate de procesul de ncrcare a depozitului de date. Stabilirea faptelor are ca punct de pornire modelul entitate-asociere al sistemului informatic operaional. Proiectarea modelului multidimensional conceptual presupune parcurgerea urmtorilor pai: identificarea faptelor; construirea unui arbore al atributelor; rafinarea arborelui; definirea dimensiunilor; definirea msurilor; definirea ierarhiilor. Autorii proiecteaz modelul multidimensional conceptual pentru analiza activitii de desfacere (modelul entitate-asociere este prezentat n figura 5.7). Fiecare instan a entitii Vnzare se refer la un singur produs din bonul de cas. Atributul pre unitar aparine entitii Vnzare i nu entitii Produs, ntruct preul produselor poate varia n timp. Schema logic a bazei de date operaionale (cheile primare sunt subliniate, pentru fiecare cheie extern este prezentat schema referit) este urmtoarea: MAGAZINE(magazin, adresa, telefon, manager_vnzri, oras: ORASE, nrdistrict: DISTRICTE) ORASE (ora, zona: ZONE) STATE (stat) ZONE (zona, stat: STATE) DISTRICTE (nrdistrict, stat: STATE) PRODUSE (codprodus, greutate, mrime, dieta, marca: MARCI, tip: TIPURI) MARCI(marca) TIPURI (tip, grup: GRUPURI, categorie: CATEGORII) GRUPURI (grup, manager_grup marketing) CATEGORII (categorie, departament: DEPARTAMENT) DEPARTAMENTE (departament, manager_departament) BONURI (nrbon, data, magazin: MAGAZINE) VNZARI (codprodus: PRODUSE, nrbon: BONURI, cant, pre unitar) DEPOZITE (depozit, adresa) PROD_DEPOZ (codprodus: PRODUSE, depozit: DEPOZITE)

5.2.1 Identificarea faptelor


Faptele sunt concepte importante pentru procesul decizional i modeleaz evenimente ce au loc n ntreprindere (de exemplu vnzrile). Un fapt poate fi reprezentat n modelul entitate-asociere fie de o entitate F sau de o asociere R de

119

Iniiere n tehnologia OLAP-teorie i practic tip (m:m) ntre entitile E1,.,En. n ultimul caz, pentru simplitate, este indicat a se transforma relaia ntr-o entitate F prin nlocuirea fiecrei ramuri Ei cu o relaie binar ntre F i Ei. Atributele relaiei devin atribute ale lui F, identificatorul lui F este combinaia identificatorilor lui Ei, i=1,n. Entitile sau asocierile care sunt actualizate frecvent (cum ar fi Vnzare) pot fi considerate fapte. Cele care nu se modific frecvent (sunt aproape statice, cum ar fi entitile Magazin i Ora) nu pot fi considerate fapte. Fiecare fapt identificat n modelele entitate-asociere surs, devine rdcin a unei scheme fapt.

Figura 5.7 Modelul entitate-asociere al bazei de date operaionale

5.2.2 Construirea unui arbore al atributelor


Se consider un model entitate-asociere i o entitate F ce identific un fapt. Se numete arbore al atributelor (attribute tree) un semi-arbore n care : fiecare vrf corespunde la un atribut (simplu sau compus) al modelului entitate-asociere; rdcina corespunde la identificatorul lui F (cheia primar); pentru fiecare vrf v, atributul corespunztor determin funcional toate atributele ce corespund descendenilor lui v (figura 5.8).

120

Proiectarea sistemelor OLAP Arborele atributelor va fi utilizat pentru a construi schema fapt. Rdcina arborelui se eticheteaz cu numele entitii F (i nu cu identificatorul ei). Relaiile opionale dintre atributele unei ierarhii sunt puse n eviden n schema fapt (de exemplu atributul dieta). O asociere (1:1) poate fi gndit ca un caz particular de asociere (m:1) i poate fi introdus n arborele atributelor.

5.2.3 Rafinarea arborelui


Nu toate atributele arborelui sunt importante pentru analiz. De aceea, arborele trebuie rafinat n scopul de a elimina nivelurile de detaliu nesemnificative pentru analiz. Prin tergerea unui subarbore, atributele componente vor fi terse i nu vor fi incluse n schema fapt. Astfel, nu se vor putea utiliza pentru agregarea datelor. De asemenea, exist cazuri cnd un vrf al arborelui (ce conine informaii nesemnificative) este ters, dar descendenii lui trebuie pstrai. De exemplu, se poate dori clasificarea produselor direct dup categorie, fr s se ia n considerare informaiile despre tipul lor. Dac se consider v vrful ce trebuie eliminat i v printele su, prin tergerea lui v se mut ntregul subarbore cu rdcina din v n v. Ca rezultat, atributul v nu va fi inclus n schema fapt i nivelul de agregare corespunztor va fi eliminat. Pe de alt parte, toate nivelurile descendente vor rmne. De exemplu, atributul numr bon nu este important pentru analiz, de aceea se elimin acest vrf i arborele este transformat ca n figura 5.9. Atunci cnd un vrf opional este eliminat, toi copiii lui motenesc opionalitatea. De asemenea, dac granulaia unei entiti E trebuie pstrat n schema fapt, vrful corespunztor este pstrat, n timp ce unul sau mai muli copii ai lui pot fi eliminai. Altfel, dac granulaia lui E este prea fin, vrful corespunztor poate fi eliminat i unii din copiii lui pstrai.

manager categorie Dept tip

marca dieta

cant dimen

data

manager adresa telefon oras judet stat

greutate codprodus

vnzare nrbon magazin

manager grup

pret unitar

nrdistrict

Figura 5.8 Exemplu de arbore al atributelor

121

Iniiere n tehnologia OLAP-teorie i practic

5.2.4 Definirea dimensiunilor


Dimensiunile determin cum pot fi agregate instanele unui fapt. Dimensiunile trebuie s fie alese din arborele de atribute (vrfurile copil ale rdcinii, incluznd i atributele care au devenit copii ai rdcinii, dup ce arborele a fost rafinat). Stabilirea dimensiunilor este o etap important, ntruct determin granulaia instanelor unui fapt. De asemenea, Timpul este o dimensiune important. Modelele entitate-asociere pot fi clasificate n funcie de modul cum trateaz timpul n fotografii (snapshot) i temporale. Un model fotografie descrie starea curent a domeniului aplicaiei (versiunile vechi ale datelor sunt nlocuite de noile versiuni). Un model temporal descrie evoluia n timp a domeniului aplicaiei (versiunile vechi ale datelor sunt reprezentate explicit i stocate). Cnd se utilizeaz un model temporal, timpul este reprezentat explicit ca un atribut n modelul entitate-asociere i astfel poate deveni o dimensiune a schemei fapt. Timpul apare n arborele atributelor uneori ca un copil al unor vrfuri diferite de rdcin. Subarborele va fi rafinat, n scopul de a deveni timpul o dimensiune (un copil al rdcinii). n modelul fotografie, timpul nu este reprezentat explicit (modelul reprezint datele la momentul curent). Totui, timpul ar putea fi adugat ca o dimensiune a schemei fapt. n exemplu prezentat, atributele alese ca dimensiuni sunt: Produs, Magazin i Sptmna.
marca dieta

manager categorie Dept tip greutate

cant dimen

data

manager adresa telefon

codprodus manager grup pret unitar

vnzare

magazin

oras

judet

stat

nrdistrict

Figura 5.9 Rafinarea arborelui

5.2.5 Definirea msurilor


Se construiete un dicionar care descrie modul cum se calculeaz aceste msuri pe baza atributelor modelului entitate-asociere surs. Msurile determinate (cantitatea_vndut, volumul_vnzrilor, numr_clieni) sunt afiate n schema fapt. Un fapt poate s nu aib asociate atribute (singura informaie ce este nregistrat este apariia faptului).

122

Proiectarea sistemelor OLAP n unele cazuri, agregarea nu este necesar pentru a defini msurile, ntruct a fost deja executat la nivelul modelului entitate-asociere. De exemplu, fiecare instan a entitii Vnzare din modelul entitate-asociere ar putea descrie vnzrile totale sptmnale pentru fiecare produs, n fiecare magazin. n acest caz, instanele entitii corespund (1:1) la instanele faptului Vnzare i atributele entitii pot fi transformate direct n msuri.

5.2.6 Definirea ierarhiilor


Ultima etap este definirea ierarhiilor n dimensiuni. n fiecare ierarhie, atributele trebuie aranjate ntr-un semi-arbore astfel c ntre fiecare nod i descendenii si exist o relaie (1:m). Se pot aduga noi niveluri de agregare (de exemplu, n dimensiunea Timp se adaug atributul luna). n aceast etap, sunt identificate atributele care nu sunt folosite pentru agregare ci numai pentru scopuri informative (de exemplu atributele adresa i greutate). n etapa de validare a modelului multidimensional, se verific dac dimensiunile i msurile au fost corect identificate i ierarhiile bine structurate. Proiectarea logic are ca intrri modelul multidimensional conceptual i un set de informaii suplimentare (frecvena de utilizare, spaiu de stocare valabil etc). Este necesar s se stabileasc modelul logic utilizat (relaional sau multidimensional). De exemplu, un model multidimensional conceptual poate fi implementat n baze de date relaionale prin scheme stea sau fulg de zpad. n aceast etap sunt create tabelele de fapte i cele de dimensiuni pe baza modelului multidimensional conceptual i n funcie de modelul logic adoptat. n cel mai simplu caz, n care este adoptat schema stea, fiecare schem fapt f=(M, A, N, R, O, S) cu Dim(f)={d1, dn} i M={m1, , mz} este transformat ntr-o tabel de fapte: FT_f(k1, .kn, m1,.mz) cu n tabele de dimensiuni: DT_d1 (k1, a11,., a1v1, a11,., a1u1) DT_dn (kn, a n1,., a nvn, a n1,., a nun) Ierarhia din dimensiunea di include atributele dimensionale ai1,., aivi i atributele ai1,., aiui. De exemplu, schema stea pentru exemplu din figura 5.9 devine: volumul_vnzrilor, FT_VANZARE(codprodus, codtimp, codmagazin, numr_clienti, cantitatea_vndut) DT_PROD (codprodus, produs, greutate, dieta, marca, ora, tip, categorie, departament, manager_departament, ..) DT_TIMP (codtimp, data, ziua din sptmn, luna,) DT_MAGAZIN(codmagazin, magazin, telefon, adresa, manager de vnzri, ora, zona)

123

Iniiere n tehnologia OLAP-teorie i practic

5.3 Metoda lui Erik Thomsen


n [THOM96] Erik Thomson propune o metod pentru proiectarea modelului multidimensional conceptual ce poate fi utilizat n proiectarea i realizarea unui sistem MOLAP sau ROLAP. n etap de analiz a cerinelor, se vor analiza aspectele fizice i logice ale activitii pentru care se construiete sistemul OLAP. Se va stabili, pe baz de interviu sau chestionar: frecvena de utilizare a sistemului pe categorii de utilizatori; numrul de utilizatori pe categorie i categoriile de utilizatori ai sistemului; tipul de dialog specific pentru fiecare categorie de utilizatori; volumul de date utilizat de fiecare categorie de utilizatori, n timpul unei sesiuni de lucru; categoriile de informaii vizualizate de fiecare categorie de utilizatori; tipurile de instrumente utilizate pentru a vizualiza sau analiza datele; volumul de date de intrare; sursele de date i problemele ce apar ca urmare a integrrii acestor surse eteroge; tipurile de calcule ad-hoc ce se execut de regul pe server; tipurile de calcule ce trebuie antecalculate; tipurile de calcule executate de regul pe client; frecvena de actualizare a datelor pe server; tipurile de calculatoare, sistemele de operare i configuraiile de reea utilizate. Proiectanul va culege informaii de la toate persoanele care utilizeaz direct sau indirect sistemul (utilizatori finali, operatori de date, administratori de sistem, persoane responsabile pentru sursele de date etc). Unele din informaiile relevante pot fi exprimate de utilizatori sub form de restricii la soluie. O soluie poate include urmtoarele tipuri de restricii de sistem: tipul de calculator, sistemul de operare, rezoluia monitorului, protocolul de reea, instrumentele client, numrul de utilizatori ai sistemului, tipurile de date valide etc. Pe baza acestor informaii se va construi o diagram a surselor i a modului de utilizare (arat ce tipuri de date intr n sistem i cine utilizeaz datele). Este un model logic al situaiei curente. Pentru definirea modelului multidimensional conceptual se parcurg urmtorii pai: definirea cuburilor i a dimensiunilor; rafinarea cuburilor n-dimensionale; identificarea ierarhiilor; identificarea variabilelor; stabilirea formulelor de calcul necesare analizelor i a tipurilor de agregare; tratarea fenomenului de mprtiere definirea modelelor de calcul necesare analizelor.

124

Proiectarea sistemelor OLAP

5.3.1 Definirea cuburilor i a dimensiunilor


Definirea cubului de date sau a structurii multicub va depinde, n primul rnd, de tipul i formatul surselor de date. Aceste surse vor determina identificarea dimensiunilor cubului i a variabilelor. De exemplu, dac sursa de date este un depozit de date cu o schem stea, atunci tabelele de dimensiuni vor deveni dimensiunile cubului n-dimensional, iar din tabela de fapte se vor identifica variabilele. Exist instrumente OLAP care genereaz automat cubul n-dimensional, dac se cunoate schema stea a depozitului de date (de exemplu Oracle Express Relational Manager). n absena surselor de date, se vor identifica mai nti, pe baza studiului i analizei activitii pentru care se construiete sistemul, variabilele sau indicatorii de performan ai activitii respective. Apoi pentru fiecare indicator (variabil) se vor stabili factorii n funcie de care variaz (dimensiunile cubului n-dimensional). De exemplu, ntr-o aplicaie pentru analiza vnzrilor, variabilele ar putea fi volumul vnzrilor, costurile i cantitatea vndut, iar dimensiunile Timpul, Locaia i Produsul. ntr-o aplicaie de planificare a bugetului, variabilele ar fi veniturile stabilite, cheltuielile alocate, iar dimensiunile Unitatea organizaional, Timpul i Scenariu. n cazul structurii multicub, este important a se stabili de la nceput dimensiunile comune.

5.3.2 Rafinarea cuburilor n-dimensionale


Structura multidimensional, identificat n etapa anterioar, se poate rafina prin adugarea sau tergerea dimensiunilor. Pentru a elimina valorile fr semnificaie i a reduce explozia datelor derivate n cub, se pot combina dou sau mai multe dimensiuni ntr-o singur dimensiune. De asemenea, se pot aduga dimensiuni i anume dimensiunea Timp (dac nu exist), o dimensiune foarte important n sistemele OLAP. Este necesar a se stabili i dimensiunile care se modific frecvent i care este rata de modificare a fiecrei dimensiuni. Unele dimensiuni nu se modific n timp, n special dac modelul este utilizat pe termen scurt. Cele mai frecvente modificri apar de obicei, n dimensiunile Produs, Organizaie i Locaie geografic. Exist diferite metode de modelare a acestor modificri i anume: se pstreaz copii multiple ale dimensiunilor i se construiesc cuburi separate pentru fiecare versiune de dimensiune; se pstreaz o singur dimensiune n cub ce reprezint reuniunea versiunilor; se pstreaz versiuni explicite pentru dimensiuni ntr-un singur cub [KIMB96].

125

Iniiere n tehnologia OLAP-teorie i practic

5.3.3 Identificarea ierarhiilor din dimensiuni


Dimensiunile pot avea structur ierarhic. Problema care apare este de a stabili tipul de ierarhie : simetric sau asimetric. De exemplu, dimensiunea Timp are o structur ierarhic simetric i se pot identifica nivelurile: zi, luna, trimestru i an. De asemenea, dimensiunea Locaie geografic poate fi o dimensiune cu structur ierarhic simetric cu nivelurile: ar, regiune, jude i ora. Este necesar a se defini relaiile de tip printe-copil ntre nivelurile unei ierarhii. De asemenea, se vor identifica dimensiunile care conin ierarhii multiple i criteriile de grupare a membrilor. De exemplu, produsele se pot grupa dup tip, culoare, mrime sau zon geografic de destinaie. O problem destul de important este de a stabili dac se utilizeaz dimensiuni cu ierarhii multiple sau fiecare ierarhie va deveni o dimensiune separat. n general, se examineaz cardinalitatea relaiilor ce apar ntre membrii dimensiunilor. De exemplu, dimensiunea Produs conine ierarhii multiple, n care produsele pot fi grupate dup categorii, mrci etc. Timpul este un exemplu de dimensiune, n care nivelurile sunt reprezentate frecvent ca dimensiuni separate, n special sptmnile i lunile. 5.3.4 Identificarea variabilelor Pe baza studiului i analizei activitii pentru care se construiete sistemul, se identific variabilele sau indicatorii de performan ai activitii respective. Pentru fiecare variabil se stabilesc dimensiunile corespunztoare. De exemplu, pentru analiza vnzrilor, variabila cantitatea vndut depinde de dimensiunile Timp, Locaie geografic i Produs. De asemenea, fiecare variabil va fi analizat, n scopul de a se determina dac este aditiv, semiaditiv sau neaditiv.

5.3.5 Stabilirea formulelor de calcul i a tipurilor de agregare


O component cheie a modelrii multidimensionale este definirea formulelor i n special a formulelor de agregare. O astfel de formul poate fi o simpl sum a doi membrii sau complex, un sistem de ecuaii. Pentru cele mai multe aplicaii, majoritatea formulelor de agregare sunt sume sau medii aritmetice. Cu excepia variabilelor, cele mai multe dimensiuni cum ar fi Produs, Client, Timp, Locaie geografic sunt ierarhice i sunt utilizate n agregri.

5.3.6 Tratarea fenomenului de mprtiere


Cnd se proiecteaz i implementeaz un sistem OLAP, trebuie s se cunoasc urmtoarele aspecte: cum sunt mprtiate datele i ce tip de mprtiere exist. Unele instrumente stabilesc automat dac datele sunt mprtiate i care combinaii de dimensiuni sunt cele mai mprtiate. Totui este bine ca proiectantul s acorde

126

Proiectarea sistemelor OLAP destul atenie fenomenului de mprtiere, deoarece tipul de mprtiere va afecta analizele executate.

5.3.7 Definirea modelelor de calcul complexe necesare analizelor


Dac sistemul OLAP va fi folosit pentru analize complexe, n special pentru previziuni, se vor defini modelele de realizare a acestor analize. Unele instrumente OLAP au incluse astfel de modele, n acest caz proiectantului i revine sarcina de a alege modelul adecvat. De asemenea, Erik Thomsen propune i un mod de reprezentare a unui cub ndimensional, n care segmentele verticale reprezint dimensiunile cubului ndimensional, iar pentru fiecare segment se specific nivelul de granulaie i direcia de agregare (figura 5.10). 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. n figura 5.11 se prezint un cadru generalizat al etapelor acestui proces evolutiv. Se consider c aceste etape ar trebui parcurse indiferent c se proiecteaz un sistem ROLAP sau un sistem MOLAP. De asemenea, se observ c modelarea multidimensional a datelor reprezint o etap central n proiectarea unui sistem OLAP.
Locaie geografic 1 Variabile pentru analiza vnzrilor: - volumul vnzrilor - cantitatea vndut - numrul de clieni etc Produs 1 500 10000 Timp 1 10 500

10 100

Not: dimensiunea Locaie geografic are trei niveluri ierarhice (ara, jude, ora) cu 1, 10 i 100 de membrii fiecare nivel. Nivelul de granulaie de baz este oraul, iar direcia de calcul i agregare este simbolizat prin sgeat cu linie ntrerupt.

Figura 5.10 Reprezentarea grafic a unui cub n-dimensional Procesul de proiectare a modelului conceptual multidimensional depinde foarte mult de cerinele utilizatorilor, de valabilitatea i structura datelor din sistemele operaionale surs. Identificarea cerinelor este foarte mult orientat pe nelegerea domeniului problemei, pentru care modelarea va fi fcut. Pentru identificarea cerinelor se folosesc tehnici tradiionale cum ar fi interviurile cu utilizatorii finali, studiul documentelor existente i rapoartelor. Aceste cerine vor fi punctul de pornire n proiectarea modelului multidimensional conceptual.

127

Iniiere n tehnologia OLAP-teorie i practic Cadrul generalizat din figura 5.11 ncearc s grupeze cerinele utilizatorilor n dou categorii i anume: cerine orientate pe proces i cerine orientate pe informaii (figura 5.12) [BALL98]. Pentru sistemele ROLAP, care utilizeaz un depozit de date pentru stocarea datelor multidimensionale, este foarte dificil de a identifica, n etapa de studiu i analiz a cerinelor informaionale, toate cerinele utilizatorilor. De aceea, se consider a fi util i important aceast structurare, pentru a putea fi identificate mai uor cerinele. Cerinele orientate pe proces se refer la principale activiti de prelucrare a informaiilor stocate (de regul ntr-un depozit de date), executate de utilizatori. Din aceast categorie de cerine fac parte: Obiectivele proiectului. Se pot stabili unul sau mai multe obiective i pot fi exprimate textual astfel: Depozitul de date trebuie s suporte analiza costurilor de producie i a veniturilor obinute prin vnzarea produselor fabricate i vndute de firma X. Aceste obiective pot fi folosite pentru a identifica domeniile (subiectele) de interes implicate n proiect i variabilele ce vor fi analizate. n exemplu de mai sus, subiectele de interes sunt produsele i vnzrile. Obiectivele indic c variabilele globale folosite n procesul de analiz a informaiilor sunt costul de fabricaie i venitul obinut din vnzri. Tipurile de cereri reprezint cereri, ipoteze i ntrebri analitice pe care utilizatorii ncearc s le rezolve n activitile de analiz. Aceste cereri sunt exprimate n termenii specifici activitii analizate, n general nu sunt precis formulate i nu sunt exprimate n limbaj SQL. Exemple de tipuri de cereri frecvent folosite: cereri de verificare a existenei cum ar fi : S-a vndut un anume tip de produs la un anumit client?; cereri de comparare cum ar fi : S se compare valoarea comenzilor a doi clieni pe ultimele ase luni sau S se compare numrul de produse dintro anumit categorie, vndute sptmnal, n fiecare magazin; cereri de analiz a tendinelor cum ar fi : Care este tendina vnzrilor pentru un grup de produse, n ultimele 12 luni?; cereri de analiz statistic cum ar fi : S se calculeze media vnzrilor pe categorii de produse i regiuni. Scenariile de analiz a datelor sunt un mod de a aduga substan la setul de cerine ce sunt identificate i analizate. Din pcate sunt mai greu de obinut dect alte cerine de prelucrare i de aceea, nu sunt ntotdeauna valabile pentru analiza cerinelor. De exemplu, pentru modelarea depozitului de date se pot folosi dou tipuri de scenarii: Scenarii pentru fluxul de execuie a cererilor. Aceste scenarii reprezint secvene de cereri pe care utilizatorii finali le execut n activitatea de analiz i sunt utile pentru a crea o mai bun nelegere a procesului de analiz a informaiilor; Strategii de inferen a cunotinelor. Aceste cerine confirm faptul c activitile executate de utilizatorii finali au caracteristici de sistem expert. Cele mai simple forme de strategii sunt acelea care arat cum utilizatorii execut operaii de drill down i roll up de-a lungul ierarhiilor.

128

Proiectarea sistemelor OLAP Cerinele orientate pe informaii se refer la principalele categorii de informaii i date ce sunt cerute de utilizatori pentru activitile de analiz i anume: subiectele informaionale (information subject areas) sunt informaii folosite pentru a construi modelul de date la nivelul ntreprinderii. Aceste subiecte indic scopul proiectului i permite analistului de a corela proiectul cu alte pri deja proiectate ale depozitului de date sau cu centrele de date existente. De exemplu, subiecte informaionale de interes pot fi: produsele, vnzrile i producia (incluznd stocurile) etc. Dei vnzrile se fac la clieni, deci sunt i ei implicai, nu exist ntotdeauna o cerin de a include subiectul Clieni n proiect. modelele de date valabile ca modele la nivel de ntreprindere, modelele entitate-asociere sau modelele multidimensionale deja existente. Etapa de proiectare a modelului multidimensional conceptual este structurat n trei subetape i anume: proiectarea modelului multidimensional conceptual iniial, rafinarea modelului multidimensional i validarea modelului multidimensional. Se consider c aceste subetape trebuie executate indiferent c se proiecteaz un sistem ROLAP sau MOLAP. De asemenea, n ceea ce privete proiectarea modelului multidimensional iniial, se identific dou abordri: una orientat pe cereri i alta orientat pe sursele de date. Rafinarea modelului multidimensional presupune stabilirea nivelurilor de granulaie pentru dimensiuni i msuri, stabilirea tipurilor de agregare, tratarea fenomenului de mprtiere (n special pentru sistemele MOLAP), stabilirea metadatelor pentru elementele modelului multidimensional (n special pentru sistemele ROLAP). Validarea modelului multidimensional presupune verificarea coerenei i completitudinii modelului multidimensional conceptual i dac corespunde cerinelor utilizatorilor. n etapa de proiectare logic modelul multidimensional conceptual se transform ntr-un model logic n funcie de tipul de implementare ales. De exemplu, pentru sistemele ROLAP se transform n schema stea sau fulg de zpad, identificndu-se tabelele de fapte i tabelele de dimensiuni corespunztoare. n etapa de proiectare fizic, se stabilete dimensiunea bazei de date sau tehnicile de optimizare utilizate (tipuri de indeci, clustere), n special pentru sistemele ROLAP. Urmeaz etapa de construire i testare a sistemului OLAP care pune accentul pe definirea modelelor de analiz complexe, realizarea i testarea elementelor componente ale interfeei, realizarea prototipului i testarea lui mpreun cu utilizatorii. n aceast etap, se stabilesc ce produse software i arhitecturi se folosesc. n etapa de implementare este inclus ncrcarea iniial cu date a bazei de date (pentru prima iteraie a ciclului de proiectare i realizare a sistemului OLAP). Dac exist un volum mare de noi cerine, ncepe o nou iteraie a ciclului de proiectare. Acest cadru generalizat va fi utilizat ca metodologie n capitolul 9 pentru proiectarea i realizarea unui sistem MOLAP.

129

Iniiere n tehnologia OLAP-teorie i practic

Iniierea proiectului (definirea problemei)

Studiul i analiza procesului decizional curent i a cerinelor informaionale ale utilizatorilor

Cerine orientate pe proces

Cerine orientate pe informaii

Proiectarea modelului multidimensional conceptual Orientat pe sursele de date

Orientat pe cereri

Rafinarea modelului multidimensional

Validarea modelului multidimensional

Proiectarea logic (BDR/BDM)

Proiectarea fizic

Construirea i testarea sistemului OLAP

Implementarea sistemului OLAP

ntreinerea i funcionarea sistemului OLAP

Figura 5.11 Cadru generalizat al etapelor de proiectare i realizare a sistemelor OLAP

130

Proiectarea sistemelor OLAP

Tipuri de cereri, ipoteze,.

Obiectivele proiectului Subiecte /domenii

Analiza datelor Scenarii

Modele multi dimensionale iniiale Cerine validate

Variabile, colecii de fapte, dimensiuni, entiti

Figura 5.12 Identificarea cerinelor 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 cerinele utilizatorilor i de valabilitatea i structura datelor din sistemele operaionale. La ora actual se identific dou abordri n proiectarea modelului multidimensional conceptual i anume: abordarea orientat pe sursele de date ce presupune existena sistemului informatic tranzacional i ncepe cu analiza datelor existente n baza de date operaional i abordarea orientat pe cereri ce este utilizat n absena 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, msuri.

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 urmtoarele 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 aplicaii OLAP care pot fi executate utiliznd un browser Web.
Instrumente de dezvoltare
Express Objects Express Analyzer Express Web Publisher Financial Analyzer Sales Analyzer

BDR (depozite de date)

Nucleul (limbajul Express)


BDMD

Utilitare pentru administrare


Express Instance Manager Express Administrator Relational Access Manager fiiere

Figura 6.1 Arhitectura pe componente a lui Oracle Express

132

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Arhitectura pe componente a lui Oracle Express este format din (figura 6.1): Utilitare pentru administrare (Express Instance Manager, Express Administrator i Relational Access Manager). Oracle Express Administrator este un utilitar pentru crearea, configurarea i instalarea bazei de date Oracle Express. Acest utilitar permite crearea bazei de date Express, a elementelor ei componente (msuri, dimensiuni, ierarhii, selecii etc) i a programelor de ncrcare a datelor din fiiere externe n baza de date. Aplicaiile OLAP dezvoltate cu Oracle Express pot accesa direct date stocate n baze de date relaionale (depozite de date) cu ajutorul lui Relational Access Manager (RAM). Express Instance Manager este un utilitar orientat Java ce utilizeaz comunicaii CORBA i care gestioneaz i configureaz servicii i sesiuni de lucru. Fiecare instan Express Server este un serviciu ce permite utilizatorilor acces la bazele de date multidimensionale sau aplicaii prin interfee de tip SNAPI (Structured n-dimensional Application Programming Interface), XCA (Express Communications Architectures) sau Express Web Agent. De asemenea, Express Instance Manager permite modificarea parametrilor de configurare a instanelor Express. Instrumente de dezvoltare. Oracle Express Analyzer este un instrument OLAP care permite utilizatorilor s selecteze, afieze i analizeze datele stocate n baza de date multidimensional. Oracle Express Objects este un instrument OLAP ce permite dezvoltarea de aplicaii OLAP i utilizeaz limbajul de programare Express. Conexiunile la baza de date multidimensional se definesc cu editorul de conexiuni (Express Connection Editor). Aceste conexiuni sunt utilizate de aplicaiile dezvoltate cu Oracle Express Objects/Analyzer. Fiecare conexiune definit se salveaz ntr-un fiier de conexiune cu extensia (.xcf) ce conine informaii despre versiunea bazei de date i locaia fiierelor corespunzatoare. Pentru a defini o conexiune Express se selecteaz editorul de conexiuni. Se deschide fereastra de dialog Express Connection Editor. Se selecteaz butonul Define i se deschide fereastra de dialog Connection Settings (figura 6.2). Se introduce numele fiierului de conexiune cu locaia corespunztoare i descrierea conexiunii (se specific serverul la care se face conexiunea). Se selecteaz versiunea de Express (Express Server sau Personal Express). Se introduce numele (host name) sau adresa IP a serverului Express la care se face conexiunea. Se alege protocolul de transport. De exemplu ncacn_ip_tcp (TCP/IP), dac sistemul de operare este Windows. Se introduce identificatorul unic universal (universal unique identifier-uuid) pentru a identifica unic instana Express. Pentru protocolul ncacn_ip_tcp nu se introduce numrul portului (end point) pe care serverul Express accept cereri de conexiune. Se alege tipul de autentificare i nivelul de securitate i se salveaz setrile. Oracle Express Objects este un instrument OLAP ce permite crearea de aplicaii OLAP i briefing-uri complexe care pot fi rulate i n Express Analyzer, precum i realizarea de programe n limbaj Express, prin care se controleaz comportamentul aplicaiei. Acest instrument este un element cheie n pachetul de

133

Iniiere n tehnologia OLAP-teorie i practic instrumente pentru inteligena afacerilor Oracle Integrated Business Intelligence Tools, fiind integrat cu Oracle Discoverer. Aplicaiile OLAP dezvoltate cu Oracle Express Objects acceseaz datele stocate n baze de date multidimensionale sau baze de date relaionale.

Figura 6.2 Definirea unei conexiuni cu Express Connection Editor Fereastra principal a lui Express Objects [DAOE98] are urmtoarele componente (figura 6.3): Titlu ferestrei (title bar) ce afieaz numele aplicaiei OLAP i al obiectului activ; Meniul principal (menu bar) cu opiunile: File, Edit, Database, Layout, Window i Help; Selectorul (selector bar) ce permite un acces mai rapid la facilitile oferite de instrumentul Selector; Bara (Layout toolbar) cu instrumentele ce permit mbuntirea interfeei aplicaiei (de exemplu: alinierea obiectelor, redimensionarea lor etc); Bara de instrumente (main window toolbar) ce permite un acces mai rapid la facilitile oferite de Express Objects (de exemplu New Project, Object Browser, Database Browser, Open Project etc); Bara de stare (status bar) ce afieaz informaii despre activitatea curent (de exemplu ora curent); Caseta de instrumente (toolbox) utilizate pentru a crea diferitele obiecte ale interfeei aplicaiei (de exemplu: pagini, tabele, grafice, butoane etc).

134

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

6.1 Utilitarul Object Browser


Utilitarul Object Browser permite vizualizarea coninutului unui proiect sau a unui briefing (dosar). Cu acest utilitar (figura 6.4) se pot: deschide i vizualiza mai multe proiecte (opiunea View Projects din bara de butoane corespunztore lui Object Browser) sau briefing-uri (opiunea View Briefings); selecta, muta, copia, terge, deriva obiecte incluse n proiect/briefing; muta, copia sau referi obiecte ntre proiecte/briefing-uri; edita i modifica pagini; se pot vizualiza propietile obiectelor cu Object Inspector; specifica diferite aciuni (de exemplu QuickActions) pentru obiecte; lansa n execuie briefing-uri/proiecte etc. Un proiect este unitatea de baz pentru stocarea obiectelor create cu Express Objects. Este un container rdcin ce include celelalte obiecte. Proiectele sunt stocate n fiiere cu extensia (.xpj). Briefing-ul (o colecie ordonat de pagini) este inclus ntr-un proiect i se stocheaz ntr-un fiier cu extensia (.xbr). O aplicaie OLAP poate fi format din unul sau mai multe proiecte.

Figura 6.3 Componentele ferestrei principale

135

Iniiere n tehnologia OLAP-teorie i practic Se poate utiliza Object Inheritance Browser (opiunea View Inheritance din bara de butoane corespunztoare lui Object Browser) pentru a vizualiza relaia printe-copil pentru toate obiectele create. Se afieaz toate obiectele predefinite de Oracle Express Objects, dar i obiectele ce sunt derivate din aceste obiecte (figura 6.5).

Figura 6.4 Object Browser

6.2 Crearea unui proiect


Pentru a crea un proiect se selecteaz opiunea Create a new Project din fereastra de dialog Oracle Express Objects sau opiunea File/New Project din meniul principal sau icoana New project din bara de instrumente a ferestrei principale. Se deschide fereastra New Project (figura 6.6) n care se tasteaz numele proiectului (valoare a propietii Name), descrierea proiectului (valoare a propietii Description) i tipul de proiect (standard sau de tip briefing). Numele nu trebuie s fie un ir mai mare de 8 caractere alfanumerice (primul caracter o liter). Proiectele se pot lansa n execuie i din Express Analyzer, dar nu pot fi modificate. Briefing-urile pot fi editate i executate din Express Analyzer, dar codul scris n limbajul Express nu poate fi modificat. Un proiect poate conine unul sau mai multe briefing-uri sau una sau mai multe pagini. Dac se creeaz un briefing, se utilizeaz Briefing Editor pentru a edita paginile din briefing sau pentru a aduga noi pagini. Pentru a afia Briefing Editor se selecteaz icoana corespunztoare din caseta de instrumente (toolbox) sau se

136

Dezvoltarea sistemelor OLAP cu Oracle Express Objects face dublu click cu mouse-ul pe briefing-ul creat sau se selecteaz opiunea Edit din meniul ataat butonului dreapta al mouse-ului (briefing-ul este selectat cu mouse-ul). Briefing Editor conine o bar de instrumente (Briefing Toolbar) ce permite navigarea ntre paginile briefing-ului, un browser pentru a afia briefingurile deschise i o zon de editare a paginii curente (figura 6.7).

Figura 6.5 Object Inheritance Browser Pentru a adaug o nou pagin la un briefing, se selecteaz briefing-ul i apoi se selecteaz icoana Page din caseta de instrumente (Toolbox) sau se selecteaz icoana New Page din bara de instrumente a Briefing Editor-ului (figura 6.7).

6.3 Deschiderea, nchiderea i lansarea n execuie a unui proiect


Se utilizeaz fereastra de dialog Open Project pentru a selecta i deschide proiectul dorit (opiunea File/Open Project din meniul principal). Se utilizeaz opiunea File/Close Project din meniul principal pentru a nchide un proiect sau opiunea File/Close All Projects pentru a nchide toate proiectele deschise la un moment dat.

137

Iniiere n tehnologia OLAP-teorie i practic Pentru lansarea n execuie a unui proiect se selecteaz opiunea Run an Application or Briefing din fereastra de dialog Oracle Express Objects sau opiunea File/Run din meniul principal. n Oracle Express Objects se pot utiliza meniurile ataate butonului dreapta al mouse-ului pentru a executa mai rapid diferite aciuni. Coninutul meniului este specific obiectului la care este asociat meniul. Opiunile din partea de sus a meniului ofer acces la aciuni comune tuturor obiectelor (de exemplu: duplicarea obiectului, derivarea obiectului, tergerea obiectului etc), iar opiunile din partea de jos a meniului se refer la propieti specifice obiectului. Dac se dorete dezactivarea acestui meniu se seteaz propietatea ShowDefaultPopup pe No (propietatea este inclus n setul de propieti PopupMenus). De asemenea, se poate modifica acest meniu (ce opiuni din meniu se vor afia la momentul execuiei) prin utilizarea ferestrei de dialog Popup Menu Attributes. Se selecteaz obiectul (tabela/graficul/lista cu valorile unei dimensiuni) cu mouse-ul, se afieaz propietile obiectului cu Object Inspector. Se selecteaz (dublu click) propietatea PopuMenuAttributes din setul de propieti PopupMenus i se deschide fereastra de dialog Popup Menu Attributes (figura 6.8). Coloana V indic dac opiunea este vizibil, coloana E indic dac opiunea este activat.

Figura 6.6 Fereastra New Project

138

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

6.4 Crearea, editarea i lansarea n execuie a unei pagini


Un proiect (sau briefing) poate fi format din mai multe pagini. Pentru a crea o pagin se selecteaz (dublu click) icoana Page din caseta de instrumente (Toolbox) sau dublu click pe icoana Table sau Graph (se creeaz automat i pagina corespunztoare). Pentru a lansa n execuie o pagin, se selecteaz opiunea Run din meniul ataat butonului dreapta al mouse-ului sau se selecteaz opiunea Run Page din meniul ataat paginii (colul stnga al paginii). Tot din acest meniu se poate selecta opiunea Close pentru a nchide o pagin sau opiunea Stop Running Page pentru a opri execuia unei pagini i a reveni n modul de editare a paginii. Pagina se poate edita i prin selectarea ei (dublu click) din Object Browser.

Figura 6.7 Briefing Editor Pagina poate avea multe propieti asociate. De exemplu se utilizeaz fereastra de dialog Page Style (opiunea Style din meniul ataat butonului dreapta al mouseului, dac pagina este n modul de editare) pentru a seta propietile referitoare la modul de prezentare a paginii (de exemplu, tipul de bordur, textul care se va afia ca titlu, dac pagina conine butoanele de minimizare/maximizare etc) (figura 6.9).

139

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.8. Fereastra de dialog Popup Menu Attributes

Figura 6.9 Fereastra de dialog Page Style Dac se selecteaz opiunea Size din meniul ataat butonului dreapta al mouseului, se deschide fereastra de dialog Page Size and Position prin care se seteaz

140

Dezvoltarea sistemelor OLAP cu Oracle Express Objects poziia paginii pe ecran, dimensiunea paginii i starea iniial de afiare a paginii (normal, minimizat sau maximizat).

6.5 Componentele lui Object Inspector


Pentru a afia i modifica propietile, evenimentele i metodele asociate unui obiect se utilizeaz Object Inspector. Se selecteaz icoana Object Inspector din bara de instrumente a ferestrei principale sau opiunea Window/Object Inspector din meniul principal sau opiunea Inspect din meniul ataat butonului dreapta al mouse-ului, dac obiectul este selectat. Fereastra Object Inspector (figura 6.10) afieaz : propietile implicite ale obiectului selectat. Pentru fiecare propietate se indic dac se poate modifica sau nu (R-read only), dac este ascuns (Hhidden) i dac valoarea ei este motenit de la obiectul printe (Ooverriden). Pentru fiecare propietate se specific valoarea curent. evenimentele implicite asociate cu obiectul selectat. Se pot aduga i alte evenimente. Pentru fiecare eveniment se specific dac are ataat cod (scris n limbajul Express sau QuickActions) i cnd se declaneaz. metodele implicite asociate obiectului selectat. elementele componente ale obiectului selectat. De exemplu, dac obiectul selectat este o pagin, se afieaz coninutul paginii (butoane, tabele, grafice etc).

Figura 6.10 Object Inspector

141

Iniiere n tehnologia OLAP-teorie i practic Fereastra Object Inspector conine i o bara de instrumente ce permite definirea de noi propieti, evenimente i metode. Pentru a crea o nou propietate se parcurg urmtorii pai (figura 6.11): se selecteaz obiectul pentru care se dorete definirea unei noi propieti; se selecteaz opiunea Inspect din meniul ataat butonului dreapta al mouse-ului i se deschide fereastra Object Inspector; se selecteaz icoana Add Item din bara de icoane i se afieaz fereastra de dialog Add property; se specific: numele propietii, descrierea ei, tipul de data (de exemplu numr ntreg sau dat calendaristic), valoarea implicit a propietii, dac este o propietate sau set de propieti (caseta de validare Property Set), numele setului de propieti la care se adaug propietatea (Add to set), care caractere sunt valori valide pentru propietate (Characters to allow), atributele propietii (Property Attributes), caseta de dialog care se va utiliza pentru a seta valorile propietii (Custom Inspector, Font Dialog etc). Aceste propieti definite de utilizator pot fi modificate (icoana Modify din bara de icoane a lui Object Inspector) sau terse (icoana Delete).

Figura 6.11 Fereastra Add Property

142

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

6.6 Crearea obiectelor unui proiect


Se pot crea urmtoarele tipuri de obiecte: Briefing-ul este o colecie de pagini ce conin n general tabele sau grafice, organizate ntr-un mod accesibil utilizatorilor; Pagina este un container pentru alte obiecte (butoane, casete de validare, tabel, grafic etc); Tabelul (sau graficul) este utilizat pentru a afia i analiza datele multidimensionale; Obiectul de tip ieire (Express output) permite utilizatorilor s execute comenzi din limbajul Express, n timpul execuiei aplicaiei; Obiectul OLE (OLE object) permite inserarea de informaii din alte aplicaii ntr-o pagin; Obiectul de tip banner-ul se utilizeaz pentru a afia static sau dinamic un text . Obiectele de tip banner afieaz o singur linie de text i se utilizeaz pentru a crea efecte speciale n asociaie cu obiectele de tip timer. Butonul de comand este utilizat pentru a executa o aciune sau o comand predefinit; Caseta de validare (check box); Lista (de tip combo box din care se poate selecta un element sau n care se poate insera un element sau de tip List box ce permite numai selectarea a unuia sau a mai multor elemente); Lista valorilor unei dimensiuni (Dimension list box) permite afiarea valorilor unei dimensiuni; Lista de directoare (Directory list box) afieaz directoarele de la o anumit locaie; List de locaii (Drive combo box) afieaz locaiile accesibile utilizatorilor; Lista de fiiere (File list box) afieaz fiierele de la o anumit locaie; Obiectul de tip reea (Grid object) conine un numr specificat de linii i coloane i este utilizat pentru a afia text sau imagini ntr-un format tabular; Obiectul de tip grup (Group box) este utilizat pentru a grupa alte obiecte cum ar fi casete de validare sau butoane de opiune; Obiectul de tip Hotspot creeaz o zon invizibil pe pagin de la care se pot executa unele aciuni ca rspuns la un eveniment; Eticheta (Label) este utilizat pentru a afia una sau mai multe linii de text ce nu se pot modifica, iar obiectul de tip text (text box) afieaz una sau mai multe linii de text ce pot fi editate de utilizator; Buton de opiune (option button); Bara de defilare (scroll bar); Obiectul de tip Tabcontrol (Tabcontrol) este un container ce grupeaz mai multe obiecte. Fiecare Tab poate conine numai o tabel, un grafic sau o pagin;

143

Iniiere n tehnologia OLAP-teorie i practic Obiectul de tip arbore (Tree view) afieaz o ierarhie de elemente (noduri); Meniul orizontal sau vertical cu opiunile corespunztoare (command item); Bara de instrumente (toolbar) se poate ataa unui briefing sau unei pagini; Bara de stare (Status bar) se utilizeaz pentru a afia unele informaii ( de exemplu ora curent, starea tastei CAPS etc); Seciunea din bara de stare (Status bar panel) se utilizeaz pentru a afia text sau informaii despre modul de derulare a unei operaii; Obiectul de dialog Color (Color Dialog) este un obiect invizibil la momentul execuiei aplicaiei i este utilizat pentru a afia fereastra de dialog Color; Obiectul de dialog File (File Dialog) este un obiect invizibil la momentul execuiei aplicaiei i este utilizat pentru a afia fereastra de dialog Open sau Save As; Obiectul de dialog Font (Font Dialog) este un obiect invizibil la momentul execuiei aplicaiei i este utilizat pentru a afia fereastra de dialog Font; Obiectul de dialog Printer este utilizat pentru a afia fereastra de dialog Printer Setup; Obiectul de tip Timer este un obiect invizibil la momentul execuiei aplicaiei i este utilizat pentru a se executa la intervale regulate de timp diferite aciuni (cod Express); Obiectul de tip modul reprezint o unitate de compilare n limbajul Express; Obiectul de tip QuickAction permite specificarea unei aciuni (de exemplu exportul unei pagini de date dintr-o tabel n Microsoft Excel, afiarea unui document Word etc) pentru un anumit eveniment (specific unui anumit obiect). De exemplu, la apsarea unui buton s se lanseze n execuie o alt aplicaie (Microsoft Excel).

n figura 6.12 se afieaz un obiect de tip banner, o etichet, un obiect de tip list de directoare, un obiect de tip list de fiiere, un obiect de tip list de locaii, un obiect de tip combo box i un obiect de tip list box.

144

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.12 Crearea unor obiecte Pentru a crea un obiect se selecteaz icoana corespunztoare obiectului din caseta de instrumente (Toolbox) i apoi click cu mouse-ul pe pagin sau se trage cu mouse-ul (drag and drop) pe pagin. De exemplu, se deschide proiectul pjexemplu2. Se creeaz o pagin cu propietile (Name: pgprincipala, Text: Pagina principal). Apoi se creeaz un grup de obiecte (Groupbox1) cu propietile (Name: grpRaport, Text: Alegei tipul de raport). Grupul de obiecte conine dou butoane radio i anume: Optionbuton1 (Name: optStandard, Text: Raportare standard) i OptionButon2 (Name: optExceptie, Text: Raportare de excepie). De asemenea, se creeaz un grup de obiecte (Groupbox2) (Name: grpmasuri, Text: Selectai msurile ) ce conine o list (Name: lstmasuri, Default list: nrproiect |valoare_dolari|valoare_lei, Sorted: No, ColumnPos: 20, ColumnScaleUnits: 1-Avg. char) i patru butoane: buton 1 (Name: btnvizualizare, Text: Vizualizare), buton 2 (Name: btnComentariu, Text: Comentarii), buton 3 (Name: btnHelp, Text: Help) i buton 4 (Name: btnIesire, Text: Ieire) (figura 6.13).

145

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.13 Crearea unui grup de butoane i a unei liste Caseta de dialog Default list afieaz lista implicit de elemente ce se afieaz (caseta List), indexul pentru fiecare element din list (caseta List Index). Indexul primului element din list este 0. n figura 6.14 este creat un obiect de tip TabControl. Propietatea TabCaption specific textul pentru fiecare Tab. Pentru a crea un obiect se poate utiliza i opiunea Derive din meniul ataat butonului dreapta al mouse-ului. Obiectul de la care se motenesc propietile, metodele i evenimentele se numete printe, iar obiectul care motenete copil. De exemplu, dac printele are asociat o aciune cu evenimentul AfterClick, atunci i copilul va moteni automat aceeai aciune cu evenimentul AfterClick asociat lui. Se poate modifica n mod explicit o propietate, un eveniment sau o metod a obiectului copil (propietatea, metoda sau evenimentul corespunztor printelui nu se va modifica). Pentru a crea un obiect copil, ce motenete caracteristicile obiectului printe, se selecteaz opiunea Derive din meniul ataat butonului dreapta al mouse-ului (obiectul printe este selectat) sau se selecteaz obiectul printe n Object Browser sau Briefing Browser i se trage (drag) la poziia dorit. Apare un meniu vertical din care se selecteaz opiunea Derive (figura 6.15).

146

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.14 Crearea unui obiect de tip TabControl

Figura 6.15 Crearea unui obiect cu opiunea Derive n figura 6.16 se creeaz o pagin cu propietile (Name: pgVizualizare, Text: Vizualizare date), un tabel (Name: tabvizualizare), un grafic (Name: grvizualizare) i un buton (Name: btninapoi, Text: Inapoi).

147

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.16 Crearea unui tabel, a unui grafic i a unui buton

6.7 Utilizarea coleciei de rutine QuickActions


Se poate utiliza colecia de rutine predefinite QuickActions (scrise n Visual C++) pentru a executa anumite operaii. De exemplu se creeaz un buton. Se dorete ca la apsarea acestui buton s se lanseze n execuie o alt aplicaie cum ar fi Notepad. Se selecteaz butonul, apoi se selecteaz opiunea Set QuickAction din meniu ataat butonului dreapta al mouse-ului. Apare o list de evenimente asociate cu obiectul selectat. Se selecteaz evenimentul AfterClick i se afieaz fereastra de dialog QuickAction Definition (figura 6.17) n care se specific: numele obiectului QuickAction care se creeaz, descrierea lui, aciunea care se asociaz acestui obiect i o serie de argumente necesare pentru a se executa aciunea. n caseta Actions se specific aciunile care se pot asocia i anume: User defined i se specific codul Express care se va executa; Goto page permite deplasarea la pagina specificat; Launch Application lanseaz n execuie o aplicaie; Print tiprete un proiect, un briefing sau o pagin; Run lanseaz n execuie un proiect, un briefing sau o pagin; Show Help afieaz helpul sistemului; Show Message afieaz caseta de mesaje;

148

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Stop termin execuia 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 afieaz fereastra de dialog Custom Measures, care permite utilizatorului s vizualizeze, editeze, copieze sau s creeze msuri; 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 execuia unei liste de aciuni de tip QuickAction etc.

Figura 6.17 Fereastr QuickAction Definition n caseta Command Line se tasteaz numele aplicaiei care se lanseaz, iar n caseta Display State se alege: 1-Normal (dac fereastra se va deschide la dimensiunea normal), 2-Minimized (dac fereastra va fi minimizat iniial) etc. Pentru a exporta pagina curent de date dintr-un tabel (de exemplu n Microsoft Excel) se utilizeaz Export Table. Se specific numele tabelului care se va exporta (de exemplu linktable), numele fiierului n care se va exporta tabelul (de exemplu d:\oracle\olap\oeo632\work\export.xls), comanda care va lansa n execuie aplicaia (de exemplu C:\Program Files\Microsoft Office\Office\ EXCEL.EXE), formatul n care se exporta (Microsoft Excel XLS Format, Tab Delimited values i Comma separated values) (figura 6.18).

149

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.18 Exportul unui tabel

6.8 Limbajul de programare Express


Fiecare obiect are ataat o list de evenimente pe care le recunoate i rspunde la ele. La declanarea unui eveniment se execut o aciune care poate fi o procedur scris n limbajul Express, o metod a obiectului sau o rutin din colecia de rutine QuickActions. Metodele pot fi apelate de proceduri. Exist proceduri care se execut la apariia unui eveniment i proceduri locale valabile numai n modulul de cod n care se gsesc. Modulul este unitatea de compilare n Express. Exist trei tipuri de module: Modulul de cod (code module) este creat automat de Oracle Express Objects cnd un obiect este creat. Modulul de cod este identificat prin numele obiectului. Acest modul poate conine proceduri ce se execut la apariia unui eveniment, metode, metode definite de utilizator i proceduri locale valabile numai n interiorul modulului de cod. Modulul de cod este ncapsulat n obiect. Fiecare obiect conine un singur modul de cod. n modulul de cod se pot identifica uor procedurile ce se execut la apariia unui eveniment sau metodele, deoarece au un indicator read-only ca prim caracter la nceputul i la sfritul lor. Pentru a terge dintr-un modul de cod, o metod sau o procedur ce se execut la apariia unui eveniment, mai nti se selecteaz opiunea Detach Code i apoi se terge codul.

150

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Aceast opiune terge indicatorii de read-only de la nceputul i sfritul procedurii. Modulul bibliotec (library module) este creat prin selectarea icoanei corespunztoare din caseta de instrumente (Toolbox). Apoi dublu click pe modulul de tip bibliotec creat i se afieaz editorul Express Basic corespunztor. Modulele bibliotec sunt stocate la nivel de proiect i conin proceduri ce sunt accesibile la nivelul unei aplicaii. Toate procedurile create ntr-o bibliotec sunt tratate ca metode. De exemplu, pentru a referi procedura p1 din bibliotec librarie1 se utilizeaz notaia librarie1.p1. Se pot crea un numr nelimitat de module de tip bibliotec ntr-o aplicaie ce conine mai multe proiecte. Modulul global (global module) se creeaz automat atunci cnd se selecteaz opiunea File/New/Global module din meniul lui Express Basic Editor. n fiecare proiect poate fi un singur modul global. Un modul global nu trebuie s includ proceduri, ci numai declaraii de variabile globale, constante sau tipuri de date definite de utilizator. Se poate utiliza editorul Express Basic pentru a scrie, compila i depana modulele de cod Express. Acest editor poate fi accesat n mai multe moduri i anume: prin selectarea opiunii Window/Express Basic Editor din meniul principal sau prin selectarea opiunii Edit Express Basic din meniul ataat butonului dreapta al mouse-ului (obiectul pentru care se scrie cod este selectat). Express Basic Editor are urmtoarele componente i anume (figura 6.19): Meniul cu opiunile File, View, Edit, Debug, Window i Help; Bara de icoane ce permite un acces mai rapid la facilitile editorului; Zon ce conine fereastra n care se introduce codul, fereastra n care se afieaz mesajele de eroare ale ultimei compilri, fereastra ce afieaz variabilele globale declarate pentru fiecare proiect deschis, fereastra ce afieaz tipurile de date i valorile pentru variabilele modului curent (activ numai la depanarea modulului) etc; Bara de stare ce afieaz o serie de informaii despre activitatea curent (dac modulul este compilat fr erori). Pentru a compila codul se utilizeaz opiunea File/Compile sau se selecteaz icoana Compile din bara de butoane. Pentru a insera o funcie Express n modulul de cod se utilizeaz opiunea Edit/Insert Function. Se poate compila un singur modul sau se pot compila toate modulele dintr-un proiect sau toate modulele din toate proiectele deschise. Dac se lanseaz n execuie un obiect (pagina, briefing sau proiect), Express Basic Editor va compila automat toate modulele de cod ataate, dac ele au fost modificate. Pentru a compila toate modulele, se selecteaz opiunea File/Build All. Se afieaz fereastra de dialog Build All i se selecteaz modulele care se vor compila (opiunea Current Project sau All projects).

151

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.19 Express Basic Editor Se utilizeaz caracterul (!) pentru a indica obiectul de tip container i caracterul (.) pentru a indica metoda, propietatea sau evenimentul (Nume_obiect.nume_ propietate sau Nume_obiect.nume_metoda). De exemplu, Exercitii!pagina1!buton1.text se refer la propietatea Text a butonului buton1 din pagina pagina1 din proiectul exercitii (a se vedea bara de titlu a lui Object Inspector). Se pot insera comentarii pe orice linie de cod utiliznd () sau comanda Rem. De asemenea, se poate continua o comand pe mai multe linii utiliznd SpaceBar i underscore. Pentru concatenare de iruri se utilizeaz (&). Pentru a afia mesaje ntr-o caset de mesaje se utilizeaz comanda: Msgbox prompt, [butoane] [, titlu] unde prompt specific textul care se va afia; [butoane] specific o sum de trei valori ce indic butoanele, icoanele i butonul implicit din caseta de dialog. Dac lipsete acest argument, caseta afieaz numai butonul OK. titlu specific titlul casetei . De exemplu: Msgbox Dorii s prsii aplicaia?, 4+32+256, Iesire n tabelul 6.1 se afieaz valorile ce se pot utiliza i semnificaia lor.

152

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Tabelul 6.1 Valorile ce se pot utiliza pentru butoane Valoarea 0 1 2 3 4 5 16 32 48 64 0 256 512

Semnificaie
Afieaz butonul OK Afieaz butoanele OK i CANCEL Afieaz butoanele Abort, Retry, Ignore Afieaz butoanele Yes, No i Cancel Afieaz butoanele Yes i No Afieaz butoanele Retry i Cancel Afieaz icoana de mesaj critic (STOP) Afieaz icoana de ntrebare de atenionare (?) Afieaz icoana de mesaj de atenionare (!) Afieaz icoana de mesaj informativ (i) Selecteaz primul buton ca implicit Selecteaz al doilea buton ca implicit Selecteaz al treilea buton ca implicit

Se pot utiliza i o serie de constante (de exemplu qaMBIconInfoExpressBasic, qaMBOK) pentru a selecta butoanele i icoanele ce se vor afia n caseta de mesaje. De exemplu, se deschide pagina pgprincipala din proiectul pjexercitiu2. Se creeaz o procedur, ce se declaneaz la evenimentul AfterClick al butonului btncomentarii (Text: Comentarii) i va afia ntr-o caset de mesaje (cu un buton OK) urmtorul mesaj: Pagina curent este: pgprincipala. Se vor utiliza constantele qaMBIconInfoExpressBasic i qaMBOK (figura 6.20). n figura 6.21 se prezint lansarea n execuie a paginii pgprincipala. Se modific procedura astfel nct dac caseta de mesaje este afiat, propietatea Text a butonului btncomentarii se modific din Comentarii n Afiare mesaj i dac caseta se nchide, revine la valoarea iniial. De asemenea, mesajul ce apare n caseta de mesaje va fi (figura 6.22): Pagina curent este: Application!Projects!pjexercitiu2!pgprincipala n figura 6.23 se afieaz pagina pgprincipala lansat n execuie.

6.8.1 Declararea variabilelor


O variabil poate fi declarat: la nivel de procedur i este valabil numai n aceea procedur, la nivel de modul (declarat ntr-un modul i valabil pentru toate procedurile din acel modul) i global (declarat ntr-un modul global i valabil pentru toate modulele i procedurile proiectului). Pentru a defini o variabil, se utilizeaz comanda: Dim nume_variabila [AS tip_data] Pentru a iniializa o variabil se utilizeaz comanda: [Let] nume_variabila = expresie

153

Iniiere n tehnologia OLAP-teorie i practic De exemplu: Dim messagetext as string Messagetext=Selectai butonul OK

Figura 6.20 Utilizarea constantelor qaMBIconInfoExpressBasic, qaMBOK

Figura 6.21 Lansarea n execuie a paginii Pgprincipala

154

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.22 Codul pentru modificarea propietii Text a butonului btncomentarii

Figura 6.23 Lansarea n execuie a paginii Pgprincipala

155

Iniiere n tehnologia OLAP-teorie i practic n limbajul Express se pot declara urmtoarele tipuri de date: integer, long, single, double, currency, date, string, object, record i variant. Se declar o variabil de tip variant, atunci cnd tipul variabilei nu este cunoscut la nceputul procedurii. De exemplu, se poate defini o variabil de tip variant care va stoca informaia introdus de utilizator, care poate fi de tip ir de caractere sau numeric. Urmtoarele exemple sunt identice i creeaz un buton btniesire. Dim nume_obiect as [New] tip_obiect [Set] nume_variabila=expresie Dim btniesire as New Button Sau Dim btniesire as object Set btniesire=New Button Variabila Me este creat de sistem, valoarea ei este setat de sistem, stocheaz o referire la obiectul curent i se utilizeaz pentru a rezolva referirile la obiecte necalificate. Exemplele de mai jos sunt identice: Btniesire.text=Iesire Me.text=Iesire (Variabila Me stocheaz referirea la obiectul btniesire) Text=Iesire (propietatea Text este asociat automat obiectului a crui referire este stocat n variabila Me)

6.8.2 Structuri de program


Structura alternativ simpl: IF conditie Then Secventa_comenzi [elseif expresie then secventa_comenzi] _ [Else secventa_comenzi] _ end if De exemplu, se creeaz o procedur ataat evenimentului DoRun pentru proiectul pjexercitii2. Se declar o variabil la nivel de procedur ce va stoca ora curent a sistemului. Se iniializeaz aceast variabil cu valoarea returnat de funcia Hour(). Se utilizeaz o structur alternativ IFEND IF pentru a afia ntro caset de mesaje urmtoarele mesaje (figura 6.24): Buna dimineata, este ora. Buna ziua, este ora . Buna seara , este ora. Structura alternativ cu mai multe ramuri execut o serie de comenzi n funcie de valoarea expresiei: SELECT CASE expresie

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 urmtoarele propieti: Name: btntrimestru, Text i Description: Afieaz trimestru. Se asociaz evenimentului AfterClick o procedur ce utilizeaz funcia Month() pentru a stoca luna curent ntr-o variabil. Se utilizeaz structura SELECT CASE pentru a evalua valoarea variabilei i a afia ntr-o caset de mesaje urmtorul mesaj: Trimestru . Luna (figura 6.25). n figura 6.26 se prezint pagina pagina_quickaction lansat n execuie.

Figura 6.24 Utilizarea structurii alternative simple Structura repetitiv condiionat anterior, cu numrtor: FOR contor=valoare_iniiala TO valoare_final [STEP increment] [secventa_comenzi] [EXIT FOR] [secventa_comenzi] NEXT [contor]

157

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.25 Utilizarea structurii SELECT CASE

Figura 6.26 Lansarea n execuie a paginii Pagina_quickaction De exemplu, se creeaz un buton btnFOR n pagina pagina_quickaction, iar la evenimentul AfterClick se asociaz o procedur care afieaz numerele de la 1 la 5 ntr-o caset de mesaje (figura 6.27).

158

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Structura repetitiv condiionat anterior: WHILE conditie secventa_comenzi WEND Secvena de comenzi este executat atta timp ct condiia este adevrat. Condiia trebuie s fie iniial adevrat. Structura repetitiv condiionat anterior/posterior execut o serie de comenzi atta timp ct condiia este adevrat: DO [{WHILE|UNTIL} conditie] [secventa_comenzi] [EXIT DO] [secventa_comenzi] LOOP sau : DO [secventa_comenzi] [EXIT DO] [secventa_comenzi] LOOP [{WHILE|UNTIL} conditie]

Figura 6.27 Utilizarea structurii FORNEXT

159

Iniiere n tehnologia OLAP-teorie i practic Comanda GOTO eticheta transfer controlul programului la eticheta specificat. Comanda EXIT {DO|FOR|function|Sub} determin o ieire forat din structura repetitiv (DO LOOP sau FOR.NEXT) sau transfer controlul la procedura apelant. Apelul de metode sau proceduri ce se execut la apariia unui eveniment se face cu comanda: CALL nume_metoda(lista_argumente) sau Nume_metoda lista_argumente sau Nume_variabila = nume_metoda (lista_argumente) De exemplu call move(240, 720, 1575, 375) sau Move 240, 720, 1575, 375 Metoda Count () este utilizat pentru a returna numrul de membrii ai unui obiect de tip container. n exemplul urmtor, variabila nr_membri stocheaz numrul de obiecte dintr-o pagin: Dim nr_membri as integer Nr_membri = pagina_quickaction.count() Metoda Item(nume sau index) este utilizat pentru a referi un membru al unui obiect de tip container prin nume sau index. n exemplul urmtor, numele primului membru al unei pagini este stocat ntr-o variabil: Dim variabila as string Variabila = pagina_quickaction.item(0).name Metoda Run() este utilizat pentru a lansa n execuie un obiect. Un proiect trebuie s fie deschis nainte de a fi apelat metoda Run() corespunztoare. n exemplu urmtor, se creeaz un buton btnexecuta n pagina pagina_quickaction a proiectului pjexercitii2. La evenimentul AfterClick al butonului, se ataeaz o procedur care permite lansarea n execuie a altui proiect: Dim pjproiect as new project If pjproiect.open() then Call pjproiect.run() Else Msgbox Proiectul nu este deschis End if Metoda Stop() este utilizat pentru a opri execuia unui proiect, briefing sau pagin. n exemplul urmtor, se lanseaz n execuie pagina pagina_quickaction i se oprete execuia paginii pgvizualizare. n acest fel, se permite navigarea ntre dou pagini ale unui proiect: Call pagina_quickaction.run() Call pgvizualizare.stop() De exemplu, se creeaz un buton (Name: btn_membrii, Description: Membrii paginii) n pagina pagina_quickaction. Se ataeaz la evenimentul AfterClick al butonului o procedur care afieaz ntr-o caset de mesaje, numrul de membrii ai paginii curente i ultimul membru (figura 6.28). n figura 6.29 se prezint pagina pagina_quickaction lansat n execuie.

160

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.28 Utilizarea metodei count()

Figura 6.29 Lansarea n execuie a paginii

161

Iniiere n tehnologia OLAP-teorie i practic Se poate utiliza direct limbajul Express cu ajutorul urmtoarele obiecte: Obiectul Express (Express object) gestioneaz conexiunea clientului Express la serverul Express. Se poate utiliza obiectul Express pentru pornirea i oprirea instanei Express, pentru a verifica starea conexiunii, pentru a executa comenzi din limbajul Express etc. De exemplu, se utilizeaz metoda Connect ([Prompt]) pentru a stabili o conexiune la serverul Express. Se poate utiliza metoda Disconnect ([UpdateAllDBs], [,QueryOnDBDetach]) pentru a ncheie o conexiune. Argumentul UpdateAllDBs specific dac se actualizeaz toate bazele de date cnd se face deconectarea, iar argumentul QueryOnDBDetach specific dac utilizatorul este ntrebat la deconectare, dac se va face sau nu actualizarea bazelor de date. De exemplu: Call express.connect() Call express.disconnect() Propietatea Connected a obiectului Express specific dac clientul Express este conectat sau nu la serverul Express, iar propietatea ServerDescription conine o descriere textual a conexiunii Express. De exemplu, la evenimentul AfterClick al unui buton btnopen se ataeaz un cod care deschide i lanseaz n execuie un proiect. Codul verific de asemenea, dac este stabilit conexiunea cu serverul Express . Dim pjexemplu as newproject If express.connected=true then Msgbox Suntei conectat la Express &express.serverdescription Else Call express.connect(Yes) End if If pjexemplu.open() then Call pjexemplu.run() else Msgbox Nu s-a selectat nici un proiect End if Obiectul de tip comand Express (express command object) permite executarea comenzilor din limbajul Express i accesarea rezultatelor. Pentru a accesa baza de date, obiectul de tip comand Express este asociat cu obiectul Express. Atunci cnd este apelat metoda Execute() a obiectului Express, se creeaz un obiect de tip comand Express care se poate utiliza pentru a accesa rezultatele execuiei comenzilor. Se utilizeaz metoda Execute ([command(s)]) a obiectului de tip comand Express pentru a executa comenzile specificate ca argumente. De exemplu, la evenimentul AfterClick al butonului btnexecuta se ataeaz urmtorul cod: Dim comenzi as expresscommand Set comenzi=express.execute (baza de date demo.db & ;& _ limit time to first 6 & ; & _ limit product to first 1)

162

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Argumentul command al metodei Execute (command [, pusherroronstack]) specific comenzile care se vor executa, iar dac argumentul pusherroronstack este setat pe No, nu se mai afieaz mesajele de erori. Obiectul de tip ieire Express (express output object) ofer o interfa vizual n care se introduc comenzi Express la momentul execuiei aplicaiei OLAP i se afieaz rezultatele. Obiectul de tip ieire Express are urmtoarele componente: o zon unde se introduc comenzi Express (script), o zon unde se afieaz rezultatele comenzilor (output), un buton Execute prin care se execut comenzile i un buton Clear prin care se terg rezultatele afiate (figura 6.30).

Figura 6.30 Exemplu de utilizare a obiectului de tip ieire Express Propietatea Commands a obiectului de tip ieire Express stocheaz o list de comenzi ce sunt executate de obiect. Propietatea AutoexecuteOnRun specific dac toate comenzile sunt executate automat, atunci cnd obiectul se lanseaz n execuie. Propietatea HideButtonsOnRun specific dac butoanele Execute i Clear sunt afiate la momentul execuiei. Propietatea ShowErrors specific dac se afieaz mesaje de eroare n zona de afiare a rezultatelor (output) (figura 6.31). Setul de propieti CommandArgs specific argumentele pentru comenzile Express. Se tasteaz valorile argumentelor (Arg0...Argn), iar n comenzi se utilizeaz aceste valori folosind semnul de substituie (%). De exemplu : %0 se refer la Arg0 (figura 6.32).

163

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.31 Propietile obiectului de tip ieire Express

Figura 6.32 Utilizarea propietii ArgX

164

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.33 Propietatea Commands Metoda Execute() a obiectului de tip ieire Express se utilizeaz pentru a executa toate comenzile din propietatea Commands (figura 6.33). Aceast propietate stocheaz toate comenzile tastate n zona de execuie a comenzilor i este echivalent cu a selecta butonul Execute. Metoda ClearOutput () este echivalent cu a selecta butonul Clear. De exemplu: Call expressoutput1.execute() Call expressoutput1.clearoutput()

6.9 Utilitarul Database Browser


Utilitarul Database Browser afieaz dimensiunile i msurile (variabile, formule i relaii) ale bazei de date multidimensionale la care se conecteaz Express Objects. Conectarea la o baz de date se face: prin selectarea opiunii Database/Attach (figura 6.34); prin deschiderea sau lansarea n execuie a unui proiect care cere o baz de date ataat. Aceast ultim metod ataeaz automat baza de date.

165

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.34 Caseta de dialog pentru ataarea la o baz de date multidimensional Pentru a afia utilitarul Database Browser se selecteaz opiunea Window/Database Browser/Pane sau Floating. n Oracle Express Objects, unui fiier al bazei de date i se asociaz un obiect de tip DatabaseFile. Acest obiect este adugat la obiectul de tip DatabaseList atunci cnd o baz de date multidimensional este ataat i proiectul este salvat. Obiectele de tip DatabaseFile sunt stocate n obiectul de tip DatabaseList (figura 6.35). Utilitarul Database Browser afieaz numele bazei de date multidimensionale ataat, dimensiunile i msurile corespunztoare. Pentru a popula cu date un tabel sau grafic se selecteaz msura sau msurile i se trag din Database Browser n pagin. Se pot crea noi msuri n Oracle Express Objects. Aceste msuri sunt definite ca formule ce conin variabile deja stocate n baza de date. Pentru a crea o msur se selecteaz opiunea Database/Custom Measures sau opiunea Custom din instrumentul Selector. Fereastra de dialog Custom Measures are urmtoarele componente: caseta Database n care se afieaz numele bazei de date curente, caseta Custom Measures n care se afieaz toate variabilele definite, caseta Expression ce afieaz formula de calcul a variabilei, caseta Dimensions afieaz dimensiunile msurii selectate. Pentru a crea o nou variabil se selecteaz butonul New. Se deschide fereastra Custom Measures New n care se specific numele i descrierea variabilei, formula de calcul etc (figura 6.36).

166

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.35 Utilitarul Database Browser Dicionarul de date (DataDictionary) este o colecie de obiecte, cod i structuri de date ce ofer acces la obiectele bazei de date multidimensionale. El este gestionat de obiectul DataDictionary creat automat atunci cnd Express Objects se conecteaz prima dat la serverul Express. Obiectul DataDictionary gestioneaz obiectele de tip DatabaseFile i este utilizat n urmtoarele proceduri: ataarea bazelor de date, afiarea utilitarului Database Browser, afiarea ferestrei de dialog Edit Custom Measures, accesarea obiectelor bazei de date. Pentru a vizualiza propietile obiectului DataDictionary, se selecteaz acest obiect n fereastra Object Inheritance (se selecteaza icoana View Inheritance din Object Browser). Apoi se selecteaz opiunea Inspect din meniul ataat butonului dreapta al mouseului (figura 6.37). Obiectul DataDictionary are metode pentru ataarea unei baze de date multidimensionale. n exemplu urmtor, se utilizeaz metoda AttachDatabase() pentru a ataa baza de date DEMO, respectiv metoda DetachDatabase(): Call DataDictionary.AttachDatabase (DEMO) Call Datadictionary.DetachDatabase (DEMO)

167

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.36 Fereastra de dialog Custom Measures Se utilizeaz metoda BrowseDatabases() pentru a afia utilitarul Database Browser i metoda EditCustomMeasures() pentru a afia fereastra de dialog Edit Custom Measures. n exemplu urmtor, se afieaz utilitarul Database Browser fr bara de butoane i fereastra de dialog Edit Custom Measures: Call DataDictionary.BrowseDatabases (ddBRWNoToolbar) Call DataDictionary.EditCustomMeasures() De exemplu, se creeaz o nou pagin (Name: pagina_attach, Description: Ataare la baza de date DEMO) n proiectul pjexercitii2. Apoi se creeaz trei butoane: buton 1 (Name: btnAttach, Text: Ataare la DEMO, Enabled :No), buton 2 (Name: btndeattach, Text: deataarea bazei DEMO; Enabled: Yes), buton 3 (Name: btnmasuri, Text : Creare noi msuri, Enabled: Yes). La evenimentul AfterClick al butonului btnattach se asociaz o procedur care permite ataarea la baza de date DEMO (figura 6.38). De asemenea, se creeaz o procedur i pentru evenimentul AfterClick al butonului btndeattach (figura 6.40) prin care se activeaz butonul btnattach, se dezactiveaz celelalte dou butoane i se utilizeaz metoda DetachDatabase() a obiectului DatabaseDictionary. La evenimentul AfterClick al butonului btnmasuri se asociaz o procedur care utilizeaz metoda EditCustomMeasures() pentru a afia fereastra de dialog Custom Measures (figura 6.39).

168

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.37 Propietile obiectului DataDictionary

Figura 6.38 Utilizarea metodei AttachDatabase()

169

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.39 Utilizarea metodei EditCustomMeasures()

Figura 6.40 Utilizarea metodei DetachDatabase()

170

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

6.10 Crearea i utilizarea tabelelor i a graficelor


Oracle Express Objects utilizeaz un mod optim de reprezentare a structurilor numerice cu mai mult de dou dimensiuni pe un ecran bidimensional, pentru vizualizare i manipulare. De exemplu, un set de date tridimensional este afiat pe ecran, pe rnduri, coloane i pagini. Cum se pot reprezenta patru sau mai multe dimensiuni logice n trei dimensiuni fizice (rnd, coloan, pagin)? Rspunsul este de a combina multiple dimensiuni logice n aceeai dimensiune fizic. Oracle Express Objects creeaz automat un cub de date n-dimensional (datacube) i obiectele lui asociate ori de cte ori se populeaz cu date un tabel sau un grafic. Cubul de date n-dimensional definete coninutul i structura datelor afiate ntr-un tabel sau ntr-un grafic. Fiecare tabel sau grafic are un cub de date ndimensional asociat. Propietatea DataCube a tabelului sau a graficului se refer la obiectul cub de date n-dimensional asociat. Pentru a vizualiza propietile, metodele i evenimentele asociate acestui obiect se face dublu click pe obiect, n fereastra Object Inspector (figura 6.41). Cubul de date are trei muchii (dimensiuni fizice): coloana (column edge), rndul (row edge) i pagina (page edge). Structura multidimensional a cubului de date este afiat n bara de dimensiuni a instrumentului Selector. Icoanele din bara de dimensiuni arat ce dimensiuni logice (noduri ale dimensiunilor fizice- edge node) sunt afiate pe coloan, rnd sau pagin. Pentru fiecare dimensiune logic afiat n tabel sau grafic, exist creat un obiect de tip edge node (figura 6.42).

Figura 6.41 Vizualizarea propietilor obiectului DataCube

171

Iniiere n tehnologia OLAP-teorie i practic n figura 6.42, pe pagin se afieaz districtele (pe fiecare pagin un alt district), pe linii produsele, iar pe coloane variabila Sales (Vnzri) i lunile. Deci pagina conine o singur dimensiune logic (nod), rndul o singur dimensiunea logic, iar coloana dou dimensiuni logice ale cubului de date n-dimensional. Pentru a vizualiza propietile unui nod (de exemplu edgenode1) se face dublu click cu mouse-ul pe valoarea propietii Datacube. Se selecteaz, din fereastra Object Inspector corespunztoare, opiunea Contents, apoi dublu click pe valoarea unui nod ( de exemplu edgenode1) i se selecteaz opiunea Properties. Propietatea Dimension a unui nod specific numele dimensiunii logice asociate cu acel nod. De exemplu, valoarea propietii Dimension pentru nodul edgenode1 este XP_MEASUREDIM (figura 6.43).

Figura 6.42 Afiarea structurii cubului de date multidimensional Obiectul cub de date (DataCube) are o serie de metode pentru adugarea de msuri, schimbarea poziiei dimensiunilor fizice ale cubului n-dimensional, reordonarea nodurilor ntr-o dimensiune fizic, mutarea unui nod de la o dimensiune fizic la alta i afiarea informaiilor despre un nod. Metoda AddMeasures (list_msuri)) se utilizeaz pentru a aduga una sau mai multe msuri la obiectul DataCube. Aceast metod este echivalent cu operaia de tragere (drag) a unei msuri din fereastra utilitarului Database Browser i poziionarea ei pe pagin. n exemplul urmtor, se adaug msura Sales la obiectul Datacube asociat cu tabelul table1: Call table1.datacube.addmeasures(Sales)

172

Dezvoltarea sistemelor OLAP cu Oracle Express Objects n exemplul urmtor, se creeaz un nou obiect Datacube, se adaug msura Sales la acest obiect i se seteaz propietatea Datacube a tabelului table1 la noul obiect Datacube: Dim dc as new datacube Call dc.addmeasures (Sales) Set table1.datacube=dc

Figura 6.43 Afiarea propietilor unui nod Metoda Rotate(optiune_rotire, de la dimensiunea/nod, la dimensiunea/nod) se utilizeaz pentru a muta sau schimba nodurile ntr-un grafic sau tabel. n exemplul urmtor, se mut nodul asociat cu dimensiunea Timp, dup nodul asociat cu dimensiunea Produs din tabelul table1. Apoi se mut dimensiunea Timp pe pagin: Call table1.datacube.rotate (dcROAfter, TIMP, PRODUS) Call table1.datacube.rotate (dcROTOPage, TIMP) Metoda RotateEdges() schimb ntre ele dimensiunile fizice ale cubului de date. n exemplul urmtor, se schimb ntre ele coloana cu rndul, apoi pagina cu rndul: Call table1.rotateedges (dcEColumn, dcERow) Call table1.rotateedges (dcEPage, dcERow)

173

Iniiere n tehnologia OLAP-teorie i practic n exemplu urmtor, se schimb nodul asociat cu dimensiunea Produs cu nodul asociat cu dimensiunea Timp din tabelul table1: Call table1.datacube.rotate (dcROSwap, PRODUS, TIMP) Metoda GetEdgeNode() ntoarce numele nodului sau a dimensiunii fizice. n exemplu urmtor, se afieaz numele nodului corespunztor dimensiunii Timp: Dim timenode as edgenode Set timenode=table1.datacube.getedgenode (TIMP) Msgbox Dimensiunea TIMP este + timenode.name De exemplu, se creeaz o pagin (Name: pagina_metodecubdate, Text: Metode ale cubului de date). Se creeaz un grafic graph4. La evenimentul AfterClick al graficului se ataeaz un cod care creeaz un nou obiect Datacube, apeleaz metoda AddMeasures() pentru a aduga msura Sales la noul cub de date, seteaz propietatea Datacube a graficului la noul obiect creat (figura 6.44). Apoi se creeaz dou butoane n pagina pagina_metodecubdate i anume: buton 1 (Name: btnmuta, Description i Text: Mut msura la pagin) i buton 2 (Name: btnschimba, Description i Text: Schimb coloana cu pagina). Se ataeaz la evenimentul AfterClick al butonului btnmuta un cod care mut dimensiunea Msuri pe pagin (figura 6.45), iar la evenimentul AfterClick al butonului btnschimba un cod care schimb coloana cu pagina (figura 6.46). n figura 6.47 se afieaz pagina pagina_metodecubdate lansat n execuie.

Figura 6.44 Utilizarea metodei AddMeasures()

174

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.45 Utilizarea metodei Rotate()

Figura 6.46 Utilizarea metodei Rotateedges()

175

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.47 Lansarea n execuie a paginii Pagina_metodecubdate

6.10.1 Crearea tabelelor i a graficelor


Tabelele i graficele sunt utilizate pentru a vizualiza datele multidimensionale stocate n baza de date multidimensional. Exist mai multe moduri de a crea o tabel sau un grafic i anume: se selecteaz icoana corespunztoare din caseta de instrumente (toolbox) i apoi click cu mouse-ul n pagin. Se va crea un tabel (sau grafic) fr date; din fereastra utilitarului Database Browser se selecteaz o msur i se trage n pagin. Se creeaz un tabel (sau grafic) populat cu valorile msurii selectate. se utilizeaz opiunea Derive sau Duplicate pentru a deriva sau copia un nou tabel (sau grafic) plecnd de la un tabel (sau grafic) deja existent. se utilizeaz limbajul Express. Componentele unui tabel nu pot fi derivate, duplicate sau terse i sunt: titlu tabelului, subtitlul, pagina (se afieaz valorile dimensiunii logice asociat paginii), rndul (se afieaz valorile dimensiunii logice asociat rndului), valorile msurii selectate (databody), informaii suplimentare despre tabel (footnote), coloana (se afieaz valorile dimensiunii logice asociat coloanei). Unele componente sunt invizibile n mod implicit (de exemplu titlul, subtitlu etc). Componentele tabelului

176

Dezvoltarea sistemelor OLAP cu Oracle Express Objects nu se pot terge, nu se poate aduga o nou propietate, eveniment sau metod la o component a tabelului. Graficele au diferite componente n funcie de tipul graficului i anume: axele graficului (X/Y1/Y2-axis), linia ce marcheaz intervale de valori de a lungul axelor (Tick mark), eticheta (Label), legenda graficului (Legend), subtitlu, zona unde se afieaz datele (Plot area) etc. Unele componente ale graficului sunt invizibile n mod implicit (de exemplu subtitlu). Componentele graficului nu pot fi mutate, nu se pot aduga noi propieti, metode sau evenimente la o component a graficului. Se poate modifica modul de afiare a tabelei sau a graficului prin setarea unor propieti. De exemplu, setul de propieti SpecialEffects creeaz efecte speciale n grafic, propietatea GraphType specific tipul de grafic etc. Propietatea DisplayPage specific pagina logic de date ce va fi afiat n tabel sau grafic, la un moment dat. De exemplu, dac pagina are asociat dimensiunea Timp care are trei valori: 2000, 2001, 2002, atunci vom avea trei pagini logice. De asemenea, se poate utiliza metoda GoToDataPage() pentru deplasarea de la o pagin logic la alt pagin logic. Aceast metod are ca argument urmtoarele constante (tabelul 6.2): Tabelul 6.2 Constantele utilizate de metoda GoToDataPage() Constanta Valoare Rezultat VwPGFirst -1 Afieaz prima pagin VwPGLast -2 Afieaz ultima pagin VwPGNext -3 Afieaz urmtoarea pagin VwPGPrevious -4 Afieaz pagina anterioar n exemplul urmtor, se realizeaz mutarea la ultima pagin logic din tabelul table1: Call table1.gotodatapage (vwpglast) sau Call table1.gotodatapage (-2) De exemplu, se creeaz o pagin (Name: pagina_mutare, Description i Text: Mutarea de la o pagin la alta). Apoi se creeaz un tabel table1 care afieaz valorile msurii Sales. Se creeaz un grup de butoane radio (Name: grpmutare, Text: Selectai pagina dorit) format din patru butoane: buton 1 (Name: optprima, Text: Prima pagin), buton 2 (Name: optanterioara , Text: Pagina anterioar), buton 3 (Name: opturmatoarea, Text: Urmtoarea pagin) i buton 4 (Name: optultima, Text: Ultima pagin). La evenimentul BeforeRun al paginii se asociaz un cod care activeaz butonul optprima i le dezactiveaz pe celelalte (figura 6.48). La evenimentul AfterClick al grupului de butoane se asociaz un cod care permite deplasarea de la o pagin la alta. Dac este afiat prima pagin logic i se selecteaz butonul Prima pagin sau butonul Pagina anterioar, se va afia ntr-o caset de mesaje mesajul :Eti pe prima pagin. Dac este afiat ultima pagin i se selecteaz butonul Ultima pagin sau Urmtoarea pagin se va afia mesajul Eti pe ultima pagin (figura 6.49). n figura 6.50 se prezint pagina pagina_mutare lansat n execuie.

177

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.48 Asocierea unui cod la evenimentul BeforeRun al paginii

Figura 6.49 Codul pentru deplasarea de la o pagin logic la alta pagin logic

178

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.50 Lansarea n execuie a paginii Pagina_mutare Propietatea GraphType a unui grafic specific tipul de grafic i se poate utiliza pentru a schimba programat tipul de grafic. n exemplul urmtor, se specific un grafic de tip bar , un grafic de tip plcint i un grafic de tip linie: Graph1.graphtype = grGTBarClust Graph1.graphtype = grGTPie Graph1.graphtype = grGTLineAbs Pentru a mbunti aspectul graficului, se utilizeaz setul de propieti SpecialEffects i anume: SFXApplyType specific tipul de efect (Wash sau Image), SFXIImageFileName specific numele fiierului ce conine imaginea, propietile SFXWashDirection, SFXWashStartColor, SFXWashstopcolor i SFXWashType specific modul n care va fi colorat fundalul graficului, stabilindu-se culoarea de nceput, culoarea de sfrit etc. De exemplu, se creeaz o pagin (Name: pagina_grafice, Description i Text : Pagina cu tipuri de grafice). Se creeaz un grafic (Name: graph1) ce va afia valorile msurii Sales. Se creeaz apoi un grup de butoane de opiune (Name: grpgrafic, Text: Se selecteaz tipul de grafic). Se adaug trei butoane de opiune i anume: buton 1 (Name: optbar, Text: Bar), buton 2 (Name: optlinie, Text: Linie), buton 3 (Name: optplacinta, Text: Pie). Dac se selecteaz unul din butoane se modific tipul de grafic. Se modific de asemenea, setul de propieti SpecialEffects i anume: SFXApplyType: Wash, SFXWashDirection: Down Right, SFXWashType: Start-Stop, SFXWashStartColor: galben deschis, SFXWashStopColor: verde. Se afieaz i titlul graficului Volumul vnzrilor (figura 6.51). n figura 6.52 se prezint pagina pagina_grafice lansat n execuie.

179

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.51 Setarea tipului de grafic

Figura 6.52 Lansarea n execuie a paginii Pagina_grafice

180

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Pentru a sincroniza un grafic cu un tabel, astfel ca orice modificare n tabel s se reflecte automat i n grafic, se seteaz propietatea SyncDataPage pe Yes (att pentru tabel ct i pentru grafic). De exemplu, se creeaz o pagin (Name: pagina_sincronizare, Text: Sincronizarea unui tabel cu un grafic). Se creeaz apoi un buton (Name:btnsincronizare, Text: Sincronizare tabel cu grafic). La evenimentul AfterClick al butonului se ataeaz un cod ce va permite sincronizarea tabelului cu graficul (cele dou obiecte partajeaz acelai cub de date). n acest scop, se creeaz un obiect cub de date. Se apeleaz metoda AddMeasures () pentru a aduga msura Sales la cubul de date. Se seteaz propietatea DataCube a tabelului, precum i a graficului la noul cub de date creat (figura 6.53). Pagina lansat n execuie este prezentat n figura 6.54.

Figura 6.53 Sincronizarea unui tabel cu un grafic

6.11 Crearea listelor ce conin valori ale dimensiunilor


Obiectul Dimension List este o list ce afieaz 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 trziu populat cu date. Sau se selecteaz o dimensiune din fereastra utilitarului Database Browser i se trage n pagin. Aceast metod creeaz o list ce afieaz valorile dimensiunii selectate. Pentru a popula o list cu valorile unei dimensiuni, se selecteaz opiunea Dimension din meniu ataat butonului dreapta al mouse-ului sau se selecteaz opiunea Inspect. Se deschide fereastra Object Inspector. Apoi dublu click pe

181

Iniiere n tehnologia OLAP-teorie i practic propietatea Dimension. De asemenea, se poate utiliza i metoda SetDefaultSelection(): Call dimlb1.setdefaultselection (nume_dimensiune) sau Dimlb1.dimension = nume_dimensiune Se utilizeaz propietatea Availablevalues pentru a specifica valorile ce vor fi afiate n list i anume: 0-All (afieaz toate valorile dimensiunii. Este valoare implicit pentru toate dimensiunile ce nu au ierarhii), 1-hierarchy (afieaz toate valorile din ierarhia curent a dimensiunii ), 2-Selection (afieaz toate valorile din selecia curent. Este valoarea implicit, dup ce se utilizeaz instrumentul Selector pentru a schimba selecia), 3-None.

Figura 6.54 Lansarea n execuie a paginii Pagina_sincronizare Propietatea ListBoxType stabilete tipul de list asociat unei dimensiuni i anume: 0-single highlight (o singur valoare este selectat la un moment dat) sau 1extended highlight (permite selecie multipl). Pentru a schimba valorile afiate n list se selecteaz opiunea Select data din meniul ataat butonului dreapta al mouse-ului. De exemplu, se creeaz o pagin (Name: pagina_dimensionlist, Text: Pagina ce conine o list cu valorile unei dimensiuni). Se creeaz un tabel (Name:table2) ce afieaz valorile msurii Sales. Se creeaz o list ce va afia valorile dimensiunii Product (baze de date DEMO). Apoi se creeaz dou butoane: buton 1 (Name: btnsinc, Text: Sincronizare) i buton 2 (Name: btnrefresh, Text:Refresh). La evenimentul AfterClick al butonului btnsinc se asociaz un cod care sincronizeaz lista cu tabelul (valorile ce se afieaz n tabel se vor afia selectate n list) (figura 6.55). La evenimentul AfterClick al butonului btnrefresh se asociaz un cod

182

Dezvoltarea sistemelor OLAP cu Oracle Express Objects care va sincroniza lista cu tabelul (ce se selecteaz din list se va afia n tabel). De exemplu, dac din list se selecteaz produsul Tents, n tabel se vor afia numai vnzrile acestui produs (figura 6.56). n figura 6.57 se afieaz pagina pagina_dimensionlist lansat n execuie.

Figura 6.55 Codul ataat evenimentului AfterClick al butonului Sincronizare

Figura 6.56 Codul ataat evenimentului AfterClick al butonului Refresh

183

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.57 Lansarea in execuie a paginii Pagina_dimensionlist

Figura 6.58 Propietatea Highlight Selection

184

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Dac se selecteaz propietatea HighlightSelection (dublu click) a listei Dimlb1 se afieaz valorile dimensiunii selectate. n figura 6.58 se observ c propietatea HighLightSelection se refer la obiectul Selection9. Dublu click pe aceast valoare i se afieaz propietile obiectului Selection9 (inclusiv valorile dimensiunii care sunt selectate la un moment dat ) (figura 6.59). Metoda RefreshSelection() poate modifica propietile DataSelection i HighlightSelection ale listei. De exemplu: Call dimlb1.refreshSelection (dlbselhighlight) actualizeaz tabelul table2 cu valorile curent selectate din lista Dimlb1.

Figura 6.59 Propietile obiectului Selection9

6.12 Instrumentul Selector


Instrumentul Selector (figura 6.60) permite dezvoltatorilor de aplicaii OLAP i utilizatorilor s selecteze valorile unei dimensiuni ce vor fi afiate ntr-un tabel (grafic sau list de valori). Propietatea Selector a unui tabel (grafic sau list de valori) specific tipul de Selector utilizat. Cnd se creeaz un tabel sau un graphic, propietatea Selector are valoare No value. Prima dat cnd instrumentul Selector este apelat, Express Objects creeaz un obiect Selector de tip Main selector i-l ataeaz la propietatea Selector a tabelului sau graficului. Se poate modifica tipul de selector prin utilizarea opiunii Options din fereastra instrumentului Selector sau

185

Iniiere n tehnologia OLAP-teorie i practic din Object Inspector. n fereastra de dialog Selector Options se poate modifica tipul de instrument Selector (figura 6.61). Propietatea SelectorType a obiectului Selector creat determin ce selector va fi afiat i anume: Main Selector (selectorul implicit creat automat de sistem), Single Tool Selector (unul din instrumentele incluse n Selector) i miniselector (o list de valori cu butoane de comand ataate) (tabelul 6.3). Tabelul 6.3 Valorile propietaii SelectorType
Constanta SlcTYPMain slcTYPMini slcTYPAll slcTYPAttribute slcTYPException slcTYPFamily slcTYPLevel slcTYPMatch slcTYPRange slcTYPsavedSel SlcTYPSort slcTYPTopBottom slcTYPCustomMeasure slcTYPList Valoare 1 2 4 8 16 32 64 128 512 1024 2048 4096 16384 32768 Descriere Selectorul principal Caseta de dialog pentru dimensiuni (Dimension dialog box) Instrumentul All Instrumentul Attribute Instrumentul Exception Instrumentul Family Instrumentul Level Instrumentul Match Instrumentul Range Instrumentul Saved selection Instrumentul Sort Instrumentul Top/Bottom Instrumentul Custom Measure Instrumentul List

Propietatea ShowOptions dac este setat pe Yes, permite utilizatorilor s acceseze fereastra de dialog Selector Options (figura 6.62). Propietatea AvailableTools specific ce instrumente se vor afia (se specific suma valorilor constantelor din tabelul 6.3). Miniselectorul conine o list de valori i trei butoane Ok, Cancel i Help. Titlul listei afieaz numele dimensiunii asociate. Pentru a crea un miniselector se seteaz propietatea SelectorType a obiectului Selector pe valoarea 2 (figura 6.62). Setul de propieti SelectorMini conine: propietatea Explanatory Text ce permite dezvoltatorului de aplicaie s controleze promptul ce apare n miniselector. Acest prompt specific utilizatorului cum se utilizeaz miniselectorul. De exemplu Selectai valorile pentru Timp (figura 6.63); propietatea ListBoxType specific tipul de selecie din list i anume: 0Single Highlight (se selecteaz un singur element), 1-extended highlight (se selecteaz multiple elemente utiliznd Shift+Click sau CTRL+Click), 2manual sort (elementele se selecteaz prin drag and drop), 4-view only (nici un element nu poate fi selectat), 3-dropdown (se selecteaz numai un element din lista de tip combo). n figura 6.63 se afieaz un miniselector.

186

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Orice instrument din Selector se poate afia individual dac se seteaz propietatea SelectorType cu una din valorile specificate n tabelul 6.3. De exemplu, Selector Type=32768 afieaz numai instrumentul List (figura 6.64).

Figura 6.60 Instrumentul Selector

Figura 6.61 Fereastra de dialog Selector Options

187

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.62. Setarea propietilor AvailableTools i ShowOptions

Figura 6.63 Exemplu de miniselector

188

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.64 Instrumentul List Propietatea EnableSelectData afieaz sau ascunde Selectorul ataat unui tabel sau grafic (nu se afieaz icoana Selector din bara de dimensiuni). Se poate utiliza propietatea EnableSelectData i pentru a determina dac utilizatorii pot modifica selecia pentru un anumit nod. De exemplu, dac propietatea EnabledSelectData este setat pe No, pentru un nod i pe Yes, pentru un tabel (sau grafic), utilizatorii pot afia Selectorul, dar dimensiunile ataate nodului respectiv nu apar n lista de dimensiuni din Selector. De exemplu se modific obiectul Selector pentru tabelul table2 din pagina pagina_dimensionlist, astfel nct dimensiunea ce conine msurile s nu se mai afieze n lista cu dimensiuni din Selector. Se utilizeaz Object Inspector pentru a determina care nod corespunde dimensiunii ce conine msurile (XP_MEASUREDIM). Se selecteaz opiunea Inspect din meniul ataat butonului dreapta al mouse-ului i se deschide fereastra Object Inspector pentru tabelul table2. Apoi dublu click pe valoarea propietii Datacube i se afieaz propietile obiectului cub de date asociat. Se selecteaz opiunea Contents, dublu click pe fiecare dimensiune fizic a cubului (de exemplu edge4), apoi pe fiecare nod (de exemplu edgenode7). Apoi se seteaz propietatea EnableSelectData a nodului corespunztor dimensiunii XP_MEASUREDIM pe No. Dimensiunea ce conine msurile nu se mai afieaz n lista de dimensiuni din Selector (figura 6.65). Pentru a ataa unui grafic selectorul utilizat de un tabel, se utilizeaz comanda: set graph1.selector= table1.selector

189

Iniiere n tehnologia OLAP-teorie i practic

Figura 6.65 Setarea propietii EnableSelectData

6.13 Crearea meniurilor


Se pot crea meniuri orizontale sau verticale. Se selecteaz opiunea Menu din caseta de instrumente (toolbox) i click cu mouse-ul pe pagin. Apoi se creeaz opiunile meniului selectnd icoana CommandItem din caseta de instrumente. Pentru a modifica propietile unei opiuni, se utilizeaz Object Inspector sau fereastra de dialog Command ItemProperties. Aceast fereastr este accesat prin dublu click pe propietatea Accelerator a opiunii respective. Fereastra Command ItemProperties (figura 6.66) permite dezvoltatorilor un acces mai rapid la un subset de propieti. Unele propieti sunt valabile numai dac se creeaz o bar de butoane (de exemplu propietatea Popup Tip). n aceast fereastr (figura 6.66) se specific: numele opiunii (Name), textul asociat, stilul opiunii, textul ce se va afia n bara de stare atunci cnd utilizatorul selecteaz aceast opiune, textul ce se va afia atunci cnd utilizatorul trece cu mouse-ul peste opiunea din bara de icoane (Popup Tip), dac opiunea este activ (enabled) i vizibil (visible), starea opiunii (state), combinaia de chei ataat opiunii (accel.Key), identificatorul opiunii (id) etc. Pentru a crea o bar de butoane (toolbar) se selecteaz icoana Toolbar din caseta de instrumente i click cu mouse-ul pe pagin. Bara de butoane poate fi afiat vertical sau orizontal. Exist mai multe moduri de a crea un buton n bara de butoane. De exemplu: se selecteaz icoana CommandItem din caseta de

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) conine o colecie 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 conine imagini pentru funciile standard cum ar fi print i paste, categoria Graph conine imagini reprezentnd diferite tipuri de grafice etc.

Figura 6.66 Fereastra Command Item Properties

Figura 6.67 Instrumentul Toolbar Galery

191

Iniiere n tehnologia OLAP-teorie i practic

6.14 Adugarea obiectelor definite de utilizator n caseta de instrumente


Un obiect definit de utilizator poate fi adugat n caseta de instrumente (toolbox) prin tragere (drag and drop). Icoana ataat obiectului poate fi modificat prin setarea propietilor ToolbarSmallPicture i ToolbarLargePicture. Caseta de instrumente va afia obiectele definite de utilizator, numai dac proiectele care le conine sunt deschise (figura 6.68). Pentru a terge un obiect creat de utilizator din caseta de instrumente, se selecteaz opiunea Edit/Install din meniul principal. Se afieaz fereastra de dialog Install. Se selecteaz caseta User Defined i se deselecteaz numele obiectului din lista de obiecte, apoi se apas tasta OK .

Figura 6.68 Includerea unui obiect definit de utilizator (pagina_template) n caseta de instrumente

6.15 Utilizarea obiectelor de dialog


Obiectele de dialog (dialog objects) sunt obiecte invizibile la momentul execuiei proiectului sau briefing-ului. Ele sunt utilizate pentru a afia urmtoarele ferestre de dialog: Open, Save As, Color, Font i Print.

192

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Pentru a crea un obiect de dialog se selecteaz icoana corespunztoare din caseta de instrumente i click cu mouse-ul pe pagin. Obiectul de dialog este afiat ca o icoan pe pagin. Pentru a vizualiza fereastra de dialog asociat cu obiectul de dialog se alege opiunea Show din meniul ataat butonului dreapta al mouse-ului (cu excepia ferestrei de dialog Print). Pentru a afia o fereastr de dialog la momentul execuiei proiectului se utilizeaz metoda Show() (n cazul ferestrelor de dialog File, Color i Font) sau Showdialog() (pentru fereastra de dialog Print). Metoda Show() ntoarce valoarea Yes dac utilizatorul a selectat butonul OK. n exemplu urmtor, se utilizeaz metoda Show() pentru a afia fereastra de dialog File i metoda ShowDialog() pentru a afia fereastra de dialog Print: Call filedialog1.show() Call printer1.showdialog n figura 6.69 se afieaz fereastra de dialog File, se evalueaz dac utilizatorul a ales butonul OK i se deschide proiectul selectat de utilizator. Apoi se lanseaz n execuie proiectul. Metoda Openproject () deschide proiectul selectat, l face activ, elimin orice csu de dialog sau mesaje (argumentul pjsilent). Variabila fiier pstreaz calea pentru proiectul selectat. Metoda Run() este folosit pentru a lansa n execuie proiectul.

Figura 6.69 Utilizarea metodei Show()

193

Iniiere n tehnologia OLAP-teorie i practic Obiectul de dialog File este utilizat pentru a permite unui utilizator s deschid un fiier (propietatea DialogType=0) sau s-l salveze cu alt nume (propietatea DialogType=1). n exemplul urmtor obiectul de dialog permite utilizatorului s salveze un fiier cu un alt nume: Filedialog1.dialogtype=1 Call filedialog1.show() Propietatea Filter specific lista de filtre (condiii) care se vor afia n caseta Files of Type din fereastra de dialog File. Un filtru specific un tip de fiier. De exemplu: Project Files (*.xpj)|*.xpj|Text Files (*.txt)|*.txt|All Files (*.*)|*.* Propietatea DefaultExt specific extensia implicit a fiierelor. 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 propieti File se refer la o serie de propieti ale fiierelor selectate n fereastra de dialog File (de exemplu: driverul implicit, directorul implicit, numele fiierului, extensia etc). Obiectul de dialog Font afieaz fereastra de dialog Font, n care utilizatorul poate specifica numele fontului utilizat, stilul, dimensiunea, efectele utilizate, culoarea etc. Obiectul de dialog Font are multe propieti i anume: titlul ferestrei (implicit Font), fontul (nume, stil, culoare) etc (figura 6.70).

Figura 6.70 Propietile obiectului de dialog Font

194

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Obiectul de dialog Color se utilizeaz pentru a afia fereastra de dialog Color din care utilizatorul poate selecta culoarea dorit. Obiectul de dialog Printer se utilizeaz pentru a afia fereastra de dialog Print Setup care permite utilizatorului s specifice setrile pentru imprimant. Obiectul de dialog Printer are multe propieti cum ar fi: propietatea docname (indic numele documentului care se va tipri), propietatea orientation (tipul de orientare: portrait sau landscape), propietatea copies (numrul de copii) etc. De exemplu se deschide pagina pagina_meniu. Se creeaz un obiect de dialog File (Name: Filedialog2, Title: Open Proiect, Filter: Project Files (*.xpj)|*.xpj|All Files (*.*)|*.* ) (figura 6.71). La evenimentul AfterItemClick a opiunii cifisier (Text: Fiier) se asociaz un cod care permite afiarea ferestrei de dialog File (titlul ferestrei va fi Open Fiier, iar n caseta Files of type se vor afia numai Project Files i All Files). Utilizatorul va selecta un fiier (proiect) i-l va deschide. Se va utiliza metoda Run() pentru a lansa apoi n execuie proiectul selectat (figura 6.72).

Figura 6.71 Selectarea opiunii Fiier din meniu n exemplul urmtor, se creeaz o pagin (Name: pagina_export, Text: Pagina Export). Se ataeaz un meniu (menu1) cu urmtoarele opiuni cibar (Text: Afieaz bara de dimensiuni), ciselector (Text: Selectorul), ciexcel (Text: Export Excel). Se selecteaz din Database Browser, msura Sales i se trage n pagin. Se creeaz un tabel table1 ce afieaz valorile acestei msuri (se utilizeaz baza de date DEMO). La evenimentul AfterItemClick al opiunii cibar se ataeaz un cod

195

Iniiere n tehnologia OLAP-teorie i practic ce permite afiarea sau ascunderea barei de dimensiuni corespunztoare tabelului (figura 6.73). La evenimentul AfterItemClick al opiunii ciselector se ataeaz un cod ce permite afiarea selectorului pentru tabelul table1 (figura 6.74). La evenimentul AfterItemClick al opiunii ciexcel se ataeaz rutina Export Table QuickAction ce permite exportul paginii curente de date, din tabelul table1 ntr-o foaie de calcul tabelar Excel (figura 6.75).

Figura 6.72 Codul ataat evenimentului AfterItemClick al opiunii cfisier

Figura 6.73 Codul ataat evenimentului AfterItemClick al opiunii cibar

196

Dezvoltarea sistemelor OLAP cu Oracle Express Objects

Figura 6.74 Codul ataat evenimentului AfterItemClick al opiunii ciselector

Figura 6.75 Exportul unei pagini de date n Excel.

197

Iniiere n tehnologia OLAP-teorie i practic Rezumat Oracle Express Objects este un instrument OLAP ce permite crearea de aplicaii OLAP, precum i realizarea de programe n limbaj Express, prin care se controleaz comportamentul aplicaiei. Acest instrument este un element cheie n pachetul de instrumente pentru inteligena afacerilor Oracle Integrated Business Intelligence Tools, fiind integrat cu Oracle Discoverer. Aplicaiile OLAP dezvoltate cu Oracle Express Objects acceseaz datele stocate n baze de date multidimensionale sau baze de date relaionale. 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 rdcin ce include celelalte obiecte. O aplicaie 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 propietile obiectelor etc. n Oracle Express Objects se pot crea urmtoarele tipuri de obiecte: briefinguri, pagini, tabele, grafice, obiecte de tip ieire, 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 afieaz dimensiunile i msurile bazei de date multidimensionale, la care se conecteaz Express Objects. Instrumentul Selector permite dezvoltatorilor de aplicaii OLAP i utilizatorilor s selecteze valorile unei dimensiuni ce vor fi afiate 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 urmtoarele 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 (IFEND IF), structura alternativ cu mai multe ramuri (SELECT CASEEND SELECT), structura repetitiv condiionat anterior cu numrtor (FORNEXT), structura repetitiv (WHILEWEND) etc.

198

Dezvoltarea sistemelor OLAP cu Oracle Express Objects Cuvinte cheie Obiect, motenire, metod, eveniment, modul de cod, modul bibliotec, modul global, aplicaie, proiect, briefing, pagin, variabil global, tabel, grafic, obiecte de tip ieire, 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 afieaz datele stocate n baza de date multidimensional. Datele sunt selectate cu ajutorul instrumentului Selector; crearea de briefing-uri ce pot fi folosite de ali utilizatori; editarea i modificarea briefing-urilor create cu Express Analyzer sau Express Objects; lansarea n execuie a unui briefing; lansarea n execuie a aplicaiilor create cu Express Objects. Oracle Express Analyzer poate accesa datele stocate n baze de date multidimensionale Express sau baze de date relaionale. La lansarea n execuie a lui Express Analyzer, se afieaz fereastra de dialog Welcome to Oracle Express Analyzer (figura 7.1). Se poate selecta opiunea: Run a Briefing or Application pentru a lansa n execuie un briefing sau o aplicaie, Create a new Briefing (crearea unui briefing), Change an existing Briefing pentru a modifica un briefing existent, Analyzer Express Data pentru a afia 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 coninutul fiecruia (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 afiate n tabele sau grafice, n paginile unui briefing (figura 7.3). Pentru baza de date la care se face conexiunea se afieaz dimensiunile i msurile. 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 ecranul din stnga al ferestrei utilitarului Database Browser). n ecranul din dreapta, variabilele asociate cu aceste dimensiuni sunt colorate (figura 7.4).

Figura 7.1 Fereastra de dialog Welcome to Oracle Express Analyzer

Figura 7.2 Utilitarul Briefing Browser

201

Iniiere n tehnologia OLAP-teorie i practic

Figura 7.3 Utilitarul Database Browser

Figura 7.4 Stabilirea dimensionalitii variabilelor

202

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer Se pot obine informaii despre o baz de date multidimensional prin selectarea ei n Database Browser i apoi se selecteaz din submeniul Window opiunea Object Inspect. Se afieaz fereastra de propieti Object Inspector (figura 7.5).

Figura 7.5 Afiarea propietilor unui obiect cu Object Inspector Cnd se creeaz un obiect, Express Analyzer stabilete valori implicite pentru propietile obiectului respectiv. Aceste valori pot fi modificate ulterior cu Object Inspector. Toate obiectele au o serie de propieti standard i anume: propietatea Name specific numele obiectului care apare n fereastra utilitarului Briefing Browser (implicit object# unde object este tipul de obiect creat i # este un numr secvenial). De exemplu, page3 reprezint pagina 3 dintr-un briefing; propietatea LocalName specific alt nume pentru obiect (n alt limb strin: germana, italiana etc); propietatea Description afieaz descrierea obiectului; propietatea Parent specific tipul de obiect (de exemplu: page, banner). Propietatea este read-only. propietatea Container specific obiectul n care este inclus obiectul curent. Aceast propietate este read-only. De exemplu, pentru o pagin, containerul este briefing-ul, pentru un tabel sau grafic container-ul este pagina etc.

203

Iniiere n tehnologia OLAP-teorie i practic De asemenea, exist seturi de propieti (seturi de caracteristici grupate logic). De exemplu, setul de propieti Line include propieti ce controleaz caracteristicile liniilor cum ar fi culoarea liniei, limea, stilul etc. Dac se selecteaz opiunea Contents, din fereastra utilitarului Object Inspector se afieaz coninutul obiectului curent, numai dac este de tip container. De exemplu, o pagin poate conine tabele, grafice etc.

7.1 Conectarea la baza de date multidimensional


Conectarea la o baz de date multidimensional se face prin selectarea opiunii Attach din submeniul Database. Se deschide fereastra de dialog Attach Database. Se selecteaz baza de date i se apas apoi butonul OK (figura 7.6).

Figura 7.6 Conectarea la baza de date

7.2 Crearea, actualizarea i salvarea unui briefing


Pentru a crea un nou briefing, se selecteaz din submeniul File opiunea New Briefing. Se deschide fereastra de dialog Briefing Name n care se tasteaz numele i descrierea briefing-ului (figura 7.7).

204

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer Pentru a terge un briefing se utilizeaz instrumentul Windows File Manager sau comanda DEL de la promptul de DOS (se terge fiierul corespunztor cu extensia .xbr).

Figura 7.7 Crearea unui briefing Pentru a actualiza un briefing existent (care nu este deschis) se selecteaz din submeniul File opiunea Open Briefing sau dublu click pe butonul Open Briefing din bara de instrumente a ferestrei principale. n fereastra utilitarului Briefing Browser se selecteaz dublu click cu mouse-ul briefing-ul pe care dorim s-l actualizm. Salvarea unui briefing se face selectnd din submeniul File urmtoarele opiuni: Save, Save As sau Save All.

7.3 Crearea i editarea paginilor


Pentru a crea o pagin se selecteaz icoana Page din bara de butoane ataat ferestrei utilitarului Briefing Browser. Se poate crea indirect o pagin, atunci cnd se creeaz un tabel sau un grafic, un obiect OLE sau un obiect de tip ieire Express. Pentru a edita o pagin se selecteaz dublu click cu mouse-ul pagina dorit (figura 7.8).

205

Iniiere n tehnologia OLAP-teorie i practic Paginile create nu se pot salva separat de briefing. Atunci cnd o pagin este creat, ea este adaugat automat la briefing-ul curent. Dac dorim ca paginile create s nu fie adugate la un briefing, se parcurg urmtorii pai: din submeniul Edit se alege opiunea Options i se afieaz fereastra de dialog Options; se deselecteaz caseta de validare Add New pages to briefing (figura 7.9). Totui, atunci cnd se dorete nchiderea paginii, Express Analyzer ntreab utilizatorul dac dorete s adauge pagina la briefing-ul curent.

Figura 7.8 Crearea i editarea unei pagini

7.4 Mutarea, duplicarea i referirea paginilor


Pentru a muta, duplica sau referi o pagin se parcurg urmtorii pai: se selecteaz pagina din fereastra utilitarului Briefing Browser; se trage (drag and drop) pagina n alt briefing. Express Analyzer ntreab utilizatorul dac dorete duplicarea (duplicate), mutarea (move) sau referirea (link) paginii. Duplicarea presupune crearea unei copii a paginii, la noua locaie. Mutarea presupune tergerea paginii din briefing-ul curent i inserarea n noul briefing, iar referirea stabilete o legtur (link) la o pagin din briefing-ul original. Aceast ultim opiune simplific viitoarele

206

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer modificri, deoarece actualizarea paginii (indiferent de briefing) cauzeaz modificri ce sunt reflectate n ambele briefing-uri.

Figura 7.9 Fereastra de dialog Options Unele propieti ale paginii pot afecta comportamentul obiectelor incluse n pagin. De exemplu, propietatea Scale Units specific unitatea de msur (inch, pixel) utilizat pentru pagin i obiectele sale. Propietatea AutoSize specific comportamentul paginii i al obiectelor sale, dac dimensiunea paginii este modificat. Dac propietatea este setat pe Yes, o modificare a dimensiunii paginii produce o modificare corespunztoare a dimensiunilor obiectelor incluse. O pagin dintr-un briefing poate conine: tabele, grafice, obiecte de tip ieire (Express output object), obiecte OLE, obiecte de tip banner i butoane.

7.5 Crearea obiectelor unui briefing


Pentru a adaug un obiect la o pagin se parcurg urmtorii pai: se selecteaz icoana obiectului din caseta de instrumente (toolbox); se face click cu mouse-ul pe suprafaa paginii, n locul unde se dorete crearea obiectului (figura 7.10).

207

Iniiere n tehnologia OLAP-teorie i practic

Figura 7.10 Crearea unui obiect Pentru a crea un tabel sau un grafic ce conine date se parcurg urmtorii pai: din fereastra utilitarului Database Browser se selecteaz baza de date i apoi msurile dorite; se trag cu mouse-ul (drag and drop) pe suprafaa paginii i apare un meniu vertical cu dou opiuni: Table i Graph. Se alege una din opiuni i va apare n pagin fie un tabel populat cu date, fie un grafic (figura 7.11). Se pot aduga 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 ataat butonului dreapta al mouse-ului, opiunea Inspect. Se deschide fereastra Object Inspector i se seteaz propietatea AutoSize. Pentru a crea un obiect de tip ieire (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 afia rezultatele comenzilor Express executate de utilizatori (figura 7.12). Express Analyzer permite includerea de informaii preluate din alte aplicaii folosind obiecte OLE (Object Linking and Embedding). Express Analyzer permite numai obiecte OLE incluse (embedding OLE objects). Odat adugate 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 fiier cu extensia (.bmp) sau un fiier Excel) (figura 7.13).

Figura 7.11 Crearea unui tabel sau a unui grafic

Figura 7.12 Crearea unui obiect de tip ieire

209

Iniiere n tehnologia OLAP-teorie i practic

Figura 7.13 Crearea unui obiect OLE Se pot crea i butoane utilizate pentru: a lansa n execuie un alt briefing, a schimba pagina curent din briefing, a crea tabele sau grafice, a rearanja datele n tabele sau grafice, a afia mesaje sau a executa comenzi Express. Pentru a aduga un buton i a-i ataa o aciune se parcurg urmtorii pai: se selecteaz icoana butonului din caseta de instrumente; se trage cu mouse-ul n pagin i se creeaz butonul; se selecteaz apoi butonul i se deschide meniul vertical ataat butonului dreapta al mouse-ului; se alege opiunea QuickAction i se deschide fereastra de dialog QuickAction; se selecteaz aciunea dorit care va fi ataat butonului. De exemplu pentru a schimba pagina curent, se alege aciunea GO TO i se specific numrul paginii (figura 7.14). Un obiect de tip banner este o caset ce conine o singur linie de caractere. Se utilizeaz de exemplu ca titlul unei pagini. Pentru a crea un obiect de tip banner se parcurg urmtorii pai: se selecteaz icoana corespunztoare din caseta de instrumente; se trage n pagin briefing-ului curent i se creeaz obiectul de tip banner; se selecteaz obiectul de tip banner creat i se deschide meniul vertical ataat butonului dreapta al mouse-ului;

210

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer se alege opiunea Text i se tasteaz irul de caractere care va fi afiat (figura 7.15).

Figura 7.14 Crearea unui buton i ataarea unei aciuni

Figura 7.15 Crearea unui obiect de tip banner Pentru a afia mai multe linii de text, se poate crea un obiect OLE ce afieaz textul scris ntr-un editor cum ar fi Microsoft Word.

211

Iniiere n tehnologia OLAP-teorie i practic

7.6 Lansarea n execuie a unui briefing sau a unei pagini


Lansarea n execuie a unui briefing, se poate face prin selectarea opiunii Run nume_briefing din submeniul File. Pentru a lansa n execuie o pagin, se selecteaz pagina i apoi opiunea 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 afiate la lansarea n execuie a briefing-ului. Cnd se creeaz o nou pagin, Express Analyzer o adaug la sfritul briefing-ului curent. Pentru a modifica ordinea de afiare a unei pagini, se selecteaz pagina n fereastra utilitarului Briefing Browser i se trage (drag and drop) cu mouse-ul la noua locaie . n Express Analyzer se pot tipri paginile briefing-ului, tabelele sau graficele. Cnd se tipresc pagini, se poate selecta tiprirea paginii curente, a tuturor paginilor sau numai a unui set de pagini.

7.7 Utilizarea tabelelor pentru analiza datelor


Tabelele se utilizeaz pentru : a vizualiza toate datele stocate n baza de date multidimensional; a executa analize ad-hoc prin interogarea bazei de date. Se selecteaz datele dorite i sunt vizualizate n tabel din diferite perspective (view-uri), prin modificarea poziiilor dimensiunilor cu ajutorul barei de dimensiuni (Dimension Bar) ; a modifica setul de date afiate cu ajutorul instrumentului Selector; a executa analize de tip What-if etc. Pentru a crea un tabel fr date se selecteaz icoana Table din caseta de instrumente i se trage cu mouse-ul pe suprafaa paginii curente. Pentru a crea un tabel populat cu date, se conecteaz la o baz de date. n fereastra utilitarului Database Browser se selecteaz o msur i se trage cu mouse-ul pe suprafaa paginii curente. Apare un meniu vertical. Se selecteaz opiunea Table i se creeaz automat un tabel populat cu valorile msurii selectate (figura7.16). De asemenea, se poate crea un tabel plecnd de la un tabel existent, dac se selecteaz opiunea Duplicate din meniul vertical asociat butonului drepta al mouse-ului (tabelul surs este selectat) sau de la un grafic, dac se selecteaz opiunea Table din meniul vertical asociat butonului dreapta al mouse-ului (se selecteaz n prealabil fundalul graficului). n acest ultim caz, se creeaz un tabel pe o nou pagin. Datele afiate n tabel pot fi prezentate sub diferite aspecte. Cnd se creeaz un nou tabel, bara de dimensiuni apare implicit. Se poate modifica aceast setare. n fereastra de dialog Options, se deselecteaz caseta de validare Show Dimension Bar. n bara de dimensiuni sunt afiate trei icoane care reprezint cele trei

212

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer dimensiuni fizice ale cubului de date i anume pagina (page edge icon), rndul (row edge icon) i coloana (column edge icon). n pagin se afieaz numele dimensiunilor logice ale cubului de date, vizibile n pagina curent a tabelului. De exemplu, n figura 7.16, pagina conine valorile dimensiunii Instituii, rndul conine tipurile de proiecte, iar coloana conine valorile variabilei numr proiecte i anii de analiz: 2000, 2001, 2002, 2003. Se pot modific dimensiunile logice incluse ntr-o dimensiune fizic, precum i ordinea lor de afiare. De exemplu, n figura 7.17 s-a mutat dimensiunea logic Timp (anii) pe rnd. Nu se poate muta o dimensiune logic de pe coloan pe rnd, dac exist o singur dimensiune logic inclus n coloan.

Figura 7.16 Crearea unui tabel populat cu date Formatul unui tabel este controlat de propietile sale, care pot fi modificate folosind utilitarul Object Inspector. Un tabel are urmtoarele componente: coloanele (column edge), rndurile (row edge), paginile (page edge), titlul, subtitlul, zona de date (databody), nota de subsol (footnote). Aceste componente sunt listate prin selectarea opiunii Contents din fereastra Object Inspector i au propriile propieti.

213

Iniiere n tehnologia OLAP-teorie i practic

Figura 7.17 Mutarea dimensiunii Anii Dac se seteaz propietatea AllowCellEditing (din setul de propieti CellEditing) cu valoarea Yes, se pot modifica valorile din celulele de date. Totui nu se pot edita celulele ce conin valori calculate pe baza unor formule. Aceast propietate permite executarea analizelor de tip what-if de ctre utilizatori. De asemenea, n Express Analyzer se pot defini variabile (custom measures) care pot fi folosite pentru analize de tip what-if. Utilizatorul poate modifica valorile acestor variabile, fr ca aceste valori s fie stocate n baza de date (baza de date este readonly). Pentru a crea aceste variabile se parcurg urmtorii pai: din submeniul Database se alege opiunea Custom Measures; n fereastra de dialog Custom Measures se specific baza de date utilizat i se afieaz variabilele deja definite de utilizatori (de exemplu baza de date evaluare_final); se alege opiunea New pentru a crea o nou variabil, Copy pentru a crea o copie a unei variabile deja existent sau Edit pentru a modifica o variabil deja definit; n caseta Expression se definete expresia pe baza creia se creeaz nou variabil. De exemplu, se definete variabila Total_personal cu expresia : Total_personal=nrcadre+nrtesa (figura 7.18). Cnd se creeaz o nou variabil, Express Analyzer adug numele acestei variabile n fereastra Measures a utilitarului Database Browser (figura 7.19). Definiia variabilei este stocat n briefing-ul n care este definit variabila i n

214

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer fiierul XANALYZE.XPJ. Fiecare utilizator a lui Express Analyzer are propriul fiier XANALYZE.XPJ, n care sunt stocate variabilele proprii i seleciile de date salvate.

Figura 7.18 Crearea unei variabile

7.8 Instrumentul Selector


Instrumentul Selector permite dezvoltatorilor de aplicaii OLAP i utilizatorilor s selecteze valorile unei dimensiuni, care vor fi afiate ntr-un tabel sau grafic. Acest instrument a fost prezentat n detaliu n capitolul 6. n Oracle Express Analyzer se pot utiliza opiunile selectorului i anume: All selecteaz (sau deselecteaz) toate valorile unei dimensiuni sau toate valorile unei ierarhii; List selecteaz (sau deselecteaz) acele valori ale unei dimensiuni care se vor afia; Level selecteaz (sau deselecteaz) toate valorile dimensiunii de la un nivel sau de la mai multe niveluri ale unei ierarhii. De exemplu, n dimensiunea Instituii se pot selecta toate valorile de la nivelul L1 (figura 7.20); Match selecteaz (sau deselecteaz) acele valori ale unei dimensiuni care conin un ir de caractere specificat (figura 7.21);

215

Iniiere n tehnologia OLAP-teorie i practic Family selecteaz (sau deselecteaz) o familie de valori dintr-o ierarhie; Exception selecteaz (sau deselecteaz) un set de valori ale unei dimensiuni, n funcie de valorile unei variabile ce utilizeaz aceast dimensiune. De exemplu, se pot selecta numai facultile care au numr proiecte> 2 (figura 7.22); Top/Bottom se utilizeaz pentru a afia primele sau ultimele n valori ale unei dimensiuni, n funcie de valorile unei variabile. De exemplu, se pot selecta primele 3 faculti, n funcie de valoarea contractat n lei, n 2002; Range selecteaz (sau deselecteaz) un ir de valori ale unei dimensiuni de tip Timp. De exemplu, se pot selecta lunile cuprinse ntre Ianuarie i Septembrie 2002; Saved Selection selecteaz (sau deselecteaz) un set de valori dintr-o selecie salvat (ce poate fi reutilizat); Sort ordoneaz valorile unei dimensiuni dup diferite criterii.

Figura 7.19 Afiarea variabilei create n fereastra Measures a utilitarului Database Browser Se poate afia instrumentul Selector prin dublu click cu mouse-ul pe o dimensiune din bara de dimensiuni (dimension bar) a unui tabel (sau grafic), sau se selecteaz opiunea Select Data, din meniul vertical ataat butonului dreapta al mouse-ului (tabelul sau graficul este selectat).

216

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer

Figura 7.20 Opiunea Level

Figura 7.21 Opiunea Match

217

Iniiere n tehnologia OLAP-teorie i practic

Figura 7.22 Opiunea Exception Se poate modifica selecia curent prin adugarea unor noi valori ale dimensiunii sau tergerea unor valori. De exemplu, se alege opiunea List a selectorului (figura 7.23). n fereastra de dialog List, se selecteaz cu mouse-ul, din caseta Available Instituii, valorile care se doresc adugate (de exemplu FPS). Apoi se selecteaz butonul Add. Valorile selectate apar n caseta Selected Institutii. La selectarea butonului OK, valorile sunt adugate la selecie curent. Dac se selecteaz butonul Select, selecia curent este nlocuit cu noile valori selectate. Butonul Add adaug noi valori la selecia curent. Butonul Keep pstreaz noile valori n selecia curent i le terge pe celelalte, iar butonul Remove terge noile valori din selecia curent i le pstreaz pe celelalte. Se poate salva o selecie, pentru a fi reutilizat. Salvarea se poate face n dou moduri: static. Seleciile salvate au aceleai valori ori de cte ori sunt utilizate. De exemplu, o selecie ce conine numai facultile (dimensiunea Institutii). Se alege opiunea Library i se deschide fereastra de dialog Selection Library (figura 7.24). dinamic. Seleciile salvate variaz n timp, deoarece ele se bazeaz pe un criteriu de selecie respectat de valorile dimensiunii. De exemplu, se poate crea o selecie ce cuprinde primele 3 faculti care au cel mai mare numr de proiecte. Aceast selecie variaz de la an la an. Scriptul pentru o

218

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer selecie salvat dinamic conine descrierea criteriului utilizat, pentru a determina ce valori ale dimensiunii vor fi incluse n selecie.

Figura 7.23 Modificarea seleciei curente

7.9 Agregarea datelor


Se pot agrega datele utiliznd diferite funcii de agregare (total(), average(), smallest(), largest() etc). De exemplu, se consider variabila units (numr de produse vndute pentru fiecare tip de produs, n fiecare lun i n fiecare ora) (figura 7.25). Baza de date ataat este DEMO. Pentru a agrega datele se parcurg urmtorii pai: din bara de dimensiuni se selecteaz dimensiunea pe care dorim s o agregm (de exemplu dimensiunea Month); se selecteaz opiunea Aggregate din meniul vertical asociat butonului dreapta al mouse-ului i se deschide fereastra de dialog Aggregate Dimension; se selecteaz tipul de agregare (de exemplu total) i se alege butonul OK (figura 7.26). Se va afia numrul total de produse vndute n primele 10 luni ale anului 1995, pentru fiecare tip de produs (figura 7.27).

219

Iniiere n tehnologia OLAP-teorie i practic

Figura 7.24 O selecie static

Figura 7.25 Agregarea datelor

220

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer

Figura 7.26 Fereastra Aggregate

Figura 7.27 Numrul total de produse vndute n primele 10 luni ale anului

221

Iniiere n tehnologia OLAP-teorie i practic Dup agregare, n bara de dimensiuni apare o icoan special ce indic c dimensiunea respectiv a fost agregat, iar dac dimensiunea este selectat cu mouse-ul, se afieaz un mesaj care descrie agregarea (figura 7.27). Se poate agrega orice dimensiune cu excepia variabilelor. La anularea agregrii (prin alegerea opiunii Disaggregate), modul de afiare a datelor nu mai este identic cu cel dinainte de agregare . n Express Analyzer, dimensiuniile ierarhice deja includ niveluri de agregare cum ar fi pentru dimensiunea Instituii din baza de date evaluare_final (figura 7.28). Aceast dimensiune are incluse totaluri (embedded totals). Atunci cnd se dorete agregarea dimensiunii Instituii apare un mesaj de avertizare (figura 7.28), prin care se specific c dimensiunea conine totaluri. Pentru a nu crea rezultate eronate, se selecteaz butonul Change Selection din fereastra Aggregate i se aleg numai valorile unui singur nivel ierarhic sau se utilizeaz instrumentul Selector (opiunea Level i Family).

Figura 7.28 Dimensiunea ierarhic Instituii 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 execuie a unui briefing i lansarea n execuie a aplicaiilor create cu Express Objects.

222

Dezvoltarea sistemelor OLAP cu Oracle Express Analyzer Oracle Express Analyzer poate accesa datele stocate n baze de date multidimensionale Express sau baze de date relaionale. n Oracle Express Analyzer se pot crea briefing-uri, pagini, tabele, grafice, obiecte de tip ieire, obiecte OLE, obiecte de tip banner i butoane. Oracle Express Analyzer i Oracle Express Objects au o serie de utilitare comune i anume: Database Browser, Briefing Browser, Object Inspector, instrumentul Selector. Cuvinte cheie Briefing, pagin, obiect de tip ieire, 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 crei celule stocheaz date. Tipul de dat al unei variabile indic datele pe care le conine. Fiecare variabil este organizat sau dimensionat dup una sau mai multe dimensiuni (max 32 de dimensiuni). Nu este necesar ca toate variabilele s aib aceeai dimensionalitate (s utilizeze acelai set de dimensiuni). n lumea multidimensional, dimensionalitatea unei variabile este adesea numit configuraia 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 entitilor pe care le reprezint) i INTEGER (valorile sunt identificate prin poziiile lor numerice. O dimensiune de tip integer este o secven de numere ce ncepe cu 1). O dimensiune ce conine valori la toate nivelurile de agregare este cunoscut ca dimensiune cu totaluri incluse (embedded total dimension). Relaiile. O relaie descrie corespondena ntre valorile unei dimensiuni i valorile altei dimensiuni din baza de date. De exemplu, se poate crea o relaie numit niv_inst ce asociaz valorile dimensiunii Instituii cu valorile dimensiunii Nivel_institut. Se pot utiliza relaiile i pentru a defini ierarhiile n dimensiuni. Formulele. O formul este un obiect al bazei de date Express ce definete o expresie. Valorile formulei sunt calculate ori de cte ori este apelat formula. Termenul de msur este folosit pentru a referi variabilele, formulele i relaiile. Obiectele compuse (composite). Un obiect compus este o dimensiune artificial ce combin valorile a dou dimensiuni mprtiate. Express Server creeaz automat un obiect compus, cnd se definete o variabil mprtiat.

224

Crearea unei baze de date multidimensionale Modelele. Un model stocheaz un set de ecuaii interdependente, care utilizeaz valorile unor variabile sau a unor dimensiuni. Modelele sunt folosite atunci cnd calculele sunt complexe sau variabilele nu sunt aditive. Programele. Un program conine secvene de comenzi ale limbajului Express ce manipuleaz datele multidimensionale. n tabelul 8.1 sunt prezentate comparativ conceptele utilizate de limbajul SQL i limbajul multidimensional Express [OEDA99]. Tabelul 8.1 Prezentare comparativ a conceptelor utilizate de limbajul SQL i limbajul Express
Concepte SQL Baza de date Tabela Tabela virtual Coloana Clauza JOIN Clauza GROUP BY Clauza ORDER BY GRANT Proceduri stocate, scripturi SQL PL/SQL Agregri (sum, avg, count, min, max) SELECT INSERT DELETE UPDATE Concepte Express Baza de date Formula Dimensiune Relaie Comanda LIMIT Comanda SORT PERMIT Programe, funcii definite de utilizatori, comanda INFILE Limbaj de programare Express (Express SPLStored Procedural Language) Funcii i formule Express folosind dimensiunile REPORT MAINTAIN ADD DELETE/MAINTAIN DELETE SET

Pentru a crea o baz de date multidimensional se parcurg urmtorii pai: definirea dimensiunilor bazei de date; definirea msurilor (variabile, relaii, formule); definirea seturilor de valori; definirea programelor i a modelelor de analiz.

8.1 Definirea dimensiunilor bazei de date


Din meniul principal se selecteaz submeniul File i apoi se alege opiunea New. Apare fereastra de dialog Create a New Express Database. Se tasteaz numele bazei de date (de exemplu evaluare_final). Oracle Express Administrator va crea un fiier principal evaluare_final.db, n directorul specificat n mod implicit

225

Iniiere n tehnologia OLAP-teorie i practic (de exemplu d:\oracle\olap\oes634\service) sau se va alege un alt director, dac se selecteaz butonul Browse (figura 8.1).

Figura 8.1 Fereastra de dialog Create a New Express Database Dimensiunea maxim a fiierului principal este de 2Gb (propietatea Filesize). Pe msur ce se creeaz obiecte n baza de date, Express Server creeaz unul sau mai multe fiiere de extensie (extension file) cu acelai nume cu cel al bazei de date. Pentru fiierul principal extensia este (.DB), iar pentru fiierele de extensie (.001, 002, 003 etc). Numele bazei de date creat este afiat n fereastra Database Browser, care se deschide automat la lansarea n execuie a utilitarului Oracle Express Administrator. Se vor afia de asemenea, obiectele bazei de date (dimensiuni, formule, modele, programe, relaii, seturi de valori, variabile) sub forma unei structuri ierarhice. n mod implicit, n fereastra Database Browser se vor afia numai obiectele care sunt vizibile utilizatorului (figura 8.2). Exist mai multe modaliti pentru a defini o dimensiune a bazei de date i anume: se selecteaz cu mouse-ul ramura Dimension din fereastra Database Browser i apoi opiunea New din meniul ataat butonului dreapta al mouse-ului. Se deschide fereastra de dialog Define a Dimension; se selecteaz din meniul principal opiunea Edit/Define/Dimension i se deschide fereastra de dialog Define a Dimension;

226

Crearea unei baze de date multidimensionale se utilizeaz limbajul Express .

Figura 8.2 Fereastra Database Browser De exemplu, pentru a defini dimensiunea Nivel_institut, se selecteaz din meniul principal, opiunea Edit/Define/Dimension i se deschide fereastra de dialog Define a Dimension (figura 8.3). n caseta Name se tasteaz numele dimensiunii (de exemplu Nivel_institut). n caseta Database se alege baza de date n care se definete dimensiunea. n caseta Type se alege tipul de date (Text, ID, Integer, Day, Week, Month, Quarter, Year, Conjoint i Composite). Dac dimensiunea este Timp atunci tipul de dat ales poate fi: Day, Week, Month, Quarter, Year. Dac dimensiunea este de tip text (de exemplu dimensiunea Centre) tipul de dat poate fi : ID (valorile dimensiunii au maxim 8 caractere) sau Text (valorile dimensiunii pot avea mai mult de opt caractere). Dac dimensiunea este de tip Integer valorile sale sunt identificate numai de poziiile lor numerice (1, 2 etc). Dac tipul de dat este Text se specific i numrul maxim de caractere pentru valorile dimensiunii, n caseta Width. n caseta Dimension Identifier se specific un identificator alfanumeric pentru dimensiune. n caseta Dimension se specific dimensiunile de baz utilizate pentru a defini o dimensiune de tip conjoint sau composite, iar n caseta Options, algoritmul utilizat pentru a ncrca i accesa valorile unei dimensiuni de tip conjoint sau composite. Pentru a specifica numele, pe care Express Objects i Express Analyzer l vor utiliza pentru a identifica dimensiunea, se selecteaz butonul Labels. n caseta Comments se specific o descriere a

227

Iniiere n tehnologia OLAP-teorie i practic dimensiunii create. Caseta Short Description specific o descriere scurt utilizat de Express Objects i Express Analyzer n tabele sau grafice, iar caseta Short Description (Plural) specific pluralul acestei descrieri, utilizat de Express Objects i Express Analyzer n scripturile selectorului. Caseta Description specific o descriere mai detaliat utilizat de instrumentul Selector sau Database Browser din Express Analyzer sau Express Objects (dac lipsete se utilizeaz valoarea specificat n caseta Short Description), iar caseta Description (Plural) specific pluralul acestei descrieri (figura 8.4).

Figura 8.3 Fereastra de dialog Define a Dimension Cnd se creeaz o dimensiune, numele ei este stocat automat n dicionarul de date. Dicionarul de date include structuri de date generate de Oracle Express Administrator, pe care aplicaiile construite cu Express Analyzer sau Express Objects le utilizeaz, pentru a organiza datele i ale prezenta mult mai clar. Pentru a vizualiza metadatele n fereastra Database Browser, se selecteaz opiunea Options din submeniul Tools i se deschide fereastra de dialog Administrator Options (figura 8.5). Se selecteaz opiunea DBBrowser, apoi opiunea Show All Metadata.

228

Crearea unei baze de date multidimensionale

Figura 8.4 Utilizarea opiunii Label din fereastra Define a Dimension

Figura 8.5 Fereastra Administrator Options

229

Iniiere n tehnologia OLAP-teorie i practic O dimensiune se poate defini folosind i comanda DEFINE DIMENSION din limbajul Express. De exemplu, se creeaz programul def_nivel (figura 8.6). Se editeaz apoi programul pentru a-i ataa urmtorul cod (figura 8.7): Define Nivel_Institut dimension text Ld Nivele in ierarhia institutului Maintain Nivel_Institut Add 'UNIVERSITATI' 'FACULTATI' 'CATEDRE' Programul se execut prin selectarea opiunii Execute din meniul vertical ataat butonului dreapta al mouse-ului (programul este selectat cu mouse-ul). Pentru dimensiunea creat se pot modific unele propieti i anume: valorile dimensiunii, descrierea (Short Description, Description, Comments), seleciile ataate (nume, descriere, scriptul utilizat pentru selecie). Alte propieti nu pot fi modificate (de exemplu baza de date n care este definit dimensiunea, numele dimensiunii, tipul i identificatorul). Pentru a modifica propietile unei dimensiuni se selecteaz opiunea Modify din meniul ataat butonului dreapta al mouse-ului i se deschide fereastra de dialog Modify (figura 8.8) sau opiunea Property Inspector i se deschide fereastra de propieti Property Inspector (figura 8.9).

Figura 8.6 Fereastra de dialog Define a Program

230

Crearea unei baze de date multidimensionale

Figura 8.7 Definirea unei dimensiuni cu comanda DEFINE DIMENSION

Figura 8.8 Modificarea propietilor unei dimensiuni

231

Iniiere n tehnologia OLAP-teorie i practic

Figura 8.9 Fereastra de propieti Dup definirea unei dimensiuni, se vor introduce valorile corespunztoare manual sau prin import din surse externe. Pentru a defini valorile unei dimensiuni, se selecteaz opiunea Edit Values din meniul ataat butonului dreapta al mouseului i se deschide fereastra de dialog Edit Values (figura 8.10). n aceast fereastr se pot: aduga noi valori (butonul Add values), terge anumite valori, ordona valorile dup anumite criterii (butonul Sort), seta propietile Value, Short label i Long label pentru fiecare valoare (figura 8.11), aduga, copia, terge sau redenumi ierarhii sau niveluri din ierarhii. Pentru o dimensiune Timp (year, month, day, week) se deschide fereastra de dialog Add Initial Data Values n care se stabilete prima valoare (caseta First Time Period), apoi numrul de valori (caseta Number of Periods). De exemplu, se definete o dimensiune Luna de tip Month, se stabilete prima lun (JUL03), apoi se stabilete numrul de perioade (6 luni) (figura 8.12). O dimensiune poate avea una sau mai multe ierarhii. Pentru a defini o ierarhie exist dou modaliti i anume: se definete o relaie ntre dou dimensiuni; sau se definete ierarhia n fereastra de dialog Edit Values. De exemplu, se definete dimensiunea ierarhic Universitate cu urmtoarele niveluri ierarhice: universitate (de exemplu ASE), facultate (de exemplu CSIE, FMAN, FREI, EGPAA etc) i catedr (de exemplu CIB, IE, STAT, EM etc) (figura 8.13). n fereastra Edit Values se creeaz o ierarhie pentru care se specific numele i descrierea (figura 8.14). Se pot redenumi nivelurile n ierarhie

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).

Figura 8.10 Fereastra de dialog Edit Values

Figura 8.11 Setarea propietilor Value, Short Label i Long Label

233

Iniiere n tehnologia OLAP-teorie i practic

Figura 8.12 Adugarea de valori pentru o dimensiune Timp

Figura 8.13 O dimensiune ierarhic

234

Crearea unei baze de date multidimensionale

Figura 8.14 Fereastra Add Hierarchy

Figura 8.15 Fereastra Rename Hierarchy Levels

235

Iniiere n tehnologia OLAP-teorie i practic

8.2 Definirea variabilelor


Pentru a defini o variabil se alege opiunea Define Variable din submeniul Edit. Se afieaz fereastra de dialog Define a Variable (figura 8.16). Se tasteaz numele variabilei n caseta Name (de exemplu nrproiecte). n caseta Database se selecteaz baza de date, n care se va defini variabila. Se alege tipul de dat n caseta Type (Boolean, Date, Decimal, ID, Integer, Shortdecimal, Shortinteger sau Text). De exemplu, pentru variabila nrproiecte se alege tipul de dat shortinteger. n caseta Available se selecteaz dimensiunile variabilei (de exemplu Timp, Centre i Tip_proiect). Se selecteaz mai nti dimensiunea care se modific cel mai des (dimensiunea Timp). Toate variabilele definite vor putea fi folosite de aplicaiile create cu Express Analyzer i Express Objects. Dac caseta Temporary Data este selectat, valorile variabilei vor fi terse la ncheierea sesiunii de lucru. n caseta Sparse se listeaz dimensiunile mprtiate (Express creeaz automat un obiect compus). Pentru a specific numele pe care Express Objects i Express Analyzer l folosesc pentru a identifica variabila, se selecteaz opiunea Labels. Pentru a specifica formatul de afiare al valorilor variabilei, se selecteaz opiunea Format.

Figura 8.16 Fereastra Define a Variable Propietile variabilei se pot modifica n dou moduri: se selecteaz opiunea Property Inspector din meniul ataat butonului dreapta al mouse-ului (variabila este selectat ) i se deschide fereastra de propieti (figura 8.17). Se poate modifica: propietatea LD (descrierea variabilei), propietatea ShortName, propietatea UserVisible (dac variabila apare sau nu n Database Browser);

236

Crearea unei baze de date multidimensionale se selecteaz opiunea Modify din meniul ataat butonului dreapta al mouse-ului i se deschide fereastra de dialog Modify Variable (figura 8.18). Se pot modifica: formatul de afiare al valorilor variabilei (opiunea Format), numele pe care l utilizeaz Express Objects i Express Analyzer pentru a identifica variabila (opiunile Comments, ShortDescription, Description), precum i valorile variabilei (opiunea Data).

Figura 8.17 Modificarea propietilor unei variabile Valorile variabilei se pot aduga fie manual, dac se selecteaz opiunea Data din fereastra de dialog Modify Variable (figura 8.19), fie prin import din surse externe, dac se selecteaz opiunea Import din submeniul File. Se pot importa date din fiiere text, fiiere create cu instrumentul Discoverer, din baze de date relaionale etc. De exemplu, pentru a importa date dintr-o baz de date relaional, se selecteaz opiunea Import Relational din submeniul File i se afieaz fereastra de dialog Import Relational Data (figura 8.20). Se selecteaz butonul SQLConnect pentru a realiza conexiunea la baza de date relaional. 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 corespunztoare atributelor tabelei (se tragcu 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 ncrcare a datelor (implicit newloader). Acest program apare n fereastra Database Browser, n ramura Programs i se poate executa ori de cte ori

237

Iniiere n tehnologia OLAP-teorie i practic se dorete. Se selecteaz programul i se alege opiunea Execute din meniul asociat butonului dreapta al mouse-ului.

Figura 8.18 Fereastra de dialog Modify variable

Figura 8.19 Adugarea valorilor unei variabile

238

Crearea unei baze de date multidimensionale

Figura 8.20 Fereastra de dialog Import Relational Data

Figura 8.21 Fereastra de dialog Save SQL Data Loader

239

Iniiere n tehnologia OLAP-teorie i practic O variabil se poate defini i cu ajutorul comenzii DEFINE VARIABLE din limbajul Express. De exemplu, pentru a defini variabila nrcadre se scrie urmtorul cod: Define nrcadre variable shortinteger <Timp, Institutii> Ld Numrul de Cadre Didactice antrenate n cercetare la nivel de catedr i an Describe nrcadre

8.3 Definirea relaiilor


O relaie descrie corespondena ntre valorile unei dimensiuni i valorile altei dimensiuni din baza de date i se utilizeaz adesea pentru a defini ierarhii. De exemplu, se poate stabili o relaie prin care se specific modul cum se asociaz facultile cu catedrele. Pentru a defini o relaie se selecteaz opiunea Define Relation din submeniul Edit i se deschide fereastra de dialog Define a Relation (figura 8.22). Se specific numele relaiei n caseta Name, numele bazei de date n caseta Database, dimensiunea ale crei valori se vor utiliza n relaie (caseta Related Dimension) etc. Dimensiunile care se asociaz se selecteaz din caseta Available i se mut n caseta Selected.

Figura 8.22 Fereastra de dialog Define a Relation Propietile unei relaii se pot modifica fie n fereastra de propieti Property Inspector, fie se selecteaz opiunea Modify din meniul ataat butonului dreapta al mouse-ului i se deschide fereastra de dialog Modify a Relation (figura 8.23). Se pot modifica etichetele relaiei (opiunea Labels) i valorile relaiei (opiunea Data), dar nu se pot modifica propietile de baz ale relaiei.

240

Crearea unei baze de date multidimensionale

Figura 8.23 Fereastra de dialog Modify a Relation De asemenea, o relaie se poate defini i cu comanda DEFINE RELATION din limbajul Express. De exemplu, pentru a defini relaia inst_inst se scrie urmtorul cod: define inst_inst relation institutii<institutii> limit institutii to 'CO' 'TS' 'MMC''MAR' inst_inst='COM' limit institutii to 'DR' 'AEF' 'MON' 'FIN' inst_inst='FABBV' limit institutii to 'CIIF' 'CACG' 'IG' inst_inst='CIG' limit institutii to 'MAN' 'EC' inst_inst='FMAN' limit institutii to 'TI' 'CDE' 'EPE' 'EFS' 'IEG' inst_inst='EG' limit institutii to 'LRCA' 'LGCA' 'REI' inst_inst='FREI' limit institutii to 'TPAA' inst_inst='EGPAA' limit institutii to 'SELS' inst_inst='FSELS' limit institutii to 'CIB' 'IE' 'STAT' 'AS' 'EM' inst_inst='CSIE' limit institutii to fac_set inst_inst='ASE'

241

Iniiere n tehnologia OLAP-teorie i practic

8.4 Definirea formulelor


ntr-o baz de date multidimensional Express se pot defini i formule. Formulele se folosesc pentru a calcula date temporare, care nu trebuie stocate permanent n baza de date. De exemplu, se definete formula procent (procentul de participare la activitatea de cercetare) = nrcadre/ncd unde: variabila nrcadre se refer la numrul de cadre didactice antrenate n cercetare, la nivel de catedr i an, iar variabila ncd se refer la numrul de cadre didactice la nivel de catedr i an. Pentru a defini aceast formul se selecteaz opiunea Define Formula din submeniul Edit i se deschide fereastra de dialog Define a Formula (figura 8.24).

Figura 8.24 Fereastra de dialog Define a Formula Se specific numele formulei (caseta Name), baza de date curent (caseta Database), tipul de dat (boolean, date, decimal, id, integer etc), dimensiunile formulei (caseta Selected). Dac formula va conine valori ncrcate dintr-o baz de date relaional, se selecteaz caseta SQL Data i se activeaz butoanele SQL Connect (se realizeaz conexiunea la baza de date relaional), Map Data (se mapeaz atributelor tabelei relaionale surs la obiectele corespunztoare din baza de date multidimensional Express). n caseta Equation, se scrie formula de calcul corespunztoare. Dac se selecteaz opiunea Edit Formula din meniul ataat butonului dreapta al mouse-ului, se afieaz formula de calcul corespunztoare i se poate modifica (figura 8.25). Propietile formulei se pot modifica fie n fereastra de propieti Property Inspector, fie prin selectarea opiunii Modify din meniul ataat butonului dreapta al mouse-ului i se deschide fereastra de dialog Modify Formula (figura 8.26). Se pot modifica etichetele formulei (opiunea Labels), formatul de afiare (opiunea Format) i formula de calcul corespunztoare.

242

Crearea unei baze de date multidimensionale Se poate crea o formul de formatare (culori, fonturi) a datelor afiate, n funcie de valorile acestor date. De exemplu, se poate specifica ca toate valorile formulei procent mai mici de 0.5 (un procent de ncrcare a cadrelor didactice mai mic de 50%) s se afieze cu culoare roie. Aceast formul de formatare este valabil i n Express Objects i Express Analyzer. Pentru a crea o formul de formatare se selecteaz opiunea Data Driven Format din fereastra de dialog Modify Formula.

Figura 8.25 Modificarea formulei de calcul O formul se poate defini i cu comanda DEFINE FORMULA din limbajul Express. De exemplu, pentru a defini formula procent se scrie urmtorul cod: define procent formula decimal <timp, institutii> eq nrcadre/ncd

8.5 Definirea seturilor de valori


Setul de valori (valueset) este un obiect al bazei de date Express care stocheaz o list de valori ale unei dimensiuni. Acest obiect se utilizeaz pentru a seta mai rapid starea unei dimensiuni. De exemplu, se poate defini un set de valori cat_set care va stoca o list a catedrelor. Pentru a crea setul de valori cat_set, se selecteaz opiunea Define valueset din submeniul Edit. Se deschide fereastra de dialog Define a Valueset (figura 8.27). Se specific numele setului (caseta Name), baza de date curent (caseta Database), dimensiunea corespunztoare setului de valori

243

Iniiere n tehnologia OLAP-teorie i practic (caseta Dimension), etichetele setului de valori (opiunea Labels). Pentru a aduga valori n setul de valori se utilizeaz comanda LIMIT. Propietile setului de valori pot fi modificate fie n fereastra de propieti Property Inspector, fie se selecteaz opiunea Modify din meniul ataat butonului dreapta al mouse-ului i se deschide fereastra de dialog Modify Valueset (figura 8.28). Un set de valori se poate defini i cu comanda DEFINE VALUESET. De exemplu, pentru a defini setul de valori cat_set se scrie urmtorul cod: define cat_set valueset institutii ld setul de catedre limit cat_set to 'CO' 'REI' 'MAN' 'SELS' 'CIB' 'IE' 'STAT' 'AS' 'DR' 'CIIF' 'CACG'

Figura 8.26. Fereastra de dialog Modify Formula

8.6 Definirea programelor


Un program conine secvene de comenzi ale limbajului Express ce manipuleaz datele multidimensionale. Pentru a crea un program, se selecteaz opiunea Define program din submeniul Edit. Se deschide fereastra de dialog Define a program (figura 8.29). Se specific numele programului (caseta Name), baza de date curent (caseta Database), etichetele programului (opiunea Labels), tipul de dat al valorii returnate de program (caseta Return Type). Se selecteaz opiunea Modify din meniul ataat butonului dreapta al mouseului, pentru a afi fereastra de dialog Edit program, n care se tasteaz secvena de comenzi (figura 8.30). Programul se poate compila, dac se selecteaz icoana

244

Crearea unei baze de date multidimensionale Compile din bara de butoane a ferestrei de dialog Edit program i lansa n execuie, dac se selecteaz icoana Run Program. Un program se poate lansa n execuie i dac se selecteaz opiunea Execute din meniul ataat butonului dreapta al mouseului i se deschide fereastra Express Command. n fereastra Express Command, se pot executa comenzile limbajului Express.

Figura 8.27 Fereastra de dialog Define a Valueset

Figura 8.28 Fereastra de dialog Modify Valueset

245

Iniiere n tehnologia OLAP-teorie i practic

Figura 8.29 Fereastra de dialog Define a Program

Figura 8.30 Fereastra de dialog Edit program

246

Crearea unei baze de date multidimensionale Se poate crea un program i prin utilizarea instrumentului Data Loader (de exemplu, pentru a importa date din baze de date relaionale), a instrumentului Database Wizard, a instrumentului Rollup Wizard (pentru agregarea datelor) sau cu comanda DEFINE PROGRAM din limbajul Express. Se poate planifica momentul lansrii n execuie (ora, ziua) a unui program, dac se selecteaz opiunea Schedule din meniul ataat butonului dreapta al mouseului. Se deschide fereastra de dialog Schedule the program (figura 8.31). Se specific numele programului, baza de date n care este stocat, tipul de program (command, dataloader, rollup), descrierea programului, comanda ce apeleaz programul (caseta Command), momentul lansrii n execuie: imediat (immediately), la un anumit moment (at this time), dup execuia altui program (after running). De asemenea, se specific de cte ori se execut programul (n ore, minute, zile, luni) i momentul opririi execuiei programului (caseta Until).

Figura 8.31 Fereastra de dialog Schedule the Program 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, msurile (variabile, relaii, formule), seturile de valori, programele i modelele de analiz. Cuvinte cheie Baz de date multidimensional, dimensiuni, variabile, formule, relaii, 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 informaiilor i al afacerilor inteligente, organizaiile vor putea s-i ndeplineasc obiectivele, numai dac managerii vor putea utiliza ca suport n procesul decizional informaii suficiente i de calitate. La ora actual, preocuparea major a specialitilor n domeniul sistemelor informatice este de a satisface cererea tot mai mare a managerilor pentru informaii care s le permit evaluarea ct mai rapid i mai corect a performanelor organizaiilor pe care le conduc. Sistemele OLAP pot satisface aceast cerere de informaii de calitate i pot mbunti eficacitatea muncii decizionale a managerilor. Obiectivul acestui capitol este de a arta c modelarea multidimensional a datelor existente n organizaii, n funcie de subiectele de interes ale managerilor i vizualizarea multidimensional a informaiilor, poate oferi un suport informaional 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 activitii de cercetare tiinific n nvmntul universitar. Tehnica de modelare entitate-asociere i structurarea datelor n tabele normalizate reprezint standardul pentru specialitii de baze de date, care utilizeaz n mod frecvent bazele de date relaionale, pentru a stoca volumele mari de date tranzacionale existente n organizaii. Totui, utilizarea tabelelor pentru a furniza informaiile necesare procesului decizional la nivelul organizaiilor, nu este ntotdeauna o soluie ideal pentru manageri. Accesul la informaiile stocate n bazele de date relaionale tranzacionale cere realizarea de operaii, adesea foarte complexe, ntre multe tabele. Din acest motiv, managerii trebuie s apeleze la specialiti pentru a executa cererile de regsire (de exemplu n limbajul SQL). De asemenea, bazele de date relaionale de dimensiuni mari, proiectate s ofere suport aplicaiilor tranzacionale, permit cu dificultate vizualizarea informaiilor dup subiectele de interes ale managerilor.

248

Proiectarea i realizarea unui sistem OLAP Apariia sistemelor OLAP a permis managerilor s acceseze un volum mare de informaii integrate, s le vizualizeze din diferite perspective i s le analizeze online, cu scopul de a evalua ct mai obiectiv i mai exact performanele organizaiilor i de a realiza un proces decizional bazat pe analiz. Pentru a realiza un suport decizional de calitate la nivelul organizaiilor, modelele conceptelor de afaceri, care asigur o viziune consolidat asupra afacerilor, pot fi definite la nivel conceptual, sub forma unor cuburi de date ndimensionale (hypercub) (figura 9.1). Aceste modele descriu subiectele principale despre care organizaia trebuie s colecteze informaii (ce informaii sunt necesare pentru a lua decizii mai bune?). Cerinele afacerii sunt o combinaie ntre cerinele utilizatorilor, realitile legate de sursele de date i realitile economice.

Organizaii executnd Procese

Resurse: Bani Oameni Experiena Munca Faciliti ..

Produse i servicii: nvmnt Cercetare Suport financiar Snatate Alimentaie .

Clieni
Figura 9.1 Modelul conceptelor de afaceri sub forma unui cub n-dimensional Definirea modelelor de afaceri sub forma de cuburi n-dimensionale sau multicuburi permite analitilor i managerilor s neleag mai bine datele din organizaii, date ce ar putea fi integrate, agregate, s vizualizeze i s analizeze datele din multiple perspective (dimensiunile afacerii), s pun n eviden noi aspecte ale afacerii, care ar putea oferi firmelor noi oportuniti i o mbuntire a eficacitii procesului decizional (figura 9.2). n cele ce urmeaz, propunem cteva prototipuri multidimensionale de modele de afaceri.

249

Iniiere n tehnologia OLAP-teorie i practic De exemplu, evaluarea i managementul activitilor de marketing presupune [KOTL98]: verificarea realizrii performanelor planificate cu ajutorul a cinci tipuri de analize: analiza vnzrilor, analiza participrii pe pia, analiza raportului dintre cheltuielile de marketing i vnzri, analiza financiar i urmrirea nivelului de satisfacere a clientului. examinarea locului unde ctig firma bani i unde pierde prin stabilirea profitabilitii pe produs, teritoriu, client, segment al pieei, canal de distribuie, mrimea comenzii lansate. evaluarea i mbuntirea eficienei utilizrii fondurilor destinate activitii de marketing prin: analiza eficienei forei de vnzare, analiza eficienei reclamei comerciale, analiza eficienei promovrii vnzrilor i analiza eficienei activitii de distribuie. examinarea modului n care firma d curs celor mai bune ocazii ale sale legate de piee, produse i canale de distribuie prin: evaluarea eficienei activitii de marketing, analiza de marketing, analiza performanelor de marketing i analiza responsabilitilor etice i sociale ale firmei.
Coninut fapte Exemple de dimensiuni Resurse: Bani Organizaii Personal Echipamente

Exemple de dimensiuni Client: Studeni Stat/societate Clieni interni

Exemple de dimensiuni Produs: La studeni: La societate: Invmnt Cercetare Cazare Resurse umane Ajutor financiar Servicii publice Hran Contabilitate Snatate etc Cercetare n nvmnt etc

Figura 9.2 Procesul (problema analizat) sub forma unui cub de informaii Analiza vnzrilor const n msurarea i evaluarea vnzrilor reale, n raport cu obiectivele propuse prin plan. Controlul pe baza planului anual cere de asemenea, firmei s se asigure c nu face cheltuieli exagerate pentru a-i realiza vnzrile. n acest scop, se va face analiza raportului dintre cheltuielile de marketing i vnzri care const n rapoartele: fora de vnzare/vnzri, cheltuielile cu reclama/vnzri, promovarea vnzrilor/vnzri, cercetarea de

250

Proiectarea i realizarea unui sistem OLAP marketing/vnzri, cheltuieli administrative/vnzri. Pentru aceste analize se poate utiliza cu succes modelul multidimensional. Cubul n-dimensional pentru analiza vnzrilor conine informaii despre venituri (volumul vnzrilor) i cheltuieli (cheltuieli cu reclama i promovarea vnzrilor, costul bunurilor vndute, cheltuieli cu cercetarea de pia, cheltuieli administrative i generale, cheltuieli cu activitatea de desfacere, cheltuieli cu activitatea de ambalare i livrare, cheltuieli cu activitatea de facturare, salarii, chiria, costurile cu investiiile etc). Dimensiunile de baz ale cubului n-dimensional sunt : ara (locaie geografic), Produs, Timp i Promoie. Atributele acestor dimensiuni pot varia n funcie de specificul firmei analizate. De asemenea, se pot aduga i alte dimensiuni cum ar dimensiunea Strategia de investiii. Dimensiunea Strategia de investiii a fost definit pentru a evalua diferitele moduri de a investi (efectul expansiunii liniei de produse, a numrului de piee sau regiuni de desfacere sau a publicitii i reclamei asupra profitului). Ca variabile se pot defini: volumul de vnzri, costul bunurilor vndute, cheltuielile cu activitatea de desfacere, cheltuielile cu activitatea de reclam, cheltuielile cu activitatea de ambalare i livrare, salariile, cheltuielile administrative, chiria, costurile cu investiiile, alte cheltuieli (ce apar pe lng cele prezentate anterior), costul banilor (pierderile ce apar ca urmare a schimburilor valutare, dac firma are reprezentane i n alte ri). Pe baza acestor variabile se pot determina cu ajutorul formulelor: marja profitului brut (vnzri-costul bunurilor vndute), cheltuielile totale directe, total cheltuieli, profitul net sau pierderea (volumul vnzrilor-total cheltuieli). n figura 9.3 se prezint un prototip de cub n-dimensional pentru analiza vnzrilor.
Produs Codprodus Marca Subcategoria Categorie Tipul de ambalaj Greutatea Culoare Dimensiune Fabricant Msuri: Cantitatea vndut Volumul vnzrilor Costurile Numrul de clieni Timp Cod data Ziua din sptmna Numrul zilei n luna Numrul sptmnii n an Luna Trimestru An Perioada fiscal Sezon, Eveniment

Promoie Cod Denumire Tipul de reducere a preului Tipul de publicitate Costul promoional Data nceperii promoiei Data de sfrit

Cubul ndimensional pentru analiza vnzrilor

Locaie geografic Cod magazin Denumire Adresa, Ora Jude, Regiune ara, Manager magazin, Telefon, fax, Suprafa

Figura 9.3 Cubul n-dimensional pentru analiza vnzrilor

251

Iniiere n tehnologia OLAP-teorie i practic Granulaia cubului n-dimensional este dat de granulaia dimensiunilor (de exemplu cantitatea zilnic vndut din fiecare produs, n fiecare magazin). Cu acest model se poate realiza o analiz detaliat a vnzrilor i anume volumul total al vnzrilor la nivel de sptmn, lun, trimestru, an , pe o anumit categorie de produse, ntr-un anumit magazin, ora, regiune etc. Orice firm trebuie de asemenea, s msoare rentabilitatea diferitelor ei produse, teritorii, canale de distribuie i comenzi. Aceste informaii i vor ajuta pe manageri s stabileasc dac vreunele din produsele firmei trebuie s fie extinse, reduse sau eliminate. Cubul n-dimensional din figura 9.3 poate fi folosit pentru a stabili rapoarte de profit i cheltuieli, pentru fiecare canal de comercializare (tip de magazin), produs, teritoriu etc. n figura 9.4 se propune un prototip de cub ndimensional pentru analiza polielor de asigurare (granularitatea este la nivel de tranzacie individual).
Riscul Cod poli Grad de risc Msuri: Suma asigurat Suma ncasat Rata prim etc Timp Cod data Ziua din sptmn Perioada fiscal

Tipul de asigurare Cod Descriere Segment pia

Asigurat/ coasigurat/ contractant Cod Nume Adresa Tip Atribute demografice

Agent Cod agent Nume Tip agent Locaie

Cubul n-dimensional pentru analiza polielor de asigurare


Tranzacie Cod tranzacie Descriere Motiv

Produs asigurat Cod produs asigurat Descriere Tip produs asigurat

Figura 9.4 Cubul n-dimensional pentru analiza polielor de asigurare

9.1 Iniierea proiectului


Pentru proiectarea sistemului OLAP s-a utilizat metodologia prezentat n capitolul 5. n cartea Metodologia cercetrii tiinifice economice [RACI01] cercetarea tiinific este definit ca o activitate sistematic i creatoare, menit s sporeasc volumul de cunotine, inclusiv cunotine despre om, cultura, i utilizarea acestor cunotine pentru noi aplicaii. Activitatea de cercetare tiinific se clasific n trei categorii [RACI01]:

252

Proiectarea i realizarea unui sistem OLAP Cercetarea tiinific fundamental este o activitate mai mult teoretic (n domenii ca: creterea economic i modelare, analiza proceselor economice, probleme financiare, fiscale i monetare etc) care are ca scop principal acumularea de noi cunotine privind aspectele fundamentale ale fenomenelor i faptelor observabile, fr s aib n vedere o aplicaie deosebit sau specific [RACI01]. Cercetarea tiinific aplicativ este o activitate de investigare orientat spre un scop sau obiectiv practic specific care transform rezultatele cercetrii tiinifice fundamentale i de dezvoltare n tehnici i tehnologii concrete, n msuri concrete de organizare, de conducere economic etc [RACI01]. Cercetarea tiinific fundamental i aplicativ ocup un loc important n activitatea de cercetare tiinific din nvmntul superior. Cercetarea i dezvoltarea experimental este o activitate sistematic dedicat utilizrii rezultatelor cercetrii tiinifice fundamentale i a celei aplicative pentru obinerea unor soluii de principiu, pentru proiectare, executare i ncercare de prototipuri experimentale i de produse etc [RACI01]. n Romnia, cercetarea tiinific economic are urmtoarea structur instituional [RACI01]: Institutul Naional de Cercetri Economice; Reeaua cercetrii tiinifice economice romneti din sistemul Ministerului Educaiei i Cercetrii; Institute de cercetare tiinific fr subordonare direct academic, aparinnd altor ministere; Reeaua cercetrii tiinifice economice romneti din sistemul Ministerului Educaiei i Cercetrii include universiti publice i private, din centrele universitare cu nvmnt economic. Astfel n Academia de Studii Economice, activitatea de cercetare tiinific este componenta principal a proceselor de nvmnt i inovare. Principalele direcii de dezvoltare i modernizare ale cercetrii tiinifice din Academia de Studii Economice, specificate n Buletinul Informativ al Departamentului de Cercetri Economice [BULE01], sunt: i) ncurajarea cercetrii tiinifice finanat pe plan naional; ii) dezvoltarea cercetrii tiinifice cu colaborare internaional i finanare mixt, oferit de Guvernul Romniei, Comunitatea European, Banca Mondial; iii) iniierea unor programe de cercetare n colaborare bilateral cu universiti din Uniunea European; iv) ncurajarea cercetrii tiinifice fundamentale; v) intensificarea activitii laboratoarelor pentru cercetri aplicative i studii de caz; vi) crearea/acreditarea unor noi centre de cercetare; vii) promovarea transferului tehnologic; viii) recunoaterea activitii de cercetare tiinific; ix) perfecionarea programelor de doctorat i masterat; x) modernizarea managementului cercetrii tiinifice. Deoarece activitatea de cercetare este componenta principal a proceselor de nvmnt i inovare din universiti i ca urmare a faptului c universitile i desfoar activitatea ntr-un mediu competitiv, se impune un management ct mai eficace pentru activitatea de cercetare. Exist cel puin dou motive diferite care

253

Iniiere n tehnologia OLAP-teorie i practic determin necesitatea evalurii performanei activitii de cercetare n universiti i anume : alocarea de fonduri i asigurarea calitii. Sistemul OLAP propus (prototipul a fost proiectat i construit pentru activitatea de cercetare tiinific din Academia de Studii Economice, cu posibilitatea de a fi extins) ncearc s ofere managerilor: posibilitatea de a accesa direct datele (fr intermediari) i de a le manipula uor; posibilitatea de a identifica erorile i datele lips i de a le corecta; o activitate de planificare mai uoar, deoarece toi participanii vor avea acces la informaii; posibilitatea de a aloca, n mod obiectiv, fondurile i de a asigura o activitate de cercetare de calitate.

9.2 Studiul i analiza procesului decizional curent i a cerinelor informaionale


n Regulamentul privind organizarea, desfurarea i finanarea cercetrii tiinifice n Academia de Studii Economice Bucureti, se prezint modul de organizare: Unitatea de baz a organizrii activitii de cercetare tiinific din Academia de Studii Economice este catedra [BULE01]. Activitatea de cercetare tiintific se poate realiza i prin colaborare cu alte institute de nvmnt i de cercetare din ar i din strinatate [BULE01]. Activitatea de cercetare tiinific se organizeaz i se desfoar prin proiecte i teme, finanate sau nefinanate cuprinse n programele catedrelor, facultilor, centrelor de cercetare etc [BULE01]. Aa cum se specific n Metodologia de identificare, evaluare i recunoatere a centrelor de cercetare, n vederea acreditrii centrelor de excelen tiinific, centrele de cercetare tiinific se pot constitui la nivel de catedr, facultate sau universitate, iar evaluarea i recunoaterea lor are la baz competiia organizat la nivelul universitilor i cea organizat la nivel naional de CNCSIS. n urma evalurii de ctre CNCSIS, centrele primesc niveluri de competen (centru de excelen, centru de cercetare de tip B, centru de cercetare de tip C) [http://www.cncsis.ro]. Centrele de cercetare neacreditate reprezint uniti recunoscute i aprobate instituional. n Academia de Studii Economice i desfoar activitatea urmtoarele centre de cercetare [BULE01]: Centrul de Cercetare ECO-INFOSOCModelarea i informatizarea proceselor economico-sociale, acreditat CNCSIS. Nivelul de organizare este facultatea de Cibernetic, Statistic i Informatic Economic. Centrul de Cercetri, Analize i Expertize Mrfuri Alimentare, acreditat CNCSIS. Nivelul de organizare este catedra de Merceologie i Managementul Calitii, Facultatea de Comer.

254

Proiectarea i realizarea unui sistem OLAP Centrul Naional de Excelen pentru Studii de Management Comparat, acreditat CNCSIS. Nivelul de organizare este facultatea de Management. Centrul de Excelen pentru Analize i Politici Economice, acreditat CNCSIS. Nivelul de organizare este catedra de Economie i Politici Economice. Centrul de Studii n Contabilitate i Informatic de Gestiune, acreditat CNCSIS. Nivelul de organizare este facultatea de Contabilitate i Informatic de Gestiune. Centrul de Cercetri n Managementul Proiectelor-PM Forum, acreditat instituional. Nivelul de organizare este facultatea de Cibernetic, Statistic i Informatic Economic. Centrul de Excelen pentru Analize i Politici Regionale, acreditat instituional, face parte din Centrul European Interuniversitar RomnoBulgar, BRIE. Centrul de Cercetri Financiar Monetare, acreditat instituional. Nivelul de organizare este facultatea de Finane, Asigurri, Bnci i Burse de valori [BULE01]. Activitatea de cercetare tiinific finanat se desfoar prin intermediul programelor, subprogramelor, temelor de cercetare-dezvoltare i activitilor cuprinse, dup caz, n: i) programe naionale de cercetare tiinific, precum i managementul acestora, finanate de Agenia Naional pentru tiin, Tehnologie i Inovare; ii) programe de cercetare tiinific finanate de Ministerul Educaiei Naionale, prin Consiliul Naional al Cercetrii tiinifice din nvmntul Superior; iii) teme de cercetare tiinific i consultan contractate cu societi comerciale, organizaii guvernamentale i neguvernamentale; iv) programe instituionale coordonate de Biroul Senatului Academiei de Studii Economice i finanate din fonduri proprii; v) programe instituionale coordonate de Departamentul de Cercetri Economice; vi) programele departamentale coordonate de catedre i faculti care cuprind i cercetrile individuale finanate [BULE01]. Programele de finanare naional (granturi CNCSIS) includ: programele anuale de cercetare (tip A) care au ca obiective principale: dezvoltarea activitilor de cercetare tiinific n procesul de formare a resursei umane, creterea performanei tiinifice i stimularea formrii echipelor de cercetare prin implicarea studenilor admii n programe de studii aprofundate, academice i doctorat; programele anuale pentru tineri (tip AT) care urmresc s ofere tinerilor cercettori, doctori sau doctoranzi, un suport eficient pentru realizarea unor lucrri de cercetare tiinifice valoroase; programele de echipamente pentru laboratoare (tip E) care urmresc dezvoltarea/consolidarea de echipamente care s permit cercetarea n domenii de vrf pentru care nu exist structura necesar; programele individuale de cercetare pentru tineri doctoranzi (tip Td) care urmresc s ofere tinerilor doctoranzi suportul necesar pentru efectuarea,

255

Iniiere n tehnologia OLAP-teorie i practic n ar sau n strintate a cercetrilor cuprinse n programul de doctorat; programele de burse individuale de cercetare pentru tineri doctoranzi (tip Bd) care urmresc stimularea tinerilor doctoranzi n activitatea de cercetare i n realizarea studiilor doctorale n maxim 4 ani [http://www.cncsis.ro]. n contextul general al reformei sistemului universitar romnesc s-a desfurat i Programul de Reform a nvmntului Superior i Cercetrii din Universiti (RO-4096) cofinanat de Guvernul Romniei i Banca Mondial cu urmtoarele componente: proiecte majore de cercetare (C), proiecte pentru nvmnt postuniversitar, studii aprofundate, master i doctorat (D), proiecte de cercetare pentru tineri (T), baze de cercetare cu utilizatori multipli (B), proiecte universitare, proiecte pentru educaie permanent i proiecte pentru colegii [http://www.cncsis.ro]. Rezultatele recunoscute ale activitii de cercetare tiinific se concretizeaz n: i) rapoarte de cercetare depuse la bibliotecile Academiei de Studii Economice, inclusiv la secia tiinific i la arhiva Departamentului de Cercetri Economice; ii) sisteme, modele, produse program, soluii de modernizare i cretere a eficienei economice etc. nsoite de documentaii corespunztoare depuse la bibliotecile Academiei de Studii Economice, inclusiv la secia tiinific i la arhiva Departamentului de Cercetri Economice; iii) cri, tratate i monografii cu coninut tiinific inedit publicate i depuse la bibliotecile Academiei de Studii Economice inclusiv la secia tiinific i la arhiva Departamentului de Cercetri Economice; iv) comunicri tiinifice pe plan naional i internaional; v) articole publicate n volume ale manifestrilor tiinifice sau n reviste de specialitate din ar i strintate. [BULE01] La nivelul Academiei de Studii Economice, al facultilor i catedrelor se pot organiza seminarii tiinifice, sesiuni, conferine i alte manifestri tiinifice, pentru comunicarea rezultatelor i experienei acumulate n activitatea de cercetare. [BULE01] Activitatea de cercetare tiinific a studenilor se desfoar sub diverse forme: i) cercetare tiinific realizat n mod independent, ndrumat de cadrele didactice i care se finalizeaz prin proiecte, lucrri de diplom, studii de caz; ii) transformarea parial a unor seminarii didactice n seminarii tiinifice; iii) antrenarea i participarea studenilor la realizare unor programe/proiecte coordonate de ctre catedre i centrele de cercetare tiinific; iv) organizarea de ctre catedre a unor cercuri tiinifice studenteti. Rezultatele activitii tiinifice pot fi luate n considerare n sistemul de notare a studenilor, pot fi publicate n reviste de specialitate, pot fi prezentate la sesiunile de comunicri tiinifice ale studenilor i la concursurile profesionale organizate. Cerinele prototipului au fost determinate pe baza identificrii indicatorilor utilizai pentru msurarea nivelului performanelor n cercetarea tiinific, precum i a obiectivele i strategiile activitii de cercetare tiinific n nvmntul universitar.

256

Proiectarea i realizarea unui sistem OLAP n Metodologia de alocare a fondurilor reprezentnd finanarea de baz a universitilor, propus de MEC, se definesc un numr de indicatori de performan utilizai pentru msurarea nivelului performanelor n cercetarea tiinific finanat i nefinanat, n nvamntul universitar i anume [BULE01]: Indicatorul n1 Granturi ctigate (granturi CNCSIS i ale Academiei Romne) n1=n1a*p1+n1b*p2 n1a=c1*N1/(Ncd+Nc) n1b=c2*Vtgn/(Ncd+Nc) unde: p1=ponderea indicatorului n1a n n1 (p1=0.5) p2=ponderea indicatorului n1b n n1 (p2=0.5) N1=numrul total de granturi naionale Ncd=numrul total de cadre didactice Nc=numrul total de cercettori Vtgn=valoarea total granturi naionale(milioane ROL) c1=punctaj pentru grant naional (c1=10) c2=punctaj pentru resursele financiare atrase (referina este 10 mil. ROL per om) (c2=1) Indicatorul n2 Contracte de cercetare internaionale n2=n2a*p3+n2b*p4 n2a=c3*N2/(Ncd+Nc) n2b=c4*Vtci/(Ncd+Nc) unde: p3=ponderea indicatorului n2a n n2 (p3=0.5) p4=ponderea indicatorului n2b n n2 (p4=0.5) N2=numrul total de contracte de cercetare internaionale Ncd=numrul total de cadre didactice Nc=numrul total de cercettori Vtci=valoarea total de contracte internaionale (USD) c3=punctaj pentru un contract internaional (c3=300) c4=punctaj pentru resursele financiare atrase (referina este 500 USD per om) (c4=0.02) Indicatorul n3 Contracte cu diverse companii din ar i contracte obinute n cadrul Planului Naional de Cercetare Dezvoltare n3=n3a*p5+n3b*p6 n3a=c5*N3/(Ncd+Nc) n3b=c6*Vtcn/(Ncd+Nc) unde:

257

Iniiere n tehnologia OLAP-teorie i practic p5=ponderea indicatorului n3a n n3 (p5=0.5) p6=ponderea indicatorului n3b n n3 (p6=0.5) N3=numrul total de contracte cu companii din ar i contracte obinute n cadrul PNCD Ncd=numrul total de cadre didactice Nc=numrul total de cercettori Vtcn=valoarea total de contracte cu companii din ar i contracte obinute n cadrul PNCD (milioane ROL) c5=punctaj pentru un contract cu companii din ar i contracte obinute n cadrul PNCD (c5=10) c6=punctaj pentru resursele financiare atrase (referina este de 20 mil. ROL per om) (c6=0.5) Indicatorul n4 Teze de doctorat finalizate n4=n4.1*p7+n4.2*p8 n4.1=c7*N d cd /Np n4.2=c8*N ftd /Nd unde: p7=ponderea indicatorului n4.1 n n4 (p7=0.3) p8=ponderea indicatorului n4.2 n n4 (p8=0.7) Nd cd =numrul total conductori de doctorat N ftd =numrul total teze de doctorat finalizate Nd=numrul total de doctoranzi aflai n evidena universitii la 1 ianuarie 20.. Np=numr total profesori c7=punctaj pentru un conductor de doctorat (c7=10) c8=punctaj pentru o tez de doctorat finalizat (c8=100) 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: p9=ponderea indicatorului n5.1 n n5 (p9=0.5) p10=ponderea indicatorului n5.2 n n5 (p10=0.5) N5.1=numrul total de articole publicate n reviste romneti recunoscute de CNCSIS, lucrri publicate n volumele conferinelor internaionale cu recenzori i lucrri publicate n reviste din strintate cu recenzori N5.2=numrul total de articole publicate n reviste cotate ISI

258

Proiectarea i realizarea unui sistem OLAP c9=punctaj pentru un articol publicat n reviste romneti recunoscute CNCSIS (c9=20) c10=punctaj pentru un articol publicat n reviste cotate ISI (c10=60) Indicatorul n6 Cri 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: p11=ponderea indicatorului n6.1 n n6 (p11=0.3) p12=ponderea indicatorului n6.2 n n6 (p12=0.7) N6.1=numrul total de cri publicate n edituri romneti recunoscute CNCSIS N6.2=numrul total de cri publicate n edituri recunoscute n strinatate c11=punctaj pentru numrul de pagini ale crii publicate n edituri recunoscute de CNCSIS (referina este de 100 de pagini la trei ani pentru un autor) (c11=50) c12=punctaj pentru numrul de pagini ale crii publicate n edituri recunoscute din strintate (c12=150) pagin=numrul de pagini ale crii in (i=1.. N6.1) pagiin=numrul de pagini ale crii iin (i=1.. N6.2) Npnr=numrul de pagini de referin pentru lucrri la nivel naional (ex. 200 pag) Npir=numrul de pagini de referin pentru lucrri la nivel internaional (ex. 200 pag) Indicatorul n7 Brevete sub protecie/produse cu drept de propietate intelectual n7=c13*N7/(Ncd+Nc) unde: N7=numrul total de brevete/produse cu drept de propietate intelectual c13=punctaj pentru brevet sub protecie/produs cu drept de propietate intelectual (c13=150) Indicatorul n8 Centre de cercetare sau creaie 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: p13=ponderea indicatorului n8.1 n n8 (p13=0.5) p14=ponderea indicatorului n8.2 n n8 (p14=0.5) N8.1=numrul total de centre de cercetare recunoscute de CNCSIS N8.2=numrul total de centre de cercetare recunoscute internaional c14=punctaj pentru un centru recunoscut de CNCSIS (c14=300) c15=punctaj pentru un centru recunoscut internaional (c15=900)

259

Iniiere n tehnologia OLAP-teorie i practic Indicatorul n9 Reprezentri n academii, organizaii 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: p15=ponderea indicatorului n9.1 n n9 (p15=0.4) p16=ponderea indicatorului n9.2 n n9 (p16=0.3) p17=ponderea indicatorului n9.3 n n9 (p17=0.3) N9.1=Reprezentri n Academia Romn N9.2=Reprezentri n Academia de tiine Tehnice, Academia de tiine Medicale i Academia de tiine Agricole N9.3=reprezentri n organizaii profesionale internaionale (nu acelea n care devii membru prin plata unei taxe) c16=punctaj pentru o reprezentare n Academia Romn (c16=150) c17=punctaj pentru o reprezentare n Academia de tiinte Tehnice, Academia de tiinte Medicale i Academia de tiinte Agricole (c17=100) c18=punctaj pentru o reprezentare n organizaii profesionale internaionale (nu acelea n care devii membru prin plata unei taxe) (c18=50) Indicatorul n10 Premii la nivel naional: premiile Academiei Romne, premiile acordate de CNCSIS i premiile acordate de Uniunile de Creaie (UNITER, Uniunea Scriitorilor, UAP, UCMR, UCIN, UAR) n10=c19*N10/(Ncd+Nc) unde: N10=numrul total de premii la nivel naional (Academia Romn, CNCSIS, Uniunile de Creaie) c19=punctaj pentru un premiu naional (c19=1000) Pe baza studiului procesului decizional curent i a cerinelor informaionale ale activitii de evaluare a cercetrii tiinifice n nvmntul universitar, n figura 9.5 se propune un model de afaceri (sub forma unui cub de informaii) pentru evaluarea activitii de cercetare. Utiliznd acest mod de prezentare se pot realiza analize de tip suport de decizie cum ar fi: analiza comparativ ntre ncrcarea cadrelor didactice i rata publicaiilor, analiza ratei publicaiilor (numr de publicaii/cadru didactic), ncrcarea cadrelor didactice, analiz de tip top 3 (primele trei faculti/centre de cercetare n funcie de indicatorii de performan), evoluia grafic a personalului implicat n activitatea de cercetare etc.

260

Proiectarea i realizarea unui sistem OLAP

9.3 Proiectarea modelului multidimensional conceptual


Aa cum s-a prezentat n capitolul 5, exist dou metode pentru proiectarea modelului multidimensional conceptual i anume: metoda orientat pe cereri i metoda orientat pe sursele de date. n cazul activitii de cercetare n nvmntul superior, se va utiliza metoda orientat pe cereri. Aceast metod este mai adecvat, deoarece n etapa anterioar s-au pus n eviden indicatorii de performan corespunztori. De asemenea, sistemul informatic tranzacional surs se va proiecta n paralel cu sistemul suport de decizie.
Msuri: Numr de publicaii Rata publicaiilor Numr de proiecte Valoarea contractat (lei) Valoarea contractat (dolari) Numr de cadre didactice implicate n cercetare etc

Dimensiunea Institut (Universitate)

Dimensiunea Timp

Dimensiunea Centre

Cubul n-dimensional

Dimensiunea Publicaie

Dimensiunea Tip_proiect

Figura 9.5 Cubul n-dimensional de informaii pentru activitatea de cercetare n nvmntul universitar

9.3.1 Identificarea variabilelor


Pe baza studiului i analizei activitii pentru care se construiete sistemul, se identific variabilele activitii respective (se specific i granulaia acestor variabile) i anume: Personalul implicat n activitatea de cercetare i anume: numrul de cadre didactice antrenate n cercetare la nivel de catedr i an (nrcadre), numrul de cadre tesa (cercettori) antrenate n cercetare la nivel de catedr i an (nrtesa), numrul de doctoranzi antrenai n cercetare la nivel de catedr i

261

Iniiere n tehnologia OLAP-teorie i practic an (nrdoct), numrul de studeni antrenai n cercetare la nivel de catedr i an (nrstud_cer); Numrul de proiecte pe tip de proiect, an, catedr (nrproiecte). Numrul de proiecte pe tip de proiect, an, centre de cercetare (nrpro). Numrul de publicaii la nivel de catedr, tip de publicaie i an (nrpub). Numrul de studeni la nivel de facultate i an (nrstud), numrul de cadre didactice la nivel de catedr i an (Ncd). Valoarea contractat n dolari, pe tip de proiect, an, catedr (Valoare_dolari). Valoarea contractat n lei, pe tip de proiect, an, centru de cercetare (Vallei). Valoarea contractat n dolari, pe tip de proiect, an, centru de cercetare (Valdol). Valoarea contractat n lei, pe tip de proiect, an, catedr (Valoare_lei). Numrul de conductori de doctorat (N d cd ), numrul de teze de doctorat

finalizate (N ftd ), numrul de brevete (N7), numrul de reprezentri n Academia Romn (N91), numrul de reprezentri n Academia de tiine Tehnice, Academia de tiine Medicale i Academia de tiine Agricole (N92), numrul de reprezentri n organizaii profesionale internaionale (N93) i numrul de premii la nivel naional (N10), la nivel de catedr i an. Pentru fiecare variabil se vor stabili factorii de care depinde sau n funcie de care variaz (dimensiunile cubului) i anume: f Variabilele nrcadre, nrtesa, nrdoct, nrstud_cer, Ncd, nrstud, N d cd , N td , N7, N91, N92, N93, N10 au ca dimensiuni: Timp, Institut (universitate). Variabilele nrproiecte, valoare_lei, valoare_dolari au ca dimensiuni: Timp, Institut, Tip_proiect. Variabilele nrpro, vallei, valdol au ca dimensiuni: Timp, Centru, Tip_proiect. Variabila nrpub are ca dimensiuni: Timp, Institut, Publicaie. De asemenea, fiecare variabil va fi analizat, n scopul de a determina dac este aditiv, semiaditiv sau neaditiv. Toate variabilele definite sunt aditive.

9.3.2 Identificarea dimensiunilor i a ierarhiilor


Se identific urmtoarele dimensiuni ierarhice: Publicaie, Institut (universitate) i Tip_proiect. Dimensiunea Institut este o dimensiune cu structur ierarhic cu nivelurile: Institut, Facultate i Catedr. Dimensiunea Publicaie are o structur ierarhic cu nivelurile: Total_publicaii, Carte (Cri publicate n edituri romneti recunoscute de CNCSIS-CCNCSIS, Cri publicate n edituri romneti recunoscute n strintate-CS, Cri publicate n edituri romneti nerecunoscute CNCSIS-CNER), Articole (Articole publicate n reviste romneti recunoscute

262

Proiectarea i realizarea unui sistem OLAP CNCSIS-ACNCSIS, Articole publicate n reviste cotate ISI-AISI, Articole publicate n reviste nerecunoscute-ANER, Lucrri publicate n reviste din strintate cu recenzori-AS), Conferine (Comunicri n volumele conferinelor tiinifice naionale-CN, lucrri publicate n volumele conferinelor internaionale-CI) (figura 9.6). Revistele romneti sunt recunoscute de CNCSIS pe baze unor criterii de evaluare i anume: includerea revistei n baza de date a unui institut de evaluare scientometric, includerea revistei n cataloage centralizatoare de rezumate pe domeniu, difuzarea n strinatate a revistei, factorul de impact pe plan internaional etc [http://www.cncsis.ro].
Total_publicaii

carte

conferine

articole

CS

CNER

CCNCSIS

CN

CI

ACNCSIS

ANER

AISI

AS

Figura 9.6 Dimensiunea ierarhic Publicaie (ierarhia este strict) Revistele cotate de Institutul pentru tiina Informrii (ISI) din Philadelphia sunt grupate n trei indexuri n funcie de domeniile tiinifice abordate i anume: Science Citation Index (SCI), Social Citation Index (SSCI) i Arts&Humanities Citation Index (A&HCI) [http://www.cncsis.ro]. Editurile romneti sunt recunoscute de CNCSIS pe baza unor criterii de evaluare i anume: pondere nsemnat din activitate n domeniul crii tiinifice i manualelor universitare, publicarea a minimum 50 de cri tiinifice sau manuale universitare n ultimii 5 ani, premii obinute de editur la saloane i trguri de carte etc [http://www.cncsis.ro]. Dimensiunea Tip_proiect are o structur ierarhic cu nivelurile: Total, Contracte cu companii din ar (Alii), Academia Romn (ACAD), CNCSIS (GR_A, GR_AT, GR_E, GR_Td, GR_Bd), Orizont 2000 (O2000), RO-4096 (PU, PEP, PC, D, C, T, B), proiecte nefinanate (NF), proiecte finanate de MEC prin programe din planul naional de cercetare-dezvoltare i inovare(CERES, MENER, INFRAS, MANATECH), proiecte de cercetare internaional (PI). Dimensiunea Timp nu are o structur ierarhic, este format numai din ani (2000, 2001, 2002, 2003). Dimensiunea Centru se consider neierarhic, dei poate avea o structur ierarhic cu nivelurile: Institut i Centre de cercetare (ntr-o universitate pot exista unul sau mai multe centre de cercetare).

263

Iniiere n tehnologia OLAP-teorie i practic

9.3.3 Definirea cuburilor n-dimensionale sau a structurii multicub


Pentru a reduce fenomenul de mprtiere s-a ales o structur multicub cu patru cuburi n-dimensionale i anume: cubul n-dimensional cu dimensiunile Timp, Institut, Tip_proiect i variabilele valoare_lei, valoare_dolari, nrproiecte; cubul n-dimensional cu dimensiunile Timp, Institut i variabilele nrcadre, f nrtesa, nrdoct, nrstud_cer, N d cd , N td , N7, N91, N92, N93, N10; cubul n-dimensional cu dimensiunile Timp, Tip_proiect, Centru i variabilele vallei, valdol, nrpro; cubul n-dimensional cu dimensiunile Timp, Publicaie, Institut i variabila nrpub. Structura multicub are o singur dimensiune global, dimensiunea Timp.

9.3.4 Rafinarea modelului multidimensional


Este necesar a se stabili i dimensiunile care se modific frecvent i care este rata de modificare a fiecrei dimensiuni. Cele mai frecvente modificri apar n dimensiunea Tip_proiect, iar rata ei de modificare poate fi de cel puin un an. Deoarece dimensiunea Tip_proiect are puini membri, se va utiliza ca metod de modelare a modificrilor care vor apare, metoda de a pstra o singur dimensiune n cub, ce reprezint reuniunea versiunilor. O component cheie a modelrii multidimensionale este definirea formulelor i n special a formulelor de agregare. Se vor defini urmtoarele formule de calcul i anume: rata publicaiilor (numrul mediu de publicaii pe cadru didactic): rata=nrpub/nrcadre ncrcare cadre didactice: ncrcare=nrstud/Ncd procent de participare la cercetare : procent=nrcadre/Ncd De asemenea, se vor realiza agregri dup dimensiunile: Tip_proiect, Institut, Publicaie. Pentru fiecare dimensiune se stabilesc nivelurile de granulaie i anume: Dimensiunea Institut are nivelul de granulaie catedra. Dimensiunea Publicaie are nivelul de granulaie subcategorie de publicaie (cri publicate n edituri romneti recunoscute de CNCSIS, cri publicate n edituri romneti recunoscute n strintate, cri publicate n edituri romneti nerecunoscute CNCSIS etc). Dimensiunea Timp are nivelul de granulaie anii calendaristici (2000, 2001, 2002 etc). Dimensiunea Tip_proiect are nivelul de granulaie tipurile de proiecte finanate (granturi anuale de tip A, de tip AT etc). Dimensiunea Centru are nivelul de granulaie centru de cercetare. Conform modelului propus de Blanschka, modelul multidimensional conceptual pentru activitatea de cercetare are urmtoarele componente (figura 9.7):

264

Proiectarea i realizarea unui sistem OLAP Colecie de fapte: Niveluri: Atribute: Funcia: FS_1 L={tip_proiect, finanator, catedra, facultate, institut, an} A={valoare_lei, valoare_dol, nrproiecte} gran (FS_1)={catedra, an, tip_proiect} care asociaz FS_1 cu nivelurile de baz ale dimensiunilor Relaiile ntre niveluri: class={(catedra, facultate), (facultate, institut), (tip_proiect, finanator)} Funciile: attr(valoare_lei)=FS_1, attr(valoare_dol)=FS_1 etc. Colecie de fapte: FS_2 Niveluri: L={tip_proiect, finanator, centre, an} Atribute: A={vallei, valdol, nrpro} Funcia: gran (FS_2)={centre, an, tip_proiect} care asociaz FS_2 cu nivelurile de baz ale dimensiunilor Relaiile ntre niveluri: class={(tip_proiect, finanator)} Funciile: attr(vallei)=FS_2, attr(valdol)=FS_2 etc. Colecie de fapte: FP_1 Niveluri: L={subcategorie, categorie, catedra, facultate, institut, an} Atribute: A={nrpub} Funciile: gran (FP_1)={catedra, an, subcategorie} care asociaz FP_1 cu nivelurile de baz ale dimensiunilor Relaiile ntre niveluri: class={(catedra, facultate), (facultate, institut), (subcategorie, categorie)} Funciile: attr(nrpub)=FP_1 Colecie de fapte: FP_2 Niveluri: L={catedra, facultate, institut, an} Atribute: A={nrcadre, nrtesa, nrstud, Ncd, nrstud_cer, nrdoct, N d cd , N ftd , N7, N91, N92, N93, N10 } Funciile: gran(FP_2)={catedra, an} care asociaz FP_2 cu nivelurile de baz ale dimensiunilor Relaiile ntre niveluri: class={(catedra, facultate), (facultate, institut)} Funciile: attr(nrcadre)=FP_2, attr(nrtesa)=FP_2 etc Modelul entitate-asociere al sistemului informatic tranzacional este prezentat n figura 9.8. Schema conceptual a bazei de date relaional surs este urmtoarea (cheile primare sunt subliniate, pentru fiecare cheie extern este prezentat schema referit): INSTITUII (UNIVERSITI)(codinst, denumire, adresa) FACULTI (codfac, denfac, codinst: INSTITUII) CATEDRE (codcat, dencat, codfac: FACULTI) PERSOANE (codp, nume, funcia, codcat: CATEDRE, doctorat, imagine) PERS_PUB (codp: PERSOANE, codpub: PUBLICAII, nrpagini) PUBLICAII (codpub, denpub, an, codsubcat: CATEGORII, editura, nrpag) CATEGORII (codsubcat, densubcat, categ)

265

Iniiere n tehnologia OLAP-teorie i practic PERS_PROI (codp: PERSOANE, cod: PROIECTE, nrore) PROIECTE (cod, denumire, codp: PERSOANE, director, an, denetapa, codtip: TIPURI_PROIECT, codc: CENTRE, vallei, valdol) TIPURI_PROIECT (codtip, denumire) CENTRE (codc, denumire, director, domeniu, acreditare (organizaie), an_acreditare, tip_acreditare, nivel, universitate, facultate, catedra, coordonate, direcii) REPREZENTRI (codr, codp:PERSOANE, an_reprezentare, denumire_academie) PREMII (codpr, titlu, codp:PERSOANE, an_premiu, denumire_organizaie) TEZE (codt, titlu, nume_doctorand, codp:PERSOANE, an_nmatriculare, an_susinere) BREVETE (titlu, codp:PERSOANE, an_brevet) Pentru a pstra o istorie a numrului de studeni i a numrului de cadre didactice se vor aduga dou tabele istorice: STUD_FAC (an, codfac: FACULTI, nrstud) NRPROF_CAT (an, codcat: CATEDRE, Ncd)

9.4 Proiectarea logic


Modelul multidimensional conceptual proiectat n etapa anterioar poate fi implementat att ntr-o baz de date relaional (o soluie ROLAP) ct i ntr-o baz de date multidimensional (o soluie MOLAP). Dac se adopt o soluie ROLAP, se va proiecta schema stea a bazei de date. S-au identificat urmtoarele tabele de fapte: Tabela de fapte FS_1 (codcat, codtip, an, nrproiecte: number(3), valoare_lei: number(20), valoare_dol: number(10)) cu tabelele de dimensiuni: Tipuri_proiect (codtip: varchar2(8), denumire: varchar2(100), finanator: varchar2(8)), Timp (an: varchar2(4)), Instituii(Universiti) (codcat: varchar2(5), dencat: varchar2(60), codfac: varchar2(5), denfac: varchar2(60), codinst: varchar2(5), deninst: varchar2(60)) (figura 9.9 i figura 9.10). Tabela de fapte FS_2 (codc, codtip, an, nrpro: number(3), vallei: number(20), valdol: number(10)) cu tabelele de dimensiuni: Tipuri_proiect (codtip: varchar2(8), denumire: varchar2(100), finanator: varchar2(8)), Timp (an: varchar2(4)), Centre (codc: varchar2(12), denumire: varchar2(100)). Tabela de fapte FP_1 (codcat, an, codsubcat, nrpub: number(3)) cu dimensiunile: Instituii (codcat: varchar2(5), dencat: varchar2(60), codfac: varchar2(5), denfac: varchar2(60), codinst: varchar2(5), deninst: varchar2(60)), Timp (an: varchar2(4)), Publicaii (codsubcat: varchar2(8), densubcat: varchar2(70), categ: varchar2(10)) (figura 9.11). Tabela de fapte FP_2 (codcat, an, nrcadre: number(3), nrtesa: number(3), nrstud_cer: number(3), nrdoct: number(3), nrstud: number(3), ncd: number(3), f Nd cd : number(3), N td : number(3), N7: number(3), N91: number(3), N92: number(3), N93: number(3), N10: number(3) cu dimensiunile: Timp (an: varchar2(4)), Instituii (Universiti) (codcat: varchar2(5), dencat: varchar2(60),

266

Proiectarea i realizarea unui sistem OLAP codfac: varchar2(5), denfac: varchar2(60)) (figura 9.11).
Valoare_lei an

varchar2(60),

codinst:

varchar2(5),

deninst:

valoare_dol

nrproiecte finanator tip_proiect FS_1

catedra

facultate

universitate

an nrpub

categorie

subcat

FP_1

catedra

facultate

universitate

nrcadre nrtesa an FP_2

ncd nrstud catedra facultate universitate

N cd nrdoct N7 Nrstud_cer

N10

finanator

Tip_proiect

FS_2

centru

vallei an nrpro

valdol

Figura 9.7 Modelul multidimensional conceptual pentru activitatea de cercetare n nvmntul universitar

267

Iniiere n tehnologia OLAP-teorie i practic

Figura 9.8 Modelul entitate asociere

Figura 9.9 Schema fulg de zpad cu tabela de fapte FS_1

268

Proiectarea i realizarea unui sistem OLAP

Figura 9.10 Schema stea cu tabela de fapte FS_1

Figura 9.11 Schema stea cu tabelele de fapte FP_1 i FP_2

269

Iniiere n tehnologia OLAP-teorie i practic

9.5 Proiectarea fizic


Pentru a stabili aproximativ dimensiunea bazei de date relaionale (soluia ROLAP), s-a utilizat modul de calcul propus de Ralph Kimball [KIMB96]. Autorul consider c fiecare atribut are maxim 4 bytes. De asemenea, consider c pentru tabelele de fapte cu un numr mic de atribute, dimensiunea indexului principal creat pe cheia compus a tabelei va fi de 60-80% din dimensiunea tabelei de fapte. Pentru tabele de fapte cu multe atribute (15-20 de atribute), dimensiunea indexului principal este de 30-50% din dimensiunea tabelei de fapte. De asemenea, tabelele de dimensiuni i indecii asociai vor fi foarte mici n comparaie cu tabela de fapte i indexul principal aferent. Pentru cazul nostru, s-au utilizat nivelurile de granulaie stabilite n etapa 9.3, iar dimensiunea bazei de date relaionale s-a calculat aproximativ astfel: Dimensiunea Timp : 3 ani=3*365 zile=1095 zile Dimensiunea Instituii (Universiti) : 31 catedre Dimensiunea Centre : 8 centre (cel puin) Dimensiunea Tip_proiect : 20 tipuri de proiect Dimensiunea Publicaii : 9 tipuri de publicaii Numrul de nregistrri din tabela de fapte FS_1 = 1095*31*20= 678900 nregistrri Numrul de atribute cheie pentru tabela de fapte FS_1 = 3 Numrul de atribute din tabela de fapte FS_1 = 3 Numrul total de atribute din tabela de fapte FS_1 = 6 Dimensiunea tabelei de fapte FS_1=678900*6 atribute* 4 bytes/atribut= 16293600 bytes Dimensiunea indexului principal pe cheia compus a tabelei= 70%* 16293600= 11405520 bytes Numrul de nregistrri din tabela de fapte FS_2 = 1095*20*8= 175200 nregistrri Numrul de atribute cheie pentru tabela de fapte FS_2 = 3 Numrul de atribute din tabela de fapte FS_2 = 3 Numrul total de atribute din tabela de fapte FS_2 = 6 Dimensiunea tabelei de fapte FS_2 = 175200*6 atribute* 4 bytes/atribut = 4204800 bytes Dimensiunea indexului principal pe cheia compus a tabelei= 70%* 4204800 = 2943360 bytes Numrul de atribute cheie pentru tabela de fapte FP_1 = 3 Numrul de atribute din tabela de fapte FP_1 = 1 Numrul total de atribute din tabela de fapte FP_1 = 4 Numrul de nregistrri din tabela de fapte FP_1 = 1095* 9*31= 305505 nregistrri Dimensiunea tabelei de fapte FP_1 = 305505*4*4 = 4888080 bytes Dimensiunea indexului pricipal = 70%*4888080= 3421656 bytes

270

Proiectarea i realizarea unui sistem OLAP Numrul de atribute cheie pentru tabela de fapte FP_2 = 2 Numrul de atribute din tabela de fapte FP_2 = 13 Numrul total de atribute din tabela de fapte FP_2 = 15 Numrul de nregistrri din tabela de fapte FP_2 = 1095* 31= 33945 nregistrri Dimensiunea tabelei de fapte FP_2 = 33945*15*4 = 2036700 bytes Dimensiunea indexului principal = 70%*2036700 = 1425690 bytes Dimensiunea total aproximativ = 2036700+1425690+3421656+4888080+2943360+4204800+16293600+11405520 = 46619406 bytes~50 Mb.

9.6 Construirea sistemului OLAP


Cu scopul de a furniza managerilor informaiile necesare pentru a asigura calitatea activitii de cercetare tiintific n nvmntul universitar, datele la nivel de detaliu sunt stocate ntr-o baz de date relaional, iar datele agregate sunt stocate n baza de date multidimensional. Pentru a crea baza de date multidimensional, s-a utilizat utilitarul Oracle Express Administrator 6.3.2. Baza de date multidimensional Evaluare_final are urmtoarele dimensiuni: Dimensiunea Centre (centre de cercetare); Dimensiunea Instituii (universiti) este o dimensiune cu totaluri incluse i conine catedrele i facultile care particip la cercetare; Dimensiunea Nivel_institut (niveluri n ierarhia institutului); Dimensiunea Publicaii (categorii i subcategorii de publicaii) este o dimensiune cu totaluri incluse; Dimensiunea Timp (anii pentru analiz); Dimensiunea Tip_proiect (tipul proiectului) este o dimensiune cu totaluri incluse. S-au definit urmtoarele variabile: nrcadre (numrul de cadre didactice antrenate n cercetare la nivel de catedr i an). nrstud_cer (numrul de studeni antrenai n cercetare la nivel de catedr i an). nrdoct (numrul de doctoranzi antrenai n cercetare la nivel de catedr i an). nrtesa (numrul de cadre tesa antrenate n cercetare la nivel de catedr i an). nrproiecte (numrul de proiecte de cercetare la nivel de catedr, tip de proiect, an). Aceasta variabil ofer informaii despre: indicatorul N1 (granturi CNCSIS i ale Academiei Romne), la nivel de catedr i an, indicatorul N2 (numrul de contracte de cercetare internaionale), la nivel

271

Iniiere n tehnologia OLAP-teorie i practic de catedr i an i indicatorul N3 (numrul de contracte cu companii din ar i PNCD), la nivel de catedr i an. nrpro (numrul de proiecte de cercetare la nivel de centru de cercetare, tip de proiect, an). Centrele de cercetare sunt constituite la nivel de catedr, facultate sau universitate. Exist totui catedre sau faculti care nu sunt incluse ntr-un centru de cercetare. De aceea s-a considerat necesar a se defini dou variabile: nrproiecte i nrpro. nrpub (numrul de publicaii la nivel de catedr, tip de publicaie i an). Aceasta variabil ofer informaii despre: indicatorul N5.1 (numr de articole publicate n reviste recunoscute CNCSIS), la nivel de catedr i an, indicatorul N5.2 (numr de articole publicate n reviste cotate ISI), la nivel de catedr i an, indicatorul N6.1 (cri publicate n edituri recunoscute de CNCSIS), la nivel de catedr i an i indicatorul N6.2 (cri publicate n edituri recunoscute din strinatate), la nivel de catedr i an. nrstud (numrul de studeni la nivel de facultate i an). ncd (numrul de cadre didactice la nivel de catedr i an) valoare_dolari (valoarea contractat n dolari la nivel de catedr, tip de proiect i an). Aceasta variabil ofer informaii despre indicatorul Vtci (valoare contracte internaionale) la nivel de catedr i an. vallei (valoarea contractat n lei la nivel de centru, tip de proiect i an). valoare_lei (valoarea contractat n lei la nivel de catedr, tip de proiect i an). Aceast variabil ofer informaii despre: indicatorul Vtgn (valoare granturi naionale) la nivel de catedr i an i indicatorul Vtcn (valoare contracte cu companii din ar i PNCD), la nivel de catedr i an. valdol (valoarea contractat n dolari lei la nivel de centru, tip de proiect i an). De asemenea, se pot defini i variabilele N d cd (numr de conductori de doctorat), N ftd (numr de teze de doctorat finalizate), N7 (numr de brevete), N91 (numrul de reprezentri n Academia Romn), N92 (numr de reprezentri n Academia de tiine tehnice, Academia de tiine Medicale i Academia de tiine Agricole), N93 (numr de reprezentri n organizaii profesionale internaionale i N10 (numr de premii), la nivel de catedr i an. S-au definit urmtoarele formule: rata =nrpub/nrcadre ncrcare=nrstud/ncd procent=nrcadre/ncd S-au definit urmtoarele relaii ntre dimensiuni : inst_inst (relaia construit pe dimensiunea Instituii) niv_inst (relaia ntre dimensiunea Nivel_Institut i dimensiunea Instituii) tip_tip (relaia construit pe dimensiunea Tip_proiect) pub_pub (relaia construit pe dimensiunea Publicaii) centre_centre (relaia construit pe dimensiunea Centre) S-au definit de asemenea, urmtoarele seturi de valori:

272

Proiectarea i realizarea unui sistem OLAP cat_set (setul de catedre) fac_set (setul de faculti) centre_set (setul de centre de cercetare) tip_set (setul de tipuri de proiecte internaionale) tip1_set (setul de tipuri de proiecte naionale) Figura 9.12 prezint structura logic a bazei de date multidimensional Evaluare_final. Pentru definirea dimensiunilor, a variabilelor, relaiilor, formulelor de calcul i a seturilor de valori s-au utilizat programe scrise n limbajul Express i anume: definire baza de date database create evaluare_final definire dimensiunea Instituii define institutii dimension text ld Catedrele i facultile care particip la cercetare maintain institutii add ASE FSELS COM EG EGPAA CIG FABBV CSIE FREI DPPD COLB FMAN COLBU CO TS MMC DR AEF MON FIN CIIF CACG IG MAN EC TI CDE EPE EFS IEG LRCA LGCA REI TPAA SELS CIB IE STAT AS EM SSDI FPS definire dimensiunea Centre define centre dimension text ld centre de cercetare maintain centre add 'CCAEMA' 'CNESMC' 'CEAPE' 'CSCIG' 'CCMP' 'CEAPR' 'CEFIMO' 'ECOINFOSOC' describe centre definire dimensiunea Nivel_institut define Nivel_institut dimension text ld Niveluri n ierarhia institutului maintain Nivel_institut i add UNIVERSITATI FACULTATI CATEDRE definire dimensiunea Timp define timp dimension text ld Anii pentru analiz maintain timp add 2000 2001 2002 2003 definire dimensiunea Publicaii define Publicaii dimension text ld Publicatii cu totaluri incluse maintain publicatii add 'CCNCSIS' 'CS' 'CNER' 'AS' 'ACNCSIS' 'AISI' 'ANER' 'CN' 'CI' 'CARTE' 'ARTICOLE' 'CONFERINTE' definire dimensiunea Tip_proiect define Tip_proiect dimension text ld Tipul proiectului maintain tip_proiect add 'GR_A' 'GR_AT' 'GR_E' 'GR_TD' 'GR_Bd' 'PU' 'PEP' 'D' 'C' 'T' 'B' 'PC' 'CERES' 'MENER' 'MANATECH' 'INFRAS' 'ALTII' 'ACAD' 'CNCSIS' 'O2000' 'RO-4096' 'PNCDI' 'NF' 'PI'

273

Iniiere n tehnologia OLAP-teorie i practic definire variabil nrcadre define nrcadre integer <timp, institutii> ld numrul de cadre didactice antrenate n cercetare la nivel de catedr i an describe nrcadre definire variabil nrproiecte define nrproiecte shortinteger <timp, tip_proiect, institutii> ld numr de proiecte pe tip, an, instituii describe nrproiecte definire variabil valoarea_dolari define valoarea_dolari integer <timp, tip_proiect, institutii> ld valoarea contractat (dolari) describe valoarea_dolari

Figura 9.12 Structura logic a bazei de date multidimensional definire variabil nrpro define nrpro variable shortinteger <timp, tip_proiect, centre> ld numrul de proiecte pe tip, an, centre describe nrpro definire variabil n1 define n1 variable shortinteger <timp, institutii> ld numrul de granturi naionale ctigate (CNCSIS i Academia Romn) la nivel de catedr i an describe n1 definire variabil n2

274

Proiectarea i realizarea unui sistem OLAP define n2 variable shortinteger <timp, institutii> ld numrul de contracte de cercetare internaionale la nivel de catedr i an describe n2 definire variabil ncd define ncd variable shortinteger <timp, institutii> ld numrul de cadre didactice la nivel de catedr i an describe ncd definire variabil nrdoct define nrdoct variable shortinteger <timp, institutii> ld numrul de doctoranzi implicai n activitatea de cercetare describe nrdoct definire variabil nrpub define nrpub variable shortinteger <timp, institutii, publicatii> ld numrul de publicaii la nivel de catedr, tip de publicaie i an describe nrpub definire variabil nrstud_cer define nrstud_cer variable shortinteger <timp, institutii> ld numrul de studeni implicai n activitatea de cercetare describe nrstud_cer definire variabil nrstud define nrstud variable shortinteger <timp, institutii> ld numrul de studeni la nivel de facultate i an describe nrstud definire variabil nrtesa define nrtesa variable shortinteger <timp, institutii> ld numrul de cadre tesa antrenate n cercetare la nivel de catedr i an describe nrtesa definire variabil valdol define valdol variable integer <timp, tip_proiect, centre> ld valoarea contractat(dolari) pe centre describe valdol definire variabil vallei define vallei variable decimal <timp, tip_proiect, centre> ld valoarea contractat(lei) pe centre describe vallei definire variabil valoare_lei define valoare_lei variable decimal <timp, tip_proiect, institutii> ld valoare contractat(mil lei) describe valoare_lei definire variabil vtci define vtci variable integer <timp, institutii> ld valoarea contractelor internaionale la nivel de catedr i an describe vtci definire variabil vtgn

275

Iniiere n tehnologia OLAP-teorie i practic define vtgn variable integer <timp, institutii> ld valoarea granturilor naionale ctigate la nivel de catedr i an describe vtgn definire relaia inst_inst define inst_inst relation institutii<institutii> limit institutii to 'CO' 'TS' 'MMC' inst_inst='COM' limit institutii to 'DR' 'AEF' 'MON' 'FIN' inst_inst='FABBV' limit institutii to 'CIIF' 'CACG' 'IG' inst_inst='CIG' limit institutii to 'MAN' 'EC' 'SSDI' inst_inst='FMAN' limit institutii to 'TI' 'CDE' 'EPE' 'EFS' 'IEG' 'FPS' inst_inst='EG' limit institutii to 'LRCA' 'LGCA' 'REI' inst_inst='FREI' limit institutii to 'TPAA' inst_inst='EGPAA' limit institutii to 'SELS' inst_inst='FSELS' limit institutii to 'CIB' 'IE' 'STAT' 'AS' 'EM' inst_inst='CSIE' limit institutii to fac_set inst_inst='ASE' define niv_inst relation nivel_institut<institutii> limit institutii to cat_set niv_inst='CATEDRE' limit institutii to fac_set niv_inst='FACULTATI' limit institutii to 'ASE' niv_inst='UNIVERSITATI' definire relaia pub_pub define pub_pub relation publicatii<publicatii> limit publicatii to 'CCNCSIS' 'CS' 'CNER' pub_pub='CARTE' limit publicatii to 'AS' 'ANER' AISI pub_pub='ARTICOLE' limit publicatii to 'CN' 'CI' pub_pub='CONFERINTE' limit publicatii to 'CARTE' 'ARTICOLE' 'CONFERINTE' pub_pub='TOTPUB'

276

Proiectarea i realizarea unui sistem OLAP definire relaia tip_tip define tip_tip relation tip_proiect<tip_proiect> limit tip_proiect to 'GR_A' 'GR_AT' 'GR_E' 'GR_TD' 'GR_Bd' tip_tip='CNCSIS' limit tip_proiect to 'PU' 'PEP' 'D' 'C' 'T' 'B' 'PC' tip_tip='RO-4096' limit tip_proiect to 'CERES' 'MENER' 'MANATECH' 'INFRAS' tip_tip='PNCDI' limit tip_proiect to 'ALTII' 'ACAD' 'CNCSIS' 'O2000' 'RO-4096' 'PNCDI' 'NF' 'PI' tip_tip='TOTAL' definire relaia centre_centre define centre_centre relation centre<centre> limit centre to 'CCAEMA' 'CNESMC' 'CEAPE' 'CSCIG' 'CCMP' 'CEAPR' 'CEFIMO' 'ECOINFOSOC' centre_centre='ASE' definire relaia niv_inst define niv_inst relation nivel_institut<institutii> limit institutii to cat_set niv_inst='CATEDRE' limit institutii to fac_set niv_inst='FACULTATI' limit institutii to 'ASE' niv_inst='UNIVERSITATI' definire setul de valori cat_set define cat_set valueset institutii ld setul de catedre limit cat_set to 'CO' 'REI' 'MAN' 'SELS' 'CIB' 'IE' 'STAT' 'AS' 'DR' 'CIIF' 'CACG' 'IG' 'AEF' 'EC' 'TI' 'TPAA' 'CDE' 'MON' 'LRCA' 'TS' 'MMC' 'EPE' 'EFS' 'FIN' 'IEG' 'LGCA' 'EM' 'SSDI' 'FPS' definire setul de valori fat_set define fac_set valueset institutii ld setul de faculti limit fac_set to 'CSIE' 'FSELS' 'COM' 'EG' 'EGPAA' 'CIG' 'FMAN' 'FABBV' 'FREI' 'DPPD' 'COLB' 'COLBU' definire setul de valori tip_set define tip_set valueset tip_proiect ld setul de proiecte internaionale limit tip_set to 'TOTAL' 'PI' 'RO-4096' 'D' 'PU' 'PEP' 'C' 'T' 'B' 'PC'

277

Iniiere n tehnologia OLAP-teorie i practic definire setul de valori centre_set define centre_set valueset centre ld setul de centre limit centre_set to 'CCAEMA' 'CNESMC' 'CEAPE' 'CSCIG' 'CCMP' 'CEAPR' 'CEFIMO' 'ECOINFOSOC' definire setul de valori tip_set1 define tip_set1 valueset tip_proiect ld setul de proiecte naionale limit tip_set1 to 'TOTAL''ALTII' 'ACAD' 'CNCSIS' 'O2000' 'PNCDI' 'NF' 'GR_A' 'GR_ definire formula de calcul incarcare define incarcare formula decimal <timp institutii> limit institutii to fac_set, 'ASE' eq nrstud/ncd definire formula de calcul rata define rata formula decimal <timp publicatii institutii> eq nrpub/nrcadre definire formula de calcul procent define procent formula decimal <timp, institutii> eq nrcadre/ncd Datele au fost ncrcate din baza de date relaional surs, a crei schem logic a fost prezentat n etapa 9.3, iar programele de ncrcare sunt scrise n limbajul Express i prezentate n anexa 1. Pentru agregarea datelor s-au creat urmtoarele programe: program pentru agregarea variabilei ncd dup dimensiunea Instituii rollup ncd over institutii using inst_inst program pentru agregarea variabilei nrstud dup dimensiunea Instituii 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 Instituii 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 Instituii 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 program pentru agregarea variabilelor nrproiecte, valoare_dolari i valoare_lei dup dimensiunea Tip_proiect rollup valoare_dolari over tip_proiect using tip_tip rollup valoare_lei over tip_proiect using tip_tip rollup nrproiecte over tip_proiect using tip_tip program pentru agregarea variabilelor nrpro, valdol i vallei dup dimensiunea Centre rollup nrpro_centre over centre using centre_centre rollup valdol over centre using centre_centre rollup vallei over centre using centre_centre program pentru agregarea variabilelor nrpro, valdol i vallei dup dimensiunea Centre rollup valdol over tip_proiect using tip_tip rollup vallei over tip_proiect using tip_tip rollup nrpro_centre over tip_proiect using tip_tip program pentru agregarea variabilei nrpub dup dimensiunea Instituii rollup nrpub over institutii using inst_inst program pentru agregarea variabilei nrpub dup dimensiunea Publicaii rollup nrpub over publicatii using pub_pub program pentru agregarea variabilelor n1 i vtgn dup dimensiunea Instituii rollup n1 over institutii using inst_inst rollup vtgn over institutii using inst_inst Interfaa sistemului OLAP a fost construit utiliznd instrumentul Oracle Express Objects 6.3.2. i este prezentat n figura 9.13. Interfa permite operaii specifice OLAP i anume: cereri de tip slice i dice ce fac selecii n cubul n-dimensional. De exemplu, numrul de granturi (A, AT, E, Td, Bd) realizate de facultatea CSIE n perioada 2000-2003; cereri de tip drill down i roll up. De exemplu, numrul de granturi (A, AT, E, Td, Bd) realizate de fiecare catedr n perioada 2000-2003 (cerere de tip drill down), apoi numrul de granturi realizate de fiecare facultate n perioada 2000-2003 (se vor agrega valorile variabilei nrproiecte de la nivelul catedr la nivelul facultate); cereri de tip top/bottom (de exemplu primele 3 faculti dup valoarea contractat n lei, n anul 2000); rotirea cubului n-dimensional ce permite utilizatorilor s vizualizeze datele grupate dup alte dimensiuni. Cererile de tip drill down i roll up se pot combina cu cererile de tip slice i dice.

279

Iniiere n tehnologia OLAP-teorie i practic

Figura 9.13 Interfaa sistemului OLAP Sistemul OLAP permite urmtoarele tipuri de analize: evoluia grafic a personalului implicat n activitatea de cercetare (figura 9.14). Se alege facultatea sau catedra i se afieaz, tabelar i grafic, evoluia numrului de cadre didactice i a numrului de cadre tesa, n perioada 2000-2003. De asemenea, se poate modifica modul de afiare a variabilelor i anume pe linii sau coloane; evoluia grafic a valorii contractate (lei sau dolari). De exemplu: valoare contractelor de cercetare (mil.lei) pentru Orizont 2000, valoarea total a contractelor de finanare n perioada 2000-2003, valoarea contractelor de cercetare (mil lei) n perioada 2000-2003 pe surse de finanare (figura 9.15) etc. Se selecteaz facultatea sau catedra, precum i tipul de proiect i se afieaz evoluia grafic a finanrii pe surse de finanare, n perioada 2000-2003. Se poate modifica tipul de grafic. Dac se selecteaz un element de dat din grafic, se afieaz valoarea lui; topul primelor trei faculti n funcie de indicatorul ales (figura 9.16). Dac se selecteaz butonul Total (i se alege anul), se afieaz, pentru toate facultile, valoarea contractat (lei sau dolari), precum i numrul de proiecte corespunztoare. Se selecteaz apoi, butonul Top3 i se afieaz primele trei faculti n funcie de valorile indicatorului selectat. Dac se doresc i detalii referitoare la tipul de proiecte, se selecteaz butonul Tip_Proiect;

280

Proiectarea i realizarea unui sistem OLAP evoluia indicatorilor: N1 (figura 9.17), Vtgn, N2, Vtci, N3, Vtcn, N d cd ,

N ftd , N7, N91, N92, N93 i N10. evoluia grafic a numrului de studeni implicai n activitatea de cercetare (figura 9.18); ncrcarea cadrelor didactice, rata publicaiilor (figura 9.19); evoluia grafic a numrului de publicaii (include i evoluia grafic a indicatorilor N5.1, N5.2, N6.1, N6.2) (figura 9.20); procentul de participare la activitatea de cercetare; evoluia grafic a numrului de studeni la nivel de facultate. Se alege facultatea sau facultile, precum i anul sau anii de analiz i se afieaz tabelar, evoluia numrului de studeni. Tabelul rezultat poate fi exportat n Excel. evoluia grafic a numrului de doctoranzi implicai n activitatea de cercetare; evoluia grafic a numrului de proiecte de cercetare. De exemplu: evoluia numrului de proiecte n perioada 2000-2003, evoluia numrului de proiecte finanate prin Orizont 2000 n perioada 2000-2003, evoluia indicatorului N1, la nivel de catedr, facultate sau universitate, n perioada 2000-2003, evoluia indicatorului N2, la nivel de catedr, facultate sau universitate, n perioada 2000-2003, evoluia 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 fr intermediari (cum ar fi n cazul interogrii unui sistem relaional) i s identifice mult mai uor erorile i datele care lipsesc, precum i s le corecteze. Prezentarea multidimensional a informaiilor permite managerilor s manipuleze i s interpreteze mai uor aceste informaii. Se reduce astfel timpul de acces i efortul depus. Toi managerii, care utilizeaz sistemul OLAP, vor vizualiza informaiile din aceleai perspective (modelul multidimensional este proiectat pe baza tipurilor de cereri i a scenariilor de analiz stabilite de manageri). Cererile realizate pe bazele de date relaionale au diferite rezultate, n funcie de modul cum sunt ele formulate.

281

Iniiere n tehnologia OLAP-teorie i practic

Figura 9.14 Evoluia grafic a personalului implicat n activitatea de cercetare

Figura 9.15 Evoluia finanrii pe surse de finanare

282

Proiectarea i realizarea unui sistem OLAP

Figura 9.16 Topul primelor trei faculti

Figura 9.17 Evoluia indicatorului N1

283

Iniiere n tehnologia OLAP-teorie i practic

Figura 9.18 Evoluia grafic a numrului de studeni implicai n cercetare

Figura 9.19 Evoluia ratei publicaiilor

284

Proiectarea i realizarea unui sistem OLAP

Figura 9.20 Evoluia numrului de publicaii De asemenea, sistemul suport de decizie permite managerilor s vizualizeze uor structura bazei de date (dimensiuni, variabile, relaii, formule) (figura 9.21). Principalele dezavantaje ale utilizrii unei baze de date multidimensionale sunt: dimensiunea Tip_proiect se poate modifica n funcie de timp; se observ de asemenea, c baza de date multidimensional nu permite cercettorilor individuali s extrag o list cu propriile publicaii. Baza de date multidimensional stocheaz numai date agregate (de exemplu numrul anual de publicaii de un anumit tip, la nivelul unei faculti) i nu date atomice. Din acest motiv, se utilizeaz o baz de date relaional surs care stocheaz datele de detaliu, integrat cu baza de date multidimensional care stocheaz datele agregate. Schema logic a bazei de date relaionale surs a fost prezentat n etapa 9.3. Cele dou sisteme (tranzacional i suport de decizie) se completeaz reciproc, oferind informaii complete i curente. De asemenea, cele dou sisteme proiectate ofer suport i pentru metodologia de alocare a fondurilor reprezentnd finanarea de baz a universitilor, propus de MEC. Pe baza datelor oferite de sistemul tranzacional, se pot determina i analiza indicatorii utilizai pentru msurarea nivelului performanelor n cercetarea tiinific [BULE01]. Schema conceptual i logic a bazei de date relaionale surs permite definirea acestor indicatori. De asemenea, modelul multidimensional conceptual nu trebuie modificat (nu apar noi dimensiuni).

285

Iniiere n tehnologia OLAP-teorie i practic Chiar dac este unanim acceptat, ideea c indicatorii de performan pot fi utilizai pentru evaluarea activitii de cercetare, totui este greu de stabilit un set de indicatori (msuri) corespunztori, un mod de a stabili ponderile acestor indicatori comun pentru toate instituiile de cercetare i toate disciplinele, astfel ca analizele comparative la nivel global s fie corecte i relevante pentru manageri. De asemenea, apar probleme legate de colectarea datelor, analiza i prezentarea informaiilor, acurateea, relevana lor, precum i dac rezultatul final justific efortul depus. Informaia nsi poate fi considerat un instrument puternic pentru managementul n organizaie, dar efectele utilizrii ei sunt adesea imprevizibile i complexe. Asigurarea informaiilor de calitate poate mbunti procesul decizional, deciziile pot fi luate mai uor, se pot identifica de asemenea, probleme care pn atunci au fost ignorate sau necunoscute. Codul pentru realizarea interfeei sistemului OLAP este prezentat n anexa 2, iar n anexa 3 scriptul SQL pentru definirea structurii bazei de date relaionale.

Figura 9.21 Sistemul OLAP ofer informaii 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 activitii de cercetare, sub forma unui cub de informaii, pe baza studiului procesului

286

Proiectarea i realizarea unui sistem OLAP decizional curent i a cerinelor informaionale ale activitii de evaluare a cercetrii tiinifice n nvmntul universitar. Pentru proiectarea modelului multidimensional conceptual s-a utilizat metoda orientat pe cereri. Cuvinte cheie Model de afaceri, cub n-dimensional de informaii, sistem OLAP, metoda orientat pe cereri, model multidimensional conceptual, structur multicub, schema stea, schema fulg de zpad, tabel de fapte.

287

Anexa 2
Interfa sistemului OLAP a fost realizat cu instrumentul Oracle Express Objects 6.3.2. Elementele componente ale interfeei sunt prezentate n figura A2.1.

Figura A2.1 Elementele componente ale interfeei sistemului OLAP n aceast anex, sunt prezentate cele mai semnificative pagini ale aplicaiei, elementele lor componente, precum i codul scris n limbajul Express. Elementele componente ale paginii principale pagmain (Text: Evaluarea activitii de cercetare universitar) sunt prezentate n figura A2.2. Pagina conine 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 cercetare tiinific este component principal a proceselor de nvmnt i inovare din). Codul pentru obiectul timer1 este urmtorul: Sub AfterTimer () if ase.visible=yes then ase.visible=no else ase.visible=yes End Sub La evenimentul AfterActivate al paginii pagmain este ataat urmtorul cod: Sub AfterActivate () grpStatusBar.SetStatusMsg "Selectati o optiune din meniu" End Sub Sub AfterRun (Flags As Integer) AfterActivate End Sub Opiunile meniului principal sunt prezentate n figurile A2.3, A2.4 i A2.5.

Figura A2.2 Elementele componente ale paginii Pagmain

289

Iniiere n tehnologia OLAP-teorie i practic

Figura A2.3 Opiunile submeniului Indicatori sintetici

Figura A2.4 Opiunile submeniului Indicatori de performan

290

Anexa 2

Figura A2.5 Opiunile submeniului Help Opiunea commanditem1 (Text: Indicatori sintetici) are ataat urmtorul cod: Sub AfterItemSelect () Dim tMsg as String If ( it.ItemStyle = 2) Then tMsg = " " ElseIf ( Instr(it.Text, "E&xit") > 0 ) Then tMsg = "Ieire din aplicaie" Else If (Instr(it.text, "lei") > 0) or (Instr(it.text, "valuta") > 0) Then tMsg="Valoarea contractat n "&it.text else tMsg = it.text end if End If grpStatusBar.SetStatusMsg tmsg End Sub Opiunea commanditem1 (prima opiune din submeniul Indicatori sintetici) (Text: : &Personal implicat n activitatea de cercetare) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String

291

Iniiere n tehnologia OLAP-teorie i practic Dim iPageResult as Integer iPageResult = evolutie_personal.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem4 (Text: &Doctoranzi implicai n activitatea de cercetare) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutie_doctoranzi.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem5 (Text: &Studeni implicai n activitatea de cercetare) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutie_studenti_cercetare.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem2 (Text: &Evoluia grafic a personalului implicat n activitatea de cercetare) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutie_personal1.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem6 (Text: &Evoluia grafic a numrului de doctoranzi implicai n activitatea de cercetare) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutie_doctoranzi_grafic.ShowModal() pagMain.SetFocus End Sub

292

Anexa 2 Opiunea commanditem7 (Text: &Evoluia grafic a studenilor implicai n activitatea de cercetare) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutie_studcerc_grafic.ShowModal() pagMain.SetFocus End Sub Opiunea Commanditem3 (Text: &Evoluia grafic a valorii contractate pe catedre) cu opiunile commanditem2 (Text: lei) i commanditem3 (Text: valut): Sub AfterItemClick () evolutie_volumul_finantarii_lei.ShowModal End Sub Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutie_vol_finantarii_dol.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem14 (Text: &Evoluia grafic a numrului de proiecte pe catedre) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutia_proiecte.ShowModal() pagMain.SetFocus End Sub Opiunea commandcentre (Text: &Evoluia grafic a numrului de proiecte pe centre de cercetare) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutia_proiecte_centre.ShowModal() pagMain.SetFocus End Sub Opiunea commandvaloare (Text: Evoluia grafic a valorii contractate pe centre de cercetare) cu opiunea commandlei (Text: lei) i opiunea commanddol (Text: dolari): Sub AfterItemClick ()

293

Iniiere n tehnologia OLAP-teorie i practic Dim tStr as String Dim iPageResult as Integer iPageResult = evolutia_vallei_centre.ShowModal() pagMain.SetFocus End Sub Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = evolutia_valdol_centre.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem8 (Text: &Top 3 (faculti)) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = top.ShowModal() pagMain.SetFocus End Sub Opiunea commandtopcentre (Text: &Top 3 (centre de cercetare)) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = topcentre.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem16 (Text: E&xit) are ataat urmtorul cod: Sub AfterItemClick () Application.Stop End Sub Opiunea Commanditem3 (Text: Indicatori de performan) cu opiunile: commanditem2 (Text: &Numrul de studeni pe faculti) i commanditem5 (Text: &Evoluia grafic a numrului de studeni pe faculti) : Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = linkview1.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 Opiunea commanditem7 (Text: &Incrcarea cadrelor didactice) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = incarcare.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem6 (Text: &Procentul de participare la activitatea de cercetare) are ataat urmtorul cod: Sub AfterItemClick () dim tstr as string dim ipageresult as integer ipageresult=procentparticipare.showmodal() pagmain.setfocus End Sub Opiunea commanditem3 (Text: &Afiarea facultilor care au un anumit numr de publicaii) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = raportpub1.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem1 (Text: &Articole/cri publicate n reviste cotate/edituri recunoscute) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult =evolutie_publicatii.ShowModal() pagMain.SetFocus End Sub

295

Iniiere n tehnologia OLAP-teorie i practic Opiunea commanditem4 (Text: &Rata publicaiilor) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = ratapublicatii.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem8 (Text: &Granturi ctigate (evoluia indicatorului N1)) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = indicatoruln1.ShowModal() pagMain.SetFocus End Sub Opiunea commandvtgn (Text: &Granturi ctigate (evoluia indicatorului Vtgn)) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = indicatorulvtgn.ShowModal() pagMain.SetFocus End Sub Opiunea commanditem2 (Text: &Baza de date) are ataat urmtorul cod: Sub AfterItemClick () Dim tStr as String Dim iPageResult as Integer iPageResult = pgIterator1_1.ShowModal() pagMain.SetFocus End Sub 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 Opiunea commanditem18 (Text: &Help) are ataat urmtorul cod: 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 End If grpStatusBar.SetStatusMsg tMsg End Sub Opiunea commanditem19 (Text: &informaii) are ataat urmtorul cod: Sub AfterItemClick () pagHelpAbout.ShowModal End Sub Opiunea commanditem1 (Text: Facultile din ASE) are ataat urmtorul cod: Sub AfterItemClick () institutii.showmodal End Sub Opiunea commanditem2 (Text: Proiecte de cercetare) are ataat urmtorul cod: Sub AfterItemClick () ierarhiaproiecte.showmodal End Sub Opiunea commanditem3(Text: Tipuri de publicaii) are ataat urmtorul cod: Sub AfterItemClick () ierarhiapublicatii.showmodal End Sub La opiunea commanditem4 (Text: Regulament) se ataeaz o rutin QuickAction i anume Launch Application (Commandline: c:\program files\microsoft office \office\winword.exe d:\proiect\regulament), iar la opiunea commanditem5 (Text: Consiliul tiinific) se ataeaz o rutin QuickAction i anume Launch Application

297

Iniiere n tehnologia OLAP-teorie i practic (Commandline: c:\program files\microsoft office\ office\ winword.exe d:\ proiect\ consiliul). Grupul de obiecte Grpstatusbar are ataat codul: Sub SetStatusMsg (tMsg As String) label2.text=tmsg End Sub Pagina pagHelpAbout (Text : Despre Aplicaie) este prezentat n figura A2.6 i conine urmtoarele elemente: un buton button1 (Text: OK), un obiect de tip banner banner1 (Text: Aplicaie pentru evaluarea activitii de cercetare universitar), o etichet label1_1 (Text: Aceast aplicaie face o evaluare a activitii de cercetare universitar utiliznd o serie de indicatori de performan propui n Metodologia de alocare a fondurilor reprezentnd finanarea de baza a Universitilor), un obiect basecontrol1, un obiect de tip timer timer2.

Figura A2.6 Elementele componente ale paginii PagHelpAbout Codul ataat obiectului timer2 este: Sub AfterTimer () if banner1.visible=yes then banner1.visible=no else banner1.visible=yes End Sub

298

Anexa 2 Pagina pgiterator1_1 (Text: Baza de date) este prezentat n figura A2.7 i are urmtoarele componente: o etichet label1_3 (Text: Baza de date a aplicaiei), un grup de obiecte groupbox1 (Text: Opiuni) format din dou casete de validare chkvisible (Text: Afieaz numai obiectele vizibile utilizatorului, Value: 1Checked)) 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 afia tipurile de obiecte ale bazei de date) i lbobjects (unde se vor afia obiectele de un anumit tip), o etichet label3_1_1 (Text: Dimensiuni), o list lbdims (unde se vor afia dimensiunile msurilor) i o etichet label1 (Text: Se selecteaz obiectele bazei de date pe care dorim s le afiam (dublu click cu mouse-ul). La evenimentul AfterDblClick al listei lbtypes se ataeaz urmtorul 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

Iniiere 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

Figura A2.7 Pagina Pgiterator1_1

300

Anexa 2 La evenimentul AfterDblclick al listei lbobjects se ataeaz urmtorul cod: Sub AfterDblClick () Dim dataObj as Object Dim dimIter as DatabaseIterator Dim useLabels as Integer Set dataObj = DataDictionary.GetDatabaseObject( iter.GetName( listindex ) ) If dataObj Is Nothing Then Exit Sub If GroupBox1.chkLabels.Value = 1 Then useLabels = YES Set dimIter = dataObj.GetDimensions() lbDims.Clear Do While ( dimIter.IsDone() = FALSE ) If useLabels = YES Then lbDims.AddItem dimIter.GetDescription() Else lbDims.AddItem dimIter.GetName() End If dimIter.Next loop set lbDims.Iter = dimIter End Sub Pagina raportpub1 (Text: Facultile cu un anumit numr de publicaii) este prezentat n figura A2.8 i are urmtoarele componente: un buton cmdfetch (Text: Afieaz), un grup de obiecte grpbxdim ce conine o etichet label2 (Text: Selecteaz tipul publicaiei), o etichet label1 (Text: Selecteaz facultile cu un numr de publicaii mai mare dect), o caset de tip text txtcat (n care se va introduce un numr), o etichet label3 (Text: Selecteaz anul), o list dimlbpub ce afieaz valorile dimensiuniii Publicaii, o lista dimlbtimp ce afieaz valorile dimensiunii Timp, o caset de tip text txtoutput (n care se afieaz publicaiile care satisfac condiia cerut), un buton cmdhelp (Text: Help). La evenimentul AfterClick al butonului cmdfetch se ataeaz urmtorul cod: Sub AfterClick () Dim cmd As String Dim ExpCmd As New ExpressCommand cmd = "limit publicatii to '" & GrpBxDim.DimLBpub.FocusValueText & "'" cmd = cmd & ";limit timp to '" & GrpBxDim.DimLBtimp.FocusValueText & "'" If GrpBxDim.txtcat.[Text] = "" then GrpBxDim.txtcat.[Text] = 0 End If cmd = cmd & ";limit institutii to nrpub gt " & GrpBxDim.txtcat.[Text] & ";limit institutii remove 'ASE''CO''REI''MAN''SELS''CIB''IE''STAT''AS''DR''CIIF''CACG''IG''AEF''EC''TI'' TPAA''CDE''MON''LRCA''TS''MMC''EPE''EFS''FIN''IEG''LGCA''EM''MAR''SSDI

301

Iniiere n tehnologia OLAP-teorie i practic ' 'FPS'" If ExpCmd.Execute(cmd) <> true then MsgBox ExpCmd.Errortext End If ' se execut comanda i se afieaz 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

Figura A2.8 Pagina Raportpub1 La evenimentul AfterClick al butonului cmdhelp se ataeaz urmtorul cod: Sub AfterClick () msgbox container.explicatie, 64, me.text End Sub Se adaug o nou propietate Explicaie pentru pagina raportpub1 (figura A2.9).

302

Anexa 2

Figura A2.9 Adugarea unei propieti Pagina linkview1 (Text: Numrul de studeni la nivel de facultate) este prezentat n figura A2.10 i are urmtoarele componente: o list linkdimlb ce afieaz valorile dimensiunii Instituii, un buton btnlink (Text: Link), un buton btnrefresh (Text: Refresh), o list dimlbtimp ce afieaz valorile dimensiunii Timp, un buton helpstudenti (Text: Help), un buton cmdexcel (Text: Export Excel), o etichet Facultatea, o etichet Anii, i un tabel linktable (ce afieaz valorile variabilei nrstud). La evenimentul AfterClick al butonului helpstudenti se ataeaz urmtorul cod: Sub AfterClick () msgbox container.explicatie, 64, me.text End Sub Se definete propietatea Explicaie (Se apas butonul Link, apoi se selecteaz Facultatea i anul, apoi se apas butonul Refresh ) a paginii linkview1. La evenimentul AfterClick al butonului cmdlink se ataeaz urmtorul cod: Sub AfterClick () set LinkDimLB.HighlightSelection = LinkTable.GetSelection("INSTITUTII") set dimlbtimp.highlightselection=LinkTable.getselection("TIMP") End Sub

303

Iniiere n tehnologia OLAP-teorie i practic

Figura A2.10 Pagina Linkview1 La evenimentul AfterClick al butonului cmdrefresh se ataeaz urmtorul cod: Sub AfterClick () call LinkDimLB.RefreshSelection( dlbSELHighlight ) call DimLBtimp.RefreshSelection( dlbSELHighlight ) End Sub La evenimentul AfterClick al butonului cmdexcel se ataeaz dou rutine QuickAction i anume Export table i Launch Application. Pagina evoluia_proiecte (Text: Evoluia numrului de proiecte) este prezentat n figura A2.11 i are urmtoarele componente: un buton piegraph (Text: &Pie Grafic), un buton explain (Text: &Explicaii), un buton bargraph (Text: &Bar Graph), o list dimlbtip ce afieaz valorile dimensiunii Tip_proiect, o etichet Tip_proiect, o list dimlbnivel ce afieaz valorile dimensiunii Nivel_Institut, o etichet Nivel, o list dimlbinstitut ce afieaz valorile dimensiunii Instituii, o etichet Faculti/catedre, un buton btnlink (Text: Link), un buton btnrefresh (Text: Refresh), un tabel table1 i un grafic graph5 ce vor afia valorile variabilei nrproiecte. Tipul graficului se poate modifica. La evenimentul AfterClick al butonului piegraph se ataeaz urmtorul cod: Sub AfterClick () Graph5.Visible = No

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

Figura A2.11 Pagina Evoluia_proiecte La evenimentul AfterClick al butonului bargraph se ataeaz urmtorul cod: Sub AfterClick () Graph5.Visible = No ' se schimb tipul de grafic Graph5.GraphType = grGTBarClust if Graph5.Effect3D = No then Graph5.Effect3D = Yes end if

305

Iniiere n tehnologia OLAP-teorie i practic 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 La evenimentul AfterClick al butonului btnlink se ataeaz urmtorul cod: Sub AfterClick () set DimLBinstitut.HighlightSelection = Table1.GetSelection("INSTITUTII") set DimLBtip.HighlightSelection = Table1.GetSelection("TIP_PROIECT") End Sub La evenimentul AfterClick al butonului btnrefresh se ataeaz urmtorul cod: Sub AfterClick () call DimLBinstitut.RefreshSelection( dlbSELHighlight ) call DimLBtip.RefreshSelection( dlbSELHighlight ) set graph5.datacube=table1.datacube End Sub La evenimentul AfterClick al butonului explain se ataeaz urmtorul cod: Sub AfterClick () Dim strMsg as string strMsg = "Se prezint evoluia numrului de proiecte pe tipuri de proiecte, catedre i ani." & Chr$(13) strMsg = strMsg & "Se alege facultatea sau catedra i tipul de proiect" & Chr$(13) & chr$(13) strMsg = strMsg & "Se poate vizualiza evoluia la nivel de facultate/catedr/universitate a urmtorilor indicatori:" & Chr$(13) strMsg = strMsg & "Numrul de granturi ctigate (CNCSIS, Academia Romana)" & Chr$(13) strMsg = strMsg & "Numrul de contracte de cercetare internaionale" & Chr$(13) strMsg = strMsg & "Numrul de contracte cu companii din ar" & Chr$(13) strMsg = strMsg & "Numrul de contracte obinute n cadrul PNCD" & Chr$(13) & Chr$(13) strMsg = strMsg & "Click pe obiectul ce reprezint date n grafic i se afieaz valoarea curent" & Chr$(13) strMsg = strMsg & "Se poate modifica i tipul de grafic" & Chr$(13) & chr$(13) MsgBox strMsg, 64, Container.[Text] End Sub La evenimentul AfterSelect al graficului se ataeaz un cod, care afieaz valoarea unui punct al graficului, dac este selectat cu mouse-ul (figura A2.12):

306

Anexa 2 Sub AfterSelect (SelectType As Integer, Component As Object, ObjectClass As Integer, Row As Long, Column As Long) on error goto ErrorLoc If ObjectClass <> vwOCDataBody or Row < 1 or Column < 1 then exit sub end if if GraphType >= grGTBarClust then dim datavalue as long dim result as integer datavalue = GetDataValue(Row, Column) valoare_curenta!Label3.Text = str$(datavalue) result = valoare_curenta.ShowModal() end if ErrorLoc: Visible = Yes End Sub Pagina valoare_curent (Text: Se afieaz valoarea curent) (figura A2.13) se afieaz atunci cnd se selecteaz un element de dat din graficul graph5. Pagina are urmtoarele componente: o etichet label1 (Text: Valoarea curent este), o etichet label3 (unde se va afia valoarea curent), un buton button1 (Text: OK). Pagina evolutie_volumul_finantarii_lei (Text: Evoluia finanrii pe surse de finanare (lei)) este prezentat n figura A2.14 i afieaz informaii despre variabila val_lei, iar pagina evolutie_volumul_finantarii_dol (Text: Evoluia finanrii pe surse de finanare (dolari)) despre variabila val_dol . Pagina evolutie_personal (Text: Evoluia personalului implicat n activitatea de cercetare) este prezentat n figura A2.15 i are urmtoarele componente: o list dimlb1_2 ce afieaz valorile dimensiunii Nivel_institut, o list dimlb2_1 ce afieaz valorile dimensiunii Institutii, o etichet Nivel, o etichet Facultatea/catedra, un buton btnLink (Text: Link), un buton btnRefresh (Text: Refresh), un buton Help (Text: Help), un tabel table_pers i un grafic graph6 (ce afieaz valorile variabilelor nrcadre i nrtesa), un grup de obiecte cu dou butoane de opiuni optmoverow (Text: Afieaz variabilele pe linii) i optionbutton5 (Text: Afieaz variabilele pe coloane).

307

Iniiere n tehnologia OLAP-teorie i practic

Figura A2.12 Afiarea valorii unui punct al graficului

Figura A2.13 Pagina Valoare_curent

308

Anexa 2 La evenimentul AfterHighlight al listei dimlb1_2 se ataeaz codul: Sub AfterHighlight () call DimLB1_2.SetExpressStatus( dlbSELHighlight ) DimLB2_1.DataSelection.AutoRefreshData = False DimLB2_1.DataSelection.AutoRefreshData = True call DimLB2_1.RefreshListbox(dlbSELData) End Sub La evenimentul AfterClick al butonului btnlink se ataeaz codul: Sub AfterClick () set DimLB2_1.HighlightSelection = Table_pers.GetSelection("INSTITUTII") End Sub La evenimentul AfterClick al butonului btnrefresh se ataeaz codul: Sub AfterClick () call DimLB2_1.RefreshSelection( dlbSELHighlight ) End Sub La evenimentul AfterClick al butonului Help se ataeaz codul: Sub AfterClick () msgbox container.explicatie, 64, me.text End Sub La evenimentul AfterClick al butonului de opiune optmoverow se ataeaz codul: Sub AfterClick () dim dcpers as DataCube dim edgrow as Edge dim iENCount as integer dim enLastInrow as EdgeNode dim enMeasure as EdgeNode call table_pers!datacube.rotate(dcrotorow, "XP_MEASUREDIM") call graph6!datacube.rotate(dcrotorow, "XP_MEASUREDIM") 'se gsete dimensiunea fizic rnd set dcpers = table_pers.DataCube set edgrow = dcpers.GetEdge(dcErow) 'dac dimensiunea cu msuri este ultima n dimensiunea fizic rnd iENCount = edgrow.GetEdgeNodeCount() set enLastInrow = edgrow.GetNthEdgeNode(iENCount-1) if not enLastInrow.IsMeasureNode() then set enMeasure = dcpers.GetEdgeNode ("XP_MEASUREDIM") On Error goto RotateError call dcpers.Rotate(dcROAfter, enMeasure, enLastInrow) end if 'enLastInrow is not Measure node exit sub

309

Iniiere n tehnologia OLAP-teorie i practic RotateError: call dcpers.Rotate(dcROSwap, enMeasure, enLastInrow) resume next End Sub La evenimentul AfterClick al butonului de optiune optionbutton5 se ataeaz codul: Sub AfterClick () dim dcpers as DataCube dim edgcol as Edge dim iENCount as integer dim enLastIncol as EdgeNode dim enMeasure as EdgeNode call table_pers!datacube.rotate(dcrotocolumn, "XP_MEASUREDIM") call graph6!datacube.rotate(dcrotocolumn, "XP_MEASUREDIM") 'se caut dimensiunea fizic coloana set dcpers = table_pers.DataCube set edgcol = dcpers.GetEdge(dcEcolumn) 'se verific dac dimensiunea cu msuri este ultima n dimensiunea fizic coloana iENCount = edgcol.GetEdgeNodeCount() set enLastIncol = edgcol.GetNthEdgeNode(iENCount-1) if not enLastIncol.IsMeasureNode() then set enMeasure = dcpers.GetEdgeNode ("XP_MEASUREDIM") On Error goto RotateError call dcpers.Rotate(dcROAfter, enMeasure, enLastIncol) end if 'enLastInCol is not Measure node exit sub RotateError: call dcpers.Rotate(dcROSwap, enMeasure, enLastIncol) resume next End Sub La evenimentul AfterRun al paginii se ataeaz codul: Sub AfterRun (Flags As Integer) call DimLB1_2.AfterHighlight() End Sub

Pagina evoluie_personal1 (Text: Evoluia grafic a personalului implicat n activitatea de cercetare) este prezentat n figura A2.16 i are urmtoarele componente: o list dimlb1_grafic ce afieaz valorile dimensiunii Nivel_institut, o list dimlb2_grafic ce afieaz valorile dimensiunii Instituii, un grafic graph3 (se vor afia valorile variabilelor nrcadre i nrtesa), un grup de obiecte grchoose (Text: Alegei tipul de grafic) cu trei butoane de opiuni optbar (Text: Bar), optline

310

Anexa 2 (Text: Line) i optpie (Text: Pie). La evenimentul AfterRun al paginii se ataeaz urmtorul cod: Sub AfterRun (Flags As Integer) call DimLB1_grafic.AfterHighlight() End Sub

Figura A2.14 Pagina Evolutie_volumul_finantarii_lei La evenimentul AfterHighlight al listei dimlb1_grafic se ataeaz codul: Sub AfterHighlight () call DimLB1_grafic.SetExpressStatus( dlbSELHighlight ) DimLB2_grafic.DataSelection.AutoRefreshData = False DimLB2_grafic.DataSelection.AutoRefreshData = True call DimLB2_grafic.RefreshListbox(dlbSELData) End Sub La evenimentul AfterHighLight al listei dimlb2_grafic se ataeaz codul: Sub AfterHighlight () Dim persSel as Selection set persSel = Graph3.GetSelection("INSTITUTII") persSel.StatusScript = "Limit INSTITUTII to '" & DimLB2_grafic.FocusValueText persSel.AutoSort = TRUE End Sub

311

Iniiere n tehnologia OLAP-teorie i practic La evenimentul AfterSelect al graficului graph3 se ataeaz codul: Sub AfterSelect (SelectType As Integer, Component As Object, ObjectClass As Integer, Row As Long, Column As Long) on error goto ErrorLoc If ObjectClass <> vwOCDataBody or Row < 1 or Column < 1 then exit sub end if if GraphType >= grGTBarClust then dim datavalue as long dim result as integer datavalue = GetDataValue(Row, Column) valoare_curenta_pers_grafic!Label3.Text = str$(datavalue) result = valoare_curenta_pers_grafic.ShowModal() end if ErrorLoc: Visible = Yes End Sub

Figura A2.15 Pagina Evoluie_personal La evenimentul AfterClick al butonului optbar se ataeaz codul: Sub AfterClick () graph3.graphtype=grgtbarclust

312

Anexa 2 End Sub La evenimentul AfterClick al butonului optline se ataeaz codul: Sub AfterClick () graph3.graphtype=grgtlineabs End Sub La evenimentul AfterClick al butonului optpie se ataeaz codul: Sub AfterClick () graph3.graphtype=grgtmultipie End Sub

Figura A2.16 Pagina Evolutie_personal1 Pagina Top (Text: Primele trei faculti) este prezentat n figura A2.17 i are urmtoarele componente: un buton domzoom (Text: Total), un buton tipzoom (Text: Tip_proiect), un buton Top3 (Text: Top3), un buton explicatie (Text: Explicaie), 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: 0unchecked), opt3 (Text: Numr proiecte, Value:0-unchecked), un tabel table1 (se vor afia valorile variabilei selectate). La evenimentul AfterRun al paginii se ataeaz urmtorul cod:

313

Iniiere n tehnologia OLAP-teorie i practic Sub AfterRun (Flags As Integer) table1.GetSelection("INSTITUTII").StatusScript = "LIMIT INSTITUTII TO fac_set" End Sub La evenimentul AfterClick al butonului domzoom se ataeaz urmtorul cod: Sub AfterClick () application.showhourglass = true table1.datacube.autorefreshdata = false call table1.rotate(dcROToPage,"TIP_PROIECT") table1.GetSelection("TIP_PROIECT").StatusScript= "LIMIT TIP_PROIECT TO 'TOTAL'" table1.GetSelection("TIMP").StatusScript = "LIMIT TIMP TO all" table1.GetSelection("INSTITUTII").AutoSort = YES table1.GetSelection("INSTITUTII").StatusScript = "LIMIT INSTITUTII TO fac_set" table1.datacube.autorefreshdata = true End Sub La evenimentul AfterClick al butonului tipzoom se ataeaz urmtorul cod: Sub AfterClick () application.showhourglass = true table1.datacube.autorefreshdata = false if table1.getselection("TIP_PROIECT").container.container is _ table1.datacube.item(2) then call table1.rotate(dcROAfter,"TIP_PROIECT", "INSTITUTII") table1.GetSelection("TIP_PROIECT").StatusScript = "LIMIT TIP_PROIECT TO ALL" table1.GetSelection("INSTITUTII").AutoSort = YES else call table1.rotate(dcROAfter, "TIP_PROIECT", "TIMP") end if table1.datacube.autorefreshdata = true End Sub La evenimentul AfterClick al butonului Top3 se ataeaz urmtorul cod: Sub AfterClick () Dim Comp as Object Dim ObjClass as integer Dim Row as long Dim Column as long dim measval as string dim sel as object DIM TIMPVAL AS STRING

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 La evenimentul AfterClick al grupului de obiecte measgroup se ataeaz urmtorul cod: Sub AfterClick () dim pcxtext as string, meassel as selection pcxtext="limit xp_measuredim to" if opt1.value=0 and opt2.value=0 and opt3.value=0 then opt1.value=1 if opt1.value=1 then pcxtext=pcxtext & " 'VALOARE_LEI'" if opt2.value=1 then pcxtext=pcxtext & " 'VALOARE_DOLARI'" if opt3.value=1 then pcxtext=pcxtext & " 'NRPROIECTE'" set meassel = table1.getselection("XP_MEASUREDIM") meassel.statusscript=pcxtext End Sub La evenimentul AfterClick al butonului explicaie se ataeaz urmtorul cod: Sub AfterClick () dim strmsg as string strmsg= "Se selecteaz indicatorul" & chr$(13) & chr$(13) strmsg=strmsg & "Se apas butonul Total pentru a afia valorile indicatorului selectat pentru fiecare facultate. Se alege anul." & chr$(13) & chr$(13)

315

Iniiere n tehnologia OLAP-teorie i practic strmsg=strmsg & "Se apas apoi butonul Top 3 pentru a afia primele trei faculti n funcie de valorile indicatorului selectat" & chr$(13) & chr$(13) strmsg=strmsg & "Pentru detalii se apas apoi butonul Tip_proiect. Se afieaz n detaliu valorile indicatorului pentru fiecare tip de proiect" msgbox strmsg, 64,"Explicatii", container.[text] End Sub Pagina ratapublicatii (Text: Rata publicaiilor) este prezentat n figura A2.18 i are urmtoarele componente: un buton btnrefresh1 (Text: Refresh), un buton btnlink1 (Text: Link), o list dimlb1 ce afieaz valorile dimensiunii Timp, o list diminstitut1 ce afieaz valorile dimensiunii Instituii, o etichet label1 (Text: Anii), o list dimnivel1ce afieaz valorile dimensiunii Nivel_institut, un buton help (Text: Help), un buton explicatie (Text:Explicatie), un tabel table1, un grafic graph1 (se vor afia valorile variabilei rata), o etichet nivel, o etichet publicaii i o list dimlbpub ce afieaz valorile dimensiunii Publicaii. La evenimentul AfterRun al paginii se ataeaz urmtorul cod: Sub AfterRun (Flags As Integer) call dimnivel1.afterhighlight() End Sub

Figura A2.17 Pagina Top La evenimentul AfterClick al butonului btnrefresh1 se ataeaz urmtorul cod: Sub AfterClick ()

316

Anexa 2 call diminstitut1.refreshselection(dlbselhighlight) call DimLB1.RefreshSelection( dlbSELHighlight ) call DimLBpub.RefreshSelection( dlbSELHighlight ) set graph1.datacube=table1.datacube End Sub La evenimentul AfterClick al butonului btnlink1 se ataeaz urmtorul cod: Sub AfterClick () set Diminstitut1.HighlightSelection = Table1.GetSelection("INSTITUTII") set DimLB1.HighlightSelection = Table1.GetSelection("TIMP") set DimLBpub.HighlightSelection = Table1.GetSelection("publicatii") End Sub La evenimentul AfterHighlight al listei dimnivel1 se ataeaz urmtorul cod: Sub AfterHighlight () call Dimnivel1.SetExpressStatus( dlbSELHighlight ) Diminstitut1.DataSelection.AutoRefreshData = False Diminstitut1.DataSelection.AutoRefreshData = True call Diminstitut1.RefreshListbox(dlbSELData) end sub La evenimentul Afterclick al butonului Help se ataeaz urmtorul cod: Sub AfterClick () msgbox container.ajutor, 64, me.text End Sub La evenimentul Afterclick al butonului explicatie se ataeaz urmtorul cod: Sub AfterClick () Dim strMsg as string strMsg ="Categorii i subcategorii de publicaii:" & Chr$(13) & Chr$(13) strMsg = strMsg & "CARTE" & Chr$(13) strMsg = strMsg & "CCNCSIS=cri publicate n edituri romneti recunoscute de CNCSIS" & Chr$(13) strMsg = strMsg & "CS=cri publicate n edituri romneti recunoscute din strinatate" & Chr$(13) strMsg = strMsg & "CNER=cri publicate n edituri romneti nerecunoscute"& Chr$(13)& Chr$(13) strMsg = strMsg & "ARTICOLE"& Chr$(13) strMsg = strMsg & "ACNCSIS=articole publicate n reviste romneti recunoscute CNCSIS"& Chr$(13) strMsg = strMsg & "AISI=articole publicate n reviste cotate ISI"& Chr$(13) strMsg = strMsg & "AS=articole n reviste din strintate cu recenzori"& Chr$(13) strMsg = strMsg & "ANER=articole publicate n reviste nerecunoscute"& Chr$(13)& Chr$(13)

317

Iniiere n tehnologia OLAP-teorie i practic strMsg = strMsg & "CONFERINE"& Chr$(13) strMsg = strMsg & "CN=comunicri naionale"& Chr$(13) strMsg = strMsg & "CI=lucrri publicate n volumele conferinelor internaionale"& Chr$(13)& Chr$(13) strmsg=strmsg & "Rata publicaiilor reprezint numrul mediu de publicaii pe cadru didactic" & chr$(13) MsgBox strMsg, 64, Container.[Text] End Sub

Figura A2.18 Pagina Ratapublicatii Pagina instituii (Text: Facultile i catedrele din ASE) este prezentat n figura A2.19 i are urmtoarele componente: un arbore treeview1 (TreeLine: 1-Root lines, Tree ViewStyle: 6-Lines...). La evenimentul AfterActivate al paginii se ataeaz urmtorul 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 call TreeView1.AddTreeNode("FACULTATEA COMERT", "COM", "ASE", tvwRSChild) call TreeView1.AddTreeNode("FACULTATEA ECONOMIE GENERALA ", "EG", "ASE", tvwRSChild) call TreeView1.AddTreeNode("FACULTATEA ECONOMIE GENERALA A PRODUCTIEI AGRICOLE SI ALIMENTARE", "EGPAA", "ASE", tvwRSChild) call TreeView1.AddTreeNode("FACULTATEA CONTABILITATE SI INFORMATICA DE GESTIUNE", "CIG", "ASE", tvwRSChild) call TreeView1.AddTreeNode("FACULTATEA FINANTE, ASIGURARI, BANCI, BURSE DE VALORI", "FABBV", "ASE", tvwRSChild) call TreeView1.AddTreeNode("FACULTATEA CIBERNETICA, STATISTICA SI INFORMATICA ECONOMICA", "CSIE", "ASE", tvwRSChild) call TreeView1.AddTreeNode("FACULTATEA RELATII ECONOMICE INTERNATIONALE", "FREI", "ASE", tvwRSChild) call TreeView1.AddTreeNode("DEPARTAMENTUL DE PREGATIRE A PERSONALULUI DIDACTIC", "DPPD", "ASE", tvwRSChild) call TreeView1.AddTreeNode("COLEGIU ECONOMIC BUCURESTI ", "COLB", "ASE", tvwRSChild) call TreeView1.AddTreeNode("FACULTATEA MANAGEMENT", "FMAN", "ASE", tvwRSChild) call TreeView1.AddTreeNode("CIBERNETICA ECONOMICA", "CIB", "CSIE", tvwRSChild) call TreeView1.AddTreeNode("INFORMATICA ECONOMICA", "IE", "CSIE", tvwRSChild) call TreeView1.AddTreeNode("STATISTICA SI PREVIZIUNE ECONOMICA", "STAT", "CSIE", tvwRSChild) call TreeView1.AddTreeNode("ANALIZA STATISTICA SI EVALUARE", "AS", "CSIE", tvwRSChild) call TreeView1.AddTreeNode("ECONOMIE MATEMATICA", "EM", "CSIE", tvwRSChild) call TreeView1.AddTreeNode("COMERT", "CO", "COM", tvwRSChild) call TreeView1.AddTreeNode("TURISM SERVICII", "TS", "COM", tvwRSChild) call TreeView1.AddTreeNode("MERCEOLOGIE SI MANAGEMENTUL CALITATII", "MMC", "COM", tvwRSChild) call TreeView1.AddTreeNode("DREPT", "DR", "FABBV", tvwRSChild) call TreeView1.AddTreeNode("ANALIZA ECONOMICO-FINANCIARA", "AEF", "FABBV", tvwRSChild) call TreeView1.AddTreeNode("MONEDA", "MON", "FABBV", tvwRSChild) call TreeView1.AddTreeNode("FINANTE", "FIN", "FABBV", tvwRSChild) call TreeView1.AddTreeNode("CONTABILITATE INTERNATIONALA SI INFORMARE FINANCIARA", "CIIF", "CIG", tvwRSChild) call TreeView1.AddTreeNode("CONTABILITATE, AUDIT SI CONTROL DE GESTIUNE", "CACG", "CIG", tvwRSChild)

319

Iniiere n tehnologia OLAP-teorie i practic call TreeView1.AddTreeNode("INFORMATICA DE GESTIUNE", "IG", "CIG", tvwRSChild) call TreeView1.AddTreeNode("MANAGEMENT", "MAN", "FMAN", tvwRSChild) call TreeView1.AddTreeNode("EFICIENTA ECONOMICA", "EC", "FMAN", tvwRSChild) call TreeView1.AddTreeNode("TEHNOLOGIE INDUSTRIALA", "TI", "EG", tvwRSChild) call TreeView1.AddTreeNode("COMUNICARE SI DOCTRINE ECONOMICE", "CDE", "EG", tvwRSChild) call TreeView1.AddTreeNode("ECONOMIE SI POLITICI ECONOMICE", "EPE", "EG", tvwRSChild) call TreeView1.AddTreeNode("EDUCATIE FIZICA SI SPORT", "EFS", "EG", tvwRSChild) call TreeView1.AddTreeNode("ISTORIA ECONOMIEI SI GEOGRAFIEI", "IEG", "EG", tvwRSChild) call TreeView1.AddTreeNode("LIMBI ROMANICE SI COMUNICARE IN AFACERI", "LRCA", "FREI", tvwRSChild) call TreeView1.AddTreeNode("LIMBI GERMANICE SI COMUNICARE IN AFACERI", "LGCA", "FREI", tvwRSChild) call TreeView1.AddTreeNode("RELATII ECONOMICEC INTERNATIONALE", "REI", "FREI", tvwRSChild) call TreeView1.AddTreeNode("TEHNOLOGIA PRODUCTIEI AGRICOLE SI ALIMENTARE", "TPAAI", "EGPAA", tvwRSChild) call TreeView1.AddTreeNode("STUDII ECONOMICE IN LIMBI STRAINE", "SELS", "FSELS", tvwRSChild) End Sub La evenimentul DoRun al proiectului evaluarea se ataeaz un cod, care permite afiarea unei ferestre la lansarea n execuie a proiectului (figura A2.20): Function DoRun (Flags As Integer, EnableDefault As Integer) As Integer dim msgtext as string dim thetime as variant thetime=hour(now) if thetime>=18 then msgtext="Buna seara,este ora:"& time & "." elseif thetime>=12 then msgtext="Buna ziua,este ora:"& time & "." else msgtext="Buna dimineata,este ora:" & time & "." end if msgbox msgtext, 64, me.description if (pagmain.showmodal()<>pgprok) then enabledefault=no

320

Anexa 2 end if End Function

Figura A2.19 Pagina Institutii

Figura A2.20 Fereastra iniial ce apare la lansarea n execuie a proiectului

321

Anexa 3
Sistemul informatic tranzacional utilizeaz o baz de date relaional Oracle 8.1.7. Modelul entitate-asociere al sistemului informatic tranzaional, precum i schema conceptual a bazei de date relaional surs sunt prezentate n capitolul 9. Scriptul SQL pentru definirea structurii bazei de date relaionale 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 codcat varchar2(7), foreign key (codcat) references catedre(codcat)); prompt creare tabel Publicaii create table publicatii(codpub number(4) primary key, den_pub varchar2(60), an varchar2(4), editura varchar2(30), nrpag number(4), codsubcat varchar2(2), foreign key(codsubcat) references categ_pub(codsubcat)); prompt creare tabel Pers_Pub create table pers_pub(codp number(3), codpub number(4), nrpagini number(3), foreign key(codp) references persoane(codp), foreign key(codpub) references publicatii(codpub)); prompt creare tabel Stud_fac create table stud_fac(codfac varchar2(5), an varchar2(4), nrstud number(4), primary key(codfac, an)); prompt creare tabel Brevete create table brevete (titlu varchar2(100) primary key, codp number(3), an_brev varchar2(4), constraint BR_fk foreign key (codp) references persoane(codp)); prompt creare tabel Centre create table centre (codc varchar2(10) primary key, denumire varchar2(50), director varchar2(25), domeniu varchar2(30), acreditare varchar2(50), an_cred varchar2(4)); prompt creare tabel Premii create table premii( codpr number primary key, titlu varchar2(70), codp number(3), an_prem varchar2(4), den_org varchar2(80), constraint pe_fk foreign key(codp) references persoane(codp)); prompt creare tabel Reprezentri create table reprezentari( codr number primary key, codp number(3), an_repr varchar2(4), den_acad varchar2(50), constraint per_fk foreign key(codp) references persoane(codp)); prompt creare tabel Teze create table teze (codt number primary key, titlu varchar2(100), nume_doct varchar2(30), codp number(3), an_matr varchar2(4), an_sust varchar2(4), constraint pers_fk foreign key (codp) references persoane(codp)); prompt creare tabela Nrprof_cat create table nrprof_cat(codcat varchar2(5), an varchar2(4), nrprof number(4), primary key(codcat,an)); prompt creare tabel Tipuri_proiect create table tip_proiect(cod_tip varchar2(8) primary key, denumire varchar2(100)); prompt creare tabel Proiecte create table proiecte(cod varchar2(11) primary key, denumire varchar2(150), director varchar2(25), codp number(3), an varchar2(4), cod_tip varchar2(7), codc varchar2(12), val_lei number(20), val_dol number(10), finantator varchar2(30), observatii varchar2(50), den_etapa varchar2(200), foreign key(cod_tip) references tip_proiect(cod_tip),

323

Iniiere n tehnologia OLAP-teorie i practic foreign key (codp) references persoane(codp), foreign key(codc) references centre(codc)); prompt creare tabel Pers_Proi create table pers_proi(codp number(3), cod varchar2(11), nrore number(5), primary key(codp,cod), foreign key(codp) references persoane(codp), foreign key(cod) references proiecte(cod)); prompt creare secvene drop sequence secv_premii; drop sequence secvteze; drop sequence secv_reprez; drop sequence publicatii_cod; create sequence secv_premii start with 1 increment by 1 maxvalue 10000 ; create sequence secvteze start with 1 increment by 1 maxvalue 10000; create sequence secv_reprez start with 1 increment by 1 maxvalue 10000; create sequence publicatii_cod start with 1 increment by 1 maxvalue 10000; prompt creare tabel virtual View_contrint create or replace view view_contrint as select proiecte.an, persoane.codcat, count(distinct denumire) N2 , sum(val_dol) VTCI from proiecte, persoane where persoane.codp=proiecte.codp and (cod_tip in ('PU','PEP','D', 'C', 'T', 'B', 'PI' 'PC')) group by proiecte.an, persoane.codcat order by proiecte.an, persoane.codcat; prompt creare tabel virtual View_grant create or replace view view_grant as select proiecte.an, persoane.codcat, count(distinct denumire) N1 , sum(val_lei) Vtgn from proiecte, persoane where persoane.codp=proiecte.codp and (cod_tip like 'GR%' or cod_tip='ACAD') group by proiecte.an, persoane.codcat order by proiecte.an, persoane.codcat; prompt creare tabela virtual Pub_prof create view pub_prof(codcat, codsubcat , an, nrpub ) as select persoane.codcat, publicatii.codsubcat,an, count(distinct pers_pub.codpub) nrpub from persoane, pers_pub, publicatii where persoane.codp=pers_pub.codp and pers_pub.codpub=publicatii.codpub group by persoane.codcat, publicatii.codsubcat, publicatii.an; prompt creare tabela virtual Proiecte_cat create or replace view proiecte_cat as select proiecte.an, proiecte.cod_tip, persoane.codcat, count(distinct proiecte.denumire) nrpro, sum(nvl(proiecte.val_lei, 0)) total_lei, sum(nvl(proiecte.val_dol, 0)) total_dol from persoane, proiecte where persoane.codp=proiecte.codp

324

Anexa 3 group by proiecte.an, proiecte.cod_tip, persoane.codcat; prompt creare tabela virtual nrcadre_cat_an create or replace view nrcadre_cat_an(an, codcat, nrcadre) as select proiecte.an, persoane.codcat, count(distinct(pers_proi.codp)) nrcadre from proiecte, pers_proi, persoane where proiecte.cod=pers_proi.cod and persoane.codp=pers_proi.codp and persoane.functia<>'T' and persoane.functia<>'S' group by proiecte.an, persoane.codcat; prompt creare tabela virtual nrdoct_cat_an create or replace view nrdoct_cat_an(an, codcat, nrdoct) as select proiecte.an, persoane.codcat, count(distinct(pers_proi.codp)) nrdoct from proiecte, pers_proi, persoane where proiecte.cod=pers_proi.cod and persoane.codp=pers_proi.codp and persoane.doctorat='drd' group by proiecte.an, persoane.codcat; prompt creare tabela virtual nrstud_cat_an create or replace view nrstud_cat_an(an, codcat, nrstud) as select proiecte.an, persoane.codcat, count(distinct(pers_proi.codp)) nrstud from proiecte, pers_proi, persoane where proiecte.cod=pers_proi.cod and persoane.codp=pers_proi.codp and persoane.functia='S' group by proiecte.an, persoane.codcat; prompt creare tabela virtual nrtesa_cat_an create or replace view nrtesa_cat_an(an,codcat, nrtesa) as select proiecte.an, persoane.codcat, count(distinct (pers_proi.codp)) nrtesa from proiecte, pers_proi, persoane where proiecte.cod=pers_proi.cod and persoane.codp=pers_proi.codp and persoane.functia='T' group by proiecte.an, persoane.codcat;

325

Bibliografie
Cri
[BALL98] [BARA00] [BATI92] [BEYO97] [BONC81] [CODD91] [DATE95] [DAOE98] [ELMA94] [GRAY98] [INMO92] [KEND92] [KILA98] [KIMB96] C. Ballard, D. Herreman, D. Schau, Data Modeling Techniques for Data Warehousing, http://www.redbooks/ibm/com, 1998 C. Baragoin, J. Bercianos, G. Robinson DB2 OLAP Server Theory and Practices, International Technical Support Organization, http://www.redbooks/ibm/com, 2000 C. Batini, S. Ceri, S. Navathe, Conceptual database Design - an Entity-Relationship Approach, Benjamin/Cummings, 1992 D. Beyon, Information and Data Modeling, MacGraw Hill Publishing Company, 1997 R. Bonczek, C. Holsapple, A. Whinston, Foundation of Decision Support Systems, Academy Press, New York, 1981 E. Codd, The relational Model for Database Management: version 2, Addison-Wesley Publishing Company, Reading, MA, 1991 Date, Chris J., An Introduction to Database Systems, 6th ed., Addison-Wesley Publishing Company, Reading, MA, 1995 Oracle Corporation, Develop Applications with Oracle Express Objects, Student Guide, vol 1, 2, 1998 R. Elmasri, S. Navathe, Fundamentals of Database Systems, 2nd Benjamin/Cummings, 1994 P. Gray, H. Watson, Decision Support in the Data Warehouse, Prentice Hall, 1998 W H Inmon, Building the Data Warehouse, John Wiley&Sons, New York, 1992 K. E. Kendall, J E. Kendall, Systems Analysis and Design, 2nd ed., Englewood Cliffs, New Jersey, Prentice Hall Inc., 1992 R. Kimball, Laure Reeves, Margy Ross, The Datawarehouse Life Cycle Toolkit. Experts Methods for Designing, Developing and Deploying Data Warehouses, John Willey &Sons, 1998 R. Kimball, The Data Warehouse Toolkit, Practical Techniques for Building Dimensional Data Warehouses, John Wiley&Sons, New York, 1996

326

Bibliografie [KIMB98] [KOTL98] [LUBO95] [MARA99] [OEOG99] [OEAG99] [OEWA99] [OEDA99] [POWE01] [RACI01] [RAMU99] [ROCK98] [SLVM03] [SPRA93] [STON93] [TANS93] [TILL93] [THOM96] [TURB98] [ULLM97] R. Kimball, L. Leeves, M.Ross, W. Thornthwaite, The Data Warehouse Lifecycle Toolkit, John Wiley&Sons, New York, 1998 P. Kotler, Managementul marketingului, editura Teora, Bucureti, 1998 I. Lungu, C. Bodea, G. Bdescu, C. Ioni, Baze de date Organizare, proiectare i implementare, editura ALL, Bucureti, 1995 G. Marakas, Decision Support Systems in the 21st Century, Prentice Hall, 1999 Oracle Corporation, Oracle Express Objects Getting Started, Release 6.3.2, 1999 Oracle Corporation, Oracle Express Analyzer Getting Started, Release 6.3.2, 1999 Oracle Corporation, Oracle Express Web Agent Users Guide, Release 6.3.2, 1999 Oracle Corporation, Oracle Express Database Administrator Guide, Release 6.3.4, 1999 D.J. Power, Decision Support Systems: Concepts and Resources, Cedar Falls, IA: DSSresources.com, http://dssresources.com/ dssbook/, 2001 Gh. Rboac, D. Ciucur, Metodologia cercetrii tiinifice economice, editura Fundaiei Romnia de Mine, Universitatea Spiru Haret, 2001 Oracle Corporation, Relational Access Manager Users Guide, Release 6.3.2, 1999 J. Rockart, D. DeLong, Executive Support Systems, Dow JonesIrwin, 1998 Gh. Sabu, I. Lungu, M. Velicanu, M. Muntean .a., Sisteme informatice. Analiz, proiectare, implementare, editura Economic, Bucureti, 2003 R. Sprague, H. Watson, Decision Support Systems-Putting Theory Into Practice, 3rd. Edition, Englewood Cliffs, Prentice Hall, 1993 M Stonebraker, Reading in Database Systems, Morgan Kaufmann, San Francisco, 1993 A.U.Tansel, J.Clifford, S.Gadia, S.Jajodia, Temporal Databases: Theory, Desig and Implementation, Benjamin/Cummings, 1993 G Tillman, A practical Guide to Logical Data Modeling, McGrawHill, New York, 1993 E. Thomsen, OLAP Solutions: Building Multidimensional Information Systems, John Wiley&Sons, New York, 1996 E. Turban, Decision Support Systems and Intelligent Systems, 5th ed., Englewood Cliffs, New Jersey, Prentice Hall, 1998 J. Ullman, J.Widom, A first Course in Database Systems, Prentice Hall, 1997

327

Iniiere n tehnologia OLAP-teorie i practic. [VMLI03] [WIJE91] M. Velicanu, M. Muntean, I. Lungu, S. Ionescu, Oracle. Platform pentru baze de date, editura Petrion, Bucureti, 2002 G Wijers, Modeling Support in Information System Development, Thesis Publishers Amsterdam, 1991

Articole i comunicri
[ABEL00] [AGRA97] [ARBO97] [ARBO00] [BLAS98] A. Abello, J. Samos, F. Saltor, A data warehouse multidimensional Data Models classification, Proc. Workshop on Design and Management of Data Warehouses, 2000 R. Agrawal, A. Gupta, S. Sarawagi, Modeling multidimensional databases, 13th International Conference on Data Engineering, 1997 Arbor Sofware Corporation, Relational OLAP: Expectiations & Reality, White Paper, 1997 Arbor Software Corporation, Analytical Processing: A comparison of multidimensional and SQL-based approaches, White paper, 2000 M. Blaschka, C. Sapia, G. Hfling, 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 C. Sapia, M. Blaschka, G. Hfling, B. Dinter, Extending the E/R model for the multidimensional paradigm, Proc. International Workshop on Data Warehouse and Data Mining in conjunction with the ER98, nr 1552, in LNCS, Springer, 1999 M. Blaschka, Fiesta: A framework for Schema Evolution in Multidimensional Databases, PhT thesis, Institut fur Informatik der Technischen Universitt Mnchen, 2000 Academia de Studii Economice, Departamentul de Cercetri Economice, Buletin Informativ, 2001, 2002, 2003 Bulos D., A new Dimension, Database Programming& Design, 6/1996 L. Cabbibo, R. Torlone, Querying Multidimensional databases, Proc of 6th Workshop Database Programming Languages, USA, 1997 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 L. Cabbibo, R. Torlone, A logical approach to multidimensional databases, Proc. of EDBT98, Springer, 1998 S. Chaudhuri, U. I. Dayal, An overview of Data Warehousing and OLAP Technology, ACM SIGMOD Record 26, Tucson, 1997

[BLAS99]

[BLAS00] [BULE01] [BULO96] [CABB97] [CABB98a] [CABB98b] [CHAU97]

328

Bibliografie [CNCS01] I. Lungu, M. Velicanu, M. Muntean, S. Ionescu, Studiul i analiza comparativ a metodelor, tehnicilor i instrumentelor utilizate n domeniul Inteligenei afacerilor, Soluii economice i informatice pentru inteligena afacerilor, CNCSIS, 2001 I. Lungu, M. Velicanu, M. Muntean, S. Ionescu, Dezvoltarea sistemelor informatice pentru afaceri inteligente, Soluii economice i informatice pentru inteligena afacerilor, CNCSIS, 2002 E.F. Codd, Providing OLAP (on-line analytical processing) to user-analysts: An IT mandate, Technical report, E.F. Codd and Associates, White paper, Arbor Software Corporation, 1993 G. Colliat, OLAP, relational and multidimensional database systems, SIGMOD Record 25, 3(1996), Technical report, Arbor Software Corporation, Sunnyvale, CA, 1996 A. Datta, H. Thomas, A conceptual Model and a an Algebra for on-line Analytical processing in Data Warehouses, Proc. of Workshop on Information Technologies and Systems, Atlanta, 1997 S. Dekeyser, B. Kuijpers, J. Paredaens, J. Wijsen, The nested datacube model for OLAP, Proc International Workshop on Data Warehousing and Data Mining Springer, Verlag, 1998 J.Gray, A.Bosworth, A.Layan, H.Pirahesh, Data Cube: A relational aggregation operator generalizing group by, cross-tabs and sub-totals, Proc. of the 12th International Conference of Data Engineering, 1996 M. Golfarelli, S. Rizzi, Conceptual design of data warehouses from E/R schemes, Proc. HICSS-31, VII, Hawaii, 1998 M. Golfarelli, S. Rizzi, A Methodological Approach for Data Warehouse Design, Proceedings of the 1st International Workshop on Data Warehouse and OLAP (DOLAP98), Washington, 1998 M. Golfarelli, S. Rizzi, The Dimensional Fact Model: A conceptual Model for data Warehouses, Journal of Computer Science and Information Systems, 1998 M. Golfarelli, S. Rizzi, Designing the Data Warehouse: Key Steps and crucial issues, Journal of Computer Science and Information management, vol2, nr.3, 1999 M. Guazzo, A cartesian Data Model for Decision Support Systems, Proc of 2nd International Workshop on Design and Management of Data Warehouses, Stockholm, 2000 M. Gyssen, L. Lakshmanan, A foundation for multi-dimensional Databases, Proc 23th VLDB, Greece, 1997 H. Hassan, Effective Information for managers, Proc. 10th Australian Conference on Information Systems, 1999

[CNCS02]

[CODD93] [COLL96] [DATT97]

[DEKE99] [GRAY96]

[GOLF98a] [GOLF98] [GOLF98b] [GOLF99] [GUAZ00] [GYSS97] [HASS99]

329

Iniiere n tehnologia OLAP-teorie i practic. [HATT99] [INFO96] [KENA95] [KIMB97] [LEHN98] P.Hattenschwiler, Neue Konzepte der Entscheidungsunterstutzung, Working Paper 99-4, Institute of Informatics, University of Fribourg, 1999 Informix Software Inc., The Informix-MetaCube Approach, Product Information, 1996 Kenan Technologies, An Introduction to Multidimensional Database Technology, White paper, 1995 R. Kimball, A dimensional Modeling Manifesto, DBMS Online, http://www.dbmsmag.com/9708d15.html, 1997 W. Lehner, Modeling Large Scale OLAP Scenarios, Lecture Notes in Computer Science, nr. 1377, Proceedings. Of the 6th International Conference on Extending Database Technology, EDBT 98, Spania, 1998 C. Li, X. S. Wang, A data model for supporting on-line analytical processing, Proc. Conf on Information and Knowledge Management, SUA, 1996 O. Mangisengi, A. Tjoa, R. Wagner, Multidimensional Modeling Approaches for OLAP based on Extended Relational Concepts, Proc of the 9th International Database Conference on Heterogeneous and Internet Databases, Hong Kong, 1999 Metadata Coalition, Meta Data Interchange Specification (MDIS version 1.1), http://www.he.net/~metadata/standards/, 1997 Microstrategy Inc, The Case for Relational OLAP, White Paper, 1998 Microsoft Corporation, OLEDB for OLAP, http://www.microsoft.com/data/oledb/olap/, 1998 Microstrategy Inc, True Relational OLAP, White Paper, 1999 D. Moody, M. Kortink, From enterprise models to dimensional models: A Methodology for Data Warehouse and Data Mart Design, Proc of 2nd International Workshop on Design and Management of Data Warehouses, Stockholm, 2000 The OLAP Council, MD-API the OLAP Application Program Interface, version 0.5 Specification, 1996 Olap Council, The OLAP glossary, OLAP and OLAP Server Definitions, http://www.olapcouncil.org/research/glossary.htm, 1997 OLAP Council, The APB-1 Benchmark, http://www.olapcouncil.org/research/bmarkly.htm, 1997 T. Pendersen, C. Jensen, Multidimensional Data Modeling of Complex Data, Proceedings of the 15th IEEE International Conference on Data Engineering, Sydney, 1999 T. Pedersen, Aspectes of Data Modeling and Query Processing for complex multidimensional data, PhD thesis, faculty of Engineering and Science, Denmark, 2000

[LIWA96] [MANG99]

[META97] [MICR98] [MICR98] [MICR99] [MOOD00]

[OLAP96] [OLAP97] [OLAP97b] [PEDE99] [PEDE00]

330

Bibliografie [PEND99a] [PEND99b] [PEND99c] [PEND99d] [PEND97] [POKO98] [POWE99] [RAFA93] [SCHR98] [SHOS97] [TEST00] [TPCB98] [TRYF99] [TSOI01] [VASS00] [VASS98] [VASS99] [VLMI02] N. Pendse, OLAP Applications, http://www.olapreport.com/, 1999 N. Pendse, Multidimensional data structures, http://www.olapreport.com/, 1999 N. Pendse, Database explosion, http://www.olapreport.com/, 1999 N. Pendse, The origins of todays OLAP products, http://www.olapreport.com/, 1999 N.Pendse, R.Creeth, The OLAP Report, http://www.olapreport.com, 1997 J. Pokorny, Conceptual Modeling in OLAP, Proceeding of EIS, Aix-en-Provence, 1998 D. J. Power, A brief History of Decision Support Systems, DSS Resources, http://dss.cba.uni.edu/dss/dsshistory.html, 1999 M.Rafanelli, F. Ricci, Mefisto: A functional model for statistical entities, IEEE Transactions on Knowledge and Data Engineering, 1993 A. Schroff, An Approach to User Oriented Decision Support Systems, Inaugural Dissertation nr.1208, Druckerei Horn, Bruchsal, 1998 A. Shoshani, OLAP and Statistical Databases: Similarities and Differences, Proc. ACM PODS, 1997 O. Teste, Towards Conceptual Multidimensional Design in Decision Support Systems, Dexa 2000, LNCS 1873, Londra, 2000 Transaction Processing Council, TPC: TPC Benchmark, http://www.tpc.org/dspec.html, 1998 N. Tryfona, F. Busborg, J. G. Christiansen, StarER: A conceptual model for Data Warehouse Design, DOLAP, Kansas City, 1999 A. Tsois, N. Karayannidis, T. Sellis, MAC: Conceptual Data Modeling for OLAP, Proceedings of the International Workshop on Design and Management of Data Warehouses, 2001 P. Vassiliadis, Data Warehouse Modeling and Quality Issues, PhD thesis, Department of Electrical and Computer Engineering National Technical University of Athens, 2000 P. Vassiliadis, Modeling multidimensional databases, cubes, and cube operations, Proc. of the 10th SSDBM Conference, Italy, 1998 P. Vassiliadis, T. Sellis, A survey of logical models for OLAP databases, SIGMOD Record (28) 4, 1999 M. Velicanu, M. Muntean, I. Lungu, S. Ionescu, Spre noua economie digital prin inteligena afacerii, Revista Informatic Economic, vol. V, nr. 4, Bucureti, 2002

331

Iniiere 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

You might also like