160
Cuprins 1. Decizie, decidenţi 1.1. Concepte de bază 1.2. Clasificarea deciziilor 1.3. Decidenţi în cadrul organizaţiilor 2. Sisteme de asistare a deciziilor 2.1. Definiţii 2.2. Evoluţie 2.3. Caracteristici 2.4. Arhitectura 2.5. Clasificare 2.6. Tehnologii moderne aferente SIAD-urilor Sisteme expert Depozite de date Data mining 3. Sisteme de gestiune a bazelor de date orientate obiect Definire 3.2. Arhitectura Avantaje şi limite Prezentare Cache Comparaţie între Cache, MS SQL şi MS Access 4. Proiectarea sistemului de asistare a deciziei pentru cabinetului veterinar TRIVET Definirea unei clase Definirea proprietăţilor Crearea unei pagini Web 3

Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Embed Size (px)

Citation preview

Page 1: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Cuprins

1. Decizie, decidenţi1.1. Concepte de bază1.2. Clasificarea deciziilor1.3. Decidenţi în cadrul organizaţiilor

2. Sisteme de asistare a deciziilor2.1. Definiţii2.2. Evoluţie2.3. Caracteristici2.4. Arhitectura2.5. Clasificare2.6. Tehnologii moderne aferente SIAD-urilor

2.6.1. Sisteme expert2.6.3. Depozite de date2.6.3. Data mining

3. Sisteme de gestiune a bazelor de date orientate obiect3.1. Definire3.2. Arhitectura3.3. Avantaje şi limite3.4. Prezentare Cache3.5. Comparaţie între Cache, MS SQL şi MS Access

4. Proiectarea sistemului de asistare a deciziei pentru cabinetului veterinar TRIVET

4.1. Definirea unei clase4.2. Definirea proprietăţilor4.3. Crearea unei pagini Web4.4. Integrarea paginilor CSP într-un site, folosind Dreamweaver4.5. Paginile web dinamice4.6. Crearea paginilor de căutare

5. ConcluziiBibliografie

3

Page 2: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

1. Decizie, decidenţi

1.1. Concepte de bază

Domeniul teoriei deciziei se caracterizează prin existenţa mai multor concepte de bază. În continuare se vor prezenta cele mai importante concepte ale acestui domeniu.

În literatura de specialitate sunt întâlnite mai multe definiţii ale deciziei. Câteva dintre acestea sunt:[1]

1) Decizia reprezintă hotărârea luată ca urmare a examinării unei probleme, situaţii etc. soluţia adoptată dintre mai multe posibile [DEX,1998].

2) Decizia mai reprezintă şi alegerea unei direcţii de acţiune [Simon, 1960].3) Alegerea unei strategii de acţiune este considerată tot a fi o decizie

[Fishburn, 1964].4) O alegere conducând la un anumit obiectiv dorit, tot decizie o putem numi

[Churchman, 1968].5) Decizia mai poate fi definată ca fiind o formă de angajare într-o acţiune (de

obicei este vorba de angajarea unor resurse) [Minzberg, Raisinghani,Theoret, 1976].6) Elaborarea ad – hoc a mai multor strategii alternative, analiza strategiilor

elaborate şi a celor deja formulate şi alegerea unora dintre ele reprezintă procesul în sine de luare a deciziei [Popescu, Găvănescu, Rădulescu, 1983].

7) Rezultatul unui tip particular de prelucrare a informaţiilor, care constă în alegerea unui plan de acţiune se numeşte decizie [Bonczek, Holsapple, Winston, 1984].

8) Cunoştinţele (în sens de elemente de cunoaştere) care indică o angajare într-o anumită direcţie de acţiune se numesc decizii [Holsapple, Whinston, 1996].

9) Decizia mai poate reprezenta şi o alocare a resurselor.10) O afirmaţie care arată angajarea într-o direcţie de acţiune, tot decizie

reprezintă [Power, 2000].Decizia reprezintă rezultatul unor activităţi conştiente de alegere a unei direcţii de

acţiune şi a angajării în aceasta, fapt care implică, de obicei, alocarea unor resurse. Decizia rezultă ca urmare a prelucrării unor informaţii şi cunoştinţe şi aparţine unei persoane sau unui grup de persoane, care dispun de autoritatea necesară şi care răspund pentru folosirea eficace a resurselor în anumite situaţii date. Atributul esenţial care caracterizează decizia este cel de alegere dintre mai multe alternative.

Decizia este o activitate a unei fiinţe umane care urmăreşte în mod conştient anumite obiective. Este evident că, angajarea într-o anumită direcţie de acţiune presupune, de cele mai multe ori, folosirea unor resurse. Acestea pot fi resursele personale (timp, bani, energie, renume, cunoştinţe profesionale etc.) atunci când este vorba de deciziile care privesc viaţa personală a cuiva. În cazul deciziilor manageriale, la care se referă majoritatea literaturii de specialitate, se au în vedere resursele organizaţiei, dintre care cele mai importante sunt considerate cele materiale, financiare, umane şi cunoştinţele acumulate în organizaţie [Holsapple, Whinston, 1996].

Decizia este o alegere argumentată dintre mai multe alternative.Persoana (sau grupul de persoane) care alege calea de acţiune şi care angajează

folosirea resurselor trebuie să fie împuternicit sau autorizat să facă acest lucru. Dacă în deciziile care privesc viaţa personală, această cerinţă nu ridică probleme, atunci când este vorba de resursele unei organizaţii, lucrurile sunt, fără excepţie, mai complexe: este nevoie de o împuternicire în acest sens, însoţită de stabilirea răspunderii pentru folosirea eficace şi eficientă a resurselor.

4

Page 3: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Persoana sau grupul de persoane care sunt autorizate să aleagă o direcţie de acţiune şi să angajeze resursele pentru a urma acea cale poartă denumirea de decident sau unitate decizională.

Decidenţii sunt cei ce iau decizii. Toţi putem fi decidenţi.[2]Luarea deciziilor este o părticică dintr-un domeniu mult mai vast, şi anume din

domeniul rezolvării problemelor, cunoscut sub denumirea de „problem solving”. Rezolvarea problemelor reprezintă procesul de identificare a soluţiei problemei. Dar pentru a rezolva problema trebuie mai întâi s-o identificăm , să determinăm dacă aceasta există. De asemenea, trebuie să stabilim dacă problema este destul de importantă. După aceea, vom descoperii probabil că există anumite obstacole ce ne vor împiedica sa luăm o decizie într-un timp cât mai redus şi cu un efort cât mai mic. După o reflecţie riguroasă şi prin utilizarea unor tehnici de creativitate vom determina mai multe căi de acţiune. Pentru a ajunge la decizia finală se vor alege mai multe variante. Acestea vor fi analizate şi în final se va lua o decizie.

Odată ce decizia este luată se va realiza implementarea ei. Implementarea trebuie monitorizată pentru a fi siguri că decizia şi rezultatele acţiunii conduc la rezolvarea problemei.

După Simon, luarea deciziei manageriale este sinonimă pe deplin cu procesul de management. Luarea deciziei nu este doar domeniul managementului, ea este în legătură cu mai multe discipline fie comportamentale (filozofia, sociologia, psihologia, psihologia socială, dreptul, antropologia, ştiinţele politice), fie ştiinţifice (economia, statistica, analiza deciziei, matematica, cercetările operaţionale, informatica).

Deciziile sunt necesare în anumite momente, denumite situaţii decizionale. O situaţie decizională potenţială este rezultatul apariţiei unor stimuli sau schimbări, create de evenimente sau acţiuni ale unor factori care creează condiţii suficient de puternice pentru a determina nevoia de a „face ceva”.

Fiecare decizie se caracterizează printr-o situaţie decizională, un set de alternative şi un set de criterii după care se face alegerea alternativelor.

Situaţia decizională stabileşte ceea ce încercăm să decidem. O situaţie decizională este importantă pentru luarea unei decizii bune. Dacă decizia este luată în grup, o situaţie decizională clară presupune că toţi membri unui grup încearcă să decidă în acelaşi mod. Dacă nu s-a stabilit o situaţie decizională clară nu putem elabora cel mai bun sistem de asistare a deciziei. Începerea oricărui proiect de sistem de asistare a deciziei presupune specificarea clară a situaţiei decizionale care trebuie sprijinită de sistemul propus.

Se pot identifica două situaţii decizionale de bază:Situaţiile decizionale forţate (provocate, obiective) sunt acelea care sunt

determinate de dobândirea de informaţii care conduc la constatarea apariţiei unor simptome precum:

a) Abateri intolerabile ale sistemului condus faţă de o stare dezirabilă, normală sau planificată;

b) Schimbări percepute în mediul extern;c) Stări noi (nu neapărat, defavorabile) ale sistemului asupra căruia decidentul

are autoritate şi de a cărei bună funcţionare răspunde.Situaţiile decizionale forţate presupun deciziii reactive şi corective pentru

„rezolvarea unor probleme”, care constituie surse de preocupare sau de nemulţumire şi care sunt create, în general, de evenimente şi factori independenţi de voinţa decidentului.

Situaţiile decizionale neforţate (neprovocate, subiective) sunt acelea în care se urmăreşte luarea din timp a măsurilor pentru evitarea unor neplăceri posibile în viitor, sau pentru creşterea prosperităţii, sau mărirea avansului faţă de ceilalţi competitori. O situaţie decizională neforţată poate fi determinată şi de schimbarea obiectivelor decidentului.

5

Page 4: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

În general, situaţiile decizionale neforţate sunt asociate cu deciziile proactive, care constituie soluţii pentru problemele de „căutare şi exploatare a oportunităţilor”. Ele sunt influenţate de iniţiativa sau voinţa decidentului.

Situaţiile decizionale sunt: De certitudineo Probabilitate maximă de realizare a obiectiveloro Variabile controlabileo Evoluţie anticipată precis

De incertitudineo Probabilitate de realizare a obiectivelor foarte mareo Număr mare de variabile, unele necontrolabileo Evoluţie anticipată aproximativ

De risco Obiective realizabileo Probabilitate de finalizare redusăo Nesiguranţă privind modalităţile de urmato Variabile necontrolabile

Alternativele reprezintă decizii posibile de luat. Uneori sunt puţine alternative, iar în alte situaţii sunt sute sau mii de alternative. Aici decidenţii trebuie să analizeze un număr rezonabil de alternative (variante). Instrumentele de asistare a deciziei vor asigura modalităţi de selectare a informaţiilor în vedrea luării deciziei.

Criteriile decizionale sunt cele după care se face optimizarea deciziei. Nu este posibil să optimizezi toate criteriile de decizie în acelaşi timp. Selectarea alternativelor presupune şi evaluarea lor.

Decidenţii parcurg anumite faze pentru a lua o decizie.Conştientizarea unei situaţii decizionale este prima dintr-o succesiune de faze care

compun procesul decizional. Acesta se încheie cu exprimarea şi autorizarea (ratificarea) deciziei care urmează a fi implementată.

După Simon, procesul de luare a deciziei are patru faze:[2]1. Informarea (Intelligence);2. Proiectarea (Design);3. Alegerea (Choice);4. Evaluarea alegerilor precedente (Review).Faza de informare constă în căutarea, identificarea şi formularea problemei sau

situaţiei ce solicită o decizie. De aceea, această fază mai este numită faza care ‘decide ceea ce decizi’. Rezultatul final al fazei de informare este situaţia decizională. În această fază, decidentul caută informaţii relative la problemele care-l preocupă.

Faza de proiectare înseamnă elaborarea alternativelor. Se stabilesc obiectivele urmărite şi se caută alternative. În această fază decidentul, construieşte soluţii, imaginează scenarii, ceea ce-l poate duce la căutarea de informaţii suplimentare.

Faza de alegere – decidentul alege acum între diferitele alternative pe care a fost capabil de a le construi şi identifica în faza de proiectare. Pentru alegere este necesar ca fiecare alternativă să fie evaluată. Destul de frecvent, informarea şi proiectarea cuprind deja alegerea, în măsura în care decidentul privilegiază destul de repede o singură acţiune ditre cele posibile. Aceasta este apoi singura documentată şi construită. Extinderea câmpului de posibilităţi este una din problemele majore ale asitării deciziilor.

Faza de evaluare – o decizie este întotdeauna luată pentru a face faţa la o dificultate sau pentru a răspunde la o modificare a mediului, adică pentru a rezolva o problemă care se pune organizaţiei sau individului. Problema poate fi imediat legată de

6

Page 5: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

schimbarea mediului plecând de la semnele mai mult sau mai puţin evidente. Aceste semnale sau stimuli provoacă reacţia individului sau organizaţiei, mai puţin cazul în care nu se decide să nu se facă nimic. Interpretarea stimulilor este deci o primă etapă în luarea deciziei. Prin urmare, noi considerăm că este întotdeauna o corespondenţă biunivocă, neambiguă între luarea deciziei şi o problemă la care se caută rezolvarea. După alegere, şi în măsura în care decizia se integrează într-un proces dinamic, faza de evaluare deşi adesea neglijată, apare ca extrem de importantă. O retroacţiune inteligentă permit a corecta erorile şi, pe parcursul derulării procesului decizional, conduce la performanţe tot atât de bune ca strategiile complicate fără retroacţiune, mai ales dacă nimic ireversibil nu este susceptibil de a stopa procesul de învăţare.

Etapele descrise de Simon nu se derulează ca un proces strict secvenţial, el poate avea şi reveniri la etapele anterioare.

Abordarea complexă a procesului decizional presupune luarea în considerare a următoarelor elemente:

Obiectivul sau obiectivele urmărite; Decidenţii; Mulţimea stărilor posibile, cu implicaţii asupra consecinţelor decozionale; Utilitatea pe care decidentul o aşteaptă în urma realizării anumitor

consecinţe.Decizia are ca scop realizarea unor obiective. Alegerea obiectivelor relevante

pentru problema decizională, care, în majoritatea cazurilor reale, sunt multiple şi, într-un număr semnificativ de situaţii, sunt contradictorii, depinde de mai mulţi factori. Cei mai importanţi factori sunt:

a) Sistemul de valori, sau mulţimea de subiecte de preocupare adoptate sau impuse decidentului.

b) Orizontul decizional de timp considrat în problema de decizie.

1.2. Clasificarea deciziilor

Nu toate deciziile sunt la fel. Literatura de specialitate conţine numeroase clasificări. Se amintesc în continuare doar câteva dintre acestea.[1]

I. După modul de abordare:O decizie poate fi produsă în diferite moduri potrivit cu caracterul procedurilor

folosite în activităţile decizionale. Boldur – Lăţescu (1992) identifică cinci tipuri de abordări, după cum urmează:

1. Decizia rezultă în urma desfăşurării la întâmplare a activităţilor decizionale.2. Activităţile decizionale se bazează pe rutină făcând ca decizia să fie

adoptată prin folosirea unor analogii „aproape mecanice” cu situaţii întâlnite în trecut.3. Activităţile decizionale se bazează pe învăţare (instruire), prin care se

adaptează deciziile anterioare în funcţie de asimilarea unor cunoştinţe (tehnici, experienţe) noi.

4. Activităţile decizionale paradigmatice încearcă imitarea unor procese decizionale „exemplare” care au condus la rezultate de succes.

5. Activităţile decizionale se bazează pe analiza şi modelarea sistemică şi previzională (analiza deciziilor).

II. După cotextul decizional:După Clemen (1996), contextul decizional este cadrul de împrejurări, care

determină subsetul de obiective relevante, care contează efectiv pentru decident în momentul de timp al elaborării deciziei pentru a rezolva o anume problemă, chiar dacă sistemul de valori rămâne mai larg şi relativ neschimbat.

7

Page 6: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Holsapple şi Whinston (1996) detaliază conceptul de context decizional şi sintetizează o serie de rezultate anterioare folosind câteva criterii precum:

a) Nivelul decizional;b) Urgenţa deciziei;c) Concurenţa;d) Cadrul organizaţional.

III. După gradul de structurare:Clasificările realizate după gradul de structurare sau de programabilitate a

problemelor de decizie este, poate, cea mai des menţionată în literatura care abordeză problematica sistemelor de asistare cu calculatorul a deciziilor (denumite Sisteme Informatice de Asistare a Deciziilor – SIAD). Această clasificare se bazează pe diferenţierea făcută de Simon (1960) între deciziile care pot fi programate, sau descrise sub forma unui algoritm sau a unor proceduri bine definite, care pot fi realizate automat şi cele neprogramabile. Caracteristica de programabilitate a unei decizii este pusă în legătură cu punctul de vedere al unor psihologi care afirma că „memoria omului conţine programe, sau strategii pentru prelucrarea informaţiilor, chiar dacă acesta este incapabil să descrie strategia folosită într-o situaţie decizională dată”.

Atributele caracteristice principale ale problemei decizionale (şi a soluţiei sale, decizia) bine structurate sunt:

1. „Programabilitate” a abordării şi implementării soluţiei;2. Repetitivitatea apariţiei;3. Manifestarea în „situaţii stabilite”;4. Lipsa unei importanţe (sau a unor consecinţe posibile) excepţionale care să

necesite un tratament deosebit.Problemele nestructurate (şi deciziile asociate acestora) se manifestă în situaţiile

decizionale în care nu există o metodă „de gata”, bine încetăţenită de tratare a problemei, deoarece o astfel de problemă fie nu a apărut până atunci, fie că structura şi natura ei sunt vagi sau complexe, fie, pur şi simplu, pentru că este atât de importantă încât este necesară o abordare „pe măsură”. Alte caracteristici ale problemelor şi deciziilor nestructurate sunt:

1. Apariţia lor în situaţii cu caracter de urgenţă;2. Necesitatea unei abordări creative, bazate în mod obligatoriu pe

raţionamentul sau intuiţia decidentului.Dacă în cazul deciziilor bine structurate, automatizarea elaborării şi execuţiei

deciziei este, în mare măsură, tehnic posibilă şi, uneori, chiar dezirabilă din punct de vedere economic, în cazul celor nestructurate, contribuţia decidentului uman este esenţială.

Trebuie observat că, problemele şi deciziile bine structurate şi cele complet nestructurate reprezintă doar nişte extreme, între care se pot afla numeroase alte situaţii în care problemele pot fi structurate parţial, într-un grad mai mic sau mai mare. Aceste probleme sunt denumite semistructurate. Identificarea părţilor structurate, sau structurabile, ale unei probleme decizionale semistructurate, prin descompunerea acesteia, este un pas important în procesul decizional.[2]

IV. După numărul de participanţi şi modul de colaborare:Decizia poate fi adoptată de către o persoană sau de către mai multe persoane.

Decidentul individual acţionează în majoritatea situaţiilor decizionale care privesc viaţa personală a cuiva.

Deciziile multiparticipant sunt luate în următoarele situaţii:1. Situaţii decizionale necooperatiste, de tip conflict sau competiţie, în care

fiecare participant încearcă să-şi maximizeze câştigul prin surclasarea adversarilor sau a concurenţilor. O formă slabă de cooperare poate exista şi chiar în aceste situaţii, atunci

8

Page 7: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

când participanţii recurg la o „autoritate de arbitraj”, care are rolul să emită o decizie de soluţionare a conflictului pe baza unor reguli acceptate de comun acord.

2. Situaţiile în care o singură persoană îşi asumă responsabilitatea finală privind decizia adoptată, deşi în procesul de elaborare a deciziei, participă şi alte persoane care joacă diverse roluri precum: asistenţi, susţinători sau opozanţi. Astfel de decizii sunt denumite decizii unilaterale, iar persoanele participante (decidentul final şi asistenţii săi) sunt considerate ca formând o echipă decizională. Rolul echipei decizionale este de a transpune în viaţă conceptele diviziunii muncii în procesul de elaborare a deciziei. Unii dintre asistenţii decizionali sunt specializaţi în rezolvarea unor sarcini pe care decidentul final nu le poate realiza, alţii efectuează sarcini realizabile de către decidentul final, pe care acesta le-a delegat pentru a se putea concentra asupra aspectelor cele mai dificile şi de cea mai mare răspundere. Contribuţia lor la elaborarea deciziei este indirectă sau mijlocită de conducătorul echipei.

3. Situaţiile decizionale caracterizate printr-un mediu şi climat de cooperare, în care participanţii la procesul decizional urmăresc aceleaşi obiective principale, îşi împart responsabilităţile şi au încredere unul în altul pentru elaborarea şi adoptarea unor decizii participative denumite co-decizii. Pe lângă obiectivele pricipale, participanţi pot avea şi aspiraţii şi obiective secundare sau baze informaţionaleşi cunoştinţe diferite. Pentru punerea de acord, participanţii fac apel la soluţii negociate, sau la scheme de vot sau de atingere a consensului.

V. Luând în considerare precizia şi completitudinea informaţiilor despre situaţiile decizionale deosebim următoarele tipuri de decizie:

1. Decizii probabilistice2. Decizii deterministe3. Decizii euristice4. Decizii aleatoare5. Decizii folosind teoria mulţimilor vagi (fuzzy)

VI. După amploarea decidentului, deciziile se împart în:1. Decizii individuale2. Decizii de grup

VII. După orizontul de timp şi implicaţiile în organizaţie, deciziile se împart în:1. Decizii strategige2. Decizii tactice3. Decizii curente

Deciziile strategice sunt, în general, decizii complexe şi au un caracter neprogramabil necesitând informaţii sintetice şi puţin formalizate. O parte din deciziile de nivel tactic precum şi deciziile de nivel operaţional au un caracter programabil.

1.3. Decidenţii în cadrul organizaţiilor

Moscarola (1980), identifică, într-o monografie dedicată grupului de cercetare în probleme de decizie de la Munchen, următoarele roluri ale celor care contribuie, într-un fel sau altul, la elaborarea, adoptarea şi execuţia unei decizii.[2]

Iniţiatorii sunt cei care determină începerea activităţilor care compun procesul decizional.

Promotorii sunt cei care, de pe poziţii de autoritate superioare, susţin activităţile de elaborare, adoptare şi de execuţie a deciziei.

Consilierii (asistenţii tehnici specialişti, experţii) stăpânesc diferite tehnici şi de multe ori utilizează instrumentele informatice adecvate pentru definirea şi clarificarea problemei, pentru identificarea/ proiectarea şi evaluarea alternativelor de acţiune.

9

Page 8: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Realizatorii sunt cei care execută decizia adoptată.Beneficiarii sunt cei care sunt afectaţi, într-un fel sau altul, de execuţia deciziei.Opozanţii sunt persoanele care încearcă să se opună „pe faţă” sau „pe ascuns”

adoptării unei decizii şi să împiedice execuţia ei.Mediatorii sunt cei care au ca merite apropierea poziţiilor opuse.Decidenţii obişnuiţi sunt participanţii la procesul decizional fără a avea vreun rol

deosebit.O anumită persoană (actor), poate juca concomitent mai multe roluri. Nu le poate

juca pe toate, deoarece unele perechi de roluri sunt incompatibile. Sau mai poate juca diferite roluri în momente diferite de timp sau în procesele decizionale diferite.

Conceptul de promotor se poate ratifica pentru a pune în evidenţă două subcategorii distincte şi anume:

a) Campionul deciziei sau decidentul efectiv, cel care îşi asumă responsabilitatea adoptării deciziei;

b) Protectorul (sau sponsorul) cel care împuterniceşte pe decidentul efectiv şi sprijină punerea în execuţie a deciziei.

Caracteristicile esenţiale ale promotorilor deciziilor care le conferă acestora puterea de a adopta deciziile sunt autoritatea şi legitimitatea.

Majoritatea literaturii privind decizia, consideră managerii ca fiind principalii actori în elaborarea şi, mai ales, în adoptarea deciziei.

Într-o organizaţie, fiecare persoană are mai multă sau mai puţină putere, cu care poate schimba starea resurselor organizaţiei. Această putere se poate exercita fie direct, fie indirect, fie în mod oficial, atunci când persoana este mandatată în acest sens, fie prin mijloace neoficial, de exemplu sub forma unor „coaliţii”.

Managerii constituie o categorie specială de personal, care este mandatată în mod oficial cu putere şi este autorizată să structureze resursele organizaţiei sau a unei porţiuni de organizaţie, astfel încât organizaţia să-şi îndeplinească menirea.

Mizberg (1980), descrie zece roluri ale managerului, prin care acesta îşi îndeplineşte munca. Rolurile sunt grupate în trei categorii după cum urmează:

I. Roluri interpersonale, care privesc interacţiunile managerului cu alte persoane din interiorul sau din afara organizaţiei, sunt:

1. Figură centrală – pentru realizarea sarcinilor de reprezentare a organizaţiei prin semnarea unor documente cu valoare juridică, participarea la ceremonii sau la evenimente sociale.

2. Leader – pentru motivarea şi activarea subordonaţilor prin acţiuni de recrutare, instruire, repartizarea de lucrări, promovarea şi încurajarea.

3. Persoană de legătură – prin construirea unei reţele de relaţii cu persoanele din mediul în care organizaţia îşi desfăşoară activitatea.

4. Adept („follower”) – în situaţiile în care managerul are, la rândul său, un şef.

5. Omolog („peer”) – pentru situaţiile în care managerul interacţionează cu persoane aflate pe aceeaşi poziţie ierarhică.

II. Rolurile informaţionale, care se referă la dobândirea şi transmiterea de informaţii. Acestea sunt:

1. Monitor – prin care managerul obţine informaţii privind organizarea şi mediul său, devenind un fel de „centru nervos” din punct de vedere informaţional.

2. Diseminator al informaţiilor dobândite către subordonaţi.3. Purtător de cuvânt şi expert în domeniu de activitate al organizaţiei.

Holsapple şi Whinston (1996) mai adaugă două roluri suplimentare:

10

Page 9: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

4. Acumulator al informaţiei dobândite – pe care o transformă şi o reprezintă în mod adecvat cu utilizarea ulterioară.

5. Creator de informaţie nouă pe baza informaţiei acumulate.III. Rolurile decizionale, sunt:

1. Întreprinzător sau planificator – prin desfăşurarea de activităţi de căutare a oportunităţilor, de orientare a mersului organizaţiei pentru îndeplinirea menirii sale şi de supervizare a proiectelor cele mai importante.

2. Compensator al perturbaţiilor sau coordonator – prin luarea măsurilor corective pentru ca organizaţia să poată face faţă cu succes la apariţia unor evenimente neaşteptate.

3. Alocator de resurse sau organizator.4. Negociator – în situaţiile de importanţă majoră pentru organizaţie.

Condiţia ca relaţia manager – expert să funcţioneze bine constă în realizarea unei combinaţii adecvate contextului între logica folosită de expert şi intuiţia puternică a managerului de vârf, modul de comunicare preferabil fiind comunicarea verbală, faţă în faţă.

11

Page 10: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

2. Sisteme informatice de asistare a deciziei

2.1. Definiţii

În conformitate cu unele abordări din literatura de specialitate, termenul de Sistem informatic de asistare a deciziei acoperă realităţi variabile şi are frontiere destul de controversate în raport cu alte concepte, având accepţiuni multiple: „sisteme informatice pentru management” (Management Information System - MIS), „sisteme informatice pentru decidenţi” (Executive Information System - EIS), precum şi alte „sigle” mai mult sau mai puţin răspândite.[3]

Prin sistemele informatice de asistare a deciziei se înţelege o clasă de sisteme informatice, cu caracteristici antropocentrice, adaptabile şi evolutive, care integreză o serie de tehnologii informatice şi de comunicaţii de uz general şi specifice şi interacţionează cu celelalte părţi ale sistemului informatic global al organizaţiei. Menirea SIAD-ului este de a atenua efectul limitelor şi restricţiilor decidentului intelectual într-un număr semnificativ de activităţi pentru rezolvarea unei palete largi de probleme decizionale nebanale pe baza implementării computerizate a unora dintre funcţiile de suport al deciziilor care ar fi fost relizate altfel de către o echipă decizională ierarhică.

Explicarea termenului SIAD rezidă din semnificaţia fiecărei litere care face parte din structura acestui acronim şi care constituie o cheie pentru analiza conceptului în totalitatea sa. Astfel, cuvântul „sistem” se referă la o arhitectură complexă, care poate fi privită însă ca o entitate; elementul interactiv evidenţiază rolul important pe care îl poate avea omul în funcţionarea sistemelor de asistare a deciziei, rol pe deplin activ şi care se desprinde, de asemenea, din expresia „asistare a deciziei”, subliniindu-se astfel că decizia nu va fi luată de sistem. Omul rămâne factorul activ, cu rol indispensabil în luarea deciziei. Intermediarul este calculatorul şi ca atare denumirea completă ar putea fi „Sisteme Informatice de Asistare a Deciziilor (SIAD)”. În literatura franceză terminologia „Systemes Interactifs d’ Aide a la Decision - SIAD” pare să acopere mai bine rolul activ al factorului uman prin cuvântul „interactif” care conduce şi la partener: „calculatorul”; deci este vorba de sisteme informatizate.

În privinţa termenului de „decizie” lucrurile nu sunt foarte clare. Ştim foarte bine ca noţiunea de „decizie” nu este uşor de definit. Deci sistemele de asistare a deciziei sunt siteme informatice care oferă sprijin decidenţilor pe parcursul tuturor fazelor procesului decizional.

Deoarece în literatura de specialitate nu există o definiţie unanim acceptată coceptului de sistem de asistare a deciziei, s-a impus necesitatea abordării lui sub diferite aspecte.

Prima definiţie aferentă unor astfel de sisteme a fost elaborată la începutul anilor 1970 de către Little, care considera un sistem de asistare decizie ca fiind „un model bazat pe un set de proceduri pentru procesarea datelor şi pentru asistarea unui manager în procesul de luare a deciziilor”. Justificarea acestor explicaţii rezultă din faptul că un astfel de sistem trebuie să fie simplu, flexibil, uşor de manipulat şi complet în ceea ce priveşte furnizarea rezultatelor finale.

Un an mai târziu, Klein şi Tixier au identificat tipologia situaţiilor în care se face apel la un sistem de asistare a deciziei: existenţa unor factori esenţiali (raţionamentul, intuiţia şi experienţa decidentului); găsirea soluţiei optime implică mai multe activităţi (căutarea informaţiilor necesare, gestionarea datelor, modelarea şi structurarea problemelor); deciziile au la baza criterii numeroase, care se dovedesc a fi adesea conflictuale şi dependente de utilizatori etc.

12

Page 11: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Unul dintre pionierii cercetărilor efectuate în domeniul sistemelor informatice de asistare a deciziei, Steven Alter defineşte aceste sisteme în comparaţie cu cele tranzacţionale, considerând că acestea sunt „destinate managerilor şi au ca obiectiv principal eficacitatea deciziilor, spre deosebire de sistemele tranzacţionale, care sunt folosite de operatori şi au ca obiectiv principal eficienţa şi consistenţa datelor”.

O altă abordare a sistemelor de asistare a deciziei aparţine unor specialişti de marcă, Moore şi Chang, care demonstrau că un astfel de sistem este „extensibil, capabil să suporte analize ad-hoc şi modelarea deciziei”, fiind orientat în special, către viitor şi utilizat pe un interval de timp neregulat şi nedeterminat.

