Sunteți pe pagina 1din 130

Lector univ. drd.

Mihai Gavotă

BAZE DE DATE

Bucureşti - 2001
CUPRINS

CUPRINS ...................................................................................................................................................... 2

1. INTRODUCERE ........................................................................................................................................ 4

2. TERMINOLOGIE ŞI MODELE DE DATE ................................................................................................. 6


2.1. MODELE DE DATE ........................................................................................................................... 7
2.1.1. Modelul relaţional........................................................................................................................ 7
3. BAZE DE DATE RELAŢIONALE.............................................................................................................. 9
3.1. SCURT ISTORIC ............................................................................................................................... 9
3.2. TIPURILE DE RELAŢII ...................................................................................................................... 9
3.2.1. Relaţiile „unu la unu”................................................................................................................. 10
3.2.2. Relaţiile „unu la mulţi” ............................................................................................................... 10
3.2.3. Relaţiile „mulţi la unu” ............................................................................................................... 11
3.2.4. Relaţiile „mulţi la mulţi”.............................................................................................................. 12
3.3. REGULI DE NORMALIZARE........................................................................................................... 13
4. ACCESS 2000 ........................................................................................................................................ 17
4.1. DE CE ACCESS? ............................................................................................................................ 17
4.2. CE VOR CONŢINE CAPITOLELE URMĂTOARE? ......................................................................... 18
4.3. INSTRUMENTUL SOFTWARE ACCESS 2000 ............................................................................... 19
4.4. O PREZENTARE GENERALĂ A PRINCIPALELOR OBIECTE ACCESS 2000............................... 23
5. TABELELE ŞI SISTEMUL DE RELAŢII ................................................................................................. 26
5.1. TIPURILE DE DATE ACCESS 2000................................................................................................ 27
5.2. CREAREA TABELELOR.................................................................................................................. 28
5.3. SALVAREA TABELELOR ................................................................................................................ 34
5.4. PROPRIETĂŢILE CÂMPURILOR.................................................................................................... 34
5.5. IMPORTUL ŞI EXPORTUL DATELOR ............................................................................................ 36
5.6. RELAŢIILE DINTRE TABELE .......................................................................................................... 38
6. CREAREA ŞI UTILIZAREA INTEROGĂRILOR ..................................................................................... 43
6.1. INTEROGĂRILE DE TIP SELECT ................................................................................................... 49
Lucrul cu funcţia like....................................................................................................................... 50
Concatenarea şirurilor de caractere ............................................................................................... 52
Dialogurile parametrizate ............................................................................................................... 52
Lucrul cu funcţia between............................................................................................................... 53
6.2. INTEROGĂRILE DE TIP TOTALS................................................................................................... 54
6.3. INTEROGĂRILE DE TIP UPDATE .................................................................................................. 57
6.4. INTEROGĂRILE DE TIP MAKE-TABLE .......................................................................................... 59
6.5. INTEROGĂRILE DE TIP DELETE ................................................................................................... 60
6.6. INTEROGĂRILE DE TIP APPEND ................................................................................................. 61
6.7. INTEROGĂRILE DE TIP CROSSTAB ............................................................................................. 62
TERMINOLOGIE ŞI MODELE DE DATE 3

7. FORMULARE ŞI RAPOARTE ................................................................................................................ 68


7.1. FORMULARE (FORMS) .................................................................................................................. 68
7.1.1. Crearea formularelor cu ajutorul „vrăjitorilor” (wizards) ............................................................. 71
7.1.2. Crearea formularelor în mod proiectare directă ........................................................................ 75
7.2. RAPOARTE (REPORTS)................................................................................................................. 84
8. LUCRUL CU HIPERLEGĂTURI.............................................................................................................. 93

ŞI GENERAREA PAGINILOR WEB ........................................................................................................... 93


8.1. SCURTĂ INTRODUCERE ............................................................................................................... 93
8.2. WORLD WIDE WEB ........................................................................................................................ 94
8.3. TEHNOLOGII ŞI PRODUSE PROGRAM TIP CLIENT INTERNET.................................................. 95
8.4. TIPUL DE DATE HYPERLINK ......................................................................................................... 96
8.5. GENERAREA PAGINILOR WEB ................................................................................................... 100
9. ADMINISTRAREA ŞI ASIGURAREA SECURITĂŢII BAZELOR DE DATE ACCESS.................................. 105
9.1. COMPACTAREA ŞI REPARAREA DATELOR .............................................................................. 105
9.2. CREAREA COPIILOR DE SIGURANŢĂ ........................................................................................ 106
9.3. SECURITATEA BAZELOR DE DATE ............................................................................................ 107
9.3.1. Principiile securităţii bazelor de date în reţele locale............................................................... 107
9.3.2. Protejarea prin parolă la nivelul bazei de date ........................................................................ 108
9.3.3. Criptarea bazei de date........................................................................................................... 109
9.3.4. Securitatea la nivelul grupurilor şi utilizatorilor ........................................................................ 110
ANEXA 1 – STRUCTURA TABELELOR UTILIZATE ÎN EXEMPLE. RELAŢIILE DINTRE TABELE ...... 114

ANEXA 2 – PROBLEME PROPUSE ........................................................................................................ 116


Reguli de normalizare................................................................................................................... 116
Tabele .......................................................................................................................................... 116
Interogări ...................................................................................................................................... 117
Formulare ..................................................................................................................................... 118
Rapoarte....................................................................................................................................... 119
Pagini internet............................................................................................................................... 120
Securitatea şi administrarea bazelor de date................................................................................ 120
ANEXA 3 – DICŢIONAR DE TERMENI .................................................................................................... 121

BIBLIOGRAFIE......................................................................................................................................... 130
1. INTRODUCERE

Complexitatea informaţiilor cu care oamenii au interacţionat şi interacţionează


permanent, a făcut necesară gestionarea eficientă a acestora. Bibliotecile care au existat încă din
antichitate, agendele personale, registrele de evidenţă, cataloagele de produse, mersul trenurilor
nu sunt altceva decât mijloace de gestionare eficientă a informaţiilor. Prin acestea se încearcă de
fapt, într-o manieră neautomatizată, să se rezolve problemele legate de organizarea, stocarea şi
regăsirea performantă a informaţiilor. Rezolvarea eficientă a acestor probleme în condiţiile unui
volum foarte mare de informaţii, nu poate fi concepută decât prin utilizarea calculatoarelor
electronice şi anume a bazelor de date.
Scopul principal urmărit, atunci când se alege ca soluţie de rezolvare a problemei
gestiunii informaţiilor utilizarea bazelor de date, este acela de a regăsi într-un timp cât mai scurt
informaţia căutată după anumite criterii, de a asigura securitatea acestora, de a minimiza spaţiul
necesar de memorare, de a asigura unicitatea şi flexibilitatea datelor gestionate.
La modul cel mai general o bază de date poate fi definită ca fiind o colecţie de date
înrudite care se referă la un anumit obiect sau obiectiv, împreună cu instrumentele folosite pentru
manipularea acestor date. Orice bază de date trebuie să conţină descrierea datelor şi înregistrările
de date.
Sistemul complex de programe care permite descrierea, organizarea, memorarea,
regăsirea, administrarea şi securizarea informaţiilor dintr-o bază de date se numeşte sistemul de
gestiune a bazelor de date (SGBD). Memorarea datelor conţinute de bazele de date se face pe
suporturile de memorie internă sau externă folosite de calculatoare (unităţi de hard-disc, benzi şi
casete magnetice, compact discuri etc). SGBD este un software special asociat bazelor de date
care asigură interfaţa între o bază de date şi utilizatorii ei, rezolvând toate cererile de acces la
datele memorate.
Bazele de date înglobează patru componente: datele, hardware-ul, software-ul şi
utilizatorii. Datele reprezintă „materia primă” a oricărei baze de date. Ele descriu caracteristicile
anumitor obiecte, sunt organizate în structuri şi se pot afla în anumite relaţii şi interdependenţe.
Hardware-ul se constituie din tehnica de calcul utilizată pentru crearea, întreţinerea şi
exploatarea bazelor de date. Software-ul cuprinde SGBD-ul şi programele de aplicaţie aferente.
Din punctul de vedere al utilizatorilor se deosebesc trei categorii:

• utilizatorii finali care interacţionează cu baza de date prin intermediul unui limbaj de
interogare sau prin intermediul unor programe numite programe de aplicaţie, scrise de
programatorii de aplicaţii;
• programatorii de aplicaţii care realizează programele de aplicaţie ale bazei de date,
utilizând anumite limbaje de programare (Visual Basic for Applications, C,C++, Java,
PHP, PERL etc) Aceste aplicaţii numite şi software front-end asigură utilizatorilor, într-o
manieră cât mai prietenoasă, accesul la date pentru introducerea, actualizarea, regăsirea,
consultarea şi listarea acestora;
• administratorul bazei de date care este o persoană (sau un grup de persoane) responsabilă
cu asigurarea funcţionării software-ului şi hardware-ului, securitatea, integritatea şi
siguranţa bazei de date.
TERMINOLOGIE ŞI MODELE DE DATE 5

Bazele de date computerizate oferă anumite avantaje incontestabile faţă de modalităţile


manuale de gestionare a informaţiilor, dintre care pot fi enumerate:

o reducerea redundanţei – prin înregistrarea unei informaţii o singură dată şi accesarea


acesteia oriunde este necesar. Din practica lucrului cu bazele de date a rezultat însă că nu
este posibilă şi nici chiar recomandată o redundanţă nulă a datelor;
o evitarea inconsistenţei datelor – în cazul în care datele sunt accesate de mai mulţi
utilizatori (regim de lucru multiuser), o modificare făcută de unul dintre aceştia este
accesibilă şi celorlalţi în cel mai scurt timp;
o partajarea informaţiilor şi a programelor de aplicaţie – mai mulţi utilizatori pot lucra
simultan cu aceleaşi date şi pot lansa în execuţie aceeaşi aplicaţie;
o asigurarea restricţiilor de securitate a datelor – se realizează prin conceperea unui sistem
de autorizare a accesului la date prin parole şi a unor niveluri de acces (numai anumiţi
utilizatori au acces la toate datele, ceilalţi au un acces limitat numai la acele informaţii
care pot fi cunoscute de ei);
o asigurarea integrităţii datelor – printr-un sistem de protecţie la ştergerile neintenţionate şi
de refacere a datelor în caz de incidente;
o rezolvarea operativă a conflictelor ce pot apărea în crearea, editarea, consultarea şi
interogarea datelor – prin validări aplicate la momentul introducerii acestora în baza de
date şi prin mecanisme ce interzic modificarea simultană de către mai mulţi utilizatori a
aceleiaşi informaţii;
o asigurarea independenţei datelor faţă de aplicaţii şi faţă de suportul fizic de memorare -
este un deziderat al oricărui SGBD şi presupune ca datele să poată fi modificate sau
mutate pe un alt suport fără ca să fie necesară rescrierea programelor de aplicaţii. Acest
lucru poate fi realizat printr-o corectă proiectare a bazelor de date şi prin scrierea unor
aplicaţii performante. De asemenea este de dorit ca administratorul bazei de date să aibă
libertatea de a schimba strategia de acces la date, priorităţile aplicaţiilor, unităţile de
memorare, fără să modifice aplicaţiile existente.

Termenii specifici bazelor de date, definiţiile acestora precum şi tipurile de baze de date
existente, în funcţie de modelul de date pe care se bazează, vor face obiectul capitolului următor.
Vor fi tratate noţiunile generale referitoare la bazele de date relaţionale şi în special la bazele de
date MS-Access. Voi motiva într-un subcapitol aparte de ce am ales din cadrul bazelor de date
relaţionale tocmai bazele de date Access ca suport practic al acestui curs.
2. TERMINOLOGIE ŞI MODELE DE DATE

Bazele de date au fost concepute pentru stocarea volumelor mari de informaţii relativ
omogene şi între care se pot stabili anumite relaţii. Modelul de date al bazei de date se stabileşte
în urma unei etape de analiză a informaţiilor care are ca scop identificarea datelor ce vor fi
memorate, stabilirea caracteristicilor acestora, a structurii şi a legăturilor dintre date.
Datele pot fi definite pe trei niveluri:

• nivelul extern care descrie modul în care utilizatorii individuali văd baza de date,
• nivelul conceptual care descrie structura canonică a datelor şi modul în care sunt grupate
în tabele,
• nivelul intern care descrie structura de memorare a datelor din baza de date şi strategia de
acces la date.

Orice sistem de gestiune a bazelor de date (SGBD) trebuie să asigure următoarele funcţii:

• definirea structurii bazei de date


• încărcarea datelor în baza de date
• accesul la date pentru:
o interogare
o ştergere
o modificare
• întreţinerea bazei de date:
o refacerea bazei de date prin existenţa unor copii de siguranţă
o repararea în caz de incident
o colectarea şi refolosirea spaţiilor goale
• posibilitatea de reorganizare a bazei de date prin:
o restructurarea datelor
o modificarea accesului la date
• securitatea datelor.

În orice bază de date principala sursă de informaţii o reprezintă un obiect din lumea reală
care se constituie ca o entitate.
Entitatea este o reprezentare unică a unui obiect. Cea mai folosită denumire pentru
entitate este înregistrarea (record) sau rândul dintr-un tabel (row).
Atributul unui obiect este o caracteristică ce permite descrierea entităţii. Atributul se
materializează sub forma unei celule de date care reprezintă valoarea unui câmp (field) dintr-o
înregistrare sau a unei coloane dintr-un tabel (column).
Tipurile de date ale atributelor pot fi: numerice, şiruri de caractere alfanumerice, date
calendaristice, şiruri de bytes (care pot reprezenta imagini sau sunete), pointeri către alte date etc.
Domeniul atributului este un interval de valori permise pentru un atribut. De exemplu el
poate reprezenta un interval de timp sau un interval de preţuri (între cel minim şi maxim admis).
TERMINOLOGIE ŞI MODELE DE DATE 7

Identificatorii entităţilor (înregistrărilor), se mai numesc şi câmpurile cheie primară,


folosite pentru crearea indexului principal al tabelului.
Tabelul (table) conţine setul tuturor entităţilor dintr-un singur tip de obiect. Tabelul mai
este numit şi clasă de entităţi sau tip de entităţi. El este constituit din rânduri (înregistrări) şi
coloane (câmpuri).
Baza de date (database) reprezintă o colecţie de tabele în care sunt stocate entităţi care
descriu un anumit domeniu de activitate, împreună cu instrumentele folosite pentru manipularea
datelor.
Orice bază de date de mărime medie sau mare, proiectată pentru a fi exploatată simultan
de către mai mulţi utilizatori, nu poate fi exploatată performant fără un administrator al bazei de
date care are responsabilitatea definirii schemei interne a acesteia şi întreţinerii ei.
Administratorul este cel care cunoaşte în amănunt conţinutul informaţiilor din baza de date şi
monitorizează performanţele acesteia (dimensiunea, viteza de acces, etc) în vederea maximizării
acestora. El stabileşte legăturile cu utilizatorii, defineşte verificările de autorizare a accesului,
procedurile de validare a datelor, precum şi strategia de refacere a bazei de date în caz de
incident.
Programatorii de aplicaţii şi utilizatorii finali comunică cu SGBD-ul prin intermediul
limbajelor de manipulare şi a limbajelor de interogare. În timpul execuţiei toate cererile de acces
sunt transmise SGBD-ului

2.1. MODELE DE DATE


De-a lungul timpului, utilizarea bazelor de date a devenit o necesitate pentru o mare
varietate de domenii de activitate. Specificul diferit al acestor domenii a făcut necesară
dezvoltarea de către specialişti a unor modele de organizare a datelor care să răspundă cerinţelor
acestora. În acest sens, s-au dezvoltat baze de date având la bază modele de date de diferite
tipuri, cum sunt: modelul ierarhic, modelul reţea, modelul relaţional, modelul obiectual, modele
semantice, modele funcţionale, modele deductive sau modele distribuite. Primele trei tipuri de
modele (ierarhic, reţea şi relaţional) reprezintă modelele cele mai cunoscute şi cele mai frecvent
utilizate în reprezentarea datelor.
Alegerea unui anumit SGBD (bazat pe unul din modelele de date anterior prezentate)
pentru informatizarea unei activităţi presupune o etapă de analiză în cadrul căreia se identifică
componentele de date, legăturile dintre acestea, evenimentele care determină modificări ale
datelor şi necesarul de informaţii primare şi sintetizate care trebuie furnizate.
Voi descrie în continuare modelul relaţional de organizare a datelor, cel mai răspândit în
prezent, care răspunde cerinţelor unei arii largi de domenii de activitate şi pe baza căruia s-au
dezvoltat un număr mare de sisteme de gestiune a bazelor de date (SGBD). Bazele de date de tip
Access, care vor fi tratate în acest curs, sunt de asemenea baze de date relaţionale.

2.1.1. Modelul relaţional


Modelul relaţional a fost dezvoltat avându-se în vedere în primul rând utilizatorii finali.
Acest model are la bază teoria matematică a relaţiilor, ceea ce a făcut posibilă tratarea
algoritmică a proiectării bazelor de date şi rezolvând astfel problema normalizării datelor.
Algebra relaţională se bazează pe un set de reguli şi simboluri utilizate pentru definirea
bazelor de date relaţionale şi oferă un set de operaţii (intersecţie, produs cartezian, diferenţă,
proiecţie) care au ca operanzi şi ca rezultat tabele.
8 Lector univ. drd. Mihai Gavotă - Baze de date

Normalizarea este o procedură standard prin care atributele datelor sunt grupate în tabele
iar tabelele sunt grupate în baze de date. Normalizarea datelor asigură baza de date împotriva
inconsistenţei care ar putea apărea în urma unor actualizări greşite. Prin normalizare pot fi create
tabele care să respecte modelul relaţional de bază de date. Normalizarea este procesul de
eliminare a dublurilor de informaţii din tabele. Prin normalizare se urmăreşte de fapt eliminarea
sau minimizarea redundanţei (dublurilor) din tabelele bazei de date.
Modelul relaţional este un model simplu, bazat pe algebra relaţională, care a făcut
posibilă dezvoltarea limbajelor relaţionale sub forma unui software specializat ce asistă procesul
de proiectare a bazelor de date. Astfel de limbaje sunt SQL (Structured Query Language) şi QBE
(Query By Example). Celelalte modele nu au beneficiat de un astfel de software. Modelul
relaţional al bazei de date se fundamentează pe două elemente principale: tabelele bazei de date
şi regulile de integritate ale acesteia.
În prezent există mai multe sisteme performante de gestiune a bazelor de date relaţionale
printre care pot fi enumerate: MS-SQL Server, Oracle, Informix, DB2, Access, Visual Fox,
MySQL. Toate aceste SGBD-uri au la bază limbajul SQL. Unele dintre ele beneficiază de
anumite extensii care oferă facilităţi suplimentare: sisteme client-server, sisteme multimedia,
analiza multidimensională şi orientarea obiect.
Menţinerea integrităţii bazei de date este unul din obiectivele prioritare ale oricărui
SGBD relaţional. Majoritatea bazelor de date client-server au prevăzute declanşatoare pentru
menţinerea integrităţii bazei de date, astfel încât aceasta să conţină numai informaţii valide,
confirmate şi verificate.
3. BAZE DE DATE RELAŢIONALE

3.1. SCURT ISTORIC


Evoluţia bazelor de date relaţionale a fost surprinzător de rapidă. Teoria privind bazele de
date relaţionale a fost publicată de dr. Codd în anul 1970 iar în anul 1972, dr.Cobb a prezentat
teoria legată de normalizarea acestora.
În 1984 firma Ashton-Tate cumpărată ulterior de Borland a creat limbajul dBASE care a
făcut posibilă utilizarea bazelor de date relaţionale pe calculatoarele personale. Versiunile dBASE
III, III++, IV s-au bucurat de un mare succes şi au determinat multe firme şi mulţi programatori
să opteze pentru bazele de date relaţionale. De asemenea, după 1990 bazele de date relaţionale
FoxPro au ţinut multă vreme capul de afiş al bazelor de date utilizate pe calculatoarele personale
(PC).
La sfârşitul anilor 1980 bazele de date relaţionale au devenit suficient de puternice şi au
început din ce în ce mai mult să înlocuiască bazele de date ierarhice şi pe cele de tip reţea care
până atunci dominaseră lumea bazelor de date.
În prezent, primul loc ca răspândire este deţinut de bazele de date relaţionale. Pe
calculatoarele de tip PC bazele de date dBASE şi FoxPro au fost înlocuite într-o mare măsură de
bazele de date Access ale firmei Microsoft. Acestea au cucerit foarte mulţi utilizatori finali şi
dezvoltatori de aplicaţii, în primul rând prin performanţă şi apoi prin felul în care Microsoft a
reuşit integrarea lor în bine-cunoscutul pachet de programe MS-Office.
În lumea bazelor de date relaţionale profesionale de dimensiuni mari şi foarte mari,
implementate pe calculatoare foarte puternice, s-au impus SGBD-uri cum sunt MS-SQL Server,
Oracle, DB2 şi Informix. Acestea funcţionează pe filosofia client-server. Ele pot fi legate fără
probleme cu alte baze de date şi pot utiliza cu uşurinţă obiecte realizate sub Access sau Visual
Fox.
Printre caracteristicile acestor SGBD-uri moderne se numără: puternica conectivitate pe
care o asigură, posibilitatea de a funcţiona distribuit în reţele de tip intranet sau extranet
(neomogene din punctul de vedere al hardware-ului), pe sisteme de tip multiutilizator, faptul că
s-au dezvoltat extensii care le permit modul de lucru cu obiecte printre care şi obiectele
multimedia.

3.2. TIPURILE DE RELAŢII


Aşa cum am arătat mai sus, bazele de date relaţionale presupun stocarea datelor în tabele
între care se stabilesc anumite relaţii. Exemple de tabele pot fi: tabela Date personale angajaţi,
tabela Clienţi, tabela Funcţii, tabela Produse, etc. Fiecare din acestea poate fi imaginată ca un
tabel desenat pe hârtie care cuprinde un cap de tabel cu caracteristicile (coloanele) pe care dorim
să le memorăm şi atâtea rânduri câte entităţi distincte scriem în tabel. Între aceste tabele există
anumite relaţii ca de exemplu: „fiecare persoană angajată ocupă o funcţie”, „fiecare client poate
cumpăra unul sau mai multe produse”, „o carte dintr-o bibliotecă poate fi citită succesiv de mai
mulţi cititori şi un cititor împrumută mai multe cărţi”. Această mare varietate de relaţii a fost
10 Lector univ. drd. Mihai Gavotă - Baze de date

analizată şi s-a stabilit că între tabelele bazelor de date pot exista patru tipuri de relaţii: „unu la
unu”, „unu la mulţi”, „mulţi la unu ” şi „mulţi la mulţi”. Aceste tipuri de relaţii acoperă întreaga
gamă de situaţii care se pot ivi în proiectarea bazelor de date relaţionale şi există instrumente
software care să le implementeze.

3.2.1. Relaţiile „unu la unu”


Reprezintă cel mai simplu tip de relaţie dintre înregistrările (rândurile) unor tabele
corespondente. Astfel, unei înregistrări dintr-o tabelă îi va corespunde doar o singură înregistrare
din tabela corespondentă. Pentru exemplificare să presupunem că există în cadrul unei baze de
date relaţionale următoarele tabele:

Tabela Tabela
Date personale angajaţi Salarii curente
legătura „unu la unu”
Cod persoană 1 1 Cod persoană
Nume persoană Salariu
Adresa Primă
Cod funcţie ocupată Rate
Data angajării …

Un conţinut fictiv al acestor tabele ar putea fi:

Cod Nume Adresa … Cod Salariu Prima …


persoană persoană persoană
0025 Popescu Ion … … 0025 12000000 3000000 …
0026 Vasile Petre 0026 10000000 10000000
0027 Ion Emil 0027 20000000 5000000
0028 0028 8000000 0
0029 0029 8500000 0
… …

Se observă că pentru materializarea relaţiei „unu la unu” s-a ales câmpul Cod persoană
ca fiind câmp unic de identificare şi de legătură între informaţiile conţinute în cele două tabele.
Aceasta determină ca unei singure înregistrări din tabela Date personale angajaţi să-i
corespundă doar înregistrarea din tabela Salarii curente în care câmpul Cod persoană identifică
acelaşi angajat. Deci, pentru fiecare persoană (angajat) există doar o singură înregistrare atât în
tabela Date personale angajaţi cât şi în tabela Salarii curente. Altfel spus, în acest exemplu
tabelele Date personale angajaţi şi Salarii curente au fiecare atâtea înregistrări câţi angajaţi
există.

3.2.2. Relaţiile „unu la mulţi”


Acest tip de relaţii leagă o înregistrare dintr-un tabel de bază cu mai multe înregistrări
dintr-un alt tabel corespondent prin intermediul unui câmp cheie. Câmpul cheie din tabelul de
bază se mai numeşte şi cheia primară iar câmpul cheie corespondent din cealaltă tabelă
reprezintă cheia străină (externă). Relaţiile „unu la mulţi” sunt cel mai întâlnit tip de relaţii.
BAZE DE DATE RELAŢIONALE 11

Un alt exemplu din lumea reală a bazelor de date va fi elocvent pentru înţelegerea acestui
tip de relaţii. Pornind de la aceeaşi tabelă de bază numită Date personale angajaţi şi
presupunând că ne interesează o interogare din care să aflăm informaţii despre deplasările
acestora, vom avea ca tabelă corespondentă tabela numită Deplasări angajaţi. Este evident că
fiecărui angajat unic determinat prin câmpul Cod persoană îi pot corespunde una, mai multe sau
nici o deplasare. Pentru a rezolva această interogare vom stabili o relaţie de tipul „unu la mulţi”
între cele două tabele.

Tabela Tabela
Date personale angajaţi Deplasări angajaţi
legătura „unu la mulţi”
Cod persoană Cod persoană
1 ∞ Data deplasării
Nume persoană
Adresa Locul deplasării
Cod funcţie ocupată Costul transportului
Data angajării Diurna
… …
Dacă în tabela Date personale angajaţi există doar o singură înregistrare (rând) pentru
un angajat, în tabela Deplasări angajaţi pot exista atâtea înregistrări (rânduri) pentru fiecare
angajat câte deplasări a făcut.

Un conţinut fictiv al acestor tabele precum şi legăturile dintre ele ar putea fi:

Cod Nume Adresa … Cod Data Locul …


persoană persoană persoană deplasării deplasării
0025 Popescu Ion … … 0025 10.02.2001 Iaşi …
0033 Stan Petre 0025 15.03.2001 Sibiu
0123 Vasile Emil 0010 20.05.2001 Constanţa
… 0033 28.07.2001 Braşov
… 0033 01.09.2001 Constanţa
… …

3.2.3. Relaţiile „mulţi la unu”


Reprezintă inversul relaţiilor „unu la mulţi”. Dacă în exemplul anterior considerăm tabela
de bază Deplasări angajaţi având ca tabelă corespondentă Date personale angajaţi, atunci
avem de-a face cu un tip de relaţie „mulţi la unul”. Mai multor deplasări executate şi înregistrate
în tabela Deplasări angajaţi le poate corespunde doar un singur angajat (Cod persoană).
Câmpul (cheia) de legătură rămâne acelaşi Cod persoană.

Cod Data Locul … Cod Nume Adresa …


