Subiect 3

Într-o instituţie şcolară sunt în desfăşurare mai multe proiecte (parteneriate cu alte şcoli din străinătate, concursuri, tabere etc). În cadrul proiectelor sunt implicaţi atât profesori cât şi elevi (diferenţiaţi în baza de date prin atributul mandatoriu statut), pe care îi vom numi într-un cuvânt participanţi. Pentru fiecare proiect trebuie să se cunoască data începerii, titlul şi durata desfăşurării acestuia. De asemenea, este important bugetul alocat.

Diagrama ER care descrie scenariul de mai sus este:

S3 ERD

Cerinţe:

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) Bugetul proiectelor va fi mărit cu 10%. Creaţi o interogare care va afişa denumirea fiecărui proiect, bugetul actual şi noul buget. Interogarea va cuprinde 3 coloane cu titlul Denumirea proiectului, Buget vechi, Buget nou.

c) Afişaţi denumirea şi data începerii proiectelor care au început anul trecut.

Afişaţi numai profesorii participanţi la proiectele cu profil ecologic, precum si denumirea proiectelor. Știm despre aceste proiecte că denumirea lor începe cu prefixul Eco, urmat de alt cuvânt. De exemplu: Eco Școala, Eco Oraș, Eco județ.

Rezolvare

a) 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 PARTICIPANT pentru fiecare câmp:

- id - cheie primară, Data Type: AutoNumber

- nume - Data Type: Text

proprietăţi modificate

Field Size: 30

Caption: Nume elev

Validation Rule: Is Not Null

Validation Text: Introduceti numele

Required: Yes

- prenume - Data Type: Text

proprietăţi modificate

Field Size: 30

Caption: Prenume elev

Validation Rule: Is Not Null

Validation Text: Introduceti prenumele

Required: Yes

- statut - Data Type: Text - poate avea doar două valori: "Elev" sau "Profesor"

proprietăţi modificate

Field Size: 20

Default Value: "Elev" - presupunem că sunt mai mulţi elevi decât profesori, de aceea, pentru a uşura munca operatorului

Required: Yes

*** Aici se poate crea şi o listă de valori, din care operatorul să aleagă între valoarea implicită "Elev" şi valoarea "Profesor. În figura de mai jos se pot vedea modificările realizate în tag-ul (eticheta) Lookup.

S3 lookup

Pentru a putea realiza o legătură cu tabelul PROIECT, mai trebuie adăugat un câmp.

- id_proiect - Data Type: Number

proprietăţi modificate

Field Size: Long Integer

Required: Yes

Structura tabelului PROIECT pentru fiecare câmp:

- id - cheie primară, Data Type: AutoNumber

- denumire - Data Type: Text

proprietăţi modificate

Field Size: 50

Required: Yes

- data_in - Data Type: Date/Time

proprietăţi modificate

Required: Yes

- buget - Data Type: Number

proprietăţi modificate

Field Size: Long Integer

Decimal Places: 2

Required: Yes

- observatii - Data Type: Text

proprietăţi modificate

Field Size: 255

Între cele două tabele se realizează o relaţie one-to-many legând

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

câmpul id_proiect din tabelul PARTICIPANT.

S3 relatie

b) Bugetul proiectelor va fi mărit cu 10%. Creaţi o interogare care va afişa denumirea fiecărui proiect, bugetul actual si noul buget. Interogarea va cuprinde 3 coloane cu titlul Denumirea proiectului, Buget vechi, Buget nou.

Se creează o interogare care preia date din tabelul PROIECT (câmpurile denumire, data_in şi buget).

Create - Query Wizard - Simple Query Wizard. În modul Design View al interogării se fac următoarele modificări:

- numele care va fi afişat la câmpurile denumire şi buget se schimbă în Denumirea proiectului şi Buget vechi - vezi figura de mai jos;

- se adaugă încă un câmp calculat, cu titlul Buget nou şi care are valoarea câmpului buget înmulţită cu 1,1 - se va scrie Buget nou: [buget]*1.1 (aici, Buget nou fiind titlul coloanei, iar [buget]*1.1, indică aplicaţiei Access să înmulţească valoarea pe care o găseşte în câmpul buget cu 1.1 - separatorul zecimal este punctul).

S3 interogare 1

c) Afişaţi denumirea şi data începerii proiectelor care au început anul trecut.

Se creează o interogare care preia date din tabelul PROIECT (câmpurile denumire şi data_in).

Create - Query Wizard - Simple Query Wizard. În modul Design View al interogării, pentru ca să se afişeze doar înregistrările din anul trecut (adică anul curent din calculator -1), se vor folosi funcţiile Year şi Now.

Funcţia Year extrage anul dintr-un câmp de tip Date/Time.

Funcţia Now se referă la data de azi - acum (data curentă din calculator).

Pentru ca să fie afişate doar înregistrările de anul trecut, pe rândul Criteria se va scrie

Year([data_in])=Year(Now())-1

unde

Year([data_in]) extrage anul din câmpul data_in (data începerii)

şi

Year(Now())-1 extrage anul din data curentă a calculatorului.

Altfel zis, criteriul de comparaţie este ca

anul începerii să fie egal cu anul-din-calculator minus 1.

S3 interogare 2

d)Afişaţi numai profesorii participanţi la proiectele cu profil ecologic, precum si denumirea proiectelor. Știm despre aceste proiecte că denumirea lor începe cu prefixul Eco, urmat de alt cuvânt. De exemplu: Eco Școala, Eco Oraș, Eco județ.

S3 interogare 3

Se creează o interogare care preia date din ambele tabele: câmpurile nume, prenume, statut (tabelul PARTICIPANT) şi denumire (tabelul PROIECT).

Create - Query Wizard - Simple Query Wizard.

În modul Design View al interogării se vor face două modificări:

- pentru a selecta doar proiectele care încep cu caracterele Eco, se va scrie la criteriul câmpului denumire expresia Like "Eco*" - literele Eco urmate de caracterul * (care înlocuieşte unul sau mai multe caractere - vezi pagina Caractere speciale în cadrul unei interogări);

- pentru a selecta dintre participanti doar profesorii, se va scrie la criteriul câmpului statut expresia "Profesor".

Am ataşat şi fişierul în format mdb.

Spor la lucru!