Într-o bază de date se memorează informaţii despre cântăreţi şi trupele din care aceştia fac parte. Fiecare trupă este formată din unul sau mai mulți cântăreţi, dar fiecare cântăreţ face parte la un moment dat dintr-o singură trupă. Statutul fiecărui cântăreţ memorează locul ocupat de acesta (solist, chitarist, baterist etc.). Atributul an memorează anul înfiinţării unei trupe. Diagrama ERD ce modelează situația este dată în figură.
Se cere:
a) Construiţi baza de date cu tabele corespunzătoare şi relaţiile reprezentate în ERD şi populaţi tabelele cu înregistrări relevante pentru cerinţele următoare:
b) Afişaţi într-un tabel ce conţine o singură coloană, denumită INFORMAŢII TRUPĂ informaţiile următoare, sub forma: TRUPA……(denumire)…înfiinţată în …(an)….a realizat un număr de ….(nr_discuri)…..discuri.
c) Afişaţi în ordine alfabetică trupele şi componenţa acestora (denumire – în coloana TRUPA, Nume - în coloana NUME CÂNTĂREŢ, prenume – în coloana PRENUME CÂNTĂREŢ).
d) Afişaţi cântăreţii ale căror nume şi prenume încep cu aceeaşi literă.
Rezolvare
a) Construiţi baza de date cu tabele corespunzătoare şi relaţiile reprezentate în ERD şi populaţi tabelele cu înregistrări relevante pentru cerinţele următoare:
Structura tabelului CANTARET 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
- statut - Data Type: Text
proprietăţi modificate
Field Size: 30
Required: Yes
Pentru a putea realiza o relaţie între cele două tabele, am adăugat şi câmpul
- id_trupa - Data Type: Number
proprietăţi modificate
Field Size: Long Integer - pentru a face legătura cu câmpul id din tabelul TRUPA
Required: Yes
Datorită faptului că la introducerea înregistrărilor trebuie completat şi câmpul id_trupa care se află în relaţie cu tabelul TRUPA, se creează şi tabelul TRUPA şi relaţia dintre cele două tabele, apoi se adaugă câteva înregistrări în tabelul TRUPA, după care se completează şi tabelul CANTARET.
Structura tabelului TRUPA pentru fiecare câmp:
- id - cheie primară, Data Type: AutoNumber
- denumire - Data Type: Text
proprietăţi modificate
Field Size: 50
Required: Yes
- an - Data Type: Number
proprietăţi modificate
Field Size: Integer
Required: Yes
- nr_discuri - Data Type: Number
proprietăţi modificate
Field Size: Integer
Required: Yes
Se realizează relaţia dintre tabele legând
câmpul-cheie primară id din tabelul TRUPA la
câmpul id_trupa din tabelul CANTARET.
În câmpul id_trupa din tabelul CANTARET se poate realiza o interogare după câmpul id din tabelul TRUPA.
b) Afişaţi într-un tabel ce conţine o singură coloană, denumită INFORMAŢII TRUPĂ informaţiile următoare, sub forma: TRUPA……(denumire)…înfiinţată în …(an)….a realizat un număr de ….(nr_discuri)…..discuri.
Se creează o interogare care preia date din tabelul TRUPA - Create - Query Wizard - Simple Query Wizard. Interogarea va prelua informaţii din trei câmpuri ale tabelului: denumire, an şi nr_discuri. Informaţiile vor fi afişate într-o singură coloană, iar între informaţiile preluate va fi intercalat şi textul din cerinţă (pentru concatenare text şi informaţii se foloseşte caracterul special " & ").
În singura coloană din interogare se va trece titlul coloanei şi conţinutul acesteia, astfel:
Informatii trupa: "Trupa " & [trupa]![denumire] & " infiintata in " & [trupa]![an] & " a realizat un numar de " & [trupa]![nr_discuri] & " discuri."
c) Afişaţi în ordine alfabetică trupele şi componenţa acestora (denumire – în coloana TRUPA, Nume - în coloana NUME CÂNTĂREŢ, prenume – în coloana PRENUME CÂNTĂREŢ).
Se creează o interogare care preia date din ambele tabele - Create - Query Wizard - Simple Query Wizard:
- din tabelul TRUPA se preia denumirea trupei;
- din tabelul CANTARET se preiau numele şi prenumele.
Se modifică titlurile coloanelor, conform cerinţei. Se alege ordonarea alfabetică după denumirea trupei.
d) Afişaţi cântăreţii ale căror nume şi prenume încep cu aceeaşi literă.
Se creează o interogare în care se va folosi funcţiile IIF şi LEFT, cu ajutorul cărora se va compara prima literă a numelui cu prima literă a prenumelui. Există mai multe posibilităţi de realizare a acestei interogări.
Interogarea de mai jos va afişa numele şi prenumele cântăreţilor doar DACĂ (funcţia IIF) prima literă a numelui (funcţia LEFT) este egală cu prima literă a prenumelui (tot funcţia LEFT).
În caz contrar, funcţia IIF va returna valoarea "initiale diferite".
Adăugând criteriul ca să fie afişate doar valorile care NU conţin textul "initiale diferite", interogarea va afişa doar cântăreţii ale căror nume şi prenume încep cu aceeaşi literă.
Am ataşat şi fişierul rezolvat în format .mdb.