You are on page 1of 105

Prof. univ. dr. Bogdan Oancea Prof. univ. Dr.

Constantin Baron

Baze de date relationale

Universitatea Nicolae Titulescu din Bucureti 2012

Introducere Suportul de curs reprezint o sintez a coninutului disciplinei Baze de date. El este destinat studenilor de la forma de nvmnt la distan (ID) i constituie materialul bibliografic minim necesar pentru parcurgerea, nsuirea i evaluarea disciplinei respective. Suportul de curs este structurat conform standardelor i procedurilor de uz larg n nvmntul universitar naional i internaional, care se adreseaz nvrii individuale, pe baze interactive. Parcurgerea suportului de curs, pe baza prezentelor instruciuni, asigur reinerea informaiilor de baz, nelegerea fenomenelor fundamentale i aplicarea cunotinelor dobndite la rezolvarea unor probleme specializate. Suportul de curs este structurat pe trei parti care sunt structurate, la rndul lor, pe uniti de nvare. Fiecare dintre cele trei parti reprezint o categorie de probleme distincte din materia disciplinei, care formeaz un tot unitar din punct de vedere al specificului cunotinelor, al nsuirii unui anumit aspect al fenomenologiei disciplinei precum i din perspectiva timpului necesar parcurgerii i nsuirii fondului informaional respectiv. n acest sens, fiecare dintre cele trei parti ale suprotului de curs conine una sau mai multe uniti de nvare. Unitatea de nvare reprezint o componenta omogena din punct de vedere al continutului, caracterizat de un volum strict limitat de cunotine, care pot s fie parcurse i nsuite printr-un efort continuu de concentrare intelectual, care se refer la coninutul de idei al unitii de nvare. Fiecare unitate de nvare are o structur proiectat din perspectiva exigenelor autoinstruirii, astfel c folosirea suportului de curs se face pe baza unui program de autoinstruire. Recomandm astfel, cteva regului de baz n procedura de realizare a programului de autoinstruire pe baza acestui suport de curs: 1. Unitile de nvare se parcurg n ordinea n care sunt prezentate, chiar n cazul n care studentul apreciaz c ar putea sri direct la o alt unitate de nvare (de exemplu n cazul n care studentul se afl la a doua facultate sau n alte situaii echivalente). Criteriile i modalitatea de nlnuire a unitilor de nvare sunt prezentate la fiecare unitate de nvare i ele trebuie respectate ntocmai, sub sanciunea nerealizrii la parametri maximali a programului de autoinstruire; 2. Fiecare unitate de nvare conine teste destinate autoevalurii gradului i corectitudinii nsuirii cunotinelor specifice unitii de nvare, nelegerii fenomenelor i proceselor descrise sau prezentate n unitatea de nvare; Fiecare test al unitii de nvare este prevzut cu un sistem de notare (puncte) care nsumeaz un maximum de 100 puncte; 3. Ordinea logic a parcurgerii unitii de nvare este urmtoarea: a) se citete scopul i obiectivele unitii de nvare; b) se citesc termenii de referin ; c) se parcurge coninutul de idei al unitii de nvare; d) se parcurge bibliografia recomandat; e) se rspunde la ntrebrile de autocontrol, revznd, dac este necesar, coninutul de idei al unitii de nvare; f) se elaboreaz, pe o pagin, cte un eseu pentru fiecare dintre temele de reflecie propuse la unitatea de nvare; g) se efectueaz testele de evaluare dup procedura descris; h) se rezolv exerciiile, problemele sau studiile de caz propuse pentru laboratorul sau lucrrile practice propuse n unitatea de nvare. Pentru creterea eficienei utilizrii suportului de curs i fixarea temeinic a cunotinelor dobndite, fiecare unitate de invatare se ncheie cu: teste de autoevaluare si teste de evaluare, teme de control, teme pentru studii de caz.

Obiectivele cursului Obiectul suportului de curs este studiul organizrii datelor n baze de date relationale i al gestiunii acestor baze de date, studiu realizat pe exemplul sistemului de gestiune al bazelor de date Microsoft Access atat in mod grafic cat i n modul de lucru programat, pe exemplul limbajului neprocedural SQL. Obiectivele principale ale suportului de curs sunt: nsuirea temeinic a noiunilor fundamentale privind bazele de date, n particular ale celor organizate dup modelul de date relaional; cunoaterea conceptelor de organizare structural a datelor gestionate n mediul de dezvoltare Microsoft Access; formarea deprinderilor practice necesare pentru gestiunea bazelor de date relaionale n mediul de dezvoltare Microsoft Access i n mediul de programare SQL. Suportul de curs este structurat pe trei parti, fiecare parte coninnd, n funcie de problematica abordat, unitati de invatare specifice. Competene conferite Capacitatea de alegere a unui sistem de gestiune a bazelor de date n funcie de domeniul de activitate din care provin aplicaiile informatice, de specificul acestora i de cerinele i exigenele utilizatorilor. Capacitatea de a proiecta o baz de date i de a o implementa folosind S.G.B.D.-ul Microsoft Access. Capacitatea de alegere a facilitilor mediului de programare Microsoft Access n funcie de domeniul de activitate din care provin aplicaiile de gestiune a bazelor de date, de specificul acestora i de cerinele i exigenele utilizatorilor. Capacitatea de alegere a facilitilor limbajului SQL n funcie de domeniul de activitate din care provin aplicaiile, de specificul acestora i de cerinele i exigenele utilizatorilor. Capacitatea de a dezvolta o aplicaie de gestiune folosind mediul Microsoft Access.

Resurse i mijloace de lucru Pentru parcurgerea acestui curs va fi nevoie de utilizarea Sistemului de Gestiune a Bazelor de Date Microsoft ACCESS 2010, care este parte a pachetului software integrat MICROSOFT OFFICE 2010. Structura cursului Suportul de curs este structurat pe trei parti astfel: Partea I contine o prezentare teoretic i metodologic a problematicii abordate, coninnd trei unitati de invatare: Unitatea 1. Organizarea datelor n baze de date; Unitatea 2. Modelul relaional al datelor. Unitatea 3. Sisteme de gestiune a bazelor de date. Microsoft Access; Partea a II-a contine o abordare i tratare practic a gestiunii bazelor de date relaionale n mediul de dezvoltare Microsoft Access, coninnd patru unitati de invatare: Unitatea 4. Gestiunea obiectelor Tables; Unitatea 5. Gestiunea obiectelor Queries;

Unitatea 6. Gestiunea obiectelor Forms; Unitatea 7. Gestiunea obiectelor Reports. Partea a III-a contine o abordare i tratare practic a gestiunii bazelor de date relaionale n mediul de lucru programat, coninnd urmatoarele unitati de invatare: Unitatea 8. Gestiunea obiectelor Macros; Unitatea 9. Introducere in limbajul SQL Unitatea 10. Gestiunea obiectelor Queries cu limbajul neprocedural SQL in mediul Access Cerine preliminare Pentru nelegerea conceptelor i noiunilor prezentate n acest curs i pentru a le aplica eficient n practic este necesar parcurgerea n prealabil a cursului de Bazele Tehnologiei Informaiei din anul I de studiu. Discipline deservite Pe baza cunotinelor dobndite n cadrul disciplinei curente studenii vor fi capabili s urmeze cursurile de Proiectarea sistemelor informatice financiar-bancare, Sisteme informatice de gestiune, Sistem informatice in marketing. Durata medie de studiu individual Timpul mediu necesar parcurgerii unei Uniti de nvare este 2-3 ore. Evaluarea studenilor Nota finala la disciplina Baze de date va fi stabilita prin : - evaluarea final (examen scris de tip gril) cu ponderea de 70%; - evaluri pe parcurs (evaluari n cadrul activitilor asistate si elaborarea unui proiect) cu ponderea de 30%;

Cuprins
Introducere Obiectivele cursului Competene conferite Resurse i mijloace de lucru Structura cursului Cerine preliminare Discipline deservite Durata medie de studiu individual Evaluarea studenilor 1.1. Obiective 1.2. Competenele unitii de nvare 1.3. Noiuni generale 1.4. Noiunea de baz de date 1.5. Clasificarea bazelor de date 1.6. Sisteme de gestiune a bazelor de date 1.7. Arhitectura unei baze de date 1.8 Etape in realizarea bazelor de date 1.9. Rezumat 1.10. Test de autoevaluare a cunotinelor 1.11. Tem de control 1.12. Bibliografie UNITATEA DE NVARE 2. MODELUL RELAIONAL AL DATELOR. 2.1. Obiective 2.2. Competenele unitii de nvare 2.3. Modelul relaional al datelor 2.4. Elementele modelului relaional al datelor 2.5. Operatorii modelului relational al datelor 2.6. Rezumat 2.7. Test de autoevaluare a cunotinelor 2.8. Test de evaluare a cunotinelor 2.9. Bibliografie 22 22 22 23 26 28 28 29 29 31 2 3 3 3 3 4 4 4 4 10 10 10 10 13 15 17 18 18 19 20 21 21 22

UNITATEA DE NVARE 1. ORGANIZAREA DATELOR N BAZE DE DATE

UNITATEA DE NVARE 3. SISTEME DE GESTIUNE A BAZELOR DE DATE. MICROSOFT ACCESS 3.1. Obiective 3.2. Competenele unitii de nvare 31 31

3.3. Prezentare general Microsoft Access 3.4 Structura bazelor de date Microsoft Access 3.5 Sistemul de asistare software (Help) 3.6. Instrumentele de ajutor Wizard 3.7 Limbajul de programare VBA 3.8 Rezumat 3.9. Test de autoevaluare a cunotinelor 3.10. Test de evaluare a cunotinelor 3.11. Bibliografie UNITATEA DE NVARE 4. GESTIUNEA OBIECTELOR TABLES. 4.1. Obiective 4.2. Competenele unitii de nvare 4.3. Crearea unui obiect de tip tabel

31 34 34 36 36 39 39 40 40 42 42 42 42

Furnizati mai multe detalii privind crearea de tabele in Microsoft Access 2010. Folositi drept sursa de informare Internetul 44 4.4 Stabilirea relaiilor dintre tabele 4.5. Rezumat 4.6. Test de autoevaluare a cunotinelor 4.7. Test de evaluare a cunotinelor 4.8. Bibliografie UNITATEA DE NVARE 5. GESTIUNEA OBIECTELOR QUERIES 5.1. Obiective 5.2. Competenele unitii de nvare 5.3. Notiunea de interogare 5.4 Tipuri de interogari 5.5 Operaii cu obiecte de tip interogare 5.6 Modificarea unui obiect de tip interogare 5.7 Alte tipuri de interogri 5.8 Rezumat 5.9. Test de autoevaluare a cunotinelor 5.10. Test de evaluare a cunotinelor 5.11. Bibliografie UNITATEA DE NVARE 6. GESTIUNEA OBIECTELOR FORMS 6.1. Obiective 6.2. Competenele unitii de nvare 6.3. Definirea i clasificarea formularelor 6.4 Crearea i modificarea formularelor 6.5 Structura formularelor 6.6 Proprietile formularelor 59 59 59 60 63 63 51 51 51 52 52 55 56 56 57 57 58 59 47 48 49 49 50 51

6.7 Controalele n formulare 6.8 Proprietile controalelor 6.9 Formulare/subformulare 6.10 Rezumat 6.11. Test de autoevaluare a cunotinelor 6.12. Test de evaluare a cunotinelor 6.13. Bibliografie UNITATEA DE NVARE 7. GESTIUNEA OBIECTELOR REPORTS 7.1. Obiective 7.2. Competenele unitii de nvare 7.3. Noiuni generale 7.4 Crearea i modificarea rapoartelor 7.5 Afiarea i tiprirea rapoartelor 7.6 Proprietile rapoartelor 7.7 Proprietile seciunilor din rapoarte 7.8 Controale calculate 7.9 Rezumat 7.10. Test de autoevaluare a cunotinelor 7.11. Test de evaluare a cunotinelor 7.12 Tema de control 7.13. Bibliografie UNITATEA DE NVARE 8. GESTIUNEA OBIECTELOR MACROS 8.1. Obiective 8.2. Competenele unitii de nvare 8.3. Prezentare general 8.4 Crearea unui obiect macro 8.5 Aciuni programabile n obiecte macro 8.6 Grup de obiecte macro 8.7 Rezumat 8.8. Test de autoevaluare a cunotinelor 8.9. Bibliografie UNITATEA DE NVARE 9. INTRODUCERE IN LIMBAJUL SQL 9.1. Obiective 9.2. Competenele unitii de nvare 9.3. Modelul relaional al datelor 9.4. Elementele limbajului SQL 9.5 Instruciuni SQL 9.6 Reuniunea, intersectia i diferena tabelelor

64 64 65 65 66 67 67 68 68 68 68 69 72 72 73 73 73 74 75 75 76 77 77 77 77 78 79 80 81 81 82 83 83 83 83 84 84 92

9.7 Rezumat 9.8. Test de autoevaluare a cunostintelor 9.9. Tema de control 9.10. Bibliografie

93 94 95 95

UNITATEA DE NVARE 10. GESTIUNEA OBIECTELOR QUERIES CU LIMBAJUL NEPROCEDURAL ACCESS-SQL 96 10.1. Obiective 10.2. Competenele unitii de nvare 10.3. Prezentare general Access-SQL 10.4. Microsoft Access-SQL 10.5 Etapele crerii i executrii interogrilor Access-SQL 10.6 Instruciuni pentru definirea datelor 10.7 Instruciuni de selecie a datelor 10.8 Instruciuni pentru manipularea datelor 10.9 Definirea cererilor SQL n MS-Access 10.10. Rezumat 10.11. Test de autoevaluare a cunotinelor 10.12. Test de evaluare a cunotinelor 10.13 Tema de control 10.14. Bibliografie 96 96 96 97 99 101 101 102 103 103 103 104 104 105

UNITATEA DE NVARE 1. ORGANIZAREA DATELOR N BAZE DE DATE


Cuprins 1.1. Obiective 1.2. Competenele unitii de nvare 1.3. Noiuni generale 1.4. Noiunea de baz de date 1.5. Clasificarea bazelor de date 1.6. Sisteme de gestiune a bazelor de date 1.7. Arhitectura unei baze de date 1.8. Etape in realizare bazelor de date 1.9. Rezumat 1.10. Test de autoevaluare a cunotinelor 1.11. Tem de control 1.12. Bibliografie 1.1. Obiective n aceast prim unitate de nvare se va prezenta noiunea de baz de date, aceea de model de date i implicaiile acestora n organizarea datelor. Tot n cadrul acestei unitti de nvare vom prezenta noiunile de fundamentale legate de sistemele de gestiune a bazelor de date i a criteriilor de alegere a acestora n funcie de domeniul n care se folosesc i de specificul aplicaiilor. 1.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Care sunt semnificaiile noiunii de baz de date fa de cele ale noiunii de fiier de date; Ce avantaje prezinta folosirea bazelor de date n efectuarea de aplicaii informatice cu un volum mare i chiar foarte mare n comparaie cu folosirea fiierelor de date; Care sunt principalele tipuri de baze de date; Durata de parcurgere a primei uniti de nvare este de 2 ore. 1.3. Noiuni generale Extinderea sferei de aplicabilitate a calculatoarelor electronice pentru efectuarea unor aplicaii tot mai variate i complexe, necesita stocarea unui volum tot mai mare de date. Astfel, pentru a ndeplini aceste cerine, s-a impus perfecionarea modului de organizare si structurare a datelor. Noul mod de organizare trebuie s permit accesul foarte rapid la datele stocate, n scopul regsirii i prelucrrii acestora. Accesul rapid la date trebuie s rezolve problemele legate de viteza de regsire a datelor, dar i de asigurarea accesului mai multor utilizatori la aceleai date (acces concurent), pentru efectuarea unor operaii diferite de prelucrare. Problemele implicate de organizarea i regsirea datelor se refer la: definirea, structurarea, ordonarea i gruparea datelor n colecii de date omogene; stabilirea legturilor dintre coleciile de date; reprezentarea i stocarea datelor pe suporturi magnetice (organizarea fisierelor de date, a structurilor de tip index etc.).

00:05

00:20

Furnizati mai multe definiii pentru noiunea de organizare a datelor. Folosii drept principal surs de informare Internetul. .................................................................................................................................... .................................................................................................................................... ................................................................................................................................... Evoluia organizrii datelor, att sub aspectul teoretic ct i practic, s-a extins cu precdere asupra principiilor i metodelor de structurare, stocare i regsire, n general de gestiune a datelor, n concordan cu progresele nregistrate n domeniile hardware i software i cu cerinele tot mai diverse i exigente ale utilizatorilor. In acest context, au aprut i s-au dezvoltat concepte noi privind gestiunea datelor cu mijloace electronice de calcul, printre care se nscriu cele de baz de date i banc de date. Astfel de concepte au dus la actualizarea i dezvoltarea unor noiuni cunoscute ca: entitate, atribut, relaie. Pornind de la realitatea obiectiv, pentru a identifica datele care urmeaz s fie stocate i regsite pentru prelucrare cu ajutorul calculatorului, precum i pentru a satisface cerinele specifice de organizare a acestor date este necesar modelarea acestei realiti, folosind modelele de date. Modelele de date transpun complexitatea informaiilor reale n reprezentri specifice, n scopul efecturii prelucrrii cu calculatorul electronic. Pentru folosirea modelului de date adecvat este necesar s se efectueze un studiu i o analiz privind situaia real, pentru identificarea necesarului de informaii i a modului de reprezentare, precum i a cerinelor de prelucrare a acestor informaii. Modelele de date necesit identificarea structurii modelului, a operatorilor care acioneaz asupra structurilor de date i a restriciilor (constrangerilor) pentru meninerea corectitudinii datelor. Structura modelului presupune identificarea obiectelor reale din activitatea care urmeaza a fi informatizata (care sunt denumite entiti), a caracteristicilor acestora (denumite atribute sau cmpuri de date) i a legturilor dintre aceste obiecte (denumite relaii sau asocieri). Entitatea constituie unitatea informaional elementar din structura unei colectii de date prin care se reflect elemente reale sau abstracte ce definesc segmente omogene ale realitii obiective caracterizate prin nume unic, numr maxim de apariii (realizri) i o structur specific acestei realiti pe care o descrie. Mai pe scurt, prin entitate se inelege un coninut de sine stttor, o existen determinat (ca intindere, importan, valoare etc). De exemplu, ntr-o societate comerciala pot fi definite entitile: personal, utilaje, produse, materiale, secii, ateliere, contracte, furnizori, beneficiari, facturi, note de intrare-receptie, etc. Fiecare apariie real a unei entiti n cadrul unei colectii de date se numete realizare, format, la rndul su, din elemente descriptive denumite atribute. Atributul sau caracteristica este o proprietate a unei entiti prin care aceasta poate fi descris din punct de vedere informaional ca o component a datelor. De exemplu, pentru entitatea personal se pot defini atribute ca: numele, data-naterii, starea civil, adresa, calificarea etc. Fiecare atribut poate avea mai multe valori. De exemplu, pentru sexul persoanei se pot atribui valorile: brbtesc i femeiesc, pentru starea civil valorile: cstorit, necstorit, divorat i vduv. ntre entitile unei colectii de date se pot stabili anumite legturi (conexiuni) denumite relatii. Relaia descrie o legtur specific, delimitat logic, ntre dou tipuri semnificative de entiti sau chiar n interiorul entitilor, prin care se definete gradul de implicare a unei entiti n raport cu altele. De exemplu, astfel de relaii se pot

00:30

stabili ntre entiti ca: utilaje i produse, contracte i furnizori, furnizori si facturi etc. Pentru a stabili tipul legturii, trebuie determinate numerele minime i maxime posibile de realizri ale unei entiti, care pot fi asociate cu o realizare a unei alte entiti cu care se afl n legtur. O astfel de implicare reprezint cardinalitatea relaiei (legturii). Dup gradul asocierii (valorile maxime identificate), relaiile din cadrul unei colectii de date pot fi de diferite tipuri si anume: de tipul 1 - 1, prin care se semnific conexiunea simpl; de tipul 1 - n i n - m prin care se semnific conexiunea multipl. Dup numrul de entiti distincte ce particip la asociere, relaiile pot fi: relaii binare, n care se realizeaz legturi ntre dou entiti distincte; relaii recursive, n care se realizeaz legturi ale entitilor cu ele nsele; relaii complexe, n care se realizeaz legturi ntre mai mult de dou entitai distincte. n funcie de modul in care sunt definite si reprezentate elementele prezentate anterior, pot exista mai multe tipuri de modelele de date, fiecare cu caracteristicile, avantajele si dezavantajele sale. Cele mai des intalnite modele de date in practica curenta a dezvoltarii aplicatiilor informatice sunt: modele ierarhice sau arborescente; modele reea; modele relaionale; modele orientate obiect. Modelele ierarhice (arborescente) sunt construite astfel nct au un nod (element) unic rdcin i un numr finit de succesori, care la rndul lor au alte noduri succesoare, pn la nodurile terminale, care nu mai au ali succesori. Orice nod, exceptnd nodul rdcin, are un predecesor unic. Relaiile care se stabilesc n cadrul acestor modele de date sunt de tipul 1-n. Modelele de tip reea sunt modele de tip graf cu legturi bidirecionale ntre noduri. Un nod poate avea mai muli predecesori i mai muli succesori. n aceste modele se stabilesc relaii de tipul m-n. Modelele de tip relaional presupun organizarea datelor in tabele bidimensionale de date, care au fost aduse prin anumite metode specializate ntr-o form optim pentru exploatare. n astfel de modele relaiile stabilite admit orice tip de relaie: 1-1,1-n, n-m. Modelele orientate obiect redau structuri de date complexe ale realitii, ncorporand atributele care descriu entitatile impruna cu operatiile care se pot executa asupra acestor atribute intr-o structura unica denumita clasa de obiecte. Aceste modele de date admit orice tip de relaie: 1-1, 1-n, n-m. In realizarea unei aplicatii informatice se parcurg de regula mai multe etpae. Una dintre cele mai importanta etape, de care depinde in mare masura eficienta sistemului informatic, consta in modelarea sistemului. In acest sens se folosesc o serie de tehnici de modelare si proiectare a sistemelor informatice. Pentru modelarea datelor gestionate de catre sistemul informatic, cea mai cunoscuta metoda de modelare poarta denumirea de modelul Entitate - Atribut - Relaie (EAR). Furnizati mai multe definiii pentru noiunile de atribut, relaie, entitate. Folosii drept principal surs de informare Internetul. ........................................................................................................................... ........................................................................................................................... ........................................................................................................................... ...........................................................................................................................

00:40

1.4. Noiunea de baz de date Noiunea de baz de date a aprut n anul 1969, cu ocazia prezentrii primului raport CODASYL (COnference of DAta SYstem Language), avnd ca idee central organizarea datelor ntr-un mod care s asigure independena organizrii datelor fa de programele de aplicaii i a programelor de aplicaii fa de organizarea datelor. Accesul oricrui utilizator la baza de date se asigur printr-o descriere global a datelor, care conine descrierea structurii coleciilor de date i a legturilor dintre acestea. O colecie de date aflate n interdependen care reflect un anumit aspect al realitatii i este destinat unui anumit grup de utilizatori mpreun cu descrierea structurii lor i relaiilor dintre ele, formeaz o baz de date. Exista mai multe posibilitati de creare si gestionare a bazelor de date: manual (de exemplu, o agenda telefonica clasica) sau cu ajutorul calculatorului (o agenda telefonica in format electronic). Operatiile pe care utilizatorii unei baze de date le pot efectua asupra datelor se clasficia in mai multe categorii: Introducerea de valori noi; Modificarea datelor existente; tergerea unora dintre datele existente; Interogarea bazei de date cu scopul de a regsi informaii conform unuianumit criteriu definit de utilizator. Entitile, atributele i relaiile stabilite intre entitati, descrise printr-un limbaj specializat n scopul memorarii lor pe un suport tehnic de date adresabil (memorie extern, de regula hard-discul) constituie baza de date. Aceasta poate fi exploatat prin cu ajutorul unor program specializate, denumit sistemul de gestiune al bazei de date (SGBD). Atat baza de date cat i SGBD-ul folosit la gestionarea si exploatarea ei devin operaionale si functioneaza sub controlul sistemului de operare aferent calculatorului n scopul satisfacerii cerinelor generale i specifice ale utilizatorilor. Una dintre caractersiticile esentiale care deosebesc o baza de date de modalitatea de organizare a datelor sub forma de fisisere consta in includerea n baza de date a descrierii structurii datelor. Prin aceasta se asigur independena datelor din baza de date fa de programele de aplicaii i invers. Independenta datelor fata de programe poate fi privita la mai multe niveluri: independen fizic - permite ca modalitatea i tehnicile de stocare a datelor (memorare)a lor pe suport de memorie externa) s poat fi modificate fr a necesita rescrierea programelor de aplicaii care exploateaza baza de date; independen logic - permite adugarea de entitati noi sau extinderea/modificarea structurii bazei de date fr a mai fi necesar rescrierea programelor de aplicaii care exploateaza baza de date. Independena datelor din baza de date fa de programele de aplicaii i invers prezinta o serie de avantajele dintre care cele mai importante sunt: accesul rapid la datele stocate n baza de date; redundan minim i controlat a datelor. Un sistem de baze de date (database system) este un sistem de gestionare a unei anumite activiti din lumea reala cu ajutorul calculatorului electronic. Ca dimensiune, sistemele de baze de date pot fi foarte diferite: de la cteva nregistrri (exemplul precedent al agendei telefonice) pana la zeci sau sute de milioane de

