68
Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal „Din adevărata creaţie nu se obţine totul perfect, ci perfectibil.” Capitolul 1 BAZĂ DE DATE PENTRU INFORMATIZAREA ŞI CONTABILIZAREA SALARIILOR ŞI A ALTOR DREPTURI DE PERSONAL. 1.1. Prezentarea temei În contextul societăţii actuale, caracterizată printr-o explozie informaţională fără precedent în istoria omenirii, sistemele informatice reprezintă unul din elementele fundamentale care generează şi controlează fluxurile informaţionale la nivel micro şi macroeconomic. De mai bine de două decenii, bazele de date prin performanţele şi avantajele acestora au reprezentat şi vor rămâne în continuare modalitatea principală de structurare şi organizare a datelor în cadrul sistemelor informatice. În plus, producătorii de software au creat Sisteme de Gestiune a Bazelor de Date din ce în ce mai performante şi în acelaşi timp cât mai simplu de utilizat. Lucrarea este structurată în două părţi: Pagina 3 din 68

Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Embed Size (px)

Citation preview

Page 1: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Baza de date pentru informatizarea si contabilizarea salariilor si a

altor drepturi de personal

„Din adevărata creaţie nu se obţine totul perfect, ci perfectibil.”

Capitolul 1

BAZĂ DE DATE PENTRU INFORMATIZAREA ŞI CONTABILIZAREA

SALARIILOR ŞI A ALTOR DREPTURI DE PERSONAL.

1.1. Prezentarea temei

În contextul societăţii actuale, caracterizată printr-o explozie informaţională fără

precedent în istoria omenirii, sistemele informatice reprezintă unul din elementele

fundamentale care generează şi controlează fluxurile informaţionale la nivel micro şi

macroeconomic. De mai bine de două decenii, bazele de date prin performanţele şi avantajele

acestora au reprezentat şi vor rămâne în continuare modalitatea principală de structurare şi

organizare a datelor în cadrul sistemelor informatice. În plus, producătorii de software au

creat Sisteme de Gestiune a Bazelor de Date din ce în ce mai performante şi în acelaşi timp

cât mai simplu de utilizat.

Lucrarea este structurată în două părţi:

Prima parte formată din capitolele 2 şi 3, constituie o prezentare succintă a

conceptului de bază de date şi a modului de operare cu acest concept, reprezentând în acelaşi

timp şi suportul teoretic al lucrării.

Partea a doua, formată din capitolele 4, 5 şi 6, este dedicată prezentării unui caz

concret de realizare a unei baze de date, în speţă, o bază de date pentru informatizarea şi

contabilizarea salariilor şi a altor drepturi de personal.

1.2. Scopul şi obiectivele temei

Înregistrarea şi calculul salariilor reprezintă, din punct de vedere organizatoric, o grea

încercare pentru cei care veghează la buna lor desfăşurare. Sunt necesare:

Pagina 3 din 46

Page 2: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

introducerea, modificarea sau ştergerea din baza de date a informaţiilor referitoare la

salariaţi, cu înregistrarea concediilor şi întocmirea foii colective de prezenţă;

calcularea drepturilor şi reţinerilor salariale;

înregistrarea în contabilitate a drepturilor şi reţinerilor salariale;

afişarea rezultatelor.

Calculatorul poate veni în sprijinul acestei activităţi care în mod obişnuit se face

manual.

Lucrarea de faţă îşi propune evidenţierea utilităţii unei baze de date în uşurarea

muncii de înregistrare şi calculare a salariilor şi a altor drepturi salariale. Pentru aceasta este

necesară cunoaşterea şi înţelegerea conceptului de bază de date şi a modului în care

informaţiile din mediul extern pot fi stocate şi manevrate într-o bază de date.

Noua legislaţie vine cu o serie de modificări (faţă de anii trecuţi) de care trebuie să se

ţină cont în realizarea structurii bazei de date şi a modului de înregistrare a informaţiilor.

1.3. Argumentarea necesităţii temei.

Privită din exterior, organizarea contabilizării drepturilor şi obligaţiilor personalului

angajat la o entitate publică sau privată, necesită atât efort cât şi timp pentru completarea,

verificarea, calcularea şi afişarea unor rapoarte cum sunt foaia colectivă de prezenţă, statele

de plată, etc. De asemenea în unităţile publice sau private unde numărul de angajaţi este

foarte mare, unde există un volum foarte mare de date care trebuie prelucrate într-un timp

foarte scurt se cere automatizarea prelucrării datelor. Astfel se naşte ideea automatizării

acestei activităţi prin punerea la dispoziţia unităţilor publice şi private a unei baze de date şi a

unui program care să permită prelucrarea rapidă şi eficientă a datelor. Astfel se prelucrează

cu uşurinţă orice informaţie primită, se contabilizează şi orice modificare ulterioară de orice

fel să poată fi făcută uşor astfel încât cei care utilizează software-ul respectiv şi cei care

asigură service-ul programului informatic să fie mulţumiţi din toate punctele de vedere.

1.4. Analiza comparativă a abordărilor existente la ora actuală în ceea ce priveşte tematica de

licenţă.

Toată această muncă laborioasă necesita scrierea listelor manual sau cu o maşină de

scris, calculul salariilor şi altor drepturi de personal cu un calculator de buzunar, o alternativă

Pagina 4 din 46

Page 3: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

recentă o constituie utilizarea unui program de calcul tabelar, Microsoft Excel, care

automatizează întru-câtva activitatea şi uşurează munca membrilor compartimentului

financiar-contabil. Mai există o serie de programe realizate în FoxPro, dar manevrarea lor

este greoaie, iar listarea la imprimantă nu este rezolvată pe deplin. De aceea consider

necesară folosirea unui SGDB performant pentru proiectarea unei aplicaţii capabile să devină

de un ajutor real celor care se „războiesc” cu organizarea contabilităţii salariilor şi altor

drepturi de personal.

Fără pretenţia deşartă că este o aplicaţie completă şi mergând pe ideea că orice

aplicaţie este perfectibilă, invit cititorii şi mai ales cunoscătorii să completeze această

aplicaţie astfel încât, în timp, să îi crească performanţele. Dar pentru aceasta este nevoie de

cunoaşterea noţiunilor teoretice şi dezvoltarea deprinderilor practice legate de baze de date şi

SGBD-uri în general şi a Microsoft Access în particular. Pentru aceasta recomand

aprofundarea noţiunilor teoretice prezentate în capitolele următoare.

Capitolul 2

NOŢIUNI INTRODUCTIVE

Prelucrarea automată a datelor nu se poate face la întâmplare, haotic ci numai în

cadrul unui sistem de organizare a acestora, după metode, tehnici şi procedee bine stabilite.

Organizarea şi prelucrarea datelor este parte integrantă din procesul de dezvoltare a

sistemelor informatice sau a aplicaţiilor care se subordonează.

Pentru ca multitudinea de date existente să poată fi prelucrată, aceasta trebuie să fie

organizată şi structurată pe diferite categorii. Aceste categorii de date, trebuie la rândul lor să

fie convertite într-o informaţie înţeleasă de către calculator şi care să poată fi depozitată pe

diferiţi suporţi de memorie.

În cadrul procesului de organizare, stabilirea structurilor fizice şi logice de date

reprezintă elemente fundamentale de care depinde eficienţa şi viteza prelucrării. Practic,

există o varietate foarte mare de situaţii, ceea ce face imposibilă formularea unei soluţii

universale. Din această cauză, fiecare aplicaţie practică trebuie foarte atent studiată pentru a

se putea stabili cele mai bune soluţii de înregistrare şi manipulare a datelor.

2.1. Noţiunea de dată. Data scalară, data, informaţia şi cunoştinţele.

Din punct de vedere informatic, prin dată se înţelege un model de reprezentare a

informaţiei accesibile unui anumit procesor (om, unitate centrală, aplicaţie de calcul etc.),

model cu care se poate opera pentru a obţine noi informaţii despre fenomenele, procesele şi

Pagina 5 din 46

Page 4: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

obiectele lumii reale sau mai nou a lumii virtuale. O dată care este o entitate invizibilă în

raport cu informaţia care o poartă sau cu procesul la care participă este o dată scalară sau

elementară. O dată scalară, din punct de vedere a reprezentării informaţiei, poate fi privită

logic la nivel de procesor uman şi fizic la nivelul calculatorului sau procesorului fizic.

O dată scalară de defineşte, din punct de vedere logic, prin trei elemente: identificator,

atribute şi valori, iar din punct de vedere fizic corespunde unei anumite zone de memorie de o

anumită valoare. Identificatorul este un simbol sau nume care se asociază datei, pentru a o

distinge de alte date sau tip de dată. Valoarea datei se defineşte printr-o proprietate care poate

fi de tip întreg, real, boolean, text, etc. Atributele precizează proprietăţi ale datei şi ele

determină modul în care aceasta va fi tratată în procesul de prelucrare. Astfel, dacă o aplicaţie

tratează vechimea la un calcul al salariilor de personal, vechimea va fi identificatorul valoarea

va fi rezultatul efectiv al calculului procentului aplicat asupra salarului de încadrare, iar

atributul în acest caz va fi tratarea valorii ca un număr zecimal.

Din punct de vedere al bazelor de date putem defini data mai simplu, ca fiind o

înregistrare într-un cod convenit a unei observaţii, obiect, fenomen, cunoştinţe, imagini, sunet

sau text.

Informaţia este cunoaşterea în general, adică aflarea de elemente noi privind un

obiect, o dată sau o colecţie de date. Mai simplu, informaţiile se obţin în urma prelucrării

datelor sau cu alte cuvinte, datele sunt purtătoare de informaţie.

Cunoştinţele reprezintă informaţii simple sau agregate care se dobândesc de-a lungul

timpului prin observare şi acumulare în ceea ce priveşte obiectele, fenomenele şi procesele

din lumea reală.

2.2. Structuri de date

În majoritatea aplicaţiilor, datele se prezintă sub forma unor mulţimi sau grupe de

mulţimi. Folosirea datelor sub această formă este destul de dificilă, din care cauză de caută

organizarea datelor sub formă de structuri care să aibă diferite relaţii între ele. O structură de

