UTILIZAREA ACESTORASpecializarea TEHNOLOGIA INFORMAȚIEI Forma de învățământ ID emestrul I -sProgram universitar de conversie profesională pentru… [620714]

2005BAZE DE DATE
ȘI
UTILIZAREA ACESTORASpecializarea TEHNOLOGIA INFORMAȚIEI
Forma de învățământ ID emestrul I -sProgram universitar de conversie profesională
pentru cadrele didactice din mediul ruralpost
Adriana OLTEANU Magdalena ANGHEL
Radu Nicolae PIETRARU

Ministerul Educa ției și Cercetării
Proiectul pentru Înv ățământul Rural

TEHNOLOGIA INFORMA ȚIEI

Baze de date și utilizarea acestora

Adriana OLTEANU Radu Nicolae PIETRARU
Magdalena ANGHEL

2005

© 2005 Ministerul Educației
țși Cercetării
Proiectul pentru Învă ământul Rural
Nici o parte a acestei lucrări
nu poate fi reprodusă fărăacordul scris al ui Ministerul Educației și Cercetării

Baze de date și utilizarea acestora

Proiectul pentru Înv ățământul Rural i BAZE DE DATE ȘI UTILIZAREA ACESTORA

Cuprins Pagina

INTRODUCERE vi

UNITATEA DE INV ĂȚARE NR. 1 – Problematica organiz ării informa țiilor
în mediul electronic

Obiectivele unit ății de învățare nr. 1 2

1.1. Introducere 2

1.2. Ce este o baz ă de date? 3
1.3. Clasificarea sist emelor de baze de date 5
1.3.1. Clasificare dup ă modelul de date 5
1.3.2. Clasificare dup ă numărul de utilizatori 7
1.3.3. Clasificare este cea dup ă numărul de sta
ții pe care este stocat ă
baza de date 8
1.4. Securitatea și protecția datelor in bazele de date 8
Lucrare de verificare a cuno ștințelor 10
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 11
Bibliografie 12
UNITATEA DE INV ĂȚARE NR. 2 – Sistemul de baze de date. Concepte și
arhitectur ă

Obiectivele unit ății de învățare nr. 2 14

2.1. Componentele unui si stem de baze de date 14
2.1.1.Hardware 14 2.1.2.Software 15 2. 1.3.Utilizatorii 16
2.1.4. Date persistente 16
2.2. Arhitectura intern ă a sistemlor de baze de date.
Modele de date, scheme și instanțe 17

2.3. Independen ța datelor 19
2.4.Limbaje SGBD 20 2.5.Interfe țe SGBD 21
Interfe țe bazate pe meniuri
Interfe țe grafice

Baze de date și utilizarea acestora

ii Proiectul pentru Înv ățământul Rural Interfe țe bazate pe forme
Interfe țe în limbaj natural
Interfe țe specializate aferente cererilor repetate
Interfe țe pentru administratorii bazelor de date

2.6. Exemple de SGBD 22 Lucrare de verificare a cuno ștințelor 24
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 25
Biblliografie 27

UNITATEA DE INV ĂȚARE NR. 3 – Proiectarea bazelor de date

Obiectivele unit ății de învățare nr. 3 28

3.1. Ce este proiectarea? 29
3.2. Modelul entitate-rela ție. Obiectele bazelor de date rela ționale 32
Tabel ă (relație)
Câmp (atribut) Înregistrare (nuplu) 3.3. Construc ția schemelor rela ție 34
3.3.1. Rela ția unul-la-unul (1-1 sau one to one) 34
3.3.2. Rela ția unul-la-multe (1-N sau one to many) 35
3.3.3. Rela ția multe-la-multe (M-N sau many to many) 36
3.3.4. Rela ția unară 37
3.4. Diagrama entitate-rela ție 38
3.5. Constrângeri de integritate 39 3.5.1. C onstrângerile de domeniu 40
3.5.2. C onstrângerile referitoare la n-upluri (înregistr ările din tabel ă)-
Cheia primar ă 41
3.5.3. Constrângeri între rela ții 41
3.6. Dependen țe funcționale 44
3.7. Normalizare. Forme normale. 44 3.7.1. Forma normal ă de ordin 1 (FN1) 45
3.7.2. Forma normal ă de ordin 2 (FN2) 46
3.7.3. Forma normal ă de ordin 3 (FN3) 46
3.7.4. Forma normal ă Boyce-Codd (FNBC) 47
3.8. Structuri de indec și în tabelele de date 48
3.8.1. Indexul primar 50
3.8.2. Indexul secundar 51
3.8. 3. Indexul de grup 52
3.8.4. Indexul multinivel 53

Baze de date și utilizarea acestora

Proiectul pentru Înv ățământul Rural iii
Lucrări de verificare a cuno ștințelor 55
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 56
Biblliografie 57
UNITATEA DE INV ĂȚARE NR. 4 – Un limbaj pentru bazele de date
relaționale (SQL)

Obiectivele unit ății de învățare nr. 4 61

4.1. Introducere 62
4.1.1. Deschiderea și închiderea aplica ției Microsoft Access 62
4.1.2. Crear ea unei baze de date noi 63
4.1.3. Înch iderea unei baze de date 63
4.2. Tipuri de date MICROSOFT Access 64 4.3. Operatorii logici 66 4.4. Limbajul standard SQL 68 4.4.1. Scur t istoric al limbajului SQL 68
4.4.2. Crearea unei tabele 69
4.4.3. Salvarea unei tabele 72
4.4.4. Ștergerea unei tabele 73
4.4.5.Modifi carea structurii unei tabele 74
4.5.Modificarea datelor în SQL 74 4.5.1. Inse rarea de noi linii într-o tabel ă 74
4.5.2. Ștergerea unor linii dintr-o tabel ă 75
4.5.3. Modifi carea unor linii dintr-o tabel ă 77
4.6. Limbajul de cereri în SQL 79 4.6.1. Cereri simple 79
Expresii aritmetice
Alias de coloan ă
Constant e (literali)
4.6. 2. Clauza DISTINCT 84
4.6.3.Clauza ORDER BY 85 4. 6.4. Clauza WHERE 86
Operatorul BETWEEN
Operatorul IN
Operatorul IS NULL
Operatorul LIKE
4.6.5. Func ții de grup 90
4.6.6. Clauza GROUP BY 92 4.6. 7. Clauza HAVING 93
4.6.8. Cereri con ținând mai multe tabele 94

Lucrări de verificare a cuno ștințelor 99

Baze de date și utilizarea acestora

iv Proiectul pentru Înv ățământul Rural
Răspunsuri și comentarii la întreb ările din testele de
autoevaluare 101

Biblliografie 102
UNITATEA DE INV ĂȚARE NR. 5 – Construirea interfe țelor cu ajutorul
formularelor în Microsoft Access

Obiectivele unit ății de învățare nr. 5 104
5.1. Ce este un formular? 105 5.2. Lucrul cu formularele 105 5.2.1. Desch iderea unui formular 105
5.2.2. Cr earea unui formular 105
5.2.3. Utilizarea unui formular
pentru a introduce și a modifica date în tabel ă 109
5.2.4. Parcurgerea înregistr ărilor utilizând formularele 110
5.2.5. Ad ăugarea și modificarea textului în antet și subsol 110
5.2.6. Ștergerea unui formular 112
5.3. Salvarea și închiderea unui formular 112
Lucrare de verificare a cuno ștințelor 113
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 114
Bibliografie 114

UNITATEA DE INV ĂȚARE NR. 6 – Rapoarte în Microsoft Access

Obiectivele unit ății de învățare nr. 6 116
6.1. Ce este un raport? 117 6.2. Lucrul cu rapoarte 117 6.2.1. Desch iderea unui raport 117
6.2.2. Crearea unui raport 117
6.2.3. Ad ăugarea și modificarea textului în antet și subsol 123
6.2.4. Ștergerea unui raport 125
6.3. Salvarea și închiderea unui raport 125

Lucrare de verificare a cuno ștințelor 125
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 127
Biblliografie 127

Introducere

Proiectul pentru Înv ățământul Rural v BAZE DE DATE ȘI UTILIZAREA ACESTORA

INTRODUCERE

Stimate cursant,

Încă de la început doresc s ă îți urez bun venit la studiul cursului
destinat studierii bazelor de date și utilizării acestora. Acest curs se
adreseaz ă atât cursan ților cu un grad mai mare de familiarizare cu
universul gestion ării datelor, cât și cursanților încep ători. Acest curs
este un curs introductiv în proiectarea și utilizarea bazelor de date.

Există totuși anumite cuno ștințe legate de utilizar ea calculatorului
necesare parcurgerii acestui curs, cum ar fi: cunoa șterea modalit ății
de organizare și manipulare a informa ției în format electronic, opera ții
de bază privind sistemul de operare Microsoft Windows și utilizarea
tastaturii PC standard și a mouse-ului.

Manualul de fa ță este organizat în 6 unit ăți de învățare, fiecare dintre
aceste unit ăți conținând o parte de prezentare teoretic ă a subiectului
tratat, o parte de exempl e, teste de autoevaluare și rezolvările
acestora, precum și lucrări de verificare a cuno ștințelor.

Cele 6 unit ăți de învățare sunt prezentate gradat, începând cu no țiuni
introductive despre baze de dat e, clasificarea lor, pân ă la concepte
ale bazelor de date, proiectarea baz elor de date, folosirea limbajului
de interogare a bazelor de date. La finalul manualului vom studia împreună construirea interfe țelor și realizarea rapoartelor în mediul
Microsoft Access.

La începutul fiec ărei unități de învățare vor fi detaliate obiectivele
propuse în respectiva unitate.

În cadrul fiec ărei unități de înv ățare exist ă câte o lucrare de
verificare, care cuprinde mai multe întreb ări. Lucrările de verificare
sunt pozi ționate la sfâr șitul fiecărei unități de învățare, rezolvarea
problemelor propuse din lucr ările de verificare fiind asem ănătoare cu
cea din exemple din cadrul unit ății de învățare respective.

În cadrul fiec ărei unități de învățare exist ă teste de autoevaluare,
acestea fiind necesare pentru a fixa cuno ștințele dobândite în fiecare
capitol și pentru a permite evaluarea continu ă a cursantului.
Răspunsurile la testele de evaluare se vor completa în spa țiile
speciale din cadrul manualului.

De-a lungul modulului „Baze de date și utilizarea acestora” exist ă 22
de teste de autoevaluare, ca re cuprind 28 de întreb ări și 6 lucrări de
verificare a cuno ștințelor, care cuprind 43 de probleme. Problemele
din testele de autoevaluare sunt punctate cu 0,5 puncte, fiind considerate evaluare pe parcurs, iar cele din lucr ările de verificare

Introducere

vi Proiectul pentru Înv ățământul Rural sunt punctate cu 2 puncte, aceste puncte fiind considerate evaluare
finală, astfel:
-în unitatea 1 sunt 4 întreb ări în testele de autoevaluare, deci se
obțin 2 puncte și 2 întreb ări la lucrarea de verificare unde se ob țin 4
puncte. -în unitatea 2 sunt 7 întreb ări în testele de autoevaluare, deci se
obțin 3,5 puncte și 1 întrebare la lucrarea de verificare unde se ob țin
2 puncte. -în unitatea 3 sunt 7 întreb ări în testele de autoevaluare, deci se
obțin 3,5 puncte și 6 întreb ări la lucrarea de verificare unde se ob țin
12 puncte. -în unitatea 4 sunt 4 întreb ări în testele de aut oevaluare, deci se
obțin 2 puncte și 27 întreb ări la lucrarea de ve rificare unde se ob țin
54 puncte. -în unitatea 5 sunt 3 întreb ări în testele de autoevaluare, deci se
obțin 1,5 puncte și 3 întreb ări la lucrarea de verificare unde se ob țin 6
puncte. -în unitatea 6 sunt 3 întreb ări în testele de autoevaluare, deci se
obțin 1,5 puncte și 4 întreb ări la lucrarea de verificare unde se ob țin 8
puncte.

Însumate punctele ob ținute de cursan ți de-a lungul semestrului sunt
100.

Lucrările de verificare vor fi transmi se tutorelui modulului într-un fi șier
separat.

Bibliografia minimal ă a acestui modul este:
• Cârstoiu, Dorin, Baze de date rela ționale, Editura Printech,
1999
• Rădulescu, Florin, Baze de date în Internet, Editura Printech,
2000
• Ionescu, Felicia, Baze de date rela ționale și aplicații, Editura
Tehnică, 2004
• Baltac, Vasile, ECDL-Excel, Access, PowerPoint în 20 lec ții și
75 de simul ări, Editura Andreco, 2003
• Browne, Allen, Balter Alison, Bazele Access 95 , Editura Teora,
1999
• Pribeanu, Costin, Baze de date și aplicații, Editura MatrixRom,
2000
• Pascu, C., Pascu A., Totul despre SQL , Editura Tehnic ă, 1994

Bibliografia este prezentat ă și la sfârșitul fiecărei unități de învățare

În cazul în care nu ve ți reuși să rezolvați problemele propuse trebuie
recitite zonele de text care apar î nainte de lucrarea de verificare. În
speranța că nu vor exista probleme v ă urăm:
Spor la treab ă!

Autorii

Problematica organiz ării informa țiilor în mediul electronic

Proiectul pentru Înv ățământul Rural 1 Unitatea de înv ățare Nr. 1

PROBLEMATICA ORGANIZ ĂRII INFORMA ȚIILOR
ÎN MEDIUL ELECTRONIC

Cuprins Pagina

Obiectivele unit ății de învățare nr. 1 2

1.1. Introducere 2

1.2. Ce este o baz ă de date? 3
1.3. Clasificarea sist emelor de baze de date 5
1.3.1. Clasificare dup ă modelul de date 5
1.3.2. Clasificare dup ă numărul de utilizatori 7
1.3.3. Clasificare este cea dup ă numărul de sta
ții pe care este stocat ă
baza de date 8
1.4. Securitatea și protecția datelor in bazele de date 8
Lucrare de verificare a cuno ștințelor 10
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 11
Biblliografie 12

Problematica organiz ării informa țiilor în mediul electronic

2 Proiectul pentru Înv ățământul Rural OBIECTIVELE unit ății de învățare nr. 1

Principalele obiective ale unit ății de învățare nr. 1 sunt:

1.1. Introducere
În ultimii ani, dezvoltarea si stemelor de baze de date
reprezint ă unul dintre cele mai importante aspecte în domeniul
tehnologiei informa ției, având un impact deci siv asupra modului de
organizare și funcționare a numeroaselor institu ții și servicii.
Acestea sunt com paniile de comunica ție, intreprinderile de comer ț,
serviciile bancare, serv iciile de transport, asigur ările, universit ățile
etc. Acestea sunt dependente de func ționarea corect ă și
neîntrerupt ă a sistemelor de baze de date.
Sistemele de baze de date sunt o component ă important ă a
vieții de zi cu zi în societatea modern ă. Zilnic, majoritatea
persoanelor desf ășoară activități care implic ă interacțiunea cu o
bază de date: depunerea sau extr agerea unei sume de bani din
bancă, rezervarea biletelor de tren sau de avion, c ăutarea unei
cărți într-o bibliotec ă computerizat ă, gestiunea angaja ților dintr-o
firmă, cumpărarea unor produse etc.
Bazele de date pot avea m ărimi (num ăr de înregistr ări) și
complexit ăți extrem de variate, de la câteva zeci de înregistr ări (de
exemplu, baza de date pentru o agend
ă de telefon a unei
persoane) După studiul unit ății de învățare nr. 1 vei fi capabil s ă demonstrezi c ă
ai dobândit cuno ștințe suficiente pentru a în țelege:

• de ce sunt importante în via ța de zi cu zi bazele de date

• în ce companii se folosesc bazele de date

• ce categorii de opera ții se pot realiza asupra datelor din baza de
date

• ce reprezint ă efectiv o baz ă de date

• ce avantaje î ți oferă utilizarea bazelor de date

• clasificarea bazelor de date

• care sunt caracteristicile fiec ărui model de baze de date

• de ce este important ă protecția și securizarea datelor din baza de
date

• diferite moduri de protejare a datelor

Problematica organiz ării informa țiilor în mediul electronic

Proiectul pentru Înv ățământul Rural 3

sau pot ajunge la milioane de înregistr ări (de exemplu, baza de
date pentru c ărțile dintr-o bibliotec ă, baza de date cu stocarea
angajaților unei firme sau baza de date unde se p ăstrează
informații despre situa ția studen ților etc).

Marea majoritate a sistemelor de baze de date existente în
momentul de fa ță sunt rela ționale și există un num ăr mare de
astfel de sisteme comerciale care pot fi achizi ționate și folosite
pentru propriile dezvolt ări. Modelul rela țional de baze de date a
fost introdus în anul 1970 de c ătre E.F.Codd.
o Utilizatorii unei baze de date au posibilitatea s ă efectueze
mai multe categorii de opera ții asupra datelor stocate aici:
• Introducerea de noi date ( insert )
• Ștergerea unor date existente în baza de date(de lete)
• Actualizarea datelor stocate( update )
• Interogarea bazei de date ( query ) pentru reg ăsirea anumitor
informații, selectate dup ă un criteriu ales.

1. 2. Ce este o Baz ă de Date?

În sensul larg, o baz ă de date ( database ) este o colec ție de
date corelate din punct de vedere logic, care reflect ă un anumit
aspect al lumii reale și este destinat unui anum it grup de utilizatori.
În acest sens, bazele de date pot fi create și menținute manual (un
exemplu ar fi fi șele de eviden ță a cărților dintr-o bibliotec ă, așa
cum erau folosite cu ani în urm ă) sau computerizat a șa cum sunt
majoritatea bazelor de date în momentul de fa ță. O defini ție într-un
sens mai restrâns a unei baze de date este urm ătoarea:

O bază de date este o colec ție de date centralizate, creat ă
și menținută computerizat, în scopul prelucr ării datelor în contextul
unui set de aplica ții. Prelucrarea datelor se refer ă la opera țiile de
introducere, ștergere, actualizare și interogare a datelor.

Simple colec ții de fișe (documente pe hârtie) sau fi șiere de
date care con țin date, dar nu permit opera ții de interogare nu sunt
considerate baze de date. De exem plu, datele memorate în fi șiere
pe disc într-o aplica ție de calcul tabelar (Microsoft Excel) sau
documentele memorate de un editor de texte (ca Microsoft Word)
nu sunt considerate baze de date. Test de autoevaluare
1. De ce sunt importante bazele de date?

Problematica organiz ării informa țiilor în mediul electronic

4 Proiectul pentru Înv ățământul Rural

Orice baz ă de date are urm ătoarele propriet ăți implicite:

• Baza de date este o colec ție logică coerentă de date ce are
cel puțin un înțeles

• Baza de date este destinat ă, construit ă și populat ă de date
despre un domeniu bine precizat. Ea are un grup de
utilizatori și se adreseaz ă unui anumit grup de aplica ții

• O baz ă de date reprezint ă câteva aspecte ale lumii reale
creând orizontul propriu. Schimb ările orizontului sunt
reflectate în baza de date.

Față de vechile metode de înregistrare a datelor privind
diferite activit ăți pe fișe (documente scrise) sau chiar în fi șiere pe
disc, sistemele de baze de date ofer ă avantaje considerabile, ceea
ce explic ă extinsa utilizare a acestora. Câteva dintre avantajele
oferite sunt:

• Controlul centralizat al datelor , putând fi desemnat ă o
persoană ca responsabil cu administrarea bazei de date

• Viteză mare de regăsire și actualizare a informa țiilor

• Sunt compacte : volumul ocupat de sistemele de baze de
date este mult mai redus decât documetele scrise

• Flexibilitatea ce const ă în posibilitatea modific ării structurii
bazei de date f ără a fi necesar ă modificarea programelor de
aplicație

• Redundan ță scăzută a datelor memorate, care se ob ține
prin partajarea datelor între mai mul ți utilizatori și aplicații.
În sistemele de baze de date, mai multe aplica ții pot folosi
date comune, memorate o singur ă dată. De exemplu, o
aplicație pentru gestionarea personalului dintr-o universitate
și o aplica ție pentru gestionarea rezultatelor la examene din
aceeași universitate care folose ște o singur ă bază de date,
pot folosi acelea și informa ții referitoare la structurarea
facultăților.

• Posibilitatea introducerii standardelo r privind modul de
stocare a datelor, ceea ce permi te interschimbarea datelor
între organiza ții

• Menținerea integrit ății datelor prin politica de securitate
(drepturi de acces diferen țiate în func ție de rolul
utilizatorilor), prin gestionarea tranzac țiilor și prin refacerea
datelor în caz de func ționare defectuoas ă a diferitelor
componente hardware sau software.

Problematica organiz ării informa țiilor în mediul electronic

Proiectul pentru Înv ățământul Rural 5

• Independen ța datelor față de suportul hardware utilizat.
Sistemul de gestiunea a bazelor de date ofer ă o vizualizare
a datelor, care nu se modific ă atunci când se schimb ă
suportul de memorare fizic, ceea ce asigur ă imunitatea
structurii bazei de date și a aplica țiilor la modific ări ale
sistemului hardware utilizat.

1. 3. Clasificarea sistemelor de baze de date

Se pot lua în considerare mai mu lte criterii de clasificare ale
sistemelor de baze de date.

1.3.1. Clasificare dup ă modelul de date.

Majoritatea sistemelor de baze de date actuale sunt
realizate în modelul de date rela țional sau în modelul de date
orientat obiect. Dezvoltarea continu ă a acestor modele a condus
către o nou ă categorie de baze de date numite obiect-rela ționale,
care combin ă caracteristicile modelului rela țional cu caracteristicile
modelului orientat obiect.

Modelul de date rela țional (Relational Model) se bazeaz ă
pe noțiunea de rela ție din matematic ă, care corespunde unei
entități de acela și tip și are o reprezentare u șor de înțeles și de
manipulat, ce const ă dintr-un tabel bidimensi onal, compus din linii
și coloane. Fiecare lini e din tabel reprezint ă o entitate și este
compusă din mul țimea valorilor atributelor entit ății respective,
fiecare atribut corespunzând unei coloane a tabelului.

Modelul de date rela țional a fost propus de cercet ătorul
E.F.Codd de la compania IBM, care a publicat în 1970 lucrarea
“Un model rela țional de date pentru b ănci mari de date partajate”.
Alte lucr ări ale lui Codd, ca și ale altor cercet ători ca R. Boyce,
J.D. Ullman etc au perfec ționat modelul de date rela țional și au
permis dezvoltarea sistem elor de baze de date.

Chiar dac ă noțiunile de rela ție și tabel difer ă în esen ța lor,
relația reprezentând o mul țime de entit ăți și tabelul o reprezentare
vizuală a acesteia, cele dou ă denumiri se pot folosi, în general
pentru acela și scop.
Pe baza acestor no țiuni, se poate sintetiza esen ța
modelului rela țional prin urm ătoarele caracteristici:
• Datele sunt percepute de utilizatori ca tabele Test de autoevaluare
2. Dați o definiție a bazelor de date?

Problematica organiz ării informa țiilor în mediul electronic

6 Proiectul pentru Înv ățământul Rural Operatorii rela ționali care pot fi folosi ți pentru prelucrarea datelor
genereaz ă un tabel rezultat din tabelele operanzi

• Asocierea dintre tabele se realizeaz ă prin intermediul
egalității valorilor unor atribute co mune, ceea ce permite
rezolvarea oric ărei interog ări.

Pe lâng ă avantajul unui m odel de date precis și simplu,
sistemele de baze de date rela ționale mai beneficiaz ă și de un
limbaj de programare recunoscut și acceptat, limbajul SQL
(Structured Query Language ), pentru care au fost emise mai multe
standarde de c ătre Organiza ția Interna țională de Standardizare
(International Standardization Office-ISO ). Majoritatea sistemelor
de gestiune a bazelor de date rela ționale actuale implementeaz ă
versiunea din anul 1992 a standar dului pentru limbajul SQL,
denumită SQL 92 sau SQL2.

Modelul de date orientat obiect (Object Model) este un
concept unificator în știința calculatoarelor, fiind aplicabil în
programare, în proiectarea hardware, a interfe țelor, a bazelor de
date etc. Sistemele de baze de date orientate obiect se bazeaz ă
pe limbaje de programare or ientate obiect cu capacit ăți de
persisten ță, în care datele sunt independente de timpul de via ță al
programelor care le creeaz ă sau acceseaz ă, prin memorare pe
suport magnetic (disc).

Exist ă și unele domenii, în special cele care manipuleaz ă
tipuri de date complexe, cum ar fi proiectarea asistat ă de
calculator, sisteme de informa ții geografice, medicin ă etc, în care
modelul rela țional s-a dovedit a fi insuficient de expresiv și cu
performan țe de execu ție reduse.
Caracteristicile importante ale modelului orientat obiect
sunt: abstractizarea, mo ștenirea, încapsularea, modularizarea.