nregistrri (de exemplu, ntr-un sistem de evidenta a clientilor unei companii de telefonie mobila. Componenele unui sistem de baze de date sunt: hardware-ul, software-ul, utilizatori si datele (Figura 1.1.)
Utilizator final Utilizator final

Program Aplicaie

Program Aplicaie

SGBD

Figura 1.1. Componentele unui sistem de baze de bate a. Hardware-ul este reprezentat de regula de calculatoare de uz general, de la calculatoare PC standard (desktop, laptop), pn la staii multiprocesor cu putere de calcul foarte mare. Ceea ce intereseaz n mod deosebit n utilizarea unui calculator pentru un sistem de baze de date este capacitatea memoriei externe, folosita pentru memorarea coleciei de date persistente ale bazei de date. De regula, bazede date date se stocheaza pe unitati de hard disc care asigura acces foarte rapid la date si capacitate mare de stocare. Pentru efectuarea unor copii de siguranta ale bazelor de date se folosesc unitatile de banda magnetica sau discurile optice. b. Software-ul este reprezentat in principal de Sistemul de Gestiune a Bazei de Date (SGBD). SGBD-ul este cea mai important component software a unui sistem de baze de date, dar nu este singura component software : orice SGBD este executat sub controlul sistemului de operare al calcuatorului respectiv.Alte componente software care intra in alcatuirea unui sistem de baze de date sunt programe de proiectare si dezvoltare a programelor de aplicatii cu care se va exploata in mod curent baza de date. c. Utilizatorii. Utilizatorii unui sistem de baze de date se pot mpri n urmatoarele categorii: programatorii de aplicaii sunt cei care scriu aplicaiile de baze de date, folosind limbaje de programare de nivel nalt cu ar fi de exemplu C, C++, Java, Visual Basic; utilizatorii finali, adica acei utilizatori care acceseaz baza de date prin intermediul unui program de aplicaie si au posibiliti de execuie respectiv drepturi limitate de acces la date; administratorul bazei de date este un specialist in informatica si in special in baze de date care are ca sarcin meninerea funcionarii corecte si eficiente a bazei de date prin stabilirea drepturilor de acces a diferitelor categorii de utilizatori, indexarea/reindexare bazei de date, efectuarea operaiilor periodice de salvare a datelor, etc.). d. Datele memorate ntr-o baz de date. Acestea reprezinta informatiile proproiu-zise care descriu activitatea informatizata si sunt date persisente, adic ele rmn memorate

pe suport magnetic, independent de execuia programelor de aplicaii. S ne reamintim... O colecie de date aflate n interdependen care reflect un anumit aspect al lumii reale i este destinat unui anumit grup de utilizatori, mpreun cu descrierea structurii lor i relaiilor dintre ele, formeaz o baz de date. 1.5. Clasificarea bazelor de date Bazele de date i-au impus superioritatea fa de fiierele clasice de date i au avut o evoluie rapid. In prezent, practic nu exista aplicatie in domeniul economic care sa nu foloseasca o baza de date. Diversitatea modurilor in care sunt utilizate bazele de date i a modelelor de organizare a datelor a condus la necesitatea clasificrii bazelor de date dup diferite criterii. Dup modelul datelor organizate n baza de date se disting: - baze de date de tip ierarhic sau arborescent, avnd o structur arborescent n care exist relaii de subordonare de tip ierarhic (1 la n), astfel nct fiecare entitate subordoneaz una sau mai multe entiti i este subordonat, la rndul ei, unei singure entiti superioare (ca de exemplu: GIS (IBM), IMS (IMB), IDMS (UNIVAC)). Astfel de baze de date s-au folosit in trecut, fiind prima generatie de baze de date dar astazi se intalnesc foarte rar, avand mai mult o importanta istorica; - baze de date de tip reea, care asigur legturi de orice natur ntre entitile bazei de date (1la 1; 1 la n; n la m), astfel nct orice entitate poate fi legat direct cu alte entiti n scopul reflectrii unei corespondene funcionale. Ele se bazeaza pe pe modelul reea (un graf orientat alctuit din noduri conectate prin arce), un model complex i dificil de folosit. Limbajele de gestiune a acestor baze de date efectueaz prelucrarea secvenial a datelor, care este o prelucrare lent. Un SGBD de tip reea este IDMS (Integrated Database Management System), care dispune de un limbaj de descriere i un limbaj de manipulare. Si aceste baze de date au disparut practic din utilizarea curenta; - baze de date de tip relaional, care se bazeaz pe modelul relaional al datelor, au cunoscut o larg rspndire n prezent deoarece asigur independena organizrii datelor fa de programele de aplicaii i invers, o redundan minim si controlat a datelor, un acces rapid la datele stocate i limbaje puternice de manipulare (limbaje procedurale i limbaje neprocedurale). Modelul de date relaional s-a impus prin simplitate i prin aria larg de aplicabilitate. Acest model care opereaz cu entiti (tabele bidimensionale denumite si relatii), avnd structura format din nregistrri (denumite si tupluri), atribute (coloanele tabelelor), domenii i valori. Tuplul, prin analogie cu terminologia specific fiierelor de date, poate fi considerat un articol de date sau o nregistrare logic, iar valorile tuplurilor pot fi considerate valorile din cmpurile de date ale unei nregistrri logice. Numrul tuplurilor dintr-o relaie reprezint cardinalitatea relaiei, iar numrul valorilor dintr-un tuplu reprezint gradul relaiei. Produsul dintre cardinalitatea i gradul relaiei reprezint numrul de valori reale stocate la un moment dat. Atributul poate fi asimilat cu noiunea de cmp de date ntlnit la fiierele de date. Numrul de atribute reprezint un element invariabil determinat prin structura bazei de date. Atributul este identificat prin: nume, care, n general, corespunde semnificaiei valorilor din cadrul coloanei (atributului); tip, care reprezint tipul de date pentru valorile din cmpurile de date; dimensiune, care reprezint mumrul maxim de poziii (caractere) rezervate

01:00

01:15 0

pentru datele fiecrui cmp de date. Suma dimensiunilor tuturor atributelor reprezint dimensiunea relaiei. La intersecia unei linii (unui tuplu) cu o coloan (un atribut) se gsete valoarea efectiv a cmpului de date. Toate valorile existente ntr-un tuplu formeaz o realizare a bazei de date. Urmatoarele noiuni sunt similare: Atribut = Cmp = Coloan = Caracteristic Tuplu = Realizare = Linie = nregistrare In unitatea de invatare nr. 2 aceste vor fi prezentate detaliat elementele modelului relational al datelor. Sistemele de gestiune a bazelor de date relaionale reprezint a doua generaie de SGBD-uri. Ca exemple de astfel de SGBDR-uri se pot meniona urmtoarele: IBM DB2, INGRES, SABRINA, ORACLE, MySQL, Microsoft SQL Server, Postgresql etc. - baze de date orientate obiect, opereaz cu date complexe denumite clase de obiecte, care incapsuleaza atributele unei entitati si operatiile de prelucrare care se pot aplica asupra valorilor atributelor. Ele au aparut din necesitatea de memorare, regsire i prelucrare a unor elemente complexe (sunet, imagine, in general informatie multimedia), precum i datorit necesitii prototipizrii care asigur vitez de lucru i siguran n exploatare. Aceste baze de date se bazeaz pe noiunea de clasa de obiecte iar un obiect este o colecie de proprieti si operatii de prelucrare prin care se descrie o entitate din realitate. n aceste baze de date se pot reprezenta structuri de date complexe cu ajutorul obiectelor. Sistemele de gestiune a bazelor de date orientate pe obiecte reprezint a treia generaie de SGBD-uri, care urmrete s realizeze prelucrarea de obiecte. Exemple de SGBDO-uri sunt GemStone (Servio), ObjectStore (ObjectDesign), Ontos, ORACLE ncepand cu versiunea 7, etc. Dup gradul de centralizare a datelor se disting: - baze de date centralizate, care asigur prelucrarea integrat a datelor n mod global la nivelul unei uniti economice. Sistemele informatice ecnomice care utilizeaza astfel de baze de date poarta denumirea de sisteme informatice integrate. Un exepmlu de astfel de sistem este un sistem ERP; - baze de date descentralizate, care realizeaz prelucrarea parial a datelor la nivelul unei unitati organizatorice semnificative dintr-o unitate economic. Dup modul de distribuire a datelor pe calculatoare pot fi: - baze de date locale sau centralizate: datele sunt memorate pe o singura statie de lucru. Datele pot fi acesate de mai multi utilizatori, dar ceea ce este esential pentru o astfel de baza de date este faptul ca datele rezida pe un singur calculator; - baze de date distribuite: datele sunt stocate fizic pe mai multe statii de lucru conectate in cadrul unei reele de calculatoare, dar sub aspect logic exist ca o singur baz de date. Avantajele unei baze de date distribuite sunt: controlul centralizat, asigurarea independenei datelor fa de programele de aplicaii, transparena distribuiei fizice a datelor, asigurarea unei redundane minime controlate a datelor, sporirea performanelor sistemului, creterea siguranei sistemului, creterea adaptabilitaii sistemului. Sistemele de gestiune a bazelor de date distribuite ndeplinesc funciile de asigurare a interfeei cu utilizatorul, localizarea datelor, asigurarea controlului cererilor concurente i a integritii datelor. -Dupa numarul de utilizatori care pot accesa baza de date: - baze de date monoutilizator: suporta accesul unui singur utilizator la un moment dat; - baze de date multiutilizator: suport accesul concurent a mai multor utilizatori;

S ne reamintim... Bazele de date pot fi clasificate dup mai multe criterii:, modelul datelor, gradul de centralizare, numarul de utilizatori etc. 1.6. Sisteme de gestiune a bazelor de date Memorarea, gestiunea i prelucrarea datelor organizate n baze de date este asigurat de un ansamblu de programe denumit Sistem de Gestiune a Bazelor de Date (SGBD). Sistemele de gestiune a bazelor de date reprezint instrumentul software care permite ca modelele de date prezentate anterior s poat deveni operaionale si implementate in practica. Pentru fiecare dintre tipurile de baze de date exist sisteme specifice de gestiune a datelor. Sistemul de gestiune a bazelor de date are ca rol asigurarea urmatoarelor functionalitati: - definirea structurii bazei de date; - ncrcarea datelor n baza de date; - gestionarea i exploatarea bazei de date; - reorganizarea bazei de date atunci cand este necesar; - securitatea datelor din baza de date. Pentru gestiunea eficienta a datelor, orice sistem de gestiune a bazelor de date are o serie de obiective bine determinate, prin care se asigur: - independena datelor fata de suportul hardware utilizat; - redundana minim si controlat a datelor; - accesul mai multor utilizatori la date (acces concurent); - sporirea gradului de securitate a datelor prin utilizarea unor drepturi de acces la date; - integritatea coninutului informaional al datelor pe suportul fizic. n continuare vom discuta numai despre SGBD-urile care utilizeaza modelul relational al datelor, cu alte cuvinte, vom discuta numai despre bazele de date relationale. n scopul descrierii i utilizrii structurilor logice, conceptuale i fizice ale bazei de date SGBD-ul realizeaz funciile urmtoare: - funcia de descriere a entitilor bazei de date (reprezentate sub forma de tabele bidimensionale) i a relaiilor dintre entitati ntr-o viziune unitara, prin intermediul unui limbaj specializat denumit limbaj de descriere a datelor (LDD); -funcia de manipulare a entitilor si relaiilor din baza de date n scopul realizrii operaiilor de creare, actualizare, stergere, interogare a bazei de date, prin intermediul limbajului de manipulare a datelor (LMD); -funcia de utilizare i comunicaie, care permite legtura dintre utilizatori i baza de date, precum i conexiunea fizic dintre bazele de date distribuite; - funcia de administrare, care revine persoanei abilitate s gestioneze baza de date adica administratorului bazei de date. Dintre responsabilitile care revin administratorului bazei de date cele mai importante sunt: stabilirea parolelor de acces i a utilizatorilor care vor avea acces la baza de date; ntreinerea bazei de date; asigurarea unor copii de siguran a bazei de date; luarea unor msuri adecvate n situaii critice (incidente). S ne reamintim... Gestiunea i prelucrarea datelor organizate n baze de date este asigurat de un ansamblu de programe denumit Sistem de Gestiune a Bazelor de Date (SGBD).

01:25

1.7. Arhitectura unei baze de date Arhitectura unei baze de date a fost propusa in standardul ANSI/X3/SPARC si ea impune organizarea acesteia pe trei nivele functionale: intern (fizic), extern (logic), conceptual. Nivelul intern (fizic) corespunde tehnicilor de stocare a datelor i de exploatare a datelor prin transpunerea structurii conceptuale a bazei de date pe suporturile de date (suporturile de memorie extern). Nivelul extern (logic) corespunde sintetizrii cerinelor informaionale care sunt specifice grupurilor de utilizatori care exploateaza baza de date. Acestui nivel i corespunde structura logic a bazei de date definit de entitile i relaiile solicitate direct de o categorie de utilizatori n scopul satisfacerii cerinelor informaionale proprii. Fiecarei categorii de utilizatori ii corespunde o viziune individuala asupra bazei de date, acesta continand datele la care are acces respectiva categorie si drepturile de acces asupra datelor. Nivelul conceptual corespunde sintetizrii unitare a cerinelor informaionale adresate bazei de date, n scopul satisfacerii cerinelor globale i specifice ale tuturor utilizatorilor. Acestui nivel i corespunde structura conceptual definit prin reuniunea entitilor i relaiilor aferente de ctre toi utilizatorii. 1.8 Etape in realizarea bazelor de date Realizarea unei baze de date este o activitate complexa. Care presupune parcurgerea unor etape: analiza activitatii care urmeaza a fi informatizata si pentru care se realizeaz baza de date; proiectarea structurii bazei de date; introducerea datelor n baza de date; exploatarea i ntreinerea bazei de date. Analiza sistemului pentru care se realizeaz baza de date n aceast etap se analizeaz activitatea care urmeaz a fi modelata n scopul realizrii automate a funciunilor sale. n acest scop: se efectueaz o analiza static, pentru a identifica, n primul rnd, care sunt componentele sistemului (entitatile) i legturile (realtiile) dintre acestea; se utilizeaz tehnica Entitate - Atribut - Relaie, rezultnd astfel modelul logic al bazei de date; se efectueaz analiza dinamica a sistemului care trebuie informatizar pentru a pune n eviden transformrile din sistem n funcie de diverse evenimente, rezultnd astfel modelul dinamic; se folosete tehnica diagramelor de flux, pentru a identifica cerinele informaionale ale sistemului, rezultnd modelul funcional; se integreaz cele trei modele (static, dinamic i funcional), pentru a constitui modelul conceptual al bazei de date care va fi independent de SGBD-ul ce urmeaza s fie folosit la gestiunea bazei de date. Proiectarea structurii bazei de date n aceast etap se ine seama de conceptele specifice ale unui sistem de gestiune a bazelor de date, pentru a realiza: alegerea sistemului de gestiune a bazei de date; proiectarea schemei (structurii) bazei de date. Alegerea sistemului de gestiune a bazei de date se efectueaz n concordan cu cerinele utilizatorilor i cu cerine de natur tehnic i economic.

Cerinele utilizatorilor sunt n funcie de specificul aplicaiilor, timpul de rspuns al sistemului, confidenialitatea i securitatea datelor dar i uurina utilizrii SGBD-ului. Cerinele tehnice sunt legate de performanele i facilitile sistemului de gestiune a bazei de date (portabilitatea SGBD-ului); Cerinele economice se refer la costurile implicate de realizarea i exploatarea aplicaiilor, timpul i efortul pentru introducerea noului sistem, eventuala pregatire a viitoriilor utilizatori. Proiectarea schemei bazei de date se realizeaz folosind modelul de date specific i sintetiznd unitar toate cerinele informaionale ale utilizatorilor identificate n etapa de analiz a sistemului real. Proiectarea se realizeaz la nivel conceptual i la nivel fizic. Introducerea datelor n baza de date Introducerea datelor se poate face prin preluarea datelor din documentele primare sau din alte surse de date. Pentru a asigura corectitudinea i coerena datelor se recomand, de regul, efectuarea validrii (verificrii) datelor. Validarea se efectueaz att pentru respectarea restriciilor de integritate a datelor ct i a celor de comportament, specifice fiecrei aplicaii. Exploatarea i ntreinerea bazei de date Exploatarea bazei de date se refer la efectuarea operaiilor de consultare (folosire efectiv a datelor), la operaiile de actualizare a datelor (adugare, modificare i tergere), precum i la modificarea structurii bazei de date. ntreinerea bazei de date este sarcina administratorului bazei de date i este asigurat de toate programele utilitare puse la dispoziie de SGBD-ul aferent.

Bazele de date pot fi clasificate n urmatoarele tipuri: ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... 1.9. Rezumat Modelele de date transpun complexitatea informaiilor reale n reprezentri specifice, n scopul efecturii prelucrrii cu calculatorul electronic. Structura modelului presupune identificarea obiectelor (care sunt denumite entiti), a caracteristicilor acestora (denumite atribute sau cmpuri de date) i a legturilor (denumite relaii sau asocieri). Colecia de date este mulimea realizrilor (apariiilor unei entiti) ntr-o organizare a datelor. O colecie de date aflate n interdependen care reflect un anumit aspect al lumii reale i este destinat unui anumit grup de utilizatori mpreun cu descrierea structurii lor i relaiilor dintre ele, formeaz o baz de date. Gestiunea i prelucrarea datelor organizate n baze de date este asigurat de un ansamblu de programe (software) denumit Sistem de Gestiune a Bazelor de Date (SGBD). Sistemele de gestiune a bazelor de date reprezint instrumentul care permite ca modelele de date stabilite s poat devenifunctionale. Realizarea global i specific a aplicaiilor utilizatorilor care folosesc baze de date impune organizarea acesteia pe trei nivele: logic, conceptual si fizic. Principalele etape de realizare a bazelor de date sunt:

01:50

analiza sistemului pentru care se realizeaz baza de date; proiectarea structurii bazei de date; ncrcarea datelor n baza de date; exploatarea i ntreinerea bazei de date.

Principalele tipuri de baze de date sunt: Bazele de date ierarhice Bazele de date reea Bazele de date relaionale Bazele de date orientate pe obiecte Bazele de date distribuite 1.10. Test de autoevaluare a cunotinelor (timp necesar: 20 min.) 1. Fiecare apariie real a unei entiti ntr-o colectie de date se numete a. structur b. realizare c. index d. atribut 2. O baz de date se poate defini ca o colecie de: a. resurse fizice b. resurse logice c. date d. programe 3. O colecie de date mpreun cu descrierea structurii datelor i relaiilor dintre acestea se numete: a. realizare b. structur de date c. colecie de date d. baz de date 4. Organizarea datelor pe suporturi tehnice se poate realiza pe baza conceptului: a. colecie de date b. cmp de date c. structur de date d. baz de date 5. Termenul care se refer la datele organizate pe suportul de memorare, din denumirea de SGBD, este a. gestiune b. organizare c. prelucrare d. baz de date 6. Elementul indivizibil dintr-o baz de date se numete: a. articol de date b. cmp de date c. caracter d. nregistrare fizic 7. Pentru ca o colecie de date s devin baz de date este necesar ca, pe lng datele propriu-zise, s mai conin: a. realizri b. descrierea structurii c. articole de date d. Modelul de prelucrare 8. Pentru realizarea unei baze de date este necesar s se realizeze (parcurg) anumite: a. funcii b. obiective c. etape d. activiti 9. O baz de date i SGBD-ul folosit devin operaionale prin intermediul unui: a. software de baz b. software de aplicaii c. nucleu de programe specializate sistem de calcul d.

10. Bazele de date care sunt integrate logic, dar stocate fizic, pe staiile de lucru ale unei reele sunt baze de date: a. locale b. ierarhice c. universale d. distribuite

Rspunsurile corecte la ntrebrile din testul de tip gril: 1. b 2. c 3. d 4. d 5. d 6. c 7. b 8. c 9. c

10. d

1.11. Tem de control Realizai o analiz n care s comparai avantajele i dezavantajele sistemelor de gestiune a bazelor de date relaionale i a sistemelor de gestiune a bazelor de date orientate obiect. Exemplificai analiza prin SGBD-uri din cele dou categorii utilizate pe scar larg n prezent. 1.12. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i practice, Editura InfoMega, Bucureti, 2008. 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002 3. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006

UNITATEA DE NVARE 2. MODELUL RELAIONAL AL DATELOR.


Cuprins 2.1. Obiective 2.2. Competenele unitii de nvare 2.3. Modelul relaional al datelor 2.4. Elementele modelului relaional al datelor 2.5. Operatorii modelului relational al datelor 2.6. Rezumat 2.7. Test de autoevaluare a cunotinelor 2.8. Test de evaluare a cunotinelor 2.9. Bibliografie 2.1. Obiective n aceast unitate de nvare se vor prezenta fundamentele teoretice ale modelului relational al datelor: conceptele utilizate in cadrul modelului relational si operatorii modelului relational al datelor; 2.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Care sunt elementele care definesc modelul relaional al datelor; Care sunt principalele operaii/operatori ale/ai modelului relaional al datelor; Durata de parcurgere a acestei uniti de nvare este de 2 ore. 2.3. Modelul relaional al datelor Modul n care sunt memorate datele n vederea prelucrrii lor de ctre aplicaii reprezint o problema de importan major pentru orice SGBD. Din punct de vedere istoric, au existat mai multe modele de structurare a datelor care azi sunt depite din cauza dificultilor de exploatare. Acestea au fost deja amintite in capitoulul precedent: Modelul ierarhic (arborescent) - structureaza datele sub form ierarhicarborescent: un nod (element) unic rdcin i un numr finit de noduri fiu, care la rndul lor au alte noduri succesoare, pn la nodurile terminale, care nu mai au ali succesori. Orice nod, exceptnd nodul rdcin, are un predecesor unic. Firma IBM a implementat acest model n SGBD-ul IMS. Modelul reea. Datele sunt structurate sub forma unui graf cu legturi bidirecionale ntre noduri. Un nod poate avea mai muli predecesori i mai muli succesori. n acest model relaiile stabilite ntre noduri (entiti) sunt de tipul m-n. Dezavantajul major al modelelor ierarhic i reea const n modalitatea de acces la o nregistrare: aceasta presupune parcurgerea arborelui sau grafului pentru a localiza nregistrarea dorit ceea ce poate conduce la o serie de probleme legate de detectarea anomaliilor ce apar n timpul proiectrii bazei de date dar i de timpul necesar scrierii de aplicaii care poate fi foarte mare. n anul 1970, Edgar Frank Codd prin articolul A relational model for large

00:00

shared databanks propune un nou model de date numit modelul relational al datelor. Codd propune o structur de date tabelar, independent de echipamentele hardware pe care sunt stocate datele i de software de sistem, dotat cu o serie de operatori care permit manipularea i extragerea datelor. Aceast structur prezint o serie de avantaje care au dus la dispariia n timp a celorlalte modele de date: Asigur independena logic i fizic a datelor; Dispune de un suport teoretic foarte bun; Este un model mai simplu dect precedentele modele ceea ce l face mai uor de neles i aplicat n practic; Datele sunt stocate doar ca valori. Nu exista pointeri de legatura intre inregistrari sau de navigare prin structura de date ceea ce conduce la optimizarea accesului la date; Pune la dispoziia utilizatorilor limbaje neprocedurale de interogare prin care acestia specific ce date doresc s extrag i nu modul concret cum se va ajunge la rezultat. Modul concret n care sunt extrase datele ramane in sarcina SGBD-ului. Un exemplu de astfel de limbaj este limbajul SQL folosit azi pe scara largade catre toate SGBD-urile relationale; mbuntete integritatea i confidenialitatea datelor; S ne reamintim... Modele de organizare a datelor utilizate in domeniul bazelor de date sunt: -Modelul ierarhic; -Modelul retea; -Modelul relational; 2.4. Elementele modelului relaional al datelor Modelul relational al datelor opereaza cu o serie de concepte/notiuni dintre care cele mai importante sunt prezentate in continuare. 00:15 a) Domeniu - este reprezentat de o multime de valori avand asociat un nume. Domeniile pot fi definite in mai multe moduri: fie prin enumerarea elementelor sale, fie prin specificarea unor caracteristici de fundamentale ale sale. Exemple de domenii: Nota = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} (definit prin enumerarea elementelor sale) \ Nota = {n N* | n 1 si n 10} (definit printr-o caracteristica/proprietate a elementelor) b) Relatie relatia este elementul de baza al modelului relational, fiind definita ca o submultime a unui produs cartezian avand asociat un nume. Notiunea de produs cartezian este cea clasica provenita din teoria multimilor: fiind date n domenii D1, D2, , Dn, produsul lor cartezian este urmatorul: D1 D2 Dn={(a1,a2,,an)|ai Di , i = 1, , n} Elementele unei relatii sunt denumite in literatura de specialitate tupluri. O reprezentare intuitiva pentru o relatie este o tabela bidimensionala care contine date, fiecare coloana avand asociat un anumit tip de date, dat de domeniul din care provine.

Exemplu de relatie: Produse : 101 Monitor HP Buc. 550 1001 102 Unitate DVD Buc 120 1002 103 Cablu coaxial m 1.5 1003 c) Atribut o coloan a unei relatii (tabele) avand asociat un nume. Pentru relatia Produse reprezentata in exemplul precedent putem stabili de exemplu urmatoarele nume de atribute: CodProd Codul produsului (nu exista doua produse avand acelasi cod) DenumireProd denumirea produsului UM Unitatea de masura PU Pret unitar CodFurnizor Codul furnizorului produsului Produse : CodProd 101 102 103 DenumireProd Monitor HP Unitate DVD Cablu coaxial UM Buc. Buc m PU 550 120 1.5 CodFurnizor 1001 1002 1003

d) Schema unei relatii - numele relatiei (tabelei) urmat de lista atributelor sale si eventual de domeniul din care acestea provin. Exista mai multe modalitati prin care se poate specifica schema unei relatii. O posibila modalitate de specificare a relatiei Produse este urmatoarea : Produse(CodProd, DenumireProd, UM, PU, CodFurnizor) In acest exemplu schema relatiei a fost specificata doar prin doar prin denumirea relatiei urmata de lista atributelor sale. e) Cheia unei relatii - o multime minimala de atribute ale caror valori identifica in mod unic fiecare tuplu (rand, inregistrare) al relatiei (tabelei). Relatia fiind o multime, ea nu poate contine elemente duplicat, deci tuplurile pot fi identificate in mod unic prin valorile aflate pe una sau mai multe coloane din relatie.Aceasta/aceste coloane reprezinta cheia relatiei respective. In exemplul precedent, atributul CodProd identifica in mod unic (prin definitie) un produs, deci multimea {CodProd} poate fi considerata o cheie a relatiei Produse. De ce multimea de atribute {DenumireProd} din tabela Produse nu poate fi o cheie a acestei tabele ? ....................... Sa consideram un alt exemplu de tabela denumita Angajat cu urmatoarea schema: Angajat(CodAngajat, Nume, Prenume, SalariulBrut, CNP, SerieCarteIdentitate, NrCarteIdentitate)