date este o entitate individualizabilă prin nume, a cărei componente îşi menţin proprietăţile.

Organizarea datelor în structuri se poate face informatic pe două componente:

organizarea datelor în memoria internă a calculatorului sub formă de listă, coadă,

stivă.

organizarea datelor pe memoria externă sub formă de fişiere şi baze de date.

Pagina 6 din 46

Page 5: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Structurile interne de date au de obicei un caracter temporar pe perioada procesării

datelor, iar structurile externe au caracter permanent, de lungă durată. Asupra unei structuri

de date se pot efectua o multitudine de operaţii, cele mai frecvente fiind:

crearea este operaţie de memorare a structurii de date, în forma iniţială, pe un suport

de memorie;

consultarea este accesul la elementele structurii de date în vederea prelucrării sau

procesării valorilor acestora;

actualizarea presupune schimbarea stării structurii prin adăugarea sau inserarea unor

elemente noi sau ştergerea elementelor care nu mai sunt necesare şi modificarea valorilor

unor elemente;

sortarea care este aranjarea structurii de date după anumite criterii sau cerinţe

formulate din partea utilizatorilor;

interogarea prin care se cere selectarea şi sortarea datelor după anumite condiţii

impuse;

fuzionarea sau concatenarea este combinarea a două sau mai multe structuri de date

ordonate într-o singură structură;

ventilarea este operaţia de desfacere a unei structuri în mai multe structuri de sine

stătătoare.

Operaţiile aplicate asupra unei structuri de date pot să îi afecteze valorile şi/sau

structura. Dacă o structură de date îşi modifică forma, atunci această structură este

considerată dinamică. Opusul structurilor dinamice sunt structurile statice, care pe tot

parcursul existenţei lor au acelaşi număr de componente şi în aceeaşi ordine.

2.3. Noţiuni privind conceptul de bază de date

O bază de date este o colecţie unitară, organizată şi structurată de date elementare,

împreună cu descrierea şi modul de gestionare a acestora. Gestionarea unei baze de date se

face printr-un pachet de programe specializate, numit sistem de gestiune a bazelor de date, pe

scurt SGBD. Fizic, datele se stochează în fişiere de unde sunt apoi preluate şi prelucrate cu

ajutorul SGBD.

Un fişier este un ansamblu de înregistrări fizice, omogene din punct de vedere a

conţinutului şi posibilităţilor de prelucrare, aşa cum este prezentat în imaginea următoare.

Pagina 7 din 46

Page 6: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Înregistrarea fizică este unitatea de transfer între memoria internă (temporară) şi

memorie externă (permanentă) şi invers a calculatorului. O înregistrare fizică se compune din

una sau mai multe înregistrări logice.

Înregistrarea logică este unitatea de informaţie care se introduce la un anumit moment

dat în memoria calculatorului. De obicei, o înregistrare corespunde unui rând de informaţie

introdusă într-o bază de date sub forma unei tabele. La rândul ei, înregistrarea este formată

dintr-un ansamblu de câmpuri care descriu diferite structuri de date corespunzătoare anumitor

situaţii practice.

În afara bazelor de date există şi bănci de date. Banca de date este tot o bază de date,

dar mai puţin structurată. Rolul unei bănci de date este adunarea informaţiilor de larg interes

în vederea folosirii acestora de un public cât mai larg. De exemplu, băncile de date pot

conţine informaţii privind mersul trenurilor, avioanelor, cursul valutar, fondul documentar al

unei biblioteci, etc.

2.4. Obiectivele fundamentale ale unei baze de date

Pentru ca o bază de date să aibă o funcţionalitate maximă, datele trebuie grupate şi

prezentate sub diferite structuri intercorelate între ele. Dispunerea datelor într-o bază de date

nu este haotică ci se respectă anumite reguli prevăzute şi impuse de programatorul care a

creat baza de date şi de sistemul de gestionare a bazei de date. Plecând de la cerinţele impuse

unei baze de date, obiectivele fundamentale pe care trebuie să le îndeplinească sunt:

centralizarea datelor pentru a permite suprimarea redundanţei, asigurarea unicităţii

înregistrărilor şi controlul în orice moment asupra datelor introduse;

Pagina 8 din 46

Page 7: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

independenţa dintre date şi prelucrarea acestora, deoarece baza de date este în

permanenţă actualizată şi prelucrarea datelor se poate face permanent şi de diverşi utilizatori;

partajarea datelor permite înlănţuirea prelucrărilor solicitate simultan pe aceeaşi

înregistrare în baza de date, prin blocarea cerinţelor în aşteptare şi deservirea ulterioară a

acestora;

integritatea datelor trebuie asigurată pentru coerenţa şi fiabilitatea bazei de date;

securitatea datelor împotriva unei distrugeri fizice sau logice datorate unei utilizări

necorespunzătoare a programului, erorilor de programare sau reavoinţei utilizatorului;

confidenţialitatea datelor împotriva unor accesări nedorite a bazei de date, lucru care

se realizează prin identificarea utilizatorului prin nume sau cod, autentificarea prin parole şi

autorizarea diverselor drepturi de accesare pe diferite nivele a bazei de date.

2.5. Sistemul de gestiune a bazelor de date.

Pentru ca datele care se introduc într-o bază de date să poată fi procesate, trebuie ca

acestea să fie gestionate de sistemul de gestiune a bazelor de date, imaginea următoare fiind

relevantă în acest sens.

Pagina 9 din 46

Page 8: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

De asemenea SGBD serveşte şi ca interfaţă între utilizator şi baza de date pentru a

permite acestuia să creeze o bază de date, să o actualizeze şi să o consulte. SGBD poate fi

definit ca un instrument de introducere, aranjare, asamblare, codificare, protecţie, sortare şi

regăsire a datelor în baza de date. Principalele funcţii pe care trebuie să le îndeplinească un

SGBD sunt:

memorarea datelor pe suportul extern prin sistemul de gestiune a fişierelor;

gestiunea datelor şi a legăturilor dintre ele în vederea unei regăsiri rapide prin

intermediul SGBD intern;

introducerea şi extragerea datelor din şi spre exterior în forma cerută de utilizator prin

intermediul SGBD extern.

Capitolul 3.

MODELE DE REPREZENTARE A DATELOR ÎN BAZELE DE DATE

Descrierea unui obiect oarecare dintr-o mulţime se poate realiza prin folosirea unor

caracteristici sau atribute specifice obiectului respectiv. Caracterizarea sau atributul defineşte

un aspect sau o latură a unui obiect din mulţimea respectivă. Cu cât, un obiect este descris cu

mai multe caracteristici, cu atât avem o viziune mai largă asupra obiectului respectiv. Nu se

recomandă nici folosirea exagerată a caracteristicilor.

De exemplu, dacă considerăm o persoană, putem să îi asociem următoarele

caracteristici:

Persoana: {Nume, Prenume, Prenumele tatălui, Data naşterii, Locul naşterii, Adresa, Telefon,

e-mail}.

Fiecare element dintre acolade reprezintă o caracteristică ce contribuie la descrierea

unei „Persoane”. Descrierea completă a unui obiect se face printr-o familie de caracteristici.

Dacă caracteristicile grupate într-o anumită familie respectă o anumită proprietate, atunci

familia de caracteristici este o colecţie de date. La rândul ei o colecţie de date se poate

subdivide în colecţii numite entităţi. Astfel „persoana” poate fi privită ca entitate, dacă nu se

mai subdivide, sau ca o colecţie de date, având o singură entitate.

Pagina 10 din 46

Page 9: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

În cazul exemplului de mai sus, Numele persoanei poate fi numele entităţii, iar

celelalte caracteristici scrise cu litere îngroşate formează o familie de caracteristici.

3.1. Tipuri de structuri fundamentale în baza de date

Datele în bazele de date sunt organizate în liste (tabele) interconectate. Structura de

tip listă poate fi:

liniară;

arborescentă;

în reţea;

relaţională.

Structura liniară este o listă liniară cu elemente nestructurate. Listele liniare pot fi

reprezentate dispersat sau liniar (legat). Aceste structuri permit următoarele tipuri de operaţii:

consultare, actualizare, ştergere, compunere sau ventilare (descompunere) colecţii de date.

Structura arborescentă se prezintă sub forma unui arbore şi se bazează pe coexistenţa

a mai multor colecţii de date (tabele) şi a unei mulţimi de relaţii ierarhice. Colecţiile de date

sunt ierarhizate pe nivele de relaţii de subordonare. Structurile arborescente permit operaţiile:

adăugare sau ştergere, consultarea colecţiilor de date.

Pagina 11 din 46

Page 10: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Structura de tip reţea se bazează tot pe existenţa unei mulţimi de colecţii de date, dar

spre deosebire de reţeaua arborescentă în acest caz avem o mulţime de relaţii în reţea.

În acest fel orice colecţie poate avea mai mulţi predecesori, ceea ce permite accesul la

diferite colecţii pe căi multiple. De asemenea, o structură de tip reţea se poate descompune în

mai multe structuri arborescente relaţionate ierarhic. O astfel de descompunere duce la

creşterea redundanţei.

Pagina 12 din 46

Page 11: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Structura relaţională are la bază relaţii între caracteristice entităţilor, a căror realizări

formează n legături. Este obligatoriu ca una dintre caracteristice entităţilor să fie o cheie

primară, ceea ce permite realizarea de legături între diverse tabele sau baze de date. Cheia

primară se caracterizează prin faptul că în cele mai multe situaţii are o valoare unică, diferită

pentru fiecare înregistrare în baza de date.

3.2. Nivele de reprezentare a datelor în baza de date.

Realizarea unei baze de date presupune organizarea acesteia pe trei niveluri de

percepţie corespunzătoare la trei categorii de activităţi distincte. Aceste nivele de percepţie şi

ierarhizare a unei baze de date sunt:

nivelul extern, corespunzător utilizatorilor, care îşi exprimă cerinţele informaţionale

prin scheme externe corespunzătoare diverselor tipuri de interogări;

nivelul conceptual care este aferent administratorului bazei de date;

nivelul logic care stabileşte relaţiile care se stabilesc între diferitele entităţi ale bazei