În programarea orientat ă obiect, programele sunt
organizate ca și colecții de obiecte cooperante, fiecare obiect fiind
o instanță a unei clase. Fiecare clas ă reprezint ă abstractizarea
unui tip de entitate di n realitatea modelat ă, iar clasele sunt
membre ale unei ierarhii de clase, corelate între ele prin rela ții de
moștenire. Orice obiect este încapsulat, ceea ce înseamn ă că
reprezentarea lui (adic ă structura intern ă a acelui obiect) nu este
vizibilă utilizatorilor, care au acces doar la func țiile (metodele) pe
care acel obiect este capabil s ă le execute. Clasele și obiectele
unui program orientat obiect sunt grupate în module, care pot fi
compilate separat și între care exist ă granițe bine definite și
documentate, ceea ce reduce co mplexitatea de manevrare a
datelor.

Din perspectiva realiz ării bazelor de date, o alt ă proprietate
a modelului obiect, persisten ța, este aceea care asigur ă

Problematica organiz ării informa țiilor în mediul electronic

Proiectul pentru Înv ățământul Rural 7

memorarea transparent ă pe suport magnetic a obiectelor care
alcătuiesc o baz ă de date orientat ă obiect.

Modelul de date obiect-rela țional (Object-Relational Model)
reprezint ă extinderea modelului rela țional cu caracteristici ale
modelului obiect, extindere necesar ă pentru realizarea bazelor de
date care definesc și prelucreaz ă tipuri de date complexe .
În esen ță, modelul obiect-rela țional păstrează structurarea
datelor în rela ții (reprezentate ca tabele), dar adaug ă posibilitatea
definirii unor noi tipuri de date , pentru domeniile de valori ale
atributelor. Tipurile de date definite de utilizator pot fi extinse prin
mecanismul de mo ștenire și pentru fiecare tip sau subtip se pot
defini metode pe care le pot executa obiectele de acel tip.

De asemenea mai sunt înc ă în func țiune baze de date
modele mai vechi: modelul ierarhic și modelul re țea.

În modelul de date ierarhic (Hierarchical Model) o baz ă de
date se reprezint ă printr-o structur ă ierarhic ă de înregistr ări de
date (records) conectate prin leg ături (links). Modelul ierarhic a
fost primul model folosit pentru dezvoltatea bazelor de date.

Schema conceptual ă a unei baze de date în modelul
ierarhic se reprezint ă printr-un num ăr oarecare de scheme
ierarhice. O schem ă ierarhic ă este un arbore direc ționat,
reprezentat pe mai multe niveluri, în care nodurile sunt tipurile de
înregistări, iar arcele sunt tipurile de leg ături. Fiecare nod (cu
excepția nodului r ădăcină) are o singur ă legătură către un nod de
pe un nivel superior (nodul p ărinte) și fiecare nod (cu excep ția
nodurilor frunz ă) are una sau mai multe leg ături către noduri de pe
nivelul imediat inferior (noduri fii).

Modelul de date re țea (Network Model) folose ște o structur ă
de graf pentru definirea schemei conceptuale a bazei de date; nodurile grafului s unt tipuri de entit ăți (înregistr ări, records), iar
muchiile grafului reprezint ă în mod explicit asocierile (leg ăturile,
links) dintre tipurile de entit ăți.

La fel ca și modelul ierarhic, dezavantajul principal al
modelului re țea este acela c ă fiecare interogare trebuie s ă fie
prevazut ă încă din faza de proiectare, prin memorarea explicit ă a
legăturilor între tipurile de entit ăți. În plus, complexitatea
reprezent ării datelor în modelul re țea este deosebit de ridicat ă, iar
programatorii trebuie s ă o cunosasc ă pentru a putea realiza
aplicațiile necesare.

1.3.2. Clasificare dup ă numărul de utilizatori.

Majoritatea sistemelor de baze de date sunt sisteme
multiutilizator , adică permit accesul concurent (în acela ți timp) a
mai multor utilizatori la aceea și bază de date. Exist ă și un num ăr

Problematica organiz ării informa țiilor în mediul electronic

8 Proiectul pentru Înv ățământul Rural

redus de sisteme monoutilizator , adică suportă accesul doar al
unui utilizator (la un moment dat).

1.3.3. Clasificare dup ă numărul de sta ții
pe care este stocat ă baza de date

O alt ă clasificare este cea dup ă numărul de sta ții pe care
este stocat ă baza de date

Exist ă două categorii de sistem e de baze de date:
centralizate și distribuite.
Un sistem de baze de date centralizat (Centralized
Database System ) este un sistem de baze de date în care datele
și sistemul de gestiune sunt st ocate pe un singur calculator.
Un sistem de baze de date distribuit (Distributed Database
System) poate avea atât datele, cât și sistemul de gestiune,
distribuite pe mai multe calculat oare interconectate printr-o re țea
de comunica ție.
1.4. Securitatea și protecția datelor in bazele de date

Prin protec ția și securitatea datelor se în țelege totalitatea
mijloacelor, metodelor și a mecanismelor destinate prevenirii
distrugerii, modific ării sau folosirii neautorizate a informa ției
protejate.
Referitor la protec ția și securitatea datelor, în literatura de
specialitate se definesc urm ătoarele concepte de baz ă:

• Securitatea datelor – totalitatea m ăsurilor de protec ție
împotriva distrugerii accidentale sau inten ționate, a modific ării
neautorizate sau a divulg ării acestora

• Caracterul secret – este un concept ce se aplic ă la un individ
sau organiza ție și constă în dreptul acestora de a decide ce
informații se pot folosi în comun și în ce condi ții

• Confiden țialitatea – se aplic ă la date și se refer ă la statutul
acordat, acesta reprezentând nivelul sau gradul de protec ție ce
trebuie acordat informa ției respective Test de autoevaluare
3. Faceți o clasificare a bazelor de date?

Problematica organiz ării informa țiilor în mediul electronic

Proiectul pentru Înv ățământul Rural 9

• Integritatea – se refer ă la restric ția ca sensul datelor s ă nu
difere fa ță de cel înscris pe documentul surs ă, impunând
totodată ca datele s ă nu fie alterate accidental sau voit.

No țiunile de mai sus sunt st râns legate între ele, m ăsurile
parțiale se suprapun și se acoper ă reciproc.
Securitatea și protecția datelor din baza de date constituie
un domeniu foarte vast, care prezint ă două aspecte principale: pe
de o parte, elementele legale și etice privind drepturile de acces la
anumite informa ții, iar pe de alt ă parte, elementele legate de
organizarea sistemelor informati ce din punct de vedere al
posibilităților de acces la datele stocate.
Unele informa ții care exist ă în baza de dat e sunt strict
private și nu pot fi accesate legal de c ătre persoane neautorizate.
Diferite reglement ări guvernamentale sau legi existente în
majoritatea țărilor stabilesc ce informa ții privind activitatea
instituțiilor sau a persoanelor pot fi f ăcute publice și în ce condi ții.

La nivelul sistemelor informatice se pot diferen ția aspecte
de securitate la nivel fizic (hardware), la nivelul sistemului de
operare și la nivelul sistemului de gestiune al bazei de date.

În principal, de problemele de protec ție și securitate este
responsabil administratorul bazei de date, care are un cont privilegiat în sistemul de gestiune (numit în general cont de sistem
– system account ) care prevede capabilit ăți foarte puternice, pe
care alte conturi sau ut ilizatori nu le au. Prin intermediul contului
de sistem administratorul bazei de date poate efectua mai multe
operații: crearea conturilor, acordar ea sau retragerea privilegiilor,
etc.
Orice persoan ă care dore ște să se conecteze ( log in ) la o
bază de date trebuie s ă dețină un cont ( account, user ) și o parolă
(password ). Sistemul de gestiune verific ă contul și parola și
autentific ă acel utilizator, dac ă acestea sunt corecte. Programele
de aplica ții sunt considerate de asemenea utilizatori și se
conecteaz ă pe un anumit cont și trebuie s ă furnizeze parola
acestuia.
O alt ă tehnică de protec ție și securitate a datelor este
criptarea datelor ( Data Encryption) , prin care datele importante
sunt codate folosind diferi ți algoritmi de codare, mai ales atunci
când sunt transmise prin intermediul re țelelor de comunica ție.
Interpretarea datelor criptate este dificil ă dacă nu este cunoscut
ă
cheia (cifrul) de codare. În felul acesta numai utilizatorii autoriza ți
care dețin cheile de decriptar e pot interpreta cu u șurință aceste
date.

Problematica organiz ării informa țiilor în mediul electronic

10 Proiectul pentru Înv ățământul Rural

O alt ă tehincă se securizare a ba zei de date pentru
aplicațiile web ar fi inst alarea unui firewall , acesta fiind un
calculator pe care este instalat un software special care permite
accesarea calculatorului pe care este stocat ă baza de date numai
de către anumite calculatoare.
Deci, prin securitatea bazei de date se în țelege o
multitudine de m ăsuri destinate protec ției informa țiilor conținute în
baza de date împotriva unor alter ări, distrugeri sau divulg ări
neautorizate.

Test de autoevaluare
4. Specifica ți anumite tehnici de protec ție a bazelor de date.
Lucrare de verificare a cuno ștințelor

1. Spune ți câteva avantaje ale faptului c ă datele se p ăstrează
și se manipuleaz ă mai bine stocate în format electronic.

2. Descrie
ți în câteva cuvinte de ce este important s ă protejăm
datele.

Problematica organiz ării informa țiilor în mediul electronic

Proiectul pentru Înv ățământul Rural 11

Răspunsuri și comentarii la întreb ările din testele de
autoevaluare

Întrebarea 1.

Bazele de date sunt important e deoarece în cursul unei zile
majoritatea persoanelor desf ășoară activități care implic ă
interacțiunea cu o baz ă de date: depunerea sau extragerea unei
sume de bani din banc ă, rezervarea biletelor de tren sau de avion,
căutarea unei c ărți într-o bibliotec ă computerizat ă, gestiunea
angajaților dintr-o firm ă, cumpărarea unor produse etc.

Întrebarea 2.

O bază de date este o colec ție centralizat ă de date în scopul
optimizării prelucr ării acestora în contex tul unui set dat de aplica ții.
Operațiile care se pot realiza asupra datelor dintr-o baz ă de date
sunt de inserare a unor date noi, de modificare a datelor existente, de ștergere a datelor sau de crearea a unor interog ări pentru
regăsirea unor informa ții după un anumit criteriu.

Întrebarea 3.

O scurtă clasificare a bazelor de date este urm ătoarea:
• Clasificare dup ă modelul de date
o Model de date rela țional
o Model de date orientat obiect
o Model de date obiect-rela țional
o Model de date ierarhic
o Model de date re țea
• Clasificare dup ă numărul de utlizatori
o Baze de date multiutilizator
o Baze de date monoutlizator
• Clasificare dup ă numărul de sta ții pe care este stocat ă baza
de date
o Sisteme de baze de date centralizate
o Sisteme de baze de date distribuite

Întrebarea 4.

Securitatea și protecția datelor din baza de date prezint ă două
aspecte principale: pe de o parte, elementele legale și etice privind
drepturile de acces la anumite informa ții, iar pe de alt ă parte,
elementele legate de organizarea sist emelor informatice din punct
de vedere al posibilit ăților de acces la datele stocate.
Două din tehnicile de securizare și protecție a datelor din baza de
date sunt: crearea de conturi de utlizatori cu anumite drepturi
pentru fiecare utilizator în parte de c ătre administratorul bazei de
date și criptarea datelor. Mai exist ă și alte tehnici în func ție de tipul
aplicației.

Problematica organiz ării informa țiilor în mediul electronic

12 Proiectul pentru Înv ățământul Rural
Bibliografie:

• Cârstoiu, Dorin, Baze de date rela ționale, Editura Printech,
1999
• Rădulescu, Florin, Baze de date în Internet, Editura
Printech, 2000
• Ionescu, Felicia, Baze de date rela ționale și aplicații,
Editura Tehnic ă, 2004
• Baltac, Vasile, ECDL-Excel, Access, PowerPoint în 20 lec ții
și 75 de simul ări, Editura Andreco, 2003
• Browne, Allen, Balter Alison, Bazele Access 95 , Editura
Teora, 1999
• Pribeanu, Costin, Baze de date și aplicații, Editura
MatrixRom, 2000
• Pascu, C., Pascu A., Totul despre SQL , Editura Tehnic ă,
1994

Sistemul de baze de date – concepte și arhitectur ă

Proiectul pentru Înv ățământul Rural 13 Unitatea de înv ățare Nr. 2

SISTEMUL DE BAZE DE DATE – CONCEPTE ȘI ARHITECTUR Ă

Cuprins Pagina

Obiectivele unit ății de învățare nr. 2 14

2.1. Componentele unui si stem de baze de date 14
2.1.1.Hardware 14 2.1.2.Software 15 2. 1.3.Utilizatorii 16
2.1.4. Date persistente 16
2.2. Arhitectura intern ă a sistemlor de baze de date.
Modele de date, scheme și instanțe 17

2.3. Independen ța datelor 19
2.4.Limbaje SGBD 20 2.5.Interfe țe SGBD 21
Interfe țe bazate pe meniuri
Interfe țe grafice

Interfe țe bazate pe forme
Interfe țe în limbaj natural
Interfe țe specializate aferente cererilor repetate
Interfe țe pentru administratorii bazelor de date

2.6. Exemple de SGBD 22 Lucrare de verificare a cuno ștințelor 24

Răspunsuri și comentarii la întreb ările din testele de autoevaluare 25
Biblliografie 27

Sistemul de baze de date – concepte și arhitectur ă

14 Proiectul pentru Înv ățământul Rural În unitatea de înv ățare nr. 1 am realizat o scurt ă introducere în
acest amplu domeniu al bazelor de date. Am adus în discu ție unde se
folosesc bazele de date, am prezent at o clasificare a sistemelor de
baze de date și am dorit s ă subliniez importan ța securiz ării bazelor de
date și a protec ției datelor stocate în bazele de date

În aceast ă unitate de înv ățare vom descrie mai în detaliu ce este
un sistem de baze de date și în ce const ă el.

OBIECTIVELE unit ății de învățare nr. 2

Principalele obiective ale unit ății de învățare nr. 2 sunt:

2.1.
Componentele unui sistem de baze de date

Un sistem de baze de date (Database System) reprezint ă
un ansamblu de componente care asigur ă crearea, utilizarea și
întreținerea uneia sau mai multor baze de date. Componentele
unui sistem de baze de date sunt: har dware, software, utilizatori,
date persistente.

2.1.1. Hardware .

Calculatoarele pe care sunt in stalate de obicei sistemele
de baze de date sunt PC standard, dar și calculatoare
multiprocesor foarte puternice. Performan țele generale de operare
ale calculatorului (num ărul și viteza procesoarelor, dimensiunea și
viteza de operare a memoriei etc) influen țează în mod

După studiul unit ății de învățare nr. 2 vei fi capabil s ă demonstrezi c ă
ai dobândit cuno ștințe suficiente pentru a în țelege:
• ce este un sistem de baze de date

• care sunt componentele unui sistem de baze de date

• care sunt tipurile de utilizatori de baze de date

• care este arhitectura intern ă a unui sistem de baze de date

• care este independen ța fizică și cea logic ă a datelor din baza de
date

• care sunt limbajele pentru sist emele de gestiune a bazelor de date

• care sunt interfe țele corespunz ătoare fiec ărui tip de utilizator

• câteva exemple de sisteme de baze de date

Sistemul de baze de date – concepte și arhitectur ă

Proiectul pentru Înv ățământul Rural 15

corespunz ător perfoman țele sistemului de baz e de date. Cea mai
important ă caracteristic ă a calculatorului pe care func ționează
sistemul de baze de date este capacitatea harddisk-ului, utilizat ă
pentru memorarea datelor din baza de date.

Deoarece într-un sistem de baze de date este necesar
accesul rapid la oricare dintre înregistr ările de date, pentru
memorarea acestora se folosesc discurile magnetice (harddisk-uri). Benzile magnetice (care ofer ă acces secven țial la
înregistrările de date) se folosesc pentru duplicarea (backup),
salvarea și restaurarea datelor.

2.1.2. Software

Între baza de date (colec ția de date memorate fizic în fi șiere
pe harddisk-uri) și utilizatorii sistemului exist ă un nivel software,
numit sistem de gestiune a bazei de date (SGBD)-(DataBase
Management System). O baz ă de date computerizat ă poate fi
generată și menținută fie cu ajutorul unui grup de programe de
aplicație specifice acestui scop, fie cu acest SGBD.

Figura 2.1 . Componente ale sistem ului de baze de date

Sistemul de gestiune al bazei de date (SGBD) este un
interpretor de cereri, el recep ționând de la utilizatori anumite
cereri de acces la baza de date, le interpreteaz ă, execut ă
operațiile respective și returneaz ă rezultatul c ătre utilizatori.

De fapt, SGBD este un si stem de programe general ce
faciliteaz
ă procesul definirii, construc ției și manipul ării datelor
pentru diverse aplica ții.

• Definirea bazei de date presupune specificarea tipurilor de
date ce vor fi stocate în baza de date, precum și descrierea
detaliată a fiecărui tip de dat ă.

• Construc ția bazei de date reprezint ă procesul stoc ării
datelor îns ăși prin mediul controlat prin SGBD.

• Prin manipulare se înțeleg o serie de func ții ce faciliteaz ă
implementarea cererilor pentru g ăsirea datelor specificate,
adăugarea de noi date ce reflect ă modificarea contextului,
generearea de rapoarte pe baza con ținutului bazei de date.
În concluzie, pachetul software ce asigur ă manipularea Utilizator Aplicatie SGBD Baza de date

Sistemul de baze de date – concepte și arhitectur ă

16 Proiectul pentru Înv ățământul Rural

datelor, împreun ă cu datele îns ăși (conținutul bazei de
date) formeaz ă ceea ce se nume ște sistemul de baze de
date (DataBase System).

Un SGBD ofer ă utilizatorilor o viziune a datelor stocate în
baza de date, nemaifiind necesar ă cunoașterea organiz ării
particulare a sistemului, asigur ă o protec ție a datelor fa ță de
accese neautorizate și de anumite defecte de func ționare.

2.1.3. Utilizatorii

Utilizatorii unui sistem de baze de date se împart în câteva
categorii:

• Programatorii de aplica ții sunt cei care dezvolt ă aplicațiile
de baze de date în anumite medii de programare. Aplica țiile
pot fi aplica ții desktop (stand alone) și aplicații client-server.
Aplicațiile desktop sunt aplica țiile care se instaleaz ă și
rulează pe un anumit calculator. Acestea sunt aplica ții
implementate în medii de programare cum ar fi: Visual Basic, Visual C, Java, C++, Delphi etc, iar aplica țiile client-
server sunt aplica ții care se instaleaz ă pe un calculator
numit server și rulează de pe orice calculator aflat în acea
rețea. Aceste aplica ții sunt aplica ții web implementate în
limbajul de scripturi php sau asp, cu interfa ța dezvoltat ă în
html. Pentru ca aceste aplica ții să funcționeze trebuie
instalat și un server de web, cu m ar fi Apache sau IIS și pe
fiecare calculator de unde va fi accesat ă aplicația, precum
și un browser de web: Internet Explorer, Netscape, Modzilla
etc.

• Utilizatorii obi șnuiți sunt acei utilizatori care acceseaz ă baza
de date prin interm ediul unei aplica ții de baze de date.
Acești utilizatori au drepturi li mitate asupra accesului la
datele din baza de date, ei neavând cuno ștințe aprofundate
asupra structurii și a datelor din acea baz ă de date.

• Administratorul bazei de date (DataBase Administrator)
care este o persoan ă autorizat ă, care are ca sarcin ă
administrarea resurselor, autor izarea accesului la baza de
date, a coordon ării și monitoriz ării utilizatorilo r acelei baze
de date. Administratorul bazei de date efectueaz ă și
operații periodice de salvar e a datelor (backup) și de
refacere a lor atunci când este necesar.

2.1.4. Date persistente

Datele memorate într-o baz ă de date sunt date persistente ,
adică date care r ămân memorate pe suport magnetic,
independent de execu ția programelor de aplica ții. Datele
persistente ale unei baze de date se introduc, se șterg sau se
actualizeaz ă în funcție de date de intrare provenite de la

Sistemul de baze de date – concepte și arhitectur ă

Proiectul pentru Înv ățământul Rural 17

tastatură. Inițial datele de intare sunt date nepersistente, ele
devenind persistente dup ă ce au fost validate de SGBD. Datele
de ieșire ale unui sistem de baz e de date sunt tot date
nepersistenete, ele provenind din opera ții de interogare a bazei
de date și puse la dispozi ție utilizatorului sunt form ă de raport,
afișare etc.

2.2. Arhitectura intern ă a sistemlor de baze de date

Arhitectura intern ă a unui sistem de baze de date propus ă
prin standardul ANSI/X3/SPARC (1975) con ține trei niveluri
funcționale ce vor fi descrise mai jos.
Una din caracteristicile fundamentale a bazelor de date
este dată de faptul c ă produce câteva niveluri de abstractizare a
datelor, prin ascunderea detalii lor legate de stocarea datelor,
detalii ce nu sunt utile utilizat orilor bazei de date. Se define ște
modelul datelor ca un set de co ncepte ce poate fi utilizat în
descriereea structurii datelor. Prin structura bazei de date se
înțelege tipul datelor, leg ătura dintre ele, restric țiile ce trebuie
îndeplinite de date. Cele mai multe baze de date includ un set de operații ce specific ă modul de acces la date.
O structur ă de date asociat ă unei baze de date poate fi
reprezentat ă pe trei niveluri, având ca scop separarea aplica țiilor
utilizatorului de baza de date fizic ă. Schema bazei de date pe cele
trei niveluri poate fi v ăzută astfel:

• Nivelul intern constituit din schema intern ă ce descrie
structura de stocare fizic ă a datelor în baza de date,
utilizând un model al datelor fizice. La acest nivel se descriu detaliile complete ale stoc ării, precum și modul de acces la
date.

• Nivelul conceptual sau schema conceptual ă descrie
structura întregii baze de date pentru o comunitate de utilizatori. La nivelul concept ual se face o descriere
completă a bazei de date, ascunzând detaliile legate de
stocarea fizic ă, concentrându-se asupra descrierii
entităților, tipurilor de date, rela țiilor dintre ele, precum și a
restricțiilor asociate. Poate fi utilizat cu bune rezultate, la
Test de autoevaluare
3. 1. Enumera ți pe scurt componentele un ui sistem de baze de
date .

Sistemul de baze de date – concepte și arhitectur ă

18 Proiectul pentru Înv ățământul Rural

model de nivel înalt sau un model specific de implementare.

• Nivelul extern sau nivelul vizual (utilizator) include o colec ție
de scheme externe ce descriu baza de date prin prisma diferiților utilizatori. Fiecare grup de utilizatori descrie baza
de date prin prisma propriilor interese. Exist ă tendința la
acest nivel ca grupuri de utilizatori s ă ascundă detalii de
care nu sunt interesate. Și la acest nivel se pot folosi
modele de implemetare s au modele de nivel înalt.

Desigur c ă în multe SGBD nu se poate face o distinc ție
netă între cele trei nivele. Cu t oate acestea se poate remarca la
majoritatea SGBD un nivel conceptual puternic ce supline ște
aparent de cele mai multe ori cele lalte niveluri. De asemenea, se
remarcă o contopire mai ales la dezvoltarea aplica țiilor a nivelului
conceptual și extern. Se remarc ă faptul c ă arhitectura pe trei
niveluri reprezint ă numai o descriere a datelor la nivel fizic.
Grupurile de utilizatori se refer ă numai la schema extern ă, deci
SGBD este cel ce va trebui s ă transforme schema extern ă în
schemă conceptual ă.

De la modelul conceptual cererile sunt adresate modelului
intern pentru a fi procesate și aplicate datelor st ocate. Procesul
transferului cererilor și rezultatelor între nivele este numit
cartografiere (mapping). Acest proces este mare consumator de
timp pentru care multe SGBD nu posed ă nivel extern.

Figura 2.2. Arhitectura intern ă
a unui sistem de baze de date

Vedere
grup
utilizator 1Vedere
grup
utilizator n
Schema conceptuala
Schema interna
Date memorateNivel exter n
Nivel conceptual
Nivel inter n

Sistemul de baze de date – concepte și arhitectur ă

Proiectul pentru Înv ățământul Rural 19

2.3. Independen ța datelor

Această organizare pe trei niveluri a sistemelor de baze de
date este important ă pentru c ă explică conceptul de independen ță
a datelor, prin posibilitatea modific ării sistemului bazei de date la
orice nivel f ără a influen ța nivelurile superioare. Independen ța
datelor se poate defini în dou ă moduri, aferente nivelurilor
conceptual și intern.

Prin independen ța logică se înțelege capacitatea schimb ării
schemei conceptuale f ără a atrage dup ă sine schimb ări în schema
externă sau în programele de aplica ție. Este posibil ă schimbarea
schemei conceptuale prin expandarea bazei de date ca urmare a adăugării de noi tipuri de înregistr ări sau a datelor ins ăși, sau prin
reducerea bazei de date ca u rmare a reducerii înregistr ărilor.
Schema conceptual ă după aceste opera ții se refer ă la schema
conceptual ă a datelor existente. Un exemplu de expandare al
bazei de date este cel de ad ăugare a unei noi coloane la un tabel.