Aceasta tabela poate avea mai multe chei : {CodAngajat} deoarece fiecare angajat are alocat un cod unic ; {CNP} fiecare persoana, deci si fiecare angajat, are un cod numeric personal distinct ; {SerieCarteIdentitate, NrCarteIdentitate}- deoarece nu pot exista doi angajati cu aceeasi combinatie serie-numar carte de identitate.

De ce multimea de atribute {CNP, SerieCarteIdentitate, NrCarteIdentitate} nu este o cheie a tabelei Angajat ? ....................... In teoria bazelor de date relationale sunt folosite urmatoarele notiuni care sunt legate de conceptul de cheie a unei relatii (tabele): cheie primara, cheie externa (sau cheie straina) si cheie candidata. O cheie candidat a unei relaii R este o mulime A de atribute cu urmtoarele doua proprieti: - identificare unica - mulimea A de atribute identific n mod unic fiecare tuplu al relaiei R; - nu exist o submulime proprie a lui A (distinct de A) care s aib proprietatea de identificare unic. O cheie este simpl dac este format dintr-un singur atribut, i este compus n caz contrar. O relaie poate avea mai multe chei candidate - una dintre acestea se alege pentru a fi folosit n aplicaii ca i cheie de identificare a tuplurilor. Cheia candidat folosit n acest scop se numete cheie primar; Cheia externa se defineste astfel. Fie R1, R2 doua relaii. O cheie extern din R2 este o mulime A2 de atribute cu urmtoarele proprieti: - tabela R1 are o cheie candidat A1; - fiecare valoare a setului A2 din R2 coincide cu o valoare a setului A1 din R1. Cheile externe se folosesc pentru a implementa legturile dintre tabele. Legturile de tip 1-la-1 i 1-la-n se implementeaz introducnd n una din tabele o cheie extern, care va face legtura cu cheia primar din tabela corespondent. O legtur de tip n-la-m se implementeaz introducnd o tabel suplimentar care are o cheie primar compus, fiecare element al cheii primare fiind o cheie extern. f) Valoarea NULL este utilizata n cadrul sistemelor de gestiune a bazelor de date relaionale pentru a reprezenta informaia lips sau indisponibil la un moment dat, indiferent de tipul de dat. g) Corectitudinea datelor - in cazul sistemelor de gestiune a bazelor de date existente pe piata, acestea pun la dispozitie mecanisme de verificare a corectitudinii datelor numite constrangeri de integritate. Acestea pot fi de mai multe tipuri: g.1) Constrngeri NOT NULL. Aceast constrngere interzice stocarea n baza de date a valorilor NULL, ceea ce nseamn c nu se permite ca anumite coloane s fie goale. g.2) Constrngeri UNIQUE. Constrangerea UNIQUE specific una sau mai multe coloane care identific n mod unic fiecare tuplu din cadrul unui tabel. n acelai timp, fiecare coloan ce apare n clauza UNIQUE trebuie s fie declarat ca fiind NOT NULL. g.3) Constrngeri PRIMARY KEY (integritatea entitii). Cheia primar a unui tabel trebuie s conin o valoare unic nenul pentru fiecare tuplu introdus n

tabel. g.4) Constrngeri FOREIGN KEY cheie externa (integritatea referenial). O valoare a cheii externe trebuie s aib o valoare corespondent n tabelul printe. Tabelul ce conine cheia extern se numete tabelul referit, copil sau extern, n timp ce tabelul ce conine cheia candidat se numete tabelul de referin sau printe. Integritatea referenial are semnificaia faptului c nici o baz de date relaional nu poate conine valori necorespunztoare ale cheii externe. Cheia extern necorespunztoare reprezint o valoare a cheii externe dintr-un tabel referit pentru care nu exist valoare n tabelul de referin. g.5) Constrngeri CHECK (validare). Exist dou tipuri de constrngeri CHECK. Una dintre ele este denumit constrngere de domeniu de valori, deoarece stabilete mulimea de valori pe care o poate lua un atribut, iar cealalt se numete constrngere logic utilizat cu scopul de a pune n eviden anumite condiii suplimentare asupra datelor incarcate in baza de date. Cel puin urmtoarele dou constrngeri trebuie s existe n orice baz de date relaional: a. Integritatea entitii: nici o component a cheii primare nu are voie s aibe valoarea NULL. b. Integritatea referenial: pentru fiecare valoare nenul a cheii externe din baza de date relaional, trebuie s existe o valoare corespunztoare din acelai domeniu de valori i de acelai tip (cheia primar). S ne reamintim... Modelul relational al datelor este definit printr-o serie de concepte: Domeniu; Relatie; Atribut; Schema unei relatii; Cheia unei relatii; Valori NULL; Constrangeri referitoare la asigurarea corectitudinii datelor; 2.5. Operatorii modelului relational al datelor Modelul relational al datelor are un suport teoretic foarte solid fiind bazat pe teoria seturilor i pe logica matematic. Asupra relatiilor (tabelelor) se pot aplica o serie de operatori ai modelului relational. Operatorii modelului relaional sunt operatorii din algebra relaional i operatorii din calculul relaional. Algebra relaional este o colecie de operaii formale aplicate asupra tabelelor (relaiilor), i a fost conceput de E.F.Codd. Operaiile sunt aplicate n expresiile algebrice relaionale care sunt compuse din operatorii relaionali i operanzi. Operanzii sunt ntotdeauna tabele (una sau mai multe). Rezultatul evalurii unei expresii relaionale este format dintr-o singur tabel. Algebra relaional are cel puin puterea de regsire a calcului relaional. O expresie din calculul relaional se poate transforma ntr-una echivalent din algebra relaional i invers. E.F. Codd a propus opt operaii ale algebrei relaionale, grupate n dou categorii: Operaii pe mulimi: reuniunea (union), intersecia (intersection), diferena (difference) i produsul cartezian (Cartesian product). Aceste operatii acioneaz asupra tabelelor vzute ca mulimi de elemente (tupluri), fr a tine cont de compoziia fiecrui tuplu si reprezint adaptarea operatiilor

01:15 0

echivalente din teoria mulimilor; Operaii relaionale speciale: restricia (restriction), proiecia (projection), jonciunea (join) i diviziunea (division). Operaiile relaionale speciale iau n consideraie compoziia tuplurilor, formate din valori ale atributelor relaiilor. Fie R1, R2, R3 trei relatii (tabele). Operatorii pe multimi se definesc astfel: Reuniunea: R3 este reuniunea relatiilor R1 si R2 notata R3 = R1 R2, unde R3 va conine tupluri din R1 sau R2 luate o singur dat; Intersecia. R3 reprezinta intersectia relatiilor R1 si R2, notata R3 = R1 R2, unde R3 va conine tupluri care se gsesc n R1 i R2 n acelai timp. Diferena. R3 reprezinta diferenta relatiilor R1 si R2 notata R3 = R1 \ R2, unde R3 va conine tupluri din R1 care nu se regsesc n R2; Produsul cartezian. R3 reprezinta produsul cartezian al relatiilor R1 si R2, notat R3 = R1 R2, unde R3 va conine tupluri construite din perechi (v1, v2), cu v1R1 i v2R2; Operatorii relaionali speciali se definesc astfel: Restrictia este o operaie relaional unar (se aplica pe o singura tabela) care selecteaz dintre tuplurile relaiei operand acele tupluri care ndeplinesc o condiie dat. Operaia de restricie se mai numete i selecie. Din R1 se obine o subtabel R2, care va conine o submulime din tuplurile iniiale din R1 ce satisfac un predicat (o condiie). Numrul de atribute din R2 este egal cu numrul de atribute din R1. Numrul de tupluri din R2 este mai mic dect numrul de tupluri din R1. Proiecia este o operaie relaional unar prin care se selecteaz o submulime de atribute ale relaiei operand. Din R1 se obine o subtabel R2, care va conine o submulime din atributele iniiale din R1 i fr tupluri duplicate. Numrul de atribute din R2 este mai mic dect numrul de atribute din R1. Jonciunea este o operaie binar a algebrei relaionale prin care se combin tuplurile a dou relaii ntr-o singur relaie fiind o derivaie a produsului cartezian, ce presupune utilizarea unui operator de comparatie care s permit compararea valorilor unor atribute din R1 i R2. R1 i R2 trebuie s aib unul sau mai multe atribute comune care au valori comune. Diviziunea este o operaie binar a algebrei relaionale prin care se obine o relaie care conine atributele diferenei mulimilor de atribute ale relaiilor operand.

Algebra relaional este prin definiie neprocedural (descriptiv), iar calculul relaional permite o manier de cutare mixt (procedural/neprocedural). Calculul relaional se bazeaz pe calculul predicatelor de ordinul nti (domeniu al logicii) i a fost propus de E.F. Codd. Predicatul este o relaie care se stabilete ntre anumite elemente i care poate fi confirmat sau nu. Predicatul de ordinul 1 este o relaie 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) utilizai n calculul relaional sunt: universal () i existenial (). Construcia de baz n calculul relaional este expresia relaional de calcul tuplu sau domeniu (funcie de tipul variabilei utilizate). Expresia relaional de calcul este format din: operaia de efectuat, variabile (tuplu respectiv domeniu), condiii (de comparaie, de existen), formule bine

definite (operanzi-constante, variabile, funcii, predicate; operatori), cuantificatori. Pentru implementarea acestor operatori exist comenzi specifice n limbajele de manipulare a datelor (LMD) din sistemele de gestiune a bazelor de date relaionale (SGBDR). Aceste comenzi sunt utilizate n operaii de regsire (interogare) a datelor. 2.6. Rezumat Modelul relational al datelor foloseste o serie de concepte/notiuni fundamentale. Acestea sunt: domeniu, relatie, atribut, schema unei relatii, cheia unei relatii, valoare NULL, constrangeri referitoare la asigurarea corectitudinii datelor. Totodata, modelul relational defineste si operatiile care se pot efectua asupra relatiilor (tabelelor). Aceste operatii au fost propuse de E.F.Codd si sunt grupate pe doua categorii: Operaii pe mulimi: reuniunea, intersecia, diferena i produsul cartezian; Operaii relaionale speciale: restricia , proiecia , jonciunea i diviziunea. 01:50 2.7. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. Printre modelele de organizare a datelor regasim: a. modelul ierarhic si modelul unitar; b. modelul retea si modelul relational; c. modelul disjunctiv si modelul conjunctiv d. modelul retea si modelul asimetric; 2. O linie dintr-o tabel a unei baze de date relaionale se mai numete i: a. rnd b. linie de date c. tuplu d. cuplu de date 3. Tabelele unei baze de date relaionale se mai numesc i: a. baze de date b. structuri de date c. relaii d. colecii de date 4. O cheie primar reprezint: a. un concept de securitate b. un concept de limbaj c. un concept de accesare d. un mijloc de identificare unic a liniilor unei tabele 5. O cheie primar referit printr-o legtur dintr-o alt tabel reprezint pentru tabela din care se refer: a. tot o cheie primar b. o cheie extern c. o cheie candidat d. o cheie intern

6. O tabel poate avea: a. cel mult o cheie primar b. obligatoriu o cheie primar c. oricte chei primare d. oricte chei candidat 7. Selecia reprezint un: a. element de baz al oricrui SGBD b. operator al modelului operaional c. operator al modelului de date relational d. niciuna dintre variantele de mai sus 8. O coloan sau un grup de coloane care pe lng cheia primar permite identificarea n mod unic a unei linii dintr-o tabel se numete: a. cheie primar b. cheie unitar c. cheie extern d. cheie candidat 9. Valoarea NULL pentru o celul aparinnd unei tabele dintr-o baz de date semnific faptul c: a. n acea celul se gsete irul vid b. n acea celul se gsete valoarea zero c. n acea celul nu se gsesc date d. niciuna dintre variantele de mai sus 10. Reuniunea reprezint un: a. Un tip special de jonctiune b. operator al modelului operaional c. operator al modelului de legturi d. niciuna dintre variantele de mai sus

Rspunsurile corecte la ntrebrile din testul de tip gril: 1. b 2. c 3. b 4. d 5. b6. b 7. c 8.d 9. c 10. d 2.8. Test de evaluare a cunotinelor A. Descrieti elementele care definesc modelul relational al datelor. B. Care sunt operatiile modelului relational al datelor? Exemplificati. 2.9. Bibliografie 1. Codd E. F., "A Relational Model of Data for Large Shared Data Banks", Communications of the ACM, 1970. 2. Codd E. F., The Relational Model for Database Management, Addison-Wesley Publishing Company, 1990. 3. Fotache M., Proiectarea bazelor de date Normalizare i postnormalizare. Implementri SQL i ORACLE, editura Polirom, 2005. 4. Harrington J., Relational Databases Design and Implementation, third edition, editura Morgan Kauffman, 2009. 5. Petersen J., Baze de date pentru nceptori, editura B.I.C. ALL, 2003.

UNITATEA DE NVARE 3. SISTEME DE GESTIUNE A BAZELOR DE DATE. MICROSOFT ACCESS


Cuprins 3.1. Obiective 3.2. Competenele unitii de nvare 3.3. Prezentare generala Microsoft-Access 3.4. Arhitectura Microsoft Access 3.5. Sistemul de asistare software (Help) 3.6. Instrumente WIZARD 3.7. Rezumat 3.8. Test de autoevaluare a cunotinelor 3.9. Test de evaluare a cunotinelor 3.10. Bibliografie 3.1. Obiective n aceast unitate de nvare se vor prezenta elementele arhitecturale ale mediului de Microsoft Access precum si cunoaterea posibilitilor de lucru Microsoft Access pentru gestiunea bazelor de date i a sistemului de asistare software a utilizatorilor. 3.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Cum se pot folosi posibilitile de exploatare ale S.G.B.D. MS Access pentru gestiunea bazelor de date relaionale; Cum se pot gestiona obiectele bazelor de date MS Access. Durata de parcurgere a acestei uniti de nvare este de 3 ore. 3.3. Prezentare general Microsoft Access MS-Access este o component a pachetului de programe integrate Microsoft Office, care se poate instala i exploata pe calculatoare personale (PC -uri) ce lucreaz sub oricare sistem de operare de tip Windows (Windows 95, Windows 98, Windows 2000, Windows XP, Windows Vista, Windows 7). Lansat iniial n anul 1992, pachetul Microsoft Office a evoluat rapid i s-a dezvoltat substanial, ajungnd n prezent la versiunea MS-Office 2010, ca versiune mbuntit fa de versiunile anterioare (MS-Office 2007, MS-Office XP). innd seama de ponderea nsemnat ocupat de pachetul de programe integrate Microssoft Office n vnzrile de produse software pentru microcalculatoare, se poate afirma c MSAccess este unul dintre cele mai folosite sisteme de gestiune a bazelor de date instalate i exploatate pe calculatoare personale. n pachetul de programe integrate Office sunt componente tradiionale, pe care firma Microsoft le-a meninut i dezvoltat odat cu evoluia pachetului: Word program pentru procesarea de texte; Excel program de calcul tabelar; Access sistem de gestiune a bazelor de date; Power Point program pentru prezentarea de aplicaii; Outlook program pentru organizarea i gestiunea potei electronice.

00:00

Furnizati mai multe detalii privind componentele pachetelor MS-Office 2010, 2007, XP. Folositi drept sursa de informare Internetul. ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... Pe lng aceste componente, n versiunea MS-Office 2010 au mai fost introduse componentele urmtoare: Publisher program pentru realizarea de publicaii; OneNote program pentru crearea de notite si management al informatiei; InfoPath program pentru proiectarea, realizarea si distribuirea de formulare electronice continand date structurate; SharePoint Workspace program pentru partajarea documentelor si colaborarea la elaborarea lor in cadrul unei echipe; Versiunea Microsoft Office 2010 aduce noi aspecte si este disponibil n mai multe variante (ediii): Starter Edition; Online Edition; Personal Edition; Home and Student Edition; Home and Business Edition; Standard Edition; Professional Edition Professional Plus Edition. MS-Office 2010 pstreaz aceleai componente ca i versiunea anterioar (MSOffice 2007), ns aducnd unele mbuntiri tuturor componentelor/aplicatiilor. MS-Office 2010, cu toate c nu are componente noi fa de versiunea 2007, totui componentele coninute au fost substanial mbuntite. Astfel, pentru a ajuta utilizatorii la operaiile complicate, Microsoft a introdus: Task Panes una dintre cele mai importante mbuntiri aduse MS-Officeului, constnd dintr-o serie de panouri verticale, situate pe partea dreapt a ecranului, care apar cnd este necesar (de regul dup lansarea n execuie a componentei MS-Office), oferind posibilitatea ca printr-un click de mouse s se efectueze diferite operaii, care ar fi necesitat n versiunile anterioare folosirea unor casete de dialog; Smart Tags casete mici de culoare gri care se ataeaz singure anumitor intrri. Aceste casete ajut utilizatorii n unele cazuri s controleze eficient MS-Officeul astfel nct s efectueze automat anumite schimbri; Disaster Recovery o mbuntire introdus special pentru a salva documentele atunci cnd MS-Office-ul se blocheaz; Speech Recognition una dintre cele mai nsemnate mbuntiri i extraordinare carateristici, care permite dictarea i utilizarea de comenzi vocale n majoritatea aplicaiilor efectuate n MS-Office fr a mai fi necesar un program dedicat. Aceasta componenta a fost introdusa inca de la verisunea XP dar performante mai bune se inregistreaza de la versiunea Office 2010; Product Activation Wizard o mbuntire care permite crearea unui numr de identificare (ID) bazat pe profilul hardware al utilizatorului, profil care trebuie transmis ctre firma Microsoft pentru a preveni instalarea pachetului MS-Office pe alte PC-uri dect cele cu licen. n pachetul MSOffice componentele au fost proiectate pentru a lucra mpreun

00:30

ntr-un mediu integrat, oferind utilizatorilor posibilitatea de a depi limitele componentelor individuale. Astfel, folosind mediul integrat MSOffice se poate realiza o mare varietate de funcii, cum ar fi: nglobarea informaiilor dintr-un anumit tip de document ntr-un alt tip, permind editarea acestora fr a se modifica sursa datelor; crearea de legturi ntre fiiere, astfel nct modificarea informaiilor ntr-un fiier s determine actualizarea automat a acestora n celelalte fiiere catre care puncteaza legaturile; combinarea unei baze de date cu adrese, creat n Access, cu un formular de scrisoare, realizat n Word, pentru a obine rapid de scrisori; administrarea mesajelor i a programului de lucru, partajarea de informaii n diverse moduri, folosind programul Microsoft Outlook; colaborarea eficient cu ceilali parteneri, prin lucrul simultan n registre de calcul partajate i prin schimbul de informaii. Caracteristicile de baza i facilitile principale de exploatare ale S.G.B.D.-ului MS-Access sunt urmtoarele: MS-Access este un S.G.B.D. care permite gestionarea bazelor de date relaionale folosite n mod exclusiv sau n mod multiutilizator (partajat); MS-Access se bazeaz pe interfaa grafic de utilizator (GUI-Graphic User Interface), specific produselor software de tip Windows, care este uor de folosit, oferind utilizatorului un mediu de lucru prietenos; MS-Access se fundamenteaz pe concepte noi (obiect, proprieti ale obiectelor, eveniment, procedur care se lanseaz n execuie cnd apare un eveniment, programare orientat pe obiecte i evenimente etc); MS-Access este un S.G.B.D. deschis comunicrii cu alte sisteme de gestiune a bazelor de date relaionale (dBASE, Fox Pro, Paradox); MS-Access permite realizarea cu uurin a importului i exportului de date cu alte componente MS-Office (de exemplu cu Excel, fisiere XML, text etc.); MS-Access permite efectuarea de aplicaii complexe folosind limbajul VBA (Visual Basic for Applications) sau generatorul de macroinstruciuni; MS-Access permite interogarea bazelor de date relaionale, fie n mod grafic folosind interfaa QBE (Query By Example), fie folosind limbajul SQL (Structured Query Language); MS-Access dispune de un sistem eficient de asistare software (Help), care permite documentarea utilizatorului n mod contextual sau la cerere; MS-Access conine instrumente Wizard, care permit utilizatorului s creeze cu uurin obiectele care intra in alcatuirea unei baze de date (tabele, formulare, rapoarte etc); MS-Access permite accesul la baze de date din reeaua Internet, fiind un mediu de lucru util pentru publicarea de informaii n pagini Web; MS-Access se poate instala pe calculatoare personale care conin resurse hardware similare cu cele impuse de versiunea sistemului de operare gazd (Windows 95/98/2000/XP/VISTA/7). S ne reamintim... Caracteristicile de baza i facilitatile principale de exploatare ale S.G.B.D.-ului MSAccess sunt urmtoarele: MS-Access este un S.G.B.D. care permite gestionarea bazelor de date relaionale, se bazeaz pe interfaa grafic de utilizator (GUI-Graphic User Interface), se fundamenteaz pe concepte noi (obiect, proprieti ale obiectelor,

eveniment), este deschis comunicrii cu alte sisteme de gestiune a bazelor de date relaionale (dBASE, MySQL, etc.), permite interogarea bazelor de date relaionale, fie n mod grafic folosind interfaa QBE (Query By Example), fie folosind limbajul SQL (Structured Query Language). 3.4 Structura bazelor de date Microsoft Access Microsoft Access este un S.G.B.D. elaborat pentru gestionarea bazelor de date realaionale. O baz de date Access se poate defini ca o colecie de obiecte de diferite tipuri si functionalitati: Tables (tabele), Queries (cereri de interogare), Forms (formulare), Reports (rapoarte), Macros (comenzi macro), Modules (module program). Definit astfel, baza de date Access se deosebete de bazele de date definite n alte SGBD-uri. Tables (tabele) sunt obiectele definite de utilizator n care datele sunt stocate sub form de nregistrri (articole) denumite si tupluri i care reprezint astfel expresia modelului relaional al bazei de date. Queries (cereri de interogare) sunt obiecte care permit extragerea si vizualizarea informatiilor necesare la un moment dat din una sau mai multe tabele ale bazei de date. Prin astfel de obiecte utilizatorul poate selecta din baza de date cu ajutorul unor criterii numai datele care i sunt necesare pentru prelucrare. Forms (formulare) sunt obiecte care permit introducerea datelor de la tastatur, vizualizarea (afiarea pe ecran) acestor date sau controlul ntregii aplicaii Access. Prin aceste obiecte se poate efectua transferul datelor introduse de utilizator n tabele (baza de date), fiind astfel un mod indirect de ncrcare a bazei de date. Reports (rapoarte) sunt obiecte care permit afiarea si tiprirea informatiilor extrase din baza de date cu ajutorul cererilor de interogare sau direct din tabelele bazei de date sub form de documente. Astfel de obiecte reprezinta informatiile conform unei structuri speciale, conform cerinelor, specificaiilor i exigenelor utilizatorilor. Macros (comenzi macro) sunt obiecte ce definesc aciuni care se execut la declanarea unui eveniment. Obiectele macro, identificate printr-un nume, sunt create pentru automatizarea executrii de aciuni asupra unor obiecte din baza de date. Modules (module) sunt obiecte care conin proceduri definite de utilizator scrise n limbajul VBA (Visual Basic for Applications) care este un subset al limbajului de programare Visual Basic. Colecia de obiecte, prin care se poate defini o baz de date n SGBD Microsoft Access, se caracterizeaz prin interdependena i interaciunea obiectelor coninute n scopul gestionrii informatiilor din baza de date i realizrii de aplicaii complexe. Astfel, n tabele (tables) sunt stocate datele introduse iniial de la tastatur prin formulare (forms). Informatiile necesare utilizatorilor la un moment dat sunt extrase (selectate) prin cereri de interogare (queries) i sunt afiate sau tiprite prin intermediul rapoartelor (reports). Pentru realizarea cererilor de interogare, a formularelor si a rapoartelor se pot folosi comenzi macro (macros) i / sau proceduri VBA (modules). S ne reamintim... O baz de date de tip Access se poate defini ca o colecie de obiecte: Tables (tabele), Queries (cereri de interogare), Forms (formulare), Reports (rapoarte), Macros (comenzi macro), Modules (module program). 3.5 Sistemul de asistare software (Help) La fel ca celelalte componente din pachetul de programe integrate Microsoft

01:00

01:30 5

Office, S.G.B.D.-ul MS Access are ncorporat un sistem de asisten software (Help), apelabil n dou moduri distincte: activarea meniului Help - pictograma cu semnul ntrebrii pozitionata in partea dreapta pe bara de meniuri Access; acionarea tastei funcionale F1. Sistemul de asistare a utilizatorilor (Help) permite acestora s procedeze n mod difereniat pentru a primi asisten software n funcie de cerinele i complexitatea aplicaiilor. Dup acionarea tastei funcionale F1 sau activarea opiunii similare din meniul Help se afieaz fereastra tipic de asistenta Help, n care utilizatorul este invitat s introduc o ntrebare i unde va primi rspunsul ateptat. Sistemul de asistenta Help a fost introdus ncepnd cu versiunea 97 a pachetului Microsoft Office pentru asistarea continu a utilizatorilor pe ntreaga perioad de proiectare, realizare si exploatare a aplicaiilor. Fereastra componentei Help este prezentata in figura 3.1.

Figura 3.1 Fereastra componentei HELP Astfel, cu ajutorul acestei fascilitati de asistenta utilizatorii au posibilitatea: s caute informatiile disponibile despre o functionalitate a S.G.B.D.-ului ACCESS n caseta Search; s aleaga un capitol din cuprinsul manualului de utilizare ACCESS Browse Access Help; s activeze opiunea Show content from Office.com din lista de opiuni a meniului Help, pentru a vizualiza pagini Web cu informaii de asisten software, n timpul unei sesiuni de lucru n reeaua Internet.