persoană deplasării deplasării persoană persoană
0025 10.02.2001 Iaşi … 0025 Popescu Ion … …
0025 15.03.2001 Sibiu 0033 Stan Petre
0010 20.05.2001 Constanţa 0123 Vasile Emil
0033 28.07.2001 Braşov …
0033 01.09.2001 Constanţa …
… …
12 Lector univ. drd. Mihai Gavotă - Baze de date

3.2.4. Relaţiile „mulţi la mulţi”


Acesta este un tip de relaţii complexe care nu sunt implementate în mod direct în
sistemele de gestiune a bazelor de date relaţionale.
În etapa de analiză a unei activităţi putem desprinde şi cazuri în care unei înregistrări
(rând) dintr-o tabelă îi pot corespunde mai multe înregistrări (rânduri) dintr-o altă tabelă, în
acelaşi timp însă, unei înregistrări (rând) din cea de-a doua tabelă îi pot corespunde mai multe
înregistrări (rânduri) din prima tabelă. De exemplu, dacă identificăm două tabele: Tabela Date
personale angajaţi şi Tabela Documentaţie tehnică şi analizăm relaţiile dintre ele vom
observa că un angajat poate deţine mai multe documentaţii tehnice iar o documentaţie tehnică
este posibil să fi fost consultată de mai mulţi angajaţi ai firmei. Spunem în acest caz că între cele
două tabele există o relaţie „mulţi la mulţi”.

Tabela legătura „mulţi la mulţi”


Tabela
Date personale angajaţi ∞ ∞ Documentaţie tehnică
Cod persoană Cod documentaţie
Nume persoană Denumire
Adresa Data apariţiei
Cod funcţie ocupată Autorul
Data angajării Domeniul de activitate
… …
Un conţinut fictiv al acestor tabele precum şi legăturile dintre ele ar putea fi:

Cod Nume Adresa … Cod Denumire Data …


persoană persoană docum apariţiei
0025 Popescu Ion … … entaţie
0033 Stan Petre 782 Documentaţie 1 15.01.1997 …
0123 Vasile Emil 783 Documentaţie 2 01.02.1985
… 784 Documentaţie 3 12.12.2000
… 785 Documentaţie 4 11.11.1992
… … … …
Acest tip de relaţie între tabele nu este implementat în mod direct ci se rezolvă prin
introducerea unei tabele suplimentare. Această nouă tabelă se află în relaţie de „mulţi la unu” cu
fiecare din tabelele iniţiale.
Pentru exemplul nostru tabela intermediară (de intersecţie) poate fi Tabela
Documentaţie consultată având următorul conţinut şi relaţii cu tabelele iniţiale:

Tabela Tabela Tabela


Date personale Documentaţie Documentaţie
angajaţi consultată tehnică
Cod persoană Cod documentaţie Cod documentaţie
Nume persoană Cod persoană ∞ 1 Denumire
1 ∞ Data apariţiei
Adresa Data împrumutului
Cod funcţie ocupată Data înapoierii Autorul
Data angajării Domeniul de
… activitate…
BAZE DE DATE RELAŢIONALE 13

Se spune că relaţia „mulţi la mulţi” se „sparge” în două relaţii „unu la mulţi” pentru
aceasta folosindu-se o tabelă intermediară (de intersecţie). Această tabelă este astfel aleasă încât
să conţină o cheie primară formată din cheile primare ale tabelelor iniţiale şi alte informaţii
specifice intersecţiei lor.

3.3. REGULI DE NORMALIZARE


La proiectarea structurii unei baze de date relaţionale trebuie stabilite în primul rând
tabelele în care vor fi memorate datele şi relaţiile dintre tabele. Acesta este un proces iterativ,
tabelele, cheile primare de identificare a înregistrărilor, relaţiile dintre tabele sunt stabilite într-o
formă iniţială după care, prin rafinare succesivă se ajunge la forma definitivă.
Identificarea iniţială a tabelelor şi a câmpurilor acestora se face prin studierea
documentelor primare şi a rapoartelor care sunt vehiculate în cadrul activităţii ce se doreşte a fi
informatizată. Acestei structuri iniţiale îi sunt aplicate un set de reguli care reprezintă paşii de
obţinere a unei baze de date normalizate.
Algoritmul de normalizare a bazelor de date relaţionale precum şi paşii acestuia au fost
descrişi de către Dr.E.F.Cobb în lucrarea „Further Normalization of the Data Base Relational
Model” apărută în 1972.
Voi prezenta aceste reguli utilizând un exemplu concret.
Considerăm că în urma analizei documentului primar Factură dorim să stabilim o
structură de tabele care să ne permită stocarea informaţiilor conţinute de document (factură) şi
obţinerea unor situaţii sintetice privind evidenţa sumelor facturate pe produse, pe clienţi, pe
anumite perioade de timp. În acest scop alegem într-o primă fază informaţiile care ne interesează
şi considerăm că vor fi stocate într-o singură tabelă numită Facturi.

Tabela Într-o primă formă tabela Facturi ar putea arăta ca în figura


Facturi alăturată. Ea are cheia primară formată din câmpul Număr factură.
Acest câmp are o valoare unică pentru fiecare factură emisă.
Număr factură Observăm că în tabelă există câmpul Adresă client care
Data facturării cuprinde informaţii despre ţara, localitatea, strada şi numărul unde
Denumire client se află firma clientului. Dacă vom considera că este de interes o
Adresa client evidenţă a sumelor facturate pe ţări sau chiar localităţi, vor pune în
Bancă client locul câmpului Adresă client trei câmpuri distincte : Ţară client,
Număr cont client Localitate client şi Adresă client uşurând în acest fel interogările
Delegat referitoare la sumele facturate pe ţări şi localităţi.
Cod produs Mai observăm din această tabelă că grupul informaţiilor care
Denumire produs se referă la un produs se repetă cu valori diferite pe o factură de
Unitatea de măsură atâtea ori câte produse diferite sunt trecute pe factură.
Cantitate Câmpurile Total valoare factură şi Total valoare TVA se
Preţ unitar referă la întreaga factură şi reprezintă suma valorilor
Valoare corespunzătoare pentru toate produsele trecute pe factură.
Valoare TVA
Total valoare factură
Total valoare TVA

1. Prima regulă de normalizare este aceea de a crea tabele plate, tabele ce nu conţin
grupuri de câmpuri care să se repete pentru o valoare unică a cheii de identificare a înregistrării
(cheia primară). În cazul nostru, deoarece pentru o factură putem avea unul sau mai multe
14 Lector univ. drd. Mihai Gavotă - Baze de date

produse care sunt înscrise pe aceasta, vom separa într-o altă tabelă informaţiile legate de produse,
fiecare dintre aceste informaţii fiind determinată în mod unic de numărul facturii şi codul
produsului.
În prima formă normală avem tabelele:

Tabela Tabela
Facturi Linii facturi
Număr factură Număr factură
Data facturării Cod produs
Denumire client Denumire produs
Adresa client Unitatea de măsură
Bancă client Cantitate
Număr cont client Preţ unitar
Delegat Valoare
Total valoare factură Valoare TVA
Total valoare TVA

Între tabela Facturi şi tabela Linii facturi există o relaţie de „unu la mulţi” (1-∞), adică
unui număr unic de factură îi pot corespunde unul sau mai multe produse care sunt memorate ca
înregistrări în tabela Linii facturi. Cheia de identificare (cheia primară) în această tabelă este o
cheie complexă, adică formată din două câmpuri: Număr factură şi Cod produs.

2. A doua regulă de normalizare cere să analizăm tabelele aflate în prima formă


normală şi să vedem dacă fiecare câmp al acestora reflectă (caracterizează) valoarea cheii
primare în totalitatea ei. Se impune ca atunci când avem chei complexe să nu avem câmpuri care
să caracterizeze doar o parte componentă a cheii primare.
În cazul nostru, observăm câmpurile Denumire produs şi Unitatea de măsură din tabela Linii
facturi, ce caracterizează un anumit produs şi nu sunt diferite pentru acelaşi produs de la o
factură la alta. Spre deosebire de ele, celelalte câmpuri ale tabelei se referă la cantitatea, preţul şi
valoarea produsului numai pentru factura respectivă. Pe o altă factură este posibil să se vândă o
altă cantitate din acelaşi produs la un alt preţ.

Tabelele în cea de a doua formă normală devin:

Tabela Tabela Tabela


Facturi Linii facturi Produse
Număr factură Număr factură Cod produs
Data facturării Cod produs Denumire produs
Denumire client Cantitate Unitatea de măsură
Adresa client Preţ unitar
Bancă client Valoare
Număr cont client Valoare TVA
Delegat
Total valoare factură
Total valoare TVA
BAZE DE DATE RELAŢIONALE 15

Legătura dintre tabela Linii facturi şi tabela Produse se face prin intermediul câmpului
Cod produs prezent în ambele. În tabela Produse acesta este cheia primară deoarece valoarea
codului identifică în mod unic fiecare produs, iar în tabela Linii facturi acesta este câmp
component al cheii primare şi totodată cheie externă de legătură cu tabela Produse. Între tabela
Linii facturi şi tabela Produse există o relaţie „mulţi la unu” (∞-1), adică fiecare produs înscris
pe o factură trebuie să existe în nomenclatorul de produse al firmei.

3. A treia regulă de normalizare cere ca toate câmpurile din tabele să fie independente
între ele. Analizând câmpurile din tabelele aflate în ce-a de-a doua formă normală, trebuie să nu
existe câmpuri care să fie dependente de alte câmpuri care nu fac parte din cheia primară.
În cazul nostru, analizând tabela Facturi, observăm că multe din câmpuri, şi anume: Adresa
client, Bancă client şi Număr cont client depind de câmpul Denumire client. Deci, fiecărui
client îi corespund o adresă, o bancă şi număr de cont unice. În schimb, delegatul din partea
clientului poate fi diferit pentru fiecare factură.
Câmpurile Valoare şi Valoare TVA depind de câmpurile cantitate, preţ şi de un procent
fix de TVA. Fiind câmpuri care se pot calcula în orice moment ele vor fi eliminate din tabelă
deoarece constituie informaţie memorată redundant.
Aplicăm ce-a de-a doua regulă de normalizare prin extragerea acestor informaţii, care depind de
un câmp aflat în afara cheii primare, într-o altă tabelă.

Structura de tabele devine:

Tabela Tabela Tabela Tabela


Facturi Clienţi Linii facturi Produse
Număr factură Denumire client Număr factură Cod produs
Data facturării Adresa client Cod produs Denumire produs
Denumire client Bancă client Cantitate Unitatea de măsură
Delegat Număr cont client Preţ unitar
Total valoare
factură
Total valoare
TVA

Legătura dintre tabela Facturi şi tabela Clienţi se face prin intermediul câmpului
Denumire client existent în ambele. Acesta este cheie unică de identificare a înregistrărilor din
tabela Clienţi şi cheie externă de legătură în tabela Facturi. Între aceste două tabele există o
relaţie de „mulţi la unu” (∞-1), adică toţi clienţii înscrişi pe facturi sunt înregistraţi în mod unic
în tabela Clienţi ce conţine clienţii firmei.

Această a treia formă normală mai poate suferi o serie de rafinări pentru a obţine o
structură performantă de tabele a bazei de date.
Observăm că Denumire client este un câmp în care este înscris un text destul de lung
format dintr-o succesiune de litere, semne speciale (punct, virgulă), spaţii şi numere. Ordonarea
şi regăsirea informaţiilor după astfel de câmpuri este mai lentă şi mai greoaie decât după câmpuri
numerice. Vom introduce din acest motiv un câmp de identificare a clienţilor numit Cod client
care să fie numeric şi care să fie cheia primară de identificare pentru fiecare client. Legătura între
tabelele Clienţi şi Facturi se va face într-un mod mai performant prin acest câmp păstrându-se
acelaşi tip de relaţie între cele două tabele.
16 Lector univ. drd. Mihai Gavotă - Baze de date

O altă observaţie care poate fi făcută în legătură cu tabelele aflate în cea de-a treia formă
normală este aceea că Total valoare factură şi Total valoare TVA sunt câmpuri care ar trebui
să conţină informaţii sintetice obţinute prin însumarea valorii tuturor produselor aflate pe o
factură. Este de preferat ca astfel de câmpuri să fie calculate în rapoarte sau interogări şi nu să fie
memorate în tabelele bazei de date.

În urma aplicării acestor rafinări obţinem o structură performantă a bazei de date,


prezentată în continuare:

Tabela Tabela Tabela Tabela


Facturi Clienţi Linii facturi Produse
Număr factură Cod client Număr factură Cod produs
Data facturării Denumire client Cod produs Denumire produs
Cod client Adresa client Cantitate Unitatea de măsură
Delegat Bancă client Preţ unitar
Număr cont client

Odată ce am stabilit structura de tabele putem alege sistemul de gestiune a bazelor de


date relaţionale (SGBD-ul) pe care să-l folosim ca suport de stocare şi manipulare a datelor. În
cazul nostru alegem MS-Access deoarece acesta pune la îndemâna utilizatorilor finali cele mai
prietenoase instrumente software cu care pot gestiona informaţiile din baza de date.
4. ACCESS 2000

4.1. DE CE ACCESS?
Aşa cum arătat într-un capitol anterior instrumentul de dezvoltare Access este una dintre
componentele principale ale pachetului (suitei) de programe pentru birou MS-Office. Pe lângă
bazele de date relaţionale Access, acesta integrează şi alte componente cum sunt: procesorul de
texte Word, programul de calcule tabelare Excel, agenda de birou Outlook, programul pentru
prezentări Power Point.
Felul în care firma Microsoft a reuşit să realizeze sistemul de operare Windows sub care
funcţionează toate aceste programe precum şi felul în care Microsoft a reuşit să integreze
Microsoft Office Professional 2000 sub Windows 2000, a atras un mare număr de utilizatori şi
dezvoltatori de aplicaţii Windows. Aceasta a determinat ca în prezent pe mai mult de 80 % din
calculatoarele PC din lume să ruleze sistemul de operare Windows împreună cu pachetul de
programe MS-Office.
În lucrarea sa fundamentală „Totul despre Access 2000” Roger Jennings face cunoscut
faptul că Access 2000, a şasea versiune a platformei desktop pentru bazele de date Microsoft,
prin motorul său Jet dezvoltat special, domină în prezent piaţa produselor desktop pentru baze de
date.
Încă din 1998 editorialistul Jesse Berst de la ZDNet scria: „Paradox-ul (un alt SGBD
pentru baze de date relaţionale n.a.) a murit. Nimeni nu mai scrie in dBASE. Programul Access de
la Microsoft a acaparat deja această piaţă.”. Chiar şi FoxPro achiziţionat de Microsoft şi
dezvoltat ulterior ca Visual Fox, a devenit un produs marginal. În prezent există în lume, vândute
cu licenţă, zeci de milioane de copii ale produsului Access.
Uşurinţa proiectării în Access, facilităţile de programare vizuală, performanţele oferite ca
bază de date relaţională şi distribuită, cele de integrare puternică sub Windows (datorate faptului
că este o componentă MS-Office) şi nu în ultimul rând posibilităţile de utilizare în intranet şi în
internet, au făcut ca în ultimii ani acest produs să fie tot mai utilizat ca un instrument de
dezvoltare rapidă a aplicaţiilor ce presupun lucrul cu baze de date, inclusiv în cadrul firmelor
româneşti. În acest sens, este foarte posibil ca viitorii absolvenţi cu studii superioare, indiferent
de specialitate, să lucreze ca utilizatori finali cu baze de date de tip Access sau să facă parte din
echipe mixte de proiectare, configurare şi modificare a aplicaţiilor care vor compune software-ul
sistemului informatic al firmei. Unii dintre ei, în calitate de manageri, trebuie să fie în măsură să
definească cerinţele unor aplicaţii informatice de tipul bazelor de date pe care le vor solicita unor
firme specializate şi tot ei vor fi aceia care vor evalua aplicaţiile realizate.
Având în vedere specificul facultăţii, cele mai potrivite aplicaţii practice care vor face
obiectul acestui curs, vor fi cele din domeniul managementului resurselor umane.
18 Lector univ. drd. Mihai Gavotă - Baze de date

4.2. CE VOR CONŢINE CAPITOLELE URMĂTOARE?


Aceasta este o întrebare firească ce îşi va găsi răspunsul în continuare, prin prezentarea
succintă a temelor care vor face obiectul cursului.

• Prezentare generală a instrumentului software de dezvoltare Access 2000:


o dialogurile principale
o modurile de lucru
o barele de instrumente
o barele de meniu
o lucrul cu vrăjitori (wizards).

• Prezentare generală a principalelor obiecte Access 2000:


o tabelele
o interogările
o formularele
o rapoartele
o macrocomenzile
o modulele
o paginile internet.

• Proiectarea structurii tabelelor şi a sistemului de relaţii dintre acestea:


o câmpurile de date şi proprietăţile acestora
o tipurile de date
o cheile Access şi cheile de indexare
o relaţiile dintre tabele
o introducerea datelor direct în tabele
o consultarea, editarea, sortarea şi filtrarea datelor
o legarea tabelelor, importul şi exportul acestora.

• Crearea şi utilizarea interogărilor:


o crearea interogărilor (queries) simple utilizând vrăjitorii Access
o proiectarea interogărilor prin Query Design
o utilizarea expresiilor şi operatorilor în interogări
o interogările cu parametrii
o crearea interogărilor de tip Crosstab cu un wizard special Access
o interogările speciale utilizate pentru ştergerea (delete), adăugarea (append) şi
actualizarea (update) datelor.

• Lucrul cu formulare (forms) şi rapoarte (reports):


o crearea formularelor cu Form Wizard
o proiectarea formularelor în modul de lucru Form Design
o lucrul cu subformulare (subforms)
o crearea rapoartelor cu Report Wizard
o proiectarea rapoartelor în modul de lucru Report Design.

• Lucrul cu hiperlegături şi generarea paginilor Web din tabele şi interogări:


o tipul de date Hyperlink Access
o generarea paginilor Web statice şi dinamice.
ACCESS 2000 19

• Administrarea şi asigurarea securităţii bazelor de date Access:


o partajarea bazelor de date şi a obiectelor acestora între utilizatori
o grupuri de lucru şi tipuri de utilizatori
o securitatea bazelor de date Access, autentificarea utilizatorilor şi acordarea
permisiunilor
o compactarea, repararea şi crearea copiilor de siguranţă pentru bazele de date
Access 2000.

Access 2000 este în primul rând un instrument software de dezvoltare vizuală a


aplicaţiilor ce presupun lucrul cu bazele de date. El pune la dispoziţia dezvoltatorilor „vrăjitori”
puternici care, în mare parte, reuşesc să genereze codurile VBA (Visual Basic for Applications)
şi SQL (Structured Query Language) necesare acestor aplicaţii.
Sub Access 2000, Microsoft nu mai recomandă utilizarea macrocomenzilor, acestea au
fost menţinute doar pentru compatibilitate cu versiunile mai vechi de Access. Microsoft propune
înlocuirea acestora cu coduri generate de „vrăjitori” în VBA şi previne dezvoltatorii că în
versiunile viitoare este posibil ca Access-ul să nu mai conţină macrocomenzi.
Modulele se bazează pe scrierea de cod VBA şi presupun cunoaşterea acestui limbaj. De
regulă, generarea macrocomenzilor şi scrierea codurilor VBA şi SQL sunt specifice
programatorilor cu experienţă care cunosc aceste limbaje.
Din aceste considerente şi având în vedere că Access-ul este un instrument de dezvoltare
rapidă a aplicaţiilor bazat pe programarea vizuală şi pe lucrul cu „vrăjitori” specializaţi pentru
generarea interactivă a codurilor, acest curs nu şi-a propus studiul limbajelor VBA şi SQL. Prin
urmare macrocomenzile şi modulele nu vor fi tratate.

4.3. INSTRUMENTUL SOFTWARE ACCESS 2000


După lansarea în execuţie din meniul Start al sistemului Windows sau dintr-un shortcut
special, programul Access 2000 prezintă următorul dialog:
20 Lector univ. drd. Mihai Gavotă - Baze de date

Se observă ca element central o casetă de dialog prin intermediul căreia utilizatorul poate
opta pentru:

1. deschiderea unei baze de date deja existente (exemplu Northwind – o bază de date model
care se poate instala odată cu programul Access)
2. deschiderea unei baze de date noi (Blank Access database)
3. crearea imediată a unei baze de date sau a unor obiecte ale acesteia, utilizând vrăjitorii
(Access database wizards, pages, and projects).

1. Dacă se optează pentru Open an existing file (opţiunea bifată implicit), se poate selecta
baza de date (aplicaţia) dorită. Aceasta se va încărca în memorie şi eventual se va
lansa în execuţie (dacă este setată în acest sens). De exemplu, dacă se alege Northwind
şi se confirmă prin <OK> va fi afişat următorul ecran de start al aplicaţiei:

Confirmând în continuare prin <OK> va apărea ecranul principal de prezentare a bazei de


date prin intermediul căruia putem avea acces la obiectele acesteia (Tables, Queries, Forms,
Reports, Pages, Macros, Modules). Se observă că în mod implicit sunt selectate tabelele bazei de
date (Tables).
ACCESS 2000 21

2. Dacă se optează pentru deschiderea unei baze de date noi (Blank Access database) se
va lansa un dialog prin intermediul căruia suntem invitaţi să alegem un nume şi un folder unde se
va crea baza de date:

În mod implicit ni se propune numele db1.mdb pentru baza de date şi folder-ul My


Documents ca loc în care să se salveze. Acesta este de fapt un dialog standard Windows 2000 de
tipul File Open / Save care apare utilizatorilor de câte ori o aplicaţie Windows solicită alegerea
acestor doi parametrii (nume fişier şi folder). Presupunând că acceptăm parametrii impliciţi şi
confirmăm prin apăsarea butonului <Create> vom obţine ecranul de proiectare (prezentare) a
unei baze de date noi (fără tabele şi fără nici un alt obiect prefabricat). În continuare vom putea
crea obiectele dorite selectând tipul de obiect şi apăsând butoanele <Open> sau <Design>.
Ecranul care va apărea este:
22 Lector univ. drd. Mihai Gavotă - Baze de date

3. Dacă optăm pentru Access database wizards, pages, and projects se va lansa un dialog
prin intermediul căruia putem selecta wizard-ul specializat pentru tipul de aplicaţie ales (ne sunt
prezentate un număr de aplicaţii tipice):

Permanent, în funcţie de modul de lucru şi contextul în care ne aflăm, programul Access


ne pune la dispoziţie anumite meniuri contextuale (accesibile prin apăsarea butonului din dreapta
al mouse-ului) sau bare de meniuri şi de instrumente speciale posibil de utilizat în orice moment.
O tratare exhaustivă a acestora nu este necesară şi nici chiar posibilă deoarece Microsoft a lăsat
liberă utilizatorilor posibilitatea de a particulariza aceste bare şi deci configuraţiile meniurilor şi
butoanelor pot diferi de la un calculator la altul. Sub Access, la fel ca sub oricare alt program
Office (Word, Excel, Power Point), este important să învăţăm să navigăm utilizând la maximum
interactivitatea sistemului oferită prin intermediul asistenţilor, a help-urilor senzitive şi a
mesajelor tooltip ce apar pe un fond galben deschis, atunci când întârziem cu prompter-ul mouse
asupra unui buton.
ACCESS 2000 23

Iată un exemplu de bare de meniuri şi de unelte care apar atunci când ne aflăm în modul
de lucru proiectare (Design) al unei tabele sub Access:

Oricare dintre obiectele Access se pot afla în două moduri de lucru:


• modul de lucru proiectare - Design View
şi
• modul de lucru lansare care în funcţie de obiectul activ ar putea fi:
o Datasheet View (pentru tabele şi interogări)
o Form view (pentru formulare)
o Print Preview (pentru rapoarte)
o Page View (pentru pagini internet)
o Run (pentru interogări şi macrocomenzi).

4.4. O PREZENTARE GENERALĂ A PRINCIPALELOR OBIECTE ACCESS 2000


În capitolul anterior am văzut că bazele de date Access apar sub forma unor fişiere având
extensia .mdb. Specific acestora este faptul că toate obiectele (tabele, interogări, formulare,
rapoarte, macrocomenzi, module şi pagini internet) sunt memorate împreună în cadrul aceluiaşi
fişier .mdb. Astfel, spre deosebire de alte baze de date în care obiectele apar ca fişiere separate,
programul Access obţine un plus de performanţă prin posibilitatea pe care o are de a gestiona
intern obiectele bazei de date. Efectul final se materializează prin: creşterea vitezei de acces la
date şi de rulare a obiectelor, mărirea securităţii bazei de date şi printr-o mai simplă administrare,
compactare, reparare şi criptare a datelor.
Cu excepţia datelor putem numi obiecte toate elementele din Access. Astfel, sunt obiecte:
tabelele, formularele, interogările, rapoartele, macrocomenzile, paginile internet, modulele, dar şi
controalele din componenţa formularelor şi rapoartelor. Aplicaţia ca atare constituie obiectul
Application care face parte din structura Access Object Model. Obiectele de acces la date poară
numele de Data Access Objects (DAO).
24 Lector univ. drd. Mihai Gavotă - Baze de date

Tabelele (tables)
Conţin datele („materia primă”) fără de care nu poate fi de imaginat o bază de date.
Tabelele reprezintă în acest sens poate cel mai important obiect al oricărei baze de date. Datele
sunt memorate în tabele sub forma rândurilor (numite şi înregistrări sau records) şi a coloanelor
(numite câmpuri sau fields).
Un element important al bazei de date îl reprezintă modul în care sunt legate tabelele
între ele, adică sistemul de relaţii (relatioships).

Interogările (queries)
Constituie întrebări stocate adresate bazei de date. Ele sunt utile pentru a selecta anumite
înregistrări conform unor criterii, pentru a le grupa, sorta, şterge sau actualiza. Sub Access
interogările pot prelucra şi afişa datele selectate din maxim 16 tabele. Rezultatele unei interogări
(query) se pot afişa pe cel mult 255 de coloane. Interogările au la bază un cod generat în limbajul
de interogare SQL.

Formularele (forms)
Sunt obiectele folosite pentru interacţiunea cu utilizatorii, cu datele din tabele, din
interogări sau rezultate în urma lansării unor proceduri SQL sau VBA (Visual Basic for
Applications). Formularele pot fi utilizate pentru vizualizarea, adăugarea sau modificarea datelor
sau pentru lansarea anumitor dialoguri de interacţiune cu utilizatorul. Tot ca formulare sunt
proiectate şi panourilor de comandă (switchboards) prin intermediul cărora utilizatorii pot naviga
în interiorul unei aplicaţii pentru a vizualiza alte formulare, rapoarte sau interogări.
Formularele pot conţine subformulare dar şi alte obiecte şi controale Access sau
Windows care personalizează aplicaţia. De exemplu ele pot conţine: butoane, etichete, câmpuri
de editare, elemente grafice, sunete sau clipuri video, etc.

Rapoartele (reports)
Reprezintă situaţiile de ieşire disponibile utilizatorilor finali. Ele afişează într-un anumit
format standard sau particular rezultatele anumitor interogări sau chiar datele din tabele. De cele
mai multe ori rapoartele sunt proiectate pentru a afişa datele conform unor situaţii finale standard
(de exemplu: balanţa şah contabilă, jurnalul de vânzări sau cel de cumpărări, jurnalul de casă,
situaţiile conturilor bancare, centralizatorul stocurilor, etc).
La fel ca şi formularele, rapoartele pot conţine funcţii VBA şi anumite obiecte care să
facă posibilă afişarea câmpurilor din tabele sau interogări în formatele dorite. Obiectele cel mai
frecvent utilizate sunt etichetele, câmpurile de afişare, elementele grafice. Rapoartele pot conţine
şi subrapoarte.
Informaţia afişată prin rapoarte sau prin formulare poate fi structurată şi grupată pe mai
multe secţiuni: title, header, detail, footer. În capitolele următoare vor fi detaliate aceste noţiuni.

