bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online Pe HaiSaRadem.ro vei gasi bancuri, glume, imagini, video, fun, bancuri online, bancuri tari, imagini haioase, videoclipuri haioase, distractie online. Nu ne crede pe cuvant, intra pe HaiSaRadem.ro ca sa te convingi.

CAP1. ELEMENTE DE TEORIA BAZELOR DE DATE

 

1.1. Baza de date(BD)

1.2.   Sistemul de gestiune a bazelor de date (SGBD)

1.3.   Administrarea BD

 

1.1. Baza de date

 

a)       Evoluţie

Într-un calculator datele sunt stocate în memoria internă(temporar) şi în memoria externă (persistent).

În memoria externă , evoluţia modului de memorare a datelor a fost determinată de:

·            Accesul cât mai rapid şi uşor la date;

·            Stocarea unui volum cât mai mare de date;

·            Creşterea compexităţii datelor;

·            Perfecţionarea echipamentelor de culegere, stocare, transmitere şi prelucrare a datelor.

Bazele de date, ca mod de organizare a datelor în memoria externă, au evoluat din fişiere printr-un proces de integrare a lor(fişiere şi legăturile dintre ele) şi ţinând cont de aplicaţiile aferente.

Baza de date(BD) = un ansamblu de date organizat, coerent, structurat, în condiţii de redundanţă minimă şi controlată, accesibil mai multor utilizatori în timp util.

Generaţii de BD:

·            generaţia I = BD arborescente şi reţea (până la sfârşitul anilor ’70);

·            generaţia a-II-a = BD relaţionale (sfârşitul anilor ’70 şi până acum);

·            generaţia a-III-a = BD orientate obiect (sfârşitul anilor ’80 şi până acum).

 

b)       Elementele unei BD

Noţiuni (elemente) comparative între organizarea datelor în fişiere şi baze de date:

                              sistem de fişiere               fişiere          înregistrări         câmpuri          valori

lumea reală

                              baza de date              colecţii de date          familie de       caracteristici        domenii

                                                                    (entităţi)               caracteristici                               de valori

Domeniul de valori= mulţimea valorilor posibile pentru o caracteristică(ex.: culorile posibile pentru un automobil).

Caracteristica= definirea şi descrierea unui anumit aspect(proprietăţi) dintr-o entitate a lumii reale (ex.:marca auto)

Familia de caracteristici=ansamblul caracteristicilor care se referă la aceeaşi entitate din lumea reală      (ex.: mulţimea caracteristicilor prin care se poate descrie un automobil {NUMĂR, MARCA, CAPACITATE_CILINDRICĂ, CULOARE}).

Colecţia de date(entitatea)=o familie de caracteristici asupra căreia se aplică un predicat (care conduce la o relaţie de ordine între caracteristici şi la obţinerea informaţiilor cu un anumit sens) căruia i se afectează anumite legături.

 

c)       Conceptul de BD

Baza de date=un ansamblu de colecţii de date aflate în interdependenţă, împreună cu descrierea datelor şi a legăturilor dintre ele.

Sistemul de bază de date(SBD)=un ansamblu de elemente intercondiţionate care contribuie la realizarea şi exploatarea unei aplicaţii cu baze de date.

Notă. Noţiunea similară pentru SBD, într-o accepţiune mai veche este “Banca de date”.

 

Arhitectura unui SBD=prezentarea grafică a elementelor unui SBD şi a legăturilor dintre ele.

Vizual se folosesc două tipuri de arhitecturi de SBD, funcţie de ceea ce se evidenţiază grafic: pe componente, pe niveluri de organizare a datelor.

 

 

 

 

Arhitectura pe componente dă o imagine asupra elementelor constitutive ale unui SBD şi a interdependenţei dintre ele (fig. 1.1).

                                                                                              

                 

  Date              Software                                                                         Fig. 1.1

                                                                               utilizatori                Arhitectura pe componente

                                                                                                               a unui SBD

                       Elemente

                       auxiliare

 

 

Notă. Din această arhitectură rezultă componentele unui SBD:

 

1.Datele organizate într-o bază de date care conţine:

·         colecţiile cu date propriu-zise;

·         dicţionarul de date;

·         fişierele anexe.

2.Software-ul aferent realizării şi expoatării bazei de date, care conţine:

·         sistemul de gestiune a bazelor de date(SGBD);

·         programele de aplicaţie.

3.Elementele auxiliare sunt componente care contribuie la realizarea şi funcţionarea întregului SBD:

·  set de proceduri automate(rutine) şi manuale;

·  reglementări legale şi administrative;

·  mijloace hardware utilizate;

·  personalul implicat pe categorii de utilizatori.

 

Arhitectura pe niveluri

 

Structurează un SBD pe trei niveluri şi dă o imagine despre modul de organizare şi funcţionare al acestuia.(fig. 1.2)

 


Viziuni asupra BD     Manipulare date              Descriere date              Niveluri de organizare date

 


Programator                    Program                Structura externă                    Logic

de aplicaţie                      aplicaţie1                (logică)               

 

 


Administrator                   SGBD                  Structura                                Conceptual

bază de date                        S.O.                   conceptuală             

 

 


Inginer de                      BAZA DE              Structura internă                     Fizic

sistem                               DATE                         (fizică)              

         

   

  Fig. 1.2 Arhitectura pe niveluri a unui SBD

 

 

 

 

 

 

 

 

Din arhitectura de mai sus rezultă nivelurile de organizare(reprezentare) a datelor în baza de date:

1.Nivelul logic este dat de viziunea programatorului asupra BD.

·            Programatorul realizează programele de aplicaţie pentru descrierea şi manipularea datelor                             

                        scrise într-un SGBD;

·            Programele implementează structura externă(logică) a datelor;

·            Structura externă este dedusă din structura conceptuală;

·            Structura externă reprezintă viziunea programatorului asupra BD pentru o anumită

aplicaţie;

·            Viziunea programatorului este independentă de suportul tehnic de informaţie

(independenţa fizică);

·            Rezultatul nivelului logic este schema externă, ca parte din schema conceptuală,

implementată cu ajutorul unui SGBD.

 

2.Nivelul conceptual este dat de viziunea administratorului BD asupra datelor.

·            Administratorul realizează structura conceptuală a BD, eventual cu instrumente oferite de

SGBD;

·            Structura conceptuală se obţine utilizând un anumit model de date pentru BD şi o tehnică

de proiectare adecvată;

·            Structura conceptuală este o reprezentare în interiorul sistemului a realităţii pe care BD o

transcrie;

·            Viziunea administratorului asupra BD este independentă de aplicaţiile care vor fi

dezvoltate (independenţă logică);

·            Rezultatul nivelului conceptual este schema conceptuală(schema);

·            Realizarea schemei corespunde unei activităţi de modelare pentru că este vorba de o

traducere în termeni abstracţi, entităţile lumii reale.

 

3.Nivelul fizic este dat de viziunea inginerului de sistem asupra datelor.

·            Inginerul de sistem realizează structura internă (fizică);

·            Structura internă este dedusă din cea externă conform unor tehnici de alocare pe suportul

fizic;

·            Structura internă corespunde descrierii datelor pe suportul fizic de informaţie;

·            Rezultatul la nivelul fizic este schema internă (fizică) care se defineşte în termeni de

fişiere şi înregistrări;

·            Implementarea schemei interne se face cu ajutorul sistemului de gestiune a fişierelor din

SGBD şi/sau din S.O., prin gestiunea fizică a periferialelor.

 

Notă. La nivelul structurilor externe şi conceptuală se întâlnesc legături între date de tipul:

OWNER-o înregistrare părinte cu toate înregistrările copil aferente

NEXT-înregistrarea curentă cu cea următoare ce poate fi accesată

PRIOR-înregistrarea curentă cu cea precedentă care a fost accesată.

 

1.2 Sistemul de gestiune a bazelor de date(SGBD)

 

SGBD=un ansamblu de programe(software) care realizează interfaţa dintre o bază de date şi utilzatorii acesteia şi care asigură realizarea următoarelor activităţi:

·            Definirea structurii bazei de date;

·            Încărcarea/validarea datelor în baza de date;

·            Accesul la date(regăsire, actualizare);

·            Întreţinerea BD(regăsire, refacere, conversie etc.);

·            Protecţia datelor.

 

 

 

 

 

 Funcţiile unui SGBD

 

    Pentru atingerea obiectivelor sale, orice SGBD are patru funcţii obligatorii şi de un mare grad de     

    generalitate.

1. Definirea datelor permite descrierea şi definirea structurii de date a BD (entităţile, caracteristicile acestora, legăturile dintre date, integritatea datelor) cu ajutorul unui LDD (Limbaj de Descriere a Datelor), la nivelul conceptual, logic şi fizic.

Notă. Rezultatul funcţiei de descriere este schema BD memorată în cod intern (în dicţionarul BD).

2. Manipularea datelor permite încărcarea BD, regăsirea datelor (de la criterii foarte simple la complexe), actualizarea datelor, cu ajutorul unui LMD (Limbaj de Manipulare a Datelor).

3. Utilizarea datelor asigură interfeţe necesare pentru comunicarea tuturor categoriilor de utilizatori cu baza de date.

4. Administrarea datelor permite întrţinerea şi gestionarea BD.

 

 

 

 

 

 

1.3 Administrarea BD

 

Administratorul BD=una sau mai multe persoane cu experienţă în analiză şi proiectare, care se ocupă de organizarea şi întreţinerea BD.

Niveluri de administratori după activităţile desfăşurate:

·         administrator global realizează:

-         schema (conceptuală) a BD din cerinţele aplcaţiei;

-         organizarea datelor la nivel logic (colaborează).

·         administrator de aplicaţie realizează:

-         schema externă (logică) pentru o aplicaţie din cerinţele de prelucrare;

-         organizarea datelor la nivel fizic (colaborare).

·         administratorul bazei de date realizează:

-         schema internă (fizică) a datelor;

-         reorganizarea bazei de date;

-         gestionează funcţionarea BD.

Sarcinile administratorului BD sunt structurate după etapele de realizare a unei BD:

-         la analiza şi proiectarea BD:

·defineşte obiectivele BD;

·colaborează la formularea cerinţelor aplicaţiei;

·defineşte dicţionarul BD(schema, restricţii de integritate etc.);

·colaborează la schema externă şi la cea internă;

·concepe protecţia datelor.

-         la implementarea BD:

·            elaborează documentaţie;

·            defineşte regulile de implementare şi dare în folosinţă a BD;

·            asigură încărcarea BD din diferite surse de date.

-         la exploatarea BD:

·            monitorizează accesul la date;

·            asigură protecţia datelor;

·            întreţine funcţionarea BD la parametrii proiectaţi.

Instrumente la dispoziţia administratorului BD pentru a-şi îndeplini sarcinile:

·            instrumentele oferite de SGBD pentru: reorganizarea BD, refacerea BD, analize statistice,

gestionarea dicţionarului de date, protecţia datelor.

·            Instrumente specifice create de administratori şi programatori.

 

 

 

 


 

CAPITOLUL II ORGANIZAREA DATELOR ÎN MEMORIA EXTERNĂ

 

2.1. Evoluţia organizării datelor

2.2. Organizarea datelor în fişiere

2.3. Modele de structurare a datelor în BD

2.4. Protecţia BD

 

2.1. Evoluţia organizării datelor

 

Organizarea datelor = definirea şi structurarea datelor în memoria internă sau în memoria externă (în colecţii) şi stabilirea legăturilor între date, conform unui model de date.

Evoluţia organizării datelor în memoria externă a avut în vedere căteva aspecte:

 

           Aspecte

Etape(1)

Mod de organizare

a datelor (2)

Structura de date(3)

Mod de     prelucrare (4)

Redundanţă (5)

Software utilizat (6)

1. Înainte de 1965

Fişiere secvenţiale

Logică coincide cu fizică

Pe loturi (batch)

Mare, necontrolat

Operaţii simple de I/E (limaj asamblare şi universal)

2. Anii 60

Fişiere secvenţiale, indexate, directe

Logică şi fizică

Loturi, on-line

Mare, necontrolat

Chei simple de acces (limbaje universale)

3. Anii ‘70

Baze de date arborescente, reţea

Logică, fizică, conceptuală

Loturi, convenţional

Scade, controlat

Chei multiple de acces, legături între date, protecţia (SGBD)

4. Sfărşitul anilor '70 până acum

Baze de date relaţionale

Logică, fizică, conceptuală

Convenţional, interactiv

Mică, controlat

Limbaje de regăsire, protecţie,concurenţă (SGBD)

5. Sfârşitul anilor '80 până acum

Baze de date orientate obiect

Logică, fizică, conceptuală

Interactiv

Minimă, controlat

Limbaje din programarea OO (SGBD)

 

2.2. Organizarea datelor în fişiere

 

Fisier = o colecţie organizată de date unite după criterii comune calitative, de prelucrare şi scop.

  1. Caracteristici ale unui fişier:

-         actualizarea se referă la trei operaţii : adaugarea, modificarea, ştergerea de înregistrări;

-         natura datelor din fişier trebuie să fie omogenă (să se refere la aceeaşi entitate din lumea reală);

-         prelucrarea datelor din fişier se referă la tipul şi frecvenţa operaţiilor efectuate pe înregistrări;

-         volumul de date din fişier (în bytes).

2.        Structura unui fişier:

    • partea de identificare = etichete plasate la începutul şi sfârşitul fişierului;
    • partea de date = colecţia omogenă de date ce aparţin aceleaşi entităţi din lumea reală structurată astfel:

