Sunteți pe pagina 1din 44

UNIVERSITATEA PETROL-GAZE DIN PLOIETI FACULTATEA DE TIINE ECONOMICE SPECIALIZAREA CONTABILITATE I INFORMATIC DE GESTIUNE

LUCRARE DE LICEN

Coordonator tiinific: Conf. Univ. Dr. Dorel DUMNESCU

Absolvent, TNASE Mariana

Ploieti 2011

UNIVERSITATEA PETROL-GAZE DIN PLOIETI FACULTATEA DE TIINE ECONOMICE SPECIALIZAREA CONTABILITATE I INFORMATIC DE GESTIUNE

LUCRARE DE LICEN
APLICAIE PRIVIND EVIDENA UNEI BIBLIOTECI

Coordonator tiinific: Conf. Univ. Dr. Dorel DUMNESCU

Absolvent, TNASE Mariana

Ploieti 2011

UNIVERSITATEA PETROL GAZE DIN PLOIETI FACULTATEA DE TIINE ECONOMICE SPECIALIZAREA CONTABILITATE I INFORMATIC DE GESTIUNE

Se aprob, ef de catedr

Declar pe proprie rspundere c am elaborat personal proiectul de diplom i nu am folosit alte materiale documentare n afar de cele prezentate la capitolul Bibliografie. Semntura,

Tema lucrrii de diplom dat studentei: Tnase Mariana. 1. Tema lucrrii: Aplicaie privind evidena unei biblioteci. 2. Termenul de predare a proiectului este: martie 2011 3. Elemente iniiale ale lucrrii: Bibliografia. 4. Coninutul lucrrii: Capitolul 1 Baze de date i sistemul de gestine al bazelor de date , Capitolul 2 Limbajul SQL, Capitolul 3 Proiectarea aplicaiei, Concluzii, Bibliografie. 5. Enumerarea materialului grafic (dac este cazul): 40 figuri. 6. Consultaii pentru lucrare (cu indicarea prilor de lucrare pentru care solicit consultaia): lunar. 7. Data eliberrii temei: 1.06.2009.

COORDONATOR TIINIFIC: Conf. Univ. Dr. Dorel DUMNESCU Tema a fost primit pentru ndeplinire, Data: noiembrie 2009 Semntura studentului .

CUPRINS
INTRODUCERE ........................................................................................................................ 5 CAPITOLUL I. BAZE DE DATE I SISTEME DE GESTIUNE A BAZELOR DE DATE ....... 6 1.1 1.2 1.3 1.4 1.5 1.6 Colecii de date............................................................................................................. 6 Sisteme de fiiere ......................................................................................................... 6 Arhitectura sistemelor de gestiune a bazelor de date ..................................................... 9 Caracteristicile i obiectivele SGBD-urilor ................................................................. 11 Obiectivele principale ale unui sistem de gestiune a bazelor de date ........................... 11 Sisteme de gestiune a bazelor de date relaionale SGBDR ....................................... 13 Modelul relaional al datelor ................................................................................ 13 Structura relaional a datelor .............................................................................. 13 Normalizarea datelor ........................................................................................... 14

1.6.1 1.6.2 1.6.3 1.7

Cerinele minimale de definire a SGBDR ................................................................... 14

CAPITOLUL II. LIMBAJUL SQL ........................................................................................... 16 2.1. Etapele crearii unei interogri ........................................................................................ 17 2.1 2.2 2.3 2.4 2.5 Comenzi pentru definirea datelor ................................................................................ 17 Instruciunile de selecie a datelor ............................................................................... 18 Instruciunile pentru manipularea datelor .................................................................... 21 Cereri de interogare imbricate..................................................................................... 22 Tabele. Chei. Relaii ................................................................................................... 23 Crearea tabelelor ........................................................................................................ 26 Relaii ntre tabele ...................................................................................................... 28 Prezentarea meniului aplicaiei ................................................................................... 28 Meniul Cititori............................................................................................................ 29 Meniul Cri ............................................................................................................... 33 Meniul mprumut ....................................................................................................... 37 Meniul Rapoarte ......................................................................................................... 38

CAPITOLUL III. PROIECTAREA APLICAIEI .................................................................... 26 3.1 3.2 3.3 3.4 3.5 3.6 3.7

CONCLUZII ............................................................................................................................ 43 BIBLIOGRAFIE ...................................................................................................................... 44

INTRODUCERE

n lucrarea de fa sunt descrise cele mai des ntalnite tehnici de definire i utilizare a bazelor de date nsoite de o exemplificare prin aplicaia Office Access 2007. Aplicaia de fa este un exemplu de ceea ce se poate realiza folosind teoria bazelor de date. Lucrarea este structurat n trei capitole, fiecare avand mai multe subcapitole, urmate de o serie de concluzii i o list cuprinztoare de referine bibliografice. n primul capitol Baze de date i sistemul de gestiune a bazelor de date sunt prezentate caracteristicele generale a bazelor de date, modelul relational, concepte folosite i pentru dezvoltarea aplicaie Access 2007. Astfel sunt prezentate pe scurt urmatoarele concepte: Baze de date; Modul de organizare a datelor: modelul de date, descrie modul de organizare a datelor n baza de date i o scurt prezentare a modelelor ierarhic, reea, relaional; Modelul relaional, modalitate reprezint datele sub forma unor structuri bidimensionale, asemantoare tabelelor. Sunt prezentate atuurile modelului relaional care au determinat folosirea lui n cadrul aplicaiei Access 2007: bazele de date relaionale sunt foarte flexibile i usor de folosit; Concepte generale ale modelului relational; Normalizarea bazei de date (forme normale); n cel de-al doilea capitol Limbajul SQL mi propun s vorbesc despre aspectele generale ale limbajului precum etapele cerii unei interogri, sintaxa definirii datelor i instruciunilor de selecie i manipulare a datelor, realizarea tabelor i a relaiilor dintre tabele. Al treilea capitol Proiectara aplicaiei mi propun s realizez un manual de utilizare al aplicaiei, n care vor fi descrise aciunile utilizatorului n cadrul folosirii aplicaiei. Acest manual va explica utilizarea pas cu pas a aplicaiei, prezentndu-se din punctul de vedere al utilizatorului.
n final sunt prezentate cteva concluzii, precum i ideile eseniale ale lucrrii practice i teoretice.

CAPITOLUL I. BAZE DE DATE I SISTEME DE GESTIUNE A BAZELOR DE DATE


1.1 Colecii de date
Dictionarul explicat iv al limbii romne precizeaz c noiunea aferent termenului de dat poate avea att semnificaie temporal, ct i semnificaie referitoare la fiecare din numerele, marimile, relaiile etc. care servesc pentru rezolvarea unei probleme sau care sunt obinute n urma unei cercetri i urmeaz s fie supuse unei prelucrri. Un ansamblu de date nrudite pot configura o informaie complex. Datele de acelai tip sau aceeai structur informaional pot fi clasificate n fie i/sau tabele i pot fi prelucrate ulterior. De-a lungul timpurilor, evidenele datelor au gsit felurite suporturi de stocare, de la memorarea mintal, rabojul de lemn, suporturi de piele sau papirus, registre de hrtie, suportul magnetic al dischetei etc. Data poate fi asimilat n bun masur cu cantitatea de informaii. Ea poate fi concomitent obiect de prelucrare, surs de fundamentare a modelelor i proceselor, mijloc de tezaurizare informaional. Pe de-o parte, datele pot fi generatoare de informaii, pe de alt parte, au proprieti care permit procesarea, rafinarea acestora ca surs de noi informaii. Indiferent de domeniul vieii sociale abordate, datele concur la luarea deciziilor.

1.2 Sisteme de fiiere


