Sunteți pe pagina 1din 78
Ye fon Lungu e) COT ETT A PET) 2 CTT CE) a| luliana Botha Viad Diaconita Alexandra Florea PEA CET py DE BAZE DE DATE BAZE DE DATE ee CPE ela | Proiectare E Implementare $ Ae 48 Baze de date. Organizare, Proiectare. Implemen| tare Exist4 doua tipuri de diagrame pentru realizarea modelarii statice, Prima dintre ele este diagrama claselor, care ne araté care sunt clasele existente si care sunt relatiile dintre acestea, iar ce-a de-a doua este diagrama de obiecte care modeleaza instantele componentelor din diagramele de clase. Clasele care compun sistemul pot fi modificate pe tot parcursul realizirii acestuia. Modelarea_ dinamicii sistemului consti in identificarea starilor sistemului si a evenimentelor care conduc la trecerea dintr-o stare in alta, Exist doud mari categorii de diagrame pentru a reprezenta dinamica: diagramele de interactiune si cele de comportament. Fiecare dintre acestea ofera © perspectiva diferitd asupra modelului de realizare a unui caz de utilizare sau a unui scenariu al unui caz de utilizare, In categoria diagramelor de interactiune intra diagramele de secventa, care descriu modul in care obiectele interactioneaz’ si comunica intre ele si diagramele de colaborare care evidentiaza atat interactiunile, cat si legaturile dintre seturile de obiecte. Diagramele de comportament sunt formate din diagramele de stare, care specifica starile in care se Basesc obiectele si evenimentele ce declanseazii trecerea dintr-o stare in alta si diagramele de activitate, care evidentiaza actiunile si rezultatele acestor actiuni, Modelarea informationali in metodologiile orientate-obiect aduce ° serie de avantaje dintre care mentionam: ° datele si prelucrarile nu mai sunt reprezentate distinct, ca in cazul abordarii structurate, ci incapsulat in clase de obiecte. in acest mod se mareste coerenfa rezultatelor analizei; analiza realizaté pentru un sistem poate fi modificata intr-un timp redus pentru a fi utilizata pentru analiza sistemelor din aceeasi sfera de activitate; * modelele utilizate sunt flexibile si ugor de intrefinut; * Se oferd posibilitatea de a aborda domenii si tipuri de probleme din ce in ce mai provocatoare; © are loc imbunatatirea comunicafiei intre utilizatori, analisti, proiectanti si programatori; © se observa o consisten{a crescuta intre activitatile de analiza, proiectare si programare: * rezullatele analizei, proiectari si implementdtii pot fi reutilizate: 49 Modele de date — se realizeaz reprezentarea explicité a elementelor comune tuturor componentelor sistemului; 7 © se ofera o consisten{& crescuta modelelor dezvoltate in timpul analizei orientate-obiect, proiectarii si programarii. Abordarea orientat-obiect asigura o anumita continuitate a modelelor in procesul de modelare. Trecerea de la analiza la proiectare & a proiectare la implementare implica doar 0 imbogatire a modelelor s dezvoltarea altora noi. 2.2 Modele de date 2.2.1 Definirea modelelor de date Deva lungul timpului au fost elaborate mai multe definitii pentru modelele de date, acestea avind diverse particularitati in functie de domeniul in care sunt utilizate. ; in contextul ingineriei software, putem defini un model de date ca find un model abstract care descrie modul in care datele sunt reprezentate si accesate. intr-un astfel de model sunt definite in mod Formal gate: si legaturile dintre acestea gi se prezinté in mod explicit semnificatia datelor, rezultnd date structurate. . © alti definitie considera ci un model de date reprezin abstractizare matematica a datelor si a operatiilor care pot fi efectuate asupra lor [ZAHA98]. ; ; t in concluzie, putem spune c definirea unui model de date presupune identificarea urmatoarelor elemente: structura de date, operatorii care actioneaz asupra structurii de date si regulile de integritate folosite pentru a : 5 omrce ieee i datelor. asigura mentinerea corectitudinii si coerentei . . Prin intermediul modelelor de date se poate realiza o reprezentare Unifieatii a numeroaselor formate de date cu care se Iuereazit in faleiie categorii de aplicatii, iar ca alternativa, permite coexistenja mai mul {tor reprezentari ale datelor. De obicei, modelele de date sunt specificate intr-un limbaj dedicat, in contextul unui limbaj de programare si deseori cle a completate de modele functionale, mai ales in cadrul modelelor la nivel de organizatie, ° 50. Baze de date. Organizare, Proiectare. Implementare 2.2.2 Structuri de date O structura de date este definita ca fiind 0 modalitate de stocare a informatiilor intr-un sistem informatic astfel incdt acestea sé poatd fi ulilizate in mod eficient. Ea poate fi definité ca o colectie de date intre care s-au stabilit o serie de relatii care conduc la un anumit mecanism de selectie si identificare a componentelor, Toate structurile de date care au aceeasi organizare si sunt supuse acelorasi operatii formeaza un anumit tip de structura de date. Un tip de structura de date Teprezinta o multime ordonata de date intre care s-au stabilit anumite relatii. Acestea pot fi identificate fie prin nume, fie Prin pozitia pe care o ocupa in cadrul structurii, conform ordinii stabilite in momentul definirii. Exist mai multe perspective cu privire la modul de grupare a datelor intr-o structuri, dar toate acestea accept faptul ca fiecare data dintr-o structura are atasata totalitatea atributelor care rezulta din multitudinea de clasificari ce se iau in considerare. O entitate sau un obiect dintr-o structura si caracteristicile asociate se definesc prin intermediul urmatoarelor elemente: camp (cel mai mic element al unei structuri de date care poate fi prelucrat); grup simplu sau compus (rezultat prin gruparea cAmpurilor sau a altor grupuri); inregistrare (un ansamblu de cémpuri si grupuri). Mulfimea de date care se asociazi structurii, conform unei relatii de ordonare, poate sa fie compusa din datele unui singur tip de entitate sau din datele mai multor tipuri de entitati. Alegerea structurii de date Teprezintaé, pentru multe tipuri de Programe, obiectivul principal al specificatiilor de implementare, deoarece de aceasta se leagd numeroase alte elemente. Astfel, o structura bine aleasi va reduce dificultatea implementérii, va permite utilizarea unor algoritmi eficienti si efectuarea unui numir mare de operafii de baz cu un minim de resurse si va influenfa in mod direct calitatea si performanta produsului final. Majoritatea limbajelor dispun de mecanisme care permit reutilizarea structurilor de date si pentru alte aplicafii, prin ascunderea detaliilor de implementare, sigure si verificate, in spatele unor interfeje controlate. Un exemplu in acest sens il reprezinta utilizarea mecanismului de clase de catre limbajele de programare orientate-obiect, Numeroase limbaje de programare si medii de dezvoltare (C++, Java) au inclus in bibliotecile standard pe care le utilizeaza structuri de date, acesta fiind inca un semn al importantei pe care aceste structuri o prezinta. intre datele care apartin unor tipuri de entitati pot exista doua Modele de date ; _ SL categorii de legéturi $i anume: legituri de apartenen{a a datelor la entitate si legaturi dintre entitatile de acelasi tip sau de tipuri diferite. ‘Sa consideram urmiitoarele exemple: oo 1. Fie A muljimea studentilor care invata in cadrul unei Universiteyi. Intre datele acestei multimi se pot stabili relatii de tipul: e xaabsolvit acelasi liceu ca $i y; © xare media mai mare ca y; © xare aceeasi specializare ca $i y. 2. Fie B multimea masinilor comercializate de o reprezentanta auto. fntre datele care caracterizeazd aceste produse existé relatii de tipul: © xeste mai ieftin decdt y; © x are un consum mai mare decdt y; © x este intr-o clasd superioard fafa de y. 7 . 3. Fie doud clase de entitéfi Cliengi i Produse. intre datele acestor doud clase de entitati pot exista urmdtoarele relaji ¢ multimea de legaturi R> intre entitdgile clasei Produse, date de faptul ca un produs poate intra in alcdtuirea altui produs, © multimea de legdturi R2 intre clasele de entitéifi Clienti si Produse, date de faptul cé un client poate comanda unul sau mai multe produse, iar un produs poate fi comandat de unul sau mai multi clienti. Legaturile stabilite in cadrul unei structuri reprezinta corespondente intre entitatile din structura respectiva purtand numele de asocieri. : Fiecare asociere este caracterizaté de grad, acesta reprezentand numéarul de entitafi care intra in legatura respectiva. Asocierile pot fi: © unare —o entitate intra in asociere cu ea insasi, iar gradul este 1; ¢ binare — doua entitati intra in relatie, iar gradul asocierii este 2; . © multiple — particip’ mai multe entitati la relatie, iar gradul asocierii este mai mare decat 2. De obicei, in practicd apar asocierile (relatiile) binare. : Definitie. Fie A 0 colectie oarecare de date, nevidd. Se numeste relatie binara pe A o submultime R a produsului cartezian AxA care indeplineste o Pproprietate (legatura). Numim elemente asociate prin relatia R acele elemente x, y pentru care (xy) € R. ; : ; Daca (x, y) € R spunem ca x este asociat lui y prin relafia R sau x este in relatia R cu y, fapt care se simbolizeaza prin x R y. 52 ___Baze de date. Organizare. Proiectare. Implementare Exemplu: Fie A multimea datelor despre studentii unei universitati. Spunem ca relatia R ,,are aceeasi specializare cu” asociazd fiecdrui student din multimea A pe toti ceilalti studenti cu aceeasi specializare, cu condifia sa fac parte tot din A. Astfel, se pune in eviden{aé o multime de perechi ordonate (x, y) cu proprietatea ca elementelor x li se asociazd elementele y prin relajia ,,x are aceeasi specializare cu y”. Proprietdtile relatiei binare dintre date sunt: reflexivitate, simetrie, antisimetrie si tranzitivitate. Definitie. Fie A o multime de date. Spunem cé 0 relatie R pe multimea A este reflexiva daca pentru (V) x € A, avem x Rx. Definitie. Fie A 0 multime de date. Spunem ci o relatie R pe mulfimea A este simetricd daca pentru (VY) x, y € A, x Ry implica si y R x. Definitie. Fie A o multime de date. Spunem ci o relatie R pe multimea A este antisimetricd daca pentru (WV) x, y € A cu proprietatea ca x Ry siy Rx, atunci x = y. Definitie. Fie A 0 multime de date. Spunem cé o relatie R pe mulfimea A este tranzitiva dac& pentru (V) x, y, a € A cu proprietatea ca x Ry si y R 2, atunci x R z. in funcfie de proprietitile pe care le are o relafie binard, putem identifica patru categorii de relatii: de ordine, de ordine totald, de preordine si de echivalenta. Definitie. Fie A o multime de date. O relatie binara R definita pe A se numeste relatie de echivalenjd daca este reflexiva, simetricd gi tranzitiva (figura 2.2). Lucrari Figura 2.2 Clase de echivalenta, Modele de date _ 53 Definiie. Fie A 0 multime de date. Daca o relatie binara R, definita pe A este reflexiva, asimetrica si tranzitiva, atunci relatia R este o relatie de ordine. 7 Definitie. Daca o relatie binari R, definité pe A, este reflexiva gi tranzitiva, atunci relatia R este o relafie de preordine. Definitie. Fie A o multime de date. Daca pentru (V) x,y € A,x Ry sau y Rx, relafia dintre elementele mulfimii este de ordine totald. CAnd discutim despre asocierile binare care apar intre entitifile dintr-o structura de date, putem identifica mai multe tipuri de asocieri, i) functie de numérul de instante ale unei entitdfi care intra in asociere cu o instanta a celeilalte entitdti si anume: asociere unu la unu, asociere unu la mulfi, asociere mulfi la multi. Asocierile de tip unu Ja unu constau in faptul ci unei instante din prima entitate fi corespunde o singur’ instan{ din cea de-a doua $i reciproc. Exemplu: denumirea unui utilaj are un singur numar de inventar gi un numar de inventar este asociat unei singure denumiri de utilaj (figura 2.3). Denumire utilaj Numar inventar Figura 2.3 Asociere de tip unu la unu Asocierile unu la mulfi constau in faptul c& unei instante din prima entitate ti corespund mai multe instante din cea de-a doua, dar unei instanfe din a doua entitate ti corespunde cel mult una din prima. Exemplu: un utilaj poate face parte dintr-o singura grupd de utilaje, 0 grupd de utilaje poate avea mai multe utilaje (figura 2.4) Figura 2.4 Asociere de tip wnu fa multi Grupa de utilaje Asocierile mulfi la mulfi constau in faptul c& fiecdrei instante din prima entitate ti corespund mai multe din cea de-a doua gi reciproc. 34 Baze de date. Organizare. Proiectare, Implementare Exemplu: un ulilaj este livrat la mai mulji clien{i, un client primeste mai multe utilaje (figura 2.5). _™ b—___<_ =] Figura 2.5 Asociere de tip multi la multi Clasificarea structurilor de date poate fi realizaté dupa o multitudine de criterii. Mai jos, vom prezenta cdteva dintre acestea si clasele de structuri corespunzatoare. In functie de modul de acces la date se identifica dou categorii de structuri: structuri._ cu acces secvential $i structuri cu acces direct. La structurile cu acces secvential este necesarai Pparcurgerea tuturor componentelor acesteia pana la elementul cautat, pentru a-l putea localiza, iar la structurile cu acces direct, elementul cautat poate fi selectat fara a tine seama de celelalte componente. in functie de tipul componentelor unei structuri identificdm: structuri omogene si structuri eterogene. La structurile omogene toate componentele au acelasi tip, iar la structurile eterogene componentele sunt de tipuri diferite, in functie de Posibilitatea de modificare a valorilor sau chiar a structurii, exist structuri statice gi structuri dinamice. La structurile statice, numéarul de componente si relafia de ordine intre acestea nu se modifica, acest tip de structuri fiind denumite si structuri avand cardinalitate finita (cardinalitatea reprezinta numarul de componente). La structurile dinamice, se pot modifica atat valorile, cat gi structura. Ele se mai numese structuri avand cardinalitate infinita, deoarece pot avea un numar nelimitat de componente. Alocarea memoriei pentru o structura de date se realizeaz unitar la nivelul structurii, adicd pentru o structura staticd, alocarea este statica atat la nivelul componentelor, cAt si la nivelul intregii structuri, iar pentru o structura dinamica alocarea este dinamica atat la nivelul intregii structuri, cat si la nivelul componentelor. {n functie de nivelul de structurare a datelor exist structuri logice si structuri fizice. Structurile logice se refera la modul de ordonare a datelor si operatorii de tratare a acestora, iar structurile fizice se refera la modul de implementare a datelor pe suportul informational. in momentul in care are loc organizarea datelor, trebuie definite alat structura logicé, cAt si structura fizica, cele dou’ niveluri condifiondndu-se reciproc. Modele de date 55 Existé o serie de legaturi intre diferitele categorii de structuri prezentate anterior care determina ca o structura oarecare si se incadreze simultan in mai multe dintre tipurile mentionate. De exemplu, 0 structura Jogica poate fi implementata ca structura static sau ca structuraé dinamica, cu mentiunea ca anumite structuri logice nu pot fi implementate static. ; in functie de tipurile de legaturi exist cinci structuri logice si anume: structura punctuald, structura liniard, structura arborescentd, structura refea $i structura relationald. ; Structura punctualé — este structura reprezentata de o entitate grup izolati. De exemplu, tipul de entitate Persoana. Considerand ca nu exista relatii explicite intre instantele entitafii, acest tip de entitate luat singular reprezinta structura punctuala, ; : Structura liniaré ~ intre elementele sale exist o relatie de ordine totala. O structura liniara se defineste printr-o serie de propriet’ti si anume: cardinalul multimii elementelor initiale (maximale) este egal cu 1; cardinalul multimii elementelor terminale (minimale) este egal cu 1; orice element neterminal are un succesor imediat unic; primul element nu are predecesori; ultimul element nu are succesori; relatiile stabilite intre date sunt de tipul 1 la 1. Structura liniara definita prin intermediul proprietatilor de mai sus poarta numele de structura liniara simpla (figura 2.6). Y Y Y oY Figura 2.6 Structura liniar’ simpli Daca acesteia i se mai adauga o proprietate gi anume aceea ca exist’ un cuplu in relatie (z, x) format din ultimul element z si primul element x, atunci structura liniara este inelara sau circulara (figura 2.7.). Figura 2.7 Structura liniara cireulara intr-o structura liniara, daca exist componente care sunt Ja randul lor structuri arborescente, spunem ci avem structuri liniara cu elemente 56 Baze de date. Organizare. Proiectare. Implementare structurate arborescent. Daca elementele unei structuri liniare sunt structuri retea, atunci spunem ca avem structura liniaraé cu elemente structurate refea. Principalele structuri liniare utilizate freevent sunt masivele unidimensionale (vectorii), masivele multidimensionale (matrice), stiva si listele. Masivele unidimensionale, cunoscute si sub numele de vectori, sunt structuri de date omogene, care contin un grup de elemente ce pot fi accesate direct printr-un index [BLACO08]. Ele sunt utilizate in marea majoritate a programelor deoarece sunt folosite pentru rezolvarea unor probleme simple, dar omniprezente, cum ar fi problemele de ordonare a sirurilor, de calcul a indicatorilor statistici medie si dispersie sau pentru gasirea elementului minim. fn cele mai multe limbaje fiecare element de tip vector are acelasi tip de data si ocupa o zona de memorie continua Putem clasifica masivele in functie de modul de dimensionare in urmatoarele categorii: masive cu dimensiune fix& (staticd) determinata la alocare si masive cu dimensiune variabild care permit redimensionarea. Masivele multidimensionale pot fi accesate prin utilizarea mai multor indecsi, céte unul pentru fiecare dimensiune, numarul acestora indicdnd dimensiunea masivului precum si denumirea sa (n-dimensional). Exist mai multe abordari ale indexarii acestui tip de masive. O prima abordare este cea utilizaté frecvent in limbajul C si anume stocarea elementelor fiecdrui rand in ordine. O alternativa a acestei abordari este cea folosita in Fortran, care prefera stocarea elementelor fiecdrei coloane in ordine. Aceste doua abordari ofera o buna referire, dar limiteazi masivele la o forma dreptunghiulara, astfel incdt toate randurile trebuie sa aiba aceeasi dimensiune. O alt& abordare care elimina aceasta limitare este cea a vectorilor de vectori, in care fiecare element dintr-un masiv unidimensional refera un alt masiv unidimensional. Masivele pot fi ori liniile ori coloanele. in aceasta situatie, dimensiunile nu mai sunt uniformizate, dimensiunea unui rand depinznd de dimensiunea altuia. Stiva reprezinta 0 colectie de elemente din care putem extrage doar elementele cel mai recent adaugate. Ea mai este cunoscuta si sub denumirea de LIFO — Last In, First Out. in lucrul cu stive se utilizeaz& trei operafii de bazi: push — pentru adaugarea elementelor in stiva, pop — pentru extragerea unui element din list si trimiterea sa catre programul apelator si isEmpty — pentru a verifica dacd stiva este goala. Un numar important de limbaje de programare sunt orientate pe stiva, insemnand ca definese operafiile de baz& cum ar fi adaugarea sau afigarea Modele de date 37 folosind stiva. Unele limbaje folosesc aceeasi stiva pentru preluarea si returnarea de valori (PostScript), iar altele (Forth) folosesc doua stive. De asemenea, multe limbaje care implementeaz’ masini virtuale (Java) sunt orientate pe stiva. Aproape toate mediile care lucreazi cu memoria contin o stiva speciala (call stack) pentru a memora informatii despre functia sau procedura apelaté si despre cea apelatoare. Folosind rutine speciale se tine gestiunea parametrilor formali si reali intre subprograme. Stiva este foarte important jn cazul subprogramelor recursive, mecanismul fiind gestionat de mediu si nu de programator. Unele limbaje, precum C, folosesc stiva pentru variabilele locale. Se aloc& spatiu in stiva atunci cénd se intra in subprogram gi se elibereaza la terminarea subprogramului. In practica, stiva poate fi implementata prin diferite structuri de date cum ar fi: masive, liste sau arbori. Listele reprezinta colectii ordonate de entitati si sunt utile in special atunci cand este necesara utilizarea unei structuri dinamice in care se adaugd sau din care se sterg in mod frecvent elemente, iar locul acestora in list& este semnificativ. Un element din lista contine o informatie specifica si, eventual, o informatie de legdtura si poarté numele de nod. Accesul la datele continute intr-o lista se face in mod secvential. O lista poate fi definita in contextul programarii orientate-obiect ca un tip abstract de date care poate fi specificat prin intermediul unui constructor care creeazi o lista fara niciun element si a patru operatii: una pentru a testa daca exist sau nu elemente in lista; a doua pentru adaugarea unei entitati in lista; a treia pentru a determina primul element din lista si cea de-a patra pentru referirea listei folosind toate elementele mai putin primul element (coada listei). In practica, listele sunt implementate folosind masivele sau listele inlintuite. De multe ori termenii de lista si lista inlantuita sunt folositi ca sinonime, dar se poate folosi si termenul de secven{a pentru a face diferenja intre o listé ordonata gi una inlanquita. Se pot identifica trei tipuri distincte de liste si anume: liste simplu inlanfuite; liste dublu inkintuite; liste circulare. in cadrul listelor simplu inlintuite se face o legaturaé cu nodul urmator, parcurgerea acestora putandu-se realiza intr-un singur sens (figura 2.8). Baze de date. Organizare, Proiectare, Implementare (+ —~(2}— 2} — 9 Figura 2.8 Lista simplu inlanuita fn cadrul listelor dublu fnlanfuite exist® o legdtura atat cu nodul urméitor, cat si cu precedentul, parcurgerea lor Putandu-se realiza in ambele sensuri (figura 2.9), Figura 2.9 Lista dublu inlintuita Tistele circulare au in plus o legatura intre ultimul si primul nod (figura 2.10). Figura 2.10 Lista circulars Structura arborescenté (arbore) Teprezinta o colectie de date intre ale carei clemente exist o telafie de ordine, Un arbore este un graf aciclic care emuleaza o structura ierarhica prin intermediul unui set de elemente numite noduri interconectate (figurile 2.11 si 2.12), O astfel de structura are un element unic numit radacina care este reprezentat in varful structurii, in mod invers fata de lumea reali, Orice nod diferit de radacina are un predecesor imediat unic, numit parinte si orice nod neterminal are un numar finit de succesori imediati numiti copii. Relatiile stabilite intre noduri sunt de tipul I:m. Un nod oarecare din cadrul unui arbore Poate fi frunz& sau nod intern, Nodul intern este acela Care are unul sau mai multi copii. Modele de date = Figura 2.11 Arbore binar Figura 2.12 Structura ierarhiex in cadrul unui arbore se poate determina lungimea drumului intre doud noduri. Fie un arbore format din mulfimea nodurilor (a, aia, ., ax). in mod formal putem defini drumul de la nodul a; la nodul a, ca find o suecesiune de noduri (aj, aia, .... dx) in care, pentru (9) dias hem, airy este un succesor imediat al lui ay. Drumul de lungime maximé constituie inalfimea arborelui. Un arbore ordonat de gradul 2 se numeste arbore binar. Un arbore este echilibrat daca diferenta dintre drumurile de la ridicina la orice nod i I mult 1. “mit eats srr arbrecent prolate care clemeeie si fe escent sau retea. et . a stat stactirfl Jn doud categorii, arbori reeursivi si arbori ordonafi. Arborii recursivi sunt aceia in eare nu se aplic& nicio reguli i ordonare a nodurilor. Arborii ordonafi, stabilesc © pozitie pentru nodule Copii, la dreapta sau la sténga pairintelui, conform unei reguli apriori stabilite. Baze de date. Organizare, Proiectare. Implementare 7 Structura refea reprezinta o colectie de date intre ale carei elemente exist o relafie de preordine. O astfel de structura se caracterizeaza prin urmatoarele proprietiti: . structura refea este un graf in care intre doud noduri exista legaturi bidirectionale; * un nod are mai mulfi predecesori si la randul su poate fi predecesor Pentru propriul predecesor, objindndu-se astfel cicluri in refea; * cardinalul multimii nodurilor inifiale este mai mare sau egal cn 1; cardinalul multimii nodurilor finale este mai mare sau egal cu 1; , ¢ relatiile stabilite intre elementele refelei sunt de tipul multi la multi ___Sttucturile de tip refea pot fi simple sau complexe. O rejea este simpli daca pentru orice cuplu (a,b) € R=> (b, a) ¢ R (figura 2.13.) intrare Figura 2.13 Structura retea Structura relationala reprezinta 0 colectie de date structurate in tabele de date elementare fara o legatura fizicd intre ele (figura 2.14). Componentele tabelelor se afla intr-o forma normala, aceasta reprezentand starea in care se aflé structura tabelului in functie de diferite cerinte impuse. Exista cinci forme normale in care se pot afla, pe rand, componentele unui tabel. 2 Departamente __| Né departament Nume. _ > Denumire Prenume Locatie Data angajare Manager Figura 2.14 Structura relational Modele de date 6. Tabela sau relafia reprezinta un ansamblu format din n coloane (atribute/subansambluri) si m randuri (tupluri/linii) care respect urmatoarele conditii minime: e si mu existe date la nivel agregat (valorile aflate la intersectia liniilor cu coloanele sa fie la un nivel elementar); liniile s& fie distincte unele fata de altele; e sa nu existe coloane repetitive in descriere; si fie intr-una din cele cinci forme normale (FN1, FN2, FN3, FN4 sau FNS). Operatiile pe aceste structuri sunt realizate cu operatori relationali ai algebrei relationale sau ai calculului relational. 2.2.3. Operatori Asupra unei structuri de date se pot efectua, cu ajutorul operatorilor, un numar mare de operatii asupra valorilor din structuré sau chiar asupra structurii in sine. Cele mai frecvente operatii realizate asupra structurilor de date sunt urmatoarele: © crearea (aceasta se refera la memorarea initialé a datelor pe suportul de memorie); ¢ actualizarea (presupune modificarea starii unei structuri_ prin adaugarea sau stergerea unor elemente ale structurii, modificarea valorii unor elemente sau modificarea relafiilor existente intre elemente); © consultarea (accesul la elementele structurii in vederea prelucrarii acestora); © sortarea (aranjarea elementelor unei structuri dupa anumite criterii); ¢ ventilarea (descompunerea structurii in doua sau mai multe structuri); Jfuzionarea (formarea unei noi structuri din dou’ sau mai multe structuri existente). Exist gi operatii specifice fiecdrui tip de structura de date, Astfel, pentru structura relationala exist operafii precum: proiecfia, selectia, jonctiunea, intersectia, reuniunea, inchiderea tranzitiva etc. Operatiile la care poate fi supusa o structura de date gi eficienfa cu care acestea sunt realizate depind in mare masura de modul de memorare a datelor pe suportul de memorie. 62 Baze de date. Organizare, Proiectare. Implementare 2.2.4 Restrictii de integritate Restricfiile de integritate, numite gi constrangeri sau reguli de integritate, au rolul de a pastra datele corecte, consistente si coerente in procesul de culegere, stocare, prelucrare, transmitere si extragere a datelor. Acestea sunt: restrictii de comportament, restricfii de unicitate a unor valori ale atributelor, restrictii care stabilesc legaturi logice intre date, restrictii privind obligativitatea existentei unor valori etc. Restrictiile de comportament sunt cele care fin cont de comportamentul valorilor atributelor. in aceasta grupa includem: incadrarea valorilor unui atribut intre anumite limite de verosimilitate specifice realitatii; simbolurile care sunt utilizate pentru reprezentare; numéarul de caractere care descriu valoarea datelor; valorile pe care le iau datele in anumite situatii; compararea valorilor anumitor atribute cu niste valori rezultate din calcule; legaturile logice care exista intre valori etc. Restrictiile de unicitate a unor valori ale atributelor impun ca intr-o colectie de date si nu existe mai multe entititi care au aceleasi valori de identificare. Restricfiile care stabilese legdturi logice intre date sunt utilizate pentru a putea stabili oricnd coerenta datelor, Restrictiile privind obligativitatea existenfei unor valori sunt absolut necesare pentru corectitudinea si coerenta datelor. Aceste restrictii impuse datelor sunt aplicabile tuturor modelelor de date. Pe langa acestea, existi o serie de alte restrictii care sunt specifice anumitor modele de date. © problema aflati in atenfia dezvoltatorilor de pachete software pentru gestiunea datelor este posibilitatea declararii restrictiilor prin intermediul unor limbaje de descriere. in caz contrar dezvoltatorii de aplicatii trebuie sa le includa in Programe speciale de validare a corectitudinii si coerentei datelor. 2.3 Tipologia modelelor de date Conform [ANSI75] modelele de date pot fi incluse intr-unul din cele trei tipuri de modele de date: modele conceptuale, modele logice si modele fizice. Modelele conceptuale descriu semantica domeniului si confin entitafi ale claselor care reprezint elemente de interes pentru domeniu $i afirmatii Modele de date 63 despre asocierile existente intre aceste entitafi. Acestea sunt reprezentate prin schema conceptuala. Modelul conceptual al unei baze de date este reprezentat prin modelul entitate-asociere (Entity-Relationship Model), introdus in 1976 de P.S. Chen. Acesta defineste mulfimile de entitati si asocierile dintre ele, dar nu impune niciun mod specific de structurare si prelucrare a datelor. Modelul entitate-asociere extins (Enhanced Entity-Relationship Model) cuprinde extensii ale modelului lui Chen si permite definirea de subtipuri ale unui tip de entitai, care mostenesc atribute de la tipul de entitate pe care il extind (si care, in acest context, se numeste supertip) si au in plus atribute specifice semnificatiei lor. in termenii acestui model, o entitate este un obiect care exista si poate fi deosebit de alte obiecte similare. Din punctul de vedere al constructiilor standard din bazele de date, o entitate poate corespunde unei inregistrari, iar atributele sale corespund cAmpurilor inregistrarii. Modelele logice descriu structura logicd a datelor si pot confine descriptori ai colectiilor, atributelor, marcatori XML etc. Modelele logice sunt reprezentate conform cerinfelor impuse de o anumiti tehnologie de implementare sub forma unei scheme logice. Modelele fizice descriu modul in care sunt stocate datele. Aceste modele contin partifii, spatii de tabela, indecsi etc. si se reprezinta prin schema interna sau fizica. Schemele conceptuala, logic’ si fizici au un anumit grad de independenta, fiind posibilé realizarea unor modificari asupra uneia dintre scheme, fri s& le influenteze pe celelalte doua. De exemplu, se poate modifica schema fizicd prin adoptarea unei noi modalititi de stocare a datelor, fra a exista repercusiuni la nivel conceptual sau logic sau poate fi schimbata structura logic& fara a fi afectaté schema conceptuala. Astfel de modificari pot fi realizate cu conditia ca structura si raména consistent’ in raport cu celelalte structuri. in functie de modul in care se definesc elementele unui model de date exist: modele ierarhice sau arborescente; modele refea; modele relationale si modele orientate-obiect. Modelul ierarhic este unul dintre primele modele de date propuse folosite pentru bazele de date. E] are ca structura de baz tipuri de inregistrari si introduce ierarhia ca structura pentru realizarea asocierilor dintre acestea. O ierarhie are un tip de inregistrare definit ca radacina si mai multe tipuri de inregistrari subordonate, noduri copii, legate sub forma de arbore. Orice nod din aceasta ierarhie care nu este radacina sau nod final are un singur nod parinte, legatura dintre copil si parinte fiind de tipul 1:1 si unul lea Baze de date. Organizare. Proiectare. Implementare sau mai multe noduri copii, legatura dintre parinte si copiii sai fiind de tipul 1:1 sau Lum. Una dintre limitarile modelului ierarhic deriva din faptul ca relatiile parinte-copil sunt realizate fizic. in acest caz, modelele nu asigura independenfa fafa de modul de implementare fizici a datelor si astfel se limiteazi extensibilitatea, intrefinerea usoara, gradul de refolosire a componentelor precum si portabilitatea aplicatiilor. Modelul refea are © structura similar cu modelul ierarhic, cu deosebirea ci un nod oarecare poate avea mai multi superiori (noduri de tip parinte). Acest model a fost introdus in anul 1969 si impreuna cu modelul ierarhic au stat la baza primei generatii de sisteme de gestiune a bazelor de date. Modelul retea are, de asemenea, ca structuri de bazi tipul de inregistrare si in plus introduce conceputul de tip sef pentru asigurarea legaturilor intre tipuri de inregistrari. in modelul refea, actualizarile sunt cele obignuite (adaugare, modificare, stergere) si se pot opera atét pe tipurile inregistrarilor logice, cét si pe legiituri, iar in ceca ce priveste interogarea bazei de date, pot aparea cereri tipice de genul: atributele unui singur tip de inregistrari logice, legaturile dintre doua tipuri de inregistrari sau legaturile dintre mai multe tipuri de inregistrari. Modelul relational se bazeazi pe teoria matematicd a algebrei relationale si a calculului cu predicate de ordinul intdi. Algebra relationala cuprinde operafii caracteristice multimilor (intersectie, reuniune, diferenta, produs cartezian) si operafii relationale (selectie, proiectie, jonctiune). Modelul relational are o singura structura de date, relatia (tabela), care reprezinta o submultime a produsului cartezian al unor domenii (un domeniu este o multime de valori ale entitatilor). fn plus modelul relational are asociat si un limbaj de interogare relational (bazat pe transformari): SQL (Structured Query Language), care este un limbaj declarativ, spre deosebire de limbajele bazate pe navigare, specifice. Modelul de date orientat-obiect permite reprezentarea unor structuri de date complexe si a unor ierarhii, asigurand posibilitatea de a defini tipuri de date care combina atat structura de date, cat si definirea procedurilor. Un obiect este o entitate cu un rol bine definit in sistem, caracterizat de stare, comportament si identitate. Asupra unui obiect se poate intreprinde © actiune, care poate declanga sau efectua o alti actiune (de exemplu: persoana, magina, factura, contract, casa, salariat ete. Obiectul poate fi concret (0 entitate tangibild si vizibila, de exemplu, © persoana, un loc, un lucru), o entitate abstract’ (un concept, un eveniment, de exemplu, departament, cisitorie, idee) sau un artefact al procesului de Modele de date : 65° proiectare (de exemplu, interfata cu utilizatorul, controlul, planificarea). Un obiect isi expune comportamentul prin intermediul operatiilor care ji pot afecta starea. Starea unui obiect este data de valorile pe care Je iau proprietatile sale la un moment dat. Comportamentul arata modul in care un obiect actioneaza si reactioneazi la evenimente. oO operatic este 0 simpli actiune pe care o executa un obiect asupra altui obiect pentru a primi un raspuns. Multitudinea operatiilor pe care le poate efectua un obiect sau care se efectueazd asupra acelui obiect, implementate intr-un limbaj de programare, poarta denumirea de metode, iar multitudinea metodelor se spune ca defineste comportamentul obiectului de referinga. cs Clasele de obiecte intre care existé diverse legaturi, impreunad cu operatiile si restrictiile specifice abordarii orientate-obiect, definesc modelul de date orientat-obiect. 2.4 Rolul si limitele modelelor de date vitala. Modelele de date sustin atingerea acestui deziderat prin punerea la dispozitic a definitiei si a formatului datelor [WEFL99]. Astfel se poate spune ca principalul rol al modelelor este acela de a asigura cadrul necesar astfel incat diferite aplicatii si utilizeze aceleasi structuri pentru stocarea si accesul la date, in esenfa a asigura c& diferite aplicafii vor putea imparti aceleasi date. Cu toate acestea se intémpla frecvent ca realizarea gi mentenanta sistemelor si coste mai mult decat ar fi necesar, iar modelele de date, din cauza slabei implementiri, s4 ajunga si reprezinte un obstacol pentru procese in loc s& acfioneze ea un mecanism de susfinere. in ceea ce priveste limitele modelelor de date, se poate intampla ca anumite tipuri de entitati implicate in model s& nu fie corect identificate sau chiar s& nu fie identificate deloc, ceea ce duce la aparitia redundanfei datelor, a structurilor de date incomplete si implicit la cresterea costurilor de dezvoltare si mentenanta. ; De asemenea, costurile dezvoltarii sistemelor informatice sunt afectate de necesitatea dezvoltirii de interfete complexe pentru schimbul de date, interfefe necesare datoritA faptului ca sisteme diferite implementeaza modele de date diferite. | | Principalul motiv al acestor probleme gi limite il reprezinta lipsa standardelor care pot asigura ci modelele se vor conforma cerinjelor gi ci vor fi consistente. 68 Baze de date. Organizare. Proiectare. Implementare 3.1 Fisiere de date 3.1.1 Conceptul de fisier In momentul in care volumul de date a crescut, memoria interna a devenit insuficienta si atunci a aparut organizarea datelor in memoria extern sub forma de figiere, Toate sistemele de operare si toate limbajele de Programare lucreazi cu nofiunea de fisier pentru organizarea datelor in memoria externa. Fisierul de date reprezinta 0 colectie de date omogene organizata dupa anumite reguli pe un suport informational prelucrabil cu calculatorul electronic. Caracteristicile unui figier se refera la o serie de elemente care trebuie avute in vedere atunci cand datele sunt stocate in memoria externa intr-o astfel de organizare. Cele mai importante caracteristi refera la: actualizarea sa, volumul de date. i ale unui fisier se natura datelor continute, prelucrarea acestora si Actualizarea presupune realizarea a rei operafii: adiugarea, modificarea si stergerea de inregistriti intr-un figier existent, In functie de modul de organizare a fisierului si de limbajul de programare in care se lucreaza, aceste operafii au implementari specifice. Natura datelor din figier trebuie sa fie omogend, adica s& se refere la aceeasi entitate din lumea reali, Aceasti caracteristica rezulta chiar din definijia unui fisier si respecta realitatea din lumea inconjuratoare unde entitaile sunt omogene. Prelucrarea datelor din fisier se refer’ la tipul si freeventa (zilnic, lunar etc.) procesttilor efectuate pe inregistrari, Cele mai utilizate tipuri de Preluerdri efectuate asupra datelor din figiere sunt: interogarea, actualizarea, conversiile, operatiile matematice etc, Yolumul de date (V) din figier se masoara in numar de octefi si se obfine inmultind numarul mediu de inregistréri (n) din fisier cu lungimea medie (/) in octeti (bytes) a unei inregistrari, la care se poate adauga un numar de octeti pentru partea de identificare (i) a fisierului Modul de acces la date reprezinta procedeul prin care se determind locul ocupat de o inregistrare intr-un figier si depinde de modul de organizare. Tipurile (modurile) de acces pentru figiere sunt: secvenjial, direct, dinamic. 69 rganizarea datelor in baze de date Accesul secvential presupune ca localizarea unei inregistrari se face jn parcurgerea tuturor inregistrarilor care o preced. Un astfel de acces este Be ns pentru toate modurile de organizari de fisiere. Accesul secvential se Be omands pentru fisierele din care sunt necesare, la o prelucrare, peste 50% din numarul total de inregistrari. Pentru optimizare se recomanda ordonarea fisierului dupa anumite criterii, prin procesul de indexare sau prin sortare. Aecesul direct presupune c& localizarea unei inregistrari se face cu ajutorul unei chei definite de programator. O valoare furnizata de utilizator (de la tastaturaé sau din alta sursi) — cheia de acces, va fi comparatt cu valorile existente in fisierul de index. Daca este gasita, atunci . as in fisierul de index adresa fizic& corespunzatoare si se face acces direct la inregi! a de pe disc. Be hoses Uinect se poate face dupa numarul de realizare | sau dupa o valoare a cheii, in functie de modul de organizare a fisierului. In wazele Oe date relationale accesul direct dupa numar de realizare se poate face ‘ nicio alti operatie suplimentara, pentru ci sistemul de gestiune a iene le date (SGBD) numeroteaz4 automat inregistrarile de la 1 la numarul lor maxim. Accesul direct dupa cheie = er face doar daca s-au atasat (creat) i i unul sau mai multe figiere de index. ; Peer dinamic presupune cd la o singura deschidere de figier se pot localiza, alternativ si repetat, inregistrari in acces secvential si acces direct. in bazele de date relationale este permis accesul dinamic pentru ca la o deschidere a unei tabele, este permisd utilizarea tuturor instructiunilor de acces, att secvential cat si direct, in mod consecutiv, fara. nicio restrictie. © Sirueturarea datelor in fisiere este Ficuta la nivel logic si in functie de limbajul de programare in care se lucreaza, programatorul va descrie un anumit tip de fisier prin codul el Seopa acestei descrieri este de a se it ‘ite prelucrari asupra datelor din fisiere. el) Sages fizica a tsicelor semnifica modul de reprezentare al acestora pe suportul tehnic de informatie (in memoria extern), si anume oe succesiune de octeti cu o anumita semnificatie. Aceasta structurare °O face le obicei sistemul de operare al calculatorului, prin componenta SGF (Sistemul de Gestiune a Figierelor), dar exist si pesibilitatea ca anumite produse s si-gi fac o structurare fizica proprie a figierelor. si Acateas eae structurii logice (facut intr-un program) peste structura fizicd (Ricuta in memoria extern’, de obicei pe tise) a in sarcina Jui sau a produsului software cu care se lucreazi. : Ee Nivalal logic z refera la atributele fisierelor, metadatele (descrierea structurii de date), alte detalii de ordin temporal si calitativ, dar nu se refera la

S-ar putea să vă placă și