fişier                    înregistrări                câmpuri             valori.

  1. Modul de organizare = modul de dispunere a înregistrărilor pe suportul fizic şi presupune reguli de memorare a datelor.

 

Categorii de moduri de organizare:

        a) Standard

·         Este cea mai veche şi există pe toate tipurile de calculatoare;

·         Înregistrarea este formată dintr-un şir de caractere dispus pe o linie acceptată de periferic;

·         Toate limbajele recunosc fişiere standard de intrare şi ieşire.

b) Clasică (elementară)

·         Organizarea se face pe medii magnetice sau optice;

·         Tipuri:

-         SECVENŢIALĂ

o        Înregistrările sunt dispuse în fişier una după alta fără nici o ordine prestabilită.

o        Localizarea unei înregistrări se face prin parcurgerea tuturor înregistrărilor anterioare ei (secvenţial).

o        Toate sistemele de operare şi limbajele de programare acceptă organizarea secvenţială.

-       RELATIVĂ

o        Înregistrările sunt dispuse în fişier una după alta şi numerotate (de către sistem) de la 0 sau 1 la câte sunt (număr de realizare)

o        Localizarea unei înregistrări se poate face secvenţial sau direct prin numărul de realizare.

-         INDEXAT-SECVENŢIALĂ

o        Înregistrările sunt dispuse în fişier ăn ordine strict crescătoare după o cheie (face parte din înregistrare).

o        Cheia este unul sau mai multe câmpuri care identifică în mod unic o înregistrare.

o        Fişierului îi este ataşat o tabelă de indecşi care face legătura între valoarea cheii şi adresa fizică a înregistrării.

o        Localizarea unei înregistrări se poate face secvenţial dar şi direct prin cheie:

ü             se compară cheia înregistrării căutate cu indecşii din tabela de index şi se localizează direct partea fizică a fişierului în care se află înregistrarea căutată;

ü             în partea fizică localizată se face o căutare secvenţială a înregistrării dorite.

c) Specială (complexă)

·         Se bazează pe modurile de organizare clasice.

·         Sunt utilizate în baze de date şi în sisteme de fişiere.

·         Tipuri (câteva):

-         PARTIŢIONAREA

·        Înregistrările din fişier sunt grupate în partiţii sub un nume.

·        În cadrul unei partiţii înregistrările sunt organizate secvenţial.

·        Se utilizează în biblioteci de programe

-         MULTIINDEXAREA

·         Este o extindere a indexării prin utilizarea mai multor chei alese de programator.

·         Spaţiul ocupat este mai mare

·         Se utilizează pentru fişiere care necesită regăsiri intense multicriteriale.

-         INVERSĂ

·        Presupune existenţa a două fişiere: de bază şi invers.

·        Fişierul de bază conţine datele propriu-zise şi are organizare secvenţială. El este fişierul în care se caută.

·        Fişierul invers este construit din cel de bază (printr-o tehnică de inversare) şi are organizare relativă. El este fişierul prin intermediul căruia se caută.

·        Spaţiul ocupat necesar este cam de 3,5 ori mai mare faţă de cât ocupă fişierul de bază.

 

4) Modul de acces = modul în care se determină locul ocupat de o înregistrare într-un fişier şi depinde de modul de organizare.

Tipuri de moduri de acces:

-         SECVENŢIAL = localizarea unei înregistrări se face prin parcurgerea tuturor înregistrărilor care o preced.

·        Este permis accesul secvenţial pentru toate tipurile de fişiere.

·        Se recomandă pentru fişierele din care sunt necesare, la o prelucrare, peste 50% din numărul total de înregistrări.

·        Pentru optimizare se recomandă ordonarea fişierului.

-         DIRECT = localizarea unei înregistrări se face cu ajutorul unei chei definite de programator.

Notă. Accesul direct se poate face după numărul de realizare sau după o valoare a cheii.

-         DINAMIC = la o singură deschidere de fişier se pot localiza, alternativ şi repetat, înregistrări în acces secvenţial şi direct.

Notă. Criterii de comparaţie pentru organizarea datelor în fişiere şi baze de date sunt în Anexa 2.

 

2.3. Modele de structurare a datelor în BD

Informaţia, care se reprezintă în calculator în memoria internă sau externă, se poate defini structural după schema:

 

 

 

 

 

                            are ca                         are ca                                                 are ca

INFORMAŢIA               ENTITATEA                     ATRIBUTUL                               VALOAREA

                            obiect                     proprietate       (CARACTERISTICA)  măsură

 

Modelul de structură = descrierea tuturor atributelor unei entităţi în interdependenţă. Valorile atributelor se materializează prin date, care dau o reprezentare simbolică a informaţiilor.

Modelul de date = ansamblul de concepţie şi instrumente pentru a realiza schema conceptuală a datelor(fig. 2.1.).

Schema [conceptuală] = descrierea fenomenelor din realitatea înconjurătoare prin entităţi şi atribute, împreună cu toate corelaţiile (legăturile) dintre ele.

Definirea schemei este o activitate de modelare pentru că traduce în termeni abstracţi entităţile lumii reale.

Schema BD se reprezintă cu ajutorul unui model de date implementat prin intermediul unui SGBD adecvat.

 

Elementele (componentele) oricărui model de date sunt:

1.        Definirea  structurii modelului (partea structurală):

·         definirea entităţilor şi a atributelor asociate;

·         definirea legăturilor (asociarea) dintre entităţi.

Asocierea poate fi de tipul :

-        unu la unu (1:1)

-        unu la mulţi (1:M)

-        mulţi la mulţi (M:N)

-        neprecizat explicit

Definirea structurii de date se face cu un LDD dintr-un SGBD.

2.        Operatorii modelului (partea de manipulare) care acţionează asupra structurilor de date pentru operaţii de prelucrare (compunere, actualizare etc.).

Operatorii se implementează cu ajutorul unui LMD dintr-un SGBD.

3.        Regulile de integritate (partea de coerenţă) sunt restricţii stabilite la descrierea datelor, care le asigură acestora menţinerea corectitudinii şi dau logica modelului.

Restricţiile se implementează cu un LDD din SGBD.

 

Tipuri de modele de date pentru BD:

·         fundamentale: ierarhice, reţea, relaţionale, orientate obiect;

·         derivate (extinse din cele fundamentale): distribuite etc.

 

Modelul ierarhic

 

1.        Definirea structurii modelului ierarhic.

a)       Definirea entităţilor se face prin noţiune de tip de înregistrare (clasă de entităţi), care este formată din caracteristici (câmpuri).

Realizarea (instanţa) unui tip de înregistrare este dată de ansamblul valorilor pentru câmpurile acesteia (înregistrarea)..

b)       Definirea legăturilor dintre entităţi se face fizic şi conduce la structura de tip ierarhic (arborescent) reprezenată sub forma unei diagrame (fig. 2.2.).

 

 

 

 

nivel 0                                                                 TIP_ÎNREG 0

 


nivel 1                        TIP_ÎNREG 11            TIP_ÎNREG 12            TIP_ÎNREG 13

 


nivel 2                        TIP_ÎNREG 21                        TIP_ÎNREG 22                     TIP_ÎNREG 23

……..

                                                       Fig. 2.2. Diagrama de structură ierarhică

 

Caracteristici ale structurii ierarhice (arborescente):

-         Fiecare nod corespunde unui tip de înregistrare şi fiecare drum corespunde unei legături (asocieri).

-         Orice acces la un nod se face prin vârful ierarhiei, numit rădăcină, pe o singură cale.

-         Un nod subordonat (copil) nu poate avea decât un singur superior (părinte).

-         Un superior poate avea unul sau mai mulţi subordonaţi.

-         Legătura copil-părinte este doar de tip 1:1 (la o realizare copil corespunde o singură realizare părinte).

-         Legătura părinte-copil poate fi de tip 1:1 sau 1:M.

-         În structură există un singur nod rădăcină şi unul sau mai multe noduri dependente situate pe unul sau mai multe niveluri.

-         O ierarhie de tipuri de înregistrări se numeşte tip arbore.

-         O realizare a unui tip arbore este formată dintr-o singură realizare a tipului de înregistrare rădăcină împreună cu o mulţime ordonată formată din una sau mai multe realizări ale fiecărui tip de înregistrare de pe nivelurile inferioare.

-         Ordonarea realizărilor dintr-un arbore conduce la o secvenţă ierarhică.

Exemplu. Fie tip înregistrare rădăcină PERSOANA cu tipurile înregistrări subordonate ADRESA şi COPII. Tip înregistrare COPII are subordonat tipul înregistrare SPORT.

nivel 0                    PERSOANA                           CODP      NUMEP

 

 


nivel 1    ADRESA              LOC    STR    TEL                              COPII    PRENUME   DATAN    SEX

 

 


nivel 2                                                                                                      SPORT       NUMES    LOC

 

 

 

 

 

 

O secvenţă ierarhică de realizări pentru arborele de mai sus, poate fi:

PERSOANA         10                           POPA MARIA

ADRESA              IAŞI                       UNIRII                   123456

COPII                     ANDA                   220285                   F

        SPORT          SCHI                      AZUGA

                               TENIS                    IAŞI

COPII                     MARIA                 221187                   F

        SPORT          PATINAJ              IAŞI

 

La un acces, întreaga secvenţă ierarhică este disponibilă automat.

 

2.        Operatorii modelului ierarhic

-         Localizarea unui arbore în BD: se localizează o realizare a tipului de înregistrare rădăcină.

-         Trecerea de la un arbore la altul în BD: se trece de la orealizare a tipului înregistrare rădăcină (secvenţă ierarhică) la o altă realizare a aceluiaşi tip înregistrare rădăcină.

-         Trecerea de la o realizare (înregistrare) la alta într-un arbore (secvenţă ierarhică) : se poate face trecerea pe acelaşi nivel sau pe niveluri diferite între tipuriînregistrări legate între ele.

-         Actualizarea într-un arbore : adăugarea, modificarea sau ştergerea unei înregistrări. Operaţia este greoaie şi consumatoare de resurse calculator (spaţiu şi timp) pentru că antrenează automat toate înregistrările din arbore care se înlănţuie cu înregistrarea actualizată.

Notă. Operatorii de mai sus sunt la nivel de înregistrare; acţionează pe o înregistrare şi produce tot o înregistrare.

Există şi operatori la nivel de mulţime de înregistrări care se implementează în LMD mult mai greu.

 

3.        Restricţiile de integritate ale modelului ierarhic.

-         O realizare subordonat este totdeauna asociată unei singure realizări superior.

-         Dacă un tip de înregistrare nu are realizări atunci nici tipurile înregistrări descendente nu au realizări.

Notă. Efectele restricţiilor de integritate sunt:

·            completarea operaţiei de actualizare;

·            dacă o realizare a unui nod subordonat trebuie să fie asociată cu mai multe realizări ale nodului părinte atunci ea trebuie multiplicată (creşte redundanţa);

·            dau logica şi corenţa modelului arborescent.

 

Caracterizarea modelului ierarhic.

  1. Modelul a fost propus de către IBM şi a fost primul utilizat pentru BD.
  2. Structura modelului este simplă (graf orientat) familiară specialiştilor în informatică.
  3. Implementarea modelului se face fizic şi condiţionează performanţele BD:
    • prin pointeri, utilizând diferite metode (liste simplu înlănţuite, vectori de pointeri, chei primare etc.);
    • secvenţial, fiecare realizare a unui arbore corespunde unei înregistrări (logice) dintr-un fişier secvenţial.
  4. Aplicabilitatea modelului se regăseşte cu succes în tehnologia construcţiilor de maşini, dar şi în alte domenii.
  5. Limitele modelului ierarhic:

-         numărul de ierarhii posibile creşte combinatoric cu numărul înregistrărilor, în legătura părinte-copil;

-         actualizarea datelor este groaie şi consumatoare de resurse calculator;

-         nivelul logic nu este separat clar de cel fizic (ex. indecşii pot fi structuri logice dar şi fizice);

-         nu se poate realiza legătura de tip M:N

6.        Exemplu de SGBD ierarhic este IMS (Information Management System) realizat de către IBM.

7.        Baza de date ierarhică = o mulţime ordonată de realizări ale unui tip arbore.

 

 

 

                                                                      Modelul reţea

 

1.        Definirea structurii modelului reţea.

a)       Definirea entităţilor se face prin noţiunea de tip de înregistrare, care este formată din caracteristici (câmpuri).

Realizarea (instanţa) unui tip de înregistrare este dată de ansamblul valorilor pentru câmpurile acestuia (înregistrarea).

b)       Definirea legăturilor dintre entităţi se face fizic şi conduce la o structură de tip reţea, reprezentată sub forma unei diagrame (fig. 2.3.) numită şi schema (conceptuală).

 

TIP_ÎNREG 1                                                                 TIP_ÎNREG 2

 

 


TIP_ÎNREG 3                                                                 TIP_ÎNREG 4

 

 


TIP_ÎNREG 5                                                                 TIP_ÎNREG 6                   

 

Fig. 2.3. Diagrama de structură reţea

 

Caracteristici ale structurii reţea :

-      Un nod poate avea oricâţi superiori şi oricâţi subordonaţi.

-      Pot exista mai multe tip de înregistrare rădăcină.

-      La un subordonat se poate ajunge pe mai multe căi.

-      Este o extensie a structurii arborescente în care graful nu mai este limitat.

-      Legăturile în model pot fi 1:1, 1:M, M:N, ciclice.