Macrocomenzile (macros)
Sunt proceduri care automatizează de regulă anumite operaţii sau evenimente cum ar fi:
lansarea automată a unei comenzi din bara de meniuri, clic-ul pe un anumit buton, lansarea în
execuţie a unor forme, interogări sau rapoarte, etc. Macrocomenzile au fost menţinute în Access
2000 doar pentru compatibilitate cu versiunile anterioare. Microsoft recomandă înlocuirea
ACCESS 2000 25

acestora cu cod scris în VBA deoarece este posibil ca versiunile viitoare de Access să nu mai
conţină macrocomenzi.

Modulele (modules)
Conţin proceduri (secvenţe de cod) scrise în VBA (Visual Basic for Applications).
Modulele pot fi module de clasă şi module standard. Modulele de clasă pot apărea în cadrul
formelor sau rapoartelor atunci când se tratează prin intermediul unor instrucţiuni (cod VBA)
anumite evenimente (de exemplu evenimentul clic cu mouse-ul pe un buton). Modulele standard
conţin acele proceduri sau funcţii personalizate disponibile întregii aplicaţii. Ele sunt scrise de
programatorii de aplicaţie şi se află grupate în modules.

Paginile internet (pages)


Sunt pagini Web care mijlocesc prin intermediul unui server, afişarea în internet a datelor
unei aplicaţii Access 2000. Ele mai sunt numite şi pagini DAP (Data Access Pages). Paginile
internet pot fi statice sau dinamice şi pot fi consultate prin intermediul browser-ului Internet
Explorer 5.x. Cei care le consultă trebuie să aibă instalat MS-Office 2000.
5. TABELELE ŞI SISTEMUL DE RELAŢII

Aşa cum am arătat în capitolul anterior tabelele reprezintă „materia primă” a oricărei
baze de date. Tabelele bazelor de date, la fel ca oricare alte tabele, au o structură dată de tipurile
şi dimensiunile coloanelor care le compun. Într-o altă exprimare, în limbajul uzual se spune că
oricărui tabel îi este specific un cap de tabel.
Deci, orice tabelă are linii şi coloane şi conţine datele organizate conform unei anumite
structuri. În limbajul bazelor de date coloanele se numesc câmpuri (fields). Fiecare coloană
reprezintă un câmp (field) cu o denumire unică, de un anumit tip (şir de caractere, numeric, dată
calendaristică, etc), având o dimensiune prestabilită, care îl determină să ocupe în memorie un
anumit număr de octeţi în funcţie de tipul câmpului. Rândurile (liniile) tabelelor se numesc
înregistrări (records). Evident spaţiul de memorie ocupat de o tabelă este funcţie de numărul de
înregistrări şi de câmpuri ale acesteia. Pot exista şi tabele vide, adică fără nici o înregistrare.
Aceste tabele au doar structură, configurată în funcţie de numărul, tipul şi dimensiunea
câmpurilor. Iniţial, după crearea structurii, toate tabele sunt vide. Ele mai pot deveni vide şi în
urma unei operaţiuni de ştergere a tuturor înregistrărilor conţinute.
Tabelele pot prezenta datele (înregistrările) ordonate sau filtrate conform unor criterii
(ex.: sortate alfabetic după numele persoanelor, în ordinea crescătoare (ascending) a codurilor
sau în ordinea descrescătoare (descending) a mediilor, filtrate numai pentru persoanele născute
după o anumită dată şi/sau numai pentru persoanele al căror nume începe cu litera „M”, etc).
Deci, tabelele pot conţine datele ordonate, indexate după anumite câmpuri numite chei de acces
sau chei de index. Orice tabelă poate avea câmpuri tip cheie primară de acces (evidenţiate într-
un mod special sub Access prin plasarea unei pictograme cu o imagine de cheie în dreptul
acestora) şi opţional câmpuri desemnate pentru cheile de index. Chiar dacă pot exista şi tabele
fără cheie primară de acces şi fără chei de index, se recomandă ca fiecare tabelă să conţină măcar
un câmp cheie primară. Având această organizare viteza de acces la date este mai mare şi deci
creşte performanţa de procesare a bazei de date.
Proiectarea structurii tabelelor şi a sistemului de relaţii dintre câmpurile acestora este o
operaţiune foarte importantă, de ea depinzând în final performanţa globală a bazei de date. În
această etapă de analiză trebuie avute în vedere regulile de normalizare a bazei de date. Dintre
cerinţele procesului de normalizare amintim:

• câmpurile tabelelor să fie atomice, adică datele conţinute de către acestea să fie
diferenţiate în câmpuri distincte astfel încât să răspundă necesităţilor de interogare;
• dacă există grupuri de câmpuri care se repetă pentru aceeaşi valoare a cheii primare
acestea vor alcătui o tabelă separată;
• toate câmpurile dintr-o tabelă trebuie să se refere la cheia primară în totalitatea ei;
• toate câmpurile tabelelor să fie independente unele faţă de altele, deci între câmpurile
aceleiaşi tabele nu trebuie să existe relaţii ascunse.

Prin puterea sa ca instrument software, Access-ul 2000 oferă oricărui utilizator (chiar fără
cunoştinţe avansate de programare) posibilitatea de a crea şi utiliza cu uşurinţă tabele şi
interogări dar nu poate substitui lipsa de experienţă şi de profunzime a analizelor acestora, nu
poate lega singur tabelele, nu poate normaliza automat baza de date şi nu poate corecta greşelile
din etapa de analiză. Iată câteva argumente care pledează pentru faptul că cel mai indicat este ca
TABELELE ŞI SISTEMUL DE RELAŢII 27

etapa de analiză să fie lăsată în seama specialiştilor mai ales atunci când este vorba de probleme
complexe.

5.1. TIPURILE DE DATE ACCESS 2000


Crearea unei tabele presupune în general două etape distincte: definirea structurii tabelei
şi încărcarea acesteia cu date. Definirea structurii tabelei constă în stabilirea câmpurilor
(coloanelor) ca denumire, tip de date şi dimensiune (în funcţie de valorile pe care le vor conţine).
Access 2000 permite utilizarea următoarelor tipuri de date pentru câmpurile tabelelor:

Tip de date Caracteristici


Text Este alfanumeric, poate conţine maxim 255 de caractere
Memo Este analog tipului de date text cu deosebirea că poate conţine
maxim 65.535 caractere. Câmpurile de tip memo nu pot fi
câmpuri cheie.
Number Reprezintă tipul de date numerică. În funcţie de tipurile de date
numerice (mărimea maximă a numerelor) memorate în aceste
câmpuri dimensiunea lor (field size) poate fi:
Tip Domeniu de valori numerice ce pot fi Octeţi
memorate ocupaţi
Byte 0-255 (nu permite zecimale) 1
Integer -32.768 – 32.767 (nu permite zecimale) 2
Long -2.147.483.648 - 2.147.483.647 4
Integer (nu permite zecimale)
Single -3,4 * 1038 - 3,4 * 1038 4
(permite maxim 15 zecimale)
Double -1,797 * 10308 - 1,797 * 10308 8
(permite maxim 15 zecimale)
Currency -922.337.203.685.477,5808 - 8
922.337.203.685.477,5808
Decimal -1028 – 1028 12
(permite maxim 28 zecimale)

Formatul pentru acest tip de date poate fi:


Denumire format Exemplificarea afişării
General Number 1215,9
Currency $9876,2515
Fixed 876,25
Standard 1.2345.345,95
Percent 99.15 %
Scientific 1,123E+05
AutoNumber Este un câmp numeric de tipul Long Integer, util pentru
incrementarea automată cu +1 pentru fiecare înregistrare nouă a
valorii codurilor numerice unice alocate câmpurilor de tip cheie
de acces care se recomandă să însoţească orice tabelă.
Yes / No Este un câmp de tip logic (da / nu sau adevărat / fals). Nu poate fi
un câmp cheie de acces.
28 Lector univ. drd. Mihai Gavotă - Baze de date

Tip de date Caracteristici


Formatul pentru acest tip de date poate fi:
Denumire format Exemplificarea afişării
Yes / No Yes sau No
True / False True sau False
On / Off On sau Off
None -1 sau 0
Currency Reprezintă un câmp special recomandat pentru a fi utilizat în
operaţiunile financiare care presupun lucrul cu anumite monede
şi pentru care se cere un format special cu 4 zecimale util în
eliminarea erorilor de rotunjire.
Data / Time Este tipul de câmp utilizat pentru memorarea datelor de tip dată
sau timp. Afişarea acestuia este diferită în funcţie de ţara / limba
utilizate de sistemul Windows. Exemplificările curente sunt
pentru limba engleză USA.
Formatul acestui tip de date poate fi:
Denumire format Exemplificarea afişării
General Date 12/28/2001 5:15:20 PM
Long Date Saturday, August 18, 2001
Medium Date 18-Aug.2001
Short Date 8/18/2001
Long Time 9:15:00 AM
Medium Time 1,123E+05
Short Time 15:00
OLE Object Object Linked Embedded poate fi un document Word, o foaie de
calcul Excel, un obiect grafic, un sunet sau un videoclip. Acest
obiect poate avea orice mărime şi nu este limitat decât de
mărimea spaţiului liber disponibil pe hard-disc.
Hyperlink Este un câmp special care poate conţine adrese ale unor
documente din cadrul paginilor Web sau adrese de e-mail.
Adresele memorate în aceste câmpuri sunt afişate într-un mod
similar cu cel în care apar în browser-ul internet. Un clic cu
mouse-ul pe conţinutul unui astfel de câmp determină lansarea
browser-ului şi deplasarea automată la acea adresă Web sau
lansarea clientului e-mail implicit presetat automat pentru a
trimite un mesaj la adresa de e-mail din câmp.
Lookup Wizard Permite alegerea unei valori dintr-o altă tabelă prin intermediul
unor obiecte de tip listă derulantă (list box şi combo box).

5.2. CREAREA TABELELOR


Access 2000 pune la dispoziţia proiectanţilor de aplicaţii trei metode utile pentru crearea
tabelelor. Acestea sunt:

1. Create table in Design view (crearea tabelei în modul de proiectare „Design view” )
2. Create table by using wizard (crearea tabelei utilizând „vrăjitorul”)
3. Create table by entering data (crearea tabelei chiar în momentul introducerii datelor).
TABELELE ŞI SISTEMUL DE RELAŢII 29

Cele trei metode sunt evidenţiate în următorul ecran care apare după selectarea obiectelor
Tables prin apăsarea butonului de comandă specific.

Cea mai des utilizată metodă este prima - Create table in Design view, care odată
selectată şi punctată prin <Enter> sau dublu clic ne deplasează în aceeaşi machetă de proiectare
ce apare şi la apăsarea butonului .
În următoarea figură se poate vedea macheta de proiectare disponibilă în momentul
creării tabelei Date personale angajaţi (tabelă care a mai fost prezentată într-un capitol anterior,
atunci când s-a discutat relaţia „unu la mulţi”).
30 Lector univ. drd. Mihai Gavotă - Baze de date

Numele câmpurilor se înscriu prin tastarea acestora în coloana Field Name iar tipul de
dată se selectează prin intermediul unei liste (control combo box) care apare atunci când se
execută un clic în linia cu câmpul dorit, în dreptul coloanei Data Type.

Iată controlul combo box disponibil când se


alege tipul de dată pentru câmpul data angajarii.
Evident s-a ales tipul de dată Date / Time.
În machetă se mai observă câmpul cod
persoana care este un câmp tip cheie de acces –
Primary Key. Acest câmp are în dreptul lui o
pictogramă cheie care a fost selectată anterior printr-un
clic dat în bara de instrumente pe butonul conţinând
acelaşi simbol. Câmpul cod persoana se mai numeşte şi
cheie internă.
Structura tabelei mai conţine şi câmpurile nume
persoana şi adresa în care se vor memora date de tipul
Text. Câmpul cod functie se mai numeşte şi cheie
externă şi este un câmp de legătură către o altă tabelă numită Nomenclator functii având o
structură foarte simplă ce va fi prezentată în continuare.

Se observă că această tabelă conţine doar trei câmpuri:


cod functie care aici este cheie de acces primară,
denumire functie – un câmp de tip Text ce va conţine
denumirea în clar a funcţiilor ocupate de angajaţi şi cod
categorie functie – o cheie externă care va fi utilă
pentru crearea unei legături către o altă tabelă:
Nomenclatorul categoriilor de functii. Dimensiunea
aleasă (Field Size) pentru câmpul cod categorie functie
este de tipul byte. S-a ales tipul numeric byte deoarece
s-a considerat că nu este posibil să existe mai mult de
255 de categorii de funcţii. În acest fel s-a obţinut o
economie de memorie datorată faptului că tipul de dată
byte ocupă doar un octet (byte) de memorie.

Structura tabelei Nomenclatorul categoriilor de functii se poate vedea în următoarea


figură:

Nomenclatorul categoriilor de functii este o tabelă


secundară din care vom extrage la nevoie doar denumirea
categoriei funcţiei ocupate de un angajat (ex.: director, şef
de departament, şef de birou, analist, operator contabil,
operator financiar, secretar etc). La capitolul referitor la
interogări (queries) se va exemplifica lucrul cu această
tabelă.
TABELELE ŞI SISTEMUL DE RELAŢII 31

Aşa cum am arătat la începutul subcapitolului, pe lângă metoda Design View, Access
2000 mai pune la dispoziţia utilizatorilor încă două metode utile pentru crearea tabelelor: Create
table by using wizard (crearea tabelei utilizând „vrăjitorul”) şi Create table by entering data
(crearea tabelei chiar în momentul introducerii datelor). În continuare vor fi prezentate pe scurt şi
aceste două metode.
Crearea unei tabele utilizând „vrăjitorul” se face dând dublu-clic pe opţiunea Create table
by using wizard. În urma acestei acţiuni vom obţine o succesiune de dialoguri specializate pentru
crearea unor tabele din domeniile Business sau Personal. Dialogurile se bazează pe anumite
câmpuri predefinite de către Access pentru aceste domenii. Iată succesiunea de dialoguri care vor
apărea dacă se selectează domeniul Business:

Microsoft, atunci când a creat Access 2000, a considerat că este bine să ofere utilizatorilor
şi posibilitatea de a crea o tabelă chiar în momentul introducerii datelor. Aceasta este de fapt a
treia metodă de creare a tabelelor, care devine disponibilă după selectarea opţiunii Create table
by entering data.

După solicitarea Create table by entering data va apărea o macheta de încărcare


exhaustivă a datelor. Este o machetă preformatată pentru 10 coloane (câmpuri) numite Field1,
Field2,…,Field10 şi 21 de rânduri (înregistrări) vide. Această modalitate de lucru presupune că
ulterior, după introducerea datelor în celule, se va solicita metoda de lucru Design View pentru
definirea structurii tabelei (numele câmpurilor, tipurile de date şi proprietăţile acestora). Intrarea
în Design View se poate obţine prin apăsarea primului buton din bara de instrumente (toolbar)
care conţine pictograma unui echer.
32 Lector univ. drd. Mihai Gavotă - Baze de date

Aşa cum se vede în Status bar scrie Datasheet View care este de fapt macheta standard
pusă la dispoziţie de Access pentru încărcarea datelor direct în tabele. Iată de exemplu cum apare
Datasheet View atunci când se încarcă date în tabela Nomenclatorul categoriilor de functii:
TABELELE ŞI SISTEMUL DE RELAŢII 33

Atunci când lucrează în modul de lucru Datasheet View Access pune la dispoziţia
utilizatorilor mai multe facilităţi:

• O bară de instrumente:

prin intermediul cărora:

o se poate comuta în modul da lucru dorit: Design View (echerul) sau Datasheet
View (tabelul)
o se pot salva datele (discheta)
o se pot lista datele la imprimantă sau previzualiza în vederea listării
o se pot consulta datele sortate după valorile anumitor câmpuri (coloane)
o conţinutul tabelei poate fi vizualizat filtrat după anumite criterii
o se pot lansa căutări.

• O bară standard de butoane de navigaţie printre înregistrări:

prin intermediul cărora (în ordine de la stânga la dreapta) se poate obţine:

o deplasarea pe prima înregistrare (înregistrarea numărul 1)


o deplasarea pe o înregistrare anterioară
o se poate vedea numărul înregistrării curente (5 în cazul de faţă) sau se poate
comanda deplasarea pe un alt număr de înregistrare, dacă în locul numărului
curent (ce apare în câmpul de editare) se va înscrie numărul dorit pentru noua
înregistrare (în final, se apasă tasta <Enter>)
o deplasarea pe înregistrarea următoare
o deplasarea pe ultima înregistrare a tabelei
o deplasarea pe un spaţiu special rezervat (marcat prin *) pentru adăugarea unei
înregistrări noi.

• Informarea despre înregistrarea care se editează în acel moment:

este evidenţiată prin intermediul pictogramei care apare în stânga acesteia sub forma unui creion.

• Informarea despre înregistrarea curentă:

este evidenţiată prin intermediul pictogramei care apare în stânga acesteia sub forma vârfului
unei săgeţi orientate spre dreapta.
34 Lector univ. drd. Mihai Gavotă - Baze de date

5.3. SALVAREA TABELELOR


După crearea numelor de câmpuri (Field Name), alegerea tipurilor de date pentru acestea
(Data Type) şi setarea proprietăţilor câmpurilor (Field Properties), se stabilesc câmpurile care
alcătuiesc cheia primară de acces şi eventual alte chei de tip index, ce se pot selecta prin
utilizarea butonului Indexes din toolbar în mod similar cu butonul Primary
Key.
Salvarea tabelelor se realizează prin alegerea opţiunii Save sau Save as din meniul File
aflat în bara de meniuri (Menu bar). În urma acestei acţiuni apare următorul dialog:

Aici se află înscris iniţial un nume


implicit Table1 propus de Access. Peste
acest nume se va înscrie de la tastatură
numele dorit pentru tabel, (Nomenclator
functii) apoi se va confirma prin
apăsarea butonului <OK> sau a tastei
<Enter>.

5.4. PROPRIETĂŢILE CÂMPURILOR

Apar în modul de lucru Design View


disponibil atunci când se creează sau se
modifică structura unei tabele.
Secţiunea Field Properies este plasată în
partea inferioară a dialogului Design View
pentru tabele.
Exemplul din partea stângă prezintă
dialogul Design View pentru tabela
Nomenclatorul categoriilor de functii.

Proprietăţile câmpurilor sunt:

• Field Name - numele câmpului. Poate avea maxim 64 de caractere. Nu sunt admise
caracterele: !.şţ
• Data Type - tipurile de date care pot fi selectate prin alegerea dintr-o listă derulantă (un
control combo box). Acestea pot fi: Text, Memo, Number, Date/Time, Currency,
AutoNumber, Yes/No, OLE Object, Hyperlink, Lookup Wizard.
• Description - poate conţine descrierea câmpurilor.
TABELELE ŞI SISTEMUL DE RELAŢII 35

• Primary Key - simbolul cheie care poate apărea în stânga câmpurilor desemnate a fi chei
primare de acces.
• Field Size - dimensiunea câmpului, stabileşte în funcţie de tipul acestuia cantitatea maximă
de memorie posibil de alocat pentru valoarea unui câmp.
• Format - stabileşte formatul utilizat pentru
afişarea câmpului. De exemplu, pentru
câmpurile de tip numeric (number) acesta
poate fi:

• Precision - precizia este prezentă numai pentru tipul de date Decimal şi defineşte numărul de
cifre care trebuie afişate pentru o valoare numerică. Valoarea implicită este 18 iar cea
maximă 28.
• Scale - apare numai pentru tipul de date Decimal şi stabileşte numărul zecimalelor afişate.
• Decimal Places - specifică numărul zecimalelor afişate pentru tipurile de date Number şi
Currency.
• Input Mask - masca de intrare, specifică modul de afişare a datelor din acest câmp în timpul
editării. Atunci când se face clic în linia acestei proprietăţi apare butonul Builder care
dacă va fi apăsat va prezenta următorul dialog (wizard):

• Caption - este denumirea coloanei (câmpului) care se doreşte să apară înscrisă în capul de
tabel atunci când se lucrează în modul Datasheet.
• Default Value - este valoarea implicită (prestabilită) care va apărea în câmp atunci când este
introdusă o înregistrare nouă şi nu se introduce o valoare explicită.
• Validation Rule - reprezintă o expresie care limitează valorile ce pot fi introduse în
respectivul câmp. Ex.: >10 indică faptul că în acel câmp nu vor putea fi introduse date
numerice < 11.
• Validation Text - poate conţine textul care va fi afişat când operatorul introduce date care nu
respectă regula din Validation Rule.
36 Lector univ. drd. Mihai Gavotă - Baze de date

• Required - este o proprietate care nu permite decât două valori: Yes şi No. Yes arată că nu
este permisă continuarea editării dacă respectivul câmp nu este completat cu date. Valoarea
implicită pentru Required este No, adică sunt permise şi valori vide (Null) pentru acel câmp.
• Allow Zero Length - înseamnă Permite Lungime Zero şi este o proprietate care se aplică
numai câmpurilor de tipul Text, Memo şi Hyperlink. Poate avea doar două valori: Yes şi No.
• Indexed - specifică dacă se va crea un index după acel câmp şi dacă este permis lucrul cu
valori duplicate pentru respectivul câmp în cadrul indexului. Poate avea trei valori: Yes
(Duplicates OK), Yes (No duplicates) şi No. Valoarea implicită este No, adică nu se crează un
index după câmpul respectiv. Această proprietate nu se aplică câmpurilor Memo, OLE Object
şi Hyperlimk.
• New Value - se aplică doar câmpurilor de tip AutoNumber şi arată cum vor fi generate noile
valori pentru acest tip de câmp. Poate avea doar două valori: Increment şi Random.
Increment specifică că o valoare nouă a unui câmp va fi obţinută prin adunarea celei mai
mari valori a câmpului cu +1. Random impune acordarea unor valori noi în mod aleator.

5.5. IMPORTUL ŞI EXPORTUL DATELOR


Meniul File din bara principală de meniuri a bazelor de date Access 2000 oferă două
opţiuni pentru importul sau exportul datelor din/în tabele externe, ale altor baze de date (Access,
dBase, Paradox etc). Aceste opţiuni sunt:

• Get External Data - preluarea de date externe. La selectare Get External Data deschide un
submeniu cu două opţiuni:

1. Import - oferă posibilitatea aducerii datelor existente, din alte tabele externe (ale altor
baze de date) în cadrul unor tabele interne ce vor fi create automat în baza de date curentă
(Access). Presupunând că există o tabelă externă Piese.dbf creată anterior sub dBASE IV,
după importul prin Get External Data, în baza de date curentă va apărea o nouă tabelă
PIESE având numele şi tipurile câmpurilor asemănătoare cu cele din tabela originară
Piese.dbf.
2. Link Tables – asigură legătura cu tabele externe. Access-ul poate lucra atât cu tabele
interne bazelor de date proprii cât şi cu tabele externe, ale altor SGBD-uri, deci cu tabele
care există fizic în afara bazei de date curente (Access). Mergând pe exemplul anterior,
presupunând că există tabela externă Piese.dbf (creată sub dBASE IV) şi că se doreşte
lucrul cu datele din interiorul acesteia dar fără a le importa (în baza de date Access),
atunci există posibilitatea legării tabelei Piese.dbf la baza de date curentă prin opţiunea
Link Tables.

Iată materializate efectele celor două exemple anterioare:

• importul tabelei externe Piese.dbf, care a determinat apariţia între


tabelele bazei de date, a unei tabele noi numită PIESE.
• legătura cu tabela externă Piese.dbf materializată prin apariţia
legăturii tabelei sub forma: . Nefiind permisă existenţa
a două tabele cu acelaşi nume (PIESE) în cadrul unei baze de date,
Access-ul a redenumit automat tabela legată, cu numele PIESE1.
TABELELE ŞI SISTEMUL DE RELAŢII 37

• Export. Această opţiune a meniului File asigură posibilitatea convertirii şi salvării tabelelor
unei baze de date Access sub forma unor tabele specifice altor SGBD-uri. Astfel, dacă de
exemplu se doreşte salvarea datelor unei tabele interne (Access) într-un format specific
dBASE IV, deci într-o tabelă externă .dbf, se va apela la opţiunea Export disponibilă din
meniul File. Să presupunem că dorim „exportul” tabelei interne Date angajati într-o tabelă
externă tip dBASE IV, numită Date angajati.dbf. Procedura de „export” va cuprinde
următorii paşi:

o Selectarea tabelei interne Date angajati şi apelarea opţiunii Export din meniul
File. Va apărea următorul dialog:
38 Lector univ. drd. Mihai Gavotă - Baze de date

o Selectarea dBASE IV (*.dbf) prin intermediul controlului combo box din dreptul
câmpului Save as type.
o Apăsarea butonului Save care va determina apariţia în folder-ul ales pentru
salvare (My Documents în acest exemplu) a următoarelor fişiere: Date
angajati.DBF, Date angajati.INF şi Date angajati.MDX, necesare sistemului
dBASE IV.

În Access 2000 mai există o modalitate foarte utilă prin intermediul căreia pot fi
schimbate datele între obiectele interne Access dar şi între obiectele Access (tables, queries,
câmpuri de editare) şi alte aplicaţii externe. Această posibilitate este oferită de mecanismul
Clipboard.
Lucrul cu Clipboard-ul este posibil de sub meniul Edit, specific oricărei aplicaţii
Windows standard. În meniul Edit există opţiunile Copy, Cut, Paste şi Delete care pot fi utilizate
la fel ca şi sub Word. De exemplu, prin folosirea mecanismul Clipboard sunt posibile: aducerea
datelor selectate dintr-un tabel Word, într-o tabelă Access, copierea unor înregistrări selectate
dintr-o tabelă Access într-o altă tabelă Access internă bazei de date sau într-un tabel Word sau
Excel, copierea unor celule Excel într-una sau mai multe tabele Access, etc.

5.6. RELAŢIILE DINTRE TABELE


În subcapitolul 3.2. în care au fost tratate tipurile de relaţii s-a arătat că între tabelele
bazelor de date pot exista patru tipuri de relaţii: „unu la unu”, „unu la mulţi”, „mulţi la unu” şi
„mulţi la mulţi”. S-a arătat că relaţia „mulţi la mulţi” este un tip de relaţie complexă care nu este
implementată în mod direct în sistemele de gestiune a bazelor de date relaţionale. Acest tip de
relaţie între tabele se rezolvă prin introducerea unei tabele suplimentare care se află într-o relaţie
de „mulţi la unu” cu fiecare dintre tabelele pe care le leagă. Deci, cele trei tipuri fundamentale de
relaţii dintre tabele sunt: „unu la unu”, „unu la mulţi”, „mulţi la unu”.
În continuare va fi prezentat felul în care Access a implementat aceste tipuri de relaţii. În
acest sens, pentru o mai bună înţelegere a relaţiilor dintre tabele, în tabela principală Date
angajaţi care a fost utilizată pentru exemplificări în subcapitolul 3.2, a mai fost inserat un câmp
de legătură (cheie externă) – cod studii şi corespunzător în baza de date a fost creată (adăugată)
o nouă tabelă Nomenclator studii având următoarea structură:

Această tabelă va conţine doar trei


