baze de date

105
Prof. univ. dr. Bogdan Oancea Prof. univ. Dr. Constantin Baron Baze de date relationale Universitatea „Nicolae Titulescu” din Bucureşti 2012

description

curs baze de date

Transcript of baze de date

Page 1: baze de date

Prof. univ. dr. Bogdan Oancea

Prof. univ. Dr. Constantin Baron

Baze de date relationale

Universitatea „Nicolae Titulescu” din Bucureşti

2012

Page 2: baze de date

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.

Page 3: baze de date

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;

Page 4: baze de date

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%;

Page 5: baze de date
Page 6: baze de date

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 10

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. 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 31

3.1. Obiective 31

3.2. Competenţele unităţii de învăţare 31

Page 7: baze de date

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

Page 8: baze de date

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

Page 9: baze de date

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

Page 10: baze de date

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

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:05

Page 11: baze de date

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:20

Page 12: baze de date

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:30

Page 13: baze de date

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

00:40

Page 14: baze de date

î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.)

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

SGBD

Utilizator

final

Program

Aplicaţie

Utilizator

final

Program

Aplicaţie

Page 15: baze de date

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.

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:00

Page 16: baze de date

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;

01:15

0

Page 17: baze de date

Să ne reamintim...

Bazele de date pot fi clasificate după mai multe criterii:, modelul datelor, gradul de

centralizare, numarul de utilizatori etc.

1.6. Sisteme de gestiune a bazelor de date

Memorarea, gestiunea şi prelucrarea datelor organizate în baze de date este

asigurată de un ansamblu de programe denumit Sistem de Gestiune a Bazelor de

Date (SGBD). Sistemele de gestiune a bazelor de date reprezintă instrumentul

software care permite ca modelele de date prezentate anterior să poată deveni

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).

01:25

Page 18: baze de date

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ă.

Page 19: baze de date

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:

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

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:

01:50

Page 20: baze de date

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 d.

sistem de calcul

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

Page 21: baze de date

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

Page 22: baze de date

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.

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ă ierarhic-

arborescentă: 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

00:00

Page 23: baze de date

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.

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.

00:15

Page 24: baze de date

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 DenumireProd UM PU CodFurnizor

101 Monitor HP Buc. 550 1001

102 Unitate DVD Buc 120 1002

103 Cablu coaxial m 1.5 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)

Page 25: baze de date

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

Page 26: baze de date

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;

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

01:15

0

Page 27: baze de date

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

Page 28: baze de date

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.

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ă

01:50

Page 29: baze de date

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.

Page 30: baze de date
Page 31: baze de date

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.

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.

00:00

Page 32: baze de date

Furnizati mai multe detalii privind componentele pachetelor MS-Office 2010, 2007,

XP. Folositi drept sursa de informare Internetul.

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

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ă (MS-

Office 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-Office-

ului, 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-Office-

ul 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ă

00:30

Page 33: baze de date

î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 MS-

Access 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,

Page 34: baze de date

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

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:00

Page 35: baze de date

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.

01:30

5

Page 36: baze de date

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

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

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

02:05

01:50

Page 37: baze de date

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

Page 38: baze de date

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.

Page 39: baze de date

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.

…………………………………………………………………………………………...

…………………………………………………………………………………………...

…………………………………………………………………………………………...

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

02:40

Page 40: baze de date

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

Page 41: baze de date

5. Forta B. – SQL în lecţii de 10 Minute, Editura Teora, Bucureşti, 2006

Page 42: baze de date

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

Î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.

00:00

Page 43: baze de date

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

00:00

Page 44: baze de date

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

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

Page 45: baze de date

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:25

Page 46: baze de date

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).

00:50

Page 47: baze de date

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

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.

01:30

5

Page 48: baze 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

Page 49: baze de date

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)

Page 50: baze de date

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

Page 51: baze de date

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.

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:

00:00

Page 52: baze de date

• 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.

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

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

00:30

5

00:20

00:30

Page 53: baze de date

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.

Page 54: baze de date

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

Page 55: baze de date

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.

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

01:30

Page 56: baze de date

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.

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.

Î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).

02:50

02:20

Page 57: baze de date

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 VBA

se numesc:

a. Queries b. Forms c. Reports d. Modules

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 MS-

Access, vizualizarea lor etc., se numesc:

a. Tables b. Queries c. Forms d. Reports

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?

Page 58: baze de date

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

Page 59: baze de date

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

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

00:00

Page 60: baze de date

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

Crearea unui formular (form)

Pentru crearea unui formular nou se procedează astfel:

Din meniul principal se alege optiunea Create; 00:40

Page 61: baze de date

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ă.

Page 62: baze de date

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.

Page 63: baze de date

Să ne reamintim...