-      Pentru exprimarea legăturilor se foloseşte conceptul de tip set. Un tip set este format dintr-un singur tip de nod proprietar şi unul sau mai multe tipuri de nod membre dependente de cel proprietar.

-      O realizare a tipului set este o colecţie de înregistrări care are o realizare proprietar şi un număr de realizări membre asociate.

Exemplu. Fie BD de personal cu entităţile (tipurile de înregistrări): CONTRACTE, COMPARTIMENT, PERSOANA, COPII.

 

 

CONTRACTE                                                                            COMPARTIMENT

       CODC    DENC    VALOARE                                                CODCO    DENCO    CODSEF

 

 

 


                       PERSOANA

                                      

                                      MARCA     NUMEP     ADRESA

 

 


                       COPII

                                      

                                       PRENC     DATAN

                                                                                                          

 

 

În structura reţea de mai sus un tip set este: COMPARTIMENT ca nod proprietar şi PERSOANA ca nod membru.

O realizare a acestui tip set poate fi :

 

COMPARTIMENT               100          INFORMATICĂ    001

       PERSOANA                   005          POPA ANDA         MOŞILOR, 22

       PERSOANA                   010           PETRE ION          EMINESCU, 10

       …………….

 

  1. Operatorii modelului reţea.

 

-         Localizarea unui tip set: se identifică o realizare a unui nod proprietar.

-         Trecerea de la oînregistrare la alta în cadrul unui set: proprietar-membru, membru-proprietar, membru-membru.

-         Actualizarea într-un set: adăugarea, modificarea, ştergerea unor membri.

-         Actualizarea într-o reţea: adăugarea, modificarea, ştergerea unor seturi.

Notă. Operaţiile de actualizare sunt groaie şi mari consumatoare de resurse calculator. Aceasta deoarece sunt antrenate întotdeauna înregistrările dintr-unul sau mai multe seturi.

-         Localizarea unei înregistrări pe baza valorii unui câmp (cheie).

 

3.        Restricţiile de integritate ale modelului reţea.

 

-         O înregistrare nu poate fi membră a două realizări ale aceluiaşi tip set. Înregistrarea se va multiplica.

-         O înregistrare poate să aparţină mai multor tipuri set prin multiplicare.

-         Un tip de înregistrare poate fi nod proprietar într-un set şi nod membru în alt set.

-         Un set poate avea un singur nod proprietar.

Notă. Efectele restricţiilor de integritate sunt:

·         dau logica şi coerenţa modelului reţea;

·         complică operaţia de actualizare;

·         introduce o redundanţă controlată.

 

Caracteristicile modelului reţea.

 

1.        A fost propus de CODASYL ca soluţie pentru a se elimina limitele modelului ierarhic.

2.        Se poate utiliza pentru domenii variate din lumea reală, deoarece permite reprezentarea unor structuri complexe.

3.        Implementarea modelului se face fizic şi condiţionează performanţele BD:

·         prin pointeri structuraţi în liste înlănţuite, de diferite tipuri (owner, prior, next);

·         prin hartă de biţi (matrice cu înregistrări iar la intersecţie sunt legăturile 1-da, 0-nu).

4.        Limitele modelului reţea:

-           complexitatea modelului îl face dificil de implementat;

-           legăturile din model nu sunt întotdeauna foarte clare;

-           prelucrarea înregistrărilor se face secvenţial;

-           actualizarea este greoaie şi consumatoare de resurse calculator;

-           reproiectarea este dificilă datorită complexităţii ridicate.

  1. Exemple de SGBD reţea : IDMS (Integrated Database Management System), Socrate.
  2. BD reţea = o mulţime oarecare de tipuri de înregistrări structurate pe tipuri set.

 

                                                                      Modelul relaţional

 

  1. Definirea structurii modelului relaţional.

a)       Definirea entităţilor se face sub forma unor tablouri bidimensionale numite tabele sau relaţii de date.

Conceptele utilizate sunt:

DOMENIU = un ansamblu de valori caracterizat printr-un nume.

El poate fi explicit (se enumeră valorile posibile D1:{M, F}) sau implicit (se precizează proprietăţile valorilor D1:{a/aÎN}).

TABELA/RELAŢIA = un subansamblu al produsului cartezian al mai multor domenii, caracterizat printr-un nume.

ATRIBUTUL = coloana unei tabele, caracterizată printr-un nume

TUPLUL = linia dintr-o tabelă şi nu are nume.

Notă. Ordinea liniilor (tupluri) şi coloanelor (atribute) dintr-o tabelă nu trebuie să prezinte nici-o importanţă.

SCHEMA TABELEI = numele tabelei, urmat între paranteze rotunde de lista atributelor, iar pentru fiecare atribut se precizează domeniul asociat.

CHEIA = un atribut sau un ansamblu de atribute care au rolul de a identifica un tuplu dintr-o tabelă.

Tipuri de chei: primare/alternate, simple/comune, externe.

SCHEMA RELAŢIONALĂ = schema tabelei + cheile + restricţiile de integritate.

Exemplu. Fie tabela STUDENT cu atributele: NUME din domeniul D1 (numele de persoane), ANSTUDIU din domeniul (anii de studiu dintr-o facultate), ANNAŞTERE (anii calendaristici).

                       STUDENT

                      

NUME: D1

ANSTUDIU : D2

ANNAŞTERE: D3

POPA A.

2

1980

PETRE M.

2

1980

ILIE C.

3

1979

 

          tuplu
Schema tabelei : STUDENT(NUME: D1, ANSTUDIU: D2, ANNAŞTERE: D3)

Notă. Numărul de domenii este mai mic sau egal cu numărul de atribute pentru o tabelă (mai multe atribute pot lua valori din acelaşi domeniu).

b)       Definirea legăturilor dintre entităţise face logic construind asocieri între tabele cu ajutorul unor atribute de legătură.

Legăturile se pot reprezenta sub forma unei diagrame de structură (fig. 2.4.) numită şi schema BD.

         Exemlu. Fie o BD privind desfacerea  în care am identifivat tabelele: BENI, CONTR, PROD. Legăturile dintre tabele sunt:

-         un beneficiar poate încheia mai multe contracte (1:M);

-         un produs se poate livra prin mai multe contracte (1:M);

-         un beneficiar poate cumpăra mai multe produse şi un produs se poate livra către mai mulţi beneficiari (M:N).

BENI                     CODB     DENB     LOCB     CTBC

                                                              1:M

CONTR                                 CODB     CODP    CANTL     PRETL     TERMENL

                                                                

                                                     1:M

PROD                    CODP    DENP     UMP

 

               Fig. 2.4. Schema BD

Notă. Legătura M:N nu apare direct în schemă.

           Atributele subliniate sunt chei.

Caracteristici ale structurii relaţionale:

-         Atributele implicate în realizarea legăturilor se găsesc fie în tabelele asociate, fie în tabele distincte construite special pentru legături.

-         Atributul din tabela iniţială se numeşte cheie externă iar cel din tabela finală cheie primară.

-         Legăturile posibile sunt 1:1, 1:M, M:N.

-         Potenţial, orice tabelă se poate lega cu orice tabelă, după orice atribute.

-         Legăturile se stabilesc la momentul descrierii datelor (prin LDD) cu ajutorul restricţiilor de integritate.

Practic se stabilesc şi legături dinamice la momentul execuţiei.

  1. Operatorii modelului relaţional.

a)       Operatori din algebra relaţională:

·         standard: selecţia proiecţia, joncţiunea, reuniunea, diferenţa, produsul cartezian, intersecţia, diviziunea;

·         extensii : complementarea, descompunerea (splitarea) etc.

         Notă. Operatorii algebrei relaţionale acţionează la nivel de tabelă în expresii relaţionale. Operanzii sunt tabele iar rezultatul este întotdeauna o tabelă.

b)       Operatorii din calculul relaţional:

·            orientaţi pe tuplu: conectivele (conjuncţia Ù, disjuncţia Ú, negaţia ù ), cuantificatorii (existenţa $, universal ");

·            orientaţi pe domeniu: idem ca mai sus.

Notă. Pentru operatorii calcului relaţional operandul poate fi tuplu sau domeniu.

  1. Restricţiile de integritate ale modelului relaţional.

a)       Structurale = se definesc prin compararea unor valori din tabele:

-         cheie unică = într-o tabelă nu trebuie să existe mai multe tupluri cu aceeaşi valoare pentru ansamblul cheie;

-         referenţială = într-o tabelă T1 care referă o tabelă T2, valorile cheii externe trebuie să figureze printre valorile cheii primare din T2 sau să ia valoarea NULL (neprecizat);

-         entităţii = într-o tabelă, atributele din cheia primară nu trebuie să ia valoarea NULL.

Notă. Cele trei restricţii de mai sus sunt minimale.

Pe lângă acestea, există o serie de alte restricţii structurale care se referă la dependenţele dintre date: funcţionale, multivaloare, joncţiune etc. (sunt luate în considerare la tehnicile de proiectare BDR).

b)       Semantice = se definesc prin comportamentul datelor şi ţin cont de valorile din BD:

-         restricţia de domeniu = domeniul corespunzător unui atribut dintr-o tabelă trebuie să se încadreze între anumite valori;

-         restricţii temporare = valorile anumitor atribute se compară cu nişte valori temporare (rezultate din calcule etc.).

Notă. Restricţiile semantice fiind foarte generale se gestionează fie la momentul descrierii datelor (ex. clauza CHECK), fie în afara modelului la momentul execuţiei (ex. instrucţiunea IF) .

 

Caracteristicile modelului relaţional:

1.        A fost propus de către IBM şi  a revoluţionat reprezentarea datelor în BD făcând trecerea la o nouă generaţie.

2.        Modelul este simplu, are o solidă fundamentare teoretică fiind bazat pe teoria seturilor (ansamblurilor) şi pe logica matematică.

3.        Pot fi reprezentate toate tipurile de structuri de date de mare complexitate, din diferite domenii de activitate.

4.        Implementarea modelului se face logic prin atribute având rol de chei.

5.        Limitele modelului relaţional:

-         prea mare simplitate a modelului îl face dificil de aplicat pentru noile tipuri de aplicaţii (multimedia, internet etc.);

-         nu asigură o independenţă logică totală a datelor de aplicaţie;

-         pentru aplicaţii de volum şi complexitate foarte mari nu mai face faţă;

-         poate introduce o redundanţă prea mare (la proiectare prin tehnica de normalizare).

6.        Baza de date relaţională = un ansamblu de tabele prin care se reprezintă atât datele cât şi legăturile dintre ele.

 

Modelul orientat obiect

 

  1. Definirea structurii modelului orientat obiect (OO)

a)       Definirea obiectelor se face cu ajutorul conceptului de clasă de obiecte care este definită din entitatea regăsită în lumea reală. Se pune accentulatât pe date cât şi pe comportamentul acestora, ambele încapsurate în obiect.

Conceptele utilizate sunt:

CLASELE (TIPURILE) DE OBIECTE = un tip abstract de date prin care se defineşte structura obiectelor (proprietăţile) şi comportamentul (metodele) acestora.

OBIECTELE = o colecţie de proprietăţi care se referă la aceeaşi entitate.

Obiectul are:

-         un nume prin care este referit ;

-         un identificator unic atribuit de sistem;

-         o implementare care este privată;

-         o interfaţă care este publică.

METODA = operaţiile permise asupra obiectului, deci comportamentul (funcţionalitatea) acestuia.

MESAJUL = cereri adresate obiectelor pentru a returna o valoare sau o stare.

CARACTERISTICI (principii) fundamentale ale obiectelor:

-         încapsurarea = descrierea obiectelor se face astfel încât nu se poate avea acces din afara obiectului la datele sale;

-         polimorfismul = diferite obiecte pot răspunde diferit la aceleaşi mesaje;

-         moştenirea = capacitatea unui obiect de a-şi deriva datele şi funcţionalitatea din alt obiect.

INSTANŢA  unei clase = realizarea unei clase dată de valorile variabilelor aferente.

b)       Definirea legăturilor între obiecte se realizează implicit prin modul de construire (definire) al obiectelor.

Tipurile de legături în modelul OO sunt:

-         Ierarhice, caracterizate prin:

·         clasa de obiecte este structura de bază a modelului;

·         fiecare obiect are un identificator unic;

·         toate obiectele sunt membri ai unei clase;

·         clasele sunt structurate în ierarhii având caracteristica de moştenire;

·         prin obiecte se pot defini orice tip de date (text, grafic, imagine, sunet, video etc.);

·         ansamblul claselor de obiecte structurate în ierarhii alcătuiesc schema BD.

-         de referinţă caracterizate prin:

·        se realizează pe baza identificatorului unic obiect;

·        pot fi de următoarele feluri:

§                 simple de asociere = referirea unui obiect de către alt obiect;

§                 de compunere (tip parte-întreg) = obiectele care reprezintă componente ale unui întreg sunt asociate cu obiectul ce reprezintă întregul;

§                 de agregare = obiectele independente sunt agregate succesiv pentru a forma un întreg.

·        permit definirea şi manipularea de obiecte compuse din alte obiecte. Obiectele compuse rezultate au o structură ierarhică dar nu au caracteristică de moştenire.

 

 

 

  1. Operatorii moelului OO

-         La baza operaţiilor din model stau mesajele ca unic mod de a comunica obiectele între ele.

-         Actualizarea metodelor (adaugare, modificare, ştergere de metode).

-         Actualizarea proprietăţilor (adaugare, modificare, ştergere de date).