înregistrări utile pentru identificarea
tipului de studii absolvite de către
angajaţi:
cod studii denumire studii
0 fără
1 medii
2 superioare

Câmpul de legătură (cod studii) există şi


în tabela Nomenclator studii dar aici el
este cheie primară.
TABELELE ŞI SISTEMUL DE RELAŢII 39

Pentru a crea / actualiza relaţiile dintre tabelele unei baze de date Access se poate utiliza
opţiunea Relationships din bara principală de meniuri sau butonul corespunzător din bara de
instrumente:

Iată sistemul de relaţii al bazei de date:


40 Lector univ. drd. Mihai Gavotă - Baze de date

Se pune întrebarea: cum au fost realizate legăturile între tabelele bazei de date ?
Va fi exemplificat în continuare algoritmul de creare a legăturii tabelei Date angajaţi cu
tabela Nomenclator studii.

1. Selectarea opţiunii Relationships care va determina apariţia următoarei ferestre:

2. Apăsarea butonului Show table disponibil în bara de instrumente, va


deschide următorul dialog pentru adăugarea unei noi tabele în sistemul de relaţii:

Se selectează şi se adaugă prin


intermediul butonului <Add>,
noua tabelă Nomenclator studii.
TABELELE ŞI SISTEMUL DE RELAŢII 41

3. După apăsarea butonului <Close> de închidere a dialogului anterior, în fereastra


Relationships va apărea tabela Nomenclator studii fără nici o relaţie cu celelalte tabele:

4. Pentru crearea unei relaţii între tabela principală Date angajaţi şi tabela Nomenclator
studii prin intermediul câmpului cod studii, se trage cu mouse-ul prin drag & drop (cu
butonul stâng al mouse-ului apăsat), câmpul cod studii din Date angajaţi peste câmpul
cod studii din tabela Nomenclator studii. După eliberarea butonului mouse-ului va
apărea următorul dialog:

Pentru alegerea tipului de


relaţie dorit, va fi apăsat
butonul Join Type care va
afişa un alt dialog de
selectare, ce oferă cele trei
posibilităţi fundamentale de
relaţii: „unu la unu”, „unu
la mulţi” şi „mulţi la unu”.
42 Lector univ. drd. Mihai Gavotă - Baze de date

5. Dialogul de selectare a tipului de relaţie este:

Atunci când se trage legătura (în pasul 4, prin drag


& drop) este foarte important sensul de tragere
(dinspre tabela Date angajaţi către tabela
Nomenclator studii sau invers). Acest sens
defineşte generic tabela care a fost considerată
principală în respectiva relaţie. Deoarece s-a
considerat tabela Date angajaţi ca fiind tabelă
principală, atunci se va selecta tipul de relaţie 3.

6. După apăsarea butonului <OK> din dialogul anterior, se revine automat în fereastra de
dialog Edit Relationships (vezi pasul 4), şi se confirmă prin clic pe butonul <Create>,
ceea ce va determina crearea relaţiei între cele două tabele. Noua relaţie va fi
materializată în fereastra Relationships astfel:

Este evident că celelalte relaţii dintre tabele au fost create în mod similar.
Pentru că în relaţia dintre tabela Deplasare angajaţi şi Date angajaţi s-a considerat ca
tabelă principală tabela Deplasări angajaţi, legătura este inversă. Aici este vorba de o relaţie
„mulţi la unul” (mai multe deplasări identificate prin câmpul cod persoana corespund unui
singur angajat).
6. CREAREA ŞI UTILIZAREA INTEROGĂRILOR

Interogările (queries) reprezintă poate cel mai interesant şi complex tip de obiecte ale
oricărei baze de date, deoarece prin intermediul lor se pot procesa, sintetiza şi utiliza într-un mod
superior datele existente în tabele.
La fel ca şi la tabele, Access-ul pune la dispoziţie instrumente evoluate de proiectare –
„vrăjitori”, ferestre de dialog specializate şi alte modalităţi de acces la date care fac posibilă
programarea vizuală şi exclud aproape în totalitate necesitatea de a scrie cod. Interogările Access
fructifică pe deplin aceste facilităţi şi îi ajută chiar şi pe utilizatorii fără cunoştinţe deosebite în
domeniul informatic, să poată răspunde cu uşurinţă unor întrebări complexe legate de datele
existente în baza de date.
Chiar dacă afişarea directă a rezultatelor interogărilor nu se ridică la rafinamentul şi
frumuseţea celor prezentate prin intermediul formularelor şi rapoartelor, ele sunt utile atât
specialiştilor în etapa de programare cât şi utilizatorilor finali. Aceştia, nu de puţine ori, au
nevoie să interogheze baza de date pentru a obţine informaţii ce nu au fost materializate de
programatori prin formulare şi rapoarte şi nu au nevoie ca rezultatele să fie prezentate într-o
formă prea elaborată.
Access 2000 este un instrument software evoluat, care face într-adevăr posibile
programarea vizuală şi dezvoltarea rapidă a aplicaţiilor.
Interogările sunt utilizate pentru reunirea câmpurilor din mai multe tabele în vederea unei
prezentări agregate a informaţiilor, pentru selectarea, ştergerea sau adăugarea înregistrărilor
în/din tabele după anumite criterii, pentru crearea sau actualizarea datelor. Interogările pot fi de
tip:
• Select Query (de selectare)
• Total Query (de totalizare)
• Crosstab Query (de tip cap de tabel cu mai multe intrări)
• Make-Table Query (de creare tabele)
• Update Query (de actualizare)
• Append Query (de adăugare)
• Delete Query (de ştergere).

Ca şi la tabele există posibilitatea creării interogărilor cu ajutorul „vrăjitorilor”


specializaţi sau prin intermediul machetei de proiectare Design View. După comutarea în panoul
obiectelor Queries apare următoarea fereastră:
Aici primele două opţiuni sunt:

1. Create query in Design View


2. Create query by using wizard

Semnificaţia acestor opţiuni este similară cu cea de


la obiectele Tables. De fapt prezenţa lor constituie
un standard Access, deoarece ele se vor regăsi şi în
secţiunile Forms şi Reports.
44 Lector univ. drd. Mihai Gavotă - Baze de date

Prima opţiune, cea mai utilizată, este echivalentă cu apăsarea butonului Design din
ecranul anterior şi atunci când este lansată în execuţie prezintă următorul dialog (Show Table):

După selectarea tabelelor sau interogărilor dorite pentru a constitui baza de prelucrare
(„materia primă”) pentru query-ul curent, se apasă butonul <Add>. Selecţia poate fi individuală,
contiguă sau necontiguă, fiind similară cu modalitatea de selecţie din programul Windows
Explorer.
În exemplul nostru, s-a dorit o interogare prin care să obţinem o listă cu numele
angajaţilor şi studiile acestora. În acest scop, înainte de apăsarea butonului <Add> s-au selectat
(necontiguu folosind tasta Ctrl) cele două tabele necesare interogării – Date angajaţi şi
Nomenclator studii. Terminarea şi închiderea lucrului cu acest dialog de adăugare se marchează
prin apăsarea butonului <Close>.
Următoarea fereastră afişată reprezintă macheta de proiectare vizuală a obiectelor de tip
query. Se observă că cele două tabele au fost aduse automat legate prin relaţia care a fost definită
şi care există în Relatioships:
CREAREA ŞI UTILIZAREA INTEROGĂRILOR 45

În partea de jos a acestei machete se găseşte un tabel vid (cu liniile: Field, Table, Sort,
Show, Criteria, or), în ale cărui coloane vor trebui trase cu mouse-ul prin drag & drop câmpurile
din tabelele (din partea de sus), ale căror valori vor fi afişate sau vor servi drept criterii de
interogare. În cazul nostru vor fi trase câmpurile nume persoana din tabela Date angajaţi şi
denumire studii din tabela Nomenclator studii. În urma acestor acţiuni macheta de proiectare
va arăta astfel:

După apăsarea butonului View (primul buton din bara de instrumente – vezi imaginea
anterioară), pe ecran va fi afişată următoarea listă cu rezultatele interogării:

Se observă că sunt afişate doar cele două


câmpuri (coloane) selectate. Relaţia dintre tabele
realizată prin intermediul câmpului cod studii,
asigură posibilitatea afişării studiilor
corespunzătoare pentru fiecare persoană chiar dacă
valorile acestui câmp nu apar explicit.
Oricând se poate reveni în macheta de
proiectare prin apăsarea primului buton din bara
de instrumente, care acum conţine simbolul unui
echer. Rezultatul interogării se poate previzualiza
înaintea listării sau se poate lista efectiv la
imprimantă prin intermediul butoanelor
corespunzătoare din toolbar (sunt butoanele
standard care conţin simbolurile imprimantă şi
lentilă).
46 Lector univ. drd. Mihai Gavotă - Baze de date

Continuând exemplul, să presupunem că managerul de resurse umane solicită o altă


ordonare a listei. El cere ca lista să fie sortată după studii şi anume întâi cele superioare, apoi
studiile medii şi fără, iar în cadrul aceluiaşi tip de studii numele persoanelor să apară sortate
alfabetic. Deci „în traducere” aceasta înseamnă o dublă sortare. Prima va fi o sortare
descrescătoare (descending) după câmpul cod studii (deoarece 2=studii superioare, 1=studii
medii, 0=fără studii), iar a doua, o sortare crescătoare alfabetic (ascending) după câmpul nume
persoana. Cele două câmpuri (cod studii şi nume persoană) vor fi chei de sortare în cadrul
acestei interogări.
Ordinea de plasare a cheilor în interogare este importantă. Prioritatea cheilor descreşte de
la stânga la dreapta (prima cheie, cea mai importantă, cod studii va fi plasată cel mai la stânga în
tabelul machetei de proiectare).
Tabelul din macheta de proiectare oferă pentru sortare linia (opţiunea) Sort iar pentru
marcajul câmpurilor (coloanelor) vizibile la consultarea interogării, linia Show cu controale de
marcare (check box). Câmpurile în dreptul cărora există bifă pe linia Show, vor fi vizibile. Iniţial
toate câmpurile au prezentă bifa în dreptul lor pe linia Show (deci în mod implicit vor fi vizibile
toate coloanele interogării) . În cazul nostru pentru că nu dorim să fie vizibile valorile câmpului
cod studii (0, 1 sau 2) vom debifa respectivul control de marcare.

Macheta de proiectare va fi:


CREAREA ŞI UTILIZAREA INTEROGĂRILOR 47

După apăsarea butonului View (primul din stânga pe toolbar) rezultatul interogării va fi
următoarea listă dublu sortată:

Să presupunem că se solicită o situaţie mai complexă care pe lângă nume şi studii să


afişeze funcţia deţinută şi data angajării. Lista trebuie să fie sortată în ordinea crescătoare a
funcţiilor, apoi în cadrul fiecărei funcţii în ordine alfabetică după numele persoanelor.
În acest caz, deoarece se solicită informaţii despre funcţiile deţinute, este necesară
adăugarea în interogare a tabelei Nomenclator funcţii. Dialogul de adăugare Show Table se
apelează prin apăsarea butonului cu acelaşi nume din bara de instrumente.

Acest dialog este:


48 Lector univ. drd. Mihai Gavotă - Baze de date

După adăugarea tabelei Nomenclator funcţii se trag în tabel prin „drag & drop”
câmpurile necesare interogării şi se stabilesc cheile de sortare. Macheta de proiectare va arăta
astfel:

La apăsarea butonului View va fi afişată următoarea listă:


CREAREA ŞI UTILIZAREA INTEROGĂRILOR 49

Un query poate fi salvat prin procedurile standard Save sau Save as care au fost
prezentate în capitolul anterior referitor la tabele. Orice query salvat poate deveni o sursă de date
(similar unei tabele) pentru un alt query, un form sau un report.
Orice interogare realizată în manieră vizuală sau cu ajutorul vrăjitorilor specializaţi se
traduce de către Access într-o comandă SQL. Iată codul SQL creat automat de către Access
pentru ultima interogare:

SELECT şDate angajatiţ.şnume persoanaţ, şNomenclator functiiţ.şdenumire functieţ,


şNomenclator studiiţ.şdenumire studiiţ, şDate angajatiţ.şdata angajariiţ
FROM şNomenclator functiiţ RIGHT JOIN (şNomenclator studiiţ RIGHT JOIN şDate
angajatiţ ON şNomenclator studiiţ.şcod studiiţ = şDate angajatiţ.şcod studiiţ) ON
şNomenclator functiiţ.şcod functieţ = şDate angajatiţ.şcod functieţ
ORDER BY şNomenclator functiiţ.şcod functieţ, şDate angajatiţ.şnume persoanaţ;

Trebuie remarcată cu această ocazie puterea Access-ului ca instrument rapid de


dezvoltare vizuală a aplicaţiilor, faptul că dă posibilitatea unui număr mare de persoane care nu
sunt programatori de meserie să realizeze prelucrări complexe ale datelor.

Interogările create până acum şi utilizate pentru exemplificări fac parte din interogările de
tip Select. Vom prezenta în continuare toate tipurile de interogări puse la dispoziţie de Access.

6.1. INTEROGĂRILE DE TIP SELECT


Interogările de tip Select la fel ca orice alt tip de interogări, presupun existenţa în cadrul
machetei de proiectare a:

• tabelelor sau interogărilor care constituie sursa de date,


• relaţiilor dintre acestea moştenite din Relationships
• tabelului cu:
o câmpurile,
o cheile de sortare,
o marcatorii de vizibilitate (Show),
o criteriile (coniţiie) de selecţie.

Ele se pot utiliza pentru extragerea de date din una sau mai multe tabele (query-uri) şi
efectuarea unor calcule.
Orice cod SQL al query-urilor de tip Select începe evident cu comanda Select (vezi codul
SQL din subcapitolul anterior).
Selecţiile pot fi făcute şi pe baza anumitor criterii utile pentru filtrarea datelor. Linia
Criteria din tabelul existent în macheta de proiectare este destinată special acestui scop. Scrierea
condiţiilor complexe este asistată de un vrăjitor specializat care poate fi apelat apăsând opţiunea
Build din meniul contextual al câmpului în care se scrie condiţia.
Rezultatele interogării de selecţie pot fi prezentate sortate crescător sau descrescător după unul
sau mai multe câmpuri. Alegerea câmpurilor respective se face în linia Sort.
Dacă de exemplu se doreşte ca ultima listă (creată în subcapitolul anterior) să afişeze doar
persoanele cu studii medii, atunci va fi necesară aplicarea unui asemenea filtru de selecţie.
50 Lector univ. drd. Mihai Gavotă - Baze de date

Macheta de proiectare va fi:

Se observă existenţa cifrei 1 pe linia Criteria în dreptul câmpului cod studii. Această
acţiune simplă determină filtrarea şi deci afişarea doar a înregistrărilor care corespund condiţiei
(adică au cod studii=1 ceea ce corespunde studiilor medii). Efectul aplicării filtrului poate fi
observat în următoarea figură:

Lucrul cu funcţia like


Pot exista şi filtre multiple. De exemplu, este posibil ca în vederea sărbătoririi Sfântului
Ion, să se solicite o listă care să afişeze doar persoanele cu studii superioare (cod studii=2) care
au inclus în nume subşirul Ion. În acest sens se va utiliza o interogare de selecţie având drept
criteriu de selecţie pentru nume, funcţia like (ca şi) cu următorii parametrii: like “*Ion*”.
Caracterul * (se citeşte orice), are aceeaşi semnificaţie ca şi la filtrele pentru fişiere exemplu
*.exe, *.*, etc . Deci, criteriul de selecţie pentru nume like “*Ion*” se poate citi: „toate numele
persoanelor care au orice şir de caractere înainte de şirul Ion şi orice şir de caractere după şirul
Ion”.
CREAREA ŞI UTILIZAREA INTEROGĂRILOR 51

Macheta de proiectare pentru această interogare va fi:

Rezultatul interogării este:

Dacă se doreşte o listă care să conţină toate numele care încep cu „Ion”, comanda like din
linia Criteria este: like “Ion*”. Invers, dacă se doreşte o selecţie pentru toate numele care se
termină cu caracterele „ion” atunci comanda like este: like “*ion”. Iată în continuare efectul
ultimei comenzi (like “*ion”).
52 Lector univ. drd. Mihai Gavotă - Baze de date

Concatenarea şirurilor de caractere


Sub Access şirurile de caractere se pot concatena. Operatorul de concatenare este “&”.
Dacă avem două şiruri: “123” şi “qwe” atunci rezultatul concatenării lor prin intermediul
operatorului de concatenare (“123” & “qwe”) este: “123qwe”. Selecţiile anterioare bazate pe
funcţia like puteau fi scrise şi astfel:

like “*” & “ion” & “*”


like “ion” & “*”
like “*” & “ion”

Dialogurile parametrizate
Există situaţii în care selecţia nu se face de fiecare dată după aceleaşi caractere ce sunt
conţinute în nume. În acest caz, se lasă operatorului sarcina de a introduce de la tastatură
succesiunea de caractere ce sunt căutate. Acest lucru se poate realiza scriind parametrizat
criteriul de selecţie în linia Criteria pentru câmpul nume persoana. La fiecare lansare în
execuţie a interogării se afişează o fereastră de dialog prin intermediul căreia utilizatorul
specifică şirul de caractere ce constituie baza de selecţie.
Textul afişat care va apărea în acest dialog ar putea fi:
Introduceţi caracterele incluse in nume:
În linia Criteria textul trebuie cuprins între paranteze drepte:
şIntroduceţi caracterele incluse in nume:ţ
Comanda like exhaustivă care prin intermediul parametrizării va cuprinde toate cazurile de
selecţie pentru câmpul nume persoana este:

Like "*" & şIntroduceţi caracterele incluse în nume:ţ & "*"

Secvenţa corespunzătoare din macheta de proiectare este:


CREAREA ŞI UTILIZAREA INTEROGĂRILOR 53

Dialogul care îi va apărea utilizatorului la lansarea interogării este:

Lucrul cu funcţia between


Dacă se doreşte o listă care să prezinte o selecţie a angajaţilor doar pentru categoriile
funcţiilor de şefi atunci va mai trebui introdusă în interogare şi tabela Nomenclatorul
categoriilor de funcţii. Conţinutul acestei tabele este:

Se observă că în această tabelă câmpul


cod categorie pentru funcţiile de şefi
are valori cuprinse între 2 şi 4.
Deci, pentru selecţia categoriilor de
funcţii de şefi va fi necesară utilizarea
funcţiei Between (între).

Macheta de proiectare pentru interogare este:


54 Lector univ. drd. Mihai Gavotă - Baze de date

Rezultatul interogării va fi:

6.2. INTEROGĂRILE DE TIP TOTALS


Alte modalităţi de punere a problemelor de interogare sunt cele referitoare la gruparea
datelor din tabele după diferite criterii şi prezentarea unor date statistice despre acestea. Pentru
fiecare din grupele ce se formează se pot calcula indicatori cum sunt:

• Sum( ) – suma valorilor unui câmp,


• Count( ) – numărul înregistrărilor din fiecare grupă,
• Avg( ) – media valorilor unui câmp pentru fiecare grupă ,
• StDev( ) – abaterea standard a valorilor unui câmp pentru fiecare grupă,
• Var( ) – dispersia valorilor unui câmp pentru fiecare grupă,
• Min( ), Max( ) – valoarea minimă / maximă,
• Last( ) - ultimul, First( ) – prima / ultima valoare din grupă pentru câmpul respectiv.

Să presupunem că avem următorul query de tip Select:


CREAREA ŞI UTILIZAREA INTEROGĂRILOR 55

Oricând un query de tip Select poate fi transformat într-un query de tip Totals prin
apăsarea butonului ∑ din bara de instrumente: .

După apăsarea butonului ∑, macheta de proiectare va deveni:

Se observă în tabelul din partea de jos a machetei apariţia liniei Total care are înscrisă
funcţia Group By în dreptul fiecărui câmp.

Dacă dorim o situaţie care să ne prezinte câte persoane din fiecare categorie de funcţii
există în instituţie, atunci înseamnă că dorim o grupare a lor (Group By) după categoria de
funcţie şi apoi o numărare (contorizare - Count) a acestora.

Pentru rezolvare, în dreptului câmpului cod persoana (deoarece dorim să numărăm


persoane), pe linia Total vom face clic cu mouse-ul pe controlul combo box disponibil, ceea ce
va determina deschiderea următoarei liste derulante din care vom alege funcţia Count:
56 Lector univ. drd. Mihai Gavotă - Baze de date

În dreptul câmpului cod persoana pe linia Total va apărea în loc de Group By, funcţia
Count.

Rezultatul acestui query va fi:

Codul SQL generat automat de Access pentru această interogare este:

SELECT şNomenclatorul categoriilor de functiiţ.şdenumire categorie functieţ, Count(şDate


angajatiţ.şcod persoanaţ) AS şCountOfcod persoanaţ
FROM şNomenclatorul categoriilor de functiiţ RIGHT JOIN (şNomenclator functiiţ RIGHT
JOIN (şNomenclator studiiţ RIGHT JOIN şDate angajatiţ ON şNomenclator studiiţ.şcod
studiiţ = şDate angajatiţ.şcod studiiţ) ON şNomenclator functiiţ.şcod functieţ = şDate
angajatiţ.şcod functieţ) ON şNomenclatorul categoriilor de functiiţ.şcod categorie functieţ =
şNomenclator functiiţ.şcod categorie functieţ
GROUP BY şNomenclatorul categoriilor de functiiţ.şcod categorie functieţ, şNomenclatorul
categoriilor de functiiţ.şdenumire categorie functieţ;

O altă întrebare la care răspunsul ar fi uşor de dat cu ajutorul interogărilor de tip Totals ar
fi: „Câţi angajaţi cu studii medii şi câţi cu studii superioare sunt în instituţie?”.

Macheta de proiectare este:

Se observă că pe linia Criteria


în dreptul câmpului cod studii
s-a înscris condiţia >0. În acest
fel se selectează doar
persoanele cu studii superioare
şi cele cu studii medii
(persoanele fără studii au
câmpul: cod studii=0).
CREAREA ŞI UTILIZAREA INTEROGĂRILOR 57

Răspunsul la întrebare (rezultatul interogării) va fi:

6.3. INTEROGĂRILE DE TIP UPDATE


Sunt utile pentru actualizarea automată a unuia sau mai multor câmpuri existente în
sursele de date actualizabile care cel mai frecvent sunt tabelele. În traducere update înseamnă
actualizare.
De exemplu, dacă se doreşte actualizarea tuturor valorilor câmpurilor data angajare din
tabela Date angajati la valoarea 11-August-1999 (#8/11/1999# în formatul implicit) atunci cel
mai indicat este să se folosească un query de tip Update. O altă alternativă, mult mai ineficientă,
ar fi să se actualizeze manual valorile câmpului data angajare pentru fiecare înregistrare. În
cazul în care această tabelă ar avea câteva mii de înregistrări şi dacă în plus s-ar mai pune şi
condiţia ca actualizarea să se producă doar pentru persoanele cu studii superioare, atunci cu
siguranţă va trebui abandonată metoda manuală şi apelat la query-ul de tip Update.
În acest sens se solicită crearea unui query nou. (New sau Create query in Design view).
Se adaugă tabela Date angajati şi se solicită transformarea interogării din tipul implicit (de tip
Select) în interogare de tip Update. Următoarea imagine prezintă această acţiune:
58 Lector univ. drd. Mihai Gavotă - Baze de date

După setarea opţiunii Update Query se adăugă restricţia în linia Criteria (cod studii=2)
şi se înscriere valoarea de actualizare (#8/11/1999#) în linia Update To (specifică acestui tip de
query). Macheta de proiectare va arăta astfel:

Pentru că interogările de tip Update modifică datele din tabele, atunci acestea se lansează
prin comanda Run disponibilă prin intermediul butonului ! din toolbar. După apăsarea acestui
buton în mod implicit apare următorul dialog:

care ne solicită să mai confirmăm încă o dată că într-adevăr dorim actualizarea (modificarea)
datelor. Modificarea odată făcută este ireversibilă. Se observă că Access-ul a identificat deja că în
tabela Date angajati există doar 11 înregistrări (rows) care satisfac condiţia. Confirmând cu
<Yes> atunci rezultatul lansării query-ului va fi:
CREAREA ŞI UTILIZAREA INTEROGĂRILOR 59

6.4. INTEROGĂRILE DE TIP MAKE-TABLE


Oferă posibilitatea creării unei tabele noi pe baza structurii şi datelor existente în alte
tabele.
Să presupunem că dorim crearea unei tabele noi numită Tabela nouă cu datele
angajaţilor care să aibă acelaşi conţinut cu tabela Date angajaţi. Procedura este similară cu cea
de la interogările de tip Update, cu deosebirea că de această dată se va seta opţiunea Make-Table
Query:

După setarea opţiunii va apărea următorul dialog în care vom înscrie numele noii tabele:

În continuare vor fi trase prin


„drag & drop” câmpurile
dorite pentru a fi conţinute în
noua tabelă. Apoi, tot ce
avem de făcut este apăsarea
butonului Run din toolbar:
60 Lector univ. drd. Mihai Gavotă - Baze de date

Această acţiune va avea ca rezultat apariţia noii tabele în fereastra obiectelor de tip Table:

6.5. INTEROGĂRILE DE TIP DELETE


Dacă se doreşte ştergerea anumitor înregistrări dintr-o tabelă pe baza unor criterii, atunci
se foloseşte query-ul de tip Delete (şterge).
Modalitatea de transformare a unui query implicit de tip Select într-un query de tip
Delete constă în alegerea opţiunii Delete Query din lista derulantă a tipurilor de interogări.
Să presupunem că dorim să ştergem înregistrările din tabela Date angajaţi care
corespund persoanelor cu studii medii, adică acolo unde (where) cod studii=1.
CREAREA ŞI UTILIZAREA INTEROGĂRILOR 61

După transformarea în query de tip Delete şi după completarea criteriului where cod
studii=1, macheta de proiectare va fi:

Acţiunea de ştergere se va declanşa după lansarea comenzii Run.

6.6. INTEROGĂRILE DE TIP APPEND


De multe ori este necesară preluarea înregistrărilor dintr-o tabelă şi adăugarea lor
(append) într-o altă tabelă. Aceasta se realizează prin query-ul de tip Append. Structura celor
două tabele trebuie să fie aceeaşi pentru câmpurile care se vor adăuga în noile înregistrări.
Să presupunem că avem tabela numită Tabela nouă cu datele angajaţilor şi că dorim
adăugarea înregistrărilor acestei tabele la înregistrările tabelei Date angajaţi. Paşii algoritmului
care va trebui urmat sunt următorii:

1)
62 Lector univ. drd. Mihai Gavotă - Baze de date

2)

3)

6.7. INTEROGĂRILE DE TIP CROSSTAB


La începutul capitolului Crearea şi utilizarea interogărilor am prezentat intenţionat
prima opţiune oferită de Access: Create query in Design view şi nu pe cea care asigura lucrul cu
„vrăjitori”, deoarece era necesară dobândirea cunoştinţelor de bază, fundamentale, legate de
generarea şi proiectarea interogărilor.
Acum, în această etapă, lucrul cu „vrăjitori” (wizards) devine eficient, iar query-ul de tip
Crosstab este un exemplu foarte bun pentru a începe această prezentare.
În traducere crosstab înseamnă tabel (încrucişat) cu două sau mai multe intrări. Un
exemplu de interogare de tip Crosstab este acela în care se obţine situaţia numerică a angajaţilor
pe categorii de funcţii şi pe tipuri de studii. Această situaţie va fi un tabel cu dublă intrare: pe
CREAREA ŞI UTILIZAREA INTEROGĂRILOR 63

