Aspecte privind analiza şi interpretarea datelor





Deşi marile companii producătoare de software de gestiune a bazelor de date relaţionale fac eforturi deosebite în a actualiza şi îmbunătăţi performantele sistemului lor, există în continuare un decalaj semnificativ între realizările lor actuale şi evoluţia mult mai rapidă a tehnologiilor hardware şi de comunicaţie ce permit realizarea de medii eterogene complexe utilizând maşini din ce în ce mai performante.

Tehnologii de procesare paralelă. Marile companii producătoare de sisteme de gestiune a bazelor de date relaţionale se află în competiţie pentru a găsi cele mai bune soluţii care să satisfacă cererile noii generaţii de sisteme distribuite client/server, cereri legate îndeosebi de distribuirea unei mari varietăţi de tipuri de date pe o şi mai mare varietate de maşini cuplate în configuraţii de reţele eterogene.

Aplicaţiile tot mai complexe împing în prezent mediile de calcul la limita posibilităţilor de procesare. Mulţi utilizatori îşi bazează deciziile pe informaţii vechi de câteva zile deoarece sistemele lor nu au capacitatea de a furniza analize în timp real.



Pentru a face faţă noilor cerniţe, companiile producătoare de sisteme de calcul au evoluat de la sistemul uniprocesor la arhitecturi de multiprocesare simetrică, clustere şi chiar arhitecturi cu procesare paralelă masivă. Totodată, companiile de software situate în topul vânzărilor de sisteme de baze de date relaţionale - Oracle Corp., Sybase Inc., Informix Software Inc., IBM Corp. - au dezvoltat în ultimii ani noi versiuni ale sistemelor lor de baze de date care utilizează servere în multiprocesare simetrica (SMP), multiprocesare asimetrică sau procesare pe mai multe căi de control al execuţiei (\"multithreading\"). Aceste versiuni noi pun însă probleme complexe atât în ceea ce priveşte administrarea de sistem cât şi dezvoltarea de aplicaţii.

Este necesară clarificarea diferenţei dintre procesarea paralelă şi procesarea pe multiple căi de control al execuţiei (multithreading). Ambele modele implică executarea de task-uri multiple în paralel, dar în timp ce procesarea paralelă implică mai multe procese ce se executa pe mai multe unităţi de prelucrare, multithreading se referă la un singur proces ce poate rula pe mai multe căi de prelucrare simultan. Deci căile multiple de control al execuţiei sunt o formă mai simplă de paralelism, ele rulând sub un acelaşi proces şi utilizând în comun anumite elemente ale sistemului. Toate căile de execuţie comune unui proces împart resurse comune - date, memorie sau fişiere deschise - furnizând unei aplicaţii posibilitatea de a lansa task-uri multiple simultan în cadrul unui singur proces. În cazul proceselor paralele, atunci când unitatea centrală de execuţie plasează un proces în aşteptare în timp ce un alt proces se execută, unitatea trebuie să \"memoreze\" într-o zonă de memorie temporară contextul de execuţie al respectivului proces; deci \"overhead\"-ul de menţinere a unui proces distinct include un spaţiu de adrese de memorie complet separat, spre deosebire de procesarea prin cai paralele de control al execuţiei în cadrul unui singur proces pentru care \"overhead\"-ul de sistem este considerabil mai mic. În multithreading, serverul de baze de date atribuie thread-uri cererilor aflate în execuţie, realizând şi schimbarea dinamică a căii pe care o cerere rulează la un moment dat; dacă o cerere se află în stare de aşteptare, serverul va realiza printr-un mecanism de \"swapping\" înlocuirea acestei cereri cu o altă cerere care va fi asignată aceleiaşi căi. Rezultatul se concretizează în optimizarea timpului de execuţie a cererilor şi deci îmbunătăţirea performantelor de interogare a bazelor de date în sisteme distribuite.



Tipuri de arhitecturi hardware paralele. Cele mai utilizate arhitecturi hardware paralele ce exploatează multiple procesoare, memorii mari şi mai multe unităţi de disc sunt:
. arhitectura \"Shared nothing\" în care fiecare procesor deţine propriile sale unităţi de memorie şi disc.
. arhitectura \"Shared disks\" utilizează multiple procesoare, fiecare cu unitatea sa de memorie dar cu sistem de disc partajat.
. arhitectura \"Symmetric Multiprocessing\" (SMP) utilizează procesoare multiple care deţin în comun unităţile de memorie şi disc.

In prezent, pentru a atinge performante ridicate din punctul de vedere al procesării online a tranzacţiilor (OLTP - \"Online Transaction Processing\"), cele mai bune arhitecturi sunt considerate a fi cele uniprocesor şi cele în multiprocesare simetrică (SMP). Pe de altă parte însă, sistemele paralele masive sau sistemele \"shared-nothing\" sunt excelente pentru suport decizional pe scară largă. Arhitecturile în cluster, cum este şi HACMP/6000 al companiei IBM, oferă însă alte avantaje, cum ar fi de exemplu înaltul grad de disponibilitate; dacă un nod din cluster cade, un alt nod preia temporar sau definitiv lucrările primului. Un al doilea avantaj este creat de faptul că fiecare nod din cluster poate fi la rândul său o maşină în multiprocesare simetrică, asigurând cluster-ului o scalabilitate mult mai mare.

Soluţii de implementare. Cele mai multe dintre sistemele de gestiune a bazelor de date relaţionale sunt în prezent îmbunătăţite pentru a beneficia de procesarea paralelă în sisteme eterogene, şi a permite rularea de aplicaţii complexe cu misiune critică. Compania de software care va veni cu un set de soluţii optime pentru a integra bazele de date cu noile tehnologii de distribuire a datelor, va deţine controlul asupra pieţei în acest domeniu. Distribuirea optimă a datelor este dificilă din punct de vedere tehnologic, acest proces fiind puternic dependent de crintele pentru asigurarea unui timp bun de răspuns la cereri, asigurarea integrităţii datelor, disponibilitate continuă, interoperabilitate etc.

Sistemele de gestiune a bazelor de date moderne utilizează o serie de noţiuni abstracte şi strategii asociate pentru a putea îndeplini cerinţele aplicaţiilor actuale. Tranzacţia, de exemplu, (definită ca o colecţie de operaţii care asigură trecerea unei baze de date dintr-o stare consistentă logic în alta), poate fi utilizată şi în cadrul datelor distribuite pentru a asigura în reţea trecerea unor grupuri de date şi operaţii asociate de la un post client la server sau de la un server la altul. Cea mai mare parte dintre producătorii de sisteme de baze de date au creat monitoare de procesare a tranzacţiilor (TP - \"Transaction Processing\") ce reprezintă utilitare evoluate care gestionează tranzacţiile distribuite în reţele eterogene. Metoda de comunicaţie standard între monitoarele TP şi sistemele de baze de date a fost acceptată ca fiind protocolul X/A ce face parte din grupul de standarde X/Open. În prezent, serverele Sybase System 10 şi Oracle 7 suporta protocolul X/A, în timp ce Informix OnLine aderă indirect la acest protocol printr-un produs auxiliar, Informix TP/XA.

Din punctul de vedere al asigurării integrităţii datelor în sisteme client/server distribuite, producătorii de software de gestiune a bazelor de date recurg la mai multe strategii strategii.

- Tehnica \"two-phase commit\" prin care toate modificările impuse de o tranzacţie asupra unei baze de date sunt fie coSMIe (execuţia tranzacţiei este finalizată) fie sunt anulate, cu revenirea bazei de date în starea anterioară efectuării tranzacţiei. Această strategie nu este adecvată pentru reţelele eterogene complexe în care probabilitatea de cădere a unui nod este mare şi nici pentru sisteme cu SMIiune critică. Ea este utilizată ca o cale de a asigura faptul că toate serverele deţin copii identice ale bazei de date în orice moment.

- Strategia de replicare a datelor este în prezent soluţia adoptată de companiile Oracle, Sybase şi Informix. Replicarea este un proces în cadrul căruia mai multe servere deţin mai multe copii identice ale unei baze de date. Strategia de replicare a datelor diferă esenţial de \"two phase commit\" prin aceea ca replicarea garantează identitatea copiilor bazelor de date distribuite numai în anumite momente sau sub anumite condiţii. Tehnica de replicare a datelor utilizată de serverul Oracle 7 este denumită \"Table Snapshots\", prin care serverul central (\"master\") copiază la anumite momente de timp definite, numai acele părţi din baza de date care s-au modificat, propagând apoi aceste modificări în reţea. Mecanismul de replicare utilizat de serverul de baze de date Informix este similar metodei \"snapshots\" utilizată de Oracle. Informix utilizează fişiere \"log\" de \"backup\" pentru a determina datele din tabelele bazei de date ce trebuie replicate (care conţin modificări).

Serverele de replicare reprezintă numai începutul unei întregi generaţii de produse software care implementează concepte abstracte referitoare la distribuirea datelor în medii eterogene împreună cu tehnologii avansate de gestiune şi procesare paralelă, optimizată a tranzacţiilor.