Sunteți pe pagina 1din 82

BAZE DE DATE I

UTILIZAREA ACESTORA

BAZE DE DATE I UTILIZAREA ACESTORA

Cuprins Pagina

INTRODUCERE vi

UNITATEA DE INVARE NR. 1 - Problematica organizrii informaiilor n mediul electronic

Obiectivele unitii de nvare nr. 1 2

1.1. Introducere 2

1.2. Ce este o baz de date? 3

1.3. Clasificarea sistemelor de baze de date 5


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

1.4. Securitatea i protecia datelor in bazele de date 8

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 14


2.1.1.Hardware 14
2.1.2.Software 15
2.1.3.Utilizatorii 16
2.1.4. Date persistente 16

2.2. Arhitectura intern a sistemlor de baze de date. 17 Modele de date, scheme i instane

2.3. Independena datelor 19

2.4.Limbaje SGBD 20

2.5.Interfee SGBD 21
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

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 NVARE NR. 3 - Proiectarea bazelor de date


9

1
Obiectivele unitii de nvare nr. 3 28

3.1. Ce este proiectarea? 29

3.2. Modelul entitate-relaie. Obiectele bazelor de date relaionale 32 Tabel (relaie)


Cmp (atribut) nregistrare (nuplu)

3.3. Construcia schemelor relaie 34


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

3.4. Diagrama entitate-relaie 38

3.5. Constrngeri de integritate 39


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

3.6. Dependene funcionale 44

3.7. Normalizare. Forme normale. 44


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

3.8. Structuri de indeci n tabelele de date 48


3.8.1. Indexul primar 50
3.8.2. Indexul secundar 51
3.8.3. Indexul de grup 52
3.8.4. Indexul multinivel 53

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 62
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access 62
4.1.2. Crearea unei baze de date noi 63
4.1.3. nchiderea unei baze de date 63

4.2. Tipuri de date MICROSOFT Access 64

4.3. Operatorii logici 66

4.4. Limbajul standard SQL 68


4.4.1. Scurt istoric al limbajului SQL 68
4.4.2. Crearea unei tabele 69
4.4.3. Salvarea unei tabele 72
4.4.4. tergerea unei tabele 73 4.4.5.Modificarea structurii unei tabele 74

4.5.Modificarea datelor n SQL 74


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

4.6. Limbajul de cereri n SQL 79


4.6.1. Cereri simple 79
Expresii aritmetice
Alias de coloan Constante (literali)
4.6.2. Clauza DISTINCT 84
4.6.3.Clauza ORDER BY 85
4.6.4. Clauza WHERE 86
Operatorul BETWEEN
Operatorul IN Operatorul IS NULL Operatorul LIKE
4.6.5. Funcii de grup 90
4.6.6. Clauza GROUP BY 92

1
4.6.7. Clauza HAVING 93
4.6.8. Cereri coninnd mai multe tabele 94

Lucrri de verificare a cunotinelor 99


Rspunsuri i comentarii la ntrebrile din testele de 101
autoevaluare

Biblliografie 102

UNITATEA DE NVARE 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 105


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

5.2.6. tergerea unui formular 112

5.3. Salvarea i nchiderea unui formular 112

Lucrare de verificare a cunotinelor 113

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare 114

Bibliografie 114

UNITATEA DE NVARE 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 117


6.2.1. Deschiderea unui raport 117
6.2.2. Crearea unui raport 117
6.2.3. Adugarea i modificarea textului n antet i subsol 123

6.2.4. tergerea unui raport 125

6.3. Salvarea i nchiderea unui raport 125

Lucrare de verificare a cunotinelor 125

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare 127

Biblliografie 127

1
BAZE DE DATE I UTILIZAREA ACESTORA

Unitatea de nvare Nr. 1

PROBLEMATICA ORGANIZRII INFORMAIILOR N MEDIUL ELECTRONIC

Cuprins Pagina

Obiectivele unitii de nvare nr. 1 2

1.1. Introducere 2

1.2. Ce este o baz de date? 3

1.3. Clasificarea sistemelor de baze de date 5


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

1.4. Securitatea i protecia datelor in bazele de date 8

Lucrare de verificare a cunotinelor 10

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare 11

Biblliografie 12

1
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)
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(de/ete)
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?

2
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 co/ecie de date centra/izate, creat i meninut computerizat, n scopu/ pre/ucrrii date/or
n contextu/ unui set de ap/icaii. Pre/ucrarea date/or se refer / a operaii/e de introducere, tergere, actua/izare i
interogare a date/or.

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.
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.
Independena date/or 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.