de date;

nivelul intern corespunzător programatorului bazei de date care realizează

reprezentarea datelor pe suportul fizic.

Urmărirea şi determinarea structurii unei baze de date se poate face ascendent,

plecând de la schema externă, urmată de elaborarea schemei conceptuale sau invers. Trecerea

de la schema conceptuală a unei baze de date la schema internă se face prin intermediul

Pagina 13 din 46

Page 12: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

limbajelor de descriere a datelor care sunt incluse în SGBD. Un model de date presupune un

limbaj de descriere a unei anumite realităţi, în timp ce o schemă este o descriere a unei

realităţi momentane.

Schema conceptuală a unei baze de date se obţine pe baza schemelor externe prin

eliminarea redundanţelor.

3.2.1. Nivelul extern de prezentare a datelor

La nivel extern, fiecare grup de lucru sau utilizator care manipulează datele posedă a

anumită descriere a acestora. Această descriere corespunde felului în care utilizatorii văd

baza de date în programele lor de aplicaţie. În concluzie, la nivelul conceptual şi intern

schemele descriu baza de date, dar la nivel extern se prezintă doar mulţimea datelor care

prezintă interes pentru un anumit utilizator sau grup de utilizatori.

Astfel, schema externă de reprezentare a datelor pentru serviciul personal poate fi

următoarea:

Angajat

Marca

Nume

Prenume

Studii

Funcţia ocupată

Salarizare

Scheme externe pot fi multiple, în funcţia de aplicaţia preconizată şi de nivelul de

accesibilitate a diverşilor utilizatori cu toate că schema internă şi cea conceptuală sunt unice.

Plecând de la o schemă externă se pot construi diverse scheme externe pentru subgrupuri ale

grupului de utilizatori consideraţi. Fiecare schemă externă trebuie să se regăsească obligatoriu

în schema conceptuală a bazei de date.

3.2.2. Nivelul conceptual al unei baze de date

Nivelul conceptual este nivelul central al unei baze de date care reflectă modul de

structurare a datelor astfel încât acestea să poată fi prelucrate cu ajutorului unui SGBD.

Nivelul conceptual al unei baze de date stă la baza dezvoltării modelului conceptual care

permite definirea proprietăţilor elementare ale obiectelor care ne interesează în proiectarea

Pagina 14 din 46

Page 13: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

unei baze de date. De exemplu: obiectele des manipulate de o baza de date sunt clienţii

(articole cerute, cantitatea, facturarea, plata, termene de livrare, etc.), furnizorii (articole

furnizate, cantitatea, facturarea, plata, etc.), articolele de fabricaţie (tip, culoare, mărime,

tipodimensiune), salariaţi (tip contract, calificare, vârstă, adresă).

În proiectarea bazelor de date la nivel conceptual, modelul cel mai frecvent utilizat

este modelul „Entitate – Atribut - Corespondenţă” sau prescurtat EAC.

O entitate, după cum a mai fost definit şi anterior este un model de obiect identificat

în lumea reală a aplicaţiilor cerute de crearea bazei de date. Entitatea poate fi un obiect

material (persoană, lucru, etc.), un obiect imaterial care corespunde unui eveniment abstract.

Obiectele sunt definite prin nume (rezultând numele entităţii) şi printr-o listă de proprietăţi

sau atribute (caracteristici).

Atributul se defineşte ca fiind proprietatea unei entităţi sau corespondenţe

caracterizată prin nume şi tip. Trebuie acordată o atenţie deosebită selecţionării atributelor

unei entităţi, deoarece acestea permit ulterior procesarea bazei de date şi obţinerea unor

rezultate la interogările formulate care pot fi bune sau nesatisfăcătoare. Mulţimea valorilor

unui atribut va forma un domeniu.

O baza de date bine proiectată presupune individualizarea fiecărei valori a entităţii cu

ajutorul unui atribut sau grup de atribute. Astfel, identificatorul unei entităţi caracterizează în

mod unic o realizare sau înregistrare a entităţii.

Între două atribute ale aceleaşi entităţi sau între două sau mai multe atribute ale două

sau mai multe entităţi există o dependenţă funcţională când unui atribut (proprietăţi) îi

corespunde o singură valoare a celuilalt atribut. Această caracteristică conceptuală a unei

baze de date permite structurarea datelor plecând de la entităţi la sub entităţi. Prin această

bază de date devine mai flexibilă şi mult mai uşor de consultat.

O corespondenţă sau asociere reprezintă legătura logică între două sau mai multe

realizări sau înregistrări ale entităţii. La realizarea unei corespondenţe trebuie respectate

următoarele reguli:

o corespondenţă sau asociere nu poate exista de cât o singură dată între aceleaşi

entităţi;

numele entităţilor, corespondenţelor, atributelor trebuie să fie unice în cadrul

modelului conceptual şi apoi în baza de date.

Pentru a se înţelege mai bine definiţiile enunţate anterior se prezintă următorul

exemplu. Produsele finite ale unei întreprinderi de automobile sunt livrate unor clienţi.

Livrarea acestor produse se face pe baza unor facturi care trebuie să conţină seria facturii,

Pagina 15 din 46

Page 14: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

data livrării, tipurile de automobile facturate, cantitatea din fiecare, preţul unitar, cota de

T.V.A. corespunzătoare produsului respectiv. Aceste date servesc în final la calcularea valorii

totale a facturii. Schematic, situaţia prezentată se poate face prin schema entitate-

corespondenţă, astfel:

Plecând de la această reprezentare grafică se pot identifica următoarele:

Entităţi: (Tip automobil şi Factura livrare);

Atribute:

(cod, denumire, model, culoare, dotare) pentru entitatea Tip automobil;

(nr. factură, data facturării, cota TVA) pentru entitatea Factura livrare;

(cantitatea, preţ unitar) pentru corespondenţa Se facturează.

Identificatori: (cod pentru entitatea Tip automobil şi nr. factură pentru entitatea

Factura livrare).

Corespondenţă: (Se facturează) care nu are un identificator.

În exemplul de mai sus apare o regulă de gestiune prin corespondenţa Se facturează.

Pe baza regulilor de gestiune se stabilesc restricţiile modelului, ceea ce asigură integritatea,

securitatea şi coerenţa datelor. Regulile de gestiune stabilesc cardinalităţi şi conectivităţi între

înregistrările atributelor din entităţi şi cele ale proprietăţilor de corespondenţă sau asociere.

Cardinalităţile şi conectivităţile exprimă modul de participare a valorilor atributelor din

entităţi la fiecare apariţie de valori de asociere. Astfel putem avea o conectivitate minimă (0

sau 1) şi una maximă (1 sau n).

Plecând de la exemplul anterior, pentru stabilirea corectă a cardinalităţilor se va ţine

seama de următoarele reguli:

un tip de automobil, într-un anumit interval de timp, poate fi cuprins între minim sau

zero facturi sau se poate factura de mai multe ori, cu alte cuvinte se va regăsi în n facturi.

Pagina 16 din 46

Page 15: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Factura întocmită la o anumită dată poate conţine, în cantităţi şi la preţuri diferite,

minimum un tip de automobil şi maximum n produse.

Cardinalităţile stabilite pentru exemplul prezentat se regăsesc în imaginea următoare:

Între înregistrările aceleaşi entităţi pot exista şi corespondenţe reflexive. Pentru o bază

de date cu angajaţii unei firme, situaţia unui angajat pe scara ierarhică poate fi ca cea ilustrată

în figura următoare:

Pentru stabilirea cardinalităţilor s-au respectat următoarele reguli:

Un angajat nu poate să aibă în subordine nici un angajat (minimum 0), sau poate

conduce mai mulţi angajaţi (maximum n).

Pagina 17 din 46

Page 16: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Totdeauna un angajat poate fi condus de minim zero angajaţi (cazul directorului

firmei) şi de maxim un angajat-şef.

3.2.2.1. Restricţii de integritate a datelor

La realizarea modelului conceptual al unei baze de date trebuie să se ţină seama de

anumite reguli care trebuie să fie respectate permanent. Aceste reguli se numesc restricţii de

integritate (RI). Astfel de restricţii de integritate a datelor pot fi:

eliminarea redundanţelor sau repetărilor şi a omonimelor în denumirea entităţilor,

atributelor, corespondenţelor;

valorile atributelor cu rol de identificator trebuie să fie unice şi nenule;

cardinalităţile minime şi maxime se stabilesc pe baza regulilor de desfăşurare a

activităţilor în sectorul vizat în construcţia bazei de date;

în cazul asocierilor orice realizare a acestora impune existenţa înregistrărilor

entităţilor participante (integritate referenţială).

Pentru exemplificare se consideră facturarea produselor care se livrează unor clienţi

(reprezentată în imaginea de mai jos).

În cazul acestui exemplu, la facturare, cardinalitatea minimă şi maximă este 1,

deoarece întocmirea unei facturi trebuie să vizeze un client, iar la livrare acea factură este

trimisă numai acelui client pentru care s-a făcut facturarea. În cazul clientului cardinalitatea

minimă poate să fie nulă (nu i-a fost emisă nici o factură), iar cardinalitatea maximă ajunge la

n (numărul total de facturi primite de la furnizori).

De asemenea la realizarea facturării pot fi incluse şi anumite restricţii:

data facturării să nu fie anterioară datei curente;

capacitatea cilindrică a autovehiculelor facturate să fie cuprinsă doar în gama celor

fabricate (1000, 1300, 1600, 2000 cm³).

3.2.2.2. Rolurile unei entităţi

Pagina 18 din 46

Page 17: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

O aceeaşi entitate, în cadrul unei baze de date, poate avea mai multe roluri în funcţie

de aplicaţia concretă la care participă.

Astfel între rolurile unei entităţi pot apărea următoarele situaţii:

Incluziunea de roluri, ceea ce presupune ca un rol al entităţii într-o asociere impune

un alt rol al său într-o altă asociere. Pentru exemplificare se consideră primirea unui

document de încasare generat de plata efectuată de un client pentru livrarea la domiciliu a

unor produse. Livrarea produselor are loc numai după ce în prealabil a fost emisă şi trimisă o

