Professional Documents
Culture Documents
JURIDICE
ŞI ADMINISTRATIVE
2
2.7 Macrocomenzi................................................................................................33
2.8 Exemplu de proiectare a unei baze de date.....................................................35
2.9 Verificarea cunoştinţelor ................................................................................38
Bibliografie..............................................................................................................39
3
Cap. 1 Noţiuni introductive
4
Bazele de date oferă utilizatorilor o serie de avantaje, cum ar fi:
reducerea redundanţei datelor prin proiectarea unitară a bazei şi evitarea
suprapunerii unor informaţii;
păstrarea consistenţei datelor prin propagarea actualizărilor dintr-un fişier la
nivelul întregii baze de date;
partajarea datelor între utilizatorii aceleiaşi aplicaţii, dar şi între aplicaţii
diferite;
securitatea datelor prin verificarea accesului utilizatorilor pe bază de parolă şi
prin autorizarea operaţiilor de întreţinere de către administratorul bazei de date.
5
Modelul orientat pe obiecte este cel mai nou tip de SGBD, care integrează
principiile programării orientate pe obiecte şi ale bazelor de date. Introducerea
conceptului de obiect în cadrul SGBD-urilor a permis utilizarea tipurilor de date
neconvenţionale. Acest model constituie suportul logic pentru gestiunea obiectelor
complexe (texte, grafice, imagini, sunete) şi a obiectelor dinamice (programe,
simulări).
6
numesc înregistrări, iar coloanele constituie atributele. Asocierile dintre
tabele se fac prin atributele de legătură, denumite chei primare şi externe.
Numărul de atribute ale unei entităţi se numeşte aritatea entităţii.
O entitate trebuie să satisfacă mai multe condiţii:
fiecare atribut trebuie să aibă un nume, unic în cadrul entităţii; este
posibil ca două atribute din două entităţi diferite să poarte acelaşi
nume;
fiecare atribut poate avea doar valori atomice, care nu se pot
descompune din punct de vedere logic;
fiecare înregistrare a entităţii este unică, unicitatea fiind obţinută cu
ajutorul cheilor primare. Când este necesar mai mult decât un
atribut pentru identificarea unică a unei înregistrări, avem o cheie
compusă.
Nici unul dintre atributele care alcătuiesc cheia primară nu poate
avea valoarea Null. Null este o valoare convenţională care indică o
valoare necunoscută sau neaplicabilă.
7
E1 E2
Câmp1 E1 - PK Câmp1 E2 – PK
Câmp2 E1 Câmp2 E2 - FK
......... ..........
Câmpul2 din entitatea E2 este cheie străină (FK), dacă există şi într-o altă entitate
E1, unde formează cheia primară. Câmpul2 din E2 face referinţă la cheia primară
din E1. Valorile pe care le ia cheia străină, dacă nu sunt Null, trebuie să se
regăsească printre valorile cheii primare la care face referinţă.
8
Cap. 2 Sistemul de gestiune a bazelor de date Microsoft Access
9
Tools->Database Utilities->Compact and Repair Database pentru compactarea
periodică a bazei de date şi păstrarea performanţelor ei.
Tabele
Interogări
Formulare
Rapoarte
Macro
comenzi
Module
10
Access oferă mai multe modalităţi de creare a unui tabel: Datasheet View, Design
View, Table Wizard, Import Table, Link Table (fig. 2)
11
• Date/Time – câmp de tip dată sau timp;
• Autoincrement – număr cu incrementare automată;
• Yes/No – câmp boolean cu două valori;
• Lookup Wizard – câmp care preia datele din alt tabel sau dintr-o listă de
valori.
4. În funcţie de tipul de dată selectat, fereastra Field Properties va conţine alte
informaţii în rubrica Field Size, pe care utilizatorul le poate modifica:
• Text: setat pe valoarea implicită 50, dar se pot reprezenta şiruri de
maximum 255 de caractere;
• Number: se pot defini câmpuri de tip Byte (28 – val maximă 255),
Integer (216 – valoare maximă + 32768), Long Integer este tipul implicit
şi are valoari pe 32 biţi (de la –2.147.483.648 la 2.147.483.647 fără
fracţii), Single – numere fracţionare pe 32 biţi cu precizie de 7 cifre ( de
la –3.402823E38 la –1.401298E–45) pentru valori negative şi de la
1.401298E–45 la 3.402823E38 pentru valori pozitive.
Butonul care activează
Butonul Save cheia primară
Câmpuri de
date – PK
Tipuri de
date
Fereastra
Field
Properties
12
5. Se pot completa şi alte rubrici ale ferestrei Field Properties, cum ar fi:
• Format: personalizează formatul de apariţie (modul de afişare) a
valorilor în câmpul respectiv şi depinde de tipul de dată precizat în Data
Type:
- Date/Time - permite alegerea unui format al datei sau orei dintre cele
propuse: General Date, Long Date, Short Date Long Time, Short Time
- Text poate conţine unul dintre caracterele speciale:
@ - un caracter sau un spaţiu trebuie tastat în câmpul respectiv;
& - nu este necesară tastarea unui caracter în câmpul respectiv;
< - forţează toate caracterele tastate la litere mici;
>- forţează toate caracterele tastate la litere mari
- Number specifică formate predefinite (Currency, Euro, Fixed,
Standard, Percent, Scientific) sau proprii utilizatorului (informaţii
despre modul de afişare a valorilor pozitive, negative, zero şi a
numerelor fără valoare - Null);
• Input Mask: proprietate care ajută utilizatorul la introducerea datelor
în câmpul respectiv:
- 0 impune introducerea pe poziţia respectivă a unei cifre, fără semn;
- 9 impune acceptarea unei cifre sau unui spaţiu, fără semn;
- # indică acceptarea unei cifre sau unui spaţiu, cu semn;
- L solicită introducerea unei litere, obligatoriu;
- ? indică introducerea unei litere, opţional;
- A impune introducerea unei litere sau unei cifre, obligatoriu;
- a impune introducerea unei litere sau cifre, opţional.
• Caption: stabileşte titlul câmpului în modul de introducere date;
• Default Value: reprezintă valoarea iniţială (constantă, expresie sau
funcţie) care apare în câmp la adăugarea unei noi înregistrări şi care
poate fi modificată ulterior;
• Validation Rule: se stabileşte o regulă de validare, la nivel de
înregistrare, a valorii introduse în acest câmp, prin funcţii sau expresii
Access;
• Validation Text: se tastează un mesaj, care apare ca eroare în timpul
introducerii datelor, dacă regula de validare nu este respectată;
• Indexed: se precizează dacă un câmp, altul decât cheia primară, este
index în tabelă şi dacă se acceptă duplicarea valorilor lui; opţiunile
posibile: No, Yes (Duplicate OK) şi Yes (No Duplicate);
6. Se stabileşte cheia primară formată din unul sau mai multe câmpuri;
7. Se salvează structura tabelei cu opţiunea File->Save sau cu ajutorul
butonului Save şi se precizează numele tabelei.
13
Exemplu de folosire a proprietăţilor unui câmp: Câmpul Categ din tabela de
mai jos este de tip Text, are lungimea maximă de 9 caractere şi are setate
următoarele proprietăţi:
• Format: “>” însemnând că toate caracterele care ce se tastează sunt
transformate în litere mari;
• Input Mask: LLL – pe primele trei poziţii se plasează obligatoriu litere
??? - pe următoarele trei poziţii se plasează opţional litere
aaa - pe următoarele trei poziţii se plasează opţional litere sau
spaţii
• Validation Rule: primele litere să nu fie “ABC”
• Validation Text: dacă s-a tastat combinaţia de litere “ABC” apare mesajul
de eroare “Ati tastat propria firma!”
• Indexed: No, deci câmpul nu constituie index suplimentar.
14
2.3 Relaţii între tabele (Relationships)
Relaţiile se formează prin stabilirea unei legături între un câmp (o
combinaţie de câmpuri) dintr-un tabel şi câmpurile corespunzătoare din alt tabel.
Legăturile între tabele sunt de trei tipuri:
1. relaţia unu la mai mulţi (one-to-many) – este cea mai frecvent utilizată şi se
realizează între cheia primară a tabelei T1 şi un câmp similar, ca tip şi ca
dimensiune din T2, numit şi cheie străină. Semnificaţia legăturii este că
oricărei valori a câmpului cheie străina-C21 trebuie să-i corespundă o
valoare a câmpului cheie cheie-C1. În timp ce în tabela T1 valoarea este
unică, în tabela T2 ea se poate repeta de un număr infinit de ori.
Tabela T1 1
∞ Tabela T2
C1 – Primary Key C2 – Primary Key
................ C21 – Foreign Key
................ ..........
Tabela T1 1
Tabela T2
C1 – Primary Key 1 C2 – Primary Key
................
Tabela T3
∞ C31 Primary Key ∞
∞ C32 Primary Key ∞
15
3. Relaţia unu-la-unu (one-to-one)- are loc între două tabele care au aceeaşi
cheie primară. Se defineşte prin intermediul ei o tabelă compusă din cele
două tabele iniţiale. Relaţia este utilă în cazul structurilor mari, care au
nevoie de mai mult de 255 de câmpuri (limita Access-ului pentru un singur
tabel) sau pentru creşterea vitezei de căutare a datelor, dacă nu toate
înregistrările din primul tabel au corespondent în al doilea tabel.
16
Verificarea integrităţii referenţiale este realizată de sistemul Access la solicitarea
proiectantului BD şi constă în:
Verificarea câmpurilor incluse în relaţie: să fie de acelaşi tip şi să aibă
aceeaşi dimensiune;
Introducerea unei valori în câmpul cheie străină din tabela secundară se
face numai dacă această valoare se regăseşte în câmpul cheie primară din
tabela principală;
Nu se admit ştergeri sau actualizări ale unei valori a cheii primare atâta
timp căt există înregistrări corespunzătoare în tabela secundară;
Pentru realizarea ştergerilor şi actualizărilor în cascadă s-au prevăzut cele
două casete de validare Cascade Update şi Cascade Delete.
Ştergerea în cascadă înseamnă că o solicitare de ştergere a unei
înregistrări din tabela primară va determina ştergerea înregistrărilor
corespunzătoare din tabelul asociat.
Similar se produce şi actualizarea în cascadă: modificarea valorii
câmpului cheie primară din tabela principală determină modificarea
tuturor înregistrărilor corespunzătoare din tabela asociată.
17
legăturii între câmpuri. Este o asociere foarte performantă deoarece permite
căutări recursive. De exemplu: o tabelă care conţine date despre părinţi şi copii.
18
Fig. 6 Modalităţi de construire a interogărilor
Etapele de realizare a unei interogări sunt următoarele (fig. 7):
1. Objects Queries->New->Design View;
2. Se deschide fereastra Query Design şi fereastra Show Tables/Queries;
3. Se adaugă câmpurile din tabele în grila de ieşire (prin tragere cu mouse-ul,
dublu click pe câmp, selectare în rubrica Field);
4. Se definesc câmpurile şi ordinea de sortare (rândul Sort - Ascending sau
Descending);
5. Se indică afişarea sau nu a fiecărui câmp (rândul Show- caseta de validare);
6. Se stabilesc criteriile de selecţie (rândul Criteria);
7. Se adaugă câmpurile noi, calculate;
8. Se execută interogarea activând butonul Run sau opţiunea Query->Run.
9. Se salvează interogarea, activând butonul Save sau opţiunea File->Save, dacă se
consideră că răspunde cerinţelor de proiectare.
Tipuri de
interogări Buton de
execuţie
19
Fereastra
Query
Design
Ordinea
de sortare
Câmp
Stabilirea calculat
criteriilor
20
În cadrul interogărilor există posibilitatea adăugării de câmpuri calculate, aşa
cum este câmpul total de plata din fig.7. Pentru aceasta, într-o coloană liberă se
tastează numele câmpului (diferit de cele existente în tabele), urmat de semnul „:”
şi formula de calcul prin care se obţine. În imaginea de mai sus, câmpul calculat
este rezultatul adunării câmpurilor [rata] şi [dob].
Pentru obţinerea de câmpuri calculate de tip numeric se pot folosi operatori
aritmetici, iar pentru câmpurile de tip text se pot folosi operatori de lucru cu şiruri
de caractere. De exemplu, cu ajutorul operatorului de concatenare (&) se compun
câmpurile Nume şi Prenume pentru a rezulta un nou câmp, Student:
Student: [Nume]&” „&[Prenume]
21
Butonul
Totals
Modificarea
titlului câmpului,
la execuţie
Rândul
Total
Funcţiile
Fig. 8 Construirea interogării de tip Total agregat
22
Access oferă posibilitatea creerii interogărilor de tip tabel încrucişat printr-un
program Wizard, Crosstab Query Wizard sau în modul Design View, opţiunea
Query - Crosstab. Vom aborda în lucrare cea de a doua modalitate de lucru.
Pentru a crea o interogare de tip Crosstab în modul Design View se procedează
astfel (fig. 9):
1. Se realizează o interogare de selecţie simplă în care sunt specificate câmpurile
pe care se face gruparea şi câmpurile asupra cărora se aplică funcţiile;
2. Opţional, se activează butonul Totals pentru a selecta câmpul şi funcţia agregat
corespunzătoare;
3. Se activează interogarea de tip tabel încrucişat fie din butonul Query Type, fie
din meniul Query, opţiunea Crosstab Query; apare linia Crosstab în grila
interogării;
4. Se stabilesc câmpurile Row Heading (pot fi mai multe), Column Heading
(obligatoriu unul) şi Value (obligatoriu unul şi anume cel căruia i s-a ataşat
funcţia agregat);
5. Se execută interogarea (butonul Run) şi se salvează (butonul Save).
Butonul
Query Type
Rândul
Crosstab
Selectare
opţiuni
Crosstab
23
Fig. 9 Construirea interogării de tip Crosstab
24
• apare linia Append To unde se completează automat câmpurile destinaţie
care au numele identic cu al câmpurilor sursă sau se completează de către
proiectant, dacă numele nu coincid.
Se recomandă precizarea unor chei primare în tabela destinaţie, care să nu permită
dublarea înregistrărilor.
O utilizare frecventă a interogărilor de tip Append este la arhivarea datelor.
3. Update – selectează anumite înregistrări dintr-o tabelă pe bază de criterii şi
actualizează valoarea unui câmp. Se crează ca orice interogare de selecţie, devenind
efectiv o interogare de tip Update la activarea opţiunii Update din meniul Query:
• se construieşte o interogare de selecţie în care se adaugă câmpul de
actualizat şi câmpul care furnizează criteriul de selecţie;
• din meniul Query sau activând butonul Query Type se alege opţiunea
Update;
• apare linia Update To unde se completează noile valori.
Dacă se face actualizarea unui câmp care este cheie primară într-o tabelă şi relaţia
între tabele prevede actualizări în cascadă (Cascading Updates) se preiau aceste
modificări şi în tabelele unde câmpul respectiv este cheie străină.
Pentru a avea siguranţa că sunt selectate corect înregistrările se execută interogarea
iniţial în modul Datasheet View.
3. Delete – permite ştergerea dintr-o tabelă a înregistrărilor care îndeplinesc o
anumită condiţie. Crearea unei interogări Delete:
• se pleacă de la o interogare de selecţie în care se adaugă tabela şi se
selectează câmpurile care furnizează criteriile de selecţie ale
înregistrărilor;
• din meniul Query sau activând butonul Query Type se alege opţiunea
Delete;
• apare linia Where unde se completează criteriile.
Pentru selectaţia corectă a înregistrărilor care se vor şterge se execută interogarea
iniţial în modul Datasheet View.
Dacă tabela în care se şterg înregistrări este implicată în relaţii de tip one-to-many
cu alte tabele şi a fost prevăzută opţiunea de ştergere în cascadă (Cascading
Deletes) atunci se vor şterge şi înregistrările din tabelele relaţionate.
25
opţiunii Objects->Forms. Access oferă mai multe modalităţi de a crea un formular:
Design View, Form Wizard, Autoform, Chart Wizard (fig.10
În modul Design View – se proiectează formularul element cu element, folosind
instrumentele Access din ToolBox.
În modul Form Wizard se lucrează sub asistenţa „vrăjitorului”, care propune
variante din care proiectantul să poată alege.
Modalităţile Autoform (Columnar Tabular, Datasheet) sunt tot de tip Wizard şi ele
realizează într-o manieră foarte simplă o aşezare specială a câmpurilor în fereastră,
pentru fiecare dintre cele trei tipuri.
Prin Chart Wizard se pot construi grafice pe baza informaţiile din interogări sau
tabele de date şi sub asistenţa „vrăjitorului”. Graficele obţinute pe formular nu se
pot lista la imprimantă.
În modul Pivot Table Wizard se crează formulare pentru afişarea datelor din Excel.
Modalitatea cea mai frecvent folosită pentru crearea formularelor este Form
Wizard (fig. 11) şi ea va fi descrisă în continuare pas cu pas:
1. Forms->New->Form Wizard;
2. Selectarea tabelei (sau a interogării) pe baza căreia care se construieşte
formularul;
26
3. Selectarea câmpurilor cuprinse în formular;
4. Alegerea tipului de aşezare (layout) a câmpurilor de date pe formular:
Columnar, Tabular, Datasheet sau Justified;
5. Alegerea unui fundal pentru fereastra formularului: Blends, Standard,
International, Stone etc
6. Stabilirea titlului şi salvarea formularului.
Câmpurile
selectate să apară
pe formular
Alegerea
tabelei sau
interogării
27
Formular
obţinut cu
Form Wizard
28
• Picture, Picture Type, Picture Size Mode – plasarea unei imagini pe fundal,
includerea ei în aplicaţie, adaptarea imaginii la dimensiunile formularului.
29
Observaţie 1: dacă o tabelă este implicată în mai multe relaţii, se poate construi un
formular cu mai multe subformulare
Observaţie 2: un subformular poate conţine un alt subformular, dacă relaţia între
tabele este de tip “one-to-many-to-many”. Access nu permite mai mult de trei
niveluri de imbricare.
30
Label Wizard – obţinerea de etichete standard sau utilizator din informaţiile
preluate din tabele sau interogări.
Tehnica cea mai simplă şi mai utilizată pentru crearea rapoartelor este Report
Wizard şi necesită parcurgerea etapelor următoare:
1. Reports->New->Report Wizard;
2. Selectarea interogării pe baza căreia care se construieşte raportul;
3. Selectarea câmpurilor care se afişează în raport;
4. Stabilirea nivelurilor de grupare (fig. 13)
5. Prin bifarea casetelor de validare corespunzătoare câmpurilor numerice, se
stabileşte care este tipul de operaţie aplicat grupării (fig. 14), dintre cele
valabile (Sum, Avg, Min, Max);
6. Alegerea tipului de aşezare (layout) a câmpurilor de date pe raport: Stepped,
Block, Outline etc şi orientarea paginii: Portrait sau Landscape;
7. Alegerea unui stil al raportului: Bold, Casual, Compact, Soft Gray;
8. Specificarea titlului şi salvarea raportuluilui.
Grupare pe
cod furnizor
Grupare pe
denumire
produs
31
Fig. 14 Tipul de operaţie aplicat câmpurilor numerice ale grupării
32
Fig. 15 Deschiderea raportului în modul Design View
2.7 Macrocomenzi
Permit gruparea mai multor acţiuni şi executarea lor repetată la declanşarea unui
eveniment, cum ar fi: activarea unui buton sau unui element de meniu, apăsarea
unei taste, focalizarea unui control grafic.
Se îmbunătăţeşte semnificativ interfaţa aplicaţiei cu utilizatorul prin folosirea
comenzilor grupate în macro.
În unele situaţii, comenzile macro reprezintă singura posibilitate de realizare a
anumitor cerinţe ale proiectantului:
• Meniuri utilizator;
• Executarea unei succesiuni de comenzi la deschiderea bazei de date –
macrocomanda specială Autoexec;
• Definirea unor taste care să execute comenzi rapide în cadrul unei aplicaţii –
macrocomanda specială Autokeys.
Dezavantajul utilizării macro este că nu oferă nicio modalitate de revenire asupra
operaţiilor executate.
33
Comenzile macro reprezintă cea mai simplă metodă de programare în Access, care
permite obţinerea unei aplicaţii.
Pentru a crea o macrocomandă se parcurg următoarele etape:
1. Butonul MACROS – opţiunea New;
34
trebuie astfel făcută încât să nu anuleze definiţiile de taste din sistemul de operare
Windows. De exemplu: nu se recomandă folosirea combinaţiei de taste Ctrl+X,
Ctrl+C şi Ctrl+V, care sunt folosite în Windows pentru decuparea, copierea şi
refacerea unei zone Clipboard.
O macro Autokeys se crează ca orice grup de comenzi, având în coloana Macro
Names definite combinaţiile de taste, iar în coloana Action operaţia care se execută
la activarea lor. De exemplu:
Macro Names Action Arguments
Se pot activa oricând în timpul lucrului cu baza de date folosind tasta specială F4,
respectiv combinaţia de taste CTRL+F.
35
1) După ce a fost realizată structura celor 3 tabele, se stabilesc relaţiile dintre ele:
36
4) Se construieşte un raport pe baza interogării de la punctul anterior, cu Report
Wizard, având grijă să precizăm ca niveluri de grupare:
• Nivelul 1: Nrcontract
• Nivelul 2: Nume_client
Se va face un subtotal pe câmpul valoare pentru fiecare client şi pentru fiecare
contract. Se fac modificări în Design View care ţin de forma raportului şi nu de
conţinutul acestuia. În urma execuţiei se obţine următoarea situaţie:
37
Se salvează baza de date sub numele Agenţie.mdb şi se testează funcţionarea ei
prin adăugarea altor seturi de date. Pentru un număr de 10 înregistrări în tabela
Clienţi, 5 înregistrări în tabela Servicii şi 4 înregistrări în tabela Contracte, baza de
date ocupă un spaţiu pe hard disk de 344 Kb.
38
11.Cum se poate păstra coerenţa şi consistenţa bazelor de date Access?
Se va face referire la actualizările şi ştergerile de înregistrări în cascadă.
12. Ce tipuri de date pot conţine tabelele ? Daţi câteva exemple.
Bibliografie
5. Allen Browne, Alison Balter, “Bazele Access 95”, Editura Teora 1999
6. Coculescu, L., Cristea, V.,Pilat, F., Patriciu, V.,”Proiectarea sistemelor
Niculescu, 2006
39
8. Băduţ, M., “Informatica pentru manageri”, Editura Teora, 1999
40