Independen ța fizică este reprezentat ă prin capacitatea de
schimbare a schemei interne f ără schimbarea schemei
conceptuale sau externe. Schimb area schemei conceptuale poate
surveni ca urmare a reorganiz ării fizice a unor fi șiere, prin crearea
de noi structuri de acces menite s ă asigure accesu l eficient la
date. Dac ă sistemul con ține SGBD pe mai multe niveluri, catalogul
trebuie s ă reflecte modul în care di verse cereri se implementeaz ă
la fiecare nivel. Motivele prezentate mai sus pledeaz ă pentru
utilizarea arhitecturii pe trei nivele.
Test de autoevaluare
2. Ce reprezint ă structura unei baze de date?

3. De ce este important ă împărțirea unui sistem de baze de date
pe 3 niveluri?
Test de autoevaluare
4. Care este diferen ța dintre independen ța fizică și independen ța
logică a datelor din baza de date?

Sistemul de baze de date – concepte și arhitectur ă

20 Proiectul pentru Înv ățământul Rural

2.4. Limbaje SGBD

SGBD trebuie s ă ofere limbajele corespunz ătoare tuturor
categoriilor de ut ilizatori. Dup ă proiectarea bazei de date și
alegerea SGBD, este foart ă important ă construirea schemei
interne și conceptuale a bazei de date. Cum în cele mai multe
situații, nu exist ă o separa ție netă între cele dou ă nivele, un limbaj
numit Data Definition Language (DDL) este utilizat de
administratorul bazei de date și de proiectantul bazei de date în
definirea ambelor scheme. Un compilator DDL proceseaz ă
instrucțiunile pentru identificarea descrierilor despre construc ție și
memoreaz ă aceasta în catalogul SGBD.

În SGBD cu o clar ă separație între nivelul conceptual și cel
intern, DDL este utilizat pentru s pecificarea schemei conceptuale.
Un alt limbaj numit Storage Definiti on Language (SDL) este utilizat
pentru specificarea schemei interne. Leg ătura între cele dou ă
nivele de implementare este asigurat ă de unul din cele dou ă. În
general, f ără specificare explicit ă, referirea la definirea bazei de
date presupune utilizarea DDL.

Pentru o arhitectur ă pe trei nivele, este necesar un al treilea
nivel numit View Definition Language (VDL) destinat utilizatorilor
și legăturii acestora cu nivelul c onceptual. Multe sisteme de baze
de date realizeaz ă aceasta printr-un DDL ce accept ă și declara ții
specifice nivelului extern.

Instrucțiunile în limbaj DDL pot fi înglobate într-un limbaj
general de programare sau pot fi compilate separat. Odat ă
schema compilat ă și baza de date populat ă cu date, utilizatorul
are o serie de facilit ăți pentru manipularea datelor. Opera țiile tipice
includ căutarea, inserarea, ștergerea și modificare datelor. Pentru
aceasta SGBD dispune de Data Manipulation Language (DML).
La rândul s ău, DML poate fi împ ărțit în două componente:
• un DML de nivel înalt
• un DML de nivel sc ăzut

Secțiunea DML de nivel înalt sau neprocedural ă este
utilizată pentru specificarea opera țiilor complexe în baza de date
într-o form ă concisă. În general, opera țiile utilizând aceast ă
secțiune sunt realizate fie într-o form ă interactiv ă de la terminal, fie
prin utilizarea unui limbaj de programare universal.

Secțiunea DML de nivel sc ăzut sau procedural ă este
realizată utilizând un limbaj de progr amare general. Cu aceast ă
secțiune se realizeaz ă operațiile tipice, cum sunt refacerea unei
înregistrări individuale, procesarea separat ă a înregistr ărilor bazei
de date. Din motivul c ă opereaz ă asupra înregistr ărilor individuale,
această prelucrare se mai nume ște și înregistrare cu înregistrare.
O comand ă pentru DML de nivel înalt specific ă o cerere de acces
la date, dar nu specific ă modul în care se realizeaz ă acasta. Din

Sistemul de baze de date – concepte și arhitectur ă

Proiectul pentru Înv ățământul Rural 21

acest motiv acest limbaj se nume ște declarativ . Oricum, comenzile
DML fie de nivel înalt, fie de nivel sc ăzut sunt implementate într-un
limbaj de programare general, limbaj numit și limbaj gazd ă, iar
DML este numit limbaj de date. DM L de nivel înalt utlizat într-o
manieră interactiv ă formeaz ă ceea ce se nume ște query
language .

2.5. Interfe țe SGBD

SGBD trebuie s ă ofere interfe țe corespunz ătoare tuturor
categoriilor de utilizator i. Aceste interfe țe au ca scop facilitarea
legăturii între utilizatori și sistemul de baze de date. Principalele
tipuri de interfe țe oferite de SGBD sunt:

• Interfețe bazate pe meniuri . Acestea ofer ă utilizatorului o
listă de opțiuni, numite meniuri care îi ajut ă la formularea
cererilor. Nu este necesar ă memorarea unor comenzi
deoarece o comand ă specifică este format ă pas cu pas prin
compunerea op țiunilor indicate prin meniu.

• Interfețe grafice . Aceste interfe țe afișează utilizatorului o
diagramă. Utilizatorul poate formula cererea prin
manipularea acestei diagrame. În cele mai multe cazuril,
interfețele grafice sunt combinate cu meniuri.

• Interfețe bazate pe forme . Aceste interfe țe sunt acelea prin
intermediul c ărora utilizatorul poate completa formele cu
noile date pe care le dore ște să le insereze, sau folose ște
aceste forme pentru a cere SGBD s ă obțină datele de
interes.

• Interfețe în limbaj natural . Aceste interfe țe accept ă cereri
scrise în limba englez ă sau alte limbi de circula ție
internațională. O interfa ță în limbaj natural con ține uzual o
schemă proprie similar ă cu schema conceptual ă a bazelor
de date. Interpretarea cererilor se face pe baza unui set standard de cuvinte cheie ce sunt interpretate pe baza schemei interne. Dac ă interpretarea se realizeaz ă cu
succes, programul de interfa ță genereaz ă cererea de nivel
înalt corespunz ătoare celei în limbaj natural, ce va fi
transmis ă către SGBD. Test de autoevaluare
5. Dați exemple de limbaje de sisteme de gestiune a bazelor de
date.

Sistemul de baze de date – concepte și arhitectur ă

22 Proiectul pentru Înv ățământul Rural

• Interfețe specializate aferente cererilor repetate. Aceste
interfețe sunt destinate unei anumite categorii de utilizatori,
de exemplu utilizatorii care se ocup ă de opera țiile dintr-o
bancă. Uzual, un mic set de comenzi prescurtate sunt
implementate pentru a scurta ti mpul necesar introducerii
comenzii, sau chiar ut ilizarea de chei func ționale. Aceste
interfețe implementeaz ă un limbaj numit și limbaj de
comandă.

• Interfețe pentru administrato rii bazelor de date. Acestea
sunt utilizate în implementarea comenzilor privilegiate ce
sunt folosite de administrator ii bazelor de date. Astfel de
comenzi includ crearea de cont uri, setarea parametrilor
sistemului, autorizarea intr ării într-un anumit cont,
reorganizarea structurii de stoc are a datelor din baza de
date, precum și o serie de facilit ăți legate de administrarea
bazei de date, cum sunt: accesul la tabele și înregistr ări,
facilități de acces la câmpuri ale tabelelor de date.

2.6. Exemple de SGBD

În momentul de fa ță, pe piață există o ofertă foarte mare de
sisteme de gestiune a bazelor de date, de la sisteme care se pot
folosi gratuit (f ără licență sau cu licen ță publică), până la sisteme
de înaltă performan ță, a căror utilizare necesit ă cumpărarea de
licențe. Pentru aceste sisteme exist ă pe site-urile produc ătorilor
versiuni de test numite trial version, pentru care nu se pl ătește
licență, durata folosirii respectivului produs fiind limitat ă la un
număr de zile (30, 60 zile, în func ție de produc ător).

Microsoft SQL Server este sistemul de gestiune a bazelor
de date rela ționale multi-utilizator dezvoltat de firma Microsoft
pentru sistemele de operare Wi ndows. Au existat mai multe
versiuni, cea actual ă fiind SQLServer 2000 (SQL Sever 2003 fiind
încă în faza de testare). În toate versiunile, acest sistem de baze
de date suport ă standardul SQL2, cu implementarea perfomant ă a
trăsăturilor avansate de stocare și prelucrare a datelor. Exist ă o
interfață grafică pentru interac țiunea cu utilizatorul, pentru
folosirea tuturor op țiunilor: de export/ import date, de creare și
manipulare a tabelelor, pentru po pularea cu date a tabelelor, de Test de autoevaluare
6. Ce sunt interfe țele sistemelor de gest iune a bazelor de date?

Sistemul de baze de date – concepte și arhitectur ă

Proiectul pentru Înv ățământul Rural 23

creare a interog ărilor, a procedurilor stocat e, a triggerelor etc.
Pentru a ob ține gratuit o versiune de test, accesa ți adresa
http://www.microsoft.com.

Microsoft Access este unul din cele mai cunoscute sisteme
de gestiune a bazelor de date rela ționale pe platforme de
calculatoare personale. Microsof t Access dispune de un sistem de
control al bazei de date (database engine) și o intefa ță grafică
pentru interac țiunea cu utlizatorul. Aplica țiile de baze de date în
MS Access se pot dezvolta cu mult ă ușurință datorit ă
generatoarelor de aplica ții (wizards) care permit proiectarea
vizuală a bazelor de date, a formularelor (forms) pentru interfe țele
grafice și a rapoartelor (reports). MS A ccess este folosit în special
pentru aplica ții personale sau pentru mici afaceri și licența
acestuia se cump ără odată cu cump ărarea licen ței produsului
Microsoft Office. Acest sistem este cel folosit de noi în capitolele
următoare.

Sistemul Oracle este un sistem de gestiune al bazelor de
date multi-utilizator foarte puternic, cu implement ări pe toate platformele
(Windows, Linux, Unix), care ofer ă atât performan țe de execu ție ridicate,
cât și un grad mare de protec ție și securitate a datelor. În toate
versiunile, Oracle ofer ă implementarea complet ă a caracteristicilor
modelului rela țional, conform standardului SQL2, iar ultimele versiuni
(Oracle8i, Oracle9i etc) sunt sisteme de gestiune obiect-rela ționale
distribuite, implementând ext ensiile orientate obiect prev ăzute în
standardul SQL3 și oferind posibilitatea de de zvoltare a bazelor de
date distribuite. De la adresa h ttp://www.oracle.com se poate
obține o versiune a sistemului de gestiune Oracle, dar și a
diferitelor instrumente de dezvoltare a aplica țiilor de baze de date.
Termenii licen ței permit utilizarea gratuit ă a acestor sisteme în
scopuri necomerciale pe o perioad ă nelimitat ă, pentru utliizarea în
scopuri comerciale trebuie pl ătite licențele corespunz ătoare.

MySQL este un sistem de gestiune a bazelor de date
relaționale cu implement ări pentru sistemele de operare Linux,
Unix, Windows. Acest sistem se poate utiliza gratuit, fiind open
source. Ultima versiune și documenta ția sistemului de gestiune a
bazelor de date MySQL se poate desc ărca de la adresa
http://www.mysql.com. Acest sistem este compatibil cu standardul
SQL2, dar unele prevederi ale st andardului fiind implementate
parțial.

Visual FOX PRO este un limbaj de programare complet,
care accept ă un mediu interactiv și un mediu compilat la rulare.
Visual FOX PRO este compatibil cu toate versiunile anterioare de
FoxPro. Stilul de proiectare a interfe ței FoxPro a fost întotdeauna
orientat c ătre flexibilitate și ușurință în utilizare. Pe de alt ă parte,
forța și viteza brut ă au reprezentat dintotdeau na punctul forte al lui
FoxPro. Nici un produs creat de ce lelalte companii axate pe baze
de date, care au f ăcut trecerea la modelul orientat obiect nu a

Sistemul de baze de date – concepte și arhitectur ă

24 Proiectul pentru Înv ățământul Rural

putut rivaliza cu FoxPro în ce prive ște viteza de execu ție a
funcțiilor specifice bazelor de date . Și acest mediu con ține vrăjitori
(Wizard) pentru gestionar ea mai multor taskuri.

IBM DB2 este un sistem de gestiune al bazelor de date al
firmei IBM. Acest sistem asigur ă integritatea datelor, ofer ă o
securitate sporit ă pentru date, are o interfa ță grafică pentru
gestionarea bazei de date. Dispune, ca și Microsoft SQL Sever și
Oracle de posibilitatea cre ării de proceduri stocate, acestea fiind
niște proceduri care ruleaz ă pe server și asigură o viteză mai mare
de răspuns. Are mai multe versiuni în func ție de dorin țele și
necesitățile utilizatorilor. Mai multe informa ții despre DB2 le g ăsiți
dacă accesați www.db2mag.com, și pentru a v ă comanda un CD
sau pentru a v ă descărca versiunea de evaluarea a acestui sistem
accesați www.ibm.com.

Test de autoevaluare

7. Dați exemple de sisteme de gestiune a bazelor de date.

Lucrare de verificare a cuno ștințelor

Accesați paginile de web ale fiec ărui sistem de gestiune a
bazelor de date și preciza ți câteva avantaje și câteva
dezavantaje ale fiec ăruia.

Sistemul de baze de date – concepte și arhitectur ă

Proiectul pentru Înv ățământul Rural 25

Răspunsuri și comentarii la întreb ările din testele de
autoevaluare

Întrebarea 1.

Componentele unui sistem de baze de date sunt: componenta hardware, componenta so ftware, utilizatorii și datele persistente
care sunt stocate în baza de date.
Întrebarea 2.

Prin structura bazei de date se în țelege alegerea tipului de date,
legăturile dintre ele, restric țiile ce trebuie îndeplinite de date.

Întrebarea 3.

Organizare pe trei niveluri a un ui sistem de baze de date este
important ă pentru c ă explică conceptul de independen ță a datelor,
prin posibilitatea modific ării sistemului bazei de date la orice nivel
fără a influen ța nivelurile s uperioare. Independen ța datelor se
poate defini în dou ă moduri, moduri ce sunt aferente nivelurilor
conceptual și intern.

Întrebarea 4.

Prin independen ța logică se înțelege capacitatea schimb ării
schemei conceptuale f ără a atrage dup ă sine schimb ări în schema
externă sau în programele de aplica ție. Independen ța fizică este
reprezentat ă prin capacitatea de sch imbare a schemei interne f ără
schimbarea schemei conceptuale sau externe.
Întrebarea 5.

SGBD trebuie s ă ofere limbajele corespunz ătoare tuturor
categoriilor de utilizatori. Astfel:
• un limbaj numit Data Definition Language (DDL) este utilizat
de administratorul bazei de date și de proiectantul bazei de
date în definirea schemelor interne și conceptuale a bazei
de date.
• un alt limbaj numit Storage Definition Language (SDL) este
utilizat pentru specificarea schemei interne.
• un alt nivel numit View Definition Language (VDL) este
destinat utilizatorilor și legăturii acestora cu nivelul
conceptual

Întrebarea 6.

Interfețele au ca scop facilitarea leg ăturii între utilizatori și sistemul
de baze de date.

Sistemul de baze de date – concepte și arhitectur ă

26 Proiectul pentru Înv ățământul Rural

Întrebarea 7.

Câteva dintre cele mai importa nte sisteme de gestiune a bazelor
de date sunt: Microsoft SQL Serv er, Oracle, MySQL, IBM DB2,
Microsoft Access, Visual FOX PRO etc.

Bibliografie:

• Cârstoiu, Dorin, Baze de date rela ționale, Editura Printech,
1999
• Rădulescu, Florin, Baze de date în Internet, Editura
Printech, 2000
• Ionescu, Felicia, Baze de date rela ționale și aplicații,
Editura Tehnic ă, 2004
• Baltac, Vasile, ECDL-Excel, Access, PowerPoint în 20 lec ții
și 75 de simul ări, Editura Andreco, 2003
• Browne, Allen, Balter Alison, Bazele Access 95 , Editura
Teora, 1999
• Pribeanu, Costin, Baze de date și aplicații, Editura
MatrixRom, 2000
• Pascu, C., Pascu A., Totul despre SQL , Editura Tehnic ă,
1994

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 27 Unitatea de înv ățare Nr. 3

PROIECTAREA BAZE LOR DE DATE

Cuprins Pagina

Obiectivele unit ății de învățare nr. 3 28

3.1. Ce este proiectarea? 29
3.2. Modelul entitate-rela ție. Obiectele bazelor de date rela ționale 32
Tabel ă (relație)
Câmp (atribut) Înregistrare (nuplu) 3.3. Construc ția schemelor rela ție 34
3.3.1. Rela ția unul-la-unul (1-1 sau one to one) 34
3.3.2. Rela ția unul-la-multe (1-N sau one to many) 35
3.3.3. Rela ția multe-la-multe (M-N sau many to many) 36
3.3.4. Rela ția unară 37
3.4. Diagrama entitate-rela ție 38
3.5. Constrângeri de integritate 39 3.5.1. C onstrângerile de domeniu 40
3.5.2. Constrângerile referitoare la n-upluri (înregistr ările din
tabelă)-Cheia primar ă 41
3.5.3. Constrângeri între rela ții 41
3.6. Dependen țe funcționale 44

3.7. Normalizare. Forme normale. 44
3.7.1. Forma normal ă de ordin 1 (FN1) 45
3.7.2. Forma normal ă de ordin 2 (FN2) 46
3.7.3. Forma normal ă de ordin 3 (FN3) 46
3.7.4. Forma normal ă Boyce-Codd (FNBC) 47
3.8. Structuri de indec și în tabelele de date 48
3.8.1. Indexul primar 50
3.8.2. Indexul secundar 51
3.8. 3. Indexul de grup 52
3.8.4. Indexul multinivel 53
Lucrări de verificare a cuno ștințelor 55
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 56
Biblliografie 57

Proiectarea bazelor de date

28 Proiectul pentru Înv ățământul Rural Înc ă de la început doresc s ă vă felicit pentru parcurgerea cu
succes a primelor dou ă unități de învățare și să vă urez bun venit la
studiul acestei noi unit ăți de înv ățare. În primele dou ă unități de
învățare am realizat o scurt ă introducere în acest amplu domeniu al
bazelor de date și am descris mai în detaliu ce este un sistem de baze
de date și în ce const ă el.

Această unitate de înv ățare nr. 3 este foarte important ă pentru
că dacă se dore ște crearea unei aplica ții de baze de date este
necesar ca un prim pas proiectarea corect ă a bazei de date.

OBIECTIVELE unit ății de învățare nr. 3

Principalele obiective ale unit ății de învățare nr. 3 sunt:
După studiul unit ății de învățare nr. 3 vei fi capabil s ă demonstrezi c ă
ai dobândit cuno ștințe suficiente pentru a în țelege:

• de ce este foarte important ă o proiectare corect ă a bazele de
date

• care sunt etapele care trebuie parcurse pentru o proiectare cât
mai corect ă a bazei de date

• ce reprezint ă modelul entitate-rela ție

• care sunt obiectele din baza de date

• cum se construiesc schemele rela ție

• să descrii toate categoriile de rela ții care pot ap ărea într-o
proiectare de baz ă de date

• să construie ști o diagrama entitate-rela ție

• să înțelegi de ce trebuie s ă existe constrângeri asupra tabelelor

• câte tipuri de constrângeri exist ă și rolul lor

• ce este dependen ța funcț
ională

• ce reprezint ă procesul de normalizare a tabelelor

• tipurile și ce reprezint ă fiecare form ă normală

• la ce sunt folosi ți indecșii în tabelele de date

• tipurile de indec și și o scurtă descriere a lor

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 29

3.1. Ce este proiectarea?

Proiectarea unei baze de date const ă din proiectarea logic ă
și fizice a acesteia, pentru a corespunde cerin țelor utilizatorilor
pentru un anumit set de aplica ții.

În general, vom considera c ă proiectarea corect ă a unei
baze de date trebuie s ă parcurgă următoarele etape:

• Analiza cererilor și strângerea de informa ții referitoare la
aplicație.

• Proiectarea conceptual ă a bazei de date.

• Alegerea unui sistem de ges tiune al bazelor de date.

• Proiectarea logic ă a bazei de date.

• Proiectarea fizic ă a bazei de date.

• Implementarea bazei de date și a aplica ției.

Înainte de a se proiecta efectiv o baz ă de date, este
necesar s ă se cunoasc ă ce rezultate se a șteaptă potențialii
utilizatori s ă obțină de la baza de date respectiv ă și documentarea
asupra informa țiilor ce sunt disponibile pentru aceasta. De
asemenea, este necesar ă și definirea cât mai exact ă a aplica ției
(De ex.: aplica ție de gestiune a stocurilor, a c ărților într-o
bibliotecă, aplicație contabil ă, aplicație folosit ă la salarizare,
aplicație referitoare la gestiunea studen ților, a profesorilor, a
cursurilor, a notelor dintr-o institu ție de înv ățământ etc.).

Având cerin țele formulate precis și concis se poate trece la
elaborarea schemei conceptuale ut ilizând un model de nivel înalt.
Schema conceptual ă reprezint ă o descriere concis ă a datelor
utilizatorului, incluzând descrierea detaliat ă a tipurilor de date, a
relațiilor și restricțiilor acestora. Deoarece pân ă la acest moment
nu se includ detalii de implementar e, rezultatele pot fi comunicate
utilizatorilor, chiar dac ă sunt nespecializa ți în domeniu, și analizate
de aceștia pentru eliminarea eventualelor conflicte care pot
apărea.

Următoarea etap ă este cea de construc ție a bazei de date
ținând cont de detaliile actuale, cu ajutorul unui sistem de gestiune
a bazelor de date (SGBD). Aceast ă etapă înglobeaz ă etapele de
alegere a unui SGBD, de proiectarea logic ă a bazei de date și cea
de proiectarea fizic ă a bazei de date.

Alegerea SGBD se face în func ție de complexitatea
aplicației, de capacitatea de stocare a datelor, de posibilitatea

Proiectarea bazelor de date

30 Proiectul pentru Înv ățământul Rural

refacerii datelor, de num ărul de utilizatori care vor folosi aplica ția,
dar și de costurile de achizi ție ale sistemului, de costurile de
întreținere etc.

Următoarea faz ă, cea de proiectare logic ă poate fi realizat ă
în două sub-faze: transpunerea schemei conceptuale în modelul
de date al sistemului SGBD ales, dar indep endent de sistemul de
gestiune propriu-zis, sau rafinarea schemei conceptuale și a
schemelor externe ob ținute anterior, astfel încât s ă se utilizeze
mai multe din facilit ățile oferite de sistemul SGBD ales (modul de
generare a cheilor primare, definir ea constrângerilor, etc.). Aceste
două sub-faze se pot realiza împreun ă, folosind unul din
instrumentele de proiectare of erite de sistemul SGBD ales.
Rezultatul acestei faze de pr oiectare îl constituie, a șadar, schema
conceptual ă și schemele externe ale bazei de date, dependente
de sistemul SGBD ales și de modelul de date al acestuia.

Proiectarea fizic ă a bazei de date reprezint ă procesul de
alegere a structurilor de memorare și de acces la fi șierele bazei de
date, pentru a ob ține performan țe cât mai bune pentru aplica ția
proiectat ă. Ca parametrii generali de alegere a op țiunilor
proiectului fizic al unei baze de date rela ționale se pot enumera:
timpul de r ăspuns, utilizarea spa țiului de memorare, capacitatea
tranzac
țională.

Deciziile de proiectare fizic ă se pot lua numai dup ă o
analiză a aplica țiilor care se vor executa și în principal, a
interogărilor și tranzac țiilor pe care acestea le vor lansa. În urma
analizei se pot sintetiza informa ții care s ă dea imaginea de
ansamblu a utiliz ării atributelor rela țiilor bazei de date: care
atribute sunt actualizate cel ma i frecvent, care atribute sunt
folosite cel mai frecvent în selec ții ale interog ărilor, etc. Aceste
informații se folosesc pentru stabilirea indec șilor secundari ai
relațiilor.
Ultima etap ă este cea de implementare efectiv ă a bazei de
date și a aplica ției. Aici se creaz ă pe baza modelului definit
obiectele bazei de date, se populeaz ă cu date baza de date, se
verifică constrângerile, se creaz ă interfețele cu utlizatorul și
rapoartele neceare cu datele extrase din baza de date.

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 31

Exemplu:

Pe parcursul manualului vom proiecta și realiza o aplica ție
simplificat ă pentru gestiunea informa țiilor referitoare la notele
obținute de studen ții dintr-o universitate la anumite materii. Baza
de date se va numi Universitate. Pe parcursul acestui capitol aceasta va fi rafinat ă la modelul entitate-rela ție, un model
conceptual de nivel înalt. Acest model asigur ă perceperea de
către utilizatori f ără să prezinte detaliile de stocare a datelor
păstrate în calculator. În faza preliminar ă, după analiza cerin țelor
se cunosc urm ătoarele informa ții :

• aceast ă universitate are în componen ță mai multe facult ăți.
Fiecare facultate având asoc iat un cod, o denumire, o
adresă.