factură corespunzătoare. Incluziunea de roluri se reprezintă prin simbolul: .

Excluziune de roluri apare în situaţia în care roluri ale aceleiaşi entităţi se exclud

reciproc. Astfel, o firmă de vânzare şi închiriere automobile trebuie să ţină seama de faptul că

o maşină închiriată nu poate să fie şi vândută în acelaşi timp şi invers. Cele două roluri ale

entităţii automobil (închiriere şi vânzare) se exclud reciproc. Excluziunea de roluri se

simbolizează cu #:

Egalitatea de roluri înseamnă o restricţie de incluziune reciprocă între două roluri ale

aceleaşi entităţi. Ca exemplu se consideră cazul în care un salariat primeşte sporuri şi

primeşte sume care constituie reţineri din salariu. Există egalitate între rolurile pe care

entitatea Personal le are în cadrul celor două corespondenţe. Simbolizarea egalităţii de roluri

se face cu simbolul .

Pagina 19 din 46

Page 18: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

3.2.3. Nivelul logic al unei baze de date (modelul relaţional).

Modelul relaţional are la bază noţiuni din teoria matematică a mulţimilor. Noţiunea de

bază folosită este cea de relaţie care se defineşte ca fiind o submulţime a produsului cartezian

a mai multor mulţimi. Astfel o relaţie R poate avea următoarea formă:

RM1 x M2 x ... x Mn

Relaţia poate fi definită şi cu ajutorul logicii matematice. Astfel, fie m = (m1, m2, ...,

mn)M1 x M2 x ... Mn şi un predicat P(m1, m2, ..., mn), atunci [M1, M2, ..., Mn]R = {(m1, m2, ...,

mn)/P(m1, m2, ..., mn) = adevărat}. Familia de mulţimi pe care este definită relaţia se numeşte

domeniu, iar dacă M1 = M2 = ...= Mn, relaţia este omogenă. Numărul n se numeşte gradul

relaţiei, iar un element al relaţiei t = (m1, m2, ..., mn) este numit tuplu, iar numărul de tupluri

indică cardinalul relaţiei.

Domeniul este o noţiune mai cuprinzătoare decât atributul, deoarece reprezintă

mulţimea tuturor valorilor posibile care definesc o anumită proprietate a unui obiect, spre

deosebire de atribut care reprezintă mulţimea valorilor existente la un moment dat în coloana

pe care o desemnează în cadrul relaţiei. Într-o relaţie pot exista mai multe atribute care iau

valori în aceleaşi domenii.

Practic, relaţiile se reprezintă simplu, prin tabele, supuse următoarelor restricţii:

în fiecare coloană toate valorile sunt de acelaşi fel;

fiecare valoare este un număr sau un şir de caractere;

ordinea liniilor în tabel nu este predefinită şi nu sunt admise duplicate;

coloanele sunt identificate prin nume distincte care reprezintă atributele relaţiei;

coloanele sunt identificate prin nume distincte care reprezintă atributele relaţiei.

Prelucrarea relaţiilor care se stabilesc în cadrul unei baze de date se face cu ajutorul

algebrei relaţionale sau a calcului relaţional de tuplu sau domeniu.

Pagina 20 din 46

Page 19: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

3.2.3.1. Noţiuni de algebră relaţională

Operatorii relaţionali se pot grupa în:

operatori de bază, care pot genera toată clasa operatorilor relaţionale şi care la rândul

lor se împart în:

operatori de asamblare;

operatori unari.

operatori auxiliari.

Operatorii de asamblare sunt operatorii binari, care au două intrări şi o singură ieşire.

Aceşti operatori sunt: reuniunea, diferenţa şi produsul cartezian şi modul lor de operare este

identic cu cel din teoria mulţimilor.

Operatorii unari se aplică asupra unei relaţii şi generează o altă relaţie. Din această

clasă de operatori fac parte proiecţia şi selecţia. Prin intermediul proiecţiei, dintr-un tabel cu

un anumit număr de coloane se obţine un tabel cu un număr mai redus de coloane, prin

suprimarea dublurilor. Identic, cu ajutorul selecţiei se obţine un tabel cu un număr mai mic de

rânduri prin eliminarea înregistrărilor multiple.

Operatorii auxiliari se deduc din operatorii de bază, cei mai importanţi fiind:

compunerea (join), intersecţia, împărţirea sau diviziunea. Aceşti operatori se folosesc în

special la interogarea bazelor de date relaţionale. Modelarea numerică a produsului cartezian

este foarte dificilă şi consumă mult timp de calcul, din care cauză se preferă înlocuirea

acestuia prin operaţii de compunere (join).

Matematic, o compunere după un calificator multi-atribut Q poate fi definită astfel:

Q = Ai1BiAk2Bn... Ap3Bj.......

unde: A(A1, A2, ..., An) şi B(B1, B2, ..., Bn) sunt două relaţii, iar Q este un calificator

multi-atribut. Compunerea poate fi:

Compunere condiţionată când două relaţii R1 şi R2 se compun după calificatorul

multi-atribut Q şi când rezultă o relaţie E ale cărei tupluri sunt cele ale produsului cartezian

R1xR2 ce satisfac calificatorul Q. În funcţie de calificatorul Q se disting mai multe tipuri de

compuneri:

Echicompunere, dacă Q este de forma Ai = Bj;

(tetha) compunere, dacă Q este de forma Ai Bj, unde poate fi sub forma

următorilor operatori logici {, , , , };

Autocompunere, dacă Ai = Aj

Pagina 21 din 46

Page 20: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Compunere naturală sau echicompunere pe R1 şi R2 după toate atributele având

acelaşi nume în R1 şi R2, urmată de o proiecţie care permite conservarea unuia dintre aceste

atribute, egale ca nume.

Intersecţia se poate defini ca şi în teoria matematică a mulţimilor ca E = R 1 R2 sau

cu ajutorul operaţiilor de diferenţă:

E = R1 R2 = R1 – (R1 – R2) = R2 – (R2 – R1)

Diviziunea a două relaţii R1 şi R2 se poate simula cu operatori de diferenţă, produs

cartezian şi proiecţie, după cum urmează:

R1

R2

=X−Y ,

unde: X=R1{A1 , A2 , .. . , AP}

