Sunteți pe pagina 1din 13

PROIECT BAZE DE DATE PENTRU MANAGEMENT

VENGHER (VINCENE) S. MARIANA

ANUL II,

MANAGEMENT ID
1.Descrierea bazei de date

Zilnic avem de-a face cu date si informatii pe care dorim sa le gestionam si sa le organizam cat mai usor
posibil. Bazele de date reprezinta colectii de informatii logic organizate, astfel incat sa ne usureze si
sa ne eficientizeze diverse actiuni.In acest proiect am dorit sa evidentiez importanta unei baze de date
intr-o unitate de invatamant. Consider ca prin baza de date create este mult mai usor de tinut evidenta
angajatilor si salariilor, care ne pot usura munca de zi cu zi.

In prima parte a proiectului am realizat schema bazei de date, cu legaturiledintre tabele, respectand
regulile pentru a adduce baza de date in forma normal.

In a doua parte am creat efectiv tabelele bazei de date, urmand ca in a treia parte a proiectului sa le si
populez.

In cea de-a patra parte a proiectului am efectuat diferite interogari.

2 Schema bazei de date

Am ales sa folosesc Microsoft Acces pentru a realiza baza de date.

Am creeat baza de date file/new/blank database/CREATE. Si am creeat in modul design view cele 3
tabele necesare pentru operatiunile viitoare pe care le-am populat cu datele corespunzatoare. Astfel am
obtinut urmatoarele tabele.
In continuare am creeat asocierile permanente, foarte importante deoarece ne valideaza, din punct de
vedere al integritatii datelor, modelul. Adica ne indica daca am gresit ceva: Database
tools/Relationships/show tables/ drag and drop pentru fiecare tabel/stabilim asocierile permanenta tip
One_to_many intre cod_departament(tabel angajati), cod_departament(tabel departamente) si
cod_departament(tabel financiare angajati),in fereastra Edit Relationships bifam Enforce Referential
Integrity, Create.

Aceasta asociere permanenta ne spune ca fiecarui departament ii apartine un cod unic,dar acel cod unic
poate sa apara de mai multe ori in tabelele angajati si financiare angajati deoarece mai multi angajati
pot lucra in acelasi departament.
Din acest moment putem face diverse interogari. Interogarile servesc la selectarea- pe baza anumitor
criteria-a anumitor articole din tabele.Exista posibilitatea combinarii datelor provenite din mai multe
tabele associate,deci rezultatele interogarii pot fi vizualizate intr-o singura fereastra.

Interogare intre 2 tabelele

Dorim sa aflam in ce department (dupa denumire) lucreaza fiecare angajat putem creea o asociere intre
tabelele angajati si departamente. Create/Query Design, selectam tabelele in care sunt datele, cu drag&
drop tragem in tabelul de jos numele coloanelor interesate in cazul nostrum “Nume_prenume” si
“Denumire”. Dam click pe Design/Run si obtinem un nou tabel in care observam denumirea
departamentelor in care lucreaza fiecare angajat.

Functia Like

Sa spunem ca dorim sa aflam doar persoanele care lucreaza in departamentul didactic. Am creat o
interogare – Create/Query Design, am selectat tabelele in care sunt datele, cu drag& drop am tras in
tabelul de jos numele coloanelor. In coloana “Denumire” in campul Criteria am introdus interogarea Like
‘didactic’ astfel am obtinut o asociere in care sunt afisati doar angajatii care lucreaza in departamentul
“didactic”. Astfel am obtinut o proiectie bazata pe intersectia intre 2 tabele urmata de o restrictie.
In continuare as dori sa aflu cati angajati am pe fiecare departament. Create/Query Design, selectam
tabelele in care sunt datele, selectam coloanele interesate “Denumire” si “cheie_angajat”. Click
Design/Totals, pe randul total coloana “cheie_angajat” selectam functia Count. Click pe Design/Run si
obtinem cati angajati lucreaza efectiv in fiecare departament.
Functia “In”

Am dori sa aflam functia si denumirea departamentului a tuturor persoanelor care lucreaza in


cancelarie. Create/ Query Design, selectam tabelele in care sunt datele, selectam coloanele interesate:
“Nume_prenume”, “Functie”, “Denumire”, “Locatie”. Pe randul Criteria coloana “Locatie” introducem
textul: In(‘cancelarie’). Click Run, si obtinem un tabel cu numele,functia si denumirea departamentului
doar a celor care lucreaza in cancelarie.

Functia “IsNull”

Din cate se poate observa in tabele noastre exista persoane suspendate temporar si deci care
momentan au valoarea salariului zero. Am dori sa creem o interogare in care sa obtinem doar numele,si
departamentul persoanelor aflate in aceasta situatie. Create/ Query Design, selectam tabelele in care
sunt datele, selectam coloanele interesate: “Nume_prenume”, “Denumire”, “Salariu”. In campul criteria
pe coloana “Salariu” introducem functia: IsNull(‘salariu’). Click Run si obtinem numele si denumirea
departamentului doar acelor persoane aflate in suspendare.
Functia “Between”