• studen ții au stocate în ba za de date informa țiile personale
ale fiecăruia (cnp, nume, prenume, ini țiala tatălui, data
nașterii etc), dar și informa ții legate de starea actual ă a lor
(grupa în care se afl ă, facultatea de care apar ține etc.)

• în aceast ă
bază de date stoc ăm și materiile studiate în
facultățile din acea universitate. Se consider ă materii
diferite acele materii care au aceea și denumire, dar
profesor diferit.

• vom stoca și notele ob ținute de fiecare student la materia la
care a fost evaluat prin examen.

Test de autoevaluare

1. Care sunt etapele ce trebuie parcurse pentru o proiectare corect ă
a bazei de date?

Proiectarea bazelor de date

32 Proiectul pentru Înv ățământul Rural

3.2. Modelul entitate-rela ție.
Obiectele bazelor de date rela ționale

Modelul entitate-rela ție este cel mai utilizat model
conceptual de nivel înalt, care reprezint ă schema conceptual ă a
bazei de date cu ajutorul entit ăților și a relațiilor dintre acestea.
Acest model a fost introdus în an ul 1976 de P.S.Chen. Elementele
de bază folosite în cadrul acestui model sunt conceptele de
entitate și cel de rela ție.

O entitate este un obiect al lumii reale, cu o existen ță
independent ă și poate reprezenta un obiect fizic, o activitate, un
concept. O entitate este un obiect cu existen ță fizică , de exemplu:
persoană particular ă, automobil, companie, activitate, curs
universitar.

Orice entitate are o serie de propriet ăți numite atribute , ce
descriu entitatea respectiv ă.

Cu toate c ă nu reprezint ă același lucru, pentru denumirea
de entitate se mai folose ște și denumirea de tabel al bazei de
date, iar pentru atribute câmpurile tabelului.

De exemplu, pentru baza de date Universitate pe care
dorim să o creăm, o entitat e reprezint ă o Facultate cu atributele
Cod Facultate, Denumire, Ad resa, Nume Decan. O alt ă entitate ar
fi Materii, descrise de atributele Cod Materie, Denumire, An, Nume
Profesor.
Atributelor li se asociaz ă valori care au ca scop identificarea
entității. Aceast ă atribuire de valori pentru fiecare atribut formeaz ă
o
înregistrare a tabelului respectiv . Scurte defini ții a noțiunilor pe care le-am folosit și le vom folosi în
continuare sunt :

• Tabelă (entitate) este o colec ție de informa ții logice
relaționale tratat ă ca o unitate

• Înregistrare (n-uplu). O tabel ă este compus ă din înregistr ări
sau rânduri. Fiecare înregistrare este tratat ă ca o simpl ă
unitate. Fiecare înregistrare este legat ă de înregistr ări ale
altei tabele.

• Câmpuri (atribute). Înregistr ările sunt constituite din
câmpuri (coloane) . Un câmp este o particul ă atomică a
bazei de date ce reprezint ă cea mai mic ă cantitate de
informație care poate fi manipulat ă. Toate înregistr ările
dintr-o tabel ă au acelea și câmpuri.

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 33

Unele atribute pot fi di vizate în mai multe p ărți cu
semnifica ție independent ă. Un astfel de atribut este un atribut
complex .
Un exemplu este cel al atributului Adres ă care poate fi
divizat in mai multe atribut e : Oras, Cod Postal, Strad ă, Numar,
Bloc etc sau al atributului Nume Decan care poate fi divizat în
Nume și Prenume.
Atributele care nu sunt compuse se numesc atribute
atomice . Valoarea atributelor complexe se formeaz ă prin
concatenarea valorilor at ributelor atomice.

Multe atribute au valoare unic ă pentru o entitate particular ă
și sunt numite atribute cu o singur ă valoare .
De exemplu CNP-ul unei persoane. Exist ă atribute ce pot
lua mai multe valori dintr-un set da t, cum ar fi gradele didactice ale
profesorilor universitari, culorile etc. Aceste atribute sunt atribute
cu mai multe valori.

Atributele derivate sunt atributele ce se pot determina din
alte atribute, cum ar fi vârsta unei persoane se poate calcula din
data curent ă minus data na șterii persoanei respective.

În anumite situa ții, o entitate poate s ă nu aibă valori pentru
toate atributele asociate ei, în acest caz folosindu-se o valoare
specială numită atributul null .
Un exemplu ar fi lipsa din atributul Adres ă a numelui
blocului sau a sc ării, etc.

Exemplu :

Revenind la exemplu nostru, s ă ne definim toate entit ățile din baza
de date Universitate.
Entitățile ar putea fi urm ătoarele :

• Facultate cu atributele: C odFac, Denumire, Adresa, Nume
Decan
• Studenti cu atributele: CodSt ud, An, Grupa, Media, Bursa
• StudPersonal cu atributele: CNP, Nume, Init, Prenume,
Data Nasterii, Loc Na șterii, Tata, Mama, Adresa
• Materii cu atributele: Cod Materie, Denumire, An, Nume
Profesor
• Note cu atributele Nota, Data

Proiectarea bazelor de date

34 Proiectul pentru Înv ățământul Rural

3.3. Construc ția schemelor rela ție

În proiectarea bazelor de date se definesc rela ții sau
asocieri între mul țimile de entit ăți componente, pentru a
reprezenta anumite as pecte ale realit ății pe care o modeleaz ă
baza de date.

O relație este o coresponden ță între entit ăți din una sau mai
multe mul țimi de entit ăți. Gradul unei rela ții este dat de num ărul de
mulțimi de entit ăți asociate. Rela țiile pot fi binare (între 2 mul țimi
de entități) sau multiple (între mai mult de 2 entit ăți).

Relațiile binare sunt împ ărțite în trei categorii, dup ă numărul
elementelor din fiecare din cele dou ă mulțimi puse în
coresponden ță de relația respectiv ă.

Se consider ă 2 mulțimi de entit ăți E1 și E2.

3.3.1. Rela ția „unul-la-unul” (1-1 sau one to one)

Relația „unul-la-unul” este cel mai simplu tip de rela ție. Ea
este rela ția prin care unui element din mul țimea E1 îi corespunde
un singur element din mul țimea E2 și reciproc.
Figura 3.1. Relația „unul-la-unul”
Test de autoevaluare

2. Care sunt obiectele bazei de date? Da ți scurte defini ții
pentru fiecare obiect și specifica ți ce termeni se mai folosesc
pentru fiecare dintre ele.

r3r2E11
E12
E13E21
E22
E23
E1 E2r1

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 35

Această relație „unul-la-unul” este foarte rar folosit ă în
lumea real ă. Cel mai des, ea este folosit ă pentru a reduce num ărul
de atribute dintr-o entit ate, pentru a nu dep ăși numărul maxim de
câmpuri asociate pentru o tabel ă, acesta fiind de circa 255. Se mai
poate folosi și în cazul în care dorim desp ărțirea elementelor fixe,
a informa țiilor care se modific ă mai rar fa ță de cele care se
modifică destul de des.

Un exemplu ar fi la aplica ția pe care o proiect ăm noi,
împărțirea informa țiilor despre studen ți în două entități: informa țiile
personale fiind stocate în tabelul StudPersonal și informa țiile care
se modific ă de la an la an în tabela Studenti.

Pentru a realiza efectiv aceast ă relație trebuie introdus
atributul CodStud și în tabela StudPersonal. Astfel cele dou ă se
transform ă astfel:

• Studenti cu atributele: CodSt ud, An, Grupa, Media, Bursa
• StudPersonal cu atributele: CodStud, CNP, Nume, Init,
Prenume, Data Nasterii, Loc Na șterii, Tata, Mama, Adresa

Informațiile stocate a șa sunt și mai ușor de manipulat.

3.3.2. Rela ția „unul-la-multe” (1-N sau one to many)

Această relație este o rela ție prin care unui element din
mulțimea E1 îi corespund unul sau mai multe elemente din
mulțimea E2, dar unui element din mul țimea E2 îi corespunde un
singur element din mul țimea E1.
Figura 3.2 . Relația „unul-la-multe”

O atenție sporită trebuie s ă avem la specificarea p ărților
acestui tip de rela ție.

Un exemplu al acestui tip de rela ție din cadrul aplica ției pe
care o proiect ăm noi este c ă într-o facultate sunt mai mul ți
studenți, și se precizeaz ă că un student apar ține unei singure
facultăț
i din cadrul aceleia și universit ăți.
r1
r7r2E11
E12
E13E21
E22E23
E24
E25
E26
E27
E1 E2

Proiectarea bazelor de date

36 Proiectul pentru Înv ățământul Rural

Pentru a realiza efectiv aceast ă relație trebuie introdus
atributul CodFac și în tabela Studenti. Astfel cele dou ă se
transform ă astfel:
• Facultate cu atributele: CodFac, Denumire, Adresa, Nume
Decan
• Studenti cu atributele : CodStud, CodFac, An, Grupa,
Media, Bursa

Observa ție: Dacă se ad ăuga atributul CodStud în tabela
Facultate, se p ăstrau date redundante în aceast ă tabelă, adică
pentru fiecare student al facult ății trebuiau p ăstrate informa ții
referitoare la facultate: denumir ea ei, adresa, numele decanului,
etc.

3.3.3. Rela ția „multe-la-multe” (M-N sau many to many)

Această relație este o rela ție prin care unui element din
mulțimea E1 îi corespund unul sau mai multe elemente din
mulțimea E2, și reciproc.

Figura 3.3. Relația „multe-la-multe”

Acest tip de rela ție este foarte des întâlnit ă, dar nu poate fi
implementat ă î n b a z e l e d e d a t e r e l a ționale. De fapt, pentru
modelarea acestei rela ții se folose ște o relație suplimentar ă, de tip
unul-la-multe pentru fiecare din rela țiile inițiale.
Un exemplu al acestui tip de rela ție din cadrul aplica ția pe
care o proiect ăm noi este c ă un student particip ă la mai multe
materii, cursuri, iar o materie este frecventat ă de mai mul ți
studenți.

Pentru a solu ționa aceast ă problem ă am introdus o tabel ă
suplimetar ă numită Note, care va face leg ătura între tabelele
Materii și Studenți. Tabelele ini țiale se modific ă astfel:

• Studenti cu atributele: CodS tud, CodFac, An, Grupa,
Media, Bursa
• Materii cu atributele: CodM aterie, Denumire, An, Nume
Profesor r1
r7r2E11
E12
E13
E14E21
E22E23
E24
E25
E26
E27
E1 E2

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 37

• Note cu atributele: CodStud, CodMaterie, Nota, Data
Prin introducerea atributului Data în tabela Note s-a
soluționat problema care apare atunci când un student trebuie s ă
fie examinat de mai multe ori pân ă la promovarea materiei
respective.

3.3.4. Rela ția unară

Toate rela țiile prezentate anterior sunt rela ții binare, având
câte dou ă relații implicate. Rela țiile unare folosesc doar o singur ă
relație, aceasta fiind asociat ă cu ea îns ăși.
Figura 3.4. Relația unară

Exemplul clasic al acestei rela ții unare este cazul
managerului unei companii, care la rândul s ău este tot un angajat
al acelei companii. Rela țiile unare se modeleaz ă la fel ca și
relațiile binare.

Test de autoevaluare

3. Dați exemple de rela ții între tabelele unei baze de date.

Pa șii care trebuie urma ți pentru crearea rela țiilor între
tabele în mediul Microsoft Access sunt descri și în capitolul 6.

r1E11
E12
E13
E14
E1

Proiectarea bazelor de date

38 Proiectul pentru Înv ățământul Rural

3.4. Diagrama entitate-rela ție

Diagrama entitate-rela ție este modelul entitate-rela ție
reprezentat. prin mul țimile de entit ăți și relații dintre acestea.
Există mai multe variante de nota ții pentreu redarea acestei
diagrame, astfel:

Entitate tip puternic ă
Entitate tip slab ă
Atribut
Tipul rela țiilor

Exemplu:

În continuare, se exemplific ă dezvoltarea modelului
conceptual de nivel înalt al bazei de date Universitate.

Entitate tip
Entitate tip
Atribut
Tip
relatie
N M1 1N1
StudențiFacultate
StudPersona lMateriiNoteDenumire Adresa NumeDeca n
CNPNume
Prenume
DataNast Tata CodFac AnDenumire
An
ProfesorNota
Data

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 39

g

3.5. Constrângeri de integritate

Constrângerile de integr itate sunt reguli ca re se definesc la
proiectarea unei baze de date și care trebuie s ă fie respectate
de-a lungul existen ței acesteia.

Entitățiile unei baze de date reflect ă realitatea modelat ă și
de aceea valorile pe care le con țin trebuie s ă respecte anumite
reguli, care s ă corespund ă celor din realitate.

Vom folosi în continuare p entru termenul de entitate
denumirea tabel ă.

Constrângerile se pot clasifica astfel:
• în cadrul tabelei
• sau între tabele.

Constrângerile din cadrul unei tabele sunt reguli care se
impun în cadrul unei singure tabele și asigură integritatea datelor
acesteia. Ele sunt de 3 categorii:

• constrângeri de domeniu . Aceste constrângeri sunt
condiții care se impun valorilor atributelor și asigur ă
integritatea domen iilor atributelor.

• constângeri de nuplu (de înregistrare din tabel ă). Aceste
constrângeri sunt condi ții care se impun nuplurilor unei
entități (înregistr ărilor din tabel ă) și asigură identificarea
corectă a nuplurilor prin intermediul cheilor primare.

• constrângeri impuse de dependen țe de date
(dependen țe funcționale). Acestea sunt constrângeri prin
care valorile unor atribute ale unei entit ăți (câmpuri ale
tabelei) determin ă valorile altor atribute ale aceleia și
entități.
Constrângerile între tabele sunt reguli care se impun între
două sau mai multe rela ții. Cele mai importante sunt
constrângerile de integritate referen țială, care se realizeaz ă prin
Test de autoevaluare

4. Explica ți de ce este important ă construc ția diagramei entitate-
relație.

Proiectarea bazelor de date

40 Proiectul pentru Înv ățământul Rural

intermediul cheilor str ăine și asigură asocierea corect ă a tabelelor.

3.5.1. Constrângerile de domeniu

Constrângerile de domeniu sunt condi ții impuse valorilor
atributelor pentru ca acestea s ă corespund ă semnifica ției pe care
o au în realitatea modelat ă. În reprezentarea unei entit ăți printr-un
tabel, valorile atributelor sunt reprezentate pe coloane. Din
această cauză aceste constrângeri se mai numesc și constrângeri
de coloan ă.
Vom descrie 3 tipuri de constrângeri de coloan ă:

• Constrângerea NOT NULL . Valoarea NULL este o valoare
particular ă, care nu reprezint ă valoarea 0, ci lips ă de
informație. Aceast ă valoare NULL poate ap ărea când nu se
cunosc respectivele informa ții, ca de exemplu, în aplica ția
proiectat ă de noi, în tabela Stud Personal nu se cunoa ște
numele tat ălui (aceast ă informa ție nu este esen țială). Nu
orice atribut poate lua valoarea NULL, ca exemplu, numele
unui student, pentru ca nu ar av ea sens înregistrarea unui
student al c ărui nume nu se cunoa ște. În astfel de situa ții la
definirea rela țiilor se impune atributului constrângerea NOT
NULL, însemnând c ă acest atribut nu poate lua valoare
NULL în orice înregistrare din tabel ă

• Constrângerea DEFAULT. Aceast ă constrângere este
folosită pentru stabilirea unei valo ri implicite (DEFAULT)
pentru un atribut al entit ății. În cazul în care la inserarea
unui nuplu (înregistr ări) nu se specific ă valoarea unui atribut
(câmp), atunci acesta prime ște valoarea implicit ă (dacă a
fost definit ă) sau valoarea NULL (dac ă nu a fost definit ă o
valoare implicit ă pentru atributul respec tiv, dar sunt admise
valori NULL). Dac ă nu a fost definit ă o valoare implicit ă și
nici nu sunt admise valori NULL se genereaz ă o eroare.

• Constrângerea CHECK. Constrângerea CHECK este dup ă
cum îi spune și numele o constrângere de verificare. În
limbajul SQL, care va fi prez entat într-un capitol viitor,
domeniile în care pot lua valori atributele se pot stabili ca tipuri de date predef inite. Pentru fiecare atribut se pot
adăuga constrângeri de verificare la definirea tabelului.

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 41

3.5.2. Constrângerile referitoare la n-upluri (înregistr ările
din tabel ă)-Cheia primar ă

O entitate este definit ă ca o mul țime de n-upluri. Deci,
n-uplurile entit ății trebuie s ă fie distincte, acest lucru însemnând c ă
într-o entitate nu pot exista dou ă sau mai multe n-upluri care c ă
conțină acceași combina ție de valori pentru fiecare atribut.

O cheie primar ă a unei entit ăți (tabele) este o submul țime
de atribute ale entit ății care are urm ătoarele propriet ăți:

• este unic ă, adică orice combina ție de valori ale atributelor
acestei chei este unic ă pentru orice stare a rela ției

• este stabil ă, adică informa ția corespunz ătoare ei nu se
modifică niciodată prin opera ții de actualizare a datelor

• nu se admit valori NULL pentru nici unul din atributele cheii
respective

În concluzie, o cheie primar ă reprezint ă unul sau mai multe
câmpuri ale tabelei care identific ă
unic fiecare înregistrare din
tabela respectiv ă.

3.5.3. Constrângeri între tabele

Relațiile dintre tipurile de entit ăți definite în modelul
conceptual al unei baze de date se realizeaz ă în modelul rela țional
prin intermediul cheilor str ăine.

O cheie str ăină este o submul țime de atribute ale unei
entități E1 care refer ă entitatea E2 și îndepline ște următoarele
condiții: atributele cheii str ăine din E1 sunt definite pe domenii
compatibile cu cele ale atri butelor cheii din entitatea E2, și cheia
din entitatea E2 este cheie primar ă în aceast ă relație.

Această cheie str ăină determin ă o asociere între câmpurile
unor tabele cu cele ale altei tabele și creeaz ă abilitatea de
realizare a unirii tabelelor resp ective prin intermediul opera țiilor
JOIN.
Integritatea referen țială este proprietatea bazei de date
care garanteaz ă că oricare valoare a unei chei str ăine se
regăsește printre valorile cheii corespunz ătoare din rela ția referită,
sau cheia str ăin
ă are valoarea NULL (dac ă atributele acesteia nu
sunt supuse constrângerii NOT NULL).

Proiectarea bazelor de date

42 Proiectul pentru Înv ățământul Rural

Exemplu:

Revenind la baza de date proiectat ă de noi, numit ă
Universitate vom defini cheile primare și cele str ăine din cadrul
fiecărei tabele. Cheile primare vor fi subliniate pentru o mai clar ă
interpretare.

• Pentru tabela Faculate vom presupune c ă cod facult ății
(CodFac) este unic pentru fiecare facultate din cadrul universității respective. În concluzie, tabela Facultate va
avea urm ătoarea structur ă :
Facultate (CodFac
, Denumire, Adresa, Nume Decan)

• Pentru tabela StudPersonal dispunem de mai multe op țiuni
în alegerea cheii primare. Ea poate fi reprezentat ă de CNP
acesta fiind teoretic unic fiec ărei persoane. Din p ăcate s-au
întâlnit cazuri în care dou ă persoane au acela și CNP și
pentru a evita un posibil conflict, ad ăugăm la tabela un alt
atribut numit CodStud și va fi un num ăr unic pentru fiecare
înregistrare din tabela StudP ersonal. În concluzie tabela
StudPersonal va avea urm ătoarea structur ă:
StudPersonal (CodStud , CNP, Nume, Init, Prenume,
DataNasterii, LocNa șt, Tata, Mama, Adresa)

• Pentru început la tabela Studenti ini țială ar trebui introdus
câmpul CodFac. Acesta va reprezenta o cheie str ăină a
aceste tabele și va face leg ătura direct ă între tabela
Studenti și tabela Facultate. Tabela Studenti va avea
următoarea structur ă:
Studenti(CodFac, CodStud, An , Grupa, Media, Bursa).

Vom stabili cheia primar ă a acestei tabele. În acest caz,
cheia primar ă trebuie s ă fie o cheie compus ă din atributele
CodFac și CodStud pentru a identifica unic fiecare
înregistrare din tabel ă. Dacă am fi ales numai câmpul
CodFac nu ar fi fost bine deo arece la o facultate corespund
mai mulți studenți și atunci ar ap ărea CodFac acela și pentru
mai multe înregistr ări și nu ar fi indeplinite condi țiile pentru
ca un câmp s ă fie cheie primar ă. La fel s-ar fi întâmplat și
dacă am fi optat pentru câm pul CodStud deoarece acest
cod este un num ăr unic pentru fiecare student dintr-o
facultate, acela și cod putând fi asociat și pentru un alt
student de la o alt ă facultate.

În concluzie, tabela Studenti va avea urm ătoarea structur ă:
Studenti(CodFac, CodStud , An, Grupa, Media, Bursa)

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 43

• Pentru tabela Materii vom presupune c ă codul materiei
(CodMaterie) este unic pentru fiecare disciplin ă din cadrul
universității respective. În concluzi e, tabela Materii va avea
următoarea structur ă :
Materii (CodMaterie
, Denumire, An, Nume Profesor)

• În tabela Note, care are ini țial două atribute Nota și Data
trebuie introduse mai multe câmpuri.

Unul ar fi câmpul CodStud, care va reprezenta o cheie
străină și va face leg ătura cu tabela Studenti pentru a
cunoaște în orice moment c ărui student îi apar ține nota
respectiv ă. Un alt câmp care ar trebui introdus este câmpul
CodMaterie, care va reprezenta o cheie str ăină și va face
legătura cu tabela Materii pentru a cunoa ște în orice
moment ce not ă i-a fost acordat ă studentului respectiv.
Tabela Studenti va avea urm ătoarea structur ă:
Studenti(CodStud, CodMaterie, Nota, Data).

Vom stabili cheia primar ă a acestei tabele. În acest caz,
cheia primar ă ar putea fi o cheie compus ă din atributele
CodStud, CodMaterie și Data pentru a identifica unic
fiecare înregistrare din tabel ă. Câmpul Data trebuie introdus
în cheia primar ă deoarece un student poate s ă participe la
un examen de mai multe ori.(fie c ă a fost absent, fie c ă nu a
obținut notă de trecere, fie c ă dorește o mărire a notei
respective). Cum este greu de manipulat o astefl de cheie primară, propunem introducerea unui alt câmp în tabela
numit CodNota, care va fi uni c pentru fiecare înregistrare
din tabel ă. Astfel, în concluzie, tabela Note va avea
următoarea structur ă:
Note (CodNota
, CodStud, CodMaterie, Nota, D ata).

Test de autoevaluare

5. Ce sunt constrângerile? Da ți exemple de tipuri de constrângere.

Proiectarea bazelor de date

44 Proiectul pentru Înv ățământul Rural

3.6. Dependen țe funcționale

Dependen ța funcțională definește relația dintre un atribut
sau un grup de atribute ale unui tabel și un alt atribut sau grup de
atribute ale altuia. Dup ă cum am specificat, atributele se refr ă la
câmpurișe tabelei. Prin urmare trebuie s ă vedeți ce câmpuri
depind de alte câmpuri.

În orice tabel ă pot exista dou ă categorii de dependen țe
funcționale:

• Dependen țe funcționale determinate de cheile tabelei;
astfel de dependen țe funcționale nu produc redundan ța
datelor și nici anomalii de actualizare a rela ției

• Dependen țe funcționale în care atribut ul determinat nu este
o cheie a tabelei; astfel de dependen țe funcționale produc
redundan ța datelor și anomalii de actualizare a tabelei.

Constrângerile de cheie sunt constrângeri implicite,
conținute în defini ția relației și sunt verificate și impuse automat de
sistemul de gestiune; proiectantul bazei de date nu trebuie s ă
prevadă nimic suplimentar pentru ca aceste constrângeri s ă fie
satisfăcute de orice stare a rela ției.

În schimb, dependen țele func ționale în care atributul
determinant nu este o cheie a rela ției sunt constrângeri explicite,
care nu sunt verificate și nici impuse de sistemul de gestiune.
Verificarea și impunerea acestor dependen țe funcționale se poate
face numai procedural, prin tri ggere, proceduri stocate sau func ții
impuse în programele de aplica ție.

3.7. Normalizare. Forme normale.

La proiectarea bazelor de date rela ționale se stabilesc
entitățile din realitatea modelat ă. Modul în care se pot stabili
entitățile unei baze de date nu este unic și de accea este necesar
să existe criterii de evaluare a calit ății entităților, astfel încât
acestea s ă asigure integritatea datelor.

În acest capitol se trateaz ă procesul normaliz ării și primele
trei forme normale pentru o tabel ă.

Procesul de normalizare propus de E.F. Codd în 1970
urmărește execu ția asupra unei tabele a unor serii de teste pentru
a cerceta apartenen ța la forma normal ă.
Codd propune trei forme normale (3NF), cea mai bun ă
definiție fiind dat ă mai târziu de Boyce și Codd, fiind cunoscut ă
sub numele de forma normal ă Boyce-Codd.

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 45