Aproximativ în aceeaşi perioadă de timp, mai exact în 1978, Keen realiza o lucrare care avea să devină una dintre cele mai importante în domeniu – „Decision Support Systems: An Organizational Perspective” – în cadrul căreia definea sistemul de asistare a deciziei ca „un produs al procesului de dezvoltare în care managerul, proiectantul şi sistemul sunt capabili să se influenţeze reciproc, cu rezultate în evoluţia sistemului.”

Ulterior, în 1980, alţi specialişti, Bonkzek şi Holsapple, abordau SIAD-urile prin prisma unui sistem informatic care conţine trei elemente interdependente: interfaţa cu utilizatorul, subsistemul de cunoştinţe şi subsistemul de rezolvare a problemelor. La nivelul aceluiaşi an, Keen mai emite o definiţie prin care asociază termenul de SIAD „situaţiei în care un sistem final poate fi dezvoltat numai printr-un proces flexibil de învăţare şi evoluţie”.

Privite dintr-o altă perspectivă sistemele de asistare a deciziei sunt definite de Sprague şi Carlson ca fiind „sisteme informatice interactive care ii ajută pe decidenţi să folosească date şi modele”, al căror obiectiv principal constă în rezolvarea unor probleme semistructurate şi nestructurate.

Holsapple şi Whiston [Lungu I., 2003] sintetizau în cadrul lucrării „Decision Support Systems: A Knowledge Based Approach” (1996) particularităţi de bază ale unui sistem de asistare a deciziei:[4]

o Conţine o bază de cunoştinţe care reflectă unele aspecte ale „lumii” decidentului (de exemplu cum se realizează anumite activităţi ale procesului decizional);

o Permite achiziţionarea şi gestionarea unor cunoştinţe descriptive sau de altă natură (reguli, proceduri);

o Asigură selectarea unui set de cunoştinţe în scopul vizionării acestora sau pentru extragerea unor informaţii necesare procesului decizional;

o Oferă facilităţi de prezentare a unor cunoştinţe ad-hoc sau de elaborare a unor rapoarte periodice;

o Dispune de module prin care se poate interacţiona direct cu decidentul şi îi asigură acestuia flexibilitate în alegerea soluţiilor sau în gestionarea cunoştinţelor.

Într-o altă abordare, un sistem de asistare a deciziei poate fi privit ca un sistem de prelucrare a informaţiilor (Sisteme de traitement de l’information), o problemă rezolvată sau, mai exact, un sistem prin intermediul căruia soluţionarea problemelor se face prin căutare şi explorare euristică.

Într-un alt context, sistemul de asistare a deciziei este considerat un sistem informaţional informatizat, care apelează la cunoştinţe dintr-un domeniu aplicativ în scopul de a asista decidentul în soluţionarea unor probleme slab structurare, denumite adesea probleme „neprogramabile”.

Una dintre cele mai precise şi relevante definiţii aferente sistemelor interactive de asistare a deciziilor a fost eleborată de Turban, şi anume: „un sistem informatic interactiv, flexibil şi adaptabil, special proiectat pentru a oferi suport în soluţionarea unor probleme nestructurate sau semistructurate, cu scopul de a îmbunătăţii sistemul decizional. Sistemul utilizează date (interne şi externe) şi modele, oferă o interfaţă simplă şi uşor de utilizat,

13

Page 12: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

permite decidentului să controleze sistemul decizional şi oferă suport pentru toate etapele procesului decizional”. [Turban E., 1998]

Indiferent de sensul definiţiilor anterioare, caracterul acestora este predominant formal deoarece majoritatea au ignorat componenta esenţială a unui sistem de asistare a deciziei, aceea de a asista şi ameliora procesul decizional. Prin sintetizarea tuturor formulărilor prezentate, un sistem de asistare a deciziei poate fi definit ca „un sistem interactiv, flexibil şi adaptat rezolvării problemelor nestructurate pentru ameliorarea procesului decizional în management”.

Ca un corolar al definiţiilor prezentate anterior, rezultă că abordarea diferită a sistemelor de asistare a deciziilor are drept punct de plecare modul de percepere a „acţiunilor” asociate unui astfel de sistem (şi anume suport al procesului decizional pentru soluţionarea unor probleme nestructurate sau semistructurate), modalităţile de atingere a obiectivelor sistemelor de asistare a deciziei, identificarea elementelor componente ale acestuia şi facilităţile pe care le asigură utilizatorilor. Sintetizarea elementelor „cheie” aferente celor mai interesante definiţii, în strânsă interdependenţă cu autorii acestora, poate fi realizată în mod sugestiv în figura 1.

Fig. 1. Definiţii „cheie” aferente SIAD-urilor[3]

În practica decizională a întreprinderilor, numeroase probleme clasice de gestiune conduc la procese decizionale inperfect structurate. Informaţia necesară pentru fundamentarea deciziei nu îndeplineşte decât parţial criteriile de pertinenţă (completitudine, fiabilitate, accesibilitate); astfel, în rezolvarea acestor situaţii probabilistice sau vagi (neclare), conduce procesul de luare a deciziilor ce rămâne la iniţiativa decidentului.

Apelarea la tehnologiile informatice generează ajutor doar în anumite faze ale actului decizional, dar îi lasă factorului de decizie controlul derulării operaţiilor de rezolvat; acest tip de relaţii între două entităţi , om-calculator, este caracteristic sistemelor de asistare a deciziei.

14

SIAD

LITTLEFuncţia

sistemului

ALTERObiectivel

e sistemului

MOORE şi CHANGFacilităţile sistemului

KEENProcesul

de dezvoltare

TURBANCombinarea

definiţiilor date de Alter, Moore,

Bonczek, Sprague

HOLSAPPLE şi

WHINSTONCaracteristicile sistemului

SPRAGUE şi CARLSON

Tipul problemei şi funcţia sistemului

BONCZEKComponentele sistemului

Page 13: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Pornind de la aceste considerente, un sistem de asistare a deciziei poate fi definit prin următoarele elemente:

Un sistem informatic asistat de calculator; Furnizează asistenţă decidenţilor în probleme care nu sunt în totalitate

structurate (incerte, neclare) Combină judecata umană cu prelucrarea automatizată a informaţiei; Un sistem în care controlul derulării procesului de decizie revine

decidentului, în cadrul unei cercetări de tip euristic; Un instrument care influenţează mai mult eficacitatea procesului de decizie

(adoptarea deciziilor care răspund obiectivelor stabilite), decât eficienţa procesului decizional (adoptarea unor decizii satisfăcătoare).

Sistemele de asiatare a deciziei (Decision Support Systems) reprezintă sisteme informatice cu rolul de a-i ajuta pe manageri în rezolvarea unor probleme nestructurate, folosind în acest scop baze de date şi modele din domeniul folosit. Acestea nu formulează decizii în locul managerului, ci doar îl ajută în elaborarea unor decizii cât mai eficiente.

Brien defineşte sistemele de asistare a deciziei ca fiind acele sisteme informatice pentru conducere, care se bazează pe utilizarea de modele analitice, baze de date specializate, judecata şi intuiţia decidentului şi un proces de modelare computerizat, interactiv care sprijină luarea deciziilor semistructurate sau nestructurate de către manageri. Aceste sisteme oferă răspunsuri pe loc într-o sesiune interactivă om- calculator şi sunt adaptate pe stilul personal al managerului. Ele reuşesc să simuleze intrebările „ce-ar fi dacă”. Obiectivele principale şi imediate ale sistemelor de asistare a deciziilor sunt imbunătăţirea modalităţii de adoptare a unei decizii, realizarea unui studiu pregătitor în vederea adoptării deciziei în cazul în care ansamblul activităţilor care trebuie desfăşurate în acest scop nu este programabil şi elaborarea efectivă a deciziilor.

Peter Keen şi Michael Scott Morton susţin că „sprijinirea deciziei implică utilizarea calculatoarelor pentru: asistarea managerilor în procesele decizionale de tip semistructurat, sprijinirea raţionamentului managerial şi pentru îmbunătăţirea eficacităţii decidenţilor şi mai puţin a eficienţei”.

Spargue şi Watson definesc SIAD-ul ca un „sistem informaţional distinct care integrează modelele decizionale, bazele de date şi decidenţii în vederea sprijinirii luării deciziilor”.

Alte definiţii scot în evidenţă scopul şi structura sistemelor de asistare a deciziei.„Un sistem informatic (computer – based system) care este utilizat de manageri

înşişi sau de staff- ul acestora ca suport direct pentru luarea deciziilor manageriale” [Keen P., Wagner G., 1979].[4]

„Un set de instrumente informatice utilizate de manageri în legătură cu rezolvarea problemelor lor şi luarea deciziilor” [Leigh W., Doherty M., 1986].

„Sistemele de asistare a deciziei sunt utilizate pentru rezolvarea problemelor slab structurate, unde arta conducerii se înbină cu ştiinţa” [Kanter J., 1992].

„Un sistem informatic care influenţează sau încearcă să influenţeze luarea deciziilor de către manageri” [Silver M., 1991].

„Un set de instrumente, date, modele şi alte resurse pe care managerii şi analiştii le utilizează pentru înţelegerea, evaluarea şi rezolvarea problemelor din domenii nestructurate” [Kroente D, 1992].

„Un set integrat de instrumente informatice care permit decidenţilor să interacţioneze direct cu sistemele de calcul pentru a obţine informaţii necesare luării deciziilor semistructurate sau nestructurate” [Hicks J., 1993].

15

Page 14: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

„Sistemele de asistare a deciziei sunt modele analitice utilizate pentru sporirea eficienţei luării deciziilor de către manageri prin vizualizarea celor mai importante date” [Frenzel C., 1996].

„Sistemele de asistare a deciziei reprezintă o colecţie organizată de personal, proceduri, software, baze de date şi echipamente utilizate pentru sprijinirea problemelor specifice de luare a deciziilor” [Stair R., Reynolds G., 1997].

„Sistemele informatice proiectate pentru a ajuta managerii să salveze una sau mai multe alternative ale unei probleme” [Oz E., 1998].

„Sistemele de asistare a deciziei sunt sisteme informatice care furnizează un suport informaţional interactiv managerilor pe parcursul proceselor decizionale” [O’Brien J., 1999].

Sprague, unul dintre pionierii lucrărilor sistemelor de asistare a deciziilor face o serioasă încercare de a definii SIAD-urile pornind de la un punct de vedere teoretic şi în final legaţi de practică. Compromisul său bazat pe observaţiile asupra SIAD-urilor din acel timp, includea în definiţie patru elemente esenţiale:

1. SIAD-urile tind să fie orientate spre probleme mai puţin bine structurate referitoare la nivelurile superioare de management.

2. SIAD-urile încearcă să combine utilizarea modelelor sau tehnicilor analitice cu accesul tradiţional la date şi funcţii de căutare.

3. SIAD-urile sunt focalizate pe caracteristici care le face uşor de utilizat de neinformaticieni într-un mod interactiv.

4. SIAD-urile se bazează pe flexibilitate şi adaptabilitate pentru a sigura acomodarea utilizatorilor cu schimbările din mediul decizional.

2.2. Evoluţie

Un precursor al curentului SIAD poate fi considerat Licklider. Licklider propunea o viziune idealizată a sistemelor om-maşină „procognitive”. Acestea aveau ca menire să „asigure decidentului accesul la un stoc de cunoştinţe şi instrumente analitice cu scopul de a-i conferi capacităţi imense de rezolvare a problemelor„. Se apreciază că originile SIAD-urilor au două surse principale. Prima constă în studiile teoretice care vizau înţelegerea proceselor decizionale în organizaţii elaborate la sfârşitul anilor ’50 şi înceutul anilor ’60 la Carnegie Institute of Technology. Rezultatul acestor studii au fost publicate în lucrări celebre (Simon, 1955; March, Simon, 1958; Newell, Simon, 1963). O a doua sursă principală o reprezintă proiectele, care priveau sistemele cu timp partajat („time sharing”), desfăşurate la începutul anilor ’60 în universităţi americane: proiectul MAC la Sloan School şi Dartmouth Time Sharing System la Tuck School şi, mai apoi, în instituţiile de învăţământ superior din Franţa (proiectul Scarabee la HEC).[5]

La sfârşitul deceniului şapte şi în anii ’70, s-au consemnat câteva aplicaţii de pionierat şi s-au publicat lucrări care au pregătit terenul din punct de vedere conceptual. Primele sisteme prefigurau SIAD-urile orientate către modelele de azi. Cele mai multe foloseau calculatoarele de tip „mainframe” şi terminalele conversaţionale pentru implementarea metodelor cercetării operaţionale (în special cele optimizate) sau realizarea analizelor de tip „Ce s-ar întâmpla dacă …? (What if …?)”[Dahr, Stein, 1997].

De mare popularitate s-au bucurat limbajele specializate pentru aplicaţii financiare, al căror prototip a fost IFPS („Interactive Financial Planning Systems”) [Gray, 1987]. Aceste soluţii care permiteau crearea facilă direct de către manageri a unor modele simple, au fost folosite chiar şi până către zilele noastre [Gray, 1996]. Alte încercări au constituit arhetipurile unor clase de SIAD-uri de azi. De exemplu, sistemul GADS („Geodata Analysis and Display System”) [Grace, 1976; Sprague, Carlson, 1982] al firmei IBM a

16

Page 15: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

anticipat SIAD-urile spaţiale de astăzi, iar sistemul MIDS („Management Information Decision Support”) de la Lockheed – Georgia [Houdeshel, Watson, 1987] a prefigurat sistemele de tip EIS pentru managerii de vârf.

La mijlocul deceniului opt, s-a produs „întâlnirea” decisivă dintre modelele computerizate şi tehnologia bazelor de date. Aceste două componente tehnologice au devenit, alături de interfaţa prietenoasă, principalele tehnologii informatice care au caracterizat multă vreme SIAD-urile. [Sprague, Watson, 1975; Sprague, 1980].

Câţiva autori au publicat lucrări de început, care au realizat o primă definire a cadrului conceptual pentru eforturile de cercetare, dezvoltare şi implementare care au urmat (Scott, Morton, 1967; Little, 1970; Gorry, Scott Morton, 1971; Gerritty, 1971; Davis, 1974; Keen, Scott Morton, 1978; Rockart, 1979; Swanson, Culnan, 1978).

În România, în această perioadă a fost publicată o carte importantă despre teoria deciziilor (Boldur, 1973). În acelaşi timp, la Institutul Central de Informatică (ICI), două SIAD-uri experimentale au fost realizate de F. Filip, D. Donciulescu şi A. Leu. Ele foloseau sistemul de calcul FELIX 256 şi minicalculatorul VARIAN aflate la sediul ICI, iar accesul se realiza de la Sala Palatului prin terminale de tip IBM VT52 şi respectiv, Teletype conectate prin linie telefonică şi modem. Aceste prime încercări au constituit semnalul unei activităţi de cercetare-dezvoltare românească în domeniul SIAD-urilor.

Sfârşitul acestei perioade de acumulări a fost marcat de o conferinţă asupra SIAD-urilor, desfăşurată la San Jose în perioada 24-26 ianuarie, 1977, în organizarea IBM San Jose Research Laboratory, Sloan School of Managemnet, MIT, Wharton Business School şi ACM SIG BDP. Conferinţa a anunţat că „a sosit timpul unui nou subiect de atenţie („buzzword”)” – SIAD”, fără însă a clarifica toate problemele (Alter, 1977).

Etapa afirmării acestui domeniu, care acoperă deceniul al nouălea se caracterizează prin clarificarea şi consolidarea conceptelor, creşterea semnificativă a numărului de aplicaţii şi diversificarea soluţiilor. În consecinţă, s-a extins interesul faţă de SIAD care a fost acceptat ca obiectul unui domeniu nou de cercetare şi dezvoltare de produse comerciale.[8]

Începutul etapei a fost marcat oficial de „First International Conference on Decision Support Systems”, ţinută la Atlanta, Georgia şi înfiinţată, în anul 1981, în cadrul Comitetului tehnic (TC) 8, „Sisteme informatice”, al IFIP („Internatinal Federation of Information Processing”), a grupului de lucru (Working Group - WG) 8.3 privind SSD-urile. Aria de interes a WG 8.3 cuprindea „dezvoltarea de abordări pentru aplicarea tehnologiilor sistemelor informatice în scopul de a creşte eficacitatea decidenţilor în situaţii în care calculatorul poate asista şi extinde judecata umană pentru realizarea unor sarcini care pot conţine elemente ce nu pot fi specificate de la început”. Scopul WG 8.3 era „de a îmbunătăţii caile de sinteză şi de a aplica realizările relevante din disciplinele de referinţă până la implementarea unor sisteme care extind capacităţile de suport al deciziilor” [Humphrey, 1996]. Acest grup de lucru a organizat o serie de conferinţe importante care au contribuit la progresul domeniului. La editura Elsevier a furnizat o „tribună” specializată importantă pentru expunerea unor idei şi rezultate avansate din domeniu.

În această etapă sunt publicate câteva lucrări considerate clasice, care au orientat ferm cercetarea în domeniul SIAD-urilor şi au conturat un cadru metodologic coerent pentru dezvoltarea de produse informatice şi implementarea de sisteme de aplicaţie [Alter, 1980; Bonczek, Holsapple, Whinston, 1981; Sprague, Carlson, 1982].

În planul dezvoltării de soluţii concrete, se poate observa o multiplicare a aplicaţiilor şi o diversificare a soluţiilor pentru a răspunde caracteristicilor implementărilor specifice. În primul rând, se poate constata formidabila răspândire a folosirii programelor de calcul tabelar electronic („spreadsheets”) în aplicaţiile de asistare a deciziilor cu cost redus.

17

Page 16: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

În România, la ICI, pe baza experimentelor din 1975, descrise mai sus, s-au realizat, folosind microcalculatoarele româneşti compatibile cu PDP11 şi apoi de tip PC, sistemele DICOTR-C (precursor SSD DISPECER) şi DICOTR-D (precursorul SSD CADIS) pentru asistarea în timp real a deciziilor de conducere a productiei cu procese continue şi respectiv, prelucrări discrete.

Sistemele de aplicatie din familia DISPECER au fost implementate în combinate chimice, rafinării, uzine de celuloză şi hârtie, sisteme de retenţie şi distribuţie a apei. Tot în anii '80, au fost realizate şi implementate sisteme de asistare a deciziilor de alocare a resurselor care foloseau metodele optimizării flexibile şi cele pentru decizii de conducere a sistemelor ecologice.

La începutul anilor ’80, se remarca apariţia primelor SIAD-uri de grup: Mindsight al firmei Excucom Systems, Group Systems şi PLEXSYS la University of Arizona, SAMN la University of Minnesota. Acestea au fost urmate de aplicaţii la marile firme americane (IBM, Greyhound, Bell South) şi de la produsele oferite de furnizori importanţi de TI (IBM, ICL) sau de câteva firme specializate (Ventana Corporation, denumită în prezent Group Systems,, Perceptronics, Decision &Design). SIAD-urile de grup au reprezentat prima „întâlnire decisivă” a componentelor tradiţionale ale unui SIAD (modelele computerizate, baza de date şi interfaţă prietenoasă) cu tehnologia comunicaţiilor. [Gray, Nunamaker, 1993].

Tot în perioada anilor ’80, soluţiile pentru managerii de vârf de tip EIS, („Executive Information Systems”) sau ESS („Executive Support Systems”) cunosc o perioadă de mare răspândire, mai ales după introducerea versiunilor bazate pe platformele Windows [Rockart, Treacy, 1982; Rockart, De Long, 1988; Paller, Laska, 1990; Watson, Rainer, Koh, 1991].

În partea a doua a deceniului al nouălea, se produce o apropiere între SIAD-urile bazate pe modele matematice şi baze de date şi sistemele expert. Astfel, apar soluţii combinate, orientate către modele şi către cunoştinţe purtând diverse denumiri ca „sisteme tandem" [Kusiak, 1988, 1990], sistemele cu „modele bazate pe reguli/procese" [Sol, 1988; Bosman, 1987], SIAD-uri cu „cunoştinţe mixte/combinate” [Filip, 1988, 1990; Filip, Donciulescu, Socol, 1990; Donciulescu, 1998; Singh, 1988], sau „SIAD-uri de tip expert” („expert DSS” – X DSS), care conţin şi o componentă de comunicaţii [Sen, Biswas, 1985; Chen, 1988; Biswas, Oliff, Sen, 1983].

Această tendinţă de folosire combinată, anticipată la începutul anilor ’80 de către Bonczek, Holsapple, Whinston (1981) a modelelor matematice şi a metodelor bazate pe inteligenţa artificială va continua şi se va amplifica în deceniul următor [Filip, 1992; Filip, Roberts, Zhang, 1992; King, 1993; Dutta, 1996].

În ultimele trei decenii, ideea de sistem de asistare a deciziei a condus la multe speculaţii şi a generat „aşteptări” foarte mari la nivelul managerilor, care şi-au lăsat frâu liber imaginaţiei în acest sens: „poate va fi creat un sistem care să decidă în locul lor!”. Astfel, chiar dacă tehnica electronică de calcul a evoluat într-un ritm ameţitor, cu implicaţii profunde asupra modalităţilor de prelucrare a informaţiilor aferente procesului decizional, totuşi managerii au fost „dezamăgiţi” uneori de încercările de transpunere în practică a tehnologiilor informatice specifice procesului de luare a deciziilor.

Unii din specialiştii sistemelor de asistare a deciziilor sunt susţinătorii lui Peter Keen, care consideră că cercetările din acest sector au fost orientate către două domenii principale: pe de o parte studiile teoretice efectuate la Carnegie Institute of Technology, la sfârşitul anilor ’50 şi începutul anilor ’60, iar pe de altă parte, documentaţiile tehnice privind sistemele informatice interactive desfăşurate în special la Massachutes Institute of Technology în perioada anilor 1960.

18

Page 17: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Ulterior în 1971 Scott Morton în „Management Decision Systems: Computer based Support for Decision Making” – care a reprezentat şi teza sa de doctorat, a prezentat etapele de proiectare a unui sitem de asistare a deciziei, folosit iniţial de manageri în domeniul marketing-ului şi producţiei, apoi extins şi în sectorul investiţiilor financiare. În acest context, putem considera că Scott Morton a marcat „debutul” preocupărilor legate de studiere, definirea şi implementarea sistemelor informatice utilizate în procesul decizional.

Ceva mai târziu, în 1974, Gordon Davis, publica la Universitatea Minnsota o lucrare care avea să devină de referinţă în acest domeniu: „Management Information Systems: Conceptual Foundations, Structure and Development”. Capitolele „Information Support Systems for Decision Making” şi „Information Support Systems for planning and control” au constituit baza dezvoltării unei fundamentări riguroase în cercetarea şi utilizarea SIAD-urilor.

Unul din specialiştii de marcă în domeniul sistemelorde asistare a deciziei, J. D. C. Little, a extins frontierele modelării asistată de calculator prin proiectarea, în anul 1975, a unui sistem informatic (numit generic Brandaid) utilizat pentru a oferii suport decizional în domeniile producţiei, marketing-ului, politicilor de preţ şi publicitate. În lucrarea sa „Models and managers: The concept of a decision Calculs”, Little identifică unele dintre caracteristicile esenţiale ale sistemelor informatice folosite în procesul decizional: simplitate, uşurinţă în control, consistenţă şi „robusteţea” acestuia.

În perioada anilor 1980 – 1981, alţi specialişti – S. Alter, Bonczek, Holsapple şi Winston – au adus contribuţii importante la extinderea domeniului de aplicare a sistemelor informatice asigurând fundamentul teoretic care stă la baza proiectării sistemelor actuale din procesul decizional.

În lucrarea „Construirea unui sistem de asistare a deciziei”, autorii R. Sprague şi E. Carlson au prezentat metodologiile de proiectare a sistemelor de asistare a deciziei, rolul lor în infrastructura organizaţiei în cadrul căreia sunt implementate şi componentele de bază ale SIAD-urilor.

La jumătatea anilor ’80, aria sistemelor destinate procesului decizional se diversifică prin apariţia sistemelor informatice de asistare a deciziei pentru executivi (Executive Support Systems - ESS), a sistemelor pentru decizii de grup (Group Decision Support Systems - GDSS) şi organizaţionale (Organizational Decision Support Systems - ODSS), toate având drept punct de plecare sistemele monoutilizator, orientate pe modele.

În cadrul unui articol extrem de interesant publicat în 1989 – „A framework for Management Information Systems” – autorii Gorry şi Scott Morton abordează suportul decizional prin prisma unui „cadru” dezvoltat sub forma unei matrice de corespondenţă, în cadrul căreia:

Pe linie, se regăsesc tipurile de decizii (structurate, semistructurate şi nestructurate)

Pe coloană, se identifică nivelurile procesului de conducere (strategic, tactic, operaţional).

În general, managerii la nivel operaţional utilizează surse interne de informaţii, de natură repetitivă, fiind extrem de important să furnizeze informaţiile în timp real. În aceste condiţii, ei apelează la puţine date istorice sau la surse externe de informare, aspect care impune proiectarea unor sisteme informatice care să furnizeze managerilor acestui nivel, informaţii rapide şi on-line. Chiar dacă se aseamănă sub aspectul utilizării surselor de date interne, totuşi managerii care decid la nivel tactic apelează mult mai des la informaţii istorice pentru a previziona anumite evenimente viitoare. Situaţiile în care problemele întâlnite la nivelul organizaţiei nu pot fi structurate, impun apelarea la experienţa umană pentru formularea deciziilor, aspecte întâlnite îndeosebi la nivelul strategic şi, uneori, tactic. Managerii strategiei utilizează foarte mult surse de date externe, care le furnizează

19

Page 18: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

atât o imagine de ansamblu despre strategia firmelor concurente, cât şi informaţii privind tendinţele noi de pe piaţă. În proiectarea şi dezvoltarea sistemelor de asistare a deciziei trebuie să se aibă în vedere faptul că managerii nivelului strategic au nevoie de date agregate şi de calitate superioară, în timp ce managerii operaţionali apelează mai mult la date de detaliu şi pun accent pe aspectul cantitativ al acestora.[5]

2.3. Caracteristici

Spectrul sistemelor interactive reunite sub denumirea de sisteme informatice de asistare a deciziei este foarte larg: începând de la SIAD-urile banale, care spijină deciziile repetitive pe baza unor proceduri şi formate predefinite, la SIAD-urile generale, bazate pe programe de calcul tabelar, SGBD-uri şi pachete de aplicaţii grafice, şi până la SIAD-uri complexe care vizează domenii clar delimitate şi se bazează pe simulare, modele de optimizare şi de prelucrare analitică on-line şi depozite de date.[3]

Din multiplele definiţii asociate conceptului de SIAD decurg o serie de particularităţi fundamentale aferente acestora, în raport cu facilităţile pe care le asigură:

Asigură îndeosebi rezolvarea problemelor semistructurate de către decidenţii implicaţi în procesul de conducere.

Modul de rezolvare a unei probleme este puternic influenţat de natura acesteia şi de tipul situaţiei decizionale. Într-una dintre cele mai importante lucrări din literatura de specialitate E. Turbam grupa deciziile în trei mari categorii:

o Structurate, care se identifică prin faptul că toate fazele procesului decizional sunt structurate, cu obiective bine definite, intrări şi ieşiri suficient de clare, avantajul esenţial constând în faptul că toate variabilele sunt cunoscute şi complet programate.

o Semistructurate, recunoscute prin intermediul problemelor care pot fi parţial structurate, dar care apelează în acelaşi timp, la creativitatea şi intuiţia umană.

o Nestructurate, considerate situaţii în care obiectivele sunt greu de cuantificat şi este aproape imposibil să se proiecteze o soluţie viabilă. În aceste condiţii SIAD-urile intervin pentru a oferi decidentului suportul necesar pentru soluţionarea părţilor structurabile ale problemei, asigurându-i astfel posibilitatea de a se preocupa de părţile nestructurate ale acesteia.

Asistarea deciziilor se poate realiza la toate nivelurile de conducere, de la managerii operaţionali la „top manageri”.

Având în vedere faptul că decizia poate fi considerată cel mai puternic instrument din arsenalul unui manager, se impune adaptarea şi actualizarea acestuia în funcţie de „palierul” de conducere aferent procesului decizional din structura unei organizaţii. Astfel, în timp ce la nivel tactic deciziile sunt complexe şi volumul de informaţii utilizat este destul de mare, la nivel strategic acestea sunt orientate către probleme legate de „performanţele” organizaţiei şi către direcţiile strategice de dezvoltare, iar la nivel operaţional deciziile sunt luate pe termen scurt şi au, adesea caracter repetitiv.

Dispune de resurse pentru susţinerea procesului decizional în toate fazele sale şi poate fi adoptat diverselor stiluri decizionale.

Pornind de la definiţia generală a deciziei – un proces raţional de alegere a unei variante de acţiuni din mai multe posibile, pentru atingerea unui obiectiv prestabilit, distingem următoarele faze ale procesului decizional:

o Identificarea problemei se bazează pe procesul de cercetare a informaţiei, cu atât mai mult cu cât, în această etapă, informaţiile utile nu sunt întotdeauna prezente. Necesitatea definirii problemei, pornind de la un fond de informaţii cât mai pertinent,

20

Page 19: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

constituie una din coordonatele fundamentale ale procesului decizional, întrucât „arta” decidentului constă, în primul rând, în definirea „adevăratei” probleme, înainte de găsirea unei soluţii corespunzătoare. În această etapă, principala cerinţă a sistemului de asistare a deciziei se referă la posibilitatea de accesare rapidă şi eficientă a surselor de date interne şi externe ale organizaţiei; totodată, datorită facilităţilor sale de modelare, un SIAD poate analiza extrem de rapid un ansamblu de informaţii.

o Modelarea fenomenului care a generat problema constituie una dintre fazele esenţiale ale procesului de decizie, prin prisma modalităţilor de structurare şi utilizare a informaţiilor. În mod firesc, după acumularea, interpretarea şi structurarea informaţiilor pe baza cărora se va fundamenta decizia se impune reprezentarea fenomenului real, pentru a putea explica sau previziona anumite aspecte intrinseci lui, cu un grad ridicat de acurateţe. Astfel, cea mai utilă practică în reprezentarea unei situaţii reale este cea a modelării. Pentru a reliefa importanţa deosebită a procesului de modelare, J. Forrester sintetiza într-una din lucrările sale: „Pentru a înţelege realitatea, trebuie să o reduci şi abstractizezi prin intermediul modelelor”.

Generarea alternativelor pentru problemele structurate poate fi furnizată de SIAD prin intermediul unor modele standard sau specializate. Totuşi, construirea mai multor alternative pentru probleme complexe impune o anumită experienţă ce poate fi furnizată numai de către om sau printr-un sistem expert, întrucât SIAD-ul, prin definiţie, nu face o alegere a variantei optime. În aceste condiţii, optimizarea sau alte modele matematice pot asigura identificarea soluţiilor posibile şi „ordonarea” alternarivelor în concordanţă cu criteriile de selecţie.

o Definirea deciziei sau variantelor decizionale La nivelul organizaţiei, procesul de informare se materializează, în această etapă,

