Professional Documents
Culture Documents
________________________________________________________________________________________________
INFORMATICĂ
BAZE DE DATE
CUPRINS
I. Generalităţi
1. Conceptul de bază de date
2. Obiectivele fundamentale
3. Sistemul de gestiune al Bazelor de Date
II. SGBD Access
1. Prezentare generală
2. Crearea structurii bazei de date
3. Formulare
4. Interogarea bazei de date
5. Rapoarte
6. Comenzi macro
III. Interfaţarea SGBD Access cu alte aplicaţii
1. Importul şi Exportul de date
2. Interfaţare Internet
IV. Limbajul SQL
1. Noţiuni generale
2. Instrucţiuni de definire a datelor
3. Interogări
4. Instrucţiuni pentru manipularea datelor
V. Analiză de caz – energii durabile
1
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
I. Generalităţi
Pe lângă realizarea de programe de prelucrare a datelor, o activitate la fel de importantă este aceea
de organizare a datelor în scopul prelucrării. Pentru a putea realiza aplicaţii eficiente este necesar ca
datele prelucrate să fie stocate într-o structură bine pusă la punct şi în acelaşi timp şi programele de
prelucrare să corespundă cerinţelor.
Un element important este acela al separării nete între date, informaţii şi cunoştinţe:
- datele – din punctul de vedere al prelucrării pe calculator datele sunt definite de trei
elemente: un identificator (ex.: cantitate), un atribut (ex.: număr real şi pozitiv) şi
valoare (ex.: 23,78);
- informaţiile – este un mesaj cu caracter de noutate. Acestea vin să înlăture
nedeterminările şi sunt obţinute în urma prelucrării datelor;
- cunoştinţele – sunt informaţii simple sau compuse pe care le dobândim de-a lungul
timpului. Ele se referă la obiecte şi fenomene din lumea reală.
O bază de date poate fi definită ca un ansamblu de date elementare sau structurate, accesibile unui
grup de utilizatori. Aceasta este un ansamblu de fişiere intercorelate care conţine nucleul de date
necesare unui sistem informatic.
Fişierul este un ansamblu de înregistrări fizice, omogene din punctul de vedere al conţinutului şi al
prelucrării. O înregistrare fizică este unitatea de transfer între memoria internă şi cea externă a
calculatorului. Aceasta este formată din una sau mai multe înregistrări logice. Înregistrarea logică
este unitatea de prelucrare din punct de vedere al programului utilizator. Aceasta la rândul ei este
formată dintr-un ansamblu de câmpuri care descriu o anumită realitate.
________________________________________________________________________________________________
Sistemul de gestiune al bazelor de date (SGBD) este o interfaţă între utilizatori şi baza de date, care
permite ca facilităţi principale crearea, actualizarea şi consultarea acesteia. Din acest punct de
vedere SGBD poate fi considerat un instrument de asamblare, codificare, aranjare, protecţie şi
regăsire a datelor în baza de date.
Consultarea unei date din baza de date trebuie să se deruleze ca principiu în mai multe etape care se
succed într-o ordine stabilită. Programul de aplicaţie emite o cerere de consultare a unei date simple
sau grupate din baza de date; această cerere este recepţionată de SGBD care consultă schema
aferentă programului de aplicaţie care a emis cererea şi obţine descrierea logică a datei solicitate, pe
care o compară cu descrierea acesteia în schema conceptuală. În continuare sistemul consultă
structura fizică în raport cu descrierea logică şi determină înregistrarea fizică în care se află data
cerută după care lansează cereri către sistemul de operare care caută înregistrarea fizică şi o pune la
dispoziţia SGBD care apoi o pune la dispoziţia programului de aplicaţie.
3
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
SGBD Microsoft Access face parte di pachetul de programe Microsoft Office alături de alte
componente tradiţionale cum sunt: Microsoft Word, Excel, PowerPoint şi Outlook iar versiunea
2000 Microsoft Office mai conţine şi Publisher, FrontPage, PhotoDraw şi Small Business Tools.
În versiunea 2000 a SGBD Access au fost introduse o serie de facilităţi noi cum ar fi:
• Interfaţa grafică a fost modificată, fiind mai uşor de utilizat;
• Se permite publicarea datelor folosind pagini HTML dinamice;
• Dimensiunea bazei de date se poate reduce folosind facilitatea de compactare;
• Se pot crea aplicaţii care să utilizeze baze de date stocate în SQL Server prin intermediul
reţelei.
Spre deosebire de alte sisteme de gestiune a bazelor de date (cum ar fi FoxPro spre exemplu) unde
prin bază de date se înţelege doar colecţia de fişiere în care sunt stocate datele, baza de date Access
poate fi definită ca o colecţie de obiecte de mai multe tipuri:
• Tabele (Tables) – sunt obiecte definite de utilizator în care sunt stocate datele primare;
• Formulare (Forms) – sunt obiecte care permit introducerea datelor, afişarea acestora
sau controlul aplicaţiei;
• Cereri de interogare (Queries) – sunt obiecte care permit vizualizarea informaţiilor
obţinute prin prelucrarea datelor din una sau mai multe tabele şi / sau alte cereri de
interogare;
• Rapoarte (Reports) – sunt obiecte care permit formatarea şi tipărirea informaţiilor
obţinute în urma consultării bazei de date, sub formă de documente;
4
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
• Pagini Web de accesare a datelor (Pages) – sunt obiecte care include fişiere HTML şi
alte fişiere suport în vederea furnizării accesului la date prin intermediul browserului
Internet;
• Comenzi Macro (Macros) – sunt obiecte ce conţin definiţii structurate ale uneia sau
mai multor acţiuni pe care Access le realizează ca răspuns la un eveniment;
• Module (Modules) – reprezintă obiecte care conţin proceduri definite de utilizator şi
scrise în limbajul de programare Visual Basic.
La pornire SGBD Access afişează un ecran de dialog ce pune la dispoziţie două posibilităţi: crearea
manuală a unei baze de date goale (Blank Access database) sau crearea unei BD cu ajutorul
“asistentului” (Access database wizards, pages and projects).
Cea de-a doua variantă pune la dispoziţia utilizatorilor mai puţin iniţiaţi un set de modele de baze de
date specifice anumitor domenii. În funcţie de problema care trebuie rezolvată aceştia vor alege
unul din aceste modele pe care îl vor adapta ulterior.
Pentru crearea manuală a unei baze de date noi se selectează Blank Access database şi se dă click
apoi pe OK. În fereastra de dialog File New Database se introduce numele bazei de date ce se
doreşte a se crea şi apoi se dă click pe Create.
Dacă se doreşte modificarea sau consultarea unei baze de date creată anterior aceasta poate fi
deschisă din fereastra principală prin selectarea opţiunii Open an existing file şi apoi click pe OK.
Se va deschide apoi fereastra de dialog Open ce permite selectarea bazei de date dorite.
Prin modificarea unei baze de date Access se înţelege modificarea obiectelor din componenţa
acesteia. După modificarea unui obiect, la închiderea acestuia sistemul va solicita să se specifice
dacă modificările realizate vor fi sau nu salvate. În concluzie, modificările obiectelor se salvează
local şi ca atare nu este necesară salvarea întregii baze de date.
În vederea înţelegerii modului în care se creează o aplicaţie în Access vom folosi în continuare un
caz practic. Pentru aceasta vom considera cazul unui sistem informatic de gestiune a materialelor în
cadrul căruia se doreşte evidenţierea furnizorilor, a facturilor, a magaziilor, a tipurilor de materiale
şi a bonurilor de consum. În scopul simplificării într-o anumită măsură a problematicii se presupune
că materialele cuprinse într-o factură sunt destinate unei singure magazii; de asemenea se consideră
că materialele au un preţ de achiziţie fix independent de furnizor şi că recepţia materialelor se face
de o magazie pe baza facturii iar eliberarea acestora se face către secţii pe baza bonurilor de consum
În urma analizei problemei rezultă următoarele entităţi: furnizor, factură, material, magazie şi bon
de consum. De asemenea se pot identifica următoarele corespondenţe:
- furnizor – factură : un furnizor poate emite de la 1 la n facturi – corespondenţa
“emite”;
5
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
Corespondenţele identificate conform celor enumerate mai sus primesc următoarele cardinalităţi:
- “emite” : dinspre entitatea furnizor(1,n) iar dinspre entitatea factură(1,1);
- “primeşte” : dinspre entitatea magazie(1,n) iar dinspre entitatea factură(1,1);
- “poziţie factură” : dinspre entitatea factură(1,n) iar dinspre entiatea material(1,n);
- “poziţie bon de consum” : dinspre entitatea material(0,n) iar dinspre entitatea bon de
consum(1,n);
- “destinat” : dinspre entitatea bon de consum(1,1) iar dinspre entitatea magazie(1,n);
- “se stornează” : o factură poate să nu fie stornată sau poate să fie stornată de mai multe
ori -> factură(0,n) şi de asemenea o factură poate storna o singură factură -> factură(1,1).
Acest model relaţional poate fi transpus într-un model fizic corespunzător unei baze de date Access
folosind opţiunea Tools->Relationships din meniul sistemului.
Crearea tabelelor
Crearea structurii tabelelor se poate face: utilizând fereastra de proiectare (Create table in design
view), prin introducerea datelor (Create table by entering data) sau utilizând un wizard (Create
table by using wizard).
Folosind instrumentul wizard se pot adăuga câmpuri standard ce se află deja în cadrul bibliotecilor
de tabele standard. În acest caz câmpurile din cadrul tabelelor standard au fost create pentru
sistemul de lucru anglo-saxon.
În situaţia când se optează pentru utilizarea design view pe ecran va apărea fereastra Table ce
permite definirea rând pe rând, pentru fiecare câmp în parte, a numelui câmpului, tipul de date şi
6
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
eventual descrierea acestuia. În panoul de jos al acestei ferestre se introduc alte proprietăţi ale
câmpului. Numele câmpului poate fi de maxim 64 de caractere poate să conţină spaţiu şi nu poate
conţine următoarele caractere: [ , ] , . , ` sau ! . De asemenea acesta nu poate fi un nume rezervat
Access.
Numele ales pentru un câmp va fi apoi folosit în alte obiecte ce fac referire la tabela respectivă
(formulare, cereri de interogare, rapoarte, pagini Web, etc.). În situaţia în care acesta se modifică
ulterior este necesar să se modifice corespunzător toate referinţele către acel câmp şi în celelalte
obiecte. În versiunea 2000 a sistemului Access există posibilitatea propagării automate a
modificărilor prin selectarea opţiunii Track Name AutoCorrect prezentă în Tools->Options->
General.
Text – este cel mai folosit tip de câmp în bazele de date Access şi de aceea este considerat implicit
la declararea unui câmp nou. Acesta poate conţine un şir de caractere cu o lungime maximă de 255.
Lungimea câmpului este prestabilită la 50 de caractere dar poate fi modificată.
Memo – sunt câmpuri de tip şir de caractere ce pot avea lungimi de până la 64.000. Se folosesc de
obicei pentru introducerea de comentarii.
Number – folosit pentru valori numerice acest tip de date prezintă mai multe subtipuri selectabile
din proprietatea Field Size:
- Byte – pentru numere întregi (fără zecimale), cu valori de la 0 la 255;
- Integer – numere întregi din intervalul –32.768 … +32767;
- Long Integer – numere întregi din intervalul –2.147.483.648 … +2.147.483.647;
- Single – numere fracţionare reprezentate în virgulă mobilă, simplă precizie, având valori
cuprinse între –3,4*1038 şi +3,4*1038;
- Double – numere fracţionare reprezentate în virgulă mobilă, dublă precizie, având valori
cuprinse între –1,797*10308 şi +1,797*10308;
- Replication ID – identificator global unic;
- Decimal – pentru valori întregi din intervalul –1028 … +1028;
AutoNumber – este un câmp ce conţine valori de tip Long Integer ce va fi completat în mod
automat de către Access pentru fiecare înregistrare adăugată într-o tabelă. Numărul maxim de
înregistrări într-o tabelă ce utilizează AutoNumber este mai mare de 2 miliarde.
Yes/No – pentru câmpuri logice (boolene). Sistemul Access foloseşte pentru codificarea acestui tip
de câmpuri valoarea –1 pentru True şi 0 pentru False. Din proprietatea Format se poate alege una
din opţiunile de afişare: Yes/No, True/False sau On/Off.
Currency – este un format fix, cu patru zecimale proiectat să prevină erorile de rotunjire care pot
afecta operaţiile contabile.
Date/Time – datele calendaristice şi ora sunt stocate împreună într-un format special fix. Modul de
afişare poate fi controlat din proprietatea Date/Time Format.
Object OLE – numit şi BLOB (Binary Large Object). Include date de diverse tipuri (imagini,
desene vectoriale, fişiere audio, etc.) ce pot fi create de o aplicaţie OLE server.
7
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
Hyperlink – text sau combinaţie de text reprezentând adresa unei pagini Web sau, la modul
general, un URL (Uniform Resource Locator).
Lookup Wizard – pentru crearea de câmpuri ce permit utilizatorului să aleagă valori din cadrul
altor tabele sau dintr-o listă prestabilită de valori.
Formate de afişare
Stabilirea modului de afişare a datelor introduse în câmpurile tabelelor se face folosind proprietatea
Format. Această proprietate nu afectează modul de introducere a datelor. Pentru toate tipurile de
date pot fi folosite următoarele simboluri:
- (spaţiu) – afişează spaţiile drept caractere distincte;
- “ABC” – afişează orice se află în interiorul ghilimelelor aşa cum a fost tastat;
- ! – forţează alinierea la stânga, în loc de aliniere la dreapta;
- * – completează spaţiul disponibil cu caracterul specificat imediat după *;
- \ – afişează următorul caracter aşa cum a fost tastat (acelaşi lucru se poate obţine şi prin
includerea caracterelor de afişat între ghilimele);
- [culoare] – permite afişarea caracterelor cu culoarea specificată între paranteze. Valorile
posibile sunt: Black, Blue, Green, Cyan, Red, Magenta, Yellow, White.
Proprietatea Format foloseşte diverse simboluri şi combinaţii ale acestora pentru tipuri diferite de
date.
Prin activarea tab-ului Lookup din panoul de proprietăţi, se pot specifica o serie de proprietăţi care
se referă în principal la sursa de introducere a datelor. Aceste pot fi:
- Display Control – tipul de control folosit pentru afişarea câmpului în tabele, formulare
sau rapoarte. Acesta este de obicei Text Box dar poate fi modificat în List Box sau
Combo Box în situaţia în care câmpul respectiv este cheie externă şi ca atare face referire
la o cheie primară dintr-o altă tabelă;
- Row Source type – în situaţia în care Display Control a fost setat ca List Box sau Combo
Box trebuie specificată sursa de date care poate fi: tabelă sau cerere de interogare
8
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
(Table/Query), listă de valori specificată de utilizator (Value List) sau listă de câmpuri
din altă tabelă (Field List);
- Row Source – în situaţia în care s-a specificat Table/Query sau Field List pentru Row
Source Type aici se menţionează numele tabelei sau a cererii de interogare de unde vor fi
preluate datele iar în situaţia în care s-a selectat Value List se vor introduce valorile din
listă separate prin virgulă;
- Bound Column – se specifică numărul coloanei din care vor proveni datele în situaţia în
care acestea vor proveni din mai multe coloane;
- Colum Count – numărul de coloane ce vor fi preluate;
- Column Heads – se specifică dacă va fi afişată sau nu eticheta coloanei preluate;
- Column Widths – specifică lăţimea de afişare a coloanelor din sursa de date. Dacă o
coloană din tabela sursă nu trebuie afişată atunci I se va specifica lăţimea de afişare 0;
- List Row – se specifică numărul de rânduri ce vor fi afişate în casetă pentru Combo Box;
- List Width – se specifică lăţimea de afişare pentru Combo box;
- Limit to List – se specifică dacă valorile câmpului se vor limita doar la cele afişate în
Combo Box. În situaţia în care se selectează No utilizatorul poate introduce şi valori noi.
Din punctul de vedere al momentului creării acestora, există două tipuri de relaţii între tabelele unei
baze de date Access:
- relaţii permanente – sunt cele ce se stabilesc după definirea tabelelor şi sunt cerute de
modelul relaţional. Acestea sunt parte componentă a structurii bazei de date şi se
realizează de obicei prin corespondenţe de tipul cheie primară – cheie externă;
- relaţii temporare – se stabilesc între tabele cu ocazia definirii unor cereri de interogare şi
nu se înregistrează în structura bazei de date.
În exemplul prezentat anterior, dacă am încerca să definim o relaţie între furnizori şi magazii
aceasta va fi de tipul many to many. Introducerea tabelei factura a transformat această relaţie în
două relaţii one to many.
Definirea relaţiilor se realizează folosind fereastra Relationships. O relaţie dintre două tabele se
realizează prin operaţia de drag and drop de la cheia primară a tabelei principale la cheia externă a
tabelei secundare. Cu această ocazie Access va deschide fereastra de dialog Edit Relationships în
care se observă legătura stabilită şi unde se mai pot stabili alte câteva opţiuni:
- Enforce Referential Integrity – pentru a face în aşa fel încât, dacă se introduce o
înregistrare nouă în tabela secundară, se verifică dacă valoarea cheii externe se găseşte în
tabela primară, ceea ce înseamnă că este necesară completarea mai întâi a datelor din
tabela principală şi apoi a celor din tabela secundară;
- Cascade Update Related Fields – în situaţia în care Enforce Referential Integrity a fost
activată, în momentul modificării valorii cheii primare în tabela principală se vor
modifica şi valorile corespondente din tabela secundară;
9
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
- Cascade Delete Related Records – activă doar dacă s-a selectat în prealabil Enforce
Referential Integrity, are ca efect ştergerea tuturor înregistrărilor din tabela secundară ce
au o anumită valoare pentru cheia externă în momentul ştergerii cheii primare din tabela
principală.
II.3. Formulare
Formularele (Forms) reprezintă interfaţa principală între utilizator şi o aplicaţie Access. Acestea
sunt obiecte ale bazei de date ce permit introducerea şi afişarea datelor. În cadrul unei aplicaţii
formularele pot îndeplini următoarele funcţii:
• Afişarea şi editarea datelor – este cea mai frecvent întâlnită utilizare a formularelor.
Formularul permite vizualizarea datelor în forma dorită de proiectantul aplicaţiei şi de
asemenea datele pot fi modificate sau şterse;
• Controlul operaţiilor realizate de aplicaţie – împreună cu comenzi macro sau cu
proceduri Vizual Basic formularele pot realiza afişarea automată a anumitor date sau
executarea automată a unui şir de operaţii (cum ar fi deschiderea de subformulare într-un
formular);
• Introducerea de date;
• Afişarea de mesaje – se pot furniza informaţii privind modul în care aplicaţia poate fi
utilizată sau despre operaţiile ce urmează a fi executate;
• Tipărirea informaţiilor – funcţie destul de rar folosită.
Formularele sunt compuse din trei părţi: antetul, zona de detaliu şui subsolul. Zona de detaliu este
cea în care se prezintă datele. Antetul şi subsolul conţin informaţii statice. Spre exemplu, antetul
poate conţine numele formularului şi capul de tabel (denumirea câmpurilor) iar subsolul poate
conţine denumirea programului.
Crearea formularelor se poate face folosind instrumentul wizard pentru creare automată sau
folosind fereastra de proiectare (Design View). În vederea obţinerii în mod eficient a unor formulare
performante este recomandat ca acestea să fie iniţial create folosind instrumentul wizard şi apoi să
se modifice folosind fereastra de proiectare în scopul adăugării de facilităţi suplimentare.
Pentru crearea folosind instrumentul wizard din caseta de dialog New Form se va selecta Form
Wizard iar din lista derulantă prezentă în partea de jos a acestei casete se va selecta tabela cu care va
lucra formularul, după care se dă click pe OK. Fereastra următoare îi aparţine instrumentului wizard
şi permite selectarea câmpurilor asupra cărora va opera formularul în lucru. Prin click pe Next se va
trece la fereastra următoare ce permite selectarea modului de prezentare al datelor (Columnar,
Tabular, Datasheet, Justified) din care cel mai utilizat este cel de tip coloană (Columnar). Fereastra
următoare prezintă o listă de stiluri de afişare disponibile; un stil conţine un anumit tip de fundal,
10
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
anumite tipuri de caractere, culori, etc. Prin acţionarea butonului Next se trece la stabilirea numelui
formularului şi se poate alege acţiunea ce se va realiza după încheierea cu Finish a wizard-ului:
deschiderea în fereastra de proiectare sau în modul de introducere / editare al datelor.
________________________________________________________________________________________________
Subformulare
Un subformular este un formular inclus într-un alt formular pentru a permite afişarea datelor din
mai multe tabele sau cereri de interogare, aflate în general în relaţii de tipul unu la unu sau unu la
mai mulţi. Astfel, în formularul principal vor fi afişate datele din partea unu a relaţiei, iar în
subformular, cele din partea mai mulţi. În mod implicit legătura dintre un formular şi un
subformular reflectă legătura dintre tabelele pe care se bazează acestea. Într-un formular care
conţine un subformular se pot specifica criterii de filtrare numai asupra câmpurilor din formularul
principal. Exemplu: folosind relaţia 1-n dintre tabelele Factură şi Conţinut factură se poate crea un
formular unde se vor afişa facturile şi în care se poate include un subformular pentru afişarea
materialelor specificate în acea factură.
Ca formă de prezentare subformularul poate fi: foaie de date ce permite crearea într-un mod foarte
simplu a unui tabel în care se pot face modificări privind dimensiunea şi ordinea coloanelor sau
formular ce oferă posibilităţi multiple de aranjare a datelor, utilizarea culorilor, crearea de antete şi
subsoluri de pagină precum şi includerea de câmpuri OLE.
Pentru crearea unui formular ce include un subformular sunt posibile trei variante: crearea
formularului şi subformularului în acelaşi timp, crearea subformularului şi adăugarea lui la un
formular existent sau crearea separat a celor două formulare şi apoi combinarea lor. Ultima variantă
este cea mai simplă şi necesită parcurgerea următoarelor etape:
- se creează formularul principal şi subformularul ca formulare independente;
- se realizează legătura între formularul principal şi subformular;
- se verifică legătura şi apoi rezultatul.
________________________________________________________________________________________________
Primele două moduri sunt interogări simple, fără restricţii şi se referă la o singură tabelă.
Interogarea prin cereri explicite este complexă şi se realizează în general pe mai multe tabele ale
căror date sunt filtrate folosind diverse criterii. În Access aceasta poate fi de cinci feluri: selecţie
(select), analiză încrucişată (crosstab), acţiune (action), SQL (Structured Query Language) şi
parametrată (parameter). Rezultatul unei asemenea cereri este plasat într-o foaie de răspuns ce se
aseamănă foii de date asociate unei tabele.
Avantajele obţinute prin interogarea bazei de date folosind cereri explicite sunt:
- selecţia câmpurilor din tabele şi a înregistrărilor acestora pe baza unor criterii impuse de
necesităţile informaţionale;
- ordonarea rezultatelor după anumite criterii;
- introducerea unor câmpuri calculate pe baza unor formule care operează cu câmpuri din
tabele;
- combinarea datelor ce provin din mai multe tabele;
- modularitatea cererilor, ceea ce permite ca rezultatul unei cereri să poată fi folosită ca
intrare pentru o nouă cerere;
- crearea unor formulare şi rapoarte care au la bază cereri de interogare create anterior;
- posibilitatea de realizare a unor reprezentări grafice pe baza unor cereri de tip analiză
încrucişată.
Pentru crearea unei cereri de interogare folosind Design Wizard trebuiesc parcurşi următorii paşi:
1. În fereastra Database se selectează secţiunea Queries şi apoi New;
2. În caseta de dialog New Query se execută click pe Design View şi apoi pe OK;
3. Din caseta Show Table se selectează tabelele şi interogările ce se doreşte a fi incluse în
cererea ce se proiectează. După selectarea opţiunii Close se poate accesa fereastra de
lucru ce este structurată pe două secţiuni:
• secţiunea de afişare a structurii tabelelor / cererilor ce au fost selectate
anterior şi a legăturilor dintre ele (dacă există);
• secţiunea ce conţine grila de proiectare (design grid) în care se va construi
cererea din punct de vedere structural şi funcţional. Această grilă mai poartă numele
şi de grilă QBE (Query By Example).
4. La crearea de interogări ce folosesc mai multe tabele trebuie verificat dacă între ele
există legăturile necesare pentru a răspunde cerinţelor impuse de noua cerere de
interogare. În cazul în care se doreşte realizarea unor legături suplimentare, acestea se
pot stabili interactiv;
5. Câmpurile ce apar în structura unei cereri pot fi preluate sau calculate. Câmpurile
preluate pot fi trecute în grila de proiectare prin drag and drop sau dublu click.
Transferul întregii liste de câmpuri dintr-o tabelă sau cerere sursă în grila de proiectare
se poate face folosind linia ce conţine *;
6. Ordonarea datelor (crescător sau descrescător) se poate face după unul sau mai multe
câmpuri. Pentru aceasta se foloseşte poziţia corespunzătoare din linia Sort unde se poate
13
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
alege Ascending sau Descending. Ordinea de sortare este ordinea de apariţie în grila de
proiectare a câmpurilor după care se face sortarea, de la stânga la dreapta;
7. În celulele aflate pe linia Criteria din grila de interogare se pot defini criterii de selecţie
care pot fi simple sau compuse. Criteriile simple pot fi:
• apartenenţa la un interval de valori : BETWEEN de_la AND până_la;
• apartenenţa la o listă de valori : IN (val1, val2,…);
• expresii construite folosind operatori de comparaţie: <, >, <=, >=, <>, =;
• expresii construite folosind operatorul de negaţie: NOT valoare;
• expresii ce fac referire la câmpuri ce conţin sau nu valori: NOT NULL, IS
NOT NULL sau NULL, IS NULL;
• conformitatea cu şabloane de tip text. Textul specificat trebuie inclus între
ghilimele în cazul în care conţine spaţii şi poate conţine caractere generice (wildcard)
cum sunt ? şi *.
Criteriile compuse se constituie prin legarea unor criterii simple folosind operatorii
logici ŞI, SAU. Dacă se doreşte selecţia după mai multe criterii simple conectate prin ŞI
acestea se vor specifica pe aceeaşi linie. Dacă se doreşte acelaşi lucru folosind SAU,
atunci criteriile simple se vor specifica pe rânduri diferite.
Există de asemenea posibilitatea preluării de valori pentru definirea criteriilor din
formulare ce au fost deja definite folosind prefixarea câmpului din formular cu numele
formularului şi al obiectului Forms (ex.: Forms![nume_formular]![nume_câmp].
Pentru determinarea numărului de înregistrări dintr-o tabelă se poate folosi count(*).
8. Pentru crearea de câmpuri calculate:
• se selectează coloana şi se introduce comanda View->Totals ce va duce la
apariţia în grila de proiectare a liniei Total;
• se selectează Expression în linia Total;
• în prima linie Field se introduce formula de calcul care are următoarea formă
generală: nume-rezultat: [câmp1]operator[câmp2] …
În coloana Totals sunt prezente de asemenea şi opţiuni corespunzătoare unor calcule
predefinite (SUM, AVG, MIN, MAX, COUNT, STDEV, FIRST, LAST).
9. Se salvează cererea de interogare cu File->Save.
Aceste cereri permit generarea de tabele complexe sub formă matriceală în care numele liniilor şi
coloanelor reprezintă criterii mixte de grupare iar valorile din celulele tabelului se obţin prin
aplicarea unei funcţii predefinite (Sum, Min, Max etc.) asupra unui câmp din tabelă. Crearea unei
cereri de interogare de acest tip se face folosind Query->Crosstab Query şi apoi se specifică
câmpurile ce furnizează liniile, coloanele şi valorile din tabel.
________________________________________________________________________________________________
Sunt utile atunci când criteriile de selecţie trebuiesc modificate frecvent. Avantajul unei cereri
parametrate este acela că permite ca unele criterii din cadrul acesteia să primească valori în
momentul executării acesteia.
II.5. Rapoarte
Rapoartele pot cuprinde date dintr-una sau mai multe tabele şi/sau interogări sau pot exista rapoarte
care nu au o anumită sursă de date dar care pot îngloba informaţii utile subrapoartelor definite pe
tabele sau interogări între care nu au fost stabilite relaţii. Între rapoarte şi formulare există foarte
multe elemente comune, cum ar fi:
- ambele sunt împărţite în secţiuni în mod asemănător (Report Header / Footer, Page
Header / Footer, Detail);
- controalele ce pot fi utilizate sunt aceleaşi cu menţiunea că unele dintre acestea (cum ar
fi casetele de tip listă sau combinate sau butoanele de comandă) sunt inutile în cazul
rapoartelor;
15
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
16
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
proprietăţii Control Source expresia “=1” şi apoi la Running Sum se va alege domeniul
de numerotare (pe grup sau total);
- Pentru totaluri se proiectează în Group Footer sau Page/Report Footer etichetele şi
casetele text necesare şi apoi se înscriu funcţiile corespunzătoare (sum(), avg(), min(),
max, etc.);
Secţiunile rapoartelor conţin la rândul lor proprietăţi, dar în număr mai mic. Ele folosesc la
atribuirea unui nume de secţiune (Name), la stabilirea saltului la pagină nouă (Force New Page), la
ascunderea sau afişarea datelor (Visible), etc.
17
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
18
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
Importul de date
În momentul când se dezvoltă o aplicaţie datele ce trebuiesc prelucrate este posibil să fie disponibile
în alt format decât formatul MDB al lui Microsoft Access. Pentru utilizarea unor astfel de date sunt
puse la dispoziţie două posibilităţi: crearea unei legături către sursa externă de date şi importul
acestora.
Legătura la o sursă externă reprezintă o interfaţă Access către datele existente într-un fişier al
altei aplicaţii. Se pot efectua modificări, ştergeri şi adăugiri fără a schimba formatul în care sunt
disponibile datele. Un neajuns al acestei metode este imposibilitatea de a aduce modificări în
structura tabelei. Pentru crearea unei legături la o sursă externă se poate selecta New din secţiunea
Tables a ferestrei Database şi apoi se va selecta varianta Link Table.
Importarea datelor implică convertirea acestora din formatul în care sunt stocate în fişierul sursă
şi copierea lor într-o nouă tabelă Access. Modificările care vor fi aduse se vor reflecta doar asupra
datelor copiate nu şi asupra fişierului din care au fost preluate. Pentru a realiza importul se poate
selecta New din secţiunea Tables a ferestrei Database şi apoi se va selecta varianta Import Table.
Microsoft Access poate importa date din formate precum: Dbase, Paradox, FoxPro, Lotus 123,
Excel, fişiere text, Microsoft Exchange sau chiar fişiere HTML. În cazul în care sursa de date este
tot un fişier Access (eventual o versiune mai veche) există posibilitatea de import şi pentru alte
obiecte cum sunt rapoarte, formulare, interogări şi module.
Exportul de date
Exportul presupune realizarea unei copii a datelor din Access în formatul solicitat de programul
destinaţie. Există posibilitatea exportului către alte baze de date Access sau către fişiere Dbase,
Paradox, Microsoft Excel, Microsoft Word, FoxPro, Lotus 123, HTML sau fişiere text. Pe lângă
exportul datelor se pot exporta de asemenea şi alte obiecte pentru a putea fi reutilizate în contextul
unei alte aplicaţii Access. Pentru a realiza exportul către o altă aplicaţie se selectează în fereastra
Database obiectul dorit şi apoi File->Export.
Pentru realizarea comunicării cu Microsoft Word şi Microsoft Excel sunt disponibile prin
intermediul Tools->Office Links opţiunile:
- Merge it With MS Word – pentru folosirea datelor din Access într-o operaţiune de
fuziune a documentelor (Mail Merge) disponibilă în Microsoft Word;
- Publish It with MS Word – creează un fişier în format rich-text pe baza obiectului
selectat în fereastra Database pe care îl transferă apoi utilitarului MS Word;
- Analyze It with MS Excel – creează şi deschide un fişier de tipul MS Excel pe baza
obiectului sursă selectat;
De asemenea sunt disponibile facilităţi avansate privind comunicarea dintre aplicaţii. Acestea pun la
dispoziţia programatorilor facilităţi puternice ce permit aplicaţiilor realizate în Access să realizeze
schimburi de informaţii cu alte programe. În această categorie se încadrează:
- comunicarea prin OLE (Object Linking and Embedding);
19
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
Sistemul de gestiune a bazelor de date Access oferă următoarele posibilităţi de interfaţare cu reţeaua
Internet:
- pagini Web statice (fişiere de tip .html);
- pagini web dinamice (Active Server Pages);
- obiecte de tip pagină Web (Data Access Pages).
ASP este o pagină Web ce conţine un program de tip script în limbaj VBScript care se execută pe
serverul de Web. La accesare, scriptul respectiv este executat şi produce un rezultat ce va fi trimis
clientului. Prelucrarea făcută de script constă în deschiderea bazei de date, execuţia unei cereri de
interogare, formatarea rezultatului şi trimiterea acestuia către clientul care l-a solicitat.
Paginile ASP pot fi prelucrate numai pe un server Web Microsoft, adică Internet Information
Server (IIS) sau pentru testare la nivel local Personal Web Server. Acestea sunt stocate în fişiere
.asp şi trebuiesc catalogate într-un folder pe server unde se regăsesc programele executabile.
Multe pagini ASP folosesc obiecte ActiveX (ActiveX Objects) care sunt module software folosite
pentru interfaţarea cu Microsoft Office. ActiveX Data Objects (ADO) este o colecţie de obiecte
ActiveX specializate în prelucrarea bazelor de date, făcând parte din SGBD Access versiunea 2000.
Open Database Connectivity (ODBC) este o interfaţă standard între baze de date diferite.
Înainte de crearea şi testarea unei pagini Web de tip ASP este necesară definirea legăturii bazei de
date cu sistemul prin crearea unui aşa numit Data Source Name (DSN) în configurarea ODBC.
DSN poate fi de trei tipuri: User DSN – disponibil numai dacă utilizatorul este conectat la reţea,
System DSN – vizibil de către toţi utilizatorii şi File DSN – memorat într-un fişier. Cel mai utilizat
este System DSN.
Pentru crearea unei pagini ASP se selectează tabela, cererea de interogare, formularul sau raportul şi
se activează comanda File->Export care va afişa fereastra de dialog pentru exportul obiectului
selectat. Se selectează calea şi numele fişierului ce trebuie exportat şi apoi butonul Save care va
duce la apariţia ferestrei de dialog Microsoft Active Server Pages Output Options în care singurul
element care trebuie specificat obligatoriu este Data Source Name. Tot aici mai pot fi specificate şi
alte elemente cum ar fi HTML Template – model pentru crearea paginii Web, User to Connect As şi
Password for User – pentru specificarea numelui de utilizator şi a parolei de conectare dacă pagina
20
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
este protejată împotriva accesului neautorizat, Server URL – specifică URL-ul care va găzdui
pagina şi Session Timeout – pentru stabilirea timpului maxim necesar pentru deschiderea bazei de
date (în general acesta este setat în driverul de acces la baza de date).
21
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
Unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date relaţionale îl
constituie în prezent SQL (Structured Query Language). Acesta a devenit standard pentru o gamă
din ce în ce mai mare de sisteme de gestiune a bazelor de date. Limbajul SQL este un limbaj
neprocedural (declarativ) deoarece permite descrierea numai a informaţiilor ce se doresc a fi
obţinute în urma interogării, fără a fi nevoie să se stabilească modalităţile de a ajunge la rezultate.
Pentru scrierea corectă a unei instrucţiuni SQL în Access este necesară respectarea strictă a unor
reguli de sintaxă. Iată câteva dintre acestea:
- orice instrucţiune SELECT se va încheia cu “;” ;
- într-o interogare unde se folosesc câmpuri din cele mai multe tabele, pentru a separa
numele tabelului de numele câmpului, se va utiliza “;” ;
- parantezele drepte încadrează numele de câmpuri doar când acestea conţin spaţii sau
simboluri neacceptate de SQL;
- pentru a delimita parametrii dintr-o listă se utilizează virgula;
- valorile de tip şir de caractere se delimitează prin apostrof sau ghilimele;
- inegalităţile se specifică folosind “<>”;
- simbolurile “?” şi “*” sunt folosite pentru a desemna unul sau mai multe caractere de
înlocuire;
- pentru a evidenţia valorile de tip dată / timp se foloseşte delimitatorul “#”.
Sintaxă: CREATE TABLE nume_tabelă(câmp1 tip_dată1 [NOT NULL], câmp2 tip_dată2 [NOT
NULL], câmp1 tip_dată1 [NOT NULL], …);
Exemplu: CREATE TABLE vanzari(nr number, cod_m number, data_v date NOT NULL, localit
char);
22
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
ALTER TABLE – permite adăugarea unui câmp la o tabelă existentă. Nu este însă posibilă
ştergerea unui câmp şi adăugarea de câmpuri la nivelul întregii baze de date.
DROP TABLE – se foloseşte pentru ştergerea completă a unei tabele dintr-o bază de date (inclusiv
indecşii şi valorile asociate).
IV.3. Interogări
Instrucţiunile de selecţie reprezintă una din cele mai importante categorii de instrucţiuni ale
limbajului SQL. Indiferent dacă acestea sunt simple sau complexe ele încep cu SELECT şi au rolul
de a regăsi şi afişa informaţiile solicitate de utilizator.
Interogări simple
23
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
În scrierea interogărilor de selecţie simple se pot folosi şi funcţii totalizatoare cum sunt: COUNT –
pentru returnarea numărului de înregistrări ce respectă condiţiile stabilite prin clauza WHERE,
SUM – realizează suma tuturor valorilor dintr-un câmp, AVG – calculează valoarea medie a unui
câmp numeric, MIN şi MAX – calculează valoarea minimă respectiv maximă a unui câmp.
Interogări complexe
SQL Access permite de asemenea, pe lângă definirea de interogări de selecţie simple, crearea de
structuri complexe precum cele ce utilizează funcţii agregate, asocieri (UNION) sau combinări
(JOIN). La acestea se adaugă folosirea instrucţiunilor în cadrul formularelor, a rapoartelor sau a
macro-urilor şi stabilirea parametrilor de interogare.
Acestea permit construirea unor interogări prin care se pot efectua diverse calcule pentru grupuri de
înregistrări ce conţin aceleaşi valori într-o listă de câmpuri specificată. În acest caz se foloseşte
următoarea sintaxă:
unde:
• Listă selecţie – se va referi la una sau mai multe funcţii agregate care au ca argument
nume de câmpuri de tip numeric ale bazei de date;
• AS alias – asociază un nume rezultatului utilizării funcţiei agregat;
• GROUP BY – clauză ce precizează câmpurile pe baza cărora se va efectua gruparea
înregistrărilor;
• HAVING – specifică criteriul care va fi aplicat înregistrărilor rezultate în urma
operaţiilor de grupare şi calcul pe grupuri.
Exemplul de mai sus stabileşte numărul mediu, şi totalul acţiunilor emise în localităţile Bucureşti şi
Ploieşti, pe categorii de valori nominale şi numai pentru cazurile în care totalul acţiunilor emise a
depăşit 10000.
Se folosesc pentru combinarea datelor ce provin din două sau mai multe tabele. Se pot distinge mai
multe tipuri de joncţiuni: CROSS (încrucişată) ce realizează combinarea înregistrărilor de maniera
“fiecare cu fiecare”, ECHIVALENTĂ (echijoncţiune) presupune selectarea numai a înregistrărilor
24
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
ce satisfac un criteriu de egalitate (se foloseşte clauza WHERE cu o expresie de egalitate) sau
NEECHIVALENTĂ (non echijoncţiune) ce realizează selectarea înregistrărilor ce nu satisfac o
relaţie de egalitate.
Din alt punct de vedere joncţiunile pot fi: interne (INNER JOIN) sau externe (OUTER JOIN). În
varianta joncţiunilor interne rezultatul obţinut este egal cu produsul numărului de înregistrări din
fiecare tabelă. Joncţiunile externe sunt la rândul lor de două tipuri: de stânga (LEFT OUTER JOIN)
şi de dreapta (RIGHT OUTER JOIN). Sintaxa pentru astfel de joncţiuni este următoarea:
În situaţia asocierii a două tabele pe baza unui câmp comun, funcţie de tipul asocierii în rezultat se
vor obţine: înregistrările pentru care câmpul de asociere are aceleaşi valori în ambele tabele pentru
INNER JOIN, toate poziţiile din prima tabelă dintre care vor fi completate cu date din cea de-a doua
tabelă numai cele pentru care condiţia de asociere este satisfăcută în cazul LEFT OUTER JOIN sau
toate poziţiile din cea de-a doua tabelă dintre care vor fi completate cu date din prima tabelă numai
cele pentru care condiţia de asociere este satisfăcută în cazul RIGHT OUTER JOIN.
În SQL Access există posibilitatea de a combina rezultatele mai multor interogări prin combinarea
ieşirilor acestora folosind clauza UNION. Sintaxa generală este:
________________________________________________________________________________________________
Foarte utile în exploatarea unei baze de date, aceste instrucţiuni se implementează prin interogările
acţiune. Este însă necesară o mare atenţie în utilizarea lor deoarece efectele sunt ireversibile.
Instrucţiunea INSERT
Este utilizată pentru adăugarea de valori noi într-o tabelă. Aceasta are două forme:
• pentru copierea selectivă de înregistrări dintr-o tabelă sau mai multe şi adăugarea
acestora la o tabelă specificată:
Instrucţiunea DELETE
Este o interogare acţiune ce realizează o ştergere parţială sau totală a înregistrărilor din tabele.
Aceasta nu poate fi folosită pentru ştergerea completă a tabelei (pentru aceasta există instrucţiunea
DROP TABLE).
Sintaxa:
DELETE FROM nume_tabela
[WHERE criteriu_de_ştergere];
26
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
Instrucţiunea UPDATE
Sintaxa:
UPDATE nume_tabela
SET nume_câmp1=valoare1
[,nume_câmp2=valoare2] …
[WHERE criteriu_de_actualizare];
27
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
La încărcarea aplicaţiei este deschis automat un formular ce conţine butoane ce permite accesul al
diferite informaţii conţinute:
Sunt disponibile butoane pentru accesul la informaţii cu privire la fiecare sursă de energie în parte
(solară, mini-hidro, biomasă, energie geotermală, energie eoliană), la date cu privire la potenţialii
utilizatori ai acestor resurse, precum şi unele compilaţii cu privire la totalul pe regiuni a resurselor
de energie regenerabilă, precum şi evoluţia în timp a acestora (măsurată şi prognozată).
Iată mai jos câteva exemple de formulare folosite pentru afişarea datelor:
28
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
29
RCCC-RETEA DE CENTRE CIBERNETICE COMUNITARE
________________________________________________________________________________________________
30