-         Actualizarea claselor (adaugare, modificare, ştergere de clase).

-         Realizarea legăturilor între clase (compunere, partiţionare etc.).

-         Actualizarea instanţelor, prin metode care schimbă starea internă a obiectului.

  1. Restricţiile de integritate ale modelului OO

-         Orice obiect trebuie să respecte restricţiile impuse la definirea clasei din care face parte (protocol de obiect).

-         Identificatorul obiectului asigură integritatea referirii la el (se atribuie şi se şterge automat o dată cu obiectul).

-         Accesul la obiecte este limitat la folosirea protocolului de mesaje definit pentru clasa din care face parte obiectul.

 

Caracteristicile modelului OO

 

  1. Modelul OO marchează trecerea la o a treia generaţie de BD. El aducele bazelor de date un plus de deschidere, independenţa logică a datelor de aplicaţii, reutilizarea obiectelor etc.
  2. Modelul OO dă bune rezultate pentru probleme foarte mari şi complexe (principiile complexităţii sunt incluse în model).
  3. În structură sunt acceptate toate tipurile de date cunoscute, deci se poate aplica pentru toate domeniile de activitate.
  4. Limitele modelului OO:

-         nu există un model OO unanim acceptat de specialişti. Există totuşi organisme internaţionale de standardizare – exemplu OMG (Object Management Group) – precum şi modele OO standardizate – ODMG (Object Data Management Group);

-         imaturitatea şi naturaleţea dezarmantă a tehnologiei OO;

-         elemente încă insuficient testate pentru SBDOO: controlul integrităţii, volume foarte mari, regăsirea etc.

  1. Exemple de SGBDOO: O2 (Franţa), Jasmine (SUA) etc.
  2. Baza de date orientată obiect = o mulţime de clase de obiecte persistente (în memoria externă), organizată coerent şi ordonată în ierarhii, partajată pentru utilizatorii concurenţi.

Notă. 1) O comparaţie între modelul relaţional şi orientat obiect vezi în Anexa 1.

           2) Baza de date = un ansamblu de colecţii de date:

·         organizat (pe niveluri de organizare a datelor);

·         coerent (restricţii de integritate şi legăturile dintre date);

·         structurat (conform unui model de date);

·         are o redundanţă minimă şi controlată (modelul de date şi tehnicile de proiectare);

·         accesul mai multor utilizatori în timp util.

 

2.4. Protecţia BD

 

Protecţia BD = un ansamblu de măsuri necesare asigurării securităţii şi integrităţii datelor.

Securitatea datelor = interzicerea accesului la date pentru utilizatorii neautorizaţi.

Integritatea datelor = corectitudinea datelor încărcate şi manipularea lor astfel încât să se respecte restricţiile de integritate ale modelului de date implementat.

 

INTEGRITATEA

  1. Integritatea semantică = prevenirea introducerii unor date incorecte în BD şi a realizării unor prelucrări eronate prin respectarea restricţiilor de integritate. Acestea pot fi implicite (asigurate automat de SGBD) şi explicite (asigurate prin proceduri incluse în programele de aplicaţie).
  2. Controlul concurenţei la date = garantarea coerenţei (corectitudinii) şi simultaneităţii datelor în cazul prelucrării tranzacţiilor (unitatea logică de prelucrare) prin tehnici specifice (blocarea, interblocarea).
  3. Salvarea şi restaurarea.

Salvarea = stocarea datelor în copii de siguranţă prin tehnici specifice (copiere, jurnalizare).

Restaurarea = refacerea consistenţei BD, pornind de la datele salvate, minimizând prelucrările pierdute (automat/manual).

 

SECURITATEA

  1. Autorizarea şi controlul accesului la date = identificarea utilizatorilor şi restricţionarea accesului pentru diferite operaţii de prelucrare.
  2. Viziunile (view) = partiţiile logice ale BD definite pentru diferiţi utilizatori.
  3. Procedurile speciale = rutine, oferite de SGBD, care efectuează anumite operaţii asupra datelor şi care sunt accesibile anumitori utilizatori.
  4. Criptarea = operaţii de codificare a datelor în vederea stocării sau transmiterii datelor.

 

 


 

CAPITOLUL 3   BAZE DE DATE RELAŢIONALE (BDR)

 

3.1. Conceptul de BDR

3.2. Proiectarea BDR prin tehnica normalizării

3.3. Algebra şi Calculul relaţional

 

3.1. Conceptul de BDR

 

BDR utilizează modelul de date relaţional şi noţiunile aferente.

BDR au o solidă fundamentare teoretică, în special prin cercetările de la IBM conduse de E.F.CODD.

BDR = un ansamblu organizat de tabele (relaţii) împreună cu legăturile dintre ele.

Avantaje BDR faţă de fişiere (câteva):

-         asigură independenţa logică şi fizică a datelor;

-         structurează datele pe trei niveluri: conceptual, logic şi fizic;

-         se simplifică reprezentarea şi utilizarea datelor (prin model);

-         se asigură deschidere şi portabilitate aplicaţiilor;

-         structura de date se păstrează în dicţionarul BD şi nu în programe.

                                                fişiere       fişier       înregistrare          câmp       valori

Organizare date în

                                                BDR       tabelă      tuplu     atribut     domeniu de valori

                                                                (relaţie)    (linie)   (coloană)

Condiţii minimale ca un SGBD să fie relaţional:

-         să implementeze modelul de date relaţionale prin LDD şi LMD;

-         să implementeze cel puţin un limbaj relaţional prin LMD.

Notă. Condiţiile complete ca un SGBD să fie relaţional sunt date de cele 13 reguli ale lui CODD.

 

3.2. Proiectarea BDR prin tehnica normalizării

 

a)       Noţiuni

 

Aspectul dinamic al structurii de date este avut în vedere şi rezolvat de BDR.

Tehnica de normalizare este utilizată în activitatea de proiectare a structurii BDR şi constă în eliminarea unor anomalii (neajunsuri) de actualizare din structură.

Anomaliile de actualizare sunt situaţii nedorite care pot fi generate de anumite tabele în procesul proiectării lor:

·         anomalia de ştergere = stergând un tuplu dintr-o tabelă, pe lângă informaţiile care şterse, se pierd şi informaţiile utile existente în tuplul respectiv;

·         anomaliile de adăugare = nu pot fi incluse noi informaţii necesare într-o tabelă deoarece nu se cunosc şi alte informaţii utile (de exeplu valorile pentru cheie);

·         anomalia de modificare = este dificil de modificat o valoare a unui atribut atunci când ea apare în mai multe tupluri.

Notă. Anomaliile de actualizare sunt rezolvate de către teoria relaţională, lucru care nu se întâmplă la alte tipuri de BD.

Normalizarea = teoria construită în jurul conceptului de forme normale (FN), care ameliorează structura BD prin înlăturarea treptată a unor neajunsuri şi prin imprimarea unor facilităţi sporite privind manipularea datelor.

Notă. Teoria normalizării a fost concepută iniţial de către E.F.CODD, ulterior aducându-şi contribuţia şi alţi cercetători.

Normalizarea utilizează ca metodă descompunerea (top-down) unei tabele în două sau mai multe tabele, păstrând informaţii (atribute) de legătură.

 

b)       Forme normale

 

O tabelă (relaţie) este într-o formă normală (FN) dacă satisface anumite restricţii, care arată că FN(i+1) faţă de FN(i), i=1,4.

Sunt cinci forme normale (FN1 la FN5) şi una suplimentară (BCNF) care revizuieşte FN3.

O bază de date este FNi , i=1,5 dacă toate tabelele sale sunt în FNi.

BD iniţială va fi formată dintr-o singură colecţie de date care apoi se descompune (prin proiecţie) în mai multe tabele, parcurgând formele normale.

 

FN1

 

O tabelă este în FN1 dacă toate atributele ei conţin valori elementare (nedecompozabile), fiecare tuplu tuplu nu trebuie să aibă date la nivel de grup sau repetitiv.

Structurile de tip arborescent şi reţea se transformă în tabele cu atribute elemntare.

O tabelă în FN1 prezintă încă o serie de anomalii de actualizare datorită eventualelor dependenţe funcţionale incomplete.

Fiecare structură repetitivă generează (prin descompunere) o nouă tabelă, iar atributele la nivel de grup se înlătură, rămânând cele elemntare.

 

FN2

 

O tabelă este în FN2 dacă şi numai dacă este în FN1 şi fiecare atribut noncheie al tabelei este dependent funcţional complet de cheie.

Un atribut B al unei tabele depinde funcţional de atributul A al aceleiaşi tabele dacă fiecărei valori ale lui A îi corespunde o singură valoare a lui B care îi este asociată în tabelă.

Un atribut B este dependent funcţional complet de un ansamblu de atribute A în cadrul aceleiaşi tabele, dacă B este dependent funcţional de întreg ansamblul A (nu numai de un atribut din ansamblu).

O tabelă în FN2 prezintă încă o serie de anomalii de actualizare, datorită eventualelor dependenţe tranzitive.

Eliminarea dependenţelor incomplete se face prin descompunerea tabelei iniţiale în două tabele, ambele conţinând atributul intermediar (B).

 

FN3

 

O tabelă este în FN3 dacă şi numai dacă este în FN2 şi fiecare atribut noncheie depinde în mod netranzitiv de cheia tabelei.

Într-o tabelă T, fie A,B,C trei atribute cu A cheie. Dacă B depinde de A (A        B) şi C depinde de B (B        C) atunci C depinde de A în mod tranzitiv.

Eliminarea dependenţelor tranzitive se face prin descompunerea tabelei iniţiale în două tabele, ambele conţinând atributul intermediar (B).

O tabelă în FN3 prezintă încă o serie de anomalii de actualizare, datorate eventualelor dependenţe multivaloare.

Notă. O definiţie mai riguruasă pentru FN3 a fost dată prin BCNF (Bozce Codd Normal Form): o tabelă este în BCNF dacă fiecare determinant este un candidat cheie.

Determinantul este un atribut elementar sau compus faţă de care alte atribute sunt complet dependente funcţional.

 

FN4

 

O tabelă este în FN4 dacă şi numai dacă este în FN3 şi nu conţine două sau mai multe dependenţe multivaloare.

Într-o tabelă T, fie A,B,C trei atribute. În tabela T se menţine dependenţa multivaloare A () dacă şi numai dacă mulţimea valorilor lui B ce corespunde unei perechi de date (A,C), depinde numai de o valoare a lui A şi este independentă de valorile lui C.

 

FN5

 

O tabelă este în FN5 dacă şi numai dacă este în FN4 şi fiecare dependenţă joncţiune este generată printr-un candidat cheie al tabelei.

În tabela T (A,B,C) se menţine dependenţa joncţiune (AB,AC) dacă şi numai dacă T menţine dependenţa multivaloare A   b sau C.

Notă. Dependenţa multivaloare este caz particular al dependenţei joncţiune.

Dependenţa funcţională este caz particular al dependenţei multivaloare.

 

 

3.3. Algebra şi Calculul relaţionale

 

Pentru manipularea datelor conform modelului relaţional se folosesc operatorii din algebra şi calculul relaţional.

Pentru implementarea acestor operatori există comenzi specifice în LMD din SGBDR. Aceste comenzi sunt utilizate în operaţii de regăsire (interogare).

După tehnica folosită la manipulare, LMD sunt bazate pe:

-         calculul relaţional (QUEL în Ingres, ALPHA propus de Codd);

-         algebra relaţională (ISBL, RDMS);

-         transformarea (SQL, SQUARE);

-         grafică (QBE, QBF).

 

Calculul relaţional

 

Calculul relaţional se bazează pe calculul predicatelor de ordinul întâi (domeniu al logicii) şi a fost propus de E.F.CODD.

Predicatul este o relaţie care se stabileşte între anumite elemente şi care poate fi confirmată sau nu.

Predicatul de ordinul 1 este o relaţie care are drept argumente variabile care nu sunt predicate.

Variabila poate fi de tip tuplu (valorile sunt dintr-un tuplu al unei tabele) sau domeniu (valorile sunt dintr-un domeniu al unei tabele).

