Sunteți pe pagina 1din 108

Cornel GIULVEZAN

Gabriela MIRCEA
Diana TRNVEANU
Camelia MARGEA

Timioara, 2009

1
REFERENI TIINIFICI:
Prof. univ. dr. Mihaela MUNTEAN
Prof. univ. dr. Ioan BANDU

2
3
4
CUPRINS

CUPRINS ............................................................................................. 5
OBIECTIVELE CURSULUI .............................................................. 7
Capitolul 1 INTRODUCERE .............................................................. 8
1.1. Conceptele de Dat i Fiier ........................................................ 8
1.2. De ce baze de date? ................................................................... 12
1.3. Autoevaluare ............................................................................. 14
Capitolul 2 BAZE DE DATE CONCEPTE ................................... 15
2.1. Conceptul de baz de date ......................................................... 15
2.2. Modelarea baze de date ............................................................. 17
2.3. Obiectivele datelor n baze de date ............................................ 21
2.4. Sisteme de gestiune a bazelor de date ........................................ 23
2.5. Funciunile sistemului de gestiune al bazei de date .................... 27
2.6. Componentele unui mediu SGBD.............................................. 28
2.7. Limbaje pentru baze de date ...................................................... 31
2.8. Proiectarea bazei de date ........................................................... 32
2.9. Modelul de date relaional ......................................................... 35
2.9.1. Operatorii modelului relaional ........................................... 43
2.9.2. Integritatea referenial ....................................................... 44
2.10. ntrebri teoretice de auto-evaluare .......................................... 45
Capitolul 3 MICROSOFT ACCESS ................................................. 47
3.1. Noiuni generale privind bazele de date ACCESS...................... 47
3.2. Tabelele .................................................................................... 50
3.3. Interogrile ................................................................................ 52
3.4. Formularele ............................................................................... 53
3.5. Rapoartele ................................................................................. 54
3.6. Macrocomenzile i modulele ..................................................... 55
3.7. Tipuri de fiiere n ACCESS ..................................................... 57
3.8. Teste de auto-evaluare ............................................................... 58
Capitolul 4 LIMBAJUL SQL ............................................................ 59
4.1. Prezentarea limbajului SQL ....................................................... 59

5
4.2. Limbajul SQL I VBA .............................................................. 60
4.3. Descrierea limbajului SQL......................................................... 61
4.3.1. Instruciunea SELECT ........................................................ 61
4.3.2. Clauza FROM ..................................................................... 62
4.3.3. Clauza WHERE .................................................................. 63
4.3.4. Clauza GROUP BY ............................................................ 63
4.3.5. Clauza HAVING................................................................. 64
4.3.6. Clauza ORDER BY ............................................................ 64
4.3.7. Instruciunea UPDATE ....................................................... 65
4.3.8. Instruciunea DELETE ........................................................ 65
4.3.9. Instruciunea INSERT INTO ............................................... 66
4.3.10. Alte instruciuni ................................................................ 67
4.4. Exemple de utilizare a interogrilor SQL ................................... 68
4.4.1. Actualizarea nregistrrilor .................................................. 68
4.4.2. ncrcarea unei liste derulante ............................................. 69
4.5. Teste de auto-evaluare ............................................................... 70
PARTEA PRACTIC........................................................................ 71
Aplicaii practice rezolvate ................................................................ 71
5.1. Aplicaia 1 ................................................................................. 71
5.1.1. Aplicaie propus .................................................................... 78
5.1.2. Aplicaie propus .................................................................... 79
5.2. Aplicaia 2 ................................................................................. 79
5.2.1. Aplicaie propus: ................................................................... 86
5.3. Aplicaia 3 ................................................................................. 86
5.3.1. Aplicaie propus .................................................................... 93
5.4. Aplicaia 4 ................................................................................. 93
5.4.1. Aplicaie propus .................................................................... 96
5.5. Aplicaia 5 ................................................................................. 96
5.5.1 Aplicaie propus ................................................................... 100
Bibliografie ....................................................................................... 101
GLOSAR DE TERMENI ................................................................. 103

6
OBIECTIVELE CURSULUI
Evoluia diferitelor metode i tehnici de organizare a datelor, pe
suporturi tehnice adresabile (memorii externe), a fost determinat
de necesitatea de a avea un acces ct mai rapid i mai uor la un
volum ct mai mare de date.
Sistemele de gestiune a bazelor de date reprezint modalitatea
principal de structurare i organizare a datelor n cadrul
sistemelor informatice. Obiectivul unei bazei de date este de a
separa descrierea datelor fa de programele de aplicaii,
ajungndu-se la abstractizarea datelor memorate.
Obiectivele cursului sunt nsuirea noiunilor fundamentale i
conceptelor de baz din domeniu, precum i capacitatea de a
iniia, proiecta i implementa o baz de date. Ne propunem s
rspundem la ntrebrile: ce este o baz de date, cum este
structurat aceasta, cum se proiecteaz?
Pentru aceasta considerm necesare:
 nelegerea impactului tehnologiilor informaiei i a
comunicaiilor (TIC) n societate, a conexiunilor dintre
informatic i alte obiecte de studiu, precum i identificarea
posibilitilor de utilizare a SGBD-urilor n disciplinele
specializrii de baz;
 familiarizarea cu instrumentele oferite de sistemele de gestiune
a bazelor de date (tabele, formulare, interogri, rapoarte,
macro-uri, proceduri VBA);
 dezvoltarea abilitii de a crea o aplicaie user-friendly, cu o
interfa grafic atractiv;
 iniierea n limbajul SQL Structured Query Language;
 dezvoltarea unei culturi informatice.

Octombrie, 2009 Autorii

7
PARTEA TEORETIC

CAPITOLUL 1
INTRODUCERE
Organizarea datelor n vederea prelucrrii pe calculator este o
activitate cel puin la fel de important ca i scrierea progamelor.
n acest prim capitol vor fi prezentate noiuni legate de modul de
organizare a datelor, plecnd de la conceptele de baz de dat
i fiier, prezentnd o clasificare a datelor, a tipurilor de
structuri de date existente i a organizrii datelor n fiiere.
Sistemele informatice pot fi realizate fie cu ajutorul unor aplicaii
care utilizeaz fiiere independente sau integrate, fie cu ajutorul
unor aplicaii care acceseaz o structur complex numit baz de
date. Sistemului informatic are dou componente principale i
anume datele i programele, acestea fiind ntr-o strns
interdependen. O baz de date are mijloace proprii pentru
crearea i evoluia n timp a structurii, realiznd o departajare
ntre datele stocate i programele care le acceseaz.

1.1. Conceptele de Dat i Fiier


Apariia i dezvoltarea rapid a bazelor de date se datoreaz unei
multitudini de factori de natur tehnic i socio-economic. Creterea
necesarului i implicit a consumului de informaie a avut ca prim rezultat
creterea cantitii de informaie stocat pe suporturi de memorare extern i
optimizarea tehnicilor de stocare i regsire a informaiei.
Chiar de la primele aplicaii informatice realizate cu ajutorul
calculatorului s-a pus problema utilizrii unor tehnici eficiente de organizare,
stocare i regsire a datelor. O informaie codificat i stocat pe un suport de
memorare reprezint ceea ce numim dat. Din punctul de vedere al prelucrrii
de calculator, n cadrul aplicaiilor, datele se definesc cu ajutorul unui nume
(identificator), a atributelor pe care le are i de o valoare. Rezolvarea
problemelor concrete cu ajutorul calculatorului presupune definirea unui
algoritm adecvat pentru rezolvarea fiecrei probleme. Un algoritm este definit
ca fiind o succesiune finit, corect definit i fr ambiguiti de operaii
elementare care se aplic asupra unei mulimi de date de intrare pentru a se
obine un rezultat. Algoritmul trebuie sa conduc la acelai rezultat de fiecare
dat cnd se aplic asupra aceleai mulimi de date de intrare. Calculatorul
prelucreaz doar date reprezentate cu ajutorului unui cod binar, motiv pentru

8
care datele sunt din punctul de vedere al calculatorului iruri de cifre binare, de
bii. Semnificaia irurilor de bii depinde de codul pentru codificarea
informaiei, de modul de utilizare a acesteia de ctre programator n cadrul
aplicaiei informatice i de limbajul de programare folosit. Fiecare limbaj de
programare are reguli specifice pentru definirea i utilizarea datelor.
Organizarea datelor reprezint procesul de identificare, definire,
evaluare, structurare i memorare a informaiilor, n cadrul unui sistem
informaional. Prin organizarea datelor se realizeaz gruparea datelor n colecii
de date omogene, se stabilesc care sunt relaiilor dintre date, dintre elementele
coleciilor i dintre colecii, precum i modul de stocare a datelor pe suportul
fizic de memorare.
Datele pot fi clasificate n funcie de modul de alocare al memoriei,
astfel existnd date de tip static i date de tip dinamic. La datele de tip static,
memoria este alocat la nceputul execuiei programului, rmnnd ocupat de
respectivele date pe ntreaga durat a execuiei, pe cnd la datele de tip dinamic
memoria este alocat n momentul execuiei programului, existnd instruciuni
care permit alocarea memoriei atunci cnd datele sunt necesare i alte
instruciuni care permit eliberarea respectivei zone de memorie n momentul n
care datele nu mai sunt necesare.
Datele trebuie privite sub dou aspecte: fizic i logic. Din punct de
vedere fizic, n cazul stocrii i prelucrrii cu ajutorul calculatorului datele sunt
iruri de bii. Din punct de vedere logic, datele au o anumit semnificaie i sunt
de mai mult tipuri, funcie de semnificaia lor.
Datele pot fi simple (elementare), respectiv compuse (structurate).
Datele simple (elementare) sunt date independente unele de altele din
punctul de vedere fizic, adic al reprezentrii pe suportul de memorare, chiar
dac din punct de vedere logic exist interdependene. Tipul de dat precizeaz
care sunt valorile datei. Dac pe parcursul procesului de prelucrare data
pstreaz aceeai valoare este numit dat constant. Pentru datele constante se
utilizeaz ca identificator valoarea acestora. Dac valorile datei sunt modificate
n timpul procesului de prelucrare datele se numesc date variabile sau variabile.
n mod uzual pentru date elementare se folosesc ca tipuri de dat:
 tipul numeric include numerele ntregi, reale si complexe avnd
diferite reprezentri (virgul fix, virgul mobil, precizie simpl,
precizie dubl etc.). Asupra lor se pot realiza operaii de adunare,
scdere, nmulire, mprire etc.;
 tipul logic (boolean) utilizat pentru reprezentarea valorilor logice
Adevrat, respective Fals cu ajutorul unor valori numerice,
asupra acestora putndu-se efectua operaii logice precum negaia,
conjuncia, disjuncia;

9
 tipul caracter (text, string) permite reprezentarea unor succesiuni
de caractere folosind mulimi de simboluri alfanumerice,
reprezentarea pe suporturile de memorare utiliznd codul ASCII.
Asupra acestora se pot defini operaii de cutare, concatenare,
ordonare;
 tipul dat calendaristic, timp (Date, Time, DateTime)
reprezentarea intern a acestora fcndu-se de regul cu ajutorul
unor valori numerice.
Datele compuse numite i structuri de date sunt colecii (mulimi) de
date elementare ntre care exist relaii structurale, omogene din punct de vedere
al descrierii i al prelucrrii. Componentele unei structuri formeaz un ntreg
astfel nct prelucrarea se poate face att la nivelul structurii de date ct i la
nivelul fiecrei componente, care poart numele de cmp.
Majoritatea limbajelor de programare opereaz cu dou categorii de
structuri: structuri interne i structuri externe.
Structurile de date interne se refer la modul de amplasare n memoria
intern a datelor elementare aparinnd unei colecii. n aceast categorie sunt
incluse structurile de tip tablou (masiv), nregistrare (articol), mulime, list i
arbore.
Structurile externe se refer la modul de memorare a datelor pe
suporturi de memorare extern. Din aceast categorie fac parte fiierele i
bazele de date.
Datele, vzute iniial ca iruri de caractere, care reproduceau
caracteristicile unor obiecte, fenomene, fapte, evenimente, respectiv concepte
din lumea real, datorit factorului de repetare au fost organizate n structuri
care poart numele de fiier. Fiierul este o structur care grupeaz date dintr-
un anumit domeniu care au anumite caracteristici comune. Fiierele pot fi cu
organizare definit, respectiv nedefinit. Accesul la datele ce formeaz fiierul
depinde de structura ce definete fiierul, adic de organizarea datelor i de
suportul de memorare. Exist doi parametrii ce msoar performanele accesului
la date: cantitatea de date transferat i timpul de rspuns. Suportul de
memorare poate fi adresabil sau nu, poate fi reutilizabil sau nu, poate fi
magnetic, optic sau de alt natur. Accesul la date poate fi secvenial sau direct.
Accesul direct este permis doar de suporturile de memorare adresabile, adic
acele suporturi de memorare care permit accesul direct pe baza unei adrese la o
anumit zon de pe suportul de memorare, numit locaie sau bloc. Principiile
de organizare a fiierelor i tehnicile de regsire a datelor stocate n fiiere
reprezint o transpunere n cadrul aplicaiilor informatice a tehnicilor utilizate n
sisteme de prelucrare manual a informaiei. Fiierul fiind o colecie de date
trebuie considerat ca avnd dou structuri distincte suprapuse, i anume, o

10
structur fizic i una logic, cea logic fiind dat de semnificaia datelor. Din
punct de vedere fizic fiierul este o colecie finit de nregistrri fizice, iar din
punctul de vedere al semnificaiei, o colecie de nregistrri logice, numite i
articole.
Fiierul ocup un anumit spaiu pe suportul de memorare extern, spaiul
alocat putnd fi continuu sau nu. Componentele sistemului de operare
gestioneaz n mod transparent alocarea fizic pe suportul de memorare extern
precum i accesul la fiiere.
Din punctul de vedere al sistemului de operare fiierul are un nume i
eventual o extensie de fiier, are asociat o mulime de atribute care depind de
sistemul de operare (Read Only, Hidden, System, Archive etc.), informaii
privind momentul crerii, al ultimei modificri, al ultimei accesri, privind
dimensiunea ca numr de octei etc. Extensia ofer sistemului de operare
informaii privind coninutul fiierului.
Din punctul de vedere al aplicaiilor fiierul are un coninut
informaional, un anumit mod de organizare, permite unul sau mai multe
moduri de acces etc.
Datele ntr-un fiier sunt structurate n nregistrri. Organizarea
nregistrrilor ntr-un fiier poate fi privit att ca organizare logic ct i ca
organizare fizic.
Din punctul de vedere al organizrii fizice datele ce formeaz fiierul
sunt structurate n nregistrri fizice. Organizarea fizic reprezint o organizare
intern care depinde de resursele fizice ale calculatorului i este supus rigorilor
sistemului de operare. nregistrarea fizic reprezint numrul de octei care se
transfer ntre memoria intern a calculatorului i suportul de memorare extern
(scriere), respectiv de pe suportul extern n memorie (citire). Pentru optimizarea
transferului se folosesc zone de memorie numite zone tampon, sau buffer, prin
intermediul crora se transfer mai multe nregistrri fizice vecine cu
nregistrarea de care este nevoie.
Din punct de vedere al organizrii logice datele coninute ntr-un fiier
sunt structurate n nregistrri logice. n principiu, un fiier conine acelai tip
de nregistrri logice, dispuse ntr-o anumit ordine. Mulimea nregistrrilor
logice coninute ntr-un fiier reprezint o mrime finit i caracterizeaz, n
mod direct, mrimea oricrui fiier.
Din punct de vedere al utilizatorului, nregistrarea logic reprezint i
unitatea de acces la datele coninute ntr-un fiier. Organizarea logic a
nregistrrilor n fiier, ca mod de organizare extern a datelor, este impus de
natura aplicaiilor i cerinele de prelucrare.
Datele coninute ntr-o nregistrare logic caracterizeaz o entitate
informaional, se refer la o clas de obiecte, fenomene, procese etc., n timp

11
ce datele ce formeaz o nregistrare fizic caracterizeaz o unitate de stocare
fizic pe suportul de memorie a calculatorului. Utilizatorul opereaz cu
concepte, privind organizarea datelor, la nivel logic, n vreme ce sistemul de
operare stocheaz i manipuleaz datele, pe suportul de memorie, numai la nivel
de nregistrare fizic. n funcie de natura i complexitatea datelor, lungimea
unei nregistrri logice poate s corespund sau nu cu lungimea unei nregistrri
fizice. O nregistrare fizic poate s conin mai multe nregistrri logice,
respective o nregistrare logic poate fi stocat n mai multe nregistrri fizice.

1.2. De ce baze de date?

Totalitate informaiilor care definesc i menin n funciune un sistem


real formeaz sistemul informaional al sistemului real, iar n cadrul sistemului
informaional putem delimita sistemul informatic, care reprezint acea parte a
sistemului informaional n care informaia este stocat i procesat cu ajutorul
tehnicii de calcul. Sistemele informatice pot fi realizate fie cu ajutorul unor
aplicaii care utilizeaz fiiere independente sau integrate, fie cu ajutorul unor
aplicaii care acceseaz o structur complex numit baz de date. Baza de date
are mijloace proprii pentru crearea i evoluia n timp a structurii. Organizarea
datelor n fiiere aparinnd fiecrei aplicaii reprezint o metod rigid care are
mai multe dezavantaje pentru utilizatori. Cel mai mare dezavantaj este acela c
modificrile n structura unui fiier oblig la modificarea tuturor programelor
care utilizeaz fiierul a crui structur a fost modificat. Din punctul de vedere
al utilizatorului sistemele bazate pe fiiere reprezint un progres extraordinar
fa de sistemele manuale, totui acestea fiind dependente de programele de
aplicaie, orice interogare necesit scrierea unui program i integrarea acestuia
n sistemul implementat, obinerea de noi informaii spontan fiind practic
imposibil.
Realizarea sistemelor informatice cu ajutorul aplicaiilor independente
presupune ca fiecare astfel de aplicaie s defineasc i s ntrein propriile
structuri de date organizate de regul n fiiere. n acest caz are loc separarea i
izolarea datelor, precum i legarea acestora de fiecare aplicaie. Datorit
modului de abordare descentralizat are loc o cretere a redundanei datelor,
adic datele vor fi multiplicate necontrolat. Redundana reprezint o proprietate
a unei colecii de date care se refer la faptul c unele componente ale coleciei
de date sunt memorate de mai multe ori pe suportul de memorare. Multiplicarea
datelor implic costuri suplimentare i n plus, crete riscul alterrii integritii
datelor, adic apariia de neconcordane. n cazul sistemelor reale complexe

12
creterea redundanei are ca efect apariia de erori frecvente datorate
neconcordanei informaiilor memorate n fiiere aparinnd unor aplicaii
diferite, rezultnd costuri de actualizare mrite corespunztor.
Sistemului informatic are dou componente principale i anume datele
i programele, acestea fiind ntr-o strns interdependen.
n codul program al fiecrei aplicaii creat ntr-un limbaj de programare
clasic se definesc structurile de date, att cele interne ale aplicaiei respective
ct i structura logic a fiierelor utilizate de aplicaia respectiv, mpreun cu
modul de acces la datele stocate n aceste fiiere. n cazul n care structura
logic a unei nregistrri este modificat prin adugarea unui cmp, sau
schimbarea dimensiunii unui cmp, toate programele care opereaz cu fiierul a
crui structur a fost modificat trebuie actualizate. De asemenea orice
modificare a semnificaiei, respectiv a modului de reprezentarea a informaiei
respective n sistemul real impune modificarea tuturor aplicaiilor care folosesc
informaia respectiv, ceea ce reprezint n cazul sistemelor informatice
complexe un efort de programare considerabil, precum i costuri ridicate.
Aceast caracteristic a sistemelor bazate pe fiiere este cunoscut sub
denumirea de dependen program-date. Deoarece structura fiierului este
ncorporat n programele de aplicaie, ea este dependent de limbajul n care
sunt scrise programele n este realizat aplicaia respectiv.
Atunci cnd datele sunt izolate n fiiere aparinnd unor aplicaii
independente, accesarea datelor de care este nevoie la un moment dat se
realizeaz cu mare greutate deoarece programatorul trebuie s sincronizeze
prelucrarea simultan a tuturor fiierelor aplicaiilor, dificultatea crescnd odat
cu numrul de fiiere. Structura fiierelor este ncorporat n programele de
aplicaie, fiind dependent de limbajul de programare folosit pentru fiecare
aplicaie. Mai mult chiar, fiecare interogare a fondului de date stocate n
fiierele independente se realizeaz doar prin intermediul programelor de
aplicaie, interogarea fiind dependent de programatorul care a realizat aplicaia
i chiar mai mult de limbajul de programare folosit. n sistemele complexe,
odat cu creterea necesarului de informaie exist riscul ca satisfacerea
necesarului de informaie prin noi programe s nu poat fi realizat ntr-un timp
optim. Reducerea timpului alocat analizei precum i proiectrii de noi aplicaii
are ca rezultat obinerea de programe inadecvate sau ineficiente pentru
ndeplinire cerinelor utilizatorilor, de regul cu o documentaie limitat i greu
de ntreinut. n astfel de condiii securitatea datelor devine limitat, iar
integritatea datelor est practic imposibil de asigurat.
Limitele sistemelor bazate pe fiiere independente se datoreaz
urmtorilor doi factori:
 definiia datelor este ncorporat n programele de aplicaie,

13
 controlul accesului i cel al manipulrii datelor se realizeaz
exclusiv prin intermediul programelor de aplicaie.
Pentru ca un sistem informatic s fie eficient este necesar o nou
abordare care s scoat n afara programelor de aplicaie definirea, controlul i
manipularea datelor. Aceasta se poate realiza cu ajutorul bazei de date i a
sistemului de gestiune a bazelor de date.

1.3. Autoevaluare

1. Explicai:
a. Noiunea de dat;
b. Organizarea datelor;
c. Date constante, date variabile;
d. Noiune de fiier;
e. Tipuri de date simple;
f. Date compuse;
g. Redundana datelor;
h. nregistrare fizic i nregistrare logic;
i. Dependena date-program.

2. Analizai critic noiunile de dat elementar i dat compus.

