Documente Academic
Documente Profesional
Documente Cultură
Baze de Date Suport Curs 2010 2011 PDF
Baze de Date Suport Curs 2010 2011 PDF
Facultatea de Business
SUPORT DE CURS
BAZE DE DATE
1
1. Suportul de curs
Mo d u l u l I
Scop şi obiective
Scop
Acest modul are ca scop prezentarea conceptelor fundamentale din domeniul
bazelor de date, familiarizarea acestora cu mediul Microsoft Access 2000 şi
formarea deprinderilor de exploatare a sistemelor de gestiune a bazelor de
date. Tot în acest modul studenţii vor învăţa cum să creeze baze de date în
Microsoft Access, cum să adauge tabele şi să introducă date.
Obiective
9 Evidenţierea avantajelor utilizării bazelor de date;
9 Definirea bazelor de date, a sistemelor de gestiune a bazelor de date;
9 Prezentarea principalelor funcţii ale SGBD-urilor;
9 Prezentarea evoluţiei SGBD-urilor;
9 Identificarea elementelor mediului Microsoft Access 2000;
9 Utilizarea principalelor opţiuni din submeniurile sistemului Microsoft
Access 2000.
9 Proiectarea structurii unei baze de date;
9 Recunoaşterea principalelor obiecte ale unei baze de date Access;
9 Crearea bazelor de date în Microsoft Access prin metodele prezentate;
9 Crearea şi lucrul cu tabelele în Microsoft Access 2000.
2
UNITATEA 1
CONCEPTE GENERALE
Sinteză
Programe
de aplicaţie
3
1. Datele, materia primă a sistemelor informatice, sunt „fapte culese din
lumea reală pe bază de observaţii şi măsurători”. Datele pot lua mai
multe forme: date alfanumerice (formate din litere, cifre şi caractere
speciale), date de tip text (propoziţii şi fraze folosite în comunicarea
scrisă), date de tip imagine (forme grafice şi figuri geometrice) şi date
audio (vocea umană şi alte sunete). In sistemele informatice datele sunt
stocate în baze de date.
2. Informaţia este rezultatul interpretării datelor de către un anumit
subiect şi conferă acestuia capacitatea de a lua decizii. Datele devin
informaţii doar în momentul în care acestea interacţionează cu un
sistem capabil să le interpreteze. Informaţia are un caracter subiectiv
deoarece aceeaşi dată poate fi interpretată diferit de către subiecţi
diferiţi. Informaţiile sunt date prelucrate şi prezentate într-o formă
(context) care să aibă o anumită semnificaţie pentru utilizatorul final şi
reprezintă ieşirile sistemului informatic. În concluzie, se poate afirma
faptul că sistemele informatice prelucrează date nu informaţii.
Informaţia reprezintă produsul final al sistemelor informatice şi, în funcţie de
cele patru dimensiuni, timp, conţinut, forma de prezentare şi locaţie, aceasta
trebuie să îndeplinească următoarele cerinţe pentru a fi utilă:
A. În funcţie de elementul timp:
− să fie oportună: informaţia trebuie să fie furnizată atunci când este
nevoie de ea, să fie disponibile în timp util;
− să fie nouă: informaţia nouă descrie cel mai bine prezentul situaţiei
sau ultima verigă a evoluţiei unui fenomen;
− să fie furnizată cu o anumită frecvenţa: informaţia trebuie să fie
furnizată cu un ritm care să sprijine interesele utilizatorilor;
− se facă referire la o anumită perioada de timp: informaţia poate să
conţină elemente care să descrie evenimente din trecut, prezent sau
viitor.
B. În funcţie de conţinut:
− să reducă gradul de incertitudine: cu cât informaţiile fac referire
mai clară asupra unui fenomen, cu atât viziunea de ansamblu şi de
amănunt a decidenţilor asupra respectivului fenomen va fi mai bună
şi, pe cale de consecinţă, decizia va fi luată în cunoştinţă de cauză.
− să fie corectă: informaţia nu trebuie să conţină erori; trebuie să facă
referiri exacte asupra oricărui fenomen fără doze de relativism.
− să fie pertinentă: informaţiile trebuie să facă referire la un anumit
fapt, situaţie, eveniment şi în acelaşi timp să descrie realitatea de
facto;
− să fie relevantă: informaţia trebuie să satisfacă nevoile de informare
ale utilizatorului cu privire la o anumită situaţie.
4
− să fie necontradictorie sau noncontradictorie – informaţiile
descriptive care fac referire la o anumită situaţie trebuie să aibă
aceeaşi valoare de adevăr în acelaşi moment temporal.
− să fie neredundantă sau nonredundantă: de obicei o informaţie face
referire la un anumit aspect. Dacă aceeaşi informaţie se repetă ea nu
aduce nimic nou în raport cu aspectul descris.
− să fie completă: informaţia trebuie să conţină toate elementele de
care utilizatorul are nevoie;
− să aibă caracter succint: vor fi furnizate doar acele informaţii de
care este nevoie într-o anumită situaţie decizionala;
C. În funcţie de forma de prezentare informaţia trebuie respecte următoarele
caracteristici:
− să fie clară: informaţia trebuie să fie prezentată într-o formă uşor de
înţeles;
− să fie furnizată în formă detaliată sau sintetizată în funcţie de
necesităţi;
− să fie prezentată într-o anumită succesiune, într-o anumită ordine;
− să aibă o formă adecvată necesităţilor factorului de decizie – forma
de prezentare a mesajelor poate să atragă sau nu atenţia decidenţilor.
Informaţia poate fi furnizată sub forma unei relatări (expuneri), sub
formă numerică, grafică, sub formă de tabel etc. Informaţia poate fi
prezentată pe suport de hârtie, pe ecranul computerului sau folosind
alte medii.
D. În funcţie de locaţie: informaţia trebuie să fie disponibilă indiferent de
locaţia în care se află utilizatorul (fie disponibilă oriunde).
Informaţiile solicitate la nivel strategic şi tactic au următoarele caracteristici:
− sunt neprogramate, ad hoc, sunt determinate de apariţia unor
evenimente care necesită luarea unor decizii;
− sunt sintetizate: informaţiile trec prin procese de selecţie şi sintetizare
pentru a putea fi folosite de nivelele manageriale superioare;
− vizează orizonturi mari de timp – informaţiile se referă la trecut,
prezent, viitor;
− aria de cuprindere a informaţiilor este largă;
− au caracter previzional;
− provin din interiorul şi exteriorul firmei (concurenţa, clienţi, furnizori).
Pe de altă parte, informaţiile solicitate la nivel operaţional îndeplinesc
următoarele caracteristici:
− sunt programate, se obţin la intervale de timp bine stabilite;
− au un conţinut prestabilit care acoperă nevoia de informaţii determinată
de deciziile de rutină cu care se confruntă managerii de la acest nivel;
− aria de cuprindere este restrânsă şi bine definită;
5
− au grad de detaliere ridicat;
− provin cu preponderenţă din mediul intern al organizaţiei;
− se referă la evenimente din trecut;
− sunt cerute cu frecvenţă mare, şi sunt exacte, precise.
Baza de date este un sistem integrat, coerent şi partajat de fişiere [Nitchi et al.,
2007].
− Integrat: unificare a mai multor fişiere distincte;
− Partajat: parţi distincte din BD pot fi folosite de către mai mulţi
utilizatori;
− Coerent: se asigura caracterul neredundant şi coerent al datelor;
Nivelul extern
Nivelul conceptual
Nivelul intern
8
Nivelul extern se referă la percepţiile utilizatorilor individuali asupra BD.
Majoritatea utilizatorilor nu sunt interesaţi de întreaga bază de date ci doar de o
parte a acesteia. Termenul tehnic folosit pentru modelul extern este acela de
vedere externă. Vor exista mai multe vederi externe diferite, fiecare vedere
reprezentând o anumită porţiune a bazei de date. Fiecărui utilizator sau grup de
utilizatori îi corespunde un model extern propriu – ceea ce vede utilizatorul din
BD sau modul în care vede acesta baza de date.
Prin utilizarea vederilor se asigură securitatea bazelor de date prin limitarea
accesului la date a anumitor categorii de utilizatori. Utilizatorii au acces doar
la parţi bine definite din BD, existând posibilitatea ascunderii anumitor parţi
din baza de date pe care utilizatorii nu au voie sa le vadă. Un utilizator poate
avea diferite drepturi de acces definite în cadrul a mai multe vederi. Prin unele
vederi poate avea doar drept de consultare, in timp ce prin altele ar putea avea
şi drepturi de modificare. Prin vederi se oferă utilizatorilor o viziune
individualizată şi simplificata asupra bazei de date. Fiecare vedere externă este
definită prin intermediul unei scheme externe.
Ex: baza de date cu clienţii unui hotel. Vârsta clienţilor este o informaţie care
poate fi folosita pentru realizarea unor statistici, etc. Daca se memorează in
baza de date vârsta clienţilor atunci acest câmp trebuie sa fie actualizat zilnic,
de aceea se va crea o vedere in care apare definit conceptul de vârsta calculat
ca diferenţă dintre data curentă si data naşterii. Într-o bază de date cu studenţi
se va defini conceptul bursier.
9
9 SGBD trebuie să îndeplinească toate sarcinile într-un mod cat mai
eficient posibil.
6. Evoluţia SGBD
Istoria SGBD poate fi rezumată în trei generaţii:
9 Sisteme ierarhice şi reţea;
9 Sisteme relaţionale;
9 Sisteme avansate (orientate obiect, relaţionale OO, distribuite,
multimedia, etc.)
În cazul modelelor ierarhice şi reţea datele sunt reprezentate la nivel de articol
prin legături ierarhice sau de tip graf. Administrarea şi manipularea datelor este
dificilă datorită dependenţei fizice a datelor.
A doua generaţie de SGBD-uri este legată de apariţia modelelor relaţionale
care tratează entităţile ca nişte relaţii. S-a conturat in două articole publicate de
E. F. Codd în 1969, 1970. Se poate defini printr-o serie de structuri de date
(relaţii alcătuite din tupluri), operaţii aplicate asupra structurilor de date
(selecţie, proiecţie, join), şi reguli de integritate care să asigure consistenţa
datelor (chei primare, restricţii referenţiale..)
SGBDOO au apărut ca urmare a îmbinării tehnicii limbajelor orientate obiect
cu a bazelor de date.
Verificarea cunoştinţelor
1. Care este deosebirea între date şi informaţii?
2. Ce condiţii trebuie să îndeplinească informaţiile pentru a fi utile în
luarea deciziilor?
3. Care sunt avantajele utilizării bazelor de date?
4. Care sunt componentele unui sistem de baze de date?
5. Care sunt obiectele unei baze de date Access?
6. Care sunt funcţiile principale ale unui sistem de gestiune a bazelor de
date?
7. Care dintre pachetele software de mai jos nu este un sistem de gestiune
a bazelor de date?
a. dBase b. Microsft Access c. Solaris
d. Visual FoxPro e. Microsft SQL Server f. Oracle.
10
1. Avantajele utilizării bazelor de date sunt:
A. Redundantă scăzută a datelor.
B. Evitarea inconsistentei datelor.
C. Salvarea aleatorie a datelor.
D. Partajarea datelor.
11
UNITATEA 2
Microsoft Access 2000 face parte din pachetul de programe Microsoft Office
Professional şi este cea de-a cincea versiune a produsului de la lansarea sa
iniţiala în 1992. Microsoft a vândut peste 75 milioane de copii ale produsului
Microsoft Office din care 45 milioane sunt exemplare Office97.
Principalele caracteristici ale sistemului de gestiune a bazelor de date Access
sunt:
9 sistemul de gestiune a bazelor de date este relaţional şi lucrează sub
sistemul de operare Windows;
9 este deschis comunicării cu alte sisteme de gestiune a bazelor de date cum
ar fi Foxpro sau Paradox;
9 este compatibil cu tehnologia ActiveX care permite realizarea aplicaţiilor
client/server;
9 permite realizarea de aplicaţii complexe prin utilizarea limbajului Visual
Basic;
9 permite comunicarea cu SQL Server, alt produs Microsoft care gestionează
baze de date;
9 permite accesul la baze de date din mediul Internet, fiind un instrument util
pentru publicarea informaţiilor în paginile Web;
9 cerinţe hardware pentru instalare: computer Pentium cu 32 MB RAM, 200
MB spaţiu pe HDD, CD-ROM, monitor SVGA.
9 este prevăzut cu ajutor (help), apelabil contextual sau la cerere;
9 conţine instrumente tip wizard care permit utilizatorului crearea facilă a
unor obiecte;
9 acceptă nume lungi în definirea fişierelor;
9 permite crearea de comenzi rapide (shortcuts) în vederea accesării
obiectelor Access;
9 permite crearea de grupuri de obiecte definite de utilizator în cadrul bazei
de date;
9 permite setarea proprietăţilor iniţiale ale bazei de date cum ar fi titlul
aplicaţiei, ataşarea de pictograme (icons), precum şi forma de afişare
iniţială;
9 oferă posibilitatea creării unei copii a bazei de date şi prin utilizarea
aplicaţiei Briefcase, realizarea sincronizării între diferitele copii ale bazei
de date;
9 permite utilizarea instrumentului asistent (wizard) în vederea creării a mai
mult de 20 de tipuri comune de aplicaţii;
9 permite utilizarea de adrese şi legături Internet;
12
9 conţine exemple de baze de date care contribuie la o mai bună înţelegere a
modului de construire a tabelelor, formularelor, rapoartelor, interogărilor,
relaţiilor dintre tabele. Baza de date Northwind are un număr mare de
înregistrări şi poate fi folosită pentru a crea propriile rapoarte, formulare,
interogări.
¾ permite vizualizarea legăturilor dintre tabelele bazei de date prin
intermediul unei interfeţe grafice – fereastra Relationships;
¾ are integrată facilitatea de Office Assistant (ajutor animat);
¾ permite comunicarea cu celelalte aplicaţii incluse în pachetul Microsoft
Office: Word, Excel, FrontPage, etc. prin operaţii de import/export.
¾ suportă două limbaje standard de interogare: SQL (Structured Query
Language) şi QBE (Query By Example)
Bara de titlu a
ferestrei Database
Bara de meniu a
ferestrei Database
Conţinutul ferestrei
Database
Bara cu obiecte
Bara de stare
Tabelul (TABLE) este un obiect definit de utilizator în care sunt stocate datele
primare (expresia modelului relaţional). Mai precis, un tabel este o colecţie de
date "legate" între ele, care sunt stocate pe linii şi coloane. Coloanele reprezintă
câmpurile (fields) care se descriu prin nume, tip şi alte atribute ale acestora.
Fiecare câmp trebuie să fie legat de destinaţia tabelului din care face parte.
Fiecare linie a tabelului conţine o înregistrare (record) cu date corespunzătoare
coloanelor şi reprezintă o entitate completă de date. De exemplu, atunci când
creaţi un tabel pentru stocarea datelor referitoare la clienţi puteţi avea câmpuri
pentru cod client, nume, prenume, adresa, cod poştal, număr de telefon, data
naşterii etc. În acest caz, o înregistrare va consta din toate aceste informaţii
pentru o anumită persoană (client). O bază de date poate conţine unul sau mai
multe tabele independente sau legate între ele.
Câmpuri (fields)
16
Interacţiunea cu datele stocate în tabele nu se face în mod direct. De regulă,
fiecărui tabel îi sunt asociate alte obiecte (formulare, rapoarte, interogări), iar
atunci când utilizatorul are nevoie de anumite date va apela un formular sau un
raport care va găsi datele şi le va afişa pe ecran în forma cerută.
17
Cu toate că formularele reprezintă un instrument excelent pentru introducerea
şi afişarea datelor pe ecran, rapoartele sunt principalele „dispozitive” de ieşire
in Access. Rapoartele pot fi previzualizate pe ecran, tipărite la imprimanta,
vizualizate într-un navigator Internet (browser), etc. Sunt foarte uşor de creat şi
sunt instrumente puternice de prezentare a datelor. Puteţi crea cu ajutorul
acestor obiecte diverse situaţii de ieşire pentru aplicaţia dumneavoastră, de
exemplu, lista clienţilor firmei pe localităţi sau judeţe.
18
9 Unele opţiuni au o pictogramă în faţa numelui – ceea ce înseamnă că
acea opţiune este disponibilă şi dintr-o bară de instrumente prin
intermediul butonului cu pictograma respectivă.
9 Anumite opţiuni sunt urmate de o combinaţie de forma Ctrl+literă.
Acele opţiuni pot fi accesate direct prin combinaţia de taste respective
(Save – Ctrl+S, Print – Ctrl+P, Copy – Ctrl+C, Paste – Ctrl+V, etc.)
9 Dacă la finalul listei de opţiuni apar două vârfuri de săgeată ( )
anumite opţiuni nu sunt afişate - pentru a vizualiza lista completă de
opţiuni utilizatorul trebuie să poziţioneze mouse-ul pe aceste săgeţi.
3.2. Meniul Edit: conţine opţiuni pentru editarea obiectelor bazei de date.
3.3. Meniul View: conţine opţiuni pentru vizualizarea obiectelor bazei de date.
se selectează directorul
24
O bază de date nouă se mai poate crea şi folosind meniul sistem Access,
alegând opţiunea New din meniul File, urmată de introducerea numelui
corespunzător bazei de date ce urmează a fi creată. Crearea unei baze de date
folosind asistenţii Database Wizard este mult mai simplă şi rapidă dar prezintă
dezavantajul de a nu fi aşa de flexibilă. Un vrăjitor este un instrument complex
(program specializat) cu ajutorul căruia se realizează în mod automat o bază de
date sau anumite obiecte (tabele, formulare, rapoarte, interogări, pagini web
pentru prezentarea datelor) luând în considerare preferinţele utilizatorului.
Vrăjitorul prezintă o serie de casete de dialog pentru fiecare etapa. La fiecare
pas utilizatorul trebuie să aleagă o serie de opţiuni din grupul de opţiuni
posibile pentru a trece la următorul pas.
Modalităţi de vizualizare
Fereastra Preview
25
Se selectează o bază de date şi se execută clic pe butonul OK.
2. Cea de-a doua fereastră a vrăjitorului este o fereastră de dialog File (Fig.
10). Vrăjitorul îi acordă noii baze de date un nume care poate fi schimbat.
3. Pentru a merge mai departe se alege butonul Create, iar pentru a anula
operaţia se execută clic pe butonul Cancel.
4. Vrăjitorul afişează o fereastră în care descrie tipul de informaţii pe care
baza de date le conţine. De exemplu, BD Asset Tracking include date
referitoare la active, amortizare, întreţinere, angajaţi, departamente şi
vânzători. BD Contact Management conţine informaţii de contact şi date
referitoare la convorbiri. Dacă executaţi clic pe butonul Finish vrăjitorul
va închide fereastra Database Wizard şi va deschide noua aplicaţie; dacă
executaţi clic pe Cancel, vrăjitorul va şterge tot ce aţi realizat până în acest
moment şi se va închide. Dacă doriţi să mergeţi mai departe, executaţi clic
pe butonul (soft) Next.
Câmpurile din
Tabelele tabelul selectat
aplicaţiei
26
7. În următoarea casetă de dialog se selectează unul din stilurile predefinite
de raport.
8. Prin intermediul ferestrei de mai jos se poate schimba titlul bazei de date
si se poate adaugă o imagine care să apară pe rapoartele construite.
27
9. În ultima casetă de dialog a vrăjitorului lăsaţi selectată opţiunea Yes,
Start the Database, confirmând astfel că doriţi să vedeţi baza de date.
Cea de-a doua opţiune Display Help on using Database deschide o
fereastră Help. Pentru a finaliza aplicaţia executaţi clic pe butonul
Finish. Access va genera şi va deschide noua bază de date.
Verificarea cunoştinţelor
1. Deschideţi programul Microsoft Access.
2. Identificaţi elementele ferestrei de bază a aplicaţiei Microsoft Access.
3. Explicaţi efectul tuturor opţiunilor din meniurile: File, Edit, View şi
Window. Pentru rezolvarea acestui exerciţiu vă puteţi folosi de Help.
4. Creaţi cu ajutorul Wizard-ului o bază de date pentru managementul
evenimentelor. Adăugaţi pe urmă cinci înregistrări.
28
UNITATEA 3
TABELE
Sinteză
1. Crearea tabelelor
Access organizează o bază de date în felul următor:
Fişierul de baze de date – este fişierul principal care
cuprinde pe lângă datele cuprinse în tabele şi obiecte: Baza de date
interogări pentru analiza datelor, formulare pentru
interacţiunea cu datele, rapoarte pentru tipărirea
rezultatelor, macro şi module pentru extinderea Tabel
funcţionalităţii aplicaţiilor şi pagini web. Fişierul este
salvat cu extensia .mbd (ex. Agentie.mbd).
Tabelul – (Table) este o colecţie de date specifice unui Câmp
anumit subiect, stocate pe linii şi coloane. În baza de date
pot exista mai multe tabele. (ex.: Clienţi, Comenzi).
Tip de date
Câmpul – (Field) reprezintă o coloană în cadrul tabelului,
şi este cea mai mică unitate de date din cadrul bazei de
date. (ex.: numele şi prenumele clientului) Valoare
Puteţi să creaţi un tabel şi apelând opţiunea New din bara de meniu a ferestrei
Database.
30
În Access există două modalităţi de vizualizare a tabelelor:
• Datasheet View ( ): permite introducerea de date (articole) în tabel.
• Design View ( ): este modul de vizualizare în care se defineşte structura
tabelului bazei de date (modul care permite introducerea câmpurilor cu
tipul de data asociat şi descrierea corespunzătoare).
Pentru a comuta între modurile datasheet view şi design view, se executa clic
pe butonul din colţul stânga-sus al ferestrei aplicaţiei
Microsoft Access. De exemplu dacă avem un tabel Judeţe
cu următoarele câmpuri: cod_judeţ – text(2) şi judeţ-
text(30) acesta va putea fi afişat în două moduri:
31
2. Caracteristicile câmpurilor
• Numele: Microsoft Access 2000 permite ca numele de câmp să fie
format din mai multe cuvinte, de exemplu “Nume client”. În versiunile
mai vechi de Access denumirea unui astfel de câmp ar fi putut fi scrisă
cu simbolul underscore (_) adică “Nume_client”. Numele câmpului
poate fi stabilit după dorinţă însă se recomandă alegerea unui nume
scurt care să indice rolul câmpului respectiv.
32
Tip de date Descrierea tipului de date
Tip de date
Access
Include elemnte grafice realizate din puncte
Obiecte mari OBJECT OLE (bitmap), desene vectoriale, fişiere cu semnale
audio şi alte tipuri de date ce pot fi create de o
aplicaţie OLE SERVER.
Este un text sau o combinaţie de text cu numere
Adrese stocată ca un text şi folosită ca adresă a unei
HYPERLINK
Internet pagini Web. Conţine 3 parti: textul afişat, adresa
şi subadresa. Fiecare parte poate avea maxim
2048 caractere.
Tabel 1. Tipuri de date disponibile în Ms. Access
Dacă din lista Data Type se alege Lookup Wizard se va crea un câmp a cărui
valori pot fi încărcate dintr-o listă derulantă. Elementele listei pot fi valori
tastate de utilizator sau valori conţinute într-un câmp al unui tabel sau
interogare existentă.
3. Proprietăţile câmpurilor
1. Field size (Dimensiunea câmpului): în această zonă se introduce numărul
maxim de caractere permis pentru câmpul respectiv, în funcţie de tipul de
date al acestuia. Putem crea un câmp de tip text cu dimensiune fixă
introducând în celula Field Size valoarea corespunzătoare lungimii fixe
dorite (un număr de la 1 la 255). În mod prestabilit Access creează un câmp
de tip text care poate cuprinde 50 de caractere. Dacă importăm câmpuri de
date cu lungime mai mare Access le va trunchia astfel se vor pierde
caracterele cele mai din dreapta care depăşesc limita indicată.
33
3. Decimal places (Numărul de zecimale): în cadrul acestei proprietăţi se
stabileşte numărul de zecimale ce pot fi atribuite unui câmp.
35
nu permite introducerea valorilor duplicat. Asupra cheii primare a
SGBD -urile impun restricţii :
• nu sunt admise valorile nedefinite (NULL) pentru atributele unei chei
primare, orice altă cheie a unei relaţii poate avea valori nedefinite
pentru unele din atributele sale;
• nici o valoare a unui atribut dintr-o cheie primară nu poate fi modificată
în cadrul operaţiilor de actualizare.
Stabilirea cheii primare se poate face prin două modalităţi, după cum urmează:
1. se selectează câmpul cod_cl;
2. a) se selectează butonul din trusa de instrumente Database;
b) se activează opţiunea Primary Key din meniul Edit.
5. Sortarea înregistrărilor
În modul de vizualizare Datasheet View puteţi vizualiza înregistrările unui
tabel într-o anumită ordine. Pentru a sorta înregistrările se efectuează următorii
paşi:
1. Se trece pe modul de vizualizare Datasheet View ( )
2. Se selectează coloana după care se face ordonarea
3. Se selectează opţiunea Sort Ascending (sau Sort Descending) din
meniul Records sau se alege butonul sau din bara de instrumente
Database.
Pentru a ilustra modul de creare a structurii unui tabel vom lua ca exemplu
tabelul Infoclienţi, din baza de date Clienţi, care va conţine informaţii
referitoare la clienţii unei firme. Tabelul are următoarea structură:
Cod_cl Numeric, întreg
Nume Text (30)
Prenume Text(30)
Adresa Text (120)
Localitatea Text (30)
Cod_judeţ Text(2)
Cod_postal Text(10)
Telefon Text(15)
Data nasterii Dată calendaristică (Date/Time)
36
Se creează baza de date Clienţi astfel:
1. se porneşte aplicaţia Microsoft Access: Start->Programs->Microsoft
Access;
2. se selectează opţiunea Blank Access Database din fereastra Microsoft
Access;
3. din lista Save in se selectează directorul unde va fi salvată baza de date,
iar în lista File Name se introduce numele Clienti după care se activează
butonul Create.
Pentru a crea un tabelul Infoclienţi selectaţi opţiunea Create table in Design
view, sau selectaţi opţiunea New ( ) din bara de meniu a aceleiaşi ferestre
şi apoi opţiunea Design view. Pe ecran va apărea o fereastră în care veţi
introduce numele câmpurilor, tipul acestora şi o scurtă descriere după cum
urmează:
3. Se introduce o
scurtă descriere.
4. Se selectează
mărimea câmpului
Se repetă cei patru paşi pentru fiecare câmp în parte. În secţiunea Field
Properties se pot introduce informaţii legate de câmpuri, reguli de validare,
valori implicite ale datelor ce vor fi introduse în tabel. După ce aţi introdus
toate categoriile trebuie să stabiliţi o cheie primară pentru tabelul creat. Cheia
trebuie să identifice în mod unic fiecare înregistrare din tabel şi să prevină
apariţia duplicatelor, în cazul nostru câmpul care îndeplineşte condiţiile de
cheie primară este cod_cl.
37
Stabilirea cheii primare se poate face prin două modalităţi, după cum urmează:
1. se selectează câmpul cod_cl;
2. se selectează butonul din trusa de instrumente Database sau
(folosind meniul sistem Access) se activează opţiunea Primary
Key din meniul Edit.
1. Se selectează
câmpul
Se salvează tabelul, selectând opţiunea Save din meniul File, iar în fereastra
care apare se introduce denumirea tabelului – InfoClienti.
38
Verificarea cunoştinţelor
1. Tipul de date currency este:
a. Un format special pentru introducerea unor comentarii
descriptive şi a unor notiţe;
b. Un format special pentru unităţi monetare ;
c. Un tip de date folosit pentru stocarea datelor calendaristice.
6. Care dintre şirurile de cifre si/sau caractere de mai jos este admis într-un
câmp de tip numeric întreg?
a. +125H3 b. -196 3 c. 52.34 d. 99999 e. 9658
Aplicaţii practice
I. Să se creeze o baza de date având numele STUDENT şi să se salveze în
directorul personal. Baza de date va conţine un tabel InfoStudent în care se vor
stoca informaţiile referitoare la studenţi. Structura tabelului este următoarea:
Se cere:
1. Să se creeze tabelul InfoCadre cu câmpurile aferente.
2. Să se stabilească cheia primară a tabelului.
3. Să nu se poată introduce în câmpul NRO valori mai mari de 50.
4. Să se introducă 4 înregistrări (4 cadre didactice din catedre diferite).
5. Să se sorteze tabela InfoCadre crescător după câmpul nume.
6. Să se sorteze tabela InfoCadre descrescător după câmpul NRO.
7. Să se şteargă câmpul DN şi în locul lui să se introducă un nou câmp numit
ADR (adresa) - text (30).
III. Să se salveze cele două tabele InfoCadre şi InfoStudent cu alt nume. Noile
nume vor fi Cadr respectiv Stud.
Sumar
Un sistem de baze de date este un sistem computerizat de păstrare a
înregistrărilor. Componentele principale ale unui sistem de baze de date sunt:
datele, elementele hardware, elementele software şi utilizatorii. Sistemul de
baze de date oferă întreprinderii un control centralizat asupra datelor sale.
Datele sunt „fapte culese din lumea reală pe bază de observaţii şi măsurători”.
Baza de date este un sistem integrat, coerent şi partajat de fişiere.
Sistemul de gestiune a bazelor de date (SGBD) – este software-ul care tratează
toate cererile de acces la baza de date.
Microsoft Access 2000 este sistemul de gestiune a bazelor de date inclus în
pachetul Microsoft Office 2000 Professional.
41
O bază de date Access - o colecţie de obiecte: tabele (tables), cereri de
interogare (query), formulare (forms), rapoarte (reports), pagini Web (pages),
comenzi macro (macros) şi module (modules).
Tabelul este o colecţie de date specifice unui anumit subiect, stocate pe linii şi
coloane O bază de date conţine unul sau mai multe tabele independente sau
legate între ele.
Coloanele tabelului reprezintă câmpurile (fields) care se descriu prin nume, tip
şi alte atribute ale acestora.
Liniile tabelului conţin înregistrări (records) cu date corespunzătoare
coloanelor. Interogarea (QUERY) este un obiect care permite vizualizarea
informaţiilor obţinute prin prelucrarea datelor din una sau mai multe tabele
şi/sau alte cereri de interogare.
Formularul (FORM) este un obiect care permite introducerea datelor, afişarea
acestora sau controlul întregii aplicaţii.
Raportul (REPORT) este un obiect care permite formatarea şi tipărirea, sub
formă de documente, a informaţiilor obţinute în urma consultării bazei de date.
Pagina Web de accesare a datelor (PAGES) permite vizualizarea datelor în
mediul Internet.
Comenzile Macro (MACRO) permit automatizarea diverselor evenimente fără
ca realizatorul aplicaţiei să fie nevoit să cunoască un anumit limbaj de
programare.
Modulul (MODULE) reprezintă un obiect care conţine proceduri definite de
utilizator şi scrise în Visual Basic.
Tipul de date: este o caracteristică ce stabileşte modul în care datele sunt
înregistrate pe suportul de memorare şi modul în care acestea sunt interpretate
şi prelucrate.
Cheia primară (Primary Key) - o coloană sau un set de coloane care identifică
în mod unic fiecare înregistrare din tabel.
Cheia primară se alege dintre cheile candidat ale tabelului astfel încât aceasta
să conţină un număr minimal de coloane şi să fie stabilă. Nu sunt admise
valorile nedefinite (NULL) pentru atributele unei chei primare.
42
Lucrarea practică 1 (LP1)
I. Să se creeze o baza de date şi să se salveze cu numele CLIENTI. Baza de
date va conţine un tabel InfoClienti în care se vor stoca informaţiile referitoare
la clienţii unei firme. Structura tabelului este următoarea:
ClientID – AutoNumber;
Nume – text – 30 caractere
Prenume – text – 30 caractere
DN – data naşterii – de tip dată calendaristică
LN – locul naşterii – text, 30
Cetăţenia – text 50
Sex – text – 1 caracter ( M sau F)
Adresa – adresa clientului – de tip text – 100 caractere (în format
Strada, Număr, Ap.)
Localitate – text, 50
Indicativ_judet – text, 2 (SB – Sibiu, BN – Bistriţa Năsăud, etc.)
CodTara – numeric – Long Integer, (1 – Romania, 2 – Ungaria, 3 –
Moldova, 4 – Bulgaria, 5 – Germania, 6 – Italia)
Telefon – text – 15 caractere
TipActID – numeric – Long Integer (1 - Buletin identitate, 2 - Carte de
identitate, 3 – Paşaport, 4 – Carnet de şofer)
NrActID – text - 15 caractere
Emitent – text, 30
DataExp – data expirării actului de identitate– data calendaristică
Email – text, 50
1. Să se creeze tabela InfoClienti cu câmpurile aferente.
2. Să se stabilească cheia primară pentru tabelul InfoClienti.
3. Câmpul de date CodTara să permită introducerea unor valori cuprinse
intre 1 şi 6. Valorile pentru acest câmp se vor alege dintr-o lista (Lookup).
43
În cazul în care se introduc valori in afara intervalului să se afişeze
următorul mesaj: „Introduceţi valori între 1 şi 4!”.
6. Să se introducă 11 clienţi din Romania şi 3 din afara ţării. Clienţii vor fi
din localităţi diferite.
7. Să se ordoneze baza de date crescător după câmpul Nume.
8. Să se ordoneze baza de date descrescător după câmpul CodTara.
9. Modificaţi structura bazei de date prin adăugarea unui nou câmp
Cod_postal – text (20), după câmpul adresa.
10. Să se completeze câmpul introdus cu informaţiile corespunzătoare pentru
fiecare client.
11. Introduceţi la final o înregistrare cu datele dumneavoastră.
Bibliografia modulului
1. Avram-Niţchi, R., Ghişoiu, N., et al., Elemente de baze de date şi
programare aplicate în economie, Ed. Risoprint, Cluj-Napoca, 2007.
2. Dollinger, Robert - Baze de date, Universitatea Tehnică Cluj-Napoca,
1994.
3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000,
Teora, Bucureşti, 1999.
4. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig,
L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999.
5. Mediul Internet.
44
Modulul II
Scop şi obiective
Scop
Acest modul urmăreşte familiarizarea studenţilor cu obiectele de tip interogare
(Query) şi cu limbajul standard de interogare (SQL). Cursanţii vor învăţa cum
să obţină informaţiile de care au nevoie dintr-o bază de date folosind
interogările şi limbajul SQL.
Obiective
9 Definirea noţiunilor de cheie candidat şi cheie străină;
9 Clasificarea relaţiilor între două tabele;
9 Crearea relaţiilor între două sau mai multe tabele;
9 Definirea integrităţii referenţiale;
9 Identificarea tipurilor de interogări existente în Access;
9 Utilizarea interogărilor pentru a obţine diverse informaţii din bazele de
date;
9 Proiectarea interogărilor folosind grila QBE;
9 Prezentarea principalelor instrucţiuni ale limbajului SQL;
9 Utilizarea instrucţiunilor SQL în Microsoft Access.
45
UNITATEA 4
Într-o bază de date relaţională datele pot fi stocate în unul sau mai multe tabele.
Se recomandă folosirea mai multor tabele între care există legături decât
proiectarea unui singur tabel cu multe câmpuri. Unul din scopurile principale
ale proiectării bazelor de date relaţionale este de a grupa câmpurile în tabele
astfel încât să se minimizeze redundanţa datelor, şi prin aceasta să se reducă
spaţiul de stocare necesar bazei de date. Tabelele care conţin date redundante
pot crea probleme, denumite anomalii de reactualizare: anomali de inserare,
anomalii de ştergere şi anomalii de modificare. Pentru a elimina aceste
probleme tabelele trebuie să fie normalizate pană la cel puţin a treia formă
normală.
În cadrul unei baze de date nu este obligatoriu ca între toate tabelele să existe
relaţii. Este posibil ca în cadrul unei aplicaţii să utilizăm şi tabele independente
şi/sau de lucru (tabele temporare). Între două tabele dintr-o bază de date există
o relaţie atunci când unul sau mai multe câmpuri cheie dintr-un tabel se
potrivesc cu unul sau mai multe câmpuri cheie din celălalt tabel. De obicei
câmpurile corespondente din ambele tabele au acelaşi nume, tip de date şi
mărime.
Din punct de vedere al momentului creării acestora avem două tipuri de relaţii
între tabelele unei baze de date Access :
- relaţii permanente - se stabilesc după definirea tabelelor şi sunt cerute
de modelul relaţional făcând parte din structura bazei de date. Acestea
se realizează de obicei prin corespondenţele cheie primară - cheie
externă şi sunt memorate în baza de date.
- relaţii temporare - se stabilesc între tabele cu ocazia definirii unor
cereri de interogare, nefiind înregistrate în structura bazei de date.
46
corespunde o singură înregistrare în tabelul B şi invers, fiecărei
înregistrări din tabelul B îi corespunde o singură înregistrare în tabelul
A. Acest tip de relaţie se foloseşte foarte rar.
b) Relaţia One to Many (unu la mai mulţi) - Într-o relaţie de tipul One-to-
Many, o înregistrare din tabelul A poate avea mai multe înregistrări
asociate în tabelul B, iar o înregistrare din tabelul B poate avea o
singură înregistrare asociată în tabelul A. Tabelul A este denumit tabel
primar iar tabelul B este denumit tabel asociat.
c) Relaţia Many to Many (mai mulţi la mai mulţi) – Într-o relaţie de tipul
Many-to-Many unei înregistrări din tabelul A îi sunt asociate mai multe
înregistrări în tabelul B, şi unei înregistrări din tabelul B îi sunt
asociate mai multe înregistrări în tabelul A. Acest tip de relaţie poate fi
reprezentat numai când se defineşte şi un al treilea tabel C, denumit
tabel de joncţiune. Rolul acestui tabel este spargerea relaţiei “Many-
to-Many” în două relaţii de tipul “One-to-Many”.
Tabelul părinte este tabelul care conţine cheia principală iar tabelele copil sunt
tabelele corelate. Pentru a implementa relaţiile dintre tabele se folosesc cheile
externe. Relaţiile de tip one-to-one şi one-to-many se implementează
introducând în una din tabele o cheie externă (străină), care va face legătura cu
cheia primară din tabela corespunzătoare. O legătură de tip many-to-many se
implementează introducând o tabelă suplimentară care are in structura sa cheile
celor doua tabele puse in legătură.
47
3. Crearea relaţiilor între tabele (Relationships)
Pentru a realiza relaţii între tabelele Access se alege opţiunea Relationships
din meniul Tools.
O relaţie între două tabele se realizează prin operaţia drag and drop de la cheia
primară a tabelului principal la cheia externă a tabelului secundar. În fereastra
Edit Relationships se selectează opţiunea Enforce Referential Integrity pentru
a se asigura integritatea referenţială.
48
In Access opţiunea Enforce Referential Integrity poate fi selectată numai daca
se îndeplinesc condiţiile:
1. Câmpul selectat din tabelul primar are atributul de cheie primară;
2. Câmpurile puse în corespondenţă au acelaşi tip de date;
3. Cele două tabele sunt memorate în aceeaşi bază de date.
Dacă selectaţi opţiunea Cascade Update Related Fields atunci când veţi
actualiza cheia primară din tabelul “1” (tabelul părinte), Access va
actualiza automat toate cheile externe corespondente din tabelul “n”
(tabelul copil). Dacă dezactivaţi această opţiune, Access nu vă permite
să schimbaţi valoarea câmpului cheie principală din tabelul “1” atâta
timp cât există înregistrări corespondente în tabelul “n”.
Opţiunea Cascade Delete Related Fields este similară opţiunii Cascade Update
Related Fields numai că afectează modul în care se face ştergerea
înregistrărilor. Când această opţiune este selectată, Access va şterge
toate înregistrările corelate din tabelul/tabelele copil atunci când ştergeţi
înregistrarea cu cheia primară corespunzătoare din tabelul părinte. Dacă
nu este selectată, Access nu va permite ştergerea înregistrării ce conţine
cheia primară din tabelul părinte atâta timp cât există înregistrări
corespondente în tabelul/tabelele copil.
49
Relaţia poate fi modificată ulterior prin dublu-click asupra legăturii dintre cele
două tabele.
De asemenea se poate şterge o relaţie între tabele: se selectează linia de
asociere şi se apasă tasta DEL. Pentru ştergere se poate folosi şi opţiunea
Delete din meniul contextual (clic dreapta pe linia de asociere). Editarea
ulterioară mai poate fi făcută şi alegând opţiunea Edit Relationship din meniul
contextual. Dacă executaţi clic pe butonul Join Type pe ecran va apărea
următoarea casetă de dialog:
50
Verificarea cunoştinţelor
1. Să se creeze un nou tabel cu numele Plăţi în baza de date CLIENTI
(Unitatea 3). Tabelul va avea următoarea structură:
Cod_cl - Numeric, întreg
Data_platii - Data calendaristică
Suma_platită - Currency
Data_scadenta - Data calendaristică
a) Să se stabilească cheia primară.
b) Să se creeze o relaţie de tip 1:n între tabelul Infoclienţi şi tabelul Plăţi.
Să se forţeze integritatea referenţială.
c) Să se introducă 8 articole în tabelul Plăţi.
3. Dacă un articol din tabelul A poate avea mai multe articole asociate în
tabelul B si un articol din B poate avea un singur articol asociat în tabelul
A atunci relaţia dintre cele două tabele este de tipul:
a) One-to-One b) One-to-Many c) Many-to-Many
51
UNITATEA 5
INTEROGĂRI
Sinteză
1. Crearea interogărilor
Se realizează folosind o grilă de proiectare în cadrul căreia sunt adăugate tabele
şi câmpuri. Acest procedeu este cunoscut sub numele de “Query By Example”
(QBE). Pe baza informaţiilor depuse în grilă programul ACCESS generează o
instrucţiune în limbajul de interogare al datelor SQL (Structured Query
Language).
Pentru lucrul cu interogări avem următoarele două posibilităţi :
1) Prin intermediul modului de lucru Design View. În secţiunea Objects se va
alege opţiunea Queries şi apoi Create query in Design view. Pe ecran
va apare fereastra Show Table în care utilizatorul va alege tabelele cu
care va lucra. Pentru a adăuga un tabel se selectează tabelul dorit din
listă după care se execută clic pe butonul Add. Fereastra Show Table se
închide prin activarea butonului Close.
2. Criteriile de selecţie
Se introduc în celula aflată la intersecţia coloanei câmpului cu linia Criteria din
grila de interogare. Acestea pot fi simple sau compuse (cu ajutorul operatorilor
AND/OR) şi pot utiliza o serie de cuvinte rezervate şi expresii definite de
utilizatori.
53
Principalele criterii simple sunt :
- apartenenţa la un interval de valori : BETWEEN valoare_inferioară AND
valoare_superioară;
- apartenenţa la o listă de valori : IN (valoare 1, valoare2, …., valoare_n);
- utilizarea operatorilor de comparaţii : <, >, <=, >=, <>, = ;
- utilizarea operatorilor de negaţie : NOT valoare;
- selecţia înregistrărilor care conţin sau nu valori : NOT NULL, IS NOT NULL
sau NULL, IS NULL.
Se pot specifica criterii de selecţie după un anumit text care, dacă va conţine
spaţii, trebuie pus în ghilimele. În interiorul textului se pot folosi caractere
generice "?" (orice în poziţia în care apare) ,"*" (orice în poziţia în care apare
şi în următoarele) şi "#" (pentru caractere numerice).
3. Operatori
a) Matematici: ^,-, *,/, \, Mod, +
54
d) Operatori logici: AND, OR, EQV, IMP, XOR, NOT.
55
Operaţii de calcul predefinite în ACCESS
4. Funcţii
Tipuri de funcţii: de conversie, pentru date calendaristice, funcţii financiare,
matematice, pentru şiruri de caractere.
¾ Funcţii pentru conversia datelor:
Str() – transformă o valoare numerică în şir de caractere;
Str(921.23) returnează “ 921.23”.
LCase() – transformă majusculele dintr-un text în litere mici
LCase(“Cluj Napoca”) returnează “cluj napoca”.
UCase() – transformă literele mici din cadrul unui şir de
caractere în litere mari
UCase(“Cluj Napoca”) returnează “CLUJ NAPOCA”.
Val() –converteşte un şir de caractere într-o valoare numerică ,
Val(“1234.56”) returnează 1234.56.
CDate() – converteşte un text în dată calendaristică,
CDate(“04 Feb 07”) returnează 02/04/2007.
CSTR() – converteşte o dată calendaristică în şir de caractere,
CSTR(#Feb 04, 07#) returnează “02/04/2007”.
Format() - are o serie de parametrii dintre care exemplificăm:
Format(“Cluj”,”>”) returnează CLUJ.
Format(“40264123456”,” @-@@@@-@@@@@@”)
returnează 4-0264-123456.
Format(#4/25/08#,”d-mmmm-yyyy”) returnează 25-April-
2008.
¾ Funcţii pentru date calendaristice:
56
Now(): returnează data curenta si ora curenta: 25/03/2008
12:22:34 PM dacă suntem în 25 Martie 2008, ora 12, 22 minute
şi 34 secunde.
Time(): ora curenta12:22:34 PM.
Date(): returnează data curenta.
Month(): extrage luna din data specificata. Month(Now()) are ca
rezultat 03 dacă suntem în luna martie.
Day(): extrage ziua din data specificată.
Day(Date()) are ca rezultat 25
Weekday(): returnează numărul zilei din săptămâna.
Weekday(Date())
Year(): returnează anul dintr-o data calendaristica.
Year(Date()) returnează 2008
DateDiff(): calculează diferenţa dintre doua date calendaristice.
Diferenţa poate fi exprimata in zile – “d”, săptămâni – “ww”,
luni – “m”, ani –”yyyy”, trimestre –”q”
DateDiff(“d”, Date(), #02/04/92#)
DateDiff(“yyyy”, Date(), #02/04/92#)
DateDiff(“q”, Date(), #02/04/92#)
DateAdd(): returnează o nouă data calendaristică în funcţie de
un anumit interval.
DateAdd(“d”,22, Date())
DateAdd(“ww”, 10, #01/01/2007#)
¾ Functii financiare:
1. DDB() - Depreciation double-declining balance: calculează
amortizarea unui mijloc fix prin metoda balanţei dublu-
regresivă.
DDB(Cost_Initial, Valoare_reziduala, durata_de_viata,
perioada)
2. NPV() - Net Present Value: returnează valoarea prezentă
actualizată pentru o investiţie (flux de venituri/cheltuieli).
NPV(dobândă, valoare1, valoare2, …)
Valorile trebuie să fie echidistante în timp si să fie valori plătite/
încasate la sfârşitul fiecărei perioade. Dobânda - reprezintă
dobânda anuală.
Funcţia NPV este asemănătoare cu PV, valorile utilizate de PV
trebuie să fie constante, iar PV acceptă valori fie la începutul,
fie la sfârşitul perioadei. Al doilea argument este negativ pentru
că reprezintă o cheltuială.
3. FV(): Future Value – calculează valoarea viitoare pentru o
serie de încasări/ plăti egale, făcute într-un număr de perioade,
cu o anumită dobândă fixă.
57
FV(dobândă, perioada, plată, valoarea_prezenta, tip)
Dobânda trebuie sa aibă aceeaşi unitate de măsura ca si
perioada. Daca se cunoaşte dobânda anuala si incasabile/plăţile
sunt făcute lunar atunci dobânda trebuie sa se împartă la 12.
Valoarea prezentă este un argument opţional, este suma care se
investeşte/ împrumută in momentul iniţial. Val implicita e 0.
Tip - 0 daca plăţile se fac la sfârşitul perioadei sau 1 daca
plăţile se fac la începutul perioadei. Valoare implicita 0.
Banii plătiţi sunt reprezentaţi prin numere negative, iar cei
încasaţi sunt reprezentaţi prin numere pozitive.
4. PV – Present Value: calculează valoarea prezentă a unui flux
de încasări/ plăti viitoare.
PV (dobândă, perioada, plată, vv, tip)
Argumentul vv reprezintă valoarea viitoare, obţinută după
efectuarea ultimei plăti/încasări.
Exemplu: O persoană îşi permite să plătească 200 EUR pe lună
în următorii 4 ani. Dobânda curentă de piaţă este de 9%. Cât de
mare este împrumutul pe care i-l poate oferi banca?
5. SYD - Sum-of-Years' Digits - calculeaza suma valorilor anuale
amortizate pentru un mijloc fix, pe o perioadă specificată
SYD(cost_initial;val_reziduala;durata_utilizarii;per_am
ortizarii)
6. PMT- Periodic Payment for an annuity calculează suma care
trebuie achitată periodic pentru un împrumut/economie, pentru o
anumita dobânda cunoscând numărul perioadelor de plată.
PMT (dobândă, Perioada, vp, vv, tip)
Exemple: Ce sumă trebuie plătită lunar pentru un împrumut de
10000 EUR cu o dobândă anuală de 9%, care trebuie achitat în 8
luni.
Calculaţi suma pe care cineva trebuie să o primească lunar,dacă
a împrumutat 5 000 EUR cu o dobândă anuală de 10% pe o
perioadă de 5 luni.
O persoană doreşte să strângă 50 000 $ în 18 ani prin
economisirea unei sume lunare constante. Dobânda anuală este
de 6%.
7. SLN (Straightline depreciation) - calculează amortizarea
liniara a unui mijloc fix pe o perioada data
SLN(cost_initial,val_reziduala,dur_amortizarii)
¾ Funcţii matematice:
1. Abs(): returnează valoarea absoluta a unui număr
Ex. Abs(-1) returnează 1, Abs(1) = 1.
2. INT(): returnează valoarea întreaga a unui număr;
Int(1234.55) returnează 1234.
58
Int(-55.1) returnează -56.
3. Round(): returnează un număr rotunjit la un anumit număr de
zecimale;
Round(14.245, 2) returnează 14.24.
Round(17.1351, 2) returnează 17.14
4. Rnd(): generează un număr aleatoriu;
5. Sgn(): determina semnul unui număr;
Sgn(-14) returnează -1.
Sgn(12) returnează 1.
Sgn(0) returnează 0.
6. Sqr(): determina radicalul unui număr.
5. Câmpurile calculate
− pot fi definite in interogări, rapoarte, formulare;
− se definesc astfel: Nume_camp: expresie
59
− puteţi introduce in expresiile calculate doar câmpuri numerice,
currency, data calendaristica, text;
− pot avea asociate nume si proprietăţi;
− expresiile calculate se introduc in grila QBE in rândul field si se
respecta următoarele cerinţe: pot conţine valori numerice si text,
operatori matematici, denumirile câmpurilor, funcţii (IIF, ABS,
DATE(), DatePart, DLOOKUP, TRIM, LEFT, RIGHT, MID, NOW() )
OBS: numele câmpurilor care conţin spatii (ex: data naşterii) se vor introduce
intre paranteze drepte ([data nasterii]). Expresiile - sunt construite cu ajutorul
operanzilor si operatorilor, respectând o anumita sintaxa.
6. Tipuri de interogări
1. Interogări de selecţie (SELECT QUERY): se folosesc pentru regăsirea
datelor care îndeplinesc anumite condiţii, pentru gruparea înregistrărilor
şi pentru efectuarea unor calcule pe baza datelor selectate.
2. Interogări de tip totaluri: permit crearea grupurilor de articole precum
şi efectuarea de calcule cu valorile unor câmpuri din interiorul
grupurilor. Pentru crearea interogărilor de tip total se va selecta
opţiunea Totals din meniul View. Această opţiune va adăuga in grila de
proiectare a interogării rândul Total.
3. Interogări cu parametri (PARAMETER QUERY): în acest tip de
interogare valorile necesare la stabilirea criteriilor utilizate de
interogare vor fi introduse de către utilizator.
4. Interogări de sinteză (interogări de analiza încrucişata CROSSTAB
QUERY): totalizează datele şi grupează aceste totaluri după două
categorii. Sunt folosite pentru analiza multidimensionala a datelor si
permit obţinerea unor situaţii sintetice asemănătoare tabelelor Pivot din
Excel. Gruparea si sortarea datelor se face pe rânduri si coloane iar la
intersecţia rândului cu coloana se pot efectua calcula diverse.
5. Interogări de acţiune: au ca efect localizarea şi modificarea datelor.
Există patru interogări de tip acţiune:
a. Interogarea MAKE TABLE: Folosind opţiunea Make Table
Query din meniul Query putem crea uşor un tabel nou pe care
sa-l populam cu date din unul sau mai multe tabele existente.
Acest tabel poate fi stocat in baza de date curenta sau intr-o alta
baza de date.
b. Interogarea APPEND: este folosită pentru adăugarea unor
înregistrări într-un tabel existent în baza de date.
c. Interogarea DELETE: şterge înregistrări din una sau mai multe
tabele. Prin utilizarea unei interogări delete nu puteţi şterge doar
conţinutul unui câmp ci se şterg înregistrări întregi.
60
d. Interogarea UPDATE: modifică conţinutul câmpurilor dintr-un
tabel specificat. In general opţiunea Update Query din meniul
Query este folosită pentru actualizarea unui număr mare de
înregistrări care se află în unul sau mai multe tabele. Dacă aveţi
de actualizat un număr mic de înregistrări dintr-un singur tabel
atunci aceste modificări se pot face direct în foaia de date.
6. Interogări SQL (SQL QUERY): necesită pentru interogarea datelor
comenzi SQL. Interogările specifice SQL sunt: UNION, PASS-
THROUGH, DATA-DEFINITION, SUBQUERY. Interogările din
această categorie nu pot fi create folosind grila de proiectare a
interogării, fiind necesara tastarea directa, intr-o fereastra de proiectare
a diferitelor instrucţiuni SQL.
a. Union: Combină doua sau mai multe interogări clasice de tip
select într-o singura interogare, articolele livrate de aceste
interogări vor fi amestecate. Deoarece articolele unei interogări
Union sunt returnate sub forma unui set de articole fiecare
instrucţiune select din combinaţie trebuie să genereze acelaşi
număr de câmpuri. Câmpurile puse in corespondenţă trebuie sa
aibă acelaşi tip cu o singură excepţie: pot fi puse in
corespondenţă câmpuri de tip numeric si câmpuri de tip text.
b. Pass–Through: permite transmiterea instrucţiunilor SQL direct
spre un calculator server de tip ODBC – de exemplu SQL
Server; cu ajutorul interogărilor de acest tip se lucrează direct cu
tabele memorate pe calculatorul server.
c. Interogările de definire a datelor (Data Definition): permit
crearea tabelelor şi a indecşilor, modificarea structurii tabelelor,
ştergerea tabelelor sau a indecşilor prin intermediul
instrucţiunilor SQL Create table, Create Index, Alter table,
Drop Table şi Drop index.
7. Cereri de interogare imbricate: Scrierea unei interogări in cadrul alteia
duce la apariţia unei subinterogări - setul de rezultate obţinut de la o
interogare va constitui argument pentru o alta.
61
Exemple de interogări
Să se creeze o bază de date pentru o agenţie imobiliară. Baza de date va stoca
informaţii despre agenţii imobiliari, despre imobile şi proprietarii acestora.
Structura tabelelor este următoarea:
AGENTI PROPRIETARI
Cod_a – numerotare Cod_p – numerotare
automată automată
Nume – text(30) Nume – text(30)
Prenume – text(30) Prenume – text(30)
Adresa – text(50) Adresa – text(50)
Telefon – text(15) Telefon – text(15)
IMOBILE
Cod_imobil – numerotare automată
Cod_p – numeric
Cod_a – numeric
Localitate – text(30)
Cartier – text(30)
Tip_imobil –text(2) – se vor introduce numai valorile AP, G, C
Nr_camere - numeric, intreg
Suprafaţa – numeric, zecimal
Confort – text(4) – se vor introduce numai valorile I, II, III, CS
Adresa – text(60)
Pret_solicitat – unitati monetare, EUR
Pret_vanzare – unitati monetare, EUR
Data_vanzarii – data calendaristica
¾ Interogări de selecţie
1. Lista apartamentelor cu 2 sau 3 camere, cu preţul cuprins între 55000 Eur şi
75000 Eur. Lista va conţine următoarele informaţii: cartierul, numărul de
camere, confortul, preţul solicitat.
62
2. Lista garsonierelor confort I din cartierul Grigorescu care au preţul mai mic
de 50000 Eur. Lista va cuprinde următoarele câmpuri: camere, adresa,preţ
solicitat, cartier.
63
¾ Interogări de tip totaluri
1. Sa se calculeze preţul mediu solicitat - pentru fiecare tip de imobil.
Rândul Total se adaugă din meniul contextual (opţiunea Totals).
64
2. Update query : Să se modifice cu 2% preţul solicitat pentru
apartamentele din cartierele Gheorgheni si Mărăşti.
¾ Exemple de subinterogări
1. Numele proprietarului cu preţul maxim solicitat pentru un apartament
cu 3 camere.
Rezolvare: se vor crea două interogări – prima pentru aflarea preţului
maxim solicitat pentru un apartament cu trei camere, iar a doua pentru
determinarea numelui proprietarului.
65
2. Lista apartamentelor care au preturile de vânzare mai mici decât media.
Verificarea cunoştinţelor
1. Funcţia AVG determină:
67
UNITATEA 6
LIMBAJUL SQL
Sinteză
1. Scurt istoric
Limbajul SQL (întâlnit şi sub numele de SEQUEL) este limbajul de interogare
al SGBD Sysem R dezvoltat în cadrul laboratorului de cercetare din San
Jose al firmei IBM. In paralel firma IBM a scos pe piaţă produse cu
baze de date relaţionale, bazate pe System R dar cu un limbaj puţin
diferit de SEQUEL. Astfel că l-a botezat SQL, eliminând vocalele din
SEQUEL şi trecând la pronunţia "es-qu-el". Expresiile din SEQUEL
seamănă cu propoziţiile din limba engleză, fiind desigur mai
structurate. SEQUEL a evoluat din predecesorul său SQUARE care a
constituit prima etapă în dezvoltarea unui limbaj de interogare pentru
System R. Conceptele de bază ale celor două limbaje sunt în esenţă
aceleaşi, deosebirea principală dintre ele fiind aceea că limbajul
SQUARE are o sintaxă bazată în mare măsură pe notaţii matematice, în
timp ce SQL are o sintaxă mai apropiată de limba engleză aşa cum arată
şi denumirea limbajului (SQL sau SEQUEL – Structured English Query
Language). Această sintaxă este mai adecvată programării pe computer
şi totodată mai uşor de asimilat de către utilizatori. La ora actuală SQL
este una din cele mai răspândite interfeţe pentru SGBD-urile relaţionale.
În afară de System R limbajul SQL este disponibil şi sub alte SGBD-uri
relaţionale cum ar fi SQBD ORACLE (pentru sisteme mari, dar şi
computere personale profesionale) sau chiar dBASE (într-o variantă
simplificată începând cu versiunea IV). In 1979, Corporaţia Oracle
introduce prima implementare a SQL în variantă comercială. Din anul
1986, SQL a devenit standard ANSI (Institutul National American de
Standarde) pentru limbajele de interogare ale bazelor de date
relaţionale. Organizaţia Internaţională de Standarde (ISO) a adoptat
deasemenea SQL ca limbaj standard pentru RDBMS. Toate RDBMS-
urile suportă unele forme de SQL şi toţi vânzătorii de astfel de sisteme
s-au aliniat sau intenţionează să se alinieze la standardele ANSI. Asta
nu înseamnă că nu mai apar diferenţe. Chiar şi la produsele aceleaşi
firme, Microsoft Access şi SQL Server, pot fi semnalate diferenţe în
implementarea limbajului. SQL este limbajul de interogare al unui
sistem de gestiune al bazelor de date (SGBD. Operaţia fundamentală în
SQL este maparea reprezentata din punct de vedere sintactic printr-o
construcţie SELECT – FROM – WHERE (pe scurt construcţie
SELECT).
68
2. Caracteristici
¾ SQL, ca şi majoritatea limbajelor de programare, foloseşte cuvinte din
limba engleză. In mod special cuvintele select, insert, delete ca
elemente ale setului de comenzi.
¾ SQL este un limbaj neprocedural: specifică care sunt informaţiile
dorite, nu cum se obţin acestea. Cu alte cuvinte, SQL nu cere să fie
specificată metoda de acces la date.
¾ Execuţia comenzilor SQL asupra înregistrărilor nu se poate face decât
secvenţial, asupra câte unei singure înregistrări. Setul de înregistrări
fiind văzut ca set de linii ale unui tabel.
¾ SQL poate fi folosit de un şir de utilizatori, incluzând administratorul
bazei de date, programatorii de aplicaţii, personalul de management şi
multe alte tipuri de utilizatori.
¾ SQL include comenzi pentru o varietate de sarcini, incluzând:
- selecţia unor date;
- inserarea, extragerea şi ştergerea rândurilor dintr-un tabel;
- crearea, modificarea şi ştergerea obiectelor de tip bază de date;
- controlul accesului la baza de date şi la obiectele de tip bază de
date;
- verificarea - garantarea consistenţei bazei de date;
3. Instrucţiuni SQL
¾ Instrucţiuni DDL (Data Definition Language)
• Instrucţiunea CREATE
– CREATE DATABASE
CREATE DATABASE nume_baza_de_date;
Ex: CREATE DATABASE vanzari;
- CREATE TABLE
CREATE TABLE nume_tabel
(câmp1 tip_data [constrangere] ,
câmp2 tip_data [constrangere] ,
câmp3 tip_data [constrangere],….);
Ex: CREATE TABLE facturi(nrfact number, dataf date,
codcl number);
CREATE TABLE vanzari(nr number primary key ,
cod_m number, data_v date not null, Loc char);
• Instrucţiunea ALTER TABLE
– ALTER TABLE nume_tabel
ADD nume_câmp tip_data [constrangere];
Ex: ALTER TABLE vanzari
69
ADD jud char;
• Instrucţiunea DROP
• DROP TABLE nume_tabelă;
• DROP DATABASE nume_baza_de_date;
70
– Asocierile
SELECT [DOMENIU] coloana1 [, coloana 2…]
FROM tabel1 [, tabel2 …]
[WHERE criteriu de asociere]
[ORDER BY lista_coloane [ASC|DESC]];
Verificarea cunoştinţelor
1. SQL este acronimul pentru:
a. Standard Query Language.
b. Structured Query Language.
c. Select Query Language.
d. Specifying Queries Relations.
Aplicaţii practice
I. Se consideră baza de date EVIDENTA STUDENTI. Să se creeze tabelul
STUDENTI cu structura următoare:
NRMAT - text(3) (număr matricol ex. 100, 101,102….)
NUME - text(20)
PRENUME – text(20)
DN - dată calendaristică (data naşterii ex. 03/04/81)
SCT - text(2) - (sectia ex. AA si SO)
AN – numeric, întreg (anul de studiu ex. 1, 2 ,3 sau 4)
BRS – da/nu (bursier ex. DA, NU)
71
SEX – text(1) – (sexul f, m)
TEL – text(15) (telefon ex. 094123456)
ADR – text(25) (adresa ex. str. Gorunului nr. 5)
OR – text(15) (oraşul ex. Turda, Gherla, ….)
JUD - text(2) (judeţul ex. Cluj-CJ, Satu-Mare - SM)
MEDIA – numeric, zecimal, media generala a studentului
73
48. Repartiţia studenţilor pe secţii/an folosind Crosstab Query.
49. Repartiţia studenţilor pe judeţe/localităţi folosind Crosstab Query.
50. Repartiţia studenţilor în funcţie de medie/secţie.
VIII. Să se mărească media cu 10% pentru acei studenţi din secţia SO, an 2
care au media <=8.50.
Sumar
Intr-o bază de date pot exista tabele independente sau tabele legate între ele.
Între două tabele dintr-o bază de date există o relaţie atunci când unul sau mai
multe câmpuri cheie dintr-un tabel se potrivesc cu unul sau mai multe câmpuri
cheie din celălalt tabel. De obicei câmpurile corespondente din ambele tabele
au acelaşi nume (nu este condiţie obligatorie), tip de date şi mărime.
În Access există trei tipuri de relaţii între tabele.
Relaţia One to One - fiecărei înregistrări din tabelul A îi corespunde o singură
înregistrare în tabelul B, şi invers.
Relaţia One to Many - o înregistrare din tabelul A poate avea mai multe
înregistrări asociate în tabelul B, şi invers.
Relaţia Many to Many –unei înregistrări din tabelul A îi sunt asociate mai
multe înregistrări în tabelul B, şi invers.
Integritatea reverenţială: un set de reguli care protejează datele prin stabilirea
de restricţii pentru adăugarea şi ştergerea de înregistrări din tabelele relaţionate.
Asocierea (Join) determină modul în care legătura dintre două tabele afectează
rezultatul unei interogări care conţine informaţii din ambele tabele.
Interogările sunt obiectele bazei de date prin intermediul cărora utilizatorul
poate extrage informaţii din tabele. Crearea interogărilor se realizează folosind
o grilă de proiectare în cadrul căreia sunt adăugate tabele şi câmpuri. Pe baza
informaţiilor introduse în grilă programul ACCESS generează o instrucţiune
SQL (Structured Query Language). SQL este limbajul standard de interogare al
bazelor de date relaţionale.
74
Sarcini şi teme ce vor fi notate
9 Studierea de către studenţi a materialului teoretic aferent modulului,
cuprins în suportul curs şi în bibliografia suplimentară indicată.
9 Participarea la aplicaţiile practice, teme de laborator;
9 Lucrarea practică nr. 2.
75
2. o listă cu numele şi localitatea clienţilor care nu domiciliază în judeţul Cluj,
ordonaţi crescător după câmpul localitate.
3. o listă cu numele, prenumele clienţilor, data sosirii şi data plecării – pentru
acei clienţi care au rezervat camere de tip Double.
4. o listă cu numele şi prenumele clienţilor (concatenate intr-un singur câmp),
ordonată crescător.
5. o listă cu adresele de corespondenţă ale clienţilor. Se va concatena într-un
singur câmp adresa, localitatea şi judeţul.
6. clienţii a căror nume începe cu litera P;
7. clienţii a căror nume începe cu litera R si este format din maxim 4
caractere;
8. numele si prenumele clienţilor care trebuiau să sosească între 1 decembrie
şi 31 decembrie;
9. o listă cu numele, prenumele clienţilor şi numărul de zile pentru care au
făcut rezervarea.
10. numele şi prenumele clienţilor care au rezervat camere pentru o perioadă
cuprinsă între 3 şi 5 zile.
11. o listă cu numele şi prenumele clienţilor de sex masculin.
12. numele si prenumele clienţilor născuţi în anul 1985.
13. numele si prenumele clienţilor născuţi în luna octombrie.
14. lista clienţilor care au făcut rezervarea înainte de luna mai 2007 sau după
luna octombrie 2007.
15. o listă cu numele, prenumele şi vârsta clienţilor.
16. numele, prenumele, ziua, luna, anul naşterii, data naşterii.
17. lista clienţilor români dint-un anumit judeţ. Indicativul judeţului se va
introduce ca şi parametru.
18. lista clienţilor al căror nume începe cu o anumită literă. Litera se va
introduce ca si parametru.
19. Vârsta medie, minimă şi maximă a clienţilor.
20. Numărul clienţilor străini.
21. Numărul de clienţi din fiecare tară.
22. Numărul clienţilor din România.
23. Numărul rezervărilor anulate.
24. Perioada medie pentru care s-au făcut rezervări.
25. Numărul de rezervări pentru fiecare tip de cameră.
76
IX. Să se şteargă din tabelul Copie toate rezervările neconfirmate.
Bibliografia modulului
1. Avram-Niţchi, R., Ghişoiu, N., et al., Elemente de baze de date şi
programare aplicate în economie, Ed. Risoprint, Cluj-Napoca, 2007.
2. Dollinger, Robert - Baze de date, Universitatea Tehnică Cluj-Napoca,
1994.
3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000,
Teora, Bucureşti, 1999.
4. Kovács, Sándor, Access 2000 – Implementarea bazelor de date,
Editura Albastră, Cluj-Napoca, 2003.
5. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig,
L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999.
6. Teodorescu Alexandru, Lecţii de Access, Editura Albastră, Cluj-
Napoca, 2002.
7. Mediul Internet.
77
Modulul III
Unitatea 7. Formulare
Unitatea 8. Rapoarte
Scop şi obiective
Scop
Acest modul urmăreşte familiarizarea studenţilor cu obiectele de tip formular şi
raport. Cursanţii vor învăţa cum să creeze ecrane pentru introducerea datelor,
cum să folosească ecranele pentru a vizualiza înregistrările şi cum să elaboreze
situaţii de ieşire (rapoarte) în Access.
Obiective
9 Precizarea rolului ecranelor in vizualizarea si/sau modificarea datelor;
9 Proiectarea formularelor în Access;
9 Crearea subformularelor;
9 Utilizarea controalelor;
9 Precizarea rolului rapoartelor în cadrul sistemelor informatice;
9 Proiectarea rapoartelor folosind Microsoft Access 2000;
9 Sortarea şi a gruparea datele în cadrul rapoartelor;
9 Combinarea rapoartele (Rapoarte/Subrapoarte).
78
UNITATEA 7
FORMULARE
Sinteză
Un formular este compus din cinci părţi (zone): antetul de formular, antetul de
pagină, zona de detaliu, subsolul de pagină şi subsolul de formular.
79
1. Crearea formularelor
Avem două moduri de creare a formularelor şi anume:
1. Prin utilizarea instrumentului wizard – creare automată;
2. Crearea în fereastra de lucru – creare manuală.
Trusa cu instrumente
Lista
câmpurilor
Fereastra de proiectare a
formularului
81
Pe ecran va apărea fereastra de proiectare a formularului, lista câmpurilor
(Field List) şi trusa cu instrumente (vezi imaginea anterioară). Principale
controale care pot fi folosite în cadrul formularelor sunt:
Etichetele - Label : obiecte care afişează date de tip text, sunt folosite
pentru descrieri.
Casete cu text -Text Box: permit afişarea datelor din tabele,
introducerea şi editarea acestora.
Butoane de comanda - Command button: butoane care au asociate o
serie de acţiuni.
Casete de validare - Check Box: au doua stări Off si On
Butoane de opţiune - Option button – se creează cu ajutorul lor
grupuri de butoane de opţiune. Utilizatorul nu se poate selecta decât un
singur buton din cadrul grupului (o singură opţiune), la un moment dat.
Liste - List Box: afişează o listă de elemente
Liste ascunse – Combo Box: obiecte combinate format dintr-o caseta
de text şi o lista.
3. Zona de antet şi subsol de formular se va adauga din meniul View –
opţiunea Form Header/Footer. În antetul de formular se poate introduce un
text prin intermediul obiectului Label. Dacă formularele vor fi listate la
imprimantă se poate adăuga şi un antet şi un subsol de pagină. În subsolul
de pagină se poate introduce data curenta (Insert->Date and Time),
numărul de pagină (Insert->Page Number), etc.
4. Cu ajutorul mouse-ului (Click+Ctrl) se selectează câmpurile care vor intra
în componenţa formularului. Prin drag-and-drop se vor poziţiona
câmpurile selectate în zona Detail a formularului.
1.3. Subformulare
83
84
1.5. Fereastra cu proprietăţile obiectelor: poate fi activată pe ecran din
meniul View->Properties.
Verificarea cunoştinţelor
1. Care sunt zonele importante ale unui formular?
2. Ce este un subformular?
3. Care sunt etapele creării unui subformular?
4. Care sunt tipurile de controale care pot fi adăugate intr-un formular?
5. Formularele construite in cadrul unei baze de date permit:
a) Afişarea şi editarea datelor;
b) Introducerea datelor;
c) Controlul operaţiilor aplicaţiei folosind comenzile Macro.
85
Aplicaţii practice
Se consideră baza de date FACTF . Câmpurile care intra în definiţia tabelei
FIRMA sunt :
CODF - codul firmei – text(4)
DENF - denumirea firmei – text(20)
ADR - adresa fimei – text(30)
CODFS - codul fiscal al firmei - text(15)
BK - banca cu care lucrează firma – text(20)
CT - contul firmei – text(15)
Se cere:
a) Crearea tabelelor FIRMA şi FACTURA.
b) Să se definească cheile primare pentru cele două tabele (CODF, respectiv,
NRF).
c) Să se creeze relaţia de tipul One-to-Many între cele două tabele.
d) Să se creeze prin intermediul wizard-ului un formular cu numele WFIRMA
corespunzător tabelei FIRMA, de tip columnar şi folosind stilul standard.
Să se adauge formularului eticheta - FEREASTRA INTRODUCERE DATE
FIRMA.
e) Să se construiască prin intermediul wizard-ului subformularul
corespunzător tabelei FACTURA, de tip columnar şi folosind stilul
standard. Să se adauge formularului eticheta - FEREASTRA
INTRODUCERE DATE FACTURĂ.
f) Să se creeze un nou formular numit WWFIRMA care să conţină un
formular principal - ecranul WFIRMA şi un subformular WFACTURA.
g) Să se verifice legătura dintre tabele, proprietăţile Link Child Fields şi Link
Master Fields.
86
UNITATEA 8
RAPOARTE
Sinteză
Vizualizarea datelor dintr-o bază de date se poate face pe ecran sau hârtie (la
imprimantă) prin intermediul foilor de date, formularelor şi situaţiilor finale.
Ultima reprezintă cea mai potrivită posibilitate de prezentare a datelor pe
hârtie. O situaţie finală (REPORT) este o grupare de date prezentate într-un
anumit format şi o structură de pagină în funcţie de necesităţile utilizatorilor şi
care servesc diverselor scopuri de subtotaluri (după anumite criterii),
subformulare grafice şi obiecte de tip OLE. Sursa datelor unei situaţii finale o
constituie în principal cererile de interogare sau tabelele, restul făcând parte din
structura acestora. În general dacă datele ce trebuie introduse în situaţia finală
au ca sursă mai mult de un tabel, se creează mai întâi o cerere de interogare
(care reuneşte datele din tabele) şi apoi situaţia finală bazată pe aceasta.
Elementele de legătură între sursa de date şi situaţiile finale sunt controalele,
zonele de text (pentru datele numerice şi alfanumerice), cadrele (pentru imagini
şi grafice) şi etichetele (pentru titluri, linii separatoare şi pătrate decorative.
Din punct de vedere al formei de prezentare, situaţiile finale sunt de trei feluri:
1) Pe o singură coloană simplă;
2) Gen tabel – cu posibilităţi de a genera mai multe grade de totaluri;
3) Etichetă poştală.
Pentru a crea un raport se va alege obiectul Reports, butonul New şi apoi modul
de lucru în care se va crea raportul. Se va specifica apoi tabela pentru care se
doreşte afişarea unor situaţii finale.
87
1. Crearea rapoartelor
Modul de creare a rapoartelor este asemănător cu cel de creare a formularelor.
Controalele care apar în corpul rapoartelor sunt 3 feluri: independente,
dependente şi calculate. În cadrul rapoartelor pot fi adăugate etichete, căsuţe cu
text, linii, subrapoarte, butoane de comandă, etc.
Câmpurile calculate:
Se introduc în subsolul de grup (Group Footer) sau în subsolul
raportului (Report Footer);
Se introduc cu ajutorul obiectului Text Box;
Sintaxa: =functie([camp])
88
tabelului, redimensionarea, deplasarea şi modificarea acestora se fac într-o
manieră asemănătoare ca şi la formulare.
89
Pentru introducerea antetului de grup se va introduce în zona Group Properties
- Group Header:Yes, iar pentru introducerea subsolului de grup Group
Header:Yes.
Verificarea cunoştinţelor
1. Ce sunt rapoartele?
2. Care dintre operaţiile de mai jos nu este caracteristică elaborării
rapoartelor?
a) Gruparea datelor;
b) Inserarea unui IF înlănţuit;
c) Numerotarea paginilor;
d) Sintetizarea datelor.
3. Câmpurile calculate pot fi introduse într-un raport în:
A. subsolul paginii
B. antetul paginii
C. antetul raportului
D. subsolul raportului
E. antetul de grup
F. subsolul de grup
G. în zona Detail (corpul propriu zis al raportului)
a) Variantele A, B şi C. b) Variantele B, C şi D.
c) Variantele C, D, E sau F. d) Varianta G.
4. Pentru introducerea unor câmpuri calculate în cadrul rapoartelor se
folosesc:
a) Etichete (Label)
b) Căsuţe de text (text box)
c) Butoane radio (radio buttons)
d) Căsuţe de validare (check box).
90
Aplicaţii practice
1. Considerăm baza de date ANGAJAT.MDB având în componenţă
câmpurile:
Sumar
Formularul este un obiect care permite introducerea datelor, afişarea acestora
într-o manieră atractivă şi prietenoasă sau controlul întregii aplicaţii.
Formularul constituie interfaţa dintre utilizator şi datele stocate în baza de date.
Formularele simplifică vizualizarea, introducerea şi modificarea datelor.
Prin intermediul formularelor se pot realiza diverse operaţii cum ar fi: sortarea,
căutarea, actualizarea unor date.
Rapoartele sunt obţinute pe baza prelucrării datelor din tabele şi sunt create
pentru a fi afişate pe ecran sau tipărite la imprimantă.
91
Utilizatorul foloseşte formularele pentru a introduce datele de intrare intr-o
aplicaţie informatica şi rapoartele pentru a genera situaţii de ieşire.
În cadrul rapoartelor datele pot fi ordonate şi grupate după diverse criterii iar la
nivelul grupurilor se pot efectua diverse calcule.
În cadrul formularelor şi a rapoartelor pot fi adăugate diverse controale:
etichete, cutii cu text, liste, butoane de comandă, casete de validare, butoane
radio, liste ascunse, etc.
92
La selectarea opţiunii Vizualizare/Modificare clienti se va deschide formularul
EcranClienti, la selectarea opţiunii Vizualizare/Modificare rezervări se va
deschide formularul EcranRezervări iar la selecţia celui de-al treilea buton se
va vizualiza interogarea 25. Ultimul buton va avea ca efect închiderea
formularului.
Bibliografia modulului
1. Avram-Niţchi, R., Ghişoiu, N., et al., Elemente de baze de date şi
programare aplicate în economie, Ed. Risoprint, Cluj-Napoca, 2007.
2. Dollinger, Robert - Baze de date, Universitatea Tehnică Cluj-Napoca,
1994.
93
3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000,
Teora, Bucureşti, 1999.
4. Kovács, Sándor, Access 2000 – Implementarea bazelor de date,
Editura Albastră, Cluj-Napoca, 2003.
5. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig,
L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999.
6. Teodorescu Alexandru, Lecţii de Access, Editura Albastră, Cluj-
Napoca, 2002.
7. Mediul Internet.
94
Modulul IV
Unitatea 9. Macro
Unitatea 10. Module
Scop şi obiective
Scop
Acest modul urmăreşte familiarizarea studenţilor cu obiectele de tip macro şi
module. Cursanţii vor învăţa cum să creeze comenzi macro, cum să folosească
comenzile macro în cadrul formularelor şi cum creeze proceduri simple în
Visual Basic prin intermediul modulelor.
Obiective
9 Identificarea acţiunilor care pot fi efectuate prin intermediul comenzilor
Macro;
9 Crearea şi rularea comenzilor Macro în Microsoft Access 2000;
9 Exportul şi importul datelor;
9 Publicarea datele pe Internet prin intermediul obiectelor Pages;
9 Editarea modulelor în Microsoft Access 2000;
9 Prezentarea principalelor elemente ale limbajului Visual Basic;
9 Utilizarea instrucţiunilor pentru introducerea şi afişarea datelor,
9 Utilizarea instrucţiunilor IF, While, Select, Do, For în cadrul modulelor.
95
UNITATEA 9
Macrouri
Sinteză
96
- afişarea de mesaje de atenţionare sau chiar sunete de atenţionare
- ştergerea, redenumirea, copierea sau salvarea diferitelor obiecte ale
aplicaţiei
- comunicarea cu alte produse software (WORD, EXCEL,…)
97
Access introduce 3 facilităţi:
1. DDE - Dynamic Data Exchange - schimbul dinamic de date
2. ActiveX Objects - obiecte ActiveX
3. ActiveX Custom Controls - controale personalizate ActiveX
3. Exportul datelor
Pentru a efectua un export de date dintr-o tabelă vom folosi comanda File,
Export: şi se va alege apoi tipul de fişier către care se efectuează exportul de
date din tabelă (.rtf, .xls, .htm).
98
4. Publicarea datelor pe INTERNET
Este binecunoscută în ultima vreme dezvoltarea explozivă a mediului Internet,
el devenind cea mai avansată formă de comunicare din zilele noastre. Prin
conectarea la Internet firmele pot spera la un avantaj concurenţial, deoarece pot
fi realizate cele 5 elemente de bază ale marketing-ului unui produs sau serviciu
şi anume:
- să ajungă primul pe piaţă
- noul produs să fie anunţat, înainte de lansarea efectivă
- produsului să i se aducă permanente îmbunătăţiri
- să ocupe o piaţă cât mai largă, dacă e posibil la nivel mondial
- să urmărească pătrunderea pe noi pieţe
99
Verificarea cunoştinţelor
1. Ce înţelegeţi prin MACRO:
a. un obiect care conţine o definiţie structurată a uneia sau mai
multor acţiuni;
b. un obiect care include un fişier HTML;
c. un obiect care conţine proceduri definite de utilizator;
d. un obiect proiectat pentru a fi tipărit pe plicuri cu corespondentă.
100
UNITATEA 10
MODULE
Sinteză
Limbajul Visual Basic pentru Access 2000 (VBA) este un limbaj orientat pe
obiecte şi pe evenimente. Obiectele Access 2000 sunt caracterizate prin
metode şi proprietăţi. Prin intermediul metodelor se acţionează asupra
stării unui obiect, în timp ce proprietăţile indică starea acestuia.
Editarea modulelor în Access: Limbajul Visual Basic constituie instrumentul
de programare pentru aplicaţiile informatice dezvoltate cu ajutorul
pachetului Office 2000. Modulele din Access sunt obiecte ale bazei de
date, care permit scrierea de rutine în Visual Basic pentru Access.
Aceste rutine pot fi alcătuite din:
- declaraţii de variabile
- tipuri de date utilizator
- proceduri şi/sau funcţii
- declaraţii API
Pentru a scrie o procedură sau o funcţie Access se alege din fereastra unei baze
de date ultima secţiune denumita simbolic Modules.
101
Procedurile şi funcţiile pot fi asamblate în module, în funcţie de cerinţele
programatorului. O procedură sau o funcţie este creată pentru a fi apelată dintr-
un obiect al bazei de date.
Scrierea rutinelor VBA se poate face cu litere mici sau cu majuscule. Cuvintele
cheie şi cele utilizator sunt transcrise automat în forma în care au fost declarate,
dacă sunt scrise corect. Editorul VBA are facilităţi de colorare a unor cuvinte,
declaraţii sau fraze scrise eronat.
102
MsgBox (<mesaj>, [<butoane>], [<titlu>] [<fişier_help>], [<context>])
- permite afişarea unui mesaj şi opţional poate returna o constantă în
funcţie de butonul ales de utilizator.
Declararea variabilelor în VBA
VBA are două categorii de tipuri de date :
a) standard (predefinite)
b) utilizator
103
Execuţia unui modul VBA se face alegând opţiunea RUN SUB/USERFORM din
meniul principal.
104
- procedură se apelează cu CALL nume_procedură. Procedurile pot fi definite
în module diferite. Exemplu de apel pentru o procedură în cazul nostru
pentru împărţire.
MODULUL 1
Option Compare Database
Sub Exemplu_Declarare_de_variabile()
Dim x As Double, y As Double, z As Double
x=4
y=5
z=x*y
MsgBox z
Call impartire
End Sub
Option Compare Database
MODULUL 2
Sub impartire()
Dim x As Double, y As Double, z As Double
x=4
y=5
z=y/x
MsgBox z
End Sub
105
În urma execuţiei modulului 1 se vor afişa cele două rezultate, înmulţirea
urmată apoi de împărţire.
dimensiunile tabloului
În acest caz tabloul are număr de elemente fix pe toată durata de
existenţă a variabilei.
b) Dim var_tablou () as tip_de_date
În acest caz nu se precizează dimensiunile tabloului. Acestea vor fi
stabilite pe parcurs cu ajutorul instrucţiunii ReDim.
ReDim var_tablou(nr_el1, nr_el2,…) as tip_de_date
ReDim Preserve var_tablou(nr_el1, nr_el2, …) as tip_de_date
În prima variantă, toate valorile conţinute de elementele tabloului se
pierd prin acest apel, iar în a doua variantă se păstrează valorile
elementelor până în momentul apelului.
Exemplu:
Dim A( ) as Double // tablou dinamic
Dim B(10, 10) as Integer
4. Programarea structurată
Programarea structurată în VBA implică o serie de instrucţiuni :
1. instrucţiunea IF
2. instrucţiunea SELECT… CASE
3. instrucţiunea WHILE….WEND
4. instrucţiunea DO…LOOP
5. instrucţiunea FOR…NEXT
106
1. Instrucţiunea IF
3. Instrucţiunea WHILE…WEND
WHILE condiţie
secvenţa_de_instrucţiuni
WEND
4. Instrucţiunea DO…LOOP
Varianta a)
DO WHILE|UNTIL condiţie
secvenţa_de_instrucţiuni
107
EXIT DO
secvenţa_de_instrucţiuni
LOOP
Varianta b)
DO
secvenţa_de_instrucţiuni
EXIT DO
5. Instrucţiunea FOR…NEXT
Cu exit for se face ieşirea forţată dintr-o structură FOR. Valoarea pasului cea
implicită este 1.
Verificarea cunoştinţelor
I. Să se scrie o subrutină pentru adunarea, scăderea, înmulţirea şi
împărţirea a două numere reale.
II. Să se scrie o subrutină de afişare a rezultatelor.
III. Să se scrie o subrutină pentru calculul radicalului.
Rezolvare :
Option Compare Database
108
Sub radical()
Dim a As Double
Dim b As Double
Dim c As Double
MsgBox ("Introduceţi valoarea din care se va extrage radicalul :")
b = InputBox(a)
MsgBox ("Rezultatul corect dupa ce apeşi OK este:")
MsgBox (Sqr(b))
End Sub
IV. Să se scrie o subrutină pentru calculul funcţiei factorial.
V. Să creeze formulare şi module pentru afişarea unui meniu principal care să
conţină următoarele butoane :
1. INTRODUCERE DATE STUDENT – se apelează forma cu datele
studentului
2. RAPOARTE – se apelează un anumit raport
3. INTEROGĂRI – se apelează o anumită interogare
Se va folosi la fiecare buton Event Builder cu care se vor construi apoi
modulele care apelează formele corespunzătoare pentru a), b), c).
Pentru module se va folosi un cod de genul următor :
Sumar
Automatizare a aplicaţiilor realizate în Access: prin utilizarea limbajului Visual
Basic for Applications – VBA sau prin utilizarea comenzilor MACRO.
Comanda Macro (MACRO): un obiect care conţine o definiţie structurată a
uneia sau mai multor acţiuni pe care Access le realizează ca răspuns la un
anumit eveniment.
Modulul (MODULE): un obiect care conţine proceduri definite de utilizator şi
scrise în Visual Basic.
109
Visual Basic for Applications (VBA) este un limbaj de programare orientat pe
obiecte şi pe evenimente.
Obiectele Access 2000 sunt caracterizate prin metode şi proprietăţi.
110
buton va avea ca efect afişarea raportul creat la punctul IV iar acţionarea
butonului IESIRE va avea ca efect închiderea formularului.
VI. Comprimaţi baza de date cu utilitarul WinRAR (puteţi să îl descărcaţi gratuit
de pe Internet) şi trimiteţi arhiva la adresa veronica.rus@tbs.ubbcluj.ro sau pe
portalul ID la adresa veronica.rus@portalid.ubbcluj.ro. Arhiva va avea numele
format din numele şi prenumele dumneavoastră urmat de textul LP3 (ex:
pop_ana_lp3). În subiectul mesajului introduceţi numele arhivei.
Predarea lucrării se face conform specificaţiilor din secţiunea
„Organizarea temelor în cadrul cursului”, partea 1 a materialului.
Bibliografia modulului
1. Avram-Niţchi, R., Ghişoiu, N., et al., Elemente de baze de date şi
programare aplicate în economie, Ed. Risoprint, Cluj-Napoca, 2007.
2. Dollinger, Robert - Baze de date, Universitatea Tehnică Cluj-Napoca,
1994.
3. Harkins, S.S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000,
Teora, Bucureşti, 1999.
4. Kovács, Sándor, Access 2000 – Implementarea bazelor de date,
Editura Albastră, Cluj-Napoca, 2003.
5. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig,
L., Baze de date în Microsoft Access 2000, Teora, Bucureşti, 1999.
6. Teodorescu Alexandru, Lecţii de Access, Editura Albastră, Cluj-
Napoca, 2002.
7. Mediul Internet.
111
3. Anexe
Glosar de termeni
O baza de date reprezintă o modalitate de stocare a unor date pe un suport extern (mediu de
stocare), cu posibilitatea regăsirii rapide a acestora.
Un obiect este o parte componentă a unei baze de date.
Un tabel este o colecţie de date specifice unui anumit subiect, stocate pe linii şi coloane.
Relaţia este corespondenţa dintre câmpurile cheie a două tabele.
Câmpul – reprezintă o coloană în cadrul tabelului. Fiecare câmp are asociat un tip de date.
O înregistrare – reprezintă un rând în cadrul tabelului.
Design View pune la dispoziţie instrumente pentru crearea (proiectarea) obiectelor.
Datasheet View permite actualizarea, editarea, ştergerea înregistrărilor din tabel.
Bibliografia cursului:
1. Connolly, Thomas, Baze de date: proiectare, implementare, gestionare, Editura Teora,
Bucureşti, 2001.
2. Date, C. J. (2005), Baze de date, Editura Plus, Bucureşti.
3. Date, C.J. (1985), An introduction to database systems, Vol.II, Edison Wessley
Publishing Co., USA (disponibil la sala de lectura)
4. Date, C.J. (1990), An introduction to database systems, Vol.I, Edison Wessley Publishing
Co., USA (disponibil la sala de lectura)
5. Dollinger, Robert, Andron, Luciana - Baze de date şi gestiunea tranzacţiilor, Editura
Albastră, Cluj-Napoca, 2004.
6. Groh, R. M., Stockman C. J. et. all (2007), Access 2007 Bible, Wiley Publishing, Inc.,
USA.
7. Harkins, S. S., Hansen, K., Gerhart, T., Utilizare Microsoft Access 2000, Teora,
Bucureşti, 1999. (disponibil la sala de lectura)
8. Năstase, P., Mihai, F., Bărbulescu, B., Şova, R.A., Stanciu, A., Covrig, L., Baze de date
în Microsoft Access 2000, Teora, Bucureşti, 1999. (disponibil la sala de lectura)
9. Powell, G. (2006), Beginning Database Design, Wiley Publishing, Inc., USA.
10. Sándor, Kovács, Access 2000 – Implementarea bazelor de date, Editura Albastră, Cluj-
Napoca, 2003.
11. Waine, H. (1992), Databases for Businees Users, Pitman Publishing London. (biblioteca
Facultăţii de Business)
12. Access 2000 tutorial, disponibil online la
http://www.fgcu.edu/SUPPORT/OFFICE2000/ACCESS/
13. Microsoft, http://www.microsoft.com/romania/office/access/default.mspx.
112