Cuantificatorii (operatorii) utilizaţi în calculul relaţional sunt: universal (") şi existenţial ($).

Construcţia de bază în calculul relaţional este expresia relaţională de calcul tuplu sau domeniu (funcţie de tipul variabilei utilizate).

Expresia relaţională de calcul este formată din:

-         operaţia de efectuat;

-         variabile (tuplu respectiv domeniu);

-         condiţii (de comparaţie, de existenţă);

-         formule bine definite (operanzi-constante, variabile, funcţii, predicate; operatori);

-         cuantificatori.

 

Algebra relaţională

 

Algebra relaţională este o colecţie de operaţii formale aplicate asupra tabelelor (relaţiilor), concepută de E.F.CODD.

Operaţiile sunt aplicate în expresiile algebrice relaţionale care sunt cereri de regăsire.

Acestea sunt compuse din operatorii relaţionali şi operanzi.

Operanzii sunt întotdeauna tabele (una sau mai multe).

Rezultatul evaluării unei expresii relaţionale este format dintr-o singură tabelă.

Algebra relaţională are cel puţin puterea de regăsire a calcului relaţional. O expresie din calculul relaţional se poate transforma într-una echivalentă din algebra relaţională şi invers.

Operatorii din algebra relaţională pot fi grupaţi în două categorii (R1, R2, R3 sunt relaţii (tabele)):

 

1.        Operatori pe mulţimi

REUNIUNEA: R3=R1ÈR2, unde R3 va conţine tupluri din R1 sau R2 luate o singură dată.

DIFERENŢA: R3=R1\R2, unde R3 va conţine tupluri din R1 care nu se regăsesc în R2

PRODUSUL CARTEZIAN: R3=R1´R2, unde R3 va conţine tupluri construite din perechi (x1x2) cu x1ÎR1 şi x2ÎR2.

INTERSECŢIA:R3=R1ÇR2, unde R3 va conţine tupluri care se găsesc în R1 şi R2 în acelaşi timp.

 

2.        Operatori relaţionali speciali

 

SELECŢIA: din R1 se obţine o subtabelă R2, care va conţine o submulţime din tuplurile iniţiale din R1 ce satisfac un predicat (o condiţie).

Numărul de atribute din R2=numărul de atribute din R1

Numărul de tupluri din R2;numărul de tupluri din R1.

PROIECŢIA: din R1 se obţine o subtabelă R2, care va conţine o submulţime din atributele iniţiale din R1 şi fără tupluri duplicate

Numărul de atribute din R2<numărul de atribute din R1

Numărul de tupluri din R2£numărul de tupluri din R1.

JONCŢIUNEA: derivaţie a produsului cartezian, ce presupune utilizarea unui calificator care să permită compararea valorilor unor atribute din R1 şi R2, iar rezultatul în R3.

R1 şi R2 trebuie să aibă unul sau mai multe atribute comune care au valori comune.

Note.

1)       Codd a introdus şase operatori de bază (reuniunea, diferenţa, produsul cartezian, selecţia, proiecţia , joncţiunea) şi doi operatori derivaţi (intersecţia şi diviziunea).

2)       Ulterior au fost introduşi şi alţi operatori derivaţi (speciali).

3)       Algebra relaţională este prin definiţie neprocedurală (descriptivă), iar calculul relaţional permite o manieră de căutare mixtă (procedurală/neprocedurală).

 

Transformarea

 

Oferă o putere de regăsire echivalentă cu cea din calculul şi algebra relaţională.

Se bazează pe transformarea (mapping) unui atribut sau grup de atribute într-un atribut dorit prin intermediul unor relaţii.

Rezultatul este o relaţie (tabelă) care se poate utiliza într-o altă transformare.

 

Grafica

 

Oferă interactivitate mare pentru constrirea cererilor de regăsire.

Utilizatorul specifică cerea alegând sau completând un ecran structurat grafic.

Poate fi folosit de către toate categoriile de utilizatori în informatică.

 

 


 

 

Capitolul 4 VISUAL FOXPRO

 

 

 

4.1. Aspecte generale

 

Visual PoxPro (VFP) este un SGBD relaţional care deţine un limbaj procedural propriu foarte puternic. Acest limbaj conţine comenzi şi funcţii care permit:

-         descrierea şi manipularea datelor într-o bază de date relaţională;

-         dezvoltarea procedurală a programelor de aplicaţie;

-         programarea neprocedurală printr-un nucleu extins de SQL pe care-l suportă;

-         programarea orientată pe obiecte prin facilităţile vizuale.

Visual FoxPro este realizat de firma Microsoft – SUA şi a ajuns la versiunea 7.

Visual FoxPro conţine, pe lângă facilităţile de programare, şi o serie de generatoare, tot mai bune de la o versiune la alta, care ajută la dezvoltarea rapidă şi eficientă a aplicaţiilor cu baze de date.

O parte dintre comenzile şi funcţiile din limbajul din Visual FoxPro vor fi prezentate în continuare, grupate după criteriul funcţional.

Limbajul conţine puţine reguli de sintaxă:

·        nu există comenzi de început/sfârşit de program, iar programul nu este

structurat pe secţiuni;

·        o comandă se poate scrie din orice coloană, singură pe o linie;

·        o comandă se poate continua pe linia următoare, utilizând caracterul punct şi virgulă (;) la sfârşitul liniei de continuat;

·        delimitator este spaţiul (unul sau mai multe);

·        din numele unei comenzi, primele patru litere sunt obligatorii;

·        procedurile sunt de tip PROCEDURE sau FUNCTION şi pot apărea în orice ordine, în acelaşi fişier cu programul apelant sau în fişier separat.

