Professional Documents
Culture Documents
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.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
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
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
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
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).
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.
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
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
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
Scopul: general/ specific Specializate pe anumite domenii de activitate sau cu un scop mai general (generator SSD)
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.
13
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.
14
15
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
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).
17
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
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
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
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
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
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
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
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
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
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
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
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
30
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
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
Cerere
BDMD
OLAP
Web, Internet/Intranet
Figura 1.2 Influena noilor tehnologii informatice n evoluia sistemelor suport de decizie moderne
32
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
data mining
Gestiunea metadatelor
administrare
33
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
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
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.
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
10 22 10 29 21 9 2 21 12 34 22 8
3310
6100
8100
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
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.
41
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.
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.
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).
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
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
49
Modelul Cabbibo
Modelul Vassiliadis
Modelul Teste
Modelul Blanschka
Modelul MAC
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.
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} .
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
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).
58
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>
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
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.
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.
numeric
ziua
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
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).
64
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).
an
garaj
regiune
tara
vrsta venit
68
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
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
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
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.
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
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.
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
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
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
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).
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
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.
Interfaa
5
Se mpart ntre client i server depinde de locaia datelor
4
Calcule fcute n avans pe server
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
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
client OLAP
Fiiere de date
Interfaa
Server de aplicaii
Calcule multi dimensionale n lot
client OLAP
Fiiere de date
Interfaa
client OLAP
Fiiere de date
Interfaa
88
Server de aplicaii
Calcule multi dimensionale ad-hoc
client WEB
Interfaa
Fiiere de date
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.
89
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
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.
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
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).
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.
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.
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
Essbase API
Essbase API
Motorul OLAP
SQL
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
Nu
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
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
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
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
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
107
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
Rapoarte, grafice
BDR
Rapoarte
Rapoarte, grafice
Telecomunicaii, Servicii financiare, marketing, Analiza vnzrilor, previziuni, Segmentarea pieei, Analiza clienilor Analiza vnzrilor Analiz financiar
BDM
BDR
108
Grafice, rapoarte
BDR BDM
Client/ server
Rapoarte, grafice
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
Rezumat
Caracteristicile unui instrument OLAP sunt clasificate n dou categorii: caracteristici logice i caracteristici fizice. Cuvinte cheie Caracteristici logice, caracteristici fizice, standarde OLAP.
109
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
Identificarea msurilor (variabilelor) Identificarea dimensiunilor i a ierarhiilor Identificarea hypercubului sau a structurii multicub
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.
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.
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.
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
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.
116
Proiectarea sistemelor OLAP Costul produsului [timp: luna, produs: produs]: numeric (obinut din faptul Cost prin valoare(cost))
Produs nume marca cost valoare
produs
venit
vnzare
zi Timp
luna
ora
Locatie magazin
Perioada special
trimestru
vrsta Client
zona adresa
an
Vnzare
Cost
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.
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)
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.
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.
marca dieta
cant dimen
data
greutate codprodus
manager grup
pret unitar
nrdistrict
121
cant dimen
data
vnzare
magazin
oras
judet
stat
nrdistrict
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.
123
124
125
126
Proiectarea sistemelor OLAP destul atenie fenomenului de mprtiere, deoarece tipul de mprtiere va afecta analizele executate.
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
Orientat pe cereri
Proiectarea fizic
130
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
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
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).
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).
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.
138
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
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).
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).
142
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
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
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
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
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
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
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.
153
Iniiere n tehnologia OLAP-teorie i practic De exemplu: Dim messagetext as string Messagetext=Selectai butonul OK
154
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)
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
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]
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
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
164
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()
165
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
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
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
169
170
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.
174
175
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
Figura 6.49 Codul pentru deplasarea de la o pagin logic la alta pagin logic
178
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
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.
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.
183
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.
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).
187
188
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
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.
191
Figura 6.68 Includerea unui obiect definit de utilizator (pagina_template) n caseta de instrumente
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.
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).
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).
196
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
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).
201
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.
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.
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.
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.
207
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).
209
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.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
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
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.
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
217
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.
219
220
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
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.
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
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
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).
230
231
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).
233
234
235
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.
238
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
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
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
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
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'
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.
245
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
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.
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 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
Locaie geografic Cod magazin Denumire Adresa, Ora Jude, Regiune ara, Manager magazin, Telefon, fax, Suprafa
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
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.
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
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
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.
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
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)
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
catedra
facultate
universitate
an nrpub
categorie
subcat
FP_1
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
268
269
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.
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
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
282
283
284
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.
289
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
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
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
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
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]
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]
[DEKE99] [GRAY96]
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]
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
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