Am dori sa aflam cate angajari s-au facut in fiecare department si pe ce functii intre 01.10.2004 si
01.06.2019. Create/ Query Design, selectam tabelele in care sunt datele, selectam coloanele interesate:
“Denumire”, “data_angajarii”,”Functie”. In campul Sort coloana “data_angajarii” bifam Ascending
pentru a ordona datele in ordine crescatoare, iar pe aceeasi coloana in campul Criteria introducem
functia: Between # 01.10.2004# And #01.06.2019#. Click Run, si vom obtine un tabel cu denumirea
departamentelor, functiile pe care s-au facut angajarile si datele de angajare ordonate crescator de la
01.10.2004 pana in 01.06.2019.
Functia “=”

Mai departe sa spunem ca am dori un tabel in care sa vedem data de angajare a fiecarei ingrijitoare.
Create/ Query Design, selectam tabelele in care sunt datele, selectam coloanele interesate:
“Nume_prenume”,”data_angajarii” si ”Functie”. In campul Criteria in coloana “Functie” introducem
textul: =’ingrijitoare’. Astfel obtinem un tabel in care vor fi afisate doar numele si data angajarii
ingrihitoarelor

Functia “<=”

In continuare dorim sa aflam persoanele care au salariul mai mic sau egal cu 3000 RON si departamentul
in care lucreaza acestia. Create/ Query Design, selectam tabelele in care sunt datele, selectam coloanele
interesate: “Nume_prenume”, “Denumire”, “Salariu”. In coloana “Salariu” pe randul Criteria introducem
functia: <=3000. Vom obtine deci toti angajatii si departamentul in care acestia lucreaza care au salariul
mai mic de 3000 RON.
Functia “>”

Pe de alta parte putem obtine si interogarea inversa – numele si departamentul tuturor persoanelor
care au salariul mai mare de 3000 RON. Urmam pasii de mai sus, dar in campul Criteria de pe coloana
“salariu” introducem functia: >3000.
Functia “UNION”

Pana acum am intersectat tabele,dar Acces ne permite sa intersectam si interogari (Query) folosind
UNION. Sa luam cele doua interogari de mai sus: “angajati salariu <=3000” si “angajati salariu >3000”.
Am ales aceste doua asocieri, deoarece in functia union cele doua interogari trebuie sa aiba acelasi nr si
acelasi fel de coloane, doar datele din interiorul tabelei pot sa difere. Create/ Query Design, iar pentru a
folosi aceasta functie trebuie sa trecem in SQL view.

In acest mod tastam urmatorul cod:

SELECT [Financiare angajati].nume_prenume, Departamente.Denumire, [Financiare angajati].salariu

FROM Departamente INNER JOIN [Financiare angajati] ON Departamente.cod_depart = [Financiare


angajati].cod_departament

WHERE ((([Financiare angajati].salariu)<=3000))

ORDER BY [Financiare angajati].salariu

UNION ALL SELECT [Financiare angajati].nume_prenume, Departamente.Denumire, [Financiare


angajati].salariu

FROM Departamente INNER JOIN [Financiare angajati] ON Departamente.cod_depart = [Financiare


angajati].cod_departament

WHERE ((([Financiare angajati].salariu)>3000))

ORDER BY [Financiare angajati].salariu DESC;

Asa va arata tabelul nostrum la final.


Functia “MINUS”

De asemenea, Acces ne permite sa efectuam calcule. Spre exemplu sa spunem ca am dori sa aflam care
este salariul fiecarui angajat dupa scaderea impozitului. Create/ Query Design, selectam tabelele in care
sunt datele, selectam coloanele interesate: “Nume_prenume”, “Salariu”, “Impozit”.Ne mutam pe
urmatoarea coloana si dam click Design/Builder. In fereastra Expression Builder introducem : Minus:
.Mai departe in Expresion Elements/Proiect Baze de date../Financiare angajati/Salariu. Observam ca s-a
actualizat in fereastra de mai sus, introducem simbolul “-“ dupa care in Expresion Elements/Proiect Baze
de date…/Financiare angajati/Impozit. Click OK.

Acesta va fi rezultatul final.


Functiile CREATE,INSERT,UPDATE,DELETE in SQL

Un alt mod de a creea tabele si a le modifica este in modul SQL view. Am introdus in proiectul meu un
tabel creeat si modificat in acest mod: tabelul “salariati”

Pentru a creea un tabel: Create/ Query Design, selectam SQL view, si introducem urmatorul text

CREATE TABLE salariati(

u_id AUTOINCREMENT PRIMARY key,

nume_prenume varchar(50),

varsta int

Am obtinut astfel acest tabel.

Mai departe dorim sa populam acest tabel cu date, asa ca vom folosi functia INSERT. Create/ Query
Design, selectam SQL view, si introducem urmatorul text:

INSERT INTO salariati ( nume_prenume, varsta )

VALUES ('VENGHER (VINCENE) MARIANA', '53');

Am obtinut primul rand din tabelul nostru


Sa spunem ca am gresit numele unui salariat si dorim sa-l mofidicam. Pentru aceasta putem folosi
functia UPDATE. Create/ Query Design, selectam SQL view, si introducem urmatorul text:

UPDATE salariati SET nume_prenume = 'VINCENE (VENGHER) MARIANA'

WHERE u_id = 1;

Am mai introdus o persoana in tabel pentru a exemplifica functia DELETE. Aceasta functie este folosita
pentru a sterge un rand intreg.Create/ Query Design, selectam SQL view, si introducem urmatorul text:

DELETE *

FROM salariati

WHERE u_id=1;

Asa va arata tabelul in final.

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