Sunteți pe pagina 1din 138

Proiect cofinanat din Fondul Social European prin Programul Operaional Sectorial Dezvoltarea Resurselor Umane 2007-2013

Investete n oameni!

Formarea profesional a cadrelor didactice


din nvmntul preuniversitar
pentru noi oportuniti de dezvoltare n carier

BAZE DE DATE I
UTILIZAREA ACESTORA
Adriana OLTEANU

Radu Nicolae PIETRARU

Ana Magdalena ANGHEL

Program de conversie profesional la nivel postuniversitar


pentru cadrele didactice din nvmntul preuniversitar
Specializarea TEHNOLOGIA INFORMAIEI I COMUNICRII
Forma de nvmnt ID - semestrul II

2011

2011

Acest manual a fost elaborat n cadrul "Proiectului pentru


nvmntul Rural", proiect co-finanat de ctre Banca Mondial,
Guvernul Romniei i comunitile locale.
Nici o parte a acestei lucrri nu poate fi reprodus fr acordul
scris al Ministerului Educaiei, Cercetrii, Tineretului i Sportului.

ISBN 973-0-04103-2

Baze de date i utilizarea acestora

BAZE DE DATE I UTILIZAREA ACESTORA


Cuprins
INTRODUCERE

Pagina
vi

UNITATEA DE INVARE NR. 1 - Problematica organizrii informaiilor


n mediul electronic
Obiectivele unitii de nvare nr. 1

1.1. Introducere

1.2. Ce este o baz de date?

1.3. Clasificarea sistemelor de baze de date


1.3.1. Clasificare dup modelul de date
1.3.2. Clasificare dup numrul de utilizatori
1.3.3. Clasificare este cea dup numrul de staii pe care este stocat
baza de date

5
5
7
8

1.4. Securitatea i protecia datelor in bazele de date

Lucrare de verificare a cunotinelor

10

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

11

Bibliografie

12

UNITATEA DE INVARE NR. 2 Sistemul de baze de date. Concepte i


arhitectur
Obiectivele unitii de nvare nr. 2

14

2.1. Componentele unui sistem de baze de date


2.1.1.Hardware
2.1.2.Software
2.1.3.Utilizatorii
2.1.4. Date persistente

14
14
15
16
16

2.2. Arhitectura intern a sistemlor de baze de date.


Modele de date, scheme i instane

17

2.3. Independena datelor

19

2.4.Limbaje SGBD

20

2.5.Interfee SGBD
Interfee bazate pe meniuri
Interfee grafice

21

Baze de date i utilizarea acestora

Interfee bazate pe forme


Interfee n limbaj natural
Interfee specializate aferente cererilor repetate
Interfee pentru administratorii bazelor de date
2.6. Exemple de SGBD

22

Lucrare de verificare a cunotinelor

24

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

25

Biblliografie

27

UNITATEA DE INVARE NR. 3 Proiectarea bazelor de date


Obiectivele unitii de nvare nr. 3

28

3.1. Ce este proiectarea?

29

3.2. Modelul entitate-relaie. Obiectele bazelor de date relaionale


Tabel (relaie)
Cmp (atribut)
nregistrare (nuplu)

32

3.3. Construcia schemelor relaie


3.3.1. Relaia unul-la-unul (1-1 sau one to one)
3.3.2. Relaia unul-la-multe (1-N sau one to many)
3.3.3. Relaia multe-la-multe (M-N sau many to many)
3.3.4. Relaia unar

34
34
35
36
37

3.4. Diagrama entitate-relaie

38

3.5. Constrngeri de integritate


3.5.1. Constrngerile de domeniu
3.5.2. Constrngerile referitoare la n-upluri (nregistrrile din tabel)Cheia primar
3.5.3. Constrngeri ntre relaii

39
40
41

3.6. Dependene funcionale

44

3.7. Normalizare. Forme normale.


3.7.1. Forma normal de ordin 1 (FN1)
3.7.2. Forma normal de ordin 2 (FN2)
3.7.3. Forma normal de ordin 3 (FN3)
3.7.4. Forma normal Boyce-Codd (FNBC)

44
45
46
46
47

3.8. Structuri de indeci n tabelele de date


3.8.1. Indexul primar
3.8.2. Indexul secundar
3.8.3. Indexul de grup
3.8.4. Indexul multinivel

48
50
51
52
53

iv

41

Baze de date i utilizarea acestora

Lucrri de verificare a cunotinelor

55

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

56

Biblliografie

57

UNITATEA DE INVARE NR. 4 Un limbaj pentru bazele de date


relaionale (SQL)
Obiectivele unitii de nvare nr. 4

61

4.1. Introducere
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access
4.1.2. Crearea unei baze de date noi
4.1.3. nchiderea unei baze de date

62
62
63
63

4.2. Tipuri de date MICROSOFT Access

64

4.3. Operatorii logici

66

4.4. Limbajul standard SQL


4.4.1. Scurt istoric al limbajului SQL
4.4.2. Crearea unei tabele
4.4.3. Salvarea unei tabele
4.4.4. tergerea unei tabele
4.4.5.Modificarea structurii unei tabele

68
68
69
72
73
74

4.5.Modificarea datelor n SQL


4.5.1. Inserarea de noi linii ntr-o tabel
4.5.2. tergerea unor linii dintr-o tabel
4.5.3. Modificarea unor linii dintr-o tabel

74
74
75
77

4.6. Limbajul de cereri n SQL


4.6.1. Cereri simple
Expresii aritmetice
Alias de coloan
Constante (literali)
4.6.2. Clauza DISTINCT
4.6.3.Clauza ORDER BY
4.6.4. Clauza WHERE
Operatorul BETWEEN
Operatorul IN
Operatorul IS NULL
Operatorul LIKE
4.6.5. Funcii de grup
4.6.6. Clauza GROUP BY
4.6.7. Clauza HAVING
4.6.8. Cereri coninnd mai multe tabele

79
79

Lucrri de verificare a cunotinelor

99

84
85
86

90
92
93
94

iii

Baze de date i utilizarea acestora

Rspunsuri i comentarii la ntrebrile din testele de


autoevaluare

101

Biblliografie

102

UNITATEA DE INVARE NR. 5 Construirea interfeelor cu ajutorul


formularelor n Microsoft Access
Obiectivele unitii de nvare nr. 5

104

5.1. Ce este un formular?

105

5.2. Lucrul cu formularele


5.2.1. Deschiderea unui formular
5.2.2. Crearea unui formular
5.2.3. Utilizarea unui formular
pentru a introduce i a modifica date n tabel
5.2.4. Parcurgerea nregistrrilor utiliznd formularele
5.2.5. Adugarea i modificarea textului n antet i subsol
5.2.6. tergerea unui formular

105
105
105
109

5.3. Salvarea i nchiderea unui formular

112

Lucrare de verificare a cunotinelor

113

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

114

Bibliografie

114

110
110
112

UNITATEA DE INVARE NR. 6 Rapoarte n Microsoft Access


Obiectivele unitii de nvare nr. 6

116

6.1. Ce este un raport?

117

6.2. Lucrul cu rapoarte


6.2.1. Deschiderea unui raport
6.2.2. Crearea unui raport
6.2.3. Adugarea i modificarea textului n antet i subsol
6.2.4. tergerea unui raport

117
117
117
123
125

6.3. Salvarea i nchiderea unui raport

125

Lucrare de verificare a cunotinelor

125

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

127

Biblliografie

127

iv

Introducere

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 utilizrii acestora. Acest curs se
adreseaz att cursanilor cu un grad mai mare de familiarizare cu
universul gestionrii datelor, ct i cursanilor nceptori. Acest curs
este un curs introductiv n proiectarea i utilizarea bazelor de date.
Exist totui anumite cunotine legate de utilizarea calculatorului
necesare parcurgerii acestui curs, cum ar fi: cunoaterea modalitii
de organizare i manipulare a informaiei n format electronic, operaii
de baz privind sistemul de operare Microsoft Windows i utilizarea
tastaturii PC standard i a mouse-ului.
Manualul de fa este organizat n 6 uniti de nvare, fiecare dintre
aceste uniti coninnd o parte de prezentare teoretic a subiectului
tratat, o parte de exemple, teste de autoevaluare i rezolvrile
acestora, precum i lucrri de verificare a cunotinelor.
Cele 6 uniti de nvare sunt prezentate gradat, ncepnd cu noiuni
introductive despre baze de date, clasificarea lor, pn la concepte
ale bazelor de date, proiectarea bazelor de date, folosirea limbajului
de interogare a bazelor de date. La finalul manualului vom studia
mpreun construirea interfeelor i realizarea rapoartelor n mediul
Microsoft Access.
La nceputul fiecrei uniti de nvare vor fi detaliate obiectivele
propuse n respectiva unitate.
n cadrul fiecrei uniti de nvare exist cte o lucrare de
verificare, care cuprinde mai multe ntrebri. Lucrrile de verificare
sunt poziionate la sfritul fiecrei uniti de nvare, rezolvarea
problemelor propuse din lucrrile de verificare fiind asemntoare cu
cea din exemple din cadrul unitii de nvare respective.
n cadrul fiecrei uniti de nvare exist teste de autoevaluare,
acestea fiind necesare pentru a fixa cunotinele dobndite n fiecare
capitol i pentru a permite evaluarea continu a cursantului.
Rspunsurile la testele de evaluare se vor completa n spaiile
speciale din cadrul manualului.
De-a lungul modulului Baze de date i utilizarea acestora exist 22
de teste de autoevaluare, care cuprind 28 de ntrebri i 6 lucrri de
verificare a cunotinelor, care cuprind 43 de probleme. Problemele
din testele de autoevaluare sunt punctate cu 0,5 puncte, fiind
considerate evaluare pe parcurs, iar cele din lucrrile de verificare

Introducere

sunt punctate cu 2 puncte, aceste puncte fiind considerate evaluare


final, astfel:
-n unitatea 1 sunt 4 ntrebri n testele de autoevaluare, deci se
obin 2 puncte i 2 ntrebri la lucrarea de verificare unde se obin 4
puncte.
-n unitatea 2 sunt 7 ntrebri n testele de autoevaluare, deci se
obin 3,5 puncte i 1 ntrebare la lucrarea de verificare unde se obin
2 puncte.
-n unitatea 3 sunt 7 ntrebri n testele de autoevaluare, deci se
obin 3,5 puncte i 6 ntrebri la lucrarea de verificare unde se obin
12 puncte.
-n unitatea 4 sunt 4 ntrebri n testele de autoevaluare, deci se
obin 2 puncte i 27 ntrebri la lucrarea de verificare unde se obin
54 puncte.
-n unitatea 5 sunt 3 ntrebri n testele de autoevaluare, deci se
obin 1,5 puncte i 3 ntrebri la lucrarea de verificare unde se obin 6
puncte.
-n unitatea 6 sunt 3 ntrebri n testele de autoevaluare, deci se
obin 1,5 puncte i 4 ntrebri la lucrarea de verificare unde se obin 8
puncte.
nsumate punctele obinute de cursani de-a lungul semestrului sunt
100.
Lucrrile de verificare vor fi transmise tutorelui modulului ntr-un fiier
separat.
Bibliografia minimal a acestui modul este:

Crstoiu, Dorin, Baze de date relaionale, Editura Printech,


1999

Rdulescu, Florin, Baze de date n Internet, Editura Printech,


2000

Ionescu, Felicia, Baze de date relaionale i aplicaii, Editura


Tehnic, 2004

Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii i


75 de simulri, Editura Andreco, 2003

Browne, Allen, Balter Alison, Bazele Access 95, Editura Teora,


1999

Pribeanu, Costin, Baze de date i aplicaii, Editura MatrixRom,


2000

Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic, 1994
Bibliografia este prezentat i la sfritul fiecrei uniti de nvare
n cazul n care nu vei reui s rezolvai problemele propuse trebuie
recitite zonele de text care apar nainte de lucrarea de verificare. n
sperana c nu vor exista probleme v urm:
Spor la treab!
Autorii

Problematica organizrii informaiilor n mediul electronic

Unitatea de nvare Nr. 1


PROBLEMATICA ORGANIZRII INFORMAIILOR
N MEDIUL ELECTRONIC
Cuprins

Pagina

Obiectivele unitii de nvare nr. 1

1.1. Introducere

1.2. Ce este o baz de date?

1.3. Clasificarea sistemelor de baze de date


1.3.1. Clasificare dup modelul de date
1.3.2. Clasificare dup numrul de utilizatori
1.3.3. Clasificare este cea dup numrul de staii pe care este stocat
baza de date

5
5
7
8

1.4. Securitatea i protecia datelor in bazele de date

Lucrare de verificare a cunotinelor

10

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

11

Biblliografie

12

Problematica organizrii informaiilor n mediul electronic

OBIECTIVELE unitii de nvare nr. 1


Principalele obiective ale unitii de nvare nr. 1 sunt:
Dup studiul unitii de nvare nr. 1 vei fi capabil s demonstrezi c
ai dobndit cunotine suficiente pentru a nelege:

de ce sunt importante n viaa de zi cu zi bazele de date

n ce companii se folosesc bazele de date

ce categorii de operaii 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 fiecrui model de baze de date

de ce este important protecia i securizarea datelor din baza de


date

diferite moduri de protejare a datelor

1.1. Introducere
n ultimii ani, dezvoltarea sistemelor de baze de date
reprezint unul dintre cele mai importante aspecte n domeniul
tehnologiei informaiei, avnd un impact decisiv asupra modului de
organizare i funcionare a numeroaselor instituii i servicii.
Acestea sunt companiile de comunicaie, intreprinderile de comer,
serviciile bancare, serviciile de transport, asigurrile, universitile
etc. Acestea sunt dependente de funcionarea corect i
nentrerupt a sistemelor de baze de date.
Sistemele de baze de date sunt o component important a
vieii de zi cu zi n societatea modern. Zilnic, majoritatea
persoanelor desfoar activiti care implic interaciunea cu o
baz de date: depunerea sau extragerea unei sume de bani din
banc, rezervarea biletelor de tren sau de avion, cutarea unei
cri ntr-o bibliotec computerizat, gestiunea angajailor dintr-o
firm, cumprarea unor produse etc.
Bazele de date pot avea mrimi (numr de nregistrri) i
complexiti extrem de variate, de la cteva zeci de nregistrri (de
exemplu, baza de date pentru o agend de telefon a unei
persoane)
2

Problematica organizrii informaiilor n mediul electronic

sau pot ajunge la milioane de nregistrri (de exemplu, baza de


date pentru crile dintr-o bibliotec, baza de date cu stocarea
angajailor unei firme sau baza de date unde se pstreaz
informaii despre situaia studenilor etc).
Marea majoritate a sistemelor de baze de date existente n
momentul de fa sunt relaionale i exist un numr mare de
astfel de sisteme comerciale care pot fi achiziionate i folosite
pentru propriile dezvoltri. Modelul relaional de baze de date a
fost introdus n anul 1970 de ctre E.F.Codd.
o

Utilizatorii unei baze de date au posibilitatea s efectueze


mai multe categorii de operaii asupra datelor stocate aici:
Introducerea de noi date (insert)
tergerea unor date existente n baza de date(delete)
Actualizarea datelor stocate(update)
Interogarea bazei de date (query) pentru regsirea anumitor
informaii, selectate dup un criteriu ales.
Test de autoevaluare
1. De ce sunt importante bazele de date?

1. 2. Ce este o Baz de Date?


n sensul larg, o baz de date (database) este o colecie de
date corelate din punct de vedere logic, care reflect un anumit
aspect al lumii reale i este destinat unui anumit grup de utilizatori.
n acest sens, bazele de date pot fi create i meninute manual (un
exemplu ar fi fiele de eviden a crilor dintr-o bibliotec, aa
cum erau folosite cu ani n urm) sau computerizat aa cum sunt
majoritatea bazelor de date n momentul de fa. O definiie ntr-un
sens mai restrns a unei baze de date este urmtoarea:
O baz de date este o colecie de date centralizate, creat
i meninut computerizat, n scopul prelucrrii datelor n contextul
unui set de aplicaii. Prelucrarea datelor se refer la operaiile de
introducere, tergere, actualizare i interogare a datelor.
Simple colecii de fie (documente pe hrtie) sau fiiere de
date care conin date, dar nu permit operaii de interogare nu sunt
considerate baze de date. De exemplu, datele memorate n fiiere
pe disc ntr-o aplicaie de calcul tabelar (Microsoft Excel) sau
documentele memorate de un editor de texte (ca Microsoft Word)
nu sunt considerate baze de date.
3

Problematica organizrii informaiilor n mediul electronic

Orice baz de date are urmtoarele proprieti implicite:

Baza de date este o colecie logic coerent de date ce are


cel puin un neles

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 aplicaii

O baz de date reprezint cteva aspecte ale lumii reale


crend orizontul propriu. Schimbrile orizontului sunt
reflectate n baza de date.

Fa de vechile metode de nregistrare a datelor privind


diferite activiti pe fie (documente scrise) sau chiar n fiiere pe
disc, sistemele de baze de date ofer avantaje considerabile, ceea
ce explic extinsa utilizare a acestora. Cteva dintre avantajele
oferite sunt:

Controlul centralizat al datelor, putnd fi desemnat o


persoan ca responsabil cu administrarea bazei de date

Vitez mare de regsire i actualizare a informaiilor

Sunt compacte: volumul ocupat de sistemele de baze de


date este mult mai redus dect documetele scrise

Flexibilitatea ce const n posibilitatea modificrii structurii


bazei de date fr a fi necesar modificarea programelor de
aplicaie

Redundan sczut a datelor memorate, care se obine


prin partajarea datelor ntre mai muli utilizatori i aplicaii.
n sistemele de baze de date, mai multe aplicaii pot folosi
date comune, memorate o singur dat. De exemplu, o
aplicaie pentru gestionarea personalului dintr-o universitate
i o aplicaie pentru gestionarea rezultatelor la examene din
aceeai universitate care folosete o singur baz de date,
pot folosi aceleai informaii referitoare la structurarea
facultilor.

Posibilitatea introducerii standardelor privind modul de


stocare a datelor, ceea ce permite interschimbarea datelor
ntre organizaii

Meninerea integritii datelor prin politica de securitate


(drepturi de acces difereniate n funcie de rolul
utilizatorilor), prin gestionarea tranzaciilor i prin refacerea
datelor n caz de funcionare defectuoas a diferitelor
componente hardware sau software.

Problematica organizrii informaiilor n mediul electronic

Independena datelor fa de suportul hardware utilizat.


Sistemul de gestiunea a bazelor de date ofer o vizualizare
a datelor, care nu se modific atunci cnd se schimb
suportul de memorare fizic, ceea ce asigur imunitatea
structurii bazei de date i a aplicaiilor la modificri ale
sistemului hardware utilizat.

Test de autoevaluare

2. Dai o definiie a bazelor de date?

1. 3. Clasificarea sistemelor de baze de date


Se pot lua n considerare mai multe 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 relaional sau n modelul de date
orientat obiect. Dezvoltarea continu a acestor modele a condus
ctre o nou categorie de baze de date numite obiect-relaionale,
care combin caracteristicile modelului relaional cu caracteristicile
modelului orientat obiect.
Modelul de date relaional (Relational Model) se bazeaz
pe noiunea de relaie din matematic, care corespunde unei
entiti de acelai tip i are o reprezentare uor de neles i de
manipulat, ce const dintr-un tabel bidimensional, compus din linii
i coloane. Fiecare linie din tabel reprezint o entitate i este
compus din mulimea valorilor atributelor entitii respective,
fiecare atribut corespunznd unei coloane a tabelului.
Modelul de date relaional a fost propus de cercettorul
E.F.Codd de la compania IBM, care a publicat n 1970 lucrarea
Un model relaional de date pentru bnci mari de date partajate.
Alte lucrri ale lui Codd, ca i ale altor cercettori ca R. Boyce,
J.D. Ullman etc au perfecionat modelul de date relaional i au
permis dezvoltarea sistemelor de baze de date.
Chiar dac noiunile de relaie i tabel difer n esena lor,
relaia reprezentnd o mulime de entiti i tabelul o reprezentare
vizual a acesteia, cele dou denumiri se pot folosi, n general
pentru acelai scop.
Pe baza acestor noiuni, se poate sintetiza esena
modelului relaional prin urmtoarele caracteristici:
Datele sunt percepute de utilizatori ca tabele
5

