1.1 Noiuni fundamentale utilizate n organizarea datelor Datele sunt stocate n memoria intern i memoria extern a oricrui sistem de calcul. Organizarea datelor se refer la procesul de definire i structurare a datelor n colecii de date, precum i la realizarea legturilor ntre elementele unei colecii i ntre coleciile de date. Organizarea datelor se proiecteaz n scopul regsirii automate a acestora dup diverse criterii. Obiectivele organizrii datelor sunt, n principal, urmtoarele: timp de acces minim la date; apariia o singur dat a datelor n sistem; spaiu de memorie intern i extern pentru date ct mai mic; reflectarea prin organizare a tuturor legturilor dintre procesele economice pe care aceste date le reprezint; posibilitatea modificrii structurii datelor i a relaiilor dintre date fr a produce schimbri n programele care le gestioneaz. Tehnicile de organizare a datelor n colecii de date sunt: fiierul de date i baza de date. Fiierul de date reprezint o colecie de date memorat pe un suport tehnic ntr-o succesiune de nregistrri. Accesul la o nregistrare din fiierul de date se obine prin parcurgerea nregistrrilor fiierului n secvena n care au fost stocate (acces secvenial) sau pe baza unei chei de identificare care s permit regsirea rapid a nregistrrii (acces direct). Accesul direct se obine prin indexarea fiierelor, adic prin crearea unor tabele de indeci care pentru fiecare valoare a atributului cheie primar (atribut care permite identificarea n mod unic a unei nregistrri din fiier) s conin adresa corespunztoare (n cadrul fiierului) a fiecrei nregistrri. Aceast organizare a datelor n fiiere de date prezint urmtoarele dezavantaje: redundan mare (stocarea acelorai date n mai multe fiiere); acces dificil la date; exploatarea multiutilizator a datelor necesita operaii suplimentare de sortare, fuziune, ventilare etc.; izolarea datelor, adic nu pot fi realizate programe pe calculator care s acceseze datele ntr-o manier global; actualizarea datelor, prin adugare, modificare, tergere, genereaz conflicte atunci cnd mai muli utilizatori doresc s modifice simultan aceleai date; dependena programelor fa de date; deoarece datele se descriu n programe, modificrile din structura datelor oblig la efectuarea de corecturi n programele pe calculator; problemele neprevzute nu obin rspunsuri rapide; fiecare dat este descris independent n toate fiierele n care apare; dac ntr-un fiier se modific formatul i valoarea unei date, acea modificare nu se transmite automat, pentru aceeai dat, n toate fiierele de date; ca urmare, pentru aceeai dat se creeaz posibilitatea apariiei de valori diferite n fiiere diferite (inconsistena datelor); nu se menine integritatea datelor, atunci cnd fiierul este realizat cu limbaje diferite. Creterea necesarului de date, informaii i cunotine pentru agenii economici i progresele tehnologiilor informaiei i ale comunicaiilor (IT&C) au determinat organizarea datelor n baze de date. 4 Noiunile fundamentale folosite n organizarea datelor sunt entitatea, atributul i valoarea. ntre acestea exist legturi de interdependen astfel: o entitate are mai multe atribute, iar atributele au o anumit mulime de valori; entitatea reprezint un obiect concret sau abstract definit prin proprietile sale; orice proprietate a unui obiect este exprimat printr-o pereche (ATRIBUT, VALOARE). Exemplul a) - materialul M are lungimea mare unde lungimea este atributul, iar mare este valoarea. (LUNGIMEA, MARE); Exemplul b) un client persoan fizic al unei societi comerciale poate fi reprezentat prin mulimea de perechi: (NUME, POPESCU); (PRENUME, ION); (LOCALITATE, BUCURETI); (TELEFON, 0213211231); (BANCA, BCR); (CONT_BANCAR, RO15RZBR0000070002170022). 1.2. Relaii ntre date. ntre date exist relaii sau legturi diferite. ntre datele care aparin unor tipuri de entiti se pot realiza dou feluri de legturi: prim legtur se exprim prin apartenena datelor la entitate; a doua legtur se definete pentru entitile de acelai tip sau de tipuri diferite. Exemple: a) Dac se noteaz cu SALARIATI mulimea salariailor unei societi comerciale, ntre datele a1 i a2 ce aparin acestei mulimi, se pot defini relaii de tipul: a1 are aceeai funcie de ncadrare cu a2; a1 are acelai salariu cu a2; a1 are aceeai vrst cu a2 etc. b) Se consider dou clase de entiti: PRODUSE_BANCARE i CLIENTI. ntre datele acestor dou clase de entiti se pot defini relaiile: un produs bancar poate fi achiziionat de unul sau mai muli clieni ai bncii; un client al bncii poate achiziiona unul sau mai multe produse bancare.
1.3. Structuri de date Structura de date este o colecie de date ntre care s-au stabilit un ansamblu de relaii pe baza crora funcioneaz un mecanism de selecie i identificare a componentelor. Altfel exprimat, o structur de date reprezint un anumit aranjament al datelor atunci cnd sunt stocate n memoria unui calculator. Datele din structurile de date pot fi manipulate cu ajutorul algoritmilor, n mai multe moduri, sortnd datele sau cutnd un anumit element. Structurile de date, n afara situaiei de instrumente de programare, servesc pentru stocarea i modelarea unor date din universul real. Mulimea de date, asociat structurii de date, poate cuprinde datele unui tip sau ale mai multor tipuri de entiti. Componentele structurii se identific prin nume sau prin poziia pe care o dein n structur n raport cu ordinea specificat. n situaia n care pentru localizarea unei componente se parcurg toate celelalte componente dinaintea ei, structura are acces secvenial. n schimb, atunci cnd o component poate fi selectat fr a ine seama de celelalte, structura are acces direct. Componentele unei structuri de date sunt date elementare sau sunt ele nsele structuri de date. Asupra unei structuri de date se pot efectua urmtoarele operaii: crearea (nseamn memorarea datelor iniiale pe suportul de stocare); 5 actualizarea (schimbarea strii structurii prin adugare, modificare sau tergere de elemente, modificarea valorii sau relaiilor dintre elemente); consultarea (accesarea componentelor structurii de date); sortarea (aranjarea elementelor unei structuri de date n conformitate cu criterii prestabilite); ventilarea (divizarea unei structuri de date n dou sau mai multe structuri de date); fuzionarea (formarea unei structuri de date noi din dou sau mai multe structuri de date) etc. Structurile de date care prezint aceeai organizare i asupra crora se execut aceleai operaii formeaz un anumit tip de structuri de date. Tipul de structur de date reprezint o mulime ordonat de date ntre care s-au stabilit anumite relaii i pentru care realizarea operaiilor se efectueaz cu un grup de operatori de baz care au o anumit semantic. Dac se ia n considerare tipul componentelor, structurile de date se clasific n: omogene (componentele sunt de acelai tip); eterogene (componentele au tipuri diferite). Cnd structura de date se descompune n structuri de date de acelai tip, atunci structura obinut este denumit recursiv. Dup nivelul de structurare al datelor, se deosebesc: structura fizic (structura de date care se refer la modul de implementare pe supori tehnici informaionali); structura logic (modul de ordonare a datelor i modul de folosire a operatorilor de tratare a datelor). Dac se ia n considerare posibilitatea modificrii valorilor i a structurilor, se identific: structuri statice (pe tot parcursul existenei acestora prezint acelai numr de componente i n aceeai ordine (adic au cardinalitate finit, prin cardinalitate nelegnd numrul elementelor mulimii); structuri dinamice (permit modificarea valorilor i a structurii de date prin aplicarea unor operatori; aceste structuri de date au cardinalitate infinit deoarece prezint un numr nelimitat de componente). O structur logic poate fi implementat att ca structur static ct i ca structur dinamic. Exist ns i structuri logice ce nu pot fi implementate static. n organizarea datelor trebuie definit att structura logic, ct i cea fizic, deorece cele dou nivele se condiioneaz reciproc. Din punctul de vedere al tipului de structur de date, se deosebesc: structura de date punctual (o entitate de grup izolat); structura de date liniar (cnd exist o relaie de ordine total ntre elementele coleciei de date; primul element nu are predecesori; ultimul element nu are succesori; ntre date se stabilesc relaii de tipul unu-la-unu; cnd ultimul element coincide cu primul element, structura liniar devine structur circular sau inelar); structura de date arborescent (este denumit i structur de date ierarhic sau descendent; acest tip de structur de date se definete cnd exist o relaie de ordine ntre elementele coleciei de date; exist un element unic care este denumit nodul rdcin (root node);orice nod diferit de nodul rdcin prezint un predecessor imediat 6 unic; orice nod care nu este terminal prezint un numr finit de succesori imediai; ntre noduri se stabilesc relaii de tipul unu-la-muli); structura de date reea (acest tip de structur de date se definete cnd exist o relaie de preordine ntre elementele coleciei de date; un nod prezint mai muli predecesori; un nod poate fi predecesor pentru propriul su predecesor; ntre elementele reelei se stabilesc relaii de tipul muli-la-muli); structura de date relaional (acest tip de structur de date este format din mai multe tabele, relaii sau tablouri de date elementare). Datele i structurile de date pot fi predefinite sau definite de utilizator. Lista subiectelor pentru pregtirea n vederea evalurii finale: ntrebri: 1. Care sunt noiunile fundamentale n organizarea datelor? 2. Ce operaii se pot efectua asupra structurilor de date? 3. Cum se clasific structurile de date? 4. Ce semnific relaiile ntre date?