14
CAPITOLUL 2
BAZE DE DATE CONCEPTE
Baza de date realizeaz separarea definiiei datelor de programele
de aplicaie. Ne propunem o trecere n revist a avantajelor ce
decurg din organizarea datelor n baze de date, precum i a
principalelor concepte din teoria bazelor de date. Vom prezenta
mai multe puncte de vedere legate de definiia bazei de date,
insistnd asupra principalelor caracteristici ale bazelor de date,
modelarea bazei de date, obiectivele datelor n baze de date,
definiia, funciunile i componentele unui sistem de gestiune a
bazelor de date. Am considerat necesare prezentarea conceptelor
de limbaje pentru baze de date, principalele principii pe care se
bazeaz proiectarea bazelor de date i modelul de date relaional.

2.1. Conceptul de baz de date

Pentru conceptul de baz de date exist un numr foarte mare de


definiii, adesea contradictorii, cu att mai mult cu ct conceptul a fost n
continu evoluie.

Baza de date:
 reprezint o colecie partajat de date, ntre care exist relaii logice
(i o descriere a acestor date), proiectat pentru a satisface
necesitile informaionale ale unei organizaii;
 este o colecie de date operaionale folosite de ctre aplicaiile
sistem ale unei organizaii;
 este un ansamblu structurat de date coerent, fr redundan inutil,
astfel nct aceasta pot fi prelucrate eficient de mai muli utilizatori
ntr-un mod concurent;
 reprezint un ansamblu de date nregistrate pe suporturi accesibile
calculatorului pentru a satisface simultan mai muli utilizatori de o
manier selectiv i ntr-un timp oportun;
 se definete ca un ansamblu de date elementare sau structurate,
accesibile unei comuniti de utilizatori.

15
Baza de date este un ansamblu structurat de date legate structural ntre
ele, un depozit de date unic definit o singur dat i utilizat simultan de mai
muli utilizatori. Baza de date este o resurs comun i partajat. Baza de date
conine nu numai date ci i descrierea acestora. Descrierea datelor este
cunoscut sub denumirea de dicionar de date (catalog de sistem, sau meta-
date) i reprezint date despre date. Prin faptul ca baza de date conine i
descrierea datelor se realizeaz independena program - date. Baza de date
realizeaz separarea definiiei datelor de programele de aplicaie. Prin aceast
abstractizare a datelor devine posibil modificarea definiiei unei date fr a
afecta utilizatorii acesteia cu condiia ca semnificaia datei respective, adic
definiia extern a acesteia, s rmn aceeai.
Ceea ce este important de reinut referitor la conceptul de baz de date
este aceea c el nu poate fi definit complet dect dac se au n vedere dou
unghiuri de vedere diferite i legtura dintre acestea:
 caracteristicile bazei de date din punctul de vedere al utilitii n
cadrul sistemului real n care se implementeaz, respectiv locul i
rolul bazei de date n cadrul sistemului informaional-decizional,
schema extern, nivelul extern (viziunea extern);
 caracteristicile tehnice ale bazei de date, respectiv locul i rolul
bazei de date n cadrul sistemului de prelucrarea datelor, schema
intern, nivelul intern (viziunea intern);
 legtura dintre cele dou viziuni, cea extern i cea intern este
realizat de schema conceptual (nivelul conceptual), care are
rolul de a constitui schema logic a ntregii baze de date, adic
reprezint o imagine complet a cerinelor organizaiei privind
datele, fiind independent de orice consideraii privind stocarea.
Standardizarea n domeniul bazelor de date s-a impus de la nceputul
anilor 70 impunndu-se pentru baza de date trei niveluri de abstractizare, adic
trei niveluri distincte la care pot fi descrise datele. Aceasta formeaz o
arhitectur cu trei niveluri, cuprinznd un nivel extern, unul conceptual i unul
intern. Pentru fiecare nivel se definete o schem corespunztoarea a bazei de
date. Obiectivul arhitecturii cu trei niveluri este separarea vederii fiecrui
utilizator asupra bazei de date de modul n care ea este reprezentat fizic.
Viziunea utilizatorului individual se numete vedere extern sau
model extern, la nivel extern existnd o mulime de vederi externe, de sub-
scheme externe, corespunztoare fiecrui utilizator individual. O vedere
extern poate fi considerat ca fiind din punctul de vedere al utilizatorului
individual coninutul bazei de date, adic ceea ce vede el din baza de date.
Acest nivel descrie acea parte a bazei de date care este relevant pentru fiecare
utilizator schema extern fiind format din mulimea de sub-schemelor externe.

16
Schema conceptual este o reprezentare a tuturor informaiilor coninute de
baza de date ntr-o form abstract. Ea reprezint o viziune, o vedere a datelor
aa cum sunt ele n realitate, fr a ine cont de modul n care vede datele
fiecare utilizator. Nivelul conceptual reprezint o vedere general a bazei de
date. Acest nivel descrie ce date sunt stocate n baza de date i relaiile dintre
acestea. Pentru o baz de date exist o singur schem conceptual. Vederea
intern precizeaz modul n care se memoreaz efectiv datele ce formeaz baza
de date i este descris de schema intern a bazei de date. Nivelul intern este
reprezentarea fizic a bazei de date pe calculator. Acest nivel descrie cum sunt
stocate datele n baza de date precum i metodele de acces, criteriile de ordonare
i regsire pe baza unor criterii de performan i flexibilitate care asigur
performane optime. Pentru baza de date exist o singur schem extern.
Pentru a stabili corespondena ntre fiecare schem extern i schema
intern, n cadrul bazei de date exist mecanisme care folosesc informaiile din
schema conceptual. Fiecare sub-schem extern este o imagine a schemei
conceptuale.
Trebuie s se fac distincie ntre descrierea bazei de date, care
constituie schema bazei de date i baza de date nsi. Schema bazei de date este
definit n cursul procesului de proiectare a bazei de date, modificrile
ulterioare fiind nesemnificative. Datele reale din baza de date pot fi modificate
frecvent. Mulimea de valori concrete stocate, la un moment dat, se numete
instan a bazei de date.
Descrierea general a bazei de date se numete schema bazei de date i
vizeaz structurile de date, legturile dintre date i regulile care asigur coerena
datelor. Pentru o baz de date exist trei tipuri diferite de scheme care sunt n
concordan cu nivelurile de abstractizare ale arhitecturii bazei de date.

2.2. Modelarea baze de date

Numim model de date o colecie integrat de concepte, necesare


descrierii datelor, a relaiilor dintre date i a constrngerilor asupra datelor dintr-
o organizaie. Modelul de date este o reprezentare abstract a obiectelor i a
evenimentelor lumii reale i a asocierilor dintre acestea, cu ajutorul cruia se
reprezint o organizaie. Un model de date este definit sub trei aspecte, i anume
o component structural, care cuprinde regulile de definire a datelor, o
component de manipulare datelor, care definete tipurile de operaii permise
asupra datelor i o mulime de reguli care garanteaz integritatea i coerena
datelor. Pentru modelarea datelor la nivel conceptual i extern se folosesc

17
modele de date bazate pe obiecte i modele de date bazate pe nregistrri,
iar la nivel fizic modele de date fizice. Modelele de date bazate pe obiecte
utilizeaz conceptele: entitate, atribut i relaie. Cele mai cunoscute tipuri de
modele de date bazate pe obiecte sunt modelul Entitate - Relaie, modelul
semantic, modelul funcional i modelul orientat spre obiecte. Modelul
Entitate Relaie reprezint un model de date conceptual de nivel nalt,
neformalizat, care descrie structura bazei de date, precum i tranzaciile de
regsire, respectiv de reactualizare asociate. Acest model, permite o
reprezentare a unui sistem real, grupnd elementele sistemului real n entiti i
asocieri (legturi) ntre entiti. Modelul de date orientat spre obiecte extinde
definiia conceptului entitate n sensul c se descrie att starea prin atribute, ct
i comportamentul prin aciunile asociate. Obiectul ncapsuleaz starea i
comportamentul. Modelarea conceptual presupune realizarea unui model de
date pentru informaiile care exist n cadrul unei organizaii independent de
detaliile de implementare.
Analiza necesitilor informaionale ale unei organizaii presupune
identificarea entitilor, a atributelor acestora i a relaiilor dintre entiti.
O Entitate (entity) este un obiect care poate fi identificat n mod
distinctiv (persoan, loc, concept, activitate, eveniment), care este semnificativ
pentru sistemul real, un obiect despre care dorim s nregistrm informaii.
Un atribut (attribute) este o proprietate care descrie un aspect oarecare
al obiectului pe care dorim s l definim. Entitile similare care pot fi descrise
prin aceleai atribute formeaz un tip de entitate (entity type), iar colecia
format din toate entitile de acelai tip formeaz o mulime de entiti (entity
set).
Entitatea este descris de atributele sale relevante. Fiecare atribut
reprezint o caracteristic semnificativ, atributele avnd rolul de a defini
coninutul unei identiti. Pentru fiecare atribut exist o mulime de valori
posibile, poteniale, care formeaz un domeniu de valori. Atributele pot fi
simple sau compuse. Atributul simplu are o singur component cu existen
independent. Atributul compus este format din mai multe componente, fiecare
avnd o existen independent. Prin valori concrete date atributelor ce definesc
o entitate se obine o realizare, o apariie, o instan a respectivei entiti. Un
atribut poate avea o singur valoare, sau mai multe valori pentru o anumit
entitate. Este posibil ca valoarea unui atribut s fie derivabil din valoarea unui
alt atribut sau din valorile mai multor atribute ale respectivei entiti sau ale
altor entiti.
Numim cheie candidat atributul sau mulimea de atribute ale unei
entiti care identific n mod unic apariiile individuale ale unui tip de entitate.
Un tip de entitate poate avea mai multe chei candidat. Pe baza unor consideraii

18
privind privind caracterul unic, precum i de structura cheilor candidat din
mulimea de chei candidat se alege o cheie candidat care va fi numit cheie
primar, iar celelalte vor fi numire chei alternative. O cheie candidat format
din mai multe atribute va fi numit cheie compus.
Numim tip de relaie o asociere semnificativ ntre tipuri de entiti.
Un tip de relaie are asociat o anumit funcie. Fiecare prezen unic
identificabil a unui tip de relaie se numete relaie. Numim relaie
(relationship) o asociere, o comunicare, o coresponden ntre dou sau mai
entiti. Relaia exprim raportul existent ntre respectivele entiti i exist doar
dac entitile exist. O valoare a unei relaii este o comunicare ntre valorile
entitilor pe care le leag. Entitile implicate ntr-o anumit relaie se numesc
participani n relaie. O relaie n care o anumit entitate particip mai mult
dect o dat avnd roluri diferite se numete relaie recursiv. O relaie este
caracterizat prin gradul relaiei, care exprim numrul de entiti participante.
Din punctul de vedere al numrului de mulimi de entiti participante entitile
pot fi binare, respectiv multiple. Asocierile binare sunt de trei tipuri, n funcie
de numrul elementelor din fiecare dintre cele dou mulimi puse n
coresponden:
- asocierea unul - la - unul (one-to-one);

- asocierea unul la - mai multe (one-to-many) i mai multe la -


unul (many-to-one);

- asocierea mai multe la - mai multe (many-to-many)

19
ntre date exist diverse relaii (legturi). ntre datele ce aparin unor
tipuri de entiti pot exista dou categorii de legturi: prin apartenena datelor la
entitate; dintre entitile de acelai tip sau de tipuri diferite1.
Exemple
1. Fie A mulimea persoanelor ce lucreaz ntr-o societate comercial.
ntre datele acestei mulimi se pot stabili relaii de tipul:
x are acceai profesie cu y;
x este soia lui y;
x este mai n vrst ca y etc.
2. Fie dou clase de entiti: PRODUSE i BENEFICIARI. ntre datele
acestor dou clase de entiti pot exista urmtoarele relaii:
ntre entitile clasei PRODUSE, date de faptul c un produs
poate intra n alctuirea altui produs;
ntre clasele de entiti PRODUSE i BENEFICIARI, date de
faptul c un produs poate fi livrat la unul sau mai muli
beneficiari iar un beneficiar poate primi unul sau mai multe
produse.

Constrngerile care pot fi impuse entitilor participante ntr-o relaie


trebuie s reflecte restriciile asupra relaiilor, aa cum sunt ele n sistemul real.
Exist dou tipuri de constrngeri asupra relaiilor, numire constrngeri de
cardinalitate i constrngeri de participare. Regulile care definesc
cardinalitatea sunt numite reguli de afaceri. Toate regulile de afaceri din
sistemul real trebuie identificate i reprezentate n modelul de date. Prin
constrngerile de participare se stabilete Atunci cnd existena unei entiti
depinde de o alt entitate de care este legat printr-o relaie spunem c exist o
constrngere de participare. Constrngerea de participare poate fi total
(obligatorie) atunci cnd existena unei entiti necesit existena unei entiti
asociate printr-o relaie, respectiv constrngere de participare este parial
(opional) atunci cnd constrngerea nu condiioneaz cnd existena entitii.
Baza de date este o transpunere fizic, n calculator, a modelului de
date, care conine entitile, atributele ce definesc entitile i relaiile dintre
entiti.

1
Lungu I., Bodea Constana, Bdescu Georgeta, Ioni Cristina; Baze de date. Organizare,
proiectare i implementare, Editura All Educational, Bucureti, 1995, p. 3

20
2.3. Obiectivele datelor n baze de date

Datele reprezint suportul real pentru informaia necesar subsistemului


de decizie. Datele sunt stocate n structuri complexe numite baze de date.
Utilizarea bazelor de date n cadrul sistemelor informatice are urmtoarele
obiective fundamentale din punctul de vedere al datelor:
1. Independena fizic reprezint obiectivul esenial, i anume,
realizarea independenei structurilor de stocare n raport cu structurile
de date din sistemul real. n baza de date mulimea de date se definete
fr a ine cont de forma datelor n sistemul real, lund n considerare
doar accesul rapid la date cu performane prestabilite. Aceasta se
realizeaz prin asigurarea independenei fizice a datelor fa de
programele de aplicaie, adic orice modificare organizrii interne a
datelor i a structurilor de nregistrare nu va afecta programele de
aplicaie.
2. Independena logic presupune c fiecare utilizator, respectiv grup
de utilizatori are o sub-schem extern particular proprie fr a afecta
schema general a bazei de date. Fiecare grup poate s cunoasc doar o
parte a semanticii datelor, s vad doar o submulime a datelor i numai
n forma de care are nevoie. Schema conceptual a bazei de date fiind o
sintez a schemelor externe nu va fi afectat de evoluia n timp a unei
sub-scheme particulare, fiecare grup de utilizatori putnd s-i modifice
propria sub-schem fr a afecta schema conceptual.
3. Manipularea datelor direct de ctre utilizatorul final face ca datele
s fie vzute de utilizatori independent de implementarea datelor n
baza de date i pot manipula datele cu ajutorul unor limbaje ne-
procedurale foarte apropiate de limbajul natural. Utilizatorul poate
obine informaii din baza de date fr s cunoasc n ntregime
organizarea complex a bazei de date. Realizarea acestui obiectiv are ca
rezultat mbuntirea accesibilitii datelor i a capacitii de rspuns.
Utilizatorul va putea accesa baza de date cel mai adesea prin
intermediul unei interfee prietenoase n asociere cu un limbaj ne-
procedural, care permit un dialog simplu i eficient pentru actualizarea
i exploatarea bazei de date. Utilizatorii nu cunosc structura ntregii
baze de date, dar pot, prin utilizarea un limbaj apropiat de limbajul
natural s acceseze procedurile de actualizare, interogare i afiarea
datelor din baza de date. Sistemul informaional are o mult mai mare
funcionalitate potenial deoarece prin utilizarea unor instrumente

21
adecvate devine posibil interogarea ad-hoc a coleciei de date de ctre
utilizatorul final, consumatorul de informaie, eliminndu-se astfel
intermediarul, adic personalul calificat care are menirea de a crea
aplicaia informatic.
4. Asigurarea unei redundane minime i controlate a datelor este al
doilea obiectiv major al organizrii datelor n baze de date. Aceasta
nseamn c se urmrete pe ct posibil ca fiecare dat s apar numai o
singur dat n baza de date, indiferent de numrul de utilizatori care o
acceseaz . Duplicarea datelor se pstreaz doar pentru a asigura
coerena bazei de date, redundana, trebuie redus la minim i meninut
sub control. Redundana minim se asigur prin tehnicile de proiectare a
bazei de date.
5. Creterea cantitii de informaii disponibile prin stocarea n baza
de date a datelor generate de un departament al unei organizaii devine
posibil accesarea lor de toi membrii organizaiei. Prin utilizarea bazei
de date, aceasta fiind o colecie unic de date mpreun cu legturile
logice existente ntre date, utilizatorul poate obine toate datele legate
logic de o anumit dat pe care acesta o folosete. Prin integrarea
datelor devine posibil accesul la date pentru toi membrii unei
organizaii pentru care o anumit date este semnificativ.
6. Coerena i integritatea datelor coerena datelor se realizeaz prin
verificarea tuturor dependenelor existente ntre date n sistemul real.
Consistena datelor este asigurat prin faptul c actualizarea datelor va
fi perceput de fiecare utilizator al bazei de date nu doar de utilizatorii
care au realizat actualizarea n plus datorit unicitii datei stocate n
baza de date orice actualizare a valorii sale trebuie efectuat o singur
date, iar noua valoare va fi disponibil instantaneu pentru toi
utilizatorii. Integritatea datelor se refer la validarea i coerena datelor
stocate i se realizeaz prin unicitatea datelor, precum i prin validarea
datelor introduse sau actualizate n baza de date. Informaia trebuie s
satisfac constrngeri statice sau dinamice, locale sau generale.
7. Administrarea i controlul centralizat al datelor administrarea
datelor presupune definirea structurii datelor i a modului de stocare a
datelor. Administrarea este centralizat i permite o organizare coerent
i eficace a informaiei. Fiecare utilizator are propriile cerine care pot
intra n conflict cu ale altor utilizatori. Administrarea centralizat are
rolul de a optimiza performanele pentru organizaie luat n ansamblu.

22
8. Partajabilitatea datelor permite ca datele s fie partajate ntre
membrii unei organizaii fiecare utilizator va accesa datele ca i cum ar
fi singur, fr a ti c n acelai timp un alt utilizator va accesa pentru a
le modifica. Prin mecanisme proprii de control baza de date va permite
accesul concurent la date meninndu-se n acelai timp coerena
datelor. Acest obiectiv face posibil dezvoltarea de noi aplicaii ce
necesit poate chiar extinderea, respectiv modificarea aplicaiilor aflate
deja n funciune.
9. Securitatea datelor baza de date trebuie s fie protejat pentru
distrugeri logice prin actualizri eronate, respectiv distrugeri fizice.
Securitatea va fi asigurat prin mecanisme proprii care permit refacerea
bazei de date n cazul apariiei unei erori. Prevenirea distrugerii
accidentale a datelor, oblig la instituirea unui set de proceduri de
autorizare, dar i de confirmare a operaiilor de tergere, adugare,
precum i realizarea unor copii de siguran, a unor jurnale de urmrire
a actualizrilor i proceduri de refacere a bazei de date, de restaurare a
acesteia, n caz de incidente.
10. Confidenialitatea datelor - datele vor fi protejate de accesul
neautorizat. Baza de date are mecanisme proprii care permit
identificarea i autentificarea utilizatorilor, precum i accesul autorizat
i difereniat. Accesul depinde de date i de utilizatori.

2.4. Sisteme de gestiune a bazelor de date

n cadrul oricrei organizaii este necesar ca resursa de date s fie bine


definit i documentat, bine organizat i controlat, partajabil i relevant
pentru deciziile luate n cadrul organizaiei.
Sistemul de Gestiune al Bazei de Date (SGBD) reprezint un pachet
de programe specializat pentru definirea, crearea, ntreinerea i accesul
controlat la baza de date.
Obiectivul principal al unui SGBD este de a separa datele de
programele de aplicaie. SGBD constituie o interfa ntre utilizatori i baza de
date i const din programe care interacioneaz cu programele de aplicaie ale
utilizatorului i cu baza de date. Un SGBD are o structur complex i include
module program specializate pentru a ndeplini anumite funciuni:
 gestionarea bazei de date;
 definirea datelor (descrierea datelor);

23
 manipularea datelor (actualizare i interogarea bazei de date);
 controlul i securitatea datelor (controlul integritii, accesul
concurenial i securitatea datelor);
 utilitare.
SGBD trebuie s asigure trecerea de la un nivel de abstractizare la altul,
adic s poat interpreta comenzile exprimate n termen de schem extern,
pentru a le transpune prin intermediul schemei conceptuale n operaii de
intrare-ieire la nivel fizic. SGBD gestioneaz la nivel conceptual un dicionar
de date. Modulele program de gestiune a bazei de date realizeaz accesul fizic la
date n conformitate cu cerinele exprimate printr-o comand. Modulele
program de definirea datelor permit traducerea unui limbaj specializat care
realizeaz descrierea naturii datelor i a legturii logice dintre date la nivel
global conform schemei conceptuale, precum i schemelor externe specifice
fiecrei aplicaii program externe. Modulele program de manipulare a datelor
permit utilizatorilor prin intermediul unui limbaj specializat s gseasc, s
insereze, s modifice, respectiv s elimine datele din baza de date. Modulele
program pentru controlul i securitate datelor au rolul de a asigura
confidenialitate a i integritatea datelor, precum i rezolvarea problemelor de
concuren. Modulele program utilitare permit ntreinerea, manipularea
exploatarea corect i facil a bazei de date.
Sistemele SGBD evolueaz continuu i trebuie s se extind pentru a
rezolva eficient noile cerine ale utilizatorilor.
Istoria sistemelor de gestiune a bazelor de date delimiteaz trei generaii
care sunt caracterizate de modelele logice folosite:
 sisteme de tip ierarhic i de tip reea,
 sisteme relaionale;
 sisteme avansate, care se reper la sistemele orientate obiect, la cele
deductive, multimedia, active etc.
SGBD de tip ierarhic (hierarchical database) i reea (network
database) reprezint din punct de vedere istoric primele generaii de SGBD. n
modelele ierarhice i reea datele sunt reprezentate la nivel de articol prin
legturi ierarhice de tip arbore, respectiv de tip graf. Structurile de date
corespunztoare acestor modele pot fi descrise la nivel logic cu ajutorul unei
structur de date abstract numit diagram. Diagrama este n acest caz un graf
orientat prin care se reprezint tipuri de entiti i legturile funcionale dintre
acestea. Sistemele de gestiune a bazelor de date bazate pe modelul de date reea,
respectiv cel ierarhic, poart numele de sisteme navigaionale i au fost
dezvoltate n perioada 1960-1970.
A doua generaie de SGBD o reprezint modelul relaional care
trateaz entitile ca relaii. Sistemele de Gestiunea Bazelor de Date

