Sunteți pe pagina 1din 5

Baza de date pentru evidenta angajatilor si a drepturilor salariale

Se doreste realizarea unei baze de date care sa centralizeze angajatii dintr-o firma si drepturile lor salariale pentru o mai buna evidenta a lor. Dictionarul atributelor Pentru a crea baza de date vom utiliza urmatoarele tabele: 1.Angajati IdAngajat CNP Nume Prenume Profesie Adresa 2.Angajare IdAngajat CodPost SalariuIncadrare DataInceput AnAngajare Norma SalariuTarifar 3.Post CodPost DenumirePost CodDepartament

4.Departament CodDepartament DenumireDepartament 5.Sporuri IdSpor TipSpor Coeficient 6.SporAngajat IdSporAngajat IdSpor IdAngajat NrOre 7.Pontaj IdPontaj IdAngajat DataPontaj ZileCM ZileCM

2.Restrictiile de integritate :
alter table Angajare --add constraint ck_x check(Norma>10)

----alter table Angajare ----add constraint ck_y check (SalariuIncadrare>100)

--alter table Departament -- add constraint ck_Cod check (len(CodDepartament)=4)

--alter table Pontaj --add constraint ck_DataPontaj check (DataPontaj>'1/1/1990')

--alter table Angajati --add constraint ck_CNP check(left(CNP,1) in ('1','2'))

alter table Angajare add constraint ck_data check (DataInceput<=getdate())

3.Triggers
1.Creati un trigger ptr tabela Angajati care sa nu permita stergerea angatilor care au definit CNP-ul.Daca se va sterge un astfel de produs, anulati toata stergerea si returnati un mesaj cu gradul de severitate 18. 2.Realizati un trigger asemanator care sa nu permita stergerea departamentelor care au definit un CodDepartament.

3.Creati un trigger pentru tabela Pontaj care sa nu permita adaugarea unui nr de zile de concediu medical mai mare decat dublul maximului current. Daca se va adauga un astfel de nr de zile, anulati toate inregistrarile si returnati un mesaj cu gradul de severitate 18. 4.Creai un trigger care s nu permit introducerea unui salariu de incadrare mai mic sau egal cu jumatate din salariul de incadrare actual. n cazul n care utilizatorul introduce un astfel de termen de valabilitate, anulai tranzacia i afiai un mesaj de eroare cu gradul de severitate 18.

4.Views
1.Creati un view care sa afiseze angajatii in functie de numarul zilelor lucratoare.Ordonati descrescator in functie de numarul zilelor lucratoare. 2.Realizati un view care sa afiseze numarul de sporuri obtinute de angajati in functie de departamentele din care fac parte.Sa se ordoneze descrescator in functie de numarul sporurilor.

5.Proceduri
1.Creati o procedura care sa returneze numele angajatului cu cele mai multe ore de sporuri. Se va afisa numele acestuia pe ecran. 2.Creati o procedura,PTipar care sa primeasca un tipar al Denumirii Departamentului sis a returneze prin intermediul unui parametru de iesire cel mai mare numar de posturi aferente unui department care respecta tiparul.Sa se execute procedura pentru departamentele a caror denumire au a doua litera a si contin e. 3.Creati o procedura numita PTrei care sa dubleze salariul de incadrare aferent posturilor cu codpost=2001, pana ce suma salariilor de incadrare va fi mai mare de 300.000. Daca media salariilor de incadrare va fi mai mica decat 150.000 sa se opreasca procesul. 4.Creati o procedura denumita pp_AdaugareEmail care primeste ca parametru numele departamentului si actualizeaza e-mailul fiecarui departament care nu are inca o adresa cu DenumireDepartament@NumeFirma.ro. Sa se afiseze denumirea departamentului, numele firmei primit si e-mailul nou. 5.Creati o procedura care sa returneze suma totala a salariilor efectuare dupa o data definite de utilizator.Executati procedura pentru 1/1/2000 si stocati suma totala intr-o variabila care sa fie afisata apoi pe ecran.(P5t)

6.Creati un cursor care parcurge toate elementele si returneaza codul departamentului,denumirea departamentului si o adresa de email de tip DenumireDepartament@NumeFirma.ro daca departamentul nu are adresa .
FUNCTII 1.Creati o functie care primeste salariul de incadrare si returneaza impozitul pe salarii de 16%. 2.Creati o functie care primeste ca parametru id-ul unui spor si returneaza un tabel format din idsporangajat, id-ul angajatului si numar de ore aferente sporului pentru toate sporurile legate de acel idspor.