Y=(( X×R2 )−R1 {A1 , A2 , .. . , AP}

Prin prisma modelului relaţional, o bază de date este o colecţie de relaţii sau tabele

normalizate, în care fiecare coloană reprezintă un atribut distinct, iar fiecare rând un tuplu

distinct. Tuplurile unei relaţii se pot identifica în mod unic prin intermediul valorilor unuia

sau mai multor atribute, care joacă rol de cheie primară a relaţiei respective.

În cadrul unei baze de date, între diferite relaţii (tabele) pot apărea anomalii de

actualizare care sunt:

Anomalia de ştergere care constă în faptul că anumite date care urmează să fie şterse,

fac parte din tupluri în care se găsesc şi alte date care mai sunt necesare în continuare, ori

ştergerea făcându-se la nivelul întregului tuplu, acestea se pierd;

Anomalia de adăugare se datorează faptului că anumite date care urmează să fie

adăugate fac parte din tupluri incomplete ceea ce face ca acestea să nu poată fi adăugate;

Anomalia de modificare rezultă din faptul că este dificil de modificat o valoare a unui

atribut atunci când ea apare în mai multe tupluri ale relaţiei (cazul unor înregistrări multiple).

Pentru a se înlătura aceste anomalii, E. F. Codd a stabilit trei forme normale pentru

relaţii şi a introdus procesul de normalizare care se bazează pe noţiunea de dependenţă

funcţională ca relaţie între atributele unei entităţi care are un caracter invariant.

3.2.3.2 Normalizarea unei baze de date

Pagina 22 din 46

Page 21: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Procesul de normalizare a relaţiilor se realizează în mai mulţi paşi, începând cu forma

normală unu, ajungându-se la forma finală cinci. Pentru exemplificare se consideră o bază de

date prost concepută, care în forma normală unu nu ne permite operaţii de actualizare,

modificare sau ştergere fără a pierde informaţii nedorite.

O relaţie este în forma normală unu, dacă şi numai dacă toate atributele ei conţin

numai valori atomice (vezi tabelul).

CP UM PU Q CB LB ZIP TP

P1 buc 20 100 B1 Braşov 400 21

P1 buc 20 200 B2 Aiud 500 30

P1 buc 20 50 B3 Arad 300 59

P1 buc 20 10 B4 Braşov 400 21

P2 kg 10 250 B5 Arad 300 59

P2 kg 10 120 B1 Aiud 500 30

P2 kg 10 60 B3 Arad 300 59

P3 m 5 100 B1 Braşov 400 21

P3 m 5 50 B4 Braşov 400 21

P4 buc 25 6 B5 Arad 300 59

P4 buc 30 10 B2 Aiud 500 30

În acest tabel este reprezentată o relaţie R definită pe opt atribute: cod produs (CP),

unitatea de măsură (UM), preţul unitar (PU), cantitatea (Q), cod beneficiar (CB), localitatea

beneficiarului (LB), codul poştal (ZIP) şi prefixul telefonic al localităţii (TP).

Cheia primară a relaţiei R este compusă din CP şi CB, iar atributele UM, PU, LB, ZIP

şi TP nu sunt complet dependente funcţional de acestea. De asemenea perechile de atribute

(LB, ZIP) şi (LB, TP) sunt mutual dependente. Această relaţie R posedă anomalii de

actualizare, ca:

nu se poate adăuga un tuplu pentru care nu se cunoaşte beneficiarul (CB) şi localitatea

(LB), deoarece datorită respectării integrităţii entităţii, nici o componentă a cheii primare

(CP, CB) nu poate fi nulă;

dacă produsul P4 nu se mai fabrică temporar, trebuie şters tuplul P4 (buc 25 6 B5

Arad Arad 300), dar prin această ştergere se pierd şi informaţii referitoare la beneficiarul B5,

care mai sunt necesare în continuare;

dacă se modifică preţurile produselor, modificarea acestora se face greu deoarece

acelaşi preţ intervine în mai multe tupluri ceea ce face să avem o redundanţă mare a

înregistrărilor în baza de date.

Pagina 23 din 46

Page 22: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Pentru a elimina anomaliile de actualizare, se descompune relaţia R în mai multe

relaţii R1, R2 şi R3 prin folosirea operatorului de proiecţie. În felul acesta se obţine forma

normală doi a relaţiei R din tabelele următoare:

CP UM PU

P1 buc 20

P2 kg 10

P3 m 5

P4 buc 25

P5 buc 30

CP CB Q

P1 B1 100

P1 B2 200

P1 B3 50

P1 B4 10

P2 B5 250

P2 B2 120

P2 B3 60

P3 B1 100

P3 B4 50

P4 B5 6

P5 B2 10

CB LB ZIP TP

B1 Braşov 400 21

B2 Aiud 500 30

B3 Arad 300 59

B4 Braşov 400 21

B5 Arad 300 59

Diagrama dependenţei funcţionale este prezentată în imaginea următoare:

Din această diagramă se observă că relaţiei R3 îi sunt asociate dependenţele tranzitive

CB-LB, LB-ZIP şi CB-LB, LB-TP care generează şi ele anomalii de actualizare:

dacă se şterge tuplul referitor la beneficiarul B1 se pierd şi datele referitoare la

localitatea, codul poştal şi prefixul telefonic, care mai sunt necesare într-o viitoare etapă;

modificarea codului poştal ZIP se face greu, deoarece aceeaşi valoare apare în mai

multe tupluri rezultând redundanţă mare;

nu se poate adăuga o nouă localitate dacă nu există cel puţin un beneficiar din

localitatea respectivă, datorită lipsei cheii primare CB.

Pagina 24 din 46

Page 23: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Pentru a se înlătura anomaliile şi din această formă normală, se descompune relaţia

R3 în două relaţii R31 şi R32 care vor alcătui forma normală trei.

În concluzie, pentru a avea o redundanţă cât mai mică a bazei de date, forma optimă

în acest caz este forma normală trei care cuprinde relaţiile sau tabelele R1, R2, R31 şi R32.

Plecând de la aceste tabele se pot face interogări şi prelucrări ale datelor fără a se pierde din

conţinutul avut iniţial sub forma R. Se constată, că în acest fel, numărul datelor vehiculate

este mai mic, dar informaţia obţinută cu acestea este identică cu cea care s-ar obţine dacă am

avea datele în forma R. În plus, în acest caz se pot face adăugări, modificări şi ştergeri de date

fără a se atenta la integritatea bazei de date.

3.2.4. Nivelul intern (fizic)

Nivelul intern sau modelul fizic este cel care corespunde structurii în care sunt stocate

datele în interiorul maşinii de calcul. În modelul fizic se specifică tabelele sau fişierele care

compun baza de date, componentele fiecărui fişier (lungime, câmpuri, plasare a acestora,

localizare etc.), căile de acces la componentele tabelelor (indecşi, relaţii, legături între tabele).

La nivel intern se vor avea în vedere cerinţele privind protecţia datelor, atât din punct

de vedere al conţinutului câmpurilor din tabele (verificarea şi validarea valorilor câmpurilor

la introducere, evitarea ştergerilor cu sau fără rea voinţă a datelor importante prin conceperea

unei secvenţe de program specializat în acest scop), cât şi în ceea ce priveşte accesul

utilizatorilor la baza de date (stabilirea drepturilor de acces trebuie să se facă ţinând cont de

rolul, funcţia şi sarcina fiecărui utilizator).

Capitolul 4.

PROIECTAREA BAZEI DE DATE

4.1. Stabilirea nivelului extern al bazei de date

Pentru a se obţine o bază de date eficientă şi funcţională se recomandă a se da o

atenţie deosebită următoarelor aspecte:

studiul cu atenţie a structurării bazei de date şi a intercondiţionărilor dintre diferitele

entităţi;

stabilirea exactă a formatului datelor. Pentru datele numerice se foloseşte o

reprezentare adecvată, iar pentru cele de tip text se stabileşte dacă sunt mai lungi de sau nu de

Pagina 25 din 46

Page 24: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

255 de caractere. De asemenea datele pot fi sub formă de dată calendaristică, obiecte

(imagini, fişiere multimedia, diferite tipuri de documente create cu diverse aplicaţii etc.);

tabelele trebuie proiectate cu existenţa unor câmpuri cheie şi trebuie să se stabilească

un sistem de relaţii între aceste chei. Pentru a se urmări pas cu pas funcţionarea bazei de date

în timpul proiectării acesteia se recomandă efectuarea de interogări, cu date introduse în

prealabil pentru testare, pentru a se vedea dacă se pot extrage uşor datele din tabelele

proiectate;

schema structurală a bazei de date trebuie să fie cât mai simplă, iar tabelele să fie de

dimensiuni mici care să fie în relaţii între ele. Acest lucru duce la scurtarea timpului de

prelucrare a unei cereri asupra bazei de date deoarece nu trebuie să se facă o căutare în toate

datele, ci numai în tabelele de dimensiuni mai mici în care se găsesc informaţiile necesare ca

răspuns la cererea efectuată;

consultarea colegilor, colaboratorilor şi a celor care vor utiliza efectiv baza de date

creată pentru a prezenta diferite sugestii şi necesităţi ale acestora.

Pentru a se înţelege paşii necesari proiectării unei baze de date se pleacă de la un

exemplu concret: Bază de date pentru informatizarea şi contabilizarea salariilor şi a altor

drepturi de personal la S.C. STIPO S.A. DOROHOI.

DESCRIEREA UNITĂŢII ANALIZATE

I. Înfiinţare, statut, obiective

I.1. Înfiinţare

Societatea comercială "STIPO" S.A. DOROHOI este înfiinţată conform Hotărârii

Guvernului României nr. 1200 din 12.11.1990 prin preluarea integrală a patrimoniului

întreprinderii de Sticlărie şi Porţelan Dorohoi înfiinţată în anul 1973.

Sediul societăţii este în municipiul Dorohoi, strada Livezilor, nr. 45, judeţul Botoşani.

Sediul societăţii poate fi schimbată pe baza hotărârii Adunării Generale a Acţionarilor,

potrivit reglementărilor legale.

Capitalul social este deţinut în procente de 70% de F.P.S. Moldova (Fondul Proprietă

ţii de Stat), persoană juridică înfiinţată prin H.G. nr. 254/1990, iar în procente de 30%

capitalul social este deţinut de F.P.P. nr. 4 Muntenia (Fondul Proprietăţii Particulare),

înmatriculat la Registrul de Comerţ al municipiului Bucureşti sub nr. 40/g/2342/1990 cu

sediul în Bucureşti.

I.2. Statut

Pagina 26 din 46

Page 25: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Societatea comercială "STIPO" S.A. DOROHOI este persoană juridică română, având

forma juridică de societate pe acţiuni. Este înzestrată cu fonduri fixe şi cu mijloace circulante

proprii, necesare desfăşurării activităţii acesteia. Se constituie pe baza principiului

autofinanţării în condiţiile legii.

Societatea are ca obiect de activitate producerea şi comercializarea articolelor de

sticlărie de menaj şi iluminat, porţelan menaj, vitrus, cristal, combinaţii sticlă - porţelan -

feronerie, piese de schimb pentru consum propriu şi terţi, ambalaje şi utilaje specifice

activităţii de bază. De asemenea tot în obiectul de activitate al firmei intră şi întreţinerea şi

repararea utilajelor.

Firma îşi desfăşoară activitatea pe bază de plan propriu, încheie bilanţ, are cont la

bancă, elaborează buget de venituri şi cheltuieli, planul costurilor de producţie, beneficiază de

credite bancare şi are relaţii economice cu alte unităţi.

Este obligată să acopere costurile de producţie şi cheltuielile de circulaţie, să obţină

beneficii, din care să restituie fondurile primite, să desfăşoare activitate rentabilă cu eficienţă

sporită, să asigure participarea salariaţilor la realizarea producţiei, a beneficiilor şi a împărţirii

beneficiilor.

Realizează relaţii bugetare directe efectuând vărsăminte, reprezentând prelevări din

valoare producţiei nete pentru societate, impozitul pe circulaţia mărfurilor, o parte din

beneficii, în condiţiile prevăzute de lege şi alte venituri cuvenite bugetului de stat.

I.3. Obiective

Firma are ca obiective principale îmbunatăţirea calităţii şi diversificarea produselor, o

mai bună adaptare la cerinţele pieţii, găsirea de noi pieţe de desfacere în ţară şi în străinătate.

Pe planul îmbunătăţirii calităţii produselor firma are următoarele obiective:

• diversificarea sortimentală prin crearea şi lansarea pe piaţă a unor noi produse;

• prezentarea de calitate a produselor şi îmbunatăţirea imaginii firmei;

• reducerea cheltuielilor cu materia primă prin reciclarea deşeurilor;

• utilizarea optimă a capacităţilor de producţie existente;

• reducerea cheltuielilor cu manopera prin creşterea productivităţii muncii;

• angajarea de personal tânăr, specializat.

• retehnologizarea secţiei producţie Sticlă Nr. 1.

• modernizarea oficiului de calcul.

O parte din utilajele achiziţionate pentru capacitatea nouă de producţie au fost

montate în cadrul filaturii care funcţionează, în locul unor utilaje de acelaşi tip care aveau

durata de funcţionare expirată.

Pagina 27 din 46

Page 26: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

I.4. Structura organizatorică a unităţii (organigrama, descrierea unităţii)

Distribuirea autorităţii şi responsabilităţii în societate se realizează prin propria

structură organizatorică. Forma de organizare e folosită pentru divizarea scopului general,

care este maximizarea pe termen lung a profitului, în subscopuri. Structura organizatorică e

de tip mixt: funcţională şi structurată pe nivele ierarhice.

Structura organizatorică elaborată după principiul funcţional este specifică

întreprinderilor integrate vertical, dominant orientate spre producţie. O astfel de structură

duce la apariţia unor dificultăţi privind coordonarea strategică, trimite toată responsabilitatea

către conducerea strategică, favorizând centralizarea excesivă.

Modul de descompunere a delegării autorităţii este dată de organigrama pe structură a

unităţii, prezentată în continuare prin intermediul organigramei.

Conducerea societăţii este structurată pe următoarele nivele:

- nivelul 1 : Adunarea Generală a Acţionarilor;

- nivelul 2 : Consiliul de Administraţie;

- nivelul 3 : Conducerea Executivă a Societăţii;

- nivelul 4 : Conducător de Funcţiune;

- nivelul 5 : şef Secţie.

În cadrul societăţii funcţionează următoarele comisii pe activităţi:

- Comisia tehnico-aplicativă;

- Comisia de îmbunatăţire a calităţii produselor;

- Comisia tehnică de prevenire şi stingere a incendiilor;

- Comisia de casare;

- Comisia de recepţie a mărfurilor;

- Comisia de autorecepţie a produselor finite;

- Comisia de analiză a reclamaţiilor;

- Comisia tehnică de încadrare şi promovare a personalului;

- Comisia de cenzori.

Pentru buna desfăşurare a activităţii îşi propune realizarea unui sistem informatic care

să rezolve problemele privind evidenţa salariaţilor, a drepturilor şi obligaţiilor acestora.

Pentru fiecare salariat se cunosc: marca, nume, prenume, codul numeric personal, adresa şi

profesia.

Salariaţii lucrează în compartimentele societăţii care sunt identificate prin cod şi

denumire. Conform organigramei în fiecare compartiment există mai multe posturi. Pentru

Pagina 28 din 46

Page 27: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

fiecare post se cunosc codul, denumirea, salariul minim şi salariul maxim. Angajaţii îşi

negociază salariul pentru postul ocupat.

Prezenţa angajaţilor la locul de muncă este evidenţiată în foaia colectivă de prezenţă

care se întocmeşte lunar pentru toţi angajaţii firmei şi conţine: marca, numele şi prenumele

salariatului, numărul de ore lucrate, numărul de ore absenţă, numărul de zile de concediu de

odihnă, numărul de zile de concediu medical, luna şi anul.

Salariaţii pot avea persoane în întreţinere. În momentul în care aceştia se angajează se

vor stabili: salariul, data angajării şi data de sfârşit dacă este pe perioadă determinată şi postul

pe care sunt încadraţi şi numărul de persoane aflate în întreţinere.

Plata salariilor se face prin card bancar. Pentru fiecare card se menţionează numele şi

prenumele salariatului, numărul cardului, banca emitentă, numărul contului, data emiterii şi

data până la care este valabil.

Pentru modelarea acestei activităţi se va folosi UML (Unified Modeling Language, iar

implementarea se va realiza cu ajutorul mediilor de programare Visual Basic 7.0 şi Access

2003.

Modelarea structurii sistemului utilizând UML 1. Diagrama cazurilor de utilizare

Diagrama cazurilor de utilizare este folosită, în general, pentru a indica sau caracteriza

funcţionalităţile şi comportamentul întregii aplicaţii. Ea conţine un set de cazuri de utilizare,

actori şi relaţiile dintre aceste componente.

Pentru proiectarea bazei de date se vor parcurge etapele prezentate în capitolul

anterior. Adică întâi se defineşte modelul conceptual (modelul entitate-atribut-

corespondenţă), după care acesta se transformă în model logic şi apoi în modelul fizic

corespunzător sistemului de gestiune a bazelor de date conferit de programul Microsoft

Access.

4.2. Determinarea entităţilor care compun baza de date.

Baza de date trebuie să conţină:

numele, prenumele angajatului;

codul numeric personal;

adresa;

profesia;

postul ocupat;

salariul de încadrare;

Pagina 29 din 46

Page 28: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

sporurile care i se cuvin;

numărul de persoane aflate în întreţinere;

compartimentul în care lucrează;

pontajul salariatului pentru fiecare lună:

ore lucrate

ore absenţă

zile concediu medical

zile concediu de odihnă

reţinerile;

modalitatea de plată prin card.

Pornind de la aceste date sunt necesare o serie de operaţiuni la nivelul bazei de date:

înregistrarea datelor despre salariat;

înregistrarea datelor referitoare la angajarea salariatului;

completarea foii colective de prezenţă;

completarea reţinerilor din salarii;

calcularea salariilor şi contribuţiilor de personal;

listarea unor rapoarte: statele de plată, foaia colectivă de prezenţă;

interogarea bazei de date pentru obţinerea de informaţii în diferite momente, pentru

modificarea unor informaţii sau ştergerea lor din baza de date;

prezentarea unui raport cu contribuţiile lunare ale societăţii.

4.3. Stabilirea nivelului conceptual al bazei de date

Dacă privim un centralizator al datelor necesare, baza de date ar avea următoarea

structură:

Marca Identificatorul angajatului

Nume Numele angajatului

Prenume Prenumele angajatului

CNP Codul Numeric Personal

Adresa Adresa angajatului

Profesia Profesia angajatului

Salariu Salariul de încadrare

Data_început Data de început a activităţii

Data_sfârşit Data încheierii activităţii dacă e vorba de o perioadă

determinată sau dacă e vorba de perioadă

Pagina 30 din 46

Page 29: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

nedeterminată vom insera o dată fictivă 01.01.9999

Nr_persoane_întreţinere Numărul de persoane în întreţinere

Cod_comp Cod compartiment

Den_comp Denumire compartiment

Cod_post Codul postului

Den_post Denumirea postului

Salar_minim Salarul minim de încadrare a postului respectiv

Salar_maxim Salarul maxim de încadrare a postului respectiv

ID_spor Identificatorul sporului

Tip_spor Tipul sporului

Coeficient Coeficientul de calcul

ID_FCP Identificator foaie colectivă de prezenţă

Luna Luna pentru care se face prezenţa

Anul Anul pentru care se face prezenţa

Nr_ore_efectiv_de_lucrat Numărul mediu de ore pentru luna respectivă pentru

care se plăteşte salariul de încadrare

Nr_zile_lucrătoare Numărul de zile lucrătoare din luna respectivă

Ore_lucrate Orele lucrate de salariat în luna respectivă

Ore_absenţă Orele absenţă ale salariatului în luna respectivă

Zile_concediu_medical Numărul de zile de concediu medical din luna

respectivă

Zile_concediu_odihnă Numărul de zile de concediu de odihnă din luna

respectivă

Nr_card Numărul cardului salariaului

Banca_emitentă Banca emitentă a cardului

Nr_cont Numărul contului în care se vor vira salariile lunar

Data_emitere Data emiterii cardului

Data_expirării Data expirării cardului

Pagina 31 din 46

Page 30: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

4.4. Normalizarea bazei de date

Pentru uşurarea muncii operatorului au fost create următoarele tabele care respectă

toate formele normale, descompunerea la atribute atomice, restricţiile de integritate şi

tranzitive, validări pe câmpurile incluse în tabele:

Tabela Salariat: Marca, Nume, Prenume, CNP, Adresa, Profesia

Tabela Angajare: Marca, Cod_post, Salariu, Data_început, Data_sfârşit,

Nr_persoane_întreţinere

Tabela Compartiment: Cod_comp, Den_comp

Tabela Post: Cod_post, Den_post, Salar_minim, Salar_maxim, Cod_comp

Tabela Sporuri: ID_spor, Tip_spor, Coeficient

Tabele Sporuri_salariat: ID_spor, Marca

Tabela Foaie_colectivă_prezenţă: ID_FCP, Luna, Anul, Nr_ore_efectiv_de_lucrat,

Nr_zile_lucrătoare

Tabela Pontaj: ID_FCP, Marca, Ore_lucrate, Ore_absenţă, Zile_concediu_medical,

Zile_concediu_odihnă

Tabela Card: Nr_card, Banca_emitentă, Nr_cont, Data_emitere, Data_expirării, Marca

4.5. Relaţionarea bazei de date

Între tabele bazei de date au fost create următoarele relaţii:

Pagina 32 din 46

Page 31: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Atributele subliniate reprezintă chei primare pentru fiecare entitate, pe baza cărora se

va face regăsirea şi diferenţierea dintre fiecare tuplu sau înregistrare. Se recomandă, ca în

fiecare tabel, cheia primară să aibă o valoare unică pentru fiecare înregistrare. În cazul în care

avem aceeaşi cheie primară pentru mai multe înregistrări ale aceluiaşi tabel pot apărea

probleme la interogarea şi prelucrarea bazei de date.

Pentru a se realiza structura relaţională, între entităţi sau tabele trebuie să fie anumite

legături. Aceste legături se stabilesc cu ajutorul cheilor primare care trebuie să se regăsească

ca şi atribute în tabelele care se leagă între ele. Structura relaţională pentru baza de date

Salarii a fost prezentată în imaginea precedentă.

Capitolul 5

PROIECTAREA INTERFEŢEI GRAFICE DE COMUNICARE A

OPERATORULUI ŞI PROGRAMATORULUI CU SISTEMUL DE GESTIUNE AL BAZEI

DE DATE

Pagina 33 din 46

Page 32: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Utilizarea foilor de date (Data Sheets) pentru introducerea şi vizualizarea datelor este

de multe ori greoaie, mai ales pe măsura creşterii bazei de date sau a tabelelor cu foarte multe

câmpuri. Pentru a se realiza o interfaţă utilizator – bază de date cât mai atractivă şi intuitivă,

Access permite realizarea de formulare (Forms).

Formularele pot îndeplini mai multe funcţii, cele mai importante fiind:

Afişarea şi editarea datelor. Este una din cele mai des utilizate forme de folosire a

formularelor, deoarece datele se pot vizualiza şi introduce în forma dorită de proiectantul

aplicaţiei care ţine cont în general de dorinţa utilizatorului. Datele afişate în cadrul acestor

formulare pot fi modificate sau şterse;

Controlul operaţiilor realizate de aplicaţie. Cu ajutorul formularelor care înglobează

macrocomenzi şi proceduri Visual Basic se poate realiza afişarea automată a anumitor date

sau executarea unui şir de operaţii, ceea ce duce la creşterea productivităţii lucrului cu baza

de date.

Introducerea de date. Este scopul principal al folosirii formularelor;

Afişarea mesajelor. Formularele pot furniza informaţii privind modul în care aplicaţia

poate fi utilizată sau despre operaţiile care se execută sau s-ar putea executa;

Tipărirea rezultatelor. În cazul unor informaţii des utilizate, se poate executa un

formular cu ajutorul căruia să se tipărească direct anumite date sau rapoarte.

Proiectarea şi crearea formularelor şi a subformularelor

Un formular este compus din trei părţi. La proiectarea unui formular se pot folosi

toate ce le trei părţi sau numai unele dintre ele.

Cele trei părţi constitutive ale unui formular sunt:

antetul (Form Header);

zona de detaliu (Detail);

subsolul (Form Footer).

Pentru aplicaţia în discuţie în această lucrare s-au folosit doar formulare:

Form1, care reprezintă formularul principal, mai bine-zis meniul de comandă. De aici

avem acces la Preluare date/Inserare, Modificare/Ştergere date din tabelele bazei de date, la

Rapoarte, şi la butonul de acces la ieşirea din baza de date.

Form2, conţine exact interfaţa de acces la Preluare date/Inserare, Modificare/Ştergere

date din tabelele bazei de date pentru fiecare tabelă.

Alte formulare care prin design-ul lor te ajută să introduci manual sau automat datele

în cîmpurile tabelelor, să ştergi anumite informaţii sau să modifici nişte informaţii din tabele.

Pagina 34 din 46

Page 33: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Fiecare formular este realizat astfel încât să protejeze datele înscrise anterior în baza

de date şi să dirijeze (direcţioneze) cât mai precis încărcarea datelor necesare.

Form1, panoul principal va arăta astfel:

Form2, panoul principal va arăta astfel:

Pagina 35 din 46

Page 34: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Din Form2 se poate intra în oricare din secţiunile care ne interesează. Să presupunem

că vrem să intrăm să actualizăm Tabela Pontaj, facem click pe Pontaj şi se deschide un nou

panou de acces la toate acţiunile de modificare a tabelei:

Aici utilizatorul poate intra pe oricare din cele 3 formulare de actualizare a tabelei

Pontaj:

pe inserare date în tabela Pontaj făcând click pe Adăugare

pe modificare date în tabela Pontaj unde ni se cer nişte date după care să caute în

tabela Pontaj informaţiile cerute de noi, ni se cer Marca şi ID_FCP:

Pagina 36 din 46

Page 35: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

pe ştergere date în tabela Pontaj unde ni se cer nişte date după care să caute în tabela

Pontaj informaţiile cerute de noi, ni se cer Marca şi ID_FCP, cu confirmările de rigoare la

ştergerea datelor.

Prezentăm ma jos şi conţinuul Tabelei Pontaj, cu datele care au fost introduse:

5.2. Actualizarea automată a datelor.

Pagina 37 din 46

Page 36: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Una din operaţiunile cele mai importante pe care le poate face aplicaţia este calculul

salariilor personalului angajat. Această operaţiune este realizată cu ajutorul unor Query –

Make Table Query sau de Update Query, de tip selecţie şi acţiune, care permit completarea

unor câmpuri pe baza altor query Actualizarea se realizează, conform unor query, strict în

ordinea următoare:

1. Calcul_venit_ore_efectiv_lucrate_plus_CO

2. Lansare_calcul_CM_salariati

3. Indemnizatii_finale_CM_salariati

4. Venit_brut_angajati

5. Calcul_contributii_angajati

6. Calcul_venit_net

7. Calcul_deduceri

8. Calcul_impozit_salarii

9. Calcul_salar_net

10. Extragere stat de salarii pe baza datelor de mai sus.

Prezentăm mai jos una din aceste interogări a bazei de date pentru

Calcul_contributii_angajati în forma Design şi SQL:

SELECT DISTINCTROW Indemnizatii_finale_CM.Marca,

Indemnizatii_finale_CM.Luna, Venit_brut.Venit_brut,

IIf([Indemnizatia_finala_CM]<>0,Round(6.5*([Venit_brut]-[Indemnizatia_finala_CM])/

100),Round(6.5*[Venit_brut]/100)) AS CASS, 9.5*[Venit_brut]/100 AS CAS,

IIf([Indemnizatia_finala_CM]<>0,Round(1*([Venit_brut]-[Indemnizatia_finala_CM])/

100),Round(1*[Venit_brut]/100)) AS Somaj INTO Contributii_angajati

Pagina 38 din 46

Page 37: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

FROM Indemnizatii_finale_CM INNER JOIN Venit_brut ON

Indemnizatii_finale_CM.Marca = Venit_brut.Marca

WHERE (((Indemnizatii_finale_CM.Marca)=[Venit_brut].[Marca]) AND

((Indemnizatii_finale_CM.Luna)=[Venit_brut].[Luna]));

5.3. Interogarea bazei de date pentru obţinerea de informaţii

Toate informaţiile cuprinse în tabelele bazei de date pot fi supuse unor filtrări sau

sortări în funcţie de diferite criterii cu ajutorul interogărilor (queries). În cazul aplicaţiei

noastre s-au făcut interogări:

pentru selecţia datelor din mai multe tabele pentru calculul venitului brut şi net, a

impozitului pe venitul din salarii etc.

pentru selecţia salariaţilor în funcţie de marcă, nume, şi prezentarea rezultatului final

al drepturilor şi obligaţiilor salariale, etc.

Interogările se pot completa la momentul potrivit de către programator în funcţie de

cerinţele desfăşurării calculului salarial.

5.4. Redactarea rapoartelor finale

Esenţa unei baze de date este furnizarea de informaţii pe baza prelucrării datelor.

Vizualizarea acestor informaţii se poate face pe ecran sau pe hârtie prin intermediul foilor de

date, a formularelor şi a rapoartelor sau situaţiilor finale. Raportul final este o grupare a

datelor într-un anumit format şi după o anumită structurare a paginii în funcţie de necesităţile

utilizatorului. În cadrul rapoartelor se pot include şi informaţii suplimentare privind

necesităţile utilizatorului.

În majoritatea cazurilor, un raport foloseşte datele din mai multe tabele, dar comanda

de redactare a raportului se poate aplica numai asupra unui singur tabel sau interogări. Pentru

a se rezolva această situaţie, se face în prealabil o cerere care va reuni datele din tabele şi

interogările care ne interesează. Elementele de legătură dintre sursa de date şi situaţiile finale

sunt controalele, zonele de text, cadrele şi etichetele.

Aplicaţia a fost proiectată să aibă ca finalitate o serie de rapoarte cum ar fi:

o listă cu candidaţii prezenţa angajaţilor şi a orelor lucrate;

statele de salarii.

Pagina 39 din 46

Page 38: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Aceste rapoarte pot fi completate în funcţie de necesităţi cu alte rapoarte pe care

programatorul le poate realiza la cererea societăţii comerciale.

Exemple de rapoarte sunt prezentate în paginile următoare.

Pagina 40 din 46

Page 39: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Pagina 41 din 46

Page 40: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Capitolul 6.

INSTRUCŢIUNI FOLOSITE PENTRU PROGRAMAREA BAZEI DE DATE

6.1. Limbajul de interogare SQL.

Denumirea de SQL este un acronim de la „Structurated Query Language” (limbaj de

interogare structurat). Este unul dintre cele mai puternice limbaje structurate pentru

interogarea bazelor de date relaţionale şi are o răspândire foarte mare devenind chiar un

standard pentru mai multe SGBD-uri.

Limbajul SQL permite o comunicare uşoară şi rapidă a utilizatorului cu baza de date,

precum şi operaţii complexe privind actualizarea şi administrarea bazei de date. Acest limbaj

nu este un limbaj de programare propriu-zis, ci este un limbaj specializat pentru aplicaţii în

ceea ce priveşte bazele de date.

Există trei tipuri de utilizare a limbajului SQL:

Pagina 42 din 46

Page 41: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

apelarea directă care constă în introducerea instrucţiunilor SQL direct de la prompter;

modulară prin folosirea anumitor proceduri apelate direct de diferitele module ale

aplicaţiei de baze de date;

încapsulat (Embedded SQL) când instrucţiunile SQL sunt introduse (încapsulate) în

codul de program al bazei de date.

Instrucţiunile SQL permit definirea, manipularea, selectarea datelor, procesarea

tranzacţiilor, controlul cursorului şi a accesului la baza de date. În funcţie de rolul pe care îl

îndeplinesc, instrucţiunile SQL se grupează astfel:

instrucţiuni de definire a tipurilor de date în vederea descrierii structurii bazei de date

şi a modului în care vor fi acceptate datele în baza de date;

instrucţiuni de manipulare a datelor în vederea adăugării, modificării şi ştergerii

diferitelor înregistrări sau părţi din acestea;

instrucţiuni de selecţie a datelor pentru realizarea sortărilor şi filtrărilor în vederea

consultării bazei de date;

instrucţiuni de procesare a tranzacţiilor care reprezintă operaţii multiple şi complexe

de manipulare a datelor;

instrucţiuni de control al cursorului necesar diferitelor aplicaţii sub formă compilată;

instrucţiuni privind controlul şi priorităţile de acces la date.

Limbajul SQL implementat în SGBD Microsoft Access foloseşte doar primele trei

tipuri de instrucţiuni. Pentru a se scrie corect aceste instrucţiuni SQL trebuie respectate strict

următoarele reguli:

orice instrucţiune SELECT se termină cu ”;”

în cazul interogărilor din mai multe tabele, pentru a se separa numele tabelului de

numele câmpului se va utiliza caracterul ”.”

parantezele drepte încadrează numele de câmpuri doar când acestea conţin caractere

neacceptate de SQL

parametrii dintr-o listă se delimitează cu ajutorul caracterului ”,”

valorile de tip şir se încadrează între ghilimele ” ” sau apostrofuri ‘ ‘

inegalităţile se specifică cu simbolurile < >

simbolurile ? şi * sunt folosite pentru a desemna unul sau mai multe caractere de

înlocuire (wildcard)

evidenţierea clară a valorilor de tip Data/Time se foloseşte simbolul #.

6.2. Instrucţiuni SQL pentru definirea datelor

Pagina 43 din 46

Page 42: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Instrucţiunile de definire a datelor permit crearea de baze de date, tabele, câmpuri şi

modificări ale acestora. Principalele instrucţiuni de definire a datelor folosite în SQL sunt:

crearea unei baze de date:

CREATE DATABASE nume_bază_de_date

Această instrucţiune se foloseşte într-o primă etapă la crearea bazei de date. Microsoft

nu acceptă această comandă deoarece crearea şi definirea bazei de date se face automat la

lansarea aplicaţiei.

crearea unui tabel:

CREATE TABLE nume_tabel

Plecând de la structura unei înregistrări şi de la tipurile de date asociate câmpurilor

utilizatorul poate să creeze un tabel. Numele tabelului trebuie să fie obligatoriu unic în cadrul

bazei de date, neputând fi un cuvânt rezervat de instrucţiunile SQL sau VBA sau numele unui

alt tabel.

Adăugarea unui câmp în cadrul unui tabel existent:

ALTER TABLE nume_tabel

Ştergerea completă a unui tabel dintr-o bază de date

DROP TABLE nume_tabel.

6.3. Instrucţiuni SQL pentru selecţia datelor

Prelucrarea datelor dintr-o bază de date se face prin filtrare sau cu ajutorul

instrucţiunilor de selecţie. Indiferent dacă interogările sunt simple sau complexe, cuvântul

cheie care defineşte această activitate este SELECT.

Cererile de interogare sunt:

simple

complexe:

de asociere de tip JOIN

de combinare de tip UNION

de tip PARAMETERS

6.4. Instrucţiuni SQL pentru manipularea datelor

Pagina 44 din 46

Page 43: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Instrucţiunile de manipulare a datelor trebuie folosite cu mare prudenţă deoarece pot

provoca modificări ireversibile asupra datelor din baza de date. Cele mai importante

instrucţiuni de acest tip sunt:

INTO care se materializează printr-o interogare care are drept acţiune crearea unei

tabele noi, plecând de la structura şi conţinutul unei tabele existente.

INSERT se foloseşte pentru adăugarea de înregistrări dintr-o tabelă în alta.

DELETE se materializează printr-o acţiune de ştergere parţială sau totală a

înregistrărilor din tabele.

UPDATE are scopul de a insera înregistrări noi, cât şi de a modifica valorile

câmpurilor din înregistrările existente.

6.5. Exemple de instrucţiuni SQL folosite în aplicaţie.

Modul în care funcţionează query-urile ale căror sintaxe sunt prezentate mai jos au

fost prezentate în capitolul 5.

Query-ul Calcul_venit_ore_efectiv_lucrate_plus_CO:

SELECT Angajare.Marca, Foaie_colectiva_prezenta.Luna,

Foaie_colectiva_prezenta.Anul, Round([Ore_lucrate]*[Salariu]/[Nr_ore_efectiv_de_lucrat]+

[Ore_lucrate]*[Salariu]/[Nr_ore_efectiv_de_lucrat]*[Coeficient]/100) AS Venit_ore_lucrate,

Round([Salariu]*[Zile_concediu_odihna]/[Nr_zile_lucratoare]) AS Venit_CO INTO

Calcul_venit_ore_lucrate_si_sau_CO

FROM Sporuri INNER JOIN ((Angajare INNER JOIN (Foaie_colectiva_prezenta

INNER JOIN Pontaj ON Foaie_colectiva_prezenta.ID_FCP = Pontaj.ID_FCP) ON

Angajare.Marca = Pontaj.Marca) INNER JOIN Sporuri_salariat ON Angajare.Marca =

Sporuri_salariat.Marca) ON Sporuri.ID_spor = Sporuri_salariat.ID_spor;

Query-ul Lansare_calcul_CM_salariati:

SELECT Angajare.Marca, Avg(Angajare.Salariu) AS Media_venituri,

75/100*[Media_venituri] AS Calcul_indemnizatie_CM INTO Lansare_calcul_CM

FROM Angajare INNER JOIN (Foaie_colectiva_prezenta INNER JOIN Pontaj ON

Foaie_colectiva_prezenta.ID_FCP = Pontaj.ID_FCP) ON Angajare.Marca = Pontaj.Marca

WHERE (((Foaie_colectiva_prezenta.Luna)=(Month(Date())-1) Or

(Foaie_colectiva_prezenta.Luna)=(Month(Date())-2)) Or

(Foaie_colectiva_prezenta.Luna)=(Month(Date())-3)) Or

(Foaie_colectiva_prezenta.Luna)=(Month(Date())-4)) Or

Pagina 45 din 46

Page 44: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

(Foaie_colectiva_prezenta.Luna)=(Month(Date())-5)) Or