2
Mode/u/ de date re/aiona/ (Re/ationa/ Mode/) se bazeaz pe noiunea de re/aie din
matematic, care corespunde unei entiti de ace/ai tip i are o reprezentare uor de ne/es i
de manipu/at, ce const dintr-un tabe/ bidimensiona/, compus din /inii i co/oane. Fiecare /inie din
tabe/ reprezint o entitate i este compus din mu/imea va/ori/or atribute/orentitii respective,
fiecare atribut corespunznd unei co/oane a tabe/u/ui.
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
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 unificatorn tiina
calculatoarelor, fiind a p l i c a b i l 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 memorarea transparent pe suport magnetic a obiectelor care alctuiesc
o baz de date orientat obiect.
Mode/u/ de date obiect-re/aiona/ (Object-Re/ationa/ Mode/) reprezint extinderea
mode/u/ui re/aiona/ cu caracteristici a / e mode/u/ui obiect, extindere necesar pentru rea/izarea
baze/or de date care definesc i pre/ucreaz tipuri de date comp/exe.

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 mode/u/ de date ierarhic (Hierarchica/ Mode/) o baz de date se reprezint printr-o


structur ierarhic de nregistrri de date (records) conectate prin /egturi (/inks). Mode/u/ ierarhic
a fost primu/ mode/ fo/osit pentru dezvo/tatea baze/or 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

2
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).
Mode/u/ de date reea (Network Mode/) fo/osete o structur de graf pentru definirea
schemei conceptua/e a bazei de date; noduri/e grafu/ui sunt tipuri de entiti (nregistrri,
records), iar muchii/e grafu/ui reprezint n mod exp/icit asocieri/e (/egturi/e, /inks) dintre tipuri/e
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 mu/tiuti/izator, adic permit accesul
concurent (n acelai timp) a mai multor utilizatori la aceeai baz de date. Exist i un numr
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
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.

2
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 ( / o g i n ) 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.
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
2. Descriei n cteva cuvinte de ce este important s protejm datele.
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.

2
Problematica organizrii informaiilor n mediul electronic

Bibliografie:

Crstoiu, Dorin, Baze de date re/aiona/e, Editura Printech, 1999


Rdulescu, Florin, Baze de d a t e n Internet, Editura Printech, 2000
lonescu, Felicia, Baze de date re/aiona/e i ap/icaii, Editura Tehnic, 2004
Baltac, Vasile, ECDL-Exce/, Access, PowerPoint n 20 /ecii i 75 de simu/ri, Editura
Andreco, 2003
Browne, Allen, Balter Alison, Baze/e Access 95, Editura Teora, 1999
Pribeanu, Costin, Baze de date i ap/icaii, Editura MatrixRom, 2000
Pascu, C., Pascu A., Totu/ despre SQL, Editura Tehnic,
1994

Unitatea de nvare Nr. 2


SISTEMUL DE BAZE DE DATE - CONCEPTE I ARHITECTUR

Cuprins Pagina

Obiectivele 14
unitii de
nvare nr. 2

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

2.2. Arhitectura intern a sistemlor de baze de date. Modele de date, scheme i instane

2.3. 19
Independen
a datelor

2.4.Limbaje 20
SGBD

2.5.Interfee 21
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

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

2.6. Exemple de SGBD 22

Lucrare de verificare a cunotinelor 24

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare 25

Biblliografie 27
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


9 9

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
corespunztor performanele 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 (harddisk-uri).
Benzile magnetice (care ofer acces secvenial la nregistrrile de date) se folosesc pentru
duplicarea (backup), salvarea i restaurarea datelor.

2.1.2. Software

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

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.

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

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

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.

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

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

Vedere Vedere
Nivel extern grup grup
utilizator utilizator n
1

Schema
conceptuala

12 Proiectul pentru nvmntul Rural
Problematica organizrii informaiilor n mediul electronic

Nivel Schema interna


conc
eptua
l

Nivel
inter Figura 2.2. Arhitectura intern a unui sistem de baze de date
n

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.

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

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


9

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

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

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.

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

12 Proiectul pentru nvmntul Rural


Problematica organizrii informaiilor n mediul electronic

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

12 Proiectul pentru nvmntul Rural


de baze de date - concepte i arhitectur

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.

24 Proiectul pentru nvmntul Rural