Expresiile folosite în Visual FoxPro depind de natura operatorilor care apar: aritmetici (+, -, *, /, **),  logici (AND, OR, NOT), de comparaţie (<, >, <=, >=, <>, #, =), şiruri de caractere (+, -, $).

Comentariul se introduce prin comanda NOTE sau caracterul * scris primul pe o linie de program, începând cu orice coloană sau două caractere && pe o linie, după o comandă.

Reprezentarea datelor în memoria internă se face prin variabile simple (definite şi declarate când apar într-o comandă de atribuire), tablouri cu maxim două dimensiuni (declarate prin comanda DIMENSION sau DECLARE), constante (numerice, nenumerice, logice), clase de obiecte.

Reprezentarea datelor în memoria externă se face prin tabele relaţionale create de utilizator sau rezultate din aplicarea operaţiilor relaţionale.

Încărcarea/actualizarea unui program se face cu editorul de texte Visual FoxPro apelat cu MODIFY COMMAND (sau cu orice alt editor de texte care produce fişier ASCII).

Execuţia unui program se face prin comanda DO care generează fişierul obiect tip FXP. Pentru generarea fişierului executabil (EXE) şi apelul programului de sub sistemul de operare, fără a fi nevoie de produsul VFP,  trebuie să se utilizeze componenta de RUNTIME (cu opţiunea STANDALONE) din Visual FoxPro.

Pentru informaţii privind toate comenzile şi funcţiile Visual FoxPro, precum şi sintaxa, semantica şi exemple referitoare la ele se va folosi comanda HELP.

Contextul curent de lucru în Visual FoxPro este dat de: calea (zona) de lucru curentă (ultima activată printr-o comandă SELECT), tabela curentă (ultima deschisă pe o cale prin comanda USE), înregistrarea curentă (ultima accesată într-o tabelă).

 

 

4.2. Descrierea datelor

 

Prezentăm acele comenzi din limbajul din Visual FoxPro care se folosesc pentru descrierea şi definirea datelor (LDD - limbajul de descriere a datelor). Acestea, sunt comenzi cu un înalt grad de automatizare, uşor de utilizat:

CREATE – crează structura de date a unei tabele. Rezultă un fişier tip DBF(DataBase File), în care se  stochează structura şi apoi datele. Se lucrează într-o fereastră specifică.

CREATE TABLE – este o comandă din SQL cu aproximativ acelaşi efect ca

       comanda CREATE. Se lucrează însă prin linii de comandă şi

                   permite în plus specificarea restricţiilor de integritate din modelul

                   relaţional, la momentul descrierii datelor.

CREATE DATABASE – crează o bază de date, care va conţine mai multe tabele. Se

poate astfel lucra explicit cu noţiunea de bază de date. Rezultă un fişier tip DBC (DataBse Container).

MODIFY STRUCTURE – actualizează structura de date a unei tabele prin operaţii de:

                     adăugare, modificare, ştergere de câmpuri.

ALTER TABLE – este o comandă din SQL cu aproximativ acelaşi efect cu MODI

                      STRU. Se lucrează însă prin linii de comandă.

LIST/DISP STRUCTURE – afişează structura de date a unei tabele.

DBF () – furnizează numele tabelei deschise pe calea curentă.

 

 

4.3. Manipularea datelor

 

Principalel operaţii de manipulare implementate în LMD (Limbajul de Manipulare a Datelor) sunt: accesul la date, actualizarea datelor, tehnicile de programare.

 

Accesul la date

 

Pentru accesul la date, care este una dintre operaţiile cele mai utilizate ale unui SGBD, vom grupa comenzile pe tipurile de acces suportate de Visual FoxPro.

 

            Pregătirea accesului

 

USE – deschide o tabelă, pregătită pentru orice tip de acces.

OPEN DATABASE – deschide o bază de date

CLOSE – închide tabele şi alte fişiere Visual FoxPro, conform opţiunilor specificate.

SELECT – activează o cale (zonă) de lucru. Acestea sunt notate cu 1,2,… sau cu A,

            B,… Pe o cale, la un moment dat, poate fi deschisă o singură tabelă.

INDEX – indexează o tabelă după o singură cheie –fişier tip IDX (simplă - formată din unul sau multe câmpuri) sau după mai multe chei – fişier tip CDX (multiindexată). Rolul indexării este         de a permite ordonarea datelor şi accesul direct la date.

REINDEX – reindexează o tabelă după un criteriu stabilit la o indexare anterioară.

SET INDEX TO – activează unul din fişierele de index tip IDX, create anterior.

SPACE () – generează un şir de spaţii.

 

            Accesul tip secvenţial

 

LOCATE – caută în acces secvenţial, prima înregistrare dintr-o tabelă care

îndeplineşte o anumită condiţie. Căutarea se face, întotdeauna, de la începutul

                tabelei.

CONTINUE – reia execuţia ultimei comenzi LOCATE anterioare, căutarea începând

            de la înregistrarea curentă.

 

Accesul prin număr de realizare

 

GO [TO] – poziţionează pointerul de înregistrare, pe înregistrarea cu numărul de

ordine (realizare) specificat. Într-o tabelă, înregistrările sunt numerotate automat, de către sistem, de la 1 (TOP) la câte sunt (BOTTOM).

SKIP – deplasează pointerul de înregistrare, începând de la înregistrarea curentă, cu

un număr de înregistrări spre stânga (BOF) sau spre dreapta (EOF).

 

Accesul direct

 

SEEK – caută direct prima înregistrare dintr-o tabelă care are valoarea cheii de

indexare egală cu o valoare specificată în comandă (printr-o expresie de orice tip).

FIND – la fel  ca SEEK dar valoarea  se poate specifica doar printr-o expresie tip

caracter. Dacă referirea se face printr-o variabilă, aceasta este precedată de

caracterul & (metadefiniţie – referire indirectă).

 

Vizualizarea

 

LIST – afişează înregistrări dintr-o tabelă, conform unor criterii specificate. LIST simplu, afişează toate tuplurile din tabela curentă.

DISPLAY – la fel  ca LIST dar, la afişarea pe ecran, când acesta este umplut se opreşte defilarea automat. Reluarea se face apăsând orice tastă. DISP simplu, afişează tuplul curent din tabela curentă.

 

Funcţii utilizate la acces

 

STR () – transformă o valoare numerică într-un şir de caractere.

VAL () – transformă un şir de caractere într-o valoare numerică.

SUBSTR () – extrage dintr-un şir dat un număr de caractere.

RECCOUNT () – furnizează numărul de înregistrări dintr-o tabelă.

RECNO () – furnizează numărul de ordine (realizare) al înregistrării curente.

BOF () – începutul de fişier.

EOF () – sfârşitul de fişier.

FOUND () – indică dacă în urma unui acces a fost găsită sau nu o înregistrare.

LOWER () – transformă literele mari în litere mici.

UPPER () – transformă literele mici în litere mari.

CHR () – furnizează caracterul al cărui cod ASCII este indicat.

 

Actualizarea datelor

 

Actualizarea presupune realizarea celor trei operaţii: adăugare, modificare, ştergere asupra înregistrărilor dintr-o tabelă.

APPEND – adaugă înregistrări la sfârşitul tabelei curente (ordinea înregistrărilor

într-o tabelă nu contează). Se lucrează într-o fereastră specifică.

INSERT – inserează o înregistrare între alte două existente deja. Este mare consumatoare de resurse calculator.

INSERT SQL – comandă din SQL. Adaugă la sfârşitul tabelei o înregistrare indicată

prin comandă.

REPLACE – modifică înregistrări existente dintr-o tabelă.

DELETE – şterge logic (marchează prin caracterul *) înregistrări dintr-o tabelă.

RECALL – reface înregistrări şterse logic anterior.

PACK – şterge fizic toate înregistrările şterse logic anterior.

ZAP – şterge fizic toate înregistrările dintr-o tabelă.

DELETED () – specifică dacă înregistrarea curentă este ştearsă logic.

SET DELETED – specifică dacă înregistrările şterse logic sunt disponibile sau nu

pentru alte comenzi.

 

Tehnicile de programare

 

Limbajel din VFP implementează atât tehnicile de programare structurată (structurile fundamentale, modularizarea etc.) cât şi programarea orientată obiect.

 

. Structurile fundamentale de program

 

În Visual FoxPro există comenzi specifice care permit implementarea celor trei structuri fundamentale de program din programarea structurată (procedurală): secvenţială, alternativă, repetitivă.

 

            Structura secvenţială

 

STOREü  

=          ý  - comenzi de atribuire

            þ

 ? – scrie o linie pe ecran şi trece cursorul pe linia următoare.

?? – scrie pe linia curentă.

@ … SAY / GET – scrie /citeşte date pe/de la o coordonată a ecranului (comanda de

intrare/ieşire standard)

READ – finalizează o comandă de citire @ … GET.

WAIT – suspendă execuţia cu posibilitatea de reluare.

Notă. Toate comenzile care nu fac parte din structurile alternative şi repetitive, fac parte din structura secvenţială.

 

            Structura alternativă

 

IF … ENDIF – structura alternativă simplă (cu două ramuri).

CASE … ENDCASE – structura alternativă multiplă (mai mult de două ramuri).

 

            Structura repetitivă

 

DO WHILE … ENDDO – structură repetitivă cu text iniţial.

FOR … ENDFOR – structură repetitivă cu text iniţial cu numărător.

SCAN … ENDSCAN – structură repetitivă specifică care permite accesarea automată

a tuturor înregistrărilor dintr-o tabelă.

 

Alte tehnici de programare structurată

 

            Modularizarea

 

PROCEDURE … RETURN – permite construirea unei subrutine tip procedură.

FUNCTION … RETURN – permite construirea unei subrutine tip funcţie utilizator.

SET PROCEDURE TO – deschide un fişier de procedurispecificat.

 

            Meniuri

 

@ … PROMPT – defineşte opţiunile dintr-un meniu programat (cu bară de selecţie

– cu prompter).

MENU TO – numărul opţiunii selectate dintr-un meniu programat (cu bară de selecţie

– cu prompter) este stocat într-o variabilă.

DEFINE MENU – defineşte un meniu orizontal prin comenzi specifice.

DEFINE PAD – defineşte opţiunile dintr-un meniu orizontal prin comenzi specifice.

ACTIVATE MENU – activează un meniu orizontal prin comenzi specifice (duce

cursorul pe meniu).

DEACTIVATE MENU – eliberează cursorul de pe un meniu orizontal.

SHOW MENU – vizualizează pe ecran un meniu orizontal.

PAD () – funcţie alfanumerică ce conţine numele opţiunii selectate dintr-un meniu

orizontal prin comenzi specifice.

DEFINE POPUP – defineşte un meniu vertical prin comenzi specifice.

DEFINE BAR – defineşte opţiunile dintr-un meniu vertical prin comenzi specifice.

ACTIVATE  POPUP – activează un meniu vertical (duce cursorul pe meniu).

DEACTIVATE POPUP – eliberează cursorul de pe meniul vertical.

SHOW POPUP – vizualizează pe ecran un meniu vertical.

BAR () – funcţie numerică ce conţine numărul de ordine al opţiunii selectate dintr-un

meniu vertical.

ON SELECTION – testează dacă se lucrează pe un meniu orizontal (MENU), pe

opţiunile acestuia (PAD), pe un meniu vertical (POPUP), pe opţiunile acestuia (BAR).

RELEASE – şterge din memorie meniuri sau opţiuni.

 

            Ferestre

 

DEFINE WINDOW – defineşte o fereastră în anumite condiţii indicate prin clauze.

ACTIVATE WINDOW – activează o fereastră (cursorul e activ în fereastră).

DEACTIVATE WINDOW – eliberează cursorul din fereastră.

SHOW WINDOW – vizualizează o fereastră.

RELEASE WINDOW – şterge din memorie o fereastră.

 

            Rapoarte

 

SET RELATION – stabileşte o legătură între două sau mai multe tabele deschise pe

căi diferite.

COPY TO – implementează operatorul relaţional de proiecţie.

SELECT SQL – comandă din SQL care permite formularea cererilor de regăsire

complexe. Implementează şi operatorii relaţional de baz㪠selecţia, proiecţia,

joncţiunea, uniunea, diferenţa, intersecţia.

JOIN – implementează operatorul relaţional de joncţiune.

BROWSE – comandă complexă ce permite pentru o tabelă: vizualizare, răsfoire,

actualizare, etc.

CHANGE – idem ca BROWSE dar aranjarea câmpurilor se face, pe ecran, invers (pe

verticală).

 SUM – însumează câmpurile specificate dintr-o tabelă.

Notă. Toate comenzile de citire/scriere contribuie la construirea rapoartelor, alături de multe altele (agregare, setări, etc.).

 

            Setări

 

Visual FoxPro conţine un număr important de comenzi SET care permit programatorului să modifice anumiţi parametri stabiliţi la instalarea sistemului. Prezentăm câteva dintre aceste comenzi:

SET ALTERNATE – direcţionează ieşirile standard realizate prin comanda ? spre un

fişier text.

SET COLOR – controlează culorile utilizate sub Visual FoxPro.

SET CONSOLE – controlează ieşirile standard spre ecran.

SET DATE – controlează formatul de afişare al datei calendaristice.

SET DEVICE – direcţionează ieşirile standard realizate prin comenzi @ … SAY spre

un periferic dorit.

SET MESSAGE – direcţionează mesajele care vor fi afişate prin clauze specifice din

diferite comenzi.

SET SAFETY – protejează fişierele la suprascriere.

SET STATUS – controlează afişarea unei linii de stare în partea inferioară a

ecranului.

SET TALK – controlează afişarea unor mesaje pe ecran la execuţia unor anumite

comenzi

 

            Alte comenzi/funcţii

 

AVERAGE – calculează media aritmetică.

BOF () – tastează începutul de fişier pentru o tabelă.

CALCULATE – execută expresii aritmetice.

CLEAR – şterge tot ecranul.

COUNT – numără înregistrările dintr-o tabelă ce îndeplinesc o anumită condiţie.

CTOD () – converteşte şir de caractere în dată calendaristică.

DATE () – furnizează data curentă din sistem.

DIMENSION () – declară un tablou cu maxim două dimensiuni (idem DECLARE).

DO – apelează pentru executive un program sau procedură.

DTOC – converteşte data calendaristică în şir de caractere.

EOF () – tastează sfârşitul de fişier pentru o tabelă.

FILE () – tastează existenţa unui fişier.

HELP – furnizează informaţii despre comenzi/funcţii.

MODIFY COMMAND – apelează editorul de texte Visual FoxPro.

 

 

4.4. VFP obiectual

 

Începând cu versiunile de Visual, FoxPro tratează obiecte în memoria internă şi le salvează în biblioteci. Facilităţile se referă la programarea vizuală (un caz particular de programare orientată obiect) destinată construirii unor interfeţe cu utilizatorul în mod rapid, eficient şi prietenos. Prezentăm, în continuare, câteva dintre comenzile şi funcţiile sistemului.

DEFINE CLASS … ENDDEFINE – defineşte o clasă de obiecte utilizator având ca

bază (tip) una din clasele standard oferite de sistem (vizuale sau nonvizuale).

La definirea clasei se descriu proprităţile aferente.

PROCEDURE/FUNCTION – descrie metode pentru o anumită clasă, care arată

comportamentul obiectelor.

ADDOBJECT () – metodă care permite adăugarea unor obiecte la o clasă.

CREATEOBJECT () – metodă care crează un obiect pentru o clasă indicată.

CREATE CLASS – crează o nouă clasă de obiecte cu utilizatorul CLASS

DESIGNER.

CREATE CLASSLIB – crează o bibliotecă de clase vizuale utilizator (. VCX).

MODIFY CLASS – actualizează o clasă de obiecte cu utilizatorul CLASS

DESIGNER.

ADD CLASS – adaugă o clasă într-o bibliotecă de clase  (. VCX).

SHOW () – metodă care afişează pe ecran un obiect de tip Form.

READ EVENTS – citeşte evenimente.

CLEAR EVENTS – şterge evenimente.

RELEASE – metodă care şterge o formă din memorie.

Notă. Sistemul VFP conţine, referitor la programarea orientată obiect, o serie de elemente standard: clase, proprietăţi, metode, evenimente. Toate acestea, alături de comenzi şi funcţii, sunt oferite programatorului spre utilizare. Informaţii suplimentare se obţin în HELP.

 

 


 

CAP.5 METODOLOGIA DE REALIZARE A BAZELOR DE DATE

 

5.1. Organizarea unei baze de date

5.2. Obiective urmărite în realizarea unei BD

5.3. Etape în realizarea unei BD

5.4. Eficienţa BD

 

5.1. Organizarea unei baze de date

 

Aspecte urmărite la organizarea unei BD:

1.        Organizarea intrărilor de date:

-         sursa datelor (documente primite, fişiere etc.)ş

-         actualizarea datelor (moduri, momente, reorganizări etc.);

-         controlul intrărilor de date (natură, conţinut, format, periodicitate etc.).

2.        Organizarea memorării datelor:

-         principii de memorare (memoria internă/externă, forma de stocare, legături între date etc.);

-         optimizarea memorării (redundanţă, spaţiu, alocare, codificare, reorganizare etc.).

3.        Organizarea protecţiei datelor:

-         instrumente oferite de către SGBD (autorizare acces, fişiere jurnal, arhivări etc.);

-         metode proprii (parole, rutine speciale, antivirus etc.).

4.        Organizarea legăturilor bazei de date cu alte aplicaţii: conversii, standarde, compatibilităţii, interfeţe etc.

 

5.2. Obiectivele urmărite la realizarea unei BD

 

1.        Partiţionarea: aceleaşi date trebuie să poată fi folosite în moduri diferite de către diferiţi utilizatori.

2.        Deschiderea: datele trebuie să fie uşor adaptabile la schimbări (actualizarea structurii, tipuri noi de date etc.).

3.        Eficienţa: stocarea şi prelucrarea datelor trebuie să se facă la costuri cât mai scăzute, care să fie inferioare beneficiilor obţinute.

4.        Reutilizarea: fondul de date existent trebuie să poată fi reutilizat în diferite aplicaţii informatice.

5.        Regăsirea: cererile de regăsire trebuie să poată fi adresate uşor de către toate categoriile de utilizatori, după diferite criterii,

6.        Accesul: datele trebuie să poată fi localizate prin diferite moduri de acces, rapid şi uşor.

7.        Modularizarea: realizarea BD trebuie să se poată face modular pentru generalitate şi posibilitatea lucrului în echipă.

8.        Protecţia: trebuie asigurate securitatea şi integritatea datelor.

9.        Redundanţa: prin implementarea unui model de date pentru baze de date şi prin utilizarea unei tehnici de proiectare a BD se asigură o redundanţă minimă şi controlată.

10.     Independenţa datelor faţă de programe la nivelurile logic şi fizic.

 

5.3. Etape în realizarea unei BD

 

În metodologia de realizare a BD se parcurg, în cea mai mare parte, cam aceleaşi etape ca la realizarea unui sistem informatic, cu o serie de aspecte specifice.

Activităţile (etapele) parcurse pentru realizarea unei BD (fig. 5.1.):

1.        Analiza de sistem

Scopul acestei activităţi este de a evidenţia cerinţele aplicaţiei şi resursele utilizate (studiul), precum şi de a evalua aceste cerinţe prin modelare (analiza).

STUDIUL situaţiei existente se realizează prin:

-         definirea caracteristicilor generale ale unităţii;

-         identificarea activităţilor desfăşurate;

-         identificarea resurselor existente (informaţionale, umane, echipamente, financiare etc.);

-         identificarea necesităţilor de prelucrare.

ANALIZA sistemului existent urmează investigării (studiului) şi utilizează informaţiile obţinute de aceasta.

Analiza este o activitate de modelare (conceptuală) şi se realizează sub trei aspecte: structural, dinamic şi funcţional.

 

 

                               

lumea                                                                      1. ANALIZA DE SISTEM

reală                                                                            studiul                  analiza

 

 

 


                                                                                2. PROIECTAREA

                                                                                   alegerea        proiectarea

                                                                                    SGBD          fcţ. BD

 

 


                                                                                3. REALIZAREA

                                                                                  COMPONENTELOR LOGICE

 

 

 


                                                                               

4. PUNEREA ÎN FUNCŢIUNE

                                                                                                EXPLOATAREA

 

 

 


                                                                                5. DEZVOLTAREA

 

 

 

 

a)       Analiza structurală evidenţiază modul de structurare a datelor şi legăturilor dintre ele. Cea mai utilizată tehnică este entitate-asociere:

1)       Identificarea entităţilor: fenomene, procese, obiecte concrete sau abstracte (substantivele din prezentarea activităţii descrise) (ex. Persoane, Produse, Beneficiari).

2)       Identificarea asocierilor dintre entităţi ca fiind legăturile semnificative de un anumit tip (verbele din prezentarea activităţii descrise).

3)       Identificarea atributelor ce caracterizează fiecare entitate în parte (ex. Marca, Nume, Adresă).

4)       Stabilirea atributelor de identificare unică  a realizărilor entităţii, drept chei.

Rezultatul: modelul static (structural) (diagrama entitate-asociere)

b)       Analiza dinamică evidenţiază comportamentul elementelor sistemului la anumite evenimente. Una din tehnicile utilizate este diagrama stare-tranziţie. Aceasta presupune:

1)       Identificarea stărilor în care se pot afla componentele sistemului;

2)       Identificarea evenimentelor care determină trecerea unei componente dintr-o stare în alta;

3)       Stabilirea tranzacţiilor admise între stări;

4)       Construirea diagramei.

Rezultatul: modelul dinamic

c)       Analiza funcţională evidenţiază modul de asigurare a cerinţelor informaţionale (fluxul prelucrărilor) din cadrul sistemului, prin care intrările sunt transformate în ieşiri. Cea mai utilizată tehnică este diagrama de flux a datelor. Conform acestei tehnici se delimitează:

1)       Aria de cuprindere a sistemului.

2)       Se identifică sursele de date.

3)       Se identifică modelul de circulaţie şi prelucrare a datelor

4)       Se identifică apoi rezultatele obţinute.

Rezultatul: modelul funcţional.

Notă. Exemple vezi în cartea Teste şi probleme…”, Petrion, 1999.

 

2.        Proiectarea structurii BD

 

Pornind de la modelele realizate prin activitatea de analiză se poate proiecta structura BD, parcurgând două subactivităţi: alegerea SGBD-ului şi proiectarea funcţiilor BD.

a)       Alegerea SBGD-ului se face ţinând cont de două aspecte: cerinţele aplicaţiei (utilizatorului) şi performanţele tehnice ale SGBD-ului.