Folosirea casetei Search Caseta Search constituie o cale rapida de a regasi o informatii in sistemul de asistenta din MS Access. Aceast caset se gsete n partea din dreapta-sus a ferestrei de aplicaie MS Access. Astfel, dac un utilizator dorete s obin asisten privind modul de creare a unui obiect Table (tabela), acesta va putea tasta de exemplu intrebarea How do I create a new table? n caseta Search, apoi s apese tasta Enter. Sistemul va raspunde cu o lista de informatii referitoare la facilitatea ceruta de utilizator. S ne reamintim... Sistemul de asistenta software in MS Access 2010 este apelabil n dou moduri distincte: fie prin activarea meniului Help - pictograma cu semnul ntrebrii pozitionata in partea dreapta pe bara de meniuri Access fie prin acionarea tastei funcionale F1. 3.6. Instrumentele de ajutor Wizard Pentru usurarea realizarii aplicaiilor n SGBD Access si cresterea eficientei si productivitatii muncii realizatorilor de aplicatii, compania Microsoft a introdus o serie de instrumente de ajutor denumite Wizard (vrjitor, cu sens de asistare), care se pot grupa n dou categorii: instrumente Wizard generale; instrumente Wizard orientate obiect. Functia de baza a acestor intrumente este de a ajuta utilizatorii la realizarea n mod automat si rapid a bazelor de date sau obiectelor unei baze de date (tabele, cereri de interogare, formulare, rapoarte) n funcie de anumite specificaii, cerine, exigene, opiuni, preferine ale utilizatorilor. Instrumentele Wizard generale ajut utilizatorii pentru realizarea aplicaiilor care pot fi generate automat prin folosirea unor abloane, fiind create toate obiectele necesare folosind anumite specificaii ale utilizatorilor. Un exemplu concret n acest sens poate fi crearea bazei de date pentru evidena operativ a stocurilor de bunuri materiale. Instrumentele Wizard orientate obiect ajut utilizatorii pentru crearea obiectelor ce intra in componenta unei baze de date in mod interactiv, prin parcurgerea unor etape de dialog ntre utilizator i sistem, n care utilizatorul furnizeaz specificaii , alege optiuni prezentate de Wizard pe baza crora se creaz obiectul respectiv. Instrumentele de ajutor Wizard trebuie folosite cu anumite rezerve, deoarece nu toate aplicaiile se preteaz n aceeai msur la folosirea acestor instrumente. Astfel, folosirea instrumentelor Wizard se recomand n special pentru crearea obiectelor de tip formular sau raport. n cazul obiectelor de tip tabel, instrumentul Wizard nu poate ajuta semnificativ utilizatorul atunci cnd obiectul tabel ce va fi creat conine cmpuri de date speciale care nu pot fi realizate de instrumentul Wizard. La fel in cazul cererilor de interogare, instrumentul Wizard poate creea doar cateva tipuri simple, predefinite, de cereri. 3.7 Limbajul de programare VBA Limbajul de programare BASIC (Beginners All Purpose Symbolic Instruction Code) a fost introdus de compania Microsoft ca un limbaj comun pentru realizarea tuturor aplicaiilor care folosesc proceduri tip macro (bazate pe comenzi macro). Limbajul BASIC a fost apoi tranformat in Visual Basic, odata cu aparitia

01:50

02:05

mediilor de programare grafice. El este disponibil si in mediul integrat de dezvoltare al aplicatiilor Visual Studio. Odata cu aparitia pachetului Office, acest limbaj a fost integrat in toate aplicatiile Microsoft, avnd ca rezultat apariia unui nou limbaj cunoscut sub denumirea de Visual Basic for ApplicationsVBA. Acest limbaj este in prezent disponibil pentru a crea module (proceduri) de prelucrare a datelor in toate aplicatiile pachetului Microsoft Office. Deci, VBA este un subset al limbajului Visual Basic, orientat pe obiecte i evenimente, folosit n SGBD Access pentru crearea de obiecte de tip modul (Modules). Obiectele de tip modul (Modules) conin programe elaborate n limbajul VBA folosite pentru realizarea aplicaiilor Access sau crearea de proceduri echivalente cu procedurile macro. Subliniem faptul ca in limbajul VBA nu pot fi create programe de sine statatoare, ci el poate fi utilizat doar pentru crearea procedurilor/functiilor/modulelor a caror executie este declansata de un eveniment (de exemplu deschiderea unui formular, apasarea unui buton de catre utilizator etc.). Un modul Access este o colecie de declaraii i proceduri descrise mpreun ca un ntreg, structurat n dou seciuni: seciunea de declaraii; seciunea procedurilor. In VBA procedurile pot fi de trei tipuri: functie, subrutina si eveniment. Procedurile de tip functie (Function) reprezinta un set de instructiuni ce efectueaza anumite prelucrari asupra datelor si care returneaza o valoare ca rezultat al functiei. Procedurile de tip subrutina (Sub) efectueaza operatii de prelucrare asupra datelor dar nu returneaza valori. Procedurile de tip eveniment sunt declansate automat ca rspuns la un eveniment iniiat fie de utilizator fie de codul program. Un modul poate fi creat selectand optiunea Create din meniul principal apoi deschizand lista de optiuni Client Objects aflata in partea stanga a toolbarului de unde se va alege Module. In figura 3.2 se poate vizualiza acest meniu.

Figura 3.2 Crearea unui Modul Modulele Access pot fi de trei tipuri: module globale, care sunt accesibile pentru toata aplicatia; module specifice obiectelor forms sau reports, care sunt accesibile numai

acestor obiecte; module class, care permit definirea claselor de obiectelor utilizator.

Odata aleasa optiunea Module se va deschide mediul integrat de programare disponibil pentru editarea modulelor care contine facilitati de editare a modulelor, executare a lor, depanare. Procedurile pot fi asamblate n module innd seama de cerinele utilizatorului. Astfel, o procedur, dup ce a fost definit, poate fi apelat repetat din orice obiect al bazei de date, cu excepia cazului n care a fost declarat Private. Pentru a efectua ct mai simplu consultarea i actualizarea modulelor/procedurilor, se recomand ca acestea s fie grupate dup criterii funcionale. Modulele/procedurile create pot fi ulterior modificate, activnd opiunea Design View in seciunea Modules din panelul All Access Objects al ferestrei principale Acces (vezi figura 3.3). Editorul de VBA contine facilitati avansate de asistare a utilizatorilor care creeaza proceduri, cuvintele cheie i cuvintele utilizator fiind transformate automat n forma n care au fost declarate, dac sunt folosite corect. Asupra procedurilor VBA se efectueaz verificri sintactice: la nivel local, asupra fiecrei instruciuni, odat cu scrierea (editarea) acesteia; la nivel contextual, asupra ntregii proceduri; n momentul compilrii explicite, efectuat cu opiunea Compile din meniul Debug; n momentul execuiei propriu zise, cu opiunea Go/Continue din meniul Run sau, mai simplu, apsnd pe tasta F5.

Figura 3.3 Editarea unui modul n momentul scrierii (editrii) unei proceduri VBA are loc i afiarea contextual a elementelor care caracterizeaz un anumit context (exemplu, tipul unei variabile declarate). Aceasta este cea mai puternic facilitate a editorului de programe surs VBA, deoarece utilizatorul nu trebuie s rein cuvintele cheie (obiecte, metode, proprieti, tipuri de date etc), aa cum sunt definite, unele dintre acestea fiind destul de lungi. n schimb utilizatorul trebuie s tie de existena acestor cuvinte cheie, s aleag elementul contextual corespunztor, fr a mai fi necesar s introduc de la tastatur denumirea complet, ceea ce permite editarea rapid a procedurii.

Instruciunile se introduc n procedur, n general cte una pe un rnd, fiind totui permis introducerea mai multor instruciuni pe acelai rnd, separate prin caracterul special :. O instruciune poate fi editat pe mai multe rnduri, cu condiia ca la sfritul fiecrui rnd s se pun caracterul special -, cu excepia ultimului rnd. Procedura, unele pri din procedur sau instruciuni pot fi nsoite de un text explicativ de tip comentariu, care trebuie introdus precedat de caracterul special (apostrof). Comentariile nu afecteaz cu nimic procedura, deoarece sunt ignorate de compilator n momentul rulrii programului. Folosind sistemul Help documentati-va despre deosebirile dintre obiecte Macros si obiectele Modules. Descrieti cateva dintre aceste deosebiri. ... ... ... 3.8 Rezumat Access este o component a pachetului de programe integrate Microsoft Office, care se poate instala i exploata pe calculatoare personale (PC-uri) ce lucreaz sub oricare sistem de operare de tip Windows. Microsoft Access este un S.G.B.D. elaborat pentru gestionarea bazelor de date realaionale. O baz de date in Access se poate defini ca o colecie de obiecte: Tables (tabele), Queries (cereri de interogare), Forms (formulare), Reports (rapoarte), Macros (comenzi macro), Modules (module program). La fel ca celelalte componente din pachetul de programe integrate Microsoft Office, componenta Access are ncorporat un sistem de asisten software Help.

02:40

3.9. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. ncepnd cu care versiune Microsoft Office au fost introduse componente (aplicatii) noi fa de cele cinci componente tradiionale ? a. MS-Office 97 b. MS-Office 2000 c. MS-Office XP d. MS-Office 2003 2. Panourile verticale situate pe partea dreapt a ecranului dup lansarea n execuie a unui program din pachetul Microsoft-Office se numesc: a.Task Panes b. Smart Tags c. Microsoft Office d. Blank Database 3. Interfaa grafic de utilizator specific produselor software de tip Windows, inclusiv programului Microsoft-Access se numete: a. VBA b. QBE c. GUI d. SQL 4. Suportul de programare folosit n aplicaiile cu baze de date tip Microsoft Access se numete: a. GUI b. QBE c. VBA d. SQL 5. n bazele de date Microsoft-Access expresia modelului relaional al bazei de date este reprezentat de obiectele: a.Tables b. Queries c. Forms d. Reports 6. n bazele de date Microsoft-Access obiectele care permit s se vizualizeze

rezultatele prelucrrii datelor din tabele i interogri se numesc: a.Tables b. Queries c. Forms d. Reports 7. n bazele de date Microsoft-Access introducerea datelor n mod indirect se poate realiza prin obiectele: a.Tables b. Queries c. Forms d. Reports 8. n bazele de date Microsoft-Access obiectele care permit afiarea (tiprirea) rezultatelor prelucrrii datelor n format de editare se numesc: a.Tables b. Queries c. Forms d. Reports 9. n bazele de date Microsoft-Access obiectele organizate din aciuni care se execut la declanarea unui eveniment se numesc: a. Macros b. Queries c. Forms d. Reports 10. n bazele de date Microsoft-Access obiectele care conin proceduri definite de utilizatori i editate n mediul de programare VBA se numesc: a.Tables b. Queries c. Macros d. Modules Rspunsurile corecte la ntrebrile din testul de tip gril: 1. b 2. a 3. c 4. c 5. a 6. b 7. c 8. d 9. a 3.10. Test de evaluare a cunotinelor Care sunt obiectele din care este alcatuita o baza de date MS-Access? Pentru ce se utilizeaza obiectele de tip Reports? 3.11. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i practice, Editura InfoMega, Bucureti, 2002 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 5. Sagman S. Microsoft OFFICE 2003 pentru Windows (Ghid de nvare rapid prin imagini), Editura Corint, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002 4. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002

10. d

5. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006

UNITATEA DE NVARE 4. GESTIUNEA OBIECTELOR TABLES.


Cuprins 4.1. Obiective 4.2. Competenele unitii de nvare 4.3. Crearea unui obiect de tip Table (tabela) 4.4 Stabilirea relatiilor intre tabele 4.5. Rezumat 4.6. Test de autoevaluare a cunotinelor 4.7. Test de evaluare a cunotinelor 4.8. Bibliografie 4.1. Obiective n aceast unitate de nvare se vor prezenta modurile de creare a unui obiect Table i de definire a relaiilor standard dintre obiecte Tables, operaiilee care se pot efectua cu nregistrrile din tabele si modul de efectuare a modificrii structurii unei tabele i de includere a unei tabele ntr-o baz de date. 4.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Cum se poate crea un obiect Table, folosind unul din modurile afiate n fereastra de dialog New Table; Cum se poate stabili tipul sau natura cmpurilor de date din structura nregistrrilor obiectului Table; Cum se pot specifica proprietile cmpurilor de date n funcie de specificul aplicaiilor. Durata de parcurgere a acestei uniti de nvare este de 3 ore. 4.3. Crearea unui obiect de tip tabel ncepnd cu versiunea Microsoft Office 2007, interfata grafica a aplicatiilor Office a fost modificata. Astfel, meniurile i grupurile de instrumente (toolbar) care erau plasate sub meniu n au fost nlocuite de o panglic (denummirea data de Microsoft acestei zone este Ribbon) cu scopul principal de a ajuta utilizatorii n a gsi rapid comenzile de care au nevoie la un moment dat. Comenzile sunt grupate logic in mai multe paneluri (tab) afisate pe ribbon. Fiecare tab continecomenzi aflate in legatura cu un anumit tip de operatii: de exemplu, formatarea textului, sortarea inregistrarilor unei tabele etc. Unele tab-uri sunt afisate doar in contextul lucrului cu un anumit tip de obiect. In figura 4.1 este afisata fereastra aplicatiei Access 2010 unde se poate identifica noua forma a interfetei grafice.

00:00

Figura 4.1 Noua interfata grafica a Microsoft Access 2010 Ms-Access permite crearea unei baze de date care poate conine pn la 32768 de tabele (tables) dintre care pot fi deschise simultan 254 tabele. Crearea unui tabel i includerea acesteia n baza de date MS-Access se poate realiza prin click pe meniul Create si alegerea uneia din urmatoarele optiuni: Table conduce la crearea tabelei in modul Datasheet; Table Design conduce la crearea tabelei in modul Design View;

Figura 4.2 Crearea unui tabel Alegerea optiunii Table conduce la crearea unui tabel in modul Datasheet View(fig.4.3)

Figura 4.3 Crearea tabelului in modul Datasheet O alta modalitate de creare a unui tabel este urmatoarea: din fereastra de dialog

Microsoft Access, afiat dup lansarea n execuie a produsului MS-Access: se selecteaz butonul Blank Database; se execut click-stnga pe butonul CREATE (fig. 4.4); din fereastra afiat All Accesss Objects, n care este selectat implicit grupul de obiecte Tables, unde automat a fost creat un tabel denumit Table1 (fig 4.5).

Figura 4.4 Crearea unui Tabel

Figura 4.5 Fereastra New Table Furnizati mai multe detalii privind crearea de tabele in Microsoft Access 2010. Folositi drept sursa de informare Internetul ........................................................................................................................................... ........................................................................................................................................... ...........................................................................................................................................

00:25

Exista mai multe moduri de creare a unei tabele : Datasheet, Design View, Import Table i Link Table. Acestea prezinta urmatoarele caracteristici. Modul Datasheet View permite realizarea simultan a dou obiective: crearea structurii tabelului, adic definirea cmpurilor de date; completarea tabelului cu date (nregistrri sau tupluri). Acest mod de creare a unei tabele se aseamn cu lucrul n Microsoft Excel, astfel c fiecare linie reprezint o nregistrare (un tuplu) din tabel. Dup definirea coloanelor se pot introduce imediat datele necesare pe linii i se salveaz tabelul n contextul ferestrei de dialog Save As. n consecin, modul Datasheet View se poate folosi pentru crearea de tabele simple, fr a permite stabilirea unor detalii (de exemplu, proprietile tabelei i / sau coloanelor). Modul Design View se poate folosi pentru crearea, ntr-un mod riguros, a unui tabel n fereastra Table (fig.4.6), permind: definirea cmpurilor de date care aparin structurii tabelului (nume cmp, tip date, eventual descriere cmp); specificarea proprietilor cmpurilor de date care au fost definite, n funcie de tipul de date coninute.

Figura 4.6 Crearea unei tabele in modul Design View Numele cmpului de date (Field Name) trebuie s fie unic n structura tabelului i s conin cel mult 64 caractere (din care se exclud caracterele ! . [ ] deoarece au semnificaii speciale n MS-Access). Exemple: Cod material Codmat CODMAT

00:50

Tipul de date (Data Type) se poate alege, n funcie de natura cmpului de date, dintr-o list care se afieaz efectund clik-stnga n coloana Data Type i apoi pe butonul derulant afiat. Descrierea cmpului de date (Description) este opional, ns este recomandabil s apar deoarece permite specificarea de informaii suplimentare referitoare la cmpul de date respectiv. Proprietile cmpului de date (Field Properties) se afieaz n partea de jos a ferestrei de dialog pentru crearea unui tabel n modul Design View. Aceste proprieti difer n funcie de tipul de date ales pentru fiecare cmp de date (atribut). Unele dintre proprietile de baz sunt comune pentru toate tipurile de date. Cu excepia proprietilor booleene, adica a acelora care permit doar doua valori true respective false - (Required, Allow Zero Length i Indexed), singurele proprieti care trebuie specificate sunt Field Size (pentru tipurile de date Text, Number i Autonumber) i New Values (pentru Autonumber). Celelalte proprieti disponibile sunt opionale. Aceste proprieti se gsesc n pagina General din partea de jos a ferestrei de dialog Table. Cea de a doua pagin este Lookup care, pentru unele tipuri de date (Text, Number i Yes/No), permite alegerea tipului de obiect vizual de control folosit pentru introducerea datelor n cmpul de date respectiv. Dup definirea cmpului de date i specificarea proprietilor acestor cmpuri urmeaz salvarea tabelului creat cu astfel de structur, avnd coninut vid. Salvarea tabelului se poate efectua n fereastra de dialog Save As, care se afieaz procednd n unul din urmtoarele trei moduri: printr-un clik pe opiunea Save din meniul File; printr-un clik pe pictograma Save de pe bara de instrumente standard; folosind combinatia de taste CTRL-S. Pe bara de text din fereastra de dialog Save As se afieaz un nume implicit pentru tabel, care poate fi acceptat sau nlocuit cu un alt nume dorit de utilizator. Dar nainte de salvarea tabelului trebuie stabilit cheia primar, care poate fi alctuit din unul sau mai multe cmpuri de date (atribute). Un tabel trebuie s conin o cheie primar pentru identificarea tuplurilor (inregistrarilor). Pentru aceasta se selecteaz campul de date (campurile de date) i apoi din bara de instrumentare standard se execut clik-stnga pe pictograma Primary Key. Cheia primar mai poate fi stabilit i cu opiunea Primary Key din meniul Edit. Dac utilizatorul nu a stabilit cheia primar pentru tabelul respectiv, atunci acesta va fi consultat de ctre MS-Access privind posibilitatea definirii unei chei primare n mod implicit prin introducerea automat a unui nou cmp de date n structura tabelului (cmp denumit ID). Pentru completarea tabelului cu nregistrri (tupluri) se selecteaz numele acesteia din grupul de obiecte Tables din fereastra de dialog Database afiat. Apoi se execut clik-stnga pe butonul de comand Open. n fereastra de dialog Table (avnd numele tabelului) afiat se introduc n cmpurile de date definite datele corespunztoare pentru fiecare nregistrare (tuplu). Dup terminarea introducerii acestor date se nchide fereastra de dialog Table, folosind unul din modurile cunoscute i se revine n fereastra de dialog Database. Modurile Import Table i Link Table sunt moduri care se pot folosi pentru crearea de tabele plecand de la date slavate intr-un alt format (cu ajutorul unei alte aplicatii). Astfel, se poate meniona c: modul Import Table permite importul de obiecte i date din surse externe, cum ar fi: Excel, XML, fiiere text sau din alte baze de date Access; modul Link Table permite crearea de legturi ntre baza de date curent i tabele din surse externe (oricare dintre cele menionate mai sus).

S ne reamintim... Microsoft Access permite crearea tabelelor in mai multe moduri: Datasheet View, Design View, Import Table respectiv Link Table. 4.4 Stabilirea relaiilor dintre tabele Posibilitatea de creare i folosire a relaiilor dintre tabelele unei baze de date constituie punctul forte al bazelor de date relaionale i al sistemelor de gestiune a bazelor de date relaionale, printre care i Microsoft Access. Pentru a avea acces simultan la datele din mai multe tabele ale unei baze de date este necesar s se stabileasc relaiile standard dintre aceste tabele, folosind cmpuri de date (atribute) cheie care sunt comune tabelelor pe care le leag. Aceste relaii trebuie s se stabileasc nainte de completarea tabelelor cu nregistrri (tupluri) i de formularea cererilor de interogare (Queries). Relaiile standard (de tip 11, 1n, mn) corespund unor legturi tipice dintre tabele i anume: relaiile de tip 11 se stabilesc n cazul n care unei nregistrri dintr-un tabel i corespunde o singur nregistrare dintr-un alt tabel, ceea ce nseamn c unei nregistrri a cmpului de date cheie primar dintr-un tabel i corespunde o singur nregistrare a unui cmp de date cu rol de cheie extern aparinnd nregistrrilor dintr-un alt tabel; relaiile de tip 1n se stabilesc n cazul n care unei nregistrri dintr-un tabel i corespund mai multe nregistrri dintr-un alt tabel, ceea ce nseamn c aceeai valoare a cmpului de date cheie primar dintr-un tabel se regsete ca nregistrare a cmpului de date cu rol de cheie extern n mai multe nregistrri dintr-un alt tabel; relaiile de tip mn se stabilesc ca asocieri libere, iar cmpurile de date cu rol de cheie primar au valori duplicate. Stabilirea relaiilor de tip 11 i 1n se bazeaz pe respectarea restriciilor de integritate referenial, restricii care garanteaz validitatea relaiilor existente ntre nregistrrile aparinnd la tabele diverse. Pentru stabilirea relaiilor dintre tabele este necesar s se deschid fereastra de dialog Relationships (fig.4.7). Aceast fereastr conine caseta de dialog cu bif denumit Enforce Referential Integrity (fig.4.7), care se activeaz cnd: cmpul de date din tabelul surs este o cheie primar; cele dou cmpuri de date sunt de acelai tip n cele dou tabele; cele dou tabele se gsesc n aceeai baz de date.

01:30 5

Figura 4.7 Crearea relatiilor intre tabele S ne reamintim... Relatiile intre tabele sunt de mai multe tipuri : 11, 1n, mn. Acestea se stabilesc inainte de introducerea datelor in tabele prin utlizarea optinuii Relationships din toolbarul aplicatiei Microsoft Access.

Folosirea optiunii Relationships conduce la: ........................................................................................................................................... ........................................................................................................................................... ...........................................................................................................................................

4.5. Rezumat In aceasta unitate de invatare am prezentat modalitatea de creare a unei tabele precum si modalitatea de stabilire a relatiilor intre tabele. Microsoft Access permite crearea tabelelor in mai multe moduri: Datasheet View, Design View, Table Wizard, Import Table respectiv Link Table. Pentru crearea relatiilor intre tabele se utilizeaza optiunea Relationships din toolbar-ul principal al aplicatiei.

01:50

4.6. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. Modul de creare a unui tabel care se aseamn cu lucrul n MS-Excel se numete: a. Design View b. Datasheet c. Table Wizard d. Import Table 2. Pentru crearea ntr-un mod riguros a unui tabel se poate folosi, din fereastra Table, opiunea: a. Datasheet b. Design View c. Table Wizard d. Import Table 3. Pentru crearea unui tabel prin importarea datelor din alta sursa de date: a. Design View b. Datasheet c. Table Wizard d. Import Table 4. Modurile Import Table i Link Table permit crearea de tabele baz de date folosind: a.sistemul Help b.meniul Help c.folosirea unor surse de date externe d.experii Access 5. Dup definirea cmpurilor de date ntr-un tabel din baza de date i specificarea proprietilor acestora, urmeaz operaia: a. completarea tabelului cu nregistrri b. deschiderea tabelului c. consultarea tabelului d. salvarea tabelului 6. Modificarea structurii unui tabel din baza de date implic folosirea, din fereastra de dialog Database, a opiunii: a. Open b. Design c. New d. Preview 7. Pentru definirea unei relaii dintre un tabel i alte tabele ale unei baze de date, tabelul trebuie s conin: a. o cheie primar b. un cmp de date c. o proprietate d. un tip de date 8. Dac la crearea unui tabel din baza de date nu a fost stabilit o cheie primar, atunci se poate introduce automat: a. un nou cmp de date ID b. o nou proprietate c. o nou nregistrare d. un nou obiect 9. Includerea unui tabel ntr-o baz de date se poate efectua n fereastra de dialog: a. Database b. Table c. Show Table d. Desing Table 10. Lungimea maxim a numelui unui cmp de date dintr-un tabel poate fi: a. 8 caractere b. 64 caractere c. 255 caractere d.1024 caractere

Rspunsurile corecte la ntrebrile din testul de tip gril: 1. b 2. b 3. c 4. d 5. d 6. b 7. a 8. a 9. a

10. b

4.7. Test de evaluare a cunotinelor Creati doua tabele denumite Produse, Furnizori cu urmatoarea schema: Produse(CodProdus:Numeric, DenumireProdus: Text, CodFurnizor:Numeric, Cantitate: Numeric)

Furnizori(CodFurnizor: Numeric, DenumireFurnizor: Text, Adresa: Text, CodFiscal: Text) Stabiliti apoi relatia (legatura) intre cele doua tabele. 4.8. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i practice, Editura InfoMega, Bucureti, 2002 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 5. Sagman S. Microsoft OFFICE 2003 pentru Windows (Ghid de nvare rapid prin imagini), Editura Corint, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002 4. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002 5. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006

UNITATEA DE NVARE 5. GESTIUNEA OBIECTELOR QUERIES