prin posibilitatea adoptării deciziei sau variantelor decizionale, pe baza informaţiilor rezultate din activitatea de modelare. În această fază, SIAD-urile pot constitui un „punct de sprijin” în cadrul procesului prin analize de tip „what - if” sau „goal - seeking”.

o Implementarea deciziilor presupune, în general, activităţi de comunicare a acestora la diferite niveluri ierarhice, explicarea soluţiilor adoptate şi justificarea acestora.

o Evaluarea deciziei adoptate.Problema aprecierii deciziei care s-a adoptat nu se fundamentează în mod exclusiv

prin prisma efectelor directe sau indirecte pe care decizia le include pe plan managerial sau organizaţional.

Permite decidentului să controleze procesul decizional.În cadrul unei organizaţii, indiferent la nivelul la care operează, decizia se

manifestă ca o activitate ce culminează cu selecţia uneia dintre variantele prezentate, iar decidentul trebuie să aibă controlul asupra acestei selecţii finale. În aceste condiţii, SIAD-ul trebuie sa dispună de resursele necesare pentru a constitui un „suport” al procesului de selecţie, chiar dacă aceste sisteme nu fac decât să extindă, oarecum, capacitatea de luare de decizii a managerilor, dar nu îi pot înlocui în totalitate.

Poate asista mai multe decizii interdependente şi/sau secvenţiale, având în vedere faptul că, în practica economică, majoritatea deciziilor sunt intercorelate.

SIAD-urile generează decizii mult mai consistente şi mai obiective, având în vedere faptul că se bazează pe o analiză completă a informaţiilor şi sunt realizate cu aportul direct sau indirect al celor care sunt afectaţi de aceste decizii. Astfel, deciziile pot avea o calitate superioară şi au şanse mai mari de a fi implementate cu succes în practică.

Permite îmbunătăţirea eficacităţii procesului decizional.În general, gradul în care decizia atinge obiectivele predefinite în cadrul

organizaţiei constituie un element esenţial în aprecierea eficacităţii aferente procesului de

21

Page 20: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

stabilire a deciziilor. Astfel, facilităţile oferite printr-un SIAD trebuie să urmărească şi modul în care aceasta contribuie la realizarea obiectivelor deciziei.

Este un sistem adaptabil în timp, fiind dezvoltat, în general, printr-un proces literativ, evolutiv.

Decidentul trebuie să aibă un comportament reactiv în utilizarea SIAD-urilor, să sesizeze modificarea condiţiilor de mediu şi a preferinţelor manageriale la un moment dat, considerent care ne permite să apreciem că utilizarea unui prototip iterativ în proiectarea şi construirea unui astfel de sistem poate fi o soluţie viabilă pentru atingerea exigenţelor, mereu apărute, ale utilizatorilor.

Chiar şi în condiţiile în care proiectarea SIAD-ului este făcută de profesionişti, totuşi performanţele acestuia sunt „micşorate” de obstacolele întâlnite în procesul decizional. În general, sistemele din această categorie sunt proiectate pentru anumite situaţii decizionale care nu pot fi generalizate; în plus, activităţi specifice omului – creativitate, intuiţie sau imaginaţie – aparţin experienţei umane şi nu pot fi, deocamdată, automatizate.

În condiţiile în care un SIAD este conceput pentru o situaţie decizională cu un anumit specific, rezolvarea unei probleme complexe impune utilizarea unui „grup” de astfel de sisteme. Drept corolar, putem aprecia că noţiunea de „SIAD universal” nu există şi, probabil, este destul de greu de crezut că va exista vreodată. Astfel, decidentul este obligat să coordoneze multiple sisteme care comunică între ele, integrarea SIAD-urilor constituind, în continuare, o decizie de mare complexitate şi incertitudine.

În ultima perioadă, specialiştii în domeniu au încercat să proiecteze şi să dezvolte SIAD-uri care stimulează creativitatea şi procesul de învăţare care pot oferi facilităţi suplimentare de întreţinere, gestionare şi dezvoltare a bazei de cunoştinţe necesare procesului decizional din afaceri.

Analiza caracteristicilor mai semnificative aferente unui SIAD permite formularea unei precizări importante: un SIAD reprezintă cea mai flexibilă şi interactivă soluţie în domeniul tehnologiilor informatice, proiectată pentru a asista la adoptarea unei decizii, în condiţiile în care problema nu este structurată, deci nu dispune de modelele stabile şi reguli riguros definite. De asemenea, SIAD-ul permite decidentului derularea unui dialog continuu (de tipul „what…if”în limbajul anglo-saxon), prin care se verifică modul în care intrările afecteză ieşirile, precum şi utilizarea unor instrumente de modelare (analize de regresie, teoria grafurilor, teoria firelor de aşteptare) cu ajutorul cărora pot fi analizate informaţiile disponibile la un moment dat. Aceste aspecte crează o diferenţiere clară între sistemele informatice de gestiune – care reprezintă metoda tipică de furnizare a unor rapoarte predeterminate, în funcţie de care decidentul adoptă o decizie bine fundamentată – şi sistemele de asistare a deciziei – care permit introducerea treptată, pe diferite niveluri, a datelor de intrare, modelarea lor prin diverse tehnici, conducând la final la obţinerea unor rezultate care vor fi evaluate prin raţionamentul decidentului.

Calităţile indispensabile ale unui SIAD sunt:[7] Simplitate, în sensul că modelele utilizate trebuie să conţină numai

fenomenele importante. Frecvent, există tendinţa de a adăuga detalii, ceea ce poate deveni o piedică în comunicarea cu decidentul; de aceea trebuie integrate numai detaliile accesibile utilizatorului astfel încât modelul să fie înţeles în mod corespunzător cu logica sa.

Robusteţe, prin eliminarea posibilităţii de a furniza răspunsuri incorecte sau false.

Adaptabilitate, deoarece atunci când sunt necesare noi informaţii, sistemul trebuie să fie capabil să le integreze şi să le actualizeze cu uşurinţă. Această condiţie se impune a fi respectată atât la nivelul parametrilor, cât şi pentru structura modelelor.

22

Page 21: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Exhaustivitate, întrucât descrierea structurii modelelor utilizate trebuie să fie realizată astfel încât să permită tratarea unui număr mare de fenomene, fără ca acest lucru să implice o prea mare complexitate. De fapt, utilizatorul trebuie să poată fixa nivelul de exhaustivitate în raport cu obiectivele sale şi exigenţele problemei studiate.

Naturaleţea comunicării, concretizată în faptul că decidentul trebuie să poată schimba cu uşurinţă intrările şi să obţină rapid rezultatele; cererile de interogare trebuie formulate într-un limbaj accesibil utilizatorului. Într-un astfel de sistem, calitatea interfeţei care asigură dialogul om-calculator este esenţilă.

Spectrul sistemelor reunite sub denumirea SIAD-urilor este foarte larg. Caracteristicile fundamentale ale SIAD-urilor, care le individualizează de celelalte tipuri de sisteme informatice pentru conducere sunt următoarele:[4]

SIAD-ul asistă deciziile, cu precădere pentru situaţiile semistructurate şi nestructurate, combinând cunoştinţele şi intuiţia umană cu cunoştinţele şi viteza calculatorului.

Asistarea deciziilor se poate realiza la toate nivelurile de conducere; SIAD-ul poate asista mai multe decizii interdependente şi/sau secvenţiale; SIAD-ul susţine toate fazele procesului decizional şi poate fi adaptat

diverselor stiluri decizionale. SIAD-ul este adaptabil în timp. Decidentul trebuie să aibă un comportament

reactiv în utilizarea SIAD-urilor, să sesizeze schimbarea condiţiilor şi să adapteze corespunzător sistemul.

Un SIAD ad-hoc poate fi definit cu uşurinta de către utilizator, pe baza unui mediu de dezvoltare prietenos, flexibil, cu capacităţi grafice puternice şi interfaţă adaptată utilizatorilor neprofesionişti.

SIAD-ul promovează învăţarea şi acumularea de noi cunoştinţe , care conduce la cerinţe noi şi rafinate.

SIAD-ul se bazează pe modele standard sau definite de utilizator. Capacităţile de modelare ale sistemului favorizează experimentarea, în contextul mai multor configuraţii.

SIAD-ul include diferite categorii de analiză , de la „ce-ar fi dacă” la elaborarea şi selectarea scenariilor.

2.4. Arhitectura

Structura generală a unui sistem interactiv de asistare a deciziei trebuie să reflecte modul în care se realizează combinarea elementelor componente, interdependenţa dintre ele, ansamblul de date interne şi externe gestionate în cadrul organizaţiei, bazele de date, modelele şi utilizatorii acestora, instrumentele software utilizate, echipamente hardware existente, posibilităţile de comunicare la diferite nivele ale firmei.[6]

Sistemele informatice de asistare a deciziei sunt alcătuite din module software pentru gestiunea datelor, pentru gestiunea modelelor şi pentru gestiunea dialogului (interfaţa cu utilizatorul). Sistemele de asistare a deciziei mai avansate mai conţin încă o componentă, şi anume, componenta de gestiune a cunoştinţelor ce are la bază un sistem expert conferindu-i astfel sistemului, atributul de sistem inteligent sau sistem suport de decizie bazat pe cunoştinţe.[3]

Obiectivul principal urmărit prin conceperea arhitecturii unui sistem informatic – în general, şi a unui sistem interactiv de asistare a deciziei – în particular, poate fi atins prin asigurarea următoarelor facilităţi:

Compatibilitatea sistemului, ceea ce presupune resursele acestuia să poată fi partajate de toţi utilizatorii implicaţi în procesul decizional;

23

Page 22: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Inter-operabilitatea sistemului, fapt care asigură posibilităţi suplimentare de manipulare şi gestionare a informaţiilor în cadrul sistemului;

„Evolutivitatea” sistemului, în sensul că, acele componente care îndeplinesc o singură funcţie în infrastructura sistemului, nu trebuie să constituie un obstacol în dezvoltarea viitoare a organizaţiei.

Unii dintre specialiştii care au emis cele mai interesante definiţii asupra conceptului de SIAD, au oferit – în mod firesc – şi soluţii de construire a unui astfel de sistem; în 1982, R. Sprague şi E. Carlson considerau că elementele componente ale unui SIAD sunt: componenta de gestiune a datelor, componenta de gestiune a modelelor, componenta de gestiune a dialogului cu utilizatorul (prin intermediul căreia se identifică ansamblul de resurse hardware şi software ce creează interfaţa sistemului) şi arhitectura sistemului, acestea fiind prezentate în mod sugestiv prin figura 2.

UtilizatorFig. 2. Componentele unui SIAD identificate de Sprague[3]

La nivelul acelei perioade, Sprague identifica următoarele stiluri de dialog: interfaţa de tip „linie de comandă”, interfaţa „meniu”, interfaţa de tip „întrebare-răspuns” şi interfaţa

24

Baza de date Baza de modele

SGBD SGBMSistem de gestiune adialogului

Page 23: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

„bazată pe forme”. Totuşi, în literatura de specialitate care „surprinde” acel moment din evoluţia sistemelor informatice rezultă că dialogurile erau orientate îndeosebi pe text, iar interfaţa cea mai utilizată pentru sisteme de asistare a deciziei era de tip meniu. De asemenea, preocuparea principală în „lumea” gestiunii datelor era stocarea şi manipularea datelor structurate, în condiţiile în care bazele de date pentru SIAD-uri aveau capacităţi destul de limitate în acest „sector de activitate” şi nu erau integrate cu bazele de date tranzacţionale. Totodată, specialiştii interesaţi în acea perioadă de conceperea şi „promovarea” SIAD-urilor se loveau de dificultăţi majore în procesul de integrare a componentelor acestui tip de sisteme, în condiţiile în care instrumentele de dezvoltare şi resursele hardware existente în acel moment au creat obstacole majore în majoritatea sistemelor şi în furnizarea de suport decizional distribuit performant.

Aproximativ în aceeaşi perioadă de timp (1981), alţi autori – Boncszek şi Holsapple – identificau în structura unui sistem de asistare a deciziei doar trei elemente esenţiale care interacţionează: interfaţa cu utilizatorul, componenta de gestiune a datelor şi componenta de gestiune a modelelor.

Ulterior, într-o altă lucrare de specialitate, Hattenschwiler considera că, în structura unui SIAD se pot regăsi cinci elemente, prezentate în mod sistematic în figura 3.

Fig. 3. Componenetele unui SIAD conform teoriei lui Hattenschwiler[3]

Un an mai târziu, Power aborda sistemele informatice de asistare a deciziei prin prisma a patru componente importante, şi anume:

Interfaţa, percepută de cele mai multe ori ca fiind elementul esenţial al unei astfel de structuri;

Subsistemul bazei de date, care cuprinde atât baza de date propriu-zosă, cât şi sistemul de gestiune a acesteia. La nivelul unei organizaţii, un SIAD orientat pe date apelează, de cele mai multe ori, la depozite de date, iar procesul de extragere, prelucrare, încărcare şi indexare a acestora implică activităţi destul de complexe. În schimb, datele nestructurate sau documentele sunt stocate diferit, în raport cu cele structurate, dar utilizatorii pot opta pentru una dintre platformele destul de puternice dezvoltate de serverele Web.

25

Context decizional Sistem destinaţie

Mediu de lucru

Utilizator

Baza de cunoştinţe

Componentele

unui SIAD

Page 24: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Setul de modele şi intrumente analitice, care constituie o parte importantă a sistemelor de asistare a deciziei, îndeosebi pentru cele orientate pe modele. În acest caz, software-ul pentru gestiunea modelelor poate fi stocat pe acelaşi server cu baza de date sau poate fi distribuit pe clienţi prin intermediul unei arhitecturi Web sau client-server.

Componenta pentru asigurarea comunicaţie. În acest context, arhitectura SIAD-ului şi tipul reţelei de calculatoare se referă la modul cum sunt organizate resursele hardware, cum sunt distribuite software-ul şi datele în sistem, precum şi modalităţile de integrare şi de conectare fizică a componentelor sistemului.

În prezent, o problemă destul de serioasă cu care se confruntă specialiştii interesaţi de dezvoltarea SIAD-urilor a apărut datorită faptului că preocupările majore ale acestora sunt orientate mai mult spre componentele hardware şi software, astfel încât decidenţii şi procesele decizionale pentru care sunt create astfel de sisteme sunt lăsate pe plan secund. În aceste condiţii, putem aprecia că, în viitor, perfecţionarea tehnologiilor aferente sistemelor de asistare a deciziei trebuie să aibă drept obiectiv principal îmbunătăţirea interacţiunii între decident şi SIAD. Drept corolar al afirmaţiilor anterioare, putem considera că elementele de bază ale unui SIAD identificate de Sprague au rămas, în general, aceleaşi, cu precizarea că acestea au cunoscut multe îmbunătăţiri şi devin din ce în ce mai performante.

Fig. 3. Structura generală a unui SIAD

Gestiunea datelor

Componenta de gestiune a datelor asigură încărcarea, stocarea, organizarea şi actualizarea datelor relevante pentru procesul decizional, controlează securitatea datelor şi accesul la date şi defineşte procedurile de integritate a datelor şi de administrare a acestora.

Această componentă este alcătuită la rândul ei din: Baza de date – BD; Sistemul de gestiune a bazelor de date – SGBD;

26

Gestiuneadatelor

Gestiuneamodelelor

Modelele

Subsistemul de gestiune bazat pe cunoştinţe

Interfaţa cu utilizatorul

Date interne şi externeDate interne

şi externe

Alte sisteme informatice

Alte sisteme informatice

InternetIntranetExtranet

Baza de date

Baza de cunoştinţe

Page 25: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Dicţionarul datelor (metadate) – DD; Facilităţi de interogare;

Fig.4. Componenta de gestiune a datelor

Baza de date proprie sau obţinută din étagère datelor din bazele de date extern sau chair din depozitele de date, poate conţine:

Tranzacţii interne – date financiare despre producţie, informaţii despre salarii;

Alte surse de date interne; Date externe; Date personale aparţinând unuia sau mai multor utilizatori;SGBD-ul reprezintă interfaţa între baza de date şi utilizator. Formează interfaţa

dintre baza de date şi utilizator, asigurând interdependenţa cu celelalte componente ale sistemului.

Dicţionarul de date (metabaza de date) reprezintă un catalog al tuturor datelor existente în baza de date conţinând definiţii ale acestora. Oferă suport în procesul de informare.

Facilităţile de interogare – constituie un element esenţial pentru asigurarea accesului la date. Ele presupun existenţa unui limbaj de interogare sau a unui limbaj declarativ.

Subsistemul destinat gestionării bazelor de date asigură încărcarea, stocarea, organizarea şi actualizarea datelor relevante pentru problema decizională, controlul securităţii datelor şi a modului de acces la acestea, proceduri de integrare şi administrare. De asemenea, într-un SIAD, modulul bazelor de date nu îndeplineşte doar funcţia de stocare pasivă a informaţiilor, ci participă în mod activ la funcţionarea SIAD-urilor.

La început, baza de date a unui SIAD înregistrează informaţii brute, care nu au fost încă prelucrate; alegerea SGBD-ului şi structurarea într-o primă fază a informaţiilor sunt rezultatul unei analize care face parte din concepţia generală a unui SIAD. Aceste elemente de bază, considerate un adevărat „izvor de informare”, vor fi preluate prin intermediul SIAD-ului; în aceste condiţii, baza de date va servi înregistrării unor rezultate intermediare care vor avea semnificaţii diferite în cadrul prelucrării ulterioare.

În acelaşi timp, baza de date asociată unui SIAD înregistrează „itinerariul” soluţiilor reţinute, astfel încât deciziile care sunt luate vor fi ulterior adaptate cerinţelor

27

BC BD externe

Tranzacţii interne

Extragere

Facilităţi de interogare

DD SGBD

BD

Alte date

Depozite de date

CGM

CGD

CGC

Page 26: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

aplicaţiei şi exigenţelor utilizatorilor. Organizarea acestor date este concepută după diferite principii (fişiere, relaţii etc.), ele putând fi specifice SIAD-urilor sau aferente altor aplicaţii informatice.

Într-un mediu decizional de afaceri, în cadrul căruia activităţile se bazează îndeosebi pe cunoştinţe, utilizarea eficientă a resurselor informaţionale depinde, în mare măsură de relaţiile existente între date, informaţii şi cunoştinţe.

Deşi este utilizat destul de des, termenul de „informaţie” este rareori definit în mod exact. Fără a avea pretenţia că se realizează o abordare teoretică complexă, se consideră ca informaţia reprezintă acea dată care aduce noi cunoştinţe utilizatorilor săi, care modifică percepţia asupra realităţii şi reduce gradul de incertitudine. Surprinzând importanţa informaţiei în societatea contemporană, un reputat analist american – J. Naisbitt – afirma că „noua putere nu o constituie banii în mâinile câtorva, ci informaţia în mâinile majorităţii” [J. Naisbitt, 1989].

Fiind considerată în sine o resursă, informaţia necesită atât mijloace diverse de transformare, cât şi includerea ei în relaţii de ordin informaţional, care să permită generarea acelor proprietăţi capabile sa-i ofere o „valoare de întrebuinţare” cât mai mare.

O informaţie este rezultatul prelucrării unor date, acestea fiind considerate ansambluri de simboluri susceptibile de a fi percepute de fiinţa umană. În general, datele nu devin informaţii decât prin prisma unui model interpretativ, propriu receptorului, simbolurile cele mai utilizate pentru reprezentarea lor fiind caraterele sub formă numerică, litere, sunete, imagini etc.

Relaţia dintre cele trei elemente – date, informaţii, decizii – a fost abordată în mod diferit de specialişti, înţelegerea corectă a acesteia asigurând un suport decizional mai bun pentru managementul afacerilor; astfel, relaţia amintită apare în literatura de specialitate sub diverse forme:

Date – cunoştinţe – informaţii, variantă în care cunoştinţele sunt cerute pentru a procesa datele în informaţii. Conţinutul datelor poate sugera modul în care se extrag informaţiile din aceste date sau se pot genera noi cunoştinţe (de exemplu, gruparea sau interogarea datelor după un anumit criteriu);

Cunoştinţe – date – informaţii, situaţie în care poate exista numai dacă se admite că se cunoaşte unde trebuie căutate datele ce produc informaţia cerută;

Informaţii – date – cunoştinţe, caz în care, în ultima fază a procesului decizional, informaţia este prelucrată şi se stabileşte decizia care se poate regăsi sub diferite forme (figuri, texte etc.), iar manifestarea ei conduce la noi cunoştinţe, adăugate la cele existente.

28

Page 27: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Indiferent de „poziţia” lor în această relaţie, cele trei elemente fundamentale se pot regăsi sub diferite forme reprezentate în figura 5.

Fig. 5. Tipuri de date, informaţii, cunoştinţe[4]

Proiectarea şi dezvoltarea sistemelor interactive de asistare a deciziei a impus existenţa unei baze de date cu o structură bine definită şi cu informaţii de calitate superioară, acestea fiind o condiţie esenţială pentru succesul SIAD-urilor moderne.

În prezent, bazele de date relaţionale – optimizate pentru prelucrarea tranzacţiilor şi extrem de eficiente în stocarea şi actualizarea datelor, nu sunt adecvate pentru un proces decizional care se bazează pe analiza datelor. Deoarece managerii trebuie să analizeze informaţiile on-line şi în mod dinamic, soluţia cea mai viabilă este de a crea un „depozit de date” care va conţine date extrase din diverse sisteme operaţionale ale organizaţiei. Formatul şi structura tipurilor de date care se regăsesc la anumite niveluri ale procesului decizional sunt diferite: astfel, datele organizaţionale reprezintă tranzacţii curente ale organizaţiei, iar cele care constituie suport decizional sunt date despre tranzacţii.

În acest context, persoanele implicate în procesul decizional pot diferanţia datele întâlnite la diferite niveluri ale mediului decizional prin intermediul unor factori reprezentativi, prezentaţi într-o analiză comparativă în figura 6.

29

Orizontul de timpDate operaţionale

Date necesare pentru suport decizional

Date curente Date istorice

AgregareaDate operaţionale

Date pentru suport decizional

Nu Da

Structura datelor

Date operaţionale

Date necesare pentru suport decizional

Normalizată Integrată

Dimensiunea datelor

Date operaţionale

Date necesare pentru suport decizional

Una singură Multiple

Dimensiunea datelorDate operaţionale

Date necesare pentru suport decizional

Una singură Multiple

Factorii care diferenţiază

datele

Factorii care diferenţiază

datele

CUNOŞTINŢEAcumulate şi valabile la

începutul procesului decizionalObţinute din transformarea

datelor brute în informaţiiExtragerea datelor finale din

informaţii, achiziţionate în timpul procesului decizional

DATEEmpiriceNeprocesate „brute”Valabile din experinţe

anterioareRezultate ale procesului

decizional curent

INFORMAŢIIInterne (obţinute din

procesarea datelor sau din alte resurse informaţionale)

Externe, din afara organizaţiei

Page 28: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 6. Factorii care diferenţiază datele operaţionale şi datele pentru suportul decizional[4]

Structura datelor. Dacă la nivel operaţional datele sunt stocate în baze de date relaţionale, în cadrul cărora relaţia (structura folosită în modelul relaţional) este normalizată în scopul eliminării eventualelor „anomalii” care pot să apară în procesul de actualizare, nu se poate spune acelaşi lucru şi despre datele folosite de informatica decizională. La acest nivel, baza de date are drept fundament o structură integrată, datele putând fi chiar redundante; pe de altă parte, nu se intră în detalii la nivelul fiecărei tranzacţii sau, uneori, datele din acest „sector” reprezintă agregări ale datelor operaţionale.

Agregarea. Privite prin prisma agregării, datele operaţionale pot fi agregate numai dinamic, iar cele folosite pentru suportul decizional permit o analiză complexă datorită faptului că pot fi agregate, „rezultatele” fiind stocate în baza de date.

Dimensiunea datelor. Necesitatea luării unor decizii cât mai pertinente, în raport cu cerinţele şi exigenţele pieţei, îi determină pe managerii organizaţiei să formuleze întrebări ale căror răspunsuri pot fi corelate în diferite moduri. În acest context, se poaze aprecia că datele aferente mediului decizional sunt multidimensionale, iar cele organizaţionale au o singură dimensiune.

Orizontul de timp. Analizând acest factor, se constată că, în timp ce datele operaţionale sunt curente şi se referă la starea tranzacţiilor la momentul actual, în schimb, cele existente în baza de date a sistemului pentru asistarea deciziei reprezintă „o fotografie” a acestora la un moment dat, constituind adevărate „serii de timp” ale datelor organizaţionale.

Metadatele. Pentru explicarea conceptului de „metadate” se încearcă să se analizeze o analiză comparativă a acestora cu arhicunoscutul termen de „date”, baza acestui demers fiind triunghiul „date – informaţii - decizii”. În general, noţiunea de dată ne conduce către aspectul „brut” al informţiei, iar cunoştinţele se identifică prin rezultatul prelucrării datelor, care ar trebui să aibă drept consecinţă o reprezentare mai bună a realităţii. Explicarea termenului de „metadate” porneşte de la sensul prefixului „meta”, care în limba greacă înseamnă „deasupra”; spre exemplu, pentru a vorbi de un limbaj ne servim de un metalimbaj, pentru a alege o regulă apelăm la metareguli etc. În acest context, extrapolând explicatia la nivelul datelor din domeniul informatic, va trebui să descoperim ce se află „deasupra datelor”; într-o formulare care se doreşte a avea un caracter de generalitate, putem spune că metadata aparţine „MetaX”, unde X este domeniul.

Varietatea surselor de provenienţă a datelor din structura bazei de date aferentă SIAD-ului impune necesitatea existenţei unui „dicţionar” care să conţină informaţii despre structura bazei de date, tipul surselor de date, formatul de date, dimensiunea câmpurilor şi alte particularităţi; la nivel operaţional dicţionarul de date este important, dar conţine mai puţine elemente.

30

MetadateleDate operaţionale

Date pentru suport decizional

Importante Foarte important

Page 29: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Un nou concept începe să câştige din ce în ce mai mult teren în „lumea complicată” a sistemelor informatice, şi anume „metadatele partajate”, acestea având drept fundament principiul ce constă în definirea unui dicţionar de metadate, pornind de la un model standard de metadate. Adoptarea acestui principiu presupune că orice aplicaţie poate fi în măsură să folosească metadatele servindu-se de un server comun.

Pentru administrarea, sincronizarea şi coordonarea activităţii de obţinere de informaţii, se recomandă să adăugăm la clasicul dicţionar de date, dicţionarul de metadate şi serverul de evenimente.

Un element esenţial în gestionarea bazelor de date îl constituie dicţionarul, care permite stocarea şi memorarea numelor atributelor şi a tipurilor de date, specificarea poziţiei fizice a acestora, a statutului lor (accesibilitate, confidenţialitate) şi a altor caracteristici care asigură legătura între diferitele componente ale unui dicţionar.

Administrarea ansamblurilor de date este organizată printr-un program specializat – sistemul de gestiune al bazelor de date – care perminte:

Crearea unei noi baze de date; Actualizarea bazelor de date existente; Asigurarea securităţii datelor în sensul protejării împotriva accesării de către

persoane neautorizate sau care au intenţia de a efectua modificări frauduloase; Interogarea bazelor de date prin limbaje de interogare declarative –

majoritatea bazelor de date au implementate SGBD-uri relaţionale şi/sau SGBD-uri multidimensionale;

Extragerea datelor care aparţin altor baze de date decât cele administrate de SIAD şi „convertirea” (transpunerea) lor într-o bază de date specifică SIAD. Modul de extragere al datelor este instrumentul fundamental în procesul de asigurare a interdependenţei dintre SIAD şi baza de date asociată, calitatea modulului respectiv determinând flexibilitatea SIAD-ului.

Fig. 7. Subsistemul de gestiune al datelor

31

EXTRACŢIE

Facilităţi INTEROGARE

BAZA DE DATE A SIAD

DICŢIONARUL DATELOR

SGBD

Surse externe de date

BC a organizaţiei

Surse interne de date

Finanţe Producţie Marketing

Altele

Date personale

Datele organizaţiei -

warehouse

Interfaţa management

Gestiunea modelelor

Subsistemul bazat pe cunoştinţe

Page 30: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Modelele SIAD-ului. Gestiunea modelelorComponenta de gestiune a modelelor execută activitităţi de încărcare, stocare şi

organizare asociate diferitelor modele cantitative ce-i conferă sistemului capacităţi de analiză.

Această componentă poate fi descompusă în patru subcomponente: Baza de modele – BM; Sistemul de gestiune al bazei de modele – SGBM; Dicţionarul de modele – DM; Procesor de execuţie şi integrare;

Fig. 8. Componenta de gestiune a modelelor

Modelele utilizate într-un SIAD sunt destinate îndeosebi „asistării deciziei”, termen care se recomandă a fi privit în sensul larg al cuvântului. Privite într-un cadru mai complex, modelele sunt rezultatul unei analize prealabile a situaţiei decizionale propuse spre rezolvare, asigurând, contrapartidă, un mediu de analiză pentru utilizator.

O abordare exhaustivă a modelelor permite formularea unei afirmaţii conform căreia modelul reprezintă instrumentul prin care se prelucrează informaţia. Construirea lui se bazează pe reguli care să-i permită să reflecte cât mai fidel ceea ce se petrece în interiorul sistemului sau al fenomenului căruia îi este asociat. În acest context, se poate identifica o corelaţie foarte bine conturată între funcţionalitatea şi structura modelului, în sensul că ar trebui să fie destul de uşor de utilizat şi structurat, într-o manieră care să ofere o reprezentare cât mai exactă a fenomenului respectiv.

Indiferent de accepţiunea în care sunt abordate, modelele au o manieră mult mai elaborată de prelucrare a informaţiilor exploatate printr-o bază de date; acestea nu se limitează la gestionarea datelor în forma lor brută, ci le organizează în asa fel încât sa-i poată furniza decidentului elementele de informare care au o legătură directă cu preocupările sale. De fapt, un model trebuie privit ca o parte componentă a modului de evaluare a unei situaţii, care îi permite decidentului să aprecieze starea fenomenului la un moment dat, prin dialogul permanent dintre el şi sistem. Din punctul de vedere al utilizatorului, modelele reprezintă partea „vizibilă” a unui SIAD, în timp ce bazele de date sunt considerate partea „ascunsă” a „iceberg-ului”.

Subsistemul de gestiune al modelelor este structurat pe următoarele componente: baza de modele, sistemul de gestiune al bazei de modele, limbajul de modelare, dicţionarul de modele şi ansamblul de operaţiuni necesare pentru execuţia, integrarea şi comanda modelelor.

32

BM DM

SGBMProcesorul de executţie şi

integrare

CGD

CGDialog

CGC

Page 31: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 9. Subsistemul de gestiune a modelelor

a) Baza de modele conţine un set de modele asociate unui anumit domeniu de activitate: modele statistice, financiare şi alte modele cantitative. Diferenţa dintre un SIAD şi alte sisteme computerizate constă în abilitatea acestuia de a invoca, rula, schimba şi combina modelele.