(Foaie_colectiva_prezenta.Luna)=(Month(Date())-6)))

GROUP BY Angajare.Marca;

Query-ul Indemnizatii_finale_CM_salariati:

SELECT Angajare.Marca, Foaie_colectiva_prezenta.Luna,

Pontaj.Zile_concediu_medical,

IIf([Zile_concediu_medical]<>0,Round([Calcul_indemnizatie_CM]*[Zile_concediu_medical

]/[Nr_zile_lucratoare]),0) AS Indemnizatia_finala_CM,

IIf([Zile_concediu_medical]<>0,9.5*[Indemnizatia_finala_CM]/100,0) AS CAS_CM INTO

Indemnizatii_finale_CM

FROM (Angajare INNER JOIN (Foaie_colectiva_prezenta INNER JOIN Pontaj ON

Foaie_colectiva_prezenta.ID_FCP = Pontaj.ID_FCP) ON Angajare.Marca = Pontaj.Marca)

INNER JOIN Lansare_calcul_CM ON Angajare.Marca = Lansare_calcul_CM.Marca;

Query-ul Venit_brut_angajati:

SELECT Calcul_venit_ore_lucrate_si_sau_CO.Marca,

Calcul_venit_ore_lucrate_si_sau_CO.Luna, [Venit_ore_lucrate]+[Venit_CO]+