Normalizarea datelor poate fi privit ă ca un proces în timpul
căruia schemele tabel ă nesatisf ăcătoare sunt descompuse prin
împărțirea atributelor în t abele cu atribute mai pu ține ce posed ă
proprietățile dorite.

În fond, unul din obiectivele procesului de normalizare este
asigurarea faptului c ă tabela posed ă o bună construc ție asigurând
posibilități de modificare cu eliminarea anomaliilor care pot
apărea.

Forma normal ă oferă proiectantului bazei de date :

• un schelet formal pentru analiza rela țiilor bazat pe chei și
pe dependen ța funcțională între atribute

• serie de teste ce pot elimina tabelele individuale astfel încât
baza de date rela țională poate fi normalizat ă în orice grad.
Când un test nu este trecut, tabela va fi descompus ă în
tabele ce trec testele de normalitate

3.7.1. Forma normal ă de ordin 1 (FN1)

Forma normal ă de ordin 1 este considerat ă ca fiind parte a
definiției formale a unei tabele.

Ea nu permite atribute cu mai multe valori, atribute
compuse sau combina ții ale lor. Aceasta stabile ște ca domeniul
atributelor trebuie s ă includă numai valori atomice și valoarea
oricărui atribut într-un nuplu este o valoare unic ă în domeniul
atributului respectiv.

Deci, FN1 nu permite un set de valori, un nuplu de valori
sau o combina ție a acestora ca valoare a unui atribut pentru un
nuplu. Cu alte cuvinte, FN1 nu pe rmite tabele în tabele sau tabele
ca atribute ale nuplurilor. Valorile permise de FN1 sunt atomice
sau indivizibile, pentru un dom eniu specificat de valori.

Exemplu :

Consider ăm că în tabela Materii (CodMaterie, Denumire,
An, NumeProfesor), unde cheia primar ă este CodMaterie este
introdusă o înregistrare de tipul:

CodMaterie Denumire An NumeProfesor
1 Analiz ă matematic ă 1 O.Stan ășilă, P.Flondor, M.Olteanu

Proiectarea bazelor de date

46 Proiectul pentru Înv ățământul Rural

Această înregistrare reprezint ă o disciplin ă care este
predată de trei profesori diferi ți.
Acest nuplu (înregistrare) nu îndepline ște FN1, deoarece la
atributul NumeProfesor nu sunt valo ri atomice, ci un set de valori.
Pentru a rezolva aceast ă problem ă vom introduce mai multe
înregistrări, care vor îndeplini cerin țele FN1, considerând trei
materii diferite astfel:

3.7.2. Forma normal ă de ordin 2 (FN2)

A doua form ă normală impune ca fiecare atribut (coloan ă)
să fie dependent de fiecare parte a cheii principale.
Mai exact, o tabel ă îndepline ște FN2 dac ă îndepline ște FN1
și conține numai atribute care dau informa ții despre cheia tabelei.

Exemplu:

Considerând c ă în tabela Materii (CodMaterie, Denumire,
An, NumeProfesor), unde cheia primar ă este CodMaterie c ă ar
mai exita și alte câmpuri cum ar fi: Nume Student, Nota, Data
Examinării. Acea structur ă nu ar fi proiectat ă bine, neîndeplinind
FN2. Pentru a solu ționa aceast ă problem ă trebuie împ ărțită acea
tabel
ă în mai multe, astfel:

Studenti(CodStud, Nume, ….) Materii (CodMaterie, Denumir e, An, NumeProfesor),
Note(Nota, Data, CodStud, Cod Materie)

3.7.3. Forma normal ă de ordin 3 (FN3)

Pentru a ajunge la a treia form ă normală, tabelul trebuie s ă
fie deja în prima și a doua form ă normală. Pentru a fi în a treia
formă normală, trebuie ca toate câ mpurile non-primare s ă depindă
numai de câmpurile primare.
Deși nu face parte în mod rigur os din normalizare, de obicei
nu este recomandabil s ă includeți câmpuri care pot fi derivate din
alte câmpuri situate în acela și tabel sau în tabelele aflate în rela ție. CodMaterie Denumire An NumeProfesor
1 Analiză matematic ă 1 O.Stan ășilă
2 Analiz ă matematic ă 1 P.Flondor
3 Analiz ă matematic ă 1 M.Olteanu

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 47

Exemplu:

Să consider ăm baza de date Universitate, mai exact tabela
StudPersonal, care are structura:

StudPersonal (CodStud
, CNP, Nume, Init, Prenume, DataNasterii,
LocNașt, Tata, Mama, Adresa)

Nu are rost s ă stocăm un alt câmp numit Vârsta, care se
poate calcula din DataNasterii.

3.7.4. Forma normal ă Boyce-Codd (FNBC)

Forma normal ă Boyce-Codd este o form ă strictă FN3,
înțelegând prin aceasta c ă fiecare tabel ă FNBC este în acela și
timp o tabel ă FN3, cu toate c ă o tabel ă FN3 nu este în mod
necesar și o tabelă FNBC. Cele dou ă forme sunt asem ănătoare,
ambele impunând condi ția ca atributul care determin ă funcțional
alte atribute s ă fie o cheie a tabelei. Forma normal ă Boyce-Codd
este mai restrictiv ă decât FN3, deoarece în FNBC se impune
această condiție tuturor atributelor, prime sau neprime, pe când în
FN3 condi ția se impune numai atribut elor neprime. Atributele
prime sunt atributele care apar țin unei chei, iar celelalte se
numesc atribute neprime.

Orice tabel ă formată din dou ă atribute este FNBC, FN2 și
FN3.
Această tabelă compus ă din dou ă atribute este FN2,
deoarece, fie cheia este format ă din ambele atribute
și atunci nu
există atribute neprime, fie cheia este format ă dintr-unul din
atribute, iar dependen ța funcțională a celuilalt atribut (care este
atribut neprim) fa ță de cheie este total ă.

Această tabelă compus ă din dou ă atribute este FN3
deoarece este FN2 și nu poate exista nici un atribut neprim care
să determine func țional un alt atribut neprim, deoarece o tabel ă cu
două atribute nu poate avea decât cel mult un atribut neprim.

Test de autoevaluare

6. Ce reprezint ă procesul de normalizare și specifica ți formele
normale.

Proiectarea bazelor de date

48 Proiectul pentru Înv ățământul Rural

S-ar putea s ă vă simțiți copleșiți de aceste reguli. De fapt,
pe măsură ce veți dobândi experien ță, veți începe s ă creați fișiere
normalizate de la bun început.

3.8. Structuri de indec și în tabelele de date

Un index reprezint ă o cale rapid ă de localizare a
înregistrărilor dintr-o tabel ă, prin gruparea tuturor înregistr ărilor
pentru un anumit atribut sau grup de atribute.

Indexarea este utilizat ă în două scopuri principale:
– accelerarea c ăutărilor în baza de date
– asigurarea unicit ății înregistr ărilor

Vom privi o rela ție ca o colec ție de date (o mul țime) în care
nu sunt admise elemente duplicat. În cazul unei mul țimi
reprezentate printr-o colec ție neordonat ă de elemente, timpul de
căutare a unui element cre ște propor țional cu num ărul de
elemente ale mul țimii, deoarece în cazul cel mai r ău trebuie
parcurse toate elementele mul țimii pentru a g ăsi elementul dorit.
Timpul de c ăutare a unui element poate fi mic șorat considerabil
dacă elementele mul țimii sunt ordonate.

Un exemplu este cel utilizat uzual în c ărți. Într-o carte g ăsim
la sfârșit termenii importan ți aranjați în ordine alfabetic ă. La fiecare
termen din aceast ă listă este furnizat ă un număr de pagin ă în care
apare și este explicat termenul. Utilizând aceast ă listă se găsește
imediat un termen c ăutat. Fără o astfel de list ă, neexistând o
ordine de ghidare a c ăutării, singura alternativ ă este explorarea
completă a întregului material pentru a g ăsi termenul dorit.

În general, opera țiile de c ăutare, inserare și ștergere a
elementelor într-o mul țime (tabel ă) se execut ă mai rapid dac ă
elementele mul țimii (înregistr ările) sunt reprezentate printr-o
colecție ordonat ă. În tehnologia bazelor de date, ordonarea
colecțiilor de date se face prin indexarea datelor.

Indexul unei tabele este o structur ă de date adi țională
memorat ă în baza de date care permite accesul rapid la
înregistrările tabelei prin ordonarea acestora.

De fapt, indexul poate fi gândit ca o tabel ă cu două atribute:
primul atribut con ține valorile atributelor tabelei bazei de date
pentru care se creaz ă indexul, iar al doilea con ține un pointer la
locația nuplurilor corespunz ătoare. Valorile sunt aranjate fie în
ordine descendent ă cheii de indexare, fie în ordine ascendent ă.

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 49

O reprezentare generic ă a structurii de index este:

Criteriu
Criteriu Tabela de date Index
Acces

Figura 3.1. O structur ă generică de index
Indecșii se clasific ă după tipul de câmp sau dup ă nivel și
după modul de organizare a tabelei. O clasificare a acestora este
următoarea:

1. Indexul primar este un index asociat unei tabele ordonate
după câmpul cheie al tabelei, ia r în structura de index se
utilizează câmpul cheie.

2. Indexul secundar este un index construit tot pe baza unui
câmp cheie, dar tabela nu este ordonat ă după câmpul
cheie.

3. Indexul de grup (cluster) este un index construit dup ă
câmpuri ce nu sunt câmpuri ch eie (criteriu de acces este
diferit de câmpul cheie), iar tabela poate fi ordonat ă sau nu
relativ la criteriul de acces.

4. Indexul multinivel (se mai numesc și indecși de blocuri) se
aplică oricăror tabele. Principiul de baz ă este de a construi
niveluri de indexare pân ă când structura adi țională de date
corespunde indexului de cel mai mare nivel poate fi
memorat ă într-un singur bloc. Ace ști indecși se construiesc
în două forme: baza ți pe arbori B și bazați pe arbori B
+.

Proiectarea bazelor de date

50 Proiectul pentru Înv ățământul Rural

3.8.1. Indexul primar

Un index primar este un fi șier ordonat cu înregistr ări de
lungime fix ă având dou ă câmpuri. Primul câmp al indexului este
de acela și tip cu un câmp cheie ordonat al tabelei de date, iar al
doilea câmp este un pointer c ătre un bloc (o adres ă a unui bloc).
Câmpul cheie de or donare se mai nume ște și cheie primar ă
a tabelei de date. Asocia ția celor dou ă câmpuri formeaz ă intrarea
index sau înregistrarea index pentru fiecare bloc al tabelei de date.
Cum tabela de date este ordonat ă după valorile câmpului index, în
fișierul index valoarea primului câmp este dat ă de valoarea
câmpului index de la prima înregist rare a blocului. Al doilea câmp,
cel ce semnific ă un pointer este de tip întreg și indică adresa
blocului.
Volumul datelor în index este mai mic datorit ă faptului c ă în
index avem o singur ă intrare pentru un bloc, cât și datorită faptului
că un index este similar cu o tabel ă, dar are numai dou ă câmpuri.
Ca efect, c ăutarea într-un fi șier index este mult mai rapid ă decât
într-o tabel ă de date, putând fi utilizate metode de c ăutare binare.

<k> reprezint ă cheia de ancorare bloc
<p> reprezint ă pointerul la bloc

Figura 3.2. Indexul primar

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 51

3.8.2. Indexul secundar

Metoda de indexare secundar ă se aplic ă la tabele
neordonate, indiferent dac ă valorile câmpului dup ă care se face
indexarea în tabela de date sunt sau nu distincte.

Indexul secundar este un fi șier ordonat cu dou ă câmpuri ca
și la alți indecși, în care primul câmp este identic cu cel al tabelei
de date, iar al doilea câmp este un pointer. Câmpul pentru care
indexul este construit se nume ște și câmp de indexare.
În concluzie, orice câmp al unei tabele poate fi câmp de
indexare secundar.

<k> reprezint ă cheia de ancorare bloc
<p> reprezint ă pointerul la bloc

Figura 3.3. Indexul secundar

Proiectarea bazelor de date

52 Proiectul pentru Înv ățământul Rural

3.8.3. Indexul de grup

Astfel de indec și sunt folosi ți când înregistr ările tabelei de
date sunt ordonate fizic dup ă un câmp care nu este cheie
(noncheie), deci un câmp ce nu are valori distincte la fiecare
înregistrare. Un as tfel de câmp identific ă un grup de înregistr ări
(clustering field). În aceast ă situație se poate crea un index ce
faciliteaz ă găsirea înregistr ărilor ce apar țin unui câmp.

Un index de grup este deci un fi șier ordonat cu dou ă
câmpuri, primul câmp con ținând aceea și informa ție cu cea a
câmpului noncheie de ordonare, al doilea fiind destinat unui
pointer c ătre un bloc de date. În acest mod, fi șierul index con ține
câte o intrare pentru fiecare valoare distinct ă a câmpului de
ordonare. Al doilea câ mp al înregistr ării index con ține un pointer
către blocul în care apare pentru prima oar ă valoarea câmpului de
ordonare din primul câmp al indexului.

<k> reprezint ă cheia de ancorare bloc
<p> reprezint ă pointerul la bloc

Figura 3.4 . Indexul de grup

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 53

3.8.4. Indexul multinivel

Metodele de indexare descrise pân ă acum opereaz ă cu un
fișier index ordonat. Asupra fi șierului index se aplic ă metode de
căutare binar ă pentru localizarea înregistr ărilor cu valoarea
specificat ă în câmpul index.

Pentru un index multinivel, fi șierul index este v ăzut ca un
nou fișier la care se construie ște un nou index și așa mai departe.
Primul fișier index con ține câte o valoare distinct ă pentru fiecare
cheie de indexare. Se poate crea un index primar pentru primul
nivel, nivel numit și nivel secund al indexului multinivel. Cum al
doilea nivel este un index primar se poate folosi metoda de
ancorare a blocurilor, a șa că al doilea nivel are câte o intrare
pentru fiecare bloc al primului nivel, întrucât este în esen ță un
index primar.

<k> reprezint ă cheia de ancorare bloc
<p> reprezint ă pointerul la bloc

Figura 3.5 . Indexul cu dou ă niveluri

Test de autoevaluare

7. Ce sunt indec șii? Dați câteva exemple de indec și.

Proiectarea bazelor de date

54 Proiectul pentru Înv ățământul Rural

În imaginea al ăturată este prezentat ă baza de date, dup ă
ce s-a realizat proiectarea ei, crearea tabelelor și a relațiilor
dintre ele și după ce s-au impus constrângerile.

Câmpurile scrise îngro șat sunt cheile primare din cadrul
fiecărei tabele.

Liniile dintre tabele arat ă relațiile care le-am creat prin
proiectare între fiecare dou ă tabele. La capetele liniilor sunt dou ă
câmpuri: câmpul scris neîngro șat reprezint ă cheia str ăină a
tabelei și după cum spune și definiția, face leg ătura cu cheia
primară a celeilalte tabele.

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 55

Lucrare de verificare a cuno știn
țelor
1. Propun pe lâng ă aplicația pe care am proiectat-o și realizat-o
împreună să încercați să aplicați aceleași etape și pentru o alt ă două
aplicație descris ă mai jos.
Aplicație pentru gestiunea angaja ților dintr-o companie.
Se dau mai jos cerin
țele pentru construc ția unei baze de date
aferente unei companii, baza de date numit ă COMPANIE, ce are ca
scop ilustrarea procesului descris. În faza preliminar ă se cunoa ște faptul
că compania are un num ăr de angaja ți organiza ți pe departamente și
urmărește realizarea unor proiecte. Pent ru simplitate, se presupune c ă
după analiza cerin țelor s-a decis urm ătoarea descriere, ca elemente
primare, pentru baza de date:
• Compania este organizat ă în departamente, fi ecare departament are
un nume, un num ăr de cod, un num ăr de angaja ți. Compania poate
avea mai multe sedii
• Un departament este implicat în mai multe proiecte, fiecare din ele
are un nume, un numor de cod și o singur ă locație

• Se păstrează pentru fiecare angajat numele, CNP, adresa salariul,
sex, data na șterii. Fiecare angajat es te afiliat la un departament,
însă poate lucra la mai multe proiecte ce nu sunt neap ărat
coordonate de acela și departament. Trebuie stocat și numărul de
ore alocate s ăptămânal pentru fiecare proiect. De asemenea, fiecare
angajat are un șef direct

• Lista persoanelor din între ținerea fiec ărui angajat este important ă
întrucât este utlizat ă șa calculul impozitului, lista con ținând numele,
sexul și data na șterii fiecărui întreținut.

2. Dați exemple de entit ăți care ar putea exista pentru baza de date
Companie. Scrie ți entitățile propuse de voi al ături de atributele asociate
fiecăreia din ele.

3. Dați exemple de rela ții care ar putea exista pentru baza de date
Companie. Descrie ți relațiile dintre toate entit ățile.
4. Realiza ți diagrama entitate-rela ție asociat ă bazei de date Companie.
5. Defini ți cheile primare și străine asociate fiec ărui tabel din baza de
date Companie și scrieți structura final ă pentru fiecare tabel ă.

6. Explica ți dacă tabelele din baza de date Co mpanie sunt normalizate.
Dați exemple cum sunt îndeplinite fiecare form ă normală.

Proiectarea bazelor de date

56 Proiectul pentru Înv ățământul Rural

Răspunsuri și comentarii la întreb ările din testele de
autoevaluare

Întrebarea 1.

O proiectare corect ă a unei baze de date trebuie s ă parcurg ă
următoarele etape:
• Analiza cererilor și strângerea de informa ții referitoare la
aplicație.
• Proiectarea conceptual ă a bazei de date.
• Alegerea unui sistem de gestiune al bazelor de date.
• Proiectarea logic ă a bazei de date.
• Proiectarea fizic ă a bazei de date.
• Implementarea aplica ției.

Întrebarea 2.

Obiectele bazei de date sunt urm ătoarele:
• Tabelă (entitate) este o colec ție de informa ții logice
relaționale tratat ă ca o unitate
• Înregistrare (n-uplu). O tabel ă este compus ă din înregistr ări
sau rânduri. Fiecare înr egistrare este tratat ă ca o simpl ă
unitate. Fiecare înregistrare este legat ă de înregistr ări ale
altei tabele.
• Câmpuri (atribute). Înregistr ările sunt constituite din câmpuri
(coloane) . Un câmp este o particul ă atomică a bazei de
date ce reprezint
ă cea mai mic ă cantitate de informa ție care
poate fi manipulat ă. Toate înregistr ările dintr-o tabel ă au
aceleași câmpuri.

Întrebarea 3.