În funcţie de nivelul organizaţional căruia îi sunt destinate, acestea pot fi împărţite în:

Modele strategice sunt utilizate pentru asistarea responsabilităţilor de planificare la nivel strategic, pentru dezvoltarea obiectivelor corporaţiei, desfăşurarea activităţilor de fuziune şi achiziţii de diferite niveluri, analiza impactului mediului înconjurător asupra activităţii organizaţiei. Aceste modele au scopuri destul de largi, folosesc multiple variabile şi au orizontul de timp exprimat în ani.

Modele tactice sunt folosite, în general, la un nivel ierarhic mediu de management cu scopul de alocare şi controlare a resurselor sistemului (organizaţiei). De regulă, acestea sunt operaţionale doar la nivelul unui subsistem al organizaţiei, cum ar fi departamentul de contabilitate, iar orizonturile de timp variază între o lună şi doi ani. Rularea lor impune şi existenţa unor informaţii din exterior, dar majoritatea datelor cerute sunt din interiorul organizaţiei.

Modele operaţionale sunt destinate pentru gestionarea activităţilor curente concretizate în operaţii diverse: elaborarea programului de producţie, aprobarea creditelor de către o bancă, controlul calităţii; de regulă, pentru aceste modele orizontul de timp se desfăşoară pe mai puţin de o lună.

Subrutinele pot fi folosite independent pentru aplicaţii diferite de analiză a datelor, dar pot fi şi elemente componente ale unor modele complexe. De exemplu, componenta „valoare prezentă” poate face parte dintr-un model de amortizare.

Privite din prisma raportului dintre funcţionalităţile şi structura modelelor, acestea pot fi clasificate în trei categorii fundamentale:

Modele iconice care au aceleaşi caracteristici ca şi obiectul studiat, dar la o scară diferită;

33

Baza de MODELE

Dicţionarul modelelor

GESTIUNEA MODELELOR

Procesor de creare, execuţie şi integrare a modelelor

GESTIUNEA DATELOR

INTERFAŢA MANAGEMENT

Subsistem de gestiune a cunoştinţelor

Page 32: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Modele analogice (fizice) care înlocuiesc o proprietate a obiectului cu alta identică, problema fiind rezolvată în starea substituentă şi, ulterior, soluţia este raportată la dimensiunile şi proprietăţile originalului;

Modele matematice, conform cărora fenomenele studiate sunt reprezentate prin simboluri şi legi care-l administrează. Modelele din această grupă sunt cel mai frecvent întâlnite în practică pentru descrierea fenomenelor matematice sau economice, având gradul cel mai mare de abstractizare şi generalitate.

În cadrul unui SIAD se regăsesc atât modele cu caracter general, asociate activităţilor frecvente (calculul unor medii, trieri de date, ajustare liniară), cât şi modele cu caracter particular care sunt destinate unor operaţii strâns legate de tipul problemei studiate. Utilizarea modelelor în procesul decizional asigură automatizarea anumitor operaţii; cum sunt:

Analiza datelor prin tehnici variate (modele de regresie, analiza factorială); Previziuni ale unor indicatori, plecând de la modele de extrapolare; Simularea unui proces având drept punct de plecare regulile specifice

acestuia.b) Sisteme de gestiune a bazelor de modeleUtilizarea sistemelor de asistare a deciziei elimină problemele tipice asociate

gestionării modelelor (cum ar fi imposibilitatea de actualizare a acestora); prin intermediul unui sistem informatic de gestiune a bazelorde date se asigură:

Conservarea şi identificarea unui model care se doreşte a fi utilizat prin numele acestuia;

Regăsirea ansamblului de variabile asociate unui model; Comunicarea rezultatelor obţinute prin executarea modelului la sfârşitul

procesului de prelucrare; Realizarea unor modele pornind de la zero sau de la modele deja existente; Gestionarea modelelor de către utilizatori astfel încât aceştia să gestioneze

analizele de sensibilitate de la o metodă de tip „what ... if” la tehnica valorii scop (goal seeking);

Corelarea modelelor prin intermediul unei baze de date şi integrarea acestora în structura unui SIAD;

Utilizarea unor funcţii analogice cu cele ale bazelor de date clasice pentru exploatarea bazei de modele (stocare, accesare, actualizare, interogare etc.);

Integrarea unor multiple modele în cadrul procesului decizional.c) Limbajul de modelare. Deşi modelele asociate unui SIAD sunt, în general

standard, totuşi aplicarea lor în cadrul procesului decizional impune personalizarea acestora prin intermediul unui limbaj de modelare.

d) Dicţionarul de modele îndeplineşte un rol similar cu cel al dicţionarului de date, fiind considerat un catalog al tuturor modelelor existente în baza de modele care conţine definiţii aferente modelelor, funcţiile principale şi informaţii legate de disponibilităţile şi capacităţile modelelor.

e) Procesorul de execuţie şi integrare a modelelor permite verificarea modului în care se derulează execuţia programelor prin care sunt construite modele, combinarea operaţiilor mai multor modele în raport cu exigenţele procesului decizional (transmiterea rezultatului unui model pentru a fi preluat de altul), interpretarea instrucţiunilor de modelare şi integrarea SIAD-urilor în cadrul altor aplicaţii.

În desfăşurarea procesului decizional, alegerea unui model optim impune realizarea unei expertize care rămâne deocamdată un proces neautomatizat, iar „modernizarea” acestuia rămâne o „provocare” şi o preocupare interesată în cadrul integrării tehnologiilor informaticii inteligente în cadrul unui SIAD.

34

Page 33: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Subsisteme de gestiune a cunoştinţelorComponenta de gestiune a cunoştinţelor furnizează cunoştinţele şi expertiza

necesare realizării rapide a problemelor complexe. În cazul în care are integrat un sistem expert, modulul conţine: baza de cunoştinţe şi motorul de inferenţă. Sistemul expert poate reprezenta o interfaţă inteligentă între utilizator şi un set de modele complexe şi un instrument de soluţionare şi analiză a problemelor nestructurate.

Deoarece există foarte multe domenii în care se impune rezolvarea unor probleme semistructurate sau nestructurate destul de complexe, se apelează la anumite componente care să ofere expertiza şi cunoştinţele necesare. De regulă, aceste exigenţe sunt rezolvate prin intermediul sistemelor expert sau al altor sisteme inteligente.

Sistemele inteligente sunt ansambluri de mijloace destinate asistării factorului de decizie în rezolvarea problemelor specifice de gestiune; astfel de procedee şi reguli implică punerea în aplicare a unui mare număr de concepte, informaţii şi resurse.

Sistemele inteligente bazate pe modele sunt performante mai ales atunci când rezolvarea unei probleme se bazează pe un raţionament de tip analitic care pune bazele unui algoritm. Utilizarea unor astfel de instrumente de decizie trebuie să vină în sprijinul decidentului pentru ca acesta:

Să înţeleagă mai bine şi să-şi clarifice natura şi complexitatea relaţiilor ce condiţionează rezolvarea problemelor cu care se confruntă;

Să-şi exprime ipotezele de lucru sub o formă sintetică şi operaţională; Să exploreze simplitatea, dar şi complexitatea formalismului matematic,

precum şi raţionamentele deductive asociate; Să-şi fundamenteze deciziile pe baza metodelor de simulare şi/sau pe

algoritmii de optimizare actuali.Din ce în ce mai multe sisteme de asistare a deciziei includ componente care

furnizează expertiza şi cunoştinţele necesare rezolvării unor probleme rapide şi complexe. În cazul integrării cu un sistem expert, modulul cuprinde motorul de inferenţă şi baza de cunoştinţe. Motorul de inferenţă va permite sistemului să simuleze raţionamentul unui expert pornind de la datele şi cunoştinţele disponibile, iar baza de cunoştinţe va alimenta mecanismul de inferenţă, într -un mod similar celui în care baza de date alimentează algoritmii statistici în cadrul sistemelor de asistare a deciziei.

Un aspect esenţial al construirii şi utilizării sistemelor de asistare a deciziei expert constă în realizarea unei interacţiuni sinergice între aceste elemente, sinergie tradusă pe de-o parte prin trecerea controlului de la o funcţiune la alta în cadrul sistemului şi, pe de altă parte, prin transferul informaţiilor între funcţiuni (subsisteme).

Sistemele expert pot fi utilizate ca o interfaţă inteligentă între utilizator şi un set de modele cantitative, dar mai ales ca mijloc de a analiza şi oferi soluţii aspectelor calitative, puternic nestructurate din cadrul domeniului respectiv. Explicarea rezultatelor şi interpretarea lor sunt sarcini pe care le poate îndeplini cu succes un sistem expert. Modelarea şi gestionarea inteligentă a modelelor fac dintr-un SIAD care conţine astfel de componente să poata fi numit cu încredere SIAD inteligent. Asadar, un mediu SIAD bun îmbunătăţeşte procesul de elaborare a deciziilor, prin accelerarea procesului de învăţare a celui care îl foloseşte şi prin asigurarea de metode de încredere.

Noile directii de dezvoltare se referă mai ales la sistemele active, inteligente, capabile să facă faţă unor situaţii complexe şi nestructurate, în contextul descoperirii de cunoştinţe şi învăţării, considerându-se că astfel s-ar ameliora procesele de rezolvare a problemelor.

Subsistemul de dialog

35

Page 34: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Interfaţa cu utilizatorul (IU) tratează toate aspectele legate de comunicarea dintre utilizator şi sistem. Aceasta include atât hard şi soft, cât şi factorii care facilitează interacţiunea dintre „user” şi sistem.

Dezvoltarea propriu-zisă a unui model interactiv presupune realizarea unui dialog permanent între utilizator şi calculator, fapt care conferă interfeţei de dialog un rol deosebit în cadrul unui SIAD. Dialogul se poate realiza sub diferite forme: tip întrebare-răspuns, utilizarea de chestionare incluse într-o machetă, definirea unor meniuri ierarhizate, iconuri etc. Indiferent de forma pe care o îmbracă, calitatea sistemelor de dialog este primordială pentru utilizatorii unui SIAD, fiind elementul care se interpune între modelele de prelucrare şi rezultatele afişate. Controlul asupra derulării operaţiilor rămâne la îndemâna utilizatorilor, care au la dispoziţie variante multiple pe care le adaptează în funcţie de exigenţele aplicaţiei.

Sistemul de dialog este gestionat de un software special denumit sistemul de gestiune al interfeţei cu utilizatorul (User Interface Management System - UMS), fiind alcătuit din programe care îi oferă diferite facilităţi:

Interfaţă grafică, care îi permite decidentului să aibă o viziune de ansamblu asupra aplicaţiilor pe care le va utiliza;

Prezintă datele sub diverse forme (grafice, figuri, tabele); Accesarea unor funcţii care să rezolve situaţii de blocaj; Flexibilitate şi accesibilitate care îi permit utilizatorului să-şi adapteze

sistemul în raport cu exigenţele aplicaţiei.

Fig. 10. Subsitemul de dialog cu utilizatorul[3]

Managerii au ales suportul calculatoarelor pentru uşurarea muncii lor datorită aspectului corespunzator al comunicării. Se disting mai multe tipuri posibile de dialog, în funcţie de modalitatea de comunicare om -sistem:

prin limbaj de comandă adresată de către utilizatorul sistemului sub forma unor perechi verb–substantiv;

prin întrebare – răspuns; prin meniu, care presupune existenţa în memorie a unor alternative de

comenzi din care utilizatorul alege un meniu de alternative pe care îl adresează sistemului, acesta executându-l automat;

prin format intrare/format ieşire , care prevede tipizarea formatelor de intrare ale datelor şi comenzilor şi de ieşirea răspunsurilor oferite de sistem;

36

Page 35: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

prin format de intrare în funcţie de formatul de ieşire, în care formatul de intrare al datelor va fi specificat în funcţie de cel de ieşire care este predefinit;

tip negociere, care presupune alegerea tipului de dialog în funcţie de formă, configuraţie şi costuri.

Diferitele tipuri de dialog sunt gestionate de către sistem printr-un produs software numit sistem de gestiune al interfeţei, alcătuit din programe ce-i conferă diverse facilităţi: oferă o interfaţă grafică, prezintă datele printr-o varietate de forme şi are posibilitatea de a dialoga cu utilizatorul în diverse forme.

UtilizatorulUn aspect esenţial în conceperea modelelor îl constituie „utilizatorii finali” ai

SIAD-ului; până nu de mult, realizatorii SIAD-urilor analizau problema de rezolvat într-un spaţiu închis şi rupt de realitate. În acest context, se concepea un model şi algoritmul de rezolvare a acestuia, pentru ca ulterior să se impună aplicarea acestuia în practică. Dar, în majoritatea cazurilor, modelele respective erau sortite eşecului deoarece nu erau realizate în conformitate cu exigenţele realităţii.

Reuşita unui model impune evitarea unor „obstacole” esenţiale: derularea „liniară” a acestuia şi „uitarea” cerinţelor utilizatorilor finali; în acest scop, putem considera că „interactivitatea” modelului este un adevărat „pilot” care să asigure succesul scontat. Prin rolul activ pe care îl îndeplineşte în funcţionarea unui SIAD, utilizatorul poate fi considerat o parte integrantă a sistemului.

2.5. Clasificare

Derularea procesului de proiectare şi implementare a unui SIAD depinde în mare măsură de natura SIAD-ului implicat în activitatea decizională. În literatura de specialitate s-au conturat mai multe criterii de clasisficare a sistemelor interactive de asistare a deciziei:[6]

felul asistenţei acordate de un SIAD în practica decizională; frecvenţa de utilizare a acestora; complexitatea procedurilor existente în structura aplicaţiei; modalitatea de orientare a SIAD-urilor către date, modele, text sau reguli

standard; numărul de utilizatori existenţi în procesul decizional.Realitatea practică a demostrat că, din toate criteriile prezentate, importanţa cea mai

mare se acordă aspectului legat de măsura în care soluţia oferită de sistem este structurată pe baza modelării sau analizei datelor; conform acestui criteriu sistemele de asistare a deciziei se grupează în SIAD-uri orientate pe modele şi SIAD-uri orientate pe date.

SIAD-uri orientate pe modele au principii de funcţionare care se bazează pe modelul cantitativ şi efectuează analize de tipul „what ... if”, antrenând activităţi de simulare, optimizare, previziune, iar rezultatele obţinute se pot concretiza în acţiuni sugerate de procesul decizional.

SIAD-uri orientate pe date se bazează pe analiza unui volum mare de informaţii stocate în cadrul sistemului informatic al organizaţiei în diferite momente de dezvoltare a acestuia; utilizarea lor are drept efect extragerea informaţiilor care sunt considerate utile din ansamblul de date disponibile la nivelul sistemului. De regulă, stocarea datelor se realizează sub forma unor depozite de date (de tip Data Warehouse), iar analiza lor se fundamentează pe noile tehnologii informaţionale: Data mining (explorarea şi căutarea datelor) şi OLAP (procesarea analitică on-line).

37

Page 36: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Gruparea SIAD-urilor se poate realiza şi în funcţie de tipul sistemului care asigură managementul informaţiilor:

SIAD-urile orientate pe text evidenţiază necesitatea prelucrării şi reprezentării textului într-o formă cât mai accesibilă în scopul de a asigura gestionarea rapidă şi eficientă a datelor de către decident. Un SIAD bazat pe text va acorda asistenţă decidentului prin crearea, revizuirea şi vizualizarea automată a unor documente, identificarea locaţiilor aferente unor colecţii mari de date, gruparea, fuzionarea şi expedierea documentelor folosind în acest sens tehnologii diverse: hypertext, agenţi inteligenţi, instrumente web – care au revoluţionat procesul de aplicare a acestor SIAD-uri.

SIAD-uri orientate pe baze de date în cadrul cărora baza de date a organizaţiei este componenta esenţială a sistemului. Gestionarea bazelor de date impune identificarea tehnicii de structurare a acestora, precizarea modului de acces, specificarea volumului colecţiilor de date şi formularea unor interogări care să corespundă obiectivelor propuse. Organizarea bazelor de date se poate face în fişiere sau poate îmbrăca forme specifice: baze de date relaţionale, ierarhizate, obiectuale, multidimensionale. Deşi generaţiile mai vechi de SIAD-uri aveau asociate îndeosebi baze de date relaţionale, totuşi acestea au devenit din ce în ce mai rigide datorită volumului mare de date manipulate. Un atu al SIAD-urilor orientate pe baze de date îl reprezintă faptul că acestea dispun de facilităţi de interogare destul de puternice şi au capacitatea de a genera situaţii de sinteză destul de complexe.

SIAD-uri orientate pe procesoare de tabele se bazează pe organizarea datelor sub formă tabeleră asemenea unei matrici. Un procesor de tabele reprezintă un instrument software care permite utilizatorului să descrie modele în scopul de a efectua analize cât mai pertinente. Pe lângă operaţiile care asigură crearea şi reprezentarea relaţiilor într-o formă matematică, un procesor de tabele dispune de tehnici şi metode care permit vizualizarea situaţiilor finale şi manipularea informaţiilor procedurale. Deoarece metoda de bază utilizată într-un procesor de tabele constă în introducerea valorilor aferente unui parametru într-un tablou matriceal, modificarea acestora implică reacţii în lanţ asupra tuturor elementelor care depind, direct sau indirect, de parametrul respectiv. Modelul se construieşte alegând obiectele (conceptele) şi relaţiile (ecuaţiile) dintre obiecte. Întrucât modelul este fix, va exista un sistem de rezolvare a problemei în care fiecare stare este o grilă, iar operatorii sunt cei care influenţează modificarea valorilor grilei. Spre exemplu,prin încercări succesive se poate ajunge la o cercetare inteligentă care va determina îmbunătăţirea capacităţii de autofinanţare a firmei; pornind de la acest nivel, se pot lua măsuri de creştere a veniturilor, se pot adopta decizii care să determine scăderea cheltuielilor, toate acestea conducând la creşterea solvabilităţii. În situaţia în care decidentul gestionează mai multe foi de calcul, are posibilitatea de a se consacra unei cercetări euristice. Fiecare model nou este apreciat în funcţie de aceste calităţi statistice , iar funcţia de evaluare se sprijină pe independenţa testului şi alte metode clasice.

SIAD-uri orientate pe reguli presupun existenţa unui ansamblu de reguli în cadrul unei componente speciale denumită sistem de gestiune a cunoştinţelor, utilizând formalisme de reprezentare proprii inteligenţei artificiale, în general, şi sistemelor expert, în special.

După frecvenţa utilizării lor, SIAD-urile se impart în două categorii: SIAD-uri organizaţionale care permit descrierea unor obiective clare pentru

asistarea deciziilor ce se repetă în mod frecvent în cadrul activităţii unei organizaţii, fapt care impune un grad mare de interactivitate între utilizator şi SIAD-ul asociat. Proiectarea unui SIAD formal tinde să devină din ce în ce mai performantă în materie de stabilitate, fapt care poate fi dezvoltat şi perfecţionat pe parcursul unei perioade de timp mai mari, transformându-se într-un instrument de asistare a deciziei extrem de eficace.

38

Page 37: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

SIAD-uri ad-hoc care gestionează probleme specifice asupra cărora nu se pot emite previziuni sau care se regăsesc destul de rar în cadrul procesului decizional. Proiectarea şi implementarea unui astfel de SIAD se realizează în funcţie de natura raportului decizional şi de intervalul de timp în care trebuie furnizat. Deoarece costurile dezvoltării unor astfel de programe sunt destul de ridicate, utilizarea sistemului de asistare a deciziei numai într-un singur caz devine ineficientă şi se impune, deci, doar ca o soluţie extremă.

O clasificare de referinţă a sistemelor de asistare a deciziilor este clasificarea Alter care ia în considerare gradul de implicare al sistemului sau modulului în care sistemul sprijină sau determină decizia. În această clasificare, care ia în considerare ceea ce face sistemul de asistare a deciziei, sunt delimitate şapte categorii de SIAD-uri. Primele două tipuri sunt orientate pe date, execută căutarea datelor sau analize; al treilea tip lucrează cu date şi modele; utimele patru sunt orientate pe modele.

Sistemele de clasare a fişierelor. Sistemele de analiză a datelor. Sistemele informaţionale pentru analiză. Modelele contabile. Modelele de reprezentare. Sistemele de optimizare. Sisteme de sugerare.Holsapple şi Whinston clasifică SIAD-urile în şase categorii: Sisteme de asistare a deciziilor orientate pe texte; Sisteme de asistare a deciziilor orientate pe baze de date; Sisteme de asistare a deciziilor orientate pe calcul tabelar; Sisteme de asistare a deciziilor orientate pe solver-e; Sisteme de asistare a deciziilor orientate pe reguli.O nouă clasificare a SIAD-urilor este necesară astăzi deoarece acestea au devenit

mult mai răspândite dar şi mai diversificate decât în anii 1980 când Alter a propus clasificarea arhicunoscută în literatura de specialitate. Clasificarea Alter este încă relevantă pentru anumite tipuri de SIAD-uri , dar nu pentru toate. Astfel clasificarea lui Alter a fost simplificată delimitând trei tipuri de SIAD-uri:

SIAD orientat pe date; SIAD orientat pe modele; SIAD orientat pe cunoştinţe.Cadrul extins de clasificare a SIAD-urilor, propus de D.J Power, se focalizează pe o

dimensiune majoră cu cinci categorii si trei dimensiuni secundare (utilizatorii sistemului, scopul sistemului, tehnologiile de implementare). Dimensiunea majoră este tehnologia dominantă care determină funcţionalităţile de asistare a deciziei. Cele cinci categorii de SIAD-uri determinate în funcţie de componenta dominantă sunt:

SIAD-uri orientate pe comunicaţii; SIAD-uri orientate pe date; SIAD-uri orientate pe documente; SIAD-uri orientate pe cunoştinţe; SIAD-uri orientate pe modele.Ţinând seama de aria de utilizatori Hackathorn şi Keen disting trei categorii

interconectate de SIAD-uri: SIAD de uz individual; SIAD de grup; SIAD-uri organizaţionale;

39

Page 38: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

2.6. Tehnologii moderne aferente SIAD-ului

După 1990, conceptele şi practica din domeniul SIAD au evoluat sub impactul unor factori metodologici, tehnologici şi privind modul de desfăşurare a proceselor lucrative. În planul metodologiilor, orientarea către obiecte, asociată cu produsele software de integrare de tip „middleware” au facilitat tendinţele de refolosire şi integrare a unor parţi din sistemele existenţe.[3]

În planul tehnologiilor, influenţa cea mai mare a avut-o convergenţa calculatoarelor cu comunicaţiile. Aceasta a fost materializată mai întâi în folosirea soluţiilor de tip „client prestator” („client – server”) şi apoi în extinderea explozivă a utilizării inter-reţelelor (internet, extranet şi intranet), şi a tehnologiei web. În prezent, multe din produsele de tip SIAD au şi o variantă bazată pe tehnologia web.

Noile paradigme ale întreprinderilor bazate pe cunoaştere şi reţelizate (care presupuneau hipointegrarea organizaţională şi hiperintegrarea informaţională) ca şi acumularea de date istorice în organizaţie au favorizat predominanţă relativă a soluţiilor orientate către date, documente şi comunicaţii, conţinute în arhitecturi integrate.

În prima parte a decadei scurse, se realizează o a patra întâlnire decisivă dintre „curentul EIS” şi cel al depozitelor de date („data warehouse”) şi al produselor de tip OLAP („On Line Analytical Processing”) şi, mai târziu, către zilele noastre, cu tehnologia web. Soluţiile obţinute tind să domine piaţa aplicaţiilor mari şi literatura de specialitate [Powell, 2001; Dumarest, 2001].

În primii ani ai noului mileniu, generalizarea comunicaţiilor bazate pe calculator asociată cu noile modalităţi de desfăşurare a proceselor lucrative au afectat însuşi sectorul producţiei de SIAD. Este vorba de revenirea pe o treaptă calitativ superioară, la procedurile de furnizare a serviciilor de prelucrare a informaţiilor.

Primele SIAD-uri aparţineau utilizatorului şi reprezentau o manifestare a tendinţei de îndepărtare de centrele de calcul care prelucrau date pentru organizaţiile dintr-o arie geografică. Mai târziu, în cazul soluţiilor complexe şi scumpe (mai ales SIAD-urile de grup), se prefera închirierea sistemului. În prezent, se observă (Power, 2002 ) apariţia unor firme furnizoare de servicii de tip suport pentru decizii prin intermediul comunicaţiilor.

O serie de cărţi (Sprague, Watson, 1996; Holsapple, Whinston, 1996; Lauter, 1997, Dahr, Stein, 1997; Sauter, 1997; Turban, Aronson, 1998, 2001; Power, 2002a; Inmon, 2002; Marakas, 2003) aduc la zi şi completează tabloul metodologic fixat de lucrările fundamentale apărute în prima jumatate a deceniului al nouălea pentru a ţine seama de noile tehnologii, fără însă a propune modificări conceptuale majore decât orientarea către folosirea Internet-ului şi atenţia din ce în ce mai mare acordată soluţiilor de tip "depozit de date".[4]

În România la ICI, s-a continuat şi diversificat realizarea de SIAD-uri. În plus faţă de demersurile începute mai înainte şi evocate mai sus, se pot menţiona elaborarea sistemelor care foloseau logica vagă în alocarea resurselor (Dr. Rolanda Predescu (1996), Prof. Maria Moise), abordarea celor care priveau SIAD-urile spaţiale (Dr. Angela Ioniţă), aplicaţiile din comerţul electronic (mat. Cornel Resteanu) sau din gestiunea situaţiilor de urgenţă în sistemele naturale (Dr. Gabriela Florescu).

Promovat încă din anul 1956 de către profesorul John McCarthy de la Universitatea Standford – California, termenul de inteligenţă artificială include o serie de domenii de avangardă ale utilizatorului calculatoarelor electronice, cum ar fi: recunoaşterea unor imagini, punerea unor diagnostice medicale sau economice etc. Deşi iniţial obiectivele inteligenţei artificiale erau foarte ambiţioase, ulterior s-a conturat ca disciplină de sine stătătoare, al cărei obiectiv fundamental constă în analiza comportamentelor umane, în

40

Page 39: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

domeniul percepţiei, al înţelegerii (raţionamentului) şi al deciziei, prin intermediul calculatorului.

În prezent, inteligenţa poate fi considerată indubitabil drept o disciplină ştiinţifică, aflată la graniţa informaticii, psihologiei, lingvisticii, biologiei, al cărui scop este dezvoltarea unor programe software specializate, care asigură calculatorului o serie de funcţii caracteristice inteligenţei uname:

Dezvoltarea unor raţionamente pentru rezolvarea problemei; Înţelegerea şi învăţarea pornind de la experienţă; Reacţionarea cu succes în cazul situaţiilor noi; Manipularea informaţiei incomplete şi ambigue.Dezvoltării interesante în domeniul inteligenţei artificiale pentru întreprinderi au

apărut abia în anul 1975, înregistrând o evoluţie rapidă în:Aplicaţii bazate pe ştiinţe cognitive – sisteme de studiere care tind să imite

procesele de raţionament uman;Aplicaţii de tip informatic – care tind să dezvolte calculatoare şi programe mai bine

adaptate principiilor de inteligenţă artificială (calculatoare destinate prelucrării lor paralele, reţele de neuroni, prelucrări simbolice etc.);

Robotica – constând în crearea unor maşini capabile de un anumit comportament adaptiv (roboţi), graţie capacităţilor lor de percepţie (de exemplu, vederea sau atingerea artificială) sau de deplasare (posibilitatea de a recunoaşte drumul său);

Interfeţe „naturale” – cu referire la perfecţionarea comunicării om-maşină prin utilizarea limbajului natural pentru a comanda un calculator.

O performanţă recentă în acest sens este cea a realităţii virtuale, în care se dezvoltă interfeţe multiple (apelând la simţurile umane), între calculator şi om, pentru a simula o realitate.

2.6.1. Sisteme Expert

Sistemele expert, ca parte integrantă a inteligenţei artificiale, au captat interesul economiştilor – dar şi a altor categorii de specialişti – date fiind perspectivele deosebit de promiţătoare de aplicare a lor în economie. În contextul derulării procesului decizional în domeniul economic, abordarea acestor concepte vizează aportul deosebit al informaticii, îndeosebi al sistemelor expert la obţinerea unor performanţe deosebite.[3]

Obiectivul principal al procesului de integrare a sistemelor expert în sfera domeniului decizional presupune evidenţierea rolului incontestabil al acestora în adoptarea rapidă şi la momentul oportun a unor decizii economice suficient de bine fundamentate. Chiar dacă opţiunea finală în alegerea unei soluţii şi implementarea deciziei revine economistului, totusi, parcurgerea în timp util a unor „secvenţe anterioare” din structura procesului decizional, cât şi evaluarea tuturor combinaţiilor posibile între variantele unei probleme de decizie, nu sunt posibile fără intervenţia sistemelor electronice de calcul. Iniţial, în opinia unor utilizatori se vehicula ideea conform căreia dezvoltarea sistemelor expert ar înlocui experţii din diferite domenii; realitatea practică demonstrează însă că mereu va fi nevoie de cei mai buni experţi în cadrul fiecărui sector de activitate, fără de care însăşi dezvoltarea sistemelor expert ar rămâne destul de incertă.

Sistemul expert este definit ca un program informatic, capabil să simulze raţionamentul unui expert uman, într-un domeniu specific de cunoaştere. Ideea de bază a sistemelor expert este de „a recupera” cunoaşterea specifică a expertului în domeniul său, de a o încorpora într-un program, care ulterior va fi utilizat şi de neexperţi, fie pentru a rezolva acelaşi tip de problemă, fie pentru a învăţa să o rezolve.

41

Page 40: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Sistemul expert reprezintă un pachet de programe bazate pe tehnicile inteligenţei artificiale care înmagazinează cunoştinţe ale experţilor umani dintr-un domeniu bine definit, pe care le utilizează apoi pentru a rezolva probleme din domeniul respectiv.

În funcţie de situaţie, un sistem expert poate fi văzut ca: Un sistem de decizie, în care se reţin alegerile propuse de sistemul expert; Un sistem de asistae a deciziei, prin care decidentul se bazează pe

recomandările formulate de sistem, dar se poate abate de la acestea (dacă se consideră competent să o facă);

Un sistem de asistare a studierii, care permite transmiterea cunoştinţelor dintr-un domeniu specific, de la un expert uman la altul mai puţin pregătit.

Istoric primele sisteme expert au fost create în anul 1975 şi se numeau MYCIN (utilizate în domeniul medical), PROSPECTOR (folosite la descoperirea unui uriaş zăcământ de molibden în Oceanul Pacific), DENDRAL (realizate pentru determinarea structurii moleculare, pornind de la proprietăţi chimice ale unor compuşi). Ulterior, numeroase sisteme expert au fost testate şi în întreprinderi din domenii diferite (diagnostic financiar, planificare strategică, gestiune şi control etc.).