Cerinţele aplicaţiei se referă la:

-         volumul de date estimat a fi memorate şi prelucrate în BD;

-         complexitatea problemei de rezolvat;

-         ponderea şi frecvenţa operaţiilor de intrare/ieşire;

-         condiţii privind protecşia datelor;

-         operaţii necesare pe baza de date (încărcare/validare, actualizare, regăsire etc.);

-         particularităţi ale activităţii pentru care se realizează baza de date.

Performanţele tehnice ale SGBD-ului se referă la:

-         modelul de date pe care-l implementează;

-         ponderea utilizării SGBD-ului pe piaţă şi tendinţa;

-         configuraţia de calcul minimă cerută;

-         limbajele de programare din SGBD;

-         facilităţi de utilizare oferite pentru diferite categorii de utilizatori;

-         limitele SGBD-ului;

-         optimizări realizate de SGBD;

-         facilităţi tehnice:

·            lucrul cu mediul distribuit şi concurenţa de date;

·            elemente de multimedia;

·            elemente de CASE;

·            interfeţe de comunicare;

·            autodocumentarea;

·            instrumente specifice oferite.

b)       Proiectarea funcţiilor BD se realizează prin: proiectarea schemelor BD, proiectarea modulelor funcţionale specializate.

Proiectarea schemelor BD se realizează pornind de la rezultatele modelării conceptuale (analiza de sistem) şi ţinând cont de modelul de date implementat de SGBD-ul ales.