Cuprins 5.1. Obiective 5.2. Competenele unitii de nvare 5.3. Notiunea de interogare 5.4. Tipuri de interogari 5.5. Operatii cu obiecte de tip interogare 5.6. Modificarea unui obiect de tip interogare 5.7. Alte tipuri de interogari 5.8. Rezumat 5.9. Test de autoevaluare a cunotinelor 5.10. Test de evaluare a cunotinelor 5.11. Bibliografie 5.1. Obiective n aceast unitate de nvare se vor prezenta Conceptul de cerere (Query) i tipuri de cereri (Queries); Moduri de creare a unui obiect Query (n mod grafic, n mod implicit i n mod SQL); Operaiile care se pot efectua cu obiecte Queries; Modul de efectuare a modificrii structurii unui obiect Query ntr-o baz de date; Modul de efectuare a cmpurilor calculate i de includere n cererile de selecie. 5.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Cum se poate crea un obiect Query, folosind unul din modurile afiate n fereastra de dialog New Query; Cum se poate modifica structura unui obiect de tip Query n funcie de cerinele de interogare a bazei de date; Cum se pot realiza cmpurile calculate n cererile de selecie n funcie de specificul aplicaiilor. Cum se poate lucra cu diferite tipuri de obiecte Queries n contextul cerinelor de interogare a bazei de date. Durata de parcurgere a acestei uniti de nvare este de 3 ore. 5.3. Notiunea de interogare Interogarea unei baze de date Access nseamn: regsirea datelor nregistrate ntr-o tabel sau n mai multe tabele baz de date sau chiar ntr-o alt cerere; extragerea dintr-o tabel (cerere) sau din mai multe tabele (cereri) datele pe care utilizatorul intenioneaz s le prelucreze n cadrul unor aplicaii. Pentru efectuarea interogrilor n baza de date MS-Access pune la dispoziia utilizatorilor obiectele de tip cerere (Queries). Rezultatul unei interogri (cereri) se prezint sub forma unei foi de rspuns dinamic denumit DynaSet, care exist fizic att ct dureaz interogarea (cererea). Interogrile (cererile) sunt legate logic, astfel nct toate modificrile efectuate asupra unor date afiate ntr-o interogare (cerere) sunt operate i n tabela sau tabelele cu datele surs. O interogare (cerere) se poate folosi pentru:

00:00

regsirea datelor nregistrate ntr-o tabel sau n tabelele baz de date; efectuarea unor operaii de prelucrare (de exemplu, operaii de calcul) cu date din tabelele bazei de date; actualizarea datelor din baza de date, prin cereri de tip aciune; pregtirea adecvat a datelor din baza de date pentru a fi vizualizate i / sau tiprite sub form de formulare sau rapoarte; realizarea de reprezentri agrafice, avnd ca surs de date o tabel de sintez a datelor. Furnizati mai multe detalii pentru noiunea de interogare si rspuns dinamic. Folosii drept principal surs de informare Internetul. ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... 5.4 Tipuri de interogari n MS-Access exist patru tipuri de interogri (cereri): interogri de selecie; interogri de analiz ncruciat; interogri de aciune; interogri parametrizate. Interogrile de selecie permit utilizatorilor s extrag date dintr-o tabel sau din mai multe tabele baz de date i / sau din alte interogri i s efectueze i operaii de calcul. Interogrile de analiz ncruciat permit s sinteti-zeze datele i rezultatele obinute din calcule, sub forma unei foi de calcul tabelar. Interogrile de aciune permit s creeze noi tabele i s actualizeze baza de date. Interogrile parametrizate permit s efectueze modi-ficarea dinamic a criteriilor de cutare n baza de date. Cele mai frecvent folosite n aplicaiile utilizatorilor sunt interogrile de selecie a datelor din baza de date. S ne reamintim... Pentru efectuarea interogrilor n baza de date MS-Access pune la dispoziia utilizatorilor obiectele de tip cerere (Queries). In MS-Access exista 4 tipuri de interogari: de selectie, de analiza incrucisata, de actiune, parametrizate. 5.5 Operaii cu obiecte de tip interogare Cu obiectele de tip interogare (cerere) se pot efectua operaiile urmtoare: operaia de creare (construire); operaia de folosire (deschidere i afiare) a datelor; operaia de modificare (a definiiei cererii realizate prin operaia de creare). Crearea unui obiect de tip interogare. Aceast operaie se poate efectua: n mod grafic (cu interfa grafic); n mod SQL.

00:20

00:30 5

n MSAccess crearea unui obiect de tip interogare (cerere) pornete selectand Create din toolbar-ul aplicatiei apoi se selecteaza Query Wizard (activeaza asistentul de creare a interogarilor) sau Query Design (permite creare interogarilor in modul de

proiectare). Selectarea optiunii Query Wizard conduce la afisarea ferestrei din figura 5.1 unde se alege modalitatea de creare efectiv a obiectului query, dintre cele cinci variante afiate: Simple Query Wizard; Crosstab Query Wizard; Find Duplicates Query Wizard; Find Unmatched Query Wizard.

Figura 5.1 Fereastra New Query afind opiunile pentru crearea de obiecte Queries Simple Query Wizard - permite crearea de obiecte query simple, fr restricii i formulate pentru o singur tabel baz de date. Crosstab QueryWizard - permite crearea de obiecte query din tabele ncruciate. Find Duplicates Query Wizard - permite cutarea nregistrrilor duplicat. Find Unmatched Query Wizard permite cutarea nregistrrilor fr corespondent n cele dou tabele. Pentru crearea unui obiect query de selecie in modul de proiectare se alege Query Design din toolbar-ul aplicatiei. Dup activarea acestei opiuni se afieaz fereastra de creare a obiectului Query i peste aceasta fereastr Show Table (figura 5.2). Din structura ferestrei Show Table se poate observa c sursa de date pentru un obiect query este reprezentat de: una sau mai multe tabele baz de date; unul sau mai multe obiecte query; tabele i interogri (cereri) Access. Astfel, trebuie s se selecteze obiectul surs, apoi prin click pe butonul Add s l adauge n fereastra Select Query.

Figura 5.2 Fereastra Show Table afind tabelele pentru crearea unui obiect Query Dup precizarea sursei de date, se nchide fereastra Show Table cu un clik pe butonul Close de pe bara de titlu sau pe butonul de comand Close. Dac este, totui, necesar se poate redeschide fereastra Show Table printr-un click pe pictograma Show Table de pe bara de instrumente sau executnd opiunea Show Table din meniul Query. Fereastra Query este mprit n dou zone: zona superioar n care se poate vizualiza structura obiectului query, adic tabelele/interogrile surs de date i relaiile stabilite ntre acestea; zona inferioar, grila Query Design, alctuit din urmtoarele elemente structurale: o Field: pentru specificarea numelui cmpului de date selectat; o Table: pentru precizarea sursei de date; o Sort: pentru a preciza, dac este cazul, ordinea aranjrii nregistrrilor n funcie de cmpul de date selectat; o Show: pentru nhibarea, dac este cazul, a afirii nregistrrilor din cmpul de date selectat; o Criteria: pentru precizarea unor eventuale criterii de selecie prin folosirea unor expresii Acces corespunztoare; o Or: pentru a preciza criterii de selecie alternative, folosind operatorul Or. Dup specificarea sursei de date, definirea obiectului query de selecie implic parcurgerea unor etape de dialog n ordinea urmtoare: specificarea cmpurilor de date n funcie de care se va realiza selecia nregistrrilor, prin preluarea acestor cmpuri din bara derulant din rndul Field (zona inferioar); specificarea criteriului de selecie, prin introducerea unei expresii Access n

rndul Criteria, eventual i n rndul Or; expresia se poate tasta sau construi folosind generatorul de expresii (Expression Builder), care se activeaz cu un click pe opiunea Build de pe bara de instrumente; specificarea, dac este cazul, i a unei operaii de sortare a nregistrrilor selectate, prin activarea elementului Sort, apoi selectnd i executnd opiunea (sensul) de sortare. Dup definirea obiectului query urmeaz executarea acestui obiect (interogare sau cerere), prin selectarea optiunii Desing din meniul principal al Access apoi dintre modurile urmtoare: executnd cu clik pe pictograma View, de pe bara de instrumente; executnd un click pe pictograma Run de pe aceeai bar de instrumente; exectnd opiunea Datashect (View) din meniul View; S ne reamintim... Obiectele Query se pot creea in doua moduri: Query Design, modalitate care permite utilizatorului cea mai mare flexibilitate in definirea interogarii, si Query Wizard, optiune care activeaza asistentul specializat in crearea interogarilor. 5.6 Modificarea unui obiect de tip interogare Un obiect Query creat se poate modifica ulterior, operaie care const n: introducerea de cmpuri de date noi (coloane Field); tergerea unor cmpuri de date existente (deja definite); modificarea unui criteriu de selecie sau de sortare; modificarea opiunilor de afiare. Fiecare dintre aceste moduri se execut procednd astfel: un cmp de date nou se introduce selectnd cmpul naintea cruia se efectueaz introducerea, apoi executnd un click pe opiunea Insert Column din meniul Design; un cmp de date existent se terge selectnd cmpul n cauz, apoi apsnd tasta Delete sau executnd un click pe pictograma Cut de pe bara de instrumente, respectiv pe opiunea Delete Column din meniul Design.

01:30

Dup ce a fost proiectat i eventual modificat, o interogare (cerere) trebuie salvat, operaie care se poate executa cu opiunea Save din meniul File sau folosind combinatia de taste Ctrl-S. Dac operaia de salvare se efectueaz dup proiectare sau dup modificare (dac salvarea este condiionat) utilizatorul este invitat s introduc de la tastatur pe bara de text a ferestrei Save As, numele interogrii (cererii) i s selecteze de pe bara de derulare tipul acesteia; implicit numele atribuit de Access acestui obiect este Query n, unde n reprezint numrul obiectului, iar tipul este Query. Obiectele de tip selecie pot conine i cmpuri de date calculate. Astfel de cmpuri returneaz la executarea obiectului valoarea expresiilor Access asociate lor. O expresie n Access este alctuit din elementele urmtoare: operatori (aritmetici, de atribuire i comparare, logici, de concaternare i de identificare); constante (numerice; de tip text i dat calendaristic); identificatori (nume de obiecte (tabele, cmpuri de date, formulare etc)); funcii (dat calendaristic, text; matematice, financiare, funcii diverse). Expresiile MS-Access se pot folosi ntr-un obiect query de selecie drept

criteriu de selecie sau pentru a calcula anumii indicatori. Obiectele query de selecie pot returna nregistrri din tabele sau alte interogri de date care corespund nu numai unor anumite cereri ale cror criterii de selecie se pot preciza de utilizatori n funcie de cerinele lor. Astfel de criterii de selecie se introduc pe rndul Criteria, n locul unor expresii, sub form de mesaje incluse ntre paranteze drepte, care se afieaz n momentul executrii interogrii (cererii), ca s se poat introduce criteriile de selecie. De asemenea, obiectele query de selecie pot returna nregistrri din tabele sau interogri de date, nu numai n mod grafic, ci i n mod SQL. Astfel de obiecte, definite n mod grafic se pot converti ntr-un bloc de cerere SQL. Trecerea din modul Design n modul Datasheet (vizualizare) sau SQL se poate realiza din meniul View cu opiunea SQL View. 5.7 Alte tipuri de interogri n practica gestionrii bazelor de date MS-Access, utilizatorii mai pot folosi i alte tipuri de interogri (cereri), n funcie de anumite cerine i anume: interogri (cereri) de sintetizare a datelor; interogri (cereri) de cutare a nregistrrilor duplicate; interogri (cereri) de cutare a nregistrrilor (tuplurilor) fr corespondent; interogri (cereri) ncruciate; interogri (cereri) de tip aciune: o generatoare de tabele; o pentru adugare de nregistrri n tabele; o pentru tergerea de nregistrri din tabele; o pentru actualizarea de nregistrri din tabele. Interogarile reprezinta: ... ... ... 5.8 Rezumat Interogarea unei baze de date Access nseamn: regsirea datelor nregistrate ntr-o tabel sau n mai multe tabele baz de date sau chiar ntr-o alt cerere; extragerea dintr-o tabel (cerere) sau din mai multe tabele (cereri) datele pe care utilizatorul intenioneaz s le prelucreze n cadrul unor aplicaii. n MS-Access exist patru tipuri de interogri (cereri): interogri de selecie; interogri de analiz ncruciat; interogri de aciune; interogri parametrizate.

02:20

02:50

n MSAccess crearea unui obiect de tip interogare (cerere) pornete selectand Create din toolbar-ul aplicatiei apoi se selecteaza Query Wizard (activeaza asistentul de creare a interogarilor) sau Query Design (permite creare interogarilor in modul de proiectare).

5.9. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. Obiectele MS-Access care conin proceduri definite de utilizator i scrise n se numesc: a. Queries b. Forms c. Reports d. Modules VBA

2. Obiectele definite de utilizator care reprezint expresia modelului relaional al bazei de date MS-Access se numesc: a. Reports b. Forms c. Queries d. Tables 3. Obiectele prin care utilizatorul poate extrage din baza de date MS-Access numai datele necesare prelucrrii se numesc: a. Tables b. Queries c. Forms d. Reports 4. Obiectele care permit introducerea datelor de la tastatur n baza de date Access, vizualizarea lor etc., se numesc: a. Tables b. Queries c. Forms d. Reports MS -

5. Obiectele care permit formatarea i afiarea datelor din baza de date MS -Access sub form de documente se numesc: a. Tables b. Queries c. Forms d. Reports 6. Obiectele MS-Access organizate structural din aciuni care se execut la declanarea unui eveniment se numesc: a. Queries b. Forms c. Reports d. Macros 7. Pentru realizarea interogrilor SGBD, MS-Access pune la dispoziia utilizatorilor: a. Tables b. Queries c. Forms d. Reports 8. Rezultatul realizrii unei interogri se prezint sub forma unei foi de rspuns dimamic denumit: a. DynaSet b. Crosstab c. Criteria d. Column 9. Funcia de creare de noi tabele i de actualizare a bazei de date se numesc cereri: a. de selecie b. de aciune c. de analiz ncruciat d. Parametrizate 10. Obiectele bazelor de date Access prin care se pot efectua aplicaii n modul interfa QBE se numesc: a. tabele b. interogri c. formulare d. rapoarte Rspunsurile corecte la ntrebrile din testul de tip gril: 1. d 2. d 3. b 4. c 5. d 6. d 7. b 8. a 9. b 10. b 5.10. Test de evaluare a cunotinelor Care sunt tipurile de interogari care se pot crea in MS-Access? Care sunt subtipurile interogarii de tip actiune?

5.11. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i practice, Editura InfoMega, Bucureti, 2002 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 5. Sagman S. Microsoft OFFICE 2003 pentru Windows (Ghid de nvare rapid prin imagini), Editura Corint, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002 4. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002 5. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006

UNITATEA DE NVARE 6. GESTIUNEA OBIECTELOR FORMS


Cuprins 6.1. Obiective 6.2. Competenele unitii de nvare 6.3. Definirea si clasificarea formularelor 6.4. Crearea si modificarea formularelor 6.5. Structura formularelor 6.6. Proprietatile formularelor 6.7. Controalele in formulare 6.8. Proprietatile controalelor 6.9. Formulare/Subformulare 6.10. Rezumat 6.11. Test de autoevaluare a cunotinelor 6.12. Test de evaluare a cunotinelor 6.13. Bibliografie 6.1. Obiective n aceast unitate de nvare se vor prezenta: modurile de creare a unui obiect Form i de definire a elementelor vizuale (controale); avantajele oferite de folosirea obiectelor de tip Form, pentru actualizarea datelor din obiectele Tables; clasificraea obiectelor Forms dup criteriile: sursa de date, modul de afiare, modul de interaciune; proprietile obiectelor Forms pe categorii (Format, Data, Event, Other) i a modului de setare pentru a fi preluate n formulare i subformulare. 6.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Cum se poate crea un obiect Form, folosind unul din modurile afiate n fereastra de dialog New Form; Cum se poate modifica structura unui obiect de tip Form n funcie de cerinele de gestiune a bazei de date; Cum se pot seta (stabili) proprietile obiectelor Forms n funcie de specificul aplicaiilor; Cum se poate lucra cu formulare i subformulare n funcie cerinele de gestiune a bazei de date. Durata de parcurgere a acestei uniti de nvare este de 3 ore. 6.3. Definirea i clasificarea formularelor Formularele (Forms) sunt machete (ferestre) folosite pentru efectuarea de operaii tipice (curente) cu datele din tabelele bazei de date i anume: adugri de nregistrri (tupluri) n tabelele bazei de date MS-Access; tergeri de nregistrri (tupluri) din tabelele bazei de date MS-Access; modificri privind coninutul unor nregistrri din tabelele bazei de date; consultri privind datele din nregistrrile tabelelor bazei de date. Pentru efectuarea acestor operaii un formular (form) trebuie s conin diferite

00:00

elemente grafice (obiecte vizuale) denumite controale. Furnizati mai multe detalii pentru noiunea de controale grafice. Folosii drept principal surs de informare Internetul. ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... Folosirea formularelor pentru actualizarea datelor din tabelele bazei de date are avantaje semnificative fa de actualizarea n mod direct, prin deschiderea acestora (modul Open) din fereastra bazei de date. Astfel de avantaje sunt: existena unei interfee prietenoase, realizat prin diferite controale (butoane, casete de text etc) sau prin alte elemente grafice; posibilitatea definirii unor reguli de validare suplimentare celor definite la nivelul tabelelor (de exemplu, restriciile impuse de necesitatea corelrii datelor din tabelele diferite; posibilitatea actualizrii mai multor tabele printr-un singur formular, operaie realizabil folosind subformulare. Formularele se pot clasifica dup diferite criterii: a) dup sursa de date: formulare legate (bound) care permit afiarea sau actualizarea datelor din tabelele bazei de date; formulare nelegate (unnbound) care sunt destinate pentru afiarea sau editarea unor date care nu sunt stocate n tabelele bazei de date; astfel de formulare se folosesc de obicei pentru: afiarea de mesaje; vizualizarea unor informaii despre sistem; preluarea datelor pentru afiarea unui raport etc; b) dup modul de afiare: formulare singulare (single forms), care afieaz numai nregistrarea curent; formulare continui (continuous forms), care permit afiarea mai multor nregistrri; formulare foaie de calcul (datasheet forms), care afieaz datele din nregistrri ca ntr-o foaie de calcul (pe linii i coloane); formulare de tip grafic (chart forms), care afieaz datele din nregistrri sub form de grafic; c) dup modul de interaciune: formulare modale sau de dialog, care permit accesarea obiectelor existente numai n ferestre nchise (closed) sau ascunse (hiden); formulare nemodale, care permit s se activeze i alte ferestre. n fereastra de dialog All Access Objects, formularele sunt afiate n grupa de obiecte Forms. n aceast fereastr cu formularele se pot executa operaii prin trei butoane de comand: New, pentru crearea unui nou formular; Design, pentru modificarea unui formular existent; Open, pentru deschiderea unui formular existent i afiarea datelor coninute. 6.4 Crearea i modificarea formularelor Crearea unui formular (form) Pentru crearea unui formular nou se procedeaz astfel: Din meniul principal se alege optiunea Create;

00:40

Din toolbar-ul Form (fig. 6.1) se selecteaz una din opiunile (variantele) disponibile afiate: FORM, dac crearea formularului nu va fi asistat de Access; Form Wizard, dac crearea formularului este asistat de Access prin Wizard; AutoForm:Columnar, dac MS-Access va genera automat un formular singular (single form); AutoForm: Tabular, dac Access va genera automat un formular continnu (continuous form); AutoForm: Datasheet, dac MS-Access va genera automat un formular foaie de calcul (datasheet); Chart Wizard, dac crearea formularului de tip grafic (chart) va fi asistat de Access prin Wizard; Pivot Table Wizard, dac crearea formularului va include o tabel pivot generat de programul Excel prin asistare Wizard.

Figura 6.1. Toolbar-ul Form afind opiunile pentru crearea unui obiect Form Fiecare dintre opiuni (variante) implic parcurgerea n unor etape determinante i efectuarea unor operaii specifice. Opiunea (varianta) Design View este folosit mai puin, implicnd generarea unui formular gol, n care utilizatorul trebuie s i defineasc controalele proprii. Astfel, cmpurile de date din sursa de date se pot afia prin preluarea acestora, folosind tehnica drag and drop, din fereastra afiat Field List (opiunea Field List din meniul View sau pictograma cu acelai nume de pe bara de instrumente) i depunerea n interiorul formularului (de regul n Detail). n practic, opiunea folosit frecvent este Form Wizard. Folosirea acestei opiuni (variante) implic, atunci cnd sursa de date este o tabel, procedura urmtoare: Din fereastra afiat FormWizard (fig. 6.2) se selecteaz cmpurile de date din sursa de date, care vor fi afiate pe formular, acionnd butonul cu simbolul > sau >>; Se acioneaz butonul Next > i din lista afiat se alege tipul de formular i anume: Columnar, Tabular, Datasheet, Justified, care este nsoit i de modul de afiare a datelor; Se acioneaz din nou butonul Next i din lista afiat, care conine o diversitate de stiluri de afiare, se selecteaz stilul dorit (implicit Standard); Se acioneaz n continuare butonul Next i n bara de text afiat se definete titlul formularului (implicit poate fi titlul sursei de date); Se acioneaz butonul Finish, avnd ca rezultat afiarea ferestrei preciznd modul n care va fi deschis formularul, pentru folosirea curent sau modificarea ulterioar.

Figura 6.2. Fereastra Form Wizard pentru crearea unui obiect Form

Figura 6.3. Fereastra Form Wizard forma grafic pentru crearea unui obiect Form Modificarea unui formular (form) Pentru modificarea unui formular existent se poate proceda astfel: Din fereastra All databse Objects se selecteaz grupa de obiecte Forms i apoi formularul; Se efectueaza click drepata pe numele formularului si se acioneaz butonul Design; n fereastra afiat Form se procedeaz la modificarea: structurii formularului; elementelor din structura formularului; proprietilor formularului.

S ne reamintim... Formularele se pot crea in mai multe moduri: FORM, dac crearea formularului nu va fi asistat de Access, Form Wizard, dac crearea formularului este asistat de Access prin Wizard, AutoForm:Columnar, dac MS-Access va genera automat un formular singular (single form), AutoForm: Tabular, dac Access va genera automat un formular continnu (continuous form), AutoForm: Datasheet, dac MS-Access va genera automat un formular foaie de calcul (datasheet), Chart Wizard, dac crearea formularului de tip grafic (chart) va fi asistat de Access prin Wizard, Pivot Table Wizard, dac crearea formularului va include o tabel pivot generat de programul Excel prin asistare Wizard. 6.5 Structura formularelor Un formular Access este o fereastr Access, care ca orice fereastr n sistemele Windows conine elementele structurale definitorii. Astfel de elemente ale unui formular (Design) sunt urmtoarele: a) Elemente comune (standard) ale ferestrei: Title bar (bara de titlu), care conine: meniul sistem, titlul formularului i butoanele: minimizare, maximizare/ restaurare, nchidere; Border (bordura sau chenarul), care delimiteaz formularul pe ecran; Scroll bars (barele de defilare), pe vertical i pe orizontal; b) Elemente specifice ferestrei formular (seciuni form): Form Header (antetul formularului), care conine titlul formularului sau alte informaii despre folosirea formularului; afiarea acestui element depinde de tipul formularului (dup modul de afiare); Page Header (antetul de pagin), care se afieaz numai cnd formularul este tiprit la imprimant; totui n timpul proiectrii acest element se poate afia validnd opiunea Page Header/Footer din meniul View; Detail (detaliu), care conine toate controalele necesare afirii/editrii nregistrrilor din formular; Page Footer (subsolul de pagin), care conine data curent, numrul de pagin i alte informaii; acest element este afiat numai la tiprirea formularului; Form Footer (subsolul formularului), care este asemntor cu elementul Page Header, conine diferite informaii (totalul general, controalele etc); Navigation Buttons (butoane de navigare), care pot fi folosite pentru deplasarea n cadrul nregistrrilor din formular; acest element este afiat numai n timpul consultrii formularului (n modul Open). S ne reamintim... Elemente specifice ferestrei formular sunt:antetul formularului, antetul de pagina, zona de detaliu, subsolul de pagina, subsolul formularului si butoane de navigare.

01:30 5

01:30

6.6 Proprietile formularelor Formularele, ca i alte obiecte ale unei baze de date Access (tables, queries, reports etc), sunt descrise printr-un set de proprieti i metode. Proprietile formularelor sunt disponibile: n timpul proiectrii formularelor (n modul Design) prin fereastra Form/Properties, care se poate afia prin activarea opiunii Properties din meniul View sau executnd pe pictograma Properties de pe bara de instrumentare; n timpul consultrii formularelor (n modulul Open) prin obiectele de tip macro

(Macros) sau prin limbajul VBA. Metodele de descriere a formularelor pot fi disponibile, att n cursul proiectrii, ct i n cursul consultrii, numai prin obiecte macro sau prin limbajul VBA. n fereastra Form/Properties, proprietile formularului curent sunt afiate n cadrul unor grupe distincte: Format, care conine proprieti referitoare la dimen-siune, aspect, coordonate de afiare etc; Data, care conine proprieti referitoare la sursa de date i la nregistrrile aferente; Event, care conine evenimentele ce pot fi tratate prin obiecte de tip macro sau prin limbajul VBA; Other, care conine diverse alte proprieti; All, care conine toate proprietile care sunt aferente formularelor. Stabilirea (setarea) unei proprieti se poate efectua prin: tastarea valorii respective a proprietii; selectarea valorii respective dintr-o list derulant; folosirea asistentului Access, cnd este disponibil, prin activarea pictogramei Build (Wizard) afiat pe bara de instrumente. 6.7 Controalele n formulare Controalele, denumite i elemente vizuale, sunt obiecte de tip grafic, incluse n formulare sau rapoarte, n scopul editrii/afirii datelor sau executrii unor operaii (exemplu, lucrul cu etichete, cu casete de text, cu butoane etc). Includerea controalelor n formulare sau rapoarte este posibil numai atunci cnd sunt create sau modificate, astfel: se execut opiunea Toolbox din meniul View sau se activeaz pictograma Toolbox de pe bara de instrumente; din fereastra Toolbox afiat se selecteaz butonul aferent controlului dorit de utilizator; se descrie cu mouse-ul o suprafa dreptunghiular n interiorul formularului, pentru a defini poziia i dimensiunea controlului respectiv. Controalele se pot clasifica dup diferite criterii: a) Dup rolul ndeplinit: controale pentru editarea i afiarea datelor (exemple: casetele text, etichetele etc); controalele pentru executarea unor aciuni (exemplu: butonul de comand); controale pentru afiarea graficelor (exemple: imagini, obiecte cadru etc.); b) Dup sursa de date: controale legate (bounds); sunt controale care afieaz datele din cmpuri (exemplu: o caset de text ce va actualiza cmpul Dat factur din tabela Factur); controale nelegate (unbounds); sunt controale indepen-dente de realizrile cmpurilor; nu permit actualizarea lor; c) Dup structur: controale elementare (exemple: butoane, casete text etc); controale container, care nglobeaz alte controale (exemple :grup de opiuni, Control Tag etc). 6.8 Proprietile controalelor Proprietile unui control sunt afiate n fereastra Properties, atunci cnd controlul respectiv este selectat. La fel ca la formulare, metodele controalelor sunt disponibile numai prin intermediul obiectelor macro sau modulelor VBA. Dintre proprietile controalelor se pot meniona:

02:20

02:35

proprieti din categoria Format: Format, Decimal Places, Caption, Visible, Left, Top, Width, Height, etc.; proprieti din categoria Data: Control Source, Input Mask, Default Value, Validation Rule, Validation Text, Enabled, Locked; proprieti din categoria Event, care conin denumirile funciilor, procedurilor, evenimentelor sau macro-urilor; cele mai folosite sunt: Before Update, Change, Enter, Exit; alte proprieti: Name, Status Bar Text, Tab Stop, Tab Index, Control Tip Text. Pentru crearea unor controale complexe (exemple: casete combinate, casete de tip list etc), utilizatorul poate fi asistat de programele control wizards. 6.9 Formulare/subformulare Subformularele au rolul de a actualiza mai multe tabele prin intermediul unei singure ferestre (formular). Subformularele sunt create n general pentru anumite tabele dependente (tabele n care cmpul de date comun este cheia extern), din cadrul unei relaii de tip1-n. Un formular se poate ngloba (include) n cadrul altui formular, primul devenind subformular, iar al doilea formular principal. Un formular poate conine oricte subformulare, dar un subformular poate conine, la rndul su, cel mult un alt subformular; sunt admise maxim trei niveluri de imbricare a formularelor. Folosirea subformularelor ofer utilizatorilor unele avantaje: posibilitatea actualizrii mai multor tabele dintr-un singur formular; posibilitatea sincronizrii automate a subformularului cu formularul principal, operaie care const n: actualizarea automat a cmpului cheie extern din subformular, cu valoarea existent n cmpul cheie primar din formularul principal, filtrarea automat a nregistrrilor din subformular, n funcie de valoarea cheii primare din formularul principal. Proprietatile formularelor sunt urmatoarele: ... ... ...

02:45

02:55

6.10 Rezumat Formularele (Forms) sunt ferestre folosite pentru efectuarea de operaii tipice cu datele din tabelele bazei de date: adugri de nregistrri, tergeri de nregistrri, modificri privind coninutul unor nregistrri din tabelele bazei de date, consultri privind datele din nregistrrile tabelelor bazei de date. Formularele se pot clasifica dup diferite criterii: dup sursa de date, dup modul de afiare, dup modul de interaciune. Formularele, ca i alte obiecte ale unei baze de date Access (tables, queries, reports etc), sunt descrise printr-un set de proprieti i metode. Controalele, denumite i elemente vizuale, sunt obiecte de tip grafic, incluse n formulare sau rapoarte, n scopul editrii/afirii datelor sau executrii unor operaii (exemplu, lucrul cu etichete, cu casete de text, cu butoane etc). Subformularele au rolul de a actualiza mai multe tabele prin intermediul unei singure ferestre (formular).Subformularele sunt create n general pentru anumite tabele dependente (tabele n care cmpul de date comun este cheia extern), din cadrul unei

relaii de tip1-n.

6.11. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. Obiectele MS-Access folosite pentru actualizarea datelor din tabelele unei baze de date MS-Access se numesc: a. Queries b. Forms c. Reports d. Modules 2. Obiectele definite ca formulare i subformulare ale bazei de date MS-Access se numesc: a. Reports b. Forms c. Queries d. Tables 3. Obiectele prin care utilizatorul poate actualiza datele din mai multe tabele ale unei baze de date MS-Access se numesc: a. Tables b. Queries c. Forms d. Reports 4. Obiectele care permit introducerea datelor de la tastatur n tabelele unei baze de date MS-Access, se numesc: a. Tables b. Queries c. Forms d. Reports 5. Obiectele care permit vizualizarea singular a datelor din bazele de date MS-Access, nregistrare dup nregistrare, se numesc: a. Tables b. Queries c. Forms d. Reports 6. Obiectele MS-Access organizate structural din formulare i subformulare, pe mai multe nivele, se numesc: a. Queries b. Forms c. Reports d. Macros 7. Pentru introducerea datelor n tabelele unei baze de date, nsoit de operaii de validare, MS-Access pune la dispoziia utilizatorilor obiectele: a. Tables b. Queries c. Forms d. Reports 8. Rezultatul includerii unui formular ntr-un alt formular se prezint sub forma unei structuri denumit: a. structur ierarhic b. structur paralel c. coloan d. rnd 9. Opiunea de creare a unui obiect Form, prin proiectarea de ctre utilizator fr asisten wizard, se numete: a. Design View b. Form Wizard c. Chart Wizard d. Pivot Table Wizard 10. Selectarea sursei de date pentru crearea unui obiect de tip Forms este obligatorie dac se folosesc opiunile: a. Design View b. Form Wizard c. Auto Form d. Chart Wizard Rspunsurile corecte la ntrebrile din testul gril: 1. b 2. b 3. c 4. c 5. c 6. b 7. c 8. a 9. a 10. a

6.12. Test de evaluare a cunotinelor Care este rolul subformularelor? Care sunt propeitatile controalelor? Dar ale formularelor? 6.13. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i practice, Editura InfoMega, Bucureti, 2002 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 5. Sagman S. Microsoft OFFICE 2003 pentru Windows (Ghid de nvare rapid prin imagini), Editura Corint, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002 4. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002 5. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006

UNITATEA DE NVARE 7. GESTIUNEA OBIECTELOR REPORTS


Cuprins 7.1. Obiective 7.2. Competenele unitii de nvare 7.3. Notiuni generale 7.4. Crearea si modificarea rapoartelor 7.5. Afisarea si tiparirea raportelor 7.6. Proprietatile rapoartelor 7.7. Proprietatile sectiunilor din rapoarte 7.8. Controle calculate 7.9. Rezumat 7.10. Test de autoevaluare a cunotinelor 7.11. Test de evaluare a cunotinelor 7.12. Tema de cotrol 7.13. Bibliografie 7.1. Obiective n aceast unitate de nvare se vor prezenta: Definirea specificului obiectelor Reports i prezentarea modurilor de creare a unor astfel de obiecte n efectuarea de aplicaii cu baze de date MS-Access; Prezentarea particularitilor obiectelor de tip Report n gestiunea bazelor de date MS-Access; Prezentarea clasificrii obiectelor Reports n funcie de diferite criterii (dup sursa de date, dup modul de afiare); Prezentarea proprietilor obiectelor Forms pe categorii (Format, Data, Event, Other) i a modului de setare pentru a fi preluate n rapoarte i seciuni de rapoarte. 7.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Cum se poate crea un obiect Report, folosind unul din modurile afiate n fereastra de dialog New Report; Cum se poate modifica structura unui obiect Report n funcie de cerinele de gestiune a bazei de date; Cum se pot seta (stabili) proprietile obiectelor Reports n funcie de specificul aplicaiilor; Cum se poate lucra cu rapoarte i seciuni de rapoarte n funcie cerinele de gestiune a bazei de date. Durata de parcurgere a acestei uniti de nvare este de 3 ore. 7.3. Noiuni generale Rapoartele sunt obiecte ale bazelor de date Access destinate pentru afiarea/tiprirea datelor i/sau rezultatelor prelucrrii acestor date din tabele sau cereri de interogare. Prin coninutul i forma de prezentare, rapoartele sunt produsele finite ale aplicaiilor cu obiecte ale bazelor de date Access. n consecin, spre deosebire de formulare, datele din rapoarte nu pot fi editate. Rapoartele se pot clasifica dup diferite criterii:

00:00

Dup sursa de date: rapoarte legate (bound), care conin date provenind din tabele sau cereri de interogare; rapoarte nelegate (unbound), care nu sunt asociate unor surse de date, fiind folosite, de regul, ca nite containre pentru subrapoarte construite din tabele i/sau interogri ntre care nu au fost definite relaii; Dup forma de afiare: rapoarte de tip Columnar, n care se afieaz datele din nregistrri pe o singur coloan; rapoarte de tip Tabular, care afieaz datele din fiecare cmp de date ntr-o coloan distinct; rapoarte de tip Chart, care conin diferite tipuri de grafice, folosite ca form de reprezentare a datelor. Rapoartele au o structur asemntoare cu aceea a formularelor, existnd elemente comune i anume: Seciunile din formulare sunt prezente i n rapoartele ce conin elementele: Report Header/Footer, care conine date ce se afieaz pe prima pagin, respectiv ultima pagin; Page Header/Footer, care conine date ce se afieaz la nceputul, respectiv sfritul fiecrei pagini; Detail, n care se afieaz nregistrrile din sursa de date a raportului; Controalele folosite pentru proiectarea formularelor sunt disponibile, n general, i pentru crearea rapoartelor; Subrapoartele pot fi definite n acelai mod n care sunt definite formularele. ntre rapoarte i formulare exist i deosebiri, care, n principal, sunt urmtoarele: rapoartele sunt obiecte ale bazei de date Access destinate numai pentru afiarea sau tiprirea de date sau de rezultate ale prelucrrii acestor date din tabele i/sau interogri, deci coninutul rapoartelor nu poate fi editat; unele dintre controalele folosite pentru proiectarea formularelor nu sunt funcionale i pentru crearea rapoartelor (de exemplu, butoanele de comand, casetele list, etc), deoarece nu au nici un fel de utilitate n cadrul rapoartelor; proprietile din categoria Event nu sunt disponibile pentru controale, ci pentru rapoarte i seciunile din rapoarte. Furnizati mai multe detalii clasificarea rapoartelor. Folosii drept principal surs de informare Internetul. ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... 7.4 Crearea i modificarea rapoartelor 00:40 Crearea rapoartelor Crearea rapoartelor constituie o activitate tipic de exploatare a unei baze de date MS-Access care, ca i n cazul formularelor, poate s fie permanent asistat de wizard. Astfel create, rapoartele satisfac, n general, i cele mai complexe cerine ale utilizatorilor, aa nct sunt foarte rare situaiile n care este necesar modificarea unui raport generat n mod automat.

Pentru crearea unui raport se poate proceda astfel: Din fereastra afiat Open se selecteaz sursa (baza) de date; Din toolbar-ul CREATE se acioneaz butonul de comand Report (fig.7.1);

Figura7.1. Toolbar-ul Create afind grupul de obiecte Reports Din fereastra New Report se selecteaz i se execut una din opiunile (variantele) urmtoare (fig.7.2): Report Design, dac crearea raportului se execut fr asisten Wizard, adic de ctre utilizatorul nsui; Report Wizard, dac crearea raportului este asistat de Wizard, ndrumnd utilizatorul pentru efectuarea aciunilor necesare (alegerea cmpurilor de date, gruparea datelor etc.); Dintre aceste opiuni cea mai frecvent folosit n practic este Report Wizard, deoarece utilizatorul are posibilitatea s selecteze cmpurile de date care vor fi afiate n raport, s aleag formatul de afiare a datelor etc.

Figura 7.2. Fereastra Report Wizard Pentru crearea unui raport, folosind opiunea Report Wizard, se procedeaz astfel: Din fereastra afiat Report Wizard se selecteaz cmpurile de date din sursa de date care trebuie incluse n raport, folosind butoanele de selecie cu simbolul >,

respectiv >> apoi se acioneaz butonul de comand Next> (fig.7.2); Din aceeai fereastr afiat Report Wizard se definesc cmpurile de date n funcie de care se vor grupa datele n raport (sunt admise cel mult trei niveluri de grupare), apoi se acioneaz butonul de comand Next >; Din fereastra Report Wizard, din casetele de text cu butoane de derulare, se aleg cmpurile de date n funcie de care vor fi sortate datele, n sens cresctor sau descresctor, n cadrul grupurilor stabilite anterior (se admit cel mult patru cmpuri de sortare). n continuare, se acioneaz butonul de comand Summary Options, dac utilizatorul intenioneaz s se calculeze anumii indicatori n sumar (sintetici), sau butonul de comand Next >, dac nu dorete s se calculeze astfel de indicatori. Dac s-a acionat butonul Summary Options, din fereastra afiat Summary Options se aleg indicatorii de sumarizat (Sum, Avg, Min, Max) i cmpurile de date n funcie de care s se efectueze sumarizarea datelor, se precizeaz modul de afiare (n detaliu i sumar, numai n sumar) i se valideaz, dac este cazul, calcularea ponderii subtotalurilor n cadrul totalului, apoi se acioneaz butonul de comand OK, avnd ca efect reafiarea ferestrei Report Wizard. Dac nu s-a acionat butonul de comand Summary Options, ci butonul de comand Next > se menine afiat fereastra Report Wizard; Din fereastra Report Wizard se stabilete modul de afiare/tiprire a raportului, selectnd din cele ase moduri prestabilite modul dorit de utilizator (modul implicit este Stepped (n trepte, pe total i subtotaluri)). n aceast etap se mai poate selecta modul de aranjare n pagin a raportului (Portrait aranjare n pagin orientat vertical, respectiv Landscape aranjare n pagin orientat orizontal). De asemenea, n aceast etap utilizatorul mai poate opta pentru modificarea limii cmpurilor de date, astfel nct toate coloanele raportului s ncap n pagin, activnd caseta de validare Adjust the field width so all field fit on a page. Aceast etap se ncheie prin acionarea butonului de comand Next >. Din aceeai fereastr afiat Report Wizard se alege stilul de afiare i/sau tiprire a raportului din cele ase stiluri predefinite (stilul implicit este Corporate (corporativ, constituit, organizat)). Aceast etap se ncheie acionnd butonul de comand Next >; Din fereastra nc afiat Report Wizard se stabilesc ultimele detalii ale raportului: titlul raportului (implicit acest titlu este cel al sursei de date), previzionarea raportului sau modificarea proiectrii raportului etc. Aceast etap, i implicit procedura de creare a raportului, se ncheie acionnd butonul de comand Finish. Dup parcurgerea acestor etape ale procedurii de creare a unui obiect Report, folosind opiunea (varianta) ReportWizard, pe ecranul monitorului se afieaz raportul cu elementele structurale stabilite. Raportul poate fi ulterior tiprit la imprimant ca orice alt document, cu opiunea Print din meniul File sau activnd pictograma Print. Crearea rapoartelor folosind opiunea Design View este puin folosit n practic, deoarece solicit utilizatorul s desfoare o activitate laborioas. Totui, dac se folosete aceast opiune, rezultatul obinut este generarea unnui raport gol, n care utilizatorul poate crea controale pentru fiecare cmp de date, controale calculate etc. S ne reamintim... Crearea unui raport se poate efectua in doua moduri: Report Design, dac crearea raportului se execut fr asisten Wizard, respectiv Report Wizard, dac crearea raportului este asistat de Wizard, ndrumnd utilizatorul pentru efectuarea aciunilor necesare (alegerea cmpurilor de date, gruparea datelor etc.);

7.5 Afiarea i tiprirea rapoartelor Pentru afiarea i vizualizarea unui obiect Report se procedeaz astfel: Dintre numele rapoartelor afiate n grupul de obiecte Reports se selecteaz numele raportului care trebuie afiat; Dintre cele trei butoane de selecie se acioneaz prin click dreapta butonul Open/Preview, dup care se afieaz pe ecran raportul n cauz. Aceast procedur se poate folosi att cnd raportul este deschis n modul Open, ct i n modul Design. Pentru tiprirea la imprimant a unui raport se poate proceda astfel: Dac raportul este nchis, atunci se selecteaz grupul de obiecte Reports, apoi numele raportului de tiprit, dup care se activeaz opiunea Print din meniul File sau Print de pe bara de instrumente; Dac raportul este deschis n modul Design sau n modul Preview, atunci se poate folosi opiunea Print din meniul File sau pictograma Print de pe bara de instrumente.

01:30 5

Figura 7.3 Ferestra Reports 7.6 Proprietile rapoartelor Ca i n cazul formularelor, proprietile rapoartelor se pot stabili (seta) prin intermediul ferestrei Properties, iar metodele asociate unui raport pot fi disponibile numai prin intermediul obiectelor de tip macro (macros) sau de tip module VBA (modules). Proprietile folosite frecvent n rapoarte se pot grupa n categoriile: Format (Page Header, Page Footer, Picture); Data (Record Source, Filter, Filter On, Order By On); Event (Open, Close, No Data); Other (Records Locks, Fast Laser Printing.

01:50

7.7 Proprietile seciunilor din rapoarte Cele mai importante proprieti sunt din categoriile: Format: Force New Page (None, Before Section, After Section, Before & 02:10 After Eveniment: o Format o Print o Retreat 7.8 Controale calculate Ca la formulare, controalele calculate sunt create prin nscrierea expresiei de calcul n proprietatea Control Source. Exemple: = [Stoc-iniial] + [Intrri] [Ieiri] expresie pentru calcul stocului final i afiarea n raport a rezultatului obinut; = [Stoc-final]*[Pre-unitar] expresie pentru calculul valorii stocului final i afiarea n raport a rezultatului. Subtotalurile Se obin parcurgnd etapele urmtoare: Se afieaz fereastra Sorting an Grouping executnd opiunea View-Sorting and Grouping din meniul Access; Se selecteaz cmpul (cmpurile) n funcie de care se grupeaz datele n coloana Field/Expresion; Se selecteaz una din proprieti sau ambele proprieti GroupHeader i GroupFooter pe valoarea Yes; Se creaz o caset text n zona subsol (footer) a grupului; Se selecteaz proprietatea Control Source a noului control cu expresia = Sum ( [Nume Cmp] ) Se seteaz proprietatea Running Sum a casetei text pe valoarea No. Totalurile generale Se obin prin crearea unei casete text cu aceleai proprieti ca ale casetei descris anterior, n zona de subsol a raportului (ReportFooter). Proprietatile raportelor sunt urmatoarele: ... ... ... 7.9 Rezumat Rapoartele sunt obiecte ale bazelor de date Access destinate pentru afiarea/tiprirea datelor i/sau rezultatelor prelucrrii acestor date din tabele sau cereri de interogare. Rapoartele au o structur asemntoare cu aceea a formularelor, avnd urmatoarele sectiuni: Report Header/Footer, care conine date ce se afieaz pe prima pagin, respectiv ultima pagin; Page Header/Footer, care conine date ce se afieaz la nceputul, respectiv sfritul fiecrei pagini;

02:20

02:55

Detail, n care se afieaz nregistrrile din sursa de date a raportului; Crearea unui raport se poate efectua in doua moduri: Report Design, dac crearea raportului se execut fr asisten Wizard, respectiv Report Wizard, dac crearea raportului este asistat de Wizard Ca i n cazul formularelor, rapoartele au o serie de proprietati care se pot stabili (seta) prin intermediul ferestrei Properties. 7.10. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. Obiectele MS-Access folosite pentru vizualizarea datelor din tabelele unei baze de date MS-Access se numesc: a. Queries b. Forms c. Reports d. Modules 2. Obiectele definite ca documente editate ale bazei de date MS-Access se numesc: a. Reports b. Forms c. Queries d. Tables 3. Obiectele prin care utilizatorul poate s editeze datele din mai multe tabele, sub form de documente, ale unei baze de date MS-Access se numesc: a. Tables b. Queries c. Forms d. Reports 4. Obiectele unei baze de date MS-Access, care nu pot fi editate se numesc: a. Tables b. Queries c. Forms d. Reports 5. Obiectele MS-Access organizate structural sub form de documente i seciuni de documente pentru a fi tiprite, se numesc: a. Queries b. Forms c. Reports d. Macros 6. Pentru editarea datelor din tabele ale unei baze de date, nsoit de operaii de calcul, MS-Access pune la dispoziia utilizatorilor obiectele: a. Tables b. Queries c. Forms d. Reports 7. Opiunea de creare a unui obiect Report, prin proiectarea de ctre utilizator fr asisten MS-Access, se numete: a. Design View b. Report Wizard c. Chart Wizard d. Label Wizard 8. Obiectele MS-Access care pot fi definite ca produse finite ale aplicaiilor cu baze de date se numesc: a. Queries b. Forms c. Reports d. Modules 9. Folosind obiecte Reports, asupra tabelelor dintr-o baz de date MS-Access se pot efectua operaii de: a. creare b. consultare c. modificare d. tiprire 10. Obiectele de tip Reports, pe care utilizatorul poate s le proiecteze singur, sunt rezultatul folosirii, la crearea lor, a opiunii: a. Design View b. Form Wizared c. Auto Form d. Chart Wizard Rspunsurile corecte la ntrebrile din testul gril: 1. d 2. a 3. d 4. d 5. c 6. d 7. a 8. c 9. d 10. a

7.11. Test de evaluare a cunotinelor Care este rolul raportelor? Care sunt proprietatile raportelor? Cum se afiseaza si se tipareste un raport? 7.12 Tema de control 1. Se consider o structur de date alctuit din atributele: Cod_material de tip Number, Denumire_material de tip Text, Pre_unitar de tip Number, Stoc_initial de tip Number. Se cere: S se creeze un obiect Table cu numele Stocuri, avnd cmpurile de date menionate mai sus; S se modifice structura obiectului Table, definit mai sus, adugnd un nou cmp de date denumit Unitate_msur de tip Text dup cmpul de date Denumire_material. S se defineasc restriciile referitoare la domeniul de valori pentru cmpul de date Unitate-msur la valorile: kg, to, ml, buc. S se defineasc restriciile referitoare la domeniul de valori pentru cmpul de date Stoc-initial i pre_unitar la valori pozitive. S se defineasc restriciile referitoare la domeniul de valori pentru cmpul de date Denumire material: lungime maxima de 35 caractere, valori nenule. S se defineasca cheia primara a relatiei ca fiind campul cod_material. S se creeze un formular pentru afisarea/editarea datelor din tabela Stocuri. 2. Se consider obiectul de tip Table cu numele Contract (Numr_contract Number, Data_ncheierii Date, Data_expirrii Date, Modaliti_plat Text, Termen plat Date, Cod furnizor Number). Se cere: S se proiecteze un obiect Report denumit RaportContracte pentru afiarea nregistrrilor din tabela Contract ordonate dup cmpurile de date: Cod furnizor i Numr contract. Plecnd de la raportul anterior s se s se creeze alt raport numit RaportContracte1, astfel nct s permit afiarea contractelor ncheiate pe o perioad ce va fi precizat la execuia raportului. S se proiecteze un raport numit RaportContracte2 care s permit afiarea nregistrrilor din tabela Contract pentru care data_ncheirii este cuprins ntre 1octombrie-2009 i 10-decembrie-2009.

7.13. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i practice, Editura InfoMega, Bucureti, 2002 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 5. Sagman S. Microsoft OFFICE 2003 pentru Windows (Ghid de nvare rapid prin imagini), Editura Corint, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002 4. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002 5. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006

UNITATEA DE NVARE 8. GESTIUNEA OBIECTELOR MACROS


Cuprins 8.1. Obiective 8.2. Competenele unitii de nvare 8.3. Prezentare generala 8.4. Crearea unui obiect macro 8.5. Actiuni programabile in obiecte macro 8.6. Grup de obiecte macro 8.7. Rezumat 8.8. Test de autoevaluare a cunotinelor 8.9. Bibliografie 8.1. Obiective n aceast unitate de nvare se vor prezenta: Definirea specificului obiectelor Macros n contextul efecturii automate de aciuni, eventual condiionate, n aplicaiile utilizatorilor; Cunoaterea modului de creare a unor astfel de obiecte pentru efectuarea unor aciuni de automatizare a aplicaiilor cu baze de date MS-Access. 8.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Cum se pot folosi obiectele Macros pentru efectuarea n mod automat a unor aplicaii de gestiune a bazelor de date MS-Access; Cum se integreaz obiectele Macros n cadrul unor aplicaii complexe cu baze de date MS-Access. Durata de parcurgere a acestei uniti de nvare este de 2 ore. 8.3. Prezentare general Un obiect de tip macro este: identificat printr-un nume; alctuit dintr-o mulime de aciuni de executat; Obiectul Macro care are ca scop efectuarea automat a unor operaii asupra unor obiecte din bazele de date MS-Access. Un obiect de tip macro se poate executa n mai multe moduri: la deschiderea bazei de date ACCESS, dac are numele Autoexec; la lansarea n execuie a comenzii Run Macro din meniul DATABASE Tools; la acionarea unei taste de declanare asociat obiectului macro; la declanarea evenimentului Click asupra unui buton de comand legat de obiectul macro; la lansarea n execuie a comenzii rapide Run la efectuarea unui click- drepata cu mouse-ul asupra numelui unui obiect Macro din fereastra Database Objects; Furnizati mai multe detalii privind notiunea de executare a obiectelor macro. Folosii drept principal surs de informare Internetul. ........................................................................................................................................... ...........................................................................................................................................

00:00

........................................................................................................................................... 8.4 Crearea unui obiect macro Un obiect macro se poate crea prin executarea comenzii (opiunii) Macro din meniul Create (fig. 8.1). 00:20

Figura 8.1. Toolbar-ul Create afind grupul Macro Pentru a crea un obiect macro, n oricare din aceste dou moduri este necesar ca nti s se selecteze grupul de obiecte (seciunea) Macro din toolbar-ul CREATE (fig.8.1) Dup declanarea operaiei de creare a obiectului macro, pe ecran se afieaz fereastra Macro cu numele implicit Macro urmat de un numr (fig.8.2).

Figura 8.2 Fereastra Macro TOOLS cu seciunile pentru crearea unui obiect Macro Fereastra de dialog Macro conine: a) seciunea din stanga ferestrei care contine lista actiunilor ce intra in alcatuirea obiectului Macro, fiecare actiune fiind insotita de o serie de argumente b) sectiunea din stanga ferestrei unde sunt prezentate toate actiunile (Catalogul actiunilor fereastra Action Catalog) ce pot fi folosite in cadrul obiectelor Macro, grupate pe categorii. La crearea obiectului de tip macro utilizatorul poate s condiioneze executarea unor aciuni selectate. Pentru aceasta este necesar ca aceste actiuni sa se includa intrun grup de executie conditionata ce poate fi creat folosind optiunea IF din catalogul de

