Sunteți pe pagina 1din 6

Studiu de caz

Model relational & SQL


Structura subiecte
I. Subiect teoretic (1 puncte)
II. Subiect teoretic (1 punct)
III. Problema de determinare a modelului relational
pentru o baza de date (3 puncte)
IV. Interogari SQL (4 puncte)
EXEMPLU CERINTA II

Se doreşte realizarea unei BD pentru a firmă ce organizează concursuri de


angajare în vederea ocupării unor posturi vacante de informaticieni in mai
multe filiale ale firmei. Pentru fiecare post disponibil, sunt evaluaţi mai mulţi
candidaţi şi fiecăruia i se acordă un punctaj. Este necesară memorarea pentru
fiecare candidat a produselor software pe ştie să le utilizeze.
Dicţionarul de atribute: nume candidat, adresa candidat, CNP candidat, număr
post, denumire post, salariu oferit pentru post, punctaj obţinut, cod limbaj,
denumire limbaj, categorie limbaj, Cod Filiala, Nume Filiala, Adresa Filiala

• Reguli de gestiune:
• Un candidat se poate înscrie pentru mai multe dintre posturile vacante.
• Un candidat obţine un punctaj pentru fiecare post la care candidează.
• Salariu oferit pentru post nu diferă de la un candidat la altul
• Fiecare candidat poate cunoaşte mai multe limbaje de programare .
• Fiecare limbaj de programare este clasificat într-o singură categorie.
• Un post apartine de o singură filiala
• O filială poate avea mai multe posturi la concurs
Observatie: Intrucat pentru atributul Punctaj nu s-a găsit niciun determinant, s-a adaugat o cheie
compusă din NrPost şi CNP candidat, care determină un punctaj obţinut de un candidat, în mod
unic.
Modelul relational
CANDIDATI (CNP, Nume, Adresa)
POSTURI (NrPost, DenumirePost, Salariu, CodFilială)
LIMBAJE( CodLimbaj, DenumireLimbaj, Categorie)
FILIALE ( CodFiliala, NumeFiliala, AdresaFiliala )
PUNCTAJE (CNP, NrPost, Punctaj)

Intrucat tabelul LIMBAJE, după identificarea cheilor externe, a rămas izolat, se va analiza
posibila legătură dintre acesta şi tabelul CANDIDATI. Deoarece se constată că, între cheile
celor doua tabele, exista dependente multivaloare (un candidat - mai multe limbaje
cunoscute, un limbaj poate fi cunoscut de mai multi candidati) se va adauga modelului
tabelul de legatura:

CANDIDATI_LIMBAJE (CNP, CodLimbaj)


IV. Interogari SQL
Fie tabelele:
ANGAJATI(CodA, Nume, Adresa, DataAngajare, DataNastere, Filiala, Salariu)
CLIENTI(CodCL, Nume, DataNastere, Adresa)
CONSULTATII (NrConsult, DataC, Diagnostic, Tarif, CodA, CodCL)

Realizaţi următoarele interogări SQL:


A. Să se afişeze numele, si vechimea calculată în ani pentru angajatii nascuti intr-
un anumit an specificat ca parametru. Se va ordona alfabetic.
B. Să se afişeze într-o listă cu două coloane numele şi adresele angajaţilor şi
clienţilor din Iaşi (localitatea de domiciliu este cuprinsă în cadrul câmpului
Adresa).
C. Să se afişeze filialele pentru care exista mai mult de 30 salariati cu salariu peste
900 si suma salariilor depaseste 50.000.
D. Să se afişeze numele clientilor de la care s-au perceput cele mai mici tarife
pentru consultatii in ultimele 30 de zile.
E. Sa se mareasca cu 10% salariile in fililalele unde media salariilor este sub media
pe firma.
F. Stergeti clientii care nu au participat la consultatii intre 1 ianuarie si 15 ianuarie
2011.

S-ar putea să vă placă și