Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NUME_PRJ
Web
Clienti
Furnizori
Personal
tabela ANGAJATI conine date despre angajaii intreprinderii care lucreaz la diverse
proiecte. Ea conine identificatorul angajatului ID_ANG, numele angajatului,
NUME_ANG i departamentul de care aparine angajatul, DPT_ANG. Cheia primar
a tabelei este ID_ANG,
ANGAJATI
ID_ANG
1290
1295
1045
1192
1351
1348
1284
1067
1095
NUME_ANG
Popescu
Ionescu
Georgescu
Vasilescu
Filipescu
Popa
Nicolae
Marinescu
Gheorghe
DPT_ANG
Informatica
Support
Documentare
Informatica
Support
Informatica
Support
Documentare
Informatica
ID_ANG
1290
1295
1045
1192
1351
1348
1284
1067
1095
ORE
10
8
12
20
15
20
14
12
15
SAL_ORA
60
40
25
Cheia primar a tabelei SALARIU, DPT_ANG, este cheie extern n tabela ANGAJATI
(coloana DPT_ANG din tabela ANGAJATI).
Proiectarea celor patru tabele este prezentat mai jos. Numele departamentului se va
introduce cu o caset combinat (Combo Box).
Relaiile ntre tabele sunt de regul de tipul unul la mai muli. Vom spune c ntre tabelele
A i B exist relaia unul la mai muli dac unei linii din tabela A i corespund mai mule
linii din tabela B, dar unei linii din tabela B i corespunde o singur linie din tabela A. De
exemplu, ntre tabelele SALARIU i ANGAJATI exist o relaie unul la mai muli.
3. se selecteaz pe rnd tabelele dorite din caseta Show Table i se adaug la fereastra
Relationships cu butonul Add. Se inchide caseta Show Table cu clic pe butonul
Close. Figura 7 arat fereastra Relationships cu tabelele adugate.
a) meniul Relationships
2. clic pe butonul Join Type, care afiaz caseta Join Properties din Figura 10, unde
butonul 1 corespunde relaiei unu la mai muli; clic pe butonul OK al casetei Join
Properties,
Caseta Edit Relationships din Figura 9 se poate afia n mai multe feluri:
cu clic pe opiunea Edit Relationship a casetei din Figura 13,
cu clic pe meniul Relationships Edit Relationship din Figura 14.
Dup definrea relaiei ntre tabelele SALARIU i ANGAJATI, tabela SALARIU arat ca
n Figura 15.
In stnga fiecrei coloane exist nodul unui arbore cu ramuri ctre nregistrrile din
tabela ANGAJATI ce au ca cheie extern cheia primar a tabelei SALARIU. Un clic pe
nodul respectiv expandeaz arborele ca n Figura 16, cu toi angajaii departamentului
Documentare din tabela ANGAJATI , vezi definiia tabelei ANGAJATI de mai sus.
3. se selecteaz din lista Left Table Name numele tabelei n care atributul este cheie
primar, n cazul nostru SALARIU,
4. se selecteaz din lista Left Column Name numele atributului care este cheie primar,
n cazul nostru DPT_ANG,
5. se selecteaz din lista Right Table Name numele tabelei n care atributul este cheie
extern, n cazul nostru ANGAJATI,
6. se selecteaz din lista Right Column Name numele atributului care este cheie
extern, n cazul nostru DPT_ANG,
7. se nchide caseta Create New cu clic pe butonul OK,
8. se alege tipul relatiei unu la mai muli din caseta Join Properties ca mai sus,
9. se marcheaz opiunea Enforce referenial Integrity n caseta Edit Relationships,
10. clic pe butonul OK,
11. clic pe butonul Create al casetei Edit Relationships.
De menionat diferena ntre caseta Edit Relationships din Figura 9 i cea din Figura 18.
Figura 9 arat caseta Edit Relationships dup ce s-a definit o relaie, grafic sau
programatic, nainte ca relaia s fie creat. Cele dou tabele ntre care s-a definit relaia
10
sunt afiate n culoarea gri. Relaia este creat n baza de date cu clic pe butonul Create.
In acest moment butonul Create se transform n buton OK vezi Figura 18.
Atunci cnd baza de date conine prea multe tabele i relaii, fereastra Relationships
devine aglomerat. Putem afia doar tabelele de interes cu relaiile ntre ele. Pentru
aceasta procedm dup cum urmeaz:
1. se terg toate tabelele din fereastra Relationships. Clic pe fereastra Relationships i
apoi pe meniul Edit Clear Layout sau pe butonul
al barei de instrumente,
2. se selecteaz din caseta Show Table una din tabelele de interes,
3. clic pe meniul Relationships Show Direct sau butonul
i n fereastr apar
toate tabele ce au relaii cu tabela selectat, vezi Tabelul 1.
12
13
5. se salveaz formularul creat cu una dintre opiunile Save sau Save As ale meniului
File, sau cu butonul Close al ferestrei formularului,
6. se afiaz tabela rezultat cu clic pe butonul
al barei de instrumente sau pe meniul
Query Run, sau pe meniul View Datasheet View sau pe opiunea Datasheet
View a meniului contextual al formularului.
Tabela rezultat este cea din Figura 23.
Instruciunea SELECT generat de Access pe baza formularului din Figura 22 este cea
din Figura 24.
14
a) meniul Format
NUME
Ionescu
Popescu
Georgescu
Vasilescu
Nicolae
PRENUME
Vasile
George
Nicolae
Ioan
Vasile
ADRESA
Craiova
Iasi
Bucuresti
Timisoara
Cluj
15
COMENZI
ID_COMANDA
124
238
331
214
174
229
ID_CLIENT
4481
1956
4481
2396
2341
4481
DATA
1/10/2009
12/20/2008
7/14/2009
03/08/2007
5/14/2009
11/3/2008
VALOARE
2232
149
3200
844
982
504
16
3. se alege tipul interogrii; prima dat se marcheaz opiunea Detail (shows every field
of every record); clic pe butonul Next ce afiaz caseta din Figura 29,
17
4. se introduce titlul interogrii n caseta What title do you want for your query; se
poate alege ntre a executa interogarea marcnd opiunea Open the query to view
information i modificarea interogrii marcnd opiunea Modify the query design;
clic pe butonul Next i se afiaz tabela rezultat din Figura 30.
Instruciunea SQL SELECT generat de Access pe baza formularului proiectat este cea
din Figura 31.
18
Putem sumariza rezultatele cutrii prin aplicarea unor funcii de agregare. Pentru aceasta
la pasul II, Figura 28, alegem opiunea Summary i obinem caseta din Figura 32.
3. clic pe Summary Options i se afiaz caseta Summary Options din Figura 33,
4. se alege funcia de agregare Sum. Clic OK i se afiaz caseta din Figura 34,
19
20
Instruciunea SQL generat din formularul de interogare este cea din Figura 36
21
22
6. aplicaia wizard afiaz caseta de dialog din Figura 39; n lista How do you want to
view your data? se alege tabela ce va apare n formularul principal, n cazul nostru se
marcheaz opiunea by CLIENTI; se marcheaz opiunea Form with subform(s) i
clic pe butonul Next,
23
24
25
, al barei de
2. se insereaz obiectul Subform din caseta Toolbox. Clic pe butonul Subform, , din
caseta Toolbox i se deseneaz un dreptunghi n zona Detail din Figura 43. Dup
desenarea dreptunghiului se lanseaz automat aplicaia Subform Wizard din Figura
45,
26
3. la pasul I se marcheaz opiunea Use existing Tables and Queries, vezi Figura 45.
Clic Next i se afiaz pasul II n Figura 46,
27
5. la pasul III se aleg opiunile Coose from a list i Show COMENZI for each record
in CLIENTI using CLIENT_ID. Clic Next i se afiaz pasul IV din Figura 48,
28
6. la pasul IV se alege numele subformularului n caseta What name would you like
for your subform or subreport? Clic Finish.
Fromularul proiectat n vederea Design este cel din Figura 49 iar n vederea Form cel din
Figura 50.
29
Caseta de proprieti a subformularului este cea din Figura 51. Aici se pot modifica
diverse proprieti. De exemplu, limea subformularului se poate adapta punnd
proprietatea Subdatasheet Expanded la valoarea Yes.
30
31
Exerciiu. Se vor compara proiectrile celor dou formulare cu subformulare, cel creat de
aplicaia vrjitor i cel cu adugarea manual a subformularului.
32
R1
X
X1
X2
X3
X4
R2
Y
Y1
Y2
Y2
Y3
Y
Y1
Y2
Y2
Y3
a) tabela R1
Z
Z1
Z2
Z3
Z4
b) tabela R2
Vom selecta cmpurile X, Y, Z ce au valori egale pentru cmpurile Y din cele dou tabele.
Definiiile celor dou tabele sunt cele din Tabelul 4 i Tabelul 5.
a) definiie
b) date
Tabelul 4. Tabela R1.
a) definiie
b) date
Tabelul 5. Tabela R2.
33
4. se creaz legtura ntre cmpul Y din tabela R1 i cmpul Y din tabela R2 selectnd
cmpul Y n tabela R1 i trgndu-l cu mousul peste cmpul Y din tabela R2, vezi
Figura 55,
5. se salveaz formularul creat cu una dintre opiunile Save sau Save As ale meniului
File, sau cu butonul Close al ferestrei formularului,
6. se afiaz tabela rezultat cu clic pe butonul
al barei de instrumente sau pe meniul
Query Run, sau pe meniul View Datasheet View sau pe opiunea Datasheet
View a meniului contextual al formularului.
Rezultatul rulrii este tabela din Figura 56. Se va examina modul de jonciune a liniilor
din cele dou tabele.
34
La un clic cu butonul drept pe legtur se afiaz meniul contextual al legturii din Figura
58. In acest meniu se poate terge legtura i se poate afia caseta Join Properties din
Figura 59.
NUME
Ionescu
Popescu
Georgescu
PRENUME
Vasile
George
Nicolae
ADRESA
Craiova
Iasi
Bucuresti
35
2341
1956
Vasilescu
Nicolae
Ioan
Vasile
Timisoara
Cluj
COMENZI
ID_COMANDA
124
238
331
214
174
229
NUMAR_COMANDA
DATA
78235
1/10/2009
12984
12/20/2008
44962
7/14/2009
15734
03/08/2007
23655
5/14/2009
14766
11/3/2008
SUMA
2232
149
3200
844
982
504
ID_CLIENT
4481
1956
4481
2396
2341
4481
Cheia primar a tabelei CLIENTI este ID_CLIENT, cea a tabelei COMENZI este
ID_COMANDA. Coloana ID_CLIENT a tabelei COMENZI este cheie extern. Cmplul
DATA va fi de tipul Date/Time, iar cmpul SUMA de tipul Currency.
se vor proiecta cele dou tabele; regulile de validare sunt: ID_CLIENT >= 1000,
ID_COMANDA >= 100,
se vor introduce datele cu ajutorul unui formular,
se va crea legtura corespunztoare cheii externe,
se va crea o interogare care s afieze cmpurile NUME, PRENUME, ADRESA,
NUMAR_COMANDA, DATA i SUMA,
se va scrie instruciunea SELECT pentru interogare.
2. Fie tabelele de mai jos din baza de date a unei magazin.
ANGAJATI
ID
100
200
300
400
Nume
Ionescu
Popescu
Georgescu
Vasilescu
Departament
Vanzari
Marketing
Contabilitate
Contabilitate
Functie
Agent
Agent
Contabil
Contabil
DEPARTAMENT
ID
100
200
300
Nume
Contabilitate
Marketing
Vanzari
Adresa
Craiova
Bucuresti
Craiova
Cheile primare ale celor daou tabele sunt cmpurile ID de tip numeric. Celelalte cmpuri
au tipul text.
se vor proiecta cele dou tabele,
36
se vor introduce datele n cmpurile Departament din tabela ANGAJATI i Nume din
tabela DEPARTAMENT cu ajutorul unei casete combinate (Combo Box),
se va crea o interogare care s afieze cmpurile ID, Nume, Department, Functie din
tabela ANGAJATI i cmpul Adresa din tabela DEPARTAMENT. Condiia de
selectare este cmpul Department al tabelei ANGAJATI s fie egal cu cmpul Nume
al tabelei DEPARTAMENT.
37