Documente Academic
Documente Profesional
Documente Cultură
Judeţean Bacău
“BACOV-IA”
Grup ţintă: Cadre didactice din învăţământul preuniversitar
Braşov, 2011
Investeşte în
OAMENI
CUPRINS
INTRODUCERE ............................................................................................................................. 3
BIBLIOGRAFIE ............................................................................................................................ 73
2
INTRODUCERE
3. Obiective generale
înțelegerea conceptelor de bază privind sistemele de gestiune a datelor utilizate pentru
tezaurizarea informaţiilor
cunoașterea interfeței generale a sistemului Microsoft Office Access® 2007
însușirea modului de a lucra cu tabelele de date şi de a prelucra informațiile prin ordonarea
și filtrarea datelor
însuşirea principiilor de bază privind extragerea şi prelucrarea informaţiilor cu ajutorul
interogărilor
înţelegerea aspectelor privind securitatea informaţiilor tezaurizate sub forma unei baze de
date
3
4. Structura cursului
Cursul este structurat în 4 teme principale. Tema nr.1 se referă la noţiunile teoretice de bază
privind gestiunea informaţiilor în bazele de date. Tema nr.2 prezintă organizarea datelor sub forma
tabelelor în sistemul de gestiune a bazelor de date Microsoft Access®. Tema nr.3 tratează
posibilităţile de prelucrare a informaţiilor tezaurizate în tabele cu ajutorul opţiunilor de ordonare,
filtrare a datelor şi prin intermediul interogărilor. Tema nr.4 include aspecte care ţin de protecţia
informaţiilor prin intermediul formularelor, a parolelor de acces sau prin diferite alte metode puse
la dispoziţie de sistemul software.
În cadrul fiecărei teme sunt incluse aplicații practice sub formă de exemple pe care cursantul
trebuie să le execute în vederea dobândirii deprinderilor practice necesare.
5. Evaluarea
Se va face prin crearea unei aplicații proprii de bază de date, de către fiecare cursant, respectând
un set de cerințe minime: minim 2 tabele având un minim de 15 înregistrări în total. Tabelele
trebuie să conţină un număr minim de 3 câmpuri fiecare. Baza de date va conţine cel puţin 2
interogări care să afişeze selectiv informaţiile din tabele şi 1 formular de afişare a informaţiilor.
4
TEMA NR. 1
NOŢIUNI DE BAZĂ PRIVIND GESTIUNEA INFORMAŢIILOR
CU AJUTORUL BAZELOR DE DATE
5
necesita timpi de căutare relative mari, pentru baze de date de volume mari. Cele mai cunoscute
sisteme ale perioadei sunt CODASYL şi IMS (IBM);
anii 1970 – apariţia modelului relaţional, bazat pe conceptele matematice din algebra
relaţională pentru a grupa datele în mulţimi şi a stabili relaţii între acestea. Modelul este atribuit
lui Edgar Frank Codd care prin lucrarea "A Relational Model of Data for Large Shared Data
Banks“, a marcat un moment important de cotitură în domeniul gestiunii informaţiilor sub formă
de baze de date. În cadrul acestui model, informaţiile sub memorate pe grupuri de obiecte, având
anumite atribuite şi se stabilesc relaţii de dependenţă între grupuri. O anumită informaţie se poate
găsi acum rapid pe baza unei chei unice de identificare a fiecărei înregistrări, nefiind necesară
parcurgerea pas cu pas a bazei de date;
perioada 1970 -1980 – dezvoltarea modelului relaţional, prin apariţia diferitelor sisteme
software bazate pe acest model. Cele mai cunoscute au fost dezvoltate de către MIT
(Massachusetts Institute of Technology), prin sistemele INGRES şi QUEL şi de către IBM, prin
SYSTEM R, SEQUEL şi SQL (Structured Query Language). Ultimul menţionat a devenit în
1987 standard internaţional în domeniu, fiind de fapt un set de instrucţiuni care este inclus în
toate sistemele software utilizate în prezent pentru gestiunea informaţiilor în baze de date;
după anii 1990 – perioada modelelor OODB (Object Oriented DataBase), bazate pe modelul
programării orientate pe obiecte, cercetări în direcţia creşterii vitezei de procesare a informaţiilor
în baze de date tot mai voluminoase, în direcţia bazelor de date bazate pe acces prin internet
(web-based) odată cu dezvoltarea rapidă a internetului şi a reţelelor de calculatoare. Standardul
SQL este permanent dezvoltat şi completat cu instrucţiuni noi, de exemplu prin includerea sa în
limbajele XML şi PHP, utilizate la gestiunea paginilor web.
Odată cu dezvoltarea sistemelor personale (PC), au apărut si primele aplicaţii de baze de date
care foloseau un singur fişier pentru a stoca toată informaţia din baza de date. Ele erau de tip XBase,
un limbaj care s-a răspândit foarte repede. Sistemele care l-au folosit au fost dBase, FoxBase,
FoxPro, care funcţionau sub sistemul MS-DOS. Cea mai cunoscută aplicaţie care folosea limbajul
XBase a fost FoxPro, sistem dezvoltat de firma Fox Software. Astăzi, urmaşul modern al acestui
system este Visual FoxPro şi a fost creat de către Microsoft. Şi în zilele noastre există utilizări care
stochează date în baze de date FoxPro, cel mai cunoscut exemplu este cel gestiunii activităţilor la
Euro Tunel, cuprinzând volume de date de câteva sute de GB.
La începutul anilor 90, Microsoft Corporation a lansat aplicaţia Access, care se bazează în mare
parte pe logica de stocare a sistemului FoxPro, sistem care fusese achiziţionat în 1989. Aplicaţia
Access a devenit, în scurt timp, cea mai folosită pentru gestiunea bazelor de date de pe sistemele
personale. Ajunsă acum la versiunea 13 (denumită 2010), este pregătită să fie transferată oricând
6
către o bază de date de tip Microsoft SQL Server, care beneficiază de facilităţi de access
multiutilizator, în reţelele de calculatoare şi reţele web.
În prezent, bazele de date şi sistemele software care trebuie să le gestioneze se orientează tot mai
mult spre posibilitatea de a avea acces la informaţiile stocate prin internet şi reţelele de calculatoare.
Exemple
Colecţia cărţilor dintr-o bibliotecă, a CD-urilor cu muzică sau a DVD-urilor cu filme
Evidența elevilor, a cadrelor didactice și a disciplinelor dintr-o unitate școlară
Evidența candidaţilor la concursul de admitere la o facultate
Gestiunea bunurilor unei organizații (obiecte de inventar, mijloace fixe etc.)
Gestiunea produselor comercializate de către o societate comercială
Gestiunea producţiei de bunuri într-o unitate de producţie
Evidența personalului unei organizații sau a unei societăţi comerciale
Colecţia electronică a ediţiilor unor ziare
Gestiunea parcului auto al unei societăţi comerciale
şi multe altele….
O bază de date modernă, care se află în pas cu cerinţele lumii informatice de astăzi nu conţine
numai informaţiile propriu-zise, ci şi regulile de gestionare ale acestora (cum ar fi proprietăți ale
datelor, reguli de validare a datelor etc.) precum şi obiectele necesare acestei gestionări (cum ar fi
interogări, formulare, rapoarte, macrocomenzi, acces web etc.).
Pentru ca o bază de date să poată fi construită, utilizată şi prelucrată, într-un cuvânt gestionată
de către utilizatorul uman prin intermediul calculatorului este necesar un limbaj de nivel înalt şi o
1
lb.engleză – database, lb.franceză – base des données
7
interfaţă prin intermediul căreia programatorul şi utilizatorul obişnuit să comunice cu baza de date.
Acest limbaj se mai numeşte generic Limbajul de descriere, manipulare şi prelucrare a datelor
(LDD, LMD, LPD) şi este un sistem de programe specializat, proiectat în acest scop, care poartă
numele de Sistem de Gestiune a Bazelor de Date (SGBD), în limba engleză DataBases
Management System (DBMS), în limba franceză Système de Gestion des Bases des Données.
Relaţiile structurale dintre baza de date fizică, sistemul de gestiune şi diferiţii utilizatori sunt
prezentate schematic în figura 1.
Fig. 1 Relaţiile dintre baza de date (BD), sistemul de gestiune (SGBD) şi utilizatori
Analizând diferitele modele de baze de date dezvoltate de-a lungul istoriei, se constată că, în
prezent, cel mai utilizat model este cel relațional.
Un model relaţional de bază de date are ca fundament [1] structuri de date numite tabele în
care sunt stocate informaţiile propriu-zise. Între tabele se stabilesc relaţii de asociere, a căror
existenţă este guvernată de un set de reguli precise. Informaţiile cuprinse în tabele pot fi controlate
de restricţii algebrice.
8
Tabelul (tabela)2 este o structură de tip matrice, în care informaţiile sunt aşezate pe rânduri şi
coloane. Coloanele definesc tipul informaţiei, iar rândurile, valorile acesteia. O coloană, conţinând
un anume tip de informaţie, se numeşte câmp3. Un rând, conţinând valorile corespunzătoare tuturor
coloanelor, se numeşte înregistrare4. Fiecare câmp al tabelului are o denumire prin intermediul
căreia va putea fi identificat atunci când se face referire la el. Lista câmpurilor tabelului formează
structura acestuia, care este stabilită de către proiectantul bazei de date după nişte reguli specifice.
Tabelul prezentat mai sus se bazează pe o structură compusă din 4 câmpuri (coloanele
tabelului), având denumirile conform antetului său și conține 3 înregistrări (liniile tabelului). În
fiecare câmp se memorează date de un anumit tip. De exemplu, câmpul Nume conține date de tip șir
de caractere, iar câmpul Data_nasterii date calendaristice.
În orice tabel al unei baze de date fiecare înregistrare trebuie să fie unică, adică valorile
câmpurilor acesteia să difere de ale celorlalte înregistrări pentru cel puţin unul dintre câmpuri. După
valoarea din acel câmp, înregistrarea respectivă poate fi identificată. Acel câmp poartă denumirea
generică de cheie de identificare sau cheie primară5. În exemplul 1, câmpul Cod_unic este cel mai
indicat să fie cheia primară, deoarece trebuie să fie un cod unic atribuit fiecărui elev. În acest caz,
acesta ar putea fi codul numeric personal, numărul matricol etc.
2
lb.engleză – table, lb.franceză – table
3
lb.engleză – field, lb.franceză – champ
4
lb.engleză – record, lb.franceză – enregistrement
5
lb.engleză – primary key
9
În cadrul modelului relaţional, între informaţiile stocate în diferitele tabele ale bazei de date se
stabilesc relaţii de asociere. Acestea constituie unul dintre elementele de esenţă conceptuală a
modelului relaţional al bazelor de date. Pe baza acestui model s-au dezvoltat şi astăzi sunt în
puternică dezvoltare Sistemele de Gestiune a Bazelor de Date Relaţionale (SGBD-R) – Relational
Database Management Systems (R-DBMS), din care face parte şi Microsoft Access®.
O relaţie se stabileşte între două tabele ale bazei de date, prin intermediul a două câmpuri, câte
unul din fiecare tabel, adică este de tip binar (câmp – câmp). Există [1], [3] trei tipuri de relaţii:
Relaţie unu-la-unu (one-to-one) – 1:1 – în care unei înregistrări din primul tabel (partea
stângă) îi corespunde o singură înregistrare în celălalt tabel (partea dreaptă) şi reciproc;
Relaţie unu-la-mai mulţi (one-to-many) – 1:N – în care unei înregistrări din primul tabel îi pot
corespunde mai multe înregistrări în celălalt tabel şi fiecărei înregistrări din al doilea tabel îi
corespunde numai una în primul tabel; primul tabel se numeşte tabel primar sau Parent
(părinte), iar cel de-al doilea, tabel corelat sau Child (copil);
Relaţie mai mulţi-la-mai mulţi (many-to-many) – M:N – în care unei înregistrări din primul
tabel îi pot corespunde mai multe înregistrări în celălalt tabel şi reciproc.
Câmpurile prin care se stabilesc relaţii între două tabele ale bazei de date trebuie să conţină
acelaşi tip de dată. În figura 2 se prezintă schematizat cele 3 tipuri de relații, prin similitudine cu
mulțimile utilizate în matematică.
Mulțimea tuturor relaţiilor stabilite între tabelele unei baze de date formează schema
relaţională6 a bazei de date care este gestionată într-o zonă dedicată a unui SGBD.
6
lb.engleză – relationships scheme
10
Exemplul 2: Bază de date relațională pentru evidența elevilor pe clase
Pentru gestionarea informaţiilor referitoare la elevii dintr-o unitate şcolară se poate proiecta o
structură de date relațională care să conțină, pentru început, 2 tabele:
1. Clase (cod, nivel, litera, anul);
2. Elevi (cod_unic, cod, nume, prenume, data_nastere)
Informaţiile sunt separate în două clase de obiecte: clasele şi elevii.
Tabelul Clase conţine informaţiile
despre structura de clase a unităţii Clase Elevi
şcolare şi are 4 câmpuri. Câmpul cod
reprezintă un cod unic de identificare a cod 1:N cod_unic
fiecărei clase în baza de date şi este cheia nivel cod
primară a tabelului Clase. De obicei, litera nume
anul prenume
structura valorilor unui câmp de acest tip
data_nastere
se alege astfel încât fiecare caracter să
aibă o semnificaţie. De exemplu, valorile
propuse pentru acest câmp (vezi tabelul
Fig.3. Reprezentarea relaţiei între două tabele
de mai jos) pot avea o structură cu
următoarele semnificaţii:
prima cifră să reprezinte nivelul clasei
a doua cifră să reprezinte litera
celelalte două să reprezinte ultimele două cifre din an.
Tabelul Elevi conţine informaţiile despre elevi şi are 5 câmpuri. Pentru a identifica în mod unic
un elev, se utilizează câmpul cod_unic care poate fi CNP-ul sau numărul matricol.
În mod natural, există mai mulţi elevi într-o clasă, adică unei înregistrări din tabelul Clase îi
corespund mai multe înregistrări în tabelul Elevi. În consecinţă, relaţia de legătură dintre cele
două tabele va fi de tipul 1:N, prin intermediul câmpului cod, care are aceeaşi semnificaţie în
ambele tabele. Relaţia se reprezintă în schema conceptuală a bazei de date printr-o săgeată (fig.3).
În mod normal, nu trebuie să existe elevi înregistraţi care să nu aparţină niciunei clase – adică să
nu existe înregistrări în tabelul Elevi care să nu aibă înregistrare corespondentă în tabelul Clase. O
astfel de cerinţă poate fi controlată automat într-un SGBD relaţional, prin configurarea în mod
corespunzător a relaţiei dintre cele două tabele.
Tabelul clase
cod nivel litera anul
1110 I A 2010
1210 I B 2010
2110 II A 2010
2210 II B 2010
... ... ... ...
Bineînţeles că structura propusă mai sus poate fi dezvoltată ulterior prin adăugarea altor
tabele care să memoreze informaţii despre alte clase de obiecte cum ar fi cadrele didactice, sălile
11
de clasă, inventarul, disciplinele etc. sau prin adăugarea de noi informaţii în cele două tabele, cum
ar fi completarea tabelului Elevi cu date despre adresă, telefoane, părinţi etc.
De exemplu, în structura prezentată anterior se adaugă un tabel care să gestioneze informaţiile
despre cadrele didactice. Acesta va putea fi legat printr-o relaţie de tabelul Clase prin atribuţia
cadrului didactic în raport cu clasa de elevi (învăţător sau diriginte).
Pentru gestiunea informaţiilor referitoare la situaţia şcolară a elevilor, baza de date se
completează cu încă două tabele, Discipline şi Catalog, pentru a memora datele care se referă la
aceste două clase de obiecte.
Schema structurală a noii baze de date, completată cu cele sus-menţionate este prezentată în
figura 4.
Clase Elevi
cod cod_unic
nivel cod
litera nume
anul prenume
Atributii_clasa cod_cd data_nastere Catalog
cod_clasa cod_elev
cod_cd cod_disc
atributie Cadre_did Discipline semestru
nota
cod_unic cod_disc data
nume denumire
prenume nivel
grad_did
12
În cadrul modelului relaţional, pe lângă tabele cu structuri definite şi relaţii de asociere între
acestea, trebuie să existe şi un set de reguli de gestionare a informaţiilor, de prelucrare a acestora.
Aceste reguli sunt cuprinse în limbajul de prelucrare a datelor (LPD) care se mai numeşte şi limbaj
de cereri (în majoritatea cazurilor baza de date este utilizată pentru a solicita – a „cere” ulterior
informaţii de un anumit tip).
Odată cu apariţia şi dezvoltarea SGBD-R, au apărut şi diverse tipuri de LPD, majoritatea bazate
pe operatori matematici ai algebrei relaţionale. Unele dintre acestea sunt specifice numai anumitor
SGBD-R, altele au devenit un standard şi formează nucleul mai multor SGBD moderne.
Limbajul SQL (Structured Query Language7) este cel mai cunoscut în domeniu și reprezintă
nucleul multora dintre SGBD actuale [1]. El a fost introdus prima dată în 1974, de către IBM
Research Laboratory, San Jose, California, iar în anul 1986 a fost recunoscut de către ANSI ca
standard internaţional. SQL reprezintă un set de instrucţiuni, majoritatea direct executabile, care
utilizează operatori din algebra relaţională (produs cartezian, reuniune, intersecţie, diferenţă), dar şi
operatori care definesc funcţii agregat, folosite în teoria mulţimilor (numărare – Count, medie
aritmetică – Avg, suma – Sum, valoare minimă – Min etc.).
Instrucţiunile din SQL pot fi incluse şi în alte limbaje de programare (Basic, C, Cobol, Fortran
etc.), astfel încât aplicaţiile scrise cu aceste limbaje pot interacţiona cu bazele de date prin
intermediul unui SGBD-R care include şi SQL. De asemenea, prin SQL se asigură compatibilitatea
între diversele aplicaţii cu baze de date, create cu diverse SGBD-R, care trebuie să aibă inclus acest
limbaj în componenţa lor.
13
Sistemul Access® cuprinde [2], [6], [7], [9], [14] următoarele componente principale (fig.5):
un modul SGBD-R performant, care include două dintre cele mai cunoscute limbaje de
prelucrare a datelor, QBE (Query-by-Example) şi SQL (Structured Query Language); în
acest modul se crează tabelele de date şi se gestionează informaţiile;
un modul VBA care include un limbaj procedural de programare independent, VBA
(Visual Basic for Applications), utilizabil pentru dezvoltarea de aplicaţii;
un limbaj macro procedural simplificat, cu ajutorul căruia se pot proiecta aşanumitele
macrocomenzi, deosebit de utile în etapele de administrare a bazei de date;
un set de instrumente pentru dezvoltare rapidă a interfeţei bază de date – utilizatori
obişnuiţi (formulare, rapoarte, panouri de comandă);
un set de instrumente pentru asigurarea interfeţei Access – alte medii (conversii de date,
transfer de date în/din, securitate, acces prin Web, compatibilităţi etc.);
un set puternic de instrumente de asistenţă interactivă („wizards”) pentru dezvoltarea
uşoară a aplicaţiilor.
Instrumente de
gestionare
Queries, Forms, Reports
Relationships
QBE / SQL Language
Asistenţă
Wizards
Macrocomenzi Help
Macros language
Tabele de date
Tables
Utilităţi
Module de Conversii de date
Pagini de access Web
aplicaţii
Securitate date
VBA language Întreţinere fişiere
14
Modulul de bază, în care se defineşte şi se gestionează colecţia de date, cuprinde următoarele
tipuri de obiecte principale:
tabele de date (Tables), conţin informaţiile propriu-zise sub formă de înregistrări; pentru
regăsirea corectă a informaţiilor corelate între tabele se stabilesc relaţii de legătură
(Relationships);
interogări (cereri) (Queries), rezolvă solicitări ale utilizatorilor privind afişarea selectivă a
informaţiilor şi prelucrarea acestora;
Începând cu versiunea 2007, Microsoft a creat o nouă interfață utilizator pentru programele din
pachetul Office, care permite o utilizare mai facilă, intuitivă și simplă a tuturor opțiunilor.
În Access® 2007, la lansarea aplicației (Start Programs Microsoft Office Microsoft
Office Access) se afișează o fereastră de început (Getting Started, fig.6) din care utilizatorul poate
alege opțiunea de începere a lucrului. Există două posibilități principale: deschiderea unei baze de
date existente sau crearea unei noi baze de date.
Pentru deschiderea unei baze de date existente, în partea dreaptă a ferestrei este afișată o listă
a ultimelor fișiere deschise anterior în care, eventual, poate fi găsit fişierul dorit. Se poate afișa
fereastra de acces la un fișier (Open) prin selectarea opțiunii More…
Pentru crearea unei noi baze de date există două posibilităţi:
New Blank Database, care deschide un fişier „gol” în care se vor proiecta, pe rând,
componentele bazei de date;
Templates, care permite alegerea unui șablon de structură a bazei de date dintre cele oferite
de către sistem; în acest caz se va crea un fişier conţinnd o serie de componente (tabele,
formulare etc) fără informaţii, acestea urmând să fie adăugate de către utilizator.
15
Bază de date
“goală”
Bază de date
din şablon
Deschidere
bază de date
Fereastra principală a programului Access® este prezentată în fig.7. Aşa după cum se observă
din figură, fereastra conţine mai multe componente, după cum urmează:
butonul Microsoft Office, utilizat pentru diferite acțiuni de gestiune a fișierelor; butonul
deschide un meniu de opțiuni (fig.8) – New/Open/Convert/Save/Save As/Print/Manage/
Email/Publish/Close – inclusiv o listă a celor mai recent deschise fişiere;
bara de selecție rapidă a comenzilor (Quick Access Toolbar), amplasată în stânga-sus, care
poate fi particularizată după dorința utilizatorului (fig.9);
panoul de afișare a obiectelor bazei de date (Navigation Pane), care permite accesul la oricare
dintre acestea și totodată poate furniza informații despre ele;
panglica cu pictograme care, la versiunea 2007 a pachetului Microsoft Office, înlocuiește bara
de meniuri prezentă la versiunile anterioare; această panglică constituie cea mai importantă
inovație a pachetului; este compusă din mai multe pagini suprapuse: patru tipuri de bază
(Home/Create/External Data/Database Tools) și una/două pagini contextuale, particularizate
automat în funcție de obiectul activ la un moment dat;
zona de lucru în care sunt afișate ferestrele obiectelor active (deschise) la un moment dat, în
funcție de cerințele utilizatorului bazei de date;
bara de stare afişată pe ultima linie a ferestrei principale, care conţine în dreapta câteva
butoane de acces rapid la diferite forme de afişare a ferestrelor unui obiect;
un buton de ajutor (Help), amplasat pe marginea din dreapta-sus a panglicii cu pictograme,
marcat cu semnul întrebării (?).
16
Gestiune Bară comenzi Panou Panglica cu Zona de Ajutor
fișiere rapide obiecte pictograme lucru (afișare) (Help)
Bara de stare
17
Pagina Create conține opțiunile de creare și execuție a diferitelor obiecte în baza de date (tabele,
formulare, rapoarte, interogări, comenzi macro).
Pagina External Data include opțiunile de legătură a bazei de date Access® cu alte tipuri de baze
de date (import/export de date), inclusiv posibilități de legare cu programul de poștă electronică
Microsoft Outlook sau cu cel de calcul tabelar Microsoft Excel.
Pagina Database Tools conține opțiunile de gestiune globală a bazei de date cum ar fi
securitatea datelor, modulul Visual Basic VBA, analiză conceptuală etc.
Pe lângă cele 4 pagini standard, pot exista şi una/două pagini contextuale, care se adaptează
automat la tipul de obiect activ și la modul său de afișare, având opțiunile potrivite în acest sens.
De exemplu, în figura 9 este prezentată pagina Table Tools (Datasheet) care este asociată
deschiderii unui tabel în modul de afișare a înregistrărilor.
O altă caracteristică importantă este posibilitatea particularizării interfeței principale a
programului Access®, în funcție de cerințele sau dorințele utilizatorului. Opțiunile de
particularizare sunt disponibile într-o fereastră specifică, fiind grupate pe categorii, fereastră
accesibilă de la butonul Office → Access Options.
Home
Create
External Data
Database Tools
18
Pentru a asigura o anumită compatibilitate între diferitele versiuni ale programului, instalate pe
diferite calculatoare, Access® verifică această caracteristică automat la deschiderea unui fișier de
tip bază de date. În același timp, se oferă posibilitatea memorării unei baze de date în diverse
versiuni anterioare, verificându-se automat compatibilitatea cu versiunea 2007 și informând
utilizatorul asupra eventualelor caracteristici incompatibile. Această opțiune este disponibilă la
butonul Office → Save As (fig.11).
Deschiderea unui fişier de tip bază de date Access® se poate efectua în mai multe moduri,
disponibile la butonul Office → Open (fig.12):
Open – deschiderea fişierului, având toate drepturile asupra obiectelor acestuia (citire/scriere),
în acelaşi timp fişierul poate fi deschis şi de alţi utilizatori pentru citire/scriere;
Open Read-Only – deschiderea fişierului în modul citire, nu se pot face modificări ale obiectelor
create, în acelaşi timp alţi utilizatori pot deschide fişierul în modul citire/scriere;
Open Exclusive – deschiderea fişierului cu drepturi exclusive asupra acestuia, adică alţi
utilizatori nu vor avea acces la fişier cât timp este deschis exclusiv;
Open Exclusive Read-Only – deschiderea fişierului exclusiv în modul citire, toţi utilizatorii care
deschid fişierul ulterior, vor putea doar consulta baza de date, fără a putea efectua modificări
ale structurii obiectelor create.
Pentru a obține ajutor sau explicații diverse în legătură cu o anumită temă, este disponibilă
fereastra Help, care se deschide prin apăsarea butonului de ajutor, marcat ?, amplasat în extrema
dreaptă a panglicii cu pictograme. În fereastra de ajutor se poate căuta tema dorită într-o casetă
specifică alegând dintre opțiunile afișate ca rezultat al căutării (Search).
19
TEMA NR. 2
GESTIUNEA INFORMAŢIILOR ÎN TABELELE UNEI BAZE DE DATE
20
Table Design – crearea tabelului în modul de proiectare, prin definirea listei câmpurilor și,
stabilirea, după necesităţi, a proprietăților acestora (vezi exemplu nr.5).
Dintre cele 4 opțiuni menționate anterior, probabil cel mai des se utilizează prima și ultima. Din
acest motiv, acestea sunt prezentate mai detaliat în continuare.
Crearea unui tabel prin introducerea directă a înregistrărilor (opţiunea Create Table) este
cea mai simplă metodă. Se introduce prima înregistrare în tabel ca într-o foaie de lucru Excel
(fig.14). Fiecare coloană primește un nume predefinit (Field1, Field2, ... etc), existând și o coloană
implicită cu numele ID, care este de fapt propusă ca și cheie primară a tabelului şi are un anumit tip
de dată potrivit pentru această caracteristică. Ultima coloană din dreapta, denumită Add New Field
este afișată permanent şi oferă posibilitatea adăugării unui nou câmp în tabel prin simpla completare
a unei valori la oricare înregistrare existentă.
După introducerea a cel puțin o înregistrare, pentru a face permanentă structura tabelului, se
alege opțiunea de memorare (Save / Ctrl+S) și se indică un nume pentru tabelul respectiv (în fig.14
– Elevi).
După crearea tabelului se pot efectua oricând modificări ale structurii acestuia, fie prin
adăugarea de valori ale înregistrărilor pe coloana Add New Field, fie prin deschiderea ferestrei de
proiectare (Table Design) care asigură accesul la proprietăţile câmpurilor.
Exemplul 4: Crearea unei baze de date pentru evidența elevilor din unitatea şcolară, pe
baza structurii prezentate în schema din fig.3.
Pentru crearea fişierului bazei de date efectuaţi următoarele acţiuni:
deschideţi programul Microsoft Access® şi creaţi o bază de date nouă, alegând opţiunea New
Blank Database şi indicând numele noului fişier – Elevii scolii – precum şi locul în care
acesta va fi creat pe calculator (fig.13), apăsaţi butonul Create pentru a crea baza de date şi a
deschide interfaţa principală a programului;
baza de date va fi creată într-un singur fişier, cu numele Elevii scolii.accdb, extensia .accdb
indicând că este vorba de un fişier creat în versiunea Access®2007;
în fereastra de afișare a înregistrărilor unui nou tabel, cu numele implicit Table1, introduceți 3
înregistrări conform fig.14, începând din coloana Add New Field; deplasarea de la o coloană
la alta se face cu tasta Tab; la terminarea unui rând (înregistrare) se apasă tasta Enter pentru a
trece la rândul următor;
memorați structura creată (Save, Ctrl+S) cu numele Elevi.
Obs. în cazul editării datelor calendaristice trebuie să se ţină seama de modul de interpretare a
acestora de către sistemul de operare Windows:
sistemul anglo-saxon: sub forma LL/ZZ/AANN, adică 12/31/2001 (31 decembrie 2001)
sistemul românesc: sub forma ZZ/LL/AANN, adică 31/12/2001.
21
Fig.13 Crearea unei noi baze de date cu opţiunea New Blank Database
Butoane de
navigare Opțiuni de afișare
Modificările necesare a fi efectuate în structura tabelului Elevi, creat la exemplu nr.4, sunt
explicate la exemplu nr.6.
Crearea unui tabel în fereastra de proiectare (Create Design View) permite definirea directă
a câmpurilor – numele (Field Name), tipul de dată asociat (Data Type), precum şi celelalte
eventuale proprietăți inclusiv caracteristica de cheie primară.
Exemplul 5: Completarea bazei de date Elevii scolii cu al doilea tabel, denumit Clase,
conform structurii prezentate în schema din fig.3. Se efectuează următoarele acțiuni:
alegeți pagina Create, apoi Table Design;
completați în partea superioară a ferestrei de proiectare numele (Field Name), tipul de dată
(Data Type) și descrierea (Description) celor 4 câmpuri necesare, conform fig.15; deocamdată
nu modificați nimic în zona de afișare a proprietăților câmpurilor (Field Properties);
în cazul câmpului cod, selectați pictograma Primary Key pentru a stabili caracteristica de
cheie primară și observați simbolul cheie afișat în stânga numelui acestuia;
memorați tabelul cu numele Clase;
observați, în dreapta jos, zona de comentarii de ajutor care se modifică contextual, în funcție
de componenta activă la un moment dat în fereastra de proiectare.
23
pentru a adăuga înregistrări în tabelul Clase alegeţi fereastra
înregistrărilor (Datasheet View) din lista oferită de pictograma View
(stânga sus) a panglicii;
adăugaţi cele 8 înregistrări conform figurii 16 şi închideţi tabelul;
observaţi că înregistrările se memorează automat după ce au fost
adăugate, fără a fi necesară o acţiune de memorare (Save) specifică.
Access® permite și importul de date din alte surse externe de diferite tipuri cum ar fi: alte baze de
date Access, fișiere Excel, fișiere de tip dBase, Paradox, Lotus, XML, text etc. Opțiunile de import
sunt accesibile din pagina External Data, zona Import. Datele importate pot fi aduse într-un tabel
existent al bazei de date curente, într-un nou tabel sau se crează doar un link către fișierul original.
În fereastra de afişare a înregistrărilor unui tabel (Datasheet View) se pot efectua o serie de
acţiuni care se referă la structura tabelului sau la înregistrările acestuia. Aceste acţiuni sunt:
Adăugarea de noi înregistrări, utilizând butonul New Record aflat în zona butoanelor de
navigare (fig.14), în partea de jos a ferestrei Datasheet View şi tastele Tab / Shift+Tab
pentru parcurgerea câmpurilor de la stânga la dreapta și, respectiv, invers;
Ștergerea unei înregistrări se face prin selecția rândului care o conține și alegerea din
meniul contextual (click-dreapta mouse) a opțiunii Delete Record. Se cere confirmarea
acțiunii, deoarece după ștergere, înregistrarea nu se mai poate recupera (nu există în acest
caz opțiunea Undo!);
Parcurgerea înregistrărilor – cu tasta Tab / Shift+Tab pentru pacurgerea câmpurilor unei
înregistrări sau cu butoanele de navigare (fig.17) pentru parcurgerea înregistrărilor de la una
24
la alta succesiv sau efectuarea unui salt la prima sau la ultima; trebuie menţionat că numărul
curent al înregistrării („7 of 15”) este o informaţie pur formală deoarece ordinea de afişare a
înregistrărilor poate fi schimbată după cerinţa utilizatorului;
25
memoraţi modificările (Save), afişaţi fereastra înregistrărilor (Datasheet View) și adăugați
informaţiile, conform fig.20;
Obs. Pentru mărirea spaţiului de lucru se poate ascunde fereastra panoului de obiecte Access ®
prin apăsarea pe butonul specific din bara de titlu a acestuia.
Afişarea obiectelor pe panoul de navigare poate fi efectuată în
diverse moduri la alegerea utilizatorului prin selecţia dintr-o listă pusă
la dispozitie pe panou.
De exemplu, dacă se aleg opţiunile Object Type şi All Objects,
obiectele vor fi afişate pe panou grupate pe tipuri – tabele, interogări,
formulare etc. – şi vor fi afişate toate tipurile de obiecte existente în
baza de date.
Pentru a gestiona mai uşor şi mai sigur introducerea şi prelucrarea
informaţiilor cuprinse în baza de date, se recomandă configurarea unor
proprietăţi adecvate ale câmpurilor. Elementele de bază privind
această configurare sunt prezentate în subcapitolul următor.
Field Size lungimea câmpului; numărul maxim de caractere sau valoarea maximă
care se poate introduce ca valoare a câmpului; este specifică doar pentru
tipurile de dată Text, Memo, Number şi Autonumber;
Format formatul de afişare a datelor; proprietate generală; se poate selecta un
format predefinit sau se pot genera formate personalizate pe baza unor
reguli utilizând o serie de caractere dedicate (vezi exemplul nr.7);
Decimal Places numărul de cifre zecimale afișate; este specifică tipurilor de date
numerice; nu afectează valoarea memorată, ci doar cea afişată;
27
Input Mask şablon (model, mască) de control; controlează structura valorilor introduse
la nivel de caracter; este o proprietate generală (cu excepţia Autonumber); se
configurează de către utilizator cu ajutorul unor caractere dedicate, eventual
utilizând asistenţa interactivă – Input Mask Wizard ((vezi exemplul nr.7);
Caption etichetă de cîmp; proprietate generală; dacă are valoare, în fereastra de
afişare a înregistrărilor (Datasheet View), se afişează în locul numelui
câmpului (Field Name) ca denumire a coloanei corespunzătoare;
Default Value valoare prestabilită; proprietate generală; este valoarea afișată automat în
câmp la fiecare nouă înregistrare; poate fi rezultatul unui calcul matematic;
Validation Rule regulă de validare; permite verificarea datelor introduse cu ajutorul unor
restricţii matematice; se poate genera manual sau cu ajutorul asistenţei
interactive (Builder – Constructorul de expresii) (vezi exemplul nr.7);
Validation Text mesaj de eroare; este afişat într-o casetă de dialog atunci când datele
introduse nu respectă regula de validare (Validation Rule);
Required valoare obligatorie; proprietate generală; dacă este activă (Yes), obligă
introducerea unei valori în câmpul respectiv; dacă este inactivă (No) se
poate lăsa câmpul gol;
Indexed câmp indexat/neindexat; proprietate generală; indexarea permite o găsire
mai rapidă a informaţiei de către Access ® la tabele cu mii de înregistrări, pe
baza unor algoritmi proprii; este activată automat pentru câmpurile cheie
primară; se recomandă activarea pentru acele câmpuri care constituie criterii
de căutare frecvente;
Text Align aliniere text; proprietate generală; permite indicarea modului de aliniere a
valorii scrise în câmp, există opțiunile General/Left/Center/Right/Distribute.
28
memorați modificările (Save) pentru fiecare tabel și verificați comportarea datelor introduse
în fereastra înregistrărilor (Datasheet);
pentru a trece din fereastra înregistrărilor în cea de proiectare și invers utilizaţi opțiunile
View ale panglicii cu pictograme.
Tabelul nr.1 – Configurarea unor proprietăți ale câmpurilor tabelului Clase
Numele
Proprietatea / Valoarea Observații
câmpului
Deoarece valorile câmpului sunt formate din 4
Field Size: 4
cod cifre, pentru a controla această caracteristică se
Input Mask: 0000
configurează cele două proprietăţi
Valorile acestui câmp fac parte dintr-o listă de
Field Size: 4 valori: I, II, III, IV, ...
nivel
Lookup List: vezi mai jos În consecinţă, este potrivită stabilirea caracteristicii
Lookup, adică o listă de valori disponibilă.
Valorile acestui câmp pot fi A, B, C, D, ..., adică
sunt formate dintro singură literă. Pentru a controla
Field Size: 1
acest aspect, se stabilesc cele două proprietăţi Field
litera Format: >
Size şi Input Mask.
Input Mask: L
Pentru afişarea valorii cu majuscule se stabileşte
formatul de afişare la Format
Deoarece valorile sunt numere întregi se stabileşte
Field Size: Integer dimensiunea corespunzătoare, iar pentru a afişa
an
Default Value: =Year(Date()) automat anul curent se utilizează un calcul
matematic cu funcţii predefinite
29
În zona proprietăţilor câmpului, Field Properties, în pagina Lookup se vor găsi toate
caracteristicile listei respective, fig.22; în această pagină, dacă este necesar, pot fi modificate
aceste caracteristici (de exemplu, adăugare de valori în listă – Row Source sau limitarea
valorilor posibile a fi introduse doar la cele din listă – Limit to List: Yes).
30
posibilitatea de a insera noi câmpuri sau de a şterge din cele existente – Insert / Delete /
Lookup.
Tabelul nr.2 – Configurarea unor proprietăți ale câmpurilor tabelului Elevi
Numele
Proprietatea / Valoarea Observații
câmpului
Valorile introduse vor putea avea maxim 100
nume Field Size: 100 caractere
prenume Format: > Pentru afişarea valorilor cu majuscule se stabileşte
proprietatea Format
Format: Medium Date Afişarea valorilor se va face sub forma 20-Apr-2010
data_nasterii
Text Align: Center Valorile vor fi aliniate centrat (pe mijloc)
Deoarece valorile câmpului sunt formate din 4 cifre,
Field Size: 4
cod_unic pentru a controla această caracteristică se
Input Mask: 0000
configurează cele două proprietăţi
Valorile acestui câmp trebuie să fie dintre cele
disponibile ale câmpului cod din tabelul Clase –
fiecare elev aparţine unei clase.
cod Lookup List: Clase.cod
Se configurează lista de valori de tip Lookup,
indicând „căutarea” acestora în câmpul cod al
tabelului Clase (vezi exemplul Lookup anterior)
Stabilirea unei caracteristici de tip Lookup a unui câmp prin preluarea valorilor disponibile ale
altui câmp – exemplul de mai sus al câmpului cod din tabelul Elevi care preia valorile câmpului cod
al tabelului Clase – crează şi o relaţie simplă între cele două tabele, evidenţiată în fereastra
înregistrărilor tabelul Clase
31
2.3.3. Ordonarea și afișarea selectivă a înregistrărilor.
În fereastra de afişare a înregistrărilor unui tabel (Datasheet View), acestea sunt afişate în mod
implicit în ordine crescătoare după valorile câmpului cheie primară al tabelului. Totodată, în mod
implicit, sunt afişate toate înregistrările conţinute la un moment dat în tabelul respectiv.
Pentru găsirea și afișarea numai a anumitor înregistrări, care conțin anumite valori ale unor
câmpuri, Access® pune la dispoziție 2 posibilități care se pot utiliza independent sau combinat.
Acestea sunt afișarea ordonată a înregistrărilor și afișarea selectivă cu ajutorul filtrelor.
Alegerea uneia dintre aceste acțiuni se face din pagina Home→Sort&Filter, fig.24, sau din meniul
contextual (click-dreapta de mouse).
Ordonare crescătoare
Filtrare
avansată
Ordonare (multiplă)
descrescătoare Eliminare / aplicare
filtru
Ştergere ordonare
Afișarea ordonată a înregistrărilor se referă la afişarea acestora într-o anumită ordine, după
valorile unuia sau a mai multor câmpuri. Acţiunea se realizează în două etape:
1. indicarea câmpului (câmpurilor) după a cărui (căror) valoare trebuie să se facă ordonarea;
2. indicarea uneia dintre cele două opţiuni de ordonare (din pagina Home a panglicii, Sort
Ascending (A to Z) / Descending (Z to A), din meniul contextual sau din lista de opţiuni
disponibilă în lista derulantă deschisă prin apăsarea pictogramei Filter.
Dacă se aleg mai multe câmpuri drept criterii de ordonare, atunci acestea trebuie aşezate unul
lângă altul, în ordinea clasei de ordonare, de la stânga la dreapta.
Ordonarea aplicată la un moment dat poate fi memorată, astfel încât la deschiderea ulterioară a
tabelului respectiv, înregistrările să fie afişate în ordinea respectivă. Dacă nu se memorează nici un
criteriu de ordonare, atunci înregistrările sunt afişate în ordine crescătoare după valorile cheii
primare a tabelului (ordonare implicită).
Ştergerea ordonării particularizate şi revenirea la ordinea implicită, după valorile cheii primare a
tabelului, se face prin apăsarea butonului specific de pe panglică – Clear All Sorts.
32
Afişarea selectivă a înregistrărilor înseamnă afişarea doar a anumitor înregistrări, care respectă
criteriile de selecţie precizate de către utilizator. Acţiunea se mai numeşte filtrare a înregistrărilor şi
se realizează în două etape:
1. indicarea valorii (valorilor) de câmp după care trebuie să se facă filtrarea;
2. aplicarea opțiunii de filtrare prin alegerea din pagina Home → Sort&Filter, din meniul
contextual sau din lista derulantă deschisă prin apăsarea butonului Filter.
În cadrul ferestrei Filter opțiunile de filtrare sunt contextuale, adică se modifică în funcție de
tipul de dată al câmpului după care se face filtrarea (Text/Number/Date etc.). În fig.25 sunt
prezentate opțiunile de filtrare a valorilor de tip Text, Date/Time şi Number.
După crearea unei opțiuni de filtrare, aceasta poate fi memorată (Save) în fereastra Datasheet a
înregistrărilor astfel încât să poată fi aplicată direct oricând ulterior. Aplicarea și eliminarea filtrului
se efectuează cu opțiunea Toggle Filter.
Ștergerea tuturor filtrelor existente la moment dat se realizează cu opțiunea Advanced Clear
All Filters.
Una dintre inovațiile versiunii 2007 a programului Access® o reprezintă posibilitatea de a obține
prelucrări statistice ale informațiilor cuprinse în înregistrări direct în fereastra înregistrărilor unui
33
Fig.25 Opţiunile disponibile pentru aplicarea filtrelor pentru cele tipuri principale
de date Text, Date/Time şi Number
34
Exemplul 8: Aplicarea unor opțiuni de ordonare și selecție prin filtrare în baza de date
Elevii scolii. Deschideți tabelul Elevi în fereastra înregistrărilor și efectuați câteva acțiuni
de ordonare și filtrare după cum urmează:
ordonați înregistrările în ordine alfabetică după numele şi prenumele elevilor – selectaţi cele
două câmpuri din dreptul numelor acestora şi apăsaţi butonul Ascending (A/Z);
ordonați cronologic înregistrările după data naşterii elevilor – selectaţi o valoare a câmpului
data_nasterii şi apăsaţi butonul Ascending (A/Z); prima înregistrare va fi a celui mai „bătrân”
elev, iar ultima a celui mai tânăr;
afișați doar elevii care au prenumele Mihai – selectaţi o valoare a
câmpului prenume, apăsaţi butonul Filter, alegeţi opţiunea Text
Filters – Contains, scrieţi textul mihai şi apoi apăsaţi Enter (OK);
puteți elimina/re-aplica) filtrul prin apăsarea butonului Toggle Filter; observaţi în partea de
jos a ferestrei afişarea numărului de înregistrări şi butonul Filtered care este apăsat – puteţi
elimina/aplica filtrul şi cu acel buton;
eliminați filtrul aplicat anterior (Toggle Filter)
înainte de a testa următorul filtru;
apăsaţi pictograma Totals și, în rândul Totals
afișat, alegeți opțiunea Count pentru câmpul
cod_unic, pentru a afișa numărul înregistrărilor
afişate; observaţi că valoarea se actualizează
după aplicarea / eliminarea unui filtru;
selectaţi o valoare a câmpului cod, apăsaţi
butonul Filter, care deschide lista de opţiuni –
observaţi că puteţi alege prin “bifare” valorile
după care să fie efectuată filtrarea – de exemplu
Fig.27 Selecţie multiplă la filtre
lăsaţi bifate doar codurile claselor I (fig.27) şi
validaţi cu butonul OK pentru a aplica filtrul;
selectaţi o valoare a câmpului data_nasterii
pentru a testa (Filter) posibilităţile de filtrare
după valori de tip dată calendaristică; alegeţi
opţiunea Date Filters – Between şi indicaţi
perioada – anul 2002, precizând limitele Fig.28 Filtrare după dată calendaristică
acesteia (fig.28);
35
pentru a afişa elevii claselor I care au prenumele mihai, deoarece este necesară selecţia după
două câmpuri, cod_unic și prenume, cea mai potrivită este opțiunea Advanced FilterFilter
By Form, în caseta aferentă câmpului nume se scrie textul *mihai*, iar în cea a câmpului
cod_unic se scrie textul 1* (fig.29) şi se apasă Enter, apoi se apasă butonul Toggle Filter;
Obs. Simbolul * este utilizat ca şi caracter de înlocuire (joker); în acest caz, este configurată
automat funcţia Like;
o altă modalitate de rezolvare a problemei anterioare este aplicarea succesivă a 2 filtre de tip
Selection Contains pe cele două câmpuri;
închideţi tabelele şi, dacă doriţi, memoraţi ultimele filtre create pentru a le aplica direct
ulterior cu butonul Toggle Filter.
36
TEMA NR. 3
PRELUCRAREA INFORMAŢIILOR PRIN INTEROGĂRI
2. Obiectivele temei
înțelegerea rolului relațiilor între tabelele unei baze de date
deprinderea de a crea în tabele câmpuri noi care să creeze relații de legătură cu alte tabele
înțelegerea proprietăților unei relații și a modului de funcționare a acesteia
înțelegerea rolului interogărilor într-o bază de date
deprinderea de a proiecta interogări de selecție de înregistrări, cu parametri sau cu
câmpuri calculate
deprinderea de a proiecta interogări de sinteză statistică a informațiilor.
3. Conţinutul detaliat
3.3.1. Stabilirea relațiilor între tabelele unei baze de date Access®.
În cadrul temei nr.1 s-au prezentat câteva noţiuni teoretice referitoare la modelul relaţional de
bază de date (SGBD-R). Un model relaţional de bază de date cuprinde tabele cu înregistrări între
care se stabilesc relaţii de legătură prin intermediul cărora pot fi regăsite informaţiile corelate din
tabele.
O relaţie se stabileşte între două tabele ale bazei de date, prin intermediul a două câmpuri, câte
unul din fiecare tabel, adică este de tip binar (câmp – câmp). De obicei, relaţia se stabileşte între
câmpurile care sunt definite chei primare ale tabelelor, dar aceasta nu este o regulă obligatorie. Cele
două câmpuri trebuie să aibă acelaşi tip de dată (Data Type), cu aceeaşi dimensiune (Field Size).
Microsoft Access® are la bază modelul relaţional de bază de date, permiţând crearea şi
configurarea relaţiilor între tabelele acesteia.
Relaţiile dintre tabele asigură o eficienţă ridicată a administrării bazei de date (introducere,
afişare, modificare/actualizare a informaţiilor, dimensiune mai mică a fișierelor bazelor de date prin
evitarea duplicatelor, regăsirea mai rapidă a unei anumite informaţii precum şi a informaţiilor
corelate, memorate în tabele diferite).
Configurarea relațiilor dintre tabelele unei baze de date Access ® se face într-o fereastră dedicată
– Relationships (fig.30) – accesibilă din pagina Database Tools a panglicii superioare.
37
Fig.30 Fereastra relațiilor dintre tabelele bazei de date Access®
În fereastra relațiilor pot fi afișate simultan toate relațiile existente între tabelele bazei de date
prin selectarea opțiunii All Relationships și poate fi editată fiecare relație în parte pentru a i se
configura anumite proprietăți care determină un anumit comportament al relației în legătură cu
înregistrările din baza de date. Editarea unei relații se face selectând linia care marchează relația și
indicând opțiunea Edit Relationships sau prin dublu-click pe linia care materializează relaţia.
În fereastra afișată (Edit Relationships) se pot stabili unele proprietăți ale relației:
Pe baza înregistrărilor existente în tabele, Access ® identifică tipul relației (vezi tema nr.1,
fig.1) care poate fi One-To-One, One-To-Many, Many-To-Many sau Indeterminate;
Orice relație este de tip ParentChild (părintecopil), adică poziția celor 2 tabele în relație
este bine stabilită: membrul stâng – Parent, iar membrul drept – Child;
Opțiunea Enforce Referential Integrity – se referă la așanumita Integritate Referențială care
împiedică existenţa unei înregistrări în tabelul membru drept al relației dacă nu există o
înregistrare corespondentă în tabelul membru stâng (de exemplu, dacă există elevi
înregistraţi care aparţin unor clase neînregistrate, astfel de înregistrări se numesc “orfane” și
trebuie evitate);
Opțiunea Cascade Update Related Fields permite actualizarea automată a valorilor câmpului
de legătură în tabelul membru drept al relației pe baza modificării acestora doar în tabelul
membru stâng;
38
Opțiunea Cascade Delete Related Records permite ștergerea automată a înregistrărilor din
tabelul membru drept al relației, asociate înregistrării din tabelul membru stâng care se
șterge (de exemplu, dacă o disciplină este eliminată din curricula și se dorește ștergerea
acesteia din tabelul Discipline, vor fi șterse automat și înregistrările cu notele acordate la
acea disciplină din tabelul Catalog, pentru a nu există înregistrări “orfane”;
Opțiunea Join Type precizează modul de comportare a relației la afișarea înregistrărilor
corespondente în interogări și oferă 3 posibilități (1.Equal, 2.Left, 3.Right Join).
Exemplul 9: Crearea unor relații în baza de date Elevii scolii, concomitent cu adăugarea
unor tabele, pe baza schemei structurale prezentată în figura 4.
deschideți baza de date Elevii scolii și selectați opțiunea Create Table Design, pentru a crea
un nou tabel, Cadre_didactice;
scrieţi numele celor 3 câmpuri ale tabelului (Field Name), cod_unic, nume, prenume, stabiliţi
caracteristica de cheie primară pentru câmpul cod_unic şi memoraţia tabelul cu numele
Cadre_didactice; cele 3 câmpuri vor avea tipul de dată Text;
adăugaţi în tabel 10 înregistrări, conform figurii 31 şi închideţi tabelul;
creaţi un nou tabel cu numele Discipline, care să conţină trei câmpuri, cod_disc, denumire şi
nivel, primele două de tip Text şi al treilea de tip Number/Byte, având câmpul cod_disc drept
cheie primară; adăugaţi 8 înregistrări în tabel, conform figurii 31 şi închideţi tabelul;
selectaţi opţiunea CreateTable pentru a crea un nou tabel direct în fereastra înregistrărilor,
fig.32;
selectați opțiunea Add Existing Fields, pentru a prelua în noul tabel 2 câmpuri din tabelele
Clase și Cadre_didactice; observați afișarea ferestrei Field List, conținând câmpurile
disponibile din tabelele bazei de date (fig.32);
39
Fig.32 Crearea unui tabel prin preluarea unor câmpuri existente în alte
tabele, sub formă de listă de valori (Lookup)
în fereastra Field List, selectați câmpul cod_unic al tabelului Cadre_didactice și, prin click-
dreapta de mouse, alegeți opțiunea Add Field To View pentru a adăuga câmpul în noul tabel –
se afișează o fereastră Lookup Wizard, prin care Access® solicită parcurgerea a câteva etape
de configurare a noului câmp ca o legătură între cele două tabele;
în prima fereastră Lookup Wizard se mută câmpurile nume și prenume în lista Selected Fields
(fig.33,a); se apasă butonul Next;
în a doua fereastră se indică drept criterii de ordonare crescătoare câmpurile nume şi prenume
(fig.33,b), pentru a afișa înregistrările în ordine alfabetică; se apasă butonul Next;
în a treia fereastră se lasă opțiunile implicite, pentru a afișa în listă doar numele disciplinei și
semestrul (fig.33,c); eventual se redimensionează lățimile coloanelor; se apasă butonul Next;
în ultima fereastră se scrie numele noului câmp – cod_CD și se apasă butonul Finish, indicând
numele noului tabel – Atributii_CD în fereastra Save As;
se procedează în mod similar pentru câmpul cod al tabelului Clase, indicând, în ultima
fereastră a asistenţei interactive, numele noului câmp cod_cls;
a. b. c.
Fig.33 Etapele creării unui nou câmp de tip Lookup prin preluarea unui câmp existent
40
deschideți fereastra de proiectare a noului tabel, Atributii_CD (Design View), ștergeți câmpul
ID, adăugați câmpul atributie, de tip Text și creaţi o listă cu 2 valori disponibile (Lookup
Value List): diriginte şi invatator;
modificați etichetele (Caption)
celor trei câmpuri la valorile
Cadru_didactic, Clasa și,
respectiv, Atributia, astfel încât
acestea să fie afișate ca titluri de
coloane în fereastra înregistrărilor
(fig.34);
completați tabelul cu înregistrări,
conform celor din figura 34;
într-un mod similar puteţi crea Fig.34 Tabelul Atributii_CD
tabelul Catalog, prin preluarea
câmpurilor cod_unic al tabelului Elevi şi cod_disc al tabelului Discipline şi adăugarea
câmpului nota;
deschideţi fereastra relațiilor (fig.30) din pagina Database Tools Relationships, apăsaţi
butonul All Relationships și observaţi afișarea relațiilor existente între cele 6 tabele ale bazei
de date;
fiecărei relaţii i se pot stabili proprietăţile care definesc comportamentul acesteia prin
selectarea liniei care o marchează, apăsarea butonului Edit Relationships și activarea
opțiunilor Enforce Referential Integrity, Cascade Update Related Fields sau Cascade Delete
Related Fields, validând modificările cu butonul OK;
la închiderea ferestrei relațiilor, se memorează modificările (Yes).
41
Interogările sunt grupate în zona Queries a panoului de obiecte Access®.
În funcţie de scop, interogările se clasifică în două categorii:
interogări de selecţie: de câmpuri, de înregistrări, cu câmp calculat, cu parametru, de tip
statistic, de tip tabel sintetic;
interogări de acţiune: de creare tabel nou, de modificare valori în tabel existent
(adăugare/modificare/ștergere înregistrări).
Interogările de selecţie preiau înregistrările din tabele, eventuale le prelucrează şi afişează
informaţiile rezultate, fără a modifica în vreun mod valorile acestora sau sturtcura de tabele a bazei
de date. Interogările de acţiune efectuează modificări ale structurii bazei de date sau a tabelelor prin
crearea unor tabele noi sau prin adăugarea, ştergerea sau modificarea înregistrărilor existente.
Interogarea este, de fapt, o aplicaţie (un program), scrisă într-un limbaj de programare specific,
care execută o serie de acţiuni conform cerinţelor utilizatorului. În Microsoft Access®, limbajul de
programare este construit pe structura limbajului universal utilizat în acest scop, SQL – Structured
Query Language, şi disponibil programatorului prin intermediul unei ferestre de proiectare grafică,
QBE – Query By Example (fig.35). Acest mod de programare este mai uşor de folosit pentru
utilizatorii cu experienţă minimă de programare.
Crearea unei interogări se face în fereastra de proiectare (CreateQuery Design) sau cu ajutorul
unui asistent interactiv (CreateQuery Wizard).
Afișarea unei interogări (View) se poate face în mai multe moduri, dintre care cele mai
importante sunt următoarele:
Fereastra de proiectare (Design), fig.35, în care se configurează toate opțiunile interogării;
Fereastra de execuție (Datasheet), fig.36, în care sunt afișate înregistrările care corespund
opțiunilor precizate în fereastra de proiectare;
Fereastra SQL (SQL) a instrucțiunilor SQL, fig.37, care corespund opțiunilor precizate în
fereastra de proiectare.
Fereastra de proiectare a unei interogări (fig.35), cuprinde două zone principale:
zona tabelelor – conţine tabelele din care se doreşte preluarea înregistrărilor, afișate sub
formă de ferestre cu lista câmpurilor; dacă între tabele există relaţii, acestea sunt afişate și pot
fi editate;
zona de proiectare – care conţine o serie de rânduri specifice (Field, Table, Sort, Show etc)
necesare descrierii instrucțiunilor interogării; se mai numeşte şi grilă de interogare.
Semnificaţia rândurilor din zona de proiectare este următoarea:
Field şi Table : numele câmpurilor şi a tabelului din care provin sau ale câmpurilor nou
create (calculate cu relaţii matematice);
42
Fig.35 Fereastra Design a unei interogări Fig.36 Fereastra Datasheet a unei interogări
Pe lângă rândurile descrise anterior, în zona de proiectare mai pot să apară şi alte rânduri
specifice diferitelor tipuri de interogări de acţiune.
Etapele de concepție a unei interogări în Access® sunt următoarele:
Proiectarea interogării în fereastra de proiectare prin configurarea tuturor opțiunilor dorite
(selecția câmpurilor, precizarea criteriilor de ordonare, crearea criteriilor de afișare selectivă,
crearea de noi câmpuri calculate (dacă este cazul), precizarea opțiunilor de afișare statistică
(dacă este cazul);
43
Verificarea afișării corecte a înregistrărilor prin execuția interogării (Run) și, eventual,
aplicarea unor opțiuni de formatare a valorilor afișate;
Memorarea interogării sub un anumit nume și închiderea ferestrei de proiectare.
Between 8 And 9 Orice valoare mai mare decât 8 şi mai mică decât 9, adică orice
valoare cuprinsă între 8 şi 9, inclusiv limitele.
>= 1.01.2010 Orice dată calendaristică după 1.01.2010.
44
Într-o interogare, un câmp calculat reprezintă un nou câmp, creat în fereastra de proiectare, prin
precizarea relației matematice de calcul al valorilor acestuia, bazată pe valorile din câmpurile
existente în tabelele bazei de date și pe operatorii matematici. Valorile câmpurilor calculate nu sunt
memorate fizic în baza de date, ele sunt afișate doar la execuția interogării.
La construcţia relaţiei matematice se pot utiliza și funcţii predefinite incluse într-o bibliotecă
specifică (vezi anexa nr.3), a căror editare se poate face apelând asistentul interactiv Builder
Wizard, .
Sintaxa unui câmp calculat este următoarea:
în care nume_câmp reprezintă un nume atribuit câmpului respectiv, iar <relatie matematica>
reprezintă relaţia matematică de calcul al valorilor câmpului.
În tabelul nr.4 sunt prezentate câteva exemple de câmpuri calculate cu diferite relaţii matematice
sau folosind unele funcţii incluse în biblioteca Access®.
45
Definirea unui parametru se face prin editarea unui mesaj specific scris între paranteze drepte, în
locul în care trebuie introdusă valoarea acestuia. Mesajul care constituie definiţia parametrului va fi
afişat în fereastra de dialog în care se solicită valoarea acestuia.
În tabelul nr.5 sunt prezentate câteva exemple de utilizare a parametrilor în conțintul criteriilor
de selecție a înregistrărilor sau în relaţii matematice.
Tabelul nr.5 – Exemple de parametri în interogări
Exemplul 10: Crearea unor interogări simple în baza de date Elevii scolii.
Interogări simple cu diverse criterii de selecție
deschideți baza de date Elevii scolii și selectați opțiunea CreateQuery Design, pentru a
deschide fereastra de proiectare a unei noi interogări;
în fereastra Show Table afişată, selectați, pe rând tabelele Clase și Elevi și apăsați butonul Add
pentru a le aduce în fereastra interogării, închideți apoi fereastra Show Table; puteți oricând să
o reafișați prin apăsarea butonului Show Table din pagina Design;
selectați, pe rând, prin dublu-click, câmpurile cod din tabelul Clase, nume, prenume din
tabelul Elevi, observați că aceste câmpuri au apărut în rândul Field al interogării (fig.38);
alegeți opțiuni de ordonare, în rândul Sort, pentru câmpurile nume și prenume pentru a afișa
elevii ordonaţi alfabetic (fig.38);
46
Fig.38 Fereastra de proiectare a unei interogări simple de selecție
indicați în rândul Criteria al câmpului clasa (fig.38) un criteriu de selecție pentru afișarea
elevilor din clasa I-A, al cărei cod este 1110;
execuţia interogării, prin apăsarea butonului Run, va afişa lista alfabetică a elevilor clasei I-A;
puteţi reveni în fereastra de proiectare cu butonul ViewDesign View;
memorați interogarea (Save) cu numele Lista elevilor clasei;
ştergeţi selecţia efectuată în rândul Criteria al câmpului cod şi precizaţi o altă selecţie pentru a
afişa toţi elevii claselor a II-a, fig.39; în acest caz se utilizează funcţia Like şi caracterul de
înlocuire (jokerul) *; indicaţi şi ordonare crescătoare după valorile câmpului cod pentru a
afişa elevii ordonaţi pe clase;
executaţi interogarea pentru a vedea înregistrările şi memoraţi-o (Save As – Save Object As)
cu numele Lista elevilor pe nivel;
ştergeţi selecţia efectuată în rândul Criteria al câmpului cod şi editaţi o nouă selecţie pentru a
afişa elevii cu prenumele ion, ioan sau ioana (fig.40); în acest caz sunt necesare două criterii
de selecţie cu funcţia Like şi joker care să funcţioneze alternativ (Or);
memoraţi interogarea (Save As – Save Object As) sub numele Selectie elevi dupa prenume;
Fig.39 Selecţie simplă cu funcţia Like Fig.40 Selecţie multiplă cu funcţia Like
47
ştergeţi selecţiile efectuate anterior, aduceţi şi câmpul data_nasterii pe grila de proiectare şi
efectuaţi o selecţie după un interval de timp – de exemplu elevii născuţi în anul 2001, fig.41;
în acest caz se poate utiliza funcţia Between care permite precizarea unui interval de valori
între două limite şi funcţionează pentru date numerice, texte sau date calendaristice;
precizaţi şi ordonare crescătoare după valorile câmpului data_nasterii;
executaţi interogarea pentru a-i testa funcţionarea şi memoraţi-o cu numele Selectie elevi dupa
data nasterii;
în acest moment, pe panoul principal, în grupul Queries trebuie să aveţi 4 obiecte de tip
interogare.
;
noul câmp trebuie să afișeze numele complet al cadrelor didactice, obținut prin concatenarea
(“adunarea”) valorilor din două câmpuri, nume și prenume, separate de un spațiu; sintaxa
relației matematice este
nume_CD: [nume] + “ “ +[prenume]
după editarea relaţiei matematice în fereastra Expression Builder, se validează acţiunea
apăsând butonul OK;
48
Fig.42 Crearea unui câmp calculat prin editarea unei relaţii matematice în
fereastra Expression Bulider
procedaţi în mod similar pentru crearea unui câmp pentru afişarea numelui complet al clasei,
cu relaţia matematică: clasa: [nivel]+”-“+[litera]
aduceţi şi câmpul atributie pe grila de proiectare şi creaţi o selecţie pentru a afişa doar
atribuţiile de „învăţător”;
executaţi interogarea – veţi avea o listă a cadrelor didactice cu atribuţiile de învăţător;
dacă baza de date conţine date ale mai multor ani, atunci trebuie eventual precizată şi o
selecţie după valorile câmpului an pentru a afişa doar datele dintr-un anumit an; dacă doriţi
afişarea doar a învăţătorilor pe un nivel (de exemplu clasa I), atunci trebuie precizat şi
criteriul respectiv de selecţie pentru câmpul nou calculat clasa;
memorați interogarea (Save) cu numele Lista învatatorilor claselor;
creați o nouă interogare (CreateQuery Design) și aduceți tabelul Elevi în fereastra de
proiectare;
aduceți pe grilă câmpurile nume, prenume, data_nasterii și creați apoi un câmp calculat, cu
numele varsta, care să afișeze varsta elevilor, calculată cu relația matematică
varsta: 2011-Year([data_nasterii])
49
la calculul valorilor noului câmp se utilizează funcția Year ( ), care este inclusă în biblioteca
de funcții Access® (fig.43);
executați interogarea pentru a vedea înregistrările și memorați-o (Save) cu numele Varsta
elevilor;
50
3.3.4. Interogări de selecție de tip statistic.
Interogările de tip statistic prelucrează informaţiile din tabelele bazei de date cu ajutorul unor
opţiuni de prelucrare statistică a datelor. Înregistrările sunt grupate prin selecţie, pe grupuri, după
valoarea comună a unor câmpuri (Group By) şi apoi se efectuează prelucrarea grupurilor create,
după valorile din alte câmpuri, cu funcţiile de tip statistic (Count, Sum, Min, Max, Avg, Expression).
O interogare de tip statistic se crează dintr-o interogare de selecţie simplă,
apăsând pictograma Totals; pe grilă apare rândul Total în care se aleg opţiunile
de prelucrare pentru fiecare câmp.
În tabelul nr.6 sunt prezentate opțiunile de prelucrare statistică disponibile.
Aceste opțiuni există și sub formă de funcții în biblioteca Access®, sub numele de SQL Aggregate
Functions.
Tabelul nr.6 – Opțiunile de prelucrare statistică
Numele opţiunii Descriere
Group By Definește câmpul ca și criteriu de grupare a înregistrărilor
Opţiunile de prelucrare statistică Sum, Avg, Min, Max, StDev şi Var pot fi utilizate pentru
câmpuri cu tip de dată numeric, iar celelalte – Count, First, Last şi Expression pot fi utilizate şi pe
celelalte tipuri de dată disponibile într-o bază de date.
Interogările de tip statistic pot fi obișnuite sau pot afișa informațiile sub formă de tabel sintetic.
În acest caz, Access® pune la dispoziție o opțiune specifică – Crosstab.
51
Exemplul 11: Crearea unor interogări de tip statistic în baza de date Situatie_scolara.
52
TEMA NR. 4
ASPECTE PRIVIND SECURITATEA INFORMAŢIILOR
ÎN BAZELE DE DATE
53
crearea şi utilizarea de formulare prin care diverşii utilizatori consultă/adaugă/modifică datele
din tabelele bazei de date, în funcţie de permisiunile acordate de către formularele respective;
stabilirea unei parole de acces la fişierul bazei de date, care, în Access ®2007 este însoţită şi de
criptarea bazei de date astfel încât aceasta să nu poate fi deschisă de un alt program;
configurarea anumitor nivele de securitate privind accesul la anumite obiecte ale bazei de
date, considerate potenţial periculoase;
divizarea fişierului bazei de date în două fişiere, unul conţinând tabelele cu date, care poate fi
protejat cu parolă şi celălalt conţinând celelalte obiecte (formulare, interogări etc);
utilizarea opţiunii de efectuare a unei copii de siguranţă a fişierului bazei de date;
utilizarea aplicaţiei Microsoft Windows SharePoint Services 3.0, care permite stocarea
informaţiilor din baza de date pe un server de tip SharePoint care asigură accesul public la
diferitele obiecte ale bazei de date concomitent cu posibilitatea de a stabili drepturile de
access la acele obiecte.
54
Fig.47 Formular în fereastra Form View Fig.48 Formular în fereastra Design View
Un formular poate afișa informațiile din tabele sub mai multe forme. Cele mai des utilizate sunt
cele prezentate în fig.49, adică afișarea a câte o înregistrare pe formular (aspect “Columnar”) sau
afișarea sub formă de tabel, similar cu afișarea înregistrărilor în tabele (aspect “Tabular” sau
“Datasheet”). O noutate adusă de Access®
2007 este posibilitatea de a afișa simultan
cele două forme, adică așa-numitul
formular scindat – Split Form (fig.50).
Astfel, există posibilitatea căutării unei
informații în zona “Datasheet” și afișarea
automată a înregistrării în detaliu în zona
“Columnar”. Modificarea formei de
afișare a informațiilor într-un formular se
poate face în orice moment, în fereastra
proprietăților (Property Sheet).
Fig.50 Formular scindat
55
Un formular conține trei zone principale (fig.51):
Form Header – antetul formularului, este zona în care se include, de obicei, un titlu, o siglă,
etichetele coloanelor, data curentă, diverse elemente grafice;
Form Detail – zona de afișare a informațiilor propriu-zise, este zona în care se includ
câmpurile din tabele și în care se afișează valorile înregistrărilor;
Form Footer – subsolul formularului, este zona în care se includ, de obicei, butoane de
comandă, elemente de calcul statistic, data curentă, diverse elemente grafice.
Fiecare dintre cele trei zone ale unui formular conține o serie de componente care se numesc
controale. Gestiunea controalelor se face, în fereastra de proiectare a formularului, din pagina
DesignControls. Modificarea proprietăților controalelor se face în fereastra Property Sheet sau
prin alegerea opţiunii potrivite din paginile Design sau Arrange ale panglicii. În tabelul nr.7 sunt
prezentate cele mai des utilizate controale care pot fi incluse în formulare, unele dintre acestea fiind
noutăți ale versiunii Access® 2007.
Siglă
Titlu
Etichetă
Casetă simplă
de câmp
Data
Subformular curentă
Butoane
Casetă simplă
de acțiune
calculată
Versiunea Access® 2007 aduce o noutate în privința gestiunii controalelor într-un formular prin
gruparea automată a acestora, în funcţie de tip. Se crează astfel grupuri de controale care vor avea
aceleași proprietăți de aspect și vor fi gestionate ca o singură entitate. Opțiunea este disponibilă în
fereastra de proiectare a formularului, din pagina ArrangeControl Layout. Se măreşte astfel viteza
de proiectare a formularului.
56
Tabelul nr.7 – Controale utilizate în formulare
57
Formular individual Formular scindat Formular multiplu
(de tip Columnar) (de tip Split) (de tip Tabular)
După alegerea uneia dintre ele, în funcţie de varianta aleasă, formularul poate fi creat într-unul
sau mai mulţi paşi şi apoi proiectantul poate interveni în fereastra de proiectare (Design View) sau
în fereastra de aspect (Layout View) pentru a face eventualele modificări necesare şi a stabili
proprietăţile care definesc tipul formularului – de afişare, de introducere date sau mixt.
Formularele de afișare date sunt destinate
afișării diverselor informații din tabelele sau
interogările bazei de date. Pentru asigurarea
securității datelor memorate, aceste formulare nu
permit modificarea datelor afişate sau adăugarea de
noi înregistrări în tabele. În aceste formulare,
utilizatorii pot căuta, consulta, selecta (filtra)
înregistrări existente în baza de date fără a putea
modifica în vreun mod conținutul acestora.
După crearea formularului într-una din cele trei
Fig.53 Fereastra proprietăților
variante uzuale de afișare (Columnar/Tabular/Split), unui formular
în fereastra de proiectare se configurează
proprietățile formularului (Property Sheet) care stabilesc permisiuni de adăugare / ștergere /
modificare de înregistrări (fig.53) – Data Entry, Allow Additions / Deletions / Edits.
58
Exemplul 12: Crearea unui formular simplu de afișare a listei elevilor.
deschideți baza de date Elevii scolii și selectați tabelul Elevi, apoi în pagina Create selectați
pictograma Multiple Items, pentru a crea un formular de tip tabelar (afișarea multiplă a
înregistrărilor, într-un mod similar cu cea din fereastra Datasheet a tabelului);
în mod implicit vor fi afişate toate câmpurile tabelului Elevi şi toate înregistrările acestuia,
aplicându-se un anumit format predefinit;
pentru a face modificări ale formularului, puteţi afişa fereastra de proiectare,
HomeView Design View sau fereastra de aspect HomeViewLayout View;
de exemplu, pentru a schimba schema de culori (formatul) formularului, în fereastra de aspect
(Layout View), în pagina FormatAutoFormat sunt disponibile o serie de şabloane dintre
care se poate alege cel dorit (de exemplu Office, aplicat pe formular, în forma finală a
acestuia, afişată în figura 55);
59
în zona Detail, configurați afișarea cu fontul Tahoma, 12pt a tuturor controalelor, iar pentru
controlul câmpului nume, cu Bold;
în zona Form Footer efectuați următoarele acțiuni:
creați înălțimea zonei de aprox 2cm cu ajutorul mouse-ului, “trăgând” în jos de marginea
inferioară a barei de titlu;
adăugați un control de tip buton de acțiune (Button) care să efectueze închiderea
formularului la selecţie prin click de mouse, (fig.55) – selectați controlul de tip Button,
depuneți-l în Form Footer și stabiliți acțiunea asociată în fereastra de dialog a asistenței
interactive, Form Operations / Close Form; afişaţi textul INCHIDERE pe buton;
puteţi crea un control care să afișeze informații statistice – numărul înregistrărilor din
tabel –selectaţi un control de tip Text Box și configurați-i proprietatea Control Source cu
relația matematică: =Count([cod_unic]); modificați și eticheta corespunzătoare.
memorați (Save) structura formularului cu numele Lista elevilor;
pentru a vedea formularul în fereastra de utilizare alegeți opțiunea ViewForm View, în care
se poate testa funcționarea corectă a butonului de acţiune (Atenție – la apăsarea butonului,
fereastra formularului se va închide, deschiderea ulterioară se face prin dublu-click pe numele
formularului, afișat în zona Forms a panoului de navigare din stânga);
pentru a stabili proprietăți de afișare a înregistrărilor și pentru a elimina unele elemente
grafice de pe formular, deschideți fereastra de proiectare a acestuia, apoi fereastra
proprietăților formularului (Form Property Sheet) și modificați proprietățile, conform celor de
mai jos:
Data Entry – No Allow Additions/Deletions/Edits – No
Record Selectors – No Navigation Buttons – No;
după stabilirea valorilor de mai sus ale proprietăţilor veţi constata că formularul nu permite
modificarea valorilor afişate şi nici adăugarea sau ştergerea de înregistrări;
aspectul formularului după efectuarea tuturor modificărilor este prezentat în fig.55;
pentru a modifica aspectul general de afișare a datelor în formular, puteți utiliza opţiunea
60
ArrangeAutoFormat, în care se poate alege un format predefinit sau se pot configura
individual diferitele zone ale formularului (Header/Detail/Footer) cu anumite proprietăți de
afișare; de exemplu, în fig.56 este prezentat același formular, sub alt aspect de afișare
(AutoFormat/Equity și modificarea culorii fundalului zonei Footer);
puteți modifica, de asemenea, stilul de afișare a înregistrărilor (Columnar/Tabular/Split) prin
configurarea proprietății Default View a formularului; de exemplu, în fig.57 este prezentat
același formular, în varianta Split Form, cu afișarea listei înregistrărilor în partea inferioară –
Split Form Orientation / Datasheet on Bottom.
Fig.56 Formular multiplu în format Equity Fig.57 Formular scindat (de tip Split)
Exemplul 13: Crearea unui formular de adăugare de înregistrări prin transformarea unui
formular de afişare.
selectați formularul Lista elevilor, creat la exemplul anterior; faceți o copie a acestui formular
(Copy / Paste), cu numele Adaugare elevi;
deschideți noul formular în fereastra de proiectare (Design view) și faceți câteva modificări de
aspect astfel încât acesta să aibă structura din fig.58 – ștergeți controlul de tip statistic și
modificați titlul din antet;
modificați proprietățile de permisiune adăugare/editare conform celor de mai jos:
Data Entry – Yes / Allow Additions/Edits – Yes;
61
memorați modificările și puteţi utiliza noul formular pentru a adăuga înregistrări noi în tabelul
Elevi, fără a vedea înregistrările existente.
Protecţia informaţiilor conţinute într-o bază de date poate fi realizată şi printr-o serie de metode
care se referă la fişierul în care sunt create obiectele bazei de date.
În Access®2007, primul nivel de protecţie este asigurat prin blocarea implicită de către sistem a
conţinutului potenţial periculos, care poate fi, de exemplu, infectat cu viruşi. Configurarea
opţiunilor de protecţie în acest caz se realizează dintr-o zonă special destinată acestui scop,
disponibilă de la butonul OfficeAccess OptionsTrust Center (Settings) (fig.59). În grupul Macro
Settings se află 4 opţiuni de protecţie. Dintre acestea, opţiunea implicită a sistemului – Disable all
macros with notification – blochează orice conţinut potenţial periculos, cum ar fi: comenzile macro,
butoanele de acţiune de pe formulare, interogările de acţiune, aplicaţiile VBA incluse în fişier.
La deschiderea oricărui fişier de tip bază de date este afişată o bară de avertizare – Security
Warning – prin care utilizatorul este informat asupra blocării unui anumit conţinut al bazei de date.
Există un buton Options prin care acel conţinut poate fi activat, dacă se ştie că acesta este din sursă
sigură şi nu prezintă pericol pentru baza de date.
În fereastra Trust Center (fig.59) sunt disponibile şi o serie de alte opţiuni referitoare la
încrederea acordată fişierelor de tip bază de date şi a locurilor (Trusted Locations) în care acestea
sunt memorate pe calculatorul propriu sau pe reţeaua de calculatoare.
62
Fig.59 Opţiunile de securitate Trust Center
Configurarea unei parole de acces la deschiderea bazei de date (Encrypt with Password)
Este una dintre cele mai simple metode de protecţie a unui fişier împotriva deschiderii acestuia
de către persoane neautorizate. Deschiderea fişierului este protejată de o parolă dată de către
utilizator. Parola controlează accesul numai la acel fişier.
În Access®2007 concomitent cu crearea parolei fişierul este criptat (codificat), adică acesta nu va
putea fi deschis cu altă aplicaţie.
Pentru a crea o parolă de acces, fişierul trebuie deschis în modul exclusiv (Exclusive Open, vezi
tema nr.1). Se alege apoi opţiunea Database Tools Encrypt with Password, se indică parola în
caseta Password şi apoi se repetă în caseta Verify.
Eliminarea parolei de acces se face cu opţiunea inversă Database ToolsDecrypt Database,
având baza de date deschisă cu opţiunea Exclusive şi fiind necesară cunoaşterea parolei respective.
Observaţii
În ceea ce priveşte utilizarea unei parole, există numeroase păreri care spun că parolele formate
din combinaţii ale numelui sau prenumelui, data naşterii, numere de asigurare socială, de carte de
63
identitate etc. sau chiar cuvinte obişnuite nu sunt prea sigure. Există astăzi programe care folosesc
dicţionare de cuvinte uzuale pentru a găsi parola potrivită şi care pot fi utilizate de către hackeri. O
regulă sigură pentru generarea unei parole este utilizarea combinaţiilor neobişnuite de cifre, litere
sau caractere speciale ($, &, +, *). De asemenea, este necesar ca parola să aibă minimum 6...8
caractere.
ATENŢIE: Parolele de acces sunt Case sensitive (diferenţiază literele mici de majuscule)
Pentru asigurarea unei protecţii a informaţiilor conţinute în baza de date, deoarece acestea sunt
memorate în tabelele acesteia, Access®2007 oferă posibilitatea divizării fişierului în două părţi, una
cu tabelele, care poate fi protejată cu o parolă şi a doua parte cu celelalte obiecte ale bazei de date
(interogări, formulare, rapoarte etc).
Acţiunea se realizează cu opţiunea Database ToolsAccess Database care deschide o fereastră
specifică (fig.60) în care utilizatorul este informat despre acţiunea care se va face şi este sfătuit să
creeze o copie de siguranţă a fişierului respectiv (vezi paragraful următor); se apasă butonul Split
Database pentru continuarea acţiunii sau Cancel pentru renunţare. În a doua fereastră se indică un
nume pentru fişierul cu tabele şi un loc pe calculator unde va fi memorat acest fişier şi se apasă
butonul Split. Se va crea un nou fişier conţinând doar tabelele cu date, iar în fişierul original se vor
stabili legături către acele tabele, pe baza cărora informaţiile din acestea pot fi prelucrate, fără a
avea posibilitatea de a modifica structura tabelelor sau proprietăţi ale câmpurilor acestora.
Fişierul care conţine tabelele – fişier de siguranţă – poate fi protejat cu o parolă de acces, astfel
încât structura acestuia - tabele, câmpuri şi proprietăţi ale acestora – să fie protejată.
La fiecare deschidere a fişierului de lucru se va efectua automat actualizarea datelor conţinute în
tabelele memorate în fişierul de siguranţă. Această acţiune se poate efectua şi manual prin
selectarea opţiunii Database ToolsLinked Table Manager.
64
Deoarece fiecare utilizator are acces complet la înregistrările din tabele, acestea putând fi
modificate sau şterse, nivelul de protecţie din acest punct de vedere este minim.
Pentru a evita eventuale pierderi de informaţii din diferite cauze este recomandată efectuarea
periodică a unei copii de siguranţă a fişierului bazei de date. Această posibilitate este disponibilă în
Access®2007 la butonul OfficeManageBack Up Database. În fereastra care se deschide (fig.61)
trebuie indicat locul în care va fi memorată copia şi eventual modificat numele predefinit propus
automat de către program, nume care include şi data curentă la care se face crearea copiei
respective.
65
REZUMATUL DISCIPLINEI
66
Anexa nr.1
67
Anexa nr.2
Cod_unic Cod Nume Prenume Data_nasterii
1051 1310 BIRLIGA ROXANA IOANA 01.05.2003
1052 1310 COJOCARU LUCIAN 10.12.2003
1053 1310 CONSTANTIN MANUELA 06.09.2003
1054 1310 GAVRILA MARIUS 30.12.2003
1055 1310 GHIMBASAN PETRUTA ANDA 01.07.2003
1056 1310 HASEGAN ILEANA-RODICA 30.04.2003
1057 1310 IBANESCU DAN ALEXANDRU 02.06.2003
1058 1310 ION IONUT MIREL 14.02.2003
1060 1310 KAPITANY ENIKO 08.09.2003
1062 1310 NICHIFOR ALEXANDRA IOANA 24.06.2003
1063 1310 PANTAZI GEORGE IRINEL 29.10.2003
1064 1310 POPESCU LIVIU ADRIAN 12.09.2003
1065 1310 POTORAC SILVIU 05.10.2003
1066 1310 STOIAN EUGENIA GEORGIANA 12.09.2003
1067 1310 STOICA GEORGE CRISTIAN 01.03.2003
1068 1310 STOICANEA ANDREI SEBASTIAN 01.04.2003
1069 1310 TICU CIPRIAN-LUCIAN 08.01.2003
1070 1310 TIMAR IOANA-LACRAMIOARA 25.09.2003
1071 1310 TOACSE NICOLAE 29.09.2003
1072 1310 VOICU SILVIA ANDREEA 17.03.2003
1073 1310 ZOLTAN GH. ROBERT ALIN 01.03.2003
68
Cod_unic Cod Nume Prenume Data_nasterii
2047 2210 ANCUTA MARIUS CATALIN 04.02.2002
2048 2210 APOSTU ADRIAN 16.08.2002
2049 2210 BALAN ADRIAN 14.02.2002
2050 2210 BANDEA STEFAN 09.06.2002
2051 2210 BARTHA ROXANA NICOLETA 19.04.2002
2053 2210 CHELARIU FLORIN 27.04.2002
2054 2210 DIMA MARIUS 20.06.2002
2055 2210 FLOREA FLORIN 04.07.2002
2056 2210 GEORGESCU PETRE IULIAN 29.08.2002
2057 2210 GEORGESCU SIMONA GABRIELA 20.07.2002
2059 2210 MANESCU MIHAI 16.01.2002
2060 2210 MARCU BOGDAN DANIEL 23.01.2002
2061 2210 NICOLAE DANIEL 24.06.2002
2062 2210 NISTOR CIPRIAN GHEORGHE 15.09.2002
2063 2210 NOVAC GHEORGHE ALEXANDRU 23.02.2002
2064 2210 OCHEAN ALEXANDRU DAN 19.11.2002
2065 2210 OPREA ROMEO DUMITRU 15.09.2002
2066 2210 PREDESCU STEFAN 21.07.2002
2067 2210 ROTARI GEORGE ADRIAN 12.02.2002
2068 2210 SANDU VLAD DUMITRU 25.04.2002
2070 2210 SAUCIUC DANIEL COSTICA 26.02.2002
2071 2210 STAN VALENTIN MIHAI 27.08.2002
2072 2210 STEFAN ANDREI CONSTANTIN 26.02.2002
2073 2210 VASILESCU ION 20.11.2002
69
Cod_unic Cod Nume Prenume Data_nasterii
3054 3210 ALBINA GEORGE ADRIAN 09.10.2001
3055 3210 BARLA SILVIU GABRIEL 02.02.2001
3056 3210 BARZIC LUCIAN NICOLAE 04.08.2001
3057 3210 BORICEAN GABRIELA 24.07.2001
3058 3210 CIOBANU BIANCA 11.01.2001
3059 3210 CIUREA ADRIAN 14.07.2001
3060 3210 FIRICA NICOLETA 01.01.2001
3061 3210 GAREA CATALIN IOAN 24.04.2001
3062 3210 KONCZE MIHAI 26.11.2001
3064 3210 MARINA CARMEN ALINA 08.05.2001
3065 3210 NEAGU SILVIU ALEXANDRU 20.06.2001
3066 3210 NEGOT FLORIN RAZVAN 22.11.2001
3067 3210 PANTEA CRISTIAN 14.10.2001
3068 3210 PETRE ROBERT CATALIN 22.10.2001
3069 3210 POPA ADRIAN IONUT 12.04.2001
3070 3210 POTORAC BOGDAN 15.02.2001
3072 3210 SZEKELY ISTVAN 12.03.2001
3074 3210 TRIFAN CATALIN 24.07.2001
3075 3210 VERNICEANU OVIDIU 03.03.2001
70
Anexa nr.3
®
Funcţii predefinite integrate în Access
Obs. În funcţie de valoarea stabilită de către sistemul de operare Windows ®, separatorul zecimal
poate fi punctul – . – (sistemul american) sau virgula – , – (sistemul românesc).
În exemplele date în continuare s-a considerat ca separator zecimal virgula.
71
Date/Time – Funcţii pentru date de tip dată calendaristică / oră
Sintaxa funcţiei Explicaţii Exemple
Returnează o valoare reprezentând data curentă
preluată din sistemul de operare Windows®
Date ( ) Afişarea valorii se face în modul implicit definit în Date ( )=08.01.2011
Access
Dacă vd=8.02.2005
Returnează o valoare întreagă reprezentând parte DatePart(”yyyy”;vd)=
din val_data, în funcţie de valoare indicată prin cod 2005
DatePart(cod; fwd şi fw sunt valori opţionale care definesc
DatePart(”m”;vd)=2
val_data; <fwd>; numerotarea zilelor şi săptămânilor într-un an
calendaristic DatePart(”d”;vd)=8
<fw>)
Valori implicite; fwd: Sunday DatePart(”w”;vd)=3
fw : săpt.cu 1 Ian. DatePart(”y”;vd)=39
DatePart(”ww”;vd)=7
Dacă vd=8.02.2005
Returnează o valoare întreagă între 1 şi 31
Day (val_data) reprezentând ziua din lună extrasă din val_data Day(vd)=8
SQL Aggregate – Funcţii pentru prelucrarea statistică a seturilor de valori grupate cu Group By în cadrul
interogărilor (funcţii de tip statistic)
argument reprezintă variabila după care se face gruparea valorilor; poate fi un câmp al unui tabel din baza
de date sau un câmp calculat în interogare
Sintaxa funcţiei Explicaţii
Avg ([argument]) Returnează valoarea medie din fiecare set de valori
Count ([argument]) Returnează numărul de valori din fiecare set de valori
Max ([argument]) Returnează valoarea maximă din fiecare set de valori
Min ([argument]) Returnează valoarea minimă din fiecare set de valori
Sum ([argument]) Returnează suma valorilor din fiecare set de valori
StDev([argument]) Returnează abaterea standard a fiecărui set de valori
Var([argument]) Returnează varianța fiecărui set de valori
Alte funcţii
Sintaxa funcţiei Explicaţii Exemple
Funcţie condiţională IIf([nota]>=5;”Promovat”;
Returnează valDA dacă evaluarea
Iif (conditie; valDA; “Corigent”)
condiţiei returnează adevărat
valNU) Returnează valNU dacă evaluarea Pt.[nota]>=5, IIf=”Promovat”
condiţiei returnează fals Pt.[nota]<5, IIf=”Corigent”
72
BIBLIOGRAFIE
73
Inspectoratul Şcolar
Judeţean Bacău
Investeşte în oameni!
Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane 2007 – 2013
Axa prioritară 1 „Educaţia şi formarea profesională în sprijinul creşterii economice şi dezvoltării societăţii bazate pe cunoaştere”
Domeniul major de intervenţie 1.3 „Dezvoltarea resurselor umane în educaţie şi formare profesională”
Titlul proiectului: Profesionalizarea carierei didactice- noi competenţe pentru actori ai schimbărilor în educaţie
din judeţele Bacău şi Covasna
Beneficiar: Inspectoratul Şcolar Judeţean Bacău
Număr de identificare al contractului: POS DRU/87/1.3/S/62339
Nr. de înregistrare al AMPOSDRU: D.G.A.M.P.O.S.D.R.U./E/8263
Durata:
noiembrie 2010 – octombrie 2013 (36 luni)
PARTENERI
Inspectoratul Şcolar Judeţean Covasna
http://www.isj.educv.ro
Casa Corpului Didactic “Grigore Tabacaru” Bacău
http://www.ccdbacau.ro
Casa Corpului Didactic Covasna
http://www.ccdcovasna.ro
Universitatea Transilvania din Braşov
http://www.unitbv.ro
www.bacov-ia.ro
74