24
Relaionale sunt caracterizate de structuri de date simple i intuitive, de
operatori care se aplic relaiilor pentru a defini, cuta, i reactualiza datele.
Bazele de date relaionale asigur independena complet a descrierii logice a
datelor n termeni de relaii i n descrierea fizic a datelor n termen de fiiere.
n prezent exist cteva sute de sisteme SGBD relaionale pentru toate tipurile
de calculatoare. Modelul relaional asigur o independen complet n ceea ce
privete descrierea logic i fizic a datelor. n plus SGBD relaionale pun
includ limbaje specializate pentru descrierea i manipularea datelor. Modelul
relaional are capaciti limitate de modelarea datelor. SGBD relaionale nu
folosesc obiecte complexe i dinamice, nu realizeaz gestiunea distribuit a
datelor i nici gestiunea de cunotine.
Conceptul de programare orientat obiect sau programarea
calculatoarelor cu ajutorul obiectelor utilizeaz conceptele de obiect i clas de
obiecte. Obiectul este definit de o mulime de proprieti numite atribute i are
un anumit comportament care n cazul obiectelor folosite n programare se
concretizeaz prin metode, care sunt programe care se execut n mod automat
atunci cnd n mediul extern sau cel extern al obiectului apare un anumit
eveniment. Numim obiect o entitate unic identificabil, care conine att
atributele care definesc starea unui obiect din lumea real, ct i aciunile
asociate acestuia. Obiectele de acelai tip formeaz o clas de obiecte care
reprezint o generalizare a noiunii de tip de dat. Clasa include definiia datelor
i a metodelor. Conform principiului ncapsulrii datelor, datele clasei sunt
vizibile doar metodelor clasei, iar conform principiului motenirii sau al
derivrii o clas poate fi definit folosind o clas existent. Conceptul de
ncapsulare presupune c un obiect conine att structura de date, ct i
mulimea de operaii care pot fi utilizate pentru al manipula. Ascunderea
informaiilor semnific separarea aspectelor externe ale unui obiect de detaliile
sale interne, care sunt ascunse de lumea exterioar. n acest mod, detaliile
interne ale unui obiect pot fi modificate fr a afecta aplicaiile care l utilizeaz
cu condiia ca detaliile externe s rmn neschimbate. Includerea tehnicilor de
programare orientat obiect n domeniul bazelor da date a condus la apariia
Sistemelor de Gestiune a Bazelor de Date Orientate Obiect, care realizeaz o
modelare superioar a informaiei lund n considerare aspectele dinamice i
integrarea descrierii structurale i comportamentale. Prin utilizarea principiului
programrii orientate obiect n domeniul bazelor de date relaionale a aprut
Sistemele de Gestiune a Bazelor de Date Relaionale Orientate Obiect.
O relaie este o mulime de nregistrri ce reprezint fapte. Cunotinele
sunt aseriuni generale i abstracte asupra faptelor. Pe baza cunotinelor se
deduc fapte noi prin deducie plecnd de la fapte cunoscute. Pentru a rezolva
problema gestiunii de cunotine au aprut bazele de date deductive, care

25
utiliznd programarea logic gestioneaz cunotine relativ la baze de date. Un
Sistem de Baze de Date Deductiv posed un limbaj de definire a datelor care
permite definirea structuri predicatelor sub form de relaii i constrngeri de
integritate asociate, un limbaj de manipulare a datelor care permite pe lng
actualizarea datelor i formularea de cereri, un limbaj de reguli de deducie care
s permit construirea predicatelor derivate.
Sistemele distribuite reprezint calculatoare interconectate printr-o reea
de comunicaie utilizate pentru un scop global. Gestionarea datelor aflate pe
calculatoare diferite, eterogene din punctul de vedere al sistemului de operare
folosit se realizeaz cu ajutorul unei baze de date distribuite. Bazele de date
distribuite sunt sisteme de baze de date cooperante care sunt rezidente pe
calculatoare diferite i situate n locuri n locaii diferite. Sistemul de gestiune al
unei baze de date distribuite face posibil accesul programelor de aplicaie la date
rezidente pe mai multe calculatoare fr ca localizarea datelor s fie cunoscut.
Bazele de date distribuite folosesc ca instrument principal pentru prelucrarea
datelor distribuite modelul relaional.
Integrarea mai multor baze de date autonome i eterogene conform unei
scheme globale cu scopul de a realiza accesul uniform i integrat la fiecare din
bazele de date componente a condus al conceptul de sistem multibaz de date.
Avantajul major al acestui model const n faptul c printr-o singur interogare
pot fi accesate date din mai multe baze de date fr a afecta aplicaiile care
manipuleaz datele din fiecare baz de date component a sistemului integrat.
Fiecare baz de date din sistemul integrat poate folosi propriile limbaje de
interogare.
Bazele de date permit stocarea unei cantiti foarte mari de informaie,
care poate fi folosit n mod pentru elaborarea deciziilor operative, dar i a celor
strategice. Pentru elaborarea deciziilor operative se folosesc date aferente
activitii curente, date aferente unei perioade scurte de timp. Acestea sunt
generate i preluate n sistem n mod dinamic pentru optimizarea procesului de
decizie. Prelucrarea acestor date se realizeaz n pe baza unor scenarii de tip
procesarea de tranzacii n timp real (OLTP On Line Transaction
Processing). Necesitatea analizrii unor cantiti foarte mari de date a condus la
conceptul de magazie de date (Data Warehouse), care utilizeaz pentru
atingerea acestui scop scenarii de tip procesare analitic n timp real (OLAP
On Line Analytical Processing). Baza de date analitic permite realizarea de
interogri multidimensionale instantanee, fr a fi necesar ca acestea sa fie
definite anterior. Magazia de date este proiectat pentru a facilita analiza
multidimensional a datelor i reprezint un sistem care include informaii
despre o organizaie structurate n mai multe baze de date, numite n acest caz
rafturi de date (Data Marts). Data Warehouse reprezint o baz de date

26
proiectat pentru a facilita analiza datelor fiind orientat spre dimensiuni.
Structurile de date multidimensionale sunt vizualizate cel mai bine sub forma
unor cuburi de date i a unor cuburi n cadrul cuburilor. Fiecare fa a unui cub
reprezint o dimensiune. Bazele de date multidimensionale reprezint o
modalitate compact pentru vizualizarea i manipularea elementelor de date
care pot avea multe inter-relaii.

2.5. Funciunile sistemului de gestiune al bazei de date

Sistemul de gestiune al bazei de date (SGBD) reprezint o interfa


ntre utilizatori i baza de date, care permite crearea, actualizarea i consultarea
bazei de date. n 1982 E.F. Codd a enunat opt servicii list completat ulterior
cu nc dou servicii pe care trebuie s le furnizeze un SGBD complet:
1. Stocarea, regsirea i reactualizarea datelor reprezint funcia
fundamental a unui SGBD. SGDB trebuie sa ascund fa de utilizator detaliile
privind implementarea fizic intern.
2. Un catalog sistem accesibil utilizatorului. SGBD va asigura
utilizatorului i a SGBD la un catalog sistem integrat (dicionar de date - Data
Dictionary) care va conine date despre scheme, utilizatori, aplicaii i
reprezint un depozit de informaii care descrie datele din baza de date, date
despre date. Catalogul sistem conine descrierea i localizarea datelor,
denumirile, tipurile i dimensiunile articolelor de date, denumirile relaiilor,
constrngerile de integritate asupra datelor, numele utilizatorilor autorizai care
au acces la date, schemele externe, conceptuale i interne, precum i
transpunerile dintre ele, statistica utilizrii. Catalogul sistem permite ca
informaiile despre date s fie colectate i gestionate central, permite ca definiia
datelor s fie accesibil tuturor posibililor utilizatori, comunicarea fiind
simplificat deoarece de sensul exact al datelor este stocat.
3. Asigurarea tranzaciilor. Tranzacia reprezint o mulime de aciuni,
realizate de un utilizator sau un program de aplicaie prin care se acceseaz sau
se modific coninutul bazei de date. Dac o tranzacie eueaz n timpul
execuiei baza de date va intra ntr-o stare de incoeren, motiv pentru care este
necesar ca baza de date baza de date s fie readus n stare de coeren care a
precedat lansarea n execuie a tranzacia. Acesta se realizeaz printr-un
mecanism propriu al SGBD care este capabil s anuleze modificrile efectuate
asupra bazei de date de tranzacia euat, care nu a fost efectuat n ntregime ci
doar parial.
4. Servicii de control concurente. SGBD trebuie s furnizeze un
mecanism care s garanteze c baza de date este corect reactualizat atunci cnd

27
mai muli utilizatori efectueaz simultan tranzacii asupra bazei de date.
Interogarea concurent trebuie sa fie capabil s asigure simultan tuturor
utilizatorilor aceeai informaie, chiar i n cazul reactualizrii datelor i s
garanteze c nu vor avea loc interferene atunci cnd mai muli utilizator
acceseaz baza de date.
5. Servicii de reconstituire. SGBD trebuie s furnizeze un mecanism
propriu de reconstituire a bazei de date n cazul deteriorrii datorit unei cauze
interne sau externe.
6. Servicii de autorizare. SGBD trebuie s furnizeze un mecanism prin
care s garanteze c doar utilizatorii autorizai pot accesa datele. Termenul de
securitate se refer la protecia bazei de date mpotriva accesului ne-autorizat
intenionat sau accidental. Fiecare utilizator trebuie sa acceseze doar datele care
i sunt necesare i pentru care are definit accesul autorizat.
7. Suport pentru comunicarea datelor. SGBD trebuie sa poat fi
integrat ntr-un pachet de programe de comunicaie din care va primi cereri sub
form de mesaje i va rspunde n acelai mod.
8. Servicii de integritate. SGBD trebuie sa furnizeze mijloace care s
asigure c att datele din baza de date, ct i modificrii acestora respect
anumite reguli. Integritatea bazei de date se refer la corectitudinea i coerena
datelor stocate i se exprim n termeni de constrngeri, care reprezint reguli
de coeren pe care baza de date trebuie s le respecte.
9. Servicii pentru promovarea independenei de date. SGBD trebuie s
permit ca programele de aplicaie s fie independente de structura real a bazei
de date. Pentru realizarea acestui obiectiv se utilizeaz mecanisme de
vizualizare, sau sub-scheme externe.
10. Servicii utilitare. Serviciile utilitare asigur suport pentru
administrare efectiv a bazei de date. Prin acestea se asigur suport pentru
importul i exportul de date, faciliti de monitorizare, analiz statistic,
reorganizarea datelor, realocarea spaiului, eliminarea informaiei perimate etc.

2.6. Componentele unui mediu SGBD

Un mediu SGBD este un sistem informatic care folosete baze de date. n


structura unui astfel de sistem n se pot delimita cinci componente principale:
hardware, software, date, proceduri i persoane.
1. Hardware.
Reprezint suportul fizic pentru SGBD i poate fi format de un singur
calculator personal, un calculator mainframe, sau chiar o reea de calculatoare.
Elementele specifice de hardware depind de cerinele organizaiei i de SGBD

28
utilizat. Fiecare SGBD impune cerine minimale pentru echipamentele fizice
necesare funcionrii optime.
2. Software.
Componenta software include programele ce formeaz SGBD,
programele de aplicaie, sistemul de operare local i atunci cnd este cazul
software de reea. Programele de aplicaie se realizeaz folosind limbaje de
programare de generaia treia sau chiar a patra, ele nu fac parte din SGBD, dar
acceseaz baza de date prin intermediul SGBD. Programele de aplicaie nu au
rolul de a gestiona datele ci doar de a prezenta informaia n termeni specifici
aplicaiei prin intermediul unei interfee.
3. Date.
Reprezint cea mai important component a unui mediu SGBD i
include att meta-datele ct i datele propriu-zise.
4. Proceduri.
Procedurile includ regulile care guverneaz proiectarea i utilizarea bazei
de date. Activitatea utilizatorilor sistemului i a personalul care administreaz
baza de date se desfoar conform unor proceduri documentate privind modul
de folosire i funcionare a sistemului. Aceste instruciuni se refer la
deschiderea i nchiderea unei sesiuni de lucru, utilizarea unor faciliti SGBD
i a programelor de aplicaie, activarea i dezactivarea SGBD, arhivarea datelor,
utilizarea copiilor de siguran, tratarea defeciunilor hardware, respectiv
software, refacerea bazei de date n caz de incident, modificarea i
reorganizarea bazei de date.
5. Persoane.
n mediul SGBD se identific patru tipuri distincte de persoane implicate:
1 administratorii, 2 proiectanii, 3 programatorii de aplicaie i 4 utilizatorii
finali.
1 Baza de date reprezint o resurs n cadrul organizaiei care este
gestionat de doi administratori: administratorul de date i de administratorul
bazei de date. Administratorul de date (Data Administrator) gestioneaz
resursele de date, fiind responsabil de proiectarea conceptual i logic a bazei
de date, de planificarea bazei de date, de realizarea i ntreinerea standardelor, a
politicilor i a procedurilor bazei de date. Este persoana sau grupul de persoane
responsabil de dezvoltarea bazei de date n direcia susinerii obiectivelor
generale ale organizaiei, fiind un foarte bun cunosctor al organizaiei. El
determin cerinele organizaiei privind datele, rspunde de proiectarea
conceptual i logic a bazei de date, dezvolt modelul general de date conform
cu progresul din domeniul tehnologiei informaiei i al afacerilor, creeaz
standarde de colectarea datelor, stabilete necesitile i protecia privind
accesul la date, gestioneaz dicionarul de date i rspunde de asigurarea unei

29
documentaii complete care va include modelul de date, standardele, politicile,
procedurile, utilizarea dicionarului de date i controlul asupra utilizatorilor
finali. Administratorul bazei de date (Database Administrator) este persoana
sau grupul de persoane responsabil de proiectarea, implementarea i realizarea
fizic a bazei de date, de securitatea i controlul integritii, de ntreinerea
ntregului sistem. El monitorizeaz performanele sistemului i reorganizarea
baze de date, atunci cnd este cazul, definete constrngerile de securitate i
integritate, rspunde de selectarea SGBD i de implementarea proiectului de
baz de date, de instruirea utilizatorilor i de realizarea copiilor de siguran.
Este persoana care trebuie sa cunoasc foarte bine SGBD folosit precum i
mediul sistemelor de operare.
2 Proiectanii bazei de date sunt persoanele implicate n proiectarea
logic i cea fizic a bazei de date. Proiectarea conceptual i logic presupune
identificarea entitilor, a relaiilor dintre entiti, a constrngerilor asupra
datelor ce vor fi stocate n baza de date. Proiectantul de baz de date
conceptuale i logice trebuie sa cunoasc amnunit i complet toate datele din
cadrul organizaiei, precum i a regulilor interne i externe conform crora
funcioneaz organizaia. Aceste reguli descriu principalele caracteristici ale
datelor aa cum sunt ele n cadrul organizaiei respective. n etapa de proiectare
a bazei de date proiectantul va implica toi presupuii utilizatori. Proiectarea
conceptual este independent de detaliile privind implementarea, iar
proiectarea logic este presupune utilizarea unui model de date. Proiectantul de
hibaz de date fizice preia modelul logic de date i l implementeaz folosind
un anumit SGBD, el alege strategia de stocare adecvat innd cont de modul de
utilizare.
3 Programatorii de aplicaie realizeaz i implementeaz programele
de aplicaie care confer funcionalitatea cerut de utilizatorii finali. Programele
de aplicaie se realizeaz n conformitate cu documentaia elaborat n etapa de
proiectare. Fiecare program de aplicaie este realizat fie cu ajutorul unu limbaj
extern sau cu unul propriu SGBD i efectueaz o anumit operaie asupra bazei
de date: extragere, inserare, reactualizare i tergere de date.
4 Utilizatorii finali reprezint clienii bazei de date i pot fi grupai n
dou categorii: utilizatori simpli i utilizatori specialiti. Utilizatorii simpli nu
percep baza de date i nici SGBD ci doar acceseaz baza de date prin
intermediul programelor de aplicaie. Utilizatorii specialiti cunosc structura
bazei de date i facilitile oferite de SGBD. Ei sunt capabil s efectueze
instantaneu interogri ale bazei de date, pentru aceasta folosind fie un limbaj
extern, fie unul intern al SGBD pentru a efectua anumite operaii asupra bazei
de date, fiind capabili s realizeze chiar propriile programe de aplicaie.

30
2.7. Limbaje pentru baze de date

n limbajele de programare clasice declaraiile de date i instruciunile


executabile aparin limbajului respectiv. Limbajele de programare sunt grupate
n generaii de limbaje. Limbajele de programare clasice sunt incluse n
generaia a treia de limbaje (3GL 3 Generation Language) fiind limbaje de
programare procedurale. Generaia a patra de limbaje de programare (4GL)
reprezint limbaje de programare ne-procedurale i au fost create pentru a mrii
productivitatea n programarea calculatoarelor folosind instrumente de tip
generator (de formulare, de rapoarte, de structuri de interogare, de grafice, de
aplicaii) care permit ca n mod interactiv fr a scrie cod program s fie
generate n mod automat programe complexe. Limbajele procedurale precizeaz
ce date sunt necesare i cum trebuie s fie obinut rezultatul unei aciuni tratnd
nregistrrile n mod individual, iar cele neprocedurale precizeaz doar ce
trebuie obinut, opernd asupra unor mulimi de nregistrri.
n sistemele de gestiune a bazelor de date funciile de declarare, de
manipulare i de control al datelor sunt realizate cu ajutorul unor limbaje
diferite. Acestea sunt numite sub-limbaje de date deoarece includ doar
facilitii specifice funciei pe care o au. Ele pot fi ncorporate ntr-un limbaj
gazd de nivel nalt. SGBD asigur suport pentru utilizarea n mod interactiv a
acestor limbaje proprii.
Limbajul pentru definirea datelor (LDD Data Description Language)
este un limbaj specific pentru fiecare SGBD fiind utilizat pentru a specifica
schema bazei de date. Este un limbaj descriptiv care permite administratorului
bazei de date, respectiv utilizatorului final sa descrie i s defineasc entitile
din baza de date precum i relaiile existente ntre entiti, adic s defineasc o
schem sau s o modifice. Nu include faciliti pentru manipularea datelor. Prin
compilarea instruciunilor limbajului de definirea datelor se obin tabele, care
vor fi incluse n catalogul sistem (dicionar de date, sau director de date) i care
descriu datele, relaiile, strategiile de acces la date, criteriile de confidenialitate
i de validare a datelor. Teoretic pot fi identificate limbaje de definire a datelor
aferente fiecrei scheme din arhitectura bazei de date: intern, conceptual i
extern.
Limbajul pentru manipularea datelor (LMD Data Manipulation
Language) este un limbaj care asigur un set de procedee ce permit operaiile de
baz pentru manipularea datelor din baza de date. Operaiile executate n cadrul
bazei de date presupun existena unui limbaj specializat n care comenzile se
exprim prin fraze ce descriu aciuni asupra bazei de date. Manipulrile de date
se efectueaz la cele trei niveluri extern, conceptual i intern. O comand va
preciza operaia, criteriul de selecie, modul de acces i forma de editare.

31
Operaia poate fi de calcul aritmetic sau logic, deschidere-nchidere, cutare,
extragere, adugare, tergere, reactualizare i chiar de editare. Cele mai
importante comenzi sunt cele de regsire. Limbajele de manipulare a datelor
sunt de dou tipuri: procedurale i neprocedurale (declarative). Setul de
instruciuni din cadrul limbajului de manipulare a datelor responsabil de
regsirea datelor de numete limbaj de interogare.
Limbajul pentru controlul datelor (LCD Data Control Language)
este un limbaj specific care include comenzi pentru asigurarea confidenialitii
i integritii datelor, pentru salvarea informaiei cu scopul meninerii
integritii bazei de date i chiar pentru rezolvarea problemelor de acces
concurenial la date.

2.8. Proiectarea bazei de date

Sistemul informaional cuprinde totalitatea resurselor care permit


colectarea, administrarea, controlul i propagarea informaiilor n cadrul unei
organizaii. Datele reprezint o resurs important din cadrul organizaiei i
trebuie gestionat similar celorlalte resurse. Sistemul informatic poate fi realizat
cu ajutorul unei baze de date i reprezint cea mai important component a
sistemului informaional din cadrul organizaiei, baza de date fiind o
component fundamental a sistemului informaional. Sistemul informaional
evolueaz n timp, parcurge anumite etape, are un ciclu de via. Etapele din
ciclul de via al unui sistem informaional sunt: planificarea, colectarea i
analiza cerinelor, proiectarea, realizarea prototipului, implementarea, testarea
i ntreinerea operaional. n practic, ns, aceste etape nu sunt rigide. Pot
exista ntreptrunderi importante i proiectul poate repeta unele etape nainte de
a trece la altele. Aceste etape sunt parcurse i n cazul sistemelor ce folosesc
baze de date. n fiecrei etap a ciclului de via sunt desfurate anumite
activiti.
1. Planificarea bazei de date, este prima etap a ciclului de via i
include activitile care permit realizarea eficient a etapelor din ciclul de via.
Planificarea bazei de date trebuie s fie integrat n strategia general a
organizaiei stabilind prin aceasta care sunt cerinele informaionale viitoare ale
organizaiei pentru a susine planurile de afaceri i scopul organizaiei. Pentru a
susine planificarea bazei de date se va realiza un model general de date, care va
include datele importante, relaiile dintre acestea, precum i legtura cu
componentele funcionale ale organizaiei. n aceast etap vor fi dezvoltate de
standarde pentru modul de colectare a datelor i de specificare a formatelor,
pentru documentaia necesar, fiind stabilite modalitile de realizare a