Structura unui sistem expert evidenţiază particularitatea acestuia, în raport cu sistemele informatice care prelucrează date, şi anume separarea cunoştinţelor referitoare la problemă (descrisă într-o bază de cunoştinţe) de mecanismul de exploatare a acestor cunoştinţe (realizat printr-un motor de inferenţă). Arhitectura tipică a unui sistem expert este reflectată în figura 11:

Fig. 11. Structura unui sistem expert[3]

a. Baza de cunoştinţe cuprinde: Baza de fapte reuneşte un ansamblu de cunoştinţe brute, elementare,

referitoare la un domeniu specific. Faptele constituie în sine afirmaţii, aserţiuni, care descriu prin elemente de cunoştinţe, ceea ce se cunoaşte despre acea problemă, înainte de începerea raţionamentului.

42

Modul de asistare în procesul de achiziţie a cunoştinţelor

Motor de inferenţă

Gestiunea comunicării cu utilizatorulGestiunea comunicării cu utilizatorul

Reguli MetareguliOrdinare (cunoştinţe(cunoştinţe de rezolvarepreliminare) a problemei)

[3]Cunoştinţe afirmative (datele brute ale problemei de

rezolvat)

Baza de reguli Baza de fapte

Baza de cunoştinţe

Page 41: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Baza de reguli. Regulile, numite şi cunoştinţe deductive, constituie forma în care pot fi exprimate cunoştinţele expertului uman, referitoare la problema de rezolvat. Regulile pot fi ordinare, evidenţiate prin relaţii de genul dacă ... <condiţie> … atunci … <acţiune>, în care, în partea stângă se definesc condiţiile care trebuie satisfăcute, pentru ca în partea dreaptă – concluzia – să poată devenii accesibilă. Regulile simuleză un raţionament şi un mod de acţiune specific.

O a doua categorie de reguli este identificată prin conceptul de metareguli, prin intermediul cărora sistemul expert este capabil să aplice o strategie de rezolvare.

b. Motorul de inferenţăMotorul de inferenţă permite consultarea, interpretarea şi corelarea cunoştinţelor în

vederea efectuării raţionamentelor şi obţinerii concluziilor logice. Această componentă este parte a programului care execută raţionamente, fiind capabilă să interpreteze regulile şi să le aplice faptelor observate pentru rezolvarea problemei.

Modul de funcţionare a motorului de inferenţă este următorul: pornind de la baza de cunoştinţe (reguli, fapte etc.) motorul va căuta regulile potenţial aplicabile; dacă va identifica mai multe reguli care pot fi aplicate, se va proceda la selecţie (bazată pe metareguli) şi se va defini regula care se aplică prima dată; aplicarea regulii va permite deducerea unor noi fapte (ce vor fi incluse în baza de fapte) şi noi reguli aplicabile.

În funcţie de modul în care a fost operată filtrarea şi selecţia regulilor, se disting două moduri de funcţionare a mecanismului inferenţial:

Modul cu „înlănţuire în faţă”, caz în care se spune că sistemul expert este guvernat de fapte. Motorul de inferenţă porneşte de la faptele verificate şi înaintează către scopuri, utilizând reguli aplicabile pentru a-şi îmbogăţii baza de fapte, apelând ulterior la noi reguli cu posibilităţi de aplicare.

Modul cu „înlănţuire înapoi”. Sistemul expert este guvernat de scopuri, motorul de inferenţă placând de la obiectivul vizat şi întorcându-se la reguli, căutând să regăsească faptele care trebuie verificate pentru ca scopul să poată fi atins.

În practică, cele două moduri de funcţionare sunt combinate, nefiind uzuală o delimitare strictă a aplicabilităţiilor.

c. Mecanismul de asistare în determinarea cunoştinţelorAceasta este o componentă cu un rol important în structura sistemului expert, care

asigură: Furnizarea explicaţiilor referitoare la raţionamentele folosite; Furnizarea concluziilor, care se pot încadra în cunoştinţele afirmative

(fapte) sau deductive (reguli); Explicarea cauzelor care au condus la determinarea unor concluzi

incoerente (nevalidate de expertul uman).Din punct de vedere al funcţionalităţii, sistemele expert prezintă două trăsături

importante:Modularitate, evidenţiată prin faptul că ansamblul cunoştinţelor dintr-un domeniu

este explicit într-o bază de cunoştinţe, separate de procedurile de exploatare a lor. Mecanismul de inferenţă funcţionează independent de problemele de rezolvat.

Lizibilitate, asigurată de o bază de cunoştinţe care poate fi uşor accesată de către un nespecialist, formalizarea cunoştinţelor sub formă de reguli fiind independentă de interfaţa om-maşină.

Domeniile reprezentative de utilizare practică a sistemelor expert sunt în principal următoarele:

Diagnostic, interpretare: sistemul expert porneşte de la un anumit număr de semnale (simboluri) şi reuşeste să caracterizeze o stare, o situaţie etc;

43

Page 42: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Remedieri, menţinere: În această situaţie, sistemele expert au funcţii suplimentare, respectiv culeg şi interpretează cunoştinţele, formulează observaţii şi propun acţiuni în scopul soluţionării disfuncţionalităţilor;

Previziune, planificare: plecând de la o situaţie dată, sistemul poate propune o imagine a evoluţiei viitoate şi chiar opţiuni pentru planificare, în funcţie de obiectivele fixate;

Activităţi de concepţie: sistemul expert poate combina diferite restricţii speifice domeniului său de utilizare, precum şi consecinţele lor asupra funcţionalităţilor care se prevăd pentru a concepe un produs.

Interesul major urmărit prin realizarea sistemelor expert este de a conserva şi a difuza cunoştinţele experţilor umani într-o organizaţie. Acest obiectiv conduce la o mai bună calitate a deciziilor luate de factori diferiţi. Totuşi, sistemele expert nu au cunoscut o dezvoltare intensă, îndeosebi în domeniul gestiuni întreprinderii, considerat prioritar datorită costurilor pe care le implică (care nu sunt deloc neglijabile) şi faptului că acoperă o sferă destul de limitată, chiar dacă analiza efectuată este destul de profundă.

Depăşirea acestor inconveniente are, în opinia specialiştilor, o soluţie destul de interesantă: combinarea sistemelor interactive de asistare a deciziilor cu sistemele expert, asigurând integrarea în cadrul unui SIAD – care acoperă o arie largă de probleme – a modelelor expert, acestea aducând cunoştinţe concrete într-o problemă particulară.

Prin această combinaţie se asigură o utilizare mai eficientă a resurselor esenţiale – om şi calculator – în cadrul unor sisteme rezultante: sisteme „inteligente” de asitare a deciziei.[4]

2.6.2. Depozite de date

În prezent, informaţia devine din ce în ce mai importantă în procesul decizional al unei organizaţii; indiferent de sectorul de activitate şi de „nivelul” pieţei, cheia succesului constă în „arta” de a dispune de cât mai multe informaţii, de a avea „mai multe” decât concurenţii, de a gestiona baza de date în mod eficient şi de a pune la dispoziţia utilizatorului informaţii cât mai utile, într-o formă accesibilă şi atractivă. Întreprinderea trebuie să-şi construiască un sistem decizional care să-i permită îmbunătăţirea performanţelor sale. Întegrarea tehnologiei depozitelor de date în acest context se justifică prin faptul că aceasta trebuie să-i permită organizaţiei să fie cât mai activă pe piaţă de „a decide” şi „a anticipa” în funcţie de informaţiile pe care le deţine, de concurenţa şi complexitatea acţiunilor pe care trebuie să le îndeplinească.[3]

Un depozit de date (Data Warehouse) şi serviciile sale oferă posibilitatea ca toate datele, indiferent de provenienţa lor (din surse interne sau externe) să fie organizate, coordonate, integrate şi stocate de aşa manieră încât să-i permită utilizatorului să aibă o viziune de ansamblu asupra problemei pe care doreşte să o rezolve.

Înainte de a fi încărcată într-un depozit de date, informaţia trebuie să fie extrasă, prelucrată şi pregătită pentru a fi pusă la dispoziţia utilizatorului; aceste faze sunt adesea extrem de complexe. Odată integrată, informaţia trebuie să fie prezentată într-o formă cât mai accesibilă utilizatorului. Această manieră de orientare a datelor este denumită de specialişti viziune „business” sau „orientată pe subiecte” şi implică două aspecte importante:

Definirea din punct de vedere semantic a datelor stocate într-un depozit de date;

Punerea în aplicare a structurii fizice particulare a datelor.

44

Page 43: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Definirea clasică a conceptului de Data Warehouse (depozit de date) este „o colecţie de date orientate pe subiecte, integrate, non-volatile şi istorice,organizate pentru a asigura suport unui proces de asistare a deciziei”.[Inman B., 1994]

Caracteristicile unui depozit de date sunt: Este un sistem orientat pe subiecte;Organizarea unui depozit de date se realizează în contextul unor subiecte majore la

nivelul întreprinderii; datele sunt structurate pe teme, spre deosebire de procedeele tradiţionale, care organizează, de regulă,datele pe procese funcţionale.

Este un sitem care conţine date integrate;Un depozit de date prezintă un proiect realizat la nivel de întreprindere care, spre

deosebire de un format clasic, în cadrul căruia se aşteaptă un rezultat concret, implică obţinerea unor date finale desfăşurate pe un interval de timp mai îndelungat. Conform acestui proiect, înainte de a fi integrate într-un depozit de date, datele trebuie transpuse într-o formă specifică astfel încât să aibă o stare coerentă.

Un depozit de date se bazează pe unificare;În cadrul unui sistem decizional, unitatea de analiză se reduce adesea la nivelul

„produsului”, care însă de cele mai multe ori nu este uşor de rezolvat. Această sarcină suplimentară de unificare a datelor poate fi adesea destul de grea, iar identificarea trebuie făcută destul de devreme astfel încât să nu constituie un obstaol în dezvoltarea proiectului

Este un instrument care se bazează pe „calitate” şi calificare;Un alt obstacol întâlnit în procesul de integrare a datelor îl constituie lipsa

„calificării” şi „calităţii” datelor; această problemă apare frecvent în procesul de integrare a datelor externe cu cele provenite din sistemul intern. La acest nivel, un element destul de important, care trebuie luat în considerare se referă la datele inexistente, cu alte cuvinte la cele care lipsesc atât din sistemul intern, dar şi din cel extern, însă sunt necesare în contextul unei analize decizionale.

Un Data Warehouse se bazează pe date istorice;Într-un proces decizional, valorile „istorice” oferite analiştilor le asigură acestora

capacitatea de a urmării anumiţi indicatori într-un interval de timp şi de a măsura efectele deciziilor asupra activităţii organizaţiei. În acelaşi timp, acestea constituie un element de bază în adaptarea tehnicilor de simulare şi optimizare utilizate în cadrul diferitelor metode de analiză abordate. Într-un sistem clasic, datele sunt actualizate după fiecare tranzacţie efectuată astfel încât valoarea mai veche este pierdută şi informaţiile sunt aduse în mod constant „la zi”. În schimb în cadrul unui depozit de date, datele nu trebuie niciodată actualizate deoarece reprezintă valori inserate în sistemul decizional la un moment dat. Astefel, un Data Warehouse va stoca „istoricul” datelor, deci ansamblul de valori pe care datele le-au luat pe parcursul timpului. În acest context, unei date i se va asocia un element temporal în scopul de a identifica o valoare particulară în timp.

Un depozit de date implică date non-volatile.Caracterul non-volatil al informaţiilor este consecinţa valorilor istorice menţinute în

cadrul unui sistem. Astfel, aceeaşi cerere de interogare efectuată la intervale de timp diferite, precizând bine înţeles data de referinţă, va furniza acelaşi rezultat. Într-un sistem clasic (organizaţional), datele sunt actualizate şi astfel, interogările fiind formulate asupra valorilor actualizate, este imposibil să regăsim un rezultat mai vechi.

Neactualizarea datelor în cadrul unui depozit de date are două consecinţe estenţiale: Organizarea internă a bazei de date care va trebui să fie adoptată în scopul

de a suporta optimizarea accesului la date; Tehnologiile necesare accesului curent al utilizatorilor.

45

Page 44: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Un Data Warehouse este structurat în patru clase de date organizate după o axă în funcţie de sensul istoric şi o alta în raport de caracterul sintetic.

Fig. 12. Structura unui Data Warehouse[3]Datele detaliate reflectă evenimentele cele mai recente din structura unui depozit

de date în sensul că inserările regulate de date vor fi realizate la acest nivel. Chiar dacă nu funcţionează ca regulă generală în anumite situaţii datele detaliate pot fi extrem de voluminoase, impunând un sistem hardware destul de sofisticat pentru gestionarea şi prelucrarea lor.

Datele agregate sunt folosite adesea deoarece ele corespund unor elemente de analiză care sunt reprezentative pentru exigenţele utilizatorilor. Ele constituie deja un rezultat al analizei şi sintezei informaţiilor aferente unui proces decizional; prin urmare, datele respective trebuie să fie accesate destul de uşor şi să fie prezentate într-o formă agreată de utilizator.

Date istorice. Unul dintre obiectivele esenţiale ale unui depozit de date constă în stocarea datelor ce provin din sistemul organizaţional nu distrug vechile valori, dar creează o nouă „dimensiune” a datelor. Suportul de stocare al datelor „istorice” depinde de volumul datelor, frecvenţa accesului, tipul de acces şi costul tehnicilor de stocare.

2.6.3. Data mining

Cantitatea foarte mare de date existentă la nivel mondial şi nevoia de a transforma acestui volum mare de date în informaţii utile a dus la apariţia conceptului de data mining.

Termenul de data mining a fost definit diferit în literatura de specialitate, lucru absolut explicabil în cazul unei tehnologii noi. Există şi alţi termeni care au semnificaţie similară sau puţin diferită de cea de data mining (fig. 13.) şi anume: analiza datelor sau tiparelor, mineritul cunoştinţelor, extragerea cunoştinţelor, descoperirea tiparelor, arheologia datelor, dragarea datelor şi pescuitul datelor. În literatura de specialitate din România, termenul a fost tradus ca mineritul datelor.[9]

46

METADATE

Date puternic agregate

Date agregate

Date detaliate

Date detaliate istorice

Nivel de

sinteză

Nivel din

punct de

vedere istoric

Analiza datelor Analiza tiparelor Mineritul cunoştinţelor

DATA MINING

Pescuitul datelor

Extragerea cunoştinţelor

Dragarea datelor

Descoperirea tiparelor

Arheologia datelor

Page 45: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig 13. Concepte similare data mining-ului [Thuraisingham, Han, Hand].

Data mining reprezintă procesul de realizare a unor interogări variate şi extragere a informaţiilor, tiparelor şi tendinţelor utile, necunoscute anterior din cantităţi mari de date stocate probabil în baze de date.

Acest concept poate fi definit ca fiind procesul care utilizează o gamă variată de instrumente de analiză a datelor pentru a descoperi tipare şi relaţii între date care pot fi folosite pentru a realiza estimări valide.

Data mining constă în cercetarea şi analiza unui volum mare de date în scopul descoperirii tiparelor şi regulilor care au semnificaţie.

Procesul de data mining poate fi direct şi indirect. Procesul de data mining direct încearcă să explice sau să clasifice un anumit domeniu ţintă. Procesul de data mining indirect încearcă să identifice tipare sau asemănări între grupuri de înregistrări fără a folosi un anumit domeniu ţintă sau colecţie de clase predefinite.

Data mining reprezintă analiza unor colecţii (de obicei mari) de date observate, în scopul descoperirii unor relaţii necunoscute şi sintetizării datelor pe baza unor metode noi, fiind astfel utile şi inteligibile pentru posesorul datelor. Relaţiile şi informaţiile obţinute prin data mining poartă numele de modele sau tipare.

Unii specialişti consideră că termenul de data mining este sinonim cu un alt concept cunoscut acela de descoperire a cunoştinţelor în bazele de date (Knowledge Discovery in Databases - KDD). Alţi specialişti consideră că data mining este o etapă în cadrul procesului de descoperire a cunoştinţelor în bazele de date.

Conceptul de descoperire a cunoştinţelor în bazele de date (KDD) a apărut prima dată în 1989 în cadrul unei conferinţe pe această temă, pentru a evidenţia faptul că produsul final al procesului de descoperire bazat pe date îl reprezintă cunoştinţele. Acesta este folosit în special în domeniul inteligenţei artificiale şi al învăţării automate.

KDD reprezintă extragerea nu simplă şi nebanală a unor informaţii implicite, necunoscute anterior şi potenţial utile din date.

KDD ia în considerare întregul proces de descoperire a cunoştinţelor din date inclusiv: modul în care datele sunt stocate şi accesate, modul în care algoritmii pot fi adaptaţi la colecţiile mari de date pentru a fi eficienţi, modul în care rezultatele pot fi interpretare şi vizualizate şi modul în care interacţiunea om-calculator poate fi modelată şi asistată în mod util.

47

Page 46: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 14. Etapele procesului de descoperire a cunoştinţelor [Fayyad].

Procesul de KDD, prezentat în figura 14, cuprinde următoarele etape: pregătirea datelor, selectarea datelor, prepocesarea datelor (curăţarea datelor), transformarea datelor, extragerea tiparelor din date (data mining) şi interpretarea corespunzătoare a rezultatelor obţinute prin data mining.[10]

Selectarea datelor are drept scop extragerea din masivele de date numai a acelor date care sunt relevante pentru analiză în data mining. Această extragere de date contribuie la orientarea şi creşterea vitezei procesului.

Preprocesarea datelor se ocupă cu curăţarea datelor şi pregătirea activităţilor care sunt necesare în asigurarea de rezultate corecte. Eliminarea lipsei valorilor în date, asigurarea că valorile codificate au un înţeles uniform şi asigurarea faptului că nu există valori greşite sunt acţiuni tipice care apar în această etapă.

Transformarea datelor are ca scop convertirea datelor într-o tabelă bidimensională şi eliminarea câmpurilor nedorite sau înalt corelate astfel încât rezultatele să fie valide.

Obiectivul etapei de data mining este de a analiza datele printr-un set de algoritmi potriviţi pentru a descoperi tipare şi reguli semnificative şi pentru a produce modele predictive. Acesta este nucleul ciclului descoperirii cunoştinţelor în baze de date.

Etapa de interpretare şi evaluare are rolul de a selecta acele modele care sunt valide şi utile în viitoarele decizii din diferite domenii, deoarece algoritmii de data mining au puterea de a produce un număr nelimitat de tipare ascunse, iar multe dintre acestea nu pot fi semnificative sau utilizabile.

Termenul de data mining definit ca proces de descoperire a cunoştinţelor semnificative din cantităţi mari de date stocate în baze de date, depozite de date sau depozite de informaţii este utilizat, cu precădere, în industrie, în mass-media, printre statisticieni, analişti de date, specialişti în baze de date şi în cadrul comunităţilor care se ocupă cu sistemele informatice de gestiune.

48

Date

Preprocesare

Transformare

Evaluare / interpretare

Data mining

Selectare

Date ţinţă

Date preprocesate

Date transformate

Tipare

Page 47: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Potrivit acestei abordări, arhitectura unui sistem de data mining este alcătuită din următoarele componente (fig. 14):

bazele de date, depozitele de date sau depozitele de informaţii sunt reprezentate de una /unul sau mai multe baze de date, depozite de date, foi de calcul tabelar sau orice alt tip de depozit de informaţii;

serverul de bază de date sau de depozit de date este responsabil pentru extragerea datelor relevante pe baza cererii de data mining a utilizatorului;

baza de cunoştinţe cuprinde cunoştinţele domeniului care sunt folosite pentru a ghida căutarea sau pentru a evalua semnificaţia tiparelor obţinute;

Cunoştinţele pot fi reprezentate de ierarhii conceptuale care se utilizează pentru a organiza atributele sau valorile atributelor pe niveluri de abstractizare diferite, de experienţa utilizatorului (euristici) care poate fi folosită pentru a evalua semnificaţia tiparelor, de restricţii sau limitări ale semnificaţiei şi de metadate.

motorul de data mining este componenta esenţială a sistemului de data mining şi este alcătuit dintr-un set de module funcţionale pentru activităţi cum ar fi: caracterizare, analiza asocierii, clasificare, analiza evoluţiei şi abaterii;

modulul de evaluare a tiparelor foloseşte o serie de indicatori şi interacţionează cu modulul de data mining astfel încât să orienteze căutarea către acele tipare semnificative;

Această componentă poate utiliza valorile limită stocate în baza de cunoştinţe. Acest modul poate fi integrat în cadrul modulului de data mining în funcţie de implementarea metodei folosite. Pentru a realiza un sistem de data mining eficient se recomandă să se realizeze o evaluare profundă astfel încât să se restricţioneze căutarea doar la tiparele semnificative.

interfaţa utilizator asigură comunicarea dintre utilizatori şi sistem, permiţând utilizatorilor să interacţioneze cu sistemul prin specificarea unei interogări sau activităţi şi oferind informaţii pentru a ajuta procesul de căutare. Această componentă permite utilizatorilor să parcurgă schemele sau structurile datelor, bazelor de date sau depozitelor de date, să evalueze tiparele generate şi să vizualizeze tiparele în formate diferite.

49Baze de date

Depozitede date

Serverul de bază de date sau de depozit de date

Motorul de data mining

Evaluarea tiparelor

Interfaţa utilizator

FiltrareCurăţarea şi integrarea datelor

Baza de cunoştinţe

Page 48: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 15. Arhitectura unui sistem de data mining reprezentativ [Sethi, Han]

Aplicaţiile obţinute folosind tehnologia de data mining implementează activităţi de data mining, activităţi care reflectă o metodă diferită de distingere a tiparelor într-o colecţie complexă de date (clasificarea, previziunea, gruparea / clustering, analiza asocierii etc.). Aceste activităţi au la bază una sau mai multe metode şi tehnici de data mining: arborii de decizie, inducţia regulilor, K – cel mai apropiat vecin (K – Nearest Neighbor) şi raţionamentul bazat pe memorie, reţelele neuronale, detectarea grupărilor / clusterilor, analiza discriminanţilor, algoritmii genetici etc.[11]

A. Arborii de decizie

Un arbore de decizie reprezintă o structură care poate fi folosită pentru a diviza o colecţie mare de înregistrări în colecţii din ce în ce mai mici de înregistrări prin aplicarea unei secvenţe de reguli simple de decizie. După fiecare diviziune succesivă, membrii colecţiilor rezultate devin din ce în ce mai asemănători .[12]

Conform unei alte definiţii arborele de decizie este o schemă logică similară structurii unui arbore în care fiecare nod intern reprezintă un test asupra unei anumite proprietăţi, fiecare arc (legătură) constituie rezultatul testului, iar fiecare nod frunză reprezintă o clasă sau o distribuţie a unei clase.

Pentru a construi un arbore decizional se pot folosi algoritmi diferiţi: CHAID (Chi-Squared Automatic Interaction Detection), CART (Classification and Regression Trees), Quest, C5.0 şi ID3.

În funcţie de algoritmul folosit, fiecare nod poate avea două sau mai multe arce. De exemplu, arborii generaţi folosind algoritmul CART au doar două arce asociate fiecărui nod. Aceşti arbori se numesc arbori binari. Când sunt permise mai mult de două arce arborii se numesc multicăi.

Fiecare arc conduce la un alt nod de decizie sau la un nod frunză. Prin navigarea în cadrul unui arbore se poate atribui o valoare sau o clasă unui caz prin stabilirea arcelor care vor fi urmate începând de la nodul rădăcină, trecând prin fiecare nod ulterior până se ajunge la nodul frunză. Fiecare nod foloseşte datele cazului respectiv pentru a alege arcul adecvat.

Arborii de decizie care sunt folosiţi pentru a estima variabile discrete se numesc arbori de clasificare deoarece fixează instanţe în categorii sau clase, în timp ce arborii de decizie utilizaţi pentru a previziona variabile continue sunt denumiţi arbori de regresie.

Un dezavantaj al lucrului cu arborii de decizie îl reprezintă arborii de dimensiune foarte mare care se construiesc mult mai greu şi nu sunt uşor de înţeles. Dimensiunea unui arbore se poate controla prin intermediul regulilor de stopare care limitează creşterea arborelui. O regulă obişnuită de stopare constă în restricţionarea adâncimii maxime până la care poate creşte un arbore. O altă regulă este reprezentată de stabilirea unei limite inferioare referitoare la numărul de înregistrări dintr-un nod. O alternativă la regulile de stopare o reprezintă simplificarea arborelului. Astfel, arborelui i se permite să crească până atinge dimensiunea maximă şi apoi, folosind, euristici sau intervenţia utilizatorului, arborele este simplificat şi adus la dimensiunea cea mai mică fără a i se compromite precizia .

50

Page 49: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Arborii de decizie reprezintă o metodă puternică şi larg aplicată atât în activitatea de clasificare cât şi în cea de previziune. Atractivitatea acestei metode se datorează faptului că arborii de decizie reprezintă reguli. Regulile pot fi definite uşor într-un limbaj natural astfel încât oamenii să le poată înţelege şi, de asemenea, pot fi definite într-un limbaj de interogare a bazelor de date (de exemplu: SQL) în scopul regăsirii înregistrărilor care fac parte dintr-o anumită categorie. Arborii decizionali sunt utili atunci când se analizează date pentru a obţine informaţii referitoare la relaţiile dintre un număr mare de variabile de intrare şi o variabilă ţintă. Deoarece combină analiza datelor cu modelarea acestora, arborii de decizie reprezintă o primă etapă importantă în cadrul procesului de modelare chiar şi atunci când modelul final se proiectează folosind o altă tehnică .[13]

B. Inducţia regulilor

Inducţia regulilor este o metodă de deducere a unei colecţii de reguli pentru a clasifica anumite cazuri. Deşi arborii de decizie pot genera un set de reguli, metoda inducţiei regulilor generează o colecţie de reguli independente care nu alcătuiesc un arbore de decizie .

Prin intermediul acestei metode se pot identifica tipare diferite şi, uneori, foarte bune pentru clasificare deoarece inducţia regulilor nu impune divizarea pe fiecare nivel în parte.

Spre deosebire de arborii de decizie, este posibil ca regulile obţinute prin inducţie să nu trateze toate situaţiile posibile. De asemenea, este posibil ca uneori regulile să intre în conflict, caz în care este necesar să se aleagă regula care va fi aplicată. O modalitate obişnuită de rezolvare a conflictelor constă în atribuirea de factori de certitudine regulilor şi utilizarea acelei reguli cu factorul de încredere cel mai mare.

C. K – Cel mai apropiat vecin şi raţionamentul bazat pe memorieK - Cel mai apropiat vecin, în limba engleză K – Nearest Neighbor (K-NN), este o

metodă de clasificare bazată pe învăţarea prin analogie, adică pe căutarea soluţiilor obţinute pentru probleme asemănătoare. Această metodă determină în ce clasă trebuie inclus un caz prin examinarea unor cazuri sau vecini similari cu acesta. Ea determină numărul de cazuri pentru fiecare clasă în parte şi atribuie noul caz clasei din care fac parte cei mai mulţi vecini.

Algoritmul K-NN are la bază două elemente principale:[14] numărul celor mai apropiate cazuri care vor fi folosite; un indicator pentru a măsura distanţa între valorile datelor.Aplicarea acestei metode constă în parcurgerea următorilor paşi : identificarea indicatorului / metricei pentru a măsura distanţa între atributele

datelor şi apoi calcularea acesteia;Dacă pentru datele numerice acest lucru se realizează relativ uşor, datele simbolice

au nevoie de un tratament special. selectarea colecţiei de cazuri deja clasificate pentru a le folosi ca bază pentru

clasificarea unor noi cazuri; stabilirea valorii pentru k, adică a dimensiunii vecinătăţii în care se vor realiza

comparările; determinarea modalităţii de numărare a cazurilor celor mai apropiate.Această metodă solicită din ce în ce mai mult echipamentele de calcul pe măsură ce

numărul de potenţiali vecini cu care se compară cazul necunoscut este din ce în ce mai mare. De aceea, sunt necesare tehnici de indexare eficiente .

În timp ce aplicarea unui arbore decizional sau reţea neuronală unui caz nou se realizează rapid, metoda K-NN impune efectuarea unui calcul nou pentru fiecare caz în

51

Page 50: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

parte. Pentru a creşte viteza algoritmului K-NN, în mod frecvent, toate datele se păstrează în memorie. Raţionamentul bazat pe memorie indică un clasificator K-NN păstrat în memorie.

Raţionamentul bazat pe memorie (RBM) este procesul de căutare într-o bază de date cu înregistrări cunoscute pentru a identifica acele înregistrări preclasificate similare noii înregistrări .

Unul din avantajele RBM este reprezentat de abilitatea de a folosi datele „aşa cum sunt”. Spre deosebire de alte metode şi tehnici de data mining, RBM nu ţine cont de formatul înregistrărilor. Alt avantaj constă în capacitatea de adaptare. RBM poate învăţa despre categoriile noi sau definiţiile noi ale datelor vechi doar prin incorporarea datelor noi în cadrul bazelor de date istorice. RBM obţine rezultate bune fără a aloca o perioadă mare de timp instruirii datelor sau fără a modifica datele pentru a le aduce în formatul corespunzător .

Metoda K-NN se foloseşte uşor când sunt doar câteva variabile independente şi este foarte utilă atunci când se construiesc modele care implică tipuri de date care nu sunt standard [25].

D. Reţelele neuronale artificiale[15]

Reţelele neuronale artificiale prezintă un interes deosebit deoarece ele furnizează o metodă de modelare eficientă a problemelor complexe în care pot exista sute de variabile independente între care există multe interacţiuni .

Reţelele neuronale artificiale reprezintă o clasă de instrumente puternice, cu un scop general, care se aplică uşor la clasificare, previzionare şi grupare (clusterizare) .

Reţeaua neuronală artificială, pe scurt reţea neuronală, reprezintă un ansamblu de neuroni artificiali legaţi prin conexiuni care au asociate o intensitate şi un sens de circulaţie a informaţiei .

Folosirea neuronilor artificiali ca elemente de bază ale unei reţele a fost realizată pentru prima dată de către F. Rosenblatt în 1957.

O reţea neuronală poate fi modelată ca o cutie neagră care produce rezultate prin prelucrarea unor date de intrare, modul de calcul al rezultatelor stabilindu-se printr-un proces de autoorganizare numit instruirea / antrenarea reţelei neuronale.

O reţea neuronală prezintă o serie de caracteristici care se pot grupa în: caracteristici locale şi caracteristici globale. Ansamblul caracteristicilor definesc modelul unei reţele neuronale.[16]

Caracteristicile locale ale unei reţele neuronale sunt reprezentate de caracteristicile neuronilor din reţea: biasul, funcţia de combinare a intrărilor, funcţia de activare şi prezenţa sau absenţa reacţiei locale.

Caracteristicile globale ale unei reţele neuronale sunt: caracteristici statice reprezentate prin proprietăţile topologice ale reţelei; caracteristice dinamice reprezentate de caracteristicile evoluţiei în timp a

stării reţelei şi de modul de instruire a acesteia.Cele mai cunoscute modele de reţele neuronale sunt: reţelele neuronale feedforward