Problematica organizrii informaiilor n mediul electronic

Operatorii relaionali care pot fi folosii pentru prelucrarea datelor


genereaz un tabel rezultat din tabelele operanzi

Asocierea dintre tabele se realizeaz prin intermediul


egalitii valorilor unor atribute comune, ceea ce permite
rezolvarea oricrei interogri.

Pe lng avantajul unui model de date precis i simplu,


sistemele de baze de date relaionale 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 ctre Organizaia Internaional de Standardizare
(International Standardization Office-ISO). Majoritatea sistemelor
de gestiune a bazelor de date relaionale actuale implementeaz
versiunea din anul 1992 a standardului pentru limbajul SQL,
denumit SQL 92 sau SQL2.
Modelul de date orientat obiect (Object Model) este un
concept unificator n tiina calculatoarelor, fiind aplicabil n
programare, n proiectarea hardware, a interfeelor, a bazelor de
date etc. Sistemele de baze de date orientate obiect se bazeaz
pe limbaje de programare orientate obiect cu capaciti 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 informaii geografice, medicin etc, n care
modelul relaional s-a dovedit a fi insuficient de expresiv i cu
performane de execuie reduse.
Caracteristicile importante ale modelului orientat obiect
sunt: abstractizarea, motenirea, ncapsularea, modularizarea.
n programarea orientat obiect, programele sunt
organizate ca i colecii de obiecte cooperante, fiecare obiect fiind
o instan a unei clase. Fiecare clas reprezint abstractizarea
unui tip de entitate din realitatea modelat, iar clasele sunt
membre ale unei ierarhii de clase, corelate ntre ele prin relaii de
motenire. 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 funciile (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 granie bine definite i
documentate, ceea ce reduce complexitatea de manevrare a
datelor.
Din perspectiva realizrii bazelor de date, o alt proprietate
a modelului obiect, persistena, este aceea care asigur
6

Problematica organizrii informaiilor n mediul electronic

memorarea transparent pe suport magnetic a obiectelor care


alctuiesc o baz de date orientat obiect.
Modelul de date obiect-relaional (Object-Relational Model)
reprezint extinderea modelului relaional cu caracteristici ale
modelului obiect, extindere necesar pentru realizarea bazelor de
date care definesc i prelucreaz tipuri de date complexe.
n esen, modelul obiect-relaional pstreaz structurarea
datelor n relaii (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 motenire 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 funciune baze de date
modele mai vechi: modelul ierarhic i modelul reea.
n modelul de date ierarhic (Hierarchical Model) o baz de
date se reprezint printr-o structur ierarhic de nregistrri de
date (records) conectate prin legturi (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 numr oarecare de scheme
ierarhice. O schem ierarhic este un arbore direcionat,
reprezentat pe mai multe niveluri, n care nodurile sunt tipurile de
nregistri, iar arcele sunt tipurile de legturi. Fiecare nod (cu
excepia nodului rdcin) are o singur legtur ctre un nod de
pe un nivel superior (nodul printe) i fiecare nod (cu excepia
nodurilor frunz) are una sau mai multe legturi ctre noduri de pe
nivelul imediat inferior (noduri fii).
Modelul de date reea (Network Model) folosete o structur
de graf pentru definirea schemei conceptuale a bazei de date;
nodurile grafului sunt tipuri de entiti (nregistrri, records), iar
muchiile grafului reprezint n mod explicit asocierile (legturile,
links) dintre tipurile de entiti.
La fel ca i modelul ierarhic, dezavantajul principal al
modelului reea este acela c fiecare interogare trebuie s fie
prevazut nc din faza de proiectare, prin memorarea explicit a
legturilor ntre tipurile de entiti. n plus, complexitatea
reprezentrii datelor n modelul reea este deosebit de ridicat, iar
programatorii trebuie s o cunosasc pentru a putea realiza
aplicaiile necesare.
1.3.2. Clasificare dup numrul de utilizatori.
Majoritatea sistemelor de baze de date sunt sisteme
multiutilizator, adic permit accesul concurent (n acelai timp) a
mai multor utilizatori la aceeai baz de date. Exist i un numr
7

Problematica organizrii informaiilor n mediul electronic

redus de sisteme monoutilizator, adic suport accesul doar al


unui utilizator (la un moment dat).
1.3.3. Clasificare dup numrul de staii
pe care este stocat baza de date
O alt clasificare este cea dup numrul de staii pe care
este stocat baza de date
Exist dou categorii de sisteme 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 stocate pe un singur calculator.
Un sistem de baze de date distribuit (Distributed Database
System) poate avea att datele, ct i sistemul de gestiune,
distribuite pe mai multe calculatoare interconectate printr-o reea
de comunicaie.
Test de autoevaluare

3. Facei o clasificare a bazelor de date?

1.4. Securitatea i protecia datelor in bazele de date


Prin protecia i securitatea datelor se nelege totalitatea
mijloacelor, metodelor i a mecanismelor destinate prevenirii
distrugerii, modificrii sau folosirii neautorizate a informaiei
protejate.
Referitor la protecia i securitatea datelor, n literatura de
specialitate se definesc urmtoarele concepte de baz:

Securitatea datelor totalitatea msurilor de protecie


mpotriva distrugerii accidentale sau intenionate, a modificrii
neautorizate sau a divulgrii acestora

Caracterul secret este un concept ce se aplic la un individ


sau organizaie i const n dreptul acestora de a decide ce
informaii se pot folosi n comun i n ce condiii

Confidenialitatea se aplic la date i se refer la statutul


acordat, acesta reprezentnd nivelul sau gradul de protecie ce
trebuie acordat informaiei respective

Problematica organizrii informaiilor n mediul electronic

Integritatea se refer la restricia ca sensul datelor s nu


difere fa de cel nscris pe documentul surs, impunnd
totodat ca datele s nu fie alterate accidental sau voit.

Noiunile de mai sus sunt strns legate ntre ele, msurile


pariale se suprapun i se acoper reciproc.
Securitatea i protecia 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 informaii, iar pe de alt parte, elementele legate de
organizarea sistemelor informatice din punct de vedere al
posibilitilor de acces la datele stocate.
Unele informaii care exist n baza de date sunt strict
private i nu pot fi accesate legal de ctre persoane neautorizate.
Diferite reglementri guvernamentale sau legi existente n
majoritatea rilor stabilesc ce informaii privind activitatea
instituiilor sau a persoanelor pot fi fcute publice i n ce condiii.
La nivelul sistemelor informatice se pot diferenia 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 protecie 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 capabiliti foarte puternice, pe
care alte conturi sau utilizatori nu le au. Prin intermediul contului
de sistem administratorul bazei de date poate efectua mai multe
operaii: crearea conturilor, acordarea sau retragerea privilegiilor,
etc.
Orice persoan care dorete s se conecteze (log in) la o
baz de date trebuie s dein 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 aplicaii sunt considerate de asemenea utilizatori i se
conecteaz pe un anumit cont i trebuie s furnizeze parola
acestuia.
O alt tehnic de protecie i securitate a datelor este
criptarea datelor (Data Encryption), prin care datele importante
sunt codate folosind diferii algoritmi de codare, mai ales atunci
cnd sunt transmise prin intermediul reelelor de comunicaie.
Interpretarea datelor criptate este dificil dac nu este cunoscut
cheia (cifrul) de codare. n felul acesta numai utilizatorii autorizai
care dein cheile de decriptare pot interpreta cu uurin aceste
date.

Problematica organizrii informaiilor n mediul electronic

O alt tehinc se securizare a bazei de date pentru


aplicaiile web ar fi instalarea 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 ctre anumite calculatoare.
Deci, prin securitatea bazei de date se nelege o
multitudine de msuri destinate proteciei informaiilor coninute n
baza de date mpotriva unor alterri, distrugeri sau divulgri
neautorizate.
Test de autoevaluare

4. Specificai anumite tehnici de protecie a bazelor de date.

Lucrare de verificare a cunotinelor


1. Spunei cteva avantaje ale faptului c datele se pstreaz
i se manipuleaz mai bine stocate n format electronic.

2. Descriei n cteva cuvinte de ce este important s protejm


datele.

10

Problematica organizrii informaiilor n mediul electronic

Rspunsuri i comentarii la ntrebrile din testele de


autoevaluare
ntrebarea 1.
Bazele de date sunt importante deoarece n cursul unei zile
majoritatea persoanelor desfoar activiti care implic
interaciunea cu o baz de date: depunerea sau extragerea unei
sume de bani din banc, rezervarea biletelor de tren sau de avion,
cutarea unei cri ntr-o bibliotec computerizat, gestiunea
angajailor dintr-o firm, cumprarea unor produse etc.
ntrebarea 2.
O baz de date este o colecie centralizat de date n scopul
optimizrii prelucrrii acestora n contextul unui set dat de aplicaii.
Operaiile 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 interogri pentru
regsirea unor informaii dup un anumit criteriu.
ntrebarea 3.
O scurt clasificare a bazelor de date este urmtoarea:
Clasificare dup modelul de date
o Model de date relaional
o Model de date orientat obiect
o Model de date obiect-relaional
o Model de date ierarhic
o Model de date reea
Clasificare dup numrul de utlizatori
o Baze de date multiutilizator
o Baze de date monoutlizator
Clasificare dup numrul de staii 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 protecia datelor din baza de date prezint dou
aspecte principale: pe de o parte, elementele legale i etice privind
drepturile de acces la anumite informaii, iar pe de alt parte,
elementele legate de organizarea sistemelor informatice din punct
de vedere al posibilitilor de acces la datele stocate.
Dou din tehnicile de securizare i protecie a datelor din baza de
date sunt: crearea de conturi de utlizatori cu anumite drepturi
pentru fiecare utilizator n parte de ctre administratorul bazei de
date i criptarea datelor. Mai exist i alte tehnici n funcie de tipul
aplicaiei.
11

Problematica organizrii informaiilor n mediul electronic

Bibliografie:

12

Crstoiu, Dorin, Baze de date relaionale, Editura Printech,


1999
Rdulescu, Florin, Baze de date n Internet, Editura
Printech, 2000
Ionescu, Felicia, Baze de date relaionale i aplicaii,
Editura Tehnic, 2004
Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii
i 75 de simulri, Editura Andreco, 2003
Browne, Allen, Balter Alison, Bazele Access 95, Editura
Teora, 1999
Pribeanu, Costin,
Baze de date i aplicaii, Editura
MatrixRom, 2000
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic,
1994

Sistemul de baze de date concepte i arhitectur

Unitatea de nvare Nr. 2


SISTEMUL DE BAZE DE DATE CONCEPTE I ARHITECTUR
Cuprins

Pagina

Obiectivele unitii de nvare nr. 2

14

2.1. Componentele unui sistem de baze de date


2.1.1.Hardware
2.1.2.Software
2.1.3.Utilizatorii
2.1.4. Date persistente

14
14
15
16
16

2.2. Arhitectura intern a sistemlor de baze de date.


Modele de date, scheme i instane

17

2.3. Independena datelor

19

2.4.Limbaje SGBD

20

2.5.Interfee SGBD
Interfee bazate pe meniuri
Interfee grafice
Interfee bazate pe forme
Interfee n limbaj natural
Interfee specializate aferente cererilor repetate
Interfee pentru administratorii bazelor de date

21

2.6. Exemple de SGBD

22

Lucrare de verificare a cunotinelor

24

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

25

Biblliografie

27

13

Sistemul de baze de date concepte i arhitectur

n unitatea de nvare nr. 1 am realizat o scurt introducere n


acest amplu domeniu al bazelor de date. Am adus n discuie unde se
folosesc bazele de date, am prezentat o clasificare a sistemelor de
baze de date i am dorit s subliniez importana securizrii bazelor de
date i a proteciei datelor stocate n bazele de date
n aceast unitate de nvare vom descrie mai n detaliu ce este
un sistem de baze de date i n ce const el.
OBIECTIVELE unitii de nvare nr. 2
Principalele obiective ale unitii de nvare nr. 2 sunt:
Dup studiul unitii de nvare nr. 2 vei fi capabil s demonstrezi c
ai dobndit cunotine suficiente pentru a nelege:
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 independena fizic i cea logic a datelor din baza de


date

care sunt limbajele pentru sistemele de gestiune a bazelor de date

care sunt interfeele corespunztoare fiecrui tip de utilizator

cteva exemple de sisteme de baze de date


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
ntreinerea uneia sau mai multor baze de date. Componentele
unui sistem de baze de date sunt: hardware, software, utilizatori,
date persistente.
2.1.1. Hardware.
Calculatoarele pe care sunt instalate de obicei sistemele
de baze de date sunt PC standard, dar i calculatoare
multiprocesor foarte puternice. Performanele generale de operare
ale calculatorului (numrul i viteza procesoarelor, dimensiunea i
viteza de operare a memoriei etc) influeneaz n mod

14

Sistemul de baze de date concepte i arhitectur

corespunztor perfomanele sistemului de baze de date. Cea mai


important caracteristic a calculatorului pe care funcioneaz
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 nregistrrile de date, pentru
memorarea acestora se folosesc discurile magnetice (harddiskuri). Benzile magnetice (care ofer acces secvenial la
nregistrrile de date) se folosesc pentru duplicarea (backup),
salvarea i restaurarea datelor.
2.1.2. Software
ntre baza de date (colecia de date memorate fizic n fiiere
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 meninut fie cu ajutorul unui grup de programe de
aplicaie specifice acestui scop, fie cu acest SGBD.

Utilizator

Aplicatie

SGBD

Baza de date

Figura 2.1. Componente ale sistemului de baze de date


Sistemul de gestiune al bazei de date (SGBD) este un
interpretor de cereri, el recepionnd de la utilizatori anumite
cereri de acces la baza de date, le interpreteaz, execut
operaiile respective i returneaz rezultatul ctre utilizatori.
De fapt, SGBD este un sistem de programe general ce
faciliteaz procesul definirii, construciei i manipulrii datelor
pentru diverse aplicaii.
Definirea bazei de date presupune specificarea tipurilor de
date ce vor fi stocate n baza de date, precum i descrierea
detaliat a fiecrui tip de dat.
Construcia bazei de date reprezint procesul stocrii
datelor nsi prin mediul controlat prin SGBD.
Prin manipulare se neleg o serie de funcii ce faciliteaz
implementarea cererilor pentru gsirea datelor specificate,
adugarea de noi date ce reflect modificarea contextului,
generearea de rapoarte pe baza coninutului bazei de date.
n concluzie, pachetul software ce asigur manipularea
15

Sistemul de baze de date concepte i arhitectur

datelor, mpreun cu datele nsi (coninutul bazei de


date) formeaz ceea ce se numete sistemul de baze de
date (DataBase System).
Un SGBD ofer utilizatorilor o viziune a datelor stocate n
baza de date, nemaifiind necesar cunoaterea organizrii
particulare a sistemului, asigur o protecie a datelor fa de
accese neautorizate i de anumite defecte de funcionare.
2.1.3. Utilizatorii
Utilizatorii unui sistem de baze de date se mpart n cteva
categorii:

Programatorii de aplicaii sunt cei care dezvolt aplicaiile


de baze de date n anumite medii de programare. Aplicaiile
pot fi aplicaii desktop (stand alone) i aplicaii client-server.
Aplicaiile desktop sunt aplicaiile care se instaleaz i
ruleaz pe un anumit calculator. Acestea sunt aplicaii
implementate n medii de programare cum ar fi: Visual
Basic, Visual C, Java, C++, Delphi etc, iar aplicaiile clientserver sunt aplicaii care se instaleaz pe un calculator
numit server i ruleaz de pe orice calculator aflat n acea
reea. Aceste aplicaii sunt aplicaii web implementate n
limbajul de scripturi php sau asp, cu interfaa dezvoltat n
html. Pentru ca aceste aplicaii s funcioneze trebuie
instalat i un server de web, cum ar fi Apache sau IIS i pe
fiecare calculator de unde va fi accesat aplicaia, precum
i un browser de web: Internet Explorer, Netscape, Modzilla
etc.

Utilizatorii obinuii sunt acei utilizatori care acceseaz baza


de date prin intermediul unei aplicaii de baze de date.
Aceti utilizatori au drepturi limitate asupra accesului la
datele din baza de date, ei neavnd cunotine 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, autorizarea accesului la baza de
date, a coordonrii i monitorizrii utilizatorilor acelei baze
de date. Administratorul bazei de date efectueaz i
operaii periodice de salvare a datelor (backup) i de
refacere a lor atunci cnd este necesar.

2.1.4. Date persistente


Datele memorate ntr-o baz de date sunt date persistente,
adic date care rmn memorate pe suport magnetic,
independent de execuia programelor de aplicaii. Datele
persistente ale unei baze de date se introduc, se terg sau se
actualizeaz n funcie de date de intrare provenite de la
16

Sistemul de baze de date concepte i arhitectur

tastatur. Iniial datele de intare sunt date nepersistente, ele


devenind persistente dup ce au fost validate de SGBD. Datele
de ieire ale unui sistem de baze de date sunt tot date
nepersistenete, ele provenind din operaii de interogare a bazei
de date i puse la dispoziie utilizatorului sunt form de raport,
afiare etc.
Test de autoevaluare
3. 1. Enumerai pe scurt componentele unui sistem de baze de
date .

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) conine trei niveluri
funcionale ce vor fi descrise mai jos.
Una din caracteristicile fundamentale a bazelor de date
este dat de faptul c produce cteva niveluri de abstractizare a
datelor, prin ascunderea detaliilor legate de stocarea datelor,
detalii ce nu sunt utile utilizatorilor bazei de date. Se definete
modelul datelor ca un set de concepte ce poate fi utilizat n
descriereea structurii datelor. Prin structura bazei de date se
nelege tipul datelor, legtura dintre ele, restriciile ce trebuie
ndeplinite de date. Cele mai multe baze de date includ un set de
operaii ce specific modul de acces la date.
O structur de date asociat unei baze de date poate fi
reprezentat pe trei niveluri, avnd ca scop separarea aplicaiilor
utilizatorului de baza de date fizic. Schema bazei de date pe cele
trei niveluri poate fi vzut astfel:
Nivelul intern constituit din schema intern ce descrie
structura de stocare fizic a datelor n baza de date,
utiliznd un model al datelor fizice. La acest nivel se descriu
detaliile complete ale stocrii, 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 conceptual se face o descriere
complet a bazei de date, ascunznd detaliile legate de
stocarea fizic, concentrndu-se asupra
descrierii
entitilor, tipurilor de date, relaiilor dintre ele, precum i a
restriciilor asociate. Poate fi utilizat cu bune rezultate, la
17

Sistemul de baze de date concepte i arhitectur

model de nivel nalt sau un model specific de implementare.

Nivelul extern sau nivelul vizual (utilizator) include o colecie


de scheme externe ce descriu baza de date prin prisma
diferiilor utilizatori. Fiecare grup de utilizatori descrie baza
de date prin prisma propriilor interese. Exist tendina 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 sau modele de nivel nalt.

Desigur c n multe SGBD nu se poate face o distincie


net ntre cele trei nivele. Cu toate acestea se poate remarca la
majoritatea SGBD un nivel conceptual puternic ce suplinete
aparent de cele mai multe ori celelalte niveluri. De asemenea, se
remarc o contopire mai ales la dezvoltarea aplicaiilor 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 stocate. 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.

Nivel extern

Nivel conceptual

Nivel intern

Vedere
grup
utilizator 1

Vedere
grup
utilizator n

Schema conceptuala

Schema interna

Date memorate

Figura 2.2. Arhitectura intern


a unui sistem de baze de date

18

Test de autoevaluare
2. Ce reprezint structura unei baze de date?

3. De ce este important mprirea unui sistem de baze de date


pe 3 niveluri?

2.3. Independena datelor


Aceast organizare pe trei niveluri a sistemelor de baze de
date este important pentru c explic conceptul de independen
a datelor, prin posibilitatea modificrii sistemului bazei de date la
orice nivel fr a influena nivelurile superioare. Independena
datelor se poate defini n dou moduri, aferente nivelurilor
conceptual i intern.
Prin independena logic se nelege capacitatea schimbrii
schemei conceptuale fr a atrage dup sine schimbri n schema
extern sau n programele de aplicaie. Este posibil schimbarea
schemei conceptuale prin expandarea bazei de date ca urmare a
adugrii de noi tipuri de nregistrri sau a datelor insi, sau prin
reducerea bazei de date ca urmare a reducerii nregistrrilor.
Schema conceptual dup aceste operaii se refer la schema
conceptual a datelor existente. Un exemplu de expandare al
bazei de date este cel de adugare a unei noi coloane la un tabel.
Independena fizic este reprezentat prin capacitatea de
schimbare a schemei interne fr schimbarea schemei
conceptuale sau externe. Schimbarea schemei conceptuale poate
surveni ca urmare a reorganizrii fizice a unor fiiere, prin crearea
de noi structuri de acces menite s asigure accesul eficient la
date. Dac sistemul conine SGBD pe mai multe niveluri, catalogul
trebuie s reflecte modul n care diverse cereri se implementeaz
la fiecare nivel. Motivele prezentate mai sus pledeaz pentru
utilizarea arhitecturii pe trei nivele.
Test de autoevaluare
4. Care este diferena dintre independena fizic i independena
logic a datelor din baza de date?

2.4. Limbaje SGBD


SGBD trebuie s ofere limbajele corespunztoare tuturor
categoriilor de utilizatori. 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
situaii, nu exist o separaie 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
instruciunile pentru identificarea descrierilor despre construcie i
memoreaz aceasta n catalogul SGBD.
n SGBD cu o clar separaie ntre nivelul conceptual i cel
intern, DDL este utilizat pentru specificarea schemei conceptuale.
Un alt limbaj numit Storage Definition Language (SDL) este utilizat
pentru specificarea schemei interne. Legtura ntre cele dou
nivele de implementare este asigurat de unul din cele dou. n
general, fr 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 legturii acestora cu nivelul conceptual. Multe sisteme de baze
de date realizeaz aceasta printr-un DDL ce accept i declaraii
specifice nivelului extern.
Instruciunile 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 faciliti pentru manipularea datelor. Operaiile tipice
includ cutarea, inserarea, tergerea i modificare datelor. Pentru
aceasta SGBD dispune de Data Manipulation Language (DML).
La rndul su, DML poate fi mprit n dou componente:
un DML de nivel nalt
un DML de nivel sczut
Seciunea DML de nivel nalt sau neprocedural este
utilizat pentru specificarea operaiilor complexe n baza de date
ntr-o form concis. n general, operaiile utiliznd aceast
seciune sunt realizate fie ntr-o form interactiv de la terminal, fie
prin utilizarea unui limbaj de programare universal.
Seciunea DML de nivel sczut sau procedural este
realizat utiliznd un limbaj de programare general. Cu aceast
seciune se realizeaz operaiile tipice, cum sunt refacerea unei
nregistrri individuale, procesarea separat a nregistrrilor bazei
de date. Din motivul c opereaz asupra nregistrrilor individuale,
aceast prelucrare se mai numete 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

acest motiv acest limbaj se numete declarativ. Oricum, comenzile


DML fie de nivel nalt, fie de nivel sczut sunt implementate ntr-un
limbaj de programare general, limbaj numit i limbaj gazd, iar
DML este numit limbaj de date. DML de nivel nalt utlizat ntr-o
manier interactiv
formeaz ceea ce se numete query
language.
Test de autoevaluare
5. Dai exemple de limbaje de sisteme de gestiune a bazelor de
date.

2.5. Interfee SGBD


SGBD trebuie s ofere interfee corespunztoare tuturor
categoriilor de utilizatori. Aceste interfee au ca scop facilitarea
legturii ntre utilizatori i sistemul de baze de date. Principalele
tipuri de interfee oferite de SGBD sunt:
Interfee bazate pe meniuri. Acestea ofer utilizatorului o
list de opiuni, 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 opiunilor indicate prin meniu.
Interfee grafice. Aceste interfee afieaz utilizatorului o
diagram. Utilizatorul poate formula cererea prin
manipularea acestei diagrame. n cele mai multe cazuril,
interfeele grafice sunt combinate cu meniuri.
Interfee bazate pe forme. Aceste interfee sunt acelea prin
intermediul crora utilizatorul poate completa formele cu
noile date pe care le dorete s le insereze, sau folosete
aceste forme pentru a cere SGBD s obin datele de
interes.
Interfee n limbaj natural. Aceste interfee accept cereri
scrise n limba englez sau alte limbi de circulaie
internaional. O interfa n limbaj natural conine 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 corespunztoare celei n limbaj natural, ce va fi
transmis ctre SGBD.

Interfee specializate aferente cererilor repetate. Aceste


interfee sunt destinate unei anumite categorii de utilizatori,
de exemplu utilizatorii care se ocup de operaiile dintr-o
banc. Uzual, un mic set de comenzi prescurtate sunt
implementate pentru a scurta timpul necesar introducerii
comenzii, sau chiar utilizarea de chei funcionale. Aceste
interfee implementeaz un limbaj numit i limbaj de
comand.

Interfee pentru administratorii bazelor de date. Acestea


sunt utilizate n implementarea comenzilor privilegiate ce
sunt folosite de administratorii bazelor de date. Astfel de
comenzi includ crearea de conturi, setarea parametrilor
sistemului, autorizarea intrrii ntr-un anumit cont,
reorganizarea structurii de stocare a datelor din baza de
date, precum i o serie de faciliti legate de administrarea
bazei de date, cum sunt: accesul la tabele i nregistrri,
faciliti de acces la cmpuri ale tabelelor de date.

Test de autoevaluare

6. Ce sunt interfeele sistemelor de gestiune a bazelor 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 (fr licen sau cu licen public), pn la sisteme
de nalt performan, a cror utilizare necesit cumprarea de
licene. Pentru aceste sisteme exist pe site-urile productorilor
versiuni de test numite trial version, pentru care nu se pltete
licen, durata folosirii respectivului produs fiind limitat la un
numr de zile (30, 60 zile, n funcie de productor).
Microsoft SQL Server este sistemul de gestiune a bazelor
de date relaionale multi-utilizator dezvoltat de firma Microsoft
pentru sistemele de operare Windows. 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
trsturilor avansate de stocare i prelucrare a datelor. Exist o
interfa grafic pentru interaciunea cu utilizatorul, pentru
folosirea tuturor opiunilor: de export/ import date, de creare i
manipulare a tabelelor, pentru popularea cu date a tabelelor, de

creare a interogrilor, a procedurilor stocate, a triggerelor etc.


Pentru a obine gratuit o versiune de test, accesai adresa
http://www.microsoft.com.
Microsoft Access este unul din cele mai cunoscute sisteme
de gestiune a bazelor de date relaionale pe platforme de
calculatoare personale. Microsoft Access dispune de un sistem de
control al bazei de date (database engine) i o intefa grafic
pentru interaciunea cu utlizatorul. Aplicaiile de baze de date n
MS Access se pot dezvolta cu mult uurin datorit
generatoarelor de aplicaii (wizards) care permit proiectarea
vizual a bazelor de date, a formularelor (forms) pentru interfeele
grafice i a rapoartelor (reports). MS Access este folosit n special
pentru aplicaii personale sau pentru mici afaceri i licena
acestuia se cumpr odat cu cumprarea licenei produsului
Microsoft Office. Acest sistem este cel folosit de noi n capitolele
urmtoare.
Sistemul Oracle este un sistem de gestiune al bazelor de
date multi-utilizator foarte puternic, cu implementri pe toate
platformele (Windows, Linux, Unix), care ofer att performane de
execuie ridicate, ct i un grad mare de protecie i securitate a
datelor. n toate versiunile,
Oracle ofer
implementarea
complet
a
caracteristicilor modelului
relaional, conform
standardului SQL2, iar ultimele versiuni (Oracle8i, Oracle9i etc)
sunt sisteme de gestiune obiect-relaionale distribuite,
implementnd extensiile orientate obiect prevzute n standardul
SQL3 i oferind posibilitatea de dezvoltare a bazelor de date
distribuite. De la adresa http://www.oracle.com se poate
obine o versiune a sistemului de gestiune Oracle, dar i a
diferitelor instrumente de dezvoltare a aplicaiilor de baze de date.
Termenii licenei permit utilizarea gratuit a acestor sisteme n
scopuri necomerciale pe o perioad nelimitat, pentru utliizarea n
scopuri comerciale trebuie pltite licenele corespunztoare.
MySQL este un sistem de gestiune a bazelor de date
relaionale cu implementri pentru sistemele de operare Linux,
Unix, Windows. Acest sistem se poate utiliza gratuit, fiind open
source. Ultima versiune i documentaia sistemului de gestiune a
bazelor de date MySQL se poate descrca de la adresa
http://www.mysql.com. Acest sistem este compatibil cu standardul
SQL2, dar unele prevederi ale standardului fiind implementate
parial.
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 interfeei FoxPro a fost ntotdeauna
orientat ctre flexibilitate i uurin n utilizare. Pe de alt parte,
fora i viteza brut au reprezentat dintotdeauna punctul forte al lui
FoxPro. Nici un produs creat de celelalte companii axate pe baze
de date, care au fcut trecerea la modelul orientat obiect nu a

putut rivaliza cu FoxPro n ce privete viteza de execuie a


funciilor specifice bazelor de date . i acest mediu conine vrjitori
(Wizard) pentru gestionarea 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 crerii de proceduri stocate, acestea fiind
nite proceduri care ruleaz pe server i asigur o vitez mai mare
de rspuns. Are mai multe versiuni n funcie de dorinele i
necesitile utilizatorilor. Mai multe informaii despre DB2 le gsii
dac accesai www.db2mag.com, i pentru a v comanda un CD
sau pentru a v descrca versiunea de evaluarea a acestui sistem
accesai www.ibm.com.
Test de autoevaluare
7. Dai exemple de sisteme de gestiune a bazelor de date.

Lucrare de verificare a cunotinelor


Accesai paginile de web ale fiecrui sistem de gestiune a
bazelor de date i precizai cteva avantaje i cteva
dezavantaje ale fiecruia.

Rspunsuri i comentarii la ntrebrile din testele de


autoevaluare
ntrebarea 1.
Componentele unui sistem de baze de date sunt: componenta
hardware, componenta software, utilizatorii i datele persistente
care sunt stocate n baza de date.
ntrebarea 2.
Prin structura bazei de date se nelege alegerea tipului de date,
legturile dintre ele, restriciile ce trebuie ndeplinite de date.
ntrebarea 3.
Organizare pe trei niveluri a unui sistem de baze de date este
important pentru c explic conceptul de independen a datelor,
prin posibilitatea modificrii sistemului bazei de date la orice nivel
fr a influena nivelurile superioare. Independena datelor se
poate defini n dou moduri, moduri ce sunt aferente nivelurilor
conceptual i intern.
ntrebarea 4.
Prin independena logic se nelege capacitatea schimbrii
schemei conceptuale fr a atrage dup sine schimbri n schema
extern sau n programele de aplicaie. Independena fizic este
reprezentat prin capacitatea de schimbare a schemei interne fr
schimbarea schemei conceptuale sau externe.
ntrebarea 5.
SGBD trebuie s ofere limbajele corespunztoare 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 legturii acestora cu nivelul
conceptual
ntrebarea 6.
Interfeele au ca scop facilitarea legturii ntre utilizatori i sistemul
de baze de date.

ntrebarea 7.
Cteva dintre cele mai importante sisteme de gestiune a bazelor
de date sunt: Microsoft SQL Server, Oracle, MySQL, IBM DB2,
Microsoft Access, Visual FOX PRO etc.

Bibliografie:

Crstoiu, Dorin, Baze de date relaionale, Editura Printech,


1999
Rdulescu, Florin, Baze de date n Internet, Editura
Printech, 2000
Ionescu, Felicia, Baze de date relaionale i aplicaii,
Editura Tehnic, 2004
Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii
i 75 de simulri, Editura Andreco, 2003
Browne, Allen, Balter Alison, Bazele Access 95, Editura
Teora, 1999
Pribeanu, Costin,
Baze de date i aplicaii, Editura
MatrixRom, 2000
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic,
1994

Proiectarea bazelor de date

Unitatea de nvare Nr. 3


PROIECTAREA BAZELOR DE DATE
Cuprins

Pagina

Obiectivele unitii de nvare nr. 3

28

3.1. Ce este proiectarea?

29

3.2. Modelul entitate-relaie. Obiectele bazelor de date relaionale


Tabel (relaie)
Cmp (atribut)
nregistrare (nuplu)

32

3.3. Construcia schemelor relaie


3.3.1. Relaia unul-la-unul (1-1 sau one to one)
3.3.2. Relaia unul-la-multe (1-N sau one to many)
3.3.3. Relaia multe-la-multe (M-N sau many to many)
3.3.4. Relaia unar

34
34
35
36
37

3.4. Diagrama entitate-relaie

38

3.5. Constrngeri de integritate


3.5.1. Constrngerile de domeniu
3.5.2. Constrngerile referitoare la n-upluri (nregistrrile
tabel)-Cheia primar
3.5.3. Constrngeri ntre relaii

39
40
41

din

41

3.6. Dependene funcionale

44

3.7. Normalizare. Forme normale.


3.7.1. Forma normal de ordin 1 (FN1)
3.7.2. Forma normal de ordin 2 (FN2)
3.7.3. Forma normal de ordin 3 (FN3)
3.7.4. Forma normal Boyce-Codd (FNBC)

44
45
46
46
47

3.8. Structuri de indeci n tabelele de date


3.8.1. Indexul primar
3.8.2. Indexul secundar
3.8.3. Indexul de grup
3.8.4. Indexul multinivel

48
50
51
52
53

Lucrri de verificare a cunotinelor

55

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

56

Biblliografie

57

Proiectarea bazelor de date

nc de la nceput doresc s v felicit pentru parcurgerea cu


succes a primelor dou uniti de nvare i s v urez bun venit la
studiul acestei noi uniti de nvare. n primele dou uniti de
nvare 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 nvare nr. 3 este foarte important pentru
c dac se dorete crearea unei aplicaii de baze de date este
necesar ca un prim pas proiectarea corect a bazei de date.
OBIECTIVELE unitii de nvare nr. 3
Principalele obiective ale unitii de nvare nr. 3 sunt:
Dup studiul unitii de nvare nr. 3 vei fi capabil s demonstrezi c
ai dobndit cunotine suficiente pentru a nelege:

de ce este foarte important o proiectare corect a bazele de


date

care sunt etapele care trebuie parcurse pentru o proiectare ct


mai corect a bazei de date

ce reprezint modelul entitate-relaie

care sunt obiectele din baza de date

cum se construiesc schemele relaie

s descrii toate categoriile de relaii care pot aprea ntr-o


proiectare de baz de date

s construieti o diagrama entitate-relaie

s nelegi de ce trebuie s existe constrngeri asupra tabelelor

cte tipuri de constrngeri exist i rolul lor

ce este dependena funcional

ce reprezint procesul de normalizare a tabelelor

tipurile i ce reprezint fiecare form normal

la ce sunt folosii indecii n tabelele de date

tipurile de indeci i o scurt descriere a lor

Proiectarea bazelor de date

3.1. Ce este proiectarea?


Proiectarea unei baze de date const din proiectarea logic
i fizice a acesteia, pentru a corespunde cerinelor utilizatorilor
pentru un anumit set de aplicaii.
n general, vom considera c proiectarea corect a unei
baze de date trebuie s parcurg urmtoarele etape:

Analiza cererilor i strngerea de informaii referitoare la


aplicaie.

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 bazei de date i a aplicaiei.

nainte de a se proiecta efectiv o baz de date, este


necesar s se cunoasc ce rezultate se ateapt potenialii
utilizatori s obin de la baza de date respectiv i documentarea
asupra informaiilor ce sunt disponibile pentru aceasta. De
asemenea, este necesar i definirea ct mai exact a aplicaiei
(De ex.: aplicaie de gestiune a stocurilor, a crilor ntr-o
bibliotec, aplicaie contabil, aplicaie folosit la salarizare,
aplicaie referitoare la gestiunea studenilor, a profesorilor, a
cursurilor, a notelor dintr-o instituie de nvmnt etc.).
Avnd cerinele formulate precis i concis se poate trece la
elaborarea schemei conceptuale utiliznd un model de nivel nalt.
Schema conceptual reprezint o descriere concis a datelor
utilizatorului, incluznd descrierea detaliat a tipurilor de date, a
relaiilor i restriciilor acestora. Deoarece pn la acest moment
nu se includ detalii de implementare, rezultatele pot fi comunicate
utilizatorilor, chiar dac sunt nespecializai n domeniu, i analizate
de acetia pentru eliminarea eventualelor conflicte care pot
aprea.
Urmtoarea etap este cea de construcie a bazei de date
innd 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 funcie de complexitatea
aplicaiei, de capacitatea de stocare a datelor, de posibilitatea

Proiectarea bazelor de date

refacerii datelor, de numrul de utilizatori care vor folosi aplicaia,


dar i de costurile de achiziie ale sistemului, de costurile de
ntreinere etc.
Urmtoarea faz, cea de proiectare logic poate fi realizat
n dou sub-faze: transpunerea schemei conceptuale n modelul
de date al sistemului SGBD ales, dar independent de sistemul de
gestiune propriu-zis, sau rafinarea schemei conceptuale i a
schemelor externe obinute anterior, astfel nct s se utilizeze
mai multe din facilitile oferite de sistemul SGBD ales (modul de
generare a cheilor primare, definirea constrngerilor, etc.). Aceste
dou sub-faze se pot realiza mpreun, folosind unul din
instrumentele de proiectare oferite de sistemul SGBD ales.
Rezultatul acestei faze de proiectare l constituie, aadar, 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 fiierele bazei de
date, pentru a obine performane ct mai bune pentru aplicaia
proiectat. Ca parametrii generali de alegere a opiunilor
proiectului fizic al unei baze de date relaionale se pot enumera:
timpul de rspuns, utilizarea spaiului de memorare, capacitatea
tranzacional.
Deciziile de proiectare fizic se pot lua numai dup o
analiz a aplicaiilor care se vor executa i n principal, a
interogrilor i tranzaciilor pe care acestea le vor lansa. n urma
analizei se pot sintetiza informaii care s dea imaginea de
ansamblu a utilizrii atributelor relaiilor bazei de date: care
atribute sunt actualizate cel mai frecvent, care atribute sunt
folosite cel mai frecvent n selecii ale interogrilor, etc. Aceste
informaii se folosesc pentru stabilirea indecilor secundari ai
relaiilor.
Ultima etap este cea de implementare efectiv a bazei de
date i a aplicaiei. Aici se creaz pe baza modelului definit
obiectele bazei de date, se populeaz cu date baza de date, se
verific constrngerile, se creaz interfeele cu utlizatorul i
rapoartele neceare cu datele extrase din baza de date.

Proiectarea bazelor de date

Exemplu:
Pe parcursul manualului vom proiecta i realiza o aplicaie
simplificat pentru gestiunea informaiilor referitoare la notele
obinute de studenii dintr-o universitate la anumite materii. Baza
de date se va numi Universitate. Pe parcursul acestui capitol
aceasta va fi rafinat la modelul entitate-relaie, un model
conceptual de nivel nalt. Acest model asigur perceperea de
ctre utilizatori fr s prezinte detaliile de stocare a datelor
pstrate n calculator. n faza preliminar, dup analiza cerinelor
se cunosc urmtoarele informaii :

aceast universitate are n componen mai multe faculti.


Fiecare facultate avnd asociat un cod, o denumire, o
adres.

studenii au stocate n baza de date informaiile personale


ale fiecruia (cnp, nume, prenume, iniiala tatlui, data
naterii etc), dar i informaii legate de starea actual a lor
(grupa n care se afl, facultatea de care aparine etc.)

n aceast baz de date stocm i materiile studiate n


facultile din acea universitate. Se consider materii
diferite acele materii care au aceeai denumire, dar
profesor diferit.

vom stoca i notele obinute 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

3.2. Modelul entitate-relaie.


Obiectele bazelor de date relaionale
Modelul entitate-relaie este cel mai utilizat model
conceptual de nivel nalt, care reprezint schema conceptual a
bazei de date cu ajutorul entitilor i a relaiilor dintre acestea.
Acest model a fost introdus n anul 1976 de P.S.Chen. Elementele
de baz folosite n cadrul acestui model sunt conceptele de
entitate i cel de relaie.
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 proprieti numite atribute, ce
descriu entitatea respectiv.
Cu toate c nu reprezint acelai lucru, pentru denumirea
de entitate se mai folosete i denumirea de tabel al bazei de
date, iar pentru atribute cmpurile tabelului.
Scurte definiii a noiunilor pe care le-am folosit i le vom folosi n
continuare sunt :

Tabel (entitate) este o colecie de informaii logice


relaionale tratat ca o unitate

nregistrare (n-uplu). O tabel este compus din nregistrri


sau rnduri. Fiecare nregistrare este tratat ca o simpl
unitate. Fiecare nregistrare este legat de nregistrri ale
altei tabele.

Cmpuri (atribute). nregistrrile sunt constituite din


cmpuri (coloane) . Un cmp este o particul atomic a
bazei de date ce reprezint cea mai mic cantitate de
informaie care poate fi manipulat. Toate nregistrrile
dintr-o tabel au aceleai cmpuri.

De exemplu, pentru baza de date Universitate pe care


dorim s o crem, o entitate reprezint o Facultate cu atributele
Cod Facultate, Denumire, Adresa, 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
entitii. Aceast atribuire de valori pentru fiecare atribut formeaz
o nregistrare a tabelului respectiv.

Proiectarea bazelor de date

Unele atribute pot fi divizate n mai multe pri cu


semnificaie independent. Un astfel de atribut este un atribut
complex.
Un exemplu este cel al atributului Adres care poate fi
divizat in mai multe atribute : 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 atributelor 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 dat, 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 vrsta unei persoane se poate calcula din
data curent minus data naterii persoanei respective.
n anumite situaii, 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 scrii, etc.
Exemplu:
Revenind la exemplu nostru, s ne definim toate entitile din baza
de date Universitate.
Entitile ar putea fi urmtoarele :

Facultate cu atributele: CodFac, Denumire, Adresa, Nume


Decan
Studenti cu atributele: CodStud, An, Grupa, Media, Bursa
StudPersonal cu atributele: CNP, Nume, Init, Prenume,
Data Nasterii, Loc Naterii, Tata, Mama, Adresa
Materii cu atributele: Cod Materie, Denumire, An, Nume
Profesor
Note cu atributele Nota, Data

Proiectarea bazelor de date

Test de autoevaluare
2. Care sunt obiectele bazei de date? Dai scurte definiii
pentru fiecare obiect i specificai ce termeni se mai folosesc
pentru fiecare dintre ele.

3.3. Construcia schemelor relaie


n proiectarea bazelor de date se definesc relaii sau
asocieri ntre mulimile de entiti componente, pentru a
reprezenta anumite aspecte ale realitii pe care o modeleaz
baza de date.
O relaie este o coresponden ntre entiti din una sau mai
multe mulimi de entiti. Gradul unei relaii este dat de numrul de
mulimi de entiti asociate. Relaiile pot fi binare (ntre 2 mulimi
de entiti) sau multiple (ntre mai mult de 2 entiti).
Relaiile binare sunt mprite n trei categorii, dup numrul
elementelor din fiecare din cele dou mulimi puse n
coresponden de relaia respectiv.
Se consider 2 mulimi de entiti E1 i E2.
3.3.1. Relaia unul-la-unul (1-1 sau one to one)
Relaia unul-la-unul este cel mai simplu tip de relaie. Ea
este relaia prin care unui element din mulimea E1 i corespunde
un singur element din mulimea E2 i reciproc.
r1
E11
E12
E13
E1

r2
r3

E21
E22
E23
E2

Figura 3.1. Relaia unul-la-unul

Proiectarea bazelor de date

Aceast relaie unul-la-unul este foarte rar folosit n


lumea real. Cel mai des, ea este folosit pentru a reduce numrul
de atribute dintr-o entitate, pentru a nu depi numrul maxim de
cmpuri asociate pentru o tabel, acesta fiind de circa 255. Se mai
poate folosi i n cazul n care dorim desprirea elementelor fixe,
a informaiilor care se modific mai rar fa de cele care se
modific destul de des.
Un exemplu ar fi la aplicaia pe care o proiectm noi,
mprirea informaiilor despre studeni n dou entiti: informaiile
personale fiind stocate n tabelul StudPersonal i informaiile care
se modific de la an la an n tabela Studenti.
Pentru a realiza efectiv aceast relaie trebuie introdus
atributul CodStud i n tabela StudPersonal. Astfel cele dou se
transform astfel:
Studenti cu atributele: CodStud, An, Grupa, Media, Bursa
StudPersonal cu atributele: CodStud, CNP, Nume, Init,
Prenume, Data Nasterii, Loc Naterii, Tata, Mama, Adresa
Informaiile stocate aa sunt i mai uor de manipulat.
3.3.2. Relaia unul-la-multe (1-N sau one to many)
Aceast relaie este o relaie prin care unui element din
E11

r1
r2

E12
E13
r7

E1

E21
E22
E23
E24
E25
E26
E27
E2

mulimea E1 i corespund unul sau mai multe elemente din


mulimea E2, dar unui element din mulimea E2 i corespunde un
singur element din mulimea E1.
Figura 3.2. Relaia unul-la-multe
O atenie sporit trebuie s avem la specificarea prilor
acestui tip de relaie.
Un exemplu al acestui tip de relaie din cadrul aplicaiei pe
care o proiectm noi este c ntr-o facultate sunt mai muli
studeni, i se precizeaz c un student aparine unei singure
faculti din cadrul aceleiai universiti.

Proiectarea bazelor de date

Pentru a realiza efectiv aceast relaie 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
Observaie: Dac se aduga atributul CodStud n tabela
Facultate, se pstrau date redundante n aceast tabel, adic
pentru fiecare student al facultii trebuiau pstrate informaii
referitoare la facultate: denumirea ei, adresa, numele decanului,
etc.
3.3.3. Relaia multe-la-multe (M-N sau many to many)
Aceast relaie este o relaie prin care unui element din
mulimea E1 i corespund unul sau mai multe elemente din
mulimea E2, i reciproc.

E11

r1
r2

E12
E13
E14
E1

r7

E21
E22
E23
E24
E25
E26
E27
E2

Figura 3.3. Relaia multe-la-multe


Acest tip de relaie este foarte des ntlnit, dar nu poate fi
implementat n bazele de date relaionale. De fapt, pentru
modelarea acestei relaii se folosete o relaie suplimentar, de tip
unul-la-multe pentru fiecare din relaiile iniiale.
Un exemplu al acestui tip de relaie din cadrul aplicaia pe
care o proiectm noi este c un student particip la mai multe
materii, cursuri, iar o materie este frecventat de mai muli
studeni.
Pentru a soluiona aceast problem am introdus o tabel
suplimetar numit Note, care va face legtura ntre tabelele
Materii i Studeni. Tabelele iniiale se modific astfel:

Studenti cu atributele: CodStud, CodFac, An, Grupa,


Media, Bursa
Materii cu atributele: CodMaterie, Denumire, An, Nume
Profesor

Proiectarea bazelor de date

Note cu atributele: CodStud, CodMaterie, Nota, Data

Prin introducerea atributului Data n tabela Note s-a


soluionat problema care apare atunci cnd un student trebuie s
fie examinat de mai multe ori pn la promovarea materiei
respective.
3.3.4. Relaia unar
Toate relaiile prezentate anterior sunt relaii binare, avnd
cte dou relaii implicate. Relaiile unare folosesc doar o singur
relaie, aceasta fiind asociat cu ea nsi.
E11

r1

E12
E13
E14
E1

Figura 3.4. Relaia unar


Exemplul clasic al acestei relaii unare este cazul
managerului unei companii, care la rndul su este tot un angajat
al acelei companii. Relaiile unare se modeleaz la fel ca i
relaiile binare.
Test de autoevaluare
3. Dai exemple de relaii ntre tabelele unei baze de date.

Paii care trebuie urmai pentru crearea relaiilor ntre


tabele n mediul Microsoft Access sunt descrii n capitolul 6.

Proiectarea bazelor de date

3.4. Diagrama entitate-relaie


Diagrama entitate-relaie este modelul entitate-relaie
reprezentat. prin mulimile de entiti i relaii dintre acestea.
Exist mai multe variante de notaii pentreu redarea acestei
diagrame, astfel:
Entitate tip puternic

Entitate tip

Entitate tip slab

Entitate tip

Atribut

Atribut

Tipul relaiilor
Tip
relatie

Exemplu:
n continuare, se exemplific dezvoltarea
conceptual de nivel nalt al bazei de date Universitate.

Denumire

Adresa

NumeDecan

Facultat
e
Nume

CNP

Nota

1
1

Prenum
e

modelului

Denumire

StudPersonal

Note

Studen

N
Materi
i

An

i
DataNast

Tata

CodFac

An

Profesor
Data

Test de autoevaluare
g

4. Explicai de ce este important construcia diagramei entitaterelaie.

3.5. Constrngeri de integritate


Constrngerile de integritate sunt reguli care se definesc la
proiectarea unei baze de date i care trebuie s fie respectate
de-a lungul existenei acesteia.
Entitiile unei baze de date reflect realitatea modelat i
de aceea valorile pe care le conin trebuie s respecte anumite
reguli, care s corespund celor din realitate.
Vom folosi n continuare pentru termenul de entitate
denumirea tabel.

Constrngerile se pot clasifica astfel:


n cadrul tabelei
sau ntre tabele.

Constrngerile din cadrul unei tabele sunt reguli care se


impun n cadrul unei singure tabele i asigur integritatea datelor
acesteia. Ele sunt de 3 categorii:

constrngeri de domeniu. Aceste constrngeri sunt


condiii care se impun valorilor atributelor i asigur
integritatea domeniilor atributelor.

constngeri de nuplu (de nregistrare din tabel). Aceste


constrngeri sunt condiii care se impun nuplurilor unei
entiti (nregistrrilor din tabel) i asigur identificarea
corect a nuplurilor prin intermediul cheilor primare.

constrngeri impuse de dependene de date


(dependene funcionale). Acestea sunt constrngeri prin
care valorile unor atribute ale unei entiti (cmpuri ale
tabelei) determin valorile altor atribute ale aceleiai
entiti.

Constrngerile ntre tabele sunt reguli care se impun ntre


dou sau mai multe relaii. Cele mai importante sunt
constrngerile de integritate referenial, care se realizeaz prin

intermediul cheilor strine i asigur asocierea corect a tabelelor.


3.5.1. Constrngerile de domeniu
Constrngerile de domeniu sunt condiii impuse valorilor
atributelor pentru ca acestea s corespund semnificaiei pe care
o au n realitatea modelat. n reprezentarea unei entiti printr-un
tabel, valorile atributelor sunt reprezentate pe coloane. Din
aceast cauz aceste constrngeri se mai numesc i constrngeri
de coloan.
Vom descrie 3 tipuri de constrngeri de coloan:

Constrngerea NOT NULL. Valoarea NULL este o valoare


particular, care nu reprezint valoarea 0, ci lips de
informaie. Aceast valoare NULL poate aprea cnd nu se
cunosc respectivele informaii, ca de exemplu, n aplicaia
proiectat de noi, n tabela StudPersonal nu se cunoate
numele tatlui (aceast informaie nu este esenial). Nu
orice atribut poate lua valoarea NULL, ca exemplu, numele
unui student, pentru ca nu ar avea sens nregistrarea unui
student al crui nume nu se cunoate. n astfel de situaii la
definirea relaiilor se impune atributului constrngerea NOT
NULL, nsemnnd c acest atribut nu poate lua valoare
NULL n orice nregistrare din tabel

Constrngerea DEFAULT. Aceast constrngere este


folosit pentru stabilirea unei valori implicite (DEFAULT)
pentru un atribut al entitii. n cazul n care la inserarea
unui nuplu (nregistrri) nu se specific valoarea unui atribut
(cmp), atunci acesta primete valoarea implicit (dac a
fost definit) sau valoarea NULL (dac nu a fost definit o
valoare implicit pentru atributul respectiv, dar sunt admise
valori NULL). Dac nu a fost definit o valoare implicit i
nici nu sunt admise valori NULL se genereaz o eroare.

Constrngerea CHECK. Constrngerea CHECK este dup


cum i spune i numele o constrngere de verificare. n
limbajul SQL, care va fi prezentat ntr-un capitol viitor,
domeniile n care pot lua valori atributele se pot stabili ca
tipuri de date predefinite. Pentru fiecare atribut se pot
aduga constrngeri de verificare la definirea tabelului.

3.5.2. Constrngerile referitoare la n-upluri (nregistrrile


din tabel)-Cheia primar
O entitate este definit ca o mulime de n-upluri. Deci,
n-uplurile entitii trebuie s fie distincte, acest lucru nsemnnd c
ntr-o entitate nu pot exista dou sau mai multe n-upluri care c
conin acceai combinaie de valori pentru fiecare atribut.
O cheie primar a unei entiti (tabele) este o submulime
de atribute ale entitii care are urmtoarele proprieti:

este unic, adic orice combinaie de valori ale atributelor


acestei chei este unic pentru orice stare a relaiei

este stabil, adic informaia corespunztoare ei nu se


modific niciodat prin operaii 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


cmpuri ale tabelei care identific unic fiecare nregistrare din
tabela respectiv.
3.5.3. Constrngeri ntre tabele
Relaiile dintre tipurile de entiti definite n modelul
conceptual al unei baze de date se realizeaz n modelul relaional
prin intermediul cheilor strine.
O cheie strin este o submulime de atribute ale unei
entiti E1 care refer entitatea E2 i ndeplinete urmtoarele
condiii: atributele cheii strine din E1 sunt definite pe domenii
compatibile cu cele ale atributelor cheii din entitatea E2, i cheia
din entitatea E2 este cheie primar n aceast relaie.
Aceast cheie strin determin o asociere ntre cmpurile
unor tabele cu cele ale altei tabele i creeaz abilitatea de
realizare a unirii tabelelor respective prin intermediul operaiilor
JOIN.
Integritatea referenial este proprietatea bazei de date
care garanteaz c oricare valoare a unei chei strine se
regsete printre valorile cheii corespunztoare din relaia referit,
sau cheia strin are valoarea NULL (dac atributele acesteia nu
sunt supuse constrngerii NOT NULL).

Exemplu:
Revenind la baza de date proiectat de noi, numit
Universitate vom defini cheile primare i cele strine din cadrul
fiecrei tabele. Cheile primare vor fi subliniate pentru o mai clar
interpretare.

Pentru tabela Faculate vom presupune c cod facultii


(CodFac) este unic pentru fiecare facultate din cadrul
universitii respective. n concluzie, tabela Facultate va
avea urmtoarea structur :
Facultate (CodFac, Denumire, Adresa, Nume Decan)

Pentru tabela StudPersonal dispunem de mai multe opiuni


n alegerea cheii primare. Ea poate fi reprezentat de CNP
acesta fiind teoretic unic fiecrei persoane. Din pcate s-au
ntlnit cazuri n care dou persoane au acelai CNP i
pentru a evita un posibil conflict, adugm la tabela un alt
atribut numit CodStud i va fi un numr unic pentru fiecare
nregistrare din tabela StudPersonal. n concluzie tabela
StudPersonal va avea urmtoarea structur:
StudPersonal (CodStud, CNP, Nume, Init, Prenume,
DataNasterii, LocNat, Tata, Mama, Adresa)

Pentru nceput la tabela Studenti iniial ar trebui introdus


cmpul CodFac. Acesta va reprezenta o cheie strin a
aceste tabele i va face legtura direct ntre tabela
Studenti i tabela Facultate. Tabela Studenti va avea
urmtoarea 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 cmpul
CodFac nu ar fi fost bine deoarece la o facultate corespund
mai muli studeni i atunci ar aprea CodFac acelai pentru
mai multe nregistrri i nu ar fi indeplinite condiiile pentru
ca un cmp s fie cheie primar. La fel s-ar fi ntmplat i
dac am fi optat pentru cmpul CodStud deoarece acest
cod este un numr unic pentru fiecare student dintr-o
facultate, acelai cod putnd fi asociat i pentru un alt
student de la o alt facultate.
n concluzie, tabela Studenti va avea urmtoarea structur:
Studenti(CodFac, CodStud, An, Grupa, Media, Bursa)

Pentru tabela Materii vom presupune c codul materiei


(CodMaterie) este unic pentru fiecare disciplin din cadrul
universitii respective. n concluzie, tabela Materii va avea
urmtoarea structur :
Materii (CodMaterie, Denumire, An, Nume Profesor)

n tabela Note, care are iniial dou atribute Nota i Data


trebuie introduse mai multe cmpuri.
Unul ar fi cmpul CodStud, care va reprezenta o cheie
strin i va face legtura cu tabela Studenti pentru a
cunoate n orice moment crui student i aparine nota
respectiv. Un alt cmp care ar trebui introdus este cmpul
CodMaterie, care va reprezenta o cheie strin i va face
legtura cu tabela Materii pentru a cunoate n orice
moment ce not i-a fost acordat studentului respectiv.
Tabela Studenti va avea urmtoarea 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. Cmpul 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
obinut not de trecere, fie c dorete o mrire a notei
respective). Cum este greu de manipulat o astefl de cheie
primar, propunem introducerea unui alt cmp n tabela
numit CodNota, care va fi unic pentru fiecare nregistrare
din tabel. Astfel, n concluzie, tabela Note va avea
urmtoarea structur:
Note (CodNota, CodStud, CodMaterie, Nota, Data).

Test de autoevaluare
5. Ce sunt constrngerile? Dai exemple de tipuri de constrngere.

3.6. Dependene funcionale


Dependena funcional definete relaia 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
cmpurie tabelei. Prin urmare trebuie s vedei ce cmpuri
depind de alte cmpuri.
n orice tabel pot exista dou categorii de dependene
funcionale:

Dependene funcionale determinate de cheile tabelei;


astfel de dependene funcionale nu produc redundana
datelor i nici anomalii de actualizare a relaiei

Dependene funcionale n care atributul determinat nu este


o cheie a tabelei; astfel de dependene funcionale produc
redundana datelor i anomalii de actualizare a tabelei.

Constrngerile de cheie sunt constrngeri implicite,


coninute n definiia relaiei i sunt verificate i impuse automat de
sistemul de gestiune; proiectantul bazei de date nu trebuie s
prevad nimic suplimentar pentru ca aceste constrngeri s fie
satisfcute de orice stare a relaiei.
n schimb, dependenele funcionale n care atributul
determinant nu este o cheie a relaiei sunt constrngeri explicite,
care nu sunt verificate i nici impuse de sistemul de gestiune.
Verificarea i impunerea acestor dependene funcionale se poate
face numai procedural, prin triggere, proceduri stocate sau funcii
impuse n programele de aplicaie.

3.7. Normalizare. Forme normale.


La proiectarea bazelor de date relaionale se stabilesc
entitile din realitatea modelat. Modul n care se pot stabili
entitile unei baze de date nu este unic i de accea este necesar
s existe criterii de evaluare a calitii entitilor, astfel nct
acestea s asigure integritatea datelor.
n acest capitol se trateaz procesul normalizrii i primele
trei forme normale pentru o tabel.
Procesul de normalizare propus de E.F. Codd n 1970
urmrete execuia asupra unei tabele a unor serii de teste pentru
a cerceta apartenena la forma normal.
Codd propune trei forme normale (3NF), cea mai bun
definiie fiind dat mai trziu de Boyce i Codd, fiind cunoscut
sub numele de forma normal Boyce-Codd.

Normalizarea datelor poate fi privit ca un proces n timpul


cruia schemele tabel nesatisfctoare sunt descompuse prin
mprirea atributelor n tabele cu atribute mai puine ce posed
proprietile dorite.
n fond, unul din obiectivele procesului de normalizare este
asigurarea faptului c tabela posed o bun construcie asigurnd
posibiliti de modificare cu eliminarea anomaliilor care pot
aprea.
Forma normal ofer proiectantului bazei de date :

un schelet formal pentru analiza relaiilor bazat pe chei i


pe dependena funcional ntre atribute

serie de teste ce pot elimina tabelele individuale astfel nct


baza de date relaional poate fi normalizat n orice grad.
Cnd 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
definiiei formale a unei tabele.
Ea nu permite atribute cu mai multe valori, atribute
compuse sau combinaii ale lor. Aceasta stabilete ca domeniul
atributelor trebuie s includ numai valori atomice i valoarea
oricrui 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 combinaie a acestora ca valoare a unui atribut pentru un
nuplu. Cu alte cuvinte, FN1 nu permite tabele n tabele sau tabele
ca atribute ale nuplurilor. Valorile permise de FN1 sunt atomice
sau indivizibile, pentru un domeniu specificat de valori.
Exemplu:
Considerm c n tabela Materii (CodMaterie, Denumire,
An, NumeProfesor), unde cheia primar este CodMaterie este
introdus o nregistrare de tipul:

CodMaterie

Denumire

An

NumeProfesor

Analiz matematic

O.Stanil, P.Flondor, M.Olteanu

Aceast nregistrare reprezint o disciplin care este


predat de trei profesori diferii.
Acest nuplu (nregistrare) nu ndeplinete FN1, deoarece la
atributul NumeProfesor nu sunt valori atomice, ci un set de valori.
Pentru a rezolva aceast problem vom introduce mai multe
nregistrri, care vor ndeplini cerinele FN1, considernd trei
materii diferite astfel:
CodMaterie
1
2
3

Denumire
Analiz matematic
Analiz matematic
Analiz matematic

An
1
1
1

NumeProfesor
O.Stanil
P.Flondor
M.Olteanu

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 ndeplinete FN2 dac ndeplinete FN1
i conine numai atribute care dau informaii despre cheia tabelei.
Exemplu:
Considernd c n tabela Materii (CodMaterie, Denumire,
An, NumeProfesor), unde cheia primar este CodMaterie c ar
mai exita i alte cmpuri cum ar fi: Nume Student, Nota, Data
Examinrii. Acea structur nu ar fi proiectat bine, nendeplinind
FN2. Pentru a soluiona aceast problem trebuie mprit acea
tabel n mai multe, astfel:
Studenti(CodStud, Nume, .)
Materii (CodMaterie, Denumire, 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 cmpurile non-primare s depind
numai de cmpurile primare.
Dei nu face parte n mod riguros din normalizare, de obicei
nu este recomandabil s includei cmpuri care pot fi derivate din
alte cmpuri situate n acelai tabel sau n tabelele aflate n relaie.

Exemplu:
S considerm baza de date Universitate, mai exact tabela
StudPersonal, care are structura:
StudPersonal (CodStud, CNP, Nume, Init, Prenume, DataNasterii,
LocNat, Tata, Mama, Adresa)
Nu are rost s stocm un alt cmp numit Vrsta, care se
poate calcula din DataNasterii.
3.7.4. Forma normal Boyce-Codd (FNBC)
Forma normal Boyce-Codd este o form strict FN3,
nelegnd prin aceasta c fiecare tabel FNBC este n acelai
timp o tabel FN3, cu toate c o tabel FN3 nu este n mod
necesar i o tabel FNBC. Cele dou forme sunt asemntoare,
ambele impunnd condiia ca atributul care determin funcional
alte atribute s fie o cheie a tabelei. Forma normal Boyce-Codd
este mai restrictiv dect FN3, deoarece n FNBC se impune
aceast condiie tuturor atributelor, prime sau neprime, pe cnd n
FN3 condiia se impune numai atributelor neprime. Atributele
prime sunt atributele care aparin 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 dependena funcional 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 funcional un alt atribut neprim, deoarece o tabel cu
dou atribute nu poate avea dect cel mult un atribut neprim.
Test de autoevaluare
6. Ce reprezint procesul de normalizare i specificai formele
normale.

S-ar putea s v simii copleii de aceste reguli. De fapt,


pe msur ce vei dobndi experien, vei ncepe s creai fiiere
normalizate de la bun nceput.

3.8. Structuri de indeci n tabelele de date


Un index reprezint o cale rapid de localizare a
nregistrrilor dintr-o tabel, prin gruparea tuturor nregistrrilor
pentru un anumit atribut sau grup de atribute.
Indexarea este utilizat n dou scopuri principale:
- accelerarea cutrilor n baza de date
- asigurarea unicitii nregistrrilor
Vom privi o relaie ca o colecie de date (o mulime) n care
nu sunt admise elemente duplicat. n cazul unei mulimi
reprezentate printr-o colecie neordonat de elemente, timpul de
cutare a unui element crete proporional cu numrul de
elemente ale mulimii, deoarece n cazul cel mai ru trebuie
parcurse toate elementele mulimii pentru a gsi elementul dorit.
Timpul de cutare a unui element poate fi micorat considerabil
dac elementele mulimii sunt ordonate.
Un exemplu este cel utilizat uzual n cri. ntr-o carte gsim
la sfrit termenii importani aranjai n ordine alfabetic. La fiecare
termen din aceast list este furnizat un numr de pagin n care
apare i este explicat termenul. Utiliznd aceast list se gsete
imediat un termen cutat. Fr o astfel de list, neexistnd o
ordine de ghidare a cutrii, singura alternativ este explorarea
complet a ntregului material pentru a gsi termenul dorit.
n general, operaiile de cutare, inserare i tergere a
elementelor ntr-o mulime (tabel) se execut mai rapid dac
elementele mulimii (nregistrrile) sunt reprezentate printr-o
colecie ordonat. n tehnologia bazelor de date, ordonarea
coleciilor de date se face prin indexarea datelor.
Indexul unei tabele este o structur de date adiional
memorat n baza de date care permite accesul rapid la
nregistrrile tabelei prin ordonarea acestora.
De fapt, indexul poate fi gndit ca o tabel cu dou atribute:
primul atribut conine valorile atributelor tabelei bazei de date
pentru care se creaz indexul, iar al doilea conine un pointer la
locaia nuplurilor corespunztoare. Valorile sunt aranjate fie n
ordine descendent cheii de indexare, fie n ordine ascendent.

O reprezentare generic a structurii de index este:

Tabela de date

Index

Acces

Criteriu

Criteriu

Figura 3.1. O structur generic de index


Indecii se clasific dup tipul de cmp sau dup nivel i
dup modul de organizare a tabelei. O clasificare a acestora este
urmtoarea:
1. Indexul primar este un index asociat unei tabele ordonate
dup cmpul cheie al tabelei, iar n structura de index se
utilizeaz cmpul cheie.
2. Indexul secundar este un index construit tot pe baza unui
cmp cheie, dar tabela nu este ordonat dup cmpul
cheie.
3. Indexul de grup (cluster) este un index construit dup
cmpuri ce nu sunt cmpuri cheie (criteriu de acces este
diferit de cmpul cheie), iar tabela poate fi ordonat sau nu
relativ la criteriul de acces.
4. Indexul multinivel (se mai numesc i indeci de blocuri) se
aplic oricror tabele. Principiul de baz este de a construi
niveluri de indexare pn cnd structura adiional de date
corespunde indexului de cel mai mare nivel poate fi
memorat ntr-un singur bloc. Aceti indeci se construiesc
+
n dou forme: bazai pe arbori B i bazai pe arbori B .

3.8.1. Indexul primar


Un index primar este un fiier ordonat cu nregistrri de
lungime fix avnd dou cmpuri. Primul cmp al indexului este
de acelai tip cu un cmp cheie ordonat al tabelei de date, iar al
doilea cmp este un pointer ctre un bloc (o adres a unui bloc).
Cmpul cheie de ordonare se mai numete i cheie primar
a tabelei de date. Asociaia celor dou cmpuri formeaz intrarea
index sau nregistrarea index pentru fiecare bloc al tabelei de date.
Cum tabela de date este ordonat dup valorile cmpului index, n
fiierul index valoarea primului cmp este dat de valoarea
cmpului index de la prima nregistrare a blocului. Al doilea cmp,
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, ct i datorit faptului
c un index este similar cu o tabel, dar are numai dou cmpuri.
Ca efect, cutarea ntr-un fiier index este mult mai rapid dect
ntr-o tabel de date, putnd fi utilizate metode de cutare binare.

<k> reprezint cheia de ancorare bloc


<p> reprezint pointerul la bloc
Figura 3.2. Indexul primar

3.8.2. Indexul secundar


Metoda de indexare secundar se aplic la tabele
neordonate, indiferent dac valorile cmpului dup care se face
indexarea n tabela de date sunt sau nu distincte.
Indexul secundar este un fiier ordonat cu dou cmpuri ca
i la ali indeci, n care primul cmp este identic cu cel al tabelei
de date, iar al doilea cmp este un pointer. Cmpul pentru care
indexul este construit se numete i cmp de indexare.
n concluzie, orice cmp al unei tabele poate fi cmp de
indexare secundar.

<k> reprezint cheia de ancorare bloc


<p> reprezint pointerul la bloc
Figura 3.3. Indexul secundar

3.8.3. Indexul de grup


Astfel de indeci sunt folosii cnd nregistrrile tabelei de
date sunt ordonate fizic dup un cmp care nu este cheie
(noncheie), deci un cmp ce nu are valori distincte la fiecare
nregistrare. Un astfel de cmp identific un grup de nregistrri
(clustering field). n aceast situaie se poate crea un index ce
faciliteaz gsirea nregistrrilor ce aparin unui cmp.
Un index de grup este deci un fiier ordonat cu dou
cmpuri, primul cmp coninnd aceeai informaie cu cea a
cmpului noncheie de ordonare, al doilea fiind destinat unui
pointer ctre un bloc de date. n acest mod, fiierul index conine
cte o intrare pentru fiecare valoare distinct a cmpului de
ordonare. Al doilea cmp al nregistrrii index conine un pointer
ctre blocul n care apare pentru prima oar valoarea cmpului de
ordonare din primul cmp al indexului.

<k> reprezint cheia de ancorare bloc


<p> reprezint pointerul la bloc
Figura 3.4. Indexul de grup

3.8.4. Indexul multinivel


Metodele de indexare descrise pn acum opereaz cu un
fiier index ordonat. Asupra fiierului index se aplic metode de
cutare binar pentru localizarea nregistrrilor cu valoarea
specificat n cmpul index.
Pentru un index multinivel, fiierul index este vzut ca un
nou fiier la care se construiete un nou index i aa mai departe.
Primul fiier index conine cte 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, aa c al doilea nivel are cte o intrare
pentru fiecare bloc al primului nivel, ntruct 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 indecii? Dai cteva exemple de indeci.

n imaginea alturat este prezentat baza de date, dup


ce s-a realizat proiectarea ei, crearea tabelelor i a relaiilor
dintre ele i dup ce s-au impus constrngerile.

Cmpurile scrise ngroat sunt cheile primare din cadrul


fiecrei tabele.
Liniile dintre tabele arat relaiile care le-am creat prin
proiectare ntre fiecare dou tabele. La capetele liniilor sunt dou
cmpuri: cmpul scris nengroat reprezint cheia strin a
tabelei i dup cum spune i definiia, face legtura cu cheia
primar a celeilalte tabele.

Lucrare de verificare a cunotinelor


1. Propun pe lng aplicaia pe care am proiectat-o i realizat-o
mpreun s ncercai s aplicai aceleai etape i pentru o alt dou
aplicaie descris mai jos.
Aplicaie pentru gestiunea angajailor dintr-o companie.
Se dau mai jos cerinele pentru construcia unei baze de date
aferente unei companii, baza de date numit COMPANIE, ce are ca
scop ilustrarea procesului descris. n faza preliminar se cunoate faptul
c compania are un numr de angajai organizai pe departamente i
urmrete realizarea unor proiecte. Pentru simplitate, se presupune c
dup analiza cerinelor s-a decis urmtoarea descriere, ca elemente
primare, pentru baza de date:

Compania este organizat n departamente, fiecare departament are


un nume, un numr de cod, un numr de angajai. 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 locaie

Se pstreaz pentru fiecare angajat numele, CNP, adresa salariul,


sex, data naterii. Fiecare angajat este afiliat la un departament,
ns poate lucra la mai multe proiecte ce nu sunt neaprat
coordonate de acelai departament. Trebuie stocat i numrul de
ore alocate sptmnal pentru fiecare proiect. De asemenea, fiecare
angajat are un ef direct

Lista persoanelor din ntreinerea fiecrui angajat este important


ntruct este utlizat a calculul impozitului, lista coninnd numele,
sexul i data naterii fiecrui ntreinut.

2. Dai exemple de entiti care ar putea exista pentru baza de date


Companie. Scriei entitile propuse de voi alturi de atributele asociate
fiecreia din ele.
3. Dai exemple de relaii care ar putea exista pentru baza de date
Companie. Descriei relaiile dintre toate entitile.
4. Realizai diagrama entitate-relaie asociat bazei de date Companie.
5. Definii cheile primare i strine asociate fiecrui tabel din baza de
date Companie i scriei structura final pentru fiecare tabel.
6. Explicai dac tabelele din baza de date Companie sunt normalizate.
Dai exemple cum sunt ndeplinite fiecare form normal.

Rspunsuri i comentarii la ntrebrile din testele de


autoevaluare
ntrebarea 1.
O proiectare corect a unei baze de date trebuie s parcurg
urmtoarele etape:
Analiza cererilor i strngerea de informaii referitoare la
aplicaie.
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 aplicaiei.
ntrebarea 2.
Obiectele bazei de date sunt urmtoarele:
Tabel (entitate) este o colecie de informaii logice
relaionale tratat ca o unitate
nregistrare (n-uplu). O tabel este compus din nregistrri
sau rnduri. Fiecare nregistrare este tratat ca o simpl
unitate. Fiecare nregistrare este legat de nregistrri ale
altei tabele.
Cmpuri (atribute). nregistrrile sunt constituite din cmpuri
(coloane) . Un cmp este o particul atomic a bazei de
date ce reprezint cea mai mic cantitate de informaie care
poate fi manipulat. Toate nregistrrile dintr-o tabel au
aceleai cmpuri.
ntrebarea 3.
Relaiile ntre tabele pot fi de mai multe tipuri: relaie unar (n
cadrul aceleai tabele), relaia unul-la-unul, relaia unul-la-multe i
relaia multe-la-multe (aceste 3 tipuri de relaii fiind relaii ntre
dou tabele.
ntrebarea 4.
Construirea diagramei entitate-relaie este important pentru o
vizualizare ct mai clar a ansamblului de obiecte din baza de
date.
ntrebarea 5.
Constrngerile sunt reguli care se definesc la proiectarea unei
baze de date i care trebuie s fie respectate de-a lungul
existenei acesteia.

Constrngerile sunt de mai multe feluri:


n cadrul tabelei
o Constrngeri de domeniu
o Constrngeri de nuplu
o Constrngeri impuse de dependene de date
ntre tabele
o Constngeri de integritate referenial
ntrebarea 6.
Procesul de normalizare propus de Codd (1972) urmrete
execuia asupra unei tabele a unor serii de teste pentru a cerceta
apartenena la forma normal. Codd propune trei forme normale
(1NF, 2NF, 3NF), cea mai bun definiie fiind dat mai trziu de
Boyce i Codd, fiind cunoscut sub numele de forma normal
Boyce-Codd.
ntrebarea 7.
Indexul unei tabele este o structur de date adiional memorat
n baza de date care permite accesul rapid la nregistrrile tabelei
prin ordonarea acestora. Indecii sunt de mai multe tipuri:
Index primar
Index secundar
Index de grup
Index multinivel
Indicaii la lucrarea de verificare
Problemele propuse n lucrarea de verificare se fac dup modelele
de exemple prezentate n unitatea de nvare 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:

Crstoiu, Dorin, Baze de date relaionale, Editura Printech,


1999
Rdulescu, Florin, Baze de date n Internet, Editura
Printech, 2000
Ionescu, Felicia, Baze de date relaionale i aplicaii,
Editura Tehnic, 2004
Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii
i 75 de simulri, Editura Andreco, 2003

Browne, Allen, Balter Alison, Bazele Access 95, Editura


Teora, 1999
Pribeanu, Costin,
Baze de date i aplicaii, Editura
MatrixRom, 2000
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic,
1994

Un limbaj pentru baze de date relaionale

Unitatea de nvare Nr. 4


UN LIMBAJ PENTRU BAZELE DE DATE RELAIONALE (SQL)
Cuprins

Pagina

Obiectivele unitii de nvare nr. 4

61

4.1. Introducere
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft
Access
4.1.2. Crearea unei baze de date noi
4.1.3. nchiderea unei baze de date

62
62

4.2. Tipuri de date MICROSOFT Access

64

4.3. Operatorii logici

66

4.4. Limbajul standard SQL


4.4.1. Scurt istoric al limbajului SQL
4.4.2. Crearea unei tabele
4.4.3. Salvarea unei tabele
4.4.4. tergerea unei tabele
4.4.5.Modificarea structurii unei tabele

68
68
69
72
73
74

4.5.Modificarea datelor n SQL


4.5.1. Inserarea de noi linii ntr-o tabel
4.5.2. tergerea unor linii dintr-o tabel
4.5.3. Modificarea unor linii dintr-o tabel

74
74
75
77

4.6. Limbajul de cereri n SQL


4.6.1. Cereri simple
Expresii aritmetice
Alias de coloan
Constante (literali)
4.6.2. Clauza DISTINCT
4.6.3.Clauza ORDER BY
4.6.4. Clauza WHERE
Operatorul BETWEEN
Operatorul IN
Operatorul IS NULL
Operatorul LIKE
4.6.5. Funcii de grup
4.6.6. Clauza GROUP BY
4.6.7. Clauza HAVING
4.6.8. Cereri coninnd mai multe tabele

79
79

Lucrri de verificare a cunotinelor

99

63
63

84
85
86

90
92
93
94

Un limbaj pentru baze de date relaionale

Rspunsuri i comentarii la ntrebrile din testele de


autoevaluare

101

Biblliografie

102

nc de la nceput doresc s v felicit pentru parcurgerea cu


succes a primelor trei uniti de nvare i s v urez bun venit la
studiul acestei noi uniti de nvare. n primele trei uniti de nvare
am realizat o scurt introducere n acest amplu 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 nvat i cum se creaz, analizeaz i se
proiecteaz corect o baz de date.
n aceast unitate de nvare nr. 4 vom studia cum se creaz,
se manipuleaz i se terge o baz de date i datele stocate n ea.
OBIECTIVELE unitii de nvare nr. 4
Principalele obiective ale unitii de nvare nr. 4 sunt:
Dup studiul unitii de nvare nr. 4 vei fi capabil s demonstrezi c
ai dobndit cunotine suficiente pentru a nelege:

cum se folosete 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 folosii n algebra relaional

ce este limbajul SQL i care sunt operaiile care se pot efectua


n acest limbaj

cum se face o interogare ctre 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 informaiile


din tabel, cum se insereaz date n tabel, cum se terg datele
dintr-o tabel i cum se terge o tabel

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 numete Universitate i conine urmtoarele tabele:
Facultate(CodFac, Denumire, Adresa, NumeDecan)
Studenti(CodStud, CodFac, An, Grupa, Media, Bursa)
StudPers(CodStud, CNP, Nume, Init, Prenume, DataNasterii,
LocNast, Tata, Mama, Adresa)
Materii(CodMaterie, Denumire, An, NumeProfesor)
Note(CodNota, CodStud, CodMatrie, Nota, Data)
Observaie: Cmpurile subliniate sunt chei primare n fiecare
tabel.
n acest capitol vor fi prezentate o serie de exemple pentru
nelegerea mai exact a limbajului de interogri SQL. Toate
exemplele au fost dezvoltate in sistemul de baze de date Microsoft
Access.
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access
Pentru a deschide aceast aplicaie folosim meniul StartPrograms-Microsoft Access.

n momentul apsrii Microsoft Access, pe ecranul


monitorului apare imaginea specific acestei aplicaii, ce conine: o
bar de meniu, o bar de instrumente i o fereastr cu toate
tipurile de obiecte care pot fi utilizate n acest program (Tables,
Queries, Forms, Reports, etc).

Pentru a nchide aceast aplicaie se va alege opiunea


Exit din meniul File sau printr-un clic pe butonul din dreapta sus a
ferestrei: .
4.1.2. Crearea unei baze de date noi
O baz de date nou se poate deschide folosind opiunea
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, fr a nchide i aplicaia
Access ce este necesar pentru utilizri ulterioare, se utilizeaz
comanda urmtoare:

sau se apas pe butonul


baza de date.

din colul din dreapa sus al ferestrei cu

O baz de date conine unul sau mai multe tabele.


Teste de autoevaluare
1. Deschidei i nchidei aplicaia Microsoft Access. Explicai
n cteva cuvinte.

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
corespunztor pentru cmpurile din tabele.
Tabelele reprezint obiectele din cadrul bazei de date n
care se stocheaz datele. Un tabel este constituit din cmpuri,
care sunt coloane ale acelui tabel i crora li se atribuie cte un
nume, fiecare avnd 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 fiecrui cmp, tipul i
proprietile acestora, n funcie de dorine. nelegerea corect a
tipurilor de cmpuri disponibile i a proprietilor acestora ne ofer
posibilitatea crerii unor structuri bune i eficiente pentru stocarea
i gestionarea datelor.
Microsoft Access permite folosirea numelor pentru cmpuri
cu o lungime de pn la 64 de caractere inclusiv spaiile nglobate.
Este indicat ca numele s fie scurt, fr spaii i denumirea lui s
fie ct mai sugestiv. Trebuie precizat tipul de date pe care l
conine fiecare cmp.
Aceste tipuri de date disponibile n Access sunt:
Text
Majoritatea cmpurilor folosite n baza de date sunt de tipul
text. Pe lng cmpurile care au tipul evident text, cum ar fi:

Nume, Adresa, cmpurile text se mai pot folosi i pentru numerele


care nu au funcie matematic. De exemplu, se folosesc cmpurile
text pentru stocarea numerelor de telefon, a codului potal etc.
Dimensiunea prestabilit a unui cmp text n Access este de 50
caractere, dar putem alege orice dimensiunea ntre 1 i 255.
Memo
Dimensiunea unui cmp de tipul Memo este de 64KB
(kilooctei), asta nsemnnd c putem stoca aproximativ 16 pagini
de text scris la un rnd pentru fiecare nregistrare. Cmpurile
memo constau numai din text. Pot fi incluse secvene de salt la
nceput de rnd sau salt la rnd nou, dar nu se accept opiuni de
formatare a textului sau indentarea unui paragraf.

Numr
Tipul numr (Number) include mai multe tipuri care difer
prin modul de stocare i viteza de rspuns. Acestea sunt:

1.

tipul Byte (Octet), care accept numai valori ntregi pozitive


pn 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 pn dincolo de limitele de plus i minus 2 miliarde

4.

tipul Single, care acoper domeniul numerelor fracionare cu


pn la 7 cifre semnificative

5.

tipul Double, care acoper domeniul numerelor fracionare


cu pn la 14 cifre semnificative

6.

tipul ReplicationID (IdentificatorDuplicare), care este


reprezentat pe 16 octei i a fost creat cu scopul de a
asigura un identificator unic global (GUID: Globally Unique
Identifier) pentru bazele de date n cazul crora trebuie
realizat sincronizarea unor mari cantiti 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 octei, ora fiind
reprezentat ca o fraciune dintr-o zi. n general este suficient n
majoritatea situaiilor opiunea Short Date (Forma scurt a datei),
dei s-ar putea s dorim ca anul s fie reprezentat pe formatul de
4 cifre.

Valut
.

Tipul valut (Currency) acoper valorile n dolari ntregi pn la


15 cifre i valorile zecimale pn la sutimi de cent. Ca
reprezentare intern, tipul valut este un numr n virgul fix.
Acest format asigur o precizie sporit calculelor financiare,
dar este mai lent dect tipurile de numere ntregi sau n virgul
mobil.
Numr cu incrementare automat
n Microsoft Access, datele de tip numr cu incrementare
automat (AutoNumber) pot fi secveniale sau aleatoare. Microsoft
Access permite stabilirea dimensiunii unui numr cu incrementare
automat, prestabilit fiind ntreg lung. Numerele cu incrementare
automat sunt atribuite chiar n momentul n care ncepem s
adugm o nregistrare nou. n cazul tergerii unei nregistrri
existente, nu exist nici o posibilitate de creare a unei alte
nregistrri cu acelai numr.

Da/Nu
Tipul Da/Nu (Yes/No) stocheaz numai valori true sau false
(adevrat sau fals). O astfel de valoare poate fi afiat n una din
formele True/False, Yes/No sau On/Off.

Obiect OLE
Tipul de cmp OLE este destinat pstrrii datelor provenite
de la alte programe, care s-au nregistrat ele nsele ca servere
OLE n Windows.Aceasta permite bazei de date s stocheze
documentele create de programe de prelucrare a textelor, seturi
de foi de calcul, ilustraii, sunete, videoclipuri, etc.

Program wizard de cutare


Programul wizard de cutare (Lookup Wizard) nu este
ctui de puin un alt tip de cmp. El reprezint o metod
convenabil de crearea a unui cmp care ndeplinete funcia de
cutare ntr-un alt tabel.

Vom reveni la limbajul SQL.


Vom prezenta ca o introducere pentru limbajul SQL,
operatorii logici pe care i vom folosi la interogri.

4.3. Operatorii logici


Majoritatea operaiilor algebrei relaionale implic folosirea
operatorilor logici, operatori care de obicei ntorc un rezultat
boolean rezultat care are valoarea true (adevrat) sau false
(fals). Spunem de obicei deoarece dac adugm valoarea null la
modelul relaional, lucrurile se complic puin. Null adaug o a
treia valoare la setul de valori boolene. Aceast valoare este
prezentat pe larg n capitolul anterior. n concluzie, n algebra
relaional se folosesc trei valori: true, false, null.

Operatorii logici folosii n algebra relaional sunt: AND,


OR, XOR.
Tabelele de adevr pentru operatorii logici standard sunt:
TRUE FALSE NULL
AND
TRUE
FALSE
NULL

TRUE FALSE NULL


FALSE FALSE NULL
NULL
NULL
NULL

OR
TRUE
FALSE
NULL

XOR
TRUE
FALSE
NULL

TRUE

FALSE NULL

TRUE
TRUE
NULL

TRUE NULL
FALSE NULL
NULL
NULL

TRUE

FALSE NULL

FALSE TRUE NULL


TRUE FALSE NULL
NULL
NULL
NULL

Dup cum se vede, null op orice, unde op este un


operator logic, ntoarce valoarea null.
Ali operatori (=,) sunt prezentai mai jos:
=
TRUE
FALSE
NULL

TRUE
FALSE
NULL

TRUE

FALSE NULL

TRUE FALSE NULL


FALSE TRUE NULL
NULL
NULL
NULL
TRUE

FALSE NULL

FALSE TRUE NULL


TRUE FALSE NULL
NULL
NULL
NULL

SQL ne mai pune la dispoziie nc 2 operatori unari- IS


NULL i IS NOT NULL pentru manipularea valorilor nule.
IS NULL IS NOT NULL
<valoare>
TRUE
FALSE
NULL

FALSE
FALSE
FALSE
TRUE

TRUE
TRUE
TRUE
FALSE

<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 limbaj standard de descriere a
datelor i acces la informaiile din bazele de date, ulterior
dezvoltndu-se ca o adevrat tehnologie dedicat arhitecturilor
client-server.
Utilizat iniial de ctre firma IBM pentru produsul DB2,
limbajul de interogare al bazelor de date relaionale SQL a devenit
la mijlocul deceniului trecut un standard n domeniu. De atunci i
pn n prezent au fost dezvoltate un numr de 7 versiuni ale
standardului SQL, trei dintre acestea aparinnd Institutului
Naional American de Standarde (ANSI), celelalte fiind concepute
de firme de prestigiu ca IBM, Microsoft, Borland, sau de ctre
consoriile 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 activiti de promovare
a standardelor n domeniul sistemelor deschise. Din pcate, lipsa
unui standard unic SQL are drept consecine creterea costurilor
programelor de gestiune a bazelor de date i ngreuneaz
ntreinerea arhitecturilor client/server.
Termenul SQL reprezint o prescurtare a Structured Query
Language.
Comenzile principale n cazul limbajului SQL se refer la
cele cinci operaii de baz care se pot efectua ntr-un limbaj
relaional:

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

n acest mediu exist dou moduri pentru crearea


interogrilor: modul de scriere efectiv a cererilor n partea de
Queries sau un mod grafic mult mai prietenos utilizatorului numit
Design View. Vom prezenta interogrile i n primul mod: SQL
VIEW, dar i n modul grafic.
Teste de autoevaluare
2. Care sunt operatorii algebrei relaionale?

3. Ce reprezint prescurtarea SQL?

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

simplificat

pentru

aceast

comand

este

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 conine tipul
valorilor acelei coloane i alte elemente de descriere pentru ea. n
descrierea unei coloane se poate specifica, pe lng tipul valorilor
sale i alte constrngeri 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 informaie.

PRIMARY KEY indic faptul c coloana specificat cu


aceast constrngere va fi cheie primar pentru acest
tabel.

FOREIGN KEY necesit ca fiecare valoare din coloan s


existe ntr-o coloan corespondent dintr-o tabel referit.
Constrngerea FOREIGN KEY poate face referire doar la

coloane care sunt PRIMARY KEY sau UNIQUE n tabela


referit.

DEFAULT indic o valoare implicit care l ia un cmp al


unei tabele.

Interogrile prezentate mai departe vor fi fcute n modul


SQL VIEW. Pentru a intra n acest mod ne poziionm pe obiectul
Queries i apsm butonul
. Va aprea o fereastr pentru
alegerea tipului de creare a interogrii. Facem opiunea Design
View i vom face opiunea View SQL View din noul meniu sau
apsm clic dreapta de la mouse pe fereastra Query i facem
opiunea 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 integer 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));

create table Note (


CodNota integer autonumber primary key,
CodStud integer,
CodMaterie integer,
Nota byte,
Data date);
Dup rularea acestor fraze SQL vor aprea 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 toi utilizatorii.
Pentru a crea o tabel n modul Design se face opiunea
. Va aprea o fereastr n care trebuie
completat denumirea cmpului, tipul de date asociat cmpului
respective
i
dac
exist
observaii.

Vom exemplifica dect crearea tabelei Facultate. Dup


completarea denumirii cmpurilor n zona Field Name i a tipurilor
de date n zona Data Type vom seta cheia primar. Acest lucru se
face poziionndu-ne cu cursorul de la mouse pe partea din
stnga cmpului corespunztor cheii primare (n cazul nostru
CodFac), se apas clic dreapta i se face opiunea Primary Key.

Se salveaz tabela cu un nume dat de utlizator.


4.4.3. Salvarea unei tabele
O tabel se salveaz cu opiunea Save din meniul File, sau
printr-un clic pe simbolul
din bara de instrumente. Va aprea un
mesaj pentru confirmarea salvrii tabelei.

Aceeai pai trebuie urmai i pentru celelalte tabele.


n final, partea de obiecteTables va arta astfel:

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 grafic se face astfel: ne
poziionm n obiectul Tables, unde sunt afiate toate tabelele din
baza de date, apsm clic dreapta de la mouse pe tabelul dorit
pentru tergere i facem opiunea Delete.
Va aprea un mesaj de confirmare:

Se va apsa butonul Yes dac se dorete ntr-adevr


tergerea tabelei sau se apas butonul No dac se dorete
revenirea asupra operaiei de tergere.

4.4.5. Modificarea structurii unei tabele


Modificarea structurii unei tabele n limbajul SQL standard
se face cu comanda ALTER TABLE. Aceast comand este
folosit pentru a aduga coloane la tabele de baz din baza de
date sau pentru a terge anumite constrngeri.
O nou coloan adaugat prin aceast comand va avea
valoarea null n toate nregistrrile care existau n tabel.
Sintaxa acestei comenzi este:
ALTER TABLE nume_tabela
ADD coloana_n descriere_n [DROP constrangere]
Exemplu:
Adugarea cmpului Ora de tip integer tabelei Note se face astfel:
alter table Note add Ora integer;
Modificarea structurii unei tabele n modul grafic se face
astfel: ne poziionm n obiectul Tables, unde sunt afiate toate
tabelele din baza de date, apsm clic dreapta de la mouse pe
tabelul dorit pentru modificare i facem opiunea Design. Va
aprea o fereastr cu structura tabelei. Se vor face modificrile
dorite i apoi se salveaz tabelul.

4.5. Modificri ale datelor n SQL


4.5.1. Inserarea de noi linii ntr-o tabel
Comanda INSERT care permite inserarea de noi linii ntr-o
tabel are urmtoarea sintax simplificat n limbajul SQL
standard:
INSERT INTO nume_tabela [(nume_coloana, )]
VALUES (valoarea_coloana_1, valoare_coloana_2,)
Aceast comand ne permite inserarea manual de noi
nregistrri. Dac este prezent lista de coloane (nume_coloana,
) nseamn c se dau doar valori pentru aceste coloane, pentru
celelalte asignndu-se valori de null.
Exemplu:
Introducerea unor nregistrri in tabela Facultate se face astfel:
insert into Facultate values
(1,Electrotehnica,Noul Local,),
(2,Energetica,Noul Local,),

(3,Automatica,Noul Local,Dumitru Popescu),


(4,Electronica,Leu,),
(5,Aeronave,Polizu,),
(6,Mecanica,Noul Local,),
(7,Transporturi,Noul Local,);
Dup rularea aceste fraze SQL, tabela Facultate va arta
astfel:

Dac un cmp de tip integer nu conine nici o valoare se va


scrie NULL, iar dac este de tip text se va lsa spaiu.
Inserarea datelor ntr-un tabel n modul grafic se face astfel:
ne poziionm n obiectul Tables, unde sunt afiate toate tabelele
din baza de date, apsm clic dreapta de la mouse pe tabelul n
care dorim s introducem date i facem opiunea Open. Va aprea
o fereastr cu datele deja existente n tabel. Se vor face
inserrile 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 urmtoarea:
DELETE FROM nume_tabela
[WHERE conditie] [LIMIT numar_linii]
Efectul acestei comenzi este de tergere a liniilor care
ndeplinesc condiia din clauza WHERE. LIMIT se folosete pentru
a specifica numrul maxim de linii care se pot terge cu acea
comand. n cazul n care clauza WHERE lipsete, toate liniile
tabelei vor fi eliminate.
Exemplu:
tergerea studenilor din tabela Studenti care au media mai mic
de 7.

delete from Studenti where medie<7;


nainte:

Dup rularea acestei interogri se va terge nregistrarea a4-a, aceasta ndeplinind condiia media<7.
tergerea datelor dintr-o tabel n modul grafic se face
astfel: ne poziionm n obiectul Tables, unde sunt afiate toate
tabelele din baza de date, apsm clic dreapta de la mouse pe
tabelul din care dorim s tergem anumite date i facem opiunea
Open. Va aprea o fereastr cu datele existente n tabela
respectiv. Pentru a terge o nregistrare ne poziionm n partea
stng a nregistrrii dorite pentru tergere, apsm clic dreapta al
mouse-ului i facem opiunea Delete Record.
Va aprea un mesaj de confirmare:

Se va apsa butonul Yes dac se dorete ntr-adevr


tergerea nregistrrii respective sau sa apas butonul No dac se
dorete revenirea asupra operaiei de tergere.

4.5.3. Modificarea unor linii dintr-o tabel


Sintaxa simplificat a comenzii SQL n limbajul standard
care modific liniile dintr-o tabel este urmtoarea:
UPDATE nume_tabela SET colana1=valoare1,
coloana2=valoare2, .
[WHERE conditie] [LIMIT numar_linii]
Efectul acestei comenzi este de actualizare a toturor liniilor
care ndeplinesc condiia din clauza WHERE, sau a tuturor liniilor
din tabel, n cazul n care lipsete 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=Vasilescu where CNP=333333;
Tabela StudPers nainte:

Tabela StudPers dup:

2. Mrirea tuturor burselor studenilor 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 poziionm n obiectul Tables, unde sunt afiate toate
tabelele din baza de date, apsm clic dreapta de la mouse pe
tabelul dorit pentru modificare i facem opiunea Open. Va aprea
o fereastr cu datele deja existente n tabel. Se vor face
modificrile asupra datelor dorite i apoi se salveaz tabelul.

Teste de autoevaluare
4. Care sunt operaiile care se pot efectua n cadrul unei baze de
date?

4.6. Limbajul de cereri n SQL


Regsirea 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, celelalte reprezentnd opiuni.
4.6.1. Cereri simple
Cea mai simpl cerere este cea prin care se regsesc toate
informaiile dintr-o tabel. n acest caz, simbolul * plasat lng
clauza SELECT ine loc de lista tuturor coloanelor unei tabele.
Clauza FROM conine numele tabelei.
Exemplu:
1. Selectarea tuturor informaiilor din tabela Facultati.
select * from Facultate;

Aceast interogare se face n modul grafic astfel: ne


poziionm n partea de Queries i facem opiunea
pentru crearea manual de interogri sau
pentru utilizarea wizardului.
Vom exemplifica realizarea unei interogri n Design View,
acest lucru fiind posibil apsnd dublu clic pe opiunea
.

Va aprea o fereastr n care sunt afiate toate tabelele din


baza de date.

Vom alege acele tabele necesare pentru interogare. De


exemplu, vom realiza o interogare care dup rulare mi va afia
toate nregistrrile din tabela Facultate. Vom alege tabela
Facultate i n partea de jos alegem ce cmpuri doresc s fie
afiate dup rularea interogrii.
Caracterul * reprezint toate cmpurile dintr-o tabel.

Pentru rularea efectiv a interogrii se apas butonul Run


. Rezultatele obinute n urma rulrii vor aprea ntr-o fereastr
astfel:

Pentru orice tip de interogare paii care trebuie urmai de


utilizatori sunt aceeai. Cei prezentai mai sus.
2. Selectarea tuturor informaiilor din tabela Studenti.
select * from Studenti;

n cazul n care se doresc regsite doar o parte a


coloanelor unei tabele acestea sunt enumerate n clauza SELECT.
Exemplu:
Selectarea anului i a mediei din tabela Studenti.
select An, Media from Studenti;

n clauza SELECT pot fi prezente, pe lng nume de


coloane, o serie de alte construcii, cum ar fi:
a. Expresii aritmetice
Operatorii care pot fi utilizai sunt cei uzuali: +,-,*,/
paranteze. De remarcat c o expresie care conine o valoare nul
se evalueaz la NULL.
Exemplu:
Afiarea 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 conine expresii, numele
coloanelor din rezultat sunt date de acestea. Dac se dorete ca
n rezultat coloana respectiv s aib alt nume, acesta se poate
specifica cu AS nume_nou.
Exemplu:
Afiarea numelui studentului cu denumirea Nume_Student, a
prenumelui cu denumirea Prenume_Student din tabela
StudPersonal.
select nume as Nume_Student, prenume as Prenume_Student
from StudPersonal;

Dac se dorete ca aliasul s conin spaii el trebuie pus


ntre apostrofi:
select CNP, nume as Nume Student, prenume as Prenume
Student from StudPersonal;

c. Constante (literali)
Dac n lista SELECT se gsesc i constante atunci pe
acele coloane toate liniile rezultatului vor conine valorile
respective:
Exemplu:
Selectarea numelui studentului, textul este nscut la data de i
DataNasterii din tabela StudPersonal.
select nume, este nascut la date de, DataNasterii from
StudPersonal;

4.6.2. Clauza DISTINCT


n cazul cererilor de pn acum din fiecare linie a tabelei
rezult o linie a rezultatului, chiar dac uneori unele linii sunt
identice, ca n cazul urmtor:
Exemplu:
Afiarea codului numeric al facultii pentru care exist studeni n
tabela Studenti;
select CodFac from Studenti;

Pentru a elimina liniile duplicat ale unui rezultat se folosete


clauza DISTINCT care apare ntre cuvntul cheie SELECT i lista
de elemente ale rezultatului.
select distinct CodFac from Studenti;

4.6.3. Clauza ORDER BY


Ordinea n care apar liniile unui rezultat este dat de modul
n care un sistem de gestiune stocheaz i regsete informaia n
tabele. Din aceast cauz n limbajul SQL exist posibilitatea de a
sorta liniile unui rezultat n funcie de necesitile utilizatorului.
Criteriile de sortare se definesc cu ajutorul clauzei ORDER
BY. Aceasta este n mod normal ultima clauz care apare ntr-o
cerere i poate conine nume de coloane, aliasuri de coloane sau
numrul de ordine al coloanei n rezultat. Cnd sunt specificate
mai multe criterii ele se aplic de la stnga la dreapta.
Exemplu:
Afiarea CNP, nume, prenume, data naterii
StudPersonal ordonai dup nume i prenume.

din

tabela

select CNP, Nume, Prenume, DataNasterii from StudPersonal

order by nume, prenume;

Dup cum se poate observa ordinea de sortare implicit


este cea ascendent (cresctoare):

Pentru numere - de la valoarea cea mai mic la cea mai


mare

Pentru iruri de caractere - ordinea este cea lexicografic,


din dicionar

Pentru date calendaristice - de la cea mai veche dat la cea


mai nou

Inversarea ordinii implicite se poate face pentru fiecare criteriu


de sortare n parte folosind cuvntul cheie DESC (descendent)
plasat dup criteriul respectiv.

O problem important este tratarea valorilor nule (NULL) de


clauza ORDER BY. Aceste valori sunt considerate a fi mai mici
dect orice alt valoare, deci vor apare primele pentru sortarea
implicit i ultimele pentru sortarea descendent.
Exemplu:
Afiarea n ordine ascendent a rezultatului dup valoarea bursei
i o sortare descendent dup codul studentului n tabela
Studeni.
select CodStud, Bursa from Studenti order by Bursa, CodStud
desc;

4.6.4. Clauza WHERE


Pn acum, n afara cazurilor n care se utilizeaz
DISTINCT, din fiecare linie a tabelei rezult o linie a rezultatului.
Prin folosirea clauzei WHERE se poate specifica o condiie care
indic liniile din tabela care vor avea asociat cte o linie din
rezultat.
Exemplu:
Afiarea media i valoarea bursei pentru studenii de la facultatea
cu codul 3 din tabela Studenti.
select Media, Bursa from Studenti where CodFac=3;

Operatorii care se pot folosi sunt cei obinuii:


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

Exemplu:
Afiarea codului facultii, media, grupa, anul i valoarea bursei
pentru studenii 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 lng operatorii de mai sus care sunt prezeni n


majoritatea limbajelor de programare exist ns n SQL patru
operatori specifici. Acetia au fost introdui pentru a simplifica
anumite categorii de cereri sau pentru a specifica condiionri care
nu pot fi exprimate prin operatori obinuii.
Aceti operatori sunt:
a.

Operatorul BETWEEN

Sintaxa: between valoare_initiala and valoare_finala


Operatorul between indic o plaj de valori incluznd
valorile din capetele acestuia, cele indicate. Este un operator
derivat, astfel de condiii putnd fi scrise folosind >=, AND,<= i a
fost introdus pentru ca cererile s fie mai apropiate de exprimarea
n limba englez.

Exemplu:
Afiarea codului facultii, media, grupa pentru studenii care au
media cuprins ntre 8 i 9 inclusiv.
select CodFac, Media, Grupa from Studenti where media between
8 and 9;

b.

Operatorul IN

Sintaxa: IN (v1,v2,...vk)
Operatorul IN indic apartenena la o mulime de valori
(v1,v2,...vk). Este de asemenea un operator derivat, dar este
foarte util pentru simplificarea scrierii cererilor n cazul n care
mulimea conine un numr mare de valori.
Exemplu:
Afiarea codului facultii, codul studentului, grupa, bursa pentru
studenii care au codul facultaii 1 sau 3.
select CodFac, CodStud, Grupa, Bursa from Studenti where
CodFac in (1,3);

c.

Operatorul IS NULL

Operatorul IS NULL a fost introdus pentru a se putea testa


dac o valoare a unei expresii este nul, deoarece valorile nule nu
pot fi detectate cu operatori de comparaie obinuii.

Exemplu:
Afiarea codului facultii, codul studentului, grupa pentru studenii
care nu au bursa.
select CodFac, CodStud, Grupa from Studenti where bursa is null;

Pentru negarea acestui operator s-a fcut fcut i o


excepie de la sintaxa standard a expresiilor. Astfel n loc de not
is null, sintaxa SQL prevede forma IS NOT NULL.
Exemplu:
Afiarea codului facultii, codul studentului, grupa pentru studenii
care au bursa.
select CodFac, CodStud, Grupa from Studenti where bursa is not
null;

d.

Operatorul LIKE

Sintaxa: LIKE sablon


Operatorul LIKE a fost introdus pentru a se putea testa
potrivirea valorii unei expresii cu un ablon. ablonul poate
conine caractere care vor fi cutate aa cum sunt i caracterele
speciale:
% nsemnnd orice ir de caractere (inclusiv unul vid)
_ nsemnnd orice caracter
De exemplu 'I_S%L' este un ablon pentru un ir de cel
puin 4 caractere care ncepe cu litera I, are al treilea caracter S i

ultimul caracter este L. Cu acest ablon se potrivesc de exemplu


irurile: INSTABIL, IXSTL, IOSL.
Operatorul se poate folosi inclusiv pentru expresii de alt tip
dect irurile de caractere, valoarea acestora fiind nti convertit
la ir de caractere i apoi verificat potrivirea cu ablonul.
Exemplu:
1. Afiarea codul studentului, numelui, prenumelui, data naterii
pentru studenii care au numele format din 5 litere din tabela
StudPeronal.
select CodStud, Nume, Prenume, DataNasterii from StudPersonal
where nume like
;
2. Afiarea codul studentului, numelui, prenumelui, data naterii
pentru studenii care au prenumele care ncepe cu litera A din
tabela StudPeronal.
select CodStud, Nume, Prenume, DataNasterii from StudPersonal
where Prenume like A%;
4.6.5. Funcii de grup. Clauzele GROUP BY i HAVING
Exist multe cazuri n care se dorete obinerea de date
statistice din informaiile coninute n baza de date. Pentru aceasta
se folosesc funciile de grup, care pe baza nregistrrilor din
ntreaga tabel sau a celor care fac parte dintr-un grup - n cazul
existenei clauzei GROUP BY - calculeaz valoarea statistic
respectiv.
Principalele funcii de grup sunt:
a. Funcia COUNT (numrare) avnd mai multe forme:
COUNT(*) ntoarce numrul de nregistrri din grup
COUNT(expr) ntoarce numrul de valori nenule pentru expresia
argument
COUNT(DISTINCT expr) ntoarce numrul de valori distincte
pentru expresia argument
b. Funcia AVG (medie)
AVG(expr) ntoarce media aritmetic a valorilor unei expresii
c. Funcia MIN (valoarea minim)
MIN(expr) ntoarce valoarea minim a unei expresii

d. Funcia MAX (valoarea maxim)


MAX(expr) ntoarce valoarea maxim a unei expresii
Funciile Min i MAX se pot aplica i irurilor de caractere, n acest
caz se folosete ordinea lexicografic.
e. Funcia SUM (suma valorilor)
SUM(expr) ntoarce suma valorilor unei expresii sau NULL n
cazul n care n grupul pentru care se calculeaz suma este vid.
Valorile nule nu sunt luate n considerare la calcularea sumei.
Aa cum am menionat, n cazul n care cererea nu conine
clauza GROUP BY valoarea funciilor este calculat pentru
ntreaga tabel specificat n clauza FROM.
Exemplu:
Afiarea valorii minime, maxime i media pe coloana media, suma
pe coloana bursa i numrul de nregistrri din tabela Studenti.
select min(Media), max(Media), avg(Media), sum(Bursa), count(*)
from Studenti;

Funciile de grup se pot folosi i n conjuncie cu celelalte


clauze discutate anterior.
Exemplu:
Afiarea mediei mediilor studenilor de la facultatea cu codul 3.
select avg(Media) from Studenti where CodFac=3;

4.6.6. Clauza GROUP BY


Clauza GROUP BY se folosete pentru a grupa
nregistrrile pe baza unor criterii n scopul calculrii de valori
statistice pentru fiecare grup n parte. n acest caz rezultatul cererii
va conine cte o linie pentru fiecare grup identificat.
Sintaxa: GROUP BY coloana1 [, coloana2]
Exemplu:
Afiarea grupat a nregistrrilor din tabela Studenti dup valoarea
coloanei bursa i obinerea unui rezultat coninnd valoarea
bursei, numrul de studeni avnd 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 nregistrrile care au valori comune
pe toate coloanele specificate.
Exemplu:
select CodFac,Bursa,sum(Bursa) from Studenti where CodFac in
(2, 3) group by CodFac,Bursa;

Atenie: n cazul folosirii funciilor de grup n clauza


SELECT nu pot apare alturi de acestea dect valori care sunt
constante pentru fiecare grup n parte- n principal numele
coloanelor dup care s-a fcut gruparea.
De exemplu, cererile urmtoare sunt greite:
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 condiie de filtrare a
nregistrrilor, HAVING face acelai lucru pentru grupuri: doar
grupurile care ndeplinesc condiia coninut n aceast clauz vor
avea o linie n rezultatul cererii.
Condiia specificat prin HAVING este o expresie logic
incluznd funcii de grup sau constante la nivel de grup.
Exemplu:
O cerere n dou variante: fr i apoi cu o clauz HAVING care
elimin o parte din grupuri.
select CodFac, count(*) as NumarStudenti, avg(Media)
MediaFacultatii from Studenti group by CodFac;

as

select CodFac, count(*) as NumarStudenti, avg(Media) as


MediaFacultatii from Studenti group by CodFac having
avg(Media)>8;

4.6.8. Cereri coninnd mai multe tabele


Operaia prin care se obine un rezultat pe baza datelor din
mai multe tabele se numete JOIN. Pentru a se putea efectua un
JOIN este n general necesar ca tabelele s aib coloane comune,
cum este cazul CodFac care se gsete att n tabela Studenti,
ct 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 obinut (teoretic) prin
concatenarea fiecrei linii a unei tabele cu fiecare dintre liniile
celorlalte tabele.
De exemplu, n tabelele de mai sus, produsul cartezian va
conine 7X7=49 lini, deoarece sunt 7 linii n tabela Studenti i 7
linii n tabela Facultate.
Pentru eliminarea liniilor inconsistente cum este
concatenarea nregistrrii unui student al facultii 1 cu nregistrrea
facultii 2 este necesar ca n clauza WHERE s existe aanumita condiie de join. n cazul existenei de coloane comune
ntre tabele, aceasta este o condiie de egalitate a valorilor acelor
coloane.
Exemplu:
1. Afiarea numelui i prenumelui studentului (din tabela
StudPers) i a grupei din care face parte, anul i media (informaii
aflate n tabela Studenti).
select Nume,Prenume,Grupa,An,Media
from Studenti,StudPersonal
where Studenti.CodStud=StudPersonal.CodStud;

Condiia de JOIN este Studenti.CodStud=StudPersonal.CodStud,


unde construcia tabela.coloana a fost folosit deoarece cmpul
CodStud este n ambele tabele cu acelai nume.
2. Afiarea numelui facultii (din tabela Facultate), a numelui i a
prenumelui studentului (din tabela StudPers) i a grupei din care
face parte, anul i media (informaii aflate n tabela Studenti).
select Denumire,Nume,Prenume,Grupa,An,Media
from Facultate,Studenti,StudPersonal
where Studenti.CodStud=StudPersonal.CodStud and
Facultate.CodFac=Studenti.CodFac;

2. Afiarea numelui facultii (din tabela Facultate), numelui i


prenumelui studentului (din tabela StudPers) i a grupei din care
face parte, anul i media (informaii aflate n tabela Studenti)
grupate pe faculti.
Vom folosi aliai pentru numele tabelelor.
select Denumire,Nume,Prenume,Grupa,An,Media
from Facultate F,Studenti S,StudPersonal P
where S.CodStud=P.CodStud and F.CodFac=S.CodFac
order by Denumire;

F, S, P sunt aliaii tabelelor (nu este obligatorie folosirea


cuvntului cheie as). Folosirea numelui de tabel sau a aliasului
ca prefix pentru un nume de coloan este obligatorie doar n cazul
n care pot aprea confuzii.(coloane cu acelai nume n mai multe
tabele), dar nu va fi semnalat eroare dac se folosesc i pentru
celelalte coloane.

3. Afiarea numelui studenilor care au nota la materia cu numele


Analiz.
select Nume, Denumire, Nota
from Studenti S, Materii M, Note N
where S.CodStud=N.CodStud and 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 poziionm pe obiectul Queries i se va deschide urmtoarea
fereastr.

Pasul 2:
Apsm dublu clic pe opiunea Create query in Design view i se
va deschide fereastra care conine toate tabelele din baza noastr
de date:

Pasul 3:
Alegem tabelele care ne sunt necesare pentru interogare. n cazul
nostru StudPersonal, Materii i Note, apsnd pe rnd butonul
Add.

Pasul 4:
Se aleg pentru fiecare tabel cmpurile care trebuie afiate i se
seteaz un criteriu dac acesta exist.

Pasul 5:
Se apas ! (Run) i se va afia rezultatul frazei SQL.

Lucrarea de verificare a cunotinelor 1


1.Creai baza de date Universitate.
2.Creai baza de date Companie
Lucrarea de verificare a cunotinelor 2
1. Creai tabelele din baza de date Universitate n modul grafic.
2. Creai tabelele din baza de date Companie. Structura bazei de
date Companie este cea proiectat n capitolul anterior.
Lucrarea de verificare a cunotinelor 3
1. Creai n baza de date Universitate o tabel suplimetar numit
Test cu un cmp numit testare cu tipul de date text (n modul
grafic).
2. Modificai structura tabelei Test adugnd un cmp numit Nou
cu tipul de date asociat Integer (n modul grafic).
3. tergei tabela Test din baza de date Universitate (n modul
grafic).
Lucrarea de verificare a cunotinelor 4
Introducei date n tabelele din baza de date Companie, folosind
modul grafic, dar i modul SQL view.
Lucrarea de verificare a cunotinelor 5
Realizai n modul SQL View i n modul grafic urmtoarele
interogri:
1. tergei din baza de date Universitate materia care este
predat de profesorul M.Olteanu.
2. tergei din baza de date Universitate toi studenii care s-au
nscut n oraul Constana.
3. tergei dintr-un tabel al bazei de date Companie, 2
nregistrri, dup un criteriu ales de Dvs.
Lucrarea de verificare a cunotinelor 6
Realizai n modul SQL View i n modul grafic urmtoarele
interogri:
1. Modificai n baza de date Universitate Adresa la faculti cu
denumirea Splaiul Independenei.
2. Modificai anul de studiu al tuturor studenilor care au media

>5, acetia fiind considerai promovai n anul de studiu curent.


3. Modificai un tabel al bazei de date Companie, dup un criteriu
ales de Dvs.
Lucrarea de verificare a cunotinelor 7
Realizai n modul SQL View i n modul grafic urmtoarea
interogare:
1. Afiai toate datele stocate n tabela StudPers.
Lucrarea de verificare a cunotinelor 8
Realizai n modul SQL View i n modul grafic urmtoarele
interogri:
1. Afiai notele i data efecturii testrii pentru toate
nregistrrile din tabela Note.
2. Afiai numele facultii i adresa din tabela Facultati
folosind aliaii de coloan Nume facultate i Adres
facultate.
3. Afiai cmpurile nume facultate, nume decan i ntre
acestea textul are decanul din tabela Facultate.
Lucrarea de verificare a cunotinelor 9
Realizai n modul SQL View i n modul grafic urmtoarele
interogri:
1. Afiai notele distincte care exist salvate n baza de date.
2. Afiai n ordine ascendent n funcie de data naterii toi
studenii din tabelul StudPers.
3. Afiai n ordine descendent toate nregistrrile din tabela
Note, ordonai dup ID-ul facultii.
4. Afiai toate materiile din anul 1.
5. Afiai toi studenii care sunt nscui n Bucureti sau n
judeul Teleorman.
6. Afiai toate grupele cu studenii care au media ntre 7 i 9
sau aparin de facultile care au codul facultii 1 sau 2.
7. Afiai toate numele studenilor care ncepe cu A i
prenumele cu I.
Lucrarea de verificare a cunotinelor 10
Realizai n modul SQL View i n modul grafic urmtoarele
interogri:
1. Afiai numrul de faculti din universitate.
2. Afiai care este cea mai mic i cea mai mare not
obinut de studenii de la facultatea cu id-ul 3.
3. Afiai nota obinut de studentul cu numele Ionescu la
materia Analiz.
4. Afiai grupele care exist n fiecare facultate grupate pe
ani.

Rspunsuri i comentarii la ntrebrile din testele de


autoevaluare
ntrebarea 2.
Operatorii din algebra relaionl sunt AND, OR, XOR, =, , IS
NULL, IS NOT NULL. n limbajul standard SQL mai exist i sunt
folosii i ali operatori ca: BETWEEN, IN etc.
ntrebarea 3.
Termenul SQL reprezint o prescurtare a Structured Query
Language. El a fost utilizat iniial de ctre firma IBM pentru
produsul DB2, limbajul de interogare al bazelor de date relaionale
SQL a devenit la mijlocul deceniului trecut un standard n
domeniu.
ntrebarea 4.
Operaii 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
Indicaii la problemele propuse
Problemele propuse n lucrrile de verificare se fac dup modelele
de exemple prezentate n unitatea de nvare sau dup tipicul
acestora.

Bibliografie:

Crstoiu, Dorin, Baze de date relaionale, Editura Printech,


1999
Rdulescu, Florin, Baze de date n Internet, Editura
Printech, 2000
Ionescu, Felicia, Baze de date relaionale i aplicaii,
Editura Tehnic, 2004
Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii
i 75 de simulri, Editura Andreco, 2003
Browne, Allen, Balter Alison, Bazele Access 95, Editura
Teora, 1999
Pribeanu, Costin,
Baze de date i aplicaii, Editura
MatrixRom, 2000
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic,
1994

Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Unitatea de nvare Nr. 5


CONSTRUIREA INTERFEELOR CU AJUTORUL FORMULARELOR
N MICROSOFT ACCESS
Cuprins

Pagina

Obiectivele unitii de nvare nr. 5

104

5.1. Ce este un formular?

105

5.2. Lucrul cu formularele


5.2.1. Deschiderea unui formular
5.2.2. Crearea unui formular
5.2.4. Utilizarea unui formular
pentru a introduce i a modifica date n tabel
5.2.4. Parcurgerea nregistrrilor utiliznd formularele
5.2.5. Adugarea i modificarea textului n antet i subsol
5.2.6. tergerea unui formular

105
105
105
109

5.3. Salvarea i nchiderea unui formular

112

Lucrare de verificare a cunotinelor

113

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

114

Bibliografie

114

110
110
112

nc de la nceput doresc s v felicit pentru parcurgerea cu


succes a primelor patru uniti de nvare i s v urez bun venit la
studiul acestei noi uniti de nvare. n primele patru uniti de
nvare am realizat o scurt introducere n acest amplu domeniu al
bazelor de date, am descris mai n detaliu 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 nvare nr. 5 vom studia cum se creaz,
se manipuleaz i se terge un formular pentru introducerea datelor n
baza de date.
OBIECTIVELE unitii de nvare nr. 5
Principalele obiective ale unitii de nvare nr. 5 sunt:
Dup studiul unitii de nvare nr. 5 vei fi capabil s demonstrezi c
ai dobndit cunotine suficiente pentru a nelege:

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

5.1. Ce este un formular?


Formularele (Forms) reprezint ferestrele primare folosite
pentru introducerea i afiarea datelor n Access. Formularele v
permit s prezentai datele ntr-o form care l scutete pe
utilizator de preocuprile legate de modul de stocare al acestora.
Se pot crea formulare diferite pentru utilizri diferite: introducerea
unor intregistrri noi, editarea celor existente, numai pentru afiare
sau formulare care funcioneaz pur i simplu ca nite 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 apsarea dublu clic pe respectivul formular din
obiectul Forms. Toate formularele create ntr-o baz de date se
vor gsi 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 opiunea
Forms. Va aprea o fereastr cu mai multe tipuri de programe
wizard pentru formulare:

Design View (modul proiectare) permite crearea tuturor


elementelor manual

Form Wizard ofer posibilitatea controlrii fiecrei etape a


procesului

AutoForm: Columnar (Configurare automat a formularului:


aezare n coloan) creaz un formular cu controalele aliniate
unul sub cellalt (configuraie corespunztoare pentru un
formular principal)

AutoForm: Tabular (Configurare automat a formularului:


aezare tabelar) creaz un formular cu controalele aliniate
unul lng cellalt (configuraie corespunztoare pentru un
subformular)

AutoForm: DataSheet (Configurare automat a formularului:


modul DataSheet) creaz un formular avnd modul de afiare
prestabilit DataSheet (configuraie corespunztoare pentru
afiarea numrului maxim posibil de nregistrri deodat)

Chart Wizard (program pentru reprezentri grafice) creaz un


grafic. Pentru a obine un grafic tiprit, se folosete un raport n
loc de formular

PivotTable Wizard (program pentru tabele pivot) creaz un


formular pentru afiarea datelor din Excel.

Sub lista programelor wizard se afl o caset cu list


derulant n care trebuie s selectai tabelul sau interogarea care
va servi ca surs de date pentru formular. n cazul unui formular
caset de dialog, caseta pentru precizarea sursei de date poate fi
lsat necompletat.
Exemplu:
Vom exemplifica crearea unui formular nou pentru
introducerea datelor n tabela Facultate, folosind opiunea Create
by using wizard, urmnd paii necesari pentru a crea formularul
dorit.
Pas 1:
Se alege tabela creia dorii s i creai formularul i se
apas butonul Next.

Pas 2:
n aceast etap se alege modul n care s fie afiate atributele n
formular i se apas Next

Pas 3:
n aceast etap se pot alege din stilurile predefinite, stilul pe care
l dorii s l conin formularul.

Pas 4:
Aceasta este etapa final, n care v alagei numele dorit penrtu
formular i dac dorii s introducei date n tabel cu ajutorul
formularului.

Pentru a salva un formular se face opiunea Save din


meniul File.
5.2.3. Utilizarea unui formular
pentru a introduce i a modifica date n tabel
Avnd deschis forma, putei introduce i modifica date n
tabela corespunztoare formularului.

Pentru a introduce date n tabel cu ajutorul formularului


trebuie apsat butonul
. Acesta ne va poziiona pe o nou
nregistrare i vom putea introduce noile date. Ne vom poziiona
cu cursorul n cmpurile de editare i vom introduce datele
corespunztoare noii nregistrri.
Pentru a modifica date n tabel cu ajutorul formularului
trebuie s ne poziionm pe nregistrarea dorit cu ajutorul
mouse-ului i apoi se modific datele dorite.
Exemplu:
De exemplu, dorim ca la nregistrarea de mai sus s
completm numele decanului. Pentru aceasta ne poziionm pe
respectiva nregistrare i apoi n dreptul atributului NumeDecan
introducem numele dorit. Dup realizarea modificrilor, prin
nchiderea formularului, modificrile vor fi actualizate n tabel.

5.2.4. Parcurgerea nregistrrilor utiliznd formularele


Cu ajutorul formularelor putem parcurge toate nregistrrile
unei tabele. Acest lucru l putem realiza cu ajutorul butoanelor
existente n partea de jos a formularului.

Butonul
se folosete pentru poziionarea pe prima
nregistrare a tabelei

Butonul
se folosete
nregistrarea anterioar

Butonul
urmtoare

Butonul
se folosete pentru poziionarea pe ultima
nregistrare a tabelei

Butonul
nou.

pentru

rentoarcerea

la

se folosete pentru trecerea la nregistrarea

se folosete pentru a aduga o nregistrare

5.2.5. Adugarea i modificarea textului n antet i subsol


Pentru a putea face modificri n cadrul unui formular, mai
exact dac dorim adugarea unui text sau a unei imagini n antetul
sau subsolului unui formular este necesar s deschidem
formularul n modul Design al formularului apsnd butonul
sau fcnd opiunea Design View, care apare la
apsarea clic dreapta pe respectivul formular.

Pe ecran va aprea constructorul de formulare n care


putei modifica ceea ce dorii. Va aprea i o bar de instrumente
corespunztoare constructorului de formulare, prin intermediul
creia putem realiza diferite modificri n formular.

Exemplu:
De exemplu, dorim s scriem n antet Formular pentru
introducerea datelor . Pentru asta va trebui s facem loc n partea
antetului csuei de text, trgnd efectiv cu mouse-ul antetul i
apoi n spaiul creat introducem textul dorit. Pentru a introduce un
text trebuie apsat butonul
de pe bara de instrumente. Dup
apsarea acestui buton selectai locul unde dorim poziionarea
textului i apoi vom introduce textul.

Dup introducerea textului se salveaz forma pentru a


vedea modificrile fcute asupra ei.
Forma final a formularului este:

Asemntor se poate modifica i subsolul formularului, sau


putem introduce imagini n formulare folosind comanda InsertPicture.
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 apsm butonul Delete din tastatur, fie
apsnd butonul
existent n parte de sus a ferestrei, fie
apsnd clic dreapta i fcnd opiunea Delete.
Pe ecran va aprea o caset de dialog n care se cere
confirmarea tergerii formularului.

Apsnd butonul Yes se confirm tergerea formularului,


iar apsnd No se renun la operaia de tergere.

5.3. Salvarea i nchiderea unui formular


Pentru salvarea formularului sau a oricrei modificri fcute
asupra lui, se apas butonul Save
existent pe bara de
instrumente a aplicaiei, sau fcnd opiunea Save din meniu.
Pentru nchiderea formularului sau se apas butonul
din
partea dreapt a ecranului sau fcnd opiunea Close din meniu.

Lucrare de verificare a cunotinelor


1. Creai un formular pentru introducerea datelor personale
despre studeni pentru baza de date Universitate cu titlul
Date personale studeni i salvai-l cu numele Personal.
2. Introducei dou nregistrri n tabela StudPersonal cu
ajutorul formularului creat la exerciiul 1.
3. Modificai o nregistrare care deja exist n tabela
StudPersonal cu ajutorul formularului creat la exerciiul 1
i apoi nchidei formularul.

Teste de autoevaluare
1. Ce este un formular?

2. Care sunt operaiile care se pot realiza asupra unor formulare?

3. Descriei tipurile de programe wizard disponibile pentru


crearea de formulare.

Rspunsuri i comentarii la ntrebrile din testele de


autoevaluare
ntrebarea 1.
Formularele (Forms) reprezint ferestrele primare folosite pentru
introducerea i afiarea datelor n Access.
ntrebarea 2.
Operaiile care se pot efectua asupra unor formulare sunt de
creare, de modificare, de salvare i de tergere.
ntrebarea 3.
Rspunsul la aceast ntrebare este mai amplu i este descris cu
amnuntul la nceputul acestui capitol.
Indicaii la problemele propuse
Problemele propuse sunt aezate dup un exemplu. Fiecare
problem propus se face dup modelul de exemplu prezentat
naintea ei sau dup tipicul acesteia.

Bibliografie:

Crstoiu, Dorin, Baze de date relaionale, Editura Printech,


1999
Rdulescu, Florin, Baze de date n Internet, Editura
Printech, 2000
Ionescu, Felicia, Baze de date relaionale i aplicaii,
Editura Tehnic, 2004
Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii
i 75 de simulri, Editura Andreco, 2003
Browne, Allen, Balter Alison, Bazele Access 95, Editura
Teora, 1999
Pribeanu, Costin,
Baze de date i aplicaii, Editura
MatrixRom, 2000
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic,
1994

Rapoarte n MICROSOFT Access

Unitatea de nvare Nr. 6


RAPOARTE N MICROSOFT ACCESS
Cuprins

Pagina

Obiectivele unitii de nvare nr. 6

116

6.1. Ce este un raport?

117

6.2. Lucrul cu rapoarte


6.2.1. Deschiderea unui raport
6.2.2. Crearea unui raport
6.2.3. Adugarea i modificarea textului n antet i subsol
6.2.5. tergerea unui raport

117
117
117
123
125

6.3. Salvarea i nchiderea unui raport

125

Lucrare de verificare a cunotinelor

125

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

127

Biblliografie

127

Rapoarte n MICROSOFT Access

nc de la nceput doresc s v felicit pentru parcurgerea cu


succes a primelor cinci uniti de nvare i s v urez bun venit la
studiul acestei noi uniti de nvare. n primele cinci uniti de
nvare am realizat o scurt introducere n acest amplu domeniu al
bazelor de date, am descris mai n detaliu ce este un sistem de baze
de date i n ce const el, am nvat 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 nvare
anterioar am nvat cum se creaz, se manipuleaz i se terge un
formular pentru introducerea datelor n baza de date.
n aceast unitate de nvare vom studia ce sunt rapoartele,
cum se creaz i cum se manipuleaz ele.
OBIECTIVELE unitii de nvare nr. 6
Principalele obiective ale unitii de nvare nr. 6 sunt:
Dup studiul unitii de nvare nr. 6 vei fi capabil s demonstrezi c
ai dobndit cunotine suficiente pentru a nelege:

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

6.1. Ce este un raport?


n timp ce formularul este proiectat pentru lucrul pe ecran
(dei i el poate fi tiprit), raportul este proiectat n primul rnd
pentru tiprire ( cu toate c i el poate fi afiat pe ecran).
Pe lng aceast deosebire de destinaie, exist i o
diferen conceptual major ntre formular i raport. Formularul
este proiectat pentru accesul aleator la date. Dup ce obine
accesul la o anumit nregistrare, utilizatorul poate trece la
sfritul formularului pentru a aduga o nregistrare nou sau se
poziioneaz la nceputul formularului pentru cutarea unei alte
nregistrri. n concluzie, formularul se bazeaz pe un set dinamic
de date, date care trebuie actualizate cu toate modificrile
efectuate de ali utlizatori n timpul utilizrii formularului.
Pe de alt parte, raportul nu modific niciodat datele, fiind
necesar parcurgerea secvenial a nregistrrilor pentru a genera
subtotaluri i rezumate. n locul unui set dinamic de date,
Microsost Access folosete o copie protejat la scriere a datelor
care este citit n secven, numit snapshot.
Un raport trebuie creat pentru orice intenionm s tiprim
cu regularitate, fie c este vorba de un listing simplu, o list de
etichete potale, o colecie de grafice sau un rezumat sau o
analiz financiar complex. Raportul ne ofer de asemenea
posibilitatea prelucrrii datelor n scopul obinerii unor rezultate
sintetice: totaluri, subtotaluri etc. Datele pot fi grupate pe un numr
de pn la zece niveluri diferite, fiecare cu propriile sale informaii
sintetice.

6.2. Lucrul cu rapoarte


6.2.1. Deschiderea unui raport
Dac exist deja creat un raport, acesta se poate deschide prin
apsarea dublu clic pe respectivul raport din obiectul Reports.
Toate rapoartele create ntr-o baz de date se vor gsi n obiectul
Reports.
6.2.2. Crearea unui raport
Pentru a crea un raport nou vom alege obiectul Reports din
fereastra Database i se apas dublu clic pe opiunea
. pentru crearea de rapoarte cu ajutorul
Wizard-ului. Va trebui s parcurgem paii necesari pentru a crea
raportul dorit.

Rapoarte n MICROSOFT Access

Exemplu:
Vom exemplifica crearea unui raport nou pentru afiarea
datelor n tabela Facultate, folosind opiunea Create report by
using wizard, urmnd paii necesari pentru a crea raportul dorit.
Pas 1:
Se alege tabela (sau tabelele) cre conine cmpurile care
trebuie s fie coninute n raport i se apas Next. Mai exact,
putem crea un raport care s conin numai anumite cmpuri
dintr-o tabel i alte cmpuri din alte tabele, acest lucru fcnduse alegnd tabela corespunztoare i selectnd cmpurile dorite.
Selectarea cmpurilor dintr-o tabel se face astfel: se
poziioneaz pe respectivul cmp i se apas butonul
. Dac
dorim ca toate cmpurile dintr-o tabel s apar n raport se
apas

butonul

Pentru

deselectrarea

cmpurilor

poziionm pe cmpul respectiv i se apas butonul


pentru desectarea tututror cmpurilor se apas butonul

ne
, iar

Observaie: Pentru a putea genera rapoarte cu date din mai multe


tabele, trebuie nainte create relaiile ntre tabele.
Pentru a crea aceste relaii dintre tabele se face opiunea
Tools din meniu i se alege Relations. Va aprea o fereastr
pentru alegerea tabelelor ntre care dorim crearea de relaii.

Rapoarte n MICROSOFT Access

Pentru a crea relaii ntre toate tabelele ne poziionm pe


fiecare dintre ele i apsm butonul Add. Va aprea o fereastr n
care sunt afiate toate tabelele ntre care vom crea relaii (pe care
le-am ales noi din lista de tabele existente n baza de date).

Pentru a crea efectiv relaiile, se poziionm pe un cmp al


unei tabele i inem clicul de la mouse apsat pn la cmpul
corespunztor relaiei. Va aprea o fereastr pentru confirmarea
crerii relaiei.

Rapoarte n MICROSOFT Access

Dup ce au fost create toate relaiilor, structura bazei de


date ca arta astfel:

Revenim la crearea raportului despre notele studenilor de


la fiecare facultate de la fiecare materie.
Pas2:
n aceast etap se alege modul n care vor fi afiate
atributele n raport i se apas Next.

Rapoarte n MICROSOFT Access

Pas3:
La acest pas se pot grupa rezultatele care vor fi afiate n
raport dup anumite cmpuri folosind sgeile i apoi se apas
Next.

Pasul 4 i pasul 5 reprezint alegerea modului de afiare a


informaiilor n raport.

Rapoarte n MICROSOFT Access

Pasul 6:
Se alege dintr-o list predefinite de stiluri un mod de afiare
a raportului.

Pasul 7:
Se denumete raportul cu un nume ales de utilizator i se
apas Next.

Rapoarte n MICROSOFT Access

Pasul 8:
Se apas butonul Finish.
V vom prezenta mai jos un raport creat.

6.2.3. Adugarea i modificarea textului n antet i subsol


Pentru a aduga un text sau o imagine n antetul sau
subsolului unui raport este necesar s deschidem raportul n
modul Design al raportului apsnd butonul
sau fcnd
opiunea Design View, care apare la apsarea clic dreapta pe
respectivul formular.
Pe ecran va aprea constructorul de rapoarte n care putem
modifica ceea ce dorim.
Pe ecran va aprea i o bar de instrumente
corespunztoare constructorului de rapoarte, prin intermediul
creia putem realiza diferite modificri n raport..

Rapoarte n MICROSOFT Access

De exemplu, dorim s scriem n antet Antet pentru raport .


Pentru asta va trebui s facem loc n partea antetului csuei de
text, tragnd efectiv cu mouse-ul antetul i apoi n spaiul creat
introducem textul dorit. Pentru a introduce un text trebuie apsat
butonul
de pe bara de instrumente. Dup apsarea acestui
buton selectai locul unde dorim poziionarea textului i apoi vom
introduce textul.

Dup introducerea textului se salveaz raportul i pentru a


vedea modificrile fcute asupra ei deschidem raportul apsnd
butonul Open.
Asemntor se poate modifica i subsolul raportului, sau
putem introduce imagini n rapoarte cu ajutorul comenzii InsertPicture.

Rapoarte n MICROSOFT Access

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 apsm butonul Delete din tastatur, fie
apsnd butonul
existent n parte de sus a ferestrei, fie
apsnd clic dreapta i fcnd opiunea Delete.
Pe ecran va aprea o caset de dialog n care se cere
confirmarea tergerii raportului.

Apsnd butonul Yes se confirm tergerea raportului, iar


apsnd No se renun la operaia de tergere.

6.3. Salvarea i nchiderea unui raport


Pentru salvarea raportului sau a oricrei modificri fcute
asupra lui, se apas butonul Save
existent pe bara de
instrumente a aplicaiei, sau fcnd opiunea Save din meniu.
Pentru nchiderea raportului sau se apas butonul
din
partea dreapt a ecranului sau fcnd opiunea Close din meniu.

Lucrare de verificare a cunotinelor


1. Creai un raport cu toate informaiile stocate n baza de
date despre faculti.
2. Creai un raport care s conin urmtoarele informaii:
nume studentului, denumirea materiei la care a susinut
examen, nota obinut la acea testare i data testrii.
3. Modificai structura raportului de la exerciiul 2, mai exact
introducei n antet titlul: Informaii despre promovabilitatea
studenilor.
4. Explicai dac se pot tipri rapoartele i explicai cum.

Rapoarte n MICROSOFT Access

Teste de autoevaluare
1. Care sunt diferenele ntre un raport i un formular?

2. Se poate crea un raport cu informaii din mai multe tabele?

3. Se poate modifica structura unui raport dup generarea lui?


Explicai.

Rapoarte n MICROSOFT Access

Rspunsuri i comentarii la ntrebrile din testele de


autoevaluare
ntrebarea 1.
Diferenele dintre un formular i un raport sunt majore: n timp ce
formularul este proiectat pentru lucrul pe ecran (dei i el poate fi
tiprit), raportul este proiectat n primul rnd pentru tiprire (cu
toate c i el poate fi afiat pe ecran), iar o diferen important ar
fi aceea c formularul este proiectat pentru acces la date (deci el
poate modifica date), pe cnd un raport nu modific date, ci doar
le afieaz pe ecran.
ntrebarea 2.
Da.
ntrebarea 3.
Da.
Indicaii la problemele propuse
Problemele propuse sunt aezate dup un exemplu i se fac dup
modelul de exemplu prezentat naintea lor.

Bibliografie:

Crstoiu, Dorin, Baze de date relaionale, Editura Printech,


1999
Rdulescu, Florin, Baze de date n Internet, Editura
Printech, 2000
Ionescu, Felicia, Baze de date relaionale i aplicaii,
Editura Tehnic, 2004
Baltac, Vasile, ECDL-Excel, Access, PowerPoint n 20 lecii
i 75 de simulri, Editura Andreco, 2003
Browne, Allen, Balter Alison, Bazele Access 95, Editura
Teora, 1999
Pribeanu, Costin,
Baze de date i aplicaii, Editura
MatrixRom, 2000
Pascu, C., Pascu A., Totul despre SQL, Editura Tehnic,
1994

Rapoarte n MICROSOFT Access

V felicitm pentru parcurgerea cu succes a manualului de


baze de date i v dorim baft n realizarea proiectelor
dumneavoatr viitoare n acest amplu domeniu.

Proiect cofinanat din Fondul Social European prin Programul Operaional Sectorial Dezvoltarea Resurselor Umane 2007-2013
Investete n oameni!

Formarea profesional a cadrelor didactice


din nvmntul
preuniversitar
pentru noi oportuniti de dezvoltare n carier

Unitatea de Management al
Proiectelor cu Finanare Extern
Str. Spiru Haret nr. 12, Etaj
2, Sector 1, Cod potal
010176, Bucureti
Tel: 021 305 59 99
Fax: 021 305 59 89
http://conversii.pmu.ro
e-mail: conversii@pmu.ro

S-ar putea să vă placă și