Subiect_14

eÎntr-o bază de date se memorează informaţii despre angajaţii unei firme şi departamentele acesteia. Diagrama ERD corespunzătoare este:

S14erd

1. Construiţi baza de date cu tabele corespunzătoare şi relaţiile reprezentate in ERD şi populaţi tabelele cu înregistrări relevante pentru cerinţele următoare:

2. Afişaţi lista angajaților care au adresa de email pe domeniul „yahoo.com”.

3. Să se afişeze, în ordinea descrescătoare a numărului de angajaţi, departamentele cu mai puţin de 3 angajaţi (id_dep, număr de angajați).

4. Să se afişeze salariul maxim pe fiecare departament, în ordinea descrescătoare a salariului maxim (nume departament, salariu maxim).

Rezolvare

1. Construiţi baza de date cu tabele corespunzătoare şi relaţiile reprezentate in ERD şi populaţi tabelele cu înregistrări relevante pentru cerinţele următoare:

Structura tabelului DEPARTAMENT pentru fiecare câmp:

- id_dep - cheie primară, Data Type: AutoNumber

- nume_dep - Data Type: Text

proprietăţi modificate

Field Size: 30

Required: Yes

- adresa - Data Type: Text

- manager - Data Type: Text

proprietăţi modificate

Field Size: 50

Structura tabelului ANGAJAT pentru fiecare câmp:

- id - cheie primară, Data Type: AutoNumber

- nume - Data Type: Text

proprietăţi modificate

Field Size: 30

Required: Yes

- prenume - Data Type: Text

proprietăţi modificate

Field Size: 30

Required: Yes

- data_ang - Data Type: Date/Time

proprietăţi modificate

Format: Short Date

Required: Yes

- salariu - Data Type: Number

proprietăţi modificate

Field Size: Long Integer

Decimal Places: 2

opţional:

Validation Rule: >0

Validation Text: Introduceti valoarea salariului

Required: Yes

- id_dep - Data Type: Number

proprietăţi modificate

Field Size: Long Integer

Decimal Places: 0

- email - Data Type: Text

proprietăţi modificate

Field Size: 50

opţional:

Validation Rule: Is Null Or ((Like "*?@?*.?*") And (Not Like "*[ ,;]*"))

Validation Text: Adresa de email trebuie sa contina si caracterul @.

- tel - Data Type: Text

proprietăţi modificate

Field Size: 20

opţional:

Input Mask: 9999"- "000.000;0;_

Opţional: Pentru a completa mai rapid datele în câmpul id_dep, se poate realiza o interogare care să preia denumirea şi identificatorul departamentului din tabelul DEPARTAMENT.

Aici, coloana afişată este numele departamentului, dar valoarea preluată în tabel este identificatorul departamentului.

S13lookup

Se realizează relaţia de tip one-to-many legând

câmpul-cheie primară id din tabelul DEPARTAMENT la

câmpul id_dep din tabelul ANGAJAT.

s13relatie

2. Afişaţi lista angajaților care au adresa de email pe domeniul „yahoo.com”.

Se creează o interogare care preia date din tabelul ANGAJAT.

S14-interogare1

Pentru a afişa doar angajaţii care au adresa de email pe domeniul "yahoo.com", în coloana pentru email se scrie la criteriu de selecţie Like "*yahoo.com".

3. Să se afişeze, în ordinea descrescătoare a numărului de angajaţi, departamentele cu mai puţin de 3 angajaţi (id_dep, număr de angajați).

Se creează o interogare care preia date din ambele tabele.

Totals-btn

Cu click pe butonul se adaugă rândul Total în fereastra de jos. Se grupează înregistrările după departament, iar în coloana corespunzătoare numărului de angajaţi se foloseşte funcţia de numărare a înregistrărilor - Count (*). La criteriul de selecţie se scrie <3.

S14-interogare2

4. Să se afişeze salariul maxim pe fiecare departament, în ordinea descrescătoare a salariului maxim (nume departament, salariu maxim).

Se creează o interogare care preia date din ambele tabele.

Totals-btn

Cu click pe butonul se adaugă rândul Total în fereastra de jos. Se grupează înregistrările după departament, iar în coloana corespunzătoare salariului angajaţilor se aleg opţiunile Max şi Descending, pe rândurile Total şi Sort.

S14-interogare3

Am ataşat mai jos fişierul rezolvat în format .mdb.