Anii 60 i lupta pentru supremaia spaial a impus introducerea unor standarde de evidene a datelor a cror destinaie iniial au fost misiunile Apolo. Volumul enorm de date trebuia actualizat aproape continuu i astfel s-au conturat concepte aferente sistemelor de gestiune a bazelor de date, prescurtat SGBD. Sistemele bazate pe fiiere presupun ca fiecrui fiier i se aloc un nume specific, n care se introduc date de acelai tip, cum ar fi de exemplu: situaia facturilor furnizor (un singur furnizor sau diferii), situa ia stocurilor din magaziile specializate sau din magazia central, situaia clientilor etc. Fiecare fiier este stocat i posiate i fi modificat de unul sau mai mul i utilizatori (mai mult sau mai pu in autorizai) putnd aprea dublri de fiiere rezultate dup fiecare nou prelucrare, dublri de date etc. Dac, ns, reeaua central la care sunt cuplate terminalele a fost dezvoltat pe parcurs exista i cazul n care unele aplicaii software s nu fie

compatibile ntre ele i, deja, problema se complica n sensul c prin incompatibilitate prelucrarea unor informaii poate fi complet suprimat. Far ndoial c sistemele bazate pe fiiere prezint avantaje de lucru atunci cnd sunt monitorizate de un numr limitat de utilizatori: nu este necesar prelucrarea a dou sau mai multe fiiere de date aferente unor activiti diferite, dar nrudite n unele limite (ex: intrri de marf/ieiri de marf); nu este necesar conlucrarea n reea sau lucrul n simultan pe acelai fiier n locaii diferite ale reelei etc. Definiia general a bazelor de date este dat de Thomas Connolly: Bazele de date sunt o colecia partajat de date, ntre care exist relaii logice (i o descriere a acestor date), proiectat pentru a satisface necesitile informaionale ale unei organizaii sau ale unui grup. Exist ns o diferen ntre date i informaii, bine sesizat de Robert Dollinger astfel: Datele sunt fapte culese din lumea real pe baz de observaii i msurtori. Informaia este rezultatul interpretrii datelor de catre un anumit subiect i confer acestuia capacitatea de a lua decizii. n functie de gradul de detaliere, datele pot fi: date elementare; date compuse.

Astfel, datele elementare sunt entiti indivizibile, att la nivel informaional, ct i la nivel de prelucrare. Datele compuse sunt mulimi de date elementare, care ajut la caracterizarea entitilor (ansamblelor) informaionale i care pot fi descompuse n date elementare. Prelucrarea datelor se poate realiza att la nivelul datelor elementare, ct i la nivelul datelor compuse. Coleciile de date sunt mulimi de date ce privesc, deci, un domeniu, un proces, o activitate sau un obiect. Sub aspect informatizat ele sunt organizate i dispuse sistematizat pe un suport de memorie extern. Sub aspectul evoluiei categoriilor de receptare i memorare informatizat a datelor, Robert Dollinger identifica patru etape distincte de abordare a acestora. Prima etapa este aferent trecerii de la sistemele de prelucrare manual la computer. Principalul tip de organizare a datelor este fiierul. Sistemul bazat pe fiiere reprezint o colecie de programe-aplicaie, care efectueaz servicii pentru utilizatorii finali, cum ar fi producerea de rapoarte. Fiecare program definete i gestioneaz propriile date. Un fiier este un set de nregistrari care conin date ntre care exist relaii logice. Dac informaia este stocat n diverse locaii spre prelucrare, datele pot fi dublate, triplate, iar multiplicarea datelor va fi existent n fiiere, care, cel mai probabil nu vor fi actualizate periodic. Accesul la o nregistrare dintr-un 7

fiier se face pe principiul accesului secvenial sau prin acces direct, pe baza unei chei de identificare i de localizare rapid a nregistrarii, pe baza indexrii fiierelor. Acest tip de organizare a datelor este caracteristic aplicaiilor realizate cu limbaje de programare (Fortran, Pascal, Basic etc.). Dezavantajele rezultate din organizarea datelor n fiiere sunt urmatoarele: Redundana ridicat (stocarea acelorai date n mai multe fiiere); Dificulti de acces la date, ntruct aceleai date sunt exploatate de mai muli utilizatori simultan i n paralel, ceea ce necesit ulterior operaii suplimentare de sortare, fuziune, ventilare, conciliere etc.; Izolarea datelor, ntruct nu pot fi scrise aplicaii executabile care s acceseze datele ntr-o maniera global; Actualizarea datelor prin adugare, modificare, tergere, care creeaz conflicte cnd mai multi utilizatori doresc s modifice simultan aceleai date; Dependena programelor fa de date; Greutatea de a obtine raspunsuri rapide (on-line) la probleme neprevzute; Fiecare dat este descris independent n toate fiierele n care apare. Dac, ns, ntr-un fiier se modific formatul i valoarea unei date, modificarea nu se transmite automat ulterior n toate fiierele, astfel c pentru aceeai data pot s apar valori diferite n fiiere diferite, ceea ce este cunoscut sub denumirea de inconsisten a datelor. Dac fiierul este realizat n limbaje diferite, exist riscul incompatibilitatii datelor, respectiv nu este posibil meninerea integritii datelor. Deci, toate limitarile tratrii bazate pe fiiere se bazeaz pe urmatorii factori: a. definiia datelor este ncorporat n programele aplicaie, n loc s fie stocat separat i independent; b. nu exist un control al accesului i manipularii datelor, dincolo de cel impus de ctre programele aplicaie. A doua etap se caracterizeaz prin separarea dintre structura logic de date i structura fizic. Dac n prima etap datele memorate pe benzi magnetice, iar structura datelor servea, de regul, o singur aplicaie, n aceast nou etap apar noi forme de stocare a datelor (discul magnetic, banda magnetic etc.), ceea ce a creat probleme de compatibilizare, att hardware, ct i software, cu alte cuvinte exist riscul alterarii datelor i structurilor de date att fizic, ct i logic.

Etapa a treia este definit de apariia fiierelor integrate, prin care datele sunt legate logic ntre ele, chiar dac datele fizice sunt rezidente pe diverse sisteme. Aceast etap constituie un prim pas spre compatibilizarea accesului la date att logic, ct i fizic, ceea ce a constituit nucleul de baz n definirea datelor i a legaturilor dintre ele, ca sistem paralel de aplicatiile sub care ruleaz acestea. Etapa a patra este etapa bazelor de date propriu-zise i a dezvoltarii sistemelor de gestiune a bazelor de date. Thomas Connolly defineste baza de date ca fiind colecie partajat de date, ntre care exist relaii logice (i o descriere a acestor date), proiectat pentru a satisface necesitile informaionale ale unei organizaii. Bazele de date constituie o coleie de date structurat logic care servete ca surs informaional unei comuniti ce poate fi nchis sau deschis.

1.3 Arhitectura sistemelor de gestiune a bazelor de date


Principala operaie dintr-o aplicaie de baze de date este cea de regsire a datelor, deci de a raspunde la interogri. ntr-o baz de date, de asemenea sunt frecvente operaiile urmatoare: memorare; tergere; actualizare.

Evoluia conceptual a deceniului ultim a dus spre generalizare ctre arhitectura clientserver, arhitectur care nglobeaz baza de date, sistemul sau sistemele de gestiune a bazelor de date i sistemele de aplicaii. Independena datelor reprezint un concept fundamental n filosofia bazelor de date i n administrarea lor. Ea este legat de modul de memorare i de organizare a datelor i n ce masur este transparent i inteligibil pentru utilizator. Dou aspecte sunt principal importante n caracterizarea independenei datelor, i anume: 1. Independena fizic a datelor, care presupune posibilitatea modificrii schemei fizice a datelor far ca aceasta s implice modificarea schemei conceptuale, a schemei logice i a aplicaiilor executabile. Astfel, o modificare a structurii fizice nu va afecta aplicaia i reciproc, o modificare a aplicaiei va las nemodificat structura fizic a datelor; 2. Independena logic a datelor, presupune c pot fi realizate modificri conceptuale ale datelor, far ca prin aceasta s fie modificat schema logic sau a programelor de aplicaie. 9

Cerinele minimale impuse unei baze de date, sunt: furnizarea n timp util a informaiilor solicitate; asigurarea unor costuri minime n prelucrarea i ntreinerea informaiei; capacitatea de a satisface, cu aceleai date, necesiti informaionale ale unui numar mare de utilizatori; flexibilitate, n sensul de adaptare la interogari noi, neprevazute iniial; minimizarea redundanei datelor; posibilitatea exploatrii datelor de mai muli utilizatori; asigurarea securitii datelor prin msuri de protecie pe diverse nivele a accesului neautorizat, denumit i confidenialitatea accesului; capacitatea recuperrii datelor ca urmare a unor manipulri eronate sau deteriorri accidentale (integritatea datelor); posibilitatea utilizrii eforturilor anterioare i anticiparea nevoilor viitoare (compatibilitate i expandabilitate). Avantajele datelor centralizate n baze de date sunt n principal urmatoarele: A. Reducerea redundanei datelor; B. Evitarea inconsistenei datelor prin actualizarea centralizat a ntregii baze de date; C. Posibilitatea partajrii datelor; D. ncurajarea introducerii standardelor de compatibilizare a bazelor de date cu aplicaii executabile; E. Posibilitatea aplicrii restriciilor de securitate pe mai multe nivele; F. Meninerea integritii datelor. Arhitectura bazelor de date este, principial, alcatuit din urmatoarele componente: baza de date propriu-zis; sistemul de gestiune al bazei de date; un dictionar al bazei de date, care conine informaii despre: date, structura datelor, statistici; documentaie; componente hardware (comune sau specializate); reglementri administrative destinate bunei funcionri a sistemului; factorul uman autorizat n diverse limite (utilizatori, administrator, programatori, operatori).

10

Sistemele de gestionare a bazelor de date (SGBD) reprezint n viziunea lui Thomas Connolly un sistem de programe care permit utilizatorului definirea, creerea i ntreinerea bazei de date i accesul controlat la aceasta. Dupa alti autori, un sistem de gestiune a bazelor de date reprezint un produs software capabil de a asigura interaciunea cu o baz de date, care s permit definirea, consultarea i actualizarea datelor din baza de date.

1.4 Caracteristicile i obiectivele SGBD-urilor


Caracteristicile principale ale Sistemelor de gestiune a datelor sunt urmatoarele componente: limbajul de definire a datelor pe baza cruia pot fi specificate tipurile de date i structurile dintre acestea; limbajul de manipulare a datelor cu ajutorul cruia utilizatorii autorizai pot s insereze, sa actualizeze, sa tearg i s extrag date din baza de date. Limbajul de manipulare a datelor poate realiza toate aciunile de mai sus pe baza interogarilor, fiind deseori denumit i limbaj de interogare. Limbajele de manipulare a datelor pot fi procedurale sau neprocedurale. Limbajele procedurale trateaz bazele de date nregistrare-cu-nregistrare, n schimb limbajele neprocedurale opereaz asupra unor seturi de nregistrari; limbaj pentru controlul i securitatea datelor pe baza cruia se poate asigura meninerea confidenialitii i integritii datelor fa de utilizatori neautorizati. De asemenea, acest tip de limbaj poate, pn n anumite limite, s salveze informaii n cazul unor defeciuni etc.

1.5 Obiectivele principale ale unui sistem de gestiune a bazelor de date


Un prim obiectiv este acela de independen fizic legat de suporturile de memorare a datelor i interacia cu sistemul/sistemele de gestiune a bazelor de date, far ca datele sa fie alterate. Independena logic, permite c un utilizator sau un grup de utilizatori autorizai s-si construiasc noi entiti i relaii conversaionale. Manipularea datelor de ctre neinformaticieni, face ca SGBD-ul s pun la dispoziie un limbaj neprocedural i o interfa vizual apropiat de limbajul natural.

11

Administrarea centralizat a datelor a permite o organizare coerent i eficace a informaiei, organizarea nejudicioas a acestora poate conduce la un grad mai mic sau mai mare de redundan a unor date. Coerena datelor este un concept prin care informaia trebuie s satisfac simultan constrngeri statice, dinamice, locale sau generale. Partajabilitatea datelor face posibil utilizarea datelor din baza de date de ctre aplicaii n timp i simultan, fara a afecta aplicatiile altor utilizatori. SGBD-ul trebuie s asigure securitatea fizic i logic a informaiei i s permit doar utilizatorilor autorizai s efectueze operaii asupra bazei de date. De regula, un SGBD trebuie s includ minimal cinci clase de module: programe de gestiune a bazei de date; module pentru tratarea limbajului de definire a datelor; module pentru tratarea limbajului de manipulare a datelor; module utilitare; module de control.

Participanii la alctuirea, configurarea i utilizarea bazelor de date sunt: a) Administratorii de date sunt responsabili de gestionarea resurselor de date, de planificarea, dezvoltarea i ntreinerea standardelor, a politicilor i a procedurilor bazei de date, precum i de proiectarea logic a bazei de date. b) Administratorii de baze de date sunt responsabili cu realizarea fizic a bazei de date, respectiv proiectarea i implementarea acesteia, securitatea i controlul integritii, ntreinere i atingere de performane optime pentru aplicaii i utilizatori. c) Proiectanii de baze de date care pot fi la rndul lor de alte dou categorii: c1) proiectani de baze de date logice acesta trebuie s cunoasc foarte bine necesitile bazei de date, sa fie capabil s identifice datele sub aspectul constrngerilor i relaiilor dintre acestea. Acesta trebuie s aibe temeinice cunotine asupra sursei datelor i tipurilor principale de utilizare ale acestora, inclusiv a fluxurilor. Practic, proiectantul de baze de date logice va avea dou obiective majore: proiectarea conceptual a bazei de date pentru a fi ct mai putin sensibil la sistemul de gestiune a bazei de date avut la dispozitie, programele-aplicaie, limbajele de programare etc.; orientarea spre un anume model de date (relaional, reea, ierarhic, orientat spre obiecte).

12

c2) proiectanii de baze de date fizice au rolul de a prelua modelul logic i de al transpune fizic prin: configurarea setului de tabele i constrngeri sub aspectul integritii datelor; tipurile de suporturi de stocare i metodele de acces la date; msurile aferente asigurrii securitii datelor.

d) programatorii de aplicaii preiau de la analitii de sistem documentaia necesar i proiecteaz implementarea programelor de aplicaii tinnd seam de limitele sistemului de operare i al resurselor acestuia, astfel nct, utilizatorii finali sa aib acces rapid la informaie. De regul programele de aplicaii sunt redactate ntr-un limbaj de programare. e) Utilizatorii finali pot fi: utilizatori conversaionali (nespecialiti), care interactioneaz cu baza de date ntrun mod apropiat cu conversaia curent. utilizatori iniiai (specialiti), care cunosc structura bazei de date, au cunotine de programare, cunosc problemele sistemului de operare, astfel nct resursele consumate sa fie minime.

1.6 Sisteme de gestiune a bazelor de date relaionale SGBDR


1.6.1 Modelul relaional al datelor
SGBDR se definete ca fiind un sistem de gestiune care utilizeaz organizarea datelor conform modelului relaional. Conceptul de baz al modelului relaional este acela de relaie/tabel (limbajul SQL specializat n comenzi de manipulare la nivel de tabel).

1.6.2 Structura relaional a datelor


Structura relaional a datelor cuprinde urmtoarele component: Domeniul ansamblul de valori caracterizat printr-un nume (domeniu de valori). El poate fi precizat explicit prin enumerarea tuturor valorilor care aparin domeniului sau implicit prin precizarea proprietilor pe care le au valorile din domeniu. Pentru un ansamblu de valori produsul cartezian al acestora reprezint ansamblul tuplurilor nDD,...,1()nvv,...,1unde v este o valoare din D ,
1 1

v este o valoare din D , etc., unde tuplura corespunde unei linii din tabel.
2 2

Relaia un subansamblu al produsului cartezian al mai multor domenii, caracterizat prin nume i care conine tupluri cu semnificaie (tabel). ntr-o relaie, tuplurile trebuie s fie distincte nu se admit duplicate. O reprezentare a relaiei este tabelul bidimensional (tabela de date) n care

13

liniile reprezint tuplurile iar coloanele corespund domeniilor. Numrul tuplurilor dintr-o relaie este cardinalul relaiei, numrul valorilor dintr-un tuplu este gradul relaiei. Pentru a diferenia coloanele care conin valori ale aceluiai domeniu, eliminnd dependena de poziie, se asociaz fiecrei coloane un nume distinct atribut. n timp ce tuplurile sunt unice, un domeniu poate apare de mai multe ori n produsul cartezian pe baza cruia este definit relaia.

1.6.3 Normalizarea datelor


Este procesul prin care se elimin redundana datelor n proiectul bazei de date i se construiete un model de baz de date care susine diverse cerine funcionale i structuri alternative ale bazei de date. Sunt aplicate n normalizarea unei baze de date urmtoarele trei reguli. R . Toate atributele trebuie specificate o singur dat. Aceasta este forma inti normal.
1 2

R . Un atribut trebuie s depind n ntregime de identificatorul unic al entitii pe care o descrie. Aceasta este forma a doua normal. Se pun atributele ntr-o tabel n care depind exclusiv de o cheie principal. Nu se utilizeaz tabele n care atributele s nu depind exclusiv de o singur cheie! R . Pentru a fi n forma normal a treia, fiecare tabel trebuie s posede o singur cheie
3

primar, iar datele din tabel trebuie s depind exclusiv de cheia primar a tabelei.

1.7 Cerinele minimale de definire a SGBDR


Din primele versiuni aprute, practic nici un SGBD nu reuea s acopere n ntregime regulile lui Codd. De aceea s-au formulat o serie de criterii minimale pe care trebuie s le satisfac un sistem de gestiune a bazelor de date pentru a putea fi considerat relaional. Pentru ca un SGBD s fie minimal relaional: 1. toate datele din cadrul bazei de date sunt reprezentate prin valori n tabele; 2. ntre tabele nu exist pointeri observabili de ctre utilizatori operaiile cu relaii nu fac apel la pointeri, indecsuri, fiiere inverse etc.; 3. sistemul suport operatori relaionali de proiecie, selecie i jonciune natural, fr limitri impuse. Unitatea de informaie n cadrul acestor operaii trebuie s fie relaia. SGBD este complet relaional dac este minimal relaional i satisface n plus urmtoarele condiii: sistemul suport toate operaiile de baz ale algebrei relaionale; sistemul suport dou dintre restriciile de integritate de baz ale modelului relaional i anume unicitatea cheii unei relaii i restricia referenial; SGBD este pseudorelaional dac satisface condiiile 1 i 3 de mai sus;

14

SGBD este cu interfa relaional dac satisface condiiile 1 i 3 de mai sus i condiia 3 este ndeplinit numai n raport cu operaia de interogare.

15

CAPITOLUL II. LIMBAJUL SQL


Unul dintre cele mai puternice limbaje structurate pentru interogarea bazelor de date relaionale l constituie n prezent SQL (Structured Query Language). Acesta a devenit chiar un standard pentru o gam din ce n ce mai larg de sisteme de gestiune a bazelor de date. Limbajul SQL permite o comunicare complex i rapid a utilizatorului cu bazele de date, n funcie de cerinele i restriciile acestuia. Pe lng manipularea i regsirea datelor, se efectueaz i operaii complexe privind actualizarea i administrarea bazei de date. Exist un anumit grad de standardizare a limbajului SQL, mai multe sisteme de gestiune a bazelor de date recunoscnd principalele instruciuni ale acestuia (de exemplu: Oracle, Access, Sybase etc.). Pe plan mondial, standardul n domeniu este considerat ANSI (American National Standards Institute) SQL care are n vedere att aspectele de definire, interogare, manipulare a datelor, procesare a tranzaciilor, ct i caracteristicile complexe privind integritatea informaiilor, cursoarele derulante sau jonciunile externe. Muli productori de sisteme de gestiune a bazelor de date furnizeaz propriile extensii ale limbajului SQL, asigurndu-i astfel exclusivitatea. Sistemul de gestiune a bazelor de date ACCESS 2007 accept utilizarea limbajului de interogare SQL. Existena tehnicii grafice QBE (Query by Example - interogare prin exemplu) permite proiectarea facil a unor interogri complexe. Informaia definit pe grila QBE va fi automat transformat ntr-o instruciune SQL. Dialectul ACCESS conine unele particulariti n raport de standardul ANSI SQL, fiind conceput mai mult pentru crearea interogrilor de selecie. Pentru a putea scrie corect o instruciune SQL n ACCESS 2007 este necesar respectarea strict a unor reguli de sintax. Cteva dintre acestea:

orice comand se va ncheia cu ; ; ntr-o interogare unde se folosesc cmpuri din mai multe tabele, pentru a separa numele tabelului de numele cmpului, se va utiliza . dup modelul: tabel.cmp ; parantezele drepte ncadreaz numele de cmpuri doar cnd acestea conin spaii sau simboluri neacceptate de SQL ; pentru a delimita parametrii dintr-o list, se utilizeaza virgulele ; valorile de tip ir se marcheaz prin apostrof sau ghilimele ; inegalitile din cadrul clauzelor se vor specifica prin <>; simbolurile ? i * sunt folosite pentru a desemna unul sau mai multe caractere de nlocuire; pentru a evidenia valorile de tip dat/timp se apeleaz la caracterul #; 16

2.1. Etapele crearii unei interogri


n crearea i respectiv executarea unei interogri ACCESS 2007 construit prin utilizarea de instruciuni SQL se parcurg, de fiecare dat, mai multe etape de baz:

din fereastra Database se va selecta butonul Queries (Interogri) ;

Figura 1. Creare interogri

pentru a crea interogarea SQL dorit va fi necesar, fie activarea butonului New, fie alegerea opiunii Create query in Design view; n cazul n care utilizatorul a folosit butonul New, acum va trebui s aleag din fereastra New Query, opiunea Design View foarte important este alegerea n continuare (cu ajutorul butonului Add) a tabelelor (Tables), interogrii (Queries) sau a ambelor categorii de obiecte (Both) care vor reprezenta suportul interogrii SQL. De menionat faptul c se pot utiliza mai multe tabele (interogri) din fereastra Show Table;

pentru a scrie interogarea SQL Access este necesar ca din meniul View utilizatorul s opteze pentru modul de vizualizare SQL View. n fereastra care apare se vor tasta instruciunile SQL specifice, respectnd sintaxa corespunztoare;

interogarea SQL Access creat se poate lansa n execuie n dou moduri: prin utilizarea butonului din bara Query Design sau prin opiunea Run, din meniul Query. Pe ecranul calculatorului va fi afiat n final rezultatul interogrii SQL. Utilizatorul l va

analiza i interpreta n funcie de propriile cerine i restricii informaionale. n cazul n care cererea de interogare SQL ACCESS are erori de sintax sau determin obinerea de rezultate eronate, va trebui s se revin n modul de afiare SQL View pentru a se face coreciile necesare.

2.1

Comenzi pentru definirea datelor

Principalele comenzi SQL pentru definirea datelor sunt urmtoarele:


CREATE DATABASE, DROP DATABASE, CREATE TABLE, 17

ALTER TABLE, DROP TABLE.

Comanda CREATE DATABASE are urmtoarea sintax: CREATE DATABASE nume_baza_de_date fiind utilizat pentru crearea unei noi baze de date. Comanda DROP DATABASE nume_baza_de_date este utilizat pentru stergerea bazei de date. Pentru crearea unei tabele se utilizeaz comanda CREATE TABLE nume_tabela (cmp1 tip_data [NOT NULL], cmp2 tip_data [NOT NULL], cmp3 tip_data [NOT NULL]...). Printre cele mai importante tipuri de date folosite amintim: Character, Memo, Number, Integer, Decimal, Logical, Date, OLE Object etc.Numele tabelei trebuie s fie unic n cadrul bazei de date, neputnd fi unul din cuvintele rezervate. Totodat, acesta poate avea i anumite restrictii privind: numrul de caractere din care este format, utilizarea anumitor simboluri, folosirea literelor mari sau mici, natura caracterului de nceput etc. Aceleai cerine apar i pentru numele cmpurilor. n plus exist posibilitatea duplicrii lor n cadrul bazei de date, dar se pstreaz unicitatea n tabel. Clauza NOT NULL arat c n cmpul respectiv nu se memoreaz valori de tip NULL. Exemplu: Se creeaz tabela Vnzri cu urmatoarea structur a nregistrrii: numar (tip numeric), cod marfa (tip numeric), data vnzarii (tip data calendaristica), localitatea (tip caracter n cmpul data vnzarii nu se vor memora valori de tip NULL. CREATE TABLE VANZARI(Nr Number, Cod_m Number, Data_v Date NOT NULL, Localit Char) Pentru modificarea structurii unui tabel se utilizeaz comanda ALTER TABLE cu urmtoarea sintax (simplificat): ALTER TABLE nume_tabela ADD nume_cmp tip_data. n aceast variant se adaug n structura tabelei cmpul specificat n comenda. Exemplu: Se adaug n tabela Personal_Vnzare un nou cmp numit Telefon: ALTER TABLE PERSONAL_VANZARE ADD Telefon Integer. Comanda DROP TABLE nume_tabela este folosit pentru a terge complet o tabel dintr-o baz de date (structura i valorile asociate).

2.2 Instruciunile de selecie a datelor


Instruciunile de selecie reprezint una dintre categoriile cele mai importante ale limbajului de interogare SQL ACCESS. Indiferent dac sunt simple sau complexe, punctul de plecare l constituie fraza SELECT, prin care se regasesc i se afiseaza informaiile dorite de utilizator. 18

Pentru definirea interogrilor de selectie simple se utilizeaz urmatoarea sintax a instruciunii SELECT: SELECT [domeniu] lista_selectie FROM nume_tabela1, nume_tabela2,... [WHERE criteriul_de_selectie] [ORDER BY cmpuri_criteriu [ASC|DESC]] [GROUP BY cmp_de_grupare [HAVING criteriul_de_ grupare]] Domeniu permite stabilirearea modalitii de manipulare a nregistrarilor din baza de date asupra creia se efectueaz selecia i poate fi:

ALL: permite includerea tuturor nregistrarilor ce ndeplinesc condiiile impuse. Cum frazele SELECT tabela i SELECT ALL tabela au practic acelai rezultat, calificativul ALL este destul de rar utilizat;

DISTINCT: are ca efect eliminarea nregistrarilor care conin duplicate n cmpurile selectate astfel se va afia doar o apariie a datei multiple; DISTINCTROW: are n vedere nregistrrile duplicate n ansamblul lor, nu numai pe cele care au cmpuri duplicate. Lista_selectie cuprinde toate cmpurile care vor aprea n tabel cu rezultatele interogarii.

Cmpurile adugate n rndul Field din grila Query a machetei grafice QBE, care au marcat caseta de validare Show, sunt aceleai cu cele menionate n lista de selecie. n scrierea interogrilor de selecie simple SQL ACCESS este posibil i folosirea funciilor totalizatoare. Cele mai importante funcii din aceast categorie sunt:

COUNT: returneaz numrul de nregistrri care respect condiiile stabilite prin clauza WHERE; SUM: red suma tuturor valorilor dintr-un cmp; opereaz numai cu valori numerice; AVG: calculeaz valoarea medie a unui cmp numeric; MAX: permite determinarea celei mai mari valori dintr-un cmp; MIN: duce la obinerea celei mai mici valori a unui cmp ramne valabil i aici restricia privind clauza WHERE. n cadrul listei de selecie se pot defini i alias-uri. Acestea reprezint un pseudonim

(nume) asociat unui cmp astfel : cmp AS alias. functiei agregat. Clauza FROM specific numele tabelei sau tabelelor care vor forma suportul interogrii. dac n lista_selectie se includ cmpuri din mai multe tabele, n faa numelui acestora trebuie precizat tabela din care fac parte. Aa cum am artat la regulile de sintax, pentru separarea numelor de tabele, se utilizeaz semnul , (virgul). Trebuie s precizez faptul c n cadrul acestei 19

clauze se pot meniona pe lnga tabele, ca surse de informatii pentru interogarile SQL, i interogri care au fost deja create. Clauza WHERE face interogrile mai selective, specificnd faptul ca vor fi afiate numai nregistrrile care ndeplinesc criteriul descris. Parametrul criteriul de selecie este o expresie care conine un operator de tip text (ir) sau numeric, n funcie de tipul cmpului. Clauza WHERE este opional i nu opereaz cu funcii totalizatoare. n cadrul condiiei din clauza WHERE pot fi utilizai operatorii : AND, OR, NOT, IN, BETWEEN, LIKE. Apelnd la acetia, este posibil construirea unor condiii mai complexe. Clauza ORDER BY utilizat atunci cnd se dorete ca rezultatele interogrii s fie ordonate n mod crescator (ASC) sau descresctor (DESC). Sortarea este opional i se poate realiza dup unul sau mai multe cmpuri_criteriu (definite drept chei de sortare). Componenta BY a clauzei nu poate s lipseasc atunci cnd se dorete sortarea rezultatelor interogarii SQL ACCESS. Clauza GROUP BY precizeaz cmpul sau cmpurile pe baza crora se va efectua gruparea nregistrarilor. n acelai timp, prin intermediul acestei clauze, se pot executa funciile agregate descrise n lista de selectie pentru fiecare dintre grupri (constituite pe baza cmpurilor de grupare). Echivalentul acestei clauze n macheta grafic QBE de construcie a interogrii l reprezint rndul Total. Clauza HAVING se refer la criteriul care va fi aplicat cmpului-definit ca argument al funciei agregat. Altfel spus, cnd se foloseste clauza GROUP BY i este necesar i o condiie, se va utiliza clauza HAVING. Spre deosebire de WHERE, care acioneaz nainte de a se efectua gruparea nregistrarilor, HAVING va opera dup definirea acesteia. De remarcat faptul c se admite utilizarea unei funcii agregat care nu apare n lista de selecie, precum i apelarea la mai multe criterii de grupare. O facilitate deosebit de important a limbajului SQL o reprezint posibilitatea de a grupa i folosi date din tabele diferite. Operaiile de asociere induse de clauza JOIN au ca rezultat producerea tuturor combinaiilor posibile, pentru coninutul informaional al fiecarei tabele. Noile nregistrri care rezult n urma jonciunii vor deveni disponibile pentru seleciile ulterioare. La o asociere pot participa mai mult de dou tabele. Principala modalitate de realizarea a jonciunii este sintetizat de urmtoarea sintax: SELECT [domeniu] lista_selectie FROM nume_tabela1 {INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabela2 ON criteriul_de_asociere [{INNER|LEFT OUTER|RIGHT OUTER} JOIN nume_tabela3 ON criteriul_de_asociere]... [WHERE criteriul_de_selectie] 20

[ORDER BY cmpuri_criteriu [ASC|DESC]] Semnificaia elementelor de sintax descrise mai sus este urmatoarea:

INNER, LEFT OUTER, RIGHT, OUTER se refer la tipurile de jonciuni (INNER JOIN, intern de tip echivalent, LEFT OUTER JOIN, extern de stnga, RIGHT OUTER JOIN, extern de dreapta). De remarcat faptul ca SQL ACCESS accept scrierea interogrilor externe far specificarea explicit a lui OUTER;

JOIN specific tabela care va fi asociat (nume_tabela2, nume_tabela3...) tabelei precizat n clauza FROM, ON criteriul de asociere arat relaia dintre cmpurile pe care se bazeaza jonciunea. Unul se afla n tabela asociat, iar cellalt exist ntr-o alt tabel din lista cu numele tabelelor. Expresia criteriul_de_asociere conine un operator de comparatie (=,<,>,<>,<=,>=) i va returna valorile logice TRUE sau FALSE. Jonciunile tip INNER JOIN determin o asociere a nregistrarilor din tabele, astfel nct s

rezulte un numar total de nregistrri egal cu produsul numrului de nregistrri din fiecare tabel. Jonciunile externe (OUTER) sunt de dou tipuri: de stnga (LEFT OUTER JOIN) i de dreapta (RIGHT OUTER JOIN), fiind destul de puin utilizate. Echivalentul QBE al acestor categorii de jonciuni este alegerea opiunilor 1, 2 sau 3, din caseta Join Properties.

2.3 Instruciunile pentru manipularea datelor


Cele mai importante instruciuni sunt: INSERT, UPDATE i DELETE. Comanda INSERT se folosete pentru adugarea de nregistrri dintr-o tabel n alta. Prin aceast interogare de adugare nu se pot insera date dintr-o tabel n ea nsi. Operaia ar fi totui posibil printr-o selectare prealabil a datelor iniiale ntr-un tabel temporar, urmat de modificarea i readucerea lor n tabelul de la care s-a plecat. Sintaxa comenzii este urmtoarea: INSERT INTO nume_tabela (cmp1, cmp2...) VALUES (valoare1,valoare2... n acest caz se adaug o nregistrare ntr-o tabel, mentionndu-se cmpurile i valorile asociate acestora. Ca particularitate se remarc inserarea unei singure nregistrari la un moment dat. Prima forma a lui INSERT se utilizeaz pentru operaii simple care presupun lucrul cu un numar redus de nregistrri. Dup lansarea n execuie a interogrii apare un mesaj de avertizare privind adugarea noii nregistrari n baza de date i caracterul ireversibil al acestei operatii. n cadrul acestui tip de inserare a datelor trebuie sa se respecte urmatoarele reguli: 21

valorile menionate n clauza VALUES vor avea aceeai natur cu cmpurile specificate n clauza INTO, marimea valorii corespunzatoare fiecrui cmp va fi mai mic dect dimensiunea cmpului, nu va fi obligatorie specificarea denumirii cmpurilor, deoarece SQL ACCESS va asocia listei de valori cmpurile n ordinea din structura nregistrrii (prima valoare se va introduce n primul cmp, a doua valoare, n al doilea cmp .a.m.d.)

dac un cmp are definiia NOT NULL, va fi obligatorie introducerea unei valori pentru acesta. Comanda DELETE are urmtoarea sintax: DELETE FROM nume_tabela [WHERE criteriul_de_stergere] se materializeaz n interogarea aciune de tergere parial sau total a nregistrrilor din tabele. n acelai timp se va terge doar coninutul tabelei nu i aceasta (pentru eliminarea tabelei se va apela la instruciunea DROP TABLE). Comanda UPDATE are urmtoarea sintax: UPDATE nume_tabela SET nume_cmp1 = valoare1 [,nume_cmp2 = valoare2]... [WHERE criteriul_de_actualizare] Aceasta are att scopul de a insera noi nregistrari, ct i de a modifica valorile cmpurilor

din nregistrrile existente. Ca i n cazul instruciunii INSERT, se va urmri dac n cmpul cu valori de actualizat sunt permise numai valori unice. Atunci cnd se dorete actualizarea datelor din mai multe cmpuri se folosete virgula ca separator ntre cmpuri i valorile acestora. Se pot utiliza mai multe condiii WHERE apelnd la operatorul logic AND pentru a limita actualizarea la nregistrari mai bine specificate.

2.4 Cereri de interogare imbricate


Scrierea unei interogari n cadrul alteia duce la apariia unei subinterogari. Setul de rezultate obinut de la o interogare va constitui argument pentru o alta. Utilizatorul poate astfel s creeze legturi ntre mai multe interogri SQL ACCESS, pe baza unor cmpuri unice, cu rol de cutare n structura tabelelor. Subinterogarile nlocuiesc interogarile imbricate din versiunile precedente, cu performane mult mbuntite. Pot fi construite i prin varianta de lucru a machetei grafice QBE Access.

22

Cea mai simpla subinterogare are sintaxa urmatoare: SELECT * FROM Tabela1 WHERE Tabela1.nume_ cmp = (SELECT nume_cmp FROM Tabela2 WHERE criteriul_de_selectie); Tabela1 i Tabela2 vor avea un cmp comun (nume_cmp) care va reprezenta de fapt cmpul de legatur ce st la baza construirii subinterogrii. Clauza SELECT din subinterogare va avea acelai numr de cmpuri i de natur similar cu cele din clauza WHERE a interogrii externe.

2.5 Tabele. Chei. Relaii


Tabelele n modelul relaional sunt folosite pentru a reprezenta entiti. Fiecare tabel reprezint o singur entitate. Un tabel este format din linii (nregistrri, tuple) i coloane(atribute, cmpur i), iar modelul relaional cere ca fiecare tupl s fie unic identificat. Dac se permit nregistrri duplicate ntr-un tabel, atunci este imposibil adresarea unei anumite linii. Aceasta ar crea ambiguiti i probleme care se recomand a fi evitate. Unicitii unui tabel este dat de cheia primar. Aceasta reprezint o combinaie de una sau mai multe coloane care identific n mod unic fiecare rnd. Deoarece datele nu pot fi accesate n funcie de locaia lor fizic, este nevoie de o descriere logic a lor pentru ca engine s le gseasc. Fiecare tabel poate avea o singur cheie primar, chiar dac mai multe coloane sau combinaii ale coloanelor conin valori unice. Toate coloanele dintr-un tabel care conin valori unice sunt referite sub numele de chei candidate, dintre care trebuie aleas cheia primar. Cheile pot fi simple sau compuse. O cheie simpl este format dintr-un singur atribut (o singur coloan), iar o cheie compus const din dou sau mai multe atribute. Decizia de a alege o cheie primar aparine administratorului bazei de date, ns nu exist o regul care s spun care din cheile candidate e cea mai bun. Totui, dup cum menioneaz Fabian Pascal n cartea sa SQL and Relational Basics, decizia ar trebui s se bazeze pe urmtoarele principiile: minimalitate (cheia primar s fie reprezentat de ct mai puine coloane), stabilitate (alegerea unei chei nevolatile - neschimbtoare) i simplitate/familiaritate (alegerea unei chei care e simpl i familiar pentru utilizatori). O alt component important a bazelor de date o reprezint relaiile. ntre dou tabele este o relaie dac exist posibilitatea de a asocia nregistrrile primului tabel cu nregistrrile celui de-al doilea tabel. 23

Cnd se determin faptul c ntre dou tabele exist o relaie, aceast relaie este stabilit lund o copie a cheii primare din prima tabel i ncorpornd-o n structura celei de-a doua tabele, unde devine cheie strin. Aceasta, n afar de faptul c stabilete o legtur ntre doua tabele, asigur i integritatea relaiei: nregistrrile din ambele tabele vor fi ntotdeauna corect relaionate deoarece valorile cheii strine trebuie s se potriveasc cu valorile cheii primare la care se refer. Relaiile pot fi stabilite printr-u n set d e chei p rimare i strine, d ar i p rintr-o a treia tabel numit tabel de legtur. Modul n care se stabilete relaia depinde de tipul relaiei care exist ntre tabele. Exist trei tipuri de relaii ntre tabele (cunoscute i sub numele de cardinalitate): one-toone, one-to-many i many-to-many. Relaia one-to-one dintre dou tabele apare atunci cnd o singur nregistrare din prima tabel este n relaie cu o singur nregistrare din tabela a doua i o singur nregistrare din a doua tabel este n relaie cu o singur nregistrare din prima tabel.

Figura 2. Relaia one-to-one

O relaie one-to-many dintre dou tabele apare atunci cnd o singur nregistrare din prima tabel poate fi n relaie cu o mai multe nregistrri din tabela a doua, dar o singur nregistrare din a doua tabel este n relaie numai cu o singur nregistrare din prima tabel.

Fogura 3. Relaia one-to-many

O relaie many-to-many dintre dou tabele apare atunci cnd o singur nregistrare din prima tabel poate fi n relaie cu o mai multe nregistrri din tabela a doua i o singur nregistrare din a doua tabel este n relaie cu mai multe nregistrri din prima tabel. Aceast 24

relaie se stabilete prin intermediul unei tabele de legtur, care face mai uoar asocierea nregistrrilor dintr-o tabel cu cele din cealalt tabel i asigur faptul c nu vor exista probleme la adaugarea, stergerea sau modificarea datelor relaionate.

Figura 4. Relaia many-to-many

25

CAPITOLUL III. PROIECTAREA APLICAIEI


3.1 Crearea tabelelor
Pentru a prezenta capitolul de aplicaie, am realizat o baz de date, format din tabelele Cri, Cititori, Fi, Penalizare, Sal_lectur folosind programul Ms-Access. Interogrile ce stau la baza aplicaiei au fost realizate cu ajutorul limbajului SQL Access (Structured Query Language). Petru crearea tabelelor am folosit instruciunile SQL ce au sintaxa urmtoare: 1) create table CARTI ( nr_inventar smallint PRIMARY KEY , pret money, titlu

varchar(70),autor varchar(40),editura varchar(30), datetime , categorie varchar(30))

data_achiz

Figura 5. Tabelul Cri

2) create table CITITORI (nr_leg smallint PRIMARY KEY , nume varchar(20), prenume varchar(20), cnp varchar(15), tel varchar(15))

Figura 6. Tabelul Cititori

26

3) create table FISA (nr_leg smallint PRIMARY KEY , nr_inventar smallint, data_achiz datetime, data_scadenta datetime)

Figura 7. Tabelul Fi

4) create table PENALIZARE ( nr_leg smallint PRIMARY KEY, nr_inventar smallint, pret_c money , data_scadenta datetime, durata_zile smallint, suma_pen money)

Figura 8. Tabelul Penzalizare

5) create table SALA_LECTURA (nr_leg smallint PRIMARY KEY, nume_ex varchar(60), autor varchar(20), tipul_ex varchar(10) , data datetime)

Figura 9. Tabelul Sal_Lectur

27

3.2 Relaii ntre tabele

Figura 10. Relaii ntre tabele

3.3 Prezentarea meniului aplicaiei


Formularul Meniu Principal este alctuit din patru butoane: Cititori, Cri, mprumut i Rapoarte. Pentru fiecare dintre acestea am stabilit denumirea, culoarea, grosimea, alinierea fontului, culoarea de fundal i evenimentul care are n spate cte o macrocomand pentru deschiderea formularului Meniu Cititori, Meniu Cri, Meniu mprumut, Meniu Rapoarte i o etichet, n spatele creia se regsete o macrocomand ce nchide baza de date.

Figura 11. Meniul principal

28

Meniul Principal este reprezentat astfel:


Cautare cititori Cititori Cititori Vizualizare Adauga Actualizeaza Sterge Adauga Sala de lectura Cautare carte Cautare autor Carti Carti Inventar Vizualizare Adauga Actualizeaza Imprumut Sterge Penalizari Carti Cititori Sala lectura Rapoarte Situatie penalizari Calcul penalizari Arhiva carti Actualizeaza Sterge Adauga Actualizeaza Sterge

Meniu

3.4 Meniul Cititori


Meniul Cititori este un formular cruia i-am ataat un titlu Cititori, pe background-ul acestuia se regsete o imagine de tip .jpg, iar n stnga formularului se regsesc cinci butoane (Cutare cititori, Cititori, Vizualizare, Sala de lectur), acestea accesnd cte o macrocomand.

Figura 12. Meniul Cititori

29

Butonul Cutare cititor acioneaz asupra unei interogri de parametrizare prin intermediul unei macrocomenzi i realizeaz cutarea n tabelul Cititori, n funcie de numrul de legitimaie, cititorul dorit.

Figura 13. Cutare cititor dup nr legitimaie

Figura 14. Rezultatul ntors n urma cutrii

Sintaxa interogrii este urmtoarea: SELECT CITITORI.tel FROM CITITORI WHERE (((CITITORI.nr_leg)=[Introduceti Nr Legitimatie])); Butonul Cititori din cadrul meniului ne trimite ctre un alt formular unde putem face modificri asupra tabelei Cititori (de adugare, de actualizare i de tergere) apoi se revine la meniul anterior prin apsarea butonului Meniu. CITITORI.nr_leg, CITITORI.nume, CITITORI.prenume, CITITORI.cnp,

Figura 15. Submeniul Cititori

30

Butonul Adaug activeaz o interogare de tip append query ce permite adugarea de noi nregistrri n tabela Cititori. Sintaxa acestei interogri este urmtoarea: INSERT INTO CITITORI SELECT CITITORI.* FROM CITITORI;

Figura 16. Permisiunea de a face modificri asupra tabelei

Figura 17. Mesajul de confirmare a adugrii

Butonul Actualizeaz acioneaz o interogare de tip update actualizarea cmpurilor din cadrul tabelei Cititori. Sintaxa acestei interogri este: UPDATE CITITORI SET CITITORI.nr_leg = [CITITORI]![nr_leg]; Aceasta funcioneaz pe acelai princiupiu ca i interogarea de adugare.

ce permite

tergerea nregistrrilor din tabela Cititori se realizeaza prin accesarea butonului terge ce

activeaz o interogare de tergere

n funcie de un parametru introdus de la tastatura ce

reprezint numrul legitimaiei cititorului ce se dorete a fi ters din baza de date. 31

Figura 18. tergere dup un parametru

Figura 19. Confirmarea tergerii unei nregistrri

n cadrul meniului regsim butonul Vizualizare ce ne permite accesarea tabelului cu cititori spre vizualizarea coninutului acestuia.

Figura 20. Vizualizarea tabelului Cititori

Butonul Sal de lectur activeaz o macrocomand ce dechide subformularul Sal de lectur unde putem face modific asupra tabelei Sal_lectur (de adugare, de actualizarea, de tergere).

32

Figura 21. Meniul Sal de lectur

3.5 Meniul Cri


Meniul Cri este un formular cruia i-am ataat un titlu Cri, pe background-ul acestuia se regsete o imagine de tip .jpg, iar n stnga formularului se regsesc cinci butoane (Cutare carte, Cutare autor, Cri, Vizualizare), acestea accesnd cte o macrocomand.

Figura 22. Meniul Cri

33

Accesnd butonul Cutare carte acesta activeaz o macrocomand ce deschide o interogare de parametrizare. Cutarea se realizeaz n funcie de autorul dorit introdus de la tastatur.

Figura23. Cutare n funcie de autor

Figura 24. Rezultatul ntors n urma cutrii

Interogarea de cutare dup autor are urmtoarea sintax: SELECT CARTI.autor, CARTI.* FROM CARTI WHERE (((CARTI.autor)=[Autor Carte]));

Figura 25. Cutare n tabelul Cri n funcie de o carte dorit

34

Figura 26. Rezultatul ntors n urma cutrii

Butonul Cri din cadrul meniului duce la deschiderea unui subformular unde putem face modificri asupra crilor existente n baza de date (modificri ce constau n adugare, actualizare i tergere).

Figura 27. Submeniul Cri

Adugarea unei cri se acioneaza asupra butonului Adaug, rezultatul fiind activarea unei interogri de adugare. Codul interogrii este: INSERT INTO CARTI ( cota, titlu, autor, editura, data_achiz, categorie, pret_carte ) SELECT CARTI.cota, CARTI.titlu, CARTI.autor, CARTI.editura, CARTI.data_achiz, CARTI.categorie, CARTI.pret_carte FROM CARTI; 35

Actualizarea unui cmp sau al unui rnd se realizeaz acionnd asupra butonului Actualizare acesta actualiznd modificrile realizate de ctre operator n tabelul Cri. Codul interogrii este: UPDATE CARTI SET CARTI.cota = [CARTI]![cota], CARTI.titlu = [CARTI]![titlu], CARTI.autor = [CARTI]![autor], CARTI.editura = [CARTI]![editura], CARTI.data_achiz = [CARTI]![data_achiz], [CARTI]![pret_carte]; tergerea nregistrrilor se realizeaz activnd butonul tergere acesta activnd interogarea de tip tergere sub un parametru introdus de la tastatur de ctre operator, a cmpur ilor din tabelul Cri. Interogarea are sintaxa: DELETE CARTI.*, CARTI.cota FROM CARTI WHERE (((CARTI.cota)=[Introduceti COTA])); Butonul Inventar acceseaz o interogare de selecie ce are ca i criteriu ordonarea cresctoare n funcie de data de achiziie a crilor. Codul interogrii este: SELECT CARTI.cota, CARTI.titlu, CARTI.autor, CARTI.editura, CARTI.data_achiz, CARTI.categorie, CARTI.pret_carte FROM CARTI ORDER BY CARTI.cota; Rezultatul obinut este un raport ce prezint ordonarea crilor existente n bibliotec. CARTI.categorie = [CARTI]![categorie], CARTI.pret_carte =

Figura 28. Ordonare cri (partea 1)

36

Figura 29. Ordonare cri (partea 2)

Ultimul buton din cadrul acestui meniu permite vizualizarea ntregului tabel:

Figura 30. Vizualizare cri

3.6 Meniul mprumut


n cadrul acestui meniu, operatorul poate realiza aciuni de mprumut a crilor din cadrul bibliotecii aciuni ce adaug, actualizeaz sau terg date din cadrul tabelului Fi. mprumutul se poate realiza pe o perioad de 14 zile, iar depirea celor 14 zile duce la achitarea unei penalizri de 1% din costul de achiziie al crii/crilor mprumutate. Adugarea, actualizarea i tergerea nregistrrilor urmeaz aceleai proceduri ca i cele ce exist la meniurile anterioare.

37

n cadrul formularului se regsete butonul Penalizare ce activeaz o interogare de parametrizare n funcie de numrul legitimaiei al celui ce a ntrziat restituirea crii mprumutate. Codul interogrii este: SELECT PENALIZARE.nr_leg, PENALIZARE.durata_zile, PENALIZARE.pret_carte, [PENALIZARE]![durata_zile]*([PENALIZARE]![pret_carte]/100) AS Penalizare FROM PENALIZARE WHERE (((PENALIZARE.nr_leg)=[Introduceti Nr Legitimatie]) AND

((PENALIZARE.durata_zile)>0));

3.7 Meniul Rapoarte


n cadrul acestui meniu putem afla rezultatul ctorva interogri sub forma unor rapoarte (vizualizarea naintea printrii) privind crile existente, o arhiv a acestora, situaia penalizrilor i calculul acestora, sala de lectur, cititorii existeni, sau efectuarea unor cutri dup nume autor sau titlu carte.

Figura 31. Meniul Rapoarte

38

Fiecare buton al meniului acioneaz asupra unei macrocomenzi, aceasta la rndul ei deschide o interogare spre vizualizare nainte de tiprire, sau un raport creat anterior. Raportul cri deschide un raport creat n modul raport design, ce conine etichete i csue text ce fac legtura cu tabelul Cri.

Figura 32. Raport creat n modul raport design

Figura 33. Raport Cri

39

Butonul cititori acioneaza asupra unui raport creat asemntor cu cel anterior:

Figura 34. Raport cititori

Raportul Calcul penalizri deschide interogarea de selecie ce calculeaz pentru fiecare cititor penalizarea pe care o are de pltit dac durata_zile ce depesc 14 zile este >0. Interogarea este parametrizat i caut cititotul dup numrul legitimaiei introdus.

Figura 35. Introducere parametru de cutare

Figura 36. Raport calcul penalizare

40

Raportu Cutare autor acioneaz asupra interogrii parametrizate ce caut autorul dorit n baza de date i ntoarce ca rezultat ntr-un formular crile scrise de acesta.

Figura 37. Cutare autor

Figura 38. Raport Cutare autor

Raport Sum total cri acioneaz asupra interogrii totalizatoare dup funcia SUM i returneaz ca raport suma total a crilor existente n baza de date. Sintaxa ecestei interogri este: SELECT Sum(CARTI.pret_carte) AS SumOfpret_carte FROM CARTI;

Figura 39. Interogare totalizatoare n modul vizual

41

Raportul pe care n ntoarce interogarea totalizatoare a sumei tuturor crilor este:

Figura 40. Raport Sum tatal cri

42

CONCLUZII

Chiar i ntr-o instituie public este necesar efectuarea unei evidene, o eviden a crilor i fielor cititorilor, iar pentru a uura activitatea de creare i gestionare a evidenei, se poate utiliza Microsoft Acceess. Cu ajutorul Access-ului am put ut crea tabele, interogri, formulare, rapoarte, att n modul visual ct i uiliznd limbajul SQL. Access presupune o baz de date cu un ansamblu de date organizate n una sau mai multe tabele cu relaii ntre ele. Astfel am realizat proiectul meu Aplicaie privind evidena unei biblioteci. Proiectul meu cuprinde: 1. Creare tabelelor Cri, Cititori, Fi, Penalizare, Sal Lectur cu toate nregistrarile de baz. 2. Interogrile fcute pe baza tabelelor, cu ajutorul limbajului SQL. 3. Formularele ce ajut la vizualizarea nregistrrilor din tabele. 4. Rapoartele ce ntorc cteva rezultate al interogrilor privind cutarea autorilor, cutarea crilor, calculul penalizrilor sau totalizarea preurilor crilor. ntr-o baz de date regsim informaiile despre obiectele cu care se lucreaz ntr-o entitate i relaiile dintre acestea ce ajut la uurarea activitii. Aplicaiile bazate pe baze de date permit accesul mai multor utilizatori n acelai timp, ns cu permisiuni diferite. Bazele de date ofer utilizatorilor o serie de avantaje, cum ar fi: reducerea redundanei datelor prin proiectarea unitar a bazei i evitarea suprapunerii unor informaii; pstrarea consistenei datelor prin propagarea actualizrilor dintr-un fiier la nivelul ntregii baze de date; partajarea datelor ntre utilizatorii aceleiai aplicaii, dar i ntre aplicaii diferite; securitatea datelor prin verificarea accesului utilizatorilor pe baz de parol i prin autorizarea operaiilor de ntreinere de ctre administratorul bazei de date.

43

BIBLIOGRAFIE
1. Alison Balter, Invata singur MS Office ACCESS 2003 in 24 de ore, Editura Niculescu, 2006 2. Dulu, Ana, Baze de date Access - ECDL Avansat, editura Adreco Educational, 2006 3. Fotache, Marin, SQL. Dialecte DB2, Oracle, PostgreSQL si SQL Server, editura Polirom, 2009 4. Henderson, K. "Proceduri stocate n SQL Server. XML, HTML", Teora 2003 (traducere Ion Bldea i Eugen Sipo, dup ediia din 2002) 5. Ipate, F.E., Dezvoltarea aplicaiilor de baze de date n Oracle 8 i Forms 6 , Editura BIC ALL, 2000 6. Jennings, R., Totul despre Access 2000, Editura Teora, 2002 7. Lungu, Ion, Baze de date relationale - Utilizarea limbajului SQL*PLUS, editura ALL, 2000 8. Nstase, P., Mihai, F., Baze de date - Access 2000, Editura Teora, 2001 9. Oppel, Andy, SQL fara mistere - ghid pentru autodidaci, editura Rosetti Educational, 2006 10. Patriciu, V., Criptografia i securitatea reelelor de calculatoare , Editura Tehnic, 1994 11. Popa, Gh., Berbec, F., Ivancenco, V., ova, A., ova, A.M. D., Baze de date Access, Editura Cison, Bucureti, 2003. 12. Roca, I.Gh.,Bucur, C.M., Timofte-Stanciu, C. Paiu, O., Vian, M., Comerul electronic: concepte, tehnologii i aplicaii, Editura Economic, 2004 13. Rusu, L, Managementul sistemelor informatice, Presa Universitara Clujeana, ClujNapoca, 2001 14. Teodorescu, A., Lecii de Access (ediie actualizat), editura Albastr 15. Velicanu, M., Lungu, I., Muntean, M., Ionescu, S., Sisteme de baze de date, Editura Petrion, Bucureti, 2003 16. http://ro.wikipedia.org/

44