şi reţelele neuronale recurente.Atunci când se lucrează cu reţele neuronale, utilizatorii trebuie să ţină cont de

următoarele aspecte: reţelele neuronale nu se interpretează uşor, nu există nicio explicaţie raţională

explicită a deciziilor sau estimărilor pe care acestea le realizează; reţelele neuronale au tendinţa de a suprainstrui datele de instruire dacă nu

există restricţii clare împotriva acestui lucru;

52

Page 51: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

reţelele neuronale au nevoie de o perioadă mare de timp pentru a efectua instruirea reţelei cu excepţia cazului în care problema este foarte simplă, odată instruite, însă, pot oferi foarte rapid estimări;

reţelele neuronale implică o pregătire îndelungată a datelor;O idee preconcepută referitoare la reţelele neuronale este că ele ar folosi orice tip

de date pentru a oferi estimări rezonabile, însă implementările de succes ale reţelelor neuronale presupun curăţarea datelor, selectarea, pregătirea şi preprocesarea acestora. De exemplu, reţelele neuronale impun ca toate variabilele să fie numerice. De aceea, datele discrete se divizează în mai multe dihotomii, fiecare având atribuită valoarea 1 sau 0.

reţelele neuronale sunt eficiente când mulţimea de date este suficient de mare şi raportul semnal – zgomot este acceptabil de mare. Deoarece sunt foarte flexibile, ele identifică multe tipare false atunci când raportul semnal – zgomot este scăzut.

3. Sistemul de gestiune al bazelor de dateorientate obiect

3.1. Definire

Definirea sistemelor de gestiune a bazelor de date orientate obiect se face pornind de la limitele sistemelor relaţionale şi de la direcţiile de cercetare abordate în tehnologia orientată obiect. SGBDOO este un software complet, care implementează obiectivele şi funcţiile unui sistem de gestiune a bazelor de date, ce implementează modelul de date orientat obiect şi are cel puţin un limbaj de programare orientat obiect.[17]

Un sistem de baze de date este un sistem computerizat de evidenţă a informaţiilor. Informaţia într-un sistem de baze de date constă atât din date cât şi din informaţii despre date (metadata) cum ar fi relaţiile dintre date.

Un sistem de baze de date poate fi considerat ca având patru părţi: date, utilizatori, hardware şi software.

Datele sunt informaţii pe care diferiţi utilizatori (firme, agenţii sau simpli utilizatori) le colectează pentru a îndeplini scopurile sau misiunile. Datele individuale sunt stocate în mulţimi de date relaţionale (legate) numite înregistrări. O colecţie de înregistrări dependente se numeşte bază de date.

Diferitele persoane sau grupuri de persoane care folosesc informaţiile sunt definite ca utilizatori.

Hardware constă în device-uri fizice, cum ar fi harddisk-uri, imprimante, interfeţe de intrare- ieşire şi procesorul de date cu memoria sa asociată.

Software-ul, sistemul de gestiune al bazelor de date reprezintă interfaţa dintre datele fizice şi utilizator (SGBD). SGBD-ul este un sistem software, dar poate conţine şi

53

Page 52: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

hardware specializat pentru a gestiona mai eficient datele. Aceste componente hardware pot fi harddisk-uri speciale care permit acces mai rapid la date, sau multiprocesoare care permit procesarea paralelă de date.

SGBD-ul furnizează diferiţilor utilizatori ai bazei de date, diferite modalităţi de lucru cu date în funcţie de necesităţile fiecăruia.

Limitele sistemelor relaţionale au determinat cercetări pentru o nouă genereaţie de sisteme de gestiune a bazelor de date (a treia) şi anume cele orientate obiect.

Bazele de date orientate obiect permit crearea unor obiecte complexe din componente mai simple, fiecare având atribute proprii şi comportament specific. Aceste sisteme combină posibilitatea definirii şi manipulării structurilor complexe de date cu funcţionalitatea unui limbaj de programare şi tehnologia de gestiune a bazelor de date.

Modelele de date orientate obiect au fost create pentru a modela lumea reală. De exemplu, limbajul C++ a fost dezvoltat pentru a crea modelul unui sistem telefonic. Conceptul fundamental al unui model de date orientat obiect este obiectul.

Într-un model de date orientat obiect, orice entitate din lumea reală este un obiect şi reciproc, orice obiect reprezintă o entitate a lumii reale.

Un obiect reprezintă un grup de date structurate, identificate printr-o referinţă unică.

Baza de date orientată obiect este o organizare coerentă de obiecte persistente, partajate de utilizatori concurenţi. Prin urmare, baza de date orientată obiect este rezultatul aplicării tehnologiei orientate obiect în domeniul stocării şi găsirii informaţiilor.

Schema unei baze de date orientate obiect trebuie să includă definiţii structurale (atribute şi tipuri) şi comportamentale (metode) ale obiectelor.

Incapacitatea relaţionalului de a face faţă noilor tipuri de aplicaţii informatice (multimedia, deschise, internet etc.) s-a manifestat în:[18]

Adaptarea greoaie pentru tratarea noilor tipuri de date (video, sunet etc.); Tratarea volumelor foarte mari de date; Tratarea datelor deosebit de complexe; Producerea unor aplicaţii cât mai deschise.Abordarea noţiunilor de obiect şi sistem de gestiune a bazelor de date orientate

obiect s-a făcut din mai multe puncte de vedere, pentru că mai multe domenii ale informaticii (limbaje de programare, bazele de date, sistemele informatice, inteligenţa artificială) au contribuit la dezvoltarea conceptelor din tehnologia orientată obiect.

Există două direcţii de cercetare pentru sistemele de gestiune a bazelor de date orientate obiect: una pune accentul pe limbajele de programare (funcţionale – Lips, imperative – Pascal şi orientate obiect – Smalltalk, C++, Java), iar cealaltă pune accent pe date (modelul orientat obiect).

Printr-un compromis al celor două direcţii de cercetare s-a ajuns la sistemul de gestiune orientat obiect (SGBDOO): un sistem software complet care îndeplineşte funcţiile şi obiectivele unui sistem de gestiune a bazelor de date, implementeză modelul de date orientat obiect şi are cel puţin un limbaj de programare orientat obiect.

În tehnologia orientată obiect, datorită direcţiilor de cercetare diferite, există mai multe nuanţe de exprimare privind sistemele dezvoltate:

Sisteme orientate pe clase (tipuri), folosesc drept noţiune fundamentală „clasa (tipul) de obiecte”;

Sisteme orientate pe obiecte, folosesc drept noţiune fundamentală „obiectul”;

Sisteme orientate mixt, folosec drept noţiuni fundamentale atât „clasa de obiecte” cât şi „obiectul”;

54

Page 53: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Sisteme bazate pe obiecte, folosesc noţiunea de „obiect” pentru care nu se implementează trei caracteristici (moştenirea, încapsularea, abstractizarea) (exemplu limbajele tip „scenarii-script”);

Sisteme obiectuale, folosesc alte noţiuni fundamentale dar tratează şi obiectele (exemplu, sistemele relaţional-obiectuale, cum ar fi Visual Foxpro, Oracle etc.).

Principiile avute în vedere la definirea minimală a unui SGBDOO sunt: Implementarea unor caracteristici fundamentale ale obiectelor

(încapsularea, moştenirea, polimorfismul etc.); Preluarea facilităţilor din generaţiile de SGBD-uri anterioare; Deschiderea către alte sisteme.Un sistem de gestiune al bazelor de date orientate obiect trebuie să îndeplinească

cerinţele unui sistem de gestiune a bazelor de date şi să fie în plus, un sistem orientat pe obiecte.

Caracteristicile sistemelor de gestiune a bazelor de date orientat obiect sunt:1. Manipularea obiectelor complexe. Tehnologia orientată obiect deţine metode şi tehnici pentru stăpânirea

eficientă a complexităţii (abstractizarea, încapsularea etc.). Noile tipuri de aplicaţii informatice generează obiecte complexe. Acestea

sunt obţinute prin aplicarea unor constructori (setul, lista ,înregistrarea etc.) asupra unor obiecte simple.

2. Identarea obiectelor. Limbajele de programare orientate obiect implementează caracteristica de

identitate a obiectelor. Identitatea este proprietatea unui obiect de a se distinge de altul şi este

modalitatea prin care SGBDOO identifică în mod unic un obiect (exemplu, Oracle atribuie identitate unică tuturor obiectelor sale). Identificatorul de obiecte poate fi logic sau fizic.

3. Încapsularea obiectelor. Încapsularea semnifică faptul că descrierea obiectelor se face astfel încât nu

se poate avea acces din afara obiectului la datele sale, decât autorizat. Necesitatea încapsulării obiectelor rezultă din: posibilitatea de a diferenţia

specificarea unei operaţii (apelul) de implemetarea acesteia (definirea) şi posibilitatea de a utiliza modularizarea ca tehnică de stăpânire a complexităţii.

4. Ierarhiile de clase (tipuri): Construirea ierarhiilor de clase conferă obiectelor caracteristica de

moştenire (capacitatea unui obiect de a-şi deriva datele şi funcţionalitatea dintr-un alt obiect).

Moştenirea contribuie la creşterea productivităţii activităţii de programare şi la învingerea complexităţii.

5. Suprapunerea. Caracteristica se referă la posibilitatea redefinirii aceleeaşi operaţii în mai

multe moduri şi poartă numele de suprapunere.6. Extensibilitatea. Tehnologia sistemelor deschise permite dezvoltarea unor aplicaţii

informatice capabile să se adapteze uşor la noile cerinţe care pot apărea. În SGBDOO trebuie să se permită utilizatorului definirea unor noi clase pe

lângă cele predefinite, necesare unor noi tipuri de aplicaţii (date).7. Completitudinea. Limbajul de manipulare din SGBDOO trebuie să permită exprimarea

tuturor situaţiilor posibile privind lucrul pe baza de date.

55

Page 54: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Trebuie să se îmbine puterea de regăsire a limbajelor neprocedurale cu puterea de exprimare a limbajelor procedurale.

8. Persistenţa. Persistenţa este proprietatea obiectelor de a avea o existenţă mai îndelungată

faţă de procesul care le-a creat. SGBDOO asigură persistenţa obiectelor prin stocarea lor în baza de date, în

memoria externă (eventual, obiectele pot fi şi denumite).9. Gestiunea memoriei. Obiectele pot fi stocate în memoria externă, dar şi în cea internă SGBDOO trebuie să deţină mecanisme pentru diferite moduri de adresare a

obiectelor din memoria internă şi externă (experienţa relaţională este foarte bună).10. Concurenţa în exploatare. SGBDOO trebuie să permită ca mai mulţi utilizatori să manipuleze, în

acelaşi timp, aceleaşi date. Lucrul într-un mediu distribuit trebuie să se extindă de la date şi la

proceduri. Acest lucru este facilitat de tendinţa de a se separa funcţiile de prelucrare de cele de stocare.

11. Tranzacţiile lungi. În sistemele relaţionale unitatea de prelucrare este tranzacţia (de dimensiuni

mici). Noile tipuri de aplicaţii, dezvoltarea cu SGBDOO, generează tranzacţii

lungi. Acestea, nu pot fi tratate cu mecanisme relaţionale şi de aceea se folosesc noi metode.

12. Gestiunea versurilor.SGBDOO trebuie să considere ca important faptul că stările succesive ale

obiectelor pot fi reutilizate în diferite aplicaţii.13. Modele diferite. Tendinţa este ca un SGBDOO să trateze separat stocarea datelor (definirea)

de prelucrarea datelor (manipularea). Pentru stocare se utilizează modelul de date orientat obiect. Pentru prelucrare se pot utiliza mai multe modele: imperativ, funcţional,

logic etc. Acest lucru rezultă din tipul de limbaj de programare orientat obiect utilizat în SGBD.

3.2. Arhitectura unui sistem de gestiunea bazelor de date orientat obiect

Arhitectura este o descriere grafică (abstractă) a organizării unui sistem, în scopul evidenţierii componentelor funcţionale şi a legăturilor dintre ele [19]

56

Page 55: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

SGBDOO este descris în termenii componentelor logice şi ai modulelor (software). Componentele sunt structurate pe trei niveluri funcţionale, necesare pentru dezvoltarea aplicaţiilor cu baze de date: instrumente utilizatori, gestionarul de obiecte, serverul de obiecte.

Fig. 1. Arhitectura funcţională a unui SGBDOO.[25]

În continuare se descrie pe scurt arhitectura de mai sus:1. Instrumente utilizator sunt produse software destinate tuturor categoriilor de

utilizatori pentru baza de date orientată obiect. Editoare (de texte, de grafice, de obiecte etc.); Navigatoare (browsere) (de clase, de obiecte etc.); Generatoare (dezvoltatoare); Elemente de CASE; Limbaje de programare orientate obiect; Interfeţe cu alte sisteme.

2. Gestionarul de obiecte asigură implementarea modelului de date orientat obiect. Funcţiile generatorului de obiecte sunt:

Definirea schemei bazei de date orientată obiect (definirea de clase, structurarea claselor în ierarhii, definirea de obiecte);

Actualizarea structurii bazei de date orientată obiect; Prelucrarea mesajelor (cererilor de regăsire).

3. Serverul de obiecte realizează accesul la baza de date orientată obiect. Funcţiile serverului de obiecte sunt:

Gestiunea tranzacţiilor (controlul concurenţial, gestiunea memoriei, refacerea etc.);

57

Utilizatori

SGBDOO

Instrumente utilizator

Gestionarul de obiecte

Server de obiecte

BDOO

Page 56: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Gestiunea fizică a stocului rezident de obiecte (alocarea, metodele de acces etc.);

Arhivarea.Având în vedere arhitectura funcţională a unui SGBDOO, componentele unui astfel

de sistem pot fi grupate în trei categorii corespunzătoare celor trei niveluri funcţionale.1. Componentele destinate utilizatorilor Limbajele de programare utilizate în SGBDOO sunt bazate pe un limbaj

gazdă orientat obiect (Smalltalk, C++, Java etc.), extins cu facilităţi de lucru cu baze de date. Un astfel de limbaj din SGBDOO va avea componentele: LDD, LMD, limbajul de cereri instantanee (inclus, de multe ori, în LMD).

Interfeţele şi instrumentele sunt componente software puse la dispoziţia tuturor categoriilor de utilizatori de către SGBDOO.

Scopul acestor componente este dat de următoarele aspecte: Suport pentru proiectarea aplicaţiilor cu BDOO (elemente de CASE); Suport pentru dezvoltarea aplicaţiilor cu BDOO (generatoare, asistenţi tip

Wizard); Utilitare de întreţinere şi comunicare (editoare, browsere, asistenţi tip

Wizard).2. Componente ale gestionarului de obiecte Prelucrarea mesajelor se realizează în paşii:

Controlul sesiunii de lucru; Legătura dinamică (implementarea polimorfismului); Crearea unor obiecte noi; Translatarea cererii de regăsire (transmiterea mesajelor pentru selectarea şi

regăsirea obiectelor); Transmiterea cerinţelor rezultate din prelucrarea mesajelor spre serverul de

obiecte. Prelucrarea schemei bazei de date este componenta din sistemul de gestiune

a bazelor de date orientate obiect care asigură suport pentru: Vizualizarea definirilor claselor de obiecte existente în stocul rezident (ca

dicţionar de date sau ca bibliotecă de clase); Extensibilitatea schemei bazei de date (actualizarea, copierea, extragerea

structurii bazei de date), asigurând caracteristica de moştenire; Redefinirea structurii bazei de date (datorită evoluţiei aplicaţiei).

3. Componente ale server-ului de obiecte Gestiunea tranzacţiilor într-un SGBDOO se realizeză cu ajutorul unor

mecanisme pentru rezolvarea cererilor de regăsire şi a actualizărilor pe baza de date: Controlul accesului concurent şi partajarea claselor de obiecte; Transferul obiectelor, din stocul rezident în zone de memorie internă ale

utilizatorului; Refacerea în caz de incidente; Prelucrarea tranzacţiilor cooperante (care comunică între ele); Reutilizarea (stocarea şi folosirea versiunilor de obiecte).

Gestiunea stocului rezident de obiecte se realizează la nivel fizic de către SGBDOO, asigurând:

Persistenţa obiectelor (prin metode de organizare şi metode de acces); Stocarea obiectelor mari şi de lungimi variabile (prin diferite tehnici, de

exemplu Binary Large OBject); Arhivarea;

58

Page 57: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Accesul optimizat la BDOO (indexarea pe baza identificatorului obiectului, indexarea după valorile unor variabile de instanţă, gruparea/ segmentarea obiectelor pe anumite zone de memorie externă).

Protecţia obiectelor trebuie asigurată de către SGBDOO sub cele două aspecte: securitatea (confidenţialitatea) şi integritatea (corectitudinea).

3.3.Avantajele şi limitele sistemelor de gestiune a bazelor de date orientate obiect

Avantajele sistemelor de gestiune a bazelor de date orientate obiect constă în:[20]1) Se pretează bine pentru aplicaţii de tip Internet şi multimedia, care

generează obiecte mari, complexe, multidimensionale.2) Implementează modelul orientat obiect care permite reprezentarea

obiectelor mari, complexe şi dinamice.3) Pot fi stocate şi prelucrate volume foarte mari de date, de o mare

complexitate şi de orice tip (clasic, multimedia etc.), adică oferă scalabilitate.4) Produc aplicaţii cu baze de date deschise, cu avantajele care rezultă din

caracteristicile implementate pentru obiecte (moştenirea, încapsularea, persistenţa, reutilizarea, identitatea etc.).

5) Creşterea productivităţii în programare prin reutilizare, precum şi noi tehnici de programare, alături de cele clasice.

6) Se asigură independenţa totală a datelor de programe (fizic şi logic).7) Tratează tranzacţii foarte lungi şi realizează cooperarea între tranzacţii.8) Distribuirea şi reutilizarea se aplică atât la nivel de date cât şi la nivel de

programe.Dezavantajele sau limitele sistemelor de gestiune a bazelor de date orientate obiect

constau în:1) Piaţa de utilizare rămâne încă redusă (în jur de 15% din aplicaţiile cu baze

de date) după mai mult de un deceniu de aplicabilitate. Încă se lucrează masiv cu sistemele relaţionale şi cele relaţional-obiectuale.

2) Nu au o fundamentare teoretică „solidă”.3) Nu au interfeţe performante pentru proiectarea asistată a bazei de date.4) Nu au un limbaj de programare standard propriu, unanim acceptat (aşa cum

este SQL pentru relaţional), dar există încercări (Object Querz Language – OQL, ObjectSQL etc.).

5) Interogarea se face greoi cu un mare consum de resurse de calcul.6) Nu există reguli (criterii) clare care să permită evaluarea unui sistem de

gestiune al bazelor de date orientate obiect.[24]

3.4.Prezentare Cache

Modelul pe obiecte Caché aderă la Standardul ODMG din Grupul de Administrare de Date pe Obiecte. Operaţiile fundamentale pentru Obiectele Caché se bazează pe clase de obiecte (care sunt definite în Arhitectul Obiectelor Caché sau direct în Limbajul de Definiţie a Clasei (CDL)) şi pe compilarea ulterioară a acestora ca executabile de rulare. Caché suportă toate principiile tehnologiei moderne pe obiecte pentru crearea, stocarea, încărcarea şi manevrarea exemplelor de obiecte:[20]

Moştenire – semnifică capacitatea de derivare a unei clase de obiecte dintr-o alta. Clasa nouă, subordonată, are o relaţie de „este o” cu clasa de nivel superior şi

59

Page 58: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

moşteneşte toate proprietăţile şi metodele generale. Acestea pot fi şi mai departe specializate, putând fi adăugate noi proprietăţi şi metode (care se aplică numai clasei derivate). De asemenea, obiectele Caché suportă moştenire multiplă, în care o clasă poate fi derivată din mai mult de o clasă de nivel superior.

Polimorfism – înseamnă că o metodă unică poate fi inclusă în obiecte de clase diferite, astfel că metoda se execută în mod diferit, după clasă. Polimorfismul face aplicaţiile pe Obiecte Caché complet independente de implementarea internă a metodelor în fiecare clasă de obiecte.

Persistenţa este cea mai importantă proprietate a unei baze de date orientate pe obiecte. Aceasta înseamnă că obiectele sunt permanent înregistrate pe mijloace de stocare şi pot fi recuperate rapid şi uşor atunci când este nevoie. Obiectele Caché suportă mai multe tipuri de persistenţă a obiectelor – stocare automată în model Caché de date multidimensionale, stocare definită de utilizator în structuri arbitrare, precum şi stocare utilizând dispozitivul de conectare SQL Caché în tabele de baze de date relaţionale externe. Aceasta permite proiectanţilor să aleagă soluţia optimă de stocare pentru fiecare clasă, în funcţie de situaţia clientului.

În plus faţă de aceste concepte fundamentale, modelul orientat obiect Caché are următoarele caracteristici:

Clasele sunt determinate prin definiţii de clasă stocate în directorul de clasă. Elementele de bază sunt obiectele şi simboluri literale (tipuri de date). Obiectele

au identificatori unici, care sunt independenţi de starea internă a obiectului. Un simbol literal are o valoare, însă nu un identificator.

Clasele pot conţine proprietăţi. Valorile proprietăţilor unui obiect determină starea acestuia. Obiectele Caché oferă utilizatorului un control direct pentru accesul la proprietăţi şi validarea acestora.

Proprietăţile pot fi simboluri literale, referiri la obiecte, obiecte inserate, mulţimi ale acestora ori relaţii bidirecţionale între obiecte persistente.

Clasele pot conţine metode care definesc operaţiile ce se pot executa pentru un obiect specific sau o clasă de obiecte.

Clasele pot conţine generatoare de metode. Aceste metode speciale sunt utilizate pentru compilarea claselor în scopul generării codului metodei reale pe care clasa îl foloseşte la rulare.

Caché poate administra în mod automat mai multe caracteristici de comportare generală a obiectelor (clase înregistrate). Alternativ, utilizatorul poate defini pe larg comportarea (clase neînregistrate).

Obiectele Caché stochează obiecte persistente în baza de date, utilizând o strategie de stocare specificată de utilizator.

Clasele pot fi în continuare specializate utilizând cuvinte cheie şi parametri suplimentari.

Obiectele Caché constau în următoarele componente:1) Arhitectul obiectelor Cache – este un mediu de proiectare a Graphical

User Interface integrat, destinat definirii claselor, a proprietăţilor şi metodelor acestora. Arhitectul obiectelor generează Limbajul de Definire a Clasei (CDL) pentru a reprezenta aceste definiţii, pe care proiectanţii le pot de asemenea utiliza direct în descrierea claselor Cache.

2) Dicţionarul clasei – serveşte drept depozitar universal şi conţine definiţiile tuturor claselor Cache. Sistemul obiectelor Cache rămase utilizează un API (Interfaţa cu Programul Aplicaţiei) pentru a comunica cu dicţionarul clasei. Dicţionarul Clasei poate fi creat cu Arhitectul obiectelor Cache sau generat din CDL, DDL sau alte formate de fişier. De asemenea, poate fi exportat în diverse formate.

60

Page 59: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

3) Compilatorul clasei – compilează o definiţie de clasă în cod de aplicaţie care poate fi executat ca module rulare.

4) Macro Preprocesorul – prelucrează întregul cod al sursei scris în ObjectScript Cache. Este responsabil pentru rezolvarea macros-ilor şi SQL inserat, precum şi cu înlocuirea acestora cu cod ObjectScript Cache valid.

5) Serverul de obiecte Cache pentru ActiveX – este un Server de Automatizare ActiveX care reprezintă extern obiecte Cache drept obiecte de origine ActiveX. Utilizarea interfeţei ActiveX face posibil ca instrumente de dezvoltare cum ar fi Visual Basic, C++ etc. Să lucreze cu obiecte Cache, să le seteze proprietăţile şi să le execute metodele.

6) Serverul de Obiecte Cache pentru Java – disponibilizează obiectele Cache pentru aplicaţii Java.

Caché face întotdeauna diferenţa între clasele de tip date şi clasele de obiecte. Clasele de tip date reprezintă simboluri literale, cum ar fi şiruri de caractere, numere întregi şi alte tipuri de date definite de utilizator.

Fig. 2. Tipuri de clase Caché[21]

Clasele de obiecte conţin obiecte şi sunt în continuare subdivizate în clase înregistrate şi neînregistrate. Clasele neînregistrate nu oferă propria comportare; mai precis, operatorul trebuie să creeze toate metodele. Dimpotrivă, Caché oferă clase înregistrate cu un set cuprinzător de funcţii încorporate. De exemplu, metoda %New () creează un nou exemplu al unei clase, iar %Close() şterge una din memorie.

O clasă de obiecte înregistrată este tranzitorie, în sensul că nu are nici un cod care să necesite stocare într-o bază de date. Caché creează automat metodele de stocare pentru clase inserabile şi persistente.

Având în vedere că obiectele de clase inserabile pot fi stocate numai inserate într-un obiect persistent, obiectele persistente au propriul identificator de obiect şi astfel pot fi stocate independent în baza de date.

Clasele de tip date sunt clase speciale care definesc şi menţin valori literale. Contrar claselor de obiecte, tipurile de date nu au identitate independentă şi nu pot fi exemplificate. Ele există numai ca atribute pentru obiectele care conţin aceste simboluri literale. Clasele de tip date oferă un set specific de metode pentru validarea şi conversia valorilor. Ele nu pot conţine proprietăţi.

61

Classes

Data Type Classes

Object Classes

Non-registered Classes

Registered Classes

Embeddable Classes

Persistent Classes

Page 60: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

O clasă de obiecte defineşte structura datelor şi comportarea obiectelor unui tip. Aceste obiecte sunt numite exemple ale clasei asociate lor; crearea unui obiect se numeşte exemplificare. Fiecare clasă de obiecte are un nume de clasă unic şi proprietăţi, metode şi cuvinte cheie care determină comportarea generală a clasei.

Clase de obiecte neînregistrate – Caché nu administrează în mod automat exemplele de clase neînregistrate. Aici, operatorul este responsabil cu furnizarea şi administrarea identificatorului de obiect (OID) şi a referinţei obiectului (OREF). Deoarece OREF-uri auto-administrate nu sunt înregistrate în Caché, clasele neînregistrate au unele limitări:

Sistemul nu alocă stocare pentru valorile obiectului. Swizzling (reîncărcarea automată a obiectelor indicate) nu este suportată. Polimorfismul nu este suportat. Variabilele care conţin referiri la obiectele neînregistrate trebuie declarate

explicit odată cu tipul de clasă asociată.Clasele de obiecte înregistrate au un set complet de metode care controlează

comportarea obiectelor în stocare. Ele moştenesc automat aceste metode de la clasa sistemului %Library.RegisteredObject. Deoarece exemplele de clase de obiecte înregistrate există numai temporar în zona de memorie a unui proces, acestea sunt numite obiecte tranzitorii. Dimpotrivă, clasele de obiecte inserabile şi persistente descrise în următoarele două paragrafe sunt stocate permanent în baza de date.

Caché se ocupă de crearea de noi obiecte înregistrate şi de administrarea spaţiului de stocare. De asemenea, asigură o referire la obiect (OREF) care poate indica obiectul în memorie. Clasele înregistrate suportă polimorfismul.

Clasele de obiecte inserabile – exemplele de clase de obiecte inserabile pot fi stocate temporar în memorie şi totodată permanent în baza de date. Aceste clase moştenesc comportarea de la clasa sistemului Caché %Library.SerialObject. Această comportare permite exemplelor să existe în memorie independent de alte obiecte. Oricum, ele pot fi stocate în baza de date numai inserate în alte obiecte.

Caché furnizează claselor de obiecte inserabile două capacităţi: Capacitatea de a crea un şir de caractere care conţine starea completă (valorile

tuturor proprietăţilor) unui obiect. Crearea acestui şir de caractere se numeşte serializare. Capacitatea de a citi în mod automat acest şir de caractere serializat din baza de

date atunci când este nevoie şi de a-l reprezenta în memorie ca obiect independent. Această reîncărcare automată a obiectelor asociate se numeşte swizzling.

Comparativ cu baza de date, obiectele inserate sunt tratate diferit în memorie: Un obiect inserat în memorie este tratat ca obiect separat şi nu diferă de o

referire la orice alt tip de obiect. Valoarea unui obiect inserat în memorie este referinţa obiectului (OREF) la reprezentarea obiectului în memorie.

Un obiect inserat în baza de date este stocat serializat, ca parte a obiectului care îl include. Obiectul nu are propria identitate (OID) şi nu poate fi folosit de alte obiecte fără obiectul care îl include.

62

Page 61: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 3. Clasa obiectelor inserate în “Proprietar”

O clasă de obiecte „Animal” serveşte aici drept exemplu. Un animal are proprietăţi precum „Nume” şi „Rasă”, precum şi un proprietar cu „Nume” şi „CNP”. Desigur, puteţi defini aceste atribute ale adresei direct, ca un număr de proprietăţi ale clasei „Animale”. Iniţial, acest lucru apare logic deoarece proprietarul reprezintă şi o proprietate a animalului şi nu ar trebui să existe independent de acesta. Ca urmare, odată definit conceptul de „Proprietar”, reutilizarea lui este permisă în diverse clase de obiecte.

Aceasta se realizează atunci când definiţia clasei „Animal” include o clasă de obiecte „Proprietar” definită în prealabil. Pentru un singur lucru, clasa de obiecte „Proprietar” poate fi folosită şi în clasa „Medicamente”, şi astfel să creeze un standard pentru dezvoltarea aplicaţiei. Pentru un altul, efortul de modificare este minimizat în cazul în care formatul CNP-ului se schimbă sau este necesară adăugarea unei noi proprietăţi (cum ar fi, de exemplu, „e-mail”).

Clasele de obiecte persistente au o comportare cuprinzătoare pentru stocarea permanentă a exemplelor lor în baza de date. Ele moştenesc aceste comportări de la clasa sistemului Caché %Library.Persistent.

Obiectele persistente au o identitate de obiect şi un identificator unic de obiect (OID). Fiecare obiect persistent poate fi stocat în Caché în mod independent. Atunci când un obiect persistent este utilizat ca proprietate a unei clase de obiecte, acest lucru se numeşte referire la un obiect persistent.

63

Animal

Name

Rasă

Proprietar

Nume

CNP

Page 62: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 4.Referirea la obiectul persistent „Animale”

Astfel, de exemplu, proprietarul unui animal este definit ca o clasă de obiecte persistente „Animale”. Dacă daţi proprietăţii „Proprietar” a clasei „Animale” tipul „Proprietar”, faceţi referire la un obiect persistent. Fiecare exemplu de clasă „Animale” se poate acum referi la un exemplu de clasă „Proprietar”. Oricum, fiecare proprietar există independent de referirea sau nu la el şi de numărul de animale folosit ca referinţă.

Din punctul de vedere al clasei „Animale”, proprietăţile şi metodele proprietarului la care se face referire pot fi utilizate în acelaşi mod ca şi propriile proprietăţi şi metode. Atunci când este nevoie, Caché aduce în memorie obiectele la care se face referire, utilizând o tehnică numită swizzling.