rânduri (rows) categoriile de funcţii din instituţie conform Nomenclatorului categoriilor de


funcţii, iar pe coloane (columns) tipurile de studii. În celulele din tabel (la intersecţia liniilor cu
coloanele) vom avea numărul de persoane (count) din instituţie care îndeplinesc o funcţie dintr-
o categorie şi au anumite studii.
Înainte de a începe lucrul cu „vrăjitorul” este necesar să ne construim un query ajutător
de tip Select care va furniza informaţiile necesare (cod persoana, denumire categorie funcţie şi
denumire studii). Macheta de proiectare a acestui query este:

Pentru a putea alege tipul de query dorit, posibil de realizat cu ajutorul „vrăjitorilor” vom
da clic pe butonul New din fereastra de prezentare a bazei de date:
64 Lector univ. drd. Mihai Gavotă - Baze de date

După apăsarea butonului New va apărea un dialog prin intermediul căruia vom putea
alege tipul de query dorit:

Paşii care vor fi urmaţi în continuare sunt prezentaţi în următoarea succesiune de


dialoguri:

• alegem sursa de date (query-ul construit anterior şi salvat cu numele Query1):


CREAREA ŞI UTILIZAREA INTEROGĂRILOR 65

• Pe rânduri vor fi categoriile de funcţii:

• Iar pe coloane tipurile de studii:


66 Lector univ. drd. Mihai Gavotă - Baze de date

• Se alege funcţia care realizează numărarea persoanelor:

• În acest moment query-ul Crosstab este gata:


CREAREA ŞI UTILIZAREA INTEROGĂRILOR 67

• După apăsarea butonului <Finish> poate fi vizualizat tabelul realizat de „vrăjitor”:

Macheta de proiectare a acestui query (realizată de wizard) este:

Codul SQL generat automat de Access pentru această interogare care poate fi consultat
prin intermediul opţiunii SQL View, este:

TRANSFORM Count(Query1.şcod persoanaţ) AS şCountOfcod persoanaţ


SELECT Query1.şdenumire categorie functieţ, Count(Query1.şcod persoanaţ) AS şTotal Of
cod persoanaţ
FROM Query1
GROUP BY Query1.şdenumire categorie functieţ
PIVOT Query1.şdenumire studiiţ;
7. FORMULARE ŞI RAPOARTE

7.1. FORMULARE (FORMS)


Odată creată structura de tabele componente ale bazei de date, se pune problema
populării acestora cu datele pe care dorim să le avem în evidenţă. Aşa cum am arătat în capitolul
referitor la tabele, acest lucru poate fi făcut direct, în modul de lucru Datasheet View accesibil
din bara de instrumente. Atunci când se doreşte introducerea datelor într-o formă mai apropiată
de aspectul documentului primar de pe care se culeg informaţiile, când se doreşte afişarea unor
elemente grafice sau efectuarea unor operaţii ajutătoare, se vor folosi pentru introducerea datelor
formulare (machete).
Formularele sunt instrumente standardizate puse special la dispoziţie de Access pentru a
constitui interfaţa cu utilizatorul la introducerea, modificarea şi ştergerea datelor din tabele şi
totodată pentru culegerea de la acesta a unor opţiuni sau valori de date în funcţie de care se vor
face calcule, afişa rezultate ale unor interogări sau tipări anumite rapoarte.
Utilizarea formularelor pentru manipularea datelor din tabele prezintă prin comparaţie cu
modul de lucru Datasheet View o serie de avantaje dintre care enumerăm:

• posibilitatea alegerii modului de prezentare a tabelului la introducerea datelor: să se


vadă pe ecran o singură înregistrare odată sau să se vadă mai multe înregistrări;
• aranjarea în formular a textului explicativ, câmpurilor de date sau grafice şi a
butoanelor astfel încât, chiar dacă tabelul are un număr mare de câmpuri sau câmpuri
foarte lungi, acestea să fie vizibile pe cât posibil în întregime pe ecran;
• formularele permit realizarea unei interfeţe mai prietenoase cu utilizatorul prin
intermediul unor elemente de evidenţiere (texte explicative, culori, dimensiune şi
caracteristici font, chenare cu care se pot grupa datele care au legătură din punct de
vedere logic, etc);
• în formulare putem crea anumite butoane care prin apăsare să declanşeze efectuarea
anumitor calcule, validări mai complexe decât cele existente la nivelul unui câmp sau
chiar accesul la un alt formular pentru executarea unor operaţiuni logic necesare în
momentul introducerii datelor.

Aplicaţiile informatice scrise în Access de profesionişti se prezintă ca o structură


arborescentă de formulare şi rapoarte. Primul formular constituie un fel de panou de comandă
(switchboard) şi cuprinde de obicei denumirea aplicaţiei, un scurt text de prezentare şi un număr
de butoane sau opţiuni de meniu care permit accesul la principalele componente ale acesteia.
Fiecare componentă conţine la rândul ei, în funcţie de gradul de complexitate, alte formulare
(care pot fi de introducere date sau de opţiuni) şi rapoarte. Toate aceste formulare trebuie să
ofere posibilitatea de a fi închise pentru a se putea trece la executarea unei alte componente a
aplicaţiei.
FORMULARE ŞI RAPOARTE 69

Un astfel de formular panou de comandă al unei aplicaţii se prezintă ca în figura de mai jos.

În acest capitol ne vom ocupa de crearea formularelor şi vom arăta cum se folosesc
instrumentele specializate puse la dispoziţie de Access în acest scop.
Pentru lucrul cu formulare este prevăzut în fereastra de prezentare a bazei de date un
buton care ne aduce pe ecran toate obiectele de acest tip existente în baza de date. În afara
acestora, mai există două intrări corespunzătoare celor două modalităţi de creare a formelor: cu
ajutorul „vrăjitorului” (wizard-ului) specializat şi în mod proiectare directă (design).
70 Lector univ. drd. Mihai Gavotă - Baze de date

Atunci când sunt active obiectele de tip formular (forms) observăm că în partea de sus a
ferestrei de prezentare a bazei de date sunt active un număr de butoane cu funcţii specifice.
Acestea prin apăsare realizează:

• Open - deschide pentru vizualizare şi execuţie un formular existent;


• Design - intră în modul proiectare pentru a modifica un formular;
• New - permite crearea unui formular nou alegând modalitatea de creare şi un anumit tip
de formular;
• Delete - permite ştergerea din baza de date a formularului selectat;
• Celelalte butoane permit aranjarea în diferite moduri a formularelor din baza de date: cu
iconiţe mari sau mici, sub formă de listă simplă sau detaliată.

În Access se păstrează caracteristica de redundanţă specifică produselor Microsoft şi


anume aceea că o operaţie poate fi făcută în mai multe moduri. Astfel, principalele operaţiuni
necesare a fi executate asupra formularelor pot fi executate şi prin activarea meniului contextual
cu butonul din dreapta al mouse-ului. În figura următoare sunt prezentate operaţiunile ce pot fi
executate asupra unui formular din baza de date prin intermediul meniului contextual:
FORMULARE ŞI RAPOARTE 71

7.1.1. Crearea formularelor cu ajutorul „vrăjitorilor” (wizards)


Cea mai simplă metodă de creare a unui formular şi prima care trebuie încercată este
aceea în care suntem asistaţi de un „vrăjitor”. În acest scop apăsăm butonul New care deschide o
fereastră de dialog ca cea din figura următoare:

Din această fereastră de dialog se poate alege modalitatea de creare a formularului prin
Design View sau Form Wizard, sau se poate opta pentru un anumit tip de formular prestabilit.

Primele două opţiuni permit alegerea modalităţii de proiectare, şi anume:

• Design View – crearea formularului se face în mod proiectare directă, fără a fi asistată
de programul Access;
• Form Wizard – crearea formularului se va face în mod asistat de către un „vrăjitor”
specializat.

Aceste două opţiuni nu necesită alegerea unui tabel sau a unei interogări (Choose the
table or query where …), din lista prezentă în partea de jos a ferestrei, acest lucru fiind opţional.

Următoarele opţiuni permit selectarea unui anumit tip de formular, cu format prestabilit,
care va fi creat automat de Access. Pentru fiecare din aceste opţiuni este obligatorie alegerea din
listă a unui tabel sau a unei interogări pentru a cărei editare este conceput formularul:

• AutoForm: Columnar – se creează automat un formular de editare a datelor care va


cuprinde câmpurile tabelului (interogării) precedate de denumirile acestora. Acestea
vor fi aranjate succesiv de sus în jos pe coloană. Formularul va afişa câte o singură
înregistrare odată.
72 Lector univ. drd. Mihai Gavotă - Baze de date

• AutoForm: Tabular - se creează automat un formular de editare a datelor care va


cuprinde mai multe înregistrări afişate simultan pe ecran. Câmpurile
tabelului (interogării) şi denumirile acestora vor fi aranjate optim, astfel încât să fie
vizibile simultan cât mai multe informaţii.
• AutoForm: Datasheet - se creează automat un formular de editare a datelor care va
cuprinde mai multe înregistrări afişate simultan pe ecran. Câmpurile
tabelului (interogării) şi denumirile acestora vor fi aranjate într-un format similar
foilor de calcul Excel.
• Chart Wizard - se creează în mod asistat un formular care prezintă datele din
câmpurile tabelului (interogării) sub formă de diagramă.
• Pivot Table Wizard - se creează în mod asistat un formular care permite actualizarea
datelor dintr-o tabelă pivot creată cu ajutorul produsului Excel.

Cea mai frecventă alegere dintre cele enumerate mai sus este Form Wizard care
presupune fixarea unor opţiuni şi parcurgerea unor paşi astfel:

1. În acest prim ecran de dialog se alege tabela sau interogarea care va sta la baza
formularului ce va fi creat. Odată ales, în lista de dedesubt vor fi accesibile toate câmpurile
tabelei sau interogării, dintre care unele (sau toate) vor fi selectate pentru a fi afişate în formular.
Cele selectate (cu ajutorul butoanelor > sau >> ) vor apărea în lista din partea dreaptă. Dacă
ne răzgândim şi dorim să renunţăm la unul sau la toate câmpurile selectate vom folosi butoanele
< sau << . După ce am ales câmpurile vom apăsa butonul <Next> pentru a trece la ecranul
următor de dialog.
FORMULARE ŞI RAPOARTE 73

2. În cadrul acestui ecran de dialog vom alege tipul de formular. Vom regăsi aici acele
tipuri de formulare care ar fi putut fi alese încă din fereastra New Form.

După alegerea tipului de formular şi apăsarea butonului <Next> se va trece la următorul


ecran de dialog.

3. Alegerea unui stil anume de formular dintre cele care sunt afişate ca posibile. Aspectul
fiecărui tip de formular este prezentat atunci când este selectat cu mouse-ul.
74 Lector univ. drd. Mihai Gavotă - Baze de date

4. În ultimul ecran de dialog vom alege numele formularului creat, fie acceptând numele
propus de Access, fie scriind numele dorit. Mai putem stabili acum câteva opţiuni care ne permit
accesul la formular fie în mod editare, pentru a avea acces la date, fie în mod proiectare pentru
a-i aduce unele modificări.

Apăsarea butonului <Finish> încheie procesul de creare a formularului în mod asistat de


către un „vrăjitor” specializat.
Aşa cum am putut observa din ecranele de dialog prezentate mai sus, în oricare din fazele
procesului putem abandona (prin apăsarea butonului <Cancel>), ne putem întoarce la faza
precedentă (prin apăsarea butonului <Back>), putem continua (prin apăsarea butonului <Next>)
sau termina procesul de creare a formularului (prin apăsarea butonului <Finish>).

Formularul creat, cu ajutorul „vrăjitorului”, pentru tabela Date Angajaţi arată ca în


figura următoare:

Bară de selectare Bară de stare


FORMULARE ŞI RAPOARTE 75

Observăm că a fost generată automat o linie de stare care cuprinde numărul înregistrării
prezentă pe ecran, numărul total de înregistrări din tabelă şi butoane care fac posibilă navigarea
printre înregistrările tabelei. Navigarea presupune: poziţionarea pe prima înregistrare din tabelă,
trecerea la înregistrarea precedentă, trecerea la înregistrarea următoare, poziţionarea pe ultima
înregistrare din tabelă şi adăugarea unei noi înregistrări.
Pe formular mai observăm o bară verticală de selecţie înregistrare. Odată selectată
înregistrarea, cu toate câmpurile ei, va putea fi ştearsă, copiată sau înlocuită. În acest sens, bara
de selecţie înregistrare (bara verticală) oferă un meniu contextual propriu.

7.1.2. Crearea formularelor în mod proiectare directă


Aşa cum am văzut, un formular nou poate fi creat atât în mod asistat cu ajutorul
„vrăjitorilor” specializaţi cât şi în mod proiectare directă. Această ultimă modalitate mai este
folosită atunci când dorim să modificăm un formular deja creat, indiferent prin care dintre
metode.
Alegerea succesivă a opţiunilor: New → Design View → OK determină apariţia
următorului ecran de proiectare:

2 1 4 5 6 3

Obiectele evidenţiate sunt:

1. bara de titlu - conţine numele formularului şi elementele specifice unei ferestre


Windows: meniul şi butoanele de închidere, minimizare / maximizare;
2. selectorul formei - care prin dublu-clic permite afişarea proprietăţilor formei;
3. riglele de deplasare pe verticală şi pe orizontală - care permit, în cazul unor formulare
care nu se văd în întregime, aducerea în zona vizibilă a părţilor aflate mai jos, mai sus, în
dreapta sau în stânga;
76 Lector univ. drd. Mihai Gavotă - Baze de date

4. secţiunea Details - pe care sunt amplasate obiectele formularului: text, câmpuri de


editare, butoane, liste, imagini, etc;
5. secţiunea externă (din afara) formularului;
6. fereastra cu instrumente de proiectare (Toolbox) - această fereastră este absolut
necesară procesului de proiectare directă deoarece este locul de unde vor fi luate
obiectele care se amplasează pe formular. În cazul în care această fereastră nu este
vizibilă la un moment dat ea poate fi făcută vizibilă (şi apoi invizibilă din nou) prin
apăsarea butonului sau din meniu apăsând succesiv View → Toolbox.

Un formular, în afara zonei Details în care se vor afişa informaţiile referitoare la fiecare
din înregistrările tabelei, mai poate avea alte zone: de antet şi subsol de formular şi de antet şi
subsol de pagină. Vizualizarea acestor zone în modul proiectare directă se face apăsând succesiv
din meniu View → Form Header/Footer respectiv View → Page Header/Footer .
Antetul şi subsolul formei sunt folosite pentru scrierea titlurilor, a butoanelor, a totalurilor
sau a altor elemente care nu se modifică de la o înregistrare la alta. Acestea nu vor fi derulate în
cazul unor formulare ce conţin mai multe înregistrări.
Antetul şi subsolul de pagină conţin informaţii asemănătoare pe care dorim să le afişăm o
singură dată pe fiecare pagină.

Forma mouse-ului la marginea


inferioară a secţiunii Page Footer

Aceste secţiuni suplimentare sunt opţionale spre deosebire de secţiunea Details care este
totdeauna prezentă. Fiecare dintre ele poate fi redimensionată sau chiar eliminată prin executarea
unui clic cu mouse-ul pe marginea inferioară şi deplasarea mouse-ului până când se obţine
dimensiunea dorită a secţiunii (drag & drop). În figura de mai sus este ilustrat acest proces şi
forma pe care o ia mouse-ul când atinge marginea secţiunii.
FORMULARE ŞI RAPOARTE 77

Formularul, ca şi toate celelalte obiecte pe care le conţine, are o serie de proprietăţi la


care putem accepta valorile implicite sau pe care le vom modifica astfel încât să obţinem un
aspect şi o comportare dorită pentru formular.
Activarea ferestrei de proprietăţi a formei se poate face în mai multe feluri:

• apăsând butonul din dreapta al mouse-ului atunci când acesta este poziţionat pe
selectorul formei şi alegând din meniul contextual opţiunea Properties;
• apăsând butonul din bara de instrumente după ce în prealabil am dat un clic cu
mouse-ul în secţiunea exterioară formularului din zona de proiectare;
• apăsând butonul din dreapta al mouse-ului atunci când acesta este poziţionat în
secţiunea exterioară formularului activând meniul contextual şi alegând opţiunea
Properties;
• apăsând succesiv View → Properties după ce în prealabil am dat un clic cu mouse-ul
în secţiunea exterioară formularului din zona de proiectare.

Proprietăţile formei sunt grupate pe categorii şi anume:

• Format – cuprinde proprietăţile de formatare, adică acele proprietăţi legate de tipul


formularului, aspectul şi modul de prezentare al acestuia;
• Data – cuprinde proprietăţile legate de modul de lucru cu datele din tabele sau
interogări, care vor fi editate cu ajutorul formularului;
• Event – prezintă evenimentele care pot avea loc în timpul lucrului cu formularul
pentru manipularea datelor;
• Other – prezintă o serie de proprietăţi suplimentare de rafinare a lucrului cu
formularul;
• All – prezintă toate proprietăţile de mai sus reunite.

Proprietăţile formularului (Form) se


completează fie cu un text, un număr, o
valoare dintr-o listă derulantă (care se
deschide atunci când apăsăm triunghiul din
dreapta) fie cu o valoare pe care o alegem
fiind asistaţi de „vrăjitorul” activat atunci
când apăsăm butonul marcat (…) .
Nu toate proprietăţile pun la
dispoziţie liste derulante sau asistenţi dar
atunci când ne poziţionăm cu mouse-ul pe
oricare dintre ele, în partea de jos a
ecranului, pe linia de stare, apare un text
explicativ în limba engleză care ne dă mai
multe amănunte despre semnificaţia
proprietăţii respective.
Cele mai multe dintre acestea vor
rămâne la valorile lor implicite şi numai
câteva dintre ele sunt obligatoriu de
completat.
78 Lector univ. drd. Mihai Gavotă - Baze de date

Vom prezenta în continuare semnificaţia câtorva dintre principalele proprietăţi ale


formei:

• Caption – se completează cu titlul formularului. Dacă se completează, acesta va fi


afişat în bara de titlu. În caz contrar în bara de titlu va apărea numele sub care s-a
salvat formularul;
• Default View – este o proprietate care ne oferă spre alegere o listă cu trei variante
reprezentând tipul de formular:
o formular în care se afişează câte o singură înregistrare
o formular în care se afişează atâtea înregistrări câte încap pe ecran
o formular care are forma unei foi de calcul Excel;
• Navigation Buttons – proprietatea poate avea două valori: Yes şi No, adică determină
afişarea sau nu a butoanelor standard de navigare în formular;
• Auto Center – implicit are valoarea No, dar se poziţionează pe Yes dacă se doreşte ca
formularul să fie aranjat centrat pe ecran la lansarea în execuţie;
• Picture – numele unui fişier grafic. Imaginea conţinută de acesta va fi afişată ca
fundal pentru formular;
• Picture Type – indică modalitatea în care fişierul grafic afişat ca fundal va fi
gestionat: inclus în baza de date sau ca o legătură către un fişier exterior bazei de
date;
• Width – specifică lăţimea formularului. Se mai poate modifica selectând cu mouse-ul
marginea dreaptă a formularului şi aducând-o la dimensiunea dorită;
• Record Source – specifică sursa de date a formularului care poate fi un tabel sau o
interogare;
• On Open – specifică acţiunile care se execută la afişarea pe ecran a formularului;
• On Close – specifică acţiunile care se execută atunci când închidem formularul;
• On Current – specifică acţiunile care se execută în momentul trecerii de la o
înregistrare la alta;
• On Delete – specifică acţiunile care se execută în momentul ştergerii unei
înregistrări;
• Modal – specifică faptul că fereastra formular păstrează controlul până când este
închisă.

Un formular conţine o serie de obiecte care fac posibilă manipularea datelor din tabele
sau interogări, afişarea unor explicaţii referitoare la date şi evidenţierea acestora astfel încât să se
realizeze o interfaţă prietenoasă cu utilizatorul.
Amplasarea controalelor, modificarea sau ştergerea acestora se poate face numai în
modul proiectare directă a formularului (design). Oricând se poate trece din modul proiectare
(design) în modul de vizualizare a formularului (form view) şi invers. Aceasta ne permite să
avem imediat controlul asupra modificărilor făcute. Trecerea între cele două modalităţi de
vizualizare se face prin apăsarea primului buton din partea stângă a barei specifice formelor aşa
cum se vede în imaginea următoare:
FORMULARE ŞI RAPOARTE 79

Obiectele disponibile pentru a fi amplasate în formular sunt prezentate în fereastra de


instrumente (toolbox). Aceasta poate fi făcută vizibilă prin apăsarea butonului sau din meniu
alegând succesiv opţiunile View → Toolbox.

Modalitatea de a amplasa într-un formular unul din obiectele de control


prezentate în fereastra cu instrumente (Toolbox), este următoarea:

- se selectează obiectul ales prin executarea unui clic cu mouse-ul deasupra


acestuia;
- se deplasează mouse-ul deasupra formularului observând că prompter-ul său
are o formă de cruce şi are agăţată de el pictograma obiectului selectat;
- se execută un clic cu mouse-ul pe formular (acolo unde se doreşte a fi plasat
colţul din stânga sus al obiectului) şi se deplasează mouse-ul (cu butonul din
stânga apăsat, prin drag & drop) până când dreptunghiul format ajunge la
dimensiunea dorită pentru obiect. În acel moment se eliberează butonul din
stânga al mouse-ului.

În continuare vom descrie principalele obiecte din fereastra de instrumente, detaliindu-le


pe cele mai des utilizate:

Pointer – Obiect de control care se activează în mod automat atunci când este afişată
fereastra cu instrumente de proiectare. Are rol de a deselecta obiectul selectat în acel
moment şi de a aduce mouse-ul la forma standard, adică cea de săgeată.

Vrăjitor (wizard) – Obiect de control care permite activarea / dezactivarea instrumentelor


„vrăjitor”. Ele ajută la crearea automată a obiectelor de control complexe, cum sunt:
butoanele de comandă, listele, listele derulante, grupările de opţiuni, subformularele.

Etichetă (label) – Obiect de control care creează o casetă cu text. Acest text nu poate fi
modificat la momentul execuţiei.

Casetă de text (text box) – Obiect de control care creează o casetă în care se afişează şi pot
fi actualizate valorile din câmpurile tabelelor, interogărilor sau alte valori introduse de
utilizator. Acest obiect este însoţit de o etichetă în care este prezentată la execuţie
denumirea câmpului sau a variabilei a cărei valoare este afişată.

Grup de opţiuni (option group) – Obiect de control ce creează o casetă în care pot fi
amplasate mai multe obiecte, în general de acelaşi fel: butoane de opţiune, comutatoare,
casete de validare. Din cadrul grupului poate fi selectat un singur obiect la un moment dat.

Buton comutator (Toggle button) – Obiect de control care creează un buton cu două stări,
corespunzătoare valorilor Da(Yes) / Nu(No), şi permite utilizatorului să selecteze una dintre
ele.

Buton de opţiune (option button) – Obiect de control similar butonului comutator. Se


utilizează cel mai frecvent în cadrul grupurilor de opţiuni pentru a selecta una dintre ele.
Este însoţit de o etichetă în care este explicată semnificaţia opţiunii respective.
80 Lector univ. drd. Mihai Gavotă - Baze de date

Casetă de validare (check box) – Obiect de control similar butonului comutator.

Listă derulantă (combo box) – Obiect de control realizat din combinaţia dintre o casetă de
text în care se pot introduce valori şi o listă din care se poate alege o valoare. Este indicat
să fie creat cu ajutorul „vrăjitorului” specializat.

Listă (list box) – Obiect de control care conţine o listă de valori din care poate fi aleasă una.

Buton de comandă (command button) – Obiect de control care atunci când este apăsat
execută o comandă sau o succesiune de comenzi.. Este indicat să fie creat cu ajutorul
„vrăjitorului” specializat deoarece acesta oferă spre alegere cele mai frecvent întâlnite
acţiuni pe care le putem asocia butonului. „Vrăjitorul” va scrie în locul nostru procedura în
limbaj VBA asociată evenimentului On Click. Putem vedea conţinutul procedurii fie din
fereastra de proprietăţi a controlului, apăsând butonul (…) după ce în prealabil am selectat
evenimentul On Click, fie selectând Build event din meniul contextual al controlului.

Imagine (image) – Obiect de control care permite afişarea unui fişier grafic cu extensia
.bmp, .ico, .gif, etc. Acest fişier se află în afara bazei de date şi nu poate fi modificat din
Access.

Obiect cadru nelegat (unbound object frame) – Obiect de control care permite afişarea în
formular a unui obiect (document, grafic, multimedia) importat dintr-o altă aplicaţie
Windows (Word, Excel, Paint, Sound Recorder).

Obiect cadru legat (bound object frame) – Obiect de control care permite afişarea în
formular a unui obiect memorat într-un câmp de tip OLE Object al unei tabele.

Delimitator de pagină (page break) – Obiect de control care împarte formularul în mai
multe pagini. Nu este afişat pe formular la execuţie dar determină imprimanta să facă salt la
pagină nouă în cazul tipăririi formularului.

Control de tip tab (tab control) – Obiect de control care permite gruparea celorlalte
controale amplasate în formular pe pagini asemănătoare cu cele ale unei agende. Trecerea
de la o pagină la alta şi vizualizarea controalelor acesteia se face apăsând indexul din partea
de sus care conţine un text explicativ despre conţinutului paginii.

Subformular (subform) – Obiect de control ce permite ataşarea la un formular a unui alt


formular care trebuie să fi fost creat anterior. De obicei datele din subformular sunt legate
logic de cele din formularul principal.

Linie (line) – Obiect de control care permite amplasarea unei linii în formular. Poate avea
culori şi grosimi diferite, fiind folosită la evidenţierea anumitor zone de pe formular.

Dreptunghi (rectangle) – Obiect de control care permite încadrarea altor controale sau
grupuri de controale în dreptunghiuri de diferite dimensiuni şi culori.

Alte controale (more controls) – Buton de control care permite afişarea altor controale (mai
rar utilizate) înregistrate în Access.
FORMULARE ŞI RAPOARTE 81

Dacă în timpul proiectării dorim să selectăm un obiect vom executa un clic cu mouse-ul
deasupra acestuia. Dacă dorim să selectăm mai multe obiecte simultan, acest lucru se face ţinând
apăsată tasta Shift în timp ce cu mouse-ul dăm clic deasupra obiectelor dorite. Deselectarea se
face ţinând tasta Shift apăsată şi dând clic cu mouse-ul deasupra obiectului care este deja
selectat. Având mai multe obiecte selectate simultan, le vom putea muta, redimensiona sau seta
acele proprietăţi care le sunt comune tuturor.
Fiecare dintre controalele enumerate mai sus, la fel ca şi obiectul Formular (form) despre
care am vorbit mai înainte, au proprietăţi şi evenimente la care pot reacţiona. Proprietăţile
specifice controalelor sunt vizibile în fereastra de proprietăţi atunci când obiectul respectiv a fost
selectat. Principalele proprietăţi ale controalelor ce pot fi amplasate într-un formular sunt:

Proprietăţi ce se referă la aspectul obiectelor de control:

• Caption – conţine un text afişat de către control. Este o proprietate specifică