32
proiectrii i implementrii. Utilizarea standardelor asigur suport pentru
controlul calitii. Cerinele organizaiei cu privire la date fi documentate
corespunztor.
2. Definirea sistemului este a etapa n care se identific scopul i
limitele noului sistem, inclusiv domeniile de aplicaie i grupurile de utilizatori.
La definirea noului sistem va fi precizat n mod necesar i modul n care se va
realiza interfaa cu celelalte componente ale sistemului informaional din cadrul
organizaiei.
3. Colectarea i analiza cerinelor (Analiza) este etapa de cea mai
mare importan n care, folosind diferite metode i tehnici adecvate, vor fi
colectate i analizate cerinele informaionale ale organizaiei cu privire baza
data. Informaiile necesare proiectrii bazei de date vor fi colectate folosind
metoda interviului individual, metoda interviului de grup, metoda
chestionarelor, observarea organizaiei n funciune, examinarea documentelor
din cadrul organizaiei, toate asociate cu experiena anterioar a echipei de
analiz. Fr o analiz adecvat nu se va putea determina ceea ce utilizatorul
dorete de la noul sistem, infrastructura tehnic n cadrul creia se va
implementa, respectiv care sunt constrngerile impuse datele. O analiz
inadecvat, la un moment ulterior, poate fi foarte costisitoare sau poate conduce
chiar la ncetarea proiectului. O cerin reprezint o caracteristic care trebuie
inclus n noul sistem. Informaiile colectare pentru fiecare domeniu de aplicaie
i grup de utilizatori se vor concretiza sun forma unui set de documente care
descriu activitile i sub-activitile din diferite puncte de vedere i va include
documentaia folosit i elaborat, detaliile privind tranzaciile, precum ordinea
de prioritate a cerinelor. Cantitate de date colectat depinde de politica
organizaiei i de aria de cuprindere a noului sistem. Colectarea i analiza
cerinelor reprezint etapa preliminar a proiectrii conceptuale a bazei de date.
Pentru structurarea cerinelor se folosesc tehnici speciale de specificare a
cerinelor cum sunt analiza i proiectarea structurat, diagramele de flux de
date, proiectarea asistat de calculator.
4. Proiectarea bazei de date (Design-ul) este procesul de realizare a
proiectului de baz de date care va trata toate operaiile i obiectivele
organizaiei, este etapa n care se va realiza proiectare conceptual, logic i
fizic a bazei de date. Se va realiza reprezentarea datelor i a relaiilor dintre ele
conform specificaiilor stabilite n etapa de analiz, va fi elaborat un model de
date care va fi capabil s accepte efectuarea tuturor tipurilor de tranzacii
necesare asupra datelor, se va realiza o structurare adecvat pentru realizarea
cerinelor inclusiv cele privind performanele noului sistem i a sistemului
informaional n ansamblu. Modelul de date este optim atunci cnd este simplu,
expresiv, extensibil, nonredundant, permite validarea structural, permite

33
partajarea datelor, asigur integritatea datelor i ofer posibilitatea unei
reprezentri schematice. Unul din scopurile principale a procesului de design
este stabilirea de scheme pe baza creia se poate construi baza de date.
Proiectarea se poate realiza folosind o metod de tip de jos n sus, de sus n
jos, din interior spre exterior, respectiv strategia compus care
combin primele dou metode. Metoda de proiectare de jos n sus se folosete
n cazul bazelor de date simple i ncepe de la nivelul fundamental al atributelor
ce definesc entitile car sunt grupate n relaii care reprezint tipuri de entiti i
asociaii ale acestora, dup care prin procesul numit normalizare se identific
atributele necesare i dependena funcional a acestora. Strategia de proiectare
de tip de sus n jos se folosete pentru baze de date complexe i ncepe cu
realizarea unor modele de date care conin entiti i relaii relevante, dup care
prin rafinri succesive de sus n jos se identific toate entitile i relaiile
existente ntre acestea. Tratarea de tip din interior spre exterior este folosete
proiectarea de jos n sus pentru entitile principale, care apoi se extinde pentru
a cuprinde toate entitile i relaiile.
Sub-etapa de proiectare fizic a bazei de date presupune cunoaterea
SGBD care va fi utilizat, motiv pentru pe baza cerinelor curente i viitoare ale
organizaiei va fi alea cel mai potrivit SGBD. Alegerea SGBD poate fi
considerat o etap din ciclul de via a sistemului informatic, care se poate
parcurge n orice faz, dar nainte de proiectarea fizic. n aceast etapa se vor
elabora n mod obligatoriu i toate documentaiile aferente.
5. Realizarea prototipului este etapa n care se construiete un model
de lucru, care nu are toate caracteristicile cerute i nu acoper ntreaga
funcionalitate. Scopul crerii prototipului este de a oferi utilizatorilor
posibilitatea de a utiliza un sistem apropiat de cel real pentru identifica
caracteristicile incluse deja, de a le verifica cu scopul de a clarifica cerinele
utilizatorilor.
6. Implementarea este etapa care include realizarea fizic a bazei de
date prin utilizarea limbajului de definire a datelor al SGBD i implementarea
programelor de aplicaie realizate n limbajul ales de echipa de proiectare.
Tranzaciile din baza de date vor fi efectuate cu ajutorul limbajului de
manipularea datelor. n aceast etap pot fi folosite instrumentele de tip
interactiv ale SGBD pentru definirea i accesarea datelor. Transferarea datelor
din vechiul sistem are o foarte mare importan pentru reducerea timpului
necesar pentru implementare. Acest transfer face ca datele preluate s fie
corecte chiar dac este necesar conversia datelor n formatul cerul de noul
sistem. n etapa de implementare vechiul sistem i noul sistem funcioneaz n
paralel, iar echipa de implementare poate reduce semnificativ efortul

34
utilizatorilor prin preluarea datelor pentru noul sistem din vechil sistem cu
ajutorul unor proceduri automate.
7. Testarea este etapa n care vor fi detectate eventualele erori ale nolui
sistem. Exist un numr de practici pentru asigurarea calitii, pe care le putem
aplica proiectului, dar cea mai bun este testarea. Testarea trebuie fcut
conform unui plan de testare bine pus la punct, care este esenial att pentru
sistem ct i pentru verificarea reaciei utilizatorului. Baza acestui plan trebuie
s fie documentarea obinut n timpul etapei de analizare a cerinelor. Acest
plan de testare trebuie s defineasc nu doar exact ceea ce trebuie verificat ci i
ce rezultate trebuie generate de noul sistem inclusiv de programele de aplicaie.
Testarea poate fi fcut de sus n jos, de jos n sus, pe fir, sau la
suprasolicitare. Testarea de de sus n jos permite testare la nivel de
subsistem i permite detectarea erorilor n fazele iniiale ele proiectului.
Testarea de jos n sus pleac de la fiecare modul individual. Testarea pe
fir este folosit pentru testarea sistemelor care funcioneaz n timp real,
testndu-se rspunsul sistemului la fiecare eveniment. Testele la
suprasolicitare au menirea de a testa componentele sistemului n toate
situaiile posibile.
8. ntreinerea operaional reprezint procesul de monitorizare i
ntreinere a noului sistem. Sunt monitorizate performanele sistemului i se
ncorporeaz noi cerine atunci cnd este cazul. Este etapa care se ntinde pe
ntreaga durat de via a sistemului. Monitorizarea presupune urmrireqa
sistematic a performanelor i nregistrarea eventualelor anomali de
funcionare.

2.9. Modelul de date relaional

Modelul relaional a fost propus de E. F. Codd n 1970 care prin


articolul Un model relaional de date pentru bnci de date partajate de
dimensiuni mari a stabilit cerinele teoretice pentru modelul de date relaional.
Modelul relaional este un model formal de organizare conceptual a datelor,
destinat reprezentrii legturilor dintre date i bazat pe teoria matematic a
relaiilor. Modelul relaional a fost definit cu rigoare matematic deosebit,
fiind un mijloc performant de studiu al proprietilor logice ale unui sistem de
baze de date. Modelul relaional este orientat spre mulimi n timp ce sistemele
ierarhice i reea sunt orientate spre fiiere. n modelul relaional relaiile sunt
utilizate pentru a reprezenta informaiile despre obiectele reprezentate n baza
de date. Conform modelului relaional datele sunt structurate logic sub form de
tabele care definesc relaii. Fiecare relaie are o denumire i este definit prin

35
atribute care sunt coloanele tabelei. O relaie este reprezentat printr-un tabel
bidimensional, n care coloanele corespund atributelor, iar liniile corespund
nregistrrilor individuale. Ordinea coloanelor (atributelor) este arbitrar, relaia
fiind invariant la modificarea ordinii atributelor. Pentru fiecare atribut exist
un domeniu de valori posibile. Domeniile pot fi diferite pentru fiecare atribut,
dar este posibil ca mai multe atribute s aib acelai domeniu. Conceptul de
domeniu permite definirea sensului i a sursei de valori pentru fiecare atribut.
Un element unei relaii este numit tuplu, i corespunde unei linii a tabelei.
Tuplurile pot aprea n orice ordine fr a modifica semnificaia relaiei fiind
formate din valori concrete pentru toate atribute ce definesc relaia. Numim
intensitate a relaiei componenta fix, invariant, n timp a unei relaii, format
din structura relaiei mpreun cu domeniile de valori pentru atribute i
eventualele restricii asupra valorilor posibile. Numim extensie (stare) a
relaiei partea care se modific n timp, adic tuplurile. Gradul relaiei
reprezint numrul de coloane (atribute), iar cardinalitatea relaiei numrul de
linii (tupluri) pe care le are tabela ce definete relaia. Gradul relaiei este o
parte a intensitii relaiei. Cardinalitatea exprim starea relaiei la un moment
dat i se modific prin adugarea, respectiv tergerea de tupluri. Spunem c o
relaie este normalizat dac este structurat adecvat. Baza de date relaional
este o mulime de relaii normalizate. Numim schem a relaiei denumirea
relaiei urmat de o mulime de perechi atribut, domeniu.
Un domeniu este o mulime de valori care poate fi definit fie
enumernd elementele componente, fie definind o proprietate distinct a
domeniului valorilor. Fie atributele A1, A2, . . ., An i domeniile finite D1, D2, . .
., Dn, nu neaprat disjuncte. Mulimea {A1:D1, A2:D2, . . ., An:Dn} reprezint
schema de relaie. Numim tuplu, sau n-tuplu, un element (V1,V2, . . .,Vn) al
produsului cartezian D1 D2 . . . Dn al domeniilor D1, D2, . . ., Dn, unde V1
D1, , Vn Dn.
O relaie R pe mulimile D1, D2, . . ., Dn este o submulime a produsului
cartezian D1 D2 . . . Dn, adic o mulime de tupluri. Mulimea numelor
atributelor corespunztoare unei relaii o numim schem relaional i o notm
cu R (A1, A2, . . ., An). Putem reprezint o relaie printr-un tabel bidimensional
n care fiecare linie corespunde unui tuplu, iar fiecare coloan unui domeniu din
produsul cartezian, de fapt unui atribut. Atunci cnd se reprezint o relaie sub
forma unui tabel n care antetul coloanelor sunt nscrise numele atributelor, iar
fiecare linie reprezint tuplurile (V1,V2, . . .,Vn) n care fiecare valoare este luat
din domeniul corespunztor. Numele atributului exprim semnificaia valorilor
din calcul coloanei respective. Numrul atributelor definete gradul relaiei, iar
numrul de tupluri din relaie definete cardinalitatea relaiei.
O relaie are urmtoarele proprieti:

36
 are o denumire care identific relaia n mod unic;
 fiecare element (celul) al relaiei conine exact o valoarea atomic
(singular);
 fiecare atribut are o denumire unic n cadrul relaiei;
 toate valorile unui tribut aparin domeniului de valori al atributului;
 ordinea atributelor nu este semnificativ;
 fiecare tuplu este distinct; nu exist tupliri duplicate;
 ordinea tuplurilor nu este semnificativ, dar poate optimiza accesul
individual la fiecare tuplu.
Atunci cnd inserm tupluri ntr-o relaie, este posibil ca un atribut s
fie necunoscut sau nedefinit. Pentru a reprezenta acest tip de atribut a fost
introdus o valoare convenional n relaie, i anume valoarea null, care
reprezint o modalitate de a trata datele incomplete sau deosebite. Exist
sistemele relaionale care nu accept conceptul de null, care nu are
corespondent n logica boolean, din care face parte calculul predicatelor folosit
pentru modelul relaional.
Numim relaie de baz o relaie caracterizat printr-o denumire, care
corespunde unei entiti din schema conceptual, ale crei tupluri sunt
memorate n baza de date. O vizualizare este rezultatul dinamic al mai multor
operaii relaionale, care acioneaz asupra relaiilor de baz pentru a realiza o
alt relaie. Numim relaie virtual o vizualizare. Spunem c un tabel este de
tip virtual (view, vizualizare, vedere), dac reprezint o relaie virtual. Relaia
virtual nu exist fizic ca tabel n baza de date, ci doar ca definiie a relaiei,
deoarece datele pe care le conine nu sunt n realitate memorate, ele fiind
incluse n alte tabele reale care reprezint relaii reale. Tabelul de tip view
(vizualizare, filtru, relaie virtual) reprezint o filtrare a unui tabel iniial, sau
mai multor tabele legate ntre ele, necesar unei anumite abordri, unei anumite
aplicaii. Utilizarea vizualizrilor asigur securitatea tabelelor iniiale i permite
prezentarea informaiei n conformitate cu drepturile de acces al fiecrui
utilizator, asigur accesul la date personalizat pentru fiecare utilizator i n plus
simplific operaiile complexe asupra relaiilor de baz. Deoarece vizualizrile
sunt relaii virtuale toate reactualizrile efectuate asupra relaiilor de baz care
sunt folosite la definirea relaiilor virtuale trebuie s fie imediat reflectate
imediat de toate vizualizrile afectate.
Pentru o relaie trebuie s fie posibil identificarea n mod unic a
fiecrui tuplu prin valorile atributelor ce definesc relaia. Numim supercheie un
atribut sau o mulime de atribute care identific n mod unic fiecare tuplu
relaiei. Numim cheie candidat o supercheie pentru care nici o submulime de
atribute nu este supercheie. Cheia candidat are dou proprieti: unicitatea i
ireductibilitatea. Numim cheie primar cheia candidat selectat pentru a

37
identifica n mod unic tuplurile din cadrul relaiei. Cheile candidat care nu sunt
cheie principal se numesc chei alternative. Numim cheie strin un atribut
sau o mulime de atribute care sunt identice cu cele din cheia candidat ale unei
alte relaii.
Model relaional este caracterizat de trei elemente:
 structura relaional a datelor;
 operatorii de tip relaional folosii n model;
 regulile de integritate care se aplic asupra cheilor n model.
n anul 1985, E.F. Codd a publicat un set de 13 reguli de fidelitate pe
baza crora se apreciaz dac un sistem de gestiune de baze de date poate fi
considerat relaional. Majoritatea sistemelor de gestiune de baze de date
considerate ca fiind de tip relaional nu respect absolut toate regulile definite
de Codd, mai mult, n prezent, lista este reformulat i cuprinde 100 de regulii.
Regula 0 regula gestionrii datelor: Un SGBD considerat ca fiind
relaional trebuie s fie capabil s gestioneze o baz de date prin posibilitile
sale relaionale. Aceasta nseamn c SGBD nu va folosi pentru definirea i
manipularea datelor operaii care nu sunt de tip relaional. Practic, majoritatea
implementrile existente de SGBD nu respect aceast regul.
Regula 1 regula reprezentrii datelor: ntr-o baz de date
relaional, informaia este reprezentat explicit la nivel logic sub forma unor
tabele ce poart numele de relaii. Este regula cea mai important i conform
lui E.F. Codd i n cazul n care un SGBD care nu respect aceast regul, nu
poate fi considerat relaional. Referirea la nivelul logic precizeaz c elemente
de construcii logice, cum sunt indeci, nu au obligatoriu o reprezentare sub
form de tabele.
Regula 2 regula accesului garantat la date: Fiecare valoare de dat
(valoare atomic) dintr-o baz de date trebuie s poat fi adresat n mod logic
printr-o combinaie format din numele relaiei, valoarea cheii primare i
numele atributului. Se poate regsi orice valoare aparinnd oricrui atribut al
unei relaii, dac sunt specificate numele relaiei, numele atributului i valoarea
cheii primare.
Regula 3 regula reprezentrii informaiei necunoscute (tratarea
sistematic a valorilor null): Un sistem relaional trebuie s permit
utilizatorului definirea unui tip de date numit null pentru reprezentarea unei
informaii necunoscute la momentul respectiv indiferent de tipul de dat. ntr-un
SGBD relaional trebuie s putem face diferena ntre valoarea zero, un ir vid
de caractere i o valoare necunoscut.
Regula 4 regula dicionarelor de date (catalog dinamic on-line,
bazat pe modelul relaional): Asupra descrierii bazelor de date (informaii
relative la relaii, vizualizri, indecietc) trebuie s se poat aplica aceleai

38
operaii ca i asupra datelor din baza de date. Descrierea bazei de date este
reprezentat la nivel logic sub forma unor tabele care pot fi accesate n acelai
mod ca i datele efective.
Regula 5 regula limbajului de interogare (sub-limbaje de date
cuprinztoare): Trebuie s existe cel puin un limbaj care s permit: (1)
definirea datelor, (2) definirea vizualizrilor, (3) manipularea datelor
(interactiv sau prin intermediul programului), (4) constrngerile de integritate,
(5) autorizarea, (6) limitele tranzaciilor (nceput, execuie, reluare). n general,
toate implementrile SQL respect aceast regul. Limbajul permite
utilizatorilor s defineasc relaii i vizualizri, s regseasc informaia i s o
poat actualiza, s verifice i s corecteze datele de intrare etc.
Regula 6 regula de reactualizare a vizualizrii: Toate vizualizrile
care sunt teoretic reactualizabile pot fi reactualizate de sistem. Un SGBD
trebuie s poat determina dac o vizualizare poate fi actualizat i s stocheze
rezultatul interogrii ntr-un dicionar de tipul unui catalog de sistem. Trebuie s
existe un mecanism prin care s se poat determina dac anumite vizualizri pot
fi actualizate sau nu. Majoritatea implementrilor SQL stabilesc aceasta, n
funcie de variantele instruciunii de selecie utilizate.
Regula 7 regula limbajului de nivel nalt (operaiile de inserare,
reactualizare i tergere de nivel nalt): Regulile de manipulare asupra unei
relaii luat ca ntreg sunt valabile att pentru operaiile de regsire a datelor,
ct i asupra operaiilor de inserare, actualizare i tergere a datelor. Un
SGBD relaional nu trebuie s oblige utilizatorul s caute ntr-o relaie, tuplu cu
tuplu, pentru a regsi informaia dorit. Operaiile de manipulare a datelor pot fi
aplicate att n mod interactiv ct i prin program, ntr-un limbaj gazd.
Regula 8 regula independenei fizice a datelor: Programele de
aplicaie i activitile utilizatorilor nu depind de modul de stocare a datelor
sau de modul de acces la date. ntr-un SGBD relaional trebuie s se separe
aspectul fizic al datelor (stocare sau acces la date) de aspectul logic al datelor.
Regula 9 regula independenei logice a datelor: Programele de
aplicaie i activitile utilizatorilor trebuie s fie transparente la modificrile
de orice tip efectuate asupra datelor. Orice modificare efectuat asupra unei
relaii, nu trebuie s afecteze operaiile de manipulare a datelor, programele de
aplicaie i mecanismele de interogare direct nu sunt afectate de modificrile
fcute asupra datelor.
Regula 10 regula independenei datelor din punct de vedere al
integritii: Constrngerile de integritate specifice unei baze de date
relaionale nu vor fi definite programele de aplicaie ci de sub-limbajul
relaional de date, urmnd a fi memorate n catalogul sistem. (Regulile de
integritate trebuie s fie definite ntr-un sub-limbaj relaional, nu n programul

39
de aplicaie). Limbajul SQL permite definirea de restricii privind integritatea
datelor i stocarea lor n catalogul de sistem prin aceasta asigurndu-se controlul
centralizat asupra constrngerilor.
Regula 11 regula independenei datelor din punct de vedere al
distribuirii: Sub-limbajul de manipulare a datelor trebuie s permit utilizarea
acelorai programe de aplicaie i interogri (s fie invariante din punct de
vedere logic)pentru a accesa date centralizate sau distribuite (Distribuirea
datelor pe mai multe calculatoare dintr-o reea de comunicaii de date, nu
trebuie s afecteze programele de aplicaie i interogrile, dac i ori de cte
ori datele sunt centralizate sau distribuite fizic). Independena de distribuie
presupune ca un program de aplicaie care acceseaz sistemul SGBD pe un
singur calculator trebuie s funcioneze fr modificri i ntr-o reea chiar dac
datele sunt mutate de pe un calculator pe altul, utilizatorul percepnd datele fr
a cunoate locul n care sunt stocate. Programele de aplicaie trebuie s
funcioneze fr modific i ntr-o reea, chiar dac datele sunt transferate de pe
un calculator pe altul.
Regula 12 regula versiunii procedurale a SGBD (nonsubversiune):
Orice component procedural a unui SGBD trebuie s respecte aceleai reguli
de integritate ca i componenta relaional (orice limbaj de nivel inferior
trebuie s respecte aceleai reguli de integritate exprimate n limbajul
relaional de nivel nalt).

Cele 13 reguli pot fi grupate n cinci domenii de funcionalitate:


 reguli fundamentale (regula 0 i regula 12);
 reguli structurale (regula 1 i regula 6);
 reguli de integritate (regula 3 i regula 10);
 reguli de manipulare a datelor (regula 2, regula 4, regula 5,
regula 7);
 reguli privind independena de date (regula 8, regula 9 i regula 11).

Un SGBD este minimal relaional dac datele din cadrul bazei de date
sunt reprezentate prin valori n tabele, nu exist pointeri observabili de ctre
utilizatori, iar sistemul suport operatorii relaionali de proiecie, selecie i
compunere natural, fr limitri impuse din considerente interne.
Un SGBD este complet relaional dac este minimal relaional i, n
plus, sistemul suport restriciile de integritate de baz (unicitatea cheii primare,
constrngerile de referin, integritatea entitii) i precum i toate operaiile de
baz ale algebrei relaionale.
Un SGBD relaional ndeplinete funciile unui SGBD, cu anumite
particulariti care decurg din concepia de organizare a datelor, respectiv din

40
modelul relaional. Fiecare SGBD relaional implementeaz modelul relaional
ntr-o manier proprie care l difereniaz de restul sistemelor relaionale.
Caracterizarea unui SGBD relaional se poate realiza la nivelul clasei de
SGBD relaionale, n sensul caracterizrii globale, unitare n raport cu celelalte
tipuri de SGBD, sau la nivelul unui SGBD relaional individual n sensul
caracterizrii particularitilor sale, n raport cu alte SGBD de tip relaional.
Realizarea funciilor unui SGBD relaional se face cu ajutorul unor
instrumentele i mecanisme de lucru specifice de tip relaional, care le separ de
sistemele considerate ca fiind nerelaionale:
 un limbaj relaional pentru descrierea datelor la nivel fizic, logic i