O definiţie de clasă determină tipul clasei şi comportarea acesteia. Această definiţie constă întotdeauna în proprietăţile şi metodele clasei. Clasele de tipuri de date nu pot fi exemplificate, astfel că ele posedă metode, însă nu şi proprietăţi. Oricum, definiţia completă a unei clase necesită elemente funcţionale suplimentare, cum ar fi interogările şi indicii, precum şi parametri şi cuvinte cheie de definiţie. Lista completă a elementelor unei definiţii de clasă (numite laolaltă membri ai clasei) include:

un nume de clasă unic; cuvinte cheie – un număr de cuvinte cheie care modifică definiţia clasei; proprietăţi – acestea conţin datele (numite şi stare) exemplelor unei clase.

Proprietăţile pot fi simboluri numerice, referiri la obiecte persistente, referiri la obiecte inserate sau relaţii între obiecte persistente. Clasele de tipuri de date nu conţin nici un fel de proprietăţi;

metode – codul care asigură funcţionalitatea; parametri – valori care modifică comportarea clasei în timpul compilării

(utilizând de obicei generatoare de metode); interogări – setează operaţiile pe exemple de obiecte; indici – structuri de stocare care optimizează accesul la obiecte;Fiecare element al unei clase este identificat printr-un nume unic. Deşi Obiectele

Caché suportă caractere alfabetice majuscule şi minuscule (pentru a mări capacitatea de a fi citite), acestea uniformizează numele la caractere majuscule. Astfel, convenţiile de

64

Animale

Nume

Rasă

ProprietarProprietar

Vârstă

Hrană

Boli

Proprietar

Nume

Prenume

Adresă

CNP

Page 63: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

numire trebuie să ţină cont de acest lucru. Numele precedate de caracterul % sunt rezervate claselor de sistem.

Fig. 5. Elementele clasei[21]

Cuvintele cheie – un număr de cuvinte cheie pot modifica definiţia unei clase. Toate cuvintele cheie sunt opţionale şi au o valoare implicită atunci când sunt omise.

Cuvintele cheie sunt necesare în primul rând pentru dezvoltarea definiţiei clasei utilizând Limbajul Caché de Definiţie a Clasei (CDL). Deoarece Arhitectul Obiectelor Caché reprezintă cuvintele cheie cu comenzi de interfaţă cu utilizatorul (precum câmpuri de selectare, casete de bifare etc.), nu este nevoie să vă amintiţi numele cuvintelor cheie.

În plus faţă de cuvintele cheie pentru clase, modelul pe obiecte Caché are, de asemenea, cuvinte cheie pentru proprietăţi, metode, interogări şi indici.

Proprietăţile reprezintă starea unui obiect. La reprezentarea stării cu valori incluse (fie valori literale, fie referiri la obiecte), ele se numesc atribute. Alternativ, proprietăţile pot fi utilizate ca relaţii pentru menţinerea conexiunilor bidirecţionale dintre obiecte persistente. Modelul orientat pe obiecte Caché şi definiţiile clasei sale permit accesul şi manipularea ambelor feluri de proprietăţi.

Unele limbaje orientate pe obiect – precum Java şi C++ – nu suportă un concept al proprietăţilor echivalent. În schimb, aceste limbaje suportă o combinaţie de variabile particulare şi metode publice care se folosesc pentru accesarea proprietăţilor. Caché asigură un model pe obiecte bogat, cu proprietăţi publice în conformitate cu următoarele principii:

Proprietăţile pot fi simboluri literale, referiri la obiecte persistente, obiecte inserate, lanţuri (cunoscute şi ca obiecte mari binare sau BLOB-uri), mulţimi de simboluri literale ori obiecte sau relaţii între obiecte persistente.

Proprietăţile au un set de metode create în mod automat, utilizate pentru validarea şi stocarea valorilor.

Conversiile de format transparent şi alte transformări de date se pot efectua în timpul accesului la valorile proprietăţilor şi stocării lor.

Obiectele la care se face referire şi cele inserate sunt aduse automat în memorie atunci când se execută un acces la proprietăţile asociate (numit swizzling).

Proprietăţile au un nume unic, un tip de date, o listă opţională de cuvinte cheie şi o listă opţională de parametri valizi pentru fiecare tip de date.

Proprietăţile pot fi indicate fie ca publice, fie ca particulare. Atunci când o proprietate este particulară, numai metodele aceleiaşi clase de obiecte ca şi proprietatea o

65

Class

Properties

Methods

Parameters

Queries

Indexes

Page 64: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

pot accesa. Proprietăţile publice – aceasta este setarea implicită – pot fi accesate fără restricţie.

Proprietăţile particulare sunt moştenite şi sunt de asemenea vizibile în cadrul subclaselor. Alte limbaje pot numi această comportare protejată.

Un număr de metode sunt în mod automat asociate cu proprietăţile. Aceste metode nu sunt derivate utilizând simpla moştenire. Mai precis, Caché are un mecanism special de creare a acestor metode de proprietăţi speciale.

Fiecare proprietate moşteneşte propriul set de metode din două surse diferite: Comportarea generală, care depinde de tipul proprietăţii, este moştenită de

la o clasă de proprietăţi. Acestea sunt, de exemplu, Get(), Set() şi metode de validare. Comportarea specifică tipului, care depinde de tipul de date ale proprietăţii,

este moştenită de la o clasă de tipuri de date. Multe dintre aceste metode sunt generatoare de metode care, de exemplu, permit şi o valoare minimă şi maximă de specificat pentru o proprietate de tip Integrator.

Fig. 6. Compilatorul clasei şi comportarea proprietăţilor[23]

Toate clasele de proprietăţi sunt clase de sisteme. Utilizatorul nu poate specifica sau modifica comportarea acestor clase.

Caché suportă un număr nelimitat de tipuri de date pentru proprietăţile claselor de obiecte, unde fiecare tip de date reprezintă de asemenea o clasă. Proiectanţii pot implementa propriile tipuri de date (aşa-numitele Tipuri de Date Avansate sau ADT-uri) prin definirea claselor de tipuri de date corespunzătoare. Clasele de tipuri de date controlează şi comportarea proprietăţilor obiectelor atunci când acestea sunt reprezentate ca şi coloane ale tabelelor relaţionale care folosesc SQL.

Clasele de tipuri de date oferă următoarea funcţionalitate: Efectuează conversiile necesare ale valorilor literale dintre formatele de

stocare (în baza de date), logice şi de afişare. Validează valorile literale, astfel încât parametrii claselor de tipuri de date le

pot în continuare specializate. Asigură interoperabilitatea cu SQL, ODBC, ActiveX şi Java furnizând

operaţiile logice şi transformările de date necesare.

66

User Class

Class Compiler

Generated Code

Property Class

Data Type Class

Page 65: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Deşi tipurile de date constituie o formă specială a unei definiţii de clasă, există diferenţe fundamentale comparativ cu clasele de obiecte:

Clasele de tipuri de date nu pot fi utilizate pentru a forma exemple. Clasele de tipuri de date nu pot conţine proprietăţi. Interfaţa de tip de date ascunde metodele claselor de tipuri de date.Caché face distincţie în prelucrarea simbolurilor literale între patru formate diferite

de date. Caché asigură în mod automat metodele de transformare corespunzătoare pentru

tipurile de date de bază furnizate. În cazul în care un operator defineşte o nouă clasă de tipuri de date, oricum operatorul trebuie să îi dea următoarele metode de transformare:

Tabel 1. Metode de transformare pentru tipuri de date

Metodă SemnificaţieDisplayToLogical() Transformă o valoare afişabilă în format intern.LogicalToDisplay() Transformă o valoare internă în format de afişaj.LogicalToOdbc() Transformă o valoare internă în format ODBC (opţional).OdbcToLogical() Transformă o valoare ODBC în format intern (opţional).LogicalToStorage() Transformă o valoare internă în format de bază de date (opţional).StorageToLogical() Transformă o valoare de bază de date în format intern (opţional)

Aceste metode servesc drept bază pentru crearea metodelor proprietăţilor în clasele de obiecte asociate.

În plus faţă de metodele de transformare, fiecare clasă de tipuri de date are şi o metodă IsValid() care verifică dacă o valoare specificată este sau nu validă pentru tipul de date respectiv. Primul caracter al valorii returnate de metodă conţine 1 (pentru „valid”) sau 0 (pentru „invalid”).

Atunci când tipul de date este utilizat în scopul definirii unei proprietăţi pentru o clasă de obiecte, Caché creează o metodă de proprietăţi adecvată. Caché invocă automat această metodă de proprietăţi pentru a valida valorile.

Definiţia tipurilor de date capătă importanţă specială atunci când datele sunt schimbate cu alte aplicaţii care utilizează Java, ActiveX, ODBC sau SQL.

Mai precis, aceasta presupune ca tipul de date al tipului de aplicaţie asociat să fie definit pentru fiecare tip de date Caché. Anumite cuvinte cheie sunt utilizate în clasele de tip date Caché pentru acest scop.

Tabel 2. Cuvinte cheie pentru clasele de tipuri de date[23]

Cuvânt cheie SemnificaţieCLIENTDATATYPE Specifică tipul de date în care valorile se vor afişa pentru clienţi

Java sau ActiveX.ODBCTYPE Specifică tipul de date ODBC care se va folosi pentru a schimba

valori utilizând ODBC.SQLCATEGORY Defineşte categorie SQL pe care SQL Tools o foloseşte la

compararea datelor, sortare etc.Există o convenţie privind modul în care Caché defineşte proprietăţile cu valori cu

opţiuni multiple (cu alte cuvinte, aşa-numitele atribute enumerate, care sunt selectate dintr-o listă de valori pre-definite). Tabelul de mai jos ilustrează această tehnică folosind parametrii de clasă VALUELIST şi DISPLAYLIST drept exemple:

67

Page 66: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Tabel 3. Parametrii de clasă VALUELIST şi DISPLAYLIST[23]

Parametru de clasă SemnificaţieVALUELIST Acesta conţine lista de valori interne. Primul caracter al listei este şi

delimitatorul. Exemplu: “C*M*Y*K” DISPLAYLIST Acesta conţine lista valorilor care pot fi afişate. Primul caracter al

listei este şi delimitatorul. Exemplu: “,cyan,magenta,yellow,black”Valorile cu opţiuni multiple funcţionează prin convenţie, ceea ce înseamnă că

metodele scrise de utilizator LogicalToDisplay(), DisplayToLogical() şi IsValidDT() trebuie să verifice existenţa celor doi parametri de clasă şi să utilizeze listele lor de valori. Metodele pentru clasele de tipuri de date Caché încorporate funcţionează în mod corespunzător.

Proprietăţile pot fi simboluri literale (adică valori simple ale tipurilor de date), precum şi referiri la obiecte, obiecte inserate, lanţuri (BLOB-uri), diverse tipuri de mulţimi sau valori multidimensionale ori relaţii bidirecţionale între obiecte persistente.

Simboluri literale – în forma sa cea mai simplă, o proprietate poate avea tipul %Library.Integer, %Library.Date, %Library.String sau orice altă clasă de tipuri de date încorporate sau clasă de tipuri de date definite de utilizator. Clasa de tipuri de date legată de proprietate controlează comportarea acestor simboluri literale.

Majoritatea claselor de tipuri de date conţin de asemenea parametri care specializează în continuare tipul de date. De exemplu, utilizând Limbajul de Definiţie a Clasei (CDL), puteţi specifica valoarea maximă a unei proprietăţi a variabilei independente Count ca fiind 100, similar exemplului de mai jos:

attribute Count { type = %Library.Integer(MAXVAL=100); }Referiri la obiecte – fiecare clasă este un tip de date valid în Caché. Dacă (în locul

unei clase de tipuri de date) definiţi o proprietate folosind o clasă persistentă, faceţi o referire la un obiect persistent. În acest caz, valorile proprietăţii sunt referiri la exemplele clasei de obiecte. De exemplu, puteţi defini o proprietate Manufacturer care face o referire la o clasă de obiecte persistente User.Manufacturer:

attribute Manufacturer { type = User.Manufacturer; }Obiecte inserat – obiectele inserate funcţionează într-un mod care se aseamănă cu

referirile la obiecte. Principala diferenţă este că, fiind un tip de date, acestea folosesc o clasă de obiecte inserate în locul unei clase de obiecte persistente.În mod similar, valorile acestei proprietăţi fac referire la obiectul corespunzător inserat în obiectul care face referirea în locul unui exemplu de obiect independent. Sintactic, definiţia este identică cu o referire la o clasă de obiecte:

attribute Address { type = User.Address; }Lanţuri - un lanţ (numit şi obiect mare binar (BLOB)) este un obiect de date

nestructurat, mare, care este stocat în baza de date. Lanţurile sunt utilizate, de exemplu, pentru a stoca documente, desene tehnice şi poze. Deoarece pot fi foarte mari, Caché nu tratează lanţurile ca informaţii atomice; în schimb, Caché asigură metode pe care aplicaţiile le pot utiliza pentru a citi şi scrie datele într-o formă orientată pe blocuri. Conform conţinutului lor, Caché face distincţie între lanţurile de tipul CHARACTERSTREAM (constând în caractere) şi BINARYSTREAM (constând în date binare).

În funcţie de definiţia unei proprietăţi, Caché stocehază automat lanţuri în baza de date sau în fişiere la nivel de sistem de operare. Setarea paramterului STORAGE la valoarea GLOBAL sau FILE face această diferenţă. Setând parametrul LOCATION, puteţi specifica numele directorului global al bazei de date sau al directorului de sistem al fişierului unde doriţi ca lanţurile să fie salvate.

68

Page 67: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Un lanţ reprezintă întotdeauna un simbol literal şi nu un obiect independent. Aceasta înseamnă că la acelaşi lanţ nu se pot referi două obiecte. (Oricum, este posibil ca două obiecte sau aibă valori identice pentru un lanţ.)

Mulţimi – caché reprezintă proprietăţi cu valori repetate, cum sunt mulţimile. Există două feluri: mulţimi de grupuri (sortate utilizând o cheie) şi mulţimi de liste (liste structurate succesiv). Mulţimile pot conţine simboluri literale, obiecte inserate şi referiri la obiecte.

Relaţii – sunt conexiuni bidirecţionale între obiecte persistente. În multe privinţe, o relaţie este asemănătoare cu două obiecte persistente care utilizează referinţe pentru a se referi una la cealaltă. Oricum, relaţiile garantează în mod automat integritatea referenţială, astfel încât ştergerea unui obiect nu are ca rezultat referirea altuia la un obiect neexistent.

Modelul pe obiecte Caché oferă utilizatorilor control asupra stocării valorilor pentru proprietăţile de obiecte. Prin setare implicită, Caché stochează valoarea unei proprietăţi – indiferent dacă simbol literal, obiect inserat sau referire la un obiect persistent – ca parte a reprezentării pe disc a obiectului. Valoarea este de asemenea parte a unei reprezentări de obiect în memorie. Însă valoarea ca format diferit per locaţie. Valoarea este stocată pe disc într-un format de stocare, în timp ce reprezentarea acesteia în memorie este într-un format intern sau logic.

Cele două formate sunt de obicei identice. Chiar şi aşa, reprezentarea unui exemplu de obiect în baza de date poate diferi complet de reprezentarea în memorie. Mai mult, utilizarea diverselor cuvinte cheie pentru proprietăţi poate afecta formatul valorii atât în stocare, cât şi în memorie.

Metode – desemnează operaţiile pe care le poate executa un obiect sau o clasă de obiecte. Fiecare metodă are o denumire unic, o specificaţie formală a variabilelor sale independent şi o valoare de răspuns, precum şi codul metodei.

Parametrii de clasă – sunt constante, şi anume valori care sunt definite pentru toate obiectele unei clase atunci când clasa este definită. Valoarea parametrilor de clasă nu poate fi modificată la rulare.

Contrar proprietăţilor, parametrii de clasă pot fi utilizaţi în cadrul metodelor de clasă. Valorile parametrilor de clasă sunt moştenite şi valorile pot fi suprascrise sau extinse cu parametri de clasă suplimentari în clase derivate.

Generatoarele de metodă utilizează de obicei parametri de clasă în timpul compilării. Generatoarele de metodă utilizează parametri de clasă pentru a controla generarea metodelor şi, opţional, pentru a specializa comportarea tipurilor de date.

Fiecare clasă înregistrată de obiecte are, de exemplu, un parametru de clasă PROPERTYVALIDATION. Acesta specifică dacă şi când (dacă este cazul) vor fi validate valorile proprietăţilor. Parametrul de clasă PROPERTYVALIDATION poate avea una din trei valori:

0 înseamnă „fără validare” 1 înseamnă „validare la actualizare” 2 este setarea implicită şi înseamnă „validare la salvare”Dacă modificaţi aceşti parametri de clasă şi recompilaţi clasa, generatoarele de

metodă introduc codul de validare corespunzător la locaţia de corecţie. Astfel, parametrii de clasă sunt utilizaţi pentru a adapta comportarea claselor la cerinţele speciale ale aplicaţiei.

Interogări – oferă operaţii de set la exemplele claselor de obiecte. Dacă consideraţi toate exemplele unei clase ca fiind un set total, iar rezultatul unei interogări ca un subset specific al acestui superset, puteţi vedea că interogările formează un filtru pentru obiecte.

Puteţi scrie interogări fie în ObjectScript Caché, fie în SQL. Arhitectul Obiectelor Caché conţine un Wizard Query SQL prietenos, care vă ajută să creaţi interogări SQL

69

Page 68: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

rapid şi uşor.Caché grupează rezultatele unei interogări ca un set de rezultate, care reprezintă o interfaţă specială pentru prelucrarea rezultatelor interogării în ObjectScript Caché, ActiveX sau Java. Interogările pot fi reprezentate şi ca SQL Stored Procedures sau views şi astfel pot fi în continuare prelucrate cu SQL.

Indici – reprezintă o cale de acces la exemplele unei clase. Indicii optimizează prelucrarea interogărilor atunci când sunt executaţi. În mod normal, indicii se aplică tuturor exemplelor unei clase şi a subclaselor acesteia. Astfel, indicele unei clase Person (care are o subclasă Student) acoperă atât persoanele, cât şi studenţii. Chiar şi aşa, un indice al subclasei Student ar conţine numai studenţi. Fiecare indice este sortat în funcţie de una sau mai multe proprietăţi ale unei clase de obiecte, care defineşte criteriile de sortare. Posibilele criterii de sortare includ:

EXACT (exact ca specificarea) UPPER (normalizat la caractere majuscule) ALPHAUP (normalizat la caractere majuscule şi toate semnele de

punctuaţie îndepărtate) SPACE (sortare alfabetică forţată, chiar pentru numere) PLUS (sortare alfabetică forţată, chiar pentru lanţuri) MINUS (sortare numerică inversă)În plus faţă de aplicarea proprietăţilor la sortare, indicii pot include proprietăţi

suplimentare, cum ar fi câmpurile de date. Aceasta face valorile lor accesibile de la indice, ceea ce poate îmbunătăţi performanţa prin evitarea accesărilor datelor suplimentare.

Moştenire – este o tehnică orientată pe obiecte, pentru care definiţiile existente ale claselor pot fi reutilizate într-o ierarhie a claselor ramificată şi cu specializare în creştere. Modelul pe obiecte Caché suportă toate aspectele moştenirii unice şi multiple.

O clasă moşteneşte toate specificaţiile superclasei sale, inclusiv proprietăţile, metodele, parametrii de clasă şi cuvintele cheie. În plus faţă de metodele superclasei, fiecare clasă moşteneşte, de asemenea, metode de proprietăţi speciale de la clasele de sisteme care determină comportarea proprietăţilor în general şi tipurile de date în particular. Noile elemente pot fi adăugate unei subclase, iar elementele moştenite pot fi modificate – cu condiţia ca acestea să nu fi fost denumite ca Final. Notaţi că elementele moştenite nu pot fi şterse dintr-o subclasă.

Clase de compilare – compilatorul de clasă pentru Obiecte Caché compilează definiţii de clasă în subprograme de aplicaţii executabile. O clasă trebuie compilată înainte de a putea fi folosită.

Compilatorul de clasă vă permite să selectaţi numai clasele pe care le doriţi compilate. Puteţi specifica o singură clasă, numai clasele modificate sau toate clasele. Dacă este compilată o singură clasă, compilatorul de clasă verifică întâi dacă superclasele pentru această clasă s-au modificat de la ultima compilare (sau nu au fost niciodată compilate). Dacă este necesar, acele clase modificate de la care este moştenită clasa care se va compila sunt de asemenea compilate în mod automat.

70

Page 69: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

3.5. Comparaţie între Cache, MS SQL şi MS Access

O comparaţie între cele 3 soft-uri este reprezentată în tabelul 4:

Tabel 4. Comparaţie între Cache, MS SQL şi MS Access[22]

Indicatori Cache MS SQL Server MS AccessSQL Acces Da Da DaSuport mare de structuri de date

Da Da Da

Viteza de grupare şi rezumare a datelor

Mică Ridicată Medie

Suport de OLAP Nu Da NuViteza de salvare a tranzacţiilor

Ridicată Medie Mică

Problema cheie a rolului DBMS este de a căuta şi de a găsi un compromis între un obiectiv de mare viteza de tranzacţii şi de mare viteză de analiză în procesele de management. Cei mai mulţi experţi IT preferă DBMS-urile populare precum Oracle, MS Access, InterBase, DB2, MS SQL Server.

71

Page 70: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

4. Proiectarea sistemului de asistare a deciziei pentru cabinetul veterinar TRIVET

Cache este un sistem de gestiune a bazelor de date postrelaţional. Astfel, Cache este pe de o parte un SGBD relaţional complet. Toate datele stocate în cadrul bazelor de date Cache sunt disponibile sub forma unor tabele relaţionale, putând fi modificate şi interogate folosind SQL. Pe de altă parte, Cache dispune de o serie de caracteristici ce depăşesc limitele unui SGBDR (abilitatea de a modela datele sub forma obiectelor, posibilitatea de a crea tipuri de date proprii, abilitatea de a beneficia de caracteristicile unui SGBDOO: moştenire, polimorfism etc.)

O aplicaţie web Cache constă în: un set de pagini web, care definesc ceea ce utilizatorul vede de fapt;

codul aplicaţiei, care este responsabil cu rezolvarea cererilor utilizatorului, cu procesarea părţii logice a aplicaţiei, şi cu stocarea şi regăsirea datelor;

Datele, care sunt stocate pe server şi includ informaţii relativ statice;

Codul se poate scrie direct, de mână, dar de obicei, acesta nu reprezintă decât o mică fracţiune din totalul codului, cea mai mare parte a codului dintr-o aplicaţie fiind generat automat, pe baza specificaţiilor programatorului, cu ajutorul asistenţilor Caché.

Cache permite definirea claselor în două moduri: folosind utilitarul Cache Studio; utilizând limbajul Class Definition Language (CDL).Autorul a realizat o aplicaţie în Cache care stochează informaţii despre cabinetul

veterinar „TRIVET”. Aplicaţia conţine 9 clase, şi anume: Animale, Boli, Diverse, FurnizorHrană, Medicamente, ProducătorMedicamente, Proprietar, Rasă.

În primul rând s-a creat clasa Animale, ce conţine proprietăţile: Nume, Rasă, Proprietar, Vârstă, Hrană şi Boli.

Cea mai uşoară metodă de definire a unei clase este cu ajutorul Caché Studio. Pentru a deschide utilitarul Cache Studio, se selectează opţiunea Studio, se alege din meniul Programs/Cache/Studio, după ce în prealabil aplicaţia a fost deschisă alegând din acelaşi meniu opţiunea Start Cache.

Când se deschide Studio, acesta încearcă să se conecteze la ultimul proiect şi spaţiu de lucru folosit. Pentru a schimba spaţiul de lucru în care s-a lucrat ultima dată se foloseşte comanda Change Namespace din meniul File.

Caché Studio este o aplicaţie Windows standard, care foloseşte un număr de ferestre pentru a afişa şi a permite editarea diferitelor aspecte. Principalele componente ale interfeţei cu utilizatorul ale Caché Studio sunt:

1. editorul de clase/rutine/fişiere CSP;2. vizualizarea proiectului afişează conţinutul proiectului curent în structură

arborescentă; 3. inspectorul de clasă;4. fereastra de mesaje.

72

Pagini

Cod

Date

Page 71: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

4.1. Definirea unui clase

Pentru a defini o nouă clasă, se alege comanda New din meniul File, deschizându-se fereastra de dialog Studio's New, din care se alege opţiunea Caché Class Definition şi se apasă pe butonul OK.

Fig. 1. Meniul File

Fig. 2. Fereastra de dialog Studio's New

73

Page 72: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Aceasta va încărca fereastra New Class Wizard, în care trebuie să se atribuie

clasa unui pachet , să îi dea un nume şi, opţional, o descriere a clasei respective

.Un pachet este doar o modalitate de a grupa clasele care se referă la aceeaşi

aplicaţie. Pentru a crea un nou pachet, nu trebuie decât să se scrie un nume nou în rubrica corespunzătoare. După aceasta, de fiecare dată când se doreşte utilizarea acestui pachet, se selectează numele dorit din lista care apare la apăsarea butonului Browse.

Fig. 3. Fereastra New Class Wizard

74

Page 73: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 4.Fereastra Class Wizard

În fereastra următoare, programatorul trebuie să indice tipul clasei pe care doreşte să-o creeze (clasa persistentă, clasa inserabilă, înregistrată, abstractă, tip de date, clasă CSP sau subclasă). Se alege ca tip clasa persistentă adică acea clasă care poate fi stocată în baza de date.

Opţional, în cazul tipului de clasă persistent, programatorul poate alege alte caracteristici pentru clasa definită, cum ar fi numele tabelului corespondent în SQL sau faptul ca permite realizarea unui document în XML sau că permite popularea automată cu date.

4.2. Definirea proprietăţilorÎn acest moment, clasa este definită dar este goală, neavând nici o proprietate

care să definească datele ce vor fi stocate în clasa respectivă.Adăugarea proprietăţii NumePentru a defini o proprietate se alege din submeniul Add al meniului Class

opţiunea New Property activându-se New Property Wizard. În această fereastră utilizatorul trebuie să introducă un nume pentru proprietate (Nume) şi opţional o descriere a acestei proprietăţi.

Fig. 5.Fereastra de definire a unei proprietăţi

75

Page 74: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 6.Fereastra Wizard a proprietăţiiFiecare proprietate se caracterizează printr-un tip care specifică ce date se

stochează (numerice, text, dată etc.). Proprietăţile pot fi monovaloare (literali, referiri la obiecte persistente sau referire la obiecte inserate), vectori, liste, relaţii.

În acest caz, tipul de date este %String , unul din tipurile de date predefinite în Cahe stocat în pachetul %Library care conţine tipuri de date şi alte clase furnizate ca parte integrată din Caché.

Fig. 7.Precizarea tipului proprietăţii

76

Page 75: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 8.Precizarea caracteristicilor proprietăţii

În fereastra Property Characteristics se selectează opţiunile Required (pentru a indica faptul că fiecare film are un titlu, proprietatea nu poate fi nulă) şi

Indexed (pentru a crea un index pentru această proprietate).Un index permite Cache să realizeze căutări pe baza valorilor proprietăţii

indexate. Toate proprietăţile care sunt folosite frecvent la căutări ar trebui indexate, dar nu trebuie abuzat pentru că fiecare index adaugă un timp suplimentar de lucru atunci când se adaugă, modifică sau şterge un obiect.

După rularea asistentului New Property Wizard Cache Studio actualizează conţinutul editorului de clase.

Fig. 9.Editorul de clasă

Adăugarea proprietăţii RasăPentru a adăugă proprietatea Rasă în cadrul clasei se parcurg următorii paşi:

77

Page 76: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

se alege opţiunea New Property Wizard din submeniul Add al meniului Class;

se introduce numele proprietăţii (Rasă) şi eventual o descriere a acestei proprietăţi;

se selectează ca tip de date, tipul Rasă; nu se modifică caracteristicile proprietăţii; se asociază un index proprietaăţii;

Fiecare tip de date defineşte un set de parametrii care pot fi folosiţi pentru a particulariza proprietatea respectivă. Între parametrii specifici tipului de date string se pot specifica:

CAPTION, numele folosit atunci când se afişează această proprietate pe web;

MINLEN şi MANLEN, lungimea minimă respectiv maximă a valorilor acestei proprietăţi;

VALUELIST, lista de valori pentru această proprietate;

Adăugarea proprietăţii ProprietarProprietatea Proprietar este de tip Proprietar, are un index asociat şi este

Required.Cache nu accepta semne de punctuaţie în cadrul numelor. În general, acest lucru

nu are importanţă pentru că utilizatorii unei aplicaţii nu văd numele proprietăţilor. Se poate fixa valoarea iniţială a acestei proprietăţi folosind două metode: se adaugă în cadrul declaraţiei proprietăţii din fereastra editorului de clase

[ InitialExpression = 0 ]; se foloseşte fereastra Class Inspector.

Adăugarea proprietăţii VârstăProprietatea Vârstă este de tip %Integeri, are.un index asociat şi este Required.

Adăugarea proprietăţii HranăProprietatea Hrană este de tip Hrană, are un index asociat şi este Required.

Adăugarea proprietăţii BoliProprietatea Boli este de tip Boli, are un index asociat şi este Required.După definirea acestei proprietăţi editorul de clase arată astfel:

78

Page 77: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 10.Editorul de clasă

Clasa Animale conţine 6 proprietăţi:Nume, Rasă, Proprietar, Vârstă, Hrană şi Boli.

Compilarea claseiCompilarea clasei Animale se realizează prin selectarea comenzii Compile din

meniul Build sau alegând butonul Compile din bara de lucru. Fereastra de mesaje oferă câteva idei asupra a ceea ce se întâmplă în timpul

compilării:

Fig. 11.Fereastra de mesaje

În primul rând, definiţia clasei este procesată; dacă conţine erori, fereastra de mesaje oferă câteva informaţii despre natura acestora.

79

Page 78: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

În al doilea rând, Caché crează automat un tabel corespunzător definiţiei, făcând posibil imediat accesul SQL la datele clasei.

În al treilea rând, Caché creează o rutină şi un descriptor, care reprezintă forma compilată a definiţiei şi unul dintre „secretele” ce stau în spatele performanţei deosebite a aplicaţiilor Caché.

S-a dezvoltat aplicaţia prin adăugarea următoarelor clase: Rasă, Proprietar, Hrană, Boli, Furnizor Hrană, Medicamente, Diverse, Producător Medicamente.

Până la acest moment, baza de date conţine o descriere a celor 9 clase, dar nu are nici un fel de date. Cea mai simplă metodă de adăugare a datelor într-o bază de date este cu ajutorul unui formular web.

4.3.Crearea unei pagini WebCache Server Page (CSP) este un set de tehnologii construite în Cache, care oferă

posibilitatea construirii şi dezvoltării rapide de aplicaţii web.CSP utilizează două metode pentru construirea aplicaţiilor web: Crearea claselor, derivate din clasa %CSP.Page, care generează declaraţii