Formularele se pot crea in mai multe moduri: FORM, dacă crearea formularului nu va

fi asistată de Access, Form Wizard, dacă crearea formularului este asistată de Access

prin Wizard, AutoForm:Columnar, dacă MS-Access va genera automat un formular

singular (single form), AutoForm: Tabular, dacă Access va genera automat un

formular continnu (continuous form), AutoForm: Datasheet, dacă MS-Access va

genera automat un formular foaie de calcul (datasheet), Chart Wizard, dacă crearea

formularului de tip grafic (chart) va fi asistată de Access prin Wizard, Pivot Table

Wizard, dacă crearea formularului va include o tabelă pivot generată de programul

Excel prin asistare Wizard.

6.5 Structura formularelor

Un formular Access este o fereastră Access, care ca orice fereastră în sistemele

Windows 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.

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

01:30

01:30

5

Page 64: baze de date

(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.

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: 02:35

02:20

Page 65: baze de date

• 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.

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:

…………………………………………………………………………………………...

…………………………………………………………………………………………...

…………………………………………………………………………………………...

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

02:55

02:45

Page 66: baze de date

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

Page 67: baze de date

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

Page 68: baze de date

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

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:

00:00

Page 69: baze de date

• 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

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.

00:40

Page 70: baze de date

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 >,

Page 71: baze de date

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.);

Page 72: baze de date

7.5 Afişarea şi tipărirea rapoartelor

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

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.

01:50

01:30

5

Page 73: baze de date

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 &

After

• Eveniment:

o Format

o Print

o Retreat

7.8 Controale calculate

Ca la formulare, controalele calculate sunt create prin înscrierea expresiei de

calcul în proprietatea Control Source.

Exemple:

= [Stoc-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:

…………………………………………………………………………………………...

…………………………………………………………………………………………...

…………………………………………………………………………………………...

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; 02:55

02:20

02:10

Page 74: baze de date

• 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

Page 75: baze de date

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 1-

octombrie-2009 şi 10-decembrie-2009.

Page 76: baze de date

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

Page 77: baze de date

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ă

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.

...........................................................................................................................................

...........................................................................................................................................

00:00

Page 78: baze de date

...........................................................................................................................................

8.4 Crearea unui obiect macro

Un obiect macro se poate crea prin executarea comenzii (opţiunii) Macro din

meniul Create (fig. 8.1).

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 intr-

un grup de executie conditionata ce poate fi creat folosind optiunea IF din catalogul de

00:20

Page 79: baze de date

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

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,

01:05

Page 80: baze de date

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

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.

01:40

Page 81: baze de date

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.

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:

01:50

Page 82: baze de date

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

Page 83: baze de date

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

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:

00:00

Page 84: baze de date

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

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.

Instructiunea pentru crearea unei baze date:

CREATE DATABASE nume_bd;

Exemplu:

CREATE DATABASE excursii;

00:30

00:15

Page 85: baze de date

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, …)

Page 86: baze de date

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”;

Page 87: baze de date

Instructiuni pentru selectia datelor :

- 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;

01:30

Page 88: baze de date

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.

Page 89: baze de date

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, MIN(nr_absente) AS

NrMinAbsente FROM studenti WHERE an=2;

Rezultatul:

NrMaxAabsente NrMinimAbsente

34 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.

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]

02:15

Page 90: baze de date

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

Page 91: baze de date

SELECT tip_imobil AS TipImobil, AVG(val_asigurata) AS

MediaValAsigurate FROM imobile GROUP BY tip_imobil HAVING

AVG(val_asigurata)>30000;

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 JOIN

ContinutFactura ON Materiale.Cod_Material =

ContinutFactura.Cod_Material;

Subinterogări

SELECT lista_campuri FROM tabela1 WHERE tabela1.camp=(SELECT camp

Page 92: baze de date

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:

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?

02:40

Page 93: baze de date

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:

Page 94: baze de date

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

Page 95: baze de date

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

Page 96: baze de date

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

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

00:00

Page 97: baze de date

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, MS-

SQL, Oracle. Folosiţi drept principală sursă de informare Internetul.

……………………………………………………………………………………….

……………………………………………………………………………………….

……………………………………………………………………………………….

10.4. Microsoft Access-SQL

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 (.);

00:15

Page 98: baze de date

• 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

Page 99: baze de date

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ă,

• <expresie> 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

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 ;

01:15

Page 100: baze de date

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

Page 101: baze de date

• 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

Î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

Î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;

02:00

01:45

Page 102: baze de date

- 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

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:20

Page 103: baze de date

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

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 SGBD-

urile, SQL se bazează în principal pe conceptul de:

a. bloc de cerere b. instrucţiune c. comandă d. tabel

02:50

02:40

Page 104: baze de date

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

Page 105: baze de date

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