conceptual;
 un limbaj relaional pentru manipularea datelor;
 mecanisme pentru controlul integritii semantice a datelor;
 mecanisme pentru optimizarea cererilor de date;
 mecanisme pentru asigurarea coerenei datelor n condiiile
accesului la date;
 utilitare pentru generarea de formulare i rapoarte, utilitare pentru
generarea de aplicaii, utilitare pentru generarea unor statistici
referitoare la starea i activitatea bazei de date etc.

Un obiectiv important a proiectrii unei baze de date de tip relaional l


reprezint gruparea atributelor n relaii astfel nct redundana datelor s fie
minim. Relaiile care conin date redundante pot crea probleme, denumite
anomalii de reactualizare, care clasificate n:
- anomalii de tergere constau n faptul c anumite date care urmeaz
s fie terse, fac parte din tupluri n care se gsesc i alte date care
mai sunt necesare n continuare, ori tergerea fcndu-se la nivelul
tuplului, acestea se pierd;
- anomalii de inserare (adugare) constau n faptul c anumite date
care urmeaz s fie adugate fac parte din tupluri incomplete
(pentru care nu se cunosc toate datele), ceea ce face ca acestea s nu
poat fi adugate;
- anomalii de modificare rezult din faptul c este dificil de modificat
o valoare a unui atribut atunci cnd ea apare n mai multe tupluri ale
relaiei.
Spunem c un atribut B al unei relaii R depinde funcional de un alt
atribut A, atunci cnd fiecrei valori a atributului A i corespunde exact o
anumit valoare atributului B (A B). Dependena funcional este o proprietate
a semnificaiei sau a semanticii atributelor. Semantica indic modul n care
atributele sunt legate unele de altele i specific dependenele funcionale ale

41
acestora. Dependena funcional este specificat ca o constrngere ntre
atribute. Dac atributul B depinde funcional de atributul A, spunem c atributul
A este determinatul atributului B. Spunem c o dependen funcional este
total sau complet dac cele dou atribute au o dependen funcional n
ambele sensuri (A B i B A). Pentru trei atribute A, B i C, n care A B i
BC spunem c C este dependent tranzitiv de A prin intermediul atributului
B, dac avem i A C. n acest caz spunem c exist o dependen tranzitiv.
Eliminarea acestor anomalii se realizeaz cu ajutorul operaiei numite
normalizare, care este o tehnic formal care se bazeaz pe cheile primare,
respectiv cheile candidat ale relaiilor i pe dependenele funcionale. Tehnica
include o mulime de reguli care pot fi utilizate pentru testarea relaiilor
individuale. Dac o anumit cerin nu este ndeplinit pentru o anumit relaie,
atunci relaia n cauz va fi descompus n relaii care satisfac n mod individual
cerinele normalizrii. Normalizarea presupune parcurgerea unei succesiuni de
pai, fiecare pas corespunznd unei forme normale. Prin parcurgerea etapelor de
normalizare relaiile devin progresiv mai restrictive ca format i mai puin
vulnerabile la anomaliile de actualizare. Procesul de normalizare a relaiilor se
realizeaz n mai muli pai, ncepnd cu forma normal unu (1NF) i ajungnd
la forma normal cinci (5NF). Pentru modelul relaional doar prima form
normal (1NF) este de importan critic, celelalte forme normale fiind
opionale. Pentru a nltura aceste anomalii, E.F. Codd a stabilit iniial trei
forme normale pentru relaii i a introdus procesul de normalizare care se
bazeaz pe noiunea de dependen funcional ca relaie ntre atributele unei
entiti care are un caracter invariant. Teoria normalizrii se ocup cu
mbuntirea succesiv a schemei conceptuale, fiind satisfcute, n acelai
timp, urmtoarele condiii:
 conservarea datelor, adic n schema conceptual final s existe
toate datele din cadrul schemei iniiale;
 conservarea dependenelor dintre date, adic s se pstreze tipurile
de relaii dintre entiti;
 descompunerea minimal a relaiilor iniiale, adic n schema
conceptual final nici o relaie nu trebuie s fie coninut ntr-alta.
O relaie este n forma normal unu (1NF), dac i numai dac toate
atributele ei conin numai valori atomice, adic o sigur valoare i numai una. n
plus, un tuplu nu trebuie s conin atribute sau grupuri de atribute repetitive.
Este forma de baz a relaiilor, care figureaz ca cerin minimal la majoritatea
sistemelor de gestiune a bazelor de date de tip relaional.
O relaie este n a doua form normal (2NF), dac este n forma
normal unu i oricare dintre atributele non-cheie este dependent funcional
complet de cheia primar a relaiei.

42
O relaie este n a treia form normal (3NF), dac se gsete n forma
normal doi i toate atributele non-cheie sunt dependente tranzitiv de cheia
primar.
n afara primelor trei forme normale au fost introduse i formele
normale: forma normal Boyce Codd (BCNF), a patra form normal (4NF)
i a cincia form normal (5NF) care conduc la diminuarea redundanei n baza
de date. Trecerea de la forma 3FN la 4FN i 5FN se face opernd asupra cheilor
compuse ntre ale cror atribute apar relaii care genereaz dependene ce nu
sunt funcionale, numite dependene multi-valoare.
O relaie este n forma normal Boyce Codd (BCNF), dac fiecare
determinant este o cheie candidat.
A patra form normal (4NF) elimin redundanele datorate relaiilor de
tip n:m, adic a dependenelor multiple.
A cincia form normal (5NF) elimin dependenele multiple de tip
ciclic, avnd ca rezultat o descompunerea a relaiilor de tip uniune fr
pierderi, din relaiile rezultate n urma descompunerii putnd fi reconstituit
relaia iniial. Dependena de tip uniune fr pierderi este o proprietate a
operaiei de descompunere, care garanteaz c nu sunt introduse linii false
atunci cnd relaiile rezultare n urma descompunerii sunt reunite printr-o
operaie de uniune natural.

2.9.1. Operatorii modelului relaional

Operatorii modelului relaional definesc operaiile care pot fi efectuate


asupra relaiilor, pentru realizarea funciilor de prelucrare asupra datelor din
baza de date. Modelul relaional folosete operatori relaie din algebra
relaional i calculul relaional. Algebra relaional i calculul relaional sunt
limbaje formale utilizate pentru bazele de date relaionale ca suport pentru
limbajul de manipulare a datelor, de nivel nalt. Algebra relaional a fost
introdus de E.F. Codd n 1971 ca o mulime de operaii formale n care
operanii i rezultatul sunt relaii i care acioneaz asupra uneia sau a mai
multor relaii pentru a defini o nou relaie, fr a modifica relaiile iniiale. Cei
cinci operatorii fundamentali ai algebrei relaionale sunt fie operatori folosii
pentru operaiile de regsire: selecia (sau restricia), proiecia, produsul
cartezian, reuniunea i diferena, i ali trei operatori pentru operaiile de
uniune, intersecie i mprire, adic operatori tradiionali pe mulimi (UNION,
INTERSECT, PRODUCT, DIFFERENCE) i operatori relaionali speciali
(PROJECT, SELECT, JOIN, DIVISION). Operatorii de selecie i proiecie

43
sunt unari, opernd asupra unei singure relaii, iar ceilali sunt operatori binari,
acionnd asupra unei perechi de relaii. n algebra relaional se specific n
mod explicit o anumit ordine pentru evaluarea oricrei expresii, ceea ce
implic o anumit strategie de evaluare a interogrii bazei de date.
n calculul relaional o interogare precizeaz ce va fi extras din baza de
date fr a se preciza modul de evaluare a unei interogri. Calculul relaional
este o adaptare a calculului predicatelor din logica simbolic aplicat pentru
interogarea bazelor de date. n logica simbolic, un predicat este o funcie de
mai multe variabile, care are o valoare de adevr. nlocuind variabile cu valori
se obine o expresie numit propoziie, care poate fi adevrat sau fals.
Variabilele iau valori dintr-un domeniu dat. Calculul relaional se prezint sub
dou forme: orientat spre tupluri i orientat spre domenii. Pe baza unor
predicate iniiale, prin aplicarea unor operatori ai calculului cu predicate
(conjuncia, disfuncia, negaia, cuantificatorul existenial i cuantificatorul
universal) se pot defini noi predicate, noi relaii.
J.D. Ullmann a demonstrat echivalena dintre algebra relaional i
calculul relaional. Motiv pentru care orice relaie posibil de definit n algebra
relaional poate fi definit i n cadrul calculului relaional, i reciproc.

2.9.2. Integritatea referenial

Constrngerile de domeniu sunt restricii care se aplic asupra


mulimi de valori permise pentru atributele relaiilor.
Regulile de integritate sunt constrngeri sau restricii ce se aplic
tuturor instanelor din baza de date, adic aseriuni pe care datele coninute n
baza trebuie s le satisfac i prin care se asigur corectitudinea datelor. Se face
distincie ntre regulile structurale, care sunt inerente modelrii datelor i
regulile de funcionare (comportament), care sunt specifice unei aplicaii
particulare. Exist trei tipuri de constrngeri structurale (de cheie, de referin,
de entitate) ce constituie mulimea minimal de reguli de integritate pe care
trebuie s le respecte un SGBD relaional i care sunt definite n raport cu
noiunea de cheie a unei relaii. Integritatea entitilor impune ca ntr-o relaie
de baz (care corespunde unei entiti n schema conceptual) nici un atribut al
unei chei primare nu poate fi null. Conform reguli de integritate refereniale
dac o relaie are o cheie extern atunci orice valoare a cheii externe va coincide
cu valoarea unei chei candidat a unui tuplu n relaia de baz a acesteia sau este
o valoare null. Sunt formulate trei reguli de integritate structural:
 unicitatea cheii: cheia primar trebuie s fie unic i minimal;

44
 integritatea entitii: atributele cheii primare trebuie s fie diferite
de valoarea null;
 integritatea referirii: o cheie extern trebuie ori s fie null n
ntregime, ori s corespund la o valoare a cheii primare asociate.

2.10. ntrebri teoretice de auto-evaluare

1. Explicai:
a. Conceptul de baz de date
b. Noiunea de model de date
c. Modelul Entitate-Relaie
d. Tipurile de chei n cadrul modelrii bazei de date
e. Obiectivele datelor n baze de date
f. Sistemele de gestiune a bazelor de date. Obiective
g. Funciunile sistemelor de gestiune a bazelor de date
h. Componentele unui mediu SGBD

2. Analizai diferenele dintre limbajele pentru definirea datelor, limbajele


pentru manipularea datelor i limbajele pentru controlul datelor.

3. Prezentai principalele concepte din cadrul proiectrii bazelor de date.

4. Modelul de date relaional. Baza de date relaional.

5. Detaliai cele 13 reguli ale lui Codd.

6. Operatorii modelului relaional. Integritate referenial.

45
CAPITOLUL 3
MICROSOFT ACCESS
Capitolul curent i propune deprinderea noiunilor i operaiilor
specifice pentru crearea bazelor de date Access. Pornind de la
organizarea datelor n tabele, capitolul puncteaz principalele
tipuri de obiecte ce pot fi incluse ntr-o baz de date Access: cereri
(interogri) i/sau rapoarte pentru consultarea, actualizarea i
realizarea situaiilor de ieire; formulare pentru a crea o
interfa grafic cu utilizatorul (GUI Graphical User Interface)
este necesar crearea formularelor; obiecte de tip macro pentru
a automatiza aciuni pe care Access le realizeaz ca rspuns la un
anumit eveniment i module procedurile scrise n limbajul de
programare Visual Basic. n final, sunt prezentate tipurile de
fiiere specifice Microsoft Access 2007.

3.1. Noiuni generale privind bazele de date ACCESS

Sistemul de gestiune a bazelor de date (SGBD) Microsoft Access face


parte din pachetul de aplicaii Microsoft Office, avnd caracteristicile specifice
unui sistem de gestiune a bazelor de date relaionale, care reprezint totodat un
instrument complex de dezvoltare a aplicaiilor de baze de date. Microsoft
Access include facilitile oferite de sistemul de operare Microsoft Windows
(meniu contextual al obiectelor, de exemplu); n plus, permite i faciliti de
tipul drag and drop. Microsoft Access este compatibil cu tehnicile de legare i
ncapsulare din tehnologia OLE Microsoft. Caracteristicile definitorii ale
SGBD Access sunt urmtoarele:
1. Posibilitatea crerii unei baze de date care poate fi utilizat de ctre
un utilizator sau mai muli utilizatori n mod partajat;
2. Interogarea bazei de date se poate realiza n mod grafic prin
interfaa QBE (Query By Example), sau prin limbajul SQL
(Standard Query Language);
3. Automatizarea unor activiti/aciuni prin macro-comenzi sau prin
aplicai program n limbajul VBA;
4. Realizarea importului/exportului de date ctre alte aplicaii ale
pachetului Microsoft Office sau alte SGBD de tip relaional;

47
5. Interfaa utilizator este uor de folosit i respect principiile de
utilizare caracteristice tuturor aplicaiilor pachetului MS Office;
6. Asisten n dezvoltarea aplicaiilor i utilizarea bazei de date;
7. Existena componentei Help i a facilitilor de ajutor de tip
contextual;
8. Instrumente de lucru interactiv pe baze model de tip Wizard pentru
a ajuta utilizatorii n dezvoltarea de aplicaii;

O baz de date ACCESS este baz de date relaional orientat spre


obiecte. Obiectele aferente unei baze de date creat pot fi observate n panul din
stnga din Figura 3.1 Panoul de navigare. Acesta ofer i posibilitatea
vizualizrii pe categorii de obiecte sau n funcie de relaiile care exist ntre
acestea, data crerii .a.m.d.

Figura 3.1 Interfaa Aplicaiei Access 2007 i opiunile disponibile


n Fila Create (Creare)
Un element de interfa specific versiunii 2007 este Office Button
(Butonul Microsoft Office) , din partea stng-sus, care se folosete pentru
gestionarea lucrului cu fiierele n general (el poate fi considerat un nlocuitor al
meniului File din versiunile anterioare ale aplicaiilor Microsoft Office).
Principalele elemente pe care el le conine (Figura 3.2) sunt:
 un meniu de comenzi de baz (New, Open, Convert etc.) pentru
lucrul cu fiiere;
 o list a celor mai recente documente;
 comenzi legate de tiprirea i salvarea fiierelor;

48
 butonul Access Options (Opiuni Access), utilizat pentru a
vizualiza i selecta diferite opiuni de configurare al Access-
ului (componena panglicilor cu butoane, modaliti de
vizualizare a unor elemente de interfa, localizarea implicit a
noilor baze de date create etc.).

Figura 3.2. Butonul Microsoft Office al aplicaiei Access 2007


Lista butoanele de comenzi este concentrat n bara de comenzi rapide
(implicit, situat n dreapta butonului Office) i patru file: Home, Create (care
conine tipurile de comenzi pentru crearea obiectelor prezentate n paragrafele
urmtoare), fila External data pentru realizarea prelurii/exportrii datelor
din/ctre alte aplicaii i fila Database Tools.

49
3.2. Tabelele

Tabelele conin datele propriu-zise corespunztoare entitilor din baza


de date, organizate sub forma unei matrice n care coloane reprezint atribute
(cmpuri), iar liniile reprezint apariiile, realizrile entitii (nregistrri). O
nregistrare este o linie dintr-un tabel, n care fiecare cmp conine o valoare
concret dintr-un domeniu de valori i conine informaii care identific o
anumit realizare concret a entitii; persoan, loc sau obiect n
exemplu, 1 . Un cmp este o informaie individual din componena unei
nregistrri, iar fiecare coloan din tabelul Access reprezint un cmp cu
informaii diferite, bine definite ca i tip de dat n exemplu, 2.

Construirea tabelelor Access se poate rezuma la dou activiti


principale: crearea structurii (n modul de vizualizare Design View, spre
exemplu) i popularea tabelului cu date direct, n modul de vizualizare
Datasheet View (asemntor mediului de lucru din aplicaia Excel), sau prin
intermediul formularelor sau instruciunilor VBA.
Cmpurile din tabelele ACCESS trebuie definite ca fiind de un anumit
tip de dat, n funcie de elementele pa care va trebui s le stocheze fiecare
cmp (text, date calendaristice, legturi ctre fiiere externe etc.) i n funcie de
limitrile de spaiu de care trebuie s inem cont n special atunci cnd este
vorba de baze de date foarte mari, care trebuie s execute rapid un numr foarte
mare de operaii.
Tabelul 3.1
Tipurile de date disponibile pentru cmpuri n Access 2007
Tipul de
Stocheaz Dimensiune
date
Text Text sau text i numere care nu se utilizeaz Pn la 255
pentru calcule. de caractere.
Memo Text lung sau combinaii de text i numere. Pn la
63999
caractere.

50
Tipul de
Stocheaz Dimensiune
date
Number Numere, ntregi sau fracionare, care se vor
(Numr) utiliza n calcule, cu excepia valorilor
monetare.
 Byte (Octet) pentru valori un octet.
numerice ntre 0 i 255 de caractere.
 Integer (ntreg) pentru valori
numerice ntre -32.768 i +32.768.
 Long Integer (ntreg lung) doi octei.
pentru valori numerice ntre -
2.147.483.648 i +2.147.483.647.
 Single (Simpl) pentru valori patru octei.
numerice n virgul mobil ntre -
3,4 1038 i +3,4 1038 i pn la patru octei.
apte cifre semnificative.
 Double (Dubl) pentru valori
numerice n virgul mobil ntre -
1,797 10308 i +1,797 10308 i
pn la cincisprezece cifre opt octei.
semnificative.
 Decimal (Zecimal) pentru valori
numerice ntre -9,999... 1027 i
+9,999... 1027.. doisprezece
octei.
Date/Time Valori de dat/or. Toate valorile stocate includ 8 octei.
(Dat/Or) att o component de dat, ct i una de or.
Currency Valori monetare (simboluri monetare). 8 octei.
(Simbol
monetar)
AutoNumber Genereaz valori unice. Un cmp AutoNumber 4 octei.
(Auto poate fi incrementat secvenial, printr-un
Numerotare) increment specificat sau ales aleator. O valoare
numeric unic este inserat automat de Access
2007 la adugarea unei nregistrri.
Yes/No De utilizat pentru cmpuri de tip Adevrat/Fals 1 bit.
(Da/Nu) care pot conine una din dou valori posibile:
Da/Nu sau Adevrat/Fals, de exemplu.
Obiect OLE Obiecte OLE din alte aplicaii Microsoft Pn la 1
Windows (documente Word, Excel, de gigaoctet.
exemplu).

51
Tipul de
Stocheaz Dimensiune
date
Attachment Unul sau mai multe fiiere de tip imagine Pentru
(Ataare) digital, fiiere Office i orice tipuri de fiiere atarile
binare. comprimate, 2
GO. Pentru
atari
necomprimate,
aproximativ
700KO, n
funcie de
gradul la care
poate fi
comprimat
ataamentul.
Hyperlink Hyperlinkuri, pentru a furniza acces cu un Pn la 1
singur clic pe butonul mouse-ului la pagini Web gigaoctet de
prin intermediul unui URL sau la fiiere prin caractere sau
intermediul unui nume n format UNC 2 GO de
(convenie universal de denumire). De
spaiu.
asemenea, se pot crea legturi la obiecte Access
stocate ntr-o baz de date.
Lookup Nu este un tip de date propriu-zis. n funcie de
Wizard De utilizat pentru pornirea expertului Cutare, tabel sau
(Expert astfel nct s se poat crea un cmp care interogare
Cutare) utilizeaz o caset combo pentru cutarea
valorilor ntr-un alt tabel, interogare sau list de
valori.

3.3. Interogrile

Interogrile sunt obiecte virtuale de tip tabel, adic vizualizri,


care nu au corespondent fizic, fiind definite cu ajutorul tabelelor create deja n
baza de date. Tabelele virtuale definite cu ajutorul interogrilor permit
efectuarea:
seleciilor i sortrilor n tabele;
calculelor simple i analizelor ncruciate;
aciunilor (adugarea, tergerea, actualizarea nregistrrilor);

52
operaiilor SQL.
Crearea unei cereri de interogare n Access 2007 se poate face n mai multe
moduri:
 utiliznd instrumentul Wizard;
 prin intermediul ferestrei de proiectare (Query Design) (Figura 3.3);
 cu ajutorul limbajului SQL;
 prin salvarea unei operaii de filtrare ca cerere de interogare.

Figura 3.3. Fereastra de proiectare a unei interogri (Design View)


Formularele sunt obiecte folosite pentru a consulta sau actualiza datele
dintr-un tabel sau o structur de interogare.

3.4. Formularele

Formularele sunt obiecte


folosite pentru a consulta sau actualiza datele dintr-un tabel sau o structur de
interogare. Ele fac mai uoar munca de introducere a datelor ntr-o baz de
date, dar i vizualizarea celor deja existente, pentru a le face modificri. n
figura 3.4. este exemplificat utilitatea acestui obiect pentru introducerea datelor

53
unei noi persoane n baza de date. Aspectul formulare poate s difere foarte
mult ca structur, dar i modalitile oferite de Access 2007 pentru crearea i
modificarea lor sunt multiple (vezi butoanele din grupul Forms, aferent filei
Create).

Figura 3.4. Exemplu de fereastr de formular

3.5. Rapoartele

Rapoartele sunt obiecte folosite pentru a


sintetiza datele stocate ntr-o tabela real sau virtual i a oferi un rezultat tiprit
al informaiilor din baza de date un raport ACCES, de la cea mai simpl list a
unui tabel pn la rapoartele cele mai complexe ce conin regrupri de
nregistrri i calcule.
Asemenea celorlalte obiecte prezentate pn acum, rapoarte pot fi
create n mai multe modaliti, n funcie de complexitatea dorit i de gradul de
personalizare pe care dorim s-l oferim acestor situaii de ieire. Distingem
astfel:

54
 un mod de creare rapid, fr prea multe informaii solicitate privind
coninutul (butonul Report din grupul Reports, fila Create);
 un mod de asemenea facil, dar cu posibilitatea de a face mici
precizri privind o triere a cmpurilor care s apar n raport
(Report Wizard);
 generarea unui raport de la zero (Blank Report), populnd fiecare
seciune cu elemente de tip control (liste, butoane, imagini), diferite
surse de date i explicaiile de tip text aferente.