Relațiile între tabele pot fi de mai multe tipuri: rela ție unară (în
cadrul acelea și tabele), rela ția unul-la-unul, rela ția unul-la-multe și
relația multe-la-multe (aceste 3 tipuri de rela ții fiind rela ții între
două tabele.

Întrebarea 4.

Construirea diagramei entitate-rela ție este important ă pentru o
vizualizare cât mai clar ă a ansamblului de obiecte din baza de
date.
Întrebarea 5.

Constrângerile sunt reguli care se definesc la proiectarea unei
baze de date și care trebuie s ă fie respectate de-a lungul
existenței acesteia.

Proiectarea bazelor de date

Proiectul pentru Înv ățământul Rural 57 Constrângerile sunt de mai multe feluri:
• În cadrul tabelei
o Constrângeri de domeniu
o Constrângeri de nuplu
o Constrângeri impuse de dependen țe de date
• Între tabele
o Constângeri de integritate referen țială

Întrebarea 6.

Procesul de normalizare pr opus de Codd (1972) urm ărește
execuția asupra unei tabele a unor se rii de teste pentru a cerceta
apartenen ța la forma normal ă. Codd propune trei forme normale
(1NF, 2NF, 3NF), cea mai bun ă definiție fiind dat ă mai târziu de
Boyce și Codd, fiind cunoscut ă sub numele de forma normal ă
Boyce-Codd.
Întrebarea 7.

Indexul unei tabele este o structur ă de date adi țională memorat ă
în baza de date care permite accesul rapid la înregistr ările tabelei
prin ordonarea acestora. Indec șii sunt de mai multe tipuri:
• Index primar
• Index secundar
• Index de grup
• Index multinivel

Indicații la lucrarea de verificare

Problemele propuse în lucrarea de verificare se fac dup ă modelele
de exemple prezentate în unitatea de înv ățare sau dup ă tipicul
acestora, astfel: -problema 1 ca exemplul de la pagina 31 -problema 2 ca exemplul de la pagina 33 -problema 3 ca exemplul de la pagina 34-37 -problema 4 ca exemplul de la pagina 38 -problema 5 ca exemplul de la pagina 42 -problema 6 ca exemplul de la pagina 45-47
Bibliografie:

• Cârstoiu, Dorin, Baze de date rela ționale, Editura Printech,
1999
• Rădulescu, Florin, Baze de date în Internet, Editura
Printech, 2000
• Ionescu, Felicia, Baze de date rela ționale și aplicații,
Editura Tehnic ă, 2004
• Baltac, Vasile, ECDL-Excel, Access, PowerPoint în 20 lec ții
și 75 de simul ări, Editura Andreco, 2003

Proiectarea bazelor de date

58 Proiectul pentru Înv ățământul Rural
• Browne, Allen, Balter Alison, Bazele Access 95 , Editura
Teora, 1999
• Pribeanu, Costin, Baze de date și aplicații, Editura
MatrixRom, 2000
• Pascu, C., Pascu A., Totul despre SQL , Editura Tehnic ă,
1994

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 59 Unitatea de înv ățare Nr. 4

UN LIMBAJ PENTRU BAZELE DE DATE RELA ȚIONALE (SQL)

Cuprins Pagina
Obiectivele unit ății de învățare nr. 4 61

4.1. Introducere 62
4.1.1. Deschiderea și închiderea aplica ției Microsoft
Access 62
4.1.2. Crear ea unei baze de date noi 63
4.1.3. Înch iderea unei baze de date 63
4.2. Tipuri de date MICROSOFT Access 64 4.3. Operatorii logici 66 4.4. Limbajul standard SQL 68 4.4.1. Scur t istoric al limbajului SQL 68
4.4.2. Crearea unei tabele 69
4.4.3. Salvarea unei tabele 72
4.4.4. Ștergerea unei tabele 73
4.4.5.Modifi carea structurii unei tabele 74
4.5.Modificarea datelor în SQL 74 4.5.1. Inse rarea de noi linii într-o tabel ă 74
4.5.2. Ștergerea unor linii dintr-o tabel ă 75
4.5.3. Modifi carea unor linii dintr-o tabel ă 77

4.6. Limbajul de cereri în SQL 79
4.6.1. Cereri simple 79
Expresii aritmetice
Alias de coloan ă
Constant e (literali)
4.6. 2. Clauza DISTINCT 84
4.6.3.Clauza ORDER BY 85 4. 6.4. Clauza WHERE 86
Operatorul BETWEEN
Operatorul IN
Operatorul IS NULL
Operatorul LIKE
4.6.5. Func ții de grup 90
4.6.6. Clauza GROUP BY 92 4.6. 7. Clauza HAVING 93
4.6.8. Cereri con ținând mai multe tabele 94
Lucrări de verificare a cuno ștințelor 99

Un limbaj pentru baze de date rela ționale

60 Proiectul pentru Înv ățământul Rural
Răspunsuri și comentarii la întreb ările din testele de
autoevaluare 101

Biblliografie 102

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 61 Înc ă de la început doresc s ă vă felicit pentru parcurgerea cu
succes a primelor trei unit ăți de învățare și să vă urez bun venit la
studiul acestei noi unit ăți de învățare. În primele trei unit ăți de învățare
am realizat o scurt ă introducere în acest ampl u domeniu al bazelor de
date, am descris mai în detaliu ce este un sistem de baze de date și în
ce const ă el, dar am înv ățat și cum se creaz ă, analizeaz ă și se
proiecteaz ă corect o baz ă de date.

În aceast ă unitate de înv ățare nr. 4 vom studia cum se creaz ă,
se manipuleaz ă și se șterge o baz ă de date și datele stocate în ea.

OBIECTIVELE unit ății de învățare nr. 4

Principalele obiective ale unit ății de învățare nr. 4 sunt:

După studiul unit ății de învățare nr. 4 vei fi capabil s ă demonstrezi c ă
ai dobândit cuno ștințe suficiente pentru a în țelege:

• cum se folose ște sistemul de baze de date Microsoft Access

• cum se creeaz ă și cum se închide o baz ă de date Access

• care sunt tipurile de date disponibile în Access

• care sunt operatorii folosi ți în algebra rela țională

• ce este limbajul SQL și care sunt opera țiile care se pot efectua
în acest limbaj

• cum se face o interogare c ătre baza de date cu ajutorul
limbajului SQL

• cum se face grafic o interogare în Microsoft Access

• care sunt tipurile de cereri SQL

• cum se creaz ă o tabelă, cum se modific ă tabela și informa țiile
din tabel ă, cum se insereaz ă date în tabel ă, cum se șterg datele
dintr-o tabel ă și cum se șterge o tabel ă

Un limbaj pentru baze de date rela ționale

62 Proiectul pentru Înv ățământul Rural

4.1. Introducere

Pe parcursul acestui capitol vom face referire la baza de
date analizat ă și proiectat ă în capitolele anterioare. Aceast ă bază
de date se nume ște Universitate și conține următoarele tabele:

Facultate (CodFac , Denumire, Adresa, NumeDecan)
Studenti (CodStud , CodFac, An, Grupa, Media, Bursa)
StudPers (CodStud , CNP, Nume, Init, Pr enume, DataNasterii,
LocNast, Tata, Mama, Adresa) Materii (CodMaterie
, Denumire, An, NumeProfesor)
Note (CodNota , CodStud, CodMatrie, Nota, Data)

Observa ție: Câmpurile subliniate sunt chei primare în fiecare
tabelă.

În acest capitol vor fi prezent ate o serie de exemple pentru
înțelegerea mai exact ă a limbajului de interog ări SQL. Toate
exemplele au fost dezvoltate in sist emul de baze de date Microsoft
Access.

4.1.1. Deschiderea și închiderea aplica ției Microsoft Access

Pentru a deschide aceast ă aplicație folosim meniul Start –
Programs -Microsoft Access .

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 63

În momentul ap ăsării Microsoft Access, pe ecranul
monitorului apare imaginea specific ă acestei aplica ții, ce con ține: o
bară de meniu, o bar ă de instrumente și o fereastr ă cu toate
tipurile de obiecte care pot fi ut ilizate în acest program (Tables,
Queries, Forms, Reports, etc).

Pentru a închide aceast ă aplicație se va alege op țiunea
Exit din meniul File sau printr-un clic pe bu tonul din dreapta sus a
ferestrei:
.

4.1.2. Crearea unei baze de date noi
O bază de date nou ă se poate deschide folosind op țiunea
New din meniul File, sau printr-un clic pe simbolul
din bara de
instrumente.

4.1.3. Închiderea unei baze de date
Pentru a închide o baz ă de date, f ără a închide și aplicația
Access ce este necesar ă pentru utiliz ări ulterioare, se utilizeaz ă
comanda urm ătoare:

Un limbaj pentru baze de date rela ționale

64 Proiectul pentru Înv ățământul Rural

sau se apas ă pe butonul
din colțul din dreapa sus al ferestrei cu
baza de date.
O bază de date con ține unul sau mai multe tabele.

4.2. Tipuri de date MICROSOFT Access

Vom vorbi în continuare despre crearea de tabele în mediul
Microsoft Access și despre alocarea unui tip de date
corespunz ător pentru câmpurile din tabele.

Tabelele reprezint ă obiectele din cadrul bazei de date în
care se stocheaz ă datele. Un tabel este constituit din câmpuri,
care sunt coloane ale acelui tabel și cărora li se atribuie câte un
nume, fiecare având un tip de date și o dimensiune bine precizat ă.
Această abordare structurat ă a datelor asigur ă bazelor de date
puterea și viteza de lucru de care au nevoie.

Vom alege personal numele fiec ărui câmp, tipul și
proprietățile acestora, în func ție de dorin țe. Înțelegerea corect ă a
tipurilor de câmpuri disponibile și a propriet ăților acestora ne ofer ă
posibilitatea cre ării unor structuri bune și eficiente pentru stocarea
și gestionarea datelor.

Microsoft Access permite folosirea numelor pentru câmpuri
cu o lungime de pân ă la 64 de caractere inclusiv spa țiile înglobate.
Este indicat ca numele s ă fie scurt, f ără spații și denumirea lui s ă
fie cât mai sugestiv ă. Trebuie precizat tipu l de date pe care îl
conține fiecare câmp.

Aceste tipuri de date disponibile în Access sunt:
• Text
Majoritatea câmpurilor folosite în baza de date sunt de tipul
text. Pe lâng ă câmpurile care au tipul ev ident text, cum ar fi: Teste de autoevaluare

1. Deschide ți și închide ți aplicația Microsoft Access. Explica ți
în câteva cuvinte.

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 65

Nume, Adresa, câmpurile text se mai pot folosi și pentru numerele
care nu au func ție matematic ă. De exemplu, se folosesc câmpurile
text pentru stocarea numerel or de telefon, a codului po ștal etc.
Dimensiunea prestabilit ă a unui câmp text în Access este de 50
caractere, dar putem alege orice dimensiunea între 1 și 255.

• Memo
Dimensiunea unui câmp de tipul Memo este de 64KB
(kiloocteți), asta însemnând c ă putem stoca aprox imativ 16 pagini
de text scris la un rând pentru fi ecare înregistrare. Câmpurile
memo constau numai din text. Pot fi incluse secven țe de salt la
început de rând sau salt la rând nou, dar nu se accept ă opțiuni de
formatare a textului sa u indentarea unui paragraf.

• Număr
Tipul num ăr (Number) include mai multe tipuri care difer ă
prin modul de stocare și viteza de r ăspuns. Acestea sunt:

1. tipul Byte (Octet), care accept ă numai valori întregi pozitive
până la 255

2. tipul Integer (întreg), care acoper ă domeniul numerelor
întregi de la -32768 la 32768
3. tipul Long Integer (Întreg lung), care reprezint ă numerele
întregi pân ă dincolo de limitele de plus și minus 2 miliarde
4. tipul Single , care acoper ă domeniul numerelor frac ționare cu
până la 7 cifre semnificative

5. tipul Double , care acoper ă domeniul numerelor frac ționare
cu până la 14 cifre semnificative
6. tipul ReplicationID (IdentificatorDuplicare), care este
reprezentat ă pe 16 octe ți și a fost creat ă cu scopul de a
asigura un identificator unic gl obal (GUID: Gl obally Unique
Identifier) pentru bazele de date în cazul c ărora trebuie
realizată sincronizarea unor mari cantit ăți de date
suplimentare, de la mai multe situri.

• Dată calendaristic ă/Oră.
Microsoft Access stocheaz ă intern datele calendaristice sub
forma unor numere în virgul ă mobilă pe 8 octe ți, ora fiind
reprezentat ă ca o frac țiune dintr-o zi. În general este suficient ă în
majoritatea situa țiilor opțiunea Short Date (Forma scurt ă a datei),
deși s-ar putea s ă dorim ca anul s ă fie reprezentat pe formatul de
4 cifre.

• Valută
.

Un limbaj pentru baze de date rela ționale

66 Proiectul pentru Înv ățământul Rural

Tipul valut ă (Currency) acoper ă valorile în dolari întregi pân ă la
15 cifre și valorile zecimale pân ă la sutimi de cent. Ca
reprezentare intern ă, tipul valut ă este un num ăr în virgul ă fixă.

Acest format asigur ă o precizie sporit ă calculelor financiare,
dar este mai lent decât tipurile de numere întregi sau în virgul ă
mobilă.

• Număr cu incrementare automat ă
În Microsoft Access, datele de tip num ăr cu incrementare
automată (AutoNumber) pot fi secven țiale sau aleatoare. Microsoft
Access permite stabilirea dimensiunii unui num ăr cu incrementare
automată, prestabilit fiind întreg lung . Numerele cu incrementare
automată sunt atribuite chiar în mo mentul în care începem s ă
adăugăm o înregistrare nou ă. În cazul ștergerii unei înregistr ări
existente, nu exist ă nici o posibilitate de creare a unei alte
înregistrări cu acela și număr.

• Da/Nu
Tipul Da/Nu (Yes/No) stocheaz ă numai valori true sau false
(adevărat sau fals). O astfel de valoare poate fi afi șată în una din
formele True/False, Yes/No sau On/Off.

• Obiect OLE
Tipul de câmp OLE este destinat p ăstrării datelor provenite
de la alte programe, care s-au în registrat ele însele ca servere
OLE în Windows.Aceasta permite bazei de date s ă stocheze
documentele create de programe de pr elucrare a textelor, seturi
de foi de calcul, ilustra ții, sunete, videoclipuri, etc.

• Program wizard de c ăutare
Programul wizard de c ăutare (Lookup Wizard) nu este
câtuși de pu țin un alt tip de câmp. El reprezint ă o metod ă
convenabil ă de crearea a unui câ mp care îndepline ște funcția de
căutare într-un alt tabel.

Vom reveni la limbajul SQL.

Vom prezenta ca o introduc ere pentru limbajul SQL,
operatorii logici pe care îi vom folosi la interog ări.

4.3. Operatorii logici

Majoritatea opera țiilor algebrei rela ționale implic ă folosirea
operatorilor logici, operatori care de obicei întorc un rezultat
boolean – rezultat care are valoarea true (adevărat) sau false
(fals). Spunem de obicei deoarece dac ă adăugăm valoarea null la
modelul rela țional, lucrurile se complic ă puțin. Null adaugă o a
treia valoare la setul de valori boolene. Aceast ă valoare este
prezentat ă pe larg în capitolul anterior. În concluzie, în algebra
relațională se folosesc trei valo ri: true, false, null.

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 67

Operatorii logici folosi ți în algebra rela țională sunt: AND,
OR, XOR.

Tabelele de adev ăr pentru operatorii logici standard sunt:

După cum se vede, null op orice, unde op este un
operator logic, întoar ce valoarea null.

Alți operatori (=, ≠) sunt prezenta ți mai jos:

=
TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE TRUE NULL
NULL NULL NULL NULL

≠TRUE FALSE NULL
TRUE FALSE TRUE NULL
FALSE TRUE FALSE NULL
NULL NULL NULL NULL

XOR
TRUE FALSE NULL
TRUE FALSE TRUE NULL
FALSE TRUE FALSE NULL
NULL NULL NULL NULLANDTRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE NULL
NULL NULL NULL NULL
ORTRUE FALSE NULL
TRUE TRUE TRUE NULL
FALSE TRUE FALSE NULL
NULL NULL NULL NULL

Un limbaj pentru baze de date rela ționale

68 Proiectul pentru Înv ățământul Rural

SQL ne mai pune la dispozi ție încă 2 operatori unari- IS
NULL și IS NOT NULL pentru manipularea valorilor nule.

<valoare> reprezint ă orice în afar ă de valoarea nul ă.

4.4. Limbajul standard SQL

4.4.1. Scurt istoric al limbajului SQL

SQL a fost conceput ca un lim baj standard de descriere a
datelor și acces la informa țiile din bazele de date, ulterior
dezvoltându-se ca o adev ărată tehnologie dedicat ă arhitecturilor
client-server.
Utilizat ini țial de c ătre firma IBM pentru produsul DB2,
limbajul de interogare al bazelor de date rela ționale SQL a devenit
la mijlocul deceniului trecut un standard în domeniu. De atunci și
până în prezent au fost dezvoltate un num ăr de 7 versiuni ale
standardului SQL, trei dintre acestea apar ținând Institutului
Național American de Standarde (ANSI) , celelalte fiind concepute
de firme de prestigiu ca IBM, Microsoft, Borland, sau de c ătre
consorțiile industriale SAG (The SQL Access Group) și X/Open,
primul format din sute de firme ce comercializeaz ă software pentru
baze de date, iar cel din urm ă orientat spre activit ăți de promovare
a standardelor în domeniul si stemelor deschise. Din p ăcate, lipsa
unui standard unic SQL are drept consecin țe creșterea costurilor
programelor de gestiune a bazelor de date și îngreuneaz ă
întreținerea arhitecturilor client/server.

Termenul SQL reprezint ă o prescurtare a Structured Query
Language.

Comenzile principale în cazu l limbajului SQL se refer ă la
cele cinci opera ții de baz ă care se pot efectua într-un limbaj
relațional:

• Crearea/ ș
tergerea unei tabele
• Inserarea de noi linii intr-o tabel ă
• Ștergerea unor linii dintr-o tabel ă
• Modificarea unor linii dintr-o tabel ă
• Listarea selectiv ă a datelor din una sau mai multe tabele IS NULL IS NOT NULL
<valoare> FALSE TRUE
TRUE FALSE TRUE
FALSE FALSE TRUE
NULL TRUE FALSE

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 69

În acest mediu exist ă două moduri pentru crearea
interogărilor: modul de scriere efectiv ă a cererilor în partea de
Queries sau un mod grafic mult ma i prietenos utiliz atorului numit
Design View. Vom prezenta interog ările și în primul mod: SQL
VIEW, dar și în modul grafic.

4.4.2. Crearea unei tabele

Comanda de creare de noi tabele în baza de date curent ă
în limbajul SQL standard este CREATE TABLE.

Sintaxa simplificat ă pentru aceast ă comand ă este
următoarea:

CREATE TABLE nume_tabela (
coloana_1 descriere_1, coloana_2 descriere_2, ………………………., coloana_n descriere_n, [alte_descrieri] )

unde coloana_x este numele coloanei, iar descriere_x con ține tipul
valorilor acelei coloane și alte elemente de descriere pentru ea. În
descrierea unei coloane se poate specifica, pe lâng ă tipul valorilor
sale și alte constrângeri de integritate ca:

• NOT NULL indic ă faptul c ă valorile aferente coloanei
respective nu pot avea valori de tip null, care nu înseamn ă
zero, ci lips ă de informa ție.

• PRIMARY KEY indic ă faptul c ă coloana specificat ă cu
această constrângere va fi cheie primar ă pentru acest
tabel.

• FOREIGN KEY necesit ă ca fiecare valoare din coloan ă

existe într-o coloan ă corespondent ă dintr-o tabel ă referită.
Constrângerea FOREIGN KEY poate face referire doar la Teste de autoevaluare

2. Care sunt operatorii algebrei rela ționale?
3. Ce reprezint ă prescurtarea SQL?

Un limbaj pentru baze de date rela ționale

70 Proiectul pentru Înv ățământul Rural

coloane care sunt PRIMARY KEY sau UNIQUE în tabela
referită.

• DEFAULT indic ă o valoare implicit ă c a r e î l i a u n c â m p a l
unei tabele.

Interogările prezentate ma i departe vor fi f ăcute în modul
SQL VIEW. Pentru a intra în acest mod ne pozi ționăm pe obiectul
Queries și apăsăm butonul
. Va apărea o fereastr ă pentru
alegerea tipului de creare a interog ării. Facem op țiunea Design
View și vom face op țiunea View – SQL View din noul meniu sau
apăsăm clic dreapta de la mouse pe fereastra Query și facem
opțiunea SQL View.
Exemplu:

Crearea tabelelor cu structura prezentat ă la începutul capitolului.

create table Facultate(
CodFac integer primary key, Denumire text(50), Adresa text(50), NumeDecan text(20));

create table StudPersonal(
CodStud in teger primary key,
CNP integer, Nume Text(25),
Init text(3).
Prenume text(20),
DataNasterii date,
LocNast text(50),
Tata text(30),
Mama text(30),
Adresa text(50));
create table Studenti(
CodStud integer primary key, CodFac integer, An byte, Grupa text(6), Media double, Bursa integer);
create table Materii(
CodMaterie integer primary key, Denumire text(30), An byte, NumeProfesor text(50));

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 71

create table Note (
CodNota integer autonum ber primary key,
CodStud integer, CodMaterie integer, Nota byte, Data date);

După rularea acestor fraze SQL vor ap ărea la obiectul
Tables cele 5 tabele noi create.

Cea de-a doua metod ă de creare a tabelelor, mai exact
metoda grafic ă este și cea mai des folosit ă de toți utilizatorii.
Pentru a crea o tabel ă în modul Design se face op țiunea
. Va apărea o fereastr ă în care trebuie
completat ă denumirea câmpului, tipul de date asociat câmpului
respective și dac ă exist ă observa ții.

Vom exemplifica decât crearea tabelei Facultate. Dup ă
completarea denumirii câmpur ilor în zona Field Name și a tipurilor
de date în zona Data Type vom seta cheia primar ă. Acest lucru se
face pozi ționându-ne cu cursorul de la mouse pe partea din
stânga câmpului corespunz ător cheii primare (în cazul nostru
CodFac), se apas ă clic dreapta și se face op țiunea Primary Key.

Un limbaj pentru baze de date rela ționale

72 Proiectul pentru Înv ățământul Rural

Se salveaz ă tabela cu un nume dat de utlizator.

4.4.3. Salvarea unei tabele

O tabelă se salveaz ă cu opțiunea Save din meniul File, sau
printr-un clic pe simbolul
din bara de instrumente. Va ap ărea un
mesaj pentru confirmarea salv ării tabelei.

Aceeași pași trebuie urma ți și pentru celelalte tabele.

În final, partea de obiecteTables va ar ăta astfel:

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 73

4.4.4. Ștergerea unei tabele

Ștergerea unei tabele se face cu comanda DROP TABLE.
Sintaxa acestei comenzi în limbajul SQL standard este:

DROP TABLE nume_tabel ă

Exemplu :
Ștergerea tabelei Note se face astfel:

drop table Note;

Ștergerea unei tabele în modul gr afic se face astfel: ne
poziționăm în obiectul Tables, unde sunt afi șate toate tabelele din
baza de date, ap ăsăm clic dreapta de la m ouse pe tabelul dorit
pentru ștergere și facem op țiunea Delete.

Va apărea un mesaj de confirmare:

Se va ap ăsa butonul Yes dac ă se dore ște într-adev ăr
ștergerea tabelei sau se apas ă butonul No dac ă se dore ște
revenirea asupra opera ției de ștergere.

Un limbaj pentru baze de date rela ționale

74 Proiectul pentru Înv ățământul Rural

4.4.5. Modificarea structurii unei tabele

Modificarea structurii unei tabel e în limbajul SQL standard
se face cu comanda ALTER TABLE. Aceast ă comand ă este
folosită pentru a ad ăuga coloane la tabele de baz ă din baza de
date sau pentru a șterge anumite constrângeri.
O nouă coloană adaugat ă prin aceast ă comand ă va avea
valoarea null în toate înregistr ările care existau în tabel ă.

Sintaxa acestei comenzi este:
ALTER TABLE nume_tabela
ADD coloana_n descriere_n [DROP constrangere]

Exemplu :

Adăugarea câmpului Ora de tip integer tabelei Note se face astfel:

alter table Note add Ora integer;

Modificarea structurii unei tabel e în modul grafic se face
astfel: ne pozi ționăm în obiectul Tables, unde sunt afi șate toate
tabelele din baza de date, ap ăsăm clic dreapta de la mouse pe
tabelul dorit pentru modificare și facem op țiunea Design. Va
apărea o fereastr ă cu structura tabelei. Se vor face modific ările
dorite și apoi se salveaz ă tabelul.

4.5. Modific ări ale datelor în SQL

4.5.1. Inserarea de noi linii într-o tabel ă

Comanda INSERT care permite in serarea de noi linii într-o
tabelă are urm ătoarea sintax ă simplificat ă în limbajul SQL
standard:

INSERT INTO nume_tabela [(nume_coloana, …)]
VALUES (valoarea_coloana_1, va loare_coloana_2,…)

Această comand ă ne permite inserarea manual ă de noi
înregistrări. Dacă este prezent ă lista de coloane (nume_coloana,
…) înseamn ă că se dau doar valori pentru aceste coloane, pentru
celelalte asignându-se valori de null.

Exemplu :

Introducerea unor înregistr ări in tabela Facultate se face astfel:

insert into Facultate values
(1,’Electrotehnica’, ’Noul Local’,’’),
(2,’Energetica’,’Noul Local’,’’),

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 75

(3,’Automatica’,’Noul Lo cal’,’Dumitru Popescu’),
(4,’Electronica’,’Leu’,’’), (5,’Aeronave’,’Polizu’,’’), (6,’Mecanica’,’Noul Local’,’’), (7,’Transporturi’,’Noul Local’,’’);

După rularea aceste fraze SQ L, tabela Facultate va ar ăta
astfel:

Dacă un câmp de tip integer nu con ține nici o valoare se va
scrie NULL, iar dac ă este de tip text se va l ăsa spațiu.

Inserarea datelor într-un tabel în modul grafic se face astfel:
ne poziționăm în obiectul Tables, unde sunt afi șate toate tabelele
din baza de date, ap ăsăm clic dreapta de la mouse pe tabelul în
care dorim s ă introducem date și facem op țiunea Open. Va ap ărea
o fereastr ă cu datele deja existente în tabel ă. Se vor face
inserările de date dorite și apoi se salveaz ă tabelul.

4.5.2. Ștergerea unor linii dintr-o tabel ă

Sintaxa simplificat ă a comenzii SQL în limbajul standard
care șterge liniile dintr-o tabel ă este urm ătoarea:

DELETE FROM nume_tabela
[WHERE conditie] [LIMIT numar_linii]

Efectul acestei comenzi este de ștergere a liniilor care
îndeplinesc condi ția din clauza WHERE. LIMIT se folose ște pentru
a specifica num ărul maxim de linii care se pot șterge cu acea
comandă. În cazul în care clauza WHERE lipse ște, toate liniile
tabelei vor fi eliminate.

Exemplu :

Ștergerea studen ților din tabela Studenti care au media mai mic ă
de 7.

Un limbaj pentru baze de date rela ționale

76 Proiectul pentru Înv ățământul Rural

delete from Studenti where medie<7;

Înainte:

După rularea acestei interog ări se va șterge înregistrarea a-
4-a, aceasta îndeplinind condi ția media<7.

Ștergerea datelor dintr-o tabel ă în modul grafic se face
astfel: ne pozi ționăm în obiectul Tables, unde sunt afi șate toate
tabelele din baza de date, ap ăsăm clic dreapta de la mouse pe
tabelul din care dorim s ă ștergem anumite date și facem op țiunea
Open. Va ap ărea o fereastr ă cu datele existente în tabela
respectiv ă. Pentru a șterge o înregistrare ne pozi ționăm în partea
stângă a înregistr ării dorite pentru ștergere, ap ăsăm clic dreapta al
mouse-ului și facem op țiunea Delete Record.
Va apărea un mesaj de confirmare:

Se va ap ăsa butonul Yes dac ă se dore ște într-adev ăr
ștergerea înregistr ării respective sau sa apas ă butonul No dac ă se
dorește revenirea asupra opera ției de ștergere.

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 77

4.5.3. Modificarea unor linii dintr-o tabel ă

Sintaxa simplificat ă a comenzii SQL în limbajul standard
care modific ă liniile dintr-o tabel ă este urm ătoarea:

UPDATE nume_tabela SET colana1=valoare1,
coloana2=valoare2, …. [WHERE conditie] [LIMIT numar_linii]

Efectul acestei comenzi este de actualizare a toturor liniilor
care îndeplinesc condi ția din clauza WHERE, sau a tuturor liniilor
din tabel ă, în cazul în care lipse ște aceast ă clauză. Noile valor
sunt date de clauza SET.

Exemplu :

1. Modificarea numelui studentului cu CNP=333333, din Cornel în
Vasilescu.

update StudPersonal set nume=’V asilescu’ where CNP=333333;

Tabela StudPers înainte:

Tabela StudPers dup ă:

Un limbaj pentru baze de date rela ționale

78 Proiectul pentru Înv ățământul Rural

2. Mărirea tuturor burselor studen ților cu 10%.

update Studenti set bursa=bursa*1,1;

Tabela Studenti înainte:

Tabela Studenti dup ă:

Modificarea datelor dintr-un tabel în modul grafic se face
astfel: ne pozi ționăm în obiectul Tables, unde sunt afi șate toate
tabelele din baza de date, ap ăsăm clic dreapta de la mouse pe
tabelul dorit pentru modificare și facem op țiunea Open. Va ap ărea
o fereastr ă cu datele deja existente în tabel ă. Se vor face
modificările asupra datelor dorite și apoi se salveaz ă tabelul.

Teste de autoevaluare

4. Care sunt opera țiile care se pot efectua în cadrul unei baze de
date?

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 79

4.6. Limbajul de cereri în SQL

Regăsirea datelor din una sau mai multe tabele se face cu
comanda SELECT. Sintaxa simplificat ă a acesteia este:

SELECT [DISTINCT] lista_rezultat FROM tabela sau tabele [WHERE conditie] [GROUP BY coloana1, coloana2….] [HAVING conditie_de_grup] [ORDER BY coloana1 [ASC|DESC],…]

După cum se observ ă doar clauzele SELECT și FROM sunt
obligatorii, celela lte reprezentând op țiuni.

4.6.1. Cereri simple

Cea mai simpl ă cerere este cea prin care se reg ăsesc toate
informațiile dintr-o tabel ă. În acest caz, simbolul * plasat lâng ă
clauza SELECT ține loc de lista tuturor coloanelor unei tabele.
Clauza FROM con ține numele tabelei.

Exemplu :

1. Selectarea tuturor informa țiilor din tabela Facultati.

select * from Facultate;

Această interogare se face în modul grafic astfel: ne
poziționăm în partea de Queries și facem op țiunea
pentru crearea manual ă de interog ări sau
pentru utilizarea wizardului.
Vom exemplifica realizarea unei interog ări în Design View,
acest lucru fiind posibil ap ăsând dublu clic pe op țiunea
.

Un limbaj pentru baze de date rela ționale

80 Proiectul pentru Înv ățământul Rural
Va apărea o fereastr ă în care sunt afi șate toate tabelele din
baza de date.

Vom alege acele tabele neces are pentru interogare. De
exemplu, vom realiza o interogare care dup ă rulare îmi va afi șa
toate înregistr ările din tabela Facult ate. Vom alege tabela
Facultate și în partea de jos alegem ce câmpuri doresc s ă fie
afișate după rularea interog ării.
Caracterul * reprezint ă toate câmpurile dintr-o tabel ă.

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 81

Pentru rularea efectiv ă a interog ării se apas ă butonul Run
. Rezultatele ob ținute în urma rul ării vor ap ărea într-o fereastr ă
astfel:

Pentru orice tip de interogare pa șii care trebuie urma ți de
utilizatori sunt aceea și. Cei prezenta ți mai sus.

2. Selectarea tuturor informa țiilor din tabela Studenti.

select * from Studenti;

În cazul în care se doresc reg ăsite doar o parte a
coloanelor unei tabele acestea s unt enumerate în clauza SELECT.

Exemplu :

Selectarea anului și a mediei din tabela Studenti.

select An, Media from Studenti;

Un limbaj pentru baze de date rela ționale

82 Proiectul pentru Înv ățământul Rural

În clauza SELECT pot fi prezente, pe lâng ă nume de
coloane, o serie de alte construc ții, cum ar fi:

a. Expresii aritmetice

Operatorii care pot fi utiliza ți sunt cei uzuali: +,-,*,/
paranteze. De remarcat c ă o expresie care con ține o valoare nul ă
se evalueaz ă la NULL.

Exemplu :

Afișarea mediei, bursa, a bursei+1 și a (bursei+1)*100 din tabela
Studenti.

select Media, bursa, bursa+1,( bursa +1)*100 from Studenti;

b. Alias de colan ă

În cazul în care clauza SELECT con ține expresii, numele
coloanelor din rezultat sunt date de acestea. Dac ă se dore ște ca
în rezultat coloana respectiv ă să aibă alt nume, acesta se poate
specifica cu AS nume_nou.

Exemplu :
Afișarea numelui studentului cu denumirea Nume_Student, a
prenumelui cu de numirea Prenume_Studen t din tabela
StudPersonal.

select nume as Nume_Student, prenume as Prenume_Student
from StudPersonal;

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 83

Dacă se dore ște ca aliasul s ă conțină spații el trebuie pus
între apostrofi:

select CNP, nume as ‘Nume St udent’, prenume as ‘Prenume
Student’ from StudPersonal;

c. Constante (literali)

Dacă în lista SELECT se g ăsesc și constante atunci pe
acele coloane toate liniile rezultatului vor con ține valorile
respective:

Exemplu :

Selectarea numelui student ului, textul ‘este n ăscut la data de’ și
DataNasterii din t abela StudPersonal.

select nume, ‘este nascut la date de’, DataNasterii from StudPersonal;

Un limbaj pentru baze de date rela ționale

84 Proiectul pentru Înv ățământul Rural

4.6.2. Clauza DISTINCT

În cazul cererilor de pân ă acum din fiecare linie a tabelei
rezultă o linie a rezultatului, chiar dac ă uneori unele linii sunt
identice, ca în cazul urm ător:

Exemplu :

Afișarea codului numeric al facult ății pentru care exist ă studenți în
tabela Studenti;

select CodFac from Studenti;

Pentru a elimina liniile duplicat ale unui rezultat se folose ște
clauza DISTINCT care apare în tre cuvântul cheie SELECT și lista
de elemente ale rezultatului.

select distinct CodFac from Studenti;

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 85

4.6.3. Clauza ORDER BY

Ordinea în care apar liniil e unui rezultat este dat ă de modul
în care un sistem de gestiune stocheaz ă și regăsește informa ția în
tabele. Din aceast ă cauză în limbajul SQL exist ă posibilitatea de a
sorta liniile unui rezultat în func ție de necesit ățile utilizatorului.

Criteriile de sortare se define sc cu ajutorul clauzei ORDER
BY. Aceasta este în mod normal ultima clauz ă care apare într-o
cerere și poate con ține nume de coloane, a liasuri de coloane sau
numărul de ordine al coloanei în re zultat. Când sunt specificate
mai multe criterii ele se aplic ă de la stânga la dreapta.

Exemplu :

Afișarea CNP, nume, prenume, data na șterii din tabela
StudPersonal ordona ți după nume și prenume.
select CNP, Nume, Prenume, Da taNasterii from StudPersonal
order by nume, prenume;

După cum se poate observa ordinea de sortare implicit ă
este cea ascendent ă (crescătoare):

• Pentru numere – de la valoarea cea mai mic ă la cea mai
mare

• Pentru șiruri de caractere – ordinea este cea lexicografic ă,
din dicționar

• Pentru date calendaristice – de la cea mai veche dat ă la cea
mai nouă
Inversarea ordinii implicite se po ate face pentru fiecare criteriu
de sortare în parte folosind cuv ântul cheie DESC (descendent)
plasat dup ă criteriul respectiv.

Un limbaj pentru baze de date rela ționale

86 Proiectul pentru Înv ățământul Rural

O problem ă important ă este tratarea valorilor nule (NULL) de
clauza ORDER BY. Aceste valori s unt considerate a fi mai mici
decât orice alt ă valoare, deci vor apare primele pentru sortarea
implicită și ultimele pentru sortarea descendent ă.
Exemplu :

Afișarea în ordine ascendent ă a rezultatului dup ă valoarea bursei
și o sortare descendent ă după codul studentului în tabela
Studenți.

select CodStud, Bursa from St udenti order by Bursa, CodStud
desc;

4.6.4. Clauza WHERE

Până acum, în afara cazurilo r în care se utilizeaz ă
DISTINCT, din fiecare linie a tabelei rezult ă o linie a rezultatului.
Prin folosirea clauzei WHER E se poate specifica o condi ție care
indică liniile din tabela care vor avea asociat ă câte o linie din
rezultat.

Exemplu :

Afișarea media și valoarea bursei pentru studen ții de la facultatea
cu codul 3 din tabela Studenti.

select Media, Bursa from Studenti where CodFac=3;

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 87

Operatorii care se pot folosi sunt cei obi șnuiți:
• Egal: =
• Mai mic, mai mic sau egal: <, ≤
• Mai mare, mai mare sau egal: >, ≥
• Diferit: ≠, !=

De asemenea se pot folosi paranteze și conectori logici:
• AND sau && (pentru și)
• OR sau || (pentru sau)
• NOT sau ! (pentru negare, inversarea condi ției)

Exemplu :

Afișarea codului facult ății, media, grupa, anul și valoarea bursei
pentru studen ții care au bursa egal ă cu 4400000 și media mai
mare sau egal ă cu 9 sau sunt la facultatea cu codul 3.

select CodFac, Media, Grupa, An, Bursa from Studenti where
(Bursa=4400000 and media>=9) or CodFac=3;

Pe lâng ă operatorii de mai sus care sunt prezen ți în
majoritatea limbajelor de programare exist ă însă în SQL patru
operatori specifici. Ace știa au fost introdu și pentru a simplifica
anumite categorii de cereri s au pentru a specifica condi ționări care
nu pot fi exprimate prin operatori obi șnuiți.

Acești operatori sunt:

a. Operatorul BETWEEN

Sintaxa : between valoare_initiala and valoare_finala

Operatorul between indic ă o plajă de valori incluzând
valorile din capetele acestuia, ce le indicate. Este un operator
derivat, astfel de condi ții putând fi scrise folosind >=, AND,<= și a
fost introdus pentru ca cererile s ă fie mai apropiate de exprimarea
în limba englez ă.

Un limbaj pentru baze de date rela ționale

88 Proiectul pentru Înv ățământul Rural

Exemplu :

Afișarea codului facult ății, media, grupa pentru studen ții care au
media cuprins ă între 8 și 9 inclusiv.

select CodFac, Media, Grupa fr om Studenti where media between
8 and 9;

b. Operatorul IN

Sintaxa : IN (v1,v2,…vk)

Operatorul IN indic ă apartenen ța la o mul țime de valori
(v1,v2,…vk). Este de asemenea un operator derivat, dar este foarte util pentru simplificarea scri erii cererilor în cazul în care
mulțimea con ține un num ăr mare de valori.

Exemplu :
Afișarea codului facult ății, codul studentului, grupa, bursa pentru
studenții care au codul faculta ții 1 sau 3.

select CodFac, CodStud, Gru pa, Bursa from Studenti where
CodFac in (1,3);

c. Operatorul IS NULL

Operatorul IS NULL a fost in trodus pentru a se putea testa
dacă o valoare a unei expresii este nul ă, deoarece valorile nule nu
pot fi detectate cu operatori de compara ție obișnuiți.

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 89

Exemplu :

Afișarea codului facult ății, codul studentului, grupa pentru studen ții
care nu au bursa.

select CodFac, CodStud, Grupa fr om Studenti where bursa is null;

Pentru negarea acestui operator s-a f ăcut făcut și o
excepție de la sintaxa standard a expresiilor. Astfel în loc de “not
is null”, sintaxa SQL prevede forma IS NOT NULL.

Exemplu :

Afișarea codului facult ății, codul studentului, grupa pentru studen ții
care au bursa.

select CodFac, CodStud, Grupa fr om Studenti where bursa is not
null;

d. Operatorul LIKE

Sintaxa : LIKE ‘sablon’

Operatorul LIKE a fost intr odus pentru a se putea testa
potrivirea valorii unei expresii cu un șablon. Șablonul poate
conține caractere care vor fi c ăutate așa cum sunt și caracterele
speciale:
• % însemnând orice șir de caractere (inclusiv unul vid)
• _ însemnând orice caracter

De exemplu 'I_S%L' este un șablon pentru un șir de cel
puțin 4 caractere care începe cu liter a I, are al treilea caracter S și

Un limbaj pentru baze de date rela ționale

90 Proiectul pentru Înv ățământul Rural

ultimul caracter este L. Cu acest șablon se potrivesc de exemplu
șirurile: INSTABIL, IXSTL, IOSL.

Operatorul se poate folosi incl usiv pentru expresii de alt tip
decât șirurile de caractere, valoarea acestora fiind întâi convertit ă
la șir de caractere și apoi verificat ă potrivirea cu șablonul.

Exemplu :

1. Afișarea codul studentului, nu melui, prenumelui, data na șterii
pentru studen ții care au numele format din 5 litere din tabela
StudPeronal.

select CodStud, Nume, Prenume, Da taNasterii from StudPersonal
where nume like’_____’;

2. Afișarea codul studentului, nu melui, prenumelui, data na șterii
pentru studen ții care au prenumele care începe cu litera A din
tabela StudPeronal.

select CodStud, Nume, Prenume, Da taNasterii from StudPersonal
where Prenume like ’A%’;
4.6.5. Func ții de grup. Clauzele GROUP BY și HAVING

Există multe cazuri în care se dore ște obținerea de date
statistice din informa țiile conținute în baza de date. Pentru aceasta
se folosesc func țiile de grup, care pe baza înregistr ărilor din
întreaga tabel ă sau a celor care fac parte dintr-un grup – în cazul
existenței clauzei GROUP BY – calculeaz ă valoarea statistic ă
respectiv ă.

Principalele func ții de grup sunt:

a. Funcția COUNT (num ărare) având mai multe forme:

COUNT(*) întoarce num ărul de înregistr ări din grup
COUNT(expr) întoarce num ărul de valori nenule pentru expresia
argument COUNT(DISTINCT expr) întoarce num ărul de valori distincte
pentru expresia argument

b. Funcția AVG (medie)

AVG(expr) întoarce media aritmetic ă a valorilor unei expresii

c. Funcția MIN (valoarea minim ă)

MIN(expr) întoarce valoarea minim ă a unei expresii

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 91

d. Funcția MAX (valoarea maxim ă)

MAX(expr) întoarce valoarea maxim ă a unei expresii
Funcțiile Min și MAX se pot aplica și șirurilor de caractere, în acest
caz se folose ște ordinea lexicografic ă.

e. Funcția SUM (suma valorilor)

SUM(expr) întoarce suma valo rilor unei expresii sau NULL în
cazul în care în grupul pentru care se calculeaz ă suma este vid.
Valorile nule nu sunt luate în c onsiderare la calcularea sumei.

Așa cum am men ționat, în cazul în care cererea nu con ține
clauza GROUP BY valoarea func țiilor este calculat ă pentru
întreaga tabel ă specificat ă în clauza FROM.

Exemplu :

Afișarea valorii minime, maxime și media pe coloana media, suma
pe coloana bursa și numărul de înregistr ări din tabela Studenti.

select min(Media), max(Media), av g(Media), sum(Bursa), count(*)
from Studenti;

Funcțiile de grup se pot folosi și în conjunc ție cu celelalte
clauze discutate anterior.

Exemplu :

Afișarea mediei mediilor studen ților de la facultatea cu codul 3.

select avg(Media) from Studenti where CodFac=3;

Un limbaj pentru baze de date rela ționale

92 Proiectul pentru Înv ățământul Rural

4.6.6. Clauza GROUP BY

Clauza GROUP BY se folose ște pentru a grupa
înregistrările pe baza unor criterii în scopul calcul ării de valori
statistice pentru fiecare grup în parte . În acest caz rezultatul cererii
va conține câte o linie pentru fiecare grup identificat.

Sintaxa : GROUP BY coloana1 [, coloana2…]

Exemplu :

Afișarea grupat ă a înregistr ărilor din tabela Studenti dup ă valoarea
coloanei bursa și obținerea unui rezultat con ținând valoarea
bursei, num ărul de studen ți având acea burs ă și suma burselor din
fiecare grup.

select Bursa,count(*),sum(Bursa) from Studenti group by Bursa ;

În cazul în care în GROUP BY apar mai multe coloane, un
grup va fi construit din toate înregistr ările care au valori comune
pe toate coloanele specificate.

Exemplu :

select CodFac,Bursa,sum(Bursa) from Studenti wh ere CodFac in
(2, 3) group by CodFac,Bursa;

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 93

Atenție: în cazul folosirii func țiilor de grup în clauza
SELECT nu pot apare al ături de acestea decât valori care sunt
constante pentru fiecare grup în parte- în principal numele coloanelor dup ă care s-a f ăcut gruparea.

De exemplu, cererile urm ătoare sunt gre șite:

select CodFac,max(Media), avg(Media) from Studenti;

select CodStud, Bursa, sum( Bursa) from Studenti group by
CodFac;

4.6.7. Clauza HAVING

Dacă WHERE introduce o condi ție de filtrare a
înregistrărilor, HAVING face acela și lucru pentru grupuri: doar
grupurile care îndeplinesc condi ția conținută în aceast ă clauză vor
avea o linie în rezultatul cererii.
Condiția specificat ă prin HAVING este o expresie logic ă
incluzând func ții de grup sau constante la nivel de grup.

Exemplu :

O cerere în dou ă variante: f ără și apoi cu o clauz ă HAVING care
elimină o parte din grupuri.

select CodFac, count(*) as Nu marStudenti, avg(Media) as
MediaFacultatii from Studenti group by CodFac;

select CodFac, count(*) as Nu marStudenti, avg(Media) as
MediaFacultatii from Studenti group by CodFac having avg(Media)>8;

Un limbaj pentru baze de date rela ționale

94 Proiectul pentru Înv ățământul Rural

4.6.8. Cereri con ținând mai multe tabele

Operația prin care se ob ține un rezultat pe baza datelor din
mai multe tabele se nume ște JOIN. Pentru a se putea efectua un
JOIN este în general necesar ca tabelele s ă aibă coloane comune,
cum este cazul CodFac care se g ăsește atât în tabela Studenti,
cât și în tabela Facultate.

În cazul în care clauza FROM sunt specificate mai multe
tabele toate celelalte clauze sunt evaluate pornind de la produsul
cartezian al tabelelor. Acesta este ob ținut (teoretic) prin
concatenarea fiec ărei linii a unei tabele cu fiecare dintre liniile
celorlalte tabele.
De exemplu, în tabelele de ma i sus, produsul cartezian va
conține 7X7=49 lini, deoarece sunt 7 linii în tabela Studenti și 7
linii în tabela Facultate.

Pentru eliminarea liniilor inconsistente – cum este
concatenarea înregistr ării unui student al facult ății 1 cu înregistrrea
facultății 2 – este necesar ca în clauza WHERE s ă existe a șa-
numita condiție de join . În cazul existen ței de coloane comune
între tabele, aceasta este o condi ție de egalitate a valorilor acelor
coloane.

Exemplu :

1. Afișarea numelui și prenumelui studentului (din tabela
StudPers) și a grupei din care face parte, anul și media (informa ții
aflate în tabela Studenti).

select Nume,Prenume,Grupa,An,Media
from Studenti,StudPersonal
where Studenti.CodStud= StudPersonal.CodStud;

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 95

Condiția de JOIN este Studenti.C odStud=StudPersonal.CodStud,
unde construc ția tabela.coloana a fost folosit ă deoarece câmpul
CodStud este în ambele tabele cu acela și nume.

2. Afișarea numelui facult ății (din tabela Facultate), a numelui și a
prenumelui studentului (din tabela StudPers) și a grupei din care
face parte, anul și media (informa ții aflate în tabela Studenti).

select Denumire,Nume,Prenume,Grupa,An,Media from Facultate,St udenti,StudPersonal
where Studenti.CodStud= StudPersonal.CodStud and
Facultate.CodFac=Studenti.CodFac;

2. Afișarea numelui facult ății (din tabela Facultate), numelui și
prenumelui studentului (din tabela StudPers) și a grupei din care
face parte, anul și media (informa ții aflate în tabela Studenti)
grupate pe facult ăți.

Vom folosi alia și pentru numele tabelelor.

select Denumire,Nume,Prenume,Grupa,An,Media from Facultate F,St udenti S,StudPersonal P
where S.CodStud=P.CodSt ud and F.CodFac=S.CodFac
order by Denumire;

F, S, P sunt alia șii tabelelor (nu este obligatorie folosirea
cuvântului cheie as). Folosirea numelui de tabel ă sau a aliasului
ca prefix pentru un nume de coloan ă este obligatorie doar în cazul
în care pot ap ărea confuzii.(coloane cu acela și nume în mai multe
tabele), dar nu va fi semnalat ă eroare dac ă se folosesc și pentru
celelalte coloane.

Un limbaj pentru baze de date rela ționale

96 Proiectul pentru Înv ățământul Rural

3. Afișarea numelui studen ților care au nota la materia cu numele
Analiză.

select Nume, Denumire, Nota from Studenti S, Materii M, Note N where S.CodStud=N.CodStud a nd M.CodMaterie=N.CodMaterie
and M.Denumire=’Analiza’;

Pentru acest exemplu vom utiliza și modul grafic care va genera
rezultatul de mai sus.

Pasul 1 :
Ne poziționăm pe obiectul Queries și se va deschide urm ătoarea
fereastră.

Pasul 2 :
Apăsăm dublu clic pe op țiunea Create query in Design view și se
va deschide fereastra care con ține toate tabelele din baza noastr ă
de date:

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 97

Pasul 3 :
Alegem tabelele care ne sunt neces are pentru interogare. În cazul
nostru StudPersonal, Materii și Note, ap ăsând pe rând butonul
Add.

Pasul 4 :
Se aleg pentru fiecare tabel ă câmpurile care trebuie afi șate și se
setează un criteriu dac ă acesta exist ă.

Un limbaj pentru baze de date rela ționale

98 Proiectul pentru Înv ățământul Rural

Pasul 5 :
Se apasă ! (Run) și se va afi șa rezultatul frazei SQL.

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 99

Lucrarea de verificare a cuno ștințelor 1

1.Creați baza de date Universitate.
2.Creați baza de date Companie

Lucrarea de verificare a cuno ștințelor 2

1. Creați tabelele din baza de date Universitate în modul grafic.
2. Creați tabelele din baza de date Companie. Structura bazei de
date Companie este cea proiectat ă în capitolul anterior.

Lucrarea de verificare a cuno ștințelor 3

1. Creați în baza de date Universitate o tabel ă suplimetar ă numită
Test cu un câmp numit testare cu tipul de date text (în modul grafic). 2. Modifica ți structura tabelei Test ad ăugând un câmp numit Nou
cu tipul de date asociat In teger (în modul grafic).
3. Ștergeți tabela Test din baza de dat e Universitate (în modul
grafic).
Lucrarea de verificare a cuno ștințelor 4

Introduce ți date în tabelele din baza de date Companie, folosind
modul grafic, dar și modul SQL view.

Lucrarea de verificare a cuno ștințelor 5

Realizați în modul SQL View și în modul grafic urm ătoarele
interogări:
1. Ștergeți din baza de date Universitate materia care este
predată
de profesorul M.Olteanu.
2. Ștergeți din baza de date Universitate to ți studenții care s-au
născut în ora șul Constan ța.
3. Ștergeți dintr-un tabel al bazei de date Companie, 2
înregistrări, după un criteriu ales de Dvs.

Lucrarea de verificare a cuno ștințelor 6

Realizați în modul SQL View și în modul grafic urm ătoarele
interogări:

1. Modifica ți în baza de date Universitate Adresa la facult ăți cu
denumirea “Splaiul Independen ței”.
2. Modifica ți anul de studiu al tuturor studen ților care au media

Un limbaj pentru baze de date rela ționale

100 Proiectul pentru Înv ățământul Rural
>5, aceștia fiind considera ți promova ți în anul de studiu curent.
3. Modifica ți un tabel al bazei de date Companie, dup ă un criteriu
ales de Dvs.

Lucrarea de verificare a cuno ștințelor 7

Realizați în modul SQL View și în modul grafic urm ătoarea
interogare:

1. Afișați toate datele stocate în tabela StudPers.

Lucrarea de verificare a cuno ștințelor 8

Realizați în modul SQL View și în modul grafic urm ătoarele
interogări:

1. Afișați notele și data efectu ării testării pentru toate
înregistrările din tabela Note.
2. Afișați numele facult ății și adresa din tabela Facultati
folosind alia șii de coloan ă ‘Nume facultate’ și ‘Adresă
facultate’.
3. Afișați câmpurile nume facultate, nume decan și între
acestea textul ‘are decanul ’ din tabela Facultate.

Lucrarea de verificare a cuno ștințelor 9

Realizați în modul SQL View și în modul grafic urm ătoarele
interogări:
1. Afișați notele distincte care exist ă salvate în baza de date.
2. Afișați în ordine ascendent ă în funcție de data na șterii toți
studenții din tabelul StudPers.
3. Afișați în ordine descendent ă toate înregistr ările din tabela
Note, ordona ți după ID-ul facult ății.
4. Afișați toate materiile din anul 1.
5. Afișați toți studenții care sunt n ăscuți în Bucure ști sau în
județul Teleorman.
6. Afișați toate grupele cu studen ții care au media între 7 și 9
sau apar țin de facult ățile care au codul facult ății 1 sau 2.
7. Afi șați toate numele studen ților care începe cu A și
prenumele cu I.

Lucrarea de verificare a cuno ștințelor 10

Realizați în modul SQL View și în modul grafic urm ătoarele
interogări:
1. Afișați numărul de facult ăți din universitate.
2. Afișați care este cea mai mic ă și cea mai mare not ă
obținută de studen ții de la facultatea cu id-ul 3.
3. Afișați nota ob ținută de studentul cu numele Ionescu la
materia Analiz ă.
4. Afi șați grupele care exist ă în fiecare facultate grupate pe
ani.

Un limbaj pentru baze de date rela ționale

Proiectul pentru Înv ățământul Rural 101

Răspunsuri și comentarii la întreb ările din testele de
autoevaluare

Întrebarea 2.

Operatorii din algebra rela ționlă sunt AND, OR, XOR, =, ≠, IS
NULL, IS NOT NULL. În limbaj ul standard SQL mai exist ă și sunt
folosiți și alți operatori ca: BETWEEN, IN etc.

Întrebarea 3.

Termenul SQL reprezint ă o prescurtare a Structured Query
Language. El a fost utilizat ini țial de c ătre firma IBM pentru
produsul DB2, limbajul de interogare al bazelor de date rela ționale
SQL a devenit la mijlocul deceniului trecut un standard în domeniu.

Întrebarea 4.

Operații de baz ă care se pot efectua în cadrul unei baze de date
sunt:
• Crearea/ ștergerea unei tabele
• Inserarea de noi linii intr-o tabel ă
• Ștergerea unor linii dintr-o tabel ă
• Modificarea unor linii dintr-o tabel ă
• Listarea selectiv ă a datelor din una sau mai multe tabele

Indicații la problemele propuse

Problemele propuse în lucr ările de verificare se fac dup ă modelele
de exemple prezentate în unitatea de înv ățare sau dup ă tipicul
acestora.

Un limbaj pentru baze de date rela ționale

102 Proiectul pentru Înv ățământul Rural

Bibliografie:

• Cârstoiu, Dorin, Baze de date rela ționale, Editura Printech,
1999
• Rădulescu, Florin, Baze de date în Internet, Editura
Printech, 2000
• Ionescu, Felicia, Baze de date rela ționale și aplicații,
Editura Tehnic ă, 2004
• Baltac, Vasile, ECDL-Excel, Access, PowerPoint în 20 lec ții
și 75 de simul ări, Editura Andreco, 2003
• Browne, Allen, Balter Alison, Bazele Access 95 , Editura
Teora, 1999
• Pribeanu, Costin, Baze de date și aplicații, Editura
MatrixRom, 2000
• Pascu, C., Pascu A., Totul despre SQL , Editura Tehnic ă,
1994

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 103 Unitatea de înv ățare Nr. 5

CONSTRUIREA INTERFE ȚELOR CU AJUTORUL FORMULARELOR
ÎN MICROSOFT ACCESS

Cuprins Pagina

Obiectivele unit ății de învățare nr. 5 104
5.1. Ce este un formular? 105 5.2. Lucrul cu formularele 105 5.2.1. Desch iderea unui formular 105
5.2.2. Cr earea unui formular 105
5.2.4. Utilizarea unui formular
pentru a introduce și a modifica date în tabel ă 109
5.2.4. Parcurgerea înregistr ărilor utilizând formularele 110
5.2.5. Ad ăugarea și modificarea textului în antet și subsol 110
5.2.6. Ștergerea unui formular 112
5.3. Salvarea și închiderea unui formular 112
Lucrare de verificare a cuno ștințelor 113
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 114
Bibliografie 114

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

104 Proiectul pentru Înv ățământul Rural Încă de la început doresc s ă vă felicit pentru parcurgerea cu
succes a primelor patru unit ăți de învățare și să vă urez bun venit la
studiul acestei noi unit ăți de înv ățare. În primele patru unit ăți de
învățare am realizat o scurt ă introducere în acest amplu domeniu al
bazelor de date, am descris mai în det aliu ce este un sistem de baze
de date și în ce const ă el, am studiat și cum se creaz ă, analizeaz ă și
se proiecteaz ă corect o baz ă de date, dar am studiat și cum se
gestioneaz ă datele stocate în baza de date.

În aceast ă unitate de înv ățare nr. 5 vom studia cum se creaz ă,
se manipuleaz ă și se șterge un formular pentru introducerea datelor în
baza de date.

OBIECTIVELE unit ății de învățare nr. 5

Principalele obiective ale unit ății de învățare nr. 5 sunt:

După studiul unit ății de învățare nr. 5 vei fi capabil s ă demonstrezi c ă
ai dobândit cuno ștințe suficiente pentru a în țelege:

• ce este un formular

• la ce se folosesc formularele din Access

• cum se creeaz ă un formular pentru o tabel ă a bazei de date
Access

• cum se utilizeaz ă un formular pentru introducerea datelor într-o
tabelă și pentru modificarea datelor într-o tabel ă

• cum se salveaz ă un formular

• cum se șterge un formular

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 105

5.1. Ce este un formular?

Formularele (Forms) reprezint ă ferestrele primare folosite
pentru introducerea și afișarea datelor în Access. Formularele v ă
permit s ă prezenta ți datele într-o form ă c a r e î l s c u t e ște pe
utilizator de preocup ările legate de modul de stocare al acestora.
Se pot crea formulare diferite pentru utiliz ări diferite: introducerea
unor intregistr ări noi, editarea celor existente, numai pentru afi șare
sau formulare care func ționează pur și simplu ca ni ște casete de
dialog.
5.2. Lucrul cu formularele

5.2.1. Deschiderea unui formular
Dacă există deja creat un formular, acesta se poate
deschide prin ap ăsarea dublu clic pe respectivul formular din
obiectul Forms. Toate formularele create într-o baz ă de date se
vor găsi în obiectul Forms.

5.2.2. Crearea unui formular

Pentru a crea un formular nou vom alege obiectul Forms
din fereastra Database și se apeleaz ă meniul Insert cu op țiunea
Forms. Va ap ărea o fereastr ă cu mai multe tipuri de programe
wizard pentru formulare:

• Design View (modul proiectare) permite crearea tuturor
elementelor manual
• Form Wizard oferă posibilitatea control ării fiecărei etape a
procesului

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

106 Proiectul pentru Înv ățământul Rural

• AutoForm: Columnar (Configurare automat ă a formularului:
așezare în coloan ă) crează un formular cu co ntroalele aliniate
unul sub cel ălalt (configura ție corespunz ătoare pentru un
formular principal)
• AutoForm: Tabular (Configurare automat ă a formularului:
așezare tabelar ă) crează un formular cu controalele aliniate
unul lâng ă celălalt (configura ție corespunz ătoare pentru un
subformular)
• AutoForm: DataSheet (Configurare automat ă a formularului:
modul DataSheet) creaz ă un formular având modul de afi șare
prestabilit DataSheet (configura ție corespunz ătoare pentru
afișarea num ărului maxim posibil de înregistr ări deodat ă)
• Chart Wizard (program pentru reprezent ări grafice) creaz ă un
grafic. Pentru a ob ține un grafic tip ărit, se folose ște un raport în
loc de formular
• PivotTable Wizard (program pentru tabele pivot) creaz ă un
formular pentru afi șarea datelor din Excel.
Sub lista programel or wizard se afl ă
o caset ă cu listă
derulantă în care trebuie s ă selectați tabelul sau interogarea care
va servi ca surs ă de date pentru formular. În cazul unui formular
casetă de dialog, caseta pentru preciz area sursei de date poate fi
lăsată necompletat ă.

Exemplu :
Vom exemplifica crearea un ui formular nou pentru
introducerea datelor în tabela Facultate, folosind op țiunea Create
by using wizard, urmând pa șii necesari pentru a crea formularul
dorit.
Pas 1 :
Se alege tabela c ăreia dori ți să îi creați formularul și se
apasă butonul Next.

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 107

Pas 2 :
În aceast ă etapă se alege modul în care s ă fie afișate atributele în
formular și se apas ă Next

Pas 3 :
În aceast ă etapă se pot alege din stilurile pr edefinite, stilul pe care
îl doriți să îl conțină formularul.

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

108 Proiectul pentru Înv ățământul Rural

Pas 4:
Aceasta este etapa final ă, în care v ă alageți numele dorit penrtu
formular și dacă doriți să introduce ți date în tabel ă cu ajutorul
formularului.

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 109

Pentru a salva un formular se face op țiunea Save din
meniul File.

5.2.3. Utilizarea unui formular
pentru a introduce și a modifica date în tabel ă

Având deschis ă forma, pute ți introduce și modifica date în
tabela corespunz ătoare formularului.

Pentru a introduce date în tabel ă cu ajutorul formularului
trebuie ap ăsat butonul
. Acesta ne va pozi ționa pe o nou ă
înregistrare și vom putea introduce noile date. Ne vom pozi ționa
cu cursorul în câmpurile de editare și vom introduce datele
corespunz ătoare noii înregistr ări.
Pentru a modifica date în tabel ă cu ajutorul formularului
trebuie s ă ne pozi ționăm pe înregistrarea dorit ă cu ajutorul
mouse-ului și apoi se modific ă datele dorite.

Exemplu :
De exemplu, dorim ca la înregistrarea de mai sus s ă
completăm numele decanului. Pentru aceasta ne pozi ționăm pe
respectiva înregistrare și apoi în dreptul atributului NumeDecan
introducem numele dorit. Dup ă realizarea modific ărilor, prin
închiderea formularului, modific ările vor fi actualizate în tabel ă.

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

110 Proiectul pentru Înv ățământul Rural

5.2.4. Parcurgerea înregistr ărilor utilizând formularele

Cu ajutorul formularelor put em parcurge toate înregistr ările
unei tabele. Acest lucru îl putem realiza cu ajutorul butoanelor
existente în partea de jos a formularului.

• Butonul
se folose ște pentru pozi ționarea pe prima
înregistrare a tabelei
• Butonul
se folose ște pentru reîntoarcerea la
înregistrarea anterioar ă
• Butonul
se folose ște pentru trecerea la înregistrarea
următoare
• Butonul
se folose ște pentru pozi ționarea pe ultima
înregistrare a tabelei
• Butonul
se folose ște pentru a ad ăuga o înregistrare
nouă.

5.2.5. Ad ăugarea și modificarea textului în antet și subsol

Pentru a putea face modific ări în cadrul unui formular, mai
exact dac ă dorim ad ăugarea unui text sau a unei imagini în antetul
sau subsolului unui formular este necesar s ă deschidem
formularul în modul Design al formularului ap ăsând butonul
sau făcând op țiunea Design View, care apare la
apăsarea clic dreapta pe respectivul formular.

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 111

Pe ecran va ap ărea constructorul de formulare în care
puteți modifica ceea ce dori ți. Va apărea și o bară de instrumente
corespunz ătoare constructorului de formulare, prin intermediul
căreia putem realiza diferite modific ări în formular.

Exemplu :
De exemplu, dorim s ă scriem în antet “Formular pentru
introducerea datelor “. P entru asta va trebui s ă facem loc în partea
antetului c ăsuței de text, tr ăgând efectiv cu mouse-ul antetul și
apoi în spa țiul creat introducem textul do rit. Pentru a introduce un
text trebuie ap ăsat butonul
de pe bara de instrumente. Dup ă
apăsarea acestui buton selecta ți locul unde dorim pozi ționarea
textului și apoi vom introduce textul.

După introducerea textul ui se salveaz ă forma pentru a
vedea modific ările făcute asupra ei.
Forma final ă a formularului este:

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

112 Proiectul pentru Înv ățământul Rural

Asemănător se poate modifica și subsolul formularului, sau
putem introduce imagini în formulare folosind comanda Insert-Picture.

5.2.6. Ștergerea unui formular

Putem șterge un formular prin mai multe metode. Primul
pas pentru orice metod ă este selectarea formularului dorit pentru
ștergere și apoi fie ap ăsăm butonul Delete din tastatur ă, fie
apăsând butonul
existent în parte de sus a ferestrei, fie
apăsând clic dreapta și făcând opțiunea Delete.
Pe ecran va ap ărea o caset ă de dialog în care se cere
confirmarea ștergerii formularului.

Apăsând butonul Yes se confirm ă ștergerea formularului,
iar apăsând No se renun ță la opera ția de ștergere.

5.3. Salvarea și închiderea unui formular

Pentru salvarea formularului sau a oric ărei modific ări făcute
asupra lui, se apas ă butonul Save
existent pe bara de
instrumente a aplica ției, sau făcând opțiunea Save din meniu.
Pentru închiderea formularului sau se apas ă butonul
din
partea dreapt ă a ecranului sau f ăcând opțiunea Close din meniu.

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 113

Î

Lucrare de verificare a cuno ștințelor

1. Crea ți un formular pentru introducerea datelor personale
despre studen ți pentru baza de date Universitate cu titlul
„Date personale studen ți” și salvați-l cu numele Personal.
2. Introduce ți două înregistr ări în tabela StudPersonal cu
ajutorul formularului creat la exerci țiul 1.

3. Modifica ți o înregistrare care deja exist ă în tabela
StudPersonal cu ajutorul fo rmularului creat la exerci țiul 1
și apoi închide ți formularul.

Teste de autoevaluare
1. Ce este un formular?

2. Care sunt opera țiile care se pot realiza asupra unor formulare?

3. Descrie ți tipurile de programe wiz ard disponibile pentru
crearea de formulare.

Construirea intefe țelor cu ajutorul formular elor în MICROSOFT Access

114 Proiectul pentru Înv ățământul Rural

Răspunsuri și comentarii la întreb ările din testele de
autoevaluare

Întrebarea 1.

Formularele (Forms) reprezint ă ferestrele primare folosite pentru
introducerea și afișarea datelor în Access.

Întrebarea 2.

Operațiile care se pot efectua asupra unor formulare sunt de
creare, de modificare, de salvare și de ștergere.

Întrebarea 3.

Răspunsul la aceast ă întrebare este mai amplu și este descris cu
amănuntul la începutul acestui capitol.

Indicații la problemele propuse

Problemele propuse sunt a șezate dup ă un exemplu. Fiecare
problemă propusă s e f a c e d u p ă modelul de exemplu prezentat
înaintea ei sau dup ă tipicul acesteia.

Bibliografie:

• Cârstoiu, Dorin, Baze de date rela ționale, Editura Printech,
1999
• Rădulescu, Florin, Baze de date în Internet, Editura
Printech, 2000
• Ionescu, Felicia, Baze de date rela ționale și aplicații,
Editura Tehnic ă, 2004
• Baltac, Vasile, ECDL-Excel, Access, PowerPoint în 20 lec ții
și 75 de simul ări, Editura Andreco, 2003
• Browne, Allen, Balter Alison, Bazele Access 95 , Editura
Teora, 1999
• Pribeanu, Costin, Baze de date și aplicații, Editura
MatrixRom, 2000
• Pascu, C., Pascu A., Totul despre SQL , Editura Tehnic ă,
1994

Rapoarte în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 115 Unitatea de înv ățare Nr. 6

RAPOARTE ÎN MICROSOFT ACCESS

Cuprins Pagina

Obiectivele unit ății de învățare nr. 6 116
6.1. Ce este un raport? 117 6.2. Lucrul cu rapoarte 117 6.2.1. Desch iderea unui raport 117
6.2.2. Crearea unui raport 117
6.2.3. Ad ăugarea și modificarea textului în antet și subsol 123
6.2.5. Ștergerea unui raport 125
6.3. Salvarea și închiderea unui raport 125
Lucrare de verificare a cuno ștințelor 125
Răspunsuri și comentarii la întreb ările din testele de autoevaluare 127
Biblliografie 127

Rapoarte în MICROSOFT Access

116 Proiectul pentru Înv ățământul Rural Înc ă de la început doresc s ă vă felicit pentru parcurgerea cu
succes a primelor cinci unit ăți de învățare și să vă urez bun venit la
studiul acestei noi unit ăți de înv ățare. În prim ele cinci unit ăți de
învățare am realizat o scurt ă introducere în acest amplu domeniu al
bazelor de date, am descris mai în det aliu ce este un sistem de baze
de date și în ce const ă el, am înv ățat și cum se creaz ă, analizeaz ă și
se proiecteaz ă corect o baz ă de date, dar am studiat și cum se
gestioneaz ă datele stocate în baza de date. În unitatea de înv ățare
anterioar ă am învățat cum se creaz ă, se manipuleaz ă și se șterge un
formular pentru introducerea datelor în baza de date.
În aceast ă unitate de înv ățare vom studia ce sunt rapoartele,
cum se creaz ă și cum se manipuleaz ă ele.

OBIECTIVELE unit ății de învățare nr. 6

Principalele obiective ale unit
ății de învățare nr. 6 sunt:

După studiul unit ății de învățare nr. 6 vei fi capabil s ă demonstrezi c ă
ai dobândit cuno ștințe suficiente pentru a în țelege:

• la ce se folosesc rapoartele din Access

• cum se creeaz ă un raport de date stocate în Access

• cum se salveaz ă un raport

• cum se șterge un raport

Rapoarte în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 117

6.1. Ce este un raport?

În timp ce formularul este proiectat pentru lucrul pe ecran
(deși și el poate fi tip ărit), raportul este proiectat în primul rând
pentru tip ărire ( cu toate c ă și el poate fi afi șat pe ecran).
Pe lâng ă această deosebire de destina ție, exist ă și o
diferență conceptual ă majoră între formular și raport. Formularul
este proiectat pentru acce sul aleator la date. Dup ă ce obține
accesul la o anumit ă înregistrare, utilizatorul poate trece la
sfârșitul formularului pentru a ad ăuga o înregistrare nou ă sau se
poziționează la începutul formularului pentru c ăutarea unei alte
înregistrări. În concluzie, formularul se bazeaz ă pe un set dinamic
de date, date care trebuie act ualizate cu toate modific ările
efectuate de al ți utlizatori în timpul utiliz ării formularului.
Pe de alt ă parte, raportul nu modific ă niciodat ă datele, fiind
necesară parcurgerea secven țială a înregistr ărilor pentru a genera
subtotaluri și rezumate. În locul unui set dinamic de date,
Microsost Access folose ște o copie protejat ă la scriere a datelor
care este citit ă
în secven ță, numită snapshot.
Un raport trebuie creat pentru orice inten ționăm să tipărim
cu regularitate, fie c ă este vorba de un listing simplu, o list ă de
etichete po ștale, o colec ție de grafice sau un rezumat sau o
analiză financiar ă complex ă. Raportul ne ofer ă de asemenea
posibilitatea prelucr ării datelor în scopul ob ținerii unor rezultate
sintetice: totaluri, subtotaluri et c. Datele pot fi grupate pe un num ăr
de până la zece niveluri diferite, fiecare cu propriile sale informa ții
sintetice.
6.2. Lucrul cu rapoarte

6.2.1. Deschiderea unui raport

Dacă există deja creat un raport, aces ta se poate deschide prin
apăsarea dublu clic pe respectivul raport din obiectul Reports.
Toate rapoartele create într-o baz ă de date se vor g ăsi în obiectul
Reports.
6.2.2. Crearea unui raport

Pentru a crea un raport nou vo m alege obiectul Reports din
fereastra Database și se apas ă dublu clic pe op țiunea
. pentru crearea de r apoarte cu ajutorul
Wizard-ului. Va trebui s ă parcurgem pa șii necesari pentru a crea
raportul dorit.

Rapoarte în MICROSOFT Access

118 Proiectul pentru Înv ățământul Rural

Exemplu :
Vom exemplifica crearea unui raport nou pentru afi șarea
datelor în tabela Facultate, folosind op țiunea Create report by
using wizard, urmând pa șii necesari pentru a crea raportul dorit.
Pas 1 :

Se alege tabela (sau tabelele) c ăre conține câmpurile care
trebuie s ă fie conținute în raport și se apas ă Next. Mai exact,
putem crea un raport care s ă conțină numai anumite câmpuri
dintr-o tabel ă și alte câmpuri din alte tabele, acest lucru f ăcându-
se alegând tabela corespunz ătoare și selectând câmpurile dorite.
Selectarea câmpur ilor dintr-o tabel ă se face astfel: se
poziționează pe respectivul câmp și se apas ă butonul
. Dacă
dorim ca toate câmpurile dintr-o tabel ă să apară în raport se
apasă butonul
. Pentru deselectrarea câmpurilor ne
poziționăm pe cîmpul respectiv și se apas ă butonul
, iar
pentru desectarea tututror câmpurilor se apas ă butonul
.

Observa ție: Pentru a putea genera rapoarte cu date din mai multe
tabele, trebuie înainte create rela țiile între tabele.

Pentru a crea aceste rela ții dintre tabele se face op țiunea
Tools din meniu și se alege Relations. Va ap ărea o fereastr ă
pentru alegerea tabelelor într e care dorim crearea de rela ții.

Rapoarte în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 119

Pentru a crea rela ții între toate ta belele ne pozi ționăm pe
fiecare dintre ele și apăsăm butonul Add. Va ap ărea o fereastr ă în
care sunt afi șate toate tabelele între care vom crea rela ții (pe care
le-am ales noi din lista de tabele existente în baza de date).

Pentru a crea efectiv rela țiile, se pozi ționăm pe un câmp al
unei tabele și ținem clicul de la mouse ap ăsat până la câmpul
corespunz ător relației. Va ap ărea o fereastr ă pentru confirmarea
creării relației.

Rapoarte în MICROSOFT Access

120 Proiectul pentru Înv ățământul Rural

După ce au fost create toate rela țiilor, structura bazei de
date ca ar ăta astfel:

Revenim la crearea raportului despre notele studen ților de
la fiecare facultate de la fiecare materie. Pas2 :

În aceast ă etapă se alege modul în care vor fi afi șate
atributele în raport și se apas ă Next.

Rapoarte în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 121

Pas3 :

La acest pas se pot grupa rezultatele care vor fi afi șate în
raport dup ă anumite câmpuri folosind s ăgețile și apoi se apas ă
Next.

Pasul 4 și pasul 5 reprezint ă alegerea modului de afi șare a
informațiilor în raport.

Rapoarte în MICROSOFT Access

122 Proiectul pentru Înv ățământul Rural

Pasul 6 :
Se alege dintr-o list ă predefinite de stiluri un mod de afi șare
a raportului.

Pasul 7 :

Se denume ște raportul cu un nume ales de utilizator și se
apasă Next.

Rapoarte în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 123

Pasul 8 :
Se apasă butonul Finish.
Vă vom prezenta mai jos un raport creat.

6.2.3. Ad ăugarea și modificarea textului în antet și subsol

Pentru a ad ăuga un text sau o imagine în antetul sau
subsolului unui raport este necesar s ă deschidem raportul în
modul Design al raportului ap ăsând butonul
sau făcând
opțiunea Design View, care apare la ap ăsarea clic dreapta pe
respectivul formular.
Pe ecran va ap ărea constructorul de rapoarte în care putem
modifica ceea ce dorim.
Pe ecran va ap ărea și o bar ă de instrumente
corespunz ătoare constructorului de rapoarte, prin intermediul
căreia putem realiza diferite modific ări în raport..

Rapoarte în MICROSOFT Access

124 Proiectul pentru Înv ățământul Rural

De exemplu, dorim s ă scriem în antet “Antet pentru raport “.
Pentru asta va trebui s ă facem loc în partea antetului c ăsuței de
text, tragând efectiv cu mouse-ul antetul și apoi în spa țiul creat
introducem textul dorit. Pentru a introduce un text trebuie ap ăsat
butonul
de pe bara de instrumente. Dup ă apăsarea acestui
buton selecta ți locul unde dorim pozi ționarea textului și apoi vom
introduce textul.

După introducerea textului se salveaz ă raportul și pentru a
vedea modific ările făcute asupra ei deschidem raportul ap ăsând
butonul Open.

Asemănător se poate modifica și subsolul raportului, sau
putem introduce imagini în rapoarte cu ajutorul comenzii Insert-
Picture.

Rapoarte în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 125

6.2.4. Ștergerea unui raport

Putem șterge un raport prin mai multe metode. Primul pas
pentru orice metod ă este selectarea rapoertului dorit pentru
ștergere și apoi fie ap ăsăm butonul Delete din tastatur ă, fie
apăsând butonul
existent în parte de sus a ferestrei, fie
apăsând clic dreapta și făcând opțiunea Delete.
Pe ecran va ap ărea o caset ă de dialog în care se cere
confirmarea ștergerii raportului.

Apăsând butonul Yes se confirm ă ștergerea raportului, iar
apăsând No se renun ță la opera ția de ștergere.

6.3. Salvarea și închiderea unui raport

Pentru salvarea raportului sau a oric ărei modific ări făcute
asupra lui, se apas ă butonul Save
existent pe bara de
instrumente a aplica ției, sau făcând opțiunea Save din meniu.
Pentru închiderea raportului sau se apas ă butonul
din
partea dreapt ă a ecranului sau f ăcând opțiunea Close din meniu.

Lucrare de verificare a cuno ștințelor

1. Creați un raport cu toate informa țiile stocate în baza de
date despre facult ăți.
2. Creați un raport care s ă conțină următoarele informa ții:
nume studentului, denumirea materiei la care a sus ținut
examen, nota ob ținută la acea testare și data test ării.

3. Modifica ți structura raportului de la exerci țiul 2, mai exact
introduce ți în antet titlul: Informa ții despre promovabilitatea
studenților.
4. Explica ți dacă se pot tip ări rapoartele și explicați cum.

Rapoarte în MICROSOFT Access

126 Proiectul pentru Înv ățământul Rural

Î

Teste de autoevaluare

1. Care sunt diferen țele între un raport și un formular?
2. Se poate crea un raport cu informa ții din mai multe tabele?

3. Se poate modifica structura unui raport dup ă generarea lui?
Explicați.

Rapoarte în MICROSOFT Access

Proiectul pentru Înv ățământul Rural 127

Răspunsuri și comentarii la întreb ările din testele de
autoevaluare

Întrebarea 1.

Diferențele dintre un formular și un raport sunt majore: în timp ce
formularul este proiectat pentru lucrul pe ecran (de și și el poate fi
tipărit), raportul este proiectat în primul rând pentru tip ărire (cu
toate că și el poate fi afi șat pe ecran), iar o diferen ță important ă ar
fi aceea c ă formularul este proiectat pentru acces la date (deci el
poate modifica date), pe c ând un raport nu modific ă date, ci doar
le afișează pe ecran.

Întrebarea 2.

Da.

Întrebarea 3.

Da.
Indicații la problemele propuse

Problemele propuse sunt a șezate dup ă un exemplu și se fac dup ă
modelul de exemplu pr ezentat înaintea lor.

Bibliografie:

• Cârstoiu, Dorin, Baze de date rela ționale, Editura Printech,
1999
• Rădulescu, Florin, Baze de date în Internet, Editura
Printech, 2000
• Ionescu, Felicia, Baze de date rela ționale și aplicații,
Editura Tehnic ă, 2004
• Baltac, Vasile, ECDL-Excel, Access, PowerPoint în 20 lec ții
și 75 de simul ări, Editura Andreco, 2003
• Browne, Allen, Balter Alison, Bazele Access 95 , Editura
Teora, 1999
• Pribeanu, Costin, Baze de date și aplicații, Editura
MatrixRom, 2000
• Pascu, C., Pascu A., Totul despre SQL , Editura Tehnic ă,
1994

Rapoarte în MICROSOFT Access

128 Proiectul pentru Înv ățământul Rural
Vă felicităm pentru parcurgerea cu succes a manualului de
baze de date și vă dorim baft ă în realizarea proiectelor
dumneavoatr ă viitoare în acest amplu domeniu.

Similar Posts