controalelor care nu-şi modifică valoarea în timpul execuţiei;
• Visible – determină afişarea sau nu a controlului în timpul execuţiei formularului;
• Left – stabileşte coordonata orizontală a colţului stânga sus al obiectului de control;
• Top – stabileşte coordonata verticală a colţului stânga sus al obiectului de control;
• Width – stabileşte lăţimea controlului;
• Height – stabileşte înălţimea controlului;
• Back Style – determină dacă afişarea controlului se face normal sau transparent;
• Back Color – stabileşte culoarea de fundal a controlului;
• Border Style – specifică tipul de linie care va constitui marginea (bordura)
controlului;
• Border Color – specifică ce culoare are bordura (marginea);
• Border Width – specifică grosimea bordurii;
• Fore Color – specifică ce culoare va avea textul afişat de control;
• Font Name – permite alegerea dintre fonturile instalate pe calculator a aceluia cu care
se va scrie textul afişat de control;
• Font Size – stabileşte dimensiunea fontului;
• Picture – specifică numele şi calea fişierului grafic ce va fi afişat în interiorul
controlului (pentru imagini şi butoane de comandă);
• Text Align – specifică modul de aliniere a textului afişat în interiorul controlului
(stânga, dreapta, centrat sau fără aliniere).

Proprietăţi ce se referă la sursa din care obiectele de control se alimentează cu date:

• Control Source – poate fi un câmp dintr-o tabelă sau dintr-o interogare sau poate fi o
expresie de calcul construită cu ajutorul „vrăjitorului” specializat (expresion builder).
O expresie este întotdeauna precedată de semnul =;
• Input Mask – indică formatul folosit la introducerea datelor (numai pentru câmpul
casetă de text);
• Default Value – specifică o valoare implicită pe care o va avea iniţial controlul;
• Validation Rule – specifică o condiţie pe care trebuie să o îndeplinească datele care
sunt introduse în control;
• Enabled – specifică dacă respectivul control este activ sau inactiv.
• Row Source – specifică pentru controalele de tip listă, denumirea sursei de date
pentru elementele listei;
• Row Source Type – specifică pentru controalele de tip listă, tipul sursei de date (tabel,
interogare, listă de valori, etc).
82 Lector univ. drd. Mihai Gavotă - Baze de date

Proprietăţi care se referă la evenimente ce pot avea loc în legătură cu obiectele de control:

• On Click – evenimentul apare la executarea unui clic cu mouse-ul deasupra


controlului;
• On Got Focus – evenimentul apare atunci când controlul este focalizat, adică
pointerul se poziţionează în acest control;
• On Lost Focus – evenimentul apare atunci când controlul este părăsit, adică pointerul
se poziţionează în alt control sau este activată o altă fereastră;
• Before Update – evenimentul se declanşează înaintea actualizării datelor din control;
• After Update – evenimentul se declanşează după actualizarea datelor din control;
• On Change – evenimentul se declanşează atunci când datele din control sunt
modificate.

Pentru fiecare eveniment se pot specifica acţiunile care vor fi executate atunci când el se
produce. Acţiunile sunt descrise folosind instrucţiuni în limbajul Visual Basic for Applications.

Alte proprietăţi ale controalelor:

• Name – specifică denumirea controlului. Fiecare control are un nume unic. Acest
nume este atribuit automat la crearea obiectului dar poate fi modificat astfel încât să
fie cât mai sugestiv.
• Status Bar Text – specifică un text care va fi afişat la execuţie în bara de status atunci
când controlul este accesat;
• Control Tip Text – conţine mesajul afişat la execuţie atunci când se întârzie cu
mouse-ul deasupra controlului, fără a apăsa butoanele mouse-ului.

Un control foarte util pentru actualizarea datelor din tabelele bazei de date este controlul
subformular (subform). Acest tip de control este folosit în special pentru actualizarea acelor
tabele care sunt legate între ele printr-o relaţie „unu la mulţi”.
Formularul principal afişează o înregistrare din prima tabelă iar subformularul afişează
toate înregistrările relaţionate cu aceasta din cea de-a doua tabelă..
În cazul actualizării simultane a mai multor tabele relaţionate, trebuie ţinut seama că un
formular principal poate conţine oricâte subformulare dar un subformular poate conţine la rândul
său un singur subformular (pot exista maxim trei niveluri de formulare).
Un obiect subformular se poate crea cu ajutorul „vrăjitorului” specializat. Este necesar ca
înainte de a crea un subformular să fie create tabelele şi să se stabilească relaţia între câmpurile
acestora (cheia primară a unei tabele şi cheia externă din cealaltă tabelă).
Să urmărim în continuare modul de creare a unui subformular în care se actualizează
deplasările pe care le fac persoanele angajate la o firmă. Tabelele relaţionate pe care dorim să le
actualizăm sunt Date angajaţi şi Deplasări angajaţi. Considerând tabela de bază ca fiind Date
angajaţi, între tabele poate exista o relaţie “unu la mulţi”, adică unui angajat îi corespund
niciuna, una sau mai multe deplasări.
Legătura dintre cele două tabele se face prin câmpul cod persoana care în prima tabelă
este cheie primară iar în a doua tabelă este cheie externă. Nu este obligatoriu să avem acelaşi
nume pentru câmpurile corespondente din cele două tabele dar acest lucru uşurează procesul.
Formularul principal de actualizare a tabelei Date angajaţi a fost prezentat anterior. Deschidem
acest formular în modul proiectare (design) şi amplasăm în el un control de tip subformular.
FORMULARE ŞI RAPOARTE 83

Dacă este activat butonul „vrăjitor” din fereastra de instrumente, va intra în execuţie
asistentul specializat care va afişa următoarea fereastră de dialog:

Vom alege ca subformular, Deplasări angajaţi, care a fost creat anterior.


În următoarea fereastră de dialog se stabilesc câmpurile din cele două tabele după care s-a
stabilit relaţia. Având în ambele tabele câmpul cod persoana, „vrăjitorul” a identificat singur
legătura. Există şi cazuri în care trebuie să specificăm noi câmpurile de legătură.
84 Lector univ. drd. Mihai Gavotă - Baze de date

Procesul de creare a subformularului se încheie aici şi denumirile câmpurilor după care se


stabileşte legătura sunt înscrise automat în proprietăţile Link Master Field şi Link Child Field,
proprietăţi specifice controlului subformular.
Lansând în execuţie formularul principal (prin Form View), el va arăta ca în figura de mai
jos şi va permite actualizarea simultană a celor două tabele relaţionate.
În acest fel, prin păstrarea corespondenţei între cheia primară şi cheia externă (străină) a
tabelelor este asigurată şi integritatea referenţială a bazei de date.

O altă modalitate de a crea un subformular în interiorul unui formular principal este


următoarea:

1. Se deschide în mod proiectare (design) formularul care constituie formularul


principal;
2. Se activează fereastra de proiectare a bazei de date;
3. Folosind tehnica drag&drop se alege obiectul subformular şi se plasează în interiorul
formularului principal;
4. Se setează proprietăţile obiectelor şi eventual se tratează evenimentele acestora;
5. Se salvează formularul principal.

Orice modificare făcută ulterior asupra subformularului, ca obiect de tip formular, se va


reflecta şi în formularul principal.

7.2. RAPOARTE (REPORTS)


Situaţiile finale pun cel mai bine în valoare informaţiile conţinute într-o bază de date. Ele
sunt necesare în primul rând managerilor dar sunt utile şi celorlalţi operatori care contribuie la
luarea deciziilor.
Rapoartele se constituie ca obiecte ale bazelor de date Access sau ale software-ului
front-end special destinate pentru realizarea situaţiilor finale. Prin intermediul rapoartelor datele
din tabele şi cele rezultate în urma interogărilor pot fi consultate şi listate într-un mod superior.
Access 2000 oferă instrumente evoluate de proiectare a rapoartelor, uşurând astfel foarte
mult munca utilizatorilor care doresc să pună în valoare rezultatele interogărilor lor. Şi aici este
posibil lucrul cu „vrăjitori” iar setul de obiecte oferit proiectanţilor în modul Design View este
FORMULARE ŞI RAPOARTE 85

similar celor de la formulare. Pentru proiectarea rapoartelor sunt disponibile o multitudine de


controale: câmpurile text box ce pot fi formatate pentru afişarea datelor, etichetele (labels),
subrapoartele, obiectele image, obiectele tip figuri geometrice, etc Având la dispoziţie aceste
tipuri de controale, prin îmbinarea lor, proiectarea rapoartelor devine accesibilă şi celor fără o
pregătire informatică superioară în acest domeniu.
Atunci când vom comuta în fereastra de prezentare a bazei de date în secţiunea obiectelor
de tip raport, pe ecran vor apărea, aşa cum am văzut şi la celelalte tipuri de obiecte, cele două
modalităţi de creare a obiectelor de tip raport:

• Create report in Design View


• Create report by using wizard

Dacă există rapoarte create anterior, numele acestora vor fi afişate în continuare.

Opţiunile sunt similare celor de la formularele şi oferă aceleaşi posibilităţi de proiectare


în modul Design View sau în lucrul cu wizard-ul. Deoarece au fost prezentate în detaliu la
capitolul formulare, în continuare se va insista pe particularităţile rapoartelor şi pe câteva
exemple practice de proiectare a acestora.

Iată macheta de proiectare vizuală şi caseta Toolbox a unui raport, obţinute în urma
selectării opţiunii Create report in Design View:
86 Lector univ. drd. Mihai Gavotă - Baze de date

În continuare va urma amplasarea controalelor în macheta de proiectare astfel încât să se


obţină raportul dorit. Titlul raportului şi data listării se scriu de obicei în secţiunea Report
Header, capul de tabel al raportului (ce va trebui să fie prezent pe fiecare pagină) în Page
Header, liniile tabelului în Detail, numărul de pagină în Page Footer, locurile pentru semnături
şi probabil totalurile generale în Report Footer.
Toate acestea vor deveni mai clare după ce vom studia o machetă simplă de proiectare a
unui raport realizată de către un „vrăjitor”.

Să presupunem că se doreşte un raport care să prezinte:

• în ordine alfabetică numele persoanelor, şi pentru fiecare persoană să afişeze:


o adresa,
o data angajării,
o numărul de telefon.

În acest sens vom selecta opţiunea Create report by using wizard, care va determina
parcurgerea următoarei succesiuni de dialoguri:

1.
FORMULARE ŞI RAPOARTE 87

2.

3.

4.
88 Lector univ. drd. Mihai Gavotă - Baze de date

5.

6.

Iată raportul furnizat de wizard în mai puţin de 30 de secunde:


FORMULARE ŞI RAPOARTE 89

Macheta de proiectare a raportului (generată automat de wizard) în modul Design este:

Se observă:
• titlul raportului Date angajati scris într-un control Text box în secţiunea Report
Header,
• capul de tabel în secţiunea Page Header,
• conţinutul tabelului in secţiunea Detail,
• data ( =Now( ) ) şi numărul de pagină Page … în Page Footer.

O altă facilitate puternică a rapoartelor Access este Sorting and Grouping care oferă
posibilitatea grupării informaţiilor afişate în raport.
Să presupunem că ni se solicită afişarea raportului anterior cu numele persoanelor şi
informaţiile aferente acestora (adresa şi telefonul) grupate după data angajării. Forma de
raport solicitată este:
90 Lector univ. drd. Mihai Gavotă - Baze de date

Acest raport va fi obţinut în urma unor modificări minime făcute în modul de lucru
Design View asupra machetei de proiectare a raportului anterior. Va fi necesară o nouă secţiune:
data angajarii Header şi o grupare crescătoare (ascending) după acest câmp (data angajării).
Apelând meniul contextual prin clic pe butonul drept al mouse-ului vom obţine:

Alegând opţiunea Sorting and Grouping din meniul contextual, va apărea următorul
dialog în care vom alege câmpul data angajării ca primă cheie de grupare, Ascending ca ordine
de sortare crescătoare şi vom schimba în Yes valoarea câmpului Group Header:
Nu am setat la valoarea Yes şi opţiunea din câmpul Group Footer pentru că nu dorim să
scriem nimic atunci când se termină un grup de persoane angajate la aceeaşi dată. De obicei în
secţiunile de sfârşit ale grupurilor se afişează totaluri ale valorilor câmpurilor pentru fiecare
grupă.

În urma acestor operaţiuni macheta de proiectare va deveni:


FORMULARE ŞI RAPOARTE 91

Se observă apariţia unei secţiuni noi: data angajarii Header.


În continuare prin drag & drop vom trage eticheta data angajării din capul de tabel în
această secţiune, şi apoi tot prin drag & drop, alături, vom plasa câmpul (controlul Text box)
data angajării din Detail.
Macheta de proiectare va deveni:

Pentru a afişa data angajării îngroşat (bold) şi în formatul Medium Date este necesar să
fie schimbate proprietăţile acestui control. Apelând meniul contextual al controlului şi solicitând
opţiunea Properties vom avea acces la proprietăţi:
92 Lector univ. drd. Mihai Gavotă - Baze de date

Dacă se doreşte vizualizarea pe ecran a raportului se apasă butonul din


Toolbar. Va fi afişat pe ecran raportul în forma solicitată, adică cea care a fost prezentată când
s-a formulat problema.
8. LUCRUL CU HIPERLEGĂTURI
ŞI GENERAREA PAGINILOR WEB

8.1. SCURTĂ INTRODUCERE


În timp, descoperirile ştiinţifice au schimbat fundamental modul de comunicare şi
relaţionare al oamenilor. Noile forme de comunicare au influenţat, fiecare în felul ei societatea.
Tiparul, a făcut posibilă în secolul XV multiplicarea textului şi a determinat o creştere a
circulaţiei informaţiei, care în cele din urmă, a reprezentat baza pe care s-au clădit multe
schimbări radicale ale acelor vremuri.
În secolul XX radioul şi televiziunea au adus sunetul şi imaginea. Prima generaţie
mass-media electronică a extins accesul individului la informaţie, exercitând asupra unei largi
părţi a populaţiei o influenţă de omogenizare. Această dezvoltare a avut un rol important în
formarea societăţii informaţionale, o realitate fundamentală a epocii prezente.
În ultimii ani o nouă tehnologie comunicaţională începe să se impună: reţelele interactive
de calculatoare ce fac posibile stocarea şi livrarea unei mari cantităţi de informaţie către unul sau
mai mulţi receptori.
Informaţia procesată digital în aceste reţele poate fi multiplicată, manipulată şi distribuită
cu mare uşurinţă. Mai mult, spre deosebire de comunicarea unidirecţională specifică
mass-mediei tradiţionale, reţelele interactive se bazează pe un flux comunicaţional
omnidirecţional care permite utilizatorului asumarea unui rol activ. Mulţi cercetători susţin că
reţelele interactive deţin potenţialul de revoluţionare a modului nostru de a comunica, a munci, a
cumpăra şi a ne distra. Revoluţie sau nu, un lucru este însă cert: ele au şi vor avea un impact
semnificativ asupra vieţii noastre.
În prezent cea mai accesibilă şi întinsă reţea interactivă este internetul, „reţeaua
reţelelor”. Un sinonim tot mai mult utilizat pentru internet este „autostrada informaţională”. Până
acum 10-15 ani, utilizarea internetului era limitată doar la câteva medii universitare, ea exista
doar în lumea oamenilor de ştiinţă, a cercetătorilor şi a studenţilor. În prezent, internetul are peste
100 de milioane de utilizatori, rata de creştere exponenţială nefiind egalată de nici un alt mediu
tradiţional.
Creşterea utilizării internetului a fost şi este determinată de îmbunătăţirea interfeţelor de
acces reprezentate în principal de browser-ele de navigare, care au devenit din ce în ce mai
prietenoase, de scăderea costurilor serviciilor de telecomunicaţii, a calculatoarelor şi aparatelor
adiţionale (modem, etc) şi, poate cel mai important, de posibilitatea de a uşura comunicarea
dintre oameni şi de a prezenta informaţie ştiinţifică, comercială, publicitate şi divertisment.
Presiunea creată de creşterea explozivă a internetului din ultimii zece ani a determinat
marile firme de software să-şi regândească politicile de dezvoltare a produselor informatice astfel
încât acestea să respecte standardele de interfaţă Windows în lucrul cu utilizatorul şi să ofere pe
lângă facilităţile specifice programelor de aplicaţie şi facilităţi de comunicare şi acces prin
internet. Astfel, firme cum sunt Microsoft, Borland-Inprise, IBM au început să creeze medii
vizuale de dezvoltare rapidă a aplicaţiilor software în care clasele de obiecte internet deţin o
pondere din ce în ce mai mare. Posibilităţile oferite de aceste produse au determinat dezvoltatorii
de aplicaţii software să utilizeze noile tehnologii şi să includă în aplicaţiile lor facilităţi de
94 Lector univ. drd. Mihai Gavotă - Baze de date

comunicare cu utilizatorii, de accesare la distanţă a datelor şi informaţiilor de comerţ electronic,


de documentare, toate acestea prin intermediul serviciilor internet.
De asemenea, noile sistemele de operare au început să ofere funcţii şi programe
performante de apel la serviciile internet care să facă posibilă funcţionarea optimă a aplicaţiilor
ce solicită accesul la internet.
În prezent adresele Web şi adresele de e-mail au intrat în limbajul curent şi apar tot mai
des pe cărţile de vizită. Prin intermediul lor, între utilizatori, poate fi vehiculat cu costuri foarte
reduse un volum impresionant de informaţie.

8.2. WORLD WIDE WEB


World Wide Web sau WWW este cel mai utilizat şi cel mai nou serviciu de informaţii
care a apărut pe internet. De departe cele mai dese motive de folosire a internetului sunt
serviciile WWW şi poşta electronică.
Standardul WWW a fost definitivat în 1992 de către CERN (Laboratorul European
pentru Particule Fizice), dar dezvoltarea accelerată a Web-ului a început în 1993 când NCSA
(National Centre for Supercomputing Application) a creat primul browser grafic de Web –
Mosaic.
World Wide Web-ul se bazează pe o tehnologie denumită hypertext. De fapt WWW este
o încercare de organizare a tuturor informaţiilor din Internet, plus orice alte informaţie locală, ca
un set de documente hypertext. Trecerea de la un document la altul se face prin legături.
Înainte de browser-ele grafice, utilizarea web-ului şi în general a internetului necesita
cunoaşterea unor comenzi complicate, iar pe ecranul calculatorului nu era afişat decât text
simplu. Browser-ele moderne şi WWW au transformat internetul într-o colecţie de documente
grafice prin care utilizatorul poate să navigheze folosind o interfaţă de tip “point-and-clic” bazată
pe hiperlegături. Când utilizatorul de Web dă clic pe o legătură (cuvânt subliniat / colorat, buton
sau imagine în spatele căruia se ascunde o adresă internet) el se deplasează (la o altă adresă)
într-o altă pagină a aceluiaşi document sau într-un alt document din Web. Paginile sunt
organizate în site-uri de Web care reprezintă colecţii de documente cu aceeaşi temă.
Site-urile de Web au la bază fişiere codificate cu ajutorul unui limbaj de programare
simplu numit HTML (HyperText Markup Language). Comenzile HTML pot fi scrise cu un
editor de text (de exemplu Notepad) dar există şi programe foarte puternice de dezvoltare a
paginilor Web (Frontpage, Dreamweaver şa). Fişierele în format HTML au devenit un standard
al zilelor noastre. Multe aplicaţii informatice între care Word, Access, PowerPoint şi Outlook au
abilitatea de converti şi salva documentele proprii în format HTML. De asemenea ele pot
importa şi lucra cu fişiere HTML.
Simplitatea limbajului de programare HTML şi structura descentralizată a internetului au
determinat în mare parte creşterea explozivă a Web-ului din ultimii ani. Alte două cauze
importante ale creşterii spectaculoase a Web-ului sunt accesibilitatea sa şi independenţa de
platformă.
LUCRUL CU HIPERLEGĂTURI ŞI GENERAREA PAGINILOR WEB 95

8.3. TEHNOLOGII ŞI PRODUSE PROGRAM TIP CLIENT INTERNET


În paralel cu limbajul HTML au început să fie dezvoltate şi alte tehnologii şi standarde
care facilitează şi îmbunătăţesc accesul la paginile Web şi uşurează lucrul cu obiectele bazelor de
date. Iată câteva dintre acestea:

• XML (Extensible Markup Language) o extensie limbajului HTML care face posibilă
păstrarea atributelor de formatare ale documentului iniţial. Access 2000 foloseşte XML
pentru a stoca paginile DAP (Data Access Pages) şi obiectele ADO (ActiveX Data
Objects).
• DHTML (Dynamic HTML) este o tehnologie client care facilitează un acces evoluat la
paginile Web printr-o afişare specială a unor seturi de date şi lansare în execuţie a unor
script-uri cu ajutorul browser-ului din calculatorul client.
• DAP (Data Access Pages) permite distribuirea în internet a datelor din formulare,
interogări şi tabele Access, în formatul DHTML.
• ASP (Active Server Pages) este o aplicaţie oferită de browser-le Internet Explorer
începând cu versiunea 4.0 care permite includerea script-urilor VBScript (VBS) în server
pentru programarea elementelor interactive din paginile Web şi pentru exploatarea
bazelor de date în internet.
• VBS (VBScript – Visual Basic Scripting Edition) este un limbaj de script care utilizează
un set simplificat de funcţii ale limbajului Visual Basic for Applications (VBA) care este
limbajul de programare al Access-ului şi al majorităţii programelor din MS Office 2000.
Codurile VBS pot fi incluse în paginile Web pentru a seta proprietăţile controalelor
ActiveX.

Câteva dintre cele mai importante produse program tip client internet sunt:

• Internet Explorer este în prezent browser-ul cel mai utilizat pentru navigare în internet.
Începând cu versiunea 5.0 oferă facilităţi pentru lucrul cu paginile DAP în Access 2000.
Este compatibil cu standardele HTML, DHTML, XML, ActiveX.
• NetMeeting este un program util pentru colaborarea în reţea. Permite comunicarea vocală
şi organizarea de conferinţe şi videoconferinţe în internet.
• Windows Media este un player pentru fişierele de sunet şi cele video. Poate furniza
conţinut multimedia live şi la cerere prin internet şi intranet.
• Frontpage este un program util pentru crearea de pagini Web şi întreţinerea site-urilor.
Asigură Database Connectivity şi posibilitatea lucrului cu ASP.
• Personal Web Server (PWS) este un server pentru Windows 9x şi Windows NT 4.0.

Începând cu anul 1997, firma Microsoft şi-a reconsiderat poziţia în privinţa software-ului
pe care îl producea. În acel an a apărut pachetul de programe de birou MS-Office 97 care
conţinea multe îmbunătăţiri faţă de versiunile anterioare. A apărut clientul de e-mail Outlook,
programul Word putea încărca şi salva documente în formatul HTML, iar Access-ul 97 avea
inclus, un nou motor pentru lucrul cu bazele de date mult mai performant, permitea tipul de date
hyperlink şi putea salva conţinutul unor obiecte în format ASP şi HTML. De asemenea era
disponibil un toolbar special pentru navigaţia în internet. Aceste facilităţi reflectau o evidentă
deschidere a firmei către internet.
Microsoft a continuat această linie prin noile pachete de programe MS-Office 2000 şi apoi
prin MS-Office XP care prin componentele lor aduc foarte multe elemente, facilităţi şi
96 Lector univ. drd. Mihai Gavotă - Baze de date

instrumente noi pentru crearea obiectelor apte să lucreze în intranet şi în internet. Access 2000 a
beneficiat din plin de aceste îmbunătăţiri: posibilitatea lucrului cu hiperlegături, generarea
paginilor Web din tabele şi interogări, folosirea şabloanelor HTML, importul / exportul datelor
în/din tabelele HTML, crearea paginilor Web dinamice, posibilitatea lucrului cu tehnologiile
ActiveX, ASP, DAP şi DHTML sunt numai câteva dintre acestea.

8.4. TIPUL DE DATE HYPERLINK


Tipul de dată hyperlink este echivalent cu tipul de câmpuri link din paginile Web care
atunci când sunt accesate produc saltul (deplasarea) către o adresă (marcată printr-o ancoră) în
cadrul aceleiaşi pagini sau către o altă pagină aflată pe acelaşi site sau într-un alt site. De
asemenea, saltul poate fi şi către un fişier aflat în calculatorul local.
Arătam într-un subcapitol anterior că în prezent adresele Web şi adresele de e-mail au
intrat în limbajul curent şi apar tot mai des pe cărţile de vizită. Mai nou a devenit o modă ca
multe CV-uri să fie depuse în pagini Web pentru a putea fi accesate de cât mai multe persoane
din orice loc de pe glob. Este posibil ca persoane individuale să deţină site-uri personale în care
să prezinte produsele activităţii lor.
Să presupunem în acest sens că dorim să extindem datele despre angajaţi cu încă două
informaţii utile: adresele e-mail ale acestora şi adresele paginilor Web personale sau trimiteri
către CV-urilor lor aflate ca fişiere Word (.doc) pe calculatorul local. Pentru aceasta va trebui să
extindem structura tabelei Date angajaţi cu încă două câmpuri: adresa e-mail şi adresa web /
CV. Evident cele două câmpuri vor trebui să fie de tipul hyperlink. Vom insera aceste câmpuri în
structura tabelei Date angajaţi, sub câmpul adresa:

După salvarea modificărilor, la consultarea tabelei Date angajaţi va fi disponibilă


următoarea fereastră prin intermediul căreia pot fi încărcate / actualizate datele în modul
Datasheet View:
LUCRUL CU HIPERLEGĂTURI ŞI GENERAREA PAGINILOR WEB 97

Se observă cele două câmpuri noi (adresa e-mail şi adresa web / CV) în care sunt
încărcate câteva date adecvate tipului hyperlink.
Printr-un clic dat pe butonul din dreapta al mouse-ului când suntem plasaţi pe un câmp
hyperlink, Access-ul deschide un meniu contextual care prin opţiunea Hyperlink prezintă un
submeniu ce oferă următoarele posibilităţi (Edit Hyperlink …, Open, Open in New Window,
Copy Hyperlink, Add to Favorites, Display Text, Remove Hyperlink):
98 Lector univ. drd. Mihai Gavotă - Baze de date

Alegând Edit Hyperlink se va lansa un dialog care face posibilă încărcarea datelor de
hiperlegătură:

• textul care va apărea în câmp


• adresa de Web sau de e-mail
• subiectul care se doreşte să apară în linia Subject a mesajului e-mail

La apăsarea butonului Screen Tip… va apărea următorul dialog:

care permite încărcarea mesajului de ajutor (sfat)


ce se doreşte să apară pe ecran dacă utilizatorul
întârzie mai mult de 2 secunde cu prompter-ul
mouse-ului deasupra câmpului fără să apese
nici-un buton.

În mod similar s-au încărcat şi datele din câmpul adresa web / CV unde în locul adresei
e-mail au fost introduse adresele Web ale angajaţilor (exemplu: www.moresoft.ro).
LUCRUL CU HIPERLEGĂTURI ŞI GENERAREA PAGINILOR WEB 99

Dacă a fost introdusă o adresă Web dialogul de încărcare a datelor de hiperlegătură va fi:

Se observă existenţa butoanelor File…, Web Page şi Bookmark… Astfel, dacă se


doreşte, există posibilitatea ca în câmpul de adresă să fie ales prin intermediul butonului File un
nume de fişier existent pe calculatorul local sau în intranet. De exemplu la înregistrarea 4 din
tabela Date angajaţi s-a ales fişierul CV Dan Vasilescu.doc. În plus, dacă respectivul fişier este
un fişier .doc sau .html opţional, este posibilă deschiderea lui direct la o anumită secţiune, care
ar putea fi o ancoră dintr-un fişier html, un bookmark dintr-un fişier Word sau chiar un simplu
cuvânt sau o expresie din acel fişier.
Să presupunem că pentru Dan Vasilescu care nu are pagină Web personală unde să existe
CV-ul său, s-a ales prezentarea pentru consultare a conţinutului fişierului CV Dan Vasilescu.doc
din calculatorul local. Pentru că se doreşte ca fişierul să se deschidă direct la capitolul Studii, la
adresă se va trece:

CV Dan Vasilescu.doc#Studii

Este de remarcat caracterul # care desparte numele fişierului de numele secţiunii sau
cuvântul dorit. În acest caz secvenţa din dialogul de hyperlink este:
100 Lector univ. drd. Mihai Gavotă - Baze de date

8.5. GENERAREA PAGINILOR WEB


O altă clasă de obiecte pusă la dispoziţie de Access 2000 este cea a paginilor internet –
Pages.

Secţiunea Pages oferă trei opţiuni:

• Create data access pages in Design view – crearea paginilor internet de acces la date în
modul de lucru Design view.
• Create data access pages by using wizard – crearea paginilor internet de acces la date
utilizând „vrăjitorul” specializat.
• Edit Web page that already exists – modificarea unor pagini Web ce au fost realizate
anterior. Acestea pot fi fişiere HTML create cu Access sau cu alte produse. Opţiunea
pune la dispoziţia proiectanţilor un instrument vizual de lucru care rivalizează cu multe
alte produse performante din aceeaşi categorie.

Dacă vom alege Create data access pages by using wizard vom intra într-o succesiune de
dialoguri care, completate din aproape în aproape, vor construi din sursele de date selectate
(tabele şi interogări) pagina internet ce va conţine câmpurile necesare pentru consultare sau
actualizare. Totodată utilizatorului din internet sau din intranet îi va fi pus la dispoziţie un set de
instrumente pentru navigarea în cadrul colecţiei de date disponibile:

Să presupunem că se doreşte o pagină internet care să facă disponibilă actualizarea la


distanţă a următoarelor câmpuri din tabela Date angajaţi:

nume persoana, adresa, adresa e-mail, adresa web / CV, data angajării, telefon şi
observaţii.
LUCRUL CU HIPERLEGĂTURI ŞI GENERAREA PAGINILOR WEB 101

Pentru acesta, după ce dăm dublu-clic pe opţiunea Create data access pages by using
wizard va apărea următorul dialog prin intermediul căruia vor fi selectate din tabela Date
angajaţi câmpurile dorite:

După apăsarea butonului <Next> va apărea un alt dialog care permite opţional gruparea:
102 Lector univ. drd. Mihai Gavotă - Baze de date

Următorul dialog ne oferă posibilitatea alegerii unor chei de sortare pentru prezentarea
datelor. În acest exemplu s-a ales o singură cheie de sortare - nume persoana - care va determina
afişarea înregistrărilor în ordine alfabetică:

După apăsarea butonului <Next>, ultimul dialog solicită numele paginii:


LUCRUL CU HIPERLEGĂTURI ŞI GENERAREA PAGINILOR WEB 103

Nu mai rămâne decât de apăsat butonul <Finish> şi pagina este gata. Ea va fi prezentată
în modul de lucru Design View pentru a putea fi operate eventuale modificări (dacă se consideră
necesar). Va apărea o machetă de proiectare foarte asemănătoare celor folosite pentru crearea
formularelor:

Fără nici o modificare în formular, mergând numai pe ce a propus wizard-ul, la lansarea


în execuţie (prin clic pe butonul View) se va obţine:

Această pagină se poate salva cu numele Date_angajaţi.htm. Va rezulta un fişier HTML


posibil de consultat prin intermediul browser-ului Internet Explorer.
104 Lector univ. drd. Mihai Gavotă - Baze de date

Dacă pe calculator este instalat un server Microsoft atunci la lansarea fişierului


Date_angajaţi.htm sub Internet Explorer va apărea următoarea fereastră aproape identică cu
cea de sub Access:

Diferenţa este că aşa cum pagina este văzută sub programul Internet Explorer lansat de
pe calculatorul local, tot aşa ea va fi văzută sub un alt Internet Explorer lansat de pe un
calculator aflat la distanţă (eventual într-o altă ţară de pe un alt continent).
Dacă pe calculatorul ce conţine baza de date este instalat un server Microsoft de exemplu
PWS (Personal Web Server) şi numele server-ului este moresoft, şi dacă fişierul
Date_angajati.htm este plasat în folder-ul C:ăInetPubăwwwroot, atunci comanda din linia de
adrese a browser-ului (care obligatoriu trebuie să fie Internet Explorer) va fi:

http://moresoft/Date_angajati.htm
9. ADMINISTRAREA ŞI ASIGURAREA SECURITĂŢII BAZELOR DE DATE
ACCESS

Bazele de date moderne au fost proiectate astfel încât să asigure facilităţi de lucru în
reţea. Majoritatea dintre ele pot funcţiona în regim multiutilizator şi oferă deschidere către
internet. De aceea, securitatea bazelor de date este un domeniu ce nu mai poate fi ignorat. Pe
lângă performanţele de conectivitate, de acces la date, de asigurare a integrităţii acestora,
posibilităţile de import / export, instrumentele de dezvoltare oferite, elementele de securitate
constituie de asemenea criterii importante atunci când se alege un tip sau altul de bază de date.
Access 2000 este un sistem de gestiune a bazelor de date modern la proiectarea căruia pe
lângă toate celelalte elemente de performanţă s-au avut în vedere ca priorităţi şi posibilităţile de
compactare, recuperare şi reparare a datelor în cazul apariţiei unor defecte dar şi asigurarea unui
puternic sistem de securitate.
Defectele ce necesită o reparare a datelor pot fi datorate unor cauze interne sau externe
cum sunt:
• întreruperea accidentală a curentului electric în timpul lucrului
• defectarea unor zone de pe hard-disc
• procesări greşite ale datelor de către programele de aplicaţie
• alocări defectuase ale spaţiului de memorare datorate sistemului de operare
• defecte ale memoriei RAM
• defecte datorate procesorului, etc.

Asigurarea unui sistem solid de securitate a fost de asemenea una dintre priorităţi. În ceea
ce priveşte asigurarea securităţii datelor, Access pune la dispoziţie:

• posibilităţi de criptare / decriptare a bazei de date


• lucrul cu parole la nivelul global al bazei de date
• lucrul cu parole la nivelul utilizator
• posibilitatea acordării diferenţiate a drepturilor asupra obiectelor bazei de date pe
proprietari, grupuri şi nume de utilizatori.

Compactarea, recuperarea, repararea datelor şi prezentarea elementelor de configurare a


securităţii Access vor constitui următoarele teme abordate.

9.1. COMPACTAREA ŞI REPARAREA DATELOR


În timpul lucrului, pentru a creşte randamentul, Access-ul gestionează într-un mod
propriu, intern, spaţiul fişierelor .mdb în care sunt memorate tabelele şi celelalte obiecte ale
bazelor de date.
Pentru Access 2000 sunt prioritare în primul rând viteza de acces la date şi de procesare a
acestora. Spaţiul ocupat pe hard-disc de către bazele de date (fişierele .mdb) nu mai reprezintă o
106 Lector univ. drd. Mihai Gavotă - Baze de date

problemă pentru calculatoarele moderne (echipate cu hard-discuri ce oferă capacităţi de peste 10


GB).
Pentru a creşte performanţa de lucru cu bazele de date, de cele mai multe ori Access 2000
sacrifică spaţiul ocupat de acestea pe hard-disc, ceea ce face ca în timp fişierele .mdb să-şi
mărească dimensiunile într-un mod aparent nejustificat. De asemenea, datorită unei exploatări
necorespunzătoare sau unor cauze externe, bazele de date se pot „corupe” ceea ce poate
determina pierderea de date, inconsistenţa bazelor de date, „ruperea” legăturilor dintre tabele,
lucrul defectuos al obiectelor bazei de date, lipsa vizibilităţii acestora, pierderea accesibilităţii la
date, etc
La deschiderea bazelor de date Access-ul lansează un diagnostic de control, în urma
căruia decide dacă acestea sunt „corupte” sau nu. Dacă da, atunci declanşează automat procedura
de reparare. Verificarea integrităţii bazelor de date şi repararea acestora, se mai pot produce şi
atunci când se solicită compactarea.
Atât compactarea cât şi repararea bazelor de date se pot lansa prin intermediul opţiunii –
Compact and Repair Database disponibilă sub Access din meniul Tools, submeniul Database
Utilities:

9.2. CREAREA COPIILOR DE SIGURANŢĂ


De regulă, atât compactarea şi repararea cât şi crearea copiilor de siguranţă sunt sarcini
ale administratorului bazei de date.
Realizarea periodică a copiilor de siguranţă este o activitate de administrare foarte
importantă care, dacă este făcută corect, salvează utilizatorii de multe neplăceri ce ar putea fi
ADMINISTRAREA ŞI ASIGURAREA SECURITĂŢII BAZELOR DE DATE ACCESS 107

cauzate de imposibilitatea reparării şi refacerii corecte a bazei de date „corupte” în urma unor
incidente nedorite.
Literatura de specialitate recomandă câteva reguli legate de crearea copiilor de siguranţă:

• crearea zilnică a copiilor


• existenţa a cel puţin trei copii
• rotaţia copiilor pe diferiţi suporţi de informaţie: benzi magnetice, seturi de dischete
ZIP, CD-uri, hard-discuri
• verificarea periodică a copiilor
• păstrarea copiilor în locuri diferite.

9.3. SECURITATEA BAZELOR DE DATE


Sistemul de securitate al bazelor de date este un domeniu sensibil şi foarte interesant, care
poate influenţa decizia de alegere a unui anume tip de bază de date în funcţie de aplicaţia dorită
şi de felul reţelei gazdă. Faptul că majoritatea bazelor de date moderne pot funcţiona în regim
multiutilizator în intranet sau în internet a schimbat profund concepţia despre sistemul de
securitate al acestora care trebuie să asigure protecţia împotriva încercărilor de acces neautorizat
la obiectele bazei de date.
De regulă, pentru securitatea accesului se utilizează o schemă de autentificare pe baza
numelui de utilizator, apartenenţei la un anumit grup de utilizatori, şi a parolei personale.
Această autentificare asigură funcţii de control al accesului, de păstrare a confidenţialităţii şi de
verificare a sursei.
Fiecare utilizator va dispune de o parolă personală (parolă utilizator). Accesul la
obiectele bazei de date (tabele, formulare, rapoarte etc), este reglementat prin apartenenţa la un
grup de lucru care are anumite drepturi de acces.
Toţi utilizatorii au acces diferenţiat la informaţii şi la aplicaţii, în funcţie de grupul căruia
îi aparţin şi de numele de utilizator alocat.
Alte forme de protecţie sunt accesul pe bază de parolă la nivelul bazei de date şi criptarea
acesteia cu posibilitatea de decriptare prin intermediul unei parole.

9.3.1. Principiile securităţii bazelor de date în reţele locale


Literatura de specialitate recomandă următoarele principii de securitate ce trebuie
respectate la nivelul reţelei locale (LAN) şi al bazelor de date:

• Fiecare utilizator al reţelei trebuie identificat înainte de a i se permite accesul în reţea.


• Accesul la resursele din reţea trebuie diferenţiat în funcţie de drepturile utilizatorului la
acestea.
• Acţiunile utilizatorilor trebuie monitorizate pentru a se identifica dacă aceştia au încercat
intrări sau acţiuni frauduloase sau rău intenţionate.
• Conţinutul tabelelor bazelor de date trebuie criptat pentru a nu fi posibilă citirea datelor
conţinute în acestea prin intermediul programelor utilitare.
• Utilizatorii unei baze de date trebuie identificaţi înainte de a li se permite deschiderea
acesteia.
• Sistemul de securitate trebuie să permită acordarea sau retragerea drepturilor utilizatorilor
asupra obiectelor bazei de date.
108 Lector univ. drd. Mihai Gavotă - Baze de date

9.3.2. Protejarea prin parolă la nivelul bazei de date


O metodă simplă de asigurare a securităţii bazelor de date Access este protejarea acestora
printr-o parolă primară de acces. Această parolă va trebui să fie cunoscută de fiecare utilizator al
bazei de date. La fiecare încercare de acces a bazei de date, înainte ca aceasta să fie deschisă, pe
ecran va apărea un dialog care va solicita parola de acces.
Pentru a seta parola primară la nivelul bazei de date este necesar în primul rând ca
administratorul acesteia (care are toate drepturile) să deschidă baza de date în modul Exclusiv şi
nu în modul Shared Access, aşa cum se deschide de obicei, implicit. Dacă o bază de date este
deschisă Exclusiv, atunci ea nu mai poate funcţiona în regimul de lucru multiutilizator, deci
asupra ei nu poate opera decât o singură persoană.
Programul Access oferă posibilitatea de a deschide o bază de date în patru moduri
posibile:

• Open – este modul implicit de lucru în regim multiutilizator (Shared Acces);


• Open Read Only – mod de lucru în regim multiutilizator dar permite numai citirea;
• Open Exclusive – mod de lucru monoutilizator;
• Open Exclusive Read Only – mod de lucru monoutilizator care permite numai citirea.

Pentru a deschide o bază de date în modul Exclusiv trebuie încărcat mai întâi programul
Access şi apoi deschidem baza de date aleasă activând de sub meniul File opţiunea Open
(deschide). Va apărea un dialog Open specific programului Access care va oferi posibilitatea
alegerii modului de lucru dorit:
ADMINISTRAREA ŞI ASIGURAREA SECURITĂŢII BAZELOR DE DATE ACCESS 109

Setarea parolei bazei de date (Set Database Password) devine disponibilă după
încărcarea acesteia în modul Exclusiv (Open Exclusive) şi alegerea opţiunii Security a meniului
Tools:

Opţiunea Set Database Password lansează un dialog prin intermediul căruia va putea fi
setată parola:

Odată setată parola, la fiecare încercare de deschidere a bazei de date va fi lansat un


dialog de introducere a parolei, aceasta trebuind să fie cunoscută de fiecare utilizator..

9.3.3. Criptarea bazei de date


Chiar dacă o bază de date este protejată prin parole şi prin drepturi de acces acordate
diferenţiat utilizatorilor, totuşi poate fi posibilă citirea la nivel fizic a datelor din tabele prin
intermediul unor programe utilitare care permit accesul fizic pe hard-disc la nivel de octet.
Pentru o protecţie completă este necesar ca baza de date să fie păstrată criptată.
110 Lector univ. drd. Mihai Gavotă - Baze de date

Criptarea / decriptarea unei baze de date Access se pot realiza foarte simplu prin
intermediul meniului Tools şi submeniul Security alegând opţiunea Encrypt/Decrypt Database:

9.3.4. Securitatea la nivelul grupurilor şi utilizatorilor


De regulă orice bază de date permite implicit următoarele grupuri de utilizatori:

• Administratorii (Admins) care au toate drepturile asupra bazei de date.


• Utilizatorii obişnuiţi (Users) care au permisiunea de a deschide baza de date dar care au
drepturi diferite şi restrictive asupra obiectelor acesteia. Ei pot lucra doar cu anumite
formulare şi pot consulta numai rapoartele pentru care au aceste drepturi.
• Musafirii (Guests) care de regulă nu primesc cont utilizator şi au drepturi limitate, doar
pentru accesarea anumitor obiecte ale bazei de date.

Între cele mai importante sarcini ale administratorului bazei de date se numără crearea şi
întreţinerea sistemului de securitate al bazei de date. Pe parcurs el poate adăuga grupuri noi de
utilizatori sau poate şterge grupuri existente. Administratorul poate adăuga nume noi de
utilizatori şi poate modifica drepturile acestora asupra obiectelor bazei de date. Aceste operaţiuni
sunt disponibile prin intermediul aceluiaşi submeniu Security prezentat în subcapitolele
anterioare.

De această dată se va lucra cu opţiunile:

• User and Group Permissions


• User and Group Accounts
• User - Level Security Wizard
ADMINISTRAREA ŞI ASIGURAREA SECURITĂŢII BAZELOR DE DATE ACCESS 111

În mod implicit o parte a informaţiilor de securitate sunt menţinute în fişierul


System.mdw aflat în folder-ul …ăOffice al pachetului de programe MS-Office. Utilizatorul
iniţial implicit este Admin şi el are toate drepturile.
După generarea bazei de date este indicat ca fişierul System.mdw să fie copiat în
folder-ul bazei de date (acolo unde există fişierul cu extensia .mdb). Apoi, prin intermediul
programului WRKGADM.EXE va trebui creată o legătură către noua locaţie a fişierului .mdw.
În acelaşi folder …ăOffice se află un shortcut Workgroup Administrator (sau Administrator
grup de lucru MS Access pentru versiunile MS-Office în limba română). Shortcut-ul este o cale
de acces către programul WRKGADM.EXE.
Atunci când va fi lansat acest program, pentru a crea noua legătură, el va afişa
următoarea succesiune de dialoguri:

După apăsarea butonului Browse va apărea un dialog clasic de navigare printre foldere şi
de selectare a fişierului dorit. Vom selecta fişierul SYSTEM.MDW aflat în folderul unde se află
aplicaţia noastră.
112 Lector univ. drd. Mihai Gavotă - Baze de date

Dacă legătura cu noul fişier de securitate s-a realizat corect atunci Access-ul ne va
informa cu următorul mesaj:

Pentru a acorda o parolă utilizatorului iniţial implicit Admin, din submeniul Security va
fi aleasă opţiunea User and Group Accounts care va afişa următorul dialog:

Se observă că iniţial există doar două


grupuri: Admins şi Users. Prin intermediul acestui
dialog pot fi create (adăugate) grupuri noi sau pot fi
şterse grupuri. De asemenea poate fi schimbată
parola utilizatorului curent (în cazul nostru Admin).

Pentru a crea sau şterge grupuri este disponibil dialogul Groups:

Butoanele <New> (nou) şi <Delete> (şterge) vor


putea fi folosite în aceste scopuri.
ADMINISTRAREA ŞI ASIGURAREA SECURITĂŢII BAZELOR DE DATE ACCESS 113

Pentru a alege o nouă parolă va trebui ales panoul Change Logon Password care va
afişa:

Aici sunt specifice câmpurile Old Password (parola


veche), New Password (parola nouă) şi Verify un câmp
util pentru a verifica, prin reînscriere, corectitudinea
parolei noi.
Câmpul Old Password este lăsat vid deoarece
iniţial utilizatorul implicit Admin nu are parolă.

Drepturile utilizatorilor asupra obiectelor bazei de date pot fi:

• Open / Run – deschide şi lansează în execuţie


• Read Design – citeşte proiectul
• Modify Design – modifică proiectul
• Administer - administrează
• Read Data – citeşte datele
• Update Data – actualizează datele
• Insert Data – inserează datele
• Delete Data – şterge datele.

Pentru atribuirea drepturilor (permisiunilor) utilizatorilor şi grupurilor, precum şi pentru


schimbarea proprietarilor obiectelor bazei de date, din meniul Tools, submeniul Security, va fi
aleasă opţiunea User and Group Accounts care va afişa:

După selectarea utilizatorului sau grupului de utilizatori


se pot acorda (prin bifare / debifare) permisiunile dorite
asupra obiectelor bazei de date.
ANEXA 1 – STRUCTURA TABELELOR UTILIZATE
ÎN EXEMPLE. RELAŢIILE DINTRE TABELE

Date angajati:
Nume câmp Tip date Memorie rezervată
cod persoana Number Long integer
nume persoana Text 50
adresa Text 50
adresa e-mail Hyperlink ≤ 2048
adresa web / CV Hyperlink ≤ 2048
cod functie Number Integer
cod studii Number Byte
data angajarii Date/Time 10
telefon Text 20
observatii Memo ≤65535

Deplasari angajati:
Nume câmp Tip date Memorie rezervată
cod persoana Number Long integer
data deplasarii Date/Time 10
locul deplasarii Text 50
cost transport Number Single
cost diurna Number Single

Nomenclator functii:
Nume câmp Tip date Memorie rezervată
cod functie Number Integer
denumire functie Text 50
cod categorie functie Number Byte

Nomenclatorul categoriilor de functii:


Nume câmp Tip date Memorie rezervată
cod categorie functie Number Integer
denumire categorie Text 50
functie

Nomenclator studii:
Nume câmp Tip date Memorie rezervată
cod studii Number Byte
denumire studii Text 50
ANEXA 1 – STRUCTURA TABELELOR UTILIZATE ÎN EXEMPLE. RELAŢIILE DINTRE TABELE 115

Relaţiile dintre tabele:


ANEXA 2 – PROBLEME PROPUSE

Reguli de normalizare

Problema 1

Presupunând că se doreşte crearea unei baze de date în care se va ţine evidenţa literaturii
şi sunt de interes următoarele informaţii:

Titlul cărţii
ISBN
Preţul cărţii
Autorii cărţii (autor1, autor2, autor3)
Numele editurii
Anul apariţiei
Categoria cărţii (beletristică, ştiinţifică, SF, etc)
Adresa editurii (oraş, str., nr., sector, cod)

Stabiliţi structura de tabele a bazei de date şi aplicaţi regulile de normalizare.

Tabele

Problema 1

Creaţi tabela Date angajaţi având o structură conform anexei 1. Adăugaţi un câmp foto
de tip OLE object în care se vor memora fişierele digitizate ce conţin fotografiile persoanelor
obţinute în urma scanării sau de la un aparat foto digital. Încercaţi inserarea unei imagini şi apoi
consultarea acesteia. Utilizaţi în acest sens meniul contextual al celulei respective.

Problema 2

Consultaţi tabela Date angajaţi în modul Datasheet View. În timpul acestei consultări:

• Redimensionaţi mărimea celulelor pe verticală şi pe orizontală astfel încât să fie


vizibilă toată informaţia conţinută de acestea.
• Schimbaţi fontul de afişare şi mărimea acestuia.
• Sortaţi tabelul în ordinea crescătoare a numelor persoanelor şi apoi în ordinea
descrescătoare.
• Căutaţi un anumit nume folosind comanda Find.
• Încercaţi o filtrare (filter) a datelor.
ANEXA 2 – PROBLEME PROPUSE 117

• Comutaţi în modul Design şi apoi înapoi în Datasheet View.


• Utilizaţi facilităţile Hyperlink ale câmpurilor adresa e-mail şi adresa web / CV.
• Redimensionaţi câmpul adresa de la 50 la 70 caractere.
• La câmpul data angajării introduceţi o mască de tipul Medium Date.

Problema 3

Adăugaţi în tabela Date angajaţi un câmp numit cod stare care va memora starea în care
se află angajatul (prezent, în concediu de odihnă, în concediu medical, învoit, în deplasare,
absent nemotivat). Creaţi o tabelă nouă numită Nomenclator stări prezenţă care să conţină
aceste stări. Creaţi în Relationships relaţia corectă dintre tabele.

Problema 4

Legaţi la baza de date curentă o tabelă externă, dintr-o altă bază de date.
Importaţi o tabelă externă în baza de date curentă.
Exportaţi datele din tabela Date angajaţi într-un fişier Excel (.xls) apoi într-un fişier
HTML.

Problema 5

Utilizând mecanismul Clipboard (copiere şi lipire) copiaţi conţinutul unor celule dintr-o
tabelă în alta, apoi dintr-o tabelă Access într-un tabel Word.

Problema 6

Utilizând wizard-ul, creaţi o tabelă având structura modelului students propus de Access
2000.

Interogări

Problema 1

Afişaţi o listă care să prezinte pentru fiecare angajat: denumirea categoriei de funcţie,
denumirea funcţiei şi tipul studiilor. Lista să fie sortată alfabetic după numele angajaţilor.

Problema 2

Creaţi o interogare care să afişeze numele şi numerele de telefon ale angajaţilor care au
primele cifre ale numărului de telefon 093.

Problema 3

Furnizaţi o listă cu numele şi adresele angajaţilor care au numele Vasile.


118 Lector univ. drd. Mihai Gavotă - Baze de date

Problema 4

Creaţi interogări care să răspundă la întrebările:

• Câţi angajaţi cu studii superioare lucrează în instituţie ?


• Câţi directori există în instituţie ?
• Câţi şefi de departament ?
• Câţi şefi de secţie ?
• Câţi şefi de birou ?

Problema 5

Afişaţi o listă care să prezinte locul deplasării şi data deplasării fiecărui angajat. Lista va
fi sortată crescător după numele persoanelor şi după data deplasării.

Problema 6

Creaţi un query care să şteargă înregistrările tuturor persoanele cu studii medii din tabela
Date angajaţi.

Problema 7

Creaţi un query care să prezinte într-un tabel cu dublă intrare, pe orizontală categoriile de
funcţii iar pe verticală denumirile de funcţii. Celulele tabelului vor conţine numărul de angajaţi
pentru fiecare funcţie dintr-o categorie de funcţii.

Problema 8

Transferaţi rezultatul (lista) unui query într-un tabel Word, apoi într-o foaie de calcul
Excel.

Problema 9

Afişaţi numele persoanelor angajate după 01.01.1999.

Formulare

Problema 1

Utilizând wizard-ul creaţi un formular simplu care să permită actualizarea numelor


angajaţilor, adresei şi telefonului acestora.

Problema 2

Utilizând Chart Wizard creaţi o histogramă care să reprezinte grafic numărul de angajaţi
pentru fiecare tip de studii.
ANEXA 2 – PROBLEME PROPUSE 119

Problema 3

Modificaţi în modul de proiectare Design un formular realizat anterior cu un wizard.

Problema 4

Creaţi un formular nou pentru actualizarea unui nomenclator lucrând numai în modul de
proiectare Design.

Problema 5

Creaţi un formular care pe lângă datele angajaţilor să permită şi actualizarea / consultarea


câmpului foto.

Rapoarte

Problema 1

Utilizând wizard-ul creaţi un raport numit Date angajaţi care să listeze pentru fiecare
angajat: numele, adresa şi telefonul.

Problema 2

Creaţi un raport care să listeze grupat pentru fiecare categorie de funcţii numele
angajaţilor şi adresele acestora.

Problema 3

Creaţi un raport care să listeze grupat pentru fiecare funcţie numele angajaţilor şi adresele
acestora.

Problema 4

Utilizând Label Wizard creaţi un raport care să afişeze etichete cu numele şi adresele
angajaţilor.

Problema 5

Utilizând Chart Wizard creaţi o histogramă care să prezinte distribuţia angajaţilor pe


categoriile de funcţii din instituţie.
120 Lector univ. drd. Mihai Gavotă - Baze de date

Pagini internet

Problema 1

Salvaţi într-un format HTML o listă obţinută dintr-un query care să afişeze în ordine
alfabetică numele angajaţilor, denumirea categoriei de funcţii, denumirea funcţiei şi tipul
studiilor.

Problema 2

Creaţi o pagină internet activă, care să permită crearea / actualizarea / consultarea datelor
angajaţilor, de la distanţă, prin internet, utilizând ca browser Internet Explorer.

Securitatea şi administrarea bazelor de date

Problema 1

Setaţi o parolă pentru o bază de date, apoi criptaţi baza de date.

Problema 2

Creaţi un nou grup de utilizatori numiţi manageri, apoi adăugaţi utilizatorii acestui grup.
Atribuiţi acestor utilizatori permisiuni diferite asupra obiectelor bazei de date.

Problema 3

Compactaţi şi reparaţi baza de date.


ANEXA 3 – DICŢIONAR DE TERMENI

Actualizare – Adăugare, modificare sau ştergere a datelor memorate în tabelele bazei de date.
Valorile actualizate sunt memorate şi salvate în baza de date.