actiuni se selecteaza Program Flow- If. Dup ce a fost creat obiectul macro, coninnd aciuni, setul de argumente i, eventual, condiiile de execuie a unor aciuni, urmeaz salvarea obiectului macro, prin executarea opiunii Save as din meniul File sau pictograma Save de pe bara de instrumente i atribuirea acestui obiect un nume. Condiionarea executrii unei aciuni se realizeaz, de regul, prin referire la valorile anumitor controale folosind sintaxa urmtoare: Nume-grup-obiecte!nume-obiect!nume-control Numele grupului de obiecte este specificat prin cuvintele rezervate MS-Access: Forms pentru formulare; Reports pentru rapoarte. Exemplu: Forms!Stocuri!Codmat n acest exemplu controlul l reprezint Codmat din formularul Stocuri inclus n grupul de obiecte (seciunea ) Forms. Dac numele controlului conine spaii, atunci este necesar s fie ncadrat ntre paranteze drepte. Exemplu: Forms!Stocuri![cod mat] n procesul de execuie a obiectelor, Access-Macros verific validitatea aciunilor descrise, iar dac depisteaz existena unor aciuni euate (Action Failed), atunci afieaz un mesaj care indic sursa erorii. S ne reamintim... Un obiect de tip macro este alctuit dintr-o mulime de aciuni de executat. Obiectul Macro care are ca scop efectuarea automat a unor operaii asupra unor obiecte din bazele de date MS-Access. 8.5 Aciuni programabile n obiecte macro 01:05 MS-Access dispune de o multitudine de aciuni care pot fi programate de utilizatori. Dintre astfel de aciuni se pot meniona: a) aciuni pentru deschiderea obiectelor de nivelul nti (tabele, interogri, formulare); se programeaz pe structura: Open Table Argumentele aciunii: Table Name - alegerea tabelei din lista derulant View - alegerea uneia din variantele posibile: Data Sheet/Design/Print Preview Data Mode - alegerea din posibilitile: Add/Edit/Read Only. Obs: Opiunile subliniate sunt implicite. Pentru a deschide alte clase de obiecte: OpenQuery, OpenForm, OpenReport,

OpenModule se pot programa diverse aciuni pe structuri aproximativ asemntoare cu cele ale obiectelor de nivelul nti. b) aciuni de nchidere a obiectelor de nivelul nti; se programeaz pe structura: Close Argumentele aciunii: Object Type - alegerea tipului de obiecte de nchis Object Name - alegerea din lista obiectelor din clasa tipului ales Save, Yes sau No c) aciunea de export sau import din baza de date (TransferDatabase); d) aciunea de afiare a unor casete de dialog (MsgBox); e) aciunea de trimitere de obiecte prin reeaua Internet (SendObject); f) aciuni pentru executarea: - unei aplicaii (RunApp) - unei funcii scrise n limbajul VBA (RunCode); - unei comenzi (RunCommand); - unei instruciuni macro (RunMacro); - unei comenzi SSQL (RunSSQL); g) aciunea de atribuire de valoare unui control (SetValue); h) aciunea de afiare a unei bare de instrumente definite de utilizator (Show Toolbar); i) aciunea de ieire din aplicaia Access (Quit). Studiati care sunt actiunile care se pot include intr-un obiect de tip Macro. Aceste actiuni le puteti gasi in fereastra Action Catalog. Folositi facilitatea Help a produsului MS-Access pentru a obtine o descriere a acestor actiuni. 8.6 Grup de obiecte macro 01:40 Un obiect macro poate conine: o succesiune de aciuni care alctuiesc un obiect macro; mai multe succesiuni de aciuni (separate sau nu printr-o linie) identificate printr-un nume de macro. A doua structur implic ca un obiect macro s conin un grup de comenzi. Aceasta determin reducerea numrului de obiecte de tip macro ntr-o baz de date. Un grup de macrocomenzi se creeaza selectand Program Flow->Group din fereastra Action Catalog urmata apoi de introducerea numelui grupului de comenzi si a actiunilor propriu-zise care alcatuiesc grupul. Obiectele Macro se pot utiliza si in cadrul formularelor pentru a permite declanarea unor aciuni la producerea unor evenimente care vizeaz formularele sau controalele din cadrul acestora sau pentru crearea unor meniuri personalizate asociate formularelor. Folosirea obiectelor macro poate permite realizarea automat a unor aciuni care vizeaz rapoartele, ca de exemplu: deschiderea i, eventual, tiprirea rapoartelor, nchiderea rapoartelor (aciunea Close) etc. Obiectele macro se pot asocia unor butoane de comand care se pot include n bare cu instrumente personalizate sau bare cu instrumente integrate.

Actiunile programabile in cadrul obiectelor Macro sunt urmatoarele: ... ... ... 8.7 Rezumat Obiectul Macro care are ca scop efectuarea automat a unor operaii asupra unor obiecte din bazele de date MS-Access. Un obiect Macro este alcatuit dintr-o serie de actiuni predefinite. Aceste actiuni pot: deschide sau inchide obiecte ale bazei de date (tabele, formulare, rapoarte etc.), exporta sau importa date in/din baza de date, realiza operatii de comunicare cu utilizatorul etc. Obiectele Macro pot contine grupuri de actiuni care se pot executa conditionat. 01:50

8.8. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. Obiectele alctuite dintr-o mulime de aciuni de executat, fiecare aciune fiind reprezentat printr-o linie se numesc: a. Queries b. Forms c. Reports d. Macros 2. Obiectele care au ca scop efectuarea automat a unor operaii asupra unor alte obiecte din bazele de date MS-Access se numesc: a. Macros b. Forms c. Queries d. Reports 3. Un obiect care se poate executa la deschiderea bazei de date MS-ACCESS, dac are numele Autoexec, se numete: a. Queries b. Forms c. Macros d. Reports 4. La executarea unui click pe butonul New n fereastra Database, nu se poate afia fereastra: a. New Table b. New Query c. New Form d. New Macro 5. La crearea unui obiect Macro aciunile se pot selecta dintr-o: a. list derulant b. fereastr c. caset d. seciune 6. La crearea unui obiect Macro referirile la aciunile selectate se introduc n: a. coloana Action b. coloana Comment c. coloana Condition d. seciunea Action Arguments 7. Dup ce a fost proiectat, obiectul Macro poate fi lansat n execuie: a. nainte de a fi salvat b. dup ce a fost salvat c. oricnd d. salvarea obiectului este implicit 8. n fereastra Macro, la crearea unui grup macro, coloana care apare n plus fa de crearea unui obiect macro este coloana: a. Macro Name b. Condition c. Action d. Comment 9. La crearea unui obiect macro numele grupului de obiecte se specific prin:

a. cuvinte definite de utilizator b. cuvinte rezervate Access c. cuvinte cheie d. nume explicite 10. Obiectele MS-Access alctuite din aciuni care se execut condiionat sunt: a. obiecte Forms b. obiecte Reports c. obiecte Pages d. obiecte Macros Rspunsurile corecte la ntrebrile din testul gril: 1. d 2. a 3. c 4. d 5. a 6. b 7. b 8. a 9. b 10. d 8.9. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i practice, Editura InfoMega, Bucureti, 2002 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 5. Sagman S. Microsoft OFFICE 2003 pentru Windows (Ghid de nvare rapid prin imagini), Editura Corint, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002 4. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002 5. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006

UNITATEA DE NVARE 9. INTRODUCERE IN LIMBAJUL SQL


Cuprins 9.1. Obiective 9.2. Competenele unitii de nvare 9.3. Tipuri de instructiuni SQL 9.4. Elementele limbajului SQL 9.5. Instructiuni SQL 9.6. Rezumat 9.7. Test de autoevaluare a cunotinelor 9.8. Tema de control 9.9. Test de evaluare a cunotinelor 9.10. Bibliografie 9.1. Obiective n aceast unitate de nvare se vor prezenta regulile de sintax i conveniile de notare pentru editarea corect a instruciunilor SQL si exemple de utilizare a instruciunilor SQL; 9.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Care sunt principalele tipuri de instructiuni SQL; Cum se poate folosi limbajul neprocedural SQL pentru definirea datelor; Cum se poate folosi limbajul neprocedural SQL pentru selectia si manipularea datelor Durata de parcurgere a acestei uniti de nvare este de 3 ore. 9.3. Modelul relaional al datelor SQL este un limbaj pentru interogarea bazelor de date care permite pe lng manipularea i regsirea datelor i executarea unor operaii complexe privind administrarea bazei de date. SQL este un limbaj standardizat, standardul n acest domeniu fiind creat de ANSI i ISO. Toate SGBD-urile relaionale implementeaz pri din limbajul standardizat, dar fiecare SGBD aduce n plus anumite extensii specifice. Ultimul standard n domeniul limbajului SQL a fost publicat n 2008. Instructiunile SQL se pot executa in urmatoarele moduri: Direct: se apeleaz direct instruciunile limbajului; ncorporarea unei instruciuni SQL ntr-un program scris ntr-un limbaj de programare (Visual Basic, Java, .); Limbajul SQL este un limbaj declarativ (neprocedural) ceea ce nseamn c utilizatorul specifica ceea CE dorete s obin, i nu CUM se obin informaiile solicitate. Limbajul SQL dispune de mai multe tipuri de instructiuni SQL:

00:00

Instruciuni pentru definirea datelor descriu structura bazei de date; Instruciuni pentru manipularea datelor : adaugarea, modificarea sau stergerea nregistrrilor; Instruciuni pentru selectia datelor permit consultarea bazei de date; Instruciuni pentru procesarea tranzactiilor; Instructuni pentru administrarea bazelor de date (creare de utilizatori, acordarea unor drepturi asupra obiectelor bazei de date etc);

SQL este un limbaj pentru interogarea bazelor de date care permite pe lng manipularea i regsirea datelor i executarea unor operaii complexe privind administrarea bazei de date.

9.4. Elementele limbajului SQL 00:15 Elementele care definesc limbajul SQL sunt: Instruciunea: este reprezent prin cuvinte rezervate/cheie : INSERT, SELECT, UPDATE, ...; Clauzele instruciunilor: definesc restricii asupra modului de executie a unei instructiuni; Exemple: WHERE, ORDER BY, GROUP BY, HAVING; Funcii predefinite (totalizatoare): SUM, MAX, MIN, AVG, COUNT; Operatorii: +, -, *, /, <, >, <=, >=, <>, LIKE, IN, BETWEEN, IS, AND, OR, NOT Exemplu : pret IS NULL, pret IS NOT NULL Denumire_produs LIKE R* Denumire_produs LIKE R? La crearea instructiunilor SQL trebuie respectate o serie de reguli: La finalul unei instruciuni se va pune caracterul ; (punct i virgul) Dac ntr-o instruciune apar cmpuri din mai multe tabele acestea se vor referi printr-o construcie de genul nume_tabela.[nume_camp] ntr-o list de valori elementele listei se separ prin , (virgul) ntr-o instruciune SQL irurile de caractere se ncadreaz ntre caracterele (apostrof) sau (ghilimele). Exemple: test, test Informaiile de tip dat calendaristic se n cadreaz ntre dou caractere #. Exemplu: #10/01/2009#

9.5 Instruciuni SQL Instructiuni SQL pentru definirea datelor. 00:30 Instructiunea pentru crearea unei baze date: CREATE DATABASE nume_bd; Exemplu: CREATE DATABASE excursii;

Instruciunea pentru crearea unei tabele: CREATE TABLE numele_tabelei(camp1 tip_de_data1 [NOT NULL][PRIMARY KEY], camp2 tip_de_data2 [NOT NULL] [.], .); Tipurile de date utilizate n SQL: o VARCHAR(n) o MEMO o NUMBER o INTEGER o DECIMAL o LOGICAL o DATE Exemplu: Creai tabela materiale(Cod_Material Int, Denumire_material C(25), Pret N, Cantitate N, cod_magazie Int) CREATE TABLE materiale(Cod_material INTEGER PRIMARY KEY, denumire_material VARCHAR(25), pret NUMBER, cantitate NUMBER); Instruciunea pentru modificarea structurii unei tabele: ALTER TABLE numele_tabelei ADD camp tip_de_data; Exemplu: ALTER TABLE materiale ADD cod_magazie INTEGER;

Instruciunea pentru tergerea unei tabele: DROP TABLE nume_tabela; Instructiunea pentru stergerea unei baze de date: DROP DATABASE nume_baza de date; Exemplu: Stergerea tabelei materiale: DROP TABLE materiale; Stergerea bazei de date; DROP DATABASE excursii; Instructiuni SQL pentru manipularea datelor Instruciunea pentru adugare de noi nregistrri ntr-o tabel: INSERT INTO nume_tabela VALUES (val1, val2, valn); sau INSERT INTO nume_tabela(camp1, camp2, ) VALUES (val1, val2, )

Exemplu: a) inserai n tabela materiale o nregistrare cu urmtoarele cmpuri: cod_material = 101, denumire_material = televizor, cantitate=120 INSERT INTO materiale(cod_material, denumire_material, cantitate) VALUES (101, televizor, 120); b) inserai n tabela materiale o nregistrare cu urmtoarele cmpuri: cod_material = 102, denumire_material=PC, cantitate=100, pret=1200, cod_magazie=12 INSERT INTO materiale VALUES(102, PC, 100, 1200, 12); Instructiunea pentru tergerea de nregistrri: DELETE FROM nume_tabela [WHERE conditie]; Exemplu: a) s se tearg din tabela materiale toate materialele care au pretul mai mic decat 100; DELETE FROM materiale WHERE pret<100; b) s se tearg din tabela materiale toate materialele care au pretul mai mic decat 100 i cantitatea mai mare dect 150; DETELE FROM materiale WHERE pret<100 AND cantitate>150; c) s se tearg din tabela materiale toate materialele care au pretul mai mic decat 100 sau cantitatea mai mare dect 125; DELETE FROM materiale WHERE pret<100 OR cantitate>125; Instruciunea pentru modificarea nregistrrilor: UPDATE nume_tabela SET camp1=val1, camp2=val2, . [WHERE conditie]; Exemplu: a) s se modifice preul tututor materialelor prin creterea lui cu 10%. UPDATE materiale SET pret=1.1*pret; b) s se modifice preul materialelor a cror denumire ncepe cu TV prin creterea lui cu 15%. UPDATE materiale SET pret=1.15*pret WHERE denumire_material LIKE TV*; c) pentru toate materialele a cror denumire se termin cu TV preul va scade cu 15% iar cantitatea va scade cu 12%. UPDATE materiale SET pret=0.85*pret, cantitate=0.88*cantitate WHERE denumire_material LIKE *TV;

Instructiuni pentru selectia datelor : - Instruciuni de selecie simple SELECT [domeniu] lista_ de_campuri FROM lista_de_tabele [WHERE conditie] [ORDER BY camp ASC|DESC]; Parametrul domeniu poate lua urmtoarele 2 valori: ALL, DISTINCT. ALL nseamn c n rezultatul instruciunii se vor include toate nregistrrile care satisfac criteriul de selecie, n timp ce DISTINCT are ca efect eliminarea nregistrrilor care conin duplicate n cmpurile selectate. Lista de cmpuri cuprinde toate cmpurile ce vor apare n rezultatul interogrii i se poate specifica n mai multe moduri: - camp1, camp2, camp3, - nume_tabela1.camp1, .. - camp1 AS alias1, camp2 AS alias2, Lista de tabele reprezint tabelele de unde se vor selecta datele i se poate specifica n urmtoarele moduri: - nume_tabela1, nume_tabela2, . - nume_tabela1 AS alias1, nume_tabela2 AS alias2, . Clauza WHERE se utilizeaz pentru a specifica o condiie care va sta la baza seleciei nregistrrilor. Clauza ORDER BY permite sortarea rezultatelor cresctor sau descresctor. Exemple: Fie tabela stocuri(denumire C(15), cod_material N, UM T(3), pret N, cod_depozit N). a) S se afiseze coninutul acestei tabele SELECT * FROM stocuri; b) S se afiseze o list cu urmtoarele trei coloane ce conine toate materiale din tabela stocuri denumire um pret ========================== SELECT denumire, um, pret FROM stocuri; c) S se afiseze o list cu urmtoarele trei coloane ce conine materiale a cror unitate de msura este kg denumire um pret ========================== SELECT denumire, um, pret FROM stocuri WHERE um=kg; d) Se cere o list cu mrfurile aflate n stoc n depozitele 2 i 3, pentru care exist un pre de desfacere; SELECT denumire, um, pret FROM stocuri WHERE cod_depozit IN (2,3) AND pret IS NOT NULL;

01:30

sau SELECT denumire, um, pret FROM stocuri WHERE (cod_depozit=2 OR cod_depozit=3) AND pret IS NOT NULL; e) Se cere o list cu mrfurile aflate n stoc n depozitele 2 i 3, pentru care exist un pre de desfacere; Lista va avea trei coloane cu urmtoarele denumiri: Material UnitateMasura PretProdus ============================== SELECT denumire AS Material, um AS UnitateMasura, pret AS PretProdus FROM stocuri WHERE (cod_depozit=2 OR cod_depozit=3) AND pret IS NOT NULL; f) s se afiseze toate materialele n ordine cresctoare a pretului; SELECT * FROM stocuri ORDER BY pret ASC; g) s se afieze acele produse care au um=buc ordonate invers alfabetic dup denumire; SELECT * FROM STOCURI WHERE um=buc ORDER BY denumire DESC; h) s se afieze denumirea, pretul, um pentru acele materiale care au um = l sau m sau kg; SELECT denumire, pret, um FROM stocuri WHERE um IN (l, m, kg); sau SELECT denumire, pret, um FROM stocuri WHERE um=l OR um=m OR um=kg; Se consider tabela studenti(nume, prenume, an, grupa, media) a) se cere o list cu studentii din anul 2 si 3 al cror nume ncepe cu A, i au media cuprinsa intre 8 si 10, sortata alfabetic dupa nume. Lista va avea urmtoarele coloane: Nume Prenume Media =================================== SELECT nume, prenume, media FROM studenti WHERE an IN (2,3) AND nume LIKE A* AND media BETWEEN 8 and 10 ORDER BY nume ASC; Functii totalizatoare Funciile totalizatoare se mai numesc i funcii de grup deoarece ele acioneaz asupra tuturor cmpurilor dintr-o coloana a unei tabele sau asupra unor grupuri de cmpuri. Aceste funcii sunt SUM, AVG, MAX, MIN, COUNT.

Exemple de utilizare: a) se da tabela contracte(denumire_client, nr_contract, data_contract, val_contract) Se cere sa se afle numarul de contracte incheiate intre 1/1/2009 si 10/10/2009 SELECT COUNT(*) AS Numar_Contracte FROM contracte WHERE data_contract BETWEEN #1/1/2009# AND #10/10/2009#; Rezultatul va fi un tabel de genul: Numar_Contracte 12 b) se da tabela studenti(nume, prenume, an, grupa, nr_absente) se cere care este numarul total de absene SELECT SUM(nr_absente) AS TOTAL FROM studenti; Rezultat: TOTAL 250 Se cere numrul maxim de absente i numrul minim de absente pentru studentii studentii anului 2. SELECT MAX(nr_absente) AS NrMaxAbsente, NrMinAbsente FROM studenti WHERE an=2; Rezultatul: NrMaxAabsente 34 NrMinimAbsente 12 MIN(nr_absente) AS

c) se d tabela stocuri(denumire C(15), cod_material N, um C(3), pret N, cod_depozit N, stoc N). Se cere care este valoarea medie a stocului SELECT AVG(stoc) FROM stocuri; Cereri de interogare complexe Se va exemplifica gruparea datelor prin clauza GROUP BY i HAVING, aplicarea unor functii totalizatoare pe grupuri precum i interogri pe mai multe tabele. 02:15 Gruparea datelor, aplicarea funciilor totalizatoare pe grupuri Sintax: SELECT functie1(camp1) AS alias [, functie2(camp2) ] FROM tabela, GROUP BY camp [HAVING criteriu_selectie] [ORDER BY camp ASC|DESC]

Exemple: Se d tabela creante(denumire_client, val_datorie, data_scadentei); Se presupune ca tabela conine urmtoarele nregistrri: Denumire_client Val_datorie Data_scadentei ====================================================== AAA 700 1/10/2009 AAA 1000 2/10/2009 AAA 800 3/10/2009 BBB 2500 1/10/2009 BBB 3400 11/09/2009 AAA 3233 10/08/2009 BBB 5500 01/07/2009 CCC 2300 03/10/2009 Se cere care este datoria total pentru fiecare client in parte. SELECT denumire_client, SUM(val_datorie) FROM creante GROUP BY denumire_client; Rezultat: Denumire_client Val_datorie ==================================== AAA 5733 BBB 11400 CCC 2300 Se cere care este valoarea minim i maxim a datoriilor fiecrui client SELECT denumire_client, MAX(val_datorie) Asa Max, MIN(val_datorie) AS Min FROM creante GROUP BY denumire_client; denumire_client Max Min AAA 3233 700 BBB 5500 2500 CCC 2300 2300 Se cere generarea unei liste a clientilor care au datorii mai mari de 2000 de lei. SELECT denumire_client, SUM(val_datorie) AS Total_datorie FROM creante GROUP BY denumire_client HAVING SUM(val_datorie)>2000; Se d tabela Imobile(tip_imobil, val_asigurata, adresa). Se cere sa se construiasca o lista cu tipurile de imobile ce au valoare medie asigurata >30000

SELECT tip_imobil MediaValAsigurate FROM AVG(val_asigurata)>30000;

AS TipImobil, AVG(val_asigurata) AS imobile GROUP BY tip_imobil HAVING

Selecie pe mai multe tabele realizarea operaiei JOIN ntre tabele Se dau urmtoarele tabele: facturi(nr_factura, data_facturii, cod_furnizor, cota_tva) continut_factura(nr_factura, cod_material, cantitate, pret) furnizori(cod_furnizor, denumire_furnizor, adresa, banca, cont) materiale(cod_mateiral, denumire_material, um) a) Se cere o list cu facturile emise pentru fiecare client : Nr_factura data_facturii denumire_furnizor ======================================= SELECT facturi.nr_factura, facturi.data_facturii, furnizori.denumire_furnizor FROM facturi, furnizor WHERE facturi.cod_client=clienti.cod_client; n acest exemplu operaia ntre cele dou tabele a fost de tipul echiJoin. b) se cere o list de forma: nr_factura denumire_material pret cantitate ==================================== SELECT facturi.nr_factura, materiale.den_material, continut_factura.pret, continut_factura.cantitate FROM facturi, materiale, continut_facturi WHERE facturi.nr_factura=continut_factura.nr_factura AND continut_factura.cod_material=materiale.cod_material AND; Join extern stanga, join extern dreapta. Sintaxa: SELECT lista_campuri from tabela1 [LEFT OUTER|RIGHT OUTER] JOIN tabela2 ON criteriu_asociere [WHERE conditie][ORDER BY camp ASC|DESC] Se cere o lista cu toate materialele, chiar daca nu au intrri. SELECT Materiale.Denumire_Material, ContinutFactura.Pret, ContinutFactura.Cantitate FROM Materiale LEFT OUTER ContinutFactura ON Materiale.Cod_Material = ContinutFactura.Cod_Material; Subinterogri SELECT lista_campuri FROM tabela1 WHERE tabela1.camp=(SELECT camp JOIN

FROM tabela2 WHERE criteriu_selectie);

Se dau urmtoarele dou tabele: -furnizori(cod_furnizor, den_furnizor, adresa_furnizor) -materiale(cod_material, den_material, cod_furnizor, valoare) Se cere generarea unei situatii care sa contina informatii despre furnizorul care a livrat produse in valoare de 2500 lei. SELECT cod_furnizor, den_furnizor, adresa_furnizor FROM furnizori WHERE cod_furnizor=(SELECT cod_furnizor FROM materiale WHERE valoare=2500) Se d tabela masini(marca, tip, pret). Marca Tip Pret ================================ DACIA LOGAN 7000 DACIA SANDERO 8000 DACIA LOGAN 9000 FORD FIESTA 9000 FORD FOCUS 15000 Se cere generarea unei liste cu toate marcile care au pretul mediu mai mic dect pretul mediu general. Marca Pret Mediu =========================== DACIA 8000 SELECT marca, AVG(pret) FROM masini GROUP BY marca HAVING AVG(pret) < ( SELECT AVG(pret) FROM masini); 9.6 Reuniunea, intersectia i diferena tabelelor Instructiunea pentru realizarea reuniunii a doua tabele este: 02:40 SELECT lista_campuri FROM tabela1 UNION SELECT lista_campuri FROM tabela2 [GROUP BY camp][HAVING criteriu_selectie][ORDER BY camp ASC|DESC] Exemplu de utilizare: Se presupune existenta a doua 2 tabele: colaboratori2008, colaboratori2009 cu structura: (nume, prenume, varsta, categorie) Se cere o lista cu toti colaboratorii firmei ordonati alfabetic dupa nume. SELECT nume, prenume, varsta FROM colaboratori2008 UNION SELECT nume, prenume, varsta FROM colaboratori2009 ORDER BY nume; Care este media de varsta a colaboratorilor studenti din 2008, 2009?

