Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE LICEN
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
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
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
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.
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.
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.
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.
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.
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.
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
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
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
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).
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.
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.
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.
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.
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.
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.
25
data_achiz
2) create table CITITORI (nr_leg smallint PRIMARY KEY , nume varchar(20), prenume varchar(20), cnp varchar(15), tel varchar(15))
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)
5) create table SALA_LECTURA (nr_leg smallint PRIMARY KEY, nume_ex varchar(60), autor varchar(20), tipul_ex varchar(10) , data datetime)
27
28
Meniu
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.
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,
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;
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
n cadrul meniului regsim butonul Vizualizare ce ne permite accesarea tabelului cu cititori spre vizualizarea coninutului acestuia.
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
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.
Interogarea de cutare dup autor are urmtoarea sintax: SELECT CARTI.autor, CARTI.* FROM CARTI WHERE (((CARTI.autor)=[Autor Carte]));
34
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).
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 =
36
Ultimul buton din cadrul acestui meniu permite vizualizarea ntregului tabel:
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));
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.
39
Butonul cititori acioneaza asupra unui raport creat asemntor cu cel anterior:
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.
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.
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;
41
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