Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
INTRODUCERE.............................................................................................................................. 2
CAPITOLUL 1. CONCEPTE ŞI SOLUłII DE BUSINESS INTELLIGENCE ....................... 3
1.1 CONCEPTUL DE BUSINESS INTELLIGENCE ......................................................................3
1.2 EVOLUłIA ŞI DIRECłIILE VIITOARE DE DEZVOLTARE ....................................................4
1.3 NECESITATEA SOLUłIILOR DE TIP BUSINESS INTELLIGENCE ........................................7
1.4 OBIECTIVELE UNUI SISTEM DE BUSINESS INTELLIGENCE ..............................................8
1.5 DILEMA DATELOR ............................................................................................................9
1.6 CERINłELE BAZELOR DE DATE .....................................................................................10
1.7 ARHITECTURA UNUI SISTEM INFORMATIC PENTRU INTELIGENłA AFACERII ..............11
CAPITOLUL 2. TEHNOLOGII UTILIZATE LA REALIZAREA UNEI SOLUłII DE
BUSINESS INTELLIGENCE ...................................................................................................... 13
2.1. TEHNOLOGII SPECIFICE DOMENIULUI BUSINESS INTELLIGENCE ...............................13
2.1.1. DEPOZITE DE DATE....................................................................................................................13
2.1.2 TEHNOLOGIA ETI (Extragere, Transformare, Încărcare) .............................................................14
2.1.3 OLAP (Online Analytical Processing) ............................................................................................14
2.1.4 EXTRAGEREA DE DATE (Data Mining) .....................................................................................15
2.1.4.1 Procesul de extragere a cunoştinŃelor din baze de date ........................................................15
2.1.4.2 FuncŃii de extragere a cunoştinŃelor din baze de date...........................................................19
2.1.4.3 Tehnici de extragere a cunoştinŃelor din baze de date..........................................................23
2.2 TEHNOLOGII DE PROGRAMARE A ALGORITMILOR DE BUSINESS INTELLIGENCE .......28
2.2.1. MICROSOFT VISUAL STUDIO...................................................................................................28
2.2.2. DEVEXPRESS ...............................................................................................................................31
2.2.3 APLICAłII OPEN SOURCE ..........................................................................................................32
CAPITOLUL 3. PROPUNEREA ŞI REALIZAREA UNEI SOLUłII INFORMATICE DE
BUSINESS INTELLIGENCE ...................................................................................................... 33
3.1 DESCRIEREA CERINłELOR FUNCłIONALE ....................................................................33
3.2 ANALIZA SISTEMULUI INFORMATIC PROPUS ................................................................34
3.2.1 Nivelul cazurilor de utilizare............................................................................................................34
3.2.1.1 Identificarea actorilor ...........................................................................................................34
3.2.1.2 Identificarea şi prezentarea cazurilor de utilizare.................................................................35
3.2.2 Nivelul logic.....................................................................................................................................38
3.2.2.1 Diagramele de secvenŃă........................................................................................................38
3.2.2.2 Diagrama de colaborare .......................................................................................................40
3.2.3 Nivelul static ....................................................................................................................................40
3.2.3.1 Diagrama de clase ...............................................................................................................41
3.3 PROIECTAREA ŞI IMPLEMENTAREA SOLUłIEI DE BUSINESS INTELLIGENCE ............42
3.3.1 Proiectarea sistemului cu ajutorul diagramei de componente ..........................................................42
3.3.2 Modelarea distribuirii şi implementării............................................................................................43
3.4 REALIZAREA INTERFEłELOR, RAPOARTELOR ŞI PREZENTĂRILOR .............................44
CONCLUZII .................................................................................................................................. 52
BIBLIOGRAFIE............................................................................................................................ 53
ANEXE............................................................................................................................................ 54
INTRODUCERE
Cele mai noi tendinŃe în domeniul sistemelor informatice se concentrează în jurul
conceptului de Business Intelligence - sisteme informatice care prelucrează date din diverse surse,
oferind informaŃii factorilor de decizie din firma. Principalul rol al sistemelor informatice de acest
tip este să prezinte datele direct, rapid, sintetic, relevant, cu posibilităŃi de previziune şi analiză
avansată. Un astfel de sistem informatic trebuie să-i permită managerului executiv să poată vedea
şi analiza oricând situaŃia organizaŃiei sale astfel încât deciziile adoptate să fie fundamentate.
Caracterul din ce în ce mai complex al fenomenelor economico-sociale din ultimele decenii
precum şi multitudinea formelor lor de manifestare face imposibilă luarea unor decizii corecte
bazate doar pe experienŃa managerială, oricât de vastă ar fi aceasta. IntuiŃia, experienŃa, spiritul
antreprenorial – toate acestea vor continua să fie o bază importantă în luarea deciziilor, dar ele vor
deveni din ce în ce mai mult sprijinite de o fundaŃie de informaŃii pe care Business Intelligence o
oferă.
Unele dintre cauzele ce au determinat apariŃia sistemelor de Business Intelligence sunt
creşterea exponenŃială a volumului de date, informaŃii, cunoştinŃe care intră şi circulă în sistemul
informaŃional al firmei, concomitent cu diversificarea surselor de informaŃii.
În prezent suntem expuşi la un volum imens de date. Problema nu mai este de a obŃine
informaŃii, ci de a obŃine informaŃiile relevante. Marile companii din domeniul IT îşi propun ca
obiective să organizeze datele la nivel mondial şi să le facă accesibile utilizatorilor. Observăm că
se pune din ce în ce mai mai mult accent pe calitatea informaŃiilor şi nu pe cantitatea acestora.
Aceste necesitatăŃi au impulsionat apariŃia şi dezvoltarea sistemelor inteligente care extrag
cunoştinŃe din date şi oferă suport pentru decizii.
Lucrarea abordează problematica sistemelor informatice de Business Intelligence ca soluŃii
destinate suportului decizional atât pentru managerii din cadrul unor firme, cât şi pentru alŃi
decidenŃi din cadrul unei organizaŃii cu scopul de a sistematiza, analiza, întelege şi ameliora
procesele implicate în activitatea socio-economică.
Lucrarea se structurează în trei secŃiuni.
În capitolul 1 sunt prezentate concepte fundamentale privind sistemele informatice de
Business Intelligence, evoluŃia, necesitatea, obiectivele şi arhitectura acestora.
În capitolul 2 sunt abordate tehnologiile implicate în realizarea unei soluŃii de Business
Intelligence. În prima parte sunt clasificate şi prezentate tehnologiile specifice ariei inteligenŃei
afacerii precum: depozite de date (data warehouse), OLAP (Online Analytical Processing),
tehnologia ETI (Extragere, Transformare, Încarcare) şi tehnologia Data Mining de extragere a
cunoştinŃelor din date. În partea a doua am continuat prezentarea cu câteva dintre tehnologiile de
programarea implicate în procesul de elaborarea a unei soluŃii de Business Intelligence.
Capitolul 3 este orientat spre propunerea şi dezvoltarea unei soluŃii practice de
implementare a unui sistem de Business Intelligence, precum şi componentele, arhitectura, modul
de implementare şi funcŃionare a acestui sistem.
2
CAPITOLUL 1. CONCEPTE ŞI SOLUłII DE BUSINESS
INTELLIGENCE
1.1 Conceptul de Business Intelligence
Domeniul Business Intelligence este o tehnologie de ultimă oră care priveşte organizarea şi
funcŃionarea întreprinderii şi a conducerii acesteia.
Cercetările în domeniul de interes se încadrează în tendinŃa actuală de trecere de la
societatea industrială la cea informaŃională şi a cunoaşterii. Obiectivul propus poate fi atins prin
decizii fundamentate ştiinŃific cu un suport informaŃional pe masură. Se poate spune că în
momentul de faŃă reuşita afacerilor depinde într-o măsura foarte mare de calitatea şi cantitatea de
informaŃie pe care se bazează .
Există mai multe puncte de vedere în ceea ce priveşte definirea acestui concept.
Business Intelligence (BI) este un concept generic care grupeaza sub aceeaşi umbrelă
instrumente din domeniul afacerii şi al informaticii, utilizate în vederea transformării datelor
în informaŃii, a informaŃiilor în decizii şi a deciziilor în actiuni1. Presupune utilizarea tuturor
datelor de care dispune o firmă pentru a îmbunătăŃi procesul decizional. Acest lucru presupune
accesul la date, analiza şi descoperirea unor noi posibilităŃi de utilizare a lor.
În Romania, termenul de Business Intelligence este din ce în ce mai des folosit. Traducerea
lui prin inteligenŃa afacerilor sau afaceri inteligente nu reflectă întru totul semnificaŃia dată de
utilizarea actuală a acestui termen. Şi în mediul de afaceri românesc au început să apară abordări
de tip BI de succes. Chiar dacă în presa de specialitate s-a scris şi se scrie mult despre acest
concept subiectul va ramâne unul de actualitate. Domeniul este foarte dinamic şi, deci, raspunsurile
trebuie reactualizate cu o frecvenŃă mare.
BI se referă la capacitatea de a tranforma date existente în informaŃie utilă care să furnizeze
perspective bogate şi mai ales noi asupra lumii afacerilor din prezent şi să ofere o idee spre ce se
îndreaptă aceasta în viitor.
AplicaŃiile informatice utilizate sunt diverse şi se referă la sisteme suport pentru luarea
deciziei, raportări şi interogări, procesare analitică online a datelor (OLAP – Online Analitical
Processing), analize statistice, previzionări, sortarea datelor în vederea identificării de şabloane şi
relatii (data mining) etc. Sunt sisteme informatice inteligente.
SoluŃiile actuale de tip Business Intelligence pot fi considerate ca o etapă importantă de
integrare a domeniului afacerii cu cel al informaticii. Utilizarea tehnologiilor înalte din tehnologia
informaŃiei (de exemplu, inteligenŃa artificială, sisteme expert etc.) şi din management (Business
Process Reengineering,Business Process Management, Business Performance Management etc.)
va face posibilă o simbioză între cele două domenii. Cert este că implementarea unei soluŃii de tip
Business Intelligence este o mare provocare atât pentru specialiştii din domeniul managementului,
cât şi pentru cei din domeniul informatic.
1
www.aries.ro – AsociaŃia Română pentru Industria Electronică şi Software
3
- de a analiza cantităŃi mari de date istorice pentru a identifica şabloanele şi a înŃelege tendinŃele
ce pot influenŃa afacerile.
Un sistem informatic de Business Intelligence oferă o tehnologie, inclusiv produse
software, care livrează utilizatorilor informaŃiile necesare pentru a răspunde la întrebările ce apar în
rezolvarea problemelor de afaceri.
A. EvoluŃia
Conceptul de Business Intelligence, dezvoltat la începutul anilor ’90, reprezintă una dintre
cele mai noi şi populare noŃiuni în teoria şi practica sistemelor informatice de asistare a deciziei.
Necesitatea şi ideea apariŃiei unor astfel de soluŃii a aparut însa mult mai demult.
Înainte de de începerea erei informaŃionale, la sfarşitul secolului 20, companiile colectau
datele din surse non-automatizate sau parŃial automatizate. ActivităŃilor economice le lipseau
resursele de calcul necesare pentru o analiză corespunzătoare a datelor. În consecinŃă, managerii
de cele mai multe ori îşi bazau deciziile în cea mai mare parte pe intuiŃie.
Cum procesul de informatizare a devenit tot mai uzual în sectorul economic, tot mai multe
date au devenit disponibile.
Termenul de Business Intelligence a fost definit pentru prima dată în octombrie 1958, intr-
un articol semnat de Hans Peter Luhn, publicat în IBM Journal:
„În acest articol, afacerea reprezintă o colecŃie de activităŃi desfăşurate cu un anume scop
cum ar fi: cercetare, tehnologie, comerŃ, industrie, etc. FacilităŃile de comunicare care servesc
conducerii (în sens general) pot fi referite ca inteligenŃa sistemului. Notiunea de inteligenŃă este de
asemenea definită aici într-un sens mai general, ca fiind abilitatea de inŃelegere a relatiilor dintre
faptele prezentate de aşa manieră încât să poată ghida acŃiunile pentru obŃinerea unui obiectiv
stabilit.”2
Cu toate acestea, colectarea a ramas o provocare din cauza lipsei unei infrastructuri
corespunzatoare pentru schimbul de date sau incompatibilităŃilor dintre sisteme. Pentru generarea
analizei şi a rapoartelor pentru anumite date, erau necesare uneori luni intregi de procesare.
Asemenea rapoarte erau utilizate pentru stabilirea unor decizii strategice pe termen lung, în timp ce
deciziile tactice pe termen scurt continuau să se bazeze pe intuiŃie sau experienŃă.
În 1989 Howard Dresner, un analist de la Gartner Group, a popularizat Business
Intelligence ca un termen umbrelă pentru a descrie un set de concepte şi metode pentru optimizarea
procesului de luare a deciziilor în afaceri prin utilizarea sistemelor suport de decizie bazate pe
fapte3.
2
H.P.Luhn – „A Business Intelligence System”
3
D. J. Power – „A Brief History of Decision Support Systems”
4
Fig. 1 - Evolutia sistemelor de Business Intelligence
4
D. J. Power – „A Brief History of Decision Support Systems”
5
prelucreze. Astăzi este un standard obişnuit simbioza dintre aplicaŃiile BI şi aplicatiile/mediile de
dezvoltare pentru depozite de date.
Multumită tehnologiilor actuale, afacerile moderne utilizează pe larg standarde,
automatizarea şi softurile specializate pentru stocarea şi analiza unor cantităŃi enorme de date.
Aceste tehnologii pot ajuta companiile să-şi crească veniturile sau să-şi diminueze costurile prin
furnizarea de informaŃii pertinente către managementul executiv, informaŃii pe baza cărora aceştia
să reacŃioneze rapid, adoptând decizii eficiente.
B. DirecŃii de dezvoltare
Într–un mediu care evoluează foarte rapid, consumatorii solicită acum servicii mai
rapide şi mai eficiente. Pentru a ramâne competitive, companiile trebuie să îndeplineasca
aşteptările consumatorilor. Prin urmare, acestea trebuie să se bazeze din ce în ce mai mult pe
sistemele de Business Intelligence pentru a Ńine pasul cu tendinŃele şi evenimentele actuale.
TendinŃele actuale din domeniu se îndreaptă către Real Time Business Intelligence – Business
Intelligence în timp real, solicitând date cât mai recente şi analize furnizate în timp real, similar cu
modelul de tranzacŃionare la Bursă.
Aşa numitele produse de BI 1.0 nu erau capabile să ofere asemenea facilităŃi din cauza
dispersării datelor pe diverse sisteme tranzactionale, pe de o parte, şi existenŃei unor structuri de
data warehouse (depozite de date) la care trebuiesc convertite datele înainte de încărcare, pe de alta
parte.
BI 2.0 este termenul5 atribuit recent ca find urmatorul pas pentru industria în
continuă dezvoltare a Business Intelligence. BI 2.0 este utilizat pentru a descrie achiziŃionarea,
analiza şi previzionarea datelor în timp real.
În viitorul apropiat, informaŃia va deveni mai democratizată, iar utilizatorul final din
orice departament al organizaŃiei va putea să vizualizeze date referitoare la segmentul său de
activitate. CapacităŃile şi cerinŃele pentru Business Intelligence vor creşte în viitor în acelaşi mod
precum cresc şi aşteptările consumatorilor, utilizarea lor fiind necesara pentru a ramâne
competitivi pe piaŃă.
5
http://en.wikipedia.org/wiki/Business_Intelligence_2.0
6
1.3 Necesitatea soluŃiilor de tip Business Intelligence
Toate companiile au nevoie de informaŃii pentru a lua decizii. Există de obicei foarte multe
date răspândite în sistemele IT ale companiei, dar transformarea acestor date în informaŃii ce pot fi
analizate pentru a lua decizii este un proces greoi. Necesitatea unui sistem informatic de Business
Intelligence este dată de aspectele prezentate în continuare:
Reducerea timpului de obŃinere al răspunsului
AplicaŃiile de BI pun accentul pe accesul şi livrarea rapidă a informaŃiilor la utilizatori.
Gestionarea şi modelarea mediului de afaceri curent
Sistemele informatice de tip BI oferă mai mult decât mecanisme de interogare şi raportare,
ele oferă instrumente de analiză a informaŃiilor complexe, de stocare a volumelor uriaşe de date, de
data mining.
Reducerea costurilor informatice
InvestiŃia în sistemele informatice reprezintă un procent semnificativ din cheltuielile
firmelor. De aceea, este necesar nu numai să se reducă aceste cheltuieli dar şi să se obŃină beneficii
maxime din informaŃiile stocate şi prelucrate de sistemele informatice, care folosesc , în acest sens,
noi tehnologii.
Beneficii
8
Să asigure suportul informatic necesar pentru luarea deciziei la nivelul managementului
strategic. Se pun la dispoziŃie procese pentru: masurare şi monitorizare a performantelor în
timp real şi on line, realizarea de scenarii necesare pentru previzionare şi perfectionare.
Să realizeze trecerea de la masurarea clasică a performanŃelor bazată pe evaluarea activelor
tangibile la cele intangibile. Aceasta trecere este necesara, în primul rând, deoarece masurarea
numai pe criterii financiare este una nebalansată şi, uneori, tardivă. În al doilea rand, trebuie
Ńinut cont de faptul că în prezent valoarea de piaŃă a unei companii este dată în proporŃie de
peste 70% de activele intangibile. Această trecere se bazează, în principiu, pe combinarea de
metodologii din business, statistică şi inginerie pentru a îmbunătăŃi performanŃa proceselor,
scăderea variaŃiilor şi menŃinerea unei calităŃi consistente pentru ieşirile proceselor. Aceasta
conduce la reducerea defectelor şi la imbunătăŃirea profitului, calităŃii produselor şi a
satisfacŃiei clientilor.
• Proiectarea conflictuală
Sistemele informatice tradiŃionale au fost proiectate în scopul de a procesa tranzacŃii
discrete, pentru a automatiza sarcini precum introducerea de comenzi sau facturi contabile. Bazele
de date relaŃionale s-au dovedit o soluŃie eficientă pentru acest tip de sisteme de procesare a
tranzacŃiilor
9
1.6 CerinŃele bazelor de date
Procesare de tranzacŃii BI
1. Scopul Automatizarea unui Raportare, analiză de date şi
proces repetitiv descoperire
2. Proiectarea RedundanŃă minimă şi RedundanŃă introdusă,
controlată, calcule dinamice structura de date aplatizată,
calcule complexe
3. Stocatea datelor TranzacŃii discrete, date TrazacŃii la nivel de rezumat,
curente, o aplicaŃie date istorice, aplicaŃii multiple şi
integrate
4. Accesul la date Actualizări, regăsiri Doar regăsiri şi timpi de
rapide răspuns moderaŃi
Tabel 1 – Cerintele bazelor de date
Interogare flexibilă
Spre deosebire de sistemele tranzacŃionale în care interogările sunt cunoscute dinainte şi
proiectanŃii pot optimiza timpii de răspuns, în sistemele de BI nu se pot preprograma interogările în
serii de rapoarte predefinite.
Sistemele de BI necesită explorări de date active şi uneori pasive şi nu se cunosc de la
început întrebările la care sistemul trebuie să răspundă. SoluŃiile de BI implică o abordare în
proiectare care duce la o flexibilitate a interogărilor fără a limita numărul de utilizatori.
10
1.7 Arhitectura unui sistem informatic pentru inteligenŃa afacerii
Arhitectura unui sistem informatic pentru inteligenŃa afacerii prezintă grafic un ansamblu
de elemente intercorelate care contribuie la atingerea obiectivelor prezentate anterior6.
Analizând arhitectura de mai jos, observăm că pornim de la o sursă de date (externe şi
operaŃionale) din care cu ajutorul unor instrumente şi interfeŃe se construiesc depozite de date.
Depozitele de date sunt gestionate împreună cu alte stocuri de date. Pentru accesul la date se
utilizează interfeŃele aplicaŃiilor şi serverele de aplicaŃii. Rezultatele accesului la date se utilizează
în aplicaŃii de Business Intelligence (instrumente SSD – Sisteme Suport de Decizie, sisteme OLAP
– Online Analitycal Processing, Data Mining etc). La nivelul întregului sistem informatic de BI se
realizează gestiunea metadatelor şi administrarea sistemului.
O soluŃie de BI necesită acces la toate tipurile de date referitoare la organizaŃie şi clienŃii
săi. Aceasta poate include date din sistemele tranzactionale (OLTP - Online Transaction
Processing), date din aplicaŃiile companiei (de exemplu aplicaŃii financiare, resurse umane,
productie), date istorice (de obicei o sursă valoroasă de informaŃii istorice), precum şi diverse alte
surse. Anumite sarcini analitice, de exemplu rularea rapoartelor zilnice privind vânzarile sau
extragerea informaŃiilor ad-hoc, necesită acces direct la sursele de date. Alte tipuri de sarcini (de
exemplu examinarea tendinŃei vânzarilor regionale de-a lungul ultimelor luni) necesită lucru
fragmentat folosind tipul de lucru asupra depozitelor de date.
12
CAPITOLUL 2. TEHNOLOGII UTILIZATE LA
REALIZAREA UNEI SOLUłII DE BUSINESS INTELLIGENCE
13
2.1.2 TEHNOLOGIA ETI (Extragere, Transformare, Încărcare)
14
Fig. 6 – Analiza multidimensională cu ajutorul conceptului de cub
OLAP poate fi de asemenea folosit pentru identificarea unor relaŃii ce nu sunt evidente
dintre elementele de date. O bază de date OLAP nu trebuie să fie neaparat un depozit de date (un
repozitoriu central unde se colectează toate sau părŃi semnificative ale datelor unei întreprinderi),
deoarece nu toate tranzacŃiile sunt necesare pentru analiza tendinŃelor. Prin utilizarea ODBC (Open
Database Connectivity - un standard deschis de interfaŃă de programare a aplicaŃiilor (API) pentru
accesul la o baza de date), datele pot fi importate din baze de date relationale existente pentru a
crea o bază de date multidimensionala pentru OLAP.
Extragerea de date duce BI cu un pas mai departe decât OLAP. În OLAP utilizatorul este
angajat în mod activ în explorarea datelor, pe când în data mining, informaŃia spune ceva despre ea
fără să fie adresată vreo întrebare.
Tehnologia de data mining utilizează metode de căutare complexe spre a identifica modele
şi grupări ale datelor. Data mining poate identifica tendinŃe nesuspectate în comportamentul
consumatorului, care poteŃial pot fi utilizate să prevadă comportamentul viitor.
Extragerea de date se îmbunătăŃeşte cu cât creşte cantitatea de date şi necesită depozite de
date de înaltă calitate pentru a putea da rezultate utile.
Pentru a înŃelege mai bine procesul de extragere a cunoştinŃelor din baze de date, literatura
de specialitate recomandă o procedură sistematică şi metodică. Procesele vor fi divizate în câteva
faze ce poartă denumirea de procese parŃiale.
15
În figura de mai jos este prezentat un proces generic de data mining. Schema este o analiză
a conceptelor şi a cercetărilor actuale7 validate în studii de caz.
Acest model este unul generic, în practică el putând suferi unele modificări, în funcŃie de
specificul fiecărei companii sau ale anumitor situaŃii.
Defini-
Sele- Transfor- Explora- Genera- Interpre- F urniza-
rea Explora- Mo ni-
ctarea marea rea
rea rea tarea rea
ob iectivelo datelor datelor torizare
rafaceri d atelo r datelo r m odelelor rezultat elo r rezultatelo
a) CurăŃarea datelor
O primă etapă în procesul de data mining este cea de curăŃare a datelor. Deseori, bazele
de date sunt combinate manual pentru a pregăti setul de date supus analizei. Prin urmare, ele pot să
conŃină date false sau greşite. Această problemă este cu atât mai gravă cu cât ea conduce la nişte
modele remarcabile (Brachman, Anand, p. 49 ff.; Bissantz u.a (1993), p. 343). Drept urmare, data
mining nu poate avea succes fără un efort serios de curăŃare a datelor. Acest proces se poate face în
două moduri: manual (lucru costisitor şi care ia mult timp şi necesită cunoştinŃe deosebite) sau
asistat de instrumente software.
CurăŃarea manuală a datelor este realizată de multe ori prin extragerea aceloraşi elemente
din multiple surse de date şi compararea rezultatelor (Brachman, Anand (1996), p. 50). Câteodată,
anomaliile datelor sunt importante pentru anumte scenarii (fapte sau trenduri interesante), dar cu
toate acestea este apropae totdeauna necesară parcurgerea acestei etape în procesul de data mining.
b) Integrarea datelor
c) SelecŃia datelor
În aceasta etapă se va identifica sursa de date din care se vor selecta datele necesare
rezolvării problemei. După ce se va identifica sursa de date, trebuie luată o decizie cu privire la
7
Bissantz, Küppers (1996 a), p. 36; Brethenoux (1997), p. 6; Fayyad et al. (1996), p. 9 f.; Mannila (1997)
16
intervalul de timp din care se vor alege datele. De asemenea, alte aspecte importante ale acestei
faze includ estimări ale datelor în termeni de volum şi calitate.
Luând în considerare aceste patru aspecte (valabilitatea datelor, volumul lor, intervalul
de timp şi calitatea datelor), selecŃia datelor va putea fi realizată şi va reprezenta un punct de
cotitură în procesul de data mining.
aspectul valabilităŃii datelor se referă la problema dacă datele sunt accesibile pentru toŃi şi
sunt valabile. Cu toate că există un volum mare de date, de tot felul, lipsesc piese importante de
informaŃii. Prin urmare, este necesară o cercetare mai în amănunt şi sistematică în vederea obŃinerii
datelor necesare, ideale în găsirea unei soluŃii rezonabile a problemei.
volumul de date este în strânsă legătură cu valabilitatea datelor. În funcŃie de volumul de
date ce va fi explorat, se pot ditinge trei modele: sisteme data mining de sine stătătoare (pretabile
pentru seturi mici de date); sisteme data mining bazate pe client (pentru probleme mici sau medii)
– datele care vor fi explorate sunt stocate într-o bancă de date pe server, putând fi accesate prin
intermediul unei infrastructuri client/sever; sisteme data mining bazate pe server (pentru cantităŃi
mari de date – data warehouse).
intervalul de timp al datelor care vor fi utilizate. Intotdeauna există o întârziere între cauză
şi efect în procesul de identificare a modelelor. Prin urmare, în etapa de selecŃie a datelor, trebuie
luată în considerare un interval de timp specific problemei de rezolvat. Acest interval trebuie
divizat în două perioade: observarea (cauza) şi prelucrarea datelor (efectul).
calitatea datelor utilizate este influenŃată în principal de cantitatea de date care lipseşte.
Un pas important al etapei de selecŃie a datelor este documentarea corectă a tuturor
acŃiunilor desfăşurate.
d) Transformarea datelor
Odată realizată selecŃia datelor, o etapă necesar a fi urmată este cea de transformare a
datelor. Motivul parcurgerii acestei etape constă în faptul că majoritatea aplicaŃiilor data mining
pot procesa doar tabele (flat tabels), în timp ce aproape toate datele sunt structurate în tabele
relaŃionale. În mod normal, această fază este una foarte costisitoare, ocupând aproximativ 80% din
procesul de data mining, depinzând în foarte mare măsură de volumul de date şi calitatea datelor
analizate. Această fază este mult mai tehnică decât celelalte, fiind un apanaj al experŃilor IT. Cu
toate acestea, colaborarea cu utilizatorii este imperios necesară. Printre acŃiunile ce urmează a fi
întreprinse, se numără:
generarea tabelelor. Actiunea urmăreşte scopul integrării datelor stocate în diferite baze
de date sau care există deja într-un depozit de date. Sunt identificate trei transformări de bază a
datelor: join-ul tabelelor, agregarea înregistrărilor, derivarea atributelor (deriving attributes)
procesarea datelor. Pe lângă generarea tabelelor, tot mai există anumite lipsuri în datele
reale, astfel că ele trebuiesc procesate. Printre procedurile utilizate sunt: procesarea valorilor care
lipsesc, curăŃarea datelor “murdare”, alinierea datelor, transformarea valorilor în logaritmi,
exemplificarea (sampling).
producerea de exemple aleatoare, care vor fi utilizate în etapele următoare, constituind
baza generării de modele.
Este foarte important ca tehnicile prezentate anterior să fie folosite în mod “inteligent”,
pentru a reduce costurile etapei de transformare a datelor.
17
e) Extragerea cunoştinŃelor
f) Evaluarea rezultatelor
18
2.1.4.2 FuncŃii de extragere a cunoştinŃelor din baze de date
FuncŃiile sistemului data mining sunt utilizate pentru a specifica tipurile de modele ce
trebuiesc descoperite în operaŃiunile sistemului.
În general, sarcinile data mining se împart în două categorii: descriptive şi predictive. Cele
descriptive caracterizează proprietăŃile generale ale datelor din bazele de date. Sarcinile predictive
execută inferenŃe asupra datelor curente pentru a face previziuni.
DistincŃia între descriere şi predicŃie nu este foarte strictă. Modelele predictive pot fi şi
descriptive, iar acestea din urmă pot fi folosite pentru predicŃii, atât timp cât ele sunt
comprehensibile. Atât predicŃia cât şi descrierea sunt asociate cu patru operaŃii de bază 8:
• segmentarea. Un scop al segmentării este identificarea unui set finit de segmente pentru a
descrie datele. În acest sens, obiectele cu aceleaşi caracteristici sunt combinate în aşa
numitele segmente. Este foarte important ca în cadrul segmentelor să existe un foarte înalt
grad de corespondenŃă, iar segmentele între ele să fie cât mai diferite. Cu ajutorul
segmentării este posibilă recunoaşterea unor şabloane în comportamentul clienŃilor, de
exemplu.
• clasificarea. Scopul principal al acestei operaŃiuni constă în folosirea conŃinutului unei
baze de date, care reflectă date istorice, pentru a genera automat un model care să ajute la
înŃelegerea datelor existente şi să prezică comportamentul viitor. Exemple ale acestei
metode se referă la clasificarea grupurilor de clienŃi şi caracterizarea lor. Principala
deosebire dintre segmentare şi clasificare este aceea că operaŃia de clasificare foloseşte
clase predefinite, cărora le sunt ataşate date.
• analiza dependenŃelor dintre legături descrie dependenŃele, legăturile sau secvenŃele
semnificative dintre variabile. Este o funcŃie foarte importantă, deoarece ajută la
descoperirea unor reguli care caracterizează aceste legături. Modelele de dependenŃă există
pe două nivele: nivelul structural care specifică ce variabile sunt dependente unele de altele
şi nivelul cantitativ care specifică intensitatea acestor dependenŃe (folosind probabilităŃile).
Un exemplu de aplicare al acestei metode este următorul: la nivel structural, un sistem data
mining poate descoperi faptul că acei clienŃi care au un împrumut de la bancă şi cei care au
un cont deschis în bancă sunt dependenŃi unii de ceilalŃi; la nivel cantitativ, sistemul poate
spune că în 60% din cazuri clienŃii care au făcut un împrumut au şi un cont deschis în
bancă.
• identificarea modificărilor şi deviaŃiilor este opusul clusterizării. Sistemele data mining
caută acele obiecte care prezintă caracteristici diferite în raport cu modelele normale. De
asemenea, se concentrează asupra descoperirii celor mai importante modificări ale datelor,
în raport cu masurătorile anterioare sau cu valorile normale. Această funcŃie este deseori
folosită în activitatea de conmtrol a unei companii.
Din alt punct de vedere, funcŃiile unui sistem data mining constau în: clasificare, asociere,
descoperirea şabloanelor secvenŃiale şi segmentarea/clusterizarea.
8
Boehrer (1997), p. 22; Bissantz, Küppers (1996 a), p. 36.; Edelstein (1996), p. 2; Fayyad et al. (1996 b), p.
31 f. Glimozzi (1996), S. 169 f.; Moxon (1996), p. 1
19
a) Clasificarea
Clasificarea este procesul de găsire a modelelor care descriu şi disting clasele de date sau
concepte în scopul utilizării modelului pentru prezicerea clasei de obiecte a cărei caracteristică nu
se cunoaşte. Presupunem că şeful departamentului de vânzări al unei companii doreşte o clasificare
a unui set mare de articole vândute, pe baza a trei tipuri (clase) de rezultate la o campanie de
vânzări: rezultate bune, rezultate medii şi nici un rezultat. De asemenea, el doreşte să obŃină un
model pentru fiecare clasă bazat pe caracteristicile articolului (preŃ, calitate, locul de provenienŃă,
tip, categorie). Clasificarea rezultată îmbracă forma unui arbore de decizie care ar putea avea
preŃul ca factor principal de distincŃie între clase. Analiza poate merge în profunzime în funcŃie şi
de alŃi factori de caracterizare, cum ar fi calitatea sau locul de provenienŃă a articolului. Un astfel
de arbore de decizie poate ajuta la elaborarea unei campanii viitoare de vânzări mult mai eficiente.
Instrumentele specifice sistemului data mining trebuie să infereze un model din baza de
date, ceea ce determină utilizatorul să definească una sau mai multe clase. Apoi, el trebuie să
definească condiŃiile pentru fiecare clasă. Odată stabilite clasele, sistemul va trebui să infereze
regulile care guvernează clasificarea, prin urmare sistemul va trebui să fie capabil să găsească
descrierea fiecărei clase. Descrierea va trebui să se refere la atributele predictive ale setului de
învăŃare, astfel încât să fie îndeplinite numai exemplele pozitive şi nici unul din cele negative. O
regulă este corectă dacă descrierea ei acoperă toate exemplele pozitive şi pe nici unul din cele
negative. Categoriile de reguli sunt: ragulile exacte, regulile puternice şi cele probabilistice.
b) Asocierea
20
Algoritmul determină mai întâi suportul tuturor atributelor singulare (mulŃimile de
cardinalitate 1) din setul de date şi şterge toate atributele singulare fără suport adecvat. Apoi,
pentru toate atributele singulare cu suport adecvat, construieşte perechi de atribute (mulŃimi de
cardinalitate 2). Dacă nu există nici o pereche, se opreşte, altfel determină suportul pentru
perechile construite.
Pentru toate perechile „candidate” de atribute cu suport potrivit se construiesc mulŃimi de
cardinalitate 3 (triplete). Din nou, dacă nu există triplete, algoritmul se opreşte, altfel se determină
suportul pentru tripletele construite. Procesul continuă în mod asemănător până când nu se mai pot
produce mulŃimi candidate.
De multe ori, în bazele de date reale unele atribute (câmpuri) sunt simbolice iar altele sunt
numerice. Aplicarea algoritmului Apriori necesită discretizarea atributelor numerice ca o fază de
preprocesare a datelor.
Discretizarea transformă valorile atributelor continue într-un număr finit de intervale şi
asociază fiecărui interval o valoare discretă. Procesul are de regulă două etape. Mai întâi se
determină numărul de intervale discrete (de cele mai multe ori utilizatorul specificând acest număr
direct sau o regulă euristică pentru obŃinerea sa). Apoi trebuie determinată lăŃimea sau graniŃele
fiecărui interval, dată fiind gama de valori ale atributului continuu prelucrat.
În literatura de specialitate, există mai multe abordări cu privire la modalitatea de
discretizare. Discretizarea de egală lăŃime divide gama de valori în k intervale de lăŃime egală.
Discretizarea de egală frecvenŃă divide valorile sortate ale atributului considerat în k intervale
astfel încât fiecare interval să conŃină n / k valori adiacente (posibil duplicate). Ambele metode,
deşi simple, pot determina pierderi serioase de informaŃii.
În prezenta abordare s-a utilizat o metodă de discretizare mai eficientă, bazată pe tehnici de
clusterizare nesupervizată. Gruparea obiectelor în clase este o capacitate naturală şi deosebit de
utilă. Există numeroase reguli aplicabile pentru atribuirea de grupuri pentru diversele obiecte, adică
pentru categorizarea lor. Analiza clusterizării este o colecŃie de metode statistice pentru gruparea
obiectelor în clase (sau clustere). Membrii unei clase vor avea unele proprietăŃi comune, astfel
încât să se maximizeze similaritatea intracategorială şi să se minimizeze similaritatea
intercategorială. Clasificarea mai are şi efectul de a reduce dimensionalitatea datelor prin reducerea
numărului de instanŃe care sunt prelucrate. Problema descoperirii de subclase într-o mulŃime de
exemple dintr-o clasă dată se numeşte învăŃare nesupervizată.
Algoritmul k-means este un instrument bine cunoscut de clusterizare. Presupunând n
vectori de trăsături x1, x2, ..., xn şi k clustere, k < n, fie mi valoarea medie a vectorilor din clusterul i.
Pentru separarea clusterelor, se poate utiliza un clasificator bazat pe distanŃa minimă. Se poate
spune că un item x aparŃine clusterului i dacă || x – mi || este minimă pentru toate cele k distanŃe
posibile. Folosirea distanŃei euclidiene s-a dovedit a da rezultate bune în practică.
S-a constatat că rezultatele obŃinute prin k-means depind de alegerea valorilor medii iniŃiale
ale clusterelor. De aceea, o variantă pentru îmbunătăŃirea performanŃelor algoritmului este rularea
sa multiplă şi alegerea partiŃionării celei mai bune. O măsură a calităŃii clusterizării este dată de
calcularea entropiei claselor rezultate. Din mai multe variante de clusterizare, varianta optimă are
cea mai mare sumă a entropiilor, ceea ce atestă faptul că datele din clustere sunt cât mai omogene:
k
H c = −∑ pi log pi ,
i =1
K * = arg max H c ,
c
21
unde Hc este entropia unei clusterizări, pi sunt probabilităŃile de apartenenŃă ale valorilor la
un anumit cluster (c), iar K* este strategia optimă de clusterizare.
d) Segmentarea / clusterizarea
Un cluster este un set de obiecte grupate împreună din cauza similitudinii lor. Segmentarea
şi clusterizarea sunt procese prin care se creează o partiŃie, astfel încât toŃi membrii unui set de
partiŃii să fie similari prin raportarea la o unitate de măsură. Analiza clusterelor se referă la clase de
obiecte fără consultarea unei caracteristici cunoscute a clasei. În cazul unei companii, acest proces
poate identifica subpopulaŃii omogene de clienŃi. Aceste grupuri (clustere) pot fi reprezentate de
grupurile Ńintă pentru marketing.
Clusterizarea este o tehnică foarte puternică, prin care se transformă câteva masurători
similare intuitive în masurători cantitative. Când învăŃarea nu este supervizată, sistemul trebuie să
descopere clusterele din baza de date. Prin urmare, el trebuie să descopere subseturi de obiecte
asociate din setul de învăŃare şi apoi trebuie să găsească descrieri ale fiecărui subset.
e) Categorizarea
Categorizarea (sau clasificarea) este procesul de atribuire a instanŃelor unor clase pe baza
caracteristicilor acestora, fiind una din cele mai studiate activităŃi legate de raŃionament, deoarece
se dovedeşte utilă în aproape orice domeniu al cunoaşterii umane. Tehnicile de clasificare
automată dezvoltate în cadrul cercetărilor de învăŃare automată şi statistică prezintă performanŃe
foarte bune, în condiŃiile în care se furnizează suficiente date care să pună în evidenŃă relaŃiile
dintre categorii şi caracteristicile lor.
Clasificările precise necesită cunoştinŃe despre relaŃiile dintre categoriile posibile şi
modelele valorilor atributelor întâlnite în date. Faza de învăŃare a clasificării se ocupă de
asamblarea acestor cunoştinŃe. ÎnvăŃarea este mai dificilă atunci când datele primite de la un stimul
sunt insuficiente pentru explicarea categorizării. Unele valori pot lipsi sau pot fi afectate de
zgomot, categorizarea poate depinde de atribute inexistente în setul de date sau pot exista
interacŃiuni între atributele luate în considerare şi cele omise. De asemenea, relaŃiile înseşi se pot
modifica în timp.
22
PredicŃia este simplă odată ce au fost determinate regulile de categorizare. Dacă arborele
este complet, orice nouă instanŃă poate fi plasată într-o categorie unic precizată. Un alt tip de
predicŃie este detectarea tendinŃelor spaŃiale. O tendinŃă spaŃială se defineşte ca o schimbare
regulată a unuia sau mai multor atribute nespaŃiale în momentul distanŃării de un obiect de start dat
o. În acest caz, căile de vecinătate care încep în o sunt utilizate pentru modelarea mişcării. De
asemenea, se poate efectua o analiză de regresie pe valorile atributelor obiectelor din calea de
vecinătate pentru a descrie regularităŃile schimbărilor; astfel, distanŃa faŃă de o este variabila
independentă iar diferenŃele valorilor atributelor sunt variabilele dependente ale regresiei.
Corelarea valorilor atributelor observate cu valorile prezise de funcŃia de regresie oferă o măsură a
încrederii tendinŃelor descoperite.
Pentru ca procesul de extragere a cunoştinŃelor din baze de date să aibă succes şi finalitate,
astfel ca un sistem data mining să ofere soluŃiile problemei de rezolvat, trebuie efectuate o serie de
tehnici de extragere a cunoştinŃelor din baze de date. În continuare vor fi prezentate cele mai
uzuale tehnici de extragere a cunoştinŃelor din baze de date.
De obicei, sistemele data mining nu furnizează nici o tehnică de extragere a cunoştinŃelor
din baze de date, mai mult, ele folosesc una sau mai multe tehnici, dintre care utilizatorul trebuie să
aleagă. De obicei, criteriul principal în decizia de selecŃie a unei tehnici îl reprezintâ specificul
problemei de rezolvat. În timp ce există doar patru operaŃii principale de extragere a cunoştinŃelor,
există o varietate de tehnici care fac posibile aceste operaŃii9.
a) ReŃele neuronale
Una din tehnicile utilizate de data mining este cea a reŃelelor neuronale. Dezvoltarea acestei
tehnici a avut loc în ultimul deceniu, în comunitatea “inteligenŃei artificiale”. Tehnica este inspirată
din modelul biologic de organizare a creierului uman şi a sistemului nervos uman.
ReŃelele neuronale sunt modele de date care simulează structura creierului uman. Ele
combină aritmetic valorile variabilelor unei înregistrări cu scopul de a face deducŃii din acea
înregistrare. ReŃelele neuronale au un avantaj particular, deoarece ele oferă mijloace eficiente de
modelare a problemelor mari şi complexe în care există sute de variabile independente şi care
interacŃionează între ele.
Ca şi creierul, reŃelele neuronale învaŃă dintr-un set de intrări (input-uri) şi modifică
parametrii modelului în concordanŃă cu acestei noi cunoştinŃe pentru a găsi şabloane în setul de
date. Procesul construirii modelului se dezvoltă prin descoperirea de legături între variabilele de
intrare care produc cele mai corecte rezultate. Acest lucru se realizează prin “învăŃarea “ reŃelei
neuronale cu date.
O reŃea neuronală (fig. 8) începe cu un nivel al intrărilor, unde fiecare nod corespunde unei
variabile independente. Aceste noduri sunt conectate cu alte noduri din nivelul ascuns. Nodurile
din acest nivel pot fi conectate cu alte noduri din alt nivel ascuns sau cu nivelul de ieşiri (output-
uri). Acest nivel constă din una sau mai multe variabile dependente.
9
Mihai Horia Zaharia, Aflori Cristian, Şova Ioan, Amarandei Cristian, Florin Leon - Raport de cercetare
„Prototipul unui sistem GIS Web inteligent pentru extragerea cunoştinŃelor din baze de date folosind agenŃi inteligenŃi”
23
Ieş
iri
Int
rari Niv
el ascuns
Fig. 8 - ReŃea neuronală cu un singur nivel ascuns
b) Arbori de decizie
Această tehnică este folosită de multe sisteme data mining şi constă într-un mod de
reprezentare al unei serii de reguli care conduce la o valoare sau la o clasă de valori. Aşa cum
reiese şi din denumire, se construieşte o structură de tip arborescent care reprezintă un set de
decizii utilizate pentru a prezice care înregistrări dintr-un set de date nou şi neclasificat vor avea
anumite valori clasificate.
De exemplu, o bancă doreşte să clasifice doritorii de credite în riscuri mici sau mari. În fig.
nr.3 este reprezentat un arbore decizional simplu, cu toate componentele sale de bază (nodul
decizional, ramurile şi frunzele), care rezolvă această cerinŃă.
Prima componentă din structură (venitul > 40000$) este un nod decizional, care indică un
test ce trebuie efectuat. Rezultatul acestui test detrmină structura să se împartă în două branşe
(ramuri), fiecare reprezentând un posibil răspuns (Da sau Nu). În funcŃie de algoritm, fiecare
ramură poate conŃine două sau mai multe ramuri. Fiecare ramură va conduce fie către un nod
decizional (Loc de muncă > 5ani) sau către rădăcina arborelui (frunză sau clasă de ieşiri – Risc mic
sau Risc mare).
Parcurgând un arbore decizional, poŃi clasifica un caz, decizând ce ramură să parcurgi,
pornind de la nodul decizional cel mai de sus şi trecând prin fiecare nod al arborelui, până când
ajungi la o clasă de ieşiri (frunză).
24
Venit > 40000
u a
Loc de muncă Credit mare
> 5 ani
a u a u
R Risc mare Risc mare Risc mic
isc mic Fig. 9 - Arbore decizional simplu
Extragerea de cunoştinŃe din baza de date este folosită pentru a construi arbori decizionali,
prin examinarea datelor şi inducerea de reguli care formează arborele. Pentru a construi op astfel
de structură se utilizează o serie de algoritmi, printre care: CHAID (Chi-squared Automatic
Interaction Detection), CART (Classification and Regression Trees), Cautarea (Quest) şi C5.0.
Multe proceduri ale unui arbore de decizie se bazează pe algoritmul ID3 al lui Quinlan. Principiul
utilizat este divizarea recursivă. Se porneşte de la un grup mare de date, apoi se inserează câte o
ramură care va împărŃi datele în două sau mai multe subgrupuri de date.
Arborii decizionali utilizaŃi pentru a prezice variabilele categorice poartă denumirea de
arbori de clasificare, pentru că ei introduc instanŃe în categorii sau clase. Arborii decizionali
utilizaŃi pentru a prezice variabile continue poartă denumirea de arbori de regresie.
Arborii decizionali pot fi foarte mari şi pot deveni complecşi, în funcŃie de volumul de date
supus analizei. De asemenea, ei pot lucra foarte bine cu date non-numerice.
C4.5 este un algoritm de inducŃie a arborilor de decizie, fiind o extensie a algoritmului ID3
care spre deosebire de acesta rezolvă unele probleme precum supra-potrivirea datelor, tratarea
atributelor continue şi a atributelor cu valori lipsă, mărirea eficienŃei computaŃionale. Algoritmul
C4.5 generează un arbore de decizie prin partiŃionarea recursivă a mulŃimii de date, printr-o
strategie de parcurgere în adâncime (engl. “depth-first”). Algoritmul ia în considerare toate testele
posibile pentru partiŃionarea mulŃimii de date şi selectează testul care aduce cel mai mare câştig
informaŃional. Dacă prin entropie înŃelegem „impuritatea” unei mulŃimi de exemple de antrenare S,
putem estima eficienŃa unui atribut pentru clasificarea acestor exemple. Câştigul informaŃional
(engl. “information gain”) măsoară reducerea aşteptată a entropiei cauzată de partiŃionarea
mulŃimii după valorile unui atribut A.
card ( S v )
IG ( S , A) = H ( S ) − ∑ H (Sv ) ,
v∈Val ( A ) card ( S )
unde Val(A) este mulŃimea valorilor atributului A, Sv este submulŃimea lui S pentru care
atributul A are valoare v, iar H(S) este entropia mulŃimii S cu n clase, fiecare cu probabilităŃile de
apariŃie pi:
n
H ( S ) = ∑ − pi log 2 pi .
i =1
Pentru fiecare atribut discret se propune un test cu un număr de rezultate egal cu numărul
de valori distincte ale atributului respectiv. Pentru fiecare atribut continuu se aleg teste binare care
implică toată gama de valori ale atributului. După găsirea partiŃiilor de date, procesul se reia în
mod recursiv asupra acestora. O altă caracteristică importantă a algoritmului este simplificarea
25
(engl. “pruning”) arborelui după terminarea învăŃării, adică eliminarea testelor care nu îşi aduc un
aport semnificativ la problema de decizie globală. O variantă ulterioară a algoritmului este C5,
utilizat în sisteme comerciale.
Baza de date D
TID Items
100 ACD
200 B CE
300 ABCE
400 BE
Fig.10 - Baza de date pentru reguli asociative.
Algoritmul:
L1 = {frequent 1-itemsets};
for(k=2;Lk-1<>0;k++) {
Ck = multimea noilor candidati;
for all transactions t D
for all k-subsets s of t
if (s Ck) s.count++;
Lk = {c Ck | c.count>= minsupp} }
Multimea elementelor care apar frecvent = k Lk;
26
Pentru o problemă generală de extragere de reguli asociative, fiind date m elemente, sunt
potential 2m multimi de elemente frecvente. Descoperirea acestor multimi cere o putere de calcul
mare, memorie şi tehnici de I/O. Pentru fiecare iteratie a algoritmului baza de date este scanata
pentru generarea noilor candidati.
c) InducŃia regulilor
Această tehnică este similară cu arborii de decizie. Ea permite clasificarea datelor folosind
caracteristici de distincŃie. Rezultatul este dat de setul de reguli de tip if..then extrase din baza de
date. Procesul este unul de invatare supervizata, dintr-o mulŃime de exemple. Prin analizarea
acestor exemple se pot induce concepte generale care vor fi folosite pentru clasificarea datelor
viitoare. Clasificarea unor date de intrare ia sfirsit atunci când este îndeplinită o condiŃie de oprire.
Rezultatele date de un arbore de decizie pot fi transformate într-un set de reguli şi invers.
DiferenŃa dintre tehnicile bazate pe inducŃia regulilor şi cele bazate pe reŃelele neuronale
este că rezultatele primelor pot fi înŃelese de oameni. Tehnica poate fi aplicată pe o scală largă de
exemple, premiza importantă fiind existenŃa unor seturi istorice de date pentru învăŃare.
27
2.2 Tehnologii de programare a algoritmilor de Business Intelligence
2.2.1. MICROSOFT VISUAL STUDIO
Visual Studio include un editor de cod ce suportă IntelliSense şi refactoring. Alte unelte
cuprinse includ: un designer de formulare pentru construirea de aplicaŃii cu interfeŃe grafice, web
designer, designer de clase şi designer pentru proiectarea schemei bazei de date. Acesta permite
adaugarea de plug-în-uri pentru a îmbunătăŃi funcŃionalitatea la aproape orice nivel – de la
adăugarea de suport pentru sistemele de control sursă (cum ar fi Subversion şi Visual SourceSafe)
pana la adăugarea de noi toolset-uri precum editori şi designer vizual pentru limbaje specifice unui
domeniu sau toolset-uri pentru alte aspecte ale ciclului de viaŃă a software-ului de dezvoltare (cum
ar fi clientul de Team Foundation Server : Team Explorer).
Visual Studio suporta diverse limbaje de programare (într-o masură variabilă) de către
editorul de cod şi depanator, cu condiŃia ca un serviciu specific limbajului să fie autorizat.
Limbajele built-în includ: C / C + + (prin Visual C + +), VB.NET (prin Visual Basic. NET), C #
(prin Visual C #). Suport pentru alte limbaje, cum ar fi F#, Python, şi Ruby, printre altele, au fost
puse la dispoziŃie prin intermediul serviciilor de limbaje care trebuie să fie instalate separat. Se
10
http://en.wikipedia.org/wiki/Visual_studio
28
acceptă, de asemenea, XML / XSLT, HTML / XHTML, CSS şi JavaScript. Limbajele specifice
versiunilor de Visual Studio sunt însa într-un număr mai limitat şi sunt oferite în pachete denumite
Microsoft Visual Basic, Visual J #, Visual C #, Visual C + +.
Pană la apariŃia lui Visual Studio 2008, Micosoft a dezvoltat, treptat, începand cu anul 1998
urmatoarele versiuni de Visual Studio: Visual Studio 6, Visual Studio 2002, Visual Studio 2003,
Visual Studio 2005. Acestea au cunoscut un succes rasunator în toata lumea, fiind instrumentele
de capatai ale oricarui programator.
Visual Studio .NET Professional permite construirea rapidă a noilor generaŃii de servicii şi
aplicaŃii desktop şi web care se adresează oricărui echipament şi se integrează cu limbajele de
programare şi sistemele de operare existente.
Framework-ul .NET
29
Fig. 13 – Evolutia framework-ului .NET
.NET Framework 3.5 vine cu multe modificari fata de versiunea lansata anterior 2.011:
a. modulul “3.0″ : WPF (Windows Presentation Foundation), WCF (Windows
Communication Foundation), WF (Workflow Foundation)şi CardSpace - seturi bogate de clase
pentru prezentare / UI, comunicatie intre aplicatii unitarizata, management de fluxuri şi
administrare a identitatii.
b. LINQ - un metalimbaj de interogare gen SQL direct din codul .NET. „LINQ to
SQL” formează pratic un ORM autentic. ORM (Object Role Modeling) reprezintă o descriere
generală a bazei de date, utilizând simboluri intuitive (pentru obiecte şi atribute) şi un limbaj
natural pe care atât utilizatorii cât şi proiectanŃii bazei de date le pot întelege şi care verbalizează
(exprimă) relaŃiile dintre acestea, utilizând o gama larga de constrângeri care surprind şi forŃeaza
regulile de business. Exista şi LINQ to XML, LINQ to Entities şamd.
c. ASP.NET AJAX (anterior denumit “Atlas”) este integrat alaturi de noile funcŃionalităŃi
ASP.NET
d. C# 3.0 cu proprietăŃi automate, iniŃializatoare automate de obiecte şi de colecŃii; metode
extensie pentru clase existente; expresii lambda (expresii ce au ca rezultat o functie); clase
anonime şi asa mai departe
e. Optimizari ale Garbage Collector-ului
a. PerformanŃă mărită
b. JavaScript intellisense şi debugging
c. CSS intellisense
d. Split-view la pagini ASP.NET .markup / WYSIWYG (este un acronim pentru „what you
see is what you get”, expresie engleză ce se traduce aproximativ cu: "ceea ce se obŃine este chiar
ceea ce se vede)
e. Multi-targetting support ( poŃi scrie un proiect/soluŃie pentru .NET 3.0, 2.0 sau 3.5)
f. Syndication Framework
g. Unelte Silverlight
11
http://ro.wordpress.com/tag/visual-studio/
30
2.2.2. DEVEXPRESS
Implementarea unei soluŃii de tip BI este o mare provocare atât pentru specialiştii din
domeniul managementului, cât şi pentru cei din domeniul informatic. Pentru a reuşi o finalizare cu
succes a unui astfel de sistem s-a recurs la utilizarea unor componente „third-party”: componente
dezvoltate de alte companii care ofera un API (Application Programming Interface) ce permite
integrarea acestor librarii cu sistemul de BI dezvoltat.
Developer Express este o companie producătoare de software cu sediul în Statele Unite.
Aceasta creează componente şi unelte de asistare pentru dezvoltatori în diverse limbaje de
porgramare precum: Borland Delphi, C++ Builder şi Microsoft Visual Studio. Cea mai mare parte
a liniei de produse sunt componente de VCL, .NET Windows Forms şi ASP.NET care creeaza
elemente de UI specifice pentru Microsoft Winodows şi pentru aplicatiile Microsoft
Office.
Comunitatea Devexpress cuprinde peste 17.000 de utilizatori la ora actuala şi
este în continuă creştere. Produsele lor oferă rapiditate şi uşurinŃă în dezvoltare şi o
interfaŃă grafică atractivă.
Developer Express a câştigat numeroase premii din industrie pentru produsele
sale. Pe data de 6 iunie 2008, DevExpress a anunŃat că Dxperience a fost numit
castigator al “Best of Tech-Ed 2008 Developer Attendee's Pick Award” de către Penton
Media's Windows IT Pro® and SQL Server Magazine®.
Open source descrie practica de a dezvolta anumite produse finite, permiŃând accesul
utlizatorilor să acŃioneze liber asupra procesului de producŃie sau dezvoltare. Unii specialişti
definesc "open source" ca un concept filozofic iar alŃii consideră că este o metodologie pragmatică.
Fiind foarte frecvent utilizat în dezvoltarea de programe software, mulŃi specialişti în
elaborarea de programe au impresia că "open source" este o noŃiune specifică acestei activităŃi. În
realitate, "open source" se poate aplica în orice domeniu în care se produce sau dezvoltă un produs.
Există exemple de asemenea aplicaŃii şi în tehnologie, medicină, învăŃământ, cultură şi altele.
Open-source reprezintă dezvoltarea de programe software de către o comunitate, de către o
companie sau de către o persoană şi oferirea lor spre folosire sau îmbunătăŃire sub licenŃă GPL.
Software-ul liber e caracterizat de libertatea acordată utilizatorilor săi de a-l utiliza, copia,
distribui, studia, modifica şi îmbunătăŃi. Mai exact, e vorba de patru forme de libertate a
utilizatorilor săi12:
Iată o serie de motive pentru care software-ul poate fi dezvoltat (mai bine) în stil ``liber''
decît ca secret comercial.
Depanarea se poate face în paralel. Cu cît mai mulŃi inşi utilizează un program cu atît e mai
simplu de depistat ce nu merge bine.
Fiabilitatea programelor free este mult mai bună decît a celor comerciale, datorită faptului
că practic oricine poate căuta şi depana bug-uri.
Rata de inovare este mult sporită de prezenŃa software-ului free; o soluŃie odată descoperită
este disponibilă tuturor, şi pe baza ei se poate construi o alta şi mai eficace.
ComunităŃi şi aplicatii open source implicate în dezvoltarea aplicaŃiei:
Open Forecast – librarie de functii de prognoza ce implementeaza diverşi algoritmi de
analiză a seriilor de date.
The Code Project – o comunitate web de dezvoltatori ce cuprinde peste 4.1 milioane
utilizatori şi oferă articole şi aplicatii din diverse domenii.
KdKeys.net - comunitate de data mining. Cuprinde în jur de 42,973 utilizatori.
Sourceforge - este cea mai mare sursă de dezvoltare de software open source.
SourceForge.net oferă găzduire gratuită a software-ului Open Source, proiecte de dezvoltare cu
resurse centralizate pentru gestionarea proiectelor, problemelor, comunicaŃiei şi codulului. Proiecte
intregistrate: 179,981, utilizatori: 1,873,929.
Codeplex.com – wesite pentru gazduirea proiectelor open source oferit de Microsoft
12
http://ro.wikipedia.org/wiki/Open-source
32
CAPITOLUL 3. PROPUNEREA ŞI REALIZAREA UNEI SOLUłII
INFORMATICE DE BUSINESS INTELLIGENCE
33
3.2 Analiza sistemului informatic propus
Cazurile de utilizare specifică ce trebuie să facă sistemul ca răspuns către actori. RelaŃia
dintre un actor şi un caz de utilizare este reprezentată numai când actorul participă la execuŃia
cazului de utilizare, nu şi când actorul este beneficiarul cazului de utilizare fără a participa la
efectuarea acestuia. Deci, un caz de utilizare este o mulŃime de scenarii referitoare la utilizarea
unui sistem.
Date
Manager nivel
Creare model operational
<<realize>>
<<include>>
Cunostinte Decizii
35
B. Prezentarea detaliată a cazurilor de utilizare
Date
<<include>>
<<include>>
Crearea surselor
Analist BI
(f rom BIS - Modelul UI <<realize>>
(contine clasele de interf ata))
Manager
Definirea vizualizarilor Selectare sursa
(f rom BIS - Modelul UI
(contine clasele de interf ata)) <<realize>> Raport
<<include>>
Tabel
Selectare model
Crearea aplicatiilor
Grafic
model Cub
Actorul este Analistul, sau Managerul care poate fi prin extensie considerat un analist dacă
este cel care se ocupă de proiectarea modelului afacerii. Crearea porneşte de la date şi se
finalizează printr-un model. Această evoluŃie se poate urmări în cadrul diagramei pe verticală.
Prima etapa este cea de definirea a datelor, care cuprinde la randul sau:
specificarea conexiunilor,
procesele ETI (Extragere, Transformare, Incarcare) specifice şi
definirea seturilor de date (colecŃii de date sub formă de tabele sau dataset-uri).
Următorul caz de utilizare se referă la definirea vizualizărilor. Acesta include două
subcazuri de utilizare :
1. Selectarea sursei - este necesară deoarece vizualizarea se creează pe baza unor
informaŃii concrete
2. Selectarea modului de vizualizare - adică una dintre cele 4 reprezentari: tabel, raport,
grafic, cub.
Ultimul caz de utilizare în definirea modelului este crearea aplicaŃiilor (modele compozite)
care includ definirea anterioară şi selectarea perspectivelor asupra datelor grupate dupa domenii şi
utilizări concrete.
36
B.2 Cazul de utilizare „Analiză Date”
Segmentarea/Clusterizar
ea
Clasificarea
Analiza dependentelor
Manager intre legaturi
(f rom BIS - Modelul UI
(contine clasele de interf ata))
Model de regresie
polinomiala
Model exponential
Cazul de utilizare „Analiză date” se referă la utilizarea tehnologiilor de Data Mining pentru
extragerea cunoştinŃelor din date. Acest lucru se realizează prin utilizarea diverşilor algoritmi de
inteligenŃă artificială, data mining, statistică, etc. prezentate detaliat în capitolul 2 al acestei lucrări.
Modelele de analiză se axează în principal pe 2 directii:
o Modele descriptive
o Modele predictive
Modelele descriptive încearcă să clasifice, sorteze, organizeze datele pentru a identifica
regularităŃi, dependenŃe, grupări diverse, etc.; pe cand modelele predictive încearcă să estimeze o
evoluŃie posibilă a datelor pe baza informaŃiilor istorice furnizate. Acest modul al aplicaŃiei
încearcă să implementeze cat mai multe dintre cunoştinŃele din domeniile prezentate. Optimizarea
şi utilizarea mai pe larg a acestor algoritmi rămâne a fi însă una dintre direcŃiile de dezvoltare
propuse pentru acest sistem informatic.
37
3.2.2 Nivelul logic
Diagrama de secvenŃă este una dintre cele mai potrivite pentru a modela interacŃiunile între
obiectele sistemului. O diagramă de secvenŃă pune în evidenŃă transmiterea mesajelor de-a lungul
timpului. Obiectele şi actorii sunt reprezentaŃi la capătul de sus al unor linii punctate. Aceste linii
reprezintă linia de viaŃă a obiectelor, adică timpul cum este el perceput de către obiecte. Scurgerea
timpului este reprezentată în cadrul diagramei de sus în jos. Un mesaj se reprezintă printr-o săgeată
de la linia de viaŃă a obiectului care trimite mesajul la linia de viaŃă a celui care-l primeşte. Ordinea
în care sunt reprezentate obiectele (de la stânga la dreapta) nu contează, dar pentru claritate este
mai bine ca obiectele să fie aşezate în ordinea în care iau parte la interacŃiune. Timpul cât un obiect
este activat este reprezentat ca un dreptunghi subŃire care acoperă bine linia de viaŃă.
38
Utilizator Business UI Model Date Data Access Modul analiza
Returnare obiect
Definitie conexiune
Conexiune
Return model
Afisare
Return aplicatie
Aplicatie noua
Return rezultat
Afisare
39
3.2.2.2 Diagrama de colaborare
3: Testare conexiune
9: Get Data
6: Conexiune
12: Vizualizare date
16: Afisare
20: Aplicati e noua 22: Soli citare prelucrare
25: Afisare
23: Procesare
Modul
analiza
13
C. Bodea – „Sisteme informatice economice. Analiza si proiectarea orientate obiect utilizand UML”
40
3.3 Etapa de proiectare
3.2.3.1 Diagrama de clase
41
Fig.21 Analiza nivelului static cu ajutorul diagramei claselor (pentru nivelul
application layer)
3.3 Proiectarea şi implementarea soluŃiei de Business Intelligence
Există două obiective principale pe care le urmărim în proiectarea unui sistem informatic:
obŃinerea cât mai rapidă a sistemului care să respecte toate cerinŃele actuale la un preŃ cât
mai scăzut;
construirea unui sistem uşor de întreŃinut şi adaptat pentru a răspunde unor viitoare cerinŃe.
Accentul cade de această dată pe detaliile concrete ale implementării sistemului. Fiecare
dintre modelele abordate vin să completeze diagrama claselor / obiectelor.
DevExpress AGauage
(framework ce continte controale pentru interfata)
BIS - Modelul UI
(contine clasele de interfata) SharpZLib
(crearea arhive zip)
Data Mining
MSDASC (algoritmi analiza date)
(Microsoft Data Access Components)
.NET
Framework
42
3.3.2 Modelarea distribuirii şi implementării
CRM
SURSA
DATE
DATE SURSA
BAZE DATE DATE
(CONCENTRARI
Procesele sunt distribuite geografic pe diverse servere de procesare. Datele provin din surse
externe (aplicatii CRM, ERP, sisteme tranzacŃionale sau alte surse diverse de date). Primul proces
urmărit este cel de extragere a datelor. InformaŃiile rezultate sunt stocate în baze de date (sau
concentrari de date). Prin procesele succesive de transformare, rezultă surse de date mai mici şi
mai usor de modelat care cuprind un segment specific de analiză (de exemplu o analiză a unui
departament din cadrul unei organizaŃii). Prin încarcarea acestor informatii pe serverul de aplicaŃii,
se obtine o imagine grafică şi numerică detaliată a proceselor de afaceri.
43
3.4 Realizarea interfeŃelor, rapoartelor şi prezentărilor
Fig 24 – Componenta MSDASC ce permite crearea unei conexiuni la orice tip de SGBD
Odată definită o conexiune, aceasta este memorată pentru un acces mai rapid la date.
O sursa reprezintă o colectie limitata de date din cadrul unei baze de date. Poate fi un tabel,
o viziune sau o selecŃie mai restransă sau mai extinsă de date.Utilizatorul poate defini oricâte surse,
cuprinzând astfel toate elementele importante în analiza ulterioară. În această etapă se realizează de
asemenea selecŃia şi filtrarea datelor, pentru a elimina acele informaŃii care nu sunt utile analizei.
Cea de a doua grupare, „Vizualizari” cuprinde cele patru tipuri de reprezentare a datelor:
Tabel, Raport, Cub, Grafic.
44
A. Componenta de vizualizare „Tabel”
Un raport este o colecŃie de date informatice structurate pentru a oferi o anume informaŃie.
De cele mai multe ori raportul se prezintă sub o forma de listă sau tabele: lista clienŃilor dintr-un
judeŃ sau tabel cu cantităŃile de materie primă necesare pentru producŃia unui reper.
Fie că vorbim de statul de salarii individual, cunoscut sub numele de fluturaş, fie de o
situaŃie a facturilor, chiar si de o factura în sine, toate aceste documente sunt rapoarte.
Raportul este elementul care intervine cel mai frecvent între utilizator şi sistemele
informatice, atunci când vorbim de extragere de date. O particularitate interesantă este că nu e
nevoie neaparat de acces la calculator: raportul se poate primi şi pe o bucată de hârtie.
Avantajele utilizării componentei de raportare:
Reprezintă cel mai important mecanism de regăsire a datelor din sistemele
informatice.
Majoritatea covârşitoare a documentelor tipărite sunt rapoarte.
Necesită foarte putine resurse pentru administrare.
45
Rapoartele sunt flexibile, pot fi adaptate la orice sistem informatic existent şi pot fi
configurate conform cerinŃelor beneficiarilor.
Facilitarea accesului la informaŃie. Rapoartele se pot obtine prin mail, prin internet,
acasa sau direct la şedinŃa cu clientul.
Informarea de îndată ce datele sunt disponibile: reducerea timpilor morŃi.
Adaptarea rapoartelor la stilul de lucru al unei persoane asigură o excelentă
productivitate.
Delegarea execuŃiei rapoartelor se masoara în economia de timp care poate fi folosit
în alte scopuri.
Rapoartele pot fi arhivate cu foarte mare uşurinŃă, în diverse formate accesibile
utilizatorului (PDF, HTML, CSV, RTF, XLS, BMP), şi pot fi regasite în caz de
nevoie cu aceeaşi uşurinŃă.
Accesul la informaŃie este restricŃionat pentru persoanele neautorizate .
Rapoartele nu necesită o infrastructură hardware complexă sau costisitoare.
FuncŃionând în majoritatea cazurilor pe staŃiile de lucru ale utilizatorilor,
scalabilitatea este excelentă.
46
C. Componenta de vizualizare „Cub”
47
D. Componenta de vizualizare „Grafic”
48
E. Modulul de analiză şi extragere a cunoştinŃelor din date
Arborii de decizie sunt arbori de predicate "crescuŃi" pe baza unor date de intrare şi permit
invăŃarea de reguli (conjuncŃii de predicate) ce conduc la câteva concluzii reciproc exclusive.
Iata problema si cum a fost construit acest arbore: în urma analizei unor dosare de creditare,
au rezultat un set de date ce conŃin: vârsta solicitantului, durata de angajare, valoarea creditului,
venitul familiei şi decizia luată pentru cazul respectiv. Pe baza acestor date, arborele de mai jos a
fost construit cu scopul de a detecta reguli care determină decizia de creditare.
In timpul antrenarii (construirii) arborelui, pe baza unor calcule, se determina ca cea mai
buna separare intre diversele atribute şi se face o separare în funcŃie de venitul solicitantului. Cu
asta am obtinut primul nivel ar arborelui (prima partitionare sau primul split). Procesul continua la
fiecare nod de pe acest nivel, pentru persoanele din setul initial care satifac conditia acelui nod.
Procesul se incheiem in general, fie atunci cand un nod din arbore are prea putine persoane
sau nu exista un criteriu care sa separe intre pentru acel nod.
In final, fiecare nod este un predicat si reprezinta (impreuna cu toată calea de la parinte
pana la el) un predicat compus, o regula ce conduce la o anume distributie a chiriasilor si
proprietarilor.
O "frunza" in acest arbore va fi descrisa, deci, de o regula (obtinuta prin citirea arborelui de
la radacina pana la frunza) .
49
Previzionare utilizand regresia liniara
Analiza asociaŃiilor constă în descoperirea regulilor de asociere care arată condiŃiile atribut-
valoare ce apar frecvent împreună într-un set de date. Aceste informaŃii sunt de obicei exprimate
sub formă de reguli. O regulă de asociere exprimă o asociere între mulŃimi de entităŃi.
Un exemplu de utilizare a regulilor de asociere este pentru analiza obiectelor ce se cumpără
împreună. Utilizând acest algoritm, putem determina spre exemplu că oamenii care cumpără CD
playere, vor cumpăra într-o proporŃie semnificativă şi CD-uri.
Un alt exemplu al utilizării asocierii este analiza formularelor trimise de către pacienŃi unei
firme de asigurări medicale. Fiecare formular conŃine un set de proceduri medicale care au fost
aplicate asupra unui pacient pe parcursul unei vizite medicale. Prin definirea pe de o parte a unui
set de date corespunzător colecŃiei tuturor procedurilor medicale care pot fi aplicate unui pacient şi
50
pe de altă parte, a unor înregistrări corespunzătoare fiecărui formular, aplicaŃia poate identifica,
utilizând asocierea, relaŃia dintre procedurile medicale care sunt practicate adesea împreună.
Algoritmul utilizat pentru descoperirea seturilor de reguli se numeste Apriori şi este
prezentat mai pe larg în capitolul 2 al acestei lucrări.
Totuşi, nu orice regulă de asociere este utilă, ci doar cele expresive şi de încredere. De
aceea, modalităŃile standard de măsură pentru a aprecia calitatea regulilor de asociere sunt suportul
şi încrederea unei reguli, ambele calculate din suportul unor mulŃimi de entităŃi.
În formularul de analiză, utilizatorul precizează gradul de suport şi gradul de certitudine
urmărit. Gradul de suport reprezintă procentul de tranzacŃii din numărul total care conŃin
elementele subsetului analizat. De exemplu, dacă urmărim relaŃia de interdependenŃă dintre două
produse A şi B, vom împărŃi numarul total de tranzacŃii la numarul acelora care conŃin produsele A
sau B. Acest indicator este important pentru a elimina timpul alocat procesării pentru subseturi de
date care nu sunt relevante.
Gradul de încredere este o măsură care determină probabilitatea cu care cumpărarea
produsului A implică achiziŃionarea produsului B şi se determină ca raport între numărul de
tranzacŃii ce conŃine amândouă produsele A şi B şi numărul de tranzacŃii ce conŃine măcar unul
dintre elementele A sau B
InducŃia de reguli de asociere este o metodă puternică care are scopul de a găsi regularităŃi
în tendinŃele din date. Prin inducŃia de reguli de asociere se încearcă găsirea mulŃimilor de
instanŃe de date care apar frecvent împreună.
Fig 33 – Implementarea
algoritmului Apriori
51
CONCLUZII
Analizând caracterul din ce în ce mai complex al fenomenelor economico-sociale precum şi
evoluŃia tehnicii de calcul, s-a conturat justificat necesitatea elaborării unor soluŃii informatice de
ultimă generaŃie care să corespundă cu aşteptările şi nevoile tot mai crescute ale decidenŃilor din
mediul economic actual. Utilizarea tehnologiilor de ultimă oră este unul din criteriile decisive
pentru caracterul competitiv al unei companii.
SoluŃiile de Business Intelligence oferă o tehnologie, inclusiv produse software, care
livrează utilizatorilor informaŃiile necesare pentru a răspunde la întrebările ce apar în rezolvarea
problemelor de afaceri.
În continuare lucrarea s-a axat pe prezentarea tehnologilor specifice domeniului BI: soluŃii
de organizare şi prelucrare a datelor, tehnici de extragere a cunoştinŃelor, precum şi tehnologii de
programare necesare dezvoltării unui astfel de sistem.
În partea a treia, s-a urmărit realizarea unui sistem informatic de Business Intelligence cu o
structură flexibilă, adaptabilă unui cadru foarte larg de domenii şi afaceri. Unul dintre obiectivele
aplicaŃiei este să ofere un suport pentru procesul decizional unei categorii largi de utilizatori
oferind un sistem portabil şi independent de un anume sistem de gestiune a bazelor de date, sistem
de operare sau alte aplicaŃii.
Utilizatorii colectează în decursul timpului numeroase informaŃii care deseori sunt
eterogene, incompatibile şi provin din surse diferite. Posibilitatea de a colecta toate aceste
informaŃii într-un cadru unic, care să ofere suport pentru transformarea, curăŃarea, selectarea
informaŃiilor utile şi analiza datelor reprezintă o realizare importantă a acestui sistem software,
gasindu-şi o utilitate şi aplicabilitate pentru o cotă mare a pieŃei sistemelor informatice actuale.
52
BIBLIOGRAFIE
1) Prof.dr. Manole VELICANU, prof.dr. Ion LUNGU, lect. Mihaela MUNTEAN, prep.
Simona IONESCU – „Spre noua economie digitala prin inteligenŃa afacerii”
2) H.P.Luhn – „A Business Intelligence System”
3) D. J. Power – „A Brief History of Decision Support Systems”
4) Berthold M., Hand J.D., Intelligent Data Analysis – An introduction, Springer, 1999
5) Edelstein, H. (1996), Data Mining: Exploiting the Hidden Trends în Your Data, în:
DB2online magazine, Spring 1996,
6) Fayyad, U.; Piatetsky-Saphiro, G.; Smyth, P. (1996 a), From Data Mining to
Knowledge
7) Mannila, H. (1997), Methods and problems în data mining, Working Paper,
University of Helsinki, Helsinki 1997.
8) Mihai Horia Zaharia, Aflori Cristian, Sova Ioan, amarandei Cristian, Florin Leon -
Raport de cercetare grant: „Prototipul unui sistem gis web inteligent pentru extragerea
cunoştinŃelor din baze de date folosind agenŃi inteligenŃi”
9) Smeureanu Ion, Dardala, Marian - Visual C#.Net, Cison, 2004
10) Business Intelligence Architecture and Design Guide – Microsoft Corporation,
Microsoft Press 2006
11) Byron Marshall, Daniel McDonald, Hsinchun Chen and Wingyan Chung - Collecting
and Analyzing Business Intelligence Information
12) Capurro, R.: What is Information ? Handbook of modern databases, Vol. 24 (1987),
No. 133
13) Almeida, M. şi colectiv (1999) – „Getting Started with Data Warehouse and Business
Intelligence”, IBM International Technical Support Organization
14) www.eblocks.com ---- What is Business Intelligence
15) Herbert, A.S. (2004) – „Comportamentul administrativ. Studiu asupra proceselor de
luare a deciziilor în structurile administrative”, Editura Stiinta, Chisinau, Republica
Moldova
16) Mundy, J., Kimball, R., Thornthwaite, M. (2006) – “The Microsoft Data Warehouse
Toolkit With SQL Server 2005 and the Microsoft Business Intelligence Toolset”, Wiley
Publishing Inc. Indianapolis
17) Nepomnjashiy, A. – “OLAP and Data Warehousing”, http://www.databasejournal.com
18) http://msdn.microsoft.com - Microsoft .NET Framework Developer's Guide.
19) http://www.microsoft.com - Microsoft Corporation Website
20) http://www.prosci.com - „Business process reengineering”
21) http://www.business-intelligence.ro/
22) www.aries.ro – AsociaŃia Română pentru Industria Electronică şi Software
23) http://www.rational.com
24) www.olapcouncil.org
25) http://en.wikipedia.org/wiki/
26) http://www.business-intelligence.ro/
27) www.devexpress.com
28) http://www.developer.com
29) www.sourceforge.net
30) www.codeplex.com
31) www.codeproject.com
32) http://www.gartner.com/it/page.jsp?id=563507&tab=overview
53
ANEXE
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
using Zip = ICSharpCode.SharpZipLib.Zip;
using System.Data;
namespace BIS
{
public class Proiect
{
#region Atribute
String numeProiect;
String appPublicata;
private DateTime timpCreare;
List<ElementProiect> elemente = new List<ElementProiect>();
static XmlSerializer myXmlSerializer = new XmlSerializer(typeof(Proiect));
Zip.ZipFile zipFile = null;
#endregion
// Constructor
static Proiect()
{
myXmlSerializer.UnknownElement += new
XmlElementEventHandler(myXmlSerializer_ElementNecunoscut);
}
[XmlArray("Elemente")]
public List<ElementProiect> Elemente
{
get { return elemente; }
}
[XmlIgnore]
public Zip.ZipFile ZipFile
{
get { return zipFile; }
set { zipFile = value; }
}
#endregion
myXmlSerializer.Serialize(s, this);
s.Close();
if (File.Exists(numefisier))
{
File.Replace(tempfile, numefisier, numefisier + ".bak");
}
else
{
File.Move(tempfile, numefisier);
}
NumeProiect = numefisier;
}
public ZipDataSource(Stream s)
{
myStream = s;
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
namespace BIS
{
public enum CategorieElement
{
DataSet,
ConexiuneBD,
DataView,
Applicatie
}
#endregion
56
[XmlIgnore]
public Proiect NumeProiect
{
get { return numeProiect; }
set { numeProiect = value; }
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
namespace BIS
{
public abstract class SubElement
{
#region Atribute
#endregion
57
[XmlIgnore]
public Proiect Proiect
{
get { return proiect; }
set { this.proiect = value; }
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Xml.Serialization;
using System.IO;
using System.Windows.Forms;
namespace BIS
{
//
// Definirea unui data set
//
public class DataSetDef : ElementProiect
{
#region Atribute
#endregion
RefreshContinutDinTabel(dataTable);
}
else
{
if (dataAdapter == null)
{
RefreshContinut();
}
if (dataAdapter != null)
{
DataSet sourceDataSet = new DataSet();
sourceDataSet.DataSetName = this.Nume;
dataAdapter.Fill(sourceDataSet);
dataTable = sourceDataSet.Tables[0];
dataTable.TableName = this.Nume;
dataTable.CaseSensitive = false;
}
}
return dataTable;
}
public void RefreshContinut()
{
if (this.NumeProiect.ZipFile != null)
{
CreeazaDataSource();
return;
}
if (dataSource == null)
{
return;
}
dataAdapter = dataSource.CreeazaDataAdapter();
if (dataAdapter == null)
{
return;
}
DataSet s = new DataSet();
try
{
dataAdapter.FillSchema(s,SchemaType.Source);
}
catch (Exception e)
{
RaportareErori.RaportEroare(Strings.DataSetCouldNotBeOpened);
return;
}
if (s.Tables.Count == 0)
{
RaportareErori.RaportEroare(Strings.DataSetDidNotReturnAnyValidTables);
return;
}
DataTable t = s.Tables[0];
RefreshContinutDinTabel(t);
dataTable = null;
}
void RefreshContinutDinTabel(DataTable t)
{
foreach (DataColumn col in t.Columns)
59
{
bool found = false;
foreach (CampDataSet fld in campuri)
{
if (fld.NumeCamp == col.ColumnName)
{
found = true;
fld.Tip = col.DataType;
break;
}
}
if (!found)
{
CampDataSet fld = new CampDataSet();
fld.NumeCamp = col.ColumnName;
fld.TextCamp = col.Caption;
fld.Tip = col.DataType;
campuri.Add(fld);
}
}
60
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
namespace BIS
{
public class CampDataSet : IComparable
{
private String numeCamp;
private String textCamp = String.Empty;
private String formula;
private Type tip;
private Filtru.Filtre tipFiltru = Filtru.Filtre.Nul;
static CampDataSet campNul = new CampDataSet();
[XmlIgnore]
public Type Tip
{
get { return tip; }
set { tip = value; }
}
[XmlIgnore]
public DescriptorFiltru DescriereFiltru
{
get
{
foreach (DescriptorFiltru d in BIS.DescriptorFiltru.TipuriFiltre)
{
if (d.TipFiltru == tipFiltru)
{
return d;
}
}
return null;
}
set
{
tipFiltru = value.TipFiltru;
61
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
namespace BIS
{
// descrie un set de campuri disponibile
public class ListaCampuri
{
private List<CampDataSet> lista = new List<CampDataSet>();
[XmlIgnore]
public List<CampDataSet> Lista
{
get { return lista; }
set
{
lista = value;
numeCampuri.Clear();
foreach (CampDataSet c in lista)
{
numeCampuri.Add(c.NumeCamp);
}
if (CampModificat != null)
{
CampModificat(this, null);
}
}
}
namespace BIS
{
public class SQLDataSource
{
String query;
String numeTabel;
Conexiune conexiuneBD;
String numeConexiuneBD;
//
// XML serializare
//
63
if (!String.IsNullOrEmpty(numeConexiuneBD))
{
conexiuneBD = p.GetElement(numeConexiuneBD,CategorieElement.ConexiuneBD) as
Conexiune;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.Xml;
using System.Drawing;
namespace BIS
{
public class Cub: DefDataView, IAdmiteSelectieCampuri
{
private XmlDocument layoutXml;
public XmlDocument LayoutXml
{
get { return layoutXml; }
set { layoutXml = value; }
}
// UI
public override Image GetImagine()
{
return Imagini.Cube;
}
64
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.Drawing;
namespace BIS
{
public abstract class DefDataView : ElementProiect
{
private DataSetDef defDataSet;
[XmlIgnore]
public DataSetDef DataSet
{
get { return defDataSet; }
set
{
defDataSet = value;
if (SchimbareDataSet != null)
{
SchimbareDataSet (this, null);
}
}
}
[XmlAttribute ("NumeDataSet")]
public String NumeDataSetPtXML
{
get { return defDataSet == null ? null : defDataSet.Nume; }
set { numeDataSetDeserializat = value; }
}
DataSetDef DataSet
{
get;
}
}
}
65
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.Xml;
using DevExpress.Data.PivotGrid;
using System.Drawing;
namespace BIS
{
public class Grafic : DefDataView, IAdmiteSelectieCampuri
{
// tipul de grafic care va fi generat default
private String graficStandard;
public String GraficStandard
{
get { return graficStandard; }
set { graficStandard = value; }
}
//
// Campul de date afisat in grafic
//
CampDataSet campDataSet;
[XmlIgnore]
public CampDataSet Camp
{
get { return campDataSet; }
set { campDataSet = value; }
}
//
// Campuri afisate in legenda ca serii de date
//
ListaCampuri campuriLegenda = new ListaCampuri();
public ListaCampuri CampuriLegenda
{
get { return campuriLegenda; }
set { campuriLegenda = value; }
}
String titluAxaX;
public String TitluAxaX
{
66
get { return titluAxaX; }
set { titluAxaX = value; }
}
int unghiTextAxaY = 0;
public int UnghiTextAxaY
{
get { return unghiTextAxaY; }
set { unghiTextAxaY = value; }
}
String titluAxaY;
public String TitluAxaY
{
get { return titluAxaY; }
set { titluAxaY = value; }
}
String titlu;
public String Titlu
{
get { return titlu; }
set { titlu = value; }
}
bool afiseazaProcente;
public bool AfiseazaProcente
{
get { return afiseazaProcente; }
set { afiseazaProcente = value; }
}
String numeCampDeserializat;
public String NumeCamp
{
get { return campDataSet != null ? campDataSet.NumeCamp : null; }
set { numeCampDeserializat = value; }
}
using System;
using System.Collections.Generic;
using System.Text;
using DevExpress.XtraReports.UI;
using System.Xml;
using System.IO;
using System.Drawing;
namespace BIS
{
public class Raport : DefDataView
{
67
private byte[] raportXML;
public byte[] RaportXml
{
get { return raportXML; }
set { raportXML = value; }
}
namespace BIS
{
public class TabelGrid: DefDataView, IAdmiteSelectieCampuri
{
private XmlDocument layoutXml;
public XmlDocument LayoutXml
{
get { return layoutXml; }
set { layoutXml = value; }
}
namespace BIS
{
public partial class Apriori : XtraForm
{
DataSetDef date;
DataTable tabel;
Thread t;
namespace BIS
{
public partial class ID3 : XtraForm
{
DataSetDef date;
DataTable tabel;
if (root.attribute.values != null)
{
for (int i = 0; i < root.attribute.values.Length; i++)
{
n.Nodes.Add("<" + root.attribute.values[i].ToString() + ">");
id3.TreeNode childNode =
root.getChildByBranchName(root.attribute.values[i]);
printNode(childNode, n);
}
}
}
71
attributes[attnr] = new
id3.Attribute(samples.Columns[i].ColumnName, valori);
attnr++;
}
}
72