SELECT AVG(varsta) FROM colaboratori2008 GROUP BY categorie HAVING categorie=student UNION SELECT AVG(varsta) FROM colaboratori2009 GROUP BY categorie HAVING categorie=student; Instructiunea pentru realizarea intersectiei a doua tabele este: SELECT lista_campuri FROM tabela1 INTERSECT SELECT lista_campuri FROM tabela2 [GROUP BY camp][HAVING criteriu_selectie][ORDER BY camp ASC|DESC] Exemplu de utilizare: Considerand tabelele definite mai sus, care sunt colaboratorii care au lucrat i n 2008 i n 2009? SELECT * FROM colaboratori2008 INTERSECT SELECT * FROM colaboratori2009; Instructiunea pentru realizarea diferentei a doua tabele este: SELECT lista_campuri FROM tabela1 MINUS SELECT lista_campuri FROM tabela2 [GROUP BY camp][HAVING criteriu_selectie][ORDER BY camp ASC|DESC] 9.7 Rezumat Cele mai importante instructiuni ale limbajul SQL pentru definirea datelor sunt: CREATE DATABASE nume_bd; CREATE TABLE numele_tabelei(camp1 tip_de_data1 [NOT NULL][PRIMARY KEY], camp2 tip_de_data2 [NOT NULL] [.], .); ALTER TABLE numele_tabelei ADD camp tip_de_data; DROP TABLE nume_tabela; DROP DATABASE nume_baza de date; Cele mai importante instructiuni ale limbajalui SQL pentru manipularea datelor sunt: INSERT INTO nume_tabela VALUES (val1, val2, valn); DELETE FROM nume_tabela [WHERE conditie]; UPDATE nume_tabela SET camp1=val1, camp2=val2, . [WHERE conditie]; Cele mai importante instructiuni ale limbajalui SQL pentru selectia datelor sunt:

SELECT [domeniu] lista_ de_campuri FROM lista_de_tabele [WHERE conditie] [ORDER BY camp ASC|DESC]; SELECT functie1(camp1) AS alias [, functie2(camp2) ] FROM tabela, GROUP BY camp [HAVING criteriu_selectie] [ORDER BY camp ASC|DESC] SELECT lista_campuri FROM tabela1 WHERE tabela1.camp=(SELECT camp FROM tabela2 WHERE criteriu_selectie); 9.8. Test de autoevaluare a cunostintelor (timp necesar 20 minute) 1. Instructiunea SQL: SELECT * from materiale where pret is not null; realizeaza: a. afisarea tuturor inregistrarilor din tabela materiale pentru care exista pret. b. afisarea tuturor inregistrarilor din tabela materiale care au pretul diferit de zero c. afisarea tuturor inregistrarilor din tabela materiale d. selectarea tabelei materiale si actualizarea pretului 2. Instructiunea SQL: UPDATE materiale SET pret=1.15*pret are ca efect: a. actualizarea tuturor preturilor prin cresterea lor cu 15% b. actualizarea tuturor preturilor prin scaderea lor cu 15% c. setarea tuturor preturilor la 15% din valoarea initiala d. nici un raspuns nu e corect 3. Pentru afisarea tuturor produselor a caror denumire incepe cu TV se foloseste urmatoarea instructiune: a. SELECT * FROM produse WHERE denumire=TV; b. SELECT * FROM produse WHERE denumire LIKE *TV; c. SELECT * FROM produse WHERE denumire LIKE TV*; d. SELECT * FROM produse WHERE denumire LIKE TV 4. O cerere de interogare pe mai multe tabele este expresia operatiei: a. JOIN b. UNION c. INTERSECT d. MINUS

Rspunsurile corecte la ntrebrile din testul de autoevaluare (tip gril): 1. a 2. a 3. c 4. a

9.9. Tema de control Se consifer obiectul Table cu numele Stocuri, avnd cmpurile de date urmtoare: - Cod_marf de tip Number; - Denumire_marf de tip Text, - Pre_unitar de tip Number - Stoc_existent de tip Number. Se cere: - Folosind mediul SQL, s se creeze un obiect Query cu numele Cerere1 n care s se adauge, dup cmpul de date Stoc_existent un cmp de date cu numele Valoare_stoc calculat cu relaia: Pre_unitar x Stoc_existent; - Folosind mediul SQL, s se adauge un filtru la structura obiectului Cerere1 astfel nct s poat afia numai nregistrrile care au n cmpul de date Denumire_marf valoarea portocale; - Folosind mediul SQL, s se modifice datele din cmpul de date Pret_unitar din obiectul Query, prin reducere cu 5% i apoi s se afieze coninutul obiectului. 9.10. Bibliografie I. Bibliografie obligatorie 1. Perkins Jeff, Morgan Bryan SQL fara profesor, in 14 zile, Editura Teora, 1997. 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 5. Sagman S. Microsoft OFFICE 2003 pentru Windows (Ghid de nvare rapid prin imagini), Editura Corint, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002 4. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002 5. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006

UNITATEA DE NVARE 10. GESTIUNEA OBIECTELOR QUERIES CU LIMBAJUL NEPROCEDURAL ACCESS-SQL


Cuprins 10.1. Obiective 10.2. Competenele unitii de nvare 10.3. Prezentare generala a limbajlui SQL 10.4. Microsoft-Access SQL 10.5. Etapele crerii i executrii interogrilor Access-SQL 10.6. Instruciuni pentru definirea datelor 10.7. Instruciuni de selecie a datelor 10.8. Instruciuni pentru manipularea datelor 10.9. Definirea cererilor SQL n MS-Access 10.10. Rezumat 10.11. Test de autoevaluare a cunotinelor 10.12. Test de evaluare a cunotinelor 10.13. Tema de control 10.14. Bibliografie 10.1. Obiective n aceast unitate de nvare se va prezenta o introducere in limbajul neprocedural SQL implementat de MS-Acces i contextul de folosire al sau ca mod de creare a obiectelor Queries, regulile de sintax i conveniile de notare pentru editarea corect a instruciunilor SQL, principalele grupe de comenzi n funcie de modul de folosire pentru lucrul cu obiecte Queries. 10.2. Competenele unitii de nvare Dup parcurgerea unitii vei fi n msur s rspundei la ntrebrile: Cum se poate folosi limbajul SQL in mediul Access pentru a gestiona obiecte Tables i obiecte Queries; Cum se pot edita corect comenzi i blocuri de selecie folosind limbajul neprocedural SQL in mediul Access; Cum se pot folosi corect construciile de limbaj SQL din principalele grupe de comenzi; Durata de parcurgere a acestei uniti de nvare este de 3 ore. 10.3. Prezentare general Access-SQL SQL (Structured Query Language) este unul dintre cele mai puternice limbaje de programare structurate folosite pentru interogarea bazelor de date relaionale, fiind implementat de aproape toate sistemele orientate pe gestiunea bazelor de date relaionale. Limbajul SQL a fost creat pe la nceputul anilor 70 n laboratoarele de cercetare ale firmei IBM pentru implementarea modelului relaional al lui E. F. Codd. Astfel, n anul 1976 a fost publicat sintaxa complet a SQL-ului, care a fost adoptat de ANSI (American National Standards Institute), iar n anul 1986, ca limbaj standard pentru lucrul cu baze de date relaionale. SQL este un limbaj de programare neprocedural deoarece utilizatorul descrie numai informaiile pe care vrea s le obin n urma interogrii bazelor de date, fr a fi necesar s stabileasc modul de a ajunge la rezultatele ateptate. n consecin, SQL poate fi considerat ca un limbaj

00:00

din de aplicaie, fiind orientat pe mulimi. Ca atare, SQL este un limbaj simplu i accesibil acelor utilizatori interesai de gestionarea bazelor de date relaionale. Pe plan mondial, exist un anumit grad de standardizare a limbajului SQL, n sensul c mai multe sisteme de gestiune a bazelor de date recunosc principalele instruciuni SQL (de exemplu Oracle, MS-Access etc). Totui, standardul n domeniu este considerat standardul ANSI, care se refer att la aspectele de definire, interogare, procesare a datelor, a tranzaciilor, ct i la caracteristicile privind integritatea informaiilor, la cursoarele derulante sau jociunile externe. Cu toate acestea, firme care produc sisteme de gestiune a bazelor de date ofer extensii proprii ale limbajului SQL. Furnizati mai multe detalii pentru noiunea de SQL i comparai MYSQL, MSSQL, Oracle. Folosii drept principal surs de informare Internetul. . . . 10.4. Microsoft Access-SQL 00:15 Acess-SQL oferit de Microsoft difer, n unele aspecte, de standardul ANSI n sensul c, pe de o parte, nu conine instruciuni legate de securitate i acces concurent (de exemplu, COMMIT, GRANT, LOCK) sau instruciuni DDL (Data Definition Language) pentru definirea datelor dar pe de alt parte, include instruciunea TRANSFORM i declaraia PARAMETERS. De asemenea, sistemul de gestiune a bazelor de date Microsoft Access ncepnd cu versiunea 2000 accept folosirea limbajului de interogare SQL, n gestiunea bazelor de date de tip MS-Access. Astfel, prin tehnica (interfaa) grafic QBE, informaia definit pe grila QBE este transformat automat ntr-o instruciune SQL. Deci, se poate afirma c, Access-SQL este conceput mai mult pentru crearea interogrilor de selecie. MS-Access ofer utilizatorilor posibilitatea de a folosi instruciuni SQL n diferite situaii, ca de exemplu: nlocuirea unor interogri ale bazei de date cu instruciunea SELECT, simplificnd baza de date (va conine mai puine obiecte), ns micornd viteza de regsire a datelor; crearea unor tipuri de interogri a bazei de date numai cu instruciuni SQL (de tip Union, de definire a datelor, de comunicare cu alte baze de date). n MS-Access instruciunile SQL se pot introduce n dou moduri: n fereastra de dialog SQL View, deschis n modul de lucru Design View al unei interogri, din care se alege comanda New/SQL; n cadrul codului de instruciuni al aplicaiilor. Pentru a scrie corect instruciunile SQL n MS-Access este necesar s se respecte n mod strict unele reguli de sintax: fiecare instruciune trebuie s se termine cu un caracter punct i virgul (;), cu toate c Access-SQL accept instruciunea i fr acest caracter, care este denumit terminator de instruciune; la crearea unei interogri, n care se folosesc cmpuri de date din mai multe tabele ale bazei de date, pentru a separa numele tabelului de numele cmpului de date este necesar s se foloseasc caracterul punct (.);

pentru a delimita parametri dintr-o list trbuie folosit virgula (,); pentru a marca datele de tip caracter trebuie ncadrate ntre dou caractere apostrof () sau ghilimele (); pentru a desemna unul sau mai multe caractere de nlocuire trebuie folosite caracterele ? i *; pentru specificarea inegalitilor din cadrul clauzelor trebuie folosite dou paranteze ascuite (< >); pentru a pune n eviden irurile de tip dat calendaristic i de timp se apeleaz la caracterul #; pentru a ncadra numele de cmpuri de date atunci cnd conin spaii sau simboluri neacceptate de SQL trebuie s fie folosite parantezele drepte ([ ]). De asemenea, pentru prezentarea corect a sintaxei instruciunilor i a clauzelor Access-SQL se folosesc convenii de notare, printre care urmtoarele: elementele de sintax incluse ntre paranteze drepte ([ ]) sunt opionale; dintre elementele de sintax incluse ntre acolade ({ }) i separate printr-o bar vertical (|) trebuie s se aleag numai un singur element; un ir de puncte de suspensie () precizeaz c se continu o enumerare (se repet acele elemente dup care sunt specificate). n literatura de specialitate se cunosc trei metode de baz referitoare la implementarea limbajului SQL: implementare prin apelare direct (Direct Invocation), care const n introducerea instruciunilor n prezena promter-ului sistem (de la prompter); implementare de tip modular (Modul Language), care folosete anumite proceduri apelate de programele aplicaiilor; implementarede tip ncapsulat (Embedded SQL), care folosete instruciuni ncapsulate n codul de program, fiind de tip static i dinamic. n funcie de rolul ndeplinit n gestiunea bazelor de date, instruciunile SQL se pot grupa astfel: instruciuni de definire a datelor, care se folosesc pentru descrierea structurii bazei de date; instruciuni de procesare a datelor, prin care se efectueaz operaii de adugare, tergere i modificare asupra nregistrrilor din baza de date; instruciuni de selecie a datelor, care se folosesc pentru consultarea bazei de date; instruciuni de procesare a tranzaciilor, referitoare la unitile logice de prelucrare i de suport al unor operaii multiple de prelucrare a datelor; instruciuni de control al cursorului; instruciuni de control al accesului la baza de date. Limbajul Access-SQL folosete un vocabular alctuit dintr-o diversitate de categorii de cuvinte cheie dintre care principale sunt urmtoarele: instruciunile, care au rolul cel mai important n executarea interogrilor bazei de date, deoarece determin executarea de aciuni (exemplu, SELECT); clauzele, prin care se restricioneaz domeniul entitilor care particip la interogri (exemplu, WHERE sau ORDER BY); funciile, care mbuntesc performanele limbajului SQL de gestionare a bazelor de date; operatorii, care efectueaz operaii de comparare a rezultatelor seleciei. La aceste elemente de vocabular mai sunt asociate i alte elemente de sintax, denumite parametrii sau argumente, prin care se precizeaz modul de aciune al

instruciunilor. Aceste elemente de vocabular Access-SQL se scriu de regul cu litere majuscule i sunt completate de parametrii, care se scriu cu litere minuscule. Folosirea limbajului Access-SQL se bazeaz n principal pe conceptul de bloc deinterogare, care se poate formaliza astfel: < bloc de interogare > list de atribute din lista de tabele ale bazei de date criteriu de ndeplinit < expresie> unde: list atribute conine atribute din structura tabelei baz de date surs sau atribute calculate pe baza celor existente n tabel sau tabelele surs, <expresie> este condiia logic pe care se creaz criteriul de selecie. Sa ne reamintim... SQL (Structured Query Language) este unul dintre cele mai puternice limbaje de programare structurate folosite pentru interogarea bazelor de date relaionale. Sistemul de gestiune a bazelor de date Microsoft Access ncepnd cu versiunea 2000 accept folosirea limbajului de interogare SQL, n gestiunea bazelor de date de tip MS-Access. 10.5 Etapele crerii i executrii interogrilor Access-SQL 01:15 La crearea i executarea unei interogri n bazele de date MS-Access, realizate prin folosirea de instruciuni, sunt parcurse ntr-o ordine logic i cronologic, cteva etape principale: Din fereastra de dialog Open, afiat dup ce s-a lansat n execuie MS-Access, se deschide baza de date n care se vor efectua interogrile SQL; Se selecteaz grupul de obiecte Queries. n continuare, se execut click pe toolbar-ul CREATE butonul Query Wizard sau pe opiunea Query Design;

Figura 10.1. Toolbar-ul Create afind grupul de obiecte Queries Se nchide, prin click pe butonul Close, fereastra de dialog Show Table, afiat peste fereastra Query ;

Figura 10.2. Ferestrele afiate suprapus Query i Show Table La click dreapta pe numele interogrii se activeaz opiunea (modul de vizualizare) SQL View, pentru a crea interogarea Access-SQL. Ca efect, n fereastra Select Query se afieaz instruciunea Select (fig.10.4) i n continuare se tasteaz instruciunile SQL specifice, respectnd regulile de sintax i de punctuaie corespunztoare, pentru a crea interogarea de selecie;

Figura 10.3. Query i Opiunile la click dreapta pe numele Interogrii (Query1)

Figura 10.4. Fereastra Select Query afind instruciunea Select pentru a ncepe scrierea celorlalte instruciuni din blocul de interogare Select

Interogarea Access-SQL astfel creat, se lanseaz n execuie ntr-unul din modurile: prin activarea butonului ! (Run) de pe bara de instrumente Query Design; prin activarea opiunii Run din meniul Query. n final, pe ecranul monitorului se afieaz rezultatul interogrii, rezultat pe care utilizatorul urmeaz s-l analizeze i s-l interpreteze potrivit propriilor cerine i restricii. Dac interogarea Access-SQL conine erori de sintax sau rezultate eronate (erori logice), este necesar s se revin n modul de afiare SQL View pentru efectuarea coreciilor necesare. 10.6 Instruciuni pentru definirea datelor n MS-Access, definirea structurii datelor se poate realiza prin: interogri DDL (Data Definition Language); folosirea ferestrelor de dialog Table Design i Table Datasheet; prin intermediul obiectelor DAO (Data Access Object). Cu toate c interogrile DDL nu ofer prea multe faciliti, cum ar fi definirea regulilor de validare, a valorilor implicite etc, totui aceste interogri au avantajul c au la baz un limbaj standard, implementat de aproape toate sistemele de gestiune a bazelor de date relaionale. n consecin, nu se pot crea interogri n fereastra de dialog QBE, ci numai n fereastra SQL View. Pentru definirea datelor Access-SQL ofer instruciunile DDL urmtoare: CREATE TABLE, ALTER TABLE, DROP TABLE, DROP DATABASE. Instruciunea CREATE TABLE este folosit pentru crearea structurii unui tabel, rezultatul fiind la fel ca n modul interfa grafic (asistat). Instruciunea ALTER TABLE permite s se adauge un cmp de date la un tabel creat anterior. Totui, nu este posibil adugarea, respectiv tergerea de cmpuri de date la nivelul bazei de date n ansamblu. Instruciunea DROP TABLE se folosete pentru a terge complet un tabel dintr-o baz de date, inclusiv indecii i valorile asociate. Instruciunea DROP DATABASE se folosete la tergea unei baze de date. Exist ns o mulime de restricii stabilite de ctre administratorul bazei de date privind aceast operaie. 10.7 Instruciuni de selecie a datelor n limbajul Access-SQL instruciunile de selecie a datelor constituie una dintre categoriile cele mai importante ale limbajului de interogare. O cerin de selecie a datelor din baza de date relaional se exprim printr-o structur denumit bloc de cerere. n funcie de scopul urmrit de utilizator i de modul de formulare a cererilor de interogare se disting: blocuri de cereri de interogare simple, care permit vizualizarea nregistrrilor dintr-un tabel al bazei de date, realizarea proieciilor i seleciilor asupra bazei de date, returnarea unor atribute calculate; blocuri de cereri de interogare complexe, care permit realizarea de interogri cu structur complex i/sau folosirea mai multor tabele surs, fiind: - blocuri de cereri prin interogarea mai multor tabele; - blocuri de cereri opernd pe grupuri de nregistrri;

01:45

02:00

- blocuri de cereri prin folosirea subcererilor; - blocuri de cereri prin folosirea operatorilor UNION i JOIN. Blocurile de cereri prin interogarea mai multor tabele se disting prin meniunea n clauza FROM a numelor tabelelor surs interogate i n clauza WHERE a criteriilor de compunere a nregistrrilor. Blocurile de cereri opernd pe grupuri de nregistrri se disting prin faptul c interogrile opereaz pe grupuri de nregistrri definite dup criterii specificate la nivelul grupului de nregistrri, executndu-se funcii agregate (exemplu: Count, Sum, Max, Min, Avg, Var etc). Blocurile de cereri prin folosirea subcererilor permit realizarea unor cutri mai complexe n baza de date construind subcereri n cadrul unor cereri. Blocurile de cereri prin folosirea operatorului UNION se disting prin faptul c pentru unirea nregistrrilor se folosete operatorul UNION. Blocurile de cerere prin folosirea operatorului JOIN se disting prin faptul c operaiile de asociere au ca rezultat obinerea tuturor combinaiilor posibile, care corespund coninutului informaional al fiecrui tabel surs (pot fi admise mai mult de dou tabele). 10.8 Instruciuni pentru manipularea datelor Aceste instruciuni sunt deosebit de utile n exploatarea bazelor de date, fiind implementate prin interogri de tip aciune. innd seama de modul de aciune, este necesar s fie folosite cu deosebit atenie, deoarece efectele aciunii acestora sunt permanente (ireversibile), influennd inclusiv integritatea referenial a bazei de date. Dintre aceste instruciuni cele mai importante sunt urmtoarele: SELECT INTO, INSERT INTO, UPDATE i DELETE. Instruciunea SELECT INTO se folosete pentru a crea un nou tabel cu nregistrri din alt tabel sau din alt interogare. Instruciunea INSERT INTO se folosete pentru a aduga nregistrri dintr-un tabel n altul. Exist dou forme de sintax ale acestei instruciuni: INSERT INTOVALUES folosit pentru operaii simple care implic lucrul cu un numr redus de nregistrri, astfel c se poate ntroduce o singur nregistrare la un moment dat; INSERT INTOSELECT folosit pentru a copia selectiv nregistrri dintr-un tabel n altul sau n mai multe tabele. Instruciunea UPDATE se folosete pentru a nsera nregistrri noi, ct i de a modifica valorile cmpurilor de date din nregistrrile curente. Instruciunea DELETE se folosete pentru tergerea parial sau total a nregistrrilor din tabele ale bazei de date. Sa ne reamintim... Limbajul SQL ofera doua categorii de instructiuni: instructiuni pentru definirea datelor si instructiuni pentru manipularea datelor.

02:20

02:40

10.9 Definirea cererilor SQL n MS-Access MS-Access permite: generarea automat a codului SQL pentru cererile (interogrile) din interfaa QBE; utilizatorilor s modifice aceste cereri schimbnd modul de vizualizare (opiunea View SQL din meniul Access); utilizatorilor s formuleze cereri direct n SQL astfel: - se activeaz interfaa QBE; - [se precizeaz sursa de date]; - se comut n mod SQL (VIEW/SQL); - se scrie blocul de cerere SQL; - se execut cererea. Blocuri de cereri se mai pot construi i prin folosirea de programe scrise n mediul de programare VBA. Instructiunile pentru manipularea datelor sunt urmaroarele: ....................... 10.10. Rezumat SQL (Structured Query Language) este unul dintre cele mai puternice limbaje de programare structurate folosite pentru interogarea bazelor de date relaionale, fiind implementat de aproape toate sistemele orientate pe gestiunea bazelor de date relaionale. n MS-Access instruciunile SQL se pot introduce n dou moduri: n fereastra de dialog SQL View, deschis n modul de lucru Design View al unei interogri, din care se alege comanda New/SQL; n cadrul codului de instruciuni al aplicaiilor. Pentru definirea datelor Access-SQL ofer instruciunile DDL urmtoare: CREATE TABLE, ALTER TABLE, DROP TABLE, DROP DATABASE. Dintre instruciunile pentru manipularea datelor cele mai importante sunt urmtoarele: SELECT INTO, INSERT INTO, UPDATE i DELETE. 10.11. Test de autoevaluare a cunotinelor (timp necesar : 20 minute) 1. n funcie de modul cum sunt gestionate bazele de date relaionale, SQL face parte din categoria limbajelor: a. procedurale b. neprocedurale c. de asamblare d. algoritmice 2. n SQL utilizatorii i exprim cerinele informaionale n modul: a. algoritmic b. procedural c. neprocedural d. simbolic 3. Sintaxa complet a limbajului SQL a fost publicat n anul 1976 de ctre: a. ASCII b. ISO c. OSI d. ANSI 4. Ca limbaj simplu i accesibil utilizatorilor, implementat pe aproape toate SGBDurile, SQL se bazeaz n principal pe conceptul de: a. bloc de cerere b. instruciune c. comand d. tabel

02:50

5. Regsirea, selectarea i afiarea datelor din bazele de date MS-Access se realizeaz cu instruciuni SQL de: a. descriere b. interogare c. manipulare d. control 6. Crearea tabelelor, modificarea structurii lor i tergerea tabelelor se realizeaz cu instruciuni SQL de: a. descriere b. interogare c. manipulare d. control 7. nserarea, tergerea, selectarea i afiarea datelor implic folosirea unor instruciuni SQL de: a. descriere b. interogare c. manipulare d. control 8. Un bloc de cerere SQL ncepe ntotdeauna cu instruciunea: a. SELECT b. INSERT c. UPDATE d. UNION 9. ntr-un bloc de cerere SQL numele sursei de date (tabele i/sau interogri) este specificat de clauza: a. FROM b. WHERE c. HAVING d. GROUP BY 10. n blocurile de selecie SQL expresiile aritmetice trebuie ncadrate ntre caracterele: a. [ ] b. { } c. d. ( ) Rspunsurile corecte la ntrebrile din testul de autoevaluare (tip gril): 1. b 2. c 3. d 4. a 5. b 6. a 7. c 8. a 9. a 10. d

10.12. Test de evaluare a cunotinelor A. Descrieti elementele care definesc modelul relational al datelor. B. Care sunt operatiile modelului relational al datelor? Exemplificati. 10.13 Tema de control Se consifer obiectul Table cu numele Stocuri, avnd cmpurile de date urmtoare: - Cod_marf de tip Number; - Denumire_marf de tip Text, - Pre_unitar de tip Number - Stoc_existent de tip Number. Se cere: - Folosind mediul SQL, s se creeze un obiect Query cu numele Cerere1 n care s se adauge, dup cmpul de date Stoc_existent un cmp de date cu numele Valoare_stoc calculat cu relaia: Pre_unitar x Stoc_existent; - Folosind mediul SQL, s se adauge un filtru la structura obiectului Cerere1 astfel nct s poat afia numai nregistrrile care au n cmpul de date Denumire_marf valoarea portocale; - Folosind mediul SQL, s se modifice datele din cmpul de date Pret_unitar

din obiectul Query, prin reducere cu 5% i apoi s se afieze coninutul obiectului. 10.14. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) i colectiv Baze de date. Fundamente teoretice i practice, Editura InfoMega, Bucureti, 2002 2. Popa Gh. i colectiv Baze de date Access, Editura CISON, Buc., 2003 3. Murean M. Baze de date. Aplicaii n MS Access XP, Editura PRO UNIVERSITARIA, Bucureti, 2006 4. Surcel Tr., Mranu R., Avram V., Avram D. Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economic, Bucureti, 2004 5. Sagman S. Microsoft OFFICE 2003 pentru Windows (Ghid de nvare rapid prin imagini), Editura Corint, Bucureti, 2004 II. Bibliografie facultativ 1. Murean M. Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureti, 2004 2. Nstase P. i colectiv Tehnologia bazelor de date Access 2000, Editura Economic, Bucureti, 2000 3. Popa Gh. i colectiv Baze de date Access - Culegere de probleme, Editura CISON, Bucureti, 2002 4. Habracken J. Access 2002 pentru nceptori, traducere de Cora Radulian, Editura Teora, Bucureti, 2002 5. Forta B. SQL n lecii de 10 Minute, Editura Teora, Bucureti, 2006