Administrator de sistem – Persoană desemnată să asigure buna funcţionare a sistemelor de


calcul independente sau legate în reţele de calculatoare. Acesta răspunde de buna funcţionare a
hardware-ului şi software-ului instalat pe sistemele de calcul. Administratorul împreună cu
personalul tehnic instalează şi configurează sistemul de operare, acordă parole şi drepturi
utilizatorilor şi programatorilor, asigură instalarea pe sistemele de calcul a tuturor produselor soft
necesare.

Administrator al bazei de date – Persoană desemnată să gestioneze bazele de date de


dimensiuni medii şi mari de tip client-server. Are responsabilitatea de a asigura securitatea
datelor printr-un sistem de parole şi drepturi de acces, integritatea datelor prin operaţiuni de
salvare / restaurare pe diferite suporturi de memorare şi refacerea acestora în caz de defecţiuni
hardware sau software. Administratorul bazei de date cunoaşte foarte bine structura bazei de
date şi are toate drepturile pentru a executa orice comandă admisă de sistemul de gestiune a bazei
de date respective (SGBD).

Aplicaţie – Se foloseşte cu sensul de aplicaţie informatică şi reprezintă un produs software


realizat pentru a executa anumite operaţiuni pe sistemele de calcul. În multe cazuri se foloseşte
specificând sistemul de operare pentru care a fost destinată: aplicaţie DOS, aplicaţie Windows,
aplicaţie UNIX, etc. În funcţie de produsul cu ajutorul căruia a fost realizată, numele aplicaţiei
este însoţit de o extensie specifică. Aplicaţiile direct executabile au extensia .exe.

Bară cu instrumente (Toolbar) – Zonă de ecran orizontală sau verticală în care sunt grupate
butoane de comandă prezentate sub forma unor pictograme sugestive. Butoanele componente
sunt grupate în mod logic şi sunt active sau inactive în funcţie de operaţiunea care este în
execuţie în momentul respectiv.

Bară de derulare (scroll bar) – Se referă la bara orizontală sau cea verticală prezentă în partea
de jos respectiv în partea dreaptă a unei ferestre sau casete de text care permit aducerea în partea
vizibilă a ferestrei a obiectelor sau textului care nu se văd în momentul respectiv.

Bară de titlu – Zona aflată în partea de sus a unei ferestre, de obicei de culoare albastră în care
este scris titlul ferestrei şi în care sunt plasate pictogramele de activare a meniului ferestrei, de
minimizare / maximizare şi de închidere a ferestrei.

Bază de date (database) – Set de tabele cu date dintr-un anumit domeniu împreună cu alte
obiecte necesare gestionării acestora: interogări, formulare, rapoarte, proceduri. În Access toate
acestea se memorează într-un singur fişier cu extensia .mdb a cărui organizare fizică este
asigurată şi optimizată de Microsoft Jet Engine. Există şi baze de date care gestionează separat
aceste obiecte în fişiere independente.
122 Lector univ. drd. Mihai Gavotă - Baze de date

Bază de date distribuită – Bază de date memorată pe mai multe servere de baze de date aflate la
distanţă şi care este accesată de mai mulţi utilizatori simultan folosind tehnologia client-server.
Acest tip de bază de date posedă mecanisme de asigurare a sincronizării datelor în mod automat.

Bază de date relaţională – Tip de bază de date în care tabelele sunt relaţionate între ele prin
valorile anumitor câmpuri. Operaţiunile care se execută asupra tabelelor au la bază algebra
relaţională.

Buton de opţiune (option button) – Obiect de control care apare de obicei în formulare pentru a
se putea marca o anumită opţiune. Dacă sunt posibile mai multe opţiuni acestea sunt prezentate
printr-un grup de butoane de opţiuni dintre care numai unul singur poate fi selectat la un moment
dat. Are formă rotundă, iar atunci când este selectat acesta are mijlocul de culoare neagră.

Buton de comandă (command button) – Obiect de control care are de obicei o formă
dreptunghiulară şi care atunci când este apăsat (când se face clic cu mouse-ul în el) declanşează
executarea anumitor comenzi.

Câmp (field) – Desemnează o coloană dintr-o tabelă de date care conţine valorile unui atribut. O
înregistrare conţine unul sau mai multe câmpuri.

Cheie externă sau străină (foreign key) – Desemnează una sau mai multe coloane (câmpuri)
dintr-o tabelă de date ale căror valori, luate împreună ca o combinaţie, trebuie să fie egale cu
cheia primară a unei alte tabele cu care se află în relaţie. Cheia externă nu trebuie să fie neapărat
unică, adică într-o tabelă pot exista mai multe înregistrări care să aibă aceleaşi valori în
câmpurile care alcătuiesc cheia străină.

Cheie primară sau principală (primary key) – Desemnează una sau mai multe coloane
(câmpuri) dintr-o tabelă de date ale căror valori, luate împreună ca o combinaţie, trebuie să fie
unice pentru fiecare înregistrare. Se spune că într-o tabelă cheia primară (de acces) trebuie să fie
unică şi nenulă, adică fiecare din câmpurile care compun cheia primară trebuie să conţină o
valoare. Se mai numeşte cheie internă.

Client-server – O aplicaţie scrisă în tehnologia client-server are două componente care de obicei
stau pe două sisteme de calcul diferite legate în reţea. Partea de server a aplicaţiei gestionează
anumite informaţii şi recepţionează cereri de la aplicaţiile client pentru a le „servi” (pe acestea)
cu date. Aplicaţiile client sunt cele care transmit cereri de date către server într-un anumit format,
recepţionează datele cerute şi apoi le prelucrează şi eventual le afişează.

Criteriu – O condiţie simplă sau compusă pe care trebuie să o îndeplinească datele pentru a
participa la o anumită operaţiune.

Definirea datelor – Procesul prin care se stabilesc tabelele componente ale unei baze de date,
câmpurile acestora, cheile primare şi externe, relaţiile dintre tabele, regulile de validare pentru
câmpuri, etc.

Diferenţă - Diferenţa a două tabele include acele înregistrări care există în prima tabelă dar nu
există în cea de-a doua (valorile din câmpurile după care se face diferenţa care există în prima
tabelă dar nu există în cea de-a doua).
ANEXA 3 – DICŢIONAR DE TERMENI 123

Entitate de date – Desemnează un obiect sau o activitate despre care se memorează date într-o
tabelă. Caracteristicile sau atributele obiectelor sau activităţilor se memorează în câmpurile
înregistrării din tabelă.

Etichetă (label)– Tip de obiect care permite afişarea unor texte fără ca acestea să poată fi
actualizate în timpul execuţiei.

Eveniment (event) – În urma unei acţiuni pe care o execută un utilizator asupra unui obiect
Access se declanşează un eveniment. Acţiunile se referă în general la mişcarea mouse-ului,
tastarea unor valori, modificarea datelor, activarea formularelor, etc. Evenimentele specifice
fiecărui tip de obiect sunt enumerate în fereastra de proprietăţi a obiectului respectiv. Pentru
cazul în care au loc anumite evenimente se pot specifica succesiuni de comenzi pe care aplicaţia
le execută în mod automat.

Expresie – O formulă de calcul alcătuită din operanzi (numere, câmpuri de date, variabile sau
funcţii) şi operatori (simboluri reprezentând operaţii matematice) .

Fereastra de prezentare a bazei de date (database window) – Fereastră care apare automat pe
ecran atunci când deschidem o bază de date Access. Aceasta reprezintă un fel de tablou de bord
şi prezintă toate obiectele conţinute de baza de date grupate pe tipuri şi sortate în ordine
alfabetică.

Fereastră de proprietăţi (properties window) – Fereastră care poate fi activată atunci când este
selectat un anumit obiect în modul de lucru proiectare (design). În funcţie de tipul obiectului,
fereastra cuprinde toate proprietăţile şi evenimentele acestuia cu valorile lor curente.

Fereastră de dialog (dialog window) – Fereastră destinată culegerii unor informaţii curente de la
utilizator. Aceasta cuprinde o explicaţie asupra datelor care trebuie completate, câmpuri în care
se introduc aceste date şi butoane de comandă. În general sunt ferestre modale, adică nu permit
efectuarea altor operaţiuni înainte de închiderea ferestrei.

Foaie de calcul (datasheet) – Format de prezentare a informaţiilor din tabele şi tip de formular
care este similar cu foaia de calcul din Excel. Foaia de calcul are aspectul unui tabel în care
liniile reprezintă înregistrări, coloanele reprezintă câmpuri şi valorile se introduc în celulele de
intersecţie. În partea superioară a fiecărei coloane este scrisă denumirea câmpului respectiv.

Formular (form) – Obiect Access care prezintă într-o formă convenabilă utilizatorului
informaţiile din tabele pentru a fi actualizate sau numai vizualizate. Pot exista şi formulare
destinate introducerii datelor care nu se memorează în tabele, ci sunt folosite pentru prelucrarea
datelor din tabele.

Fişier bitmap – Fişier cu extensia .bmp care conţine o imagine grafică. Se poate folosi ca fundal
pentru un formular sau un buton.

Font – Stil de caractere folosit pentru afişarea textului. Pot fi combinate pe un formular sau
raport diferite fonturi, de diferite culori sau dimensiuni pentru a obţine efectul estetic şi de
evidenţiere dorit.
124 Lector univ. drd. Mihai Gavotă - Baze de date

Fundal sau fond (background) – Suprafaţa goală a unui formular sau raport. Pe acest fundal se
amplasează obiectele. Unele din obiecte au ele însele fundal.

Forme normale – Stadii în cadrul procesului de normalizare a tabelelor unei baze de date
relaţionale. În urma aplicării celor cinci reguli de normalizare spunem că tabelele bazei de date
se află în prima, a doua, … formă normală.

Front-end – aplicaţii software care asigură utilizatorilor într-o formă prietenoasă, accesul la date
pentru introducerea, actualizarea, regăsirea, consultarea datelor şi listarea situaţiilor finale.
Aplicaţiile sunt realizate de către programatorii de aplicaţii în anumite limbaje de programare
cum sunt: Visual Basic for Applications, C,C++, Java, PHP, PERL etc.

Funcţie (function) – Subprogram apelat dintr-o expresie. Calculează o valoare care este utilizată
pentru calculul expresiei. Exisă funcţii interne Access (built-in functions) puse la dispoziţie de
asistentul („vrăjitorul”) specializat în construirea expresiilor, dar şi funcţii scrise de programatori
într-un limbaj de programare (Visual Basic for Applications pentru Access).

Grilă (grid) – Reţea de linii orizontale şi verticale egal distanţate. Apare pe formulare şi rapoarte
în modul proiectare şi ajută la alinierea obiectelor de control.

HTML – Un limbaj de descriere a paginilor afişate în internet şi consultate cu ajutorul


browser-elor.

Identificator – Nume.

Implicit (default) – Opţiune referitoare la valoarea unei proprietăţi a unui obiect. Marea
majoritate a proprietăţilor obiectelor au iniţial valori implicite care pot fi modificate dacă se
doreşte un efect diferit de cel prefixat. Multe din proprietăţile obiectelor rămân cu valoarea
implicită.

Index – Se asociază tabelelor bazei de date pentru a creşte viteza de căutare. Indexarea se poate
face după unul sau mai multe câmpuri în funcţie de necesităţile de prelucrare. Access utilizează
implicit o indexare internă după câmpurile care alcătuiesc cheile primare şi cheile străine ale
tabelelor.

Integritatea datelor – Asigurarea integrităţii datelor este o cerinţă fundamentală a bazelor de


date relaţionale. Aceasta implică protecţia la modificarea intenţionată sau accidentală a datelor
din tabelele unei baze de date, atât în privinţa domeniului de valori admise pentru câmpurile de
date, cât şi corelaţiile dintre acestea. Asigurarea integrităţii referenţiale reprezintă o parte
componentă a asigurării integrităţii datelor.

Integritate referenţială – Set de reguli pe care trebuie să le respecte datele introduse în tabele
pentru a păstra relaţiile definite la proiectarea bazei de date. Integritatea referenţială impune ca
valorile introduse în câmpurile care alcătuiesc cheia externă a unei tabele să se regăsească în
câmpurile corespondente care alcătuiesc cheie primară a altei tabele, cu care prima este
relaţionată.

Interogare (query) – Interogarea unei baze de date presupune regăsirea dintre toate datele
memorate în tabele a acelora care îndeplinesc anumite condiţii (criterii). Acestea sunt apoi
ANEXA 3 – DICŢIONAR DE TERMENI 125

vizualizate, listate sau prelucrate. În Access interogăm o bază de date fie prin comanda Find fie
prin interogările de tip query.

Interogare de selectare (Select Query) – Tip de interogare ce selectează datele care îndeplinesc
anumite condiţii, efectuează calcule şi afişează rezultatele eventual ordonate. Este cel mai utilizat
tip de interogare.

Interogare de totalizare (Total Query) – Tip de interogare cu care se efectuează calcule


statistice pe grupuri de înregistrări.

Interogare de actualizare (Update Query) – Tip de interogare utilizată pentru a actualiza


câmpurile din una sau mai multe tabele.

Interogare de adăugare (Append Query) – Tip de interogare care adaugă înregistrări la sfârşitul
unei tabele existente.

Interogare de ştergere (Delete Query) – Tip de interogare folosit pentru ştergerea înregistrărilor
din una sau mai multe tabele. Alegerea înregistrărilor care se şterg se face prin specificarea unui
criteriu (o condiţie).

Interogare de creare tabele (Make-Table Query) – Tip de interogare cu ajutorul căruia se


creează o tabelă nouă folosind câmpurile din una sau mai multe tabele existente.

Interogare de creare a tablelor cu mai multe intrări (Crosstab Query) – Tip de interogare
complexă care sintetizează datele pe linii şi coloane. La intersecţia liniilor şi coloanelor se
afişează numărul de elemente, suma valorilor, media sau alte funcţii statistice.

Intersecţie – Intersecţia a două tabele include acele înregistrări care există în ambele tabele
(câmpurile după care se face intersecţia au valori identice în ambele tabele).

Internet – Reţea formată dintr-un număr foarte mare de reţele de calculatoare, sau de
calculatoare izolate distribuite practic pe întreg globul. Internetul este o reţea eterogenă din punct
de vedere al tipurilor de calculatoare şi al software-ului de reţea. Internetul reprezintă suportul de
comunicaţie pentru Web.

Intranet – Reţeaua de calculatoare a unei instituţii, care admite un mod de lucru similar
internetului fără a fi obligatorie conectarea la acesta.

Înregistrare (record) – O linie dintr-o tabelă a bazei de date formată din câmpuri. O înregistrare
are memorate în câmpurile ei informaţii despre o entitate de date.

Înregistrare curentă – Înregistrarea dintr-o tabelă ale cărei câmpuri sunt vizualizate şi pot fi
modificate în cazul în care deschidem un formular, o tabelă sau o interogare. Dacă pe ecran sunt
vizibile mai multe înregistrări simultan, înregistrarea curentă este cea în al cărui câmp se află
cursorul şi este semnalată printr-un marcaj.

Listă (list box) – Obiect de control care pune la dispoziţie o listă de elemente dintre care prin
intermediul mouse-ului sau tastaturii, poate fi ales unul.
126 Lector univ. drd. Mihai Gavotă - Baze de date

Listă derulantă (combo box) – Obiect de control Access care permite utilizatorului să aleagă o
valoare dintr-o listă care se deschide apăsând marcajul (un triunghi cu vârful în jos) aflat în
dreapta zonei în care este amplasat controlul. Pentru selectare se foloseşte mouse-ul sau tastatura.
Obiectul listă derulantă, afişând la un moment dat o singură valoare, dar oferind posibilitatea de
a vizualiza toate elementele din listă, ocupă mai puţin spaţiu pe ecran decât listele simple.

Marcaj de redimensionare – Mici dreptunghiuri negre care sunt evidenţiate pe toate laturile
unui obiect atunci când ne aflăm în modul de lucru proiectare directă şi selectăm obiectul
respectiv. Prin drag & drop ne permite să mărim sau să micşorăm dimensiunea obiectului
respectiv.

Meniu (menu) – Set de opţiuni din care este posibilă alegerea uneia. Fiecare dintre opţiuni
corespunde unei operaţiuni care se va executa. Există şi meniuri complexe care au opţiunile
ierarhizate în submeniuri pe mai multe niveluri. Meniurile pot fi cele standard, ale Access-ului,
sau meniuri create de programatori, specifice anumitor aplicaţii.

Modală – Proprietate a unei ferestre care interzice accesul la alte ferestre atâta timp cât aceasta
nu este închisă.

Matrice de culori – Un dreptunghi care conţine mostre de culori aşezate în formă de matrice.
Acesta este afişat atunci când se apelează la asistenţii de stabilire a culorii unor componente ale
obiectelor (fondul, scrisul, bordura, etc).

Multiutilizator (multiuser) – Mod de lucru al unei aplicaţii. Presupune ca mai mulţi utilizatori să
lucreze în acelaşi timp cu aceeaşi bază de date sau cu o aplicaţie.

Normalizare – Proces care se desfăşoară în faza de proiectare a structurii de tabele a bazei de


date. Normalizarea presupune aplicarea unor reguli asupra tabelelor astfel încât în final să rezulte
o structură optimă a bazei de date.

Nulă (Null) – Valoare pe care o poate avea la un moment dat un câmp de date. Valoarea Null
înseamnă de fapt lipsa unei valori şi nu este acelaşi lucru cu valoarea 0 (zero) pentru câmpurile
numerice sau cu şirul vid pentru câmpurile de tip text.

Obiect – Noţiune specifică programării în mod obiect. Access implementează programarea


obiectuală şi pune la dispoziţia proiectanţilor clase de obiecte prestabilite cum sunt: tabelele,
interogările, formularele, rapoartele dar şi casetele de text, butoanele de comandă, butoanele de
opţiuni, imaginile, linia, etc. Obiectele au o serie de proprietăţi şi funcţii (metode de folosire)
prestabilite, pe care utilizatorii lor le pot configura şi înlănţui astfel încât să se obţină prelucrările
dorite.

OLE (Object Linking and Embedded) – Tehnologie specifică Microsoft care pune la dispoziţie
software-ul necesar pentru accesul la obiectele create cu alte produse. Aceste obiecte pot fi
înglobate ca atare în aplicaţia curentă sau pot rămâne ca obiecte independente şi se creează
numai o legătură către ele.

Operand – Valori ale unor câmpuri, constante, variabile sau funcţii cu care se execută calcule în
cadrul unor expresii.
ANEXA 3 – DICŢIONAR DE TERMENI 127

Operator – Simboluri matematice care arată ce operaţii se efectuează cu operanzii într-o


expresie. În afara operatorilor matematici există şi operatori relaţionali şi logici care se folosesc
în scrierea criteriilor (condiţiilor) de căutare şi selecţie.

Operatori logici – Operatorii And, Or şi Not care sunt folosiţi în expresii logice a căror evaluare
are ca rezultat valoarea Adevărat (True) sau Fals (False).

Operatori relaţionali – Operatori de comparare a doi operanzi, de exemplu: <, >, =, <>.
Rezultatul comparării poate fi valoarea Adevărat (True) sau Fals (False).

Paleta de culori – Un instrument pus la dispoziţie de Access pentru a putea alege într-o formă
interactivă proprietăţile de culoare pentru obiectele create (formulare, rapoarte, butoane, etichete,
câmpuri de editare etc).

Panou de comandă (switchboard) – Tip de formular care apare pe ecran la lansarea în execuţie
a unei aplicaţii. Conţine de obicei numele aplicaţiei, o scurtă prezentare a acesteia şi o serie de
butoane şi meniuri care permit efectuarea operaţiilor specifice aplicaţiei.

Pictogramă (icon) – Imagine grafică de dimensiuni reduse, sugestivă pentru obiectele pe care le
reprezintă.

Procedură – Succesiune de instrucţiuni (comenzi) scrise în limbajul de programare Visual Basic


for Applications pentru efectuarea unei operaţiuni complexe asupra datelor. O procedură este
delimitată de cuvinte specifice, cum sunt Sub şi End Sub.

Procedură eveniment (event procedure) – Procedură asociată unui eveniment care se produce
asupra unui obiect. Pentru fiecare obiect sunt prefixate evenimentele care pot avea loc în legătură
cu acesta.

Produs cartezian – Produsul cartezian a două tabele include toate combinaţiile posibile între
înregistrările primei tabele şi cele ale celei de-a doua (pentru fiecare înregistrare din prima tabelă
se creează toate combinaţiile cu toate înregistrările din cea de-a doua, la fel pentru a doua, a treia,
… înregistrare din prima tabelă).

Proiecţie – Determină selectarea unui număr de coloane dintr-un tabel fără însă a impune
condiţii care să limiteze înregistrările selectate.

Proprietarul bazei de date (database owner) – Persoana care a creat iniţial baza de date. Acesta
deţine controlul asupra tuturor obiectelor bazei de date şi poate acorda altor persoane drepturi
asupra unora dintre ele.

Proprietate – O caracteristică, un atribut al unui obiect care defineşte modul lui de manifestare.
Setul de proprietăţi diferă în funcţie de tipul de obiect. Există proprietăţi care se referă la
identificarea obiectului (nume, titlu), aspect (dimensiune, formă, culoare), sursa de date a
acestuia (tabela, câmpul de date), evenimentele specifice (încărcarea, selectarea, modificarea) şi
altele.
128 Lector univ. drd. Mihai Gavotă - Baze de date

Raport (report) – Obiect Access utilizat pentru tipărirea la imprimantă sau vizualizarea pe ecran
a datelor din tabelele bazei de date grupate, centralizate, totalizate conform necesităţilor de
informare a utilizatorilor.

Rând (row) – O linie dintr-o tabelă a bazei de date formată din câmpuri. Sinonim pentru
înregistrare.

Relaţie – Legătură care se stabileşte între două tabele ale bazei de date prin intermediul cheii
primare dintr-o tabelă şi a cheii externe din a doua tabelă. În Access există mai multe tipuri de
relaţii: unu la unu, unu la mulţi, mulţi la unu.

Reţea locală (LAN) – Reţea de calculatoare formată din sisteme de calcul şi dispozitive
periferice conectate între ele. Acestea rulează software specializat pentru a asigura comunicaţia
în reţea. În cazul unei reţele locale calculatoarele componente sunt dispuse la o distanţă relativ
mică între ele (în interiorul unei instituţii).

Selecţie – Se foloseşte în legătură cu obiectele Access care pot fi selectate printr-un clic dat cu
mouse-ul deasupra acestora. Odată selectate unul sau mai multe obiecte, aceste pot fi manipulate
(mutate, redimensionate, configurate, inserate) ca şi cum ar fi un singur obiect. Termenul se mai
foloseşte pentru a denumi un set de înregistrări alese după unul sau mai multe criterii pe care le
îndeplinesc toate.

Server – Calculator aflat într-o reţea care pune la dispoziţia calculatoarelor clienţi servicii sau
resurse. Pot exista servere dedicate, acestea gestionează lucrul staţiilor de lucru fără a îndeplini
sarcini proprii şi servere nededicate. În cazul bazelor de date client-server de dimensiuni mari
există de obicei servere de baze de date care pun la dispoziţia clienţilor resursele acestora.

SQL (Structured Query Language) – Limbaj de interogare destinat prelucrării datelor conţinute
în bazele de date relaţionale. SQL a cunoscut mai multe forme de implementare dar în prezent
este standardizat şi stă la baza celor mai multe sisteme de gestiune a bazelor de date.

Staţie de lucru – Calculator client într-o reţea de calculatoare care rulează diferite aplicaţii,
unele dintre ele solicitând date de la un server.

Subformular sau subraport – Obiecte de tip formular / raport conţinute de alte obiecte
formular / raport. Se folosesc în cazul unor formulare / rapoarte complexe în care datele din
subformulare / subrapoarte sunt corelate cu cele din formularele / rapoartele principale.

Submeniu – Set de opţiuni care apare pe ecran atunci când este selectată o opţiune dintr-un
meniu. Opţiunile din submeniuri, când sunt selectate, pot determina deschiderea altor submeniuri
de pe nivelul următor.

Sursa de date a înregistrărilor (record source) – Tabelul sau interogarea care stă la baza unui
formular sau raport. Se numără printre proprietăţile unui formular sau raport.

Sursa de date a unui control (control source) – Câmpul dintr-o tabelă sau o interogare de unde
controlul ia datele pe care le afişează şi/sau modifică. Se numără printre proprietăţile obiectelor
care manipulează date.
ANEXA 3 – DICŢIONAR DE TERMENI 129

Tabelă (table)– Obiect component al bazei de date în care sunt memorate datele referitoare la un
obiect sau la o activitate. O tabelă este alcătuită din înregistrări (rânduri) şi câmpuri (coloane).

Tabelă ataşată (link table) – O tabelă care nu este conţinută în baza de date curentă ci se află în
exteriorul acesteia. Tabela ataşată este legată de baza de date şi este vizibilă din cadrul ei. Asupra
tabelei ataşate pot fi efectuate majoritatea operaţiilor care se fac în mod obişnuit asupra tabelelor
proprii.

Tip de date (data type) – Descrie modul de reprezentate internă a informaţiilor care se
memorează în baza de date. Principalele tipuri de date sunt: numeric, text, dată/oră, etc.

Validare – Operaţiune de verificare a datelor care sunt introduse în câmpurile tabelelor bazei de
date. Valorile datelor introduse trebuie să respecte condiţiile impuse de tipul de date al câmpului
(ex: în câmpurile numerice pot fi introduse numere şi nu text) şi condiţiile impuse câmpului prin
regulile de validare.

VBA (Visual Basic for Applications) – Limbaj de programare comun mai multor produse ale
firmei Microsoft. Pentru realizarea unor aplicaţii Access complexe de multe ori nu este suficientă
numai manipularea obiectelor prestabilite prin intermediul meniurilor şi butoanelor ci este
necesară şi scrierea de cod în limbajul VBA.

Vizualizare (View)– Metodă prin care datele sunt prezentate pe ecran pentru a fi consultate de
utilizator. O tabelă, formular sau raport se poate prezenta în mod proiectare (design) sau în mod
vizualizare date (datasheet, form, print preview).

Vrăjitor (wizard) – Instrument pus la dispoziţie de Access pentru a crea mai rapid, în mod asistat
(printr-o succesiune de ecrane şi dialoguri) anumite obiecte sau expresii. Fiecare „vrăjitor” este
specializat pentru o sarcină anume.
BIBLIOGRAFIE

Codd, E.F. (1970). A Relational Model of Data for Large Shared Data Banks. Comunications
ACM.
Délobel, C., Adiba, M. (1991). Bases de donée et systèmes relationnels aux systèmes à Objects.
Paris: InterEditions.
Don, Benange. Azam, Mirza. (2001). Visual Studio 6. Bucureşti: Editura Teora.
Jamsa, K. (1999). Programarea Web. Bucureşti: Editura All.
Jennings, Roger. (1996). Utilizare Access 95. Bucureşti: Editura Teora.
Jennings, Roger. (2000). Totul despre Microsoft Access 2000. Bucureşti: Editura Teora.
Sales, Susan. (2000). Utilizare Microsoft Access 2000. Bucureşti: Editura Teora.
Winemiller, Eric. (2000).Visual Basic 6 - baze de date. Bucureşti: Editura Teora.
***. Documentaţia Microsoft Windows.
***. Documentaţia Microsoft Office 2000.
***. Documentaţia Microsoft ACCESS.
***. (1999). Microsoft Access 2000. Microsoft Press.