HTML ca răspuns la cereri HTTP primite. Folosirea fişierelor HTML, care sunt automat convertite în clase CSP.Aceste două tehnici pot fi combinate pentru realizarea unei aplicaţii cu o

flexibilitate maximă, şi pentru fiecare dintre ele, Cache Studio poate fi folosit ca mediu de programare.

Pentru a se defini o nouă pagină CSP în Cache Studio, se selectează comanda New din meniul File, care deschide fereastra de dialog Studio’s New, din care se alege opţiunea Cache Server Pageşi se apasă pe butonul OK.

Fig. 12.Fereastra New StudioPe ecran va aparea o fereastră de editare, cu elemente principale ale unei pagini

web deja schiţate, în care se poate scrie codul fie direct, de mână, având la dispoziţie o sintaxă diferit colorată, fie folosind asistentul Cache Web Form Wizard, din meniul Insert, opţiunea Form Wizard.

80

Page 79: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 13.Fereastra de editare a paginii web

Prima pagină a asistentului Cache Web Form Wizard conţine, pe lângă mesajul de întâmpinare şi butoanele obişnuite de continuare şi închidere a asistentului, în colţul din stânga jos un buton de setări, Settings, care permite controlul asupra modului de afişare al codului în fereastra de editare, oferă posibilitatea creării automate a unor butoane de salvare, de ştergere a datelor sau de căutare în baza de date.

Fig. 14.Wizard-ul Cache Web Form

81

Page 80: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 15.Butonul Settings

Din cea de-a doua pagină a wizardului se selectează clasa CosmaRaluca.Animale (clasele sunt grupate în pachete, pentru simplificarea regăsirii lor).

Fig. 16.Selectarea clasei în Wizard

82

Page 81: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Odată aleasă clasa, următorul pas este selectarea proprietăţilor pe carele va coţine noul formular şi ordinea în care acestea vor apărea. Asistentul afişează în partea stângă a ferestrei proprietăţile definite de programator împreună cu o altă proprietate %Id(). Aceasta se adaugă automat de către Cache şi reprezintă identificatorul unic.

Fig. 17.Selectarea proprietăţilor clasei respectiveÎn următoarea pagină, asistentul oferă posibilitatea de modificare a numelui

proprietăţii cu care va apărea în formular. De asemenea, se poate specifica dacă valorile proprietăţii respective se pot modifica în acest formular sau pot fi doar vizualizate. Proprietatea %ID are implicit selectată opţiunea ReadOnly, adică nu poate fi modificată niciodată de către utilizator, ci numai de Cache. Pentru proprietăţile ce fac referire la alte clase (Rasă), se oferă posibilitatea de adăugare a unui buton special de căutare şi încărcare a datelor sau a unei legături.

Fig. 18. Realizarea referirilor

83

Page 82: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Tot ce mai rămâne de făcut este apăsarea butonului Finish, pentru crearea formularului şi introducerea lui în pagina CSP.

Fig. 19.Finalizarea creării paginii web

Pentru vizuaşizarea şi utilizarea efectivă a paginii CSP, aceasta trebuie mai întâi compilată, la fel ca o clasă. Apoi, se alege opţiunea Web Page din meniul View, pentru a afişa pagina corespunzatoare în browser.

Fig. 20.Afişarea pagii web în browser

84

Page 83: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Acum baza de date poate fi încărcată cu obiecte corespunzătoare clasei definite anterior. După introducerea datelor, se apasă butonul de salvare (Save) a acestora în memorie, după care se poate apăsa butonul de ştergere (Clear), pentru introducerea datelor corespunzatoare unui nou obiect.

Dacă se doreşte modificarea datelor introduse anterior, se poate acţiona butonul de căutare (Search), furnizat automat de către asistent. Acesta va deschide o nouă pagină, denumită Cache Search.

Fig. 21.Cache Search

În această fereastră obiectul dorit poate fi căutat după anumite criterii (reprezentate de proprietăţile care au indecşi ataşaţi) şi se poate opta ca datele găsite să fie sortate sau nu după proprietăţile respective. Dacă nu se introduce nici un criteriu de selecţie, vor fi afişate toate datele din baza de date.

85

Page 84: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 22.Fereastra cu rezultatul căutăriiDând clic pe un rând din tabelul cu rezultatele afişate, toate datele corespunzătoare

obiectului respectiv din baza de date vor fi încărcate în pagina web iniţială, unde pot fi modificate, şi apoi din nou salvate.

4.4. Integrarea paginilor CSP într-un site, folosind DreamweaverCache Server Pages pot fi create folosind orice instrument de HTML. Pentru

această aplicatie s-a folosit Dreamweaver de la Macromedia, deoarece este un mediu puternic de dezvoltare a aplicaţiilor web CacheWeb.

Un site web este un set de foldere şi arhive, asociate între ele, cu design similar şi obiectiv comun. Este necesară conceperea şi planificarea unui site web, înainte de a crea paginile pe care le va conţine siteul.

Metoda tradiţioală de a face un site constă în crearea unui folder pe discul local, în care vor fi salvate toate documentele HTML, imaginile, sunetele, animaţiile, stilurile paginii etc., pentru o mai bună organizare a arhivelor în timpul lucrului.

Cache Server Pages (CSP) este un set de tehnologii construite în Cache care oferă posibilitatea construirii şi dezvoltării rapide de aplicaţii Web.

O a doua metodă de creare a formularelor de introducere a datelor în Cache este utilizând editorul visual profesional Dreamweaver, care permite crearea şi gestionarea paginilor web.

Dreamweaver foloseşte HTML (HiperText Markup Language adică limbaj de marcare a hipertextului) ca limbaj de creare a paginilor web.

HTML este un limbaj care permite inserarea de text, sunete, imagini, filme, legături (link-uri) către alte pagini web aflate oriunde în lume, aplicaţii (programe JavaScript, Java, Cache etc.).

Pentru WWW aceste fişiere speciale se numesc pagini web. Acestea au extensia .htm sau .html.

Crearea formularelor de introducere a datelor în Cache se face folosind fişiere HTML care sunt automat convertite în clase CSP.

Fişierele CSP au fost create cu ajutorul Cache-ului. Ele nu au fost decât formatate cu ajutorul Dreamweaverului.

În Dreamweaver se deschid paginile csp create în Cache, din meniul File, opţiunea Open, alegându-se calea spre aceste fişiere csp.

86

Page 85: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 23.Meniul File

Se realizează deschiderea paginilor web şi a codurilor sursă:

Fig. 24. Deschiderea paginii web în Dreamweaver

Din acest moment aspectul formularului poate fi modificat cu ajutorul editorului Dreamweaver. S-a şters titlul CosmaRaluca.Animale si s-a introdus: Formular de introducere a animalelor.

87

Page 86: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 25. Deschiderea paginilor Csp cu Dreamweaver

Pentru a modifica aspectul textului am avut două opţiuni. Prima era să se modifice direct proprietăţile acestuia din caseta Properties din josul paginii (daca nu este vizibilă se deschide din meniul Modify, opţinunea Selection Properties). A două posibilitate era să se definească un stil CSS, care putea fi ulterior aplicat şi altor texte.

În această aplicaţie s-a utilizat prima opţiune.S-a dorit ca fundalul să fie o imagine şi s-a realizat acest lucru prin deschiderea

opţiunii Browse de la Background Image.

88

Page 87: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 26.Page Properties

Pentru modificarea butoanelor Clear, Save, Search, s- a selectat pe rând, s-a intrat în codul sursă şi s-a înlocuit cu valorile: Adaugă, Salvează şi Caută.

Fig. 27. Modificarea denumirii butoanelorDupă modificarile dorite pagina a fost salvată.S-a creat şi prima pagină a site-ului, pe care am numit-o index.csp. Definirea

paginii principale s-a realizat prin intermediul a 3 frame-uri: unul pentru titlul aplicaţiei, unul penru meniu şi al treilea în care va fi afişat conţinutul formularelor. Acest lucru s-a făcut accesând opţiunea New din meniul File.

89

Page 88: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig.28. Crearea unei pagini Framesets

S-a deschis o fereastră împărţită în trei regiuni, după cum a fost specificat. Fiecare pagină reprezintă o pagină web, care poate fi editată separat. Se poate lucra în mod Design, cod, sau pagina poate fi împărţită astfel încât să fie vizibil atât codul sursă cât şi efectul acestuia, aspectul paginii.

Fig. 29.Deschiderea paginii FramesetsPentru a selecta un anumit cadru, se alege din meniul Window opţiunea Frames,

care va deschide în partea stângă fereastra Frames, în care se dă clic pe regiunea dorită.

90

Page 89: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 30.Fereastra Frames

S-a selectat regiunea de sus, numită topFrame şi s-a salvat cu numele title.csp; leftFrame s-a salvat cu numele left.csp, mainFrame ca body.csp şi toată pagina (frameset) se numeşte index.csp.

S-a selectat pagina de titlu si s-a scris textul: “Bine aţi venit la cabinetul veterinar TRIVET!”. Din caseta Properties, s-au modificat proprietăţile paginii, de la butonul Page Properties (sau alegând aceeaşi opţiune din meniul Modify). S-a modificat fundalul paginii, adăugându-se o imagine de fundal, de la butonul Browse.

Pentru a face pagina mai atractivă, am adăugat opţiunea ca textul să se mişte orizontal sau verticat pe pagină. Pentru aceasta, am selectat titlul, în mod automat în fereastra de cod si s-a selectat codul aferent textului, pe care l-am editat astfel:

<marquee behavior="alternate"> <strong>Bine aţi venit la cabinetul veterinar TRIVET! </strong> </marquee>

Pentru crearea meniului, am selectat cadrul din stânga leftFrame şi am selectat proprietăţile paginii în concordanţă cu cele ale titlului. Am inserat un tabel cu o singură coloana si 12 rânduri din meniul Insert -> Table.

Fig. 31.Inserare de tabel

În fiecare celulă s-a scris denumirea unei clase Cache, pentru care s-a creat un formular. Pentru a realiza legături cu pagina respectivă, am selectat textul respectiv, şi în fereastra Properties, cu ajutorul butonului Browse existent în dreptul proprietăţii link,

91

Page 90: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

căutăm şi am ales fişierul corspunzător, cu extensia .csp. La Target am ales opţiunea _blank, pentru ca formularul să fie afişat în cadrul diferit.

Fig. 32.Fereastra properties

Pentru frame-ul principal, s-au selectat proprietăţile paginii, şi s-a scris un text ce descrie aplicaţia,care v-a fi afişat atunci când nu este nici un formular.

Rezultatul acestor operaţii prezentate anterior are ca rezultat urmatoarea pagină web.

Fig. 33.Pagina web rezultată

4.5. Paginile web dinamice

92

Page 91: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Paginile WEB dinamice (fişiere csp) conţin HTML sau XML astfel încât pot fi create sau modificate folosind orice editor de text sau orice unealtă pentru creare pagini WEB existente pe piaţă. Aplicaţiile pot fi proiectate ca şi când ar fi o serie de pagini WEB statice.

Funcţionalitatea este adăugată de către Caché Application Tags sau Hyper-Events. Caché Application Tags (CAT's) funcţionează ca şi etichetele HTML cu diferenţa că în loc de a formata textul, ele execută funcţii pe serverele de date şi/sau browsere. CAT's poate fi folosit pentru a îndeplini o varietate de funcţii precum:

introduce date în formulare; validează informaţia intrată în formulare de la utilizatori; transformă articolele codate sau calculate; salvează datele în baza de date Caché; controlează HTML-urile scrise pentru browser.Am realizat o pagină web AfişareProprietari.csp care să conţină toate informaţiile

stocate în tabela Proprietari.Pentru a realiza acest lucru s-au parcurs următorii paşi: s-a ales din meniul File al aplicaţiei Macromedia Dreamweaver, opţiunea New,

urmată de Basic Page; s-a scris în partea superioară a paginii textul „Lista proprietarilor de animale”

care reprezintă titlul paginii şi se formatează fie utilizând caseta Properties, fie creând un stil nou.

s-a adaugat folosind opţiunea Table din meniul Insert un tabel care are scopul de a organiza mai bine lista de regizori;

Tabelele sunt, deseori, folosite pentru a aranja datele din cadrul paginilor web sub formă de linii şi coloane. Fiecare rând conţine două coloane: una cu numele cu care ajutorul cărora sunt identificate datele şi ce-a de-a doua cu datele respective.Tabelul este format din patru rânduri .

s-a construit o interogare în clasa Animale care va fi accesată în această pagină prin intermediul unui tag special numit <csp:query>;

S-a deschis utilitarul Caché Studio şi în cadrul clasei Proprietari s-a defineşte interogarea Proprietari fie introducând direct comanda SQL, fie folosind Query Wizard.

În cazul în care se alege a doua metodă utilizatorul trebuie să efectueze următoarele etape:

se alege comanda Add New Query din meniul Class şi în fereastra care se deschide se precizează numele interogării şi, opţional o descriere (fig. 3);

Fig. 34. Crearea unei interogări

93

Page 92: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

se specifică proprietăţile care vor fi incluse în interogare selectându-le din

coloana aflată în partea stângă a ferestrei şi dând apoi click pe butonul (fig. 35);

Fig. 35. Selectarea proprietăţilor ce se vor afla în interogare

din următoarea pagină se pot alege criteriile de selecţie care fac interogarea mai restrictivă (fig. 36.);

Fig. 36. Selectarea condiţiilor interogării

94

Page 93: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Se pot selecta maxim trei criterii de selecţie. Pentru exemplul aceasta nu se precizează niciun criteriu.

din ultima pagină se selectează câmpul după care se face ordonarea înregistrărilor (Nume), se acţionează butonul Finish şi se recompilează clasa(fig. 6).

Fig. 36.Selectarea criteriilor de ordonare

se introduce interogarea definită în clasa Proprietari în cadrul paginii AfişareProprietari.csp prin selectarea opţiunii Query din meniul Insert/HTML/Cache CSP (fig. 37);

Fig. 37. Introducerea interogării în cadrul paginii de afişare

95

Page 94: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

se specifică în fereastra CSPQUERYTag (fig. 38) numele tagului (ListarProprietari), se selectează numele clasei (CosmaRaluca.Proprietar) şi, de asemenea, numele interogării (Proprietari) care va fi apelată în pagina web;

Fig. 38. Fereastra CSPQUERYTag

După ce se dă click pe butonul OK, tagul <csp:query> adăugat va fi reprezentat în pagina web printr-o iconiţă mică (fig. 39).

96

Page 95: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 39.Adăugarea tagului <csp:query> se adaugă date din interogare în cadrul paginii;Pentru a realiza acest lucru se poziţionează cursorul pe pagină în locul în care

trebuie să apară datele, adică în prima coloană a tabelului , se selectează HTML/Cache

CSP/DATA din meniul Insert , iar din fereastra care apare se alege Nume din lista

Data Element .

Fig. 40. Inserarea datelor în pagina de afişare

Fig. 41.Fereastra CSPDATATag

Dacă se analizează codul din secvenţa următoare:<csp:QUERY NAME="ListaProprietari"

CLASSNAME="CosmaRaluca.Proprietar" QUERYNAME="Proprietari">

97

Page 96: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

<p>&nbsp;</p><table width="533" border="2" cellspacing="2" cellpadding="0"><csp:while Condition="ListaProprietari.Next()"><tr> <td width="122"><div align="center"><span

class="style3">Nume</span></div></td><td width="397"><div align="center" class="style5">#(ListaProprietari.Get("Nume"))#</div></td></tr><tr><td><div align="center"><span class="style3">Prenume</span></div></td><td><div align="center" class="style5">#(ListaProprietari.Get("Prenume"))#</div></td></tr><tr><td><div align="center"><span class="style3">CNP</span></div></td><td><div align="center" class="style5">#(ListaProprietari.Get("CNP"))#</div></td></tr><tr><td><div align="center"><span class="style3">Adresa</span></div></td><td><div align="center" class="style5">#(ListaProprietari.Get("Adresa"))#</div></td></tr></csp:while>

Se poate observa că se apelează metoda Get care are ca parametru elementul interogării (proprietatea Nume).

Metoda este încadrată de caracterele #(...)#, indicând astfel prezenţa unei expresii Caché. După ce pagina este generată, se evaluează această expresie (adică se apelează metoda Get) şi valoarea rezultată se adaugă în cadrul paginii.

În continuare, se prezintă codul paginii după adăugarea celorlalte proprietăţi (Prenume, CNPşi Adresa). Se poate observa că toate datele au fost plasate într-o singură coloană, adică între tagurile <td></td>. De asemenea, pentru a mări vizibilitatea în cadrul paginii s-a folosit tagul <strong></strong> pentru nume, prenume şi pentru etichetele proprietăţilor CNP şi adresa.

În acest moment, programatorul se confruntă cu două probleme. Prima este reprezentată de faptul că indicatorul de înregistrări este poziţionat

înainte de prima înregistrare. Aceasta înseamnă că metoda Get nu va returna nicio dată din interogare. Pentru a muta cursorul pe prima înregistrare se foloseşte metoda Next a colecţiei de obiecte %ResultSet.

A doua problemă este dată de faptul că se doreşte afişarea tuturor înregistrărilor interogării şi nu numai prima. Pentru a realiza acest lucru se foloseşte o iteraţie prin intermediul căreia cursorul se mută la următoarea înregistrare.

Ambele probleme se rezolvă cu ajutorul tagului <csp:while>. Acest tag creează o buclă care se execută până în momentul în care condiţia devină falsă. În această situaţie,

98

Page 97: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

condiţia apelează metoda Next. Next determină mutarea cursorului de înregistrări şi returnează TRUE dacă mai există o inregistrare şi FALSE dacă nu mai există una.

se adaugă tagul <csp:while>, după ce în prealabil a fost selectat rândul tabelului, prin selectarea HTML/Cache CSP/While din meniul Insert (fig. 42);

Fig. 42. Adăugarea tagului <csp:while>

se specifică în caseta de dialog care apare condiţia logică pentru instrucţiunea repetitivă (fig. 43);

Fig. 43. Realizarea instrucţiunii repetitive

Deoarece pagina conţine un tag <csp:query> asistentul afişează o condiţie iniţială bazată pe metoda Next a setului de înregistrări ale interogării. Aceasta este chiar condiţia necesară, astfel că se acţionează doar butonul Ok.

se salvează pagina şi se încarcă în Cache. Codul paginii este următorul:<body><p>&nbsp;</p><p align="center"><strong><span class="style4">Lista proprietarilor de animale

</span></strong></p><csp:QUERY NAME="ListaProprietari"

CLASSNAME="CosmaRaluca.Proprietar" QUERYNAME="Proprietari"><p>&nbsp;</p><table width="533" border="2" cellspacing="2" cellpadding="0"><csp:while Condition="ListaProprietari.Next()"><tr> <td width="122"><div align="center"><span

class="style3">Nume</span></div></td><td width="397"><div align="center" class="style5">#(ListaProprietari.Get("Nume"))#</div></td></tr><tr><td><div align="center"><span class="style3">Prenume</span></div></td><td><div align="center" class="style5">#(ListaProprietari.Get("Prenume"))#</div></td></tr><tr><td><div align="center"><span class="style3">CNP</span></div></td><td><div align="center" class="style5">#(ListaProprietari.Get("CNP"))#</div></td></tr><tr>

99

Fig. 10.

Page 98: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

<td><div align="center"><span class="style3">Adresa</span></div></td><td><div align="center" class="style5">#(ListaProprietari.Get("Adresa"))#</div></td></tr></csp:while></table></body>

4.6. Crearea paginiilor de căutare

S-a realizat o căutare a animăluţelor după CNP-ul proprietarilor.Pentru a realiza această căutare după CNP-ul proprietarului s-au creat 4 fişiere .csp: fişierul Căutareproprietar.csp (fig 43) care conţine două frame-uri; fişierul Căutare.csp reprezentând frame-ul superior; fişierul Afişareproprietari1.csp reprezentând frame-ul inferior; fişierul Afişareanimale.csp care se afişează în main frame când se acţionează

butonul Caută aflat în frame-ul superior.

Fig. 43. Fişierul csp CăutareProprietar

100

Page 99: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 44. Fişierul csp Căutare

Fig. 45. Fişierul csp AfişareProprietari1

101

Page 100: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 46. Fişierul csp AfişareAnimalePentru a putea afişa informaţiile despre clienţi în fişierul Afişareanimale.csp s-a

creat în clasa Proprietari o interogare numită CNPProprietar.Codul acestei interogări este următorul:Query CNPProprietari() As %SQLQuery(CONTAINID = 2){SELECT CNP,%ID FROM ProprietarORDER BY CNP}Fişierul Afişareproprietari1.csp conţine un tabel cu două rânduri şi 4 coloane în

care se vor afişa date despre proprietarii animalelor sortaţi după nume cu ajutorul tagului <csp:query> Listaproprietari care conţine rezultatul execuţiei interogării CNPProprietari definită în clasa Proprietari.

Codul paginii este:<body><csp:QUERY NAME="ListaProprietari"

CLASSNAME="CosmaRaluca.Proprietar" QUERYNAME="Proprietari"><table width="630" border="2" cellspacing="2" cellpadding="0"><tr><td><div align="center"><strong>CNP</strong></div></td><td><div align="center"><strong>Nume</strong></div></td><td><div align="center"><strong>Prenume</strong></div></td><td><div align="center"><strong>Adresa</strong></div></td></tr><csp:while Condition="ListaProprietari.Next()"> <tr><td><div align="center">#(ListaProprietari.Get("CNP"))#</div></td><td><div align="center">#(ListaProprietari.Get("Nume"))#</div></td><td><div align="center">#(ListaProprietari.Get("Prenume"))#</div></td><td><div align="center">#(ListaProprietari.Get("Adresa"))#</div></td>

102

Page 101: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

</tr></csp:while></table></body>

În pagina Căutare.csp se adaugă un formular numit Căutareproprietar în care se introduce o listă de valori (ListaProprietari) care se foloseşte pentru a selecta CNP-ul proprietarului şi un buton de comandă Caută. După acţionarea butonului Caută se va afişa în mainframe pagina AfişareProprietari. Valorile listei ListaProprietari provin din interogarea Proprietari definită în cadrul clasei Proprietari.

Codul interogării din Proprietari este următorul:Query Proprietari() As %SQLQuery{SELECT Nume,Prenume,CNP,Adresa FROM ProprietarORDER BY Nume}Codul paginii Cautare.csp este:

<body><form action="Afisareanimale.csp" method="post" name="form1" target="mainFrame" class="style3"><span class="style4">Cautare proprietari dupa CNP</span> <select name="select" size="1"><csp:QUERY NAME="ListaP" CLASSNAME="CosmaRaluca.Proprietar" QUERYNAME="CNPProprietari"><csp:while Condition="ListaP.Next()"><option value="#(ListaP.Get("ID"))#">#(ListaP.Get("CNP"))#</option></csp:while><input type="submit" name="Submit" value="Cauta"/></select></form></body>

Pagina Afişareproprietari.csp care se încarcă în momentul acţionării butonului Caută de pe formularul CăutareProprietari al paginii Cautare.csp conţine o interogare dinamică definită în SQL cu ajutorul tagului special <script> şi a obiectului %request. Pentru a afişa comenzile unui client se construieşte un tabel cu două rânduri şi 4 coloane care vor include rezultatele interogării dinamice. Codul interogării dinamice este următorul:

<script language="SQL" name="Listaanimale">SELECT Nume,Rasa->Denumire as Rasa,Varsta, Boli->Denumire as BoliFROM CosmaRaluca.AnimaleWHERE #($SELECT(%request.Data("select",1) '=" ":"Proprietar=" _

%request.Data("select",1),1:""))#ORDER BY Nume</script><br />

Rezultatul rulării acestor pagini este:

103

Page 102: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 47. Rezultatul paginii AfişarePropietari:CSP

104

Page 103: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Fig. 48. Rezultatul paginii Cautare.csp

Pagina principală a acestei aplicaţii se vizualizează astfel:

Fig.49. Pagina Principală105

Page 104: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

5. Concluzii

Sistemele de asiatare a deciziei (Decision Support Systems) reprezintă sisteme

informatice cu rolul de a-i ajuta pe manageri în rezolvarea unor probleme nestructurate,

folosind în acest scop baze de date şi modele din domeniul folosit. Acestea nu formulează

decizii în locul managerului, ci doar îl ajută în elaborarea unor decizii cât mai eficiente.

Generarea alternativelor pentru problemele structurate poate fi furnizată de SIAD

prin intermediul unor modele standard sau specializate. Totuşi, construirea mai multor

alternative pentru probleme complexe impune o anumită experienţă ce poate fi furnizată

numai de către om sau printr-un sistem expert, întrucât SIAD-ul, prin definiţie, nu face o

alegere a variantei optime. În aceste condiţii, optimizarea sau alte modele matematice pot

asigura identificarea soluţiilor posibile şi „ordonarea” alternarivelor în concordanţă cu

criteriile de selecţie.

Lucrarea de faţă intitulată “Sisteme informatice de asistare a activităţii unui cabinet

veterinar” este structurată în patru capitole.

În primul capitol au fost prezentate noţuni generale ale temei, respectiv concepte

referitoare la decizie şi decidenţi. În cel de-al doilea capitol s-au prezentat noţiunile

teoretice ale sistemelor de asistare a deciziei, această parte incluzând şi notiuni legate de

tehnicile moderne aferente SIAD-urilor şi anume: sistemele expert, depozitele de date şi

data mining.

În cel de-al treilea capitol s-au descris sistemele de gestiune a bazelor de date

orientate obiect, făcându-se referire la Cache. În ultima parte a acestui capitol s-a realizat o

comparaţie între Cache, MS SQL şi MS Access.

Capitolul patru al acestei lucrări constă într-un studiu de caz pe baza aplicaţiei

realizate. Au fost prezentaţi paşii ce au fost urmaţi pentru a finaliza aplicaţia practică.

Aceasta constă in realizarea unui site ce are rolul de a asista activitatea cabinetului

veterinar Trivet.

Proiectarea SIAD-ului pentru Trivet a constat în proiectarea unui sistem informatic

de asistare a activităţii cabinetului veterinar. Referitor la acest capitol se menţionează că:

Folosind sistemul de gestiune a bazelor de date postrelaţionale Cache, s-a

elaborat o bază de date ce conţine 9 clasele: Animale, Rasă, Proprietar, Hrană, Boli,

Medicamente, Diverse, ProducătorMedicamente şi FurnizorHrană. Pentru fiecare clasă în

parte s-a creat câte un formular de introducere a datelor (csp).

106

Page 105: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Folosind Dreamweaver formularele au fost formatate pentru ca aplicaţia să aibă

un aspect cât mai plăcut. Tot prin intermediul acestui program am creat şi alte pagini web,

cum ar fi: pagina meniului, denumită de autor Index, care a fost salvată cu extensia .csp

pentru a fi integrată cu uşurinţă în Cache; pagina de afişare a proprietarilor numită

AfişareProprietari şi, nu în ultimul rând, pagina de căutare a animalelor dupa CNP-ul

proprietarilor denumită Cautare.

Aplicaţia informatică a permis îndeplinirea scopului propus al lucrării, respectiv

asistarea activităţii cabinetului veterinat Trivet.

107

Page 106: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

Bibliografie

1. Airinei, D., Sisteme informatice de asistare a deciziei,

http://portal.feaa.uaic.ro/master/SIA/siad/default.aspx

2. Filip, F. G., Decizie asistată de calculator, Editura Tehnică,

Bucureşti, 2005.

3. Oancea, M., Sisteme informatice pentru asistarea deciziei

financiare, Editura ASE, Bucureşti, 2005.

4. Filip, F.Gh., Sisteme suport pentru decizii: o încercare de istorie,

Revista Informatica Economica, vol. 29, nr. 1, 2004.

5. Mocean, L., Consideraţii privind sistemele de asistare a

deciziilor (SSD), Revista de Informatică Economică, vol. 29, nr.1, 2004.

6. Zaharie, D., Năstase, P., Sisteme expert, Editura ROMCART,

Bucureşti, 1993.

7. Zaharie, D., Năstase, P., Albescu, F., Bojan, I., Mihai, F., Anica-

Popa, L., Sisteme expert, Editura Dual Tech, Bucureşti, 1999.

8. Turban, E., Aronson, J.E., Liang T.P, Decision Support Systems

and Intelligent Systems, 7th edition, Pearson Prantice Hall, 2004.

9. Han, J., Kamber, M., Data mining: Concepts and Techniques,

Morgan Kaufman Publishers, USA, 2000.

10. Thuraisingham, B., M., Data mining, Technologies, Techniques,

Tools and Trends, CRC Press, 1999.

11. Ioniţă, A., Asupra termenului de data mining, Revista Română de

Informatică şi Automatică, vol. 15, nr. 2, 2005.

12. Hand, D. J., Mannila, H., Smyth, P., Principles of Data Mining,

The MIT Press, Cambridge, 2001.

108

Page 107: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

13. Edelstein, H., A., Introduction to Data Mining and Knowledge

Discovery, Two Crows Corporation, 1999.

14. Berry, M.J.A., Linoff, G.S., Data mining techniques: for

marketing, sales and customer relationship management, Wiley Publishing,

Indianapolis, Indiana, 2004.

15. Sethi, I.K., Data mining Course Home Page,

http://www.cse.secs.oakland.edu/isethi/DM/

16. Fayyad, U., Piatetsky-Shapiro, G., Smyth, P., From Data Mining

to Knowledge Discovery in Databases, AI Magazine, Fall 1996,

17. Velicanu, M., Lungu, I., Muntean, M., Ionescu, S., Sisteme de

baze de date, Editura Petrion, Bucureşti, 2003.

18. Kirsten, W., Ihringer, M., Röhrig, B., Schulte, P. - Object-

Oriented Application Development Using the Caché Postrelational Database,

Springer Verlag, Berlin, 2001.

19. Tănăsescu, A., Pătraşcu, A., The Publishing and Research

Activity Document Management System, International Scientific Conference

“European Integration – New Challenges for the Romanian Economy, 3rd

edition, Oradea, May 25-26, 2007, Analele Universităţii din Oradea, Seria

Ştiinţe Economice, Ediţie pe suport CD-ROM, 2007.

20. Tănăsescu, A., Pătraşcu, A., Duşmănescu, D., Object Oriented

Data Model for Students’ Record, The 7th International Conference on

Informatics in Economy IE 2005 – Information & Knowledge Age, 2005.

21. Frawley, W.J., Piatetsky-Shapiro, G., Matheus, C.J., Knowledge

Discovery in Databases: An Overview, AI Magazine, Fall 1992,.

22. Julian Vasilev – Chief assistant professor, Department of

Informatics, Varna University of Economics; 77, Kniaz Boris I str.; Varna;

Bulgaria

23. http://www.intersystems.com/cache/index.html

24. http://www.blue-lion-it.ro/cache/ 109

Page 108: Sisteme Informatice de Asistare a Activitatii Unui Cabinet Veterinar

25. http://www.biblioteca-digitala.ase.ro/biblioteca/carte2.asp ?

id=280&idb=

110