nc de la nceputurile erei informatice, managerii au neles c datele stocate de sistemele informatice operaionale reprezint o min de aur informaional care se cere exploatat. Eforturile n aceast direcie au nscut generaii de acronime: MIS (Management Information Systems - sisteme de management al informaiei), DSS (Decision Support Systems - sisteme suport de decizie), EIS (Executive Information Systems - sisteme informatice executive), MSS (Management Support Systems - sisteme suport pentru management). Depozitele de date, sub un nume sau altul, au aprut n gndirea comunitaii informatice la sfritul deceniului trecut. Acestea reprezint o cerin acut a organizaiilor moderne (fie ele ntreprinderi, bnci, administraie etc.) i, totodat, o realitate tehnologic pus n practic din ce n ce mai frecvent. Ultimele cifre estimate de IDC referitoare la piaa depozitelor de date indic faptul c aceasta va nregistra o cretere de 9% pna n 2009, atingnd o valoare de 14.5 miliarde de dolari, unde momentan volumul su este de aproximativ 10 miliarde de dolari. De asemenea, Gartner Group estimeaz o cretere dubl pe piaa depozitelor de date n raport cu creterea global a pieei de IT. Depozitele de date sunt produsul mediului economic i al tehnologiilor avansate. Din perspectiv economic, globalizarea comerului, acutizarea dramatic a concurenei, reducerea spectaculoas a ciclurilor de via al produselor datorit dinamicii tehnologiei i impunerea unor cerine calitative extrem de ridicate au evideniat i mai mult valoarea strategic a informaiei. Manipularea operativ a informaiei a impus la rndul ei dou modele manageriale, mai suple i mai adecvate din punct de vedere funcional. Nevoia de a rspunde n timp optim cerinelor pieei a condus la descentralizare i la reducerea numrului nivelelor decizionale, consacrnd aa-numitele "ierarhii plate", care se bazeaz pe delegarea puterii decizionale operative ctre ealonul managerial secund. Practic, clasicul funcionar este pe cale de a fi nlocuit de "lucrtorul cu informaii". Att la nivelul conducerii strategice, ct i la nivelul managementului operativ, nevoia de informaie pur, corect i semnificativ a devenit vital. Din perspectiv tehnologic, ultimii ani au adus puterea de calcul la preuri accesibile. Servere paralele bazate pe microprocesoare ieftine rivalizeaz ca putere cu supercalculatoarele, la o fraciune din preul acestora. Sistemele de baze de date pot exploata la maximum arhitecturile hardware paralele, iar evoluiile spre sisteme deschise permit o conectivitate aproape total la orice fel de surse de date i interoperabilitate ntre diverse Depozite de date
platforme software/hardware. Mediile de stocare magnetice i optice admit volume de ordinul giga i chiar terrabytes. Microcalculatoarele au ajuns i ele la maturitate. Puterea lor este acum suficient pentru funciile de analiz i prezentare care le sunt rezervate, iar interfeele grafice intuitive le fac accesibile utilizatorilor neprofesioniti, n spea managerilor. Sistemele informatice operaionale exist, datele pot fi accesate oriunde, nevoia de informaie este acut, puterea de calcul i de stocare este ieftin, instrumentele software sunt accesibile, toate acestea crend un cadru favorabil implementrii depozitelor de date. Rolul unui depozit de date este de a oferi o imagine coerent asupra datelor referitoare la activitatea unei organizaii i a contextului n care aceasta acioneaz. Spre deosebire de coleciile de date utilizate de sistemul operational - orientate spre optimizarea i sigurana procesrii datelor - datele dintr-un depozit de date sunt organizate ntr-o manier care s permit analizarea lor, deci extragerea semnificaiei economice pe care o poart. Depozitul de date separ spaiul de lucru al analizei de spaiul de lucru al tranzaciilor i ofer posibilitatea organizaiilor s consolideze datele din mai multe surse. Sursa principal sunt sistemele operaionale, iar ca surse secundare pot fi att surse interne, ct i surse externe cum ar fi bazele de date publice: date statistice furnizate de instituii specializate, date de prognoz economic furnizate de instituii orientate pe studiul pietei, date obinute n urma unor sondaje de opinie etc. William Inmon, vicepreedintele firmei Prism Solutions, este considerat printele necontestat al noiunii depozit de date" n nelesul ei curent, deinnd de altfel trademark-ul termenului data warehouse. Viziunea sa despre depozitele de date se concentreaz asupra rolului acestora de baz informaional a deciziei manageriale, pstrnd astfel un nivel nalt de generalitate i permind unor multiple implementri s intre n sfera acestei noiuni.
Definiia lui Inmon este extrem de concis: Un depozit de date este o colecie de date orientate pe subiecte, integrate, istorice i nevolatile, fiind destinat fundamentrii deciziei manageriale.
n continuare vor fi prezentate caracteristicile evideniate de aceast definiie.
- Orientare pe subiecte Datele operaionale sunt orientate pe aplicaii, n sensul c organizarea lor este optimizat pentru a servi procesului tranzacional, dinamicii sistemului. n contrast, depozitul de date este orientat pe subiectele importante ale procesului economic, cum ar fi: clieni, furnizori, produse, activiti. Aceste subiecte necesit informaii din diferite surse pentru a furniza o imagine complet a domeniului. n loc de a se concentra pe procesarea operaiilor i tranzaciilor zilnice dintr-o organizaie, un depozit de date se focalizeaz pe modelarea i analiza datelor pentru luarea deciziilor. Din acest motiv, depozitele de date ofer, n mod tipic, o viziune simpl i concis, relativ la un subiect specific, excluznd datele care nu sunt utile n procesul de sprijinire a deciziei. Un exemplu simplu poate fi edificator: o comand lansat de un client va fi consemnat de sistemul operaional printr-un set de nregistrri care vor conine informaii despre client, informaii despre produsele sau serviciile comandate, informaii despre modul de transport i modul de plat etc. Atenia sistemului tranzacional este orientat ctre consistena cheilor, astfel nct operaia s pstreze consisten. Multe dintre datele eseniale din perspectiv operaional (numrul comenzii, poziiile liniilor n cadrul comenzii etc.) sunt complet lipsite de relevan din perspectiv informaional. O consecin important a acestei orientri este redundana datelor. Dac n sistemul operaional redundana este controlat (prin procesul de normalizare) pentru a evita anomaliile 296 Capitol 11 de actualizare, n depozitul de date redundana este creat n mod intenionat (prin denormalizare i sumarizare) pentru a permite un acces tematic mai facil. - Integrare Este cel mai important aspect al depozitului de date i, n cele din urm, raiunea pentru care acesta este creat. Datele sunt adunate aici pentru a rspunde nevoilor informaionale ale ntregii organizaii, asigurnd faptul c rapoartele generate pentru diverse compartimente vor conine aceleai rezultate. Sistemul operaional este de cele mai multe ori format din subsisteme semi-independente, create la momente diferite, de echipe diferite, n maniere diferite, iar rezultatul, dei funcional, este imposibil de folosit pentru analiz. Integrarea unor multiple surse heterogene: baze de date relaionale, fiiere, nregistrri privind tranzaciile on-line, impune implementarea unor tehnici de curire a datelor (data cleaning) i de integrare, pentru a se asigura consistenta datelor din depozit.
- Caracterul istoric Sistemul operaional al unei organizaii tinde mereu s reflecte realitatea curent. Astfel, el se afl ntr-o continu evoluie, iar datele pe care le conine sunt relevante doar pentru momentul n care sunt accesate. Orizontul de timp pe care l acoper este de regul de 60 pn la 90 de zile, deoarece dup acest interval tranzaciile efectuate sunt arhivate, fiind considerate deja de domeniul istoriei, deci neinteresante din perspectiv operativ. Pentru nevoile analizei economice, dimpotriv, informaiile cu caracter istoric sunt eseniale, deoarece ele pun n eviden tendine care reprezint fundamentul unei prognoze corecte. Depozitul de date se constituie ntr-un istoric al sistemului operational, constituit dintr-o serie de "instantanee", imagini la diverse momente n timp. Orizontul de timp pe care l acoper depozitul de date este de cel puin cinci ani, ajungnd uneori la zece ani, n functie de dinamica evoluiei pieei i, deci, de relevana datelor cu caracter istoric pentru nevoile analizei. Din punct de vedere tehnic, acesta implic faptul c orice nregistrare din depozitul de date poate fi plasat n timp. Orice cheie de acces cuprinde i o variabil temporal.
- Persistena datelor Esena aplicaiilor operaionale este actualizarea continu a coleciilor de date, actualizare realizat n general pe baza tranzactional. Orice tranzactie procesat implica adugarea unor noi nregistrri, modificarea sau eventual tergerea altora etc. Cu totul altfel stau lucrurile n cazul depozitului de date, unde o astfel de dinamic lipsete. n mod uzual sunt solicitate doar dou operaiuni n accesarea datelor: ncrcarea iniial a datelor i accesul la date pentru citire. Practic singura actualizare care se realizeaz este adugarea periodic a unor date extrase din sistemele operative. Din punctul de vedere al proiectrii, aceast diferen este extrem de important. n sistemul operaional, o tranzacie trebuie s duc colecia de date dintr-o stare consistent ntr- o alt stare consistent, iar aceasta implic mecanisme extrem de complexe de meninere a integritii datelor, mai ales n situaia sistemelor intens concureniale: mecanisme de jurnalizare, mecanisme de salvare/restaurare/refacere, mecanisme de detectare a blocrilor circulare (dead lock) etc. n cazul depozitelor de date, aceste mecanisme sunt inutile, astfel c gradul de libertate ctigat poate fi utilizat pentru optimizarea accesului la date prin denormalizare, sumarizare, statistici ale accesrii datelor i reorgarnizare dinamic a indexrii etc.
11.1.2. Obiectivele unui depozit de date
297 Depozite de date
Primele domenii care au adoptat tehnologia depozitelor de date au fost telecomunicaiile i comerul cu amnuntul. Ulterior, depozitele de date au ptruns i n alte domenii cum ar fi industria farmaceutic, sistemul sanitar, asigurri, transporturi. Studiile statistice arat c telecomunicaiile i sistemul bancar se menin n top, ntruct aloc cel puin 15% din bugetul IT pentru proiecte referitoare la depozite de date.
Cteva dintre obiectivele urmrite n construirea unui depozit de date sunt: - Rularea unor activiti de server/disc asociate cu interogarea i raportarea pe servere/discuri care nu sunt utilizate de sistemele de procesare a tranzaciilor. Firmele vor ca sistemele s proceseze o tranzacie ntr-un timp rezonabil. Rapoartele i interogrile, utiliznd n mod variabil resursele fizice (server/disc), ncetinesc procesarea tranzaciilor, i fac ca serverele/discurile s fie dificil de organizat. De aceea, firmele pot considera c implementarea unei arhitecturi data warehouse care utilizeaz servere/discuri separate este un mod mai ieftin sau/i mai organizat de a obine un timp de procesare a tranzaciilor acceptabil. Procesele decizionale i procesele operaionale sunt total divergente arhitectural. - Utilizarea unor modele de date i/sau tehnologii server care accelereaz interogarea i raportarea i care nu sunt adecvate pentru procesarea tranzaciilor. Exist modele de date care accelereaz interogarea i raportarea (de exemplu, schema stea) i care nu sunt adecvate pentru procesarea tranzaciilor, pentru c tehnica de modelare o va ncetini i complica. De asemenea, exist i tehnologii server care pot mbuntii viteza pentru interogare i raportare, dar ncetinesc procesarea tranzactional (indexarea de tip bitmap) i anumite tehnologii care acioneaz n sens invers (tehnologii pentru restaurarea datelor). - Furnizarea unui acces sporit la date pentru utilizatori. Depozitul de date furnizeaz accesul la datele integrate ale ntreprinderii, anterior blocat prin ci neprietenoase. Utilizatorii pot acum s stabileasca, cu un minim de efort, o conexiune garantat la depozitul de date prin intermediul unui calculator. - Oferirea unui depozit de date "curat", furniznd o singur versiune a realitii. Depozitul de date ofer posibilitatea de a curaa datele fr modificarea sistemului de procesare a tranzaciilor. Datele din depozitele de date sunt consistente i au calitatea asigurat nainte de a fi puse la dispoziia utilizatorilor. n msura n care se utilizeaz o surs comun de date, depozitele de date pun capt dezbaterilor privind veridicitatea datelor utilizate pentru realizarea rapoartelor. - Facilitarea interogrii i raportrii pe date provenite din mai multe sisteme tranzacionale i/sau din surse externe de date. Mult vreme firmele care aveau nevoie de rapoarte bazate pe date provenite din mai multe sisteme rezolvau aceast problem prin extragerea, sortarea i combinarea datelor, n final lansnd n execuie rapoarte asupra lor. n multe cazuri aceast soluie este una adecvat. Dar, dac o companie are multe date care trebuiesc sortate/combinate frecvent, dac datele din sistemele tranzacionale trebuie "curate" atunci soluia adecvat este depozitul de date. - Acces combinat sintez/detaliu la date. Rapoartele dinamice i instrumentele de integrare OLAP permit utilizatorilor s vizualizeze informaiile din depozitul de date sub diferite unghiuri i la diferite niveluri de detaliere. Aceste disponibiliti oferite de depozitele de date reduc timpul i efortul necesar pentru colectarea, formatarea i filtrarea informaiilor plecnd de la date. - nregistrarea cu acuratee a trecutului. Datele istorice sunt deseori eliminate din sistemul de procesare a tranzaciilor pentru a optimiza i controla timpul de rspuns al sistemului. Pentru interogare i raportare, aceste date i datele curente pot fi stocate n 298 Capitol 11 depozitul de date n cadrul cruia timpul de rspuns ateptat se afl la un nivel mai ridicat. - mpiedicarea persoanelor care au nevoie de acces doar pentru raportare i interogare s aib acces la bazele de date ale sistemului de procesare a tranzaciilor. Acest punct privete securitatea. De exemplu depozitul de date poate fi un punct de interes pentru firmele care doresc s permit raportarea i interogarea prin intermediul Internetulul.
Un proiect data warehouse reprezint ns o investiie riscant i scump. Costurile tipice pentru dezvoltarea unui depozit de date ntr-un interval de 3-6 luni se situeaz ntre 0,8 i 2 milioane USD. Ponderea echipamentelor se situeaz ntre 1/2 i 2/3 din costul total al proiectului. O soluie pentru firmele mici i mijlocii este recurgerea la data marts pentru care costurile se situeaz sub 100.000 USD ntr-un interval adesea sub 90 de zile. Uneori investiiile n depozitele de date nu se finalizeaz cu succes. Motivaiile cele mai des ntlnite pentru eecul unor depozite de date includ: susinerea insuficient din partea conducerii organizaiei, insuficiena fondurilor i politicile organizaionale defectuoase.
11.2. Arhitectura depozitelor de date
Depozitul de date conine date care sunt extrase dintr-unul sau mai multe sisteme, numite surse de date. Aceasta include o gam larg de sisteme incluznd baze de date relaionale i baze de date orientate obiect, dar i baze de date prerelaionale i sisteme motenite (figura 11.1). Arhitectura unui depozit de date conine urmtoarele componente care nu sunt toate obligatorii. Primele dou componente opereaz pe sursa de date. - Componenta Filtru verific acurateea datelor naintea inserrii lor n depozit. Filtrele pot elimina datele care sunt clar incorecte bazndu-se pe restriciile de integritate i regulile privitoare la o singur surs de date. Ele pot, de asemenea, scoate la iveal i inconsistena datelor extrase din surse multiple. n acest fel, filtrul realizeaz tergerea datelor, lucru esenial pentru a asigura un nivel satisfctor al calitii. Este important s parcurgem atent construcia depozitului, verificnd calitatea datelor pe pri mici nainte de a realiza ntreaga ncrcare. - Componenta Export este folosit pentru extragerea datelor din sursele de date. Procesul de extragere este incrementat normal, componenta export construiete colecia tuturor modificrilor pe sursa de date, care sunt apoi importate de depozitul de date. - ncrctorul este responsabil pentru ncrcarea iniial a datelor n depozitul de date. Aceast component pregatete datele pentru utilizarea operaional, ocupndu-se att de ordonarea i agregarea operaiilor ct i de construirea structurilor de date n depozitul de date. n mod standardizat, operaiile de ncrcare sunt realizate pe grupe, caz n care depozitele de date utilizeaz paralelismul. Acest modul se ocup i cu fragmentarea iniial a datelor. n unele aplicaii, caracterizate de o cantitate limitat de date, acest model este invocat pentru ncrcarea ntregului coninut al depozitului de date dup fiecare schimbare a surselor de date. Cel mai adesea, datele din depozitul de date sunt rennoite automat de componenta Refresh care va fi discutat n continuare. - Componenta Refresh nnoiete coninutul depozitului de date, propagnd automat noutile aprute n sursele de date. Modificrile din sursele de date sunt realizate cu ajutorul a dou tehnici: transportarea datelor i transportarea tranzaciilor. 299 Depozite de date
Prima tehnic utilizeaz triggeri pe sursa de date, care, invizibili de ctre aplicaii, nregistreaz tergerile, inserrile i modificrile n fiiere. Modificrile sunt adesea tratate ca perechi de inserri i tergeri. A doua tehnic folosete consemnarea tranzaciilor pentru a construi fiierele de modificri. n ambele cazuri, fiierele de modificri sunt transmise depozitului de date i apoi folosite pentru a nnoi depozitele de date; vechile valori sunt marcate de obicei ca date istorice, dar nu sunt terse. - Componenta Acces la date este responsabil pentru ndeplinirea operaiilor de analiza a datelor. n depozitele de date acest modul compune n mod eficient ntrebri relaionale complexe, cu compuneri, ordonri i agregri complexe. Compune de asemenea i operaii noi specifice dicionarelor de date, cum ar fi mpachetri, despachetri i agregarea total a datelor. Acest modul este n strns legtur cu sistemele client care ofer interfee prietenoase utilizatorilor, compatibile pentru analize complexe ale datelor.
Export Data mining Accesul la date Refresh Incrctor
Fig. 11.1 Arhitectura depozitului de date
- Componenta Data mining permite executarea de explorri complexe ale informaiilor ascunse n date, utiliznd tehnici i algoritmi specifici de data mining. - Componenta de Export al datelor e folosit pentru exportarea datelor prezente ntr-un depozit spre alte depozite, crendu-se astfel o arhitectur ierarhic. n plus, dicionarele de date sunt adesea dotate cu module care suport formatul i organizarea lor: Un instrument CASE care poate suporta formatul depozitelor de date. Un dicionar de date descrie coninutul depozitelor de date este utilizat pentru a nelege ce fel de analiz a datelor trebuie realizat. Elementele prezentate legate de arhitectura depozitelor de date trebuie completate de cteva consideraii privind calitatea datelor. Export n Filtru n Export 2 Filtru 2 Export 1 Filtru 1 Sursa de date 1
Sursa de date 2 Sursa de date n 300 Capitol 11
Calitatea datelor este un element esenial pentru succesul depozitelor de date. Dac datele stocate conin erori, rezultatul analizei va produce rezultate eronate, i utilizarea depozitelor de date ar putea fi la un moment dat contraproductiv. Din pcate, exist muli factori care distrug calitatea datelor. Cnd sursa de date nu are restricii de integritate, de exemplu pentru c este condus de tehnologii pre-relaionale, cantitatea datelor murdare este foarte mare. Estimrile tipice indic faptul c datele eronate din aplicaiile comerciale fluctueaz ntre 5 i 50% din totalul datelor. Pentru a obine niveluri nalte de calitate trebuie utilizate filtre reprezentate printr-un numr mare de restricii de integritate, care corecteaz sau terg datele care sunt necorespunztoare restriciilor. Mai general, calitatea datelor este mbuntit prin observarea cu grij a procesului de producie al datelor i asigurarea c verificarea i corectarea datelor este realizat chiar n timpul producerii datelor .
11.3. Obiectele depozitului de date
ntr-un depozit de date se ntlnesc mai multe tipuri obiecte care prezint o importan deosebit n analiz: - Tabelele de fapte sunt tabelele centrale. Acestea conin faptele i cheile externe ctre tabelele de dimensiuni. Faptele sunt de obicei date numerice care pot fi totalizate i analizate pe diferite nivele. - Dimensiunile sunt nite nite structuri compuse din una sau mai multe ierarhii care structureaz datele. Tabelele secundare se numesc tabele dimensiuni, i sunt mult mai mici dect tabelele de fapte. Fiecare tabel dimensiune are cte o cheie. Cmpurile dintr-o tabel dimensiune sunt de obicei textuale i sunt folosite ca surs pentru restricii i pentru rndurile din rapoarte. Datele sunt de obicei colectate la nivelul cel mai de jos i mai detaliat i sunt agregate pe nivelele superioare pentru analiz. - Ierarhiile sunt structuri logice utilizate pentru ordonarea nivelelor de reprezentare a datelor. Sunt utilizate i pentru definirea cailor de navigare n interiorul datelor. Nivelele ierarhice sunt utilizate de instrumentele de analiz OLAP permind detalierea gradual a datelor. 301 Depozite de date
Fig. 11.2. Ierarhii i nivele
- Nivelele reprezint poziii n cadrul ierarhiilor. De exemplu, dimensiunea Timp poate avea trei nivele de ierarhizare: an, trimestru i luna. Nivelele se structureaz n funcie de ierarhie de la general la specific, rdcina fiind reprezentat de nivelul superior, cel mai general al ierarhiei. Relaiile ntre diferite nivele sunt relaii de tipul printe-copil. Se pot defini ierarhii n care datele fiecrui nivel sunt agregate la un nivel superior sau se pot sri anumite nivele care sunt independente (figura 11.2). - Atribute dimensiunile sunt concretizate prin intermediul atributelor care reprezint calificative specifice. Orice atribut se asociaz unei singure dimensiuni, iar o dimensiune se poate exprima prin mai multe atribute. Cu ct aceste atribute sunt mai descriptive, cu att depozitele de date vor fi mai performante. - Metrici (msuri) n analiza depozitelor de date se utilizeaz anumite variabile sau metrici. Aceste corespund faptelor din tabelele de fapte i sunt de regul de natur numeric. Exemple tipice: vnzri, costuri, stocuri. Aceste variabile au sens numai n contextul unor anumite dimensiuni.
11.4. Scheme pentru depozitele de date
Construcia unui dicionar de date, care descrie toate datele prezente n companie, este un scop ambiios adesea greu de obinut. Din acest motiv, construirea unui depozit de date trebuie s se concentreze n mod separat pe subseturi de date ale companiei (cunoscute ca date de departament), pentru care scopul de analiz este clar. Fiecare schem simplificat a datelor de departament preia numele de Data Mart. Fiecare colecie de date este realizat n conformitate cu o structur simpl, numit schem multidimensional, termen care implic prezena unor multiple dimensiuni de analiz. Exist mai multe scheme de structurare a unui depozit de date: schema stea, schema fulg de zpad i schema constelaie de fapte.
Familie de produse Categorie Subcategorie Marca Produs Nivele ierarhice pentru dimensiunea produs 302 Capitol 11 11.4.1. Schema stea
Schema stea este cel mai simplu model de structurare a unui depozit de date, model ilustrat n figura de mai jos cu ajutorul modelului entitate-asociere. O entitate central reprezint faptele pe care este focalizat analiza. Diferite entiti aranjate sub form de raze n jurul acesteia reprezint dimensiunile analizei. Mai multe relaii unu la muli conecteaz fiecare element din domeniul faptelor la exact un element al fiecrei dimensiuni. Schema din figura de mai jos reprezint managementul unei reele de magazine. Entitatea din centrul stelei reprezint vnzrile care sunt factori de interes; dimensiunile sunt reprezentate de produsele vndute, magazinele, promoiile i timpul fiecrei vnzri (figura 11.3.) Figura 11.4. reprezint organizarea plilor unei companii de asigurri. Entitatea din centrul stelei reprezint plile ctre cei trebuie onorai de ctre companie; dimensiunile reprezint poliele de asigurare, clienii, timpul i tipul problemelor care au cauzat aceast revendicare. Schema din Figura 11.5. reprezint organizarea terapiilor ntr-un grup de spitale. Entitatea din centrul stelei reprezint terapiile; dimensiunile reprezint mbolnvirile, pacienii, doctorii n cauz i spitalele n care sunt acceptai pacienii.
Vanzare Produs Promotie Timp Supermarket (0,N) (0,N) (1,N) (1,N) (0,N) (0,N) (1,N) (1,N)
Fig. 11.3. Colecia de date pentru un lan de supermarketuri
303 Depozite de date
Plata Polita Problema Timp Client (0,N) (0,N) (1,N) (1,N) (0,N) (0,N) (1,N) (1,N)
Fig. 11.4. Colecia de date pentru o companie de asigurri
Aa cum este prezentat n cele trei colecii de date, principala caracteristic a schemei stea este folosirea unei structuri regulate independent de problema n cauz. Desigur, numrul dimensiunilor poate fi diferit, dar cel puin dou dimensiuni sunt necesare (deoarece, n caz contrar, modelul se descompune ntr-o simpl ierarhie unu la muli). Un numr ridicat de dimensiuni este nerecomandat, deoarece analiza de date ar deveni prea complex.
11.4.2. Schema stea pentru un lan de supermarketuri
n cele ce urmeaz vor fi analizate coleciile de date pentru organizarea unui lan de supermarket-uri, ilustrnd schema relaional corespunztoare schemei entitate-asociere. Relaia unu la muli poate fi transformat prin atribuirea n entitatea central a unui identificator compus dintr-un set de identificatori pentru fiecare dimensiune. Fiecare tuplu a relaiei vnzare are patru coduri: ProdCod, MarketCod, PromoCod, TimpCod, care, luate mpreun, formeaz o cheie primar.
304 Capitol 11 Terapia Pacient Boala Timp Doctor (0,N) (0,N) (1,N) (1,N) (0,N) (0,N) (1,N) (1,N)
Fig. 11.5. Colecia de date pentru un sistem de informaii medical
Astfel, o vnzare elementar poate fi descris ca un set al tuturor vnzrilor care sunt realizate ntr-o perioad de timp, cu referire la un produs, o promoie dintr-un supermarket. Fiecare eveniment de vnzare este astfel un articol de date agregate. Atributele non-cheie sunt Cantitile vndute i Valoarea veniturilor. Se presupune c fiecare vnzare este numai pentru o promoie i se accept vnzrile produselor ce nu au promoie, considerndu-le ca avnd o promoie nul. Informaiile despre atributele celor patru domenii sunt urmtoarele: - Produsele sunt identificate de cod (ProdCod) i au ca atribute: Nume, Categorie, Subcategorie, Marca, Greutate, nlocuitor. - Supermarket-urile sunt identificate prin cod (MarketCod) i au ca atribute: Nume, Ora, Regiune, Zon, Mrime, Aezarea supermarketului (de exemplu: la etajul 1 sau etajul 2, etc.). - Promoiile sunt identificate prin cod (PromoCod) i au ca atribute: Nume, Tip, discount procentual (Procentaj), CuponFlag (care indic prezena de cupoane n ziare), DataStart, DataSfrit, Cost i Agenie de publicitate. - Timpul este identificat prin cod (TimpCod) i are atribute ce descriu ziua vnzrii din timpul sptmnii (ZiSpt: de duminica pn smbta), din timpul lunii (ZiLuna: 1 la 31), i din an (ZiAn: 1-365), apoi sptmna din luna (SptLuna) i din an (SptAn), apoi luna din an (LunaAn); Anotimpul. n general, dimensiunile prezint redundanta i date derivate. De exemplu, n dimensiunea Timp, cunoscnd o zi dintr-un an i un calendar se pot deriva valori ale tuturor atributelor de timp relatate. Similar, daca un ora apare de mai multe ori n relaia Supermarket, regiunile sale sunt repetate. Redundanta este introdusa pentru a facilita ct mai mult posibil operaia de analiz de date i a o face ct mai eficient. Schema entitate-asociere este transformat ntr-o schem logic relaional, rezultatul artnd dup cum urmeaz:
De fapt, relaia este n form normal Boyce-Codd prin care fiecare atribut care nu este cheie depinde funcional de cheia relaiei. Pe de alt parte, n general dimensiunile sunt relaii nenormalizate. n final, sunt patru restricii de integritate ntre fiecare atribut care alctuiete cheia tabelei de fapte i tabelele dimensiune. Fiecare dintre cele patru coduri care alctuiesc cheia tabelei de fapte este o cheie extern, referindu-se la tabela dimensiune care o are ca cheie primar.
11.4.3. Schema fulg de zpad
Schema fulg de zpad este o dezvoltare a schemei stea, n care domeniile sunt structurate ierarhic. Schema este introdus pentru a lua n calcul prezena unor dimensiuni nenormalizate. Figura 11.6. ilustreaz colecia de date pentru organizarea supermarketurilor, reprezentat prin schema fulg de zpad. n timp ce dimensiunea promoiilor e neschimbata, celelalte dimensiuni sunt organizate ierarhic. Schema fulg de zpad prezint ierarhizri explicite, acestea reducnd redundana i anomaliile, dar fiind mult mai complex. - Dimensiunea Supermarket este structurat dup ierarhie: Zon, Regiune, Ora, Supermarket. Fiecare Zon include multe Regiuni, fiecare Regiune include multe Orae i fiecare Ora are unul sau mai multe Supermarket-uri. - Dimensiunea Produs este reprezentat de o ierarhie cu dou noi entiti: nlocuitor i Categoria Produsului. - Dimensiunea Timp e structurat dup ierarhia Zi, Lun, An. Atributele schemei stea sunt distribuite unor entiti variate ale schemei fulg de zpad, eliminnd sursele de redundant. Toate relaiile descrise n figura anterioar sunt unu la muli i fiecare element este conectat la unul i doar un element al nivelului urmtor. Principalul avantaj a schemei stea este simplitatea ei, care permite crearea unei interfee foarte simple pentru formularea interogrilor.
11.4.4. Schema constelaie de fapte
Aplicaiile sofisticate pot solicita tabele multiple de fapte care partajeaz tabele dimensiune. O alt variant a schemei stea este schema constelaie de fapte (sau multistea), care const n mai multe tabele de fapte, conectate de obicei la una sau mai multe dimensiuni. Acest gen de schem poate fi vzut ca o colecie de stele. Pentru depozitele de date, schema constelaie de fapte este n mod curent utilizat, un depozit de date colectnd date despre subiecte multiple care se refer la ntreaga organizaie. Un exemplu de astfel de schem poate fi obinut dac la schema stea iniial pentru reeaua de supermarket-uri se adaug pe lng tabela de fapte iniial, cea de Vnzri, o tabel suplimentar de fapte pentru Aprovizionri, care se leag la rndul ei de dimensiunile Supermarket, Produs i Timp.
306 Capitol 11 Vanzare Produs Promotie Zi Supermarket (0,N) (0,N) (1,N) (1,N) (0,N) (0,N) (1,N) (1,N) Inlocuitor (0,N) (1,N) Categorie (0,N) (1,N) Oras Regiune Zona (1,1) (0,N) (1,1) (0,N) (1,1) (0,N) Luna An (1,1) (0,N) (1,1) (0,N)
Fig. 11.6 Schema fulg de zpad pentru un lan de supermarketuri
11.5. Operaii pentru analiza datelor
n acest paragraf vor fi prezentate interfeele pentru formularea interogrilor i cteva operaii pentru utilizate pentru creterea puterii de expresivitate a limbajelor de interogare.
11.5.1. Interfee de formulare a interogrilor
Analiza datelor pentru o colecie de date organizate conform schemei stea, necesit mai nti extragerea unui subset de factori i dimensiuni bazate pe solicitrile unei activiti particulare de analiz a datelor. Aceste extrageri de date urmresc un model standard: dimensiunile sunt utilizate pentru a selecta datele i a le grupa n timp ce funciile agregate sunt, de obicei, aplicate faptelor. E posibil astfel realizarea unor module predefinite pentru consultarea depozitului de date n care sunt oferite opiuni predefinite pentru selecie, agregare i evaluare a funciilor agregate. Figura 11.7. prezint o interfa de consultare a datelor pentru Data Mart-ul din seciunea 11.4.2. n ceea ce privete dimensiunile, acestea sunt 307 Depozite de date
preselectate: numele promoiei, numele produsului, numele vnzrii. Pentru fiecare element, sunt selectate cantitile pentru vnzri. Valoarea Superpromoie este inserat n partea de jos a acestui modul. Superpromoie identific o promoie particular, indicnd astfel procentul din valoarea vnzrilor obinut prin aceasta. n mod similar, intervale de valori Paste i Ulei ( pentru produse) i Februarie i Aprilie sunt selectate. n ultimul rnd al interfeei de extragere a datelor se definete structura rezultatelor care ar trebui s includ dimensiunile Produs (incluznd valorile selectate Paste i Ulei) i Timp (ntre Februarie i Aprilie) i cantitatea totala de vnzri.
Promoie.Nume Produs.Nume Timp.LunaAn Cantitate Trei pt. Dou Cupon 15% Superpromoie Vin Paste Ulei IanuarieDecembrie
Superpromoie PasteUlei Februarie...Aprilie Produs.Nume Timp.Luna Sum
Fig. 11.7. Interfaa pentru formularea unei interogri OLAP
Interfaa corespunde unei interogri SQL cu o structur predefinit, care, este completat cu opiunile introduse de utilizator. n interogare apar clauze Join, care conecteaz tabela de fapte cu dimensiunile), clauze de selecie (care extrag date relevante), grupri, ordonri, clauze de agregare.
select D1,C1DnCn, Aggr1 (F.C1), Aggrn(FCn) from Fact as F, dimension1 as D1,dimensionn as Dn where conditie-join (F,D1) and and conditie-join (F,Dn) and conditie-selectie group by D1.C1,Dn.Cn order by D1.C1,Dn.Cn
n cazul specificat, interogarea construit conform cu opiunile utilizatorului arat dup cum urmeaz:
Select Timp.Luna, Produs.Nume, sum(Cantitate) From Vnzare, Timp, Produs Where Vnzare. TimpCod=Timp. TimpCod And Vnzare. ProdusCod =Produs. ProdusCod And Vnzare. PromoieCod=Promoie. PromoieCod And (Produs.Nume=Paste Or Produs.Nume=Ulei) And Timp.LunaAn between Februarieand Aprilie And Promoie.Nume=Superpromoie Group By Timp.LunaAn, Produs.Nume Order By Timp.LunaAn, Produs.Nume
Rezultatul interogrii poate fi prezentat de clientul OLAP n forma de matrice sau grafic. n formatul matrice, dimensiunile corespund rndurilor i coloanelor, iar faptele corespund celulelor, ca n Figura 11.8. Aceast reprezentare a datelor este destul de des utilizat de uneltele de analiz deoarece permite operaii de calcul tabelar asupra rezultatelor interogrilor. Graficele clasice cu bare i cele tip plcint pot fi utilizate pentru vizualizarea datelor; de exemplu graficele Schema Optiuni Conditie View 308 Capitol 11 cu bare pot utiliza diferite culori pentru a reprezenta diferite tipuri de produse la diferite momente de timp.
Feb Mar Apr Ulei Paste 5K 45K 5K 50K 7K 51K
Fig. 11.8. Rezultatul interogrii OLAP
11.5.2. Drill-down i roll-up
Analogia cu programele de calcul tabelar nu este limitat la prezentarea datelor. De fapt, exist dou operaii de manipulare primitiva a datelor care deriv din dou operaii tipice cu tabele: drill-up i drill-down (figura 11.9.)
Timp.LunaAn Produs.Nume Sum(Cant) Feb Mar Apr Paste Paste Paste 45K 50K 51K
Fig. 11.9. Subseturi de rezultate ale interogrii OLAP
Drill-down permite introducerea unei dimensiuni a analizei, realiznd astfel o dezagregare a datelor. De exemplu, un utilizator ar putea fi interesat n adugarea distribuiei cantitii vndute pe zone de vnzare, realiznd i operaia drill-down pe Zon. Presupunnd c atributul Zona ia valoarea Nord, Centru i Sud, obinem tabelul din figura 11.10.
Timp.LunaAn Produs.Nume Zona Sum(Cant) Feb Feb Feb Mar Mar Mar Apr Apr Apr Paste Paste Paste Paste Paste Paste Paste Paste Paste Nord Centru Sud Nord Centru Sud Nord Centru Sud 18K 15K 12K 18K 18K 14K 18K 17K 16K
Fig. 11.10. Drill-down pentru tabelele reprezentate n figura 11.9.
Roll-up permite n schimb eliminarea unei dimensiuni de analiz, reagregnd datele. De exemplu, un utilizator poate s decid c subdivizarea vnzrilor pe zone e mai folositoare dect cea pe luni. Acest rezultat e obinut realiznd o operaie de roll-up pe luni, obinndu-se rezultatul afiat n figura 11.11. Alternnd operaiile roll-up i drill-down, analistul poate evidenia dimensiunile care au influen mai mare asupra fenomenelor reprezentate de fapte. De notat c operaia roll-up se realizeaz opernd pe rezultatul interogrii, n timp ce operaia drill-down necesit n general o reformulare i o reevaluare a interogrii pentru c necesit adugarea unei noi coloane n rezultatul interogrii 309 Depozite de date
Produs.Nume Zona Sum(cant) Paste Paste Paste
Nord Centru Sud 54K 50K 42K
Fig. 11.11. Eliminarea tabelelor prezentate n figura 11.10. . 11.5.3. Seciuni i rotaii
Asupra cuburilor de date trebuie s se poat predefini viziuni sau imagini (views) specifice diverselor categorii de utilizatori, prin operaii de secionare. O sectiune (slice) reprezint un membru specific al unei dimensiuni, de ex. Produsul A din dimensiunea Produs. Secionarea conduce la crearea unei serii de intersecii cu alte dimensiuni pentru seciunea respectiv. De exemplu, dup luna, dup regiune, dup client. Acest dup ne indic cum putem realiza vizualizarea datelor prin limitarea unor atribute la anumite valori i obinerea unui cub de date redus (procedeu numit data dicing). Aceasta intersecie multidimensional i modul ei de organizare face modelul OLAP foarte puternic. Abilitatea de a schimba perspectivele asupra datelor intuitiv i instantaneu este o facilitate de baz a tuturor instrumentelor serioase pentru OLAP. Alte dou faciliti important n proiectarea multidimensional OLAP sunt pivotarea i imbricarea dimensiunilor. Pivotarea presupune schimbarea intre ele a dimensiunilor in cadrul unei vizualizari, reorientarea cubului de date, de obicei trecerea de pe linii pe coloane si invers.
11.5.4. Data cube
Utilizarea recurent a agregrilor a sugerat introducerea unui operator foarte puternic, cunoscut ca DATA CUBE, pentru a realiza toate agregrile posibile prezente ntr-o tabel extras pentru analiz. Pentru descrierea operatorului se va folosi un exemplu. Se presupune c depozitul de date conine urmtoarea tabel care descrie vnzrile de maini. Vor fi afiate tuplurile unice referitoare la maini Ferrari sau Porsche roii, vndute ntre 1998 i 1999 (figura 11.12)
Productor An Culoare Vnzri Ferrari Ferrari Porsche 1998 1999 1998 Rou Rou Rou 50 85 80
Fig. 11.12. Imaginea unei tabele de vnzri
DATA CUBE este construit prin adugarea clauzei cu WITH CUBE la o interogare ce conine o clauz GROUP BY. De exemplu, se consider urmtoarea interogare:
select Productor,An,Culoare,Sum(Vnzri) from Vnzri where (Productor=Ferrari or Productor =Porsche) and Culoare= Rou and An between 1998 and 1999 group by Productor, An, Culoare with cube 310 Capitol 11 Interogarea extrage toate agregrile construite prin gruparea intr-un mod combinat a tuplurilor conform cu cele trei dimensiuni ale analizei (Productor, An, Culoare). Agregarea este reprezentata de valoarea polimorfic ALL care (ca i NULL) e prezent n toate domeniile i corespunde tuturor valorilor posibile prezente n domeniu ( figura13). O reprezentare spaial a structurii DATA CUBE este evideniat n figura 11.14. Diagrama arata un spaiu cartezian construit pe trei axe corespunznd domeniilor celor trei atribute. n acest exemplu, domeniul Productor ia valorile Ferrari i Porsche, domeniul An ia valorile 1998 i 1999, iar domeniul Culoare ia valoarea Rou. Punctele n spaiu reprezint tupluri n figura 11.12. De notat ca nu toate punctele sunt prezente n depozitul de date. n exemplul considerat, trei din patru sunt prezente. Cele trei planuri carteziene reprezint agregarea unei dimensiuni, axele carteziene reprezint agregrile pentru dou dimensiuni i originea axelor carteziene reprezint agregarea pentru toate cele trei dimensiuni. Evident, o reprezentare carteziana similara din punct de vedere conceptual, ntr-un spaiu cu n dimensiuni este posibila n cazul unei operaii de DATA CUBE cu un numr arbitrar de atribute de grupare.
Productor An Culoare Suma(Vnzri) Ferrari Ferrari Ferrari Ferrari Ferrari Ferrari Porsche Porsche Porsche Porsche All All All All All All 1998 1999 1998 1999 All All 1998 1998 All All 1998 1999 All 1998 1999 All Rosu Rou All All Rou All Rou All Rou All Rou Rou Rou All All All 50 85 50 85 135 135 80 80 80 80 130 85 215 130 85 215
Fig. 11.13. Operaia data CUBE a tabelei reprezentate n figura 11.12
Complexitatea DATA CUBE crete exponenial cu creterea numrului de atribute care sunt grupate. O extensie diferit de SQL construiete agregri progresive n loc s construiasc toate agregrile posibile; astfel complexitatea evalurii acestei operaii crete doar ntr-un mod liniar cu creterea numrului de atribute grupate. Aceast extensie necesit nlocuirea clauzei WITH CUBE cu clauza WITH ROLL-UP, ilustrat n urmtorul exemplu:
select Productor, An, Culoare, Sum(Vnzri) from Vnzri where (Productor=Ferrari or Productor= Porsche) and Culoare =Rou and An between 1998 and 1999 group By Productor, An, Culoare with roll-up
Rezultatul evalurii acestei interogri este evideniat n Figura 11.4. 311 Depozite de date
Productor An Culoare Sum(Vnzri) Ferrari Ferrari Porsche Ferarri Ferrari Porsche Ferrari Porsche All 1998 1999 1998 1998 1999 1998 All All All Rou Rou Rou All All All All All All 50 85 80 50 85 80 135 80 215
Fig. 11.14. Roll-up realizat asupra tabelei reprezentate n figura 11.12
Se observ progresul agregrilor, de la stnga la dreapta, i faptul c rezultatul are mai puine tupluri dect rezultatul operaiei DATA CUBE. Interogrile cu WITH CUBE i WITH ROLL-UP sunt prezente n multe SGBD-uri relaionale i nu necesit n mod obligatoriu prezena unui depozit de date. n orice caz, o interpretare a celor dou interogri conform modelului stea este ntotdeauna posibila, deoarece atributele clauzei GROUP BY joac rolul domeniilor, n timp ce atributele ramase ale clauzei SELECT descriu operaiile de agregare aplicate faptelor.
11.6. Dezvoltarea depozitului de date
Exist patru abordri alternative cu privire la dezvoltarea depozitului de date: - Prima abordare const n utilizarea tehnologiei relaionale, adaptat i extins corespunztor. Datele sunt stocate utiliznd tabele, dar operaiile de analiz sunt realizate n mod eficient utiliznd structuri speciale de date. Acest tip de sistem este numit ROLAP (Relational OnLine Analytic Processing). n ROLAP toate agregrile sunt stocate n cadrul bazelor de date relaionale surs. ROLAP reprezint cea mai lent soluie pentru consultarea datelor, deoarece, indiferent dac exist sau nu o agregare, trebuie accesat direct depozitul de date. Aceast soluie este recomandat pentru implementri de dimensiuni mai mici.
- A doua abordare, mai radical, const n stocarea datelor n form multidimensional, folosind structuri de date vector. Acest tip de sistem este numit MOLAP (Multidimensional OnLine Analytic Processing). n MOLAP, att datele surs ct i agregrile sunt stocate n format multidimensional. MOLAP este opiunea cea mai rapid pentru consultarea datelor, dar necesit cel mai mult spatiu de disc (acest criteriu nu mai reprezint o prioritate n ultima vreme, avnd n vedere scderea costurilor de stocare i procesare).
- HOLAP (Hybrid OnLine Analytic Processing) este o combinaie a primelor dou modele. Bazele de date HOLAP stocheaz agregrile existente ntr-o structur multidimensional, lsnd nivelul celulelor de baz n form relaional. Deoarece datele sunt n form preagregat, HOLAP ofer performanele MOLAP atunci cnd este nevoie de preluarea datelor din tabele. 312 Capitol 11 - DOLAP (Desktop OnLine Analytic Processing) presupune stocarea datelor pe maini desktop individuale, fiind ntlnite in aplicaii de dimensiune redus, n care exist solicitri minime ca mai muli utilizatori s aib acces la o baz de date central aflat pe un server central. DOLAP este inclus n soluiile oferite de muli dintre furnizori pentru a facilita analiza n cazurile n care uilizatorii nu se pot conecta la reeaua companiei.
Soluia MOLAP este adoptat de un numr mare de produse specializate n managementul Data Mart-urilor, datorit restriciilor legate de hardware i de costul procesrii. HOLAP ofer performane mai bune n cazul n care se acceseaz o baz de date stand-alone. Soluia ROLAP este utilizat de un numr mare de productori de soluii relaionale. Aceasta aduga soluii specifice OLAP experienei tehnologice a SGBD-urilor relaionale i astfel este foarte probabil ca ROLAP s reziste pe termen mediu i lung. Soluiile ROLAP sunt preferate cnd cererile de interogare sunt relative reduse i se acceseaz o baza de date standalone. n orice caz, tehnologiile ROLAP i MOLAP utilizeaz soluii inovative pentru acces la date i cu privire la indeci i materializarea view-urilor. Aceste soluii iau n considerare faptul c depozitul de date folosit n principal pentru operaii de citire i ncrcare iniial sau progresiv a datelor, n timp ce modificrile i anulrile sunt rare. Depozitele de date mari utilizeaz paralelismul, cu fragmentarea i alocarea corespunztoare a datelor pentru a face interogrile mai eficiente. n cele ce urmeaz se vorbete doar despre tehnologiile ROLAP. 313