Proiectarea schemei conceptuale porneşte de la identificarea setului de date necesar sistemului. Aceste date sunt apoi integrate şi structurate într-o schemă (ex. Pentru BDR cea mai utilizată tehnică este normalizarea. Pentru acest lucru se parcurg paşii:

·            Stabilirea schemei conceptuale iniţiale care se derivă din modelul entitate-asociere (analiza structurală). Pentru acest lucru se transformă fiecare entitate din model într-o colecţie de date (fişier), iar pentru fiecare asociere se definesc cheile aferente. Dacă rezultă colecţii izolate, acestea se vor lega de alte colecţii prin chei rezultând asocieri (1:1, 1:m, M:N).

·            Ameliorarea progresivă a schemei conceptuale prin eliminarea unor anomalii (ex. cele cinci FN).

·            Stabilirea schemei conceptuale finale trebuie asigure un echilibru între cerinţele de actualizare şi performanţele de exploatare (ex. o FN superioară asigură performanţe de actualizare dar un timp de răspuns mai mare).

Proiectare schemei externe are rolul de a specifica viziunea fiecărui utilizator asupra BD. Pentru acest lucru din schema conceptuală se identifică datele necesare fiecărei viziuni. Datele obţinute se structurează logic în subscheme ţinând cont de facilităţile de utilizare şi de cerinţele utilizator. Schema externă devine operaţională prin construirea de viziuni (view) cu SGBD-ul şi acordarea drepturilor de acces. Datele într-o viziune pot proveni din una sau mai multe colecţii şi nu ocupă spaţiul fizic.

Proiectarea schemei interne presupune stabilirea structurilor de memorare fizică a datelor şi definirea căilor de acces la date. Acestea sunt specifice fie SGBD-ului (schemei de alocare), fie S.O. Proiectarea schemei interne înseamnă realizarea operaţiilor:

·         estimarea spaţiului fizic pentru BD şi definirea unui model fizic de alocare (a se vedea dacă SGBD-ul permite)

·         definirea de indecşi pentru accesul direct după cheie la date;

·         construirea de clustere care înseamnă regruparea fizică a datelor din BD, pentru a permite un acces mai rapid pentru anumiţi utilizatori. Datele pot proveni din una sau mai multe colecţii.

 

 

 

Proiectarea modulelor funcţionale ţine cont de concepţia generală a BD şi de schemele proiectate anterior.

Se proiectează:

-         fluxul informaţional;

-         modulele de încărcare şi manipulare a datelor;

-         interfeţele specializate;

-         integrarea elementelor proiectate cu organizarea şi funcţionarea BD.

 

3.        Realizarea componentelor logice

Componentele logice ale unei BD sunt programele de aplicaţie dezvoltate, în cea mai mare parte, în SGBD-ul ales.

Programele se realizează conform modulelor funcţionale proiectate în etapa anterioară.

Componentele logice ţin cont de ieşiri, intrări, prelucrări şi colecţiile de date.

În paralel cu dezvoltarea programelor de aplicaţii se întocmesc şi documentaţiile diferite (tehnică, de exploatare, de prezentare).

 

4.        Punerea în funcţiune şi exploatarea

Se testează funcţiile BD mai întâi cu date de test, apoi cu date reale.

Se încarcă datele în BD şi se efectuează procedurile de manipulare, de către beneficiar cu asistenţa proiectantului.

Se definitivează documentaţiile aplicaţiei.

Se intră în exploatare curentă de către beneficiar conform documentaţiiei.

 

5.        Dezvoltarea sistemului

Imediat după darea în exploatare a BD, în mod continuu, pot exista factori perturbatori care generează schimbări în BD.

Schimbările necesare trebuie preluate de BD uşor şi “din mers”.

Factorii pot fi: organizatorici, datoraţi progresului tehnic, rezultaţi din cerinţele noi ale beneficiarului, din schimbarea metodologiilor etc.

 

5.4.   Eficienţa BD

 

Efectele directe şi indirecte ale bazelor de date conduc spre eficienţă, mai ales pentru aplicaţiile mari şi complexe, acolo unde alte produse informatice nu fac faţă.

Efectele utilizării BD conduc spre avantajele oferite de acestea:

-         elimină redundanţele necontrolate;

-         creşte productivitatea activităţii informatice;

-         oferă suport informaţional optim pentru conducere şi execuţie;

-         permite interogarea de către toate categoriile de utilizatori;

-         conduce spre aplicaţii deschise.

Efortul depus pentru realizarea şi întreţinerea unei BD este considerabil şi de aceea investiţia necesară trebuie fundamentată pentru a putea fi recuperată.

Fundamentarea investiţiei pentru o aplicaţie cu BD se face prin studiul de fesabilitate (analiza preliminară) care va conţine un studiu al costurilor şi o evaluare a efortului de realizare şi întreţinere.

Etape care trebuie parcurse pentru stabilirea eficienţei BD:

1.        Studiul costurilor iniţiale (de realizare)

·         costul software-ului necesar;

·         costul hardware-ului necesar;

·         costul impus de trecerea de la sistemul existent la SGBD;

·         costul resurselor necesare (umane, materiale, informaţionale etc.);

·         costul consultanţei tehnice.

2.        Evaluarea costurilor de funcţionare a BD

·              costul de punere în funcţiune;

·              costul de exploatare;

·              costul de întreţinere şi dezvoltare.

3.        Calcule de rentabilitate

·            utilizarea unor metode specifice (ex. Analiza Cost Beneficiu)

·            utilizarea unor instrumente hardware şi software specializate pentru BD (cresc performanţa, scad portabilitatea).

 

 


 

 

BAZE DE DATE ORIENTATE OBIECT( BDOO) ŞI VFP OBIECTUAL

 

 

6.1 Conceptul de baze de date orientate obiect

6.2 Elemente de proiectare a BDOO

6.3 Tehnici de implementare a BDOO

6.4 VFP obiectual

 

 

 

6.1 Conceptul de baze de date orientate obiect (BDOO)

 

Limitele sistemelor relaţionale, în special cele referitoare la volume mari de date şi complexitatea ridicată a datelor, au determinat evoluţia spre sistemele orientate obiect.

Dezvoltarea BDOO (generaţia a treia de BD) a fost favorizată (începand cu anii `90) de: noul context informatic, noile tipuri de baze de date, evoluţia limbajelor de  programare.

Tehnologia OO = totalitatea conceptelor, metodelor, proceselor şi instrumentelor utilizate pentru construcţia sistemelor cu obiecte.

Aplicarea tehnologiei OO la SBD a însemnat avantaje privind îmbunătăţirea structurii de date (modelul OO) şi a celorlalte componente ale sistemului.

 

a) Caracteristici ale BDOO

 

1. Sunt tratate în mod unitar (ca obiecte): datele, programele, comunicaţia => independenţa totală între ele.

2. Comunicaţia şi distribuirea sunt asigurate atât între date, cât şi între programe.

3. Structura de date este simplificată foarte mult=>uşurinţa în utilizare şi portabilitate ridicată.

4. Lucrul cu obiecte ne apropie firesc de lumea reală, în care se gasesc obiecte care au proprietaţi, asupra cărora acţionăm noi.

5. Pot fi abordate foarte multe domenii din lumea reală în care se regăsesc cele mai diferite tipuri de date.

6.Se asigură: accesul neprocedural, comunicaţia, portabilitatea, deschiderea aplicaţiilor cu BD.

 

b) Notiuni utilizate

 

Toate noţiunile prezentate la definirea structurii modelului OO: clase (tipuri) de obiecte, obiecte, metode, mesaje, instanţe, caracteristici (principii) fundamentale ale obiectelor.

Programul este o secvenţă liniara de definiri şi apeluri de obiecte şi clase de obiecte.

BDOO este o mulţime de clase de obiecte persistente(în memoria externă), organizată coerent şi ordonată în ierarhii, partajată pentru utilizatorii concurenţi.

SGBDOO este suportul software complet care asigură descrierea (structura obiectului), manipularea şi protecţia datelor organizate dupa modelul OO.

 

 

 

 

 

 

 

Sinteza conceptelor din BDOO:

 

lumea      se reprezintă    clase de    au drept   Obiectele   conţin    Proprietăţi   Domeniu

reală               prin            obiecte     instanţe                                   (variabile    de valori şi

(entităţi fizice)                (structurare                                             de instanţă)         stări

                                         pe ierarhii)  

·        nume

·        identificator

·        metode

·        mesaje

·        implementare (privată)

·        interfaţă (publică)

·        caracteristici fundamentale

 

Paralelă între noţiunile utilizate în sistemele relaţionale şi orientate obiect:

Orientat obiect=>Ierarhia de clase=>Clasa de obiecte=>Obiect=>Variabila de instanţă (proprietate)=>Identificator=>Relaţional=>Schema BD=> =>Tabela=>Tuplu=>Atribut=>cheie


                        6.2. ELEMENTE DE PROIECTARE A BDOO

 

 

Dezvoltarea tehnologiei OO include şi o serie de metodologii utilizate pentru realizarea aplicaţiilor cu BDOO. (exemplu OMT – Object Modeling Technique).

Diferitele metodologii precizează etape (paşi) necesare a fi parcurse pentru realizarea unei BDOO.

Sintetizand, etapele din diferitele metodologii conduc la urmatoarele activităţi: analiza, proiectarea, elaborarea programelor, implementarea şi exploatarea .

a)Analiza

    Rolul activităţii de analiză este de a preciza universul de discurs (se identifică entităţile fizice şi operaţiile necesare).

     Paşii parcurşi la analiză sunt:

     -se delimitează universul de discurs pornind de la lumea inconjuratoare;

     -se identifică obiectele pornind de la universul de discurs;

     -se clasifică obiectele dupa proprietăţi şi comportament;

     -se identifică secvenţele de mesaje către obiecte (legăturile dintre obiecte);

     -se determină secvenţele de activităţi şi ciclu de viaţă al obiectelor (modelarea).

Parcurgerea paşilor de mai sus se face prin reluari succesive a unor paşi precedenţi.

Rezultatul analizei este un ansamblu de specificaţii scrise în comportamentul cerut.

 

b)Proiectarea

        Rolul activităţii de proiectare este de a furniza metode pentru reprezentarea obiectelor identificate la analiză.

         Metode pentru proiectarea BDOO: diagrama obiectelor, specificaţiile obiectelor.

 

1. Diagrama obiectelor: numele proprietăţilor obiectelor  se scriu într-un dreptunghi, iar sub acesta se scrie cu litere mari numele obiectului.

    Numele proprietăţilor se scriu cu litere mici, iar dacă o proprietate este la randul ei obiect atunci se scrie cu litere mari.

     Orice proprietate, care nu este obiect, poate lua o mulţime de valori ( domeniul de valori) şi se descrie prin: tip, lungime, restricţii.

     Daca proprietatea este un obiect atunci domeniul este reprezentat de o mulţime de instanţede obiecte (obiecte particulare).

     Viziunea (view) reprezinta ansamblul proprietăţilor văzute de un utilizator din totalul celor existente într-un obiect.

      Metoda diagramei dă o imagine grafică a structurii obiectelor   şi a legaturilor dintre ele.

      Exemplu de diagramă de obiecte pentru activitatea didactică:

marca                                    anstudiu                 nrsala

disciplina                              nrstud                     facultate

anstudiu                                                               tip

NRSTUD

SALA

 

ACTIVDID                          NRSTUD                SALA

 

 

2.Specificaţiile obiectelor: liste de propoziţii explicative care conţin informaţii despre structura obiectelor şi a legăturilor dintre ele.

   Listele, ordonate după diferite criterii, pot fi de forma:

      -definiţii ale obiectelor ;

      -enumerarea obiectelor şi a proprietăţilor acestora ;

      -enumerarea domeniilor şi definiţii ale acestora;

      -descrieri semantice ale obiectelor;

      -restricţii asupra obiectelor.

 

Nota.

    În procesul de proiectare a BDOO obiectele pot fi grupate:

-simple = au proprietăţi cu o singura valoare (domeniu cu o valoare) şi au proprietăţi ce nu sunt obiecte

-compozite = au cel puţin o proprietate cu valori multiple şi au proprietăţi ce nu sunt obiecte

-compuse = au cel puţin o proprietate care este obiect;

-asociate = obiecte independente care au rolul de a stabili o legatura între alte obiecte (apar ca proprietăţi ale obiectelor care le leagă);

-agregate = obiecte ce reprezintă grupuri de entităţi şi conţin proprietăţi de grup ce se transmit tuturor instanţelor subclaselor (moştenirea).

 

c)Elaborarea programelor

     Programele pentru definirea şi manipularea obiectelor se scriu într-un SGBDOO (ex.02, Jasmine,etc) , care conţin limbaje de programare orientate obiect.

     Elaborarea programelor se desfăşoară pe baza specificaţiilor obtinute prin activitatea de proiectare a BDOO.

     Porgramele sunt secvenţe liniare de descrieri de obiecte şi de apeluri de obiecte

(mesaje).

     În SBDOO se foloseşte intens reutilizarea programelor.

 

d) Implementarea şi exploatarea     

      Sunt activităţi care au rolul de a pune în funcţiune o BDOO la parametrii proiectaţi.

      În cazul unor disfuncţionalităţi se revine la o activitate precedentă şi se produce o noua versiune a BDOO.

 

                                     6.3.Tehnici de implementare a BDOO

 

1. Gestiunea mediului limbajului de programare: trebuie asigurată tratarea conceptelor modelului orientat obiect prin limbaje de programare corespunzatoare.

2. Reprezentarea obiectelor: modelul utilizat poate fi simplu (obiecte mici şi puţine) sau complex (obiecte mari sş multe—structurate).

3. Gestiunea persistenţei : se descriu şi manipuleaza date permanente (persistente), în acelaşi mod cu cele temporare. Persistenţa se asigura prin :

         -tipaj = numai anumite tipuri (clase) de obiecte pot deveni persistente;

         -conectivitate = numai obiectele care rezultă (direct sau indirect) din alte obiecte persistente vor deveni persistente;

         -stocaj = toate obiectele plasate într-un spaţiu explicit declarat devin persistente.

4. Gestiunea memoriei : obiectele pot fi memorate atât în memoria internă cât şi în cea externă.

Identificatorul (logic sau fals) de obiect joacă un rol important privind localizarea obiectului în memorie.

5. Extensibilitatea: trebuie să se permită noi structuri de date în BDOO creata deja.

6. Distribuirea: trebuie să se permita lucrul distribuit în reţea şi să se separe prelucrarea

(consumă memorie interna )      de stocarea (consumă memorie externa) obiectelor.

7. Gestiunea versiunilor: trebuie păstrate stările succesive ale obiectelor şi evoluţia lor în timp.

8. Gestiunea obiectivelor traditionale ale unei BD.

 

Notă: vezi aspecte comparative între BDOO şi BDR în anexa 3.

 

 

6.4. VFP OBIECTUAL

 

a) Programarea vizuală = tehnica de programare utilizată pentru crearea de interfeţe utilizator prietenoase şi funcţionale.

Se integrează componenta de creare a interfeţei cu cea de atribuire de cod obiectelor din aceasta interfaţă . Programatorul creează obiectele, le poziţionează pe ecran în locul dorit şi apoi le atribuie cod. Se obţine astfel o privire de ansamblu asupra obiectelor vizuale, asupra proprietăţilor lor, precum şi codul necesar tratării fiecărui “eveniment” ce poate să apară.

Tehnica presupune ca programatorul să ştie ce are de facut fără să-l intereseze prea mult cum trebuie făcut. Ea dă posibilitatea să se dezvolte programe fără să se scrie nici o linie de cod sursă sau să se scrie foarte putin. Programarea vizuală este un caz particular de POO.

 

b) Noţiunile din tehnologia OO implementate în VFP sunt :

-     clase de obiecte;

-         obiecte;

-         proprietăţi ale obiectelor;

-         metode (comportamentul obiectelor);

-         evenimente (acţiuni asupra obiectelor).

 

 

 

 

Tipurile de obiecte tratate în VFP:

-         containere : obiect ce poate conţine alte obiecte (ex. - FORM SET);

-         controale : obiecte conţinute în alte obiecte (ex. - un buton);

 

Proprietăţile sunt atribute ale obiectelor care definesc caracteristicile acestora, din punctele de vedere: stare sau comportament. Ele reprezinta datele.

Tipuri de proprietăţi în VFP:

-         publice : accesibile din interiorul şi din afara clasei (implicit)

-         protejate (Protected) : accesibile doar din interiorul clasei.

Nota: accesul la proprietăţi se face prin metode.

 

Metodele descriu comportamentul obiectelor carora le sunt asociate (Procedure/ Function).

În VFP ele apar în definirea claselor dupa descrierea proprietăţilor şi definesc o operaţie.

Ele reprezintă codul sursă.

 

Evenimentele sunt acţiuni iniţiate de sistem (interne) sau de utilizator (externe) la care un obiect ştie să răspundă.

                  Ex. de evenimente :-externe : click mouse, apasări taste;

                                                 -interne : iniţializare obiect, generarea unei erori.

 

c) Caracteristici ale claselor de obiecte implementate in VFP

 

·        Încapsurarea se realizează prin includerea proprietăţilor (datelor) şi metodelor (codul) într-un acelaşi obiect (cu DEFINE CLASS). În plus, datele şi codul pot fi protejate (PROTECTED) şi ascunse (HIDDEN).

·        Derivarea se realizează prin generarea de noi clase pornind de la un set de clase de bază existente (oferite de sistem). O clasă derivată va avea funcţiile clasei de bază plus altele noi. Caracteristica este strâns legată de procesul de realizare a obiectelor.

·        Moştenirea este realizată automat de sistem prin derivare. Astfel o clasă derivată va moşteni automat proprietăţile (datele) şi metodele (codul) clasei de bază din care se generează. Orice actualizare în clasa de bază se va genera automat în clasele derivate din ea.

·        Ierarhia de clase este realizată prin structurarea claselor de bază oferite de VFP într-un arbore de forma:

 

                                 Obiecte de bază VFP

 

Controale                                                              Containere

 

Ob. vizuale      Ob. nonvizuale                          Ob. vizuale                       Ob. nonvizuale

 

Line    Label    Custom    Timer                Container   Toolbar …    Formset    Pageframe  

 

  Clase utilizate

 

Notă: Obiectele nonvizuale nu sunt vizibile pe ecran.

(ex: vezi cartea “Teste şi probleme…”)

 

 


 

 

CAP. 7 BAZE DE DATE DISTRIBUITE (BDD)

 

7.1. Conceptul de BDD

7.2. Structura unei BDD

7.3. Avantajele şi limitele sistemelor distribuite

 

 

7.1. Conceptul de BDD

 

Evoluţia BD locale spre BDD a avut loc în paralel cu progresele din telecomunicaţii şi din reţelele de calculatoare.

Reţelele de calculatoare au cunoscut o puternică expansiune după apariţia microcalculatoarelor.

Tipuri de reţele de calculatoare:

-        locale (LAN – Local Area Networks)

-        globale (WAN – Wide Area Networks)

-        asincrone (ATM – Asyncron Transfer Mode)

Software-ul dintr-o reţea de calculatoare:

·        sisteme de operare din noduri

·        software-ul pentru baze de date

·        software-ul de reţea (comunicaţie)

Notă. Tendinţa actuală este de integrare a software-ului de reţea (câte două sau toate trei).

BDD = o mulţime de colecţii de date memorate, conform unui model de date, în diferite locuri (noduri) ale unei reţele de calculatoare, colecţii legate logic (integrate) astfel încât să constituie o BD unică.

Definirea şi manipularea datelor se face cu un SGBDD

 

 

Caracteristici ale BDD

 

1.      Concepţia de organizare a datelor în sisteme distribuite este, în mare parte, aceeaşi cu cea de la BD locale (modele de date, metodologii de proiectare, obiective, etc.), adăugându-se unele aspecte specifice.

2.      Utilizatorul manipulează BDD fără a cunoaşte localizarea datelor.

3.      Criteriile după care se distribuie datele sun variate şi depind de cerinţele aplicaţiei informatice:

-        distribuirea uniformă = în diferitele moduri există aceleaşi tipuri de date cu aceeaşi structură;

-        distribuirea multiformă = ansamblul nodurilor din reţea este împărţit în clase;

-        distribuirea liberă = datele (BD) locale din noduri au structuri diferite.

4.      Datele sunt multiplicate din diferite considerente (fiabilitate, performanţă, frecvenţă de utilizare, siguranţă etc.) dar acest lucru este invizibil pentru utilizator.

5.      Este  permis accesul concurent la datele distribuite.

Notă. Caracteristicile de mai sus sunt asigurate de către SGBD distribuit. Pentru utilizatorul care foloseşte programele de aplicaţie toate aceste caracteristici sunt invizibile.

 

 

7.2. Structura unei BDD

 

Modelul de date implementat într-o BDD este unul dintre cele mai fundamentale, adoptat la modul de lucru reţea.

a)      Nivelurile de referinţă într-o BDD: global, local (fig. 7.1.)

 

utilizatori

                                   

                                    Schema globala                                           nivel global

 

            Schema

locală 1 …                                                                           nivel local

 

BD

locală  1 …                              BDD                           

 

Fig. 7.1. Niveluri de referinţă într-o BDD

 

-        Nivelul global conţine schema globală care include:

·        schema conceptuală globală = întreaga BDD văzută ca un tot unitar şi este independentă de aplicaţii;

·        schema internă globală = partea din BDD pe care o vedeutilizatorul şi este independentă de aplicaţii;

·        schema internă globală = modul de partiţionare (alocare) al BDD.

-        Nivelul local conţine schemele locale care include:

·        schema conceptuală locală = întreaga BD locală, dintr-un nod, şi este independentă de aplicaţie;

·        schema externă locală = partea din BD locală pe care o vede” un utilizator şi este independentă de implementare;

·        schema internă locală = structura BD locale şi modul de acces la date.

b)      tipuri de BDD

1.      Centralizate = întreaga BD se găseşte pe un singur calculator central din reţea, la care au acces toţi utilizatorii.

Avantaje: spaţiu redus, actualizări rapide, cost redus.

Dezavantaje: concurenţă mare, timp de acces mare, siguranţă redusă.

2.      Multiplicate = datele sunt multiplicate pe mai multe calculatoare din reţea.

Avantaje: concurenţă redusă, siguranţă mare, timp de acces mic.

Dezavantaje: spaţiu mare, actualizări complicate, cost mare.

3.      Partiţionate = datele sunt împărţite pe fragmente logice, ce se găsesc pe mai multe calculatoare din reţea .

Avantaje: timp de acces mediu, cost mediu, spaţiu mic, actualizare rapidă.

Dezavantaje: siguranţă redusă, rapoartele de sinteză se obţin greu.

 

 

 

 

 

 

 

 

c)      Cereri distribuite într-o BDD (fig. 7.2.)

 

Nivel global                                                   Nivel local

 

cerere    -evaluare              cereri          Executor        subcerere   adaptare    

globală  -descompunere     locale         distribuit                            

                                                                                                        

utilizator                                                                                                                           BD

                                                                                                                                    locale

              răspuns                            răspunsuri                             răspuns           SGBD

              global      -compunere          locale                                 parţial         locale

 

                        Catalog struc.

                            globale

 

                        Fig. 7.2. Prelucrarea unei cereri distribuite

 

Fluxul unei operaţii de interogare pe o BDD, pornind de la o cerere de regăsire distribuită şi până la obţinerea rezultatului:

1.      Utilizatorul formulează o cerere globală dintr-o BDD.

2.      Cererea globală este preluată de către SGBDD, evaluată şi descompusă pe baza datelor existente în Catalogul (dicţionarul) de structură globală. Rezultă un set de cereri locale.

3.      Cererile locale sunt transmise unui Executor distribuit care le împarte în subcereri, funcţie de localizarea datelor necesare.

4.      Printr-un proces de adoptare, subcererile sunt interpretate de către SGBD-urile locale care accesează datele necesare.

5.      Prin interogarea BD locale se obţin răspunsurile preluate de SGBD-urile locale.

6.      SGBD-urile locale construiesc răspunsuri parţiale.

7.      Executorul distribuit colectează răspunsurile parţiale şi produce răspunsuri locale.

8.      Răspunsurile locale sunt compuse cu ajutorul datelor din Catalogul de structură globală şi rezultă răspunsul global. Acesta este furnizat utilizatorului care a formulat cererea de regăsire.

Notă. Întregul proces de preluare al cererii distribuite este asigurat de către SGBD, fiind invizibil pentru utilizator.

 

 

                             7.3. Avantajele şi limitele sistemelor distribuite

 

Avantaje:

-        datele pot fi folosite uşor de mai mulţi utilizatori situaţi în puncte geografice diferite;

-        se reduce concurenţa la date, faţă de centralizat;

-        se asigură fiabilitate ridicată pentru sistem;

-        se poate realiza modular întregul sistem, ceea ce îi conferă deschidereş

-        avantajele lucrului în reţea de calculatoare.

Dezavantaje:

-        complexitatea ridicată a sistemului determină realizarea şi exploatarea lui, mai dificil;

-        dificultăţi de trecere de la exploatare locală la distribuită;

-        investiţie mare care se recuperează în timp;

-        timp de răspuns, uneori, mai mare.