Bazele Informaticii, Limbaje de Programare, Baze de Date Relationale

download Bazele Informaticii, Limbaje de Programare, Baze de Date Relationale

of 231

description

Bazele Informaticii, Limbaje de Programare, Baze de Date Relationale [PDF]

Transcript of Bazele Informaticii, Limbaje de Programare, Baze de Date Relationale

  • 1 Baze de date

    UNIVERSITATEA TEHNIC DE CONSTRUCII

    BUCURETI

    BAZELE INFORMATICII

    SI

    LIMBAJE DE PROGRAMARE

    2

    BAZE DE DATE RELAIONALE

    Romic TRANDAFIR

    Mihai NISTORESCU Ion MIERLU-MAZILU

    Bucureti

    2007

  • 2007 Cuprins 2

    Cuprins

    Cuprins................................................................................................................................................1 1. Bnci i baze de date ......................................................................................................................5

    1.1. Noiuni generale ....................................................................................................................5 1.2. Sisteme de baze de date.........................................................................................................6 1.3. Organizarea datelor ntr-o baz de date.................................................................................7 1.4. Modelarea la nivel logic a datelor ntr-o baz de date...........................................................8 1.5. Sistem de gestiune a bazelor de date ...................................................................................10

    1.5.1. Interfee SGBD ..........................................................................................................11 1.5.2. Funcii i servicii oferite de un SGBD.......................................................................12 1.5.3. Activitile asigurate de SGBD..................................................................................14 1.5.4. Obiectivele unui SGBD .............................................................................................15

    2. Etapele de realizare a unei bnci de date...................................................................................17 2.1. Etapa de analiz ...................................................................................................................17 2.2. Etapa de programare............................................................................................................17 2.3. Punerea n funciune i exploatarea bazei de date ...............................................................18 2.4. Documentaia aplicaiei .......................................................................................................19

    3. Sisteme de gestiune a bazelor de date relaionale .....................................................................20 3.1. Modelul relaional al datelor ...............................................................................................20

    3.1.1. Structura relaional a datelor ....................................................................................20 3.1.2. Operaii n algebra relaional....................................................................................21 3.1.3. Optimizarea cererilor de date.....................................................................................28 3.1.4. Baze de date relaionale .............................................................................................30 3.1.5. Tipuri de relaii ..........................................................................................................31 3.1.6. Restricia de cardinalitate...........................................................................................33

    3.2. Regulile lui Codd.................................................................................................................34 3.3. Normalizarea datelor ...........................................................................................................37 3.4. Cerinele minimale de definire a SGBDR...........................................................................37

    4. Componentele funcionale ale sistemului Visual FoxPro .........................................................39 4.1. Programarea orientat pe obiecte ........................................................................................39 4.2. Ierarhia claselor n Visual FoxPro.......................................................................................44 4.2. Arhitectura VFP 6.0.............................................................................................................45 4.3. Moduri de lucru n VFP.......................................................................................................46

    4.3.1. Modul de lucru meniu sistem.....................................................................................47 4.3.2. Modul de lucru prin comenzi.....................................................................................52

    5. Organizarea datelor nVisual FoxPro........................................................................................53 5.1. Manipularea bazei de date i a tabelelor n VFP .................................................................53

    5.1.1. Crearea bazei de date .................................................................................................53 5.1.2. Crearea tabelelor ........................................................................................................54 5.1.3. Validarea cmpurilor unei nregistrri la introducere................................................55

    5.2. Deschiderea bazei de date/tabelei........................................................................................61 5.3. Consultarea i modificarea bazei de date/tabelei.................................................................62

    5.3.1. Modificarea structurii de date a tabelelor n modul asistat........................................62 5.3.2. Deplasri n tabel. Cutri secveniale.....................................................................64

    5.4. nchiderea bazei de date/tabelei...........................................................................................65 6. Utilizarea asistentului Wizard n VFP .......................................................................................67

    6.1. Table Wizard .......................................................................................................................67 6.2. Form Wizard........................................................................................................................68 6.3. Report Wizard .....................................................................................................................69

  • 3 Baze de date

    6.4. Label Wizard .......................................................................................................................70 6.5. Query Wizard ......................................................................................................................70 6.6. Mail Merge Wizard .............................................................................................................72 6.7. Editorul de texte n VFP 6.0 ................................................................................................73

    6.7.1. Lansarea editorului ....................................................................................................73 6.7.2. Lucrul cu blocul de linii din fiier .............................................................................73

    7. Elemente ale limbajului propriu Visual FoxPro 6.0 .................................................................74 7.1. Simboluri .............................................................................................................................74 7.2. Variabile de sistem ..............................................................................................................74 7.3. Comentariul .........................................................................................................................74 7.4. Tipuri de date, operaii i funcii .........................................................................................74

    7.4.1. Date de tip numeric. Funcii aritmetice i financiare.................................................77 7.4.2. Aplicaii ale funciilor financiare...............................................................................78 7.4.3. Date i funcii de tip caracter .....................................................................................81 7.4.4. Date i funcii de tip calendaristic..............................................................................83 7.4.5. Date de tip memo.......................................................................................................84

    7.5. Variabile i masive ..............................................................................................................84 7.5.1. Variabile.....................................................................................................................84 7.5.2. Macrosubstituia.........................................................................................................85 7.5.3. Masive de date ...........................................................................................................86

    7.6. Funcii de prelucrare a masivelor ........................................................................................87 8. Accesul i actualizarea datelor....................................................................................................92

    8.1. Manipularea structurii unei tabele .......................................................................................92 8.2. Ordonarea datelor ................................................................................................................93 8.3. Accesul la date.....................................................................................................................98 8.4. Actualizarea datelor...........................................................................................................103

    8.4.1. Adgarea de noi nregistrri.....................................................................................103 8.4.2. Modificarea nregistrrilor.......................................................................................106 8.4.3. tergerea nregistrrilor ...........................................................................................110 8.4.5. Relaii ntre tabele....................................................................................................113

    9. Programarea procedural .........................................................................................................120 9.1. Programarea structurat.....................................................................................................120

    9.1.1. Structura liniar........................................................................................................121 9.1.2. Structura alternativ .................................................................................................124 9.1.3. Structura repetitiv...................................................................................................126

    9.2. Modularizarea programelor ...............................................................................................129 9.2.1. Proceduri ..................................................................................................................130 9.2.2. Funcii ......................................................................................................................131

    10. Comenzi ale nucleului SQL.....................................................................................................135 11. Proiectarea meniurilor i a barelor de instrumente .............................................................146 12. Aplicaii .....................................................................................................................................147

    12.1. Evidena rezultatelor activitii studenilor ntr-o facultate.............................................147 12.1.1. Formularea i analiza problemei............................................................................147 12.1.2. Crearea, actualizarea, modificarea i interogarea tabelelor ...................................149 12.1.3. Crearea structurii unui fiier ..................................................................................150 12.1.4. Adresarea prin macrosubstituie ............................................................................151 12.1.5. Crearea unui meniu................................................................................................151

    12.2. Gestionarea unei magazii ................................................................................................153 12.2.1. Proiectarea i realizarea aplicaiei..........................................................................153 12.2.2. Realizarea documentaiei i a aplicaiei n format executabil................................220

  • 2007 Cuprins 4

    12.2.3. Utilizarea Setup Wizard.........................................................................................225 A. Anexa..........................................................................................................................................227 Index de termeni.............................................................................................................................229 Bibliografie .....................................................................................................................................231

  • 5 Baze de date

    1. Bnci i baze de date

    1.1. Noiuni generale

    O baz de date reprezint un ansamblu de date integrat, anume structurat i dotat cu o descriere

    a acestei structuri. Descrierea structurii poart numele de dicionar de date sau metadate i creaz o

    interdependen ntre datele propriu-zise i programe.

    Baza de date poate fi privit ca o colecie de fiiere interconectate care conin nucleul de date

    necesare unui sistem informatic. Astfel, poate fi considerat drept un model al unor aspecte ale

    realitii unei uniti economice, modelat prin intermediul datelor. Diferitele obiecte din cadrul

    realitii, ce prezint interes, sunt denumite clase sau entiti. Pentru aceste obiecte sunt

    achiziionate i memorate date referitoare la diferite caracteristici (atribute). Baza de date se

    constituie ca un ansamblu intercorelat de colecii de date, prin care se realizeaz reprezentarea unei

    realiti.

    Datele constituie orice mesaj primit de un receptor, sub o anumit form.

    Informaiile reprezint cantitatea de noutate adus de un mesaj din exterior (realitate).

    Un fiier este un ansamblu de nregistrri fizice, omogene din punct de vedere al coninutului

    i al prelucrrii.

    O nregistrare fizic este o unitate de transfer ntre memoria intern i cea extern a

    calculatorului.

    O nregistrare logic este unitatea de prelucrare din punct de vedere al programului utilizator.

    O nregistrare se compune din cmpuri (atribute) care descriu anumite aspecte ale realitii.

    Cmpurile sunt nregistrri logice.

    O baz de date trebuie s asigure:

    abstractizarea datelor (baza de date fiind un model al realitii),

  • 1. Bnci i baze de date 6

    integrarea datelor (baza de date este un ansamblu de colecii de date intercorelate, cu redundan controlat),

    integritatea datelor (se refer la corectitudinea datelor ncrcate i manipulate astfel nct s se respecte restriciile de integritate),

    securitatea datelor (limitarea accesului la baza de date), partajarea datelor (datele pot fi accesate de mai muli utilizatori, eventual n acelai

    timp),

    independena datelor (organizarea datelor s fie transparent pentru utilizatori, modificrile n baza de date s nu afecteze programele de aplicaii).

    1.2. Sisteme de baze de date

    Sistemele de baze de date, sau bncile de date, reprezint un sistem de organizare i prelucrare,

    respectiv teleprelucrare (prelucrare la distan) a informaiei, constituit din urmtoarele trei

    elemente:

    creare baza de date

    colecie de date aflate n interdependen descrierea datelor i a relaiilor dintre ele un sistem de programe care asigur exploatarea bazei de date (actualizare, interogare).

    Arhitectura sistemului de baze de date este format din urmtoarele componente (Figura 1):

    baza/bazele de date reprezint componenta de tip date a sistemului (coleciile de date propriu-zise, indecii);

    sistemul de gestiune a bazei/bazelor de date ansamblul de programe prin care se asigur gestionarea i prelucrarea complex a datelor i care reprezint componenta software a

    sistemului de baze de date (Sistem de Gestiune a Bazelor de Date SGBD);

    alte componente proceduri manuale sau automate, inclusiv reglementri administrative, destinate bunei funcionri a sistemului, dicionarul bazei de date (metabaza de date) care

    conine informaii despre date, structura acestora, elemente de descriere a semanticii,

    statistici, documentaii, mijloacele hardware utilizate, personalul implicat.

    Fig. 1

    APLICAII

    UTILIZATORI

    ALTE ELEMENTE

    BAZA DE DATE SGBD

  • 7 Baze de date

    1.3. Organizarea datelor ntr-o baz de date

    Arhitectura intern a unui sistem de baze de date conform standardului ANSI/X3/SPARC

    (1975) conine trei niveluri funcionale. O caracteristic fundamental a bazelor de date este aceea

    c produce cteva niveluri de abstractizare a datelor prin ascunderea (transparena) detaliilor legate

    de stocarea datelor, utilizatorilor.

    Se definete modelul datelor, ca un set de concepte utilizat n descrierea structurii datelor. Prin

    structura bazei de date se nelege tipul datelor, legtura dintre ele, restriciile aplicate datelor. O

    structur de date asociat unei baze de date poate fi reprezentat pe trei niveluri, Figura 2, astfel:

    Nivelul intern constituit din schema intern ce descrie structura de stocare fizic a datelor n baza de date, utiliznd un model al datelor fizice. La acest nivel se descriu detaliile

    complete ale stocrii i modul de acces la date.

    Nivelul conceptual sau schema conceptual, descrie structura ntregii baze de date pentru o cumunitate de utilizatori. La nivel conceptual se face o descriere complet a bazei de date

    ascunzndu-se detaliile legate de stocarea fizic i detaliind descrierea entitilor, tipurilor

    de date, relaiile dintre ele i restriciile asociate.

    Vizualizare grup utilizatori 1

    Vizualizare grup utilizatori n

    Schema conceptual

    Schema intern

    Nivel extern

    Nivel conceptual

    Nivel intern

    Date memorate

    Fig. 2

  • 1. Bnci i baze de date 8

    Nivelul extern sau nivelul vizual (utilizator), include o colecie de scheme externe ce descriu baze de date prin prisma diferiilor utilizatori.

    n multe SGBD nu se poate face o distincie clar ntre cele trei niveluri, de multe ori nivelul

    conceptual este puternic dezvoltat i suplinete aparent celelalte niveluri. De asemenea, la

    dezvoltarea aplicaiilor se remarc o contopire a nivelului extern cu cel conceptual.

    De la modelul conceptual, cererile sunt adresate modelului intern pentru a fi procesate i

    aplicate datelor stocate. Procesul de transfer a cererilor i rezultatelor ntre nivele se numete

    cartografiere (mapping).

    n funcie de categoria de personal implicat n folosirea bazei de date, datele dintr-o baz de

    date pot fi structurate pe trei niveluri:

    nivelul conceptual (global) exprim viziunea administratorului bazei de date asupra datelor. Acestui nivel i corespunde structura conceptual (schema) a bazei de date, prin care se

    realizeaz o descriere a tuturor datelor, ntr-un mod independent de aplicaii, ce face posibil

    administrarea datelor.

    nivelul logic exprim viziunea programatorului de aplicaie asupra datelor. La acest nivel se realizeaz o descriere a datelor corespunztoare unui anumit program de aplicaie.

    nivelul fizic care exprim viziunea inginerului de sistem asupra datelor. Corespunde schemei interne a bazei de date prin care se realizeaz o descriere a datelor pe suport fizic de

    memorie.

    1.4. Modelarea la nivel logic a datelor ntr-o baz de date Modelul de date reprezint ansamblul de concepte i instrumente necesare pentru a construi o

    schem a bazei de date. Modelarea datelor poate viza totalitatea datelor din cadrul bazei de date

    (schema/arhitectura datelor) sau o parte a acestora (subscheme ale bazei de date). Schema i

    subschema bazei de date sunt modelele logice ale bazei de date, care au asociate principii generale

    pentru gestionarea/definirea (structurarea) datelor, manipularea i asigurarea integritii datelor, fr

    a reflecta modul de reprezentare i stocare a acestor date pe suportul de memorie (care sunt ele

    modelului fizic).

    Se cunosc mai multe tipuri de baze de date dup modul de organizare, modul de dispunere pe

    suport magnetic a informaiei i a elementelor componente:

  • 9 Baze de date

    modele primitive datele sunt organizate la nivel logic n fiiere, structura de baz este nregistrarea, mai multe nregistrri fiind grupate n structuri de tip fiier;

    baze de date ierarhice legturile dintre date sunt ordonate unic, accesul se face numai prin vrful ierarhiei, un subordonat nu poate avea dect un singur superior direct i nu se poate

    ajunge la el dect pe o singur cale;

    baze de date n reea datele sunt reprezentate ca ntr-o mulime de ierarhii, n care un membru al ei poate avea orici superiori, iar la un subordonat se poate ajunge pe mai multe

    ci;

    baze de date relaionale structura de baz a datelor este aceea de relaie tabel, limbajul SQL (Structured Query Language) este specializat n comenzi de manipulare la nivel de

    tabel. Termenul relaional a fost introdus de un cercettor al firmei IBM, dr. E. F. Codd, n

    1969, cel care a enunat cele 13 reguli de baz necesare pentru definerea unei baze de date

    relaionale. Baza de date relaional reprezint o mulime structurat de date, accesibile prin

    calculator, care pot satisface n timp minim i ntr-o manier selectiv mai muli utilizatori.

    Aceast mulime de date modeleaz un sistem sau un proces din lumea real i servete ca

    suport unei aplicaii informatice;

    baze de date distribuite sunt rezultatul integrrii tehnologiei bazelor de date cu cea a reelelor de calculatoare. Sunt baze de date logic integrate, dar fizic distribuite pe mai multe

    sisteme de calcul. Integrarea bazei de date distribuite se face cu ajutorul celor trei tipuri de de

    scheme care sunt implementate:

    1. schema global definete i descrie toate informaiile din baza de date distribuit n

    reea;

    2. schema de fragmentare descrie legturile dintre o colecie global i fragmentele

    sale. Ea este de tipul unu la mai muli i are forma unei ierarhii;

    3. schema de alocare descrie modul de distribuire a segmentelor pe calculatoarele

    (nodurile) din reea. Fiecare segment va avea o alocare fizic pe unul sau mai multe

    calculatoare. Schema de alocare introduce o redundan minim i controlat: un

    anumit segment se poate regsi fizic pe mai multe calculatoare.

    Utilizatorul unei asemenea baze de date o vede ca pe o baz de date unic, compact (nivel

    logic), cu toate c n realitate ea este distribuit pe mai multe calculatoare legate n reea (nivel

    fizic). Aceast organizare a dus la o cretere substanial a vitezei de acces la o baz de date ntr-o

    reea de calculatoare. Anumite date stocate pe un server local sunt mult mai rapid accesate dect

  • 1. Bnci i baze de date 10 dac ele s-ar afla pe un server la distan, unde baza de date ar fi fost stocat n ntregime

    (nedistribuit);

    modele semantice orientate spre obiecte. Aceste modele sunt orientate pe reprezentarea semnificaiei datelor. Structura de baz folosit pentru reprezentarea datelor este cea de clas

    de obiecte definit prin abstractizare din entitatea fizic pe care o regsim n lumea real.

    Aici exist entiti simple i clase de entiti care se reprezint prin obiecte simple sau clase

    de obiecte, ordonate n ierarhii de clase i subclase. Acest tip de baz de date a aprut din

    necesitatea gestionrii obiectelor complexe: texte, grafice, hri, imagini, sunete (aplicaii

    multimedia) i a gestionrii obiectelor dinamice: programe, simulri.

    1.5. Sistem de gestiune a bazelor de date

    Sistemele de gestiune a bazalor de date (DBMS DataBase Management System) sunt sisteme

    informatice specializate n stocarea i prelucrarea unui volum mare de date, numrul prelucrrilor

    fiind relativ mic.

    Termenul de baz de date se va referi la datele de prelucrat, la modul de organizare a acestora

    pe suportul fizic de memorare, iar termenul de gestiune va semnifica totalitatea operaiilor ce se

    aplic asupra datelor din baza de date.

    n arhitectura unui sistem de baze de date SGBD ocup locul central.

    Un SGBD este ansamblul software interpus ntre utilizatori i baza de date i este un interpretor

    de cereri de acces sau regsire de date n baza de date, execut cererea i returneaz rezultatul.

    SGBD este un sistem de programe care faciliteaz procesul definirii, construcei, organizrii i

    manipulrii datelor pentru diverse aplicaii. Utilizatorul are acces la SGBD prin intermediul unei

    interfee (aplicaie) cu ajutorul creia stabilesc parametrii interogrii i se primete rspuns; ntreg

    ansamblul este descris n Figura 3.

    Utilizator Aplicaie

    SGBD

    Baza de date

    Fig. 3

    Organizarea pe trei niveluri a sistemelor de baze de date este strns legat de conceptul de

    independen a datelor, n sensul c sistemul bazei de date poate fi modificat la orice nivel fr a

  • 11 Baze de date afecta nivelurile superioare. Independena datelor poate fi privit n dou moduri, corespunztoare

    nivelurilor conceptual (logic) i intern (fizic).

    Independena logic a datelor reprezint capacitatea modificrii schemei conceptuale fr a

    provoca modificri n schema extern sau n programele de aplicae. Schema conceptual se poate

    modifica prin mrirea bazei de date datorit adugrii de noi tipuri de nregistrri (o nou coloan

    ntr-o tabel) sau date (nregistrri) sau micorarea bazei de date n cazul tergerii unor nregistrri.

    Independenafizic a datelor este dat de capacitatea de schimbare a schemei interne fr

    modificarea schemei conceptuale sau externe.

    Funcionarea unui SGBD se realizeaz prin comenzi specifice limbajului SQL. Nivelele

    conceptual i intern nefiind distinct delimitate sunt adresate printr-un limbaj comun numit DDL

    Data Definition Language, utilizat pentru administrarea i proiectarea bazei de date n definirea

    ambelor scheme. Dac SGBD are o delimitare clar ntre nivelul conceptual i cel intern, atunci

    DDL se folosete pentru comenzile la nivel conceptual, iar pentru specificarea schemei interne se

    folosete limbajul SDL Storage Definition Language. Pentru cel de al treilea nivel, extern, se

    folosete limbajul VDL View Definition Language, destinat utilizatorilor i pentru interfaa

    acestora cu nivelul conceptual. Pentru operaiile tipice legate de cutare, inserare, tergere i

    modificarea datelor, SGBD dispune de un limbaj de manipulare numit DML - Data Manipulation

    Language.

    1.5.1. Interfee SGBD

    Un SGBD este un ansamblu complex de programe care asigur interfaa ntre o baz de date i

    utilizatorii acesteia. SGBD este componenta software a unui sistem de baze de date care

    interacioneaz cu toate celelalte componente ale acestuia asigurnd legtura i interdependena

    ntre ele.

    Un SGBD ofer interfeele corespunztoare tuturor categoriilor de utilizatori pentru a facilita

    legtura acestora cu baza de date. Principalele tipuri de interfee:

    Interfee pe baz de meniuri care ofer utilizatorilor o list de opiuni (meniuri) pentru formularea interogrilor.

  • 1. Bnci i baze de date 12

    Interfee grafice afieaz utilizatorului un set de diagrame, cererile sunt formulate prin manipularea acestor diagrame. De cele mai multe ori interfeele grafice sunt asociate cu

    meniurile.

    Interfee bazate pe videoformate se utilizeaz pentru introducerea de noi date, actualizarea bazei de date i cutare.

    Interfee n limbaj natural accept comenzi scrise n limba englez sau alte limbi de circulaie internaional. Interpretarea cererilor se face pe baza unui set de standard de

    cuvinte cheie ce sunt interpretate pe baza schemei interne.

    Interfee specializate pentru cereri repetate (limbaj de comand) sunt destinate unei anumite categorii de utilizatori, de exemplu pentru angajaii unei bnci se

    implementeaz un mic set de comenzi prescurtate pentru a micora timpul necesar

    introducerii comenzii.

    Interfee pentru administrarea bazei de date se utilizeaz pentru comenzile privilegiate utilizate de administratorii bazei de date i se refer la crearea de conturi, parole, setarea

    parametrilor sistemului, autorizarea intrrii pe un anumit cont, reorganizarea structurii de

    stocare a datelor din baza de date, accsul la e, nregistrri.

    Exemple de SGBD: MySQL, Microsoft SQL, Microsoft Access, Visual FoxPro, Oracle.

    1.5.2. Funcii i servicii oferite de un SGBD

    Un SGBD trebuie s asigure funciile (Figura 4):

    funcia de descriere a datelor se face cu ajutorul LDD, realizndu-se descrierea atributelor din cadrul structurii bazei de date, legturile dintre entitile bazei de date, se definesc

    eventualele criterii de validare a datelor (5.1.3.), metode de acces la date, integritatea

    datelor. Concretizarea acestei funcii este schema bazei de date.

    funcia de manipulare este cea mai complex i realizeaz actualizarea i regsirea datelor. funcia de utilizare asigur mulimea interfeelor necesare pentru comunicare a tuturor

    utilizatorilor cu baza de date.

    Categorii de utilizatori:

    neinformaticieni beneficiarii informaiei, nu trebuie s cunoasc structura bazei de date, nu

    trebuie s programeze aplicaii, ci doar s le foloseasc prin intermediul unei interfee suficient

    de prietenoase.

  • 13 Baze de date

    informaticieni creaz structura bazei de date i realizeaz procedurile complexe de exploatare

    a bazei de date;

    administratorul bazei de date utilizator special, cu rol hotrtor n funcionarea optim a

    ntregului sistem.

    funcia de administrare administratorul este cel care realizeaz schema conceptual a bazei de date, iar n perioada de exploatare a bazei de date autorizeaz accesul la date, reface

    baza n caz de incident.

    funcia de protecie a bazei de date ansamblul de msuri necesare pentru asigurarea integritii (semantic, acces concurent, salvare/restaurare) i securitii datelor (autorizare

    acces, utilizare viziuni, criptare).

    ADMINISTRAREDESCRIERE MANIPULARE

    BAZA DE

    FUNCIILE SGBD UTILIZARE

    UTILIZATORI

    DATE

    Fig. 4

    Prin acestea, un SGBD trebuie s asigure:

    definirea crearea bazei de date; introducerea (adugarea) datelor n baza de date; modificarea structurii sau a unor date deja existente n baza de date; tergerea datelor din baza de date; consultarea bazei de date interogare/extragerea datelor.

  • 1. Bnci i baze de date 14

    n plus un SGBD mai asigur i alte servicii:

    suport pentru limbaj de programare; interfa ct mai atractiv pentru comunicarea cu utilizatorul; tehnici avansate de memorare, organizare, accesare a datelor din baza de date; utilitare ncorporate: sistem de gestiune a fiierelor, listelor, tabelelor etc.; help pentru ajutarea utilizatorului n lucrul cu baza de date.

    Apariia i rspndirea reelelor de calculatoare a dus la dezvoltarea SGBD-urilor n direcia

    multiuser: mai muli utilizatori folosesc simultan aceeai baz de date.

    Principalul avantaj al reelelor a fost eficiena mult sporit de utilizare a resurselor sistemelor de

    calcul: la o baz de date aflat pe un server central au acces simultan mai muli utilizatori, situai la

    distan de server, de unde rezult o bun utilizare a resurselor server-ului i o economie de

    memorie datorat memorrii unice a bazei de date.

    Un SGBD este dotat cu un limbaj neprocedural de interogare a bazei de date SQL care

    permite accesul rapid i comod la datele stocate n baza de date.

    1.5.3. Activitile asigurate de SGBD

    Un SGBD trebuie s asigure urmtoarele activiti:

    definirea i descrierea structurii bazei de date se realizeaz printr-un limbaj propriu, limbaj de definire a datelor (LDD), conform unui anumit model de date;

    ncrcarea datelor n baza de date se realizeaz prin comenzi n limbaj propriu, limbaj de manipulare a datelor (LMD);

    accesul la date se realizeaz prin comenzi specifice din limbajul de manipulare a datelor. Accesul la date se refer la operaiile de interogare i actualizare.

    Interogarea este complex i presupune vizualizarea, consultarea, editarea de situaii de

    ieire (rapoarte, liste, regsiri punctuale).

    Actualizarea presupune trei operaiuni: adugare, modificare (efectuate prin respectarea

    restriciilor de integritate ale bazei de date) i tergere;

    ntreinerea bazei de date se realizeaz prin utilitare proprii ale SGBD; reorganizarea bazei de date se face prin faciliti privind actualizarea structurii bazei de

    date i modificarea strategiei de acces. Se execut de ctre administratorul bazei de date;

  • 15 Baze de date

    securitatea datelor se refer la asigurarea confidenialitii datelor prin autorizarea i controlul accesului la date, criptarea datelor, realiarea de copii ale programelor i fiierelor

    de baz.

    1.5.4. Obiectivele unui SGBD

    Un SGBD are rolul de a furniza suportul software complet pentru dezvoltarea de aplicaii

    informatice cu baze de date.

    El trebuie s asigure:

    minimizarea costului de prelucrare a datelor, reducerea timpului de rspuns, flexibilitatea aplicaiilor i protecia datelor.

    Pentru satisfacerea performanelor enumerate, SGBD trebuie s asigure un minim de obiective.

    1. Asigurarea independenei datelor trebuie privit din dou puncte de vedere:

    independena logic se refer la posibilitatea adgrii de noi tipuri de nregistrri de date sau extinderea structurii conceptuale, fr a determina rescrierea programelor de

    aplicaie;

    independena fizic modificarea tehnicilor fizice de memorare fr a determina rescrierea programelor de aplicaie.

    2. Asigurarea redundanei minime i controlate a datelor stocarea informaiilor n bazele de

    date se face astfel nct datele s nu fie multiplicate. Totui, pentru a mbunti

    performanele legate de timpul de rspuns, se accept o anumit redundan a datelor,

    controlat, pentru a asigura coerena bazei de date i eficiena utilizrii resurselor

    hardware.

    3. Asigurarea facilitilor de utilizare a datelor presupune ca SGBD-ul s aib anumite

    componente specializate pentru:

    folosirea datelor de ctre mai muli utilizatori n diferite aplicaii datele de la o aplicaie trebuie s poat fi utilizate i n alte aplicaii.

    accesul ct mai simplu al utilizatorilor la date fr ca ei s fie nevoii s cunoasc structura ntregii baze de date; aceast sarcin cade n seama administratorului bazei de date.

    existena unor limbaje performante de regsire a datelor care permit exprimarea interactiv a unor cereri de regsire a datelor.

  • 1. Bnci i baze de date 16

    sistemul de gestiune trebuie s ofere posibilitatea unui acces multicriterial la informaiile din baza de date spre deosebire de sistemul clasic de prelucrare pe fiiere unde exist un

    singur criteriu de adresare, cel care a stat la baza organizrii fiierului.

    4. Asigurarea securitii datelor mpotriva accesului neautorizat.

    5. Asigurarea coerenei i integritii datelor mpotriva unor tergeri intenionate sau

    neintenionate se realizeaz prin intermediul unor proceduri de validare, a unor protocoale

    de control concurent i a unor proceduri de refacere a bazei de date.

    6. Asigurarea partajabilitii datelor se refer pe de o parte la asigurarea accesului mai

    multor utilizatori la aceleai date i de asemenea la posibilitatea dezvoltrii unor aplicaii

    fr a se modifica structura bazei de date.

    7. Asigurarea legturilor ntre date corespund asocierilor care se pot realiza ntre obiectele

    unei aplicaii informatice. Orice SGBD trebuie s permit definirea i descrierea structurii

    de date, precum i a legturilor dintre acestea, conform unui model de date (de exemplu,

    modelul relaional).

    8. Administrarea i controlul datelor sunt asigurate de SGBD, n sensul c datele pot fi

    folosite de mai muli utilizatori n acelai timp, iar utilizatorii pot avea cerine diferite i care

    pot fi incompatibile. SGBD trebuie s rezolve probleme legate de concuren la date,

    problem care apare mai ales n lucrul n mediu de reea de calculatoare.

  • 17 Baze de date

    2. Etapele de realizare a unei bnci de date

    2.1. Etapa de analiz

    Proiectarea unei baze de date const din proiectare logic i fizic a acesteia astfel nct s

    rspund cerinelor utilizatorilor pentru un anumit set de aplicaii specifice. n general, proiectarea

    corect a unei baze de date parcurge etapele de analiz i programare. Pentru etapa de analiz se

    recomand parcurgerea pailor:

    1. Studierea problemei de rezolvat const din studiul i descrierea activitilor pentru care se

    va organiza baza de date (cerine i resurse);

    2. Proiectarea structurii bazei de date are ca principale activiti alegerea modelului de

    SGBD, proiectarea funciilor bazei de date, stabilirea intrrilor i ieirilor aplicaiilor;

    3. Stabilirea modului de memorare a datelor n memorie (temporare) sau pe disc n baza de

    date, pentru care trebuie stabilit i structura;

    4. Stabilirea algoritmului general de rezolvare a problemei la nivel de schem bloc;

    5. Stabilirea structurii meniului principal al aplicaiei acesta trebuie s conin opiuni

    pentru toate funciunile sistemului informatic care sunt accesibile utilizatorului.

    6. mprirea aplicaiei pe programe fiecare program urmrete rezolvarea unei pri a

    problemei generale.

    2.2. Etapa de programare n etapa de programare se recomand urmrirea pailor:

    1. Elaborarea programelor: realizarea componentelor logice programe/aplicaii ncepnd

    cu programul monitor (principal), continund cu cele de introducere/actualizare a datelor, cu

    cele de prelucrare i terminnd cu programele de interogare baza de date i extragere de

    informaii.

    2. Testarea funcionrii corecte a programelor individuale i a sistemului n ansamblu

    pentru ct mai multe situaii posibile (ideal ar fi testarea n toate situaiile posibile, dar

    numrul acestora este foarte mare) incluznd n mod obligatoriu i situaiile limit.

    3. nlturarea erorilor depistate i reluarea pasului 2. Dac nu mai sunt erori, se continu cu

    urmtoarea etap.

  • 2. Etapele de realizare a unei bnci de date 18

    2.3. Punerea n funciune i exploatarea bazei de date

    1. ncrcarea i manipularea datelor operaii de actualizare i consultare, ntreinere

    (dezvoltare) a bazei de date.

    2. Elaborarea documentaiei de utilizare care se pred beneficiarului, ct i documentaia

    tehnic a sistemului (de preferat ca fiecare program s aib cte o fi tehnic, pentru o mai

    uoar depanare, ntreinere).

    - - - - - - Ecrane utilizator

    Ferestre utilizator

    Meniuri utilizator

    Introducere date

    Baze de date

    Aplicaie

    Consultri curente

    Rapoarte statistice

    Extragere de date

    Programe

    Schema bloc a unei aplicaii din punct de vedere utilizator

    Fig. 5

    Programe de Programe

    pentru introducere

    date

    Date de la utilizator

    Import

    Meniul principal

    Programul

    Baza de date

    Ecrane de introducere

    Export

    Filtre

    Rapoart

    Rezultate utilizator

    Programe de

    extragere date

    Schema bloc a unei aplicaii din punct de vedere al proiectantului

    Fig. 6

    Not: Programele de extragere date pot fi elaborate de programator sau pot fi obinute cu

    generatoarele incluse n SGBD.

  • 19 Baze de date ntreaga activitate din sistem este controlat de programul monitor care conine un meniu

    principal definit de utilizator. Programele aplicaiei pentru introducerea datelor, prelucrare,

    actualizare i extragere de date sub form de rapoarte se afl sub controlul programului monitor.

    2.4. Documentaia aplicaiei Deoarece etapa de analiz este proprie fiecrei aplicaii n parte, nu se recomand detalierea

    etapelor 1 6. De aceea n cele ce urmeaz este detaliat documentarea programelor prin fia

    tehnic, fi care trebuie s conin rubricile:

    Program nume;

    Scop;

    Parametri;

    Variabile de intrare, de ieire;

    Ce programe apeleaz;

    Care sunt programele care l apeleaz;

    Ce fiiere utilizeaz;

    Explicaii - sub form de comentarii n programele surs;

    Programul surs.

    n 12.2.2 se arat cum se obine n mod automat, cu ajutorul VFP, documentarea unei aplicaii

    realizat cu acest sistem.

  • 3. Sisteme de gestiune a bazelor de date relaionale 20

    3. Sisteme de gestiune a bazelor de date relaionale

    3.1. Modelul relaional al datelor Un sistem de gestiune a bazelor de date relaionale se definete ca fiind un sistem de gestiune

    care utilizeaz organizarea datelor conform modelului relaional. Conceptul de baz al modelului

    relaional este acela de relaie/tabel (limbajul SQL specializat n comenzi de manipulare la nivel de

    tabel).

    3.1.1. Structura relaional a datelor

    Structura relaional a datelor cuprinde urmtoarele componente.

    Domeniul este ansamblul de valori caracterizat printr-un nume (domeniu de valori). El poate fi

    precizat explicit prin enumerarea tuturor valorilor care aparin domeniului sau implicit prin

    precizarea proprietilor pe care le au valorile din domeniu. Pentru un ansamblu de valori

    produsul cartezian al acestora reprezint ansamblul tuplurilor

    nDD ,...,1

    ( )nvv ,...,1 , unde v1 este o valoare din D1, v2 este o valoare din D2, etc., iar tuplura corespunde unei linii din tabel.

    Relaia (tabela) este un subansamblu al produsului cartezian al mai multor domenii, caracterizat

    prin nume i care conine tupluri cu semnificaie (tabel). ntr-o relaie, tuplurile trebuie s fie

    distincte nu se admit duplicate. O reprezentare a relaiei este tabelul bidimensional (tabela de date)

    n care liniile reprezint tuplurile, iar coloanele corespund domeniilor. Numrul tuplurilor dintr-o

    tabel este cardinalul tabelei, numrul valorilor dintr-un tuplu este gradul tabelei. Pentru a

    diferenia coloanele care conin valori ale aceluiai domeniu, eliminnd dependena de poziie, se

    asociaz fiecrei coloane un nume distinct atribut. n timp ce tuplurile sunt unice, un domeniu

    poate aprea de mai multe ori n produsul cartezian pe baza cruia este definit tabela.

    Tabelul 1 prezint comparativ conceptele utilizate n organizarea datelor n fiiere, n baze de

    date, conceptele din teoria relaional i din SGBDR.

  • 21 Baze de date

    Tabelul 1

    Fiiere Teoria BD Teoria relaional SGBDR

    Fiier Colecie de date Relaie Tabel

    nregistrare Familie de caracteristici Tuplu Linie

    Cmp Caracteristic Atribut Nume coloan Valoare Domeniu de Valori Domenii Domeniu coloan

    3.1.2. Operaii n algebra relaional

    Reuniunea operaie n algebra relaional, definit pe dou relaii R1 i R2, ambele cu aceeai

    schem (structur), ce const din construirea unei noi relaii R3, cu schema identic cu R1 i R2,

    avnd drept extensie (nregistrrile) tuplurile din R1 i R2 luate mpreun, o singur dat.

    Diferena definit pe dou relaii R1 i R2, cu aceeai schem, avnd drept extensie tupluri ale

    relaiei R1 care nu se regsesc n relaia R2.

    Produs cartezian definit pe dou relaii R1 i R2, operaie care const din construirea unei noi

    relaii R3, a crei schem se obine din concatenarea schemelor relaiilor R1 i R2, i a crei extensie

    cuprinde toate combinaiile tuplurilor din R1 cu cele din R2.

    Proiecia operaie din algebra relaional definit asupra unei relaii R, ce const din construirea

    unei noi relaii P, n care se regsesc numai acele atribute din R specificate explicit n cadrul

    operaiei. Suprimarea unor atribute din R nsemn efectuarea unor tieturi verticale asupra lui R i

    pot avea ca efect apariia unor tupluri duplicate, care se cer a fi eliminate. n practic, operaia de

    proiecie se face considernd i un cmp care conine o cheie unic, astfel nct fiecare nregistrare

    devine unic.

    Selecia operaie n algebra relaional definit asupra unei relaii R, care const din construirea

    unei relaii S, a crei schem este identic cu cea a relaiei R i a crei extensie este constituit din

    acele tupluri din R care satisfac o condiie explicit n cadrul relaiei. Deoarece nu toate tuplurile din

    R satisfac condiia, selecia nseamn efectuarea de tieturi pe orizontal asupra relaiei R, adic

    eliminarea de tupluri. Condiia precizat n cadrul operaiei de selecie este de forma:

  • 3. Sisteme de gestiune a bazelor de date relaionale 22

    Jonciunea (join-ul) operaie n algebra relaional definit pe dou relaii R1 i R2, care const din

    construirea unei noi relaii R3, prin concatenarea unor tupluri din R1 cu tupluri din R2. Se

    concateneaz acele tupluri din R1 i R2 care satisfac o anumit condiie, specificat explicit n cadrul

    operaiei. Extensia relaiei R3 va conine combinaiile acelor tupluri care satisfac condiia de

    concatenare. Cel mai important tip de join din punct de vedere al utilizrii este equijoin-ul, care este

    o jonciune dirijat de o condiie de forma:

    =

    Jonciunea natural se refer la equijoin-ul aplicat tuturor cmpurilor comune. Operatorul pentru

    jonciunea natural este * .

    Jonciunea exterioar (outer join) include trei tipuri de jonciune:

    Jonciunea exterioar stnga care include toate tuplurile din partea stng a relaiei, iar n partea dreapt a relaiei include numai acele tupluri care au corespondent.

    Jonciunea exterioar dreapta care include toate tuplurile din partea dreapt a relaiei, iar n partea stng a relaiei include numai acele tupluri care au corespondent.

    Jonciunea exterioar complet care include toate tuplurile din stnga i din dreapta relaiei.

    Intersecia operaie din algebra relaional definit pe dou relaii R1 i R2, ambele cu aceeai

    schem, care const din construirea unei noi relaii R3, cu schema identic cu a operanzilor i cu

    extensia format din tuplurile din R1 i R2.

    Diviziunea operaie din algebra relaional definit asupra unei relaii R, care const din

    construirea cu ajutorul unei relaii r a relaiei Q. Tuplurile relaiei Q concatenate cu tuplurile relaiei

    r permit obinerea tuplurilor relaiei R.

    Exemple

    Pentru a nelege mai bine aceste operaii s presupunem c avem urmtoarele trei structuri de

    date:

  • 23 Baze de date 1. Y1 fiier nchirieri maini

    Sofer_id Auto_id Ziua

    22 101 10/10/2004

    58 103 11/12/2004

    2. S2 fiier clieni

    Sofer_id Sofer _nume Permis_ani

    22 Ionescu Paul 7

    31 Leahu Mihai 8

    58 Arsene Ion 10

    3. S3 fiier clieni

    Sofer_id Sofer _nume Permis_ani

    28 Doncea Horia 5

    31 Leahu Mihai 8

    44 Coman Stefan 12

    58 Arsene Ion 10

    Semnificaia structurilor de date este urmtoarea:

    - n relaia Y1 se stocheaz informaii referitoare la mainile rezervate cu atributele: Sofer_id

    codul oferului, Auto_id codul mainii nchiriate, Ziua data la care a fost nchiriat;

    - n relaiile S2 i S3 se stocheaz informaii referitoare la oferi (fragmentat), cu urmtoarele

    atribute: Sofer_id codul oferului (pentru a stabili o legtur ntre structura de date Y1 i

    S2, S3), Sofer_nume numele oferului, Permis_ani vechimea permisului de conducere.

    Principalele operaii:

    - Reuniunea R3 = S2 S3

    Sofer_id Sofer _nume Permis_ani

    22 Ionescu Paul 7

    31 Leahu Mihai 8

    58 Arsene Ion 10

    44 Coman Stefan 12

    28 Doncea Horia 5

  • 3. Sisteme de gestiune a bazelor de date relaionale 24

    - Intersecia R3 = S2 S3

    Sofer_id Sofer _nume Permis_ani

    31 Leahu Mihai 8

    58 Arsene Ion 10

    - Diferena S2 - S3

    Sofer_id Sofer _nume Permis_ani

    22 Ionescu Paul 7

    - Produs cartezian, . Fiecare linie din relaia Y1 se combin cu fiecare linie din

    relaia S2; ca rezultat al produsului cartezian, apare un conflict deoarece ambele relaii Y1 i

    S2 au cte un cmp cu numele sofer_id, care poate fi rezolvat prin operaia de redenumire.

    21 SY

    Comanda SQL pentru pentru produs cartezian 21 SY este dat n Figura 1. Operatorul redenumire se utiliz :

    (C(1 Sofer_id2), Y1eaz sub forma

    Sofer_id1,5 S2) cu urmtoare interpretare: se re ana 1 Sofer_id1 i coloana 5 n Sofer_id2, n

    relaia dat de produsul cartezian elaiile i S2.

    eniu se pot repeta este necesar eliminarea

    repetrilor:

    denumete colo n

    obinut din r Y1

    - Proiecia. Deoarece valorile dintr-un dom

  • 25 Baze de date

    Sofer_nume,Permis_ani(S3) rSofe _nume Permis_ani

    Donc 5 ea Horia

    Leahu 8

    Coman Stefan 12

    Mihai

    Arsene Ion 10

    - Selecia Permis_ani > 8(S3)

    Sofer_id Sofer _nume Permis_ani

    44 Coman Stefan 12

    58 Arsene Ion 10

    Din relaia S3 au fost selecta are satifac condiia de vechime a

    permisului (mai mult de 8 ani).

    Operaia de proiecie se poate combina cu cea de selecie pentru optimizarea cererilor de date;

    de

    Per

    Sofer_ ,P

    f

    te numai acele nregistrri c

    exemplu dac dorim extragerea datelor din relaia S3 numai pentru cmpurile Sofer_nume i

    mis_ani mai mare de 8 ani:

    nume ermis_ani(Permis_ani > 8(S3))

    So er _nume Permis_ani

    Coman Stefan 12

    Arsene 1Ion 0

    te echivalent cu

    s

    S2

    Jonciunea (join-ul). Operaia de jonciune condiionat a dou relaii es

    elecia condiionat a produsului cartezian al celor dou relaii.

    S2.Sofer_id < Y1. Sofer_id Y1

    (Sofer_id) Sofer _nume Permis_ani (Sofer_id) Auto_id Ziua

    22 s 7 8 103 /12/2004 Ione cu Paul 5 11

    31 eahu 8 58 1 /2004 L Mihai 03 11/12

  • 3. Sisteme de gestiune a bazelor de date relaionale 26

    peraia de jonciune condiionat mai poart uneori i numele de theta-join.

    S2

    O

    Pentru acest exemplu, equijoin-ul, caz special al jonciunii condiionate n care condiia c

    conine doar egalitai, devine

    Sofer_id Y1

    _nume Permis_ani Auto_id Ziua

    Sofer_id Sofer

    22 I 10/10/2004 onescu Paul 7 101

    58 Arsene Ion 103 11/12/2004 10

    Noua relaie rezultat din j usul cartezian dintre S2 i Y1, dar

    numai o copie a cmpului pentru care este specificat egalitatea, va fi specificat n noua relaie (nu

    mai apare duplicarea cmpului).

    Exemple de jonciuni exterioare

    jonciune exterioar stnga Y1 Y1.Sofer_id=S2.Sofer_id S2

    oin este similar cu prod equi

    jonciune exterioar dreapta

    Y1 Y1.Sofer_id=S2.Sofer_id S2

    jonciune exterioar compet

    Y1 Y1.Sofer_id=S2.Sofer_id S2

  • 27 Baze de date

    De remarcat prezena cmpurilor cu valoarea NULL utilizat n jonciuni pentru a specifica

    lipsa de date.

    Presupunnd c tabele au fost create, programul surs pentru testarea celor trei tipuri de jonciuni exterioare este prezentat n Figura 1.

    Fig. 1

    Diviziunea Se utilizeaz la exprimarea interogrilor de tipul: Gsete automobilistul care a

    rezervat toate automobilele.

    { }ByAyxxBA = ,,/

  • 3. Sisteme de gestiune a bazelor de date relaionale 28

    rela ia obinut prin diviziune va conine toate tuplurile x care pentru fiecare tuplur y din B nu

    are asociat un tuplu xy n A. Pentru a nelege mai bine operaia de diviziune vom considera

    urmtorul exemplu, n care considerm tabelul A1 (cmpuri xx_no, yy_no) i tablele B1, B2, B3

    (un singur cmp yy_no, corespondent cu cel din tabelul A) i realizm operaiile de diviziune

    A1/B1, A1/B2, A1/B3:

    Secvena de pr care realizeaz cele tre ii de diviziue se gs igura 1, ultima

    seciune *Diviziune. Rezultatul celor trei comenzi SQL este:

    ogram i opera ete n f

    A1/B1 A1/B2 A1/B3

    timizarea cererilor de date

    Se realizeaz n dou etape:

    1. exprimarea cererilor de date sub forma unor expresii algebrice relaionale care au la baz

    ional,

    3.1.3. Op

    echivalena dintre calculul relaional i algebra rela

  • 29 Baze de date

    nsformri algebrice asupra expresiilor obinute n etapa precedent, n

    nor expresii echivalent iale, dar care s

    i produs cartezian:

    1

    3

    EE

    2. aplicarea unor tra

    scopul obinerii u e cu cele ini fie executate mai

    eficient.

    Proprieti

    Comutativitatea operaiilor de join

    1221

    1221

    EEEEEEEE

    == >< )

    Compunerea seleciilor )())((2121

    EE FFFF = , deoarece II 221 FFF = 1F , seleciile se pot comuta:

    ( ) ( ))()( 1221 EE FFFF = rea seleciei cu proiecia

    rea seleciei cu produsul cartezian

    rea seleciei cu reuniunea

    Comuta

    Comuta

    Comuta

    Com

    Comuta

    Com

    Prin deplasarea operaiilor de selecie ct mai la stnga expresiilor algebrice se reduce numrul

    de

    Se

    ri. Prin selecie se reduce dimensiunea relaiilor la

    care se aplic aceti generatori de tupluri. Se ine seama c operaia de jonciune poate fi

    produs cartezian urmat de o selecie, iar n cazul jonciunii

    naturale printr-un produs cartezian urmat de de o selecie i de o proiecie.

    z prin

    se realizeaz cu ajutorul relaiei de compunere a

    seleciilor.

    utarea seleciei cu diferena

    rea proieciei cu produsul cartezian

    utarea proieciei cu reuniunea

    tupluri care trebuie manipulate n procesul de executare a cererii.

    pot meniona urmtoarele strategii de optimizare a cererilor de date:

    Deplasarea operaiei de selecie naintea operaiei de jonciune jonciunea i produsul

    cartezian acioneaz ca generatori de tuplu

    exprimat sub forma unui

    Deplasarea operaiilor de proiecie naintea operaiilor de jonciune se realizea

    folosirea proprietii de comutare a seleciei cu produsul cartezian

    Combinarea seleciilor multiple

  • 3. Sisteme de gestiune a bazelor de date relaionale 30

    buiesc

    dintr-o anumit zi.

    , pe baza faptului c aceste entiti sunt oameni.

    Ionesc

    entiti

    diferit

    rtament. Una din cerinele importante referitoare la valorile din domeniu se

    refer

    ali;

    Deplasarea operaiilor de selecie naintea operaiilor de proiecie- realizat pe baza

    proprietii de comutare a seleciei cu proiecia. Eliminarea tuplurilor duplicate obinute prin

    proiecie se face prin ordonarea tuplurilor. Selecia reduce numrul tuplurilor ce tre

    ordonate facilitnd operaia de proiecie.

    3.1.4. Baze de date relaionale

    Conceptul bazelor de date relaionale este axat pe metodologia entitate-tabel (E-T).

    Entitile modeleaz obiectele care sunt implicate ntr-o organizaie, de exemplu studenii,

    profesorii i cursurile dintr-o universitate.

    Tabelele modeleaz legturile dintre entiti, de exemplu profesorii predau cursuri. n plus,

    restriciile de integritate aplicate entitilor i relaiilor formeaz o parte important a specificaiilor

    E-T, de exemplu, un profesor poate preda un singur curs la o anumit or

    Entitile similare pot fi agregate n tipuri de entiti. De exemplu, Ionescu, Popescu, Albu,

    pot fi agregai n tipul de entitate PERSOAN

    u i Albu pot aparine tipului de entitate STUDENT, deoarece aceste obiecte sunt studeni.

    La fel ca tabelele, entitile sunt descrise utiliznd atribute. Fiecare atribut specific o

    particularitate semnificativ a entitii. De exemplu, atributul Nume al unei entiti de tip

    PERSOAN specific irul de caractere care alctuiete numele persoanei din lumea real. De

    asemenea, Vrsta este atribuitul care specific de cte ori Pmntul a nconjurat Soarele fa de

    momentul n care o anumit persoan s-a nscut. Pentru fiecare atribut, se asociaz un domeniu care

    specific setul de valori pe care le poate lua atributul. n principiu, este posibil ca dou

    e ale aceluiai tip s posede valori identice pentru toate atributele.

    Atributelor li se asociaz valori care au drept scop identificarea entitii, realizndu-se o

    nregistrare n tabela respectiv. Atribute pot fi:

    - complexe - cele care pot fi divizate n mai multe pri cu semnificaie independent. De

    exemplu, atributul Adresa poate fi divizat n mai multe atribute: Ora, Cod potal, Strad, Numr,

    Bloc, Etaj, Nr_Apa

    la atomicitatea datelor. Atomicitatea datelor nu nseamn c aceste valori nu se pot

    descompune, datele pot fi iruri de caractere, ceea ce nseamn c pot fi descompuse. Cerina de

    atomicitate se refer la faptul c modelul relaional nu specific nici un mijloc pentru a privi n

    interiorul structurii valorilor, astfel c valorile sunt invizibile pentru operatorii relaion

  • 31 Baze de date

    onal)

    pentru o persoan este unic i nici o alt persoan nu mai are atribuit aceeai valoare a CNP;

    derivate sunt cele ce se pot determin din alte atribute, de exemplu vrsta unei persoane se

    poate

    cului sau Nr_Scara.

    heile de restricie introduse n modelul relaional sunt asociate cu tipurile de entiti, de

    exemplu, dou persoane diferite nu pot avea aceleai valori pentru atributele Nume i Adresa.

    chema n modelul relaional se definete ca fiind un tip de entitate compus din numele

    tipului de entitate, colecia de atribute (cu domeniile asociate i indicaii n cazul n care un atribut

    este complex sau cu valori unice) i cheile de restric .

    eprezentarea diagramelor E-T tipurile de entiti reprezentate n diagramele E-T sunt sub

    form atributele sub form de elipse. Atributele tip set de de valori (modelul

    relaional permite atributelor s posede un set de valori din domeniu) sunt reprezentate n elipse

    duble

    3.

    - cu o singur valoare din setul de valori ale atributului pentru fiecare entitate exist numai

    o singur valoare, nerepetabil la o alt entitate. De exemplu, CNP (Codul Numeric Pers

    - cu set de valori atributul poate lua orice valoare din set i care se poate repeta pentru o alt

    entitate. Este cazul culorilor (dou mrci de main diferite pot avea aceai culoare) sau gradul

    cadrelor didactice;

    -

    determina scznd din data curent data naterii persoanei respective, sau determinarea valorii

    unei entiti prin produsul dintre preul unitar i cantitate. Prezena atributelor derivate mpreun cu

    cele primare cresc gradul de redundan al datelor din baza de date i trebuie evitat;

    - fr valoare (NULL) bazele de date accept i posibilitatea lipsei datelor pentru cmpurile

    anumitor nregistrri, de exemplu, din atributul Adres, poate lipsi Numele_blo

    C

    S

    ie

    R

    de dreptunghiuri i

    . Sublinierea unui atribut n diagram l desemneaz ca fiind cheie primar, adic un atribut cu

    valoare unic. Figura 2 descrie o diagram E-R pentru entitatea PERSOANA:

    PERSOANA

    Nume Adresa CNP Copii

    Fig. 2

    1.5. Tipuri de relaii

  • 3. Sisteme de gestiune a bazelor de date relaionale 32

    ente din tabela R2, iar unui element din tabela R2 i corespunde

    un sin

    , Bursa;

    ente din tabela R2 i reciproc. De exemplu, un student frecventeaz mai multe

    cursur

    TUDENTI se introduce suplimentar tabela NOTE care face legtura ntre

    tabelele MATERII i STUDENTI:

    tabela MATERII are atributele CodMaterie, Denumire, An, NumeProfesor;

    tabela STUDENTI cu atributele: CodStud, CodFac, An, Grupa, Medie, Bursa;

    tabela NOTE cu atributele: CodStud, CodMaterie, Nota, Data.

    elaia unar este acea relaie care folosete o singur tabel care este asociat cu ea nsi.

    Exemplul clasic este cel al managerului unei companii, care la rndul su este tot un angajat al

    acestei companii.

    Pentru fiecare tip de entitate participant n cadrul relaiei se definete un rol care primete un

    nume pentru tipul relaiei. n diagramele E-T, tipul relaiei se reprezint sub forma unui romb. De

    exemp

    Relaia unu-la-unu (1-1) este tipul cel mai simplu de relaie, prin care unui element din tabela

    R1 i corespunde un singur element din tabela R2 i reciproc. Relaia 1-1 este mai rar folosit, n

    general pentru a reduce numrul de atribute dintr-o tabel, de exemplu dac vrem s desprim

    elementele fixe care se modific mai rar (datele personale) fa de cele care se modific mai des

    (situaia colar anual).

    Relaia unu-la-mai muli (1-N) este tipul de relaie prin care unui element din tabela R1 i

    corespund unul sau mai multe elem

    gur element din tabela R1. De exemplu, presupunem c avem:

    - tabela FACULTATE cu atributele CodFac, Denumire, Adresa, NumeDecan;

    - tabela STUDENTI cu atributele CodStud, CodFac, An, Grupa, Medie

    ntre cele dou tabele exist o relaie 1-N prin intermediul cmpului CodFac.

    Relaia mai muli-la-mai muli (M-N) prin care unui element din tabela R1 i corespunde unul

    sau mai multe elem

    i i o disciplin este frecventat de mai muli studeni. Acest tip de relaie este frecvent

    ntlnit, dar nu se poate implementa direct n bazele de date relaionale. Pentru modelare se

    folosete o relaie suplimentar, de tip 1-N pentru fiecare din tabelele iniiale. Presupunnd c avem

    dou tabele MATERII i S

    -

    -

    -

    R

    lu, tipul de relaie LUCREAZ cu atributul Data, definit n Figura 3, are dou roluri

    Profesor i Departament:

    Data

    LUCREAZA DEPARTAMENT PROFESOR

  • 33 Baze de date

    Fig. 3

    olul Profesor identific entitatea PROFESOR implicat n relaia LUCREAZ, iar rolul

    Departament identific entitatea DEPARTAMENT n cadrul relaiei.

    Figura 4 este prezentat o relaie ntre trei entiti: PROIECT (cu rolul Client),

    PARTENER (cu rolul Produs), FURNIZOR (cu rolul Furnizor), cu tipul de relaie SOLD i

    atributele Data

    Fig. 4

    3.1.6. Restricia de cardinalitate

    Fie C un tip de entitate i A tipul de re nectat la C prin intermediul rolului R.

    Restricia de cardinalitate a rolului R este o declaraie de forma min..max ataat la R, care

    restric

    Fig. 5

    R

    n

    i Pret.

    SOLD

    Data

    PARTENER PROIECT

    PRET

    Pr

    FURNIZOR

    Chei: Client, Produs, Data

    Client

    laie co

    ioneaz numrul de instane a relaiilor de tip A n care o singur entitate de tip C poate

    participa n rolul R i este un numr n intervalul min..max, Figura 5.

    odus

    A

    D

    C 1..2 c

    E

    R

    a1 a2 a3

    d1 e1 d2 e2 d13 e3

  • 3. Sisteme de gestiune a bazelor de date relaionale 34

    l R. n partea dreapt

    se prezint o instan valid a diagramei, unde entitatea C particip n dou relaii de tip A. Relaia

    a3 este tiat deoarece violeaz limitele de cardinalitate 1..2 ale rolului R.

    general, modelul E-T suport restricia de cardinalitate de forma min..max, unde min este

    un numr mai mare sau egal cu zero, max este un numr mai mare dect zero cu condiia

    . n plus, max poate fi simbolizat i prin caracterul *, care reprezint infinitul. Astfel, o

    restric orma 3..* asupra rolului R care conecteaz un tip de entitate C, cu un tip de relaie A,

    nseamn c fiecare entitate de tip C trebuie s participe n rolul R, cu cel puin trei relaii de tip A

    (fr limit superioar N..N (unde min=max) este

    adese

    n Figura 6 sunt prezentate tipuri de relaii de grad superior (4). Tipul relaiei este determinat

    de restricia de cardinalitate a roluri plu, relaia de tip B implic o

    oresponden unu-la-unu ntre entitatea C i D. Aceasta nsemn c o entitate de tip C poate fi

    i pentru F la C i D). Aceasta

    seamn c o entitate de tip E poate fi asociat cu orice numr (inclusiv zero) de eniti de tip C i

    i asociat cu cel mult o entitate de tip E. Relaia de

    3.2. Regulile lui Codd

    Figura 5 prezint i o diagram cu restricia de cardinalitate pentru rolu

    n

    min maxie de f

    ). Pentru restriciile de cardinalitate de forma

    a abreviat cu N, iar caracterul * se folosete pentru sintagma mai muli.

    Fig. 6

    B D

    C

    F

    0..1

    E

    0..1

    *

    *

    lor unei relaii. De exem

    c

    asociat cu cel puin o entitate de tip D i vice versa. n acelai timp, relaia B implic o

    corespunden unu-la-mai muli pentru entitile E la C i D (ca

    n

    D, dar o entitate de tip C (sau D) poate f

    coresponden unu-la-mai muli nu este simetric; inversa acestei corespondene (C la E) este

    numit mai muli-la-unul. Corespondena ntre E i F este numit mai muli-la-mai muli, adic o

    entitate de tipul E poate fi asociat cu orice numr de entiti F i vice versa.

  • 35 Baze de date

    oate informaiile din baza de date sunt gestionate numai prin mecanisme relaionale. Rezult c

    sc toate funciile utiliznd ca unitate de informaie mulimea,

    1 Reprezentarea logic a datelor

    de date relaional trebuie s fie reprezentate explicit la nivel logic ntr-un

    2 Garantarea accesului la date

    aiilor din baza de date relaional se va face prin specificarea numelui tabelei, a

    u semnificaia unor date lips

    au inaplicabile. Valorile NULL, care difer de irurile de caractere spaiu sau de irurile vide de

    mentarea restriciilor de integritate (integritatea entitii i

    logic n

    celai mod cu descrierea datelor propriu-zise, utilizatorul aplicnd asupra descrierii bazei de date

    nuite. Sistemul nu trebuie s fac diferene ntre descrierea

    5 Facilitile limbajelor utilizate

    posibil utilizarea mai multor limbaje, n mai multe moduri.

    Detalierea caracteristicilor, pe care trebuie s le prezinte un SGBD pentru a fi considerat

    relaional, s-a facut de E. F. Codd n 1985, sub forma a 13 reguli.

    R0 Gestionarea datelor la nivel de relaie.

    T

    SGBD-ul trebuie s-i ndeplinea

    adic s utilizeze limbaje (SQL) care s opereze la un moment dat pe o ntreag relaie.

    R

    Informaiile din baza

    singur mod i anume ca valori n tabelele de date. Rezult c toate datele trebuie s fie memorate i

    prelucrate n acelai mod. Informaiile privind numele de tabele, coloane, domenii, definiiile

    tabelelor virtuale, restriciile de integritate trebuie s fie memorate tot n tabele de date (catalog).

    R

    Accesarea inform

    valorii cheii primare i numelui de coloan.

    R3 - Valorile NULL

    SGBD trebuie s permit declararea i manipularea valorilor null, c

    s

    caractere sunt importante n imple

    integritatea referenial) din modelul relaional.

    R4 - Metadatele

    Informaiile despre descrierea bazei de date, metadatele, trebuie s se prezinte la nivel

    a

    aceleai operaii ca i la datele obi

    datelor i a metadatelor utiliznd o singur structur, cea relaional.

    R

    Un sistem relaional trebuie s fac

    Trebuie s existe cel puin un limbaj de nivel nalt ale crui instruciuni s poat exprima oricare din

  • 3. Sisteme de gestiune a bazelor de date relaionale 36

    itelor tranzaciilor.

    7 Actualizrile n baza de date

    a manipulrii unei tabele (de baz sau virtuale) nu numai n

    operaiilor prin care se schimb coninutul bazei de date s se lucreze la un moment dat pe o

    treag relaie.

    trebuie s fie afectate de schimbrile efectuate n modul de reprezentare

    datelor sau n metodele de acces. O schimbare a structurii fizice a datelor nu trebuie s blocheze

    ate.

    R11 Distribuirea geografic a datel

    situaia n care datele sunt distribuite, programele de aplicaie s fie logic aceleai cu cele

    utili

    12 Prelucrarea datelor la nivel de baz

    urmtoarele operaii: definirea tabelelor de baz, definirea tabelelor virtuale, manipularea datelor,

    definirea restriciilor de integritate, autorizarea accesului, precizarea lim

    R6 Actualizarea tabelelor virtuale

    Nu toate atributele din cadrul unei tabele virtuale, deci nu toate tabelele virtuale, sunt teoretic

    actualizabile.

    R

    SGBD trebuie s ofere posibilitate

    cadrul operaiilor de regsire, ci i n cazul celor de adugare, modificare i tergere a datelor. n

    cursul

    n

    R8 Independena fizic a datelor

    Programele de aplicaie nu

    a

    funcionarea programelor de aplicaie.

    R9 Independena logic a datelor

    Programele de aplicaie nu trebuie s fie afectate de schimbrile efectuate asupra relaiilor bazei de

    d

    R10 Restriciile de integritate

    Restriciile de integritate trebuie s poat fi definite n limbajul utilizat de SGBD pentru definirea

    datelor i s fie memorate

    or

    n

    zate n cazul n care datele sunt fizic centralizate. Utilizatorul trebuie s perceap datele ca fiind

    centralizate. Localizarea i recompunerea datelor distribuite cade n seama sistemului.

    R

  • 37 Baze de date

    Este procesul prin care se elimin redundana datelor n proiectul bazei de date i se

    construiete un model de b i structuri alternative

    le bazei de date. Sunt aplicate n normalizarea unei baze de date urmtoarele trei reguli.

    but trebuie s depind n ntregime de identificatorul unic al entitii pe care o descrie.

    Ace utele ntr-o tabel n care depind exclusiv de o

    che o singur cheie!

    N3. Pen tabel trebuie s posede o singur cheie primar, iar

    dat

    e a bazelor de date nu reuea

    a

    a bazelor de date pentru a putea fi considerat

    rela

    zentate prin valori n tabele;

    2. ntre tabele nu exist pointeri observabili de ctre utilizatori operaiile cu relaii nu fac apel

    la pointeri, indeci, fiiere inverse etc.;

    3. sistemul suport operatori relaionali de proiecie, selecie i jonciune natural, fr limitri

    impuse. Unitatea de informaie n cadrul acestor operaii trebuie s fie relaia.

    SGBD este complet relaional dac este minimal relaional i satisface n plus urmtoarele

    condiii:

    sistemul suport toate operaiile de baz ale algebrei relaionale;

    Dac SGBD posed un limbaj de baz de nivel sczut orientat pe prelucrarea de nregistrri

    (tupluri) i nu pe prelucrarea mulimilor (relaiilor) acest limbaj nu trebuie folosit, pentru a se evita

    restriciile de integritate sau restriciile introduse prin utilizarea limbajelor relaionale de nivel nalt

    3.3. Normalizarea datelor

    az de date care susine diverse cerine funcionale

    a

    N1. Toate atributele trebuie specificate o singur dat. Aceasta este forma inti normal.

    N2. Un atri

    asta este forma a doua normal. Se pun atrib

    ie principal. Nu se utilizeaz tabele n care atributele s nu depind exclusiv de

    tru a fi n forma normal a treia, fiecare

    ele din tabel trebuie s depind exclusiv de cheia primar a tabelei.

    3.4. Cerinele minimale de definire a SGBDR

    Dintre primele versiuni aprute, practic nici un sistem de gestiun

    s copere n ntregime regulile lui Codd. De aceea s-au formulat o serie de criterii minimale pe

    care trebuie s le satisfac un sistem de gestiune

    ional.

    Pentru ca un SGBD s fie minimal relaional:

    1. toate datele din cadrul bazei de date sunt repre

  • 3. Sisteme de gestiune a bazelor de date relaionale 38

    sistemul suport dou dintre restriciile de integritate de baz ale modelului relaional i anume unicitatea che

    SGBD este pseudorelaional dac satisface condiiile 1 i 3 de mai sus;

    ii unei relaii i restricia referenial;

    SGBD este cu interfa relaional dac satisface condiiile 1 i 3 de mai sus i condiia 3 este

    ndeplinit numai n raport cu operaia de interogare.

  • 39 Baze de date

    are

    lul de a permite descrierea i manipularea datelor conform unui model de date. La acest moment,

    +, Visual Basic 6.0 i Visual Java 6.0. VFP este un sistem rapid, modularizat,

    flexi

    vizual).

    grame n limbaj propriu i n SQL,

    aplic

    entru refacerea bazei de date etc.

    rogramarea orientat pe obiecte

    n program conceptele

    descrise n continuare.

    reprezint un tip abstract de date care definete structura obiectelor din acea clas (proprietile) i mulimea de metode (operaii) pentru obiectele respective.

    ) care va conine clasele definite de utilizator.

    Subclass este folosit pentru definirea unei noi clase, pentru un obiect care are ca punct de

    plecare definirea din alt

    4. Componentele funcionale ale sistemului Visual FoxPro

    Sistemul de gestiune a bazelor de date este componenta unui sistem de baze de date, care

    ro

    n lume, cea mai mare parte a SGBD-urilor utilizate sunt bazate pe modelul relaional.

    Visual FoxPro este un SGBD complet relaional, cu limbaj propriu, care suport un nucleu

    extins din limbajul relaional SQL. Varianta Visual de FoxPro (VFP) a ajuns la versiunea 6.0

    lansat n 1998 n cadrul pachetului de programe Visual Studio 6.0, care mai conine urmtoarele

    programe: Visual C+

    bil, care nu necesit resurse de calcul foarte mari, mbin programarea procedural (prin limbaj

    propriu) cu cea descriptiv, pe obiecte (programare

    Utilizatorii neinformaticieni au la dispoziie o gam larg de generatoare pentru ecrane,

    meniuri, rapoarte etc.

    Utilizatorii de specialitate (informaticieni) pot dezvolta pro

    aii (prin componentele Designer i Application).

    Administratorul bazei de date are la dispoziie instrumente oferite de VFP pentru asigurarea

    securitii i integritii datelor, p

    4.1. P

    area orientat pe obiecte, implementat n Visul FoxPro, se utilizeaz

    Clasa de obiecte

    O clas este un model sau o schi care definete caracteristicile unui obiect i n care este

    descris modul n care trebuie s arate i s se comporte obiectul. Se poate crea o clas nou

    utiliznd comanda CREATE CLASS sau modulul de proiectare a clasei (Class Designer). Rezult

    un fiier cu extensia .vcx (Visual Class Library

    clas (clas printe). Noua definire va moteni orice modificare din clasa

    printe. O subclas poate avea toate funcionalitile unei clase existente i n plus orice control sau

    funcionalitate care se dorete a fi inclus. Dac, de exemplu, clasa de baz este telefonul, se poate

  • 4. Componentele funcionale ale sistemului Visual 40

    ui). Utilizarea subclaselor este una din cile de reducere a mrimii codului care

    ebuie scris. Se ncepe cu definirea unui obiect care este apropiat de cel dorit i se gestioneaz.

    utilizatorul nu are acces) i o interfa (care

    ste public). Cererile adresate unui obiect pentru a returna o valoare sau pentru a schimba o stare

    se nu

    clas este o schi, o schem a unui obiect.

    Operatorii modelului orientat pe obiecte se refer la actualizarea metodelor, a proprietilor, a

    claselor, r. La baza operaiilor dintr-u model stau mesajele, care ajut

    obiecte nice

    Restric ritat

    obiect resp ul la obiec ntru clasa din care

    .

    iectului pot fi schimbate

    construi o subclas care are toate funcionalitile telefonului original i n plus se pot aduga

    caracteristici speciale. Astfel, subclasele permit reutilizarea secvenei de instruciuni surs

    (reutilizarea codul

    tr

    Obiectele reprezint o colecie de proprieti care se refer la aceeai entitate. Aceste proprieti descriu structura de date a obiectului. Un obiect are un nume, prin care este referit, un

    identificator unic, metode, o implementare (privat

    e

    mesc mesaje.

    Obiectul este o instan a unei clase, care combin att date, ct i proceduri. De exemplu, un

    control ntr-un videoformat (Form) este un obiect.

    Clasele i obiectele sunt entiti apropiate i nrudite, dar nu se identific n totatlitate. O clas

    conine informaii despre modul n care un obiect trebuie s arate i s se comporte, dar nu este

    obiectul ca atare. O

    a instanelo n astfel de

    le s comu ntre ele.

    iile de integ e a datelor:

    orice ect restriciile impuse clasei din care face parte;

    identificatorul obiectului asigur integritatea referirii la acesta;

    acces t este limitat la folosirea protocolului de mesaje definit pe

    face parte

    Metoda definete operaiile permise (operatorii) asupra obiectului, adic definete

    comportamentul acestuia. Metoda este o aciune pe care un obiect este capabil s o realizeze. De

    exemplu, obiectele de tip List Boxes au atate ca metode: AddItem, RemoveItem, Clear pentru a

    gestiona coninutul listelor.

    Proprietatea este un atribut al unui control, cmp sau obiect dintr-o baz de date, pe care

    programatorul l stabilete pentru a defini una din caracteristicile obiectului sau un aspect al

    comportrii acestuia. De exemplu, proprietatea Visible dac este fixat pe True, face ca obiectul

    respectiv s fie vizibil la momentul rulrii videoformatului. Proprietile ob

  • 41 Baze de date

    lui, ca urmare a apariiei

    unor

    utilizatorului, cum este

    aps event), prin

    ecvenele de program sau de ctre sistem (timers).

    Un obiect are anumite pr o anumit culoare i mrime.

    Cnd instalm un telefon pe bi nu n furca.

    Obiectele create au de aseme unt determinate de clasa din care face parte

    obiectul. Aces i p rii sau la momentul execuiei

    plicaiei. De exemplu, anumite proprieti pe care le poate avea un obiect de tip Check Box sunt

    Proprietate Descriere

    n fereastra de proprieti, n general, n timpul proiectrii videoformatului; exist situaii cnd

    anumite proprieti pot fi schimbate i n momentul execuiei videoformatu

    evenimente.

    Evenimentul reprezint o aciune, recunoscut de un obiect pentru care se poate scrie o secven de cod pentru rspuns. Evenimentele pot fi generate de o aciune a

    area butonului stng al mouse-ului (Click event) sau apsarea unei taste (Keypress

    s

    oprieti, de exemplu, un telefon are

    rou, el are o anumit poziie. Receptorul poate fi pus sau

    nea proprieti care s

    te propriet ot fi stabilite n momentul proiect

    a

    enumerate mai jos:

    Caption Textul descriptiv de pe lng Check Box

    E Sp oate fi adresat de utilizator.

    ForeColor Cu

    L Po Check Box.

    MousePointer Forma pointer-ului cnd trecem pe deasupra obiectului cu mouse-ul.

    Visible Specific cnd un obiect Check Box este vizibil.

    nabled ecific dac un obiect Check Box p

    loarea textului stabilit prin Caption.

    ziia fa de marginea din stnga a obiectului eft

    Top Poziia fa de marginea de sus a obiectului Check Box.

    te

    activitate specific i predeterminat iniiat de utilizator sau de sistem. Evenimentele, n

    Fiecare obiect recunoate i rspunde la anumite aciuni numite evenimente. Un eveniment es

    o

    majoritatea cazurilor, sunt generate de interaciunea cu utilizatorul. De exemplu, la telefon, un

    eveniment este declanat n momentul n care un utilizator ridic receptorul din furc. Evenimentele

    sunt declanate i atunci cnd utilizatotul apas pe butoane pentru a forma un numr de apel.

    n Visula FoxPro aciunile utilizatorului care declaneaz evenimente includ: apsarea

    butonului stng de la mouse (Click), micarea mouse-ului (MouseMove) i apsarea unei taste

  • 4. Componentele funcionale ale sistemului Visual 42

    ). Sistemul poate iniia evenimente n cazul n care ntlnete o linie de cod care cauzeaz

    orice eveniment. Metodele trebuie s fie apelate

    expl

    (Keypress

    eroare, cum ar fi mesaje specifice i chiar ntreruperea execuiei aplicaiei.

    Metodele sunt proceduri care sunt asociate cu un obiect. Metodele sunt diferite de procedurile

    normale din Visual FoxPro: metodele sunt legate intrinsec de evenimente.

    Evenimentele pot avea asociate metode. De exemplu, dac se scrie un cod pentru o metod

    pentru evenimentul Click, acel cod este executat atunci cnd are loc evenimentul Click. De

    asemenea, metodele pot exista independent de

    icit n cod. Setul de evenimente este fix, nu se pot crea evenimente noi!

    S considerm cteva evenimente asociate cu un obiect de tip check box:

    Eveniment Descriere

    Click Utilizatorul face click pe check box.

    GotFocus Utilizatorul selecteaz check box cu mouse-ul sau

    apsnd tasta [TAB].

    LostFocus Utilizatorul selecteaz un alt obiect.

    Metod Descriere

    n tabelul de mai jos sunt date cteva metode asociate cu obiectul de tip check box:

    Refresh Valoarea din check box este actualizat pentru a reflecta orice

    modificare aprut n datele surs.

    SetFocus Controlul este dat ctre check box ca i cum utilizatorul ar

    apsa tasta TAB pentru a selecta check box.

    Toate proprietile, evenimentele i metode asociate unui obiect sunt specificate n definirea clasei.

    Programarea orientat spre obiecte este un sistem de programare care permite abstractizarea i

    e nrudite pot avea amndou metode Draw. O procedur transmite un

    stfel de obiect ca parametru poate apela metoda Draw fr a mai fi nevoie s tie ce tip de obiect

    organizarea modular de tip ierarhie i are caracteristici polimorfice, de motenire i ncapsulare.

    Polimorfismul este abilitatea de a avea metode cu acelai nume, dar cu un coninut diferit pentru

    clasele nrudite. Procedura de utilizare este determinat n momentul execuiei de ctre clasa unui

    obiect. De exemplu, obiectel

    a

  • 43 Baze de date este

    adaug o nou

    roprietate IsBold la un control de editare, orice subclas care are la baz clasa acestui control va

    avea

    mediul motenirii dac se face o modificare ntr-o clas, modificarea se reflect n

    toate subclasele care aparin c t facut prin motenire

    duce beneficii n privina timpului i a efortului de proiectare. De exemplu, dac un productor de

    lef

    on cu butoane, va economisi mult munc dac va fi capabil s fac

    modificrile n schema principal i dac toate telefoanele realizate anterior pe baza acestei scheme

    principale vor moteni automat modificrile aduse comparativ cu situaia n care ar trebui s fac

    modificrile individual la toate telefoanele existente.

    Dac se descoper o greeal n clasa de baz, n loc s fie modificat codul pentru fiecare

    subclas se remediaz eroarea n clasa de baz i noua modificare se propag n toate subclasele

    aferente.

    ncapsularea n programarea orientat spre obiecte este legat de abilitatea de a conine i

    ascunde informaiile despre un obiect, cum sunt cele referitoare la structura intern a datelor i

    codul surs. ncapsularea izoleaz complexitatea intern a modului de operare a obiectului de restul

    aplicaiei. De exemplu, cnd se fixeaz proprietatea Caption la un buton de comand nu este

    necesar cunoaterea modului de stocare a irului de caractere. Se spune c obiectul din acest punct

    de vedere este transparent. ncapsularea permite ca descrierea obiectelor s se fac astfel nct s nu

    existe acces din afara obiectului la datele sale (black box).

    Abstractizare este procesul de identificare a caracteristicilor distinctive a unei clase sau obiect fr

    a fi nevoie de a procesa toate informaiile referitoare la clas sau obiect. Cnd se creaz o clas, de

    exemplu, un set de butoane pentru navigare ntr-o tabel, setul se poate utiliza ca o singur entitate

    n loc de a ine evidena componentelor individuale (butoane) i modul n care acestea

    interacioneaz.

    parametrul transmis. Polimorfismul reprezint posibilitatea ca diferitele obiecte s poat

    rspunde diferit la aceleai mesaje.

    Motenirea este un termen din programarea orientat spre obiecte i reprezint abilitatea unei

    subclase de a prelua caracteristicile clasei printe (clasa de baz). Cnd caracteristicile clasei printe

    se modific, subclasa derivat motenete noile modificri. De exemplu, dac se

    p

    de asemenea proprietatea IsBold. Asadar, motenirea reprezint capacitatea unui obiect de a-i

    deriva datele i funcionalitatea din alte obiecte.

    Prin inter

    lasei respective. Aceast actualizare automa

    a

    te oane dorete s schimbe modul de formare a numrului prin trecerea de la sistemul bazat pe

    disc la sistemul de telef

  • 4. Componentele funcionale ale sistemului Visual 44

    Proiectarea i programarea orient schimbare a focalizarii activitii

    de programarea procedural standard. n loc de a gndi schema logic i algoritmul de la prima

    dou tipuri de funcionalitate exist o interfa prin care utilizatorul poate

    sch ui.

    inc nimentelor

    i m de

    de mare ajutor cunoaterea ierarhiei obiectelor din Visual

    Fox

    at spre obiecte reprezint o

    fa

    linie la ultima linie de cod surs, trebuie s ne concentrm asupra crerii de obiecte autoconinute

    ntr-o aplicaie care s posede att o funcionalitate privat ct i o funcionalitate expus

    utilizatorului. ntre cele

    imba anumite proprieti, dar nu are acces la codul surs intrinsec al obiectul

    n Visula FoxPro videoformatele (Form) i controalele (Control) sunt obiecte care sunt

    luse n aplicaii. Aceste obiecte pot fi manipulate prin intermediul proprietilor, eve

    eto lor.

    4.2. Ierarhia claselor n Visual FoxPro

    La crearea unei noi clase este

    Pro, preluat din [8]:

  • 45 Baze de date

    D VFP 6.0 (Figura 1) corespunde unui model complet relaional,

    co

    in

    (LMD). Tot aici sunt

    QL este un subset din standardul SQL. Acesta este un limbaj relaional

    dezvoltarea aplicaiilor cu baze de date relaionale.

    D ), cereri de regsire

    Fig. 1

    4.2. Arhitectura VFP 6.0

    Arhitectura SGB

    mponentele sale fiind structurate pe trei niveluri: nucleul (kernel), interfeele (interfaces) i

    strumentele (toolkit).

    1. Nucleul este componenta central a sistemului. Din nucleu fac parte:

    Limbajul FoxPro care este propriu sistemului, este de tip procedural. El coine comenzi att pentru descrierea datelor (LDD) ct i pentru manipularea datelor

    incluse comenzile pentru programarea vizual din tehnologia orientat spre obiecte.

    Nucleul extins Sdescriptiv, care conine att comenzi pentru descrierea datelor ct i pentru manipularea datelor.

    2. Interfeele sunt produse VFP pentru

    Ele au urmtoarele componente:

    esigner permite crearea de diferite obiecte VFP: tabele (Table

    (Query), videoformate (Form), rapoarte (Report), etichete (Label), meniuri (Menu).

    DESIGNER BUILDER WIZARD

    EXPORT/IMPORT Generatoar

    1 NUCLEU

    Limbajul FoxPro Nucleu