Prof. univ. dr. Bogdan Oancea Prof. univ. Dr. Constantin Baron
Baze de date relationale
Universitatea „Nicolae Titulescu” din Bucureşti 2012
Introducere Suportul de curs reprezintă o sinteză a conţinutului disciplinei Baze de date. El este destinat studenţilor de la forma de învăţământ la distanţă (ID) şi constituie materialul bibliografic minim necesar pentru parcurgerea, însuşirea şi evaluarea disciplinei respective. Suportul de curs este structurat conform standardelor şi procedurilor de uz larg în învăţământul universitar naţional şi internaţional, care se adresează învăţării individuale, pe baze interactive. Parcurgerea suportului de curs, pe baza prezentelor instrucţiuni, asigură reţinerea informaţiilor de bază, înţelegerea fenomenelor fundamentale şi aplicarea cunoştinţelor dobândite la rezolvarea unor probleme specializate. Suportul de curs este structurat pe trei parti care sunt structurate, la rîndul lor, pe unităţi de învăţare. 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 cunoştinţelor, al însuşirii unui anumit aspect al fenomenologiei disciplinei precum şi din perspectiva timpului necesar parcurgerii şi însuşirii fondului informaţional respectiv. În acest sens, fiecare dintre cele trei parti ale suprotului de curs conţine una sau mai multe unităţi de învăţare. Unitatea de învăţare reprezintă o componenta omogena din punct de vedere al continutului, caracterizată de un volum strict limitat de cunoştinţe, care pot să fie parcurse şi însuşite printr-un efort continuu de concentrare intelectuală, care se referă la conţinutul de idei al unităţii de învăţare. Fiecare unitate de învăţare are o structură proiectată din perspectiva exigenţelor autoinstruirii, astfel că folosirea suportului de curs se face pe baza unui program de autoinstruire. Recomandăm astfel, câteva regului de bază în procedura de realizare a programului de autoinstruire pe baza acestui suport de curs: 1. Unităţile de învăţare se parcurg în ordinea în care sunt prezentate, chiar în cazul în care studentul apreciază că ar putea “sări” direct la o altă unitate de învăţare (de exemplu în cazul în care studentul se află la a doua facultate sau în alte situaţii echivalente). Criteriile şi modalitatea de “înlănţuire” a unităţilor de învăţare sunt prezentate la fiecare unitate de învăţare şi ele trebuie respectate întocmai, sub sancţiunea nerealizării la parametri maximali a programului de autoinstruire; 2. Fiecare unitate de învăţare conţine teste destinate autoevaluării gradului şi corectitudinii însuşirii cunoştinţelor specifice unităţii de învăţare, înţelegerii fenomenelor şi proceselor descrise sau prezentate în unitatea de învăţare; Fiecare test al unităţii de învăţare este prevăzut cu un sistem de notare (puncte) care însumează un maximum de 100 puncte; 3. Ordinea logică a parcurgerii unităţii de învăţare este următoarea: a) se citeşte scopul şi obiectivele unităţii de învăţare; b) se citesc termenii de referinţă ; c) se parcurge conţinutul de idei al unităţii de învăţare; d) se parcurge bibliografia recomandată; e) se răspunde la întrebările de autocontrol, revăzând, dacă este necesar, conţinutul de idei al unităţii de învăţare; f) se elaborează, pe o pagină, câte un eseu pentru fiecare dintre temele de reflecţie propuse la unitatea de învăţare; g) se efectuează testele de evaluare după procedura descrisă; h) se rezolvă exerciţiile, problemele sau studiile de caz propuse pentru laboratorul sau lucrările practice propuse în unitatea de învăţare. Pentru creşterea eficienţei utilizării suportului de curs şi fixarea temeinică a cunoştinţelor dobândite, 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 organizării 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: • însuşirea temeinică a noţiunilor fundamentale privind bazele de date, în particular ale celor organizate după modelul de date relaţional; • cunoaşterea conceptelor de organizare structurală a datelor gestionate în mediul de dezvoltare Microsoft Access; • formarea deprinderilor practice necesare pentru gestiunea bazelor de date relaţionale în mediul de dezvoltare Microsoft Access şi în mediul de programare SQL. Suportul de curs este structurat pe trei parti, fiecare parte conţinând, în funcţie de problematica abordată, unitati de invatare specifice. Competenţe conferite
Capacitatea de alegere a unui sistem de gestiune a bazelor de date în funcţie de domeniul de activitate din care provin aplicaţiile informatice, de specificul acestora şi de cerinţele şi exigenţele 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 facilităţilor mediului de programare Microsoft Access în funcţie de domeniul de activitate din care provin aplicaţiile de gestiune a bazelor de date, de specificul acestora şi de cerinţele şi exigenţele utilizatorilor. Capacitatea de alegere a facilităţilor limbajului SQL în funcţie de domeniul de activitate din care provin aplicaţiile, de specificul acestora şi de cerinţele şi exigenţele utilizatorilor. Capacitatea de a dezvolta o aplicație 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, conţinând trei unitati de invatare: Unitatea 1. Organizarea datelor în baze de date; Unitatea 2. Modelul relațional 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 relaţionale în mediul de dezvoltare Microsoft Access, conţinând 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 relaţionale în mediul de lucru programat, conţinând 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 Cerinţe preliminare Pentru înțelegerea conceptelor și noțiunilor prezentate în acest curs și pentru a le aplica eficient în practică este necesară parcurgerea în prealabil a cursului de Bazele Tehnologiei Informației din anul I de studiu. Discipline deservite Pe baza cunoştinţelor dobândite în cadrul disciplinei curente studenții 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 Unități de învățare este 2-3 ore. Evaluarea studenților Nota finala la disciplina „Baze de date” va fi stabilita prin : - evaluarea finală (examen scris de tip grilă) – cu ponderea de 70%; - evaluări pe parcurs (evaluari în cadrul activităților asistate si elaborarea unui proiect) –cu ponderea de 30%;
Cuprins Introducere
2
Obiectivele cursului
3
Competenţe conferite
3
Resurse şi mijloace de lucru
3
Structura cursului
3
Cerinţe preliminare
4
Discipline deservite
4
Durata medie de studiu individual
4
Evaluarea studenților
4
UNITATEA DE ÎNVĂŢARE 1. ORGANIZAREA DATELOR ÎN BAZE DE DATE 1.1. Obiective
10
1.2. Competenţele unităţii de învăţare
10
1.3. Noţiuni generale
10
1.4. Noţiunea de bază de date
13
1.5. Clasificarea bazelor de date
15
1.6. Sisteme de gestiune a bazelor de date
17
1.7. Arhitectura unei baze de date
18
1.8 Etape in realizarea bazelor de date
18
1.9. Rezumat
19
1.10. Test de autoevaluare a cunoştinţelor
20
1.11. Temă de control
21
1.12. Bibliografie
21
UNITATEA DE ÎNVĂŢARE 2. MODELUL RELAȚIONAL AL DATELOR.
10
22
2.1. Obiective
22
2.2. Competenţele unităţii de învăţare
22
2.3. Modelul relațional al datelor
22
2.4. Elementele modelului relațional al datelor
23
2.5. Operatorii modelului relational al datelor
26
2.6. Rezumat
28
2.7. Test de autoevaluare a cunoștințelor
28
2.8. Test de evaluare a cunoștințelor
29
2.9. Bibliografie
29
UNITATEA DE ÎNVĂŢARE 3. SISTEME DE GESTIUNE A BAZELOR DE DATE. MICROSOFT ACCESS 3.1. Obiective
31
3.2. Competenţele unităţii de învăţare
31
31
3.3. Prezentare generală Microsoft Access
31
3.4 Structura bazelor de date Microsoft Access
34
3.5 Sistemul de asistare software (Help)
34
3.6. Instrumentele de ajutor Wizard
36
3.7 Limbajul de programare VBA
36
3.8 Rezumat
39
3.9. Test de autoevaluare a cunoștințelor
39
3.10. Test de evaluare a cunoștințelor
40
3.11. Bibliografie
40
UNITATEA DE ÎNVĂŢARE 4. GESTIUNEA OBIECTELOR TABLES.
42
4.1. Obiective
42
4.2. Competenţele unităţii de învăţare
42
4.3. Crearea unui obiect de tip tabel
42
Furnizati mai multe detalii privind crearea de tabele in Microsoft Access 2010. Folositi drept sursa de informare Internetul 44 4.4 Stabilirea relaţiilor dintre tabele
47
4.5. Rezumat
48
4.6. Test de autoevaluare a cunoștințelor
49
4.7. Test de evaluare a cunoștințelor
49
4.8. Bibliografie
50
UNITATEA DE ÎNVĂŢARE 5. GESTIUNEA OBIECTELOR QUERIES
51
5.1. Obiective
51
5.2. Competenţele unităţii de învăţare
51
5.3. Notiunea de interogare
51
5.4 Tipuri de interogari
52
5.5 Operaţii cu obiecte de tip interogare
52
5.6 Modificarea unui obiect de tip interogare
55
5.7 Alte tipuri de interogări
56
5.8 Rezumat
56
5.9. Test de autoevaluare a cunoștințelor
57
5.10. Test de evaluare a cunoștințelor
57
5.11. Bibliografie
58
UNITATEA DE ÎNVĂŢARE 6. GESTIUNEA OBIECTELOR FORMS
59
6.1. Obiective
59
6.2. Competenţele unităţii de învăţare
59
6.3. Definirea şi clasificarea formularelor
59
6.4 Crearea şi modificarea formularelor
60
6.5 Structura formularelor
63
6.6 Proprietăţile formularelor
63
6.7 Controalele în formulare
64
6.8 Proprietăţile controalelor
64
6.9 Formulare/subformulare
65
6.10 Rezumat
65
6.11. Test de autoevaluare a cunoștințelor
66
6.12. Test de evaluare a cunoștințelor
67
6.13. Bibliografie
67
UNITATEA DE ÎNVĂŢARE 7. GESTIUNEA OBIECTELOR REPORTS
68
7.1. Obiective
68
7.2. Competenţele unităţii de învăţare
68
7.3. Noţiuni generale
68
7.4 Crearea şi modificarea rapoartelor
69
7.5 Afişarea şi tipărirea rapoartelor
72
7.6 Proprietăţile rapoartelor
72
7.7 Proprietăţile secţiunilor din rapoarte
73
7.8 Controale calculate
73
7.9 Rezumat
73
7.10. Test de autoevaluare a cunoștințelor
74
7.11. Test de evaluare a cunoștințelor
75
7.12 Tema de control
75
7.13. Bibliografie
76
UNITATEA DE ÎNVĂŢARE 8. GESTIUNEA OBIECTELOR MACROS
77
8.1. Obiective
77
8.2. Competenţele unităţii de învăţare
77
8.3. Prezentare generală
77
8.4 Crearea unui obiect macro
78
8.5 Acţiuni programabile în obiecte macro
79
8.6 Grup de obiecte macro
80
8.7 Rezumat
81
8.8. Test de autoevaluare a cunoștințelor
81
8.9. Bibliografie
82
UNITATEA DE ÎNVĂŢARE 9. INTRODUCERE IN LIMBAJUL SQL
83
9.1. Obiective
83
9.2. Competenţele unităţii de învăţare
83
9.3. Modelul relațional al datelor
83
9.4. Elementele limbajului SQL
84
9.5 Instrucţiuni SQL
84
9.6 Reuniunea, intersectia şi diferenţa tabelelor
92
9.7 Rezumat
93
9.8. Test de autoevaluare a cunostintelor
94
9.9. Tema de control
95
9.10. Bibliografie
95
UNITATEA DE ÎNVĂŢARE 10. GESTIUNEA OBIECTELOR QUERIES CU LIMBAJUL NEPROCEDURAL ACCESS-SQL 96 10.1. Obiective
96
10.2. Competenţele unităţii de învăţare
96
10.3. Prezentare generală Access-SQL
96
10.4. Microsoft Access-SQL
97
10.5 Etapele creării şi executării interogărilor Access-SQL
99
10.6 Instrucţiuni pentru definirea datelor
101
10.7 Instrucţiuni de selecţie a datelor
101
10.8 Instrucţiuni pentru manipularea datelor
102
10.9 Definirea cererilor SQL în MS-Access
103
10.10. Rezumat
103
10.11. Test de autoevaluare a cunoștințelor
103
10.12. Test de evaluare a cunoștințelor
104
10.13 Tema de control
104
10.14. Bibliografie
105
UNITATEA DE ÎNVĂŢARE 1. ORGANIZAREA DATELOR ÎN BAZE DE DATE Cuprins 1.1. Obiective 1.2. Competenţele unităţii de învăţare 1.3. Noţiuni generale 1.4. Noţiunea 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 cunoştinţelor 1.11. Temă de control 1.12. Bibliografie 1.1. Obiective În această primă unitate de învățare se va prezenta noţiunea de bază de date, aceea de model de date şi implicaţiile acestora în organizarea datelor. Tot în cadrul acestei unităti de învățare vom prezenta noțiunile de fundamentale legate de sistemele de gestiune a bazelor de date şi a criteriilor de alegere a acestora în funcţie de domeniul în care se folosesc şi de specificul aplicaţiilor. 1.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: • Care sunt semnificaţiile noţiunii de bază de date faţă de cele ale noţiunii de fişier de date; • Ce avantaje prezinta folosirea bazelor de date în efectuarea de aplicaţii informatice cu un volum mare şi chiar foarte mare în comparaţie cu folosirea fişierelor de date; • Care sunt principalele tipuri de baze de date; Durata de parcurgere a primei unităţi de învăţare este de 2 ore. 1.3. Noţiuni generale
00:05
Extinderea sferei de aplicabilitate a calculatoarelor electronice pentru efectuarea unor aplicaţii tot mai variate şi complexe, necesita stocarea unui volum tot mai mare de date. Astfel, pentru a îndeplini aceste cerinţe, s-a impus perfecţionarea modului de organizare si structurare a datelor. Noul mod de organizare trebuie să permită accesul foarte rapid la datele stocate, în scopul regăsirii şi prelucrării acestora. Accesul rapid la date trebuie să rezolve problemele legate de viteza de regăsire a datelor, dar şi de asigurarea accesului mai multor utilizatori la aceleaşi date (acces concurent), pentru efectuarea unor operaţii diferite de prelucrare. Problemele implicate de organizarea şi regăsirea datelor se referă la: • definirea, structurarea, ordonarea şi gruparea datelor în colecţii de date omogene; • stabilirea legăturilor dintre colecţiile de date; • reprezentarea şi stocarea datelor pe suporturi magnetice (organizarea fisierelor de date, a structurilor de tip index etc.).
00:20
Furnizati mai multe definiţii pentru noţiunea de „organizare a datelor”. Folosiţi drept principală sursă de informare Internetul. .................................................................................................................................... .................................................................................................................................... ................................................................................................................................... Evoluţia organizării datelor, atât sub aspectul teoretic cât şi practic, s-a extins cu precădere asupra principiilor şi metodelor de structurare, stocare şi regăsire, în general de gestiune a datelor, în concordanţă cu progresele înregistrate în domeniile hardware şi software şi cu cerinţele tot mai diverse şi exigente ale utilizatorilor. In acest context, au apărut ş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 noţiuni cunoscute ca: entitate, atribut, relaţie. Pornind de la realitatea obiectivă, pentru a identifica datele care urmează să fie stocate şi regăsite pentru prelucrare cu ajutorul calculatorului, precum şi pentru a satisface cerinţele specifice de organizare a acestor date este necesară modelarea acestei realităţi, folosind modelele de date. Modelele de date transpun complexitatea informaţiilor reale în reprezentări specifice, în scopul efectuării prelucrării cu calculatorul electronic. Pentru folosirea modelului de date adecvat este necesar să se efectueze un studiu şi o analiză privind situaţia reală, pentru identificarea necesarului de informaţii şi a modului de reprezentare, precum şi a cerinţelor de prelucrare a acestor informaţii. Modelele de date necesită identificarea structurii modelului, a operatorilor care acţionează asupra structurilor de date şi a restricţiilor (constrangerilor) pentru menţinerea corectitudinii datelor. Structura modelului presupune identificarea obiectelor reale din activitatea care urmeaza a fi informatizata (care sunt denumite entităţi), a caracteristicilor acestora (denumite atribute sau câmpuri de date) şi a legăturilor dintre aceste obiecte (denumite relaţii sau asocieri). Entitatea constituie unitatea informaţională elementară din structura unei colectii de date prin care se reflectă elemente reale sau abstracte ce definesc segmente omogene ale realităţii obiective caracterizate prin nume unic, număr maxim de apariţii (realizări) şi o structură specifică acestei realităţi pe care o descrie. Mai pe scurt, prin entitate se inţelege un conţinut de sine stătător, o existenţă determinată (ca intindere, importanţă, valoare etc). De exemplu, într-o societate comerciala pot fi definite entităţile: personal, utilaje, produse, materiale, secţii, ateliere, contracte, furnizori, beneficiari, facturi, note de intrare-receptie, etc. Fiecare apariţie reală a unei entităţi în cadrul unei colectii de date se numeşte realizare, formată, la rândul său, din elemente descriptive denumite atribute. Atributul sau caracteristica este o proprietate a unei entităţi prin care aceasta poate fi descrisă din punct de vedere informaţional ca o componentă a datelor. De exemplu, pentru entitatea personal se pot defini atribute ca: numele, data-naşterii, starea civilă, adresa, calificarea etc. Fiecare atribut poate avea mai multe valori. De exemplu, pentru sexul persoanei se pot atribui valorile: bărbătesc şi femeiesc, pentru starea civilă valorile: căsătorit, necăsătorit, divorţat şi văduv. Între entităţile unei colectii de date se pot stabili anumite legături (conexiuni) denumite relatii. Relaţia descrie o legătură specifică, delimitată logic, între două tipuri semnificative de entităţi sau chiar în interiorul entităţilor, prin care se defineşte gradul de implicare a unei entităţi în raport cu altele. De exemplu, astfel de relaţii se pot
00:30
stabili între entităţi ca: utilaje şi produse, contracte şi furnizori, furnizori si facturi etc. Pentru a stabili tipul legăturii, trebuie determinate numerele minime şi maxime posibile de realizări ale unei entităţi, care pot fi asociate cu o realizare a unei alte entităţi cu care se află în legătură. O astfel de implicare reprezintă cardinalitatea relaţiei (legăturii). După gradul asocierii (valorile maxime identificate), relaţiile 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ă numărul de entităţi distincte ce participă la asociere, relaţiile pot fi: relaţii binare, în care se realizează legături între două entităţi distincte; relaţii recursive, în care se realizează legături ale entităţilor cu ele însele; relaţii complexe, în care se realizează legături între mai mult de două entitaţi distincte. În funcţie 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 reţea; modele relaţionale; modele orientate obiect. Modelele ierarhice (arborescente) sunt construite astfel încât au un nod (element) unic rădăcină şi un număr finit de succesori, care la rândul lor au alte noduri succesoare, până la nodurile terminale, care nu mai au alţi succesori. Orice nod, exceptând nodul rădăcină, are un predecesor unic. Relaţiile care se stabilesc în cadrul acestor modele de date sunt de tipul 1-n. Modelele de tip reţea sunt modele de tip graf cu legături bidirecţionale între noduri. Un nod poate avea mai mulţi predecesori şi mai mulţi succesori. În aceste modele se stabilesc relaţii de tipul m-n. Modelele de tip relaţional 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 relaţiile stabilite admit orice tip de relaţie: 1-1,1-n, n-m. Modelele orientate obiect redau structuri de date complexe ale realităţii, î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 relaţie: 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 - Relaţie (EAR). Furnizati mai multe definiţii pentru noţiunile de „atribut, relaţie, entitate”. Folosiţi drept principală sursă de informare Internetul. ........................................................................................................................... ........................................................................................................................... ........................................................................................................................... ...........................................................................................................................
00:40
1.4. Noţiunea de bază de date Noţiunea de bază de date a apărut în anul 1969, cu ocazia prezentării primului raport CODASYL (COnference of DAta SYstem Language), având ca idee centrală organizarea datelor într-un mod care să asigure independenţa organizării datelor faţă de programele de aplicaţii şi a programelor de aplicaţii faţă de organizarea datelor. Accesul oricărui utilizator la baza de date se asigură printr-o descriere globală a datelor, care conţine descrierea structurii colecţiilor de date şi a legăturilor dintre acestea. O colecţie 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 relaţiilor 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 regăsi informaţii conform unuianumit criteriu definit de utilizator. Entităţile, atributele şi relaţiile 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 operaţionale si functioneaza sub controlul sistemului de operare aferent calculatorului în scopul satisfacerii cerinţelor 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ă independenţa datelor din baza de date faţă de programele de aplicaţii ş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 fără a necesita rescrierea programelor de aplicaţii care exploateaza baza de date; • independenţă logică - permite adăugarea de entitati noi sau extinderea/modificarea structurii bazei de date fără a mai fi necesară rescrierea programelor de aplicaţii care exploateaza baza de date. Independenţa datelor din baza de date faţă de programele de aplicaţii ş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 activităţi din lumea reala cu ajutorul calculatorului electronic. Ca dimensiune, sistemele de baze de date pot fi foarte diferite: de la câteva înregistrări (exemplul precedent al agendei telefonice) pana la zeci sau sute de milioane de
înregistrări (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 Aplicaţie
Program Aplicaţie
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), până la staţii 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 colecţiei 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 împărţi în urmatoarele categorii: programatorii de aplicaţii sunt cei care scriu aplicaţiile 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 aplicaţie si au posibilităţi de execuţie 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ă menţinerea funcţionarii corecte si eficiente a bazei de date prin stabilirea drepturilor de acces a diferitelor categorii de utilizatori, indexarea/reindexare bazei de date, efectuarea operaţiilor 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 rămân memorate
pe suport magnetic, independent de execuţia programelor de aplicaţii. Să ne reamintim... O colecţie 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 relaţiilor dintre ele, formează o bază de date.
01:00
1.5. Clasificarea bazelor de date Bazele de date şi-au impus superioritatea faţă de fişierele clasice de date şi au avut o evoluţie 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 clasificării bazelor de date după diferite criterii. ▪ După modelul datelor organizate în baza de date se disting: - baze de date de tip ierarhic sau arborescent, având o structură arborescentă în care există relaţii de subordonare de tip ierarhic (1 la n), astfel încât fiecare entitate subordonează una sau mai multe entităţi şi este subordonată, la rândul ei, unei singure entităţi 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 reţea, care asigură legături de orice natură între entităţile bazei de date (1la 1; 1 la n; n la m), astfel încât orice entitate poate fi legată direct cu alte entităţi în scopul reflectării unei corespondenţe funcţionale. Ele se bazeaza pe pe modelul reţea (un graf orientat alcătuit din noduri conectate prin arce), un model complex şi dificil de folosit. Limbajele de gestiune a acestor baze de date efectuează prelucrarea secvenţială a datelor, care este o prelucrare lentă. Un SGBD de tip reţea 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 relaţional, care se bazează pe modelul relaţional al datelor, au cunoscut o largă răspândire în prezent deoarece asigură independenţa organizării datelor faţă de programele de aplicaţii ş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 relaţional s-a impus prin simplitate şi prin aria largă de aplicabilitate. Acest model care operează cu entităţi (tabele bidimensionale denumite si relatii), având structura formată din înregistrări (denumite si tupluri), atribute (coloanele tabelelor), domenii şi valori. Tuplul, prin analogie cu terminologia specifică fişierelor de date, poate fi considerat un articol de date sau o înregistrare logică, iar valorile tuplurilor pot fi considerate valorile din câmpurile de date ale unei înregistrări logice. Numărul tuplurilor dintr-o relaţie reprezintă cardinalitatea relaţiei, iar numărul valorilor dintr-un tuplu reprezintă gradul relaţiei. Produsul dintre cardinalitatea şi gradul relaţiei reprezintă numărul de valori reale stocate la un moment dat. Atributul poate fi asimilat cu noţiunea de câmp de date întâlnită la fişierele de date. Numărul de atribute reprezintă un element invariabil determinat prin structura bazei de date. Atributul este identificat prin: • nume, care, în general, corespunde semnificaţiei valorilor din cadrul coloanei (atributului); • tip, care reprezintă tipul de date pentru valorile din câmpurile de date; • dimensiune, care reprezintă mumărul maxim de poziţii (caractere) rezervate
01:15 0
pentru datele fiecărui câmp de date. Suma dimensiunilor tuturor atributelor reprezintă dimensiunea relaţiei. La intersecţia unei linii (unui tuplu) cu o coloană (un atribut) se găseşte valoarea efectivă a câmpului de date. Toate valorile existente într-un tuplu formează o realizare a bazei de date. Urmatoarele noţiuni sunt similare: Atribut = Câmp = 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 relaţionale reprezintă a doua generaţie de SGBD-uri. Ca exemple de astfel de SGBDR-uri se pot menţiona următoarele: 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, regăsire şi prelucrare a unor elemente complexe (sunet, imagine, in general informatie multimedia), precum şi datorită necesităţii prototipizării care asigură viteză de lucru şi siguranţă în exploatare. Aceste baze de date se bazează pe noţiunea de clasa de obiecte iar un obiect este o colecţie de proprietăţi 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 generaţie de SGBD-uri, care urmăreşte 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 unităţi 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 parţială 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 reţele de calculatoare, dar sub aspect logic există ca o singură bază de date. Avantajele unei baze de date distribuite sunt: controlul centralizat, asigurarea independenţei datelor faţă de programele de aplicaţii, transparenţa distribuţiei fizice a datelor, asigurarea unei redundanţe minime controlate a datelor, sporirea performanţelor sistemului, creşterea siguranţei sistemului, creşterea adaptabilitaţii sistemului. Sistemele de gestiune a bazelor de date distribuite îndeplinesc funcţiile de asigurare a interfeţei cu utilizatorul, localizarea datelor, asigurarea controlului cererilor concurente şi a integrităţii 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.
01:25
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 operaţionale 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; - încărcarea 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ă: - independenţa datelor fata de suportul hardware utilizat; - redundanţa 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 conţinutului informaţional 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 utilizării structurilor logice, conceptuale şi fizice ale bazei de date SGBD-ul realizează funcţiile următoare: - funcţia de descriere a entităţilor bazei de date (reprezentate sub forma de tabele bidimensionale) şi a relaţiilor dintre entitati într-o viziune unitara, prin intermediul unui limbaj specializat denumit limbaj de descriere a datelor (LDD); -funcţia de manipulare a entităţilor si relaţiilor din baza de date în scopul realizării operaţiilor de creare, actualizare, stergere, interogare a bazei de date, prin intermediul limbajului de manipulare a datelor (LMD); -funcţia de utilizare şi comunicaţie, care permite legătura dintre utilizatori şi baza de date, precum şi conexiunea fizică dintre bazele de date distribuite; - funcţia de administrare, care revine persoanei abilitate să gestioneze baza de date adica administratorului bazei de date. Dintre responsabilităţile 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; întreţinerea bazei de date; asigurarea unor copii de siguranţă a bazei de date; luarea unor măsuri adecvate în situaţii 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).
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 sintetizării cerinţelor informaţionale care sunt specifice grupurilor de utilizatori care exploateaza baza de date. Acestui nivel îi corespunde structura logică a bazei de date definită de entităţile şi relaţiile solicitate direct de o categorie de utilizatori în scopul satisfacerii cerinţelor informaţionale 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 sintetizării unitare a cerinţelor informaţionale adresate bazei de date, în scopul satisfacerii cerinţelor globale şi specifice ale tuturor utilizatorilor. Acestui nivel îi corespunde structura conceptuală definită prin reuniunea entităţilor şi relaţiilor aferente de către toţi 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 întreţinerea 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 realizării automate a funcţiunilor sale. În acest scop: ▪ se efectuează o analiza statică, pentru a identifica, în primul rând, care sunt componentele sistemului (entitatile) şi legăturile (realtiile) dintre acestea; ▪ se utilizează tehnica Entitate - Atribut - Relaţie, rezultând astfel modelul logic al bazei de date; ▪ se efectuează analiza dinamica a sistemului care trebuie informatizar pentru a pune în evidenţă transformările din sistem în funcţie de diverse evenimente, rezultând astfel modelul dinamic; ▪ se foloseşte tehnica diagramelor de flux, pentru a identifica cerinţele informaţionale ale sistemului, rezultând modelul funcţional; ▪ se integrează cele trei modele (static, dinamic şi funcţional), 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 cerinţele utilizatorilor şi cu cerinţe de natură tehnică şi economică.
Cerinţele utilizatorilor sunt în funcţie de specificul aplicaţiilor, timpul de răspuns al sistemului, confidenţialitatea şi securitatea datelor dar şi uşurinţa utilizării SGBD-ului. Cerinţele tehnice sunt legate de performanţele şi facilităţile sistemului de gestiune a bazei de date (portabilitatea SGBD-ului); Cerinţele economice se referă la costurile implicate de realizarea şi exploatarea aplicaţiilor, 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 sintetizând unitar toate cerinţele informaţionale 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 coerenţa datelor se recomandă, de regulă, efectuarea validării (verificării) datelor. Validarea se efectuează atât pentru respectarea restricţiilor de integritate a datelor cât şi a celor de comportament, specifice fiecărei aplicaţii. Exploatarea şi întreţinerea bazei de date Exploatarea bazei de date se referă la efectuarea operaţiilor de consultare (folosire efectivă a datelor), la operaţiile de actualizare a datelor (adăugare, modificare şi ştergere), precum şi la modificarea structurii bazei de date. Întreţinerea bazei de date este sarcina administratorului bazei de date şi este asigurată de toate programele utilitare puse la dispoziţie de SGBD-ul aferent.
Bazele de date pot fi clasificate în urmatoarele tipuri: ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ...........................................................................................................................................
01:50
1.9. Rezumat Modelele de date transpun complexitatea informaţiilor reale în reprezentări specifice, în scopul efectuării prelucrării cu calculatorul electronic. Structura modelului presupune identificarea obiectelor (care sunt denumite entităţi), a caracteristicilor acestora (denumite atribute sau câmpuri de date) şi a legăturilor (denumite relaţii sau asocieri). Colecţia de date este mulţimea realizărilor (apariţiilor unei entităţi) într-o organizare a datelor. O colecţie 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 relaţiilor 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 aplicaţiilor 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:
analiza sistemului pentru care se realizează baza de date; proiectarea structurii bazei de date; încărcarea datelor în baza de date; exploatarea şi întreţinerea bazei de date.
Principalele tipuri de baze de date sunt: Bazele de date ierarhice Bazele de date reţea Bazele de date relaţionale Bazele de date orientate pe obiecte Bazele de date distribuite 1.10. Test de autoevaluare a cunoştinţelor (timp necesar: 20 min.) 1. Fiecare apariţie reală a unei entităţi într-o colectie de date se numeşte a. structură b. realizare c. index d. atribut 2. O bază de date se poate defini ca o colecţie de: a. resurse fizice b. resurse logice c. date d. programe 3. O colecţie de date împreună cu descrierea structurii datelor şi relaţiilor dintre acestea se numeşte: a. realizare b. structură de date c. colecţie de date d. bază de date 4. Organizarea datelor pe suporturi tehnice se poate realiza pe baza conceptului: a. colecţie de date b. câmp 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 numeşte: a. articol de date b. câmp de date c. caracter d. înregistrare fizică 7. Pentru ca o colecţie de date să devină bază de date este necesar ca, pe lângă datele propriu-zise, să mai conţină: a. realizări 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. funcţii b. obiective c. etape d. activităţi 9. O bază de date şi SGBD-ul folosit devin operaţionale prin intermediul unui: a. software de bază b. software de aplicaţii c. nucleu de programe specializate sistem de calcul
d.
10. Bazele de date care sunt integrate logic, dar stocate fizic, pe staţiile de lucru ale unei reţele sunt baze de date: a. locale b. ierarhice c. universale d. distribuite
Răspunsurile corecte la întrebările 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 Realizați o analiză în care să comparați avantajele și dezavantajele sistemelor de gestiune a bazelor de date relaționale și a sistemelor de gestiune a bazelor de date orientate obiect. Exemplificați 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, Bucureşti, 2008. 2. Popa Gh. şi colectiv – Baze de date Access, Editura CISON, Buc., 2003 3. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002 3. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006
UNITATEA DE ÎNVĂŢARE 2. MODELUL RELAȚIONAL AL DATELOR. Cuprins 2.1. Obiective 2.2. Competenţele unităţii de învăţare 2.3. Modelul relațional al datelor 2.4. Elementele modelului relațional al datelor 2.5. Operatorii modelului relational al datelor 2.6. Rezumat 2.7. Test de autoevaluare a cunoştinţelor 2.8. Test de evaluare a cunoştinţelor 2.9. Bibliografie 2.1. Obiective În această unitate de învățare se vor prezenta fundamentele teoretice ale modelului relational al datelor: conceptele utilizate in cadrul modelului relational si operatorii modelului relational al datelor; 2.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: Care sunt elementele care definesc modelul relațional al datelor; Care sunt principalele operații/operatori ale/ai modelului relațional al datelor; Durata de parcurgere a acestei unităţi de învăţare este de 2 ore.
00:00
2.3. Modelul relațional al datelor Modul în care sunt memorate datele în vederea prelucrării lor de către aplicații 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 depășite din cauza dificultăților de exploatare. Acestea au fost deja amintite in capitoulul precedent: Modelul ierarhic (arborescent) - structureaza datele sub formă ierarhicarborescentă: un nod (element) unic rădăcină şi un număr finit de noduri fiu, care la rândul lor au alte noduri succesoare, până la nodurile terminale, care nu mai au alţi succesori. Orice nod, exceptând nodul rădăcină, are un predecesor unic. Firma IBM a implementat acest model în SGBD-ul IMS. Modelul rețea. Datele sunt structurate sub forma unui graf cu legături bidirecţionale între noduri. Un nod poate avea mai mulţi predecesori şi mai mulţi succesori. În acest model relaţiile stabilite între noduri (entități) sunt de tipul m-n. Dezavantajul major al modelelor ierarhic și rețea 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 proiectării bazei de date dar și de timpul necesar scrierii de aplicații care poate fi foarte mare. În anul 1970, Edgar Frank Codd prin articolul ”A relational model for large
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 dispariția în timp a celorlalte modele de date: Asigură independența logică și fizică a datelor; Dispune de un suport teoretic foarte bun; Este un model mai simplu decât precedentele modele ceea ce îl face mai ușor de înțeles ș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 dispoziția 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; Îmbunătățește integritatea și confidențialitatea 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 relațional 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 relaţii R este o mulţime A de atribute cu următoarele doua proprietăţi: - identificare unica - mulţimea A de atribute identifică în mod unic fiecare tuplu al relaţiei R; - nu există o submulţime 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 relaţie poate avea mai multe chei candidate - una dintre acestea se alege pentru a fi folosită în aplicaţii ca şi cheie de identificare a tuplurilor. Cheia candidată folosită în acest scop se numeşte cheie primară; Cheia externa se defineste astfel. Fie R1, R2 doua relaţii. O cheie externă din R2 este o mulţime A2 de atribute cu următoarele proprietăţi: - 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 legăturile dintre tabele. Legăturile de tip 1-la-1 şi 1-la-n se implementează introducînd în una din tabele o cheie externă, care va face legătura cu cheia primară din tabela corespondentă. O legătură de tip n-la-m se implementează introducînd 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 relaţionale pentru a reprezenta informaţia 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) Constrângeri NOT NULL. Această constrângere interzice stocarea în baza de date a valorilor NULL, ceea ce înseamnă că nu se permite ca anumite coloane să fie goale. g.2) Constrângeri UNIQUE. Constrangerea UNIQUE specifică una sau mai multe coloane care identifică în mod unic fiecare tuplu din cadrul unui tabel. În acelaşi timp, fiecare coloană ce apare în clauza UNIQUE trebuie să fie declarată ca fiind NOT NULL. g.3) Constrângeri PRIMARY KEY (integritatea entităţii). Cheia primară a unui tabel trebuie să conţină o valoare unică nenulă pentru fiecare tuplu introdus în
tabel. g.4) Constrângeri FOREIGN KEY – cheie externa (integritatea referenţială). O valoare a cheii externe trebuie să aibă o valoare corespondentă în tabelul părinte. Tabelul ce conţine cheia externă se numeşte tabelul referit, copil sau extern, în timp ce tabelul ce conţine cheia candidat se numeşte tabelul de referinţă sau părinte. Integritatea referenţială are semnificaţia faptului că nici o bază de date relaţională nu poate conţine valori necorespunzătoare ale cheii externe. Cheia externă necorespunzătoare reprezintă o valoare a cheii externe dintr-un tabel referit pentru care nu există valoare în tabelul de referinţă. g.5) Constrângeri CHECK (validare). Există două tipuri de constrângeri CHECK. Una dintre ele este denumită constrângere de domeniu de valori, deoarece stabileşte mulţimea de valori pe care o poate lua un atribut, iar cealaltă se numeşte constrângere logică utilizată cu scopul de a pune în evidenţă anumite condiţii suplimentare asupra datelor incarcate in baza de date. Cel puţin următoarele două constrângeri trebuie să existe în orice bază de date relaţională: a. Integritatea entităţii: nici o componentă a cheii primare nu are voie să aibe valoarea NULL. b. Integritatea referenţială: pentru fiecare valoare nenulă a cheii externe din baza de date relaţională, trebuie să existe o valoare corespunzătoare din acelaşi domeniu de valori şi de acelaşi 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;
01:15 0
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 relaţional sunt operatorii din algebra relaţională şi operatorii din calculul relaţional. Algebra relaţională este o colecţie de operaţii formale aplicate asupra tabelelor (relaţiilor), şi a fost concepută de E.F.Codd. Operaţiile sunt aplicate în expresiile algebrice relaţionale care sunt compuse din operatorii relaţionali şi operanzi. Operanzii sunt întotdeauna tabele (una sau mai multe). Rezultatul evaluării unei expresii relaţionale este format dintr-o singură tabelă. Algebra relaţională are cel puţin puterea de regăsire a calcului relaţional. O expresie din calculul relaţional se poate transforma într-una echivalentă din algebra relaţională şi invers. E.F. Codd a propus opt operaţii ale algebrei relaţionale, grupate în două categorii: Operaţii pe mulţimi: reuniunea (union), intersecţia (intersection), diferenţa (difference) şi produsul cartezian (Cartesian product). Aceste operatii acţionează asupra tabelelor văzute ca mulţimi de elemente (tupluri), fără a tine cont de compoziţia fiecărui tuplu si reprezintă adaptarea operatiilor
echivalente din teoria mulţimilor; Operaţii relaţionale speciale: restricţia (restriction), proiecţia (projection), joncţiunea (join) şi diviziunea (division). Operaţiile relaţionale speciale iau în consideraţie compoziţia tuplurilor, formate din valori ale atributelor relaţiilor. 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 conţine tupluri din R1 sau R2 luate o singură dată; Intersecţia. R3 reprezinta intersectia relatiilor R1 si R2, notata R3 = R1 ∩ R2, unde R3 va conţine tupluri care se găsesc în R1 şi R2 în acelaşi timp. Diferenţa. R3 reprezinta diferenta relatiilor R1 si R2 notata R3 = R1 \ R2, unde R3 va conţine tupluri din R1 care nu se regăsesc în R2; Produsul cartezian. R3 reprezinta produsul cartezian al relatiilor R1 si R2, notat R3 = R1 × R2, unde R3 va conţine tupluri construite din perechi (v1, v2), cu v1∈R1 şi v2∈R2; Operatorii relaţionali speciali se definesc astfel: Restrictia este o operaţie relaţională unară (se aplica pe o singura tabela) care selectează dintre tuplurile relaţiei operand acele tupluri care îndeplinesc o condiţie dată. Operaţia de restricţie se mai numeşte şi selecţie. Din R1 se obţine o subtabelă R2, care va conţine o submulţime din tuplurile iniţiale din R1 ce satisfac un predicat (o condiţie). Numărul de atribute din R2 este egal cu numărul de atribute din R1. Numărul de tupluri din R2 este mai mic decât numărul de tupluri din R1. Proiecţia este o operaţie relaţională unară prin care se selectează o submulţime de atribute ale relaţiei operand. Din R1 se obţine o subtabelă R2, care va conţine o submulţime din atributele iniţiale din R1 şi fără tupluri duplicate. Numărul de atribute din R2 este mai mic decât numărul de atribute din R1. Joncţiunea este o operaţie binară a algebrei relaţionale prin care se combină tuplurile a două relaţii într-o singură relaţie fiind o derivaţie 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 operaţie binară a algebrei relaţionale prin care se obţine o relaţie care conţine atributele diferenţei mulţimilor de atribute ale relaţiilor operand.
Algebra relaţională este prin definiţie neprocedurală (descriptivă), iar calculul relaţional permite o manieră de căutare mixtă (procedurală/neprocedurală). Calculul relaţional se bazează pe calculul predicatelor de ordinul întâi (domeniu al logicii) şi a fost propus de E.F. Codd. Predicatul este o relaţie care se stabileşte între anumite elemente şi care poate fi confirmată sau nu. Predicatul de ordinul 1 este o relaţie care are drept argumente variabile care nu sunt predicate. Variabila poate fi de tip tuplu (valorile sunt dintr-un tuplu al unei tabele) sau domeniu (valorile sunt dintr-un domeniu al unei tabele). Cuantificatorii (operatorii) utilizaţi în calculul relaţional sunt: universal (∀) şi existenţial (∃). Construcţia de bază în calculul relaţional este expresia relaţională de calcul tuplu sau domeniu (funcţie de tipul variabilei utilizate). Expresia relaţională de calcul este formată din: operaţia de efectuat, variabile (tuplu respectiv domeniu), condiţii (de comparaţie, de existenţă), formule bine
definite (operanzi-constante, variabile, funcţii, predicate; operatori), cuantificatori. Pentru implementarea acestor operatori există comenzi specifice în limbajele de manipulare a datelor (LMD) din sistemele de gestiune a bazelor de date relaţionale (SGBDR). Aceste comenzi sunt utilizate în operaţii de regăsire (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: Operaţii pe mulţimi: reuniunea, intersecţia, diferenţa şi produsul cartezian; Operaţii relaţionale speciale: restricţia , proiecţia , joncţiunea şi diviziunea. 01:50 2.7. Test de autoevaluare a cunoștințelor (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 relaţionale se mai numeşte şi: a. rând b. linie de date c. tuplu d. cuplu de date 3. Tabelele unei baze de date relaţionale se mai numesc şi: a. baze de date b. structuri de date c. relaţii d. colecţii 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 legătură 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. oricâte chei primare d. oricâte chei candidat 7. Selecţia reprezintă un: a. element de bază al oricărui SGBD b. operator al modelului operaţional c. operator al modelului de date relational d. niciuna dintre variantele de mai sus 8. O coloană sau un grup de coloane care pe lângă cheia primară permite identificarea în mod unic a unei linii dintr-o tabelă se numeşte: a. cheie primară b. cheie unitară c. cheie externă d. cheie candidat 9. Valoarea NULL pentru o celulă aparţinând unei tabele dintr-o bază de date semnifică faptul că: a. în acea celulă se găseşte şirul vid b. în acea celulă se găseşte valoarea zero c. în acea celulă nu se găsesc date d. niciuna dintre variantele de mai sus 10. Reuniunea reprezintă un: a. Un tip special de jonctiune b. operator al modelului operaţional c. operator al modelului de legături d. niciuna dintre variantele de mai sus
Răspunsurile corecte la întrebările 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 cunoștințelor 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. Implementări 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 începători, editura B.I.C. ALL, 2003.
UNITATEA DE ÎNVĂŢARE 3. SISTEME DE GESTIUNE A BAZELOR DE DATE. MICROSOFT ACCESS Cuprins 3.1. Obiective 3.2. Competenţele unităţii de învăţare 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 cunoştinţelor 3.9. Test de evaluare a cunoştinţelor 3.10. Bibliografie 3.1. Obiective În această unitate de învățare se vor prezenta elementele arhitecturale ale mediului de Microsoft Access precum si cunoaşterea posibilităţilor de lucru Microsoft Access pentru gestiunea bazelor de date şi a sistemului de asistare software a utilizatorilor. 3.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: Cum se pot folosi posibilităţile de exploatare ale S.G.B.D. MS Access pentru gestiunea bazelor de date relaţionale; Cum se pot gestiona obiectele bazelor de date MS Access. Durata de parcurgere a acestei unităţi de învăţare este de 3 ore.
00:00
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 iniţial în anul 1992, pachetul Microsoft Office a evoluat rapid şi s-a dezvoltat substanţial, ajungând în prezent la versiunea MS-Office 2010, ca versiune îmbunătăţită faţă de versiunile anterioare (MS-Office 2007, MS-Office XP). Ţinând seama de ponderea însemnată ocupată de pachetul de programe integrate Microssoft Office în vânzările de produse software pentru microcalculatoare, se poate afirma că MS–Access 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 tradiţionale, pe care firma Microsoft le-a menţinut şi dezvoltat odată cu evoluţia 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 aplicaţii; Outlook – program pentru organizarea şi gestiunea poştei electronice.
Furnizati mai multe detalii privind componentele pachetelor MS-Office 2010, 2007, XP. Folositi drept sursa de informare Internetul. ........................................................................................................................................... ........................................................................................................................................... ...........................................................................................................................................
00:30
Pe lângă aceste componente, în versiunea MS-Office 2010 au mai fost introduse componentele următoare: Publisher – program pentru realizarea de publicaţii; 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 (ediţii): Starter Edition; Online Edition; Personal Edition; Home and Student Edition; Home and Business Edition; Standard Edition; Professional Edition Professional Plus Edition. MS-Office 2010 păstrează aceleaşi componente ca şi versiunea anterioară (MSOffice 2007), însă aducând unele îmbunătăţiri tuturor componentelor/aplicatiilor. MS-Office 2010, cu toate că nu are componente noi faţă de versiunea 2007, totuşi componentele conţinute au fost substanţial îmbunătăţite. Astfel, pentru a ajuta utilizatorii la operaţiile complicate, Microsoft a introdus: Task Panes – una dintre cele mai importante îmbunătăţiri aduse MS-Officeului, constând dintr-o serie de panouri verticale, situate pe partea dreaptă a ecranului, care apar când este necesar (de regulă după lansarea în execuţie a componentei MS-Office), oferind posibilitatea ca printr-un click de mouse să se efectueze diferite operaţii, care ar fi necesitat în versiunile anterioare folosirea unor casete de dialog; Smart Tags –casete mici de culoare gri care se ataşează singure anumitor intrări. Aceste casete ajută utilizatorii în unele cazuri să controleze eficient MS-Officeul astfel încât să efectueze automat anumite schimbări; Disaster Recovery – o îmbunătăţire introdusă special pentru a salva documentele atunci când MS-Office-ul se blochează; Speech Recognition – una dintre cele mai însemnate îmbunătăţiri şi extraordinare carateristici, care permite dictarea şi utilizarea de comenzi vocale în majoritatea aplicaţiilor efectuate în MS-Office fără 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 îmbunătăţire care permite crearea unui număr de identificare (ID) bazat pe profilul hardware al utilizatorului, profil care trebuie transmis către firma Microsoft pentru a preveni instalarea pachetului MS-Office pe alte PC-uri decât cele cu licenţă. În pachetul MS–Office componentele au fost proiectate pentru a lucra împreună
într-un mediu integrat, oferind utilizatorilor posibilitatea de a depăşi limitele componentelor individuale. Astfel, folosind mediul integrat MS–Office se poate realiza o mare varietate de funcţii, cum ar fi: înglobarea informaţiilor dintr-un anumit tip de document într-un alt tip, permiţând editarea acestora fără a se modifica sursa datelor; crearea de legături între fişiere, astfel încât modificarea informaţiilor într-un fişier să determine actualizarea automată a acestora în celelalte fişiere catre care puncteaza legaturile; combinarea unei baze de date cu adrese, creată în Access, cu un formular de scrisoare, realizat în Word, pentru a obţine rapid de scrisori; administrarea mesajelor şi a programului de lucru, partajarea de informaţii în diverse moduri, folosind programul Microsoft Outlook; colaborarea eficientă cu ceilalţi parteneri, prin lucrul simultan în registre de calcul partajate şi prin schimbul de informaţii. Caracteristicile de baza şi facilităţile principale de exploatare ale S.G.B.D.-ului MS-Access sunt următoarele: MS-Access este un S.G.B.D. care permite gestionarea bazelor de date relaţionale folosite în mod exclusiv sau în mod multiutilizator (partajat); MS-Access se bazează pe interfaţa grafică de utilizator (GUI-Graphic User Interface), specifică produselor software de tip Windows, care este uşor de folosit, oferind utilizatorului un mediu de lucru prietenos; MS-Access se fundamentează pe concepte noi (obiect, proprietăţi ale obiectelor, eveniment, procedură care se lansează în execuţie când apare un eveniment, programare orientată pe obiecte şi evenimente etc); MS-Access este un S.G.B.D. deschis comunicării cu alte sisteme de gestiune a bazelor de date relaţionale (dBASE, Fox Pro, Paradox); MS-Access permite realizarea cu uşurinţă a importului şi exportului de date cu alte componente MS-Office (de exemplu cu Excel, fisiere XML, text etc.); MS-Access permite efectuarea de aplicaţii complexe folosind limbajul VBA (Visual Basic for Applications) sau generatorul de macroinstrucţiuni; MS-Access permite interogarea bazelor de date relaţionale, fie în mod grafic folosind interfaţa 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 conţine instrumente Wizard, care permit utilizatorului să creeze cu uşurinţă obiectele care intra in alcatuirea unei baze de date (tabele, formulare, rapoarte etc); MS-Access permite accesul la baze de date din reţeaua Internet, fiind un mediu de lucru util pentru publicarea de informaţii în pagini Web; MS-Access se poate instala pe calculatoare personale care conţin 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 următoarele: MS-Access este un S.G.B.D. care permite gestionarea bazelor de date relaţionale, se bazează pe interfaţa grafică de utilizator (GUI-Graphic User Interface), se fundamentează pe concepte noi (obiect, proprietăţi ale obiectelor,
eveniment), este deschis comunicării cu alte sisteme de gestiune a bazelor de date relaţionale (dBASE, MySQL, etc.), permite interogarea bazelor de date relaţionale, fie în mod grafic folosind interfaţa QBE (Query By Example), fie folosind limbajul SQL (Structured Query Language). 3.4 Structura bazelor de date Microsoft Access
01:00
Microsoft Access este un S.G.B.D. elaborat pentru gestionarea bazelor de date realaţionale. O bază de date Access se poate defini ca o colecţie 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 deosebeşte de bazele de date definite în alte SGBD-uri. Tables (tabele) sunt obiectele definite de utilizator în care datele sunt stocate sub formă de înregistrări (articole) denumite si tupluri şi care reprezintă astfel expresia modelului relaţional 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 (afişarea pe ecran) acestor date sau controlul întregii aplicaţii Access. Prin aceste obiecte se poate efectua transferul datelor introduse de utilizator în tabele (baza de date), fiind astfel un mod indirect de încărcare a bazei de date. Reports (rapoarte) sunt obiecte care permit afişarea si tipărirea 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 cerinţelor, specificaţiilor şi exigenţelor utilizatorilor. Macros (comenzi macro) sunt obiecte ce definesc acţiuni care se execută la declanşarea unui eveniment. Obiectele macro, identificate printr-un nume, sunt create pentru automatizarea executării de acţiuni asupra unor obiecte din baza de date. Modules (module) sunt obiecte care conţin proceduri definite de utilizator scrise în limbajul VBA (Visual Basic for Applications) care este un subset al limbajului de programare Visual Basic. Colecţia de obiecte, prin care se poate defini o bază de date în SGBD Microsoft Access, se caracterizează prin interdependenţa şi interacţiunea obiectelor conţinute în scopul gestionării informatiilor din baza de date şi realizării de aplicaţii complexe. Astfel, în tabele (tables) sunt stocate datele introduse iniţial de la tastatură prin formulare (forms). Informatiile necesare utilizatorilor la un moment dat sunt extrase (selectate) prin cereri de interogare (queries) şi sunt afişate sau tipărite 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 colecţie 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: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 întrebării pozitionata in partea dreapta pe bara de meniuri Access; acţionarea tastei funcţionale F1. Sistemul de asistare a utilizatorilor (Help) permite acestora să procedeze în mod diferenţiat pentru a primi asistenţă software în funcţie de cerinţele şi complexitatea aplicaţiilor. După acţionarea tastei funcţionale F1 sau activarea opţiunii similare din meniul Help se afişează fereastra tipică de asistenta Help, în care utilizatorul este invitat să introducă o întrebare şi unde va primi răspunsul aşteptat. Sistemul de asistenta Help a fost introdus începând cu versiunea 97 a pachetului Microsoft Office pentru asistarea continuă a utilizatorilor pe întreaga perioadă de proiectare, realizare si exploatare a aplicaţiilor. 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 opţiunea Show content from Office.com din lista de opţiuni a meniului Help, pentru a vizualiza pagini Web cu informaţii de asistenţă software, în timpul unei sesiuni de lucru în reţeaua 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 găseşte în partea din dreapta-sus a ferestrei de aplicaţie MS Access. Astfel, dacă un utilizator doreşte să obţină 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 întrebării pozitionata in partea dreapta pe bara de meniuri Access fie prin acţionarea tastei funcţionale F1. 3.6. Instrumentele de ajutor Wizard
01:50
Pentru usurarea realizarii aplicaţiilor în SGBD Access si cresterea eficientei si productivitatii muncii realizatorilor de aplicatii, compania Microsoft a introdus o serie de instrumente de ajutor denumite Wizard (vrăjitor, 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 funcţie de anumite specificaţii, cerinţe, exigenţe, opţiuni, preferinţe ale utilizatorilor. Instrumentele Wizard generale ajută utilizatorii pentru realizarea aplicaţiilor care pot fi generate automat prin folosirea unor şabloane, fiind create toate obiectele necesare folosind anumite specificaţii ale utilizatorilor. Un exemplu concret în acest sens poate fi crearea bazei de date pentru evidenţa 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ă specificaţii, alege optiuni prezentate de Wizard pe baza cărora se crează obiectul respectiv. Instrumentele de ajutor Wizard trebuie folosite cu anumite rezerve, deoarece nu toate aplicaţiile se pretează în aceeaşi măsură 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 când obiectul tabel ce va fi creat conţine câmpuri 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
02:05
Limbajul de programare BASIC (Beginner’s All – Purpose Symbolic Instruction Code) a fost introdus de compania Microsoft ca un limbaj comun pentru realizarea tuturor aplicaţiilor care folosesc proceduri tip macro (bazate pe comenzi macro). Limbajul BASIC a fost apoi tranformat in Visual Basic, odata cu aparitia
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, având ca rezultat apariţia unui nou limbaj cunoscut sub denumirea de Visual Basic for Applications–VBA. 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) conţin programe elaborate în limbajul VBA folosite pentru realizarea aplicaţiilor 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 colecţie de declaraţii şi proceduri descrise împreună ca un întreg, structurat în două secţiuni: secţiunea de declaraţii; secţiunea 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 răspuns la un eveniment iniţiat 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 ţinând seama de cerinţele utilizatorului. Astfel, o procedură, după ce a fost definită, poate fi apelată repetat din orice obiect al bazei de date, cu excepţia cazului în care a fost declarată Private. Pentru a efectua cât mai simplu consultarea şi actualizarea modulelor/procedurilor, se recomandă ca acestea să fie grupate după criterii funcţionale. Modulele/procedurile create pot fi ulterior modificate, activând opţiunea Design View in secţiunea 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ă verificări sintactice: la nivel local, asupra fiecărei instrucţiuni, odată cu scrierea (editarea) acesteia; la nivel contextual, asupra întregii proceduri; în momentul compilării explicite, efectuată cu opţiunea Compile din meniul Debug; în momentul execuţiei propriu – zise, cu opţiunea Go/Continue din meniul Run sau, mai simplu, apăsând pe tasta F5.
Figura 3.3 Editarea unui modul În momentul scrierii (editării) unei proceduri VBA are loc şi afişarea 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ă reţină cuvintele cheie (obiecte, metode, proprietăţi, tipuri de date etc), aşa cum sunt definite, unele dintre acestea fiind destul de lungi. În schimb utilizatorul trebuie să ştie de existenţa acestor cuvinte cheie, să aleagă elementul contextual corespunzător, fără a mai fi necesar să introducă de la tastatură denumirea completă, ceea ce permite editarea rapidă a procedurii.
Instrucţiunile se introduc în procedură, în general câte una pe un rând, fiind totuşi permisă introducerea mai multor instrucţiuni pe acelaşi rând, separate prin caracterul special “:”. O instrucţiune poate fi editată pe mai multe rânduri, cu condiţia ca la sfârşitul fiecărui rând să se pună caracterul special “-“, cu excepţia ultimului rând. Procedura, unele părţi din procedură sau instrucţiuni pot fi însoţite 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 rulării programului. Folosind sistemul Help documentati-va despre deosebirile dintre obiecte Macros si obiectele Modules. Descrieti cateva dintre aceste deosebiri. …………………………………………………………………………………………... …………………………………………………………………………………………... …………………………………………………………………………………………...
02:40
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 realaţionale. O bază de date in Access se poate defini ca o colecţie 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.
3.9. Test de autoevaluare a cunoștințelor (timp necesar : 20 minute) 1. Începând cu care versiune Microsoft Office au fost introduse componente (aplicatii) noi faţă de cele cinci componente tradiţionale ? 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 execuţie a unui program din pachetul Microsoft-Office se numesc: a.Task Panes b. Smart Tags c. Microsoft Office d. Blank Database 3. Interfaţa grafică de utilizator specifică produselor software de tip Windows, inclusiv programului Microsoft-Access se numeşte: a. VBA b. QBE c. GUI d. SQL 4. Suportul de programare folosit în aplicaţiile cu baze de date tip Microsoft Access se numeşte: a. GUI b. QBE c. VBA d. SQL 5. În bazele de date Microsoft-Access expresia modelului relaţional 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 prelucrării datelor din tabele şi interogări 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 afişarea (tipărirea) rezultatelor prelucrării 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 acţiuni care se execută la declanşarea unui eveniment se numesc: a. Macros b. Queries c. Forms d. Reports 10. În bazele de date Microsoft-Access obiectele care conţin proceduri definite de utilizatori şi editate în mediul de programare VBA se numesc: a.Tables b. Queries c. Macros d. Modules Răspunsurile corecte la întrebările din testul de tip grilă: 1. b 2. a 3. c 4. c 5. a 6. b 7. c 8. d 9. a
10. d
3.10. Test de evaluare a cunoștințelor 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, Bucureşti, 2002 2. Popa Gh. şi colectiv – Baze de date Access, Editura CISON, Buc., 2003 3. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 5. Sagman S. – Microsoft OFFICE 2003 pentru Windows (Ghid de învăţare rapidă prin imagini), Editura Corint, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura Economică, Bucureşti, 2000 3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura CISON, Bucureşti, 2002 4. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002
5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006
UNITATEA DE ÎNVĂŢARE 4. GESTIUNEA OBIECTELOR TABLES. Cuprins 4.1. Obiective 4.2. Competenţele unităţii de învăţare 4.3. Crearea unui obiect de tip Table (tabela) 4.4 Stabilirea relatiilor intre tabele 4.5. Rezumat 4.6. Test de autoevaluare a cunoştinţelor 4.7. Test de evaluare a cunoştinţelor 4.8. Bibliografie 4.1. Obiective În această unitate de învățare se vor prezenta modurile de creare a unui obiect Table şi de definire a relaţiilor standard dintre obiecte Tables, operaţiilee care se pot efectua cu înregistrările din tabele si modul de efectuare a modificării structurii unei tabele şi de includere a unei tabele într-o bază de date. 4.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: Cum se poate crea un obiect Table, folosind unul din modurile afişate în fereastra de dialog New Table; Cum se poate stabili tipul sau natura câmpurilor de date din structura înregistrărilor obiectului Table; Cum se pot specifica proprietăţile câmpurilor de date în funcţie de specificul aplicaţiilor. Durata de parcurgere a acestei unităţi de învăţare este de 3 ore. 4.3. Crearea unui obiect de tip tabel
00:00
Începând 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 găsi 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.
Figura 4.1 Noua interfata grafica a Microsoft Access 2010 Ms-Access permite crearea unei baze de date care poate conţine până 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, afişată după lansarea în execuţie a produsului MS-Access: se selectează butonul Blank Database; se execută click-stânga pe butonul CREATE (fig. 4.4); din fereastra afişată 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 câmpurilor de date; completarea tabelului cu date (înregistrări sau tupluri). Acest mod de creare a unei tabele se aseamănă 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, fără a permite stabilirea unor detalii (de exemplu, proprietăţile 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), permiţând: definirea câmpurilor de date care aparţin structurii tabelului (nume câmp, tip date, eventual descriere câmp); specificarea proprietăţilor câmpurilor de date care au fost definite, în funcţie de tipul de date conţinute.
Figura 4.6 Crearea unei tabele in modul Design View Numele câmpului de date (Field Name) trebuie să fie unic în structura tabelului şi să conţină cel mult 64 caractere (din care se exclud caracterele ! . [ ] deoarece au semnificaţii speciale în MS-Access). Exemple: Cod material
Cod–mat
CODMAT
00:50
Tipul de date (Data Type) se poate alege, în funcţie de natura câmpului de date, dintr-o listă care se afişează efectuând clik-stânga în coloana Data Type şi apoi pe butonul derulant afişat. Descrierea câmpului de date (Description) este opţională, însă este recomandabil să apară deoarece permite specificarea de informaţii suplimentare referitoare la câmpul de date respectiv. Proprietăţile câmpului de date (Field Properties) se afişează în partea de jos a ferestrei de dialog pentru crearea unui tabel în modul Design View. Aceste proprietăţi diferă în funcţie de tipul de date ales pentru fiecare câmp de date (atribut). Unele dintre proprietăţile de bază sunt comune pentru toate tipurile de date. Cu excepţia proprietăţilor booleene, adica a acelora care permit doar doua valori – true respective false - (Required, Allow Zero Length şi Indexed), singurele proprietăţi care trebuie specificate sunt Field Size (pentru tipurile de date Text, Number şi Autonumber) şi New Values (pentru Autonumber). Celelalte proprietăţi disponibile sunt opţionale. Aceste proprietăţi se găsesc î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 câmpul de date respectiv. După definirea câmpului de date şi specificarea proprietăţilor acestor câmpuri urmează salvarea tabelului creat cu astfel de structură, având conţinut vid. Salvarea tabelului se poate efectua în fereastra de dialog Save As, care se afişează procedând în unul din următoarele trei moduri: printr-un clik pe opţiunea 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 afişează 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 alcătuită din unul sau mai multe câmpuri de date (atribute). Un tabel trebuie să conţină 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-stânga pe pictograma Primary Key. Cheia primară mai poate fi stabilită şi cu opţiunea Primary Key din meniul Edit. Dacă utilizatorul nu a stabilit cheia primară pentru tabelul respectiv, atunci acesta va fi consultat de către MS-Access privind posibilitatea definirii unei chei primare în mod implicit prin introducerea automată a unui nou câmp de date în structura tabelului (câmp denumit ID). Pentru completarea tabelului cu înregistrări (tupluri) se selectează numele acesteia din grupul de obiecte Tables din fereastra de dialog Database afişată. Apoi se execută clik-stânga pe butonul de comandă Open. În fereastra de dialog Table (având numele tabelului) afişată se introduc în câmpurile de date definite datele corespunzătoare 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 menţiona că: modul Import Table permite importul de obiecte şi date din surse externe, cum ar fi: Excel, XML, fişiere text sau din alte baze de date Access; modul Link Table permite crearea de legături între baza de date curentă şi tabele din surse externe (oricare dintre cele menţionate 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 relaţiilor dintre tabele
01:30 5
Posibilitatea de creare şi folosire a relaţiilor dintre tabelele unei baze de date constituie punctul forte al bazelor de date relaţionale şi al sistemelor de gestiune a bazelor de date relaţionale, 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ă relaţiile standard dintre aceste tabele, folosind câmpuri de date (atribute) cheie care sunt comune tabelelor pe care le leagă. Aceste relaţii trebuie să se stabilească înainte de completarea tabelelor cu înregistrări (tupluri) şi de formularea cererilor de interogare (Queries). Relaţiile standard (de tip 1÷1, 1÷n, m÷n) corespund unor legături tipice dintre tabele şi anume: relaţiile de tip 1÷1 se stabilesc în cazul în care unei înregistrări dintr-un tabel îi corespunde o singură înregistrare dintr-un alt tabel, ceea ce înseamnă că unei înregistrări a câmpului de date cheie primară dintr-un tabel îi corespunde o singură înregistrare a unui câmp de date cu rol de cheie externă aparţinând înregistrărilor dintr-un alt tabel; relaţiile de tip 1÷n se stabilesc în cazul în care unei înregistrări dintr-un tabel îi corespund mai multe înregistrări dintr-un alt tabel, ceea ce înseamnă că aceeaşi valoare a câmpului de date cheie primară dintr-un tabel se regăseşte ca înregistrare a câmpului de date cu rol de cheie externă în mai multe înregistrări dintr-un alt tabel; relaţiile de tip m÷n se stabilesc ca asocieri libere, iar câmpurile de date cu rol de cheie primară au valori duplicate. Stabilirea relaţiilor de tip 1÷1 şi 1÷n se bazează pe respectarea restricţiilor de integritate referenţială, restricţii care garantează validitatea relaţiilor existente între înregistrările aparţinând la tabele diverse. Pentru stabilirea relaţiilor dintre tabele este necesar să se deschidă fereastra de dialog Relationships (fig.4.7). Această fereastră conţine caseta de dialog cu bifă denumită Enforce Referential Integrity (fig.4.7), care se activează când: câmpul de date din tabelul sursă este o cheie primară; cele două câmpuri de date sunt de acelaşi tip în cele două tabele; cele două tabele se găsesc în aceeaşi bază de date.
Figura 4.7 Crearea relatiilor intre tabele Să ne reamintim... Relatiile intre tabele sunt de mai multe tipuri : 1÷1, 1÷n, m÷n. 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 cunoștințelor (timp necesar : 20 minute) 1. Modul de creare a unui tabel care se aseamănă cu lucrul în MS-Excel se numeşte: 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, opţiunea: 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.experţii Access 5. După definirea câmpurilor de date într-un tabel din baza de date şi specificarea proprietăţilor acestora, urmează operaţia: a. completarea tabelului cu înregistrări 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 opţiunii: a. Open b. Design c. New d. Preview 7. Pentru definirea unei relaţii dintre un tabel şi alte tabele ale unei baze de date, tabelul trebuie să conţină: a. o cheie primară b. un câmp 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 câmp 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 câmp de date dintr-un tabel poate fi: a. 8 caractere b. 64 caractere c. 255 caractere d.1024 caractere
Răspunsurile corecte la întrebările 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 cunoștințelor 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, Bucureşti, 2002 2. Popa Gh. şi colectiv – Baze de date Access, Editura CISON, Buc., 2003 3. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 5. Sagman S. – Microsoft OFFICE 2003 pentru Windows (Ghid de învăţare rapidă prin imagini), Editura Corint, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura Economică, Bucureşti, 2000 3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura CISON, Bucureşti, 2002 4. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002 5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006
UNITATEA DE ÎNVĂŢARE 5. GESTIUNEA OBIECTELOR QUERIES Cuprins 5.1. Obiective 5.2. Competenţele unităţii de învăţare 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 cunoştinţelor 5.10. Test de evaluare a cunoştinţelor 5.11. Bibliografie 5.1. Obiective În această unitate de învățare 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); • Operaţiile care se pot efectua cu obiecte Queries; • Modul de efectuare a modificării structurii unui obiect Query într-o bază de date; • Modul de efectuare a câmpurilor calculate şi de includere în cererile de selecţie. 5.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: Cum se poate crea un obiect Query, folosind unul din modurile afişate în fereastra de dialog New Query; Cum se poate modifica structura unui obiect de tip Query în funcţie de cerinţele de interogare a bazei de date; Cum se pot realiza câmpurile calculate în cererile de selecie în funcţie de specificul aplicaţiilor. Cum se poate lucra cu diferite tipuri de obiecte Queries în contextul cerinţelor de interogare a bazei de date. Durata de parcurgere a acestei unităţi de învăţare este de 3 ore.
00:00
5.3. Notiunea de interogare Interogarea unei baze de date Access înseamnă: • regăsirea 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 intenţionează să le prelucreze în cadrul unor aplicaţii. Pentru efectuarea interogărilor în baza de date MS-Access pune la dispoziţia utilizatorilor obiectele de tip cerere (Queries). Rezultatul unei interogări (cereri) se prezintă sub forma unei foi de răspuns dinamic denumită DynaSet, care există fizic atît cît durează interogarea (cererea). Interogările (cererile) sunt legate logic, astfel încât toate modificările efectuate asupra unor date afişate într-o interogare (cerere) sunt operate şi în tabela sau tabelele cu datele sursă. O interogare (cerere) se poate folosi pentru:
• regăsirea datelor înregistrate într-o tabelă sau în tabelele bază de date; • efectuarea unor operaţii de prelucrare (de exemplu, operaţii de calcul) cu date din tabelele bazei de date; • actualizarea datelor din baza de date, prin cereri de tip acţiune; • pregătirea adecvată a datelor din baza de date pentru a fi vizualizate şi / sau tipărite sub formă de formulare sau rapoarte; • realizarea de reprezentări agrafice, având ca sursă de date o tabelă de sinteză a datelor.
00:20
Furnizati mai multe detalii pentru noţiunea de „interogare si răspuns dinamic”. Folosiţi drept principală sursă de informare Internetul. ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... 5.4 Tipuri de interogari În MS-Access există patru tipuri de interogări (cereri): interogări de selecţie; interogări de analiză încrucişată; interogări de acţiune; interogări parametrizate. Interogările de selecţie permit utilizatorilor să extragă date dintr-o tabelă sau din mai multe tabele bază de date şi / sau din alte interogări şi să efectueze şi operaţii de calcul. Interogările de analiză încrucişată permit să sinteti-zeze datele şi rezultatele obţinute din calcule, sub forma unei foi de calcul tabelar. Interogările de acţiune permit să creeze noi tabele şi să actualizeze baza de date. Interogările parametrizate permit să efectueze modi-ficarea dinamică a criteriilor de căutare în baza de date. Cele mai frecvent folosite în aplicaţiile utilizatorilor sunt interogările de selecţie a datelor din baza de date. Să ne reamintim... Pentru efectuarea interogărilor în baza de date MS-Access pune la dispoziţia utilizatorilor obiectele de tip cerere (Queries). In MS-Access exista 4 tipuri de interogari: de selectie, de analiza incrucisata, de actiune, parametrizate. 5.5 Operaţii cu obiecte de tip interogare
00:30 5
Cu obiectele de tip interogare (cerere) se pot efectua operaţiile următoare: operaţia de creare (construire); operaţia de folosire (deschidere şi afişare) a datelor; operaţia de modificare (a definiţiei cererii realizate prin operaţia de creare).
Crearea unui obiect de tip interogare. Această operaţie se poate efectua: în mod grafic (cu interfaţă grafică); în mod SQL.
În MS–Access crearea unui obiect de tip interogare (cerere) porneşte 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 afişate: Simple Query Wizard; Crosstab Query Wizard; Find Duplicates Query Wizard; Find Unmatched Query Wizard.
Figura 5.1 Fereastra New Query afişând opţiunile pentru crearea de obiecte Queries Simple Query Wizard - permite crearea de obiecte query simple, fără restricţii şi formulate pentru o singură tabelă bază de date. Crosstab QueryWizard - permite crearea de obiecte query din tabele încrucişate. Find Duplicates Query Wizard - permite căutarea înregistrărilor duplicat. Find Unmatched Query Wizard – permite căutarea înregistrărilor fără corespondent în cele două tabele. Pentru crearea unui obiect query de selecţie in modul de proiectare se alege Query Design din toolbar-ul aplicatiei. După activarea acestei opţiuni se afişează 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 interogări (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 afişând 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, totuşi, necesar se poate redeschide fereastra Show Table printr-un click pe pictograma Show Table de pe bara de instrumente sau executând opţiunea Show Table din meniul Query. Fereastra Query este împărţită în două zone: zona superioară în care se poate vizualiza structura obiectului query, adică tabelele/interogările sursă de date şi relaţiile stabilite între acestea; zona inferioară, grila Query Design, alcătuită din următoarele elemente structurale: o Field: pentru specificarea numelui câmpului de date selectat; o Table: pentru precizarea sursei de date; o Sort: pentru a preciza, dacă este cazul, ordinea aranjării înregistrărilor în funcţie de câmpul de date selectat; o Show: pentru înhibarea, dacă este cazul, a afişării înregistrărilor din câmpul de date selectat; o Criteria: pentru precizarea unor eventuale criterii de selecţie prin folosirea unor expresii Acces corespunzătoare; o Or: pentru a preciza criterii de selecţie alternative, folosind operatorul Or. După specificarea sursei de date, definirea obiectului query de selecţie implică parcurgerea unor etape de dialog în ordinea următoare: specificarea câmpurilor de date în funcţie de care se va realiza selecţia înregistrărilor, prin preluarea acestor câmpuri din bara derulantă din rândul Field (zona inferioară); specificarea criteriului de selecţie, prin introducerea unei expresii Access în
rândul Criteria, eventual şi în rândul Or; expresia se poate tasta sau construi folosind generatorul de expresii (Expression Builder), care se activează cu un click pe opţiunea Build de pe bara de instrumente; specificarea, dacă este cazul, şi a unei operaţii de sortare a înregistrărilor selectate, prin activarea elementului Sort, apoi selectând şi executând opţiunea (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 următoare: executând cu clik pe pictograma View, de pe bara de instrumente; executând un click pe pictograma Run de pe aceeaşi bară de instrumente; exectând opţiunea 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.
01:30
5.6 Modificarea unui obiect de tip interogare Un obiect Query creat se poate modifica ulterior, operaţie care constă în: introducerea de câmpuri de date noi (coloane Field); ştergerea unor câmpuri de date existente (deja definite); modificarea unui criteriu de selecţie sau de sortare; modificarea opţiunilor de afişare.
Fiecare dintre aceste moduri se execută procedând astfel: un câmp de date nou se introduce selectând câmpul înaintea căruia se efectuează introducerea, apoi executând un click pe opţiunea Insert Column din meniul Design; un câmp de date existent se şterge selectând câmpul în cauză, apoi apăsând tasta Delete sau executând un click pe pictograma Cut de pe bara de instrumente, respectiv pe opţiunea Delete Column din meniul Design.
După ce a fost proiectată şi eventual modificată, o interogare (cerere) trebuie salvată, operaţie care se poate executa cu opţiunea Save din meniul File sau folosind combinatia de taste Ctrl-S. Dacă operaţia de salvare se efectuează după proiectare sau după modificare (dacă salvarea este condiţionată) utilizatorul este invitat să introducă de la tastatură pe bara de text a ferestrei Save As, numele interogării (cererii) şi să selecteze de pe bara de derulare tipul acesteia; implicit numele atribuit de Access acestui obiect este Query n, unde n reprezintă numărul obiectului, iar tipul este Query. Obiectele de tip selecţie pot conţine şi câmpuri de date calculate. Astfel de câmpuri returnează la executarea obiectului valoarea expresiilor Access asociate lor. O expresie în Access este alcătuită din elementele următoare: 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, câmpuri de date, formulare etc)); funcţii (dată calendaristică, text; matematice, financiare, funcţii diverse). Expresiile MS-Access se pot folosi într-un obiect query de selecţie drept
criteriu de selecţie sau pentru a calcula anumiţi indicatori. Obiectele query de selecţie pot returna înregistrări din tabele sau alte interogări de date care corespund nu numai unor anumite cereri ale căror criterii de selecţie se pot preciza de utilizatori în funcţie de cerinţele lor. Astfel de criterii de selecţie se introduc pe rândul Criteria, în locul unor expresii, sub formă de mesaje incluse între paranteze drepte, care se afişează în momentul executării interogării (cererii), ca să se poată introduce criteriile de selecţie. De asemenea, obiectele query de selecţie pot returna înregistrări din tabele sau interogări 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 opţiunea SQL View.
02:20
5.7 Alte tipuri de interogări În practica gestionării bazelor de date MS-Access, utilizatorii mai pot folosi şi alte tipuri de interogări (cereri), în funcţie de anumite cerinţe şi anume: interogări (cereri) de sintetizare a datelor; interogări (cereri) de căutare a înregistrărilor duplicate; interogări (cereri) de căutare a înregistrărilor (tuplurilor) fără corespondent; interogări (cereri) încrucişate; interogări (cereri) de tip acţiune: o generatoare de tabele; o pentru adăugare de înregistrări în tabele; o pentru ştergerea de înregistrări din tabele; o pentru actualizarea de înregistrări din tabele. Interogarile reprezinta: …………………………………………………………………………………………... …………………………………………………………………………………………... …………………………………………………………………………………………... 5.8 Rezumat Interogarea unei baze de date Access înseamnă: regăsirea 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 intenţionează să le prelucreze în cadrul unor aplicaţii.
02:50
În MS-Access există patru tipuri de interogări (cereri): interogări de selecţie; interogări de analiză încrucişată; interogări de acţiune; interogări parametrizate.
În MS–Access crearea unui obiect de tip interogare (cerere) porneşte 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 cunoștințelor (timp necesar : 20 minute) 1. Obiectele MS-Access care conţin 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 relaţional 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 prelucrării 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 afişarea 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 acţiuni care se execută la declanşarea unui eveniment se numesc: a. Queries b. Forms c. Reports d. Macros 7. Pentru realizarea interogărilor SGBD, MS-Access pune la dispoziţia utilizatorilor: a. Tables b. Queries c. Forms d. Reports 8. Rezultatul realizării unei interogări se prezintă sub forma unei foi de răspuns dimamic denumită: a. DynaSet b. Crosstab c. Criteria d. Column 9. Funcţia de creare de noi tabele şi de actualizare a bazei de date se numesc cereri: a. de selecţie b. de acţiune c. de analiză încrucişată d. Parametrizate 10. Obiectele bazelor de date Access prin care se pot efectua aplicaţii în modul interfaţă QBE se numesc: a. tabele b. interogări c. formulare d. rapoarte Răspunsurile corecte la întrebările 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 cunoștințelor 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, Bucureşti, 2002 2. Popa Gh. şi colectiv – Baze de date Access, Editura CISON, Buc., 2003 3. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 5. Sagman S. – Microsoft OFFICE 2003 pentru Windows (Ghid de învăţare rapidă prin imagini), Editura Corint, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura Economică, Bucureşti, 2000 3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura CISON, Bucureşti, 2002 4. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002 5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006
UNITATEA DE ÎNVĂŢARE 6. GESTIUNEA OBIECTELOR FORMS Cuprins 6.1. Obiective 6.2. Competenţele unităţii de învăţare 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 cunoştinţelor 6.12. Test de evaluare a cunoştinţelor 6.13. Bibliografie 6.1. Obiective În această unitate de învățare 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; clasificăraea obiectelor Forms după criteriile: sursa de date, modul de afişare, modul de interacţiune; proprietăţile obiectelor Forms pe categorii (Format, Data, Event, Other) şi a modului de setare pentru a fi preluate în formulare şi subformulare. 6.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: • Cum se poate crea un obiect Form, folosind unul din modurile afişate în fereastra de dialog New Form; • Cum se poate modifica structura unui obiect de tip Form în funcţie de cerinţele de gestiune a bazei de date; • Cum se pot seta (stabili) proprietăţile obiectelor Forms în funcţie de specificul aplicaţiilor; • Cum se poate lucra cu formulare şi subformulare în funcţie cerinţele de gestiune a bazei de date. Durata de parcurgere a acestei unităţi de învăţare este de 3 ore. 6.3. Definirea şi clasificarea formularelor
00:00
Formularele (Forms) sunt machete (ferestre) folosite pentru efectuarea de operaţii tipice (curente) cu datele din tabelele bazei de date şi anume: adăugări de înregistrări (tupluri) în tabelele bazei de date MS-Access; ştergeri de înregistrări (tupluri) din tabelele bazei de date MS-Access; modificări privind conţinutul unor înregistrări din tabelele bazei de date; consultări privind datele din înregistrările tabelelor bazei de date. Pentru efectuarea acestor operaţii un formular (form) trebuie să conţină diferite
elemente grafice (obiecte vizuale) denumite controale. Furnizati mai multe detalii pentru noţiunea de „controale grafice”. Folosiţi 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: existenţa unei interfeţe 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, restricţiile impuse de necesitatea corelării datelor din tabelele diferite; posibilitatea actualizării mai multor tabele printr-un singur formular, operaţie realizabilă folosind subformulare. Formularele se pot clasifica după diferite criterii: a) după sursa de date: formulare legate (bound) – care permit afişarea sau actualizarea datelor din tabelele bazei de date; formulare nelegate (unnbound) – care sunt destinate pentru afişarea sau editarea unor date care nu sunt stocate în tabelele bazei de date; astfel de formulare se folosesc de obicei pentru: ◦ afişarea de mesaje; ◦ vizualizarea unor informaţii despre sistem; ◦ preluarea datelor pentru afişarea unui raport etc; b) după modul de afişare: formulare singulare (single forms), care afişează numai înregistrarea curentă; formulare continui (continuous forms), care permit afişarea mai multor înregistrări; formulare foaie de calcul (datasheet forms), care afişează datele din înregistrări ca într-o foaie de calcul (pe linii şi coloane); formulare de tip grafic (chart forms), care afişează datele din înregistrări sub formă de grafic; c) după modul de interacţiune: 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 afişate în grupa de obiecte Forms. În această fereastră cu formularele se pot executa operaţii prin trei butoane de comandă: New, pentru crearea unui nou formular; Design, pentru modificarea unui formular existent; Open, pentru deschiderea unui formular existent şi afişarea datelor conţinute. 6.4 Crearea şi modificarea formularelor
00:40
Crearea unui formular (form) Pentru crearea unui formular nou se procedează astfel: Din meniul principal se alege optiunea Create;
Din toolbar-ul Form (fig. 6.1) se selectează una din opţiunile (variantele) disponibile afişate: • 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 afişând opţiunile pentru crearea unui obiect Form Fiecare dintre opţiuni (variante) implică parcurgerea în unor etape determinante şi efectuarea unor operaţii specifice. Opţiunea (varianta) Design View este folosită mai puţin, implicând generarea unui formular gol, în care utilizatorul trebuie să îşi definească controalele proprii. Astfel, câmpurile de date din sursa de date se pot afişa prin preluarea acestora, folosind tehnica drag and drop, din fereastra afişată Field List (opţiunea Field List din meniul View sau pictograma cu acelaşi nume de pe bara de instrumente) şi depunerea în interiorul formularului (de regulă în Detail). În practică, opţiunea folosită frecvent este Form Wizard. Folosirea acestei opţiuni (variante) implică, atunci când sursa de date este o tabelă, procedura următoare: • Din fereastra afişată FormWizard (fig. 6.2) se selectează câmpurile de date din sursa de date, care vor fi afişate pe formular, acţionând butonul cu simbolul > sau >>; • Se acţionează butonul Next > şi din lista afişată se alege tipul de formular şi anume: Columnar, Tabular, Datasheet, Justified, care este însoţit şi de modul de afişare a datelor; • Se acţionează din nou butonul Next şi din lista afişată, care conţine o diversitate de stiluri de afişare, se selectează stilul dorit (implicit Standard); • Se acţionează în continuare butonul Next şi în bara de text afişată se defineşte titlul formularului (implicit poate fi titlul sursei de date); • Se acţionează butonul Finish, având ca rezultat afişarea ferestrei precizând 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 acţionează butonul Design; • În fereastra afişată Form se procedează la modificarea: ◦ structurii formularului; ◦ elementelor din structura formularului; ◦ proprietăţilor 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.
01:30 5
6.5 Structura formularelor Un formular Access este o fereastră Access, care ca orice fereastră în sistemele Windows conţine elementele structurale definitorii. Astfel de elemente ale unui formular (Design) sunt următoarele: a) Elemente comune (standard) ale ferestrei: • Title bar (bara de titlu), care conţine: 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 (secţiuni form): • Form Header (antetul formularului), care conţine titlul formularului sau alte informaţii despre folosirea formularului; afişarea acestui element depinde de tipul formularului (după modul de afişare); • Page Header (antetul de pagină), care se afişează numai când formularul este tipărit la imprimantă; totuşi în timpul proiectării acest element se poate afişa validând opţiunea Page Header/Footer din meniul View; • Detail (detaliu), care conţine toate controalele necesare afişării/editării înregistrărilor din formular; • Page Footer (subsolul de pagină), care conţine data curentă, numărul de pagină şi alte informaţii; acest element este afişat numai la tipărirea formularului; • Form Footer (subsolul formularului), care este asemănător cu elementul Page Header, conţine diferite informaţii (totalul general, controalele etc); • Navigation Buttons (butoane de navigare), care pot fi folosite pentru deplasarea în cadrul înregistrărilor din formular; acest element este afişat numai în timpul consultării 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
6.6 Proprietăţile formularelor Formularele, ca şi alte obiecte ale unei baze de date Access (tables, queries, reports etc), sunt descrise printr-un set de proprietăţi şi metode. Proprietăţile formularelor sunt disponibile: • în timpul proiectării formularelor (în modul Design) prin fereastra Form/Properties, care se poate afişa prin activarea opţiunii Properties din meniul View sau executând pe pictograma Properties de pe bara de instrumentare; • în timpul consultării formularelor (în modulul Open) prin obiectele de tip macro
(Macros) sau prin limbajul VBA. Metodele de descriere a formularelor pot fi disponibile, atât în cursul proiectării, cât şi în cursul consultării, numai prin obiecte macro sau prin limbajul VBA. În fereastra Form/Properties, proprietăţile formularului curent sunt afişate în cadrul unor grupe distincte: Format, care conţine proprietăţi referitoare la dimen-siune, aspect, coordonate de afişare etc; Data, care conţine proprietăţi referitoare la sursa de date şi la înregistrările aferente; Event, care conţine evenimentele ce pot fi tratate prin obiecte de tip macro sau prin limbajul VBA; Other, care conţine diverse alte proprietăţi; All, care conţine toate proprietăţile care sunt aferente formularelor. Stabilirea (setarea) unei proprietăţi se poate efectua prin: • tastarea valorii respective a proprietăţii; • selectarea valorii respective dintr-o listă derulantă; • folosirea asistentului Access, când este disponibil, prin activarea pictogramei Build (Wizard) afişată pe bara de instrumente.
02:20
02:35
6.7 Controalele în formulare Controalele, denumite şi elemente vizuale, sunt obiecte de tip grafic, incluse în formulare sau rapoarte, în scopul editării/afişării datelor sau executării unor operaţii (exemplu, lucrul cu etichete, cu casete de text, cu butoane etc). Includerea controalelor în formulare sau rapoarte este posibilă numai atunci când sunt create sau modificate, astfel: • se execută opţiunea Toolbox din meniul View sau se activează pictograma Toolbox de pe bara de instrumente; • din fereastra Toolbox afişată se selectează butonul aferent controlului dorit de utilizator; • se descrie cu mouse-ul o suprafaţă dreptunghiulară în interiorul formularului, pentru a defini poziţia şi dimensiunea controlului respectiv. Controalele se pot clasifica după diferite criterii: a) După rolul îndeplinit: • controale pentru editarea şi afişarea datelor (exemple: casetele text, etichetele etc); • controalele pentru executarea unor acţiuni (exemplu: butonul de comandă); • controale pentru afişarea graficelor (exemple: imagini, obiecte cadru etc.); b) După sursa de date: • controale legate (bounds); sunt controale care afişează datele din câmpuri (exemplu: o casetă de text ce va actualiza câmpul Dată factură din tabela Factură); • controale nelegate (unbounds); sunt controale indepen-dente de realizările câmpurilor; nu permit actualizarea lor; c) După structură: • controale elementare (exemple: butoane, casete text etc); • controale container, care înglobează alte controale (exemple :grup de opţiuni, Control Tag etc). 6.8 Proprietăţile controalelor Proprietăţile unui control sunt afişate în fereastra Properties, atunci când controlul respectiv este selectat. La fel ca la formulare, metodele controalelor sunt disponibile numai prin intermediul obiectelor macro sau modulelor VBA. Dintre proprietăţile controalelor se pot menţiona:
• proprietăţi din categoria Format: Format, Decimal Places, Caption, Visible, Left, Top, Width, Height, etc.; • proprietăţi din categoria Data: Control Source, Input Mask, Default Value, Validation Rule, Validation Text, Enabled, Locked; • proprietăţi din categoria Event, care conţin denumirile funcţiilor, procedurilor, evenimentelor sau macro-urilor; cele mai folosite sunt: Before Update, Change, Enter, Exit; • alte proprietăţi: 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.
02:45
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 câmpul de date comun este cheia externă), din cadrul unei relaţii de tip1-n. Un formular se poate îngloba (include) în cadrul altui formular, primul devenind subformular, iar al doilea formular principal. Un formular poate conţine oricâte subformulare, dar un subformular poate conţine, la rândul său, cel mult un alt subformular; sunt admise maxim trei niveluri de imbricare a formularelor. Folosirea subformularelor oferă utilizatorilor unele avantaje: • posibilitatea actualizării mai multor tabele dintr-un singur formular; • posibilitatea sincronizării automate a subformularului cu formularul principal, operaţie care constă în: ◦ actualizarea automată a câmpului cheie externă din subformular, cu valoarea existentă în câmpul cheie primară din formularul principal, ◦ filtrarea automată a înregistrărilor din subformular, în funcţie de valoarea cheii primare din formularul principal. Proprietatile formularelor sunt urmatoarele: …………………………………………………………………………………………... …………………………………………………………………………………………... …………………………………………………………………………………………...
02:55
6.10 Rezumat Formularele (Forms) sunt ferestre folosite pentru efectuarea de operaţii tipice cu datele din tabelele bazei de date: adăugări de înregistrări, ştergeri de înregistrări, modificări privind conţinutul unor înregistrări din tabelele bazei de date, consultări privind datele din înregistrările tabelelor bazei de date. Formularele se pot clasifica după diferite criterii: după sursa de date, după modul de afişare, după modul de interacţiune. Formularele, ca şi alte obiecte ale unei baze de date Access (tables, queries, reports etc), sunt descrise printr-un set de proprietăţi şi metode. Controalele, denumite şi elemente vizuale, sunt obiecte de tip grafic, incluse în formulare sau rapoarte, în scopul editării/afişării datelor sau executării unor operaţii (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 câmpul de date comun este cheia externă), din cadrul unei
relaţii de tip1-n.
6.11. Test de autoevaluare a cunoștințelor (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, însoţită de operaţii de validare, MS-Access pune la dispoziţia 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. rând 9. Opţiunea de creare a unui obiect Form, prin proiectarea de către utilizator fără asistenţă wizard, se numeşte: 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 opţiunile: a. Design View b. Form Wizard c. Auto Form d. Chart Wizard Răspunsurile corecte la întrebările 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 cunoștințelor 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, Bucureşti, 2002 2. Popa Gh. şi colectiv – Baze de date Access, Editura CISON, Buc., 2003 3. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 5. Sagman S. – Microsoft OFFICE 2003 pentru Windows (Ghid de învăţare rapidă prin imagini), Editura Corint, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura Economică, Bucureşti, 2000 3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura CISON, Bucureşti, 2002 4. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002 5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006
UNITATEA DE ÎNVĂŢARE 7. GESTIUNEA OBIECTELOR REPORTS Cuprins 7.1. Obiective 7.2. Competenţele unităţii de învăţare 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 cunoştinţelor 7.11. Test de evaluare a cunoştinţelor 7.12. Tema de cotrol 7.13. Bibliografie 7.1. Obiective În această unitate de învățare se vor prezenta: • Definirea specificului obiectelor Reports şi prezentarea modurilor de creare a unor astfel de obiecte în efectuarea de aplicaţii cu baze de date MS-Access; • Prezentarea particularităţilor obiectelor de tip Report în gestiunea bazelor de date MS-Access; • Prezentarea clasificării obiectelor Reports în funcţie de diferite criterii (după sursa de date, după modul de afişare); • Prezentarea proprietăţilor obiectelor Forms pe categorii (Format, Data, Event, Other) şi a modului de setare pentru a fi preluate în rapoarte şi secţiuni de rapoarte. 7.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: • Cum se poate crea un obiect Report, folosind unul din modurile afişate în fereastra de dialog New Report; • Cum se poate modifica structura unui obiect Report în funcţie de cerinţele de gestiune a bazei de date; • Cum se pot seta (stabili) proprietăţile obiectelor Reports în funcţie de specificul aplicaţiilor; • Cum se poate lucra cu rapoarte şi secţiuni de rapoarte în funcţie cerinţele de gestiune a bazei de date. Durata de parcurgere a acestei unităţi de învăţare este de 3 ore. 7.3. Noţiuni generale
00:00
Rapoartele sunt obiecte ale bazelor de date Access destinate pentru afişarea/tipărirea datelor şi/sau rezultatelor prelucrării acestor date din tabele sau cereri de interogare. Prin conţinutul şi forma de prezentare, rapoartele sunt produsele finite ale aplicaţiilor 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:
• După sursa de date: • rapoarte legate (bound), care conţin date provenind din tabele sau cereri de interogare; • rapoarte nelegate (unbound), care nu sunt asociate unor surse de date, fiind folosite, de regulă, ca nişte containăre pentru subrapoarte construite din tabele şi/sau interogări între care nu au fost definite relaţii; • După forma de afişare: • rapoarte de tip Columnar, în care se afişează datele din înregistrări pe o singură coloană; • rapoarte de tip Tabular, care afişează datele din fiecare câmp de date într-o coloană distinctă; • rapoarte de tip Chart, care conţin diferite tipuri de grafice, folosite ca formă de reprezentare a datelor. Rapoartele au o structură asemănătoare cu aceea a formularelor, existând elemente comune şi anume: • Secţiunile din formulare sunt prezente şi în rapoartele ce conţin elementele: • Report Header/Footer, care conţine date ce se afişează pe prima pagină, respectiv ultima pagină; • Page Header/Footer, care conţine date ce se afişează la începutul, respectiv sfârşitul fiecărei pagini; • Detail, în care se afişează înregistrările din sursa de date a raportului; • Controalele folosite pentru proiectarea formularelor sunt disponibile, în general, şi pentru crearea rapoartelor; • Subrapoartele pot fi definite în acelaşi mod în care sunt definite formularele. Între rapoarte şi formulare există şi deosebiri, care, în principal, sunt următoarele: • rapoartele sunt obiecte ale bazei de date Access destinate numai pentru afişarea sau tipărirea de date sau de rezultate ale prelucrării acestor date din tabele şi/sau interogări, deci conţinutul rapoartelor nu poate fi editat; • unele dintre controalele folosite pentru proiectarea formularelor nu sunt funcţionale şi pentru crearea rapoartelor (de exemplu, butoanele de comandă, casetele listă, etc), deoarece nu au nici un fel de utilitate în cadrul rapoartelor; • proprietăţile din categoria Event nu sunt disponibile pentru controale, ci pentru rapoarte şi secţiunile din rapoarte. Furnizati mai multe detalii clasificarea rapoartelor. Folosiţi 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 cerinţe ale utilizatorilor, aşa încât sunt foarte rare situaţiile în care este necesară modificarea unui raport generat în mod automat.
Pentru crearea unui raport se poate proceda astfel: • Din fereastra afişată Open se selectează sursa (baza) de date; • Din toolbar-ul CREATE se acţionează butonul de comandă Report (fig.7.1);
Figura7.1. Toolbar-ul Create afişând grupul de obiecte Reports Din fereastra New Report se selectează şi se execută una din opţiunile (variantele) următoare (fig.7.2): • Report Design, dacă crearea raportului se execută fără asistenţă Wizard, adică de către utilizatorul însuşi; • Report Wizard, dacă crearea raportului este asistată de Wizard, îndrumând utilizatorul pentru efectuarea acţiunilor necesare (alegerea câmpurilor de date, gruparea datelor etc.); Dintre aceste opţiuni cea mai frecvent folosită în practică este Report Wizard, deoarece utilizatorul are posibilitatea să selecteze câmpurile de date care vor fi afişate în raport, să aleagă formatul de afişare a datelor etc.
Figura 7.2. Fereastra Report Wizard Pentru crearea unui raport, folosind opţiunea Report Wizard, se procedează astfel: • Din fereastra afişată Report Wizard se selectează câmpurile de date din sursa de date care trebuie incluse în raport, folosind butoanele de selecţie cu simbolul >,
respectiv >> apoi se acţionează butonul de comandă Next> (fig.7.2); • Din aceeaşi fereastră afişată Report Wizard se definesc câmpurile de date în funcţie de care se vor grupa datele în raport (sunt admise cel mult trei niveluri de grupare), apoi se acţionează butonul de comandă Next >; • Din fereastra Report Wizard, din casetele de text cu butoane de derulare, se aleg câmpurile de date în funcţie de care vor fi sortate datele, în sens crescător sau descrescător, în cadrul grupurilor stabilite anterior (se admit cel mult patru câmpuri de sortare). În continuare, se acţionează butonul de comandă Summary Options…, dacă utilizatorul intenţionează să se calculeze anumiţi indicatori în sumar (sintetici), sau butonul de comandă Next >, dacă nu doreşte să se calculeze astfel de indicatori. Dacă s-a acţionat butonul Summary Options…, din fereastra afişată Summary Options se aleg indicatorii de sumarizat (Sum, Avg, Min, Max) şi câmpurile de date în funcţie de care să se efectueze sumarizarea datelor, se precizează modul de afişare (în detaliu şi sumar, numai în sumar) şi se validează, dacă este cazul, calcularea ponderii subtotalurilor în cadrul totalului, apoi se acţionează butonul de comandă OK, având ca efect reafişarea ferestrei Report Wizard. Dacă nu s-a acţionat butonul de comandă Summary Options…, ci butonul de comandă Next > se menţine afişată fereastra Report Wizard; Din fereastra Report Wizard se stabileşte modul de afişare/tipărire a raportului, selectând 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 lăţimii câmpurilor de date, astfel încât toate coloanele raportului să încapă în pagină, activând caseta de validare Adjust the field width so all field fit on a page. Această etapă se încheie prin acţionarea butonului de comandă Next >. • Din aceeaşi fereastră afişată Report Wizard se alege stilul de afişare şi/sau tipărire a raportului din cele şase stiluri predefinite (stilul implicit este Corporate (corporativ, constituit, organizat)). Această etapă se încheie acţionând butonul de comandă Next >; • Din fereastra încă afişată Report Wizard se stabilesc ultimele detalii ale raportului: titlul raportului (implicit acest titlu este cel al sursei de date), previzionarea raportului sau modificarea proiectării raportului etc. Această etapă, şi implicit procedura de creare a raportului, se încheie acţionând butonul de comandă Finish. După parcurgerea acestor etape ale procedurii de creare a unui obiect Report, folosind opţiunea (varianta) ReportWizard, pe ecranul monitorului se afişează raportul cu elementele structurale stabilite. Raportul poate fi ulterior tipărit la imprimantă ca orice alt document, cu opţiunea Print… din meniul File sau activând pictograma Print. Crearea rapoartelor folosind opţiunea Design View este puţin folosită în practică, deoarece solicită utilizatorul să desfăşoare o activitate laborioasă. Totuşi, dacă se foloseşte această opţiune, rezultatul obţinut este generarea unnui raport gol, în care utilizatorul poate crea controale pentru fiecare câmp de date, controale calculate etc. Să ne reamintim... Crearea unui raport se poate efectua in doua moduri: Report Design, dacă crearea raportului se execută fără asistenţă Wizard, respectiv Report Wizard, dacă crearea raportului este asistată de Wizard, îndrumând utilizatorul pentru efectuarea acţiunilor necesare (alegerea câmpurilor de date, gruparea datelor etc.);
7.5 Afişarea şi tipărirea rapoartelor
01:30 5
Pentru afişarea şi vizualizarea unui obiect Report se procedează astfel: • Dintre numele rapoartelor afişate în grupul de obiecte Reports se selectează numele raportului care trebuie afişat; • Dintre cele trei butoane de selecţie se acţionează prin click dreapta butonul Open/Preview, după care se afişează pe ecran raportul în cauză. Această procedură se poate folosi atât când raportul este deschis în modul Open, cât şi în modul Design. Pentru tipărirea la imprimantă a unui raport se poate proceda astfel: • Dacă raportul este închis, atunci se selectează grupul de obiecte Reports, apoi numele raportului de tipărit, după care se activează opţiunea 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 opţiunea Print din meniul File sau pictograma Print de pe bara de instrumente.
Figura 7.3 Ferestra Reports 7.6 Proprietăţile rapoartelor
01:50
Ca şi în cazul formularelor, proprietăţile 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). Proprietăţile 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.
7.7 Proprietăţile secţiunilor din rapoarte Cele mai importante proprietăţi sunt din categoriile: • Format: Force New Page (None, Before Section, After Section, Before & 02:10
After • Eveniment: o Format o Print o Retreat
02:20
7.8 Controale calculate Ca la formulare, controalele calculate sunt create prin înscrierea expresiei de calcul în proprietatea Control Source. Exemple: = [Stoc-iniţial] + [Intrări] – [Ieşiri] expresie pentru calcul stocului final şi afişarea în raport a rezultatului obţinut; = [Stoc-final]*[Preţ-unitar] expresie pentru calculul valorii stocului final şi afişarea în raport a rezultatului. Subtotalurile Se obţin parcurgând etapele următoare: • Se afişează fereastra Sorting an Grouping executând opţiunea View-Sorting and Grouping din meniul Access; • Se selectează câmpul (câmpurile) în funcţie de care se grupează datele în coloana Field/Expresion; • Se selectează una din proprietăţi sau ambele proprietăţi 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 Câmp] ) • Se setează proprietatea Running Sum a casetei text pe valoarea No. Totalurile generale Se obţin prin crearea unei casete text cu aceleaşi proprietăţi ca ale casetei descrisă anterior, în zona de subsol a raportului (ReportFooter). Proprietatile raportelor sunt urmatoarele: …………………………………………………………………………………………... …………………………………………………………………………………………... …………………………………………………………………………………………...
02:55
7.9 Rezumat Rapoartele sunt obiecte ale bazelor de date Access destinate pentru afişarea/tipărirea datelor şi/sau rezultatelor prelucrării acestor date din tabele sau cereri de interogare. Rapoartele au o structură asemănătoare cu aceea a formularelor, având urmatoarele sectiuni: • Report Header/Footer, care conţine date ce se afişează pe prima pagină, respectiv ultima pagină; • Page Header/Footer, care conţine date ce se afişează la începutul, respectiv sfârşitul fiecărei pagini;
• Detail, în care se afişează înregistrările din sursa de date a raportului; Crearea unui raport se poate efectua in doua moduri: Report Design, dacă crearea raportului se execută fără 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 cunoștințelor (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 secţiuni de documente pentru a fi tipărite, se numesc: a. Queries b. Forms c. Reports d. Macros 6. Pentru editarea datelor din tabele ale unei baze de date, însoţită de operaţii de calcul, MS-Access pune la dispoziţia utilizatorilor obiectele: a. Tables b. Queries c. Forms d. Reports 7. Opţiunea de creare a unui obiect Report, prin proiectarea de către utilizator fără asistenţă MS-Access, se numeşte: a. Design View b. Report Wizard c. Chart Wizard d. Label Wizard 8. Obiectele MS-Access care pot fi definite ca produse finite ale aplicaţiilor 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 operaţii de: a. creare b. consultare c. modificare d. tipărire 10. Obiectele de tip Reports, pe care utilizatorul poate să le proiecteze singur, sunt rezultatul folosirii, la crearea lor, a opţiunii: a. Design View b. Form Wizared c. Auto Form d. Chart Wizard Răspunsurile corecte la întrebările 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 cunoștințelor 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 alcătuită 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, având câmpurile de date menţionate mai sus; Să se modifice structura obiectului Table, definită mai sus, adăugând un nou câmp de date denumit Unitate_măsură de tip Text după câmpul de date Denumire_material. Să se definească restricţiile referitoare la domeniul de valori pentru câmpul de date Unitate-măsură la valorile: kg, to, ml, buc. Să se definească restricţiile referitoare la domeniul de valori pentru câmpul de date Stoc-initial şi preţ_unitar la valori pozitive. Să se definească restricţiile referitoare la domeniul de valori pentru câmpul 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 (Număr_contract Number, Data_încheierii Date, Data_expirării Date, Modalităţi_plată Text, Termen plată Date, Cod furnizor Number). Se cere: Să se proiecteze un obiect Report denumit RaportContracte pentru afişarea înregistrărilor din tabela Contract ordonate după câmpurile de date: Cod furnizor şi Număr contract. Plecând de la raportul anterior să se să se creeze alt raport numit RaportContracte1, astfel încât să permită afişarea contractelor încheiate pe o perioadă ce va fi precizată la execuţia raportului. Să se proiecteze un raport numit RaportContracte2 care să permită afişarea înregistrărilor 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, Bucureşti, 2002 2. Popa Gh. şi colectiv – Baze de date Access, Editura CISON, Buc., 2003 3. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 5. Sagman S. – Microsoft OFFICE 2003 pentru Windows (Ghid de învăţare rapidă prin imagini), Editura Corint, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura Economică, Bucureşti, 2000 3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura CISON, Bucureşti, 2002 4. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002 5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006
UNITATEA DE ÎNVĂŢARE 8. GESTIUNEA OBIECTELOR MACROS Cuprins 8.1. Obiective 8.2. Competenţele unităţii de învăţare 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 cunoştinţelor 8.9. Bibliografie 8.1. Obiective În această unitate de învățare se vor prezenta: • Definirea specificului obiectelor Macros în contextul efectuării automate de acţiuni, eventual condiţionate, în aplicaţiile utilizatorilor; • Cunoaşterea modului de creare a unor astfel de obiecte pentru efectuarea unor acţiuni de automatizare a aplicaţiilor cu baze de date MS-Access. 8.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: • Cum se pot folosi obiectele Macros pentru efectuarea în mod automat a unor aplicaţii de gestiune a bazelor de date MS-Access; • Cum se integrează obiectele Macros în cadrul unor aplicaţii complexe cu baze de date MS-Access. Durata de parcurgere a acestei unităţi de învăţare este de 2 ore. 8.3. Prezentare generală
00:00
Un obiect de tip macro este: • identificat printr-un nume; • alcătuit dintr-o mulţime de acţiuni de executat; Obiectul Macro care are ca scop efectuarea automată a unor operaţii 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 execuţie a comenzii Run Macro din meniul DATABASE Tools; • la acţionarea unei taste de declanşare asociată obiectului macro; • la declanşarea evenimentului Click asupra unui buton de comandă legat de obiectul macro; • la lansarea în execuţie 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”. Folosiţi drept principală sursă de informare Internetul. ........................................................................................................................................... ...........................................................................................................................................
........................................................................................................................................... 8.4 Crearea unui obiect macro Un obiect macro se poate crea prin executarea comenzii (opţiunii) Macro din meniul Create (fig. 8.1). 00:20
Figura 8.1. Toolbar-ul Create afişând grupul Macro Pentru a crea un obiect macro, în oricare din aceste două moduri este necesar ca întâi să se selecteze grupul de obiecte (secţiunea) Macro din toolbar-ul CREATE (fig.8.1) După declanşarea operaţiei de creare a obiectului macro, pe ecran se afişează fereastra Macro cu numele implicit Macro urmat de un număr (fig.8.2).
Figura 8.2 Fereastra Macro TOOLS cu secţiunile pentru crearea unui obiect Macro Fereastra de dialog Macro conţine: a) secţiunea 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ă condiţioneze executarea unor acţiuni 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, conţinând acţiuni, setul de argumente şi, eventual, condiţiile de execuţie a unor acţiuni, urmează salvarea obiectului macro, prin executarea opţiunii Save as… din meniul File sau pictograma Save de pe bara de instrumente şi atribuirea acestui obiect un nume. Condiţionarea executării unei acţiuni se realizează, de regulă, prin referire la valorile anumitor controale folosind sintaxa următoare: 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 (secţiunea ) Forms. Dacă numele controlului conţine spaţii, atunci este necesar să fie încadrat între paranteze drepte. Exemplu: Forms!Stocuri![cod mat] În procesul de execuţie a obiectelor, Access-Macros verifică validitatea acţiunilor descrise, iar dacă depistează existenţa unor acţiuni eşuate (Action Failed), atunci afişează un mesaj care indică sursa erorii. Să ne reamintim... Un obiect de tip macro este alcătuit dintr-o mulţime de acţiuni de executat. Obiectul Macro care are ca scop efectuarea automată a unor operaţii asupra unor obiecte din bazele de date MS-Access. 8.5 Acţiuni programabile în obiecte macro 01:05
MS-Access dispune de o multitudine de acţiuni care pot fi programate de utilizatori. Dintre astfel de acţiuni se pot menţiona: a) acţiuni pentru deschiderea obiectelor de nivelul întâi (tabele, interogări, formulare); se programează pe structura: Open Table Argumentele acţiunii: Table Name - alegerea tabelei din lista derulantă View - alegerea uneia din variantele posibile: Data Sheet/Design/Print Preview Data Mode - alegerea din posibilităţile: Add/Edit/Read Only. Obs: Opţiunile subliniate sunt implicite. Pentru a deschide alte clase de obiecte: OpenQuery, OpenForm, OpenReport,
OpenModule se pot programa diverse acţiuni pe structuri aproximativ asemănătoare cu cele ale obiectelor de nivelul întâi. b) acţiuni de închidere a obiectelor de nivelul întâi; se programează pe structura: Close Argumentele acţiunii: Object Type - alegerea tipului de obiecte de închis Object Name - alegerea din lista obiectelor din clasa tipului ales Save, Yes sau No c) acţiunea de export sau import din baza de date (TransferDatabase); d) acţiunea de afişare a unor casete de dialog (MsgBox); e) acţiunea de trimitere de obiecte prin reţeaua Internet (SendObject); f) acţiuni pentru executarea: - unei aplicaţii (RunApp) - unei funcţii scrise în limbajul VBA (RunCode); - unei comenzi (RunCommand); - unei instrucţiuni macro (RunMacro); - unei comenzi SSQL (RunSSQL); g) acţiunea de atribuire de valoare unui control (SetValue); h) acţiunea de afişare a unei bare de instrumente definite de utilizator (Show Toolbar); i) acţiunea de ieşire din aplicaţia 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 conţine: • o succesiune de acţiuni care alcătuiesc un obiect macro; • mai multe succesiuni de acţiuni (separate sau nu printr-o linie) identificate printr-un nume de macro. A doua structură implică ca un obiect macro să conţină un grup de comenzi. Aceasta determină reducerea numărului 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 declanşarea unor acţiuni 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 acţiuni care vizează rapoartele, ca de exemplu: deschiderea şi, eventual, tipărirea rapoartelor, închiderea rapoartelor (acţiunea 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 operaţii 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 cunoștințelor (timp necesar : 20 minute) 1. Obiectele alcătuite dintr-o mulţime de acţiuni de executat, fiecare acţiune 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 operaţii 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 numeşte: a. Queries b. Forms c. Macros d. Reports 4. La executarea unui click pe butonul New în fereastra Database, nu se poate afişa fereastra: a. New Table b. New Query c. New Form d. New Macro 5. La crearea unui obiect Macro acţiunile se pot selecta dintr-o: a. listă derulantă b. fereastră c. casetă d. secţiune 6. La crearea unui obiect Macro referirile la acţiunile selectate se introduc în: a. coloana Action b. coloana Comment c. coloana Condition d. secţiunea Action Arguments 7. După ce a fost proiectat, obiectul Macro poate fi lansat în execuţie: a. înainte de a fi salvat b. după ce a fost salvat c. oricând 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 alcătuite din acţiuni care se execută condiţionat sunt: a. obiecte Forms b. obiecte Reports c. obiecte Pages d. obiecte Macros Răspunsurile corecte la întrebările 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, Bucureşti, 2002 2. Popa Gh. şi colectiv – Baze de date Access, Editura CISON, Buc., 2003 3. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 5. Sagman S. – Microsoft OFFICE 2003 pentru Windows (Ghid de învăţare rapidă prin imagini), Editura Corint, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura Economică, Bucureşti, 2000 3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura CISON, Bucureşti, 2002 4. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002 5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006
UNITATEA DE ÎNVĂŢARE 9. INTRODUCERE IN LIMBAJUL SQL Cuprins 9.1. Obiective 9.2. Competenţele unităţii de învăţare 9.3. Tipuri de instructiuni SQL 9.4. Elementele limbajului SQL 9.5. Instructiuni SQL 9.6. Rezumat 9.7. Test de autoevaluare a cunoştinţelor 9.8. Tema de control 9.9. Test de evaluare a cunoştinţelor 9.10. Bibliografie 9.1. Obiective În această unitate de învățare se vor prezenta regulile de sintaxă şi convenţiile de notare pentru editarea corectă a instrucţiunilor SQL si exemple de utilizare a instrucţiunilor SQL; 9.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: • 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 unităţi de învăţare este de 3 ore. 9.3. Modelul relațional al datelor
00:00
SQL este un limbaj pentru interogarea bazelor de date care permite pe lângă manipularea şi regăsirea datelor şi executarea unor operaţii complexe privind administrarea bazei de date. SQL este un limbaj standardizat, standardul în acest domeniu fiind creat de ANSI şi ISO. Toate SGBD-urile relaţionale implementează părţi 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 instrucţiunile limbajului; Încorporarea unei instrucţiuni 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 doreşte să obţină, şi nu CUM se obţin informaţiile solicitate. Limbajul SQL dispune de mai multe tipuri de instructiuni SQL:
Instrucţiuni pentru definirea datelor – descriu structura bazei de date; Instrucţiuni pentru manipularea datelor : adaugarea, modificarea sau stergerea înregistrărilor; Instrucţiuni pentru selectia datelor – permit consultarea bazei de date; Instrucţiuni 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 lângă manipularea şi regăsirea datelor şi executarea unor operaţii complexe privind administrarea bazei de date.
9.4. Elementele limbajului SQL 00:15
Elementele care definesc limbajul SQL sunt: Instrucţiunea: este reprezentă prin cuvinte rezervate/cheie : INSERT, SELECT, UPDATE, ...; Clauzele instrucţiunilor: definesc restricţii asupra modului de executie a unei instructiuni; Exemple: WHERE, ORDER BY, GROUP BY, HAVING; Funcţii 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 instrucţiuni se va pune caracterul ; (punct şi virgulă) Dacă într-o instrucţiune apar câmpuri din mai multe tabele acestea se vor referi printr-o construcţie de genul nume_tabela.[nume_camp] Într-o listă de valori elementele listei se separă prin , (virgulă) Într-o instrucţiune SQL şirurile de caractere se încadrează între caracterele ‘ (apostrof) sau “ (ghilimele). Exemple: “test”, ‘test’ Informaţiile de tip dată calendaristică se în cadrează între două caractere #. Exemplu: #10/01/2009#
9.5 Instrucţiuni SQL Instructiuni SQL pentru definirea datelor. 00:30 Instructiunea pentru crearea unei baze date: CREATE DATABASE nume_bd; Exemplu: CREATE DATABASE excursii;
Instrucţiunea 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: Creaţi 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); Instrucţiunea pentru modificarea structurii unei tabele: ALTER TABLE numele_tabelei ADD camp tip_de_data; Exemplu: ALTER TABLE materiale ADD cod_magazie INTEGER;
Instrucţiunea 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 Instrucţiunea pentru adăugare de noi înregistrări într-o tabelă: INSERT INTO nume_tabela VALUES (val1, val2,… valn); sau INSERT INTO nume_tabela(camp1, camp2, …) VALUES (val1, val2, …)
Exemplu: a) inseraţi în tabela materiale o înregistrare cu următoarele câmpuri: cod_material = 101, denumire_material = “televizor”, cantitate=120 INSERT INTO materiale(cod_material, denumire_material, cantitate) VALUES (101, ‘televizor’, 120); b) inseraţi în tabela materiale o înregistrare cu următoarele câmpuri: 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 înregistrări: 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 decât 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 decât 125; DELETE FROM materiale WHERE pret<100 OR cantitate>125; Instrucţiunea pentru modificarea înregistrărilor: UPDATE nume_tabela SET camp1=val1, camp2=val2, …. [WHERE conditie]; Exemplu: a) să se modifice preţul tututor materialelor prin creşterea lui cu 10%. UPDATE materiale SET pret=1.1*pret; b) să se modifice preţul materialelor a căror denumire începe cu „TV” prin creşterea lui cu 15%. UPDATE materiale SET pret=1.15*pret WHERE denumire_material LIKE “TV*”; c) pentru toate materialele a căror denumire se termină cu „TV” preţul 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 :
01:30
- Instrucţiuni de selecţie simple SELECT [domeniu] lista_ de_campuri FROM lista_de_tabele [WHERE conditie] [ORDER BY camp ASC|DESC]; Parametrul domeniu poate lua următoarele 2 valori: ALL, DISTINCT. ALL înseamnă că în rezultatul instrucţiunii se vor include toate înregistrările care satisfac criteriul de selecţie, în timp ce DISTINCT are ca efect eliminarea înregistrărilor care conţin duplicate în câmpurile selectate. Lista de câmpuri cuprinde toate câmpurile ce vor apare în rezultatul interogării ş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 următoarele moduri: - nume_tabela1, nume_tabela2, …. - nume_tabela1 AS alias1, nume_tabela2 AS alias2, …. Clauza WHERE se utilizează pentru a specifica o condiţie care va sta la baza selecţiei înregistrărilor. Clauza ORDER BY permite sortarea rezultatelor crescător sau descrescător. Exemple: Fie tabela stocuri(denumire C(15), cod_material N, UM T(3), pret N, cod_depozit N). a) Să se afiseze conţinutul acestei tabele SELECT * FROM stocuri; b) Să se afiseze o listă cu următoarele trei coloane ce conţine toate materiale din tabela stocuri denumire um pret ========================== SELECT denumire, um, pret FROM stocuri; c) Să se afiseze o listă cu următoarele trei coloane ce conţine materiale a căror unitate de măsura este „kg” denumire um pret ========================== SELECT denumire, um, pret FROM stocuri WHERE um=”kg”; d) Se cere o listă cu mărfurile 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;
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 mărfurile aflate în stoc în depozitele 2 şi 3, pentru care există un preţ de desfacere; Lista va avea trei coloane cu următoarele 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 crescătoare a pretului; SELECT * FROM stocuri ORDER BY pret ASC; g) să se afişeze acele produse care au um=’buc’ ordonate invers alfabetic după denumire; SELECT * FROM STOCURI WHERE um=’buc’ ORDER BY denumire DESC; h) să se afişeze 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 căror nume începe cu A, şi au media cuprinsa intre 8 si 10, sortata alfabetic dupa nume. Lista va avea următoarele 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 Funcţiile totalizatoare se mai numesc şi funcţii de grup deoarece ele acţionează asupra tuturor câmpurilor dintr-o coloana a unei tabele sau asupra unor grupuri de câmpuri. Aceste funcţii 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 absenţe SELECT SUM(nr_absente) AS TOTAL FROM studenti; Rezultat: TOTAL 250 Se cere numărul maxim de absente şi numărul minim de absente pentru studentii studentii anului 2. SELECT MAX(nr_absente) AS NrMaxAbsente, NrMinAbsente FROM studenti WHERE an=2;
MIN(nr_absente)
AS
Rezultatul: NrMaxAabsente 34
NrMinimAbsente 12
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 interogări pe mai multe tabele. 02:15 Gruparea datelor, aplicarea funcţiilor 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 conţine următoarele înregistrări: 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 fiecărui 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
Selecţie pe mai multe tabele – realizarea operaţiei JOIN între tabele Se dau următoarele 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 operaţia î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 intrări. SELECT Materiale.Denumire_Material, ContinutFactura.Pret, ContinutFactura.Cantitate FROM Materiale LEFT OUTER ContinutFactura ON Materiale.Cod_Material = ContinutFactura.Cod_Material;
JOIN
Subinterogări SELECT lista_campuri FROM tabela1 WHERE tabela1.camp=(SELECT camp
FROM tabela2 WHERE criteriu_selectie);
Se dau următoarele 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 decât 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 diferenţa 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
Răspunsurile corecte la întrebările 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, având câmpurile de date următoare: - 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ă câmpul de date Stoc_existent un câmp de date cu numele Valoare_stoc calculat cu relaţia: Preţ_unitar x Stoc_existent; - Folosind mediul SQL, să se adauge un filtru la structura obiectului Cerere1 astfel încât să poată afişa numai înregistrările care au în câmpul de date Denumire_marfă valoarea “portocale”; - Folosind mediul SQL, să se modifice datele din câmpul de date Pret_unitar din obiectul Query, prin reducere cu 5% şi apoi să se afişeze conţinutul 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. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 5. Sagman S. – Microsoft OFFICE 2003 pentru Windows (Ghid de învăţare rapidă prin imagini), Editura Corint, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura Economică, Bucureşti, 2000 3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura CISON, Bucureşti, 2002 4. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002 5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006
UNITATEA DE ÎNVĂŢARE 10. GESTIUNEA OBIECTELOR QUERIES CU LIMBAJUL NEPROCEDURAL ACCESS-SQL Cuprins 10.1. Obiective 10.2. Competenţele unităţii de învăţare 10.3. Prezentare generala a limbajlui SQL 10.4. Microsoft-Access SQL 10.5. Etapele creării şi executării interogărilor Access-SQL 10.6. Instrucţiuni pentru definirea datelor 10.7. Instrucţiuni de selecţie a datelor 10.8. Instrucţiuni pentru manipularea datelor 10.9. Definirea cererilor SQL în MS-Access 10.10. Rezumat 10.11. Test de autoevaluare a cunoştinţelor 10.12. Test de evaluare a cunoştinţelor 10.13. Tema de control 10.14. Bibliografie 10.1. Obiective În această unitate de învățare 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 convenţiile de notare pentru editarea corectă a instrucţiunilor SQL, principalele grupe de comenzi în funcţie de modul de folosire pentru lucrul cu obiecte Queries. 10.2. Competenţele unităţii de învăţare După parcurgerea unităţii veţi fi în măsură să răspundeţi la întrebările: • 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 selecţie folosind limbajul neprocedural SQL in mediul Access; • Cum se pot folosi corect construcţiile de limbaj SQL din principalele grupe de comenzi; Durata de parcurgere a acestei unităţi de învăţare este de 3 ore. 10.3. Prezentare generală Access-SQL
00:00
SQL (Structured Query Language) este unul dintre cele mai puternice limbaje de programare structurate folosite pentru interogarea bazelor de date relaţionale, fiind implementat de aproape toate sistemele orientate pe gestiunea bazelor de date relaţionale. Limbajul SQL a fost creat pe la începutul anilor ’70 în laboratoarele de cercetare ale firmei IBM pentru implementarea modelului relaţional 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 relaţionale. SQL este un limbaj de programare neprocedural deoarece utilizatorul descrie numai informaţiile pe care vrea să le obţină în urma interogării bazelor de date, fără a fi necesar să stabilească modul de a ajunge la rezultatele aşteptate. În consecinţă, SQL poate fi considerat ca un limbaj
din de aplicaţie, fiind orientat pe mulţimi. Ca atare, SQL este un limbaj simplu şi accesibil acelor utilizatori interesaţi de gestionarea bazelor de date relaţionale. 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 instrucţiuni SQL (de exemplu Oracle, MS-Access etc). Totuşi, standardul în domeniu este considerat standardul ANSI, care se referă atât la aspectele de definire, interogare, procesare a datelor, a tranzacţiilor, cât şi la caracteristicile privind integritatea informaţiilor, la cursoarele derulante sau jocţiunile 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 noţiunea de „SQL” şi comparaţi MYSQL, MSSQL, Oracle. Folosiţi 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 conţine instrucţiuni legate de securitate şi acces concurent (de exemplu, COMMIT, GRANT, LOCK) sau instrucţiuni DDL (Data Definition Language) pentru definirea datelor dar pe de altă parte, include instrucţiunea TRANSFORM şi declaraţia PARAMETERS. De asemenea, sistemul de gestiune a bazelor de date Microsoft Access începând cu versiunea 2000 acceptă folosirea limbajului de interogare SQL, în gestiunea bazelor de date de tip MS-Access. Astfel, prin tehnica (interfaţa) grafică QBE, informaţia definită pe grila QBE este transformată automat într-o instrucţiune SQL. Deci, se poate afirma că, Access-SQL este conceput mai mult pentru crearea interogărilor de selecţie. MS-Access oferă utilizatorilor posibilitatea de a folosi instrucţiuni SQL în diferite situaţii, ca de exemplu: • înlocuirea unor interogări ale bazei de date cu instrucţiunea SELECT, simplificând baza de date (va conţine mai puţine obiecte), însă micşorînd viteza de regăsire a datelor; • crearea unor tipuri de interogări a bazei de date numai cu instrucţiuni SQL (de tip Union, de definire a datelor, de comunicare cu alte baze de date). În MS-Access instrucţiunile SQL se pot introduce în două moduri: • în fereastra de dialog SQL View, deschisă în modul de lucru Design View al unei interogări, din care se alege comanda New/SQL; • în cadrul codului de instrucţiuni al aplicaţiilor. Pentru a scrie corect instrucţiunile SQL în MS-Access este necesar să se respecte în mod strict unele reguli de sintaxă: • fiecare instrucţiune trebuie să se termine cu un caracter punct şi virgulă (;), cu toate că Access-SQL acceptă instrucţiunea şi fără acest caracter, care este denumit terminator de instrucţiune; • la crearea unei interogări, în care se folosesc câmpuri de date din mai multe tabele ale bazei de date, pentru a separa numele tabelului de numele câmpului 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 inegalităţilor din cadrul clauzelor trebuie folosite două paranteze ascuţite (< >); • pentru a pune în evidenţă şirurile de tip dată calendaristică şi de timp se apelează la caracterul “#”; • pentru a încadra numele de câmpuri de date atunci când conţin spaţii sau simboluri neacceptate de SQL trebuie să fie folosite parantezele drepte ([ ]). De asemenea, pentru prezentarea corectă a sintaxei instrucţiunilor şi a clauzelor Access-SQL se folosesc convenţii de notare, printre care următoarele: • elementele de sintaxă incluse între paranteze drepte ([ ]) sunt opţionale; • 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 instrucţiunilor în prezenţa promter-ului sistem (de la prompter); • implementare de tip modular (Modul Language), care foloseşte anumite proceduri apelate de programele aplicaţiilor; • implementarede tip încapsulat (Embedded SQL), care foloseşte instrucţiuni încapsulate în codul de program, fiind de tip static şi dinamic. În funcţie de rolul îndeplinit în gestiunea bazelor de date, instrucţiunile SQL se pot grupa astfel: • instrucţiuni de definire a datelor, care se folosesc pentru descrierea structurii bazei de date; • instrucţiuni de procesare a datelor, prin care se efectuează operaţii de adăugare, ştergere şi modificare asupra înregistrărilor din baza de date; • instrucţiuni de selecţie a datelor, care se folosesc pentru consultarea bazei de date; • instrucţiuni de procesare a tranzacţiilor, referitoare la unităţile logice de prelucrare şi de suport al unor operaţii multiple de prelucrare a datelor; • instrucţiuni de control al cursorului; • instrucţiuni de control al accesului la baza de date. Limbajul Access-SQL foloseşte un vocabular alcătuit dintr-o diversitate de categorii de cuvinte cheie dintre care principale sunt următoarele: • instrucţiunile, care au rolul cel mai important în executarea interogărilor bazei de date, deoarece determină executarea de acţiuni (exemplu, SELECT); • clauzele, prin care se restricţionează domeniul entităţilor care participă la interogări (exemplu, WHERE sau ORDER BY); • funcţiile, care îmbunătăţesc performanţele limbajului SQL de gestionare a bazelor de date; • operatorii, care efectuează operaţii de comparare a rezultatelor selecţiei. La aceste elemente de vocabular mai sunt asociate şi alte elemente de sintaxă, denumite parametrii sau argumente, prin care se precizează modul de acţiune al
instrucţiunilor. 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 conţine atribute din structura tabelei bază de date sursă sau atribute calculate pe baza celor existente în tabel sau tabelele sursă, • este condiţia logică pe care se crează criteriul de selecţie. Sa ne reamintim... SQL (Structured Query Language) este unul dintre cele mai puternice limbaje de programare structurate folosite pentru interogarea bazelor de date relaţionale. Sistemul de gestiune a bazelor de date Microsoft Access începând cu versiunea 2000 acceptă folosirea limbajului de interogare SQL, în gestiunea bazelor de date de tip MS-Access. 10.5 Etapele creării şi executării interogărilor Access-SQL 01:15
La crearea şi executarea unei interogări în bazele de date MS-Access, realizate prin folosirea de instrucţiuni, sunt parcurse într-o ordine logică şi cronologică, câteva etape principale: • Din fereastra de dialog Open, afişată după ce s-a lansat în execuţie MS-Access, se deschide baza de date în care se vor efectua interogările SQL; • Se selectează grupul de obiecte Queries. În continuare, se execută click pe toolbar-ul CREATE butonul Query Wizard sau pe opţiunea Query Design;
Figura 10.1. Toolbar-ul Create afişând grupul de obiecte Queries • Se închide, prin click pe butonul Close, fereastra de dialog Show Table, afişată peste fereastra Query ;
Figura 10.2. Ferestrele afişate suprapus Query şi Show Table • La click dreapta pe numele interogării se activează opţiunea (modul de vizualizare) SQL View, pentru a crea interogarea Access-SQL. Ca efect, în fereastra Select Query se afişează instrucţiunea Select (fig.10.4) şi în continuare se tastează instrucţiunile SQL specifice, respectând regulile de sintaxă şi de punctuaţie corespunzătoare, pentru a crea interogarea de selecţie;
Figura 10.3. Query şi Opţiunile la click dreapta pe numele Interogării (Query1)
Figura 10.4. Fereastra Select Query afişând instrucţiunea Select pentru a începe scrierea celorlalte instrucţiuni din blocul de interogare Select
• Interogarea Access-SQL astfel creată, se lansează în execuţie într-unul din modurile: • prin activarea butonului ! (Run) de pe bara de instrumente Query Design; • prin activarea opţiunii Run din meniul Query. În final, pe ecranul monitorului se afişează rezultatul interogării, rezultat pe care utilizatorul urmează să-l analizeze şi să-l interpreteze potrivit propriilor cerinţe şi restricţii. Dacă interogarea Access-SQL conţine erori de sintaxă sau rezultate eronate (erori logice), este necesar să se revină în modul de afişare SQL View pentru efectuarea corecţiilor necesare. 10.6 Instrucţiuni pentru definirea datelor
01:45
În MS-Access, definirea structurii datelor se poate realiza prin: • interogări DDL (Data Definition Language); • folosirea ferestrelor de dialog Table Design şi Table Datasheet; • prin intermediul obiectelor DAO (Data Access Object). Cu toate că interogările DDL nu oferă prea multe facilităţi, cum ar fi definirea regulilor de validare, a valorilor implicite etc, totuşi aceste interogări au avantajul că au la bază un limbaj standard, implementat de aproape toate sistemele de gestiune a bazelor de date relaţionale. În consecinţă, nu se pot crea interogări în fereastra de dialog QBE, ci numai în fereastra SQL View. Pentru definirea datelor Access-SQL oferă instrucţiunile DDL următoare: CREATE TABLE, ALTER TABLE, DROP TABLE, DROP DATABASE. Instrucţiunea CREATE TABLE este folosită pentru crearea structurii unui tabel, rezultatul fiind la fel ca în modul interfaţă grafică (asistat). Instrucţiunea ALTER TABLE permite să se adauge un câmp de date la un tabel creat anterior. Totuşi, nu este posibilă adăugarea, respectiv ştergerea de câmpuri de date la nivelul bazei de date în ansamblu. Instrucţiunea DROP TABLE se foloseşte pentru a şterge complet un tabel dintr-o bază de date, inclusiv indecşii şi valorile asociate. Instrucţiunea DROP DATABASE se foloseşte la ştergea unei baze de date. Există însă o mulţime de restricţii stabilite de către administratorul bazei de date privind această operaţie. 10.7 Instrucţiuni de selecţie a datelor
02:00
În limbajul Access-SQL instrucţiunile de selecţie a datelor constituie una dintre categoriile cele mai importante ale limbajului de interogare. O cerinţă de selecţie a datelor din baza de date relaţională se exprimă printr-o structură denumită bloc de cerere. În funcţie de scopul urmărit de utilizator şi de modul de formulare a cererilor de interogare se disting: • blocuri de cereri de interogare simple, care permit vizualizarea înregistrărilor dintr-un tabel al bazei de date, realizarea proiecţiilor şi selecţiilor asupra bazei de date, returnarea unor atribute calculate; • blocuri de cereri de interogare complexe, care permit realizarea de interogări cu structură complexă şi/sau folosirea mai multor tabele sursă, fiind: - blocuri de cereri prin interogarea mai multor tabele; - blocuri de cereri operând pe grupuri de înregistrări;
- 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 menţiunea în clauza FROM a numelor tabelelor sursă interogate şi în clauza WHERE a criteriilor de compunere a înregistrărilor. Blocurile de cereri operând pe grupuri de înregistrări se disting prin faptul că interogările operează pe grupuri de înregistrări definite după criterii specificate la nivelul grupului de înregistrări, executându-se funcţii agregate (exemplu: Count, Sum, Max, Min, Avg, Var etc). Blocurile de cereri prin folosirea subcererilor permit realizarea unor căutări 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 înregistrărilor se foloseşte operatorul UNION. Blocurile de cerere prin folosirea operatorului JOIN se disting prin faptul că operaţiile de asociere au ca rezultat obţinerea tuturor combinaţiilor posibile, care corespund conţinutului informaţional al fiecărui tabel sursă (pot fi admise mai mult de două tabele). 10.8 Instrucţiuni pentru manipularea datelor
02:20
Aceste instrucţiuni sunt deosebit de utile în exploatarea bazelor de date, fiind implementate prin interogări de tip acţiune. Ţinând seama de modul de acţiune, este necesar să fie folosite cu deosebită atenţie, deoarece efectele acţiunii acestora sunt permanente (ireversibile), influenţând inclusiv integritatea referenţială a bazei de date. Dintre aceste instrucţiuni cele mai importante sunt următoarele: SELECT INTO, INSERT INTO, UPDATE şi DELETE. Instrucţiunea SELECT INTO se foloseşte pentru a crea un nou tabel cu înregistrări din alt tabel sau din altă interogare. Instrucţiunea INSERT INTO se foloseşte pentru a adăuga înregistrări dintr-un tabel în altul. Există două forme de sintaxă ale acestei instrucţiuni: • INSERT INTO…VALUES folosită pentru operaţii simple care implică lucrul cu un număr redus de înregistrări, astfel că se poate întroduce o singură înregistrare la un moment dat; • INSERT INTO…SELECT folosită pentru a copia selectiv înregistrări dintr-un tabel în altul sau în mai multe tabele. Instrucţiunea UPDATE se foloseşte pentru a însera înregistrări noi, cât şi de a modifica valorile câmpurilor de date din înregistrările curente. Instrucţiunea DELETE se foloseşte pentru ştergerea parţială sau totală a înregistrărilor 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:40
10.9 Definirea cererilor SQL în MS-Access MS-Access permite: • generarea automată a codului SQL pentru cererile (interogările) din interfaţa QBE; • utilizatorilor să modifice aceste cereri schimbând modul de vizualizare (opţiunea View SQL din meniul Access); • utilizatorilor să formuleze cereri direct în SQL astfel: - se activează interfaţa 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
02:50
SQL (Structured Query Language) este unul dintre cele mai puternice limbaje de programare structurate folosite pentru interogarea bazelor de date relaţionale, fiind implementat de aproape toate sistemele orientate pe gestiunea bazelor de date relaţionale. În MS-Access instrucţiunile SQL se pot introduce în două moduri: • în fereastra de dialog SQL View, deschisă în modul de lucru Design View al unei interogări, din care se alege comanda New/SQL; • în cadrul codului de instrucţiuni al aplicaţiilor. Pentru definirea datelor Access-SQL oferă instrucţiunile DDL următoare: CREATE TABLE, ALTER TABLE, DROP TABLE, DROP DATABASE. Dintre instrucţiunile pentru manipularea datelor cele mai importante sunt următoarele: SELECT INTO, INSERT INTO, UPDATE şi DELETE. 10.11. Test de autoevaluare a cunoștințelor (timp necesar : 20 minute) 1. În funcţie de modul cum sunt gestionate bazele de date relaţionale, SQL face parte din categoria limbajelor: a. procedurale b. neprocedurale c. de asamblare d. algoritmice 2. În SQL utilizatorii îşi exprimă cerinţele informaţionale în modul: a. algoritmic b. procedural c. neprocedural d. simbolic 3. Sintaxa completă a limbajului SQL a fost publicată în anul 1976 de către: 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. instrucţiune c. comandă d. tabel
5. Regăsirea, selectarea şi afişarea datelor din bazele de date MS-Access se realizează cu instrucţiuni SQL de: a. descriere b. interogare c. manipulare d. control 6. Crearea tabelelor, modificarea structurii lor şi ştergerea tabelelor se realizează cu instrucţiuni SQL de: a. descriere b. interogare c. manipulare d. control 7. Înserarea, ştergerea, selectarea şi afişarea datelor implică folosirea unor instrucţiuni SQL de: a. descriere b. interogare c. manipulare d. control 8. Un bloc de cerere SQL începe întotdeauna cu instrucţiunea: a. SELECT b. INSERT c. UPDATE d. UNION 9. Într-un bloc de cerere SQL numele sursei de date (tabele şi/sau interogări) este specificat de clauza: a. FROM b. WHERE c. HAVING d. GROUP BY 10. În blocurile de selecţie SQL expresiile aritmetice trebuie încadrate între caracterele: a. [ ] b. { } c. “ ” d. ( ) Răspunsurile corecte la întrebările 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 cunoștințelor 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, având câmpurile de date următoare: - 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ă câmpul de date Stoc_existent un câmp de date cu numele Valoare_stoc calculat cu relaţia: Preţ_unitar x Stoc_existent; - Folosind mediul SQL, să se adauge un filtru la structura obiectului Cerere1 astfel încât să poată afişa numai înregistrările care au în câmpul de date Denumire_marfă valoarea “portocale”; - Folosind mediul SQL, să se modifice datele din câmpul de date Pret_unitar
din obiectul Query, prin reducere cu 5% şi apoi să se afişeze conţinutul obiectului. 10.14. Bibliografie I. Bibliografie obligatorie 1. Florescu V. (coordonator) şi colectiv – Baze de date. Fundamente teoretice şi practice, Editura InfoMega, Bucureşti, 2002 2. Popa Gh. şi colectiv – Baze de date Access, Editura CISON, Buc., 2003 3. Mureşan M. – Baze de date. Aplicaţii în MS Access XP, Editura PRO UNIVERSITARIA, Bucureşti, 2006 4. Surcel Tr., Mârşanu R., Avram V., Avram D. – Medii de programare pentru gestiunea bazelor de date, Ed. Tribuna Economică, Bucureşti, 2004 5. Sagman S. – Microsoft OFFICE 2003 pentru Windows (Ghid de învăţare rapidă prin imagini), Editura Corint, Bucureşti, 2004 II. Bibliografie facultativă 1. Mureşan M. – Gestiunea bazelor de date. SGBD Access 2002, Editura CURTEA VECHE, Bucureşti, 2004 2. Năstase P. şi colectiv – Tehnologia bazelor de date Access 2000, Editura Economică, Bucureşti, 2000 3. Popa Gh. şi colectiv – Baze de date Access - Culegere de probleme, Editura CISON, Bucureşti, 2002 4. Habracken J. – Access 2002 pentru începători, traducere de Cora Radulian, Editura Teora, Bucureşti, 2002 5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006