Sistemul de baze de date - concepte i arhitectur

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.


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.

Index Tabela de date


<k> <p>

7 ------------------- 7
44 9
21

44
65
9733 78

Proiectul pentru nvmntul Rural 25


Sistemul de baze de date - concepte i arhitectur

^^+-9733

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


Index Tabela de date
<k> <p>

7
8

3
"* 5
4
65
5
31

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

'-----------------------------b

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

Figura 3.4. Indexul de grup


3.8.4. Indexul multinivel

Proiectul pentru nvmntul Rural 25


Sistemul de baze de date - concepte i arhitectur

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.
Index
1032 Index de nivel 1 Tabela de date
<k> <p> _____ _____

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

Proiectul pentru nvmntul Rural 25


Proiectarea bazelor de date

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.

oiectul pentru nvmntul Rural 55


Proiectarea bazelor de date

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

oiectul pentru nvmntul Rural 55


Proiectarea bazelor de date

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

58 Proiectul pentru nvmntul Rural


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 62
4.1.1. Deschiderea i nchiderea aplicaiei Microsoft 62
Access
4.1.2. Crearea unei baze de date noi 63
4.1.3. nchiderea unei baze de date 63

4.2. Tipuri de date MICROSOFT Access 64

4.3. Operatorii logici 66

4.4. Limbajul standard SQL 68


4.4.1. Scurt istoric al limbajului SQL 68
4.4.2. Crearea unei tabele 69
4.4.3. Salvarea unei tabele 72
4.4.4. tergerea unei tabele 73 4.4.5.Modificarea structurii unei tabele 74

4.5.Modificarea datelor n SQL 74


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

4.6. Limbajul de cereri n SQL 79


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

Lucrri de verificare a cunotinelor 99

Proiectul pentru nvmntul Rural 59


Un limbaj pentru baze de date relaionale

Rspunsuri i comentarii la ntrebrile din testele de 101


autoevaluare

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


9 9

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

60 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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.

n momentul apsrii Microsoft Access, pe ecranul


Pentruapare
monitorului a deschide aceast
imaginea aplicaie
specific folosim
acestei aplicaii, ce
meniul Start-Programs-Microsoft
conine: o bar de meniu, o bar Access.
de instrumente i o
fereastr cu toate tipurile de obiecte care pot fi utilizate n
acest program (Tables, Queries, Forms, Reports, etc).

4.1.1. Deschiderea i nchiderea aplicaiei Microsoft Access


Pentru a nchide aceast aplicaie se va alege opiunea Exit din meniul File sau phntr-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 phntr-un clic pe simbolul _QJ din bara de instrumente.
y Microsoft Access

J| File Edit View Insert ools Windcw Help

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:

60 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

0 Microsoft
Access
D New...Ctrl+N& Open,,,Ctrl+OGet External DataClose

sau se apas pe butonul 2] din colul din dreapa sus al ferestrei cu baza de date.

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

60 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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:
AND TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE NULL
NULL NULL NULL NULL
OR TRUE FALSE NULL
TRUE TRUE TRUE NULL
FALSE TRUE FALSE NULL
NULL NULL NULL NULL

60 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

XOR TRUE FALSE NULL


TRUE FALSE TRUE NULL
FALSE TRUE FALSE NULL
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 TRUE FALSE NULL
FALSE FALSE TRUE NULL
NULL NULL NULL NULL

TRUE FALSE NULL


TRUE FALSE TRUE NULL
FALSE TRUE FALSE NULL
NULL NULL NULL NULL
SQL ne mai pune la dispoziie nc 2 operatori unari-
IS NULL i IS NOT NULL pentru manipularea valorilor nule.
IS NULLIS NOT
NULL<valoare>FALSETRUETRUEFAL
SETRUEFALSEFALSETRUENULLTRUE
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

60 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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 simplificat pentru aceast comand este urmtoarea:

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 apsam butonul ^[Aew . 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,

60 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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


U create table in Design view Va ap rea o fereastr n care trebuie
completat denumirea cmpului, tipul de date asociat cmpului

Tablei : Table

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.

60 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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

Aceeai pai trebuie urmai i pentru celelalte tabele. n final, partea de obiecteTables va

arta astfel:

60 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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 constrngere]

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

pentru nvmntul Rural 73


Un limbaj pentru baze de date relaionale

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:

INSERTINTO 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','');

astfe
l:

