Documente Academic
Documente Profesional
Documente Cultură
Baze de Date PDF
Baze de Date PDF
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.
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.
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.
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.
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.
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.
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);
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.
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
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.
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.
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.
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
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.
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.
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).
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.
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.
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.
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.
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
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.
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;
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.).
49
3.2. Tabelele
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
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.
3.4. Formularele
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).
3.5. Rapoartele
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.6. Raportul din figura 3.5 n modul de vizualizare Design View
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.
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.
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).
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.
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.
Sintax:
SELECT [ALL |DISTINCT <list de cmpuri>
FROM <list de tabele>
[WHERE ...]
[GROUP BY...]
[HAVING...]
[ORDER BY]
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.
Exemple:
Select Clients.Cli_societate, Commandes.Cde_DateCde
62
From Clients INNER JOIN Commandes ON
Clients.Cli_CodeCli =Commandes.Cde_CodeCli
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)
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
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
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#)
66
4.3.10. Alte instruciuni
Interogare
TRANSFORM Creeaz o interogare imbricat.
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.
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).
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.
70
PARTEA PRACTIC
5.1. Aplicaia 1
71
Obiective:
Rezolvare
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.
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;
74
Ordonarea va fi fcut dup acelai camp cod_m, putndu-se observa
valorile introduse anterior n tabela Magazii:
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:
76
Selectnd pentru fiecare relaie n parte opiunile respective, se obine
urmtoarea situaie:
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.
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:
78
5.1.2. Aplicaie propus
5.2. Aplicaia 2
79
Obiective:
Rezolvare
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.
81
Pentru a aduga un control de tip buton de comand, trebuie ca butonul
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
83
Analog se calculeaz cmpul Valoare.
84
Pentru a crea o nou opiune (un nou buton pe panoul de comand) se
alege butonul New:
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
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:
Rezolvare:
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.
88
4. Se selecteaz tabela Facturi, Liniifact i Produse, cmpurile: nr_f,
data_f, den_p, pret_u i cant:
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????".
90
Se selecteaz butonul Totals de pe bara de unelte, iar sub valoare, pe
linia Total, se alege funcia SUM.
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:
92
5.3.1. Aplicaie propus
5.4. Aplicaia 4
Obiective:
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...
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.
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.
5.5. Aplicaia 5
96
Obiective:
Rezolvare:
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
100
BIBLIOGRAFIE
101
13. F. Ionescu, Baze de date relaionale i aplicaii, Editura Tehnic,
Bucureti, 2004;
102
GLOSAR DE TERMENI
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.
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.
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