Figura 3.5. Exemplu de raport n modul de vizualizare Report View

Figura 3.6. Raportul din figura 3.5 n modul de vizualizare Design View

3.6. Macrocomenzile i modulele


Macrocomenzile ACCESS reprezint o modalitate optim de acces la date, care
permit automatizarea mai multor sarcini folosind un limbaj specific. Pentru a
rezolva o sarcin mai complex se poate construi un macro (format dintr-o
mulime de aciuni) sau o procedur (format dintr-o succesiune de instruciuni
scrise n limbajul de programare Visual Basic).

55
Vom exemplifica n continuare utilitatea unui asemenea obiect ntr-o
baz de date: s presupunem c dorim s crem un
raport direct din unul din formularele de
introducere de date. Exist posibilitatea s adugm
un buton la formular i s crem apoi o
macrocomand care pornete raportul.
Macrocomanda poate fi individual (un obiect
separat n baza de date), care este apoi legat la
evenimentul On Click (La Clic) al butonului sau
poate fi ncorporat direct n evenimentul On Click
al butonului o caracteristic nou n Office
Access 2007. La clic pe acel buton, macrocomanda
se lanseaz n execut i pornete raportul.

Modulele program conin o parte a codului VBA al aplicaiei, i anume


declaraiile de variabile i constante, funciile i procedurile globale ale ntregii
aplicaii. VBA reprezint un mediu de programare orientat obiect.

Figura 3.6. Structura obiectelor din perspectiva programrii VBA

56
Un obiect este o entitate autonom ce prezint caracteristici (proprieti:
mrime, culoare, valoare etc.) i comportamente (metode) proprii. Unele obiecte
au o reprezentare vizual (Formular, Raport etc.) n timp ce altele nu sunt
accesibile dect n cod VBA (DBEngine, Container etc.) Marea majoritate a
obiectelor vizuale au posibilitatea de a reaciona la evenimente (deschidere,
actualizare etc.). Programarea VBA permite declanarea evenimentelor,
comportamentelor specifice asupra obiectelor prin intermediul codului program:
metode, proceduri i funcii.
 Evenimentul reprezint aciunea utilizatorului sau a sistemului
asupra unui obiect ceea ce declaneaz execuia codului program
corespunztor.
 Metoda const n codul program predefinit ce se raporteaz la un tip
de obiect i care se execut n momentul apariiei unui eveniment.
 Procedura este alctuit dintr-un set de instruciuni (un modul
program) ce nu returneaz nici o valoare ci execut o anumit
aciune.
 Funcia const dintr-un set de instruciuni (un modul program) care
n urma execuiei returneaz o valoare de un anumit tip.

3.7. Tipuri de fiiere n ACCESS


Office Access 2007 utilizeaz un nou format de fiier, care permite noi
caracteristici precum cmpurile de cutare multivalorice, utilizarea textului
mbogit i atarile. Principalele noi extensii de fiiere Acces sunt:
 .accdb nlocuiete extensia .mdb a numelui de fiier din
versiunile anterioare i este fiierul baz de date propriu-zis. Aici
se regsete ntreg coninutul bazei de date: datele (Tabele), legturi
(Relations/Relaii), interfaa vizual (Formulare i Rapoarte) i
codul (Interogri, Macro-uri i Module);
 .accde nlocuiete extensia .mde a numelui de fiier din
versiunile anterioare. Fiierele avnd aceast extensie sunt salvate
n modul doar n executare, avnd tot codul surs VBA eliminat.
Utilizatorul unui astfel de fiier poate doar executa codul VBA i
nu poate modifica nici codul i nici design-ul formularelor sau
rapoartelor;
 .accdt extensia de nume de fiier pentru abloane baz de date
Access.

57
3.8. Teste de auto-evaluare
1. La ce se pot folosi obiectele de tip Interogare?
2. Descriei una dintre modalitile de a crea o interogare n Access 2007.
3. Ce operaii se efectueaz n mod uzual prin intermediul formularelor?
4. Descriei tipul de dat OLE i Attachment.
5. Cu ce difer modul de vizualizare Design View fa de modul de
vizualizare Report View al unui raport?
6. Cum se poate obine n Access 2007 un fiier cu extensia mdb?
7. Ce reprezint fiierul avnd extensia mdb?
8. Ce reprezint fiierul avnd extensia accdb?
9. Ce reprezint fiierul avnd extensia mde?
10. Ce reprezint fiierul avnd extensia accde?

58
CAPITOLUL 4
LIMBAJUL SQL
Unul dintre cele mai puternice limbaje structurate pentru
interogarea datelor, SQL (Structured Query Language), a devenit
un standard pentru o gam din ce n ce mai larg de sisteme
pentru gestiunea bazelor de date. Vom prezenta comanda Select
care permite realizarea interogrii bazelor de date, precum i
instruciunile care permit actualizarea datelor (adugarea,
modificarea i tergerea datelor prin comenzi SQL).

4.1. Prezentarea limbajului SQL

Limbajul SQL (Structured Query Language sau limbajul structurat de


interogri) este un limbaj de interogri i gestionare a bazelor de date
relaionale. Access folosete SQL ca limbaj de interogare. n momentul crerii
unei interogri n modul de interogare Design, Access construiete n paralel
instruciunile SQL echivalente. De altfel, majoritatea proprietilor interogrilor
n modul de interogare Design prezint clauze echivalente i opiuni accesibile
n limbajul SQL.
Exemplu: Deschidei o interogare n modul Design View:

Facei clic pe opiunea Mode SQL al icoanei View

59
Se va obine instruciunea SQL corespunztoare interogrii

Observaie:
Aceast operaie este foarte interesant n special pentru cei
nefamiliarizai cu limbajul SQL: se poate crea interogarea n Access i
recupera instruciunea SQL astfel generat pentru a o include n codul
VBA.

Anumite interogri SQL, numite interogri specifice limbajului SQL, nu pot


fi create n grila de generare a interogrilor, ci trebuie s fie scrise direct n
modul SQL. Este vorba de:
- interogrile directe ce permit operarea direct cu tabele n server,
- interogrile definiii de date ce permite crearea, tergerea sau
modificarea structurilor tabelelor,
- interogrile Union ce permit regruparea cmpurilor de dou tabele (sau
mai multe) n acelai cmp rezultat din interogare. Aceste interogri
sunt foarte utile n fuzionarea nregistrrilor ce provin din tabele
diferite.

4.2. Limbajul SQL I VBA

Interogrile SQL se integreaz perfect n VBA i pot fi utilizate pornind de


la metodele diverselor obiecte:
- metoda OpenRecordset a obiectelor DataBase i Connection,

60
- metoda CreateQueryDef a obiectelor DataBase i Connection,
- metoda Execute a obiectelor Command i Connection etc.
Interogrile SQL sunt de asemenea foarte des utilizate n formulare:
- proprietatea RecordSource a unui formular sau raport,
- proprietatea RowSource a unei liste derulante etc.
Majoritatea acestor proprieti pot fi modificate de codul VBA.
Avantajele utilizrii instruciunii SQL n VBA sunt urmtoarele:
 Viteza de execuie: o instruciune Select este mai rapid dect
parcurgerea secvenial a unui tabel.
 Performan mai bun: n modul client/server, interogrile sunt
compilate de SGBD care le optimizeaz performanele.
 ntreinere mai uoar: codul de instruciuni SQL este mai scurt, deci
mai uor de citit, dect echivalentul su n VBA.
 Standardizare: limbajul SQL este standardul de interogare al bazelor de
date relaionale.

4.3. Descrierea limbajului SQL


4.3.1. Instruciunea SELECT
SELECT este cea mai folosit instruciune, corespunznd interogrii Selection
din Access. Permite extragerea cmpurilor unui ansamblu de nregistrri ce
corespund unor criterii.

Sintax:
SELECT [ALL |DISTINCT <list de cmpuri>
FROM <list de tabele>
[WHERE ...]
[GROUP BY...]
[HAVING...]
[ORDER BY]

ALL Sunt luate n considerare toate nregistrrile ce


corespund criteriilor.
Distinct Sunt omise toate nregistrrile pentru care cmpurile
selectate conin date n dublu exemplar.
<list de cmpuri> List de cmpuri selectate, separate de virgule
* Indic faptul c toate cmpurile tabelului/tabelelor
specifcat(e) sunt selectate.

61
alias1, alias2 Indic numele ce trebuie folosite drept antete de
coloan n locul numelor coloanelor originale din
tabel.
<list de tabele> Numele tabelului sau tabelelor ce conin datele care
trebuie extrase.

4.3.2. Clauza FROM


Aceasta specific tabelele sau interogrile din care sunt extrase datele.
Sintax:
FROM table 1 [LEFT|RIGHT|INNER JOIN table2
ON TABLE1.camp1 <operator de comparare> TABLE2.cmp2

[LEFT|RIGHT| Aceti operatori permit definirea tipului de imbricare


INNER] ntre tabele.

LEFT JOIN Se folosete pentru a crea o imbricare extern de


stnga. Rezultatul acesteia cuprinde toate
nregistrrile provenite din primul tabel (cel din
stnga: <tabel1>) i pe acelea pentru care exist o
valoare corespunztoare n al doilea tabel (cel din
dreapta: <tabel2>).

RIGHT JOIN Se folosete pentru a crea o imbricare extern de


dreapta. Rezultatul acesteia cuprinde toate
nregistrrile provenite din al doilea tabel (cel din
dreapta: <tabel2>) i pe acelea pentru care nu
exist valoare corespunztoare n primul tabel (cel
din stnga: <tabel1>).

INNER JOIN Se folosete pentru a crea o imbricare ce nu cuprinde


dect nregistrrile n care datele cmpurilor sunt
identice.

<operator de Toi operatorii de comparare relaional ce sunt


comparare> utilizai (=, <, >, < =, > =).

Exemple:
Select Clients.Cli_societate, Commandes.Cde_DateCde

62
From Clients INNER JOIN Commandes ON
Clients.Cli_CodeCli =Commandes.Cde_CodeCli

List de comenzi lansate de societate. n primul exemplu, sunt selectai doar


clienii care au fcut deja comenzi.
Select Clients.Cli_societate, Commandes.Cde_DateCde
From Clients LEFT JOIN Commandes ON
Clients.Cli_CodeCli =Commandes.Cde_CodeCli

n al doilea exemplu, sunt selectai toi clienii.

4.3.3. Clauza WHERE


Permite filtrarea nregistrrilor dup anumite criterii.
Condiiile clauzei WHERE se exprim cu ajutorul operatorilor urmtori:
- operatori de comparare: =, <, >, < =, > =, Is [Not] Null,
[Not] In, Between.
- operatori logici: And, Or, Not.

Exemplu:
SELECT * From Produse WHERE [Prod_Pret] = 500000
SELECT * From Produse WHERE [Prod_Pret]
BETWEEN 100000 AND 200000
SELECT * FROM Clienti WHERE [Cli_plata] In
(`France, `Italia, `Spania)

4.3.4. Clauza GROUP BY


Clauza GROUP BY corespunde Totalului interogrilor Access (numite
Regrupri n versiunile anterioare). Permite regruparea datelor ntr-unul sau mai
multe cmpuri. n principal, clauza este folosit pentru executarea funciilor de
agregare SQL, ca i Sum (sum), Count (calcul), Avg (medie).
Exemple:
Aceast interogare returneaz numrul comenzilor lansate de client.
SELECT Clienti.Cli_Societate, Count(Comenzi.Cde_DateCde
AS NbComenzi
FROM Clienti
LEFT JOIN Comenzi
ON Clienti.Cli_CodeCli = Comenzi.Cde_CodeCli
GROUP BY Clienti.Cli_Societate

63
Aceast interogare returneaz totalul fiecrei comenzi.
SELECT Comenzi.Cde_NumCde, Sum([Cde_Pret]*[Cde_Buc]
AS TotalCde
FROM Comenzi
INNER JOIN [Detalii Comenzi]
ON Comenzi.Cde_NumCde = [Detalii Comenzi].Cde_NumCde
GROUP BY Comenzi.Cde_NumCde

4.3.5. Clauza HAVING


Specific nregistrrile regrupate ce trebuie afiate ntr-o instruciune SELECT
dotat cu o clauz GROUP BY. Odat ce regruparea este efectuat se afieaz
lista de cmpuri a clauzei GROUP BY i sunt selectate doar nregistrrile care
respect condiia specificat n clauza HAVING.
Exemplu:
Aceast interogare extrage comenzile ale cror total este mai mare de
2 000 000.
SELECT Comenzi.Cde_NumCde, Sum([Cde_Pret]*[Cde_Buc]
AS TotalCde, Commandes.Cde_DateCde FROM Comenzi
INNER JOIN [Detalii Comenzi]
ON Comenzi.Cde_NumCde = [Detalii Comenzi].Cde_NumCde
GROUP BY Comenzi.Cde_NumCde, Comenzi.Cde_DateCde
HAVING (Sum(Cde_Pret*Cde_Buc)> 2 000 000)

4.3.6. Clauza ORDER BY


Aceast clauz determin sortarea (aranjarea n ordine cresctoare sau
descresctoare), nregistrrile rezult dintr-o interogare n funcie de
cmpul/cmpurile specificat(e).
Sintax:
[ORDER BY camp1 [ASC|DESC][, camp2 [ASC|DESC]][,. . . ]]

ASC Ordine cresctoare.


DESC Ordine descresctoare.

Exemplu:
SELECT Clienti.Cli_Soc, Count(Comenzi.Cde_DateCde)
AS NbComenzi
FROM Clienti
LEFT JOIN Comenzi

64
ON Clienti.Cli_CodeCli =Comenzi.Cde_CodeCli
GROUP BY Clienti.Cli_Soc
ORDER BY Count (Comenzi.Cde_DateCde) DESC

4.3.7. Instruciunea UPDATE


Corespunde unei interogri de actualizare care modific valorile cmpurilor
ntr-un tabel specificat, pentru nregistrrile ce corespund criteriului dat
(facultativ).
Sintax:
UPDATE table
SET cmp1=valoarenou1,[cmp2=valoarenou2] ...
[WHERE criteriu]
Observaie:
Dac nu se specific nici o clauz WHERE, toate nregistrrile sunt
actualizate.
Exemple:
Aceast interogare modific codul rii din toate nregistrrile tabelului Clieni.
UPDATE Clients SET Clients.Cli_Pays = RO

Aceast interogare modific n tabelul Clieni codul de ar al nregistrrilor


clienilor al cror ora este Timioara.
UPDATE Clients SET Clients.Cli_Pays = RO
Where Clienti.Cli_oras =Timisoara

4.3.8. Instruciunea DELETE


Corespunde unei interogri DELETE ce terge nregistrrile din tabelul
menionat n clauza FROM, dup criteriile date (facultativ).

Sintax:
DELETE FROM tabel
[Where criteriu]
Observaie:
Dac nu este specificat nici o clauz WHERE, toate nregistrrile sunt
terse.

65
Exemplu:
Aceast interogare terge comenzile de dinainte de 1997.
DELETE Comenzi.Cde_DateCde
FROM Comenzi
WHERE (( Comenzi.Cde_DateCde) < #1/1/1997#)

4.3.9. Instruciunea INSERT INTO


Instruciunea SQL INSERT INTO corespunde unei interogri Add care adaug
nregistrri ntr-un tabel.
Sintaxa:
Interogare Add de adugare a unei singure nregistrri :
INSERT INTO <TabelDestinatie>[( cmp1 [, cmp2 [ ...] ] ) ]
VALUES ( valoare1 [, valoare2 [, ...]])
Observaie:
Trebuie s existe tot attea valori cte coloane de valorificat, de acelai
tip i n aceeai ordine.

Interogare Add cu una sau mai multe nregistrri:


INSERT INTO <TabelDestinatie>[( cmp1 [, cmp2 [ ...] ] ) ]
SELECT [<TabelSursa>.]cmp1 [, cmp2 [,...] ]
FROM <lista de tabele>
Observaie:
Instruciunea SELECT trebuie s returneze attea valori n aceeai
ordine i de acelai tip ctre coloanele de valorificat (cmpul
instruciunii INSERT).
Exemple:
Adugarea unei nregistrri n tabelul Clieni
INSERT INTO Clienti (Cli_CodCli, Cli_societate, Cli_oras,
Cli_plata)
VALUES( `Mirton`, `Editura Mirton`, `Timisoara~, `RO`)

Adugarea unei nregistrri din tabelul Prospecte n tabelul Clieni.


INSERT INTO Clienti
SELECT Prospecte.*
FROM Prospecte

66
4.3.10. Alte instruciuni
Interogare
TRANSFORM Creeaz o interogare imbricat.

UNION Creeaz o interogare ce fuzioneaz rezultatele a dou sau


mai multe tabele sau interogri.

Crearea i gestiunea de tabele


CREATE TABLE Creeaz un nou tabel.

CREATE INDEX Creeaz un nou index pentru un tabel existent.

ALTER TABLE Modific structura unui tabel.

DROP TABLE terge tabelul din baza de date.

DROP INDEX terge indexul unui tabel.

Crearea i gestiunea utilizatorilor i a grupurilor


CREATE USER Creeaz unul sau mai muli utilizatori.

ADD USER Adaug unul sau mai muli utilizatori grupului de


utilizatori existeni

DROP USER terge unul sau mai muli utilizatori.

CREATE GROUP Creeaz una sau mai multe grupe de utilizatori.

DROP GROUP terge una sau mai multe grupe de utilizatori.

GRANT Ofer privilegii specifice unui utilizator sau a unui


grup de utilizatori existent.

REVOKE Retrage privilegiile specifice ale unui utilizator sau a


unui grup de utilizatori existent.

67
4.4. Exemple de utilizare a interogrilor SQL
Pentru a demonstra rezultatele limbajului SQL, exemplele urmtoare
propun dou proceduri echivalente, una folosind limbajul SQL, cealalt nu.
Pentru a realiza aceste exemple, se creeaz un tabel Clieni avnd
cmpurile Cli_Societate, Cli_ar i Cli_Ora i se tasteaz cteva nregistrri
n acest tabel.

4.4.1. Actualizarea nregistrrilor


Codul din exemplul urmtor permite modificarea coninutului unui cmp dintr-
un tabel pentru nregistrrile ce corespund criteriilor.
Codul VBA ce utilizeaz o interogare SQL de tip UPDATE
Private Sub Maj_Plati()
Dim cncDeviz As ADODB.Connection
Dim strSQL As Sring
`Actualizarea codului rii din tabelul Clieni
Set CncDeviz = CurrentProject.Connection
strSQL = UPDATE Clients SET Clients.Cli_Plati = `RO` _
& WHERE Clienti.Cli_Oras = Timisoara
cncDeviz.Execute strSQL
END SUB

Codul VBA echivalent fr interogarea SQL


Private Sub Maj_Plati()
Dim cncDeviz As ADODB.Connection
Dim rstClient As ADODB.RecordSet
` Deschidere pentru nregistrare
Set CncDeviz = CurrentProject.Connection
Set rstClient = New ADODB.RecordSet
rstClient.Open Clienti, cncDeviz, adOpenForwardOnly,_
adLockOptimistic
`Parcurgerea secvenial a tabelului Clieni
Do While Not rstClient.EOF
If rstClienti(Cli_Oras)= Timisoara Then
rstClient(Cli_Plata)= RO
rstClient.Update
EndIf
rstClient.MoveNext
Loop
End Sub

68
4.4.2. ncrcarea unei liste derulante
Codul exemplului de mai jos permite afiarea ntr-o list derulant (controlul
zon de list) a numelui clienilor a cror nume de Societate ncepe cu o list
dat (litera este scris ntr-o zon de text).
Pentru a testa acest exemplu:
- se creeaz un formular numit Clieni
- se adaug controalele urmtoare n acest formular:
- o zon de text (txtNameSoc),
- o zon de list (IstSoc),
- un buton de comand (cmdLista1).

Codul VBA ce utilizeaz interogarea SQL de tipul SELECT. Coninutul listei


este rezultatul interogrii SQL.
Private Sub cmdListe1_Click()
Dim strSQL As Sring
`Controlul numelui scris
If txt numeSoc = Then
MSGBOX(Trebuie s tastai cel puin o liter, _
txtNumeSoc.SetFocus
Exit Sub
End If
`Proprieti ale listei derulante
`Lista conine o interogare
Me.lstSoc.RowSourceType = Table/Interogare
strSQL = SELECT Clienti.Cli_Societate Like `& _
Me.txtNumeSoc & *`
Me.lstSoc.RowSource = strSQL
`Reactualizarea datelor listei
Me.lstSoc.Interogare
End Sub

Codul VBA echivalent fr interogarea SQL.


Private Sub cmdListe1_Click()
Dim cncDeviz As ADODB.Connection
Dim rstClient As ADODB.RecordSet
Dim strNumeSoc as String
`Controlarea numelui scris
If txtNumeSoc = Or IsNull(txtNumeSoc) Then
MSGBOX(Numele acesta a mai fost introdus, vbExclamation)

69
txtNumeSoc.SetFocus
Exit Sub
End If
`Iniializarea listei derulante
`Lista conine o suit de valori
Me.lstSoc.RowSourceType = Lista de valori
Me.lstSoc.RowSource =
Me.lstSoc.Requery
`Deschiderea unui set de nregistrri
Set cncDeviz = CurrentProject.Connection
Set rstClient = New ADODB.Recordset
rstClient.Open Clienti, cncDeviz, adOpenForwardOnly, _
adLockOptimistic
` Parcurgere secvenial a tabelului i adugarea elementelor n
list
Do While Not rstClienti.EOF
If Left(rst(Client(Cli_Societate),1) = _
Left(MetxtNumeSoc, Len(Me.txtNumeSoc)) Then
strNumeSoc = rstClient(Cli_Societate)
Me.LstSoc.AddItem strNumeSoc
End If
rstClient.close
End Sub

Observaie:
1. n exemplele precedente, codul ce utilizeaz SQL este mai scurt i
execuia sa este mai rapid n special dac tabelul Client conine un
numr important de nregistrri.

4.5. Teste de auto-evaluare


11. Explicai i exemplificai:
a. Instruciunea Select
b. Instruciunea Update
c. Instruciunea Delete
d. Instruciunea Insert Into
12. Ce se nelege prin operaia de actualizare a nregistrrilor?
13. Cum se poate realiza ncrcarea unei liste derulante?

70
PARTEA PRACTIC

APLICAII PRACTICE REZOLVATE


Acest capitol se dorete a fi un ndrumtor pentru orele de
laborator, n vederea nsuirii deprinderilor practice de utilizare a
programului Microsoft Access 2007. Acesta va cuprinde att
aplicaii rezolvate ct i aplicaii propuse studenilor pentru
munca individual sau pentru autoverificarea cunotinelor
nsuite din partea teoretic i n urma realizrii aplicaiilor
rezolvate. Suntem contieni c noiunile prezentate prin exemplele
din acest capitol nu acoper toate facilitile de prelucrare oferite
de Microsoft Access, dar reprezint exemple edificatoare privind
posibilitile de gestionare oferite de Access 2007.

5.1. Aplicaia 1

1. S cere informatizarea activitii unei firme. Furnizorii sunt identificai


prin cod furnizor, denumire furnizor (numele i prenumele
furnizorului), localitatea, adresa, email, banca furnizor i cont furnizor.
Despre produse se cunosc cod produs, denumire produs, unitate de
msur, stoc, pre unitar. Produsele sunt depozitate n magazii, pentru
care se cunosc cod magazie, denumire magazie, gestionar (numele
persoanei care are n gestiune depozitul respectiv). Operaiunile se
desfoar pe baza unor facturi, care trebuie s conin numrul
facturii i data facturii. Fiecare factur va avea detaliate liniile facturii
n tabelul LiniiFact, care va conine numr factur, cod produs i
cantitate.
2. Se cere afiarea tuturor produselor n ordinea alfabetic a denumirii
acestora.
3. S se afieze toate produsele cu unitatea de msur buci care au
cantitatea strict mai mare dect 2, ordonate alfabetic dup denumirea
produsului.

71
Obiective:

- Crearea unei baze de date.


- Crearea tabelelor n Design View. Analiza informaiilor i stabilirea
structurii tabelelor. Stabilirea cheilor primare i a indecilor.
- Crearea relaiilor dintre tabele.
- Afiarea unei liste ordonate i aplicarea filtrelor pentru afiarea datelor
dup anumite criterii.

Rezolvare

1. Propunem urmtoarea schem de structurare a datelor:

n tabela LiniiFact se observ faptul c pentru cmpul nr_f nu poate fi


definit o cheie primar, de aceea vom aduga cmpul ID.
Se tie c un furnizor va apare pe mai multe facturi. Deci relaia dintre
tabelele Furnizori i Facturi este de tipul one-to-many. Pentru a crea aceast
relaie, este necesar adugarea cmpului cod_f n tabela Facturi. ntr-o magazie
se gsesc mai multe produse, deci relaia dintre tabela Magazii i tabela Produse
este de tipul one-to-many. Pentru aceasta este necesar adugarea cmpului
cod_m n tabela Produse. n acelai timp un produs se regsete de mai multe
ori (posibil) pe liniile unei facturi, sau pe liniile mai multor facturi. Deci relaia
dintre tabela Produse i tabela Liniifact este one-to-many. Pentru a o crea este
necesar adugarea cmpului cod_p n tabela Liniifact. n final, o factur are
mai multe linii, deci relaia dintre tabelele Facturi i Liniifact este de tipul one-
to-many.
Pentru a realiza aceste leagturi, unele tabele trebuie completate cu
anumite cmpuri suplimentare, care s permit crearea ulterioar a relaiilor.
Pentru aceasta, n tabela copil, se adaug cmpul pe care a fost creat cheia
primar din tabela printe. Cmpurile de tip cheie primar alese vor fi: Furnizori
(cod furnizor), Produse (cod produs), Magazii (cod magazin), Facturi (nr fact) i
Liniifact (ID). Deci tabelele printe sunt: Furnizori, Magazii i Facturi, iar

72
Produse i Liniifact sunt tabele Copil. Adugnd i rearanjnd tabelele, acestea
vor arta ca n figura urmtoare:

Primul pas este crearea bazei de date. Aceasta va purta numele Firme.
Pentru a crea baza de date, din meniul File se alege opiunea New, iar din Task
Pane-ul New File se alege opiunea Blank Database. Primul pas este alegerea
locaiei n care va fi salvat fiierul, apoi denumirea propriu-zis a acestuia.
Dup crearea bazei de date se trece la analiza fiecrui tabel n parte i
alegerea tipului de cmp cel mai potrivit datelor care vor fi salvate n acesta.
Propunem urmtoarele:
- n tabela Furnizori: cod_f (codul furnizorului) cheie primar, de tip
Number, Field Size: Integer, Decimal Places:0, Caption: cod furnizor,
Validation Rule: <=200, Validation Text: Maxim 200 de furnizori,
Required: Yes; den_f (denumirea furnizorului) de tip Text, Field Size:
30, Format: >, Caption: denumire furnizor, Required: Yes, Allow Zero
Length: No, Indexed: Yes (Duplicates OK); loc_f (localitate) de tip
Text, Field Size: 30, Caption: localitate, Default Value: Timisoara;
adresa de tip Memo; email de tip Hyperlink; banca de tip Text,
Field Size: 30, Format: >, Required: Yes, Allow Zero Length: No; cont
(contul din banc, IBAN) de tip Text, Fields Size: 24, Input Mask:
"RO"99>AAAA0000099999999999.

Dup ce toate cmpurile au fost create, se salveaz tabela alegnd


butonul Save, apoi se apas sgeata de pe butonul View, de unde se alege
Datasheet View, pentru a introduce datele a trei furnizori n tabel.

73
- n tabela Magazii: cod_m (cod magazin) Primary key, de tip Number,
Field Size: Byte, Caption: Cod magazin, Required: Yes; den_m de tip
Text, Field Size: 15, Caption: Denumire magazie, Indexed: Yes
(Duplicates OK), gest de tip Text, Field Size: 30, Caption: Gestionar.
Vom introduce n continuare 3 magazii, cu codurile magazilor 111, 112
i 113;

- n tabela Produse: cod_p Primary key, de tip Number, Field Size:


Long Integer, Caption: Codul produsului, Required: Yes; den_p
(denumirea produsului) tipul cmpului Text, Field Size:15, Caption:
denumirea produsului; um (unitate de msur) de tipul Lookup
Wizard, apoi selectm I will type in the values that I want, la
opiunea Number of Columns lsm 1, iar n lista col1 vom tasta pe
rnd, una sub alta, valorile dorite: kg, l, cm, buc, selectnd butonul
Next, apoi Finish; stoc (stocul disponibil n magazie) de tip Number,
Field Size: Long Integer, Caption: unitate de masura, Required: Yes;
pret_u, de tip Currency, Caption: Pret unitary; cod_m (cod magazie)
un cmp de tip Lookup Wizard vom selecta opiunea I want the
lookup column to lookup the values in a table or query, apoi se allege
tabela Magazii; selectm cmpul cod_m (cod magazie):

74
Ordonarea va fi fcut dup acelai camp cod_m, putndu-se observa
valorile introduse anterior n tabela Magazii:

n continuare se selecteaz butonul Next, apoi Finish. ntre cele dou


tabele (Magazii (tabela printe) i Produse (tabela copil) va fi creat
automat o relaie). Pentru ca aceast relaie s fie de tipul one-to-many,
vom introduce minim 4 produse, 2 dintre ele gsindu-se n aceeai
magazine, de exemplu cea cu codul 113;

- tabela Facturi: nr_f (numrul facturii) Primary key, de tip Number,


Field Size: Long integer, Caption: Numarul facturii, Required: Yes;
data_f de tip Date/Time, Caption: Data Facturii, Required: Yes,
Format: Short date, cod_f (cod furnizor) tipul de date Lookup Wizard,
ne legm de tabela Furnizori, cmpul cod_f, Caption: Cod furnizor.
Tabela Facturi este copilul tabelei Furnizori. Avnd 3 furnizori n tabela
printe, vom introduce minim 4 facturi, codul furnizorului 125
repetndu-se de 2 ori:

- tabela Liniifact: ID Primary Key, un cmp de tip Autonumber,


Caption: Numar curent; nr_f (numrul facturii) un cmp de tip
Lookup Wizard, ne legm de tabela Facturi, cmpul nr_f, Caption:

75
Numarul facturii; cod_p (codul produsului) un cmp de tip Lookup
Wizard, ne legm de tabela Produse, cmpul cod_p i cant un cmp
de tip Number, Field Size: Integer, Caption: Cantitate. Acest tabel fiind
copilul tabelelor Produse i Facturi, vom introduce minim 5 nregistrri:

Pentru a verifica relaiile i a seta regulile de integritate referenial, se

selecteaz butonul Relationships de pe bara de unelte: :

Pentru fiecare relaie n parte, se apeleaz meniul contextual, se alege


opiunea Edit Relationship... Pentru a seta regulile de integritate referenial se
selecteaz opiunea Enforce Referential Integrity, bifnd opiunea Cascade
Update Related Field. Dac se dorete modificarea tipului de relaie dintre cele
dou tabele, se selecteaz butonul Join Type..., alegnd una dintre cele trei
tipuri de relaii.

76
Selectnd pentru fiecare relaie n parte opiunile respective, se obine
urmtoarea situaie:

2. Pentru a vizualiza datele ntr-o anumit ordine se pot folosi butoanele


de pe bara de unelte , sau:

Pentru aceasta trebuie s fim poziionai pe o anumit coloan din tabel,


n modul de vizualizare Datasheet View.

3. Pentru a filtra datele dintr-o anumit tabel putem selecta fie unul
dintre butoanele: Filter by selection, respectiv Filter by form, i
Apply/Remove filter, fie una dintre opiunile din urmtoarea figur. Opiunea
Filter by Form ascunde nregistrrile, permind fie selectarea valorii dorite
utiliznd combo-box-ul corespunztor coloanei dorite, fie introducerea unei sau
mai multor valori, operatorul dintre condiiile multiple fiind AND. Pentru a
vedea rezultatul, se selecteaz butonul Apply Filer de pe bara de unelte Table
Datasheet.

Opiunea Filter by selection permite selectarea cu mouse-ul a valorii


cutate (efectundu-se un click n celula respectiv), rezultatul fiind vizibil
atunci cnd se apas butonul Apply Filter. Dac se dorete anularea filtrului, se
selecteaz butonul Remove Filter (acest buton este un buton de tip On/Off).
Filter excluding selection funcioneaz exact ca i opiunea Filter by
selection, diferena fiind operatorul NON pus n faa condiiei.

77
Ultima opiune Advanced Filer/Sort permite deschiderea unei
ferestre cu ajutorul creia putem sorta i compune condiii compuse, putndu-se
utiliza operatorul OR ntre condiii:

5.1.1. Aplicaie propus

Se cere informatizarea activitii unei societi de asigurri. Clienii pot fi


persoane fizice sau juridice caracterizate printr-un numr unic, nume i
prenume/denumire, adres i telefon. Acetia pot s ncheie diferite tipuri de
asigurri (de bunuri, de via etc). Asigurrile sunt ncheiate de agenii ce sunt
identificai printr-un cod unic, nume i prenume. Contractul de asigurare este
caracterizat printr-un numr, data ncheierii, obiectul asigurrii, perioada (n
luni), valoarea asigurat i prima ce va trebui s fie pltit n fiecare lun de
client. Clienii efectueaz plata primelor prin ordin de plat (persoane juridice)
sau direct la casierie (persoane fizice), eliberndu-se chitane. Documentul de
plat conine: numrul documentului, data la care a fost ntocmit i suma pltit.
n momentul producerii riscului pentru care a fost ntocmit asigurarea,
societatea pltete clientului despgubiri. La plata despgubirilor se ntocmete
un proces verbal care este caracterizat prin nume, data ncheierii, descrierea
cauzei ce a generat despgubirea i procentul n care este despgubit clientul.

78
5.1.2. Aplicaie propus

Se cere informatizarea activitii la o filial CEC. Clienii filialei sunt


identificai prin seria i numrul de buletin, data eliberrii buletinului, nume,
prenume i adres. Fiecare client poate s dein unul sau mai multe cecuri.
Pentru fiecare cec se cunoate: seria, numrul, data la care a fost eliberat, suma
depus n momentul eliberrii i tipul cecului (poate fi la termen i la vedere).
De asemenea, fiecare cec poate s aib unul sau mai muli titulari. Fiecare client
poate efectua depuneri i restituiri. Depunerile se efectueaz prin intermediul
unei foi de depunere (FD) caracterizat prin: numr, data i suma depus.
Restituirile se efectueaz prin intermediul foilor de restituire (FR) caracterizate
prin: numr, data i suma restituit. Fiecare cec se poate lichida de ctre unul
din titulari prin intermediul unei foi de lichidare (FL) caracterizat prin: numr,
data i suma din momentul lichidrii. Dobnda acordat pentru cecuri se
modific de la o zi la alta i este diferit pentru cecurile la termen fa de cele la
vedere.

5.2. Aplicaia 2

1. S se paroleze baza de date.


2. Pentru a vizualiza ct mai sugestiv relaiile dintre tabele, se vor
crea formulare cu subformulare.
3. Formularele create vor fi modificate pentru a aduga titluri,
butoane de comand i controale de tip Textbox pentru afiarea i
calcularea valorilor TVA i VALOARE.
4. Se cere crearea unei forme de meniu. Aceasta va apela cu ajutorul
butoanelor de comand alte forme, cte una pentru fiecare table,
pentru vizualizarea datelor.
5. Se dorete crearea unui panou de comand (Switchboard) pentru
crearea unui meniu care s conin toate formele.

79
Obiective:

- Protejarea bazei de date.


- Vizualizarea datelor cu posibilitatea efecturii unor operaii
elementare asupra acestora.
- Afiarea unor valori calculate dup anumite formule.
- Crearea unei interfee vizuale cu utilizatorul.

Rezolvare

1. Pentru a proteja baza de date cu o parol, aceasta trebuie deschis n


mod Exclusive. Pentru aceasta, vom nchide baza de date, alegem opiunea
Open, dup selectarea bazei de date se apas sgeata din dreptul butonului
Open, pentru a alege opiunea Open Exclusive.

Apoi, pentru a seta o parol, Tools/Security/Set Database Password:

80
2. Pentru a crea un formular pentru fiecare tabel n parte, se
selecteaz tabelul, apoi din meniul Insert se alege opiunea Autoform.
De exemplu, pentru tabela Facturi, fiind tabela printe tabelei
Liniifact, automat se va crea un formular cu un subformular.

3. Pentru a aduga un titlu n antet i butoane de comand acestei


forme, vom utiliza butonul View pentru a trece n Design View:

Pentru a aduga un antet/subsol, din meniul Insert vom alege opiunea


Form Header/Footer. Pentru a aduga controale pe form este necesar
afiarea barei de unelte Toolbox, prin apsarea butonului Toolbox de pe bara de
unelte.

Pentru a aduga un titlu n partea de antet (Header), se utilizeaz

controlul Label de pe bara de unelte, , se tasteaz textul dorit, apoi se


formateaz folosind butoanele de pe bara de unelte.

81
Pentru a aduga un control de tip buton de comand, trebuie ca butonul

Control Wizards s fie selectat. Apoi, se alege butonul Command

Button , dnd un click n zona de subsol. Aceasta va porni asistentul


care permite construirea butonului. Aciunile pe care le putem ataa butonului
de comand sunt grupate n mai multe categorii. De exemplu, pentru a nchide o
form, se selecteaz categoria Form Operations, selectnd apoi aciunea Close
Form. La apsarea butonului Next asistentul v ghideaz pentru a alege fie o
imagine grafic asociat butonului, fie un text. Ultimul pas este dat de
denumirea butonului. Dup conveniile cunoscute, orice buton de comand are
un antet de 3 litere, cmd, deci numele acestuia va fi cmdIesire. Analog se
construiesc restul butoanelor dorite. Forma se va salva cu numele Facturi-
Liniifact. Analog se construiesc restul formelor.

Vom construi o form care s conin datele din tabelele Produse i


Liniifact. Pentru aceasta, vom selecta opiunea Create Form in Design View.
Vom deschide fereastra Properties pentru a selecta tabelele de unde vor fi
preluate datele. Pentru aceasta, fiind poziionai pe form, apelm meniul
contextual (click-dreapta) i alege Properties:

82
Dac se alege obiectul Form, prima opiune pe pagina All este Record
Source. Dac dorim s extragem datele dintr-o singur tabel, alegem una
dintre cele afiate atunci cnd este selectat combo-box-ul. Dac se dorete
extragerea datelor din mai multe tabele, se apas butonul cu trei puncte. Din
fereastra Show Table vom alege cele dou tabele, Liniifact i Produse.

Vom alege din cele dou tabele cmpurile nr_f, den_p, um, pret_u i
cant. La nchiderea ferestrei se salveaz interogarea. Pentru a putea utiliza

cmpurile, dac acestea nu apar implicit, se apas butonul . Prin drag-and-


drop, aceste cmpuri vor fi aezate pe form.

Pentru a calcula un cmp, acesta trebuie creat cu ajutorul controlului


Text-box de pe bara de unelte Toolbox. Selectnd controlul i dnd un click pe
form, vom observa o etichet cu numele Text urmat de un numr, i un text-
box n care apare completat Unbound. n locul textului se completeaz: TVA,
iar n locul lui Unbound se tasteaz =0,19*[cant]*[pret_u]. Pentru a formata
aceast caset de text, din fereastra Properties, opiunea Format, se alege
Currency.

83
Analog se calculeaz cmpul Valoare.

4. Pentru a crea o form de meniu, se creaz o form cu ajutorul


opiunii Create a Form in Design View, apoi se creeaz butoanele de comand
(cu ajutorul asistentului Control Wizards), selectndu-se de la categoria Form
Operation, aciuneaOpen a form, urmnd a selecta numele formei care se
dorete a fi deschis atunci cnd se execut click pe buton.

6. Pentru a construi un panou de comand (Switchboard):

Dac apare acest mesaj de eroare, se alege opiunea Yes:

Din fereastra Switchboad Manager se alege opiunea Edit, pentru a


edita panoul de comand principal (Main).

84
Pentru a crea o nou opiune (un nou buton pe panoul de comand) se
alege butonul New:

Analog se creaz pentru fiecare form o nou opiune. Pentru a crea un


buton care permite prsirea aplicaiei:

Putem alege oricare aciune dintre urmtoarele:

Forma poate fi regsit oricnd n cadrul formularelor:

85
5.2.1. Aplicaie propus:
S se creeze o interfa grafic cu utilizatorul cu ajutorul opiunii
Switchboard, fiind create formulare cu subformulare, mbogite cu butoane de
comand i cmpuri calculate, pentru baza de date de la Aplicaia 5.1.1. i 5.1.2.

5.3. Aplicaia 3

1. S se creeze o interogare care s permit afiarea informaiilor de


pe toate facturile (nr_f, data_f, den_p, cant i pre unitar) pentru
data curent.
2. S se creeze o interogare pentru tabela Produse, afindu-se
pentru fiecare nregistrare TVA-ul i Valoarea (cant*pret).
3. S se creeze o interogare care s permit citirea interactiv n
momentul execuiei a unui numr de factur i afiarea
informaiilor legate de aceasta.
4. S se creeze o interogare care s permit afiarea tuturor
facturilor eliberate ntre 2 date calendaristice (operatorii Between
cu And).
5. S se creeze prin intermediul unei interogri un nou cmp cu
numele Observaii care va conine textul Produs eficient dac

86
valoarea este mai mare dect o anumit valoare sau Produs
ineficient daca valoarea este mai mic dect acea valoare.
6. S se afieze toate facturile eliberate luna aceasta.
7. Operatorul Like:
a. S se afieze toate produsele care ncep cu litera p.
b. S se afieze doar produsele care sunt din 5 litere si ncep
cu litera p.
8. S se afieze toate produsele care au preurile 3 i 5 lei.
9. S se afieze toate produsele care nu au completat cmpul
denprodus.
10. S se determine pentru fiecare factur valoarea total.
11. S se creeze un nou tabel pe baza tabelelor Facturi, Produse i
LiniiFact, rezultatul unei interogri, care s conin toate datele
din toate tabele, suprimnd apariia dublat a cmpurilor de
legtur, tabelul fiind ordonat alfabetic dup denumirea
produselor.
12. S se numere cte produse au preul mai mic dect 100 lei. S se
salveze interogarea cu numele Minim.
13. S se calculeze valoarea total a facturii cu numrul citit de la
tastatur. S se salveze interogarea cu numele ValoareTot.
14. S se calculeze valoarea medie a valorii tuturor facturilor. S se
salveze interogarea cu numele Medie.

Obiective:

- Crearea interogrilor de selecie.


- Funcii pentru date calendaristice.
- Crearea unor cmpuri calculate.
- Interogri cu parametru.
- Operatorii Between, Like, In, Is Null.
- Funcia IIF.
- Interogri de tip Totals.
- Interogri de tip Make Table.

Rezolvare:

1. Pentru a crea o interogare, se alege obiectul Query, selectnd apoi


opiunea Create Query In Design View. n fereastra Show table vom selecta
pe rnd tabelele Facturi, Liniifact i Produse, apsnd apoi butonul Add, apoi
se nchide fereastra. Pentru a alege cmpurile dorite, acestea se selecteaz prin
dublu-click. Pentru a selecta condiia ne poziionm sub coloana data_f, pe linia

87
Criteria, unde tastm =Date(). Se salveaz interogarea apsnd pe butonul
Save. Pentru a vizualiza rezultatul interogrii, de pe butonul View se alege
Datasheet View.

Observaie: Dac nterogarea nu returneaz nici un rezultatul,


nseamn c nici o nregistrare nu a verificat condiia ca data facturii s fie data
curent.
2. Pentru a crea a doua interogare, se alege tabela Produse din fereastra
Show Tables, apoi se calculeaz cmpurile TVA i valoare, pe rnd, pe linia
Field, prima coloan liber: TVA: [pret_u]*[cant]*0,19, respectiv Valoare:
[pret_u]*[cant]*1,19. Se salveaz i vizualizez rezultatul interogrii. Pentru a
formata o anumit coloan din interogare (TVA i Valoare), n Design View se
selecteaz coloana, se apeleaz meniul contextual opiunea Properties, iar la
opiunea Format se alege Currency. Analog se procedeaz i cu coloana
Valoare.

Se salveaz interogarea i se vizualizeaz rezultatele.

3. Se selecteaz tabelele Facturi, Produse i Liniifact, cmpurile: nr_f,


data_f, den_p, pret_u i cant. Pentru a crea o interogare cu parametru, care s
permit citirea interactiv a numrului facturii de pe tastatur, pe coloana nr_f,
linia Criteria se tasteaz [Introduceti numarul facturii].

88
4. Se selecteaz tabela Facturi, Liniifact i Produse, cmpurile: nr_f,
data_f, den_p, pret_u i cant:

5. Se deschide interogarea de la punctul 2, n Design View, se salveaz


cu alt nume (Save as). Se apeleaz meniul contextual asociat unui nou cmp, se
alege opiunea Build Event:

Se selecteaz funcia IIF, modificnd-o astfel: Observatii:


IIf([valoare]>50;"Produs eficient";"Produs ineficient").

6. Vom folosi 2 funcii care pot fi aplicate unor date calendaristice:


Datepart (o parte dintr-o dat calendaristic) i funcia Month (extrage luna
dintr-o dat calendaristic).

89
7. a). Se alege tabela Produse, cmpurile: den_p, pret_u, stoc, um i
cod_m. Pe coloana den_p, linia Criteria se tasteau condiia: LIKE "p*".
b) Se deschide interogarea de la punctul a), se salveaz cu alt nume,
se trece n modul de vizualizare Design View i se modific condiia: LIKE
"p????".

8. Se alege tabela Produse, coloana pret_u, utilizndu-se operatorul


IN.

9. Tabela aleas va fi Produse, cmpurile: den_p, cant, cod_m. Pe


coloana den_p, linia Criteria se tasteaz IS NULL.

10. Deschidem interogarea de la punctul 2, unde avem calculat


valoarea. Salvm interogarea cu un alt nume, trecem n Design View i tergem
sau modificm restul cmpurilor, lsnd doar urmtoarele: nr_f i valoare.

90
Se selecteaz butonul Totals de pe bara de unelte, iar sub valoare, pe
linia Total, se alege funcia SUM.

11. Pentru a crea o nou tabel cu toate nregistrrile din tabelele


Facturi, Produse i Liniifact, se adaug toate cmpurile din aceste tabele, fr
a duplica respectivele cmpuri, iar din meniul Query se alege opiunea Make
Table Query, se d un nume tabelei noi create, apoi se salveaz interogarea, i
apas butonul Run pentru a executa aciunea:

Mesajul urmtor este doar unul de avertizare, i anume datele salvate n


tabele vor fi adugate n tabelul nou creat. Deci vom apsa butonul Yes.

12. Din fereastra Show Table se alege tabela Produse, utilizndu-se


funcia COUNT:

91
13. Pentru a calcula valoarea total pe fiecare factur n parte, se
grupeaz datele dup numrul facturii (interogri de tip Totals) i se alege
funcia SUM:

14. Pentru a calcula media se aplic funcia AVG:

92
5.3.1. Aplicaie propus

S se ncerce toate tipurile de interogri din exemplul anterior pe


problemele propuse 5.1.1 i 5.1.2.

5.4. Aplicaia 4

1. S se creeze un raport pentru tabelul Furnizori, datele fiind


grupate dup localitate.
2. S se creeze un raport pentru afiarea datelor de pe fiecare factur
n parte, calculndu-se valoarea facturii i valoarea total a tuturor
facturilor.
3. S se creeze rapoarte pentru fiecare tabel i interogare create
anterior.

Obiective:

- Crearea rapoartelor cu ajutorul Wizard-ului.


- Crearea rapoartelor cu datele provenind din mai multe tabele.
- Adugarea unor cmpuri calculate.

Rezolvare:
1. Pentru a crea un raport cu ajutorul asistentului, se alege opiunea
Create Report by Using Wizard. La primul pas se alege tabela sau interogarea
pe baza creia se va crea raportul (Tables/Forms). Din caseta Available Fields
se selecteaz cmpurile dorite, apoi se apas butonul Next.

93
La pasul 2 se selecteaz criteriul de grupare, n cazul de fa vom grupa
furnizorii dup localitate. Dac se apas butonul Grouping Options se pot
alege mai multe variante de grupare: dup prima iniial, a doua etc...

La pasul urmtor se selecteaz ordinea n care vor fi afiate


nregistrrile n raport:

n continuare se selecteaz orientarea paginii (vertical, orizontal),


precum i modul de afiare al informaiilor pe pagin:

94
La pasul urmtor se alege un stil din lista afiat. Ultimul pas permite
modificarea titlului raportului (nu este vorba de numele cu care va fi salvat
raportul, ci doar textul care va apare n antentul raportului), apoi putem alege
ntre a vizualiza raportul i a modifica raportul. Pentru a ncheia crearea
raportului se alege opiunea Finish.

Raportul n modul Design va apare ca n figura urmtoare:

Dac datele care dorim s apar provin din mai multe tabele, sau avem
nevoie de unele cmpuri calculate, putem crea o interogare n care s selectm
tabelele, calculnd cmpurile dorite, apoi crem raportul pe baza interogrii.
Dac se dorete adugarea unui cmp care va fi calculat, se alege de pe
bara de unelte Toolbox controlul TextBox. n caseta n care apare Unboand, se
ncepe cu simbolul =, apoi se tasteaz funcia sau formula dorit. Numele
cmpurile vor fi trecute ntre paranteze drepte. De exemplu, un cmp valoare ar
putea fi calculat astfel =[cant]*[pret_u]*0,19.

95
2. Pentru a crea raportul, vom alege ca surs a datelor interogarea cu
numele Valoare. Dac n aceast interogare avem cmpuri de tip Numeric, la
pasul 3 se selecteaz butonul Summary Option, bifnd check-box-urile de sub
funcia SUM pentru cmpurile TVA i Valoare.

Pentru a vizualiza raportul, de pe butonul View se alege opiunea Print


Preview.

5.4.1. Aplicaie propus

S se creeze rapoarte cu ajutorul Wizard-ului i cu ajutorul opiunii


Create Report in Design View pentru problemele propuse 5.1.1 i 5.1.2.

5.5. Aplicaia 5

1. S se creeze urmtoarea form de meniu.

96
Obiective:

- Crearea butoanelor de comand fr ajutorul asistentului.


- Utilizarea ferestrei Properties pentru a customiza butonul.
- Prezentarea mediului de programare VBA.
- Utilizarea comenzii DoCmd cu metodele OpenTable, RunSQL i Quit.
- Instruciuni VBA citirea de la tastatur a datelor prin InputBox.
- Instruciuni SQL inserarea unei noi nregistrri, modificarea valorii
unui cmp, selecia datelor.

Rezolvare:

n acest caz se va folosi facilitatea Create form in Design View. De pe


bara de unelte Toolbox se verific dac butonul Control Wizard este
selectat. Acesta trebuie s fie deselectat pentru a permite crearea manual a
controalelor, fr ajutorul asistentului. n continuare se alege butonul de

comand Command Button , acesta fiind depozitat pe form.


Apelnd meniul contextual asociat butonului de comand creat pe form, se
selecteaz opiunea Properties i se modific proprietile Name: cmdDesPr i
Caption: Produse Design. Analog se procedeaz pentru restul butoanelor.
Pentru a introduce instruciuni ataate butoanelor trebuie s apelm
editorul Visual Basic. Pentru aceasta, se apeleaz meniul contextual al fiecrui
buton n parte, se alege Build event, Code builder, OK.
Mediul de programare Visual Basic Application arat ca n figura
urmtoare:

97
n zona de declarare a variabilelor se tasteaz:

Butonul 1
Private Sub cmdDesPr_Click()
' se deschide tabela Produse pt. vizualizare in Design
DoCmd.OpenTable "Produse", acViewDesign
End Sub

Toate liniile care ncep cu caracterul apostrof sunt comentarii, ele vor fi
ignorate de compilatorul Visual Basic.

Butonul 2
Private Sub cmdDescPr2_Click()
' se deschide tabela Produse pt. vizualizare in Datasheet View
DoCmd.OpenTable "Produse"

98
End Sub

Butonul 3
Private Sub cmdInsPr_Click()
'adaugarea unei noi inregistrari
DoCmd.RunSQL "insert into produse values (cod_produs, den_produs,
um_produs, stoc_produs, pret_produs, cod_mag)"
End Sub

Butonul 4
Private Sub cmdModDen_Click()
'modificarea denumirii unui produs la care este cunoscut codul
v_cod = InputBox("Introduceti codul produsului la care doriti sa ii modificati
denumirea:")
DoCmd.RunSQL "update produse set den_p=denumire where cod_p=" &
v_cod
End Sub

Butonul 5
Private Sub cmdCrTNou_Click()
'selectarea produselor cu stoc 0 si crearea unei tabele cu aceste produse
DoCmd.RunSQL "Select cod_p, den_p, um, stoc, pret_u, cod_m into
StocNul from produse where stoc=0"
DoCmd.OpenTable "StocNul"
End Sub

Butonul 6
Private Sub cmdViz_Click()
'vizualizarea produselor cu codul >= o valoare introdusa de la tastatura
v_cod = InputBox("Introduceti un cod pentru a fi afisate produsele cu codul
mai mare decat aceasta valoare")
DoCmd.RunSQL "Select cod_p,den_p,um,stoc, pret_u, cod_m into Temp1
from produse where cod_p>=" & v_cod
DoCmd.OpenTable "Temp1"
End Sub

Butonul 7
Private Sub cmdValoare_Click()
DoCmd.RunSQL "select cod_p, den_p, um, categorie, pret, cant, cant*pret as
valoare into Valoare from produse"
DoCmd.OpenTable "Valoare"
End Sub

99
Butonul 8
Private Sub cmdIesire_Click()
DoCmd.Quit
End Sub

5.5.1 Aplicaie propus


S se creeze un formular cu opiuni corespunztoare tabelelor
existente create pentru problemele propuse 5.1.1 i 5.1.2.

100
BIBLIOGRAFIE

1. I. Bandu Baze de date Access 2007, Editura Mirton, Timioara,


2009;

2. S.Biriescu, Baze de date n mediul Acces, Editura Mirton,


Timioara, 2006;

3. T.Connolly, C.Beg, A.Strachan, Baze de date proiectare,


implementare, gesionare, Editura Teora, Bucureti, 2001;

4. D.Dnia, C.Margea, D.Mogoanu, Excel 2000. Aplicaii


economice rezolvate pas cu pas, Editura Mirton, Timioara, 2001;

5. D.Dnia, C.Margea, D.Trnveanu, A.-M. Negovan Excel 2007.


Aplicaii economice rezolvate pas cu pas, Editura Mirton,
Timioara, 2008;

6. I.Despi, G.Petrov, R.Reisz, A.Stepan, Teoria general a bazelor de


date, Editura Mirton, Timioara, 2000;

7. C.Fehily, SQL visual quickstart guide, Editura All, Bucureti,


2004;

8. V. Florescu, P.Nstase, F.Berbec, Baze de date fundamente


teoretice i practice, Editura Infomega, Bucureti, 2002;

9. C.Giulvezan, G.Mircea, Baze de date. Teorie i practic. Acces i


VBA, Ed.Universitii de Vest, Timioara, 2006;

10. C.Giulvezan, G.Mircea, D.Trnveanu, Baze de date. Teorie i


practic. Acces, VBA i SQL, Ed.Universitii de Vest, Timioara,
2009;

11. M.J.Hernandez, Proiectarea bazelor de date, Editura Tora,


Bucureti, 2003;

12. L.Hurbean, Baze de date. Concepte teoretice i abordare practic


n Microsoft Access, Editura Mirton, Timioara, 2006;

101
13. F. Ionescu, Baze de date relaionale i aplicaii, Editura Tehnic,
Bucureti, 2004;

14. S.Johnson, Microsoft Office Access 2007, Editura Niculescu,


Bucureti, 2008;

15. M.Lupulescu, M.Muntean, C.Giulvezan, FoxPro de la iniiere la


performan, Editura de Vest, Timioara, 1994;

16. M.Miloescu, Baze de date n Visual FoxPro, Editura Teora,


Bucureti, 2003;

17. G.Mircea, Access 2002. Tehnici de programare n VBA, Editura


Mirton, Timioara, 2003

18. M.Muntean, Note de curs Baze de date, 2008-2009;

19. M.Muntean, Baze de date n sisteme informatice economice,


Editura Mirton, Timioara, 2002;

20. P.Nstase .a. Baze de date Microsoft Access 2000, Editura


Teora, Bucureti, 1999;

21. J.V.Petersen, Baze de date pentru nceptori, Editura All,


Bucureti, 2002;

22. I.Popescu, Modelarea bazelor de date, Editura Tehnic, Bucureti,


2001;

23. R.Smith, D.Sussman, Programare n ACCESS 97 VBA, pentru


nceptori, Editura Tora, Bucureti, 1999;

24. M.Velicanu, I.Lungu, M.Muntean, Dezvoltarea aplicaiilor cu


Visual FoxPro, Editura All, Bucureti, 2001;

25. ***, Microsoft Visual Basic 6.0 ghidul programatorului, Editura


Teora, Bucureti, 1999.

26. Site-ul oficial Microsoft Office Romania / produsul Access


http://office.microsoft.com/ro-ro/access/

102
GLOSAR DE TERMENI

Administratorul este persoana sau grupul de persoane responsabil de


bazei de date proiectarea, implementarea i realizarea fizic a bazei
(Database de date, de securitatea i controlul integritii, de
Administrator) ntreinerea ntregului sistem.
Administratorul gestioneaz resursele de date, fiind responsabil de
de date (Data proiectarea conceptual i logic a bazei de date, de
Administrator) planificarea bazei de date, de realizarea i ntreinerea
standardelor, a politicilor i a procedurilor bazei de
date.
Baz de date este un ansamblu structurat de date legate structural
ntre ele, un depozit de date unic definit o singur dat
i utilizat simultan de mai muli utilizatori. Baza de
date este o resurs comun i partajat. Baza de date
conine nu numai date ci i descrierea acestora.
Bibliotec de un fiier prevzut de obicei cu o extensie .olb,
obiecte furniznd informaii ce permit maipularea obiectelor
puse la dispoziia utilizatorului de un server. Se poate
folosi Exploratorul de obiecte pentru a examina
coninutul unei biblioteci de obiecte.
Cmpul este o informaie individual din componena unei
nregistrri, iar fiecare coloan din tabelul Access
reprezint un cmp diferit.
Chei alternative se numesc celelalte chei candidat, rmase nealese.
Cheie candidat este atributul sau mulimea de atribute ale unei entiti
care identific n mod unic apariiile individuale ale
unui tip de entitate. Un tip de entitate poate avea mai
multe chei candidat.
Cheie compus este o cheie candidat format din mai multe atribute.
Cheie primar din mulimea de chei candidat se alege un singur
care va fi numit cheie primar.
Clauza FROM specific tabelele sau interogrile din care sunt
(SELECT) extrase datele.
Clauza GROUP este folosit pentru executarea funciilor de agregare
BY (SELECT) SQL, ca i Sum (sum), Count (calcul), Avg (medie).

103
Clauza specific nregistrrile regrupate ce trebuie afiate
HAVING ntr-o instruciune SELECT dotat cu o clauz
(SELECT) GROUP BY. Odat ce regruparea este efectuat se
afieaz lista de cmpuri a clauzei GROUP BY i sunt
selectate doar nregistrrile care respect condiia
specificat n clauza HAVING.
Clauza ORDER determin sortarea (aranjarea n ordine cresctoare
BY (SELECT) sau descresctoare), nregistrrile rezult dintr-o
interogare n funcie de cmpul/cmpurile
specificat(e).
Clauza permite filtrarea nregistrrilor dup anumite criterii.
WHERE
(SELECT)
Dat o informaie codificat i stocat pe un suport de
memorare. Din punctul de vedere al prelucrrii de
calculator, n cadrul aplicaiilor, datele se definesc cu
ajutorul unui nume (identificator), a atributelor pe
care le are i de o valoare.
Evenimentul reprezint aciunea utilizatorului sau a sistemului
asupra unui obiect ceea ce declaneaz execuia
codului program corespunztor.

Fiier este o structur care grupeaz date dintr-un anumit


domeniu care au anumite caracteristici comune. Din
punct de vedere fizic fiierul este o colecie finit de
nregistrri fizice, iar din punctul de vedere al
semnificaiei, o colecie de nregistrri logice, numite
i articole. Din punctual de vedere al sistemului de
operare fiierul are un nume i eventual o extensie de
fiier.
Formularele sunt obiecte folosite pentru a consulta sau actualiza
datele dintr-un tabel sau o structur de interogare.
Instruciunea corespunde unei interogri DELETE ce terge
DELETE nregistrrile din tabelul menionat n clauza
FROM, dup criteriile date (facultativ).
Instruciunea corespunde unei interogri ADD care adaug
INSERT INTO nregistrri ntr-un tabel.

104
Instruciunea este cea mai folosit instruciune, corespunznd
SELECT interogrii Selection din Access. Permite extragerea
cmpurilor unui ansamblu de nregistrri ce
corespund unor criterii.
Instruciunea corespunde unei interogri de actualizare care
UPDATE modific valorile cmpurilor ntr-un tabel specificat,
pentru nregistrrile ce corespund criteriului dat
(facultativ).
Interogrile sunt obiecte virtuale de tip tabel, adic vizualizri,
care nu au corespondent fizic, fiind definite cu
ajutorul tabelelor definite deja n baza de date.
nregistrarea este o linie dintr-un tabel, n care fiecare cmp conine
o valoare concret dintr-un domeniu de valori i
conine informaii care identific o anumit realizare
concret a entitii; persoan, loc sau obiect
Limbajul este un limbaj specific care include comenzi pentru
pentru asigurarea confidenialitii i integritii datelor,
controlul pentru salvarea informaiei cu scopul meninerii
datelor (LCD integritii bazei de date i chiar pentru rezolvarea
Data Control
problemelor de acces concurenial la date.
Language)
Limbajul este un limbaj specific pentru fiecare SGBD fiind
pentru definirea utilizat pentru a specifica schema bazei de date. Este
datelor (LDD un limbaj descriptiv care permite administratorului
Data bazei de date, respectiv utilizatorului final sa descrie
Description
i s defineasc entitile din baza de date precum i
Language)
relaiile existente ntre entiti, adic s defineasc o
schem sau s o modifice.
Limbajul este un limbaj care asigur un set de procedee ce
pentru permit operaiile de baz pentru manipularea datelor
manipularea din baza de date. Operaiile executate n cadrul bazei
datelor (LMD de date presupun existena unui limbaj specializat n
Data
care comenzile se exprim prin fraze ce descriu
Manipulation
Language) aciuni asupra bazei de date.

Limbajul SQL este un limbaj de interogri i gestionare a bazelor de


(Structured date relaionale.
Query
Language)

105
Macro-urile reprezint o modalitate optim de acces la date, care
permit automatizarea mai multor sarcini folosind un
limbaj specific. Pentru a rezolva o sarcin mai
complex se poate construi un macro (format dintr-o
mulime de aciuni) sau o procedur (format dintr-o
succesiune de instruciuni n Visual Basic).
Metoda const n codul program predefinit ce se raporteaz la
un tip de obiect i care se execut n momentul
apariiei unui eveniment.
Model de date este o colecie integrat de concepte, necesare
descrierii datelor, a relaiilor dintre date i a
constrngerilor asupra datelor dintr-o organizaie, o
reprezentare abstract a obiectelor i a evenimentelor
lumii reale i a asocierilor dintre acestea, cu ajutorul
cruia se reprezint o organizaie.
Modelul reprezint un model de date conceptual de nivel nalt,
Entitate neformalizat, care descrie structura bazei de date,
Relaie precum i tranzaciile de regsire, respectiv de
reactualizare asociate. Acest model, permite o
reprezentare a unui sistem real, grupnd elementele
sistemului real n entiti i asocieri (legturi) ntre
entiti.
Modulele conin o parte a codului VBA al aplicaiei, i anume
declaraiile de variabile i constante, funciile i
procedurile globale ale ntregii aplicaii. VBA
reprezint un mediu de programare orientat obiect.
OLE (Object este tehnologia care permite manipularea obiectelor
Linking and unei alte aplicaii, direct din Access sau din VBA
Embedding) sau Access.
OLE
Automation
Organizarea reprezint procesul de identificare, definire, evaluare,
datelor structurare i memorare a informaiilor, n cadrul unui
sistem informaional. Prin organizarea datelor se
realizeaz gruparea datelor n colecii de date
omogene, se stabilesc care sunt relaiilor dintre date,
dintre elementele coleciilor i dintre colecii, precum
i modul de stocare a datelor pe suportul fizic de
memorare.

106
Paginile de reprezint obiecte specifice ACCESS care permit
prezentare afiarea ntr-un format accesibil care permite
transmiterea rapid a datelor prin Internet sau
Intranet.
Procedura este alctuit dintr-un set de instruciuni (un modul
program) ce nu returneaz nici o valoare ci execut o
anumit aciune.
Proiectanii sunt persoanele implicate n proiectarea logic i cea
bazei de date fizic a bazei de date. Proiectarea conceptual i
logic presupune identificarea entitilor, a relaiilor
dintre entiti, a constrngerilor asupra datelor ce vor
fi stocate n baza de date.
Rapoartele sunt obiecte folosite pentru a sintetiza datele stocate
ntr-o tabela real sau virtual i a oferi un rezultat
tiprit al informaiilor din baza de date un raport
ACCES, de la cea mai simpl list a unui tabel pn
la rapoartele cele mai complexe ce conin regrupri de
nregistrri i calcule.
Redundana reprezint o proprietate a unei colecii de date care se
datelor refer la faptul c unele componente ale coleciei de
date sunt memorate de mai multe ori pe suportul de
memorare. Creterea redundanei are ca efect apariia
de erori frecvente datorate neconcordanei
informaiilor memorate n fiiere aparinnd unor
aplicaii diferite, rezultnd costuri de actualizare
mrite corespunztor.
Relaie este o asociere, o comunicare, o coresponden
(relationship) ntre dou sau mai entiti. Relaia exprim raportul
existent ntre respectivele entiti i exist doar dac
entitile exist.
Sistemul de reprezint un pachet de programe specializat pentru
Gestiune al definirea, crearea, ntreinerea i accesul controlat la
Bazei de Date baza de date.
(SGBD)
Tabelele conin datele propriu-zise corespunztoare entitilor
din baza de date, organizate sub forma unei matrice n
care coloane reprezint atribute (cmpuri), iar liniile
apariiile, realizrile entitii (nregistrri).

107
Visual Basic este un limbaj de programare orientat obiect,
Application dezvoltat de Microsoft folosind limbajul Visual
(VBA) Access BASIC adaptat la cerinele specifice ale sistemelor de
gestiune de baze de date.

108

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