Dup rularea aceste fraze SQL, tabela Facultate va arta


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 condiie] [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.

pentru nvmntul Rural 73


pentru baze de date relaionale

delete from Studenti where medie<7;

nainte:

Dup rularea acestei interogri se va terge nregistrarea a-4-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.

76 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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 SETcolana1=valoare1,


coloana2=valoare2, ....
[WHERE condiie] [LIMIT numarjinii]

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:


CodStud
CNP Nume Inlr Prenume DataNasterii LocNast Tata Mama Adres 3

Tabela StudPers
dup:
I
StudPe
rsonal :
Table
333333 Vasilescu Rodica 12/09/1999 Braov
444444 Alecu Petre 13/08/1943 Bacu
555555
Gabriel
Record: H | < |
7 jJ JJ
_h m

Proiectul pentru nvmntul Rural 77


pentru baze de date relaionale

2. Mrirea tuturor burselor studenilor

cu 10%. update Studenti set

bursa=bursa*1,1; Tabela Studenti


B Studenti : Table-inX1
CodStudCodFacAnGrupaMediaBursaDI
nainte:
I31312AA8.12300000034344AB9.2540000001131
3L3B7.34m251212AC7.77\
631314AA9.134000000

Record: 1 >IH
n | | |~ of 5
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]
[GROUPBYcoloanal, coloana2....]
[HAVING conditie_de_grup]
[ORDER BY coloanal [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;

78 Proiectul pentru nvmntul Rural


pentru baze de date relaionale

Aceast interogare se face n modul grafic astfel: ne poziionm n partea de Queries i


facem opiunea S create query in Design view pentru crearea manual de interogri sau
Create query by using wizard pentnj utj|jzarea wizardului.

Vom exemplifica realizarea unei interogri n Design View, acest lucru fiind posibil
apsnd dublu clic pe opiunea
Create query in Design view
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.

78 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

astfe
l:
1 Query 1 : Select Query^jnjx|
CodFacDenumireAdresaNumeDecannfl
ElectrotehnicaNoul Local2 EnergeticaNoul

Local3AutomaticaNoul LocalDumitru
Popescu4ElectronicaLeu5AeronavePolizu6Mecanica
Noul Local7TransporturiNoul Local8IdRecord: H1

II l

Pentru rularea efectiv a interogrii se apas butonul Run Rezultatele obinute n urma rulrii vor aprea ntr-o fereastr
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;

nvmntul Rural 81
Un limbaj pentru baze de date relaionale

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;


Query2 : Select Query
NumeStudent PrenumeStudent
IETTI Adrian
Vasile Alexandru
Vasilescu Rodica
Alecu Petre
Mihai Dumitru
Bucur Valeriu

Record: H 1 II 1 I H of 6

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;

nvmntul Rural 81
Un limbaj pentru baze de date relaionale

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;

Qu -Inlxi
er
CodFac 1

D
3

Record: H 1 < 11
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 din tabela StudPersonal ordonai dup nume i
prenume.

nvmntul Rural 81
Un limbaj pentru baze de date relaionale

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


as5 3uery2 : Select Query X
CodStud Bursa
5
3
1 33GGGG
G
6 4400000
2 4400000

1 0

Record: H 1 <11 6 > | H |

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;

nvmntul Rural 81
Un limbaj pentru baze de date relaionale

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.

nvmntul Rural 81
Un limbaj pentru baze de date relaionale

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

Operatorul IS NULL
c.

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;

88 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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.

88 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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.

88 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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 coloanal [, coloana2...j 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) as MediaFacultatii from Studenti group by CodFac;

92 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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

92 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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

94 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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

rjuery2 : Select Query


Nota Denumire
Nume 1
Ion

S Analiza
S| Analiza Vasilescu

Record: H 1 II i 1 H !*! of 2 1

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:

94 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

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.

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

a? Query 1: Select Query -Inlxi

94 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

Nume Denumire
Nota 1
fiT? Analiza 7
Vasilescu Analiza

Record: H 1 11 1 !*!
2

of

94 Proiectul pentru nvmntul Rural


Un limbaj pentru baze de date relaionale

Lucrarea de verificare a cunotinelor 1

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

pentru nvmntul Rural 99


Un limbaj pentru baze de date relaionale

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

pentru nvmntul Rural 99


Un limbaj pentru baze de date relaionale

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare

ntrebarea 2.

Operatorii din algebra relaionl sunt AND, OR, XOR, =, A 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 d a t e 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

Unitatea de nvare Nr. 5

CONSTRUIREA INTERFEELOR CU AJUTORUL FORMULARELOR


N MICROSOFT ACCESS

pentru nvmntul Rural 101


Un limbaj pentru baze de date relaionale

Cuprins Pagina

Obiectivele unitii de nvare nr. 5 104

5.1. Ce este un formular? 105

5.2. Lucrul cu formularele 105


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

5.2.6. tergerea unui formular 112

5.3. Salvarea i nchiderea unui formular 112

Lucrare de verificare a cunotinelor 113

Rspunsuri i comentarii la ntrebrile din testele de autoevaluare 114

Bibliografie 114
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


9 9

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_______________________________

pentru nvmntul Rural 101


Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

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

pentru nvmntul Rural 105


Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

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.

106 Proiectul pentru nvmntul Rural


Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

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.

pentru nvmntul Rural 107


Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

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 nvmntul Rural 107


Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

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.
Bl Facultate

CodFac

Denumire Electrotehnica
^- ^
Noul Local
Adresa

=^
NumeDecan

i | M k*l of 7

Pentru a introduce date n tabel cu ajutorul formularului trebuie apsat butonul k*l . 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.
Record: H | J| T J_|_H_Li*L of 7

Butonul iii se folosete pentru poziionarea pe prima nregistrare a tabelei


Butonul * I se folosete pentru rentoarcerea la nregistrarea anterioar
Butonul _U se folosete pentru trecerea la nregistrarea urmtoare
Butonul Ij J se folosete pentru poziionarea pe ultima nregistrare a tabelei
Butonul !* se folosete pentru a aduga o nregistrare nou.

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.

Proiectul pentru nvmntul Rural 109


Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

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 i. 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:

Proiectul pentru nvmntul Rural 109


Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Facultate

Formular pentru introducerea datelor

CodFac

Denumire lElectrotehnica

Adresa iNoul Local

NumeDecan

Record: M | 11 T |H of 7

Asemntor se poate modifica i subsolul formularului, sau putem introduce imagini n


formulare folosind comanda Insert-Picture.

5.2.6. tergerea unui formular

Putem terge un formular prin mai multe metode. Primul pas pentru orice metod este
selectarea formularului dorit pentru tergere i apoi fie apsam 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 i<J 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.

112 Proiectul pentru nvmntul Rural


Construirea intefeelor cu ajutorul formularelor n MICROSOFT Access

Teste de autoevaluare

1. Ce este un formular?

112 Proiectul pentru nvmntul Rural


ea intefeelor cu ajutorul formularelor n MICROSOFT Access

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


6.2.1. Deschiderea unui raport 117
6.2.2. Crearea unui raport 117
6.2.3. Adugarea i modificarea textului n antet i subsol123 6.2.5. tergerea unui raport 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
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.

114 Proiectul pentru nvmntul Rural


ea intefeelor cu ajutorul formularelor n MICROSOFT Access

OBIECTIVELE unitii de nvare nr. 6


9 9

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________________________

114 Proiectul pentru nvmntul Rural


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
l &eatlreport.b^usir"3Wi2andl pentru crearea de rapoarte cu ajutorul Wizard-ului. Va trebui s parcurgem
paii necesari pentru a crea raportul dorit.
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 fcndu-se 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 -^J. Pentru deselectrarea cmpurilor ne
poziionm pe cmpul respectiv i se apas butonul sJ, iar
pentru desectarea tututror cmpurilor se apas butonul I^H

Proiectul pentru nvmntul Rural 117


Rapoarte n MICROSOFT Access

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.

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

Proiectul pentru nvmntul Rural 117


Rapoarte n MICROSOFT Access

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.

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.

Proiectul pentru nvmntul Rural 117


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.


Pasul 6:

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

Proiectul pentru nvmntul Rural 117


Rapoarte n MICROSOFT Access

Pasul 7:

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

Pasul 8:

Se apas butonul Finish.

V vom prezenta mai jos un raport creat.

Proiectul pentru nvmntul Rural 117


Rapoarte n MICROSOFT Access

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 ^- esign 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..

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.

Proiectul pentru nvmntul Rural 117


Rapoarte n MICROSOFT Access

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 Insert-Picture.
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 apsam butonul Delete din tastatur, fie
apsnd butonul e
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
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.

Proiectul pentru nvmntul Rural 117


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.

Proiectul pentru nvmntul Rural 117


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 afi eaz 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 d a t e n Internet, Editura Printech, 2000
lonescu, 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
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.

pentru nvmntul Rural 127

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