[Indemnizatia_finala_CM] AS Venit_brut INTO Venit_brut

FROM Calcul_venit_ore_lucrate_si_sau_CO INNER JOIN Indemnizatii_finale_CM

ON Calcul_venit_ore_lucrate_si_sau_CO.Marca = Indemnizatii_finale_CM.Marca

WHERE (((Calcul_venit_ore_lucrate_si_sau_CO.Marca)=[Indemnizatii_finale_CM].

[Marca]) AND ((Calcul_venit_ore_lucrate_si_sau_CO.Luna)=[Indemnizatii_finale_CM].

[Luna]));

Query-ul Calcul_venit_net:

SELECT Contributii_angajati.Marca, Contributii_angajati.Luna,

Contributii_angajati.Venit_brut, [Venit_brut]-[CASS]-[CAS]-[Somaj] AS Venit_net INTO

Venit_net

FROM Contributii_angajati;

Query-ul Calcul_deduceri:

SELECT Angajare.Marca, Venit_net.Luna, Angajare.Nr_persoane_intretinere,

IIf([Venit_brut]<=1000,250+[Nr_persoane_intretinere]*100,IIf([Venit_brut]<=3000,(250+

[Nr_persoane_intretinere]*100)*(1-([Venit_brut]-1000)/2000),0)) AS Deducere INTO

Deduceri_personal

FROM Angajare INNER JOIN Venit_net ON Angajare.Marca = Venit_net.Marca;

Pagina 46 din 46

Page 45: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Query-ul Calcul_impozit_salarii:

SELECT Venit_net.Marca, Venit_net.Luna, Round(([Venit_net]-

[Deducere])*16/100) AS Impozit_salar INTO Impozit_salarii

FROM Venit_net INNER JOIN Deduceri_personal ON Venit_net.Marca =

Deduceri_personal.Marca

WHERE (((Deduceri_personal.Marca)=[Venit_net].[Marca]) AND

((Deduceri_personal.Luna)=[Venit_net].[Luna]));

Query-ul Calcul_salar_net:

SELECT Impozit_salarii.Marca, Impozit_salarii.Luna, [Venit_net]-[Impozit_salar]

AS Salariu_net INTO Salarii_nete_angajati

FROM Impozit_salarii INNER JOIN Venit_net ON Impozit_salarii.Marca =

Venit_net.Marca

WHERE (((Impozit_salarii.Marca)=[Venit_net].[Marca]) AND

((Impozit_salarii.Luna)=[Venit_net].[Luna]));

Capitolul 7.

CONCLUZII

Această încercare modestă de a prezenta un domeniu atât de vast nu poate face decât

să stârnească interesul asupra acestei ramuri a unei ştiinţe noi şi în continuă înnoire. În

informatică aplicaţiile au o „viaţă” scurtă deoarece apar mereu versiuni îmbunătăţite,

upgrade-uri, aplicaţii mult mai performante ce încearcă să vină în sprijinul utilizatorului.

Totuşi, chiar dacă se schimbă modul de punere în aplicare al unor idei, principiile de

bază persistă indiferent de complexitatea problemei, de aceea tot ce se învaţă într-un limbaj

de programare poate fi extrem de util în alte limbaje, nu prin memorarea unei sintaxe sau a

unui fragment de cod ci prin modul de abordare a problemei şi soluţiile ce se pot utiliza la

rezolvarea problemei. Aceste soluţii depind foarte puţin de mediul de programare şi ţin de

ingeniozitatea celui ce caută soluţia.

Aplicaţie prezentată în această lucrare este departe de a fi perfectă, dar este

perfectibilă şi conţine, cred, o serie de soluţii ingenioase descoperite nu doar prin studiul

aprofundat al suportului teoretic dar şi prin metode mai puţin ortodoxe de rezolvare găsite pe

măsură ce s-a lucrat.

Pagina 47 din 46

Page 46: Baza de date pentru informatizarea si contabilizarea salariilor si a altor drepturi de personal-microsoft access

Crearea unei astfel de aplicaţii ar putea fi un foarte bun motiv de a începe un studiu

foarte serios al sistemelor de gestiune a bazelor de date în special pentru cei ce încearcă să

facă din aceasta o viitoare meserie.

Pagina 48 din 46