an
săptămâna trimestru
luna
zi
banca X
ATM111 agentia 32
ATM112 agentia 33
Dimensiunea Timp
Deoarece un depozit de date este o colecţie integrată de date istorice, abilitatea
de a analiza datele din perspectiva timpului este o cerinţă fundamentală pentru
fiecare utilizator al depozitului. Utilizatorii realizează agregări folosind elemente
de timp (cum ar fi ziua, săptămâna, luna, anul, anul fiscal etc.). De regulă,
dimensiunea Timp se adaugă la modelul dimensional, în mod explicit. Ralph
Kimball propune următoarele atribute pentru dimensiunea Timp [Kimball, 1996]:
• atributul Ziua din săptămână conţine numele zilei (de exemplu, marţi).
Acest atribut ar putea fi folosit pentru a compara activitatea zilei de marţi
cu cea de luni;
• atributul Numărul zilei în lună începe cu (1) la începutul fiecărei luni şi se
termină cu 28, 29, 30, sau 31. Acest atribut este folosit pentru a compara
aceeaşi zi din fiecare lună;
• atributul Numărul total de zile este numeric. De exemplu, un număr
consecutiv începând cu prima zi dintr-un secol;
• atributul Tipul zilei ia valorile (D) sau (N) dacă este o zi din săptămână sau
nu. Sâmbăta şi duminica au valoarea (N). Acest atribut permite comparaţii
rapide între zilele din săptămână şi cele de la sfârşitul săptămânii;
• atributul Sezon conţine denumirea sezonului;
Modele de date pentru BI 67
Dimensiunea Produs
Este derivată din nomenclatorul de produse care se găseşte, în cele mai multe
cazuri, în sistemul informatic operaţional, de gestiune a stocurilor. Pentru a
transforma nomenclatorul de produse în dimensiunea Produs trebuie să ţinem cont
de următoarele aspecte:
• trebuie generate chei primare diferite de cele folosite în sistemul
operaţional, deoarece depozitul de date are un orizont de timp mai mare
decât sistemul operaţional;
• trebuie generate noi chei primare pentru a permite urmărirea modificărilor
descrierilor de produse, în acele cazuri unde sistemul operaţional nu a
modificat cheia primară, dar a schimbat descrierea produsului, iar în
depozit se doreşte păstrarea istoriei produselor;
• trebuie generate chei primare pentru agregate (de exemplu, cheia pentru
categorie, cheia pentru subcategorie);
• codurile numerice şi abrevierile din nomenclatorul de produse trebuie
înlocuite cu atribute descriptive.
Dimensiunea Produs conţine una sau mai multe ierarhii, precum şi atribute
dimensionale independente. Ralph Kimball propune următoarea structură (figura
3.12) pentru dimensiunea Produs (schema stea) [Kimball,1996].
Dimensiunea Produs
Cheie produs
Număr inventar
Descriere produs
Dimensiunea ambalajului
Marca
Subcategorie
Categorie
Raion
Tip ambalaj
Greutate
Unitatea de măsură pentru greutate
Lăţimea raftului de stocare
Înălţimea raftului, Adâncimea raftului etc.
Se observă că s-a creat definiţia unei secvenţe Produs_seq care este asociată cu
atributul cheie al dimensiunii (figura 3.19). Se va crea şi o asociere între
dimensiune şi tabela dimensională (figura 3.20).
Dimensiunea Client
Ar putea avea 50-100 de atribute şi cel puţin două ierarhii:
• o ierarhie ar reprezenta aspectele legate de expediere şi facturare,
referitoare la clienţi;
• o altă ierarhie se referă la repartizarea regională a clienţilor (locaţie, oraş,
district, stat).
Există de asemenea, un număr de atribute în dimensiunea Client cum ar fi:
vârsta, sexul, starea civilă, numărul de copii, nivelul venitului, nivelul de educaţie
care sunt foarte des folosite în analize şi sunt numite de Ralph Kimball „atribute
demografice”. Ralph Kimball consideră că „cea mai bună tehnică pentru
urmărirea modificărilor în dimensiunile mari este de a le descompune în una sau
mai multe dimensiuni demografice, fiecare conţinând un număr mic de atribute
care vor avea un număr limitat de valori” [Kimball, 1996]. Aceste dimensiuni
pot fi asociate prin joncţiune direct la tabela de fapte sau la dimensiunea Client
(figura 3.23).
Dimensiunile se modifică rar în timp, spre deosebire de colecţiile de fapte. De
exemplu, se modifică descrierile produselor, clienţii îşi schimbă numele, se
căsătoresc şi divorţează, au mai mulţi copii şi îşi modifică adresele, un produs se
80 Business Intelligence. Teorie şi practică
Tabela de fapte
Vânzări Dimensiunea
Timp_id Demografică
Demografic_id Demografic_id
Client_id Categorie_vârstă
Produs_id Categorie_venit
Cantitate Stare civilă
valoare_vânzări Sex
Dimensiunea Client Comportament la
Client_id cumpărare
Nume, prenume
Adresa, oraş, judeţ,
cod fiscal
Demografic_id
Muntean Mihaela nu mai poate fi cheie în dimensiunea Client. Această soluţie cere
utilizarea cheilor generalizate/surogat (de exemplu: două cifre la sfârşitul codului
numeric personal sau un număr secvenţial generat de sistem) (figura 3.25).
Tabela
de
fapte
Momentul 1
Momentul 2
Tabela Tabela
dimensională Tabela de fapte dimensională
Timp Vânzări Produs
timpid prodid prodid
ziua locatieid denumire
ziua_din_săpt timpid marca
luna cant tip
trimestru valoare_vânzări tipul_distribuitor
an
etc.
Tabela
dimensională
Locaţie
locatieid
strada
oraş
judeţ
ţară
Figura 3.31 Exemplu de schemă stea
Curs
Curs_id
Profesor
Profesor_id
Student
Student_id
Facilitate_id Facilitate
Data Data_id
Avantaje Dezavantaje
o furnizează o performanţă ridicată ▪ face dificilă joncţiunea între tabelele
pentru cereri analitice, prin reducerea de fapte;
numărului de joncţiuni; ▪ dimensiunea indexului aferent cheii tabelei
o toţi indicatorii de performanţă de fapte este destul de mare, având efect
ai activităţii modelate sunt stocaţi asupra performanţei şi a scalabilităţii.
în tabela de fapte.
Tabela Tabela
de fapte de fapte
Tabela Timp Tabela
Vânzări Produse
Livrare
timpid timpid prodid
ziua prodid
prodid timpid
ziua_din_săpt denumire
locatieid marca distribid
luna val_vânz de_la
trimestru categorie
cantitate destinaţie
an furniz_tip Tabela
costuri
etc. Distribuitori
etc. cant_livrată
distribid
etc.
denumire
Tabela locatieid
Locaţie distribtip
Locatieid etc.
strada
oraş
judeţ
etc
Figura 3.34 Schema constelaţie
Dimensiuni
Indicatori
Produs
Magazin
Ierarhie Timp
Membri
i
Cele mai multe dimensiuni au o structură ierarhică. În cele mai multe activităţi
ale unei firme, ierarhiile sunt o necesitate. În glosarul de termeni OLAP se
specifică că „membrii dimensiunilor pot fi organizaţi pe baza relaţiilor de tip
părinte-copil, unde un membru părinte reprezintă consolidarea (agregarea)
membrilor copil. Rezultatul este o ierarhie şi relaţiile părinte/copil sunt relaţii
ierarhice”. Ierarhiile sunt esenţiale pentru agregarea datelor şi pentru navigarea în
cubul n-dimensional.
Combinaţia de multiple dimensiuni şi multiple niveluri pe dimensiune constituie
esenţa unui cub n-dimensional.
Granulaţia cubului n-dimensional este dată de granulaţia dimensiunilor. De
exemplu, dimensiunea Timp are granulaţia la nivel de lună, iar dimensiunea
Locaţie are granulaţia la nivel de magazin.
O celulă într-un cub n-dimensional poate conţine indicatori de bază, dar şi
indicatori derivaţi. De exemplu, celulele cubului n-dimensional pentru analiza
vânzărilor pot stoca valorile următorilor indicatori: cantitatea vândută, valoarea
vânzărilor, numărul de clienţi, dar şi profitul (ca indicator derivat).
Întrebarea care apare adesea este dacă se poate adăuga un număr nelimitat de
dimensiuni la un cub n-dimensional şi dacă pentru modelarea unei activităţi
complexe este suficient un singur cub n-dimensional. În multe aplicaţii OLAP, se
utilizează date din mai multe domenii de activitate (de exemplu: activitatea
financiară şi activitatea de marketing sau activitatea de producţie şi activitatea de
desfacere). În aceste cazuri, se utilizează mai multe cuburi n-dimensionale sau
structuri multicub. Prin utilizarea structurii multicub este posibil de a integra seturi
de date eterogene. Problema care apare în proiectarea unei structuri multicub este
legată de modul cum se realizează legătura între cuburile n-dimensionale.
Datele multidimensionale sunt împrăştiate. Conceptul de împrăştiere este
frecvent asociat cu datele multidimensionale şi a fost utilizat cu semnificaţia de
valoare lipsă, valoare inaplicabilă şi valoare zero. Problema tratării datelor
împrăştiate este una foarte importantă şi este frecvent dezbătută în lumea bazelor
de date. Proiectanţii de instrumente OLAP au adoptat o varietate de strategii pentru
a trata fenomenul de împrăştiere, dar şi gruparea datelor. Essbase şi Power Play
utilizează structura hypercub, cu un model complex de compresie a datelor.
Cealaltă structură, multicubul, este mai des întâlnită. În aplicaţiile multicub,
proiectanţii descompun baza de date multidimensională într-un set de structuri
multidimensionale (cuburi), fiecare fiind compusă dintr-un subset de dimensiuni
ale bazei de date. O dimensiune poate fi comună la mai multe cuburi. Multicubul
este utilizat pentru a stoca date împrăştiate [Thomsen, 1996].
Utilizatorii pot executa următoarele operaţii de bază pe datele stocate în cubul
n-dimensional:
• Slice şi dice sau selecţii în cub. Slice presupune selecţia unui singur
membru al unei dimensiuni, spre deosebire de dice care presupune selecţia
mai multor membri, din mai multe dimensiuni. De exemplu, „Care sunt
vânzările în luna ianuarie?” este o operaţie slice, iar „Care sunt vânzările
de băuturi în luna ianuarie?” este o operaţie dice;
Modele de date pentru BI 91
Într-o bază de date Oracle se pot crea mai multe spaţii de lucru analitice. Un
spaţiu analitic în format standard este un spaţiu analitic construit cu un set specific
de obiecte, cum ar fi dimensiuni ierarhice, asocieri de tip părinte, asocieri de tip
nivel. Fiecare obiect trebuie să fie definit cu un set de proprietăţi ce identifică rolul
obiectului şi asocierile lui cu alte obiecte din spaţiu analitic.
Analytic Workspace Manager (AWM) este un instrument de administrare
utilizat pentru:
• a crea spaţii analitice în format standard ce pot fi accesate de aplicaţiile
construite cu Oracle BI Discoverer, Oracle BI Spreadsheet Add-In etc. În
figura 3.40 este prezentat un spaţiu analitic în format standard, creat cu
AWM şi care are denumirea GLOBAL.
• a actualiza spaţiile analitice;
• a crea şi executa planuri pentru agregarea datelor;
• a crea măsuri derivate.
Un utilizator care cunoaşte cerinţele analitice şi are acces la sursele de date
poate construi un spaţiu analitic cu AWM, parcurgând următorii paşi:
• Definirea modelului multidimensional logic. Trebuie definite dimensiunile,
nivelele, ierarhiile, cuburile şi măsurile. În figura 3.41 se vizualizează
nivelele ierarhice ale dimensiunii Clienti, iar în figura 3.42 ierarhia din
dimensiunea Clienti.