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:
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.
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.
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.
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.
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.
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.
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.
Am ataşat